openpond 0.2.68 → 0.2.70
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/api/client-context.d.ts +4 -0
- package/dist/app-server.js +1 -1
- package/dist/chunks/account-context-LEZDNYMR.js +12 -0
- package/dist/chunks/{acp-2OIXATRY.js → acp-QTA6IU6W.js} +1 -1
- package/dist/chunks/{acp-agent-PAGX2B47.js → acp-agent-N77HPAYQ.js} +1 -1
- package/dist/chunks/{actions-command-2VE6YI4W.js → actions-command-BZQCUDMD.js} +1 -1
- package/dist/chunks/{app-layer-YNEUEOEP.js → app-layer-YQQNLIXA.js} +1 -1
- package/dist/chunks/{app-server-connected-apps-TZOAUOYR.js → app-server-connected-apps-NH4667QJ.js} +1 -1
- package/dist/chunks/{app-server-runtime-GBX65JJ7.js → app-server-runtime-B7AMBGQZ.js} +1 -1
- package/dist/chunks/apps-WG7WY5CB.js +2 -0
- package/dist/chunks/{chunk-RY46UPBO.js → chunk-2ACX7IW5.js} +1 -1
- package/dist/chunks/{chunk-FKUWCJ73.js → chunk-54755JYM.js} +2 -2
- package/dist/chunks/{chunk-HKVFU3B3.js → chunk-5FSPDSAO.js} +1 -1
- package/dist/chunks/{chunk-R4EEGWXB.js → chunk-67U7PAMU.js} +1 -1
- package/dist/chunks/{chunk-2TGHZXJE.js → chunk-6C6ZCYTL.js} +1 -1
- package/dist/chunks/{chunk-7RSQOC5M.js → chunk-7TM25J6S.js} +1 -1
- package/dist/chunks/chunk-BGMAWETL.js +12 -0
- package/dist/chunks/chunk-BLNEHU62.js +12 -0
- package/dist/chunks/{chunk-RBTDSI4L.js → chunk-CUB6PWAJ.js} +6 -6
- package/dist/chunks/chunk-DFZTRMTL.js +2 -0
- package/dist/chunks/{chunk-4N4EH3RJ.js → chunk-EJOV6Z6F.js} +1 -1
- package/dist/chunks/{chunk-MEJLWNRS.js → chunk-EWH64WRR.js} +1 -1
- package/dist/chunks/{chunk-WNXUSELC.js → chunk-EXAJ2B4I.js} +1 -1
- package/dist/chunks/{chunk-BHKXPWFB.js → chunk-FHDH4OUA.js} +1 -1
- package/dist/chunks/chunk-HES4VP3D.js +2 -0
- package/dist/chunks/{chunk-AYOMVI7J.js → chunk-HIMG7S5E.js} +1 -1
- package/dist/chunks/{chunk-2LJCJOJ7.js → chunk-HLJJAOI2.js} +1 -1
- package/dist/chunks/{chunk-JPUSTFZC.js → chunk-HYUTDZ3N.js} +1 -1
- package/dist/chunks/chunk-J7X72QUY.js +2 -0
- package/dist/chunks/chunk-JF7WWLNW.js +2 -0
- package/dist/chunks/{chunk-4KNPCJR4.js → chunk-JVNKSU27.js} +1 -1
- package/dist/chunks/{chunk-XT4CSKHM.js → chunk-JZKTBYNB.js} +1 -1
- package/dist/chunks/{chunk-JEMECEQH.js → chunk-KHDCMVEJ.js} +1 -1
- package/dist/chunks/chunk-KURL76NW.js +6 -0
- package/dist/chunks/chunk-MZKCW6CB.js +2 -0
- package/dist/chunks/{chunk-UMAVVMXL.js → chunk-OL3L3U36.js} +1 -1
- package/dist/chunks/{chunk-IIT66347.js → chunk-OXQ2WFIH.js} +1 -1
- package/dist/chunks/{chunk-73TW6BKK.js → chunk-PPF6EBTQ.js} +1 -1
- package/dist/chunks/{chunk-V24VHT76.js → chunk-REGKOCDO.js} +1 -1
- package/dist/chunks/{chunk-PSY6IRJE.js → chunk-TAXCMCYZ.js} +1 -1
- package/dist/chunks/{chunk-OIH2LPIT.js → chunk-TCTBCAI6.js} +1 -1
- package/dist/chunks/{chunk-GEYZVOGD.js → chunk-UZNRH6I3.js} +1 -1
- package/dist/chunks/{chunk-DWM5G7BU.js → chunk-Y4E5AAI7.js} +1 -1
- package/dist/chunks/chunk-YAA7F5LI.js +2 -0
- package/dist/chunks/{chunk-XQAUHXL4.js → chunk-ZK3ET5EP.js} +2 -2
- package/dist/chunks/{cli-R7TAP6Z2.js → cli-ALEEFAJ7.js} +1 -1
- package/dist/chunks/{command-LNOVZQSK.js → command-5AXJMFYC.js} +11 -11
- package/dist/chunks/{configuration-command-CNITTZRP.js → configuration-command-5LUNWPOL.js} +1 -1
- package/dist/chunks/{connected-app-executor-FGWCLOJO.js → connected-app-executor-DHXZE4X3.js} +1 -1
- package/dist/chunks/connected-evidence-NWMPICKJ.js +2 -0
- package/dist/chunks/{connected-starting-assets-KWOFEIE4.js → connected-starting-assets-NRVXIKQ2.js} +1 -1
- package/dist/chunks/{continual-FVOLGGOE.js → continual-UCKQ2QLH.js} +1 -1
- package/dist/chunks/core-commands-ZPBX35M2.js +2 -0
- package/dist/chunks/datasets-6K3ZANIV.js +2 -0
- package/dist/chunks/desktop-test-57INNJ76.js +3 -0
- package/dist/chunks/evaluation-coordination-B7CN4R2D.js +2 -0
- package/dist/chunks/experiment-improvements-G357VLDB.js +2 -0
- package/dist/chunks/experiments-BHQO26LJ.js +2 -0
- package/dist/chunks/experiments-signal-BI6NKETB.js +2 -0
- package/dist/chunks/{help-K6YLZ3KL.js → help-UQN5RUPA.js} +1 -1
- package/dist/chunks/{hosted-app-server-composition-LA3BZ4SE.js → hosted-app-server-composition-WDDO6F23.js} +1 -1
- package/dist/chunks/{hosted-experiment-improvement-VG2WE7XZ.js → hosted-experiment-improvement-VVYXQ65K.js} +1 -1
- package/dist/chunks/{hosted-tasksets-NXVF4AQA.js → hosted-tasksets-KCLNMPG5.js} +1 -1
- package/dist/chunks/human-review-PX6DBIFT.js +2 -0
- package/dist/chunks/{import-YHYKZ6JN.js → import-2HEYPHPW.js} +1 -1
- package/dist/chunks/learning-LSXBL5DB.js +2 -0
- package/dist/chunks/{local-harness-taskset-review-XQHQ6JCR.js → local-harness-taskset-review-E5GN5LTR.js} +1 -1
- package/dist/chunks/opchat-66BCRKEZ.js +3 -0
- package/dist/chunks/opchat-bounded-chat-KQWXZVFN.js +2 -0
- package/dist/chunks/organizations-IOYWDOCC.js +2 -0
- package/dist/chunks/{profile-P2SJPBOJ.js → profile-YH6G3ZTD.js} +1 -1
- package/dist/chunks/{project-action-payload-LTIQBX77.js → project-action-payload-53OH6WDH.js} +1 -1
- package/dist/chunks/project-agent-RYVMKW2F.js +2 -0
- package/dist/chunks/{runtime-Q7JUJO4D.js → runtime-ISLJIGWC.js} +1 -1
- package/dist/chunks/sandbox-command-DI45NRTV.js +2 -0
- package/dist/chunks/{sandbox-template-U536EEWY.js → sandbox-template-T42MDUSR.js} +1 -1
- package/dist/chunks/{saved-work-KSIQPXC2.js → saved-work-54I5ZJTC.js} +1 -1
- package/dist/chunks/setup-D6TY2GWV.js +2 -0
- package/dist/chunks/{src-SGQYVBNQ.js → src-7RN7BF4W.js} +1 -1
- package/dist/chunks/{src-C3ZUESMK.js → src-LF5X4RNQ.js} +1 -1
- package/dist/chunks/{store-model-configuration-6L3OYXF4.js → store-model-configuration-AYFGMC5D.js} +1 -1
- package/dist/chunks/{store-model-project-preparation-AAEKCF6V.js → store-model-project-preparation-5DEIS7TB.js} +1 -1
- package/dist/chunks/{store-taskset-drafts-FRFL6ITK.js → store-taskset-drafts-EAOOY6CR.js} +1 -1
- package/dist/chunks/{taskset-UDDLFYKV.js → taskset-HNDIGYQG.js} +1 -1
- package/dist/chunks/{teams-bot-MPWL2PP4.js → teams-bot-Z5CZLWE4.js} +1 -1
- package/dist/chunks/{training-5UMT45UL.js → training-JTYQA7GA.js} +1 -1
- package/dist/chunks/training-hardware-MR4FUC4U.js +3 -0
- package/dist/chunks/training-hosted-36SZFS4U.js +2 -0
- package/dist/chunks/{web-search-ZEKJHZW4.js → web-search-FTVNZ7PH.js} +1 -1
- package/dist/cli.js +2 -2
- package/dist/index.js +1 -1
- package/dist/sandbox/runtime-handle.d.ts +3 -5
- package/dist/sandbox/sandbox-instance-client.d.ts +11 -5
- package/dist/sandbox/types/billing.d.ts +53 -0
- package/dist/sandbox/types/responses.d.ts +11 -1
- package/dist/sandbox/types/snapshots.d.ts +52 -3
- package/dist/skills/manifest.json +1 -1
- package/dist/web/assets/{App-CCuh99JW.js → App-CXhxya9x.js} +4 -4
- package/dist/web/assets/{AppDialog-CxjDHVk9.js → AppDialog-x1HU1uLv.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-CKJIVpKa.js → AppTerminalPanel-CNIKmqKc.js} +2 -2
- package/dist/web/assets/{AppToastContext-EpiT1dHs.js → AppToastContext-DNWd43HS.js} +1 -1
- package/dist/web/assets/{AppsView-BsMyPX_3.js → AppsView-BvOD83Z1.js} +1 -1
- package/dist/web/assets/{AttachmentTypeIcon-BXvZy5gB.js → AttachmentTypeIcon-BLdDr3JZ.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-BIIV4aq4.js → BrowserSidebar-Ar0FlFKg.js} +1 -1
- package/dist/web/assets/{CartesianChart-brqLBqnF.js → CartesianChart-tS7f1HZv.js} +1 -1
- package/dist/web/assets/{ChatTimelineEntry-CwZbn16X.js → ChatTimelineEntry-z7_kur3h.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-BU4uc4tZ.js → CollaborationTabs-CaiFEKrv.js} +1 -1
- package/dist/web/assets/{CommandMenu-DkWpXR55.js → CommandMenu-BpubEqaA.js} +1 -1
- package/dist/web/assets/{CommunityView-CsSxJZGn.js → CommunityView-TGR4s99l.js} +1 -1
- package/dist/web/assets/{ComposerAttachments-BdJGCYzI.js → ComposerAttachments-DPWCjKXz.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-CWy0j1vv.js → ComposerCreateImproveStrip-Drji01_6.js} +1 -1
- package/dist/web/assets/{ConversationImportsSettings-DCmiakbZ.js → ConversationImportsSettings-B_oW0cz7.js} +1 -1
- package/dist/web/assets/{DatasetReviewImport-DEnF_pGu.js → DatasetReviewImport-Dr3unJSY.js} +1 -1
- package/dist/web/assets/{ExperimentTrainingDataWorkspace-WhwQ0QBi.js → ExperimentTrainingDataWorkspace-DObvpJAw.js} +2 -2
- package/dist/web/assets/{FilePagePreview-BRhhz99q.js → FilePagePreview-9kkXbARN.js} +2 -2
- package/dist/web/assets/{GetStartedView-CLVD-qEi.js → GetStartedView-Dv2b_SlH.js} +1 -1
- package/dist/web/assets/{GettingStartedDialog-CMxaAMg-.js → GettingStartedDialog-sPaPMc61.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-Cn-j-rDo.js → HostedModelLearningReview-BlwhGxS6.js} +1 -1
- package/dist/web/assets/HostedModelLearningSettings-B5ahk3je.js +1 -0
- package/dist/web/assets/{HtmlVisual-D5y2WG9L.js → HtmlVisual-rGsClq0p.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-BxRmYD6h.js → LabModelVersionDetailPage-Da7AwZWV.js} +1 -1
- package/dist/web/assets/{LabModelWorkspace-u2Ulm_z4.js → LabModelWorkspace-DTeYViWH.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-C7IceJTJ.js → LabSkillSidebar-BieHbNl6.js} +1 -1
- package/dist/web/assets/{LabsRoute-CbztQaEf.js → LabsRoute-D3XqPB0-.js} +4 -4
- package/dist/web/assets/{LearningBatchesPage-CJqgZNvM.js → LearningBatchesPage-CCBuf2u4.js} +1 -1
- package/dist/web/assets/{MainChatThread-DNMfrrRq.js → MainChatThread-B6BQJfcq.js} +2 -2
- package/dist/web/assets/{MainPane-CQQxSDPS.js → MainPane-D3fQou29.js} +6 -6
- package/dist/web/assets/{ModelProjectPageHeader-Dge19aE1.js → ModelProjectPageHeader-BZn9Lu_J.js} +1 -1
- package/dist/web/assets/{NativeSetupTerminal-D4JnbpyD.js → NativeSetupTerminal-Bglqab_g.js} +2 -2
- package/dist/web/assets/{NativeSkillSidebar-Jzx1BeKV.js → NativeSkillSidebar-pUGRdnV_.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-DcnGzEd9.js → NewProjectDialog-BpHN38MA.js} +1 -1
- package/dist/web/assets/{OutputsPage-Cmk15Vt_.js → OutputsPage-LunDCQ6w.js} +1 -1
- package/dist/web/assets/{PageChrome-Cz_fCqtn.js → PageChrome-DThEcWAx.js} +1 -1
- package/dist/web/assets/{ProjectsPage-BZ3Eo3Mz.js → ProjectsPage-vct_TQgL.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-C6H2vU9N.js → RightChatPanelStack-CgFK7DY0.js} +1 -1
- package/dist/web/assets/RightSidebarHomePanel-BJmzUcmy.js +1 -0
- package/dist/web/assets/{ScheduledWorkPage-CAkSwM0T.js → ScheduledWorkPage-mmaZfybl.js} +1 -1
- package/dist/web/assets/{SettingsView-DvQXGw3_.js → SettingsView-CJfeRsWR.js} +3 -3
- package/dist/web/assets/{TasksetDraftEditorPrimitives-JuU1k8vr.js → TasksetDraftEditorPrimitives-CuimAfkv.js} +1 -1
- package/dist/web/assets/{TeamChatView-DmHjr8W9.js → TeamChatView-BcK0lF1b.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-DlaM9d8F.js → TerminalOverlay-0pzEvy-C.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-ClpylNsr.js → TrainingCreationPanel-CcyzFz7l.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-6tH2xSDj.js → TrainingDraftPanel-DSLZXdLz.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CzDqxOYM.js → UsageSettingsSection-BT9pcnCn.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-CP-nHAsJ.js +1 -0
- package/dist/web/assets/{WorkspaceDiffPanel-B4e0lyF7.js → WorkspaceDiffPanel-Bbz5qrVA.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-D01ZkZZF.js → WorkspaceEnvironmentMenu-6hXpvMTl.js} +1 -1
- package/dist/web/assets/{WorkspaceFileLocation-C5s_njZb.js → WorkspaceFileLocation-BijVemBl.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-DjPZ6KIh.js → WorkspaceGitDialogs-BOO0E5i9.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-CC4sfOiU.js → WorkspaceMonacoEditor-B_YzK7Do.js} +3 -3
- package/dist/web/assets/{WorkspacePdfPreview-vszQqFa4.js → WorkspacePdfPreview-CFti1fvu.js} +2 -2
- package/dist/web/assets/{WorkspacePresentationPreview-DQTvhaRD.js → WorkspacePresentationPreview-DPAhNaV6.js} +1 -1
- package/dist/web/assets/{bot-Doyx3T4j.js → bot-BE2rL_qv.js} +1 -1
- package/dist/web/assets/chevron-down-Bn8yph2O.js +1 -0
- package/dist/web/assets/chevron-right-BU-jUmb2.js +1 -0
- package/dist/web/assets/chevron-up-DacwuDJZ.js +1 -0
- package/dist/web/assets/{chunk-C3TS766N-ppRhs95p.js → chunk-C3TS766N-j1MK0e3c.js} +1 -1
- package/dist/web/assets/{client-DwZ92xtu.js → client-BnJhN-14.js} +1 -1
- package/dist/web/assets/{client-choice-storage-DitqKiIT.js → client-choice-storage-CQ0CNkzG.js} +1 -1
- package/dist/web/assets/{cloud-upload-HdzNTgr2.js → cloud-upload-DFjZE4O4.js} +1 -1
- package/dist/web/assets/{copy-DTQhoBNg.js → copy-CGrLUtw5.js} +1 -1
- package/dist/web/assets/{cssMode-BRTtfXxU.js → cssMode-DvRw2fUx.js} +1 -1
- package/dist/web/assets/{external-link-H1629UU6.js → external-link-3ZnEFUXd.js} +1 -1
- package/dist/web/assets/{folder-open-CAGdWOrr.js → folder-open-i9n8450i.js} +1 -1
- package/dist/web/assets/{folder-plus-C14cs2mE.js → folder-plus-cu8Md_ej.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-DFUfuVvF.js → git-commit-horizontal-CwckmC09.js} +1 -1
- package/dist/web/assets/{htmlMode-BVaCcL76.js → htmlMode-8VF4Ovtw.js} +1 -1
- package/dist/web/assets/{icons-Bk2b68aC.js → icons-4yRSxBZj.js} +1 -1
- package/dist/web/assets/{image-0DPVY6Ev.js → image-D-umhyyK.js} +1 -1
- package/dist/web/assets/{index-B6XX_0h3.js → index-DiVhx1GM.js} +2 -2
- package/dist/web/assets/{info-C8b_tafZ.js → info-Dq2RsPDJ.js} +1 -1
- package/dist/web/assets/{jsonMode-BCKKQmmV.js → jsonMode-CvCYQHkB.js} +1 -1
- package/dist/web/assets/loader-circle-DBl6qqtR.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-DozmNUOx.js → lspLanguageFeatures-CjufNNFF.js} +1 -1
- package/dist/web/assets/{maximize-2-CByk9-zN.js → maximize-2-CKY8dua6.js} +1 -1
- package/dist/web/assets/{message-square-C889vRqm.js → message-square-CVDgKlKX.js} +1 -1
- package/dist/web/assets/{monaco.contribution-BITdsRbn.js → monaco.contribution-BYAgjZbj.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DxAV1oS5.js → monaco.contribution-BYY3-y9l.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BqA-XZ44.js → monaco.contribution-Bh0CKj9i.js} +2 -2
- package/dist/web/assets/{monaco.contribution-B9q6qbbo.js → monaco.contribution-PjJ1258q.js} +2 -2
- package/dist/web/assets/{monitor-BtxlcLuI.js → monitor-UYe42gew.js} +1 -1
- package/dist/web/assets/{paperclip-BeIdaspf.js → paperclip-DrlSVUoz.js} +1 -1
- package/dist/web/assets/{pdf-perlzwEB.js → pdf-BMhday2W.js} +1 -1
- package/dist/web/assets/play-DIqZnaNf.js +1 -0
- package/dist/web/assets/plus-CFNxAPMK.js +1 -0
- package/dist/web/assets/{presentation-0bzvu6_u.js → presentation-DcZKqH7w.js} +1 -1
- package/dist/web/assets/{python-B9hOnkOI.js → python-CiA01i07.js} +1 -1
- package/dist/web/assets/{refresh-cw-D61-Ozk3.js → refresh-cw-00D-GDnF.js} +1 -1
- package/dist/web/assets/{save-iEMNZoPe.js → save-CXe7bqR7.js} +1 -1
- package/dist/web/assets/{settings-lists-C84qxFmP.js → settings-lists-B5J40WM6.js} +1 -1
- package/dist/web/assets/square-DJEaBefe.js +1 -0
- package/dist/web/assets/{square-terminal-Djpzo2Qs.js → square-terminal-DxC7TTds.js} +1 -1
- package/dist/web/assets/{submit-issue-command-HfKzyxg5.js → submit-issue-command-Dq3TqJLV.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-ClsXu39R.js → toggleHighContrast-BH3Jckfo.js} +1 -1
- package/dist/web/assets/{training-model-data-CIysl8wH.js → training-model-data-B6IZ3x-t.js} +1 -1
- package/dist/web/assets/{tsMode-nbmaMc-D.js → tsMode-DXkj4bqC.js} +1 -1
- package/dist/web/assets/{upload-C6ug8RD-.js → upload-B3KRHVHl.js} +1 -1
- package/dist/web/assets/{useAccountSettings-Dr9h4Qz_.js → useAccountSettings-BGRkTRrp.js} +1 -1
- package/dist/web/assets/{useAgentInventory-ByCk2JAv.js → useAgentInventory-D_1AlAZJ.js} +1 -1
- package/dist/web/assets/{useChatContextSelection-C0eMm2g6.js → useChatContextSelection-hoMSuUSE.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-Do0y_leJ.js → useLocalAgentSchedules-DxTER7Ow.js} +1 -1
- package/dist/web/assets/{useQuery-D2MQ7e5U.js → useQuery-DkPec_9x.js} +1 -1
- package/dist/web/assets/{wifi-off-Dr-CapyW.js → wifi-off-CMzpvbWl.js} +1 -1
- package/dist/web/assets/{workers-DKvM2NdM.js → workers-ziY_bTv2.js} +1 -1
- package/dist/web/assets/x-omjwMPbJ.js +1 -0
- package/dist/web/assets/{yaml-C02vq4ar.js → yaml-mSvqVSko.js} +1 -1
- package/dist/web/index.html +1 -1
- package/docs/command-reference.md +11 -0
- package/package.json +1 -1
- package/dist/chunks/account-context-MWB6HN6I.js +0 -12
- package/dist/chunks/apps-RSFEJOQN.js +0 -2
- package/dist/chunks/chunk-27JGS3KB.js +0 -12
- package/dist/chunks/chunk-APKXXAUF.js +0 -2
- package/dist/chunks/chunk-DRTHKWHK.js +0 -6
- package/dist/chunks/chunk-JCLTFDVW.js +0 -2
- package/dist/chunks/chunk-KOC3YJEU.js +0 -12
- package/dist/chunks/chunk-KTIBXRWQ.js +0 -2
- package/dist/chunks/chunk-YDZBX4XQ.js +0 -2
- package/dist/chunks/connected-evidence-5VZBYNWN.js +0 -2
- package/dist/chunks/core-commands-BPYXVT7O.js +0 -2
- package/dist/chunks/datasets-E5TXSVIY.js +0 -2
- package/dist/chunks/desktop-test-FX7DTY4N.js +0 -3
- package/dist/chunks/evaluation-coordination-KUTZEEPB.js +0 -2
- package/dist/chunks/experiment-improvements-PQNR5YHN.js +0 -2
- package/dist/chunks/experiments-Z4BJWT3Y.js +0 -2
- package/dist/chunks/experiments-signal-3GCLKUWZ.js +0 -2
- package/dist/chunks/human-review-2ZOB7CJZ.js +0 -2
- package/dist/chunks/learning-LAXMGWSQ.js +0 -2
- package/dist/chunks/opchat-XXI2ZM53.js +0 -3
- package/dist/chunks/opchat-bounded-chat-3MZGCRLY.js +0 -2
- package/dist/chunks/organizations-W7HI2JA4.js +0 -2
- package/dist/chunks/project-agent-XRIXMXQK.js +0 -2
- package/dist/chunks/sandbox-command-HVA5FJU4.js +0 -2
- package/dist/chunks/setup-RMZ2BHLM.js +0 -2
- package/dist/chunks/training-hardware-UWQCRDMV.js +0 -3
- package/dist/chunks/training-hosted-CKSDRVL6.js +0 -2
- package/dist/web/assets/HostedModelLearningSettings-VNBvf38S.js +0 -1
- package/dist/web/assets/RightSidebarHomePanel-BfMMVkM1.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-CY-AHZ4-.js +0 -1
- package/dist/web/assets/chevron-down-DX1hzujj.js +0 -1
- package/dist/web/assets/chevron-right-DHN0y3KC.js +0 -1
- package/dist/web/assets/chevron-up-_QrW88NF.js +0 -1
- package/dist/web/assets/loader-circle-y-SSPwpk.js +0 -1
- package/dist/web/assets/play-CHXXdkuO.js +0 -1
- package/dist/web/assets/plus-DFFWjhPw.js +0 -1
- package/dist/web/assets/square-BE_4JMR3.js +0 -1
- package/dist/web/assets/x-Jx2jlP9u.js +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import"./chunk-W45RKGM6.js";import{u as O}from"./chunk-
|
|
2
|
+
import"./chunk-W45RKGM6.js";import{u as O}from"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import{a as l}from"./chunk-Y4E5AAI7.js";import"./chunk-CUB6PWAJ.js";import"./chunk-XRKFTPHD.js";import"./chunk-KHDCMVEJ.js";import"./chunk-PPF6EBTQ.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-KP2MYTP5.js";import"./chunk-PNPV2LDE.js";import"./chunk-4G3GTEVS.js";import"./chunk-KU4TPDPH.js";import"./chunk-55YD4UTW.js";import"./chunk-AFYYIJ6K.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-4PUOWSDE.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as i}from"./chunk-FTQLQJQV.js";import{existsSync as c}from"node:fs";import{createRequire as E}from"node:module";import s from"node:path";import{fileURLToPath as _}from"node:url";var p="24.18.0";function g(e=process.versions.node){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e),n=r?Number(r[1]):Number.NaN,o=r?Number(r[2]):Number.NaN;return n===24&&o>=18?null:[`OpenPond TUI requires Node.js ${p} or newer in the Node 24 release line; detected Node.js ${e}.`,`Switch Node versions and retry (with nvm: \`nvm install ${p} && nvm use ${p}\`).`].join(`
|
|
3
3
|
`)}i(g,"openPondTuiNodeRuntimeMessage");var u=s.dirname(_(import.meta.url)),m=class extends Error{constructor(n,o){super(n);this.exitCode=o;this.name="OpenPondChildProcessExitError"}exitCode;static{i(this,"OpenPondChildProcessExitError")}};async function F(e,r,n){let o=f(e==="app-server"?"app-server":"server"),t=[...o.args,e,...v(r),...n];e==="web"&&t.push(r.noOpen===!0||r.noOpen==="true"?"--print-access-url":"--open-browser");let a=e==="web"&&typeof r.webRoot!="string"?R():null;a&&t.push("--web-root",a),await P(o.runner,t,e==="app-server"?process.cwd():o.cwd)}i(F,"runOpenPondServerCommand");async function q(e,r){C(e);let n=g();if(n)throw new l(n);let o=f("terminal"),t=f("server"),a=[...o.args,"chat",...v(y(e)),...r];await P(o.runner,a,process.cwd(),{OPENPOND_SERVER_RUNNER:t.runner,OPENPOND_SERVER_ARGS:JSON.stringify(t.args),OPENPOND_SERVER_CWD:t.cwd})}i(q,"runOpenPondTerminalCommand");function h(){if(process.env.OPENPOND_FORCE_EMBEDDED_COMPANIONS==="1")return null;let e=[s.resolve(u,"../../../.."),s.resolve(u,"../../.."),process.cwd()];for(let r of e)if(c(s.join(r,"apps","server"))&&c(s.join(r,"apps","terminal")))return r;return null}i(h,"findWorkspaceRoot");function f(e){let r=h();if(r){let t=e==="app-server"?s.join(r,"apps","server","src","app-server-entry.ts"):s.join(r,"apps",e,"src","index.ts");if(c(t)){let d=E(s.join(r,"package.json"));return{runner:process.execPath,args:[d.resolve("tsx/cli"),t],cwd:r}}let a=e==="app-server"?s.join(r,"apps","server","dist","app-server-entry.js"):s.join(r,"apps",e,"dist","index.js");if(c(a))return{runner:process.execPath,args:[a],cwd:r}}let n=w(),o=e==="app-server"?"__app-server":e==="server"?"__server":"__terminal";if(n)return{runner:process.execPath,args:[n,o],cwd:s.dirname(s.dirname(n))};if(b())return{runner:process.execPath,args:[o],cwd:process.cwd()};throw new Error(`Could not find the installed OpenPond ${e} companion.`)}i(f,"resolveAppEntrypoint");function w(){for(let e of[s.resolve(u,"../cli.js"),s.resolve(u,"../../dist/cli.js")])if(c(e))return e;return null}i(w,"installedCliEntrypoint");function R(){if(!1){let n=s.join(s.dirname(process.execPath),"web");return c(s.join(n,"index.html"))?n:null}let e=w();if(!e)return null;let r=s.join(s.dirname(e),"web");return c(s.join(r,"index.html"))?r:null}i(R,"packagedWebRoot");function b(){if(!1)return!0;let e=process.argv[1];return!!(e&&s.resolve(e)===s.resolve(process.execPath))}i(b,"isCompiledExecutable");function v(e){let r=new Set(["account","handle","baseUrl","noOpen","tui","home"]),n=[];for(let[o,t]of Object.entries(e)){if(r.has(o))continue;let a=`--${o.replace(/[A-Z]/g,d=>`-${d.toLowerCase()}`)}`;if(t===!0||t==="true")n.push(a);else{if(t===!1||t==="false")continue;n.push(a,t)}}return n}i(v,"forwardedOptions");function y(e){let r=process.cwd(),n={...e};return typeof e.cwd=="string"&&e.cwd.trim().length>0&&(n.cwd=s.resolve(r,e.cwd)),typeof e.messageFile=="string"&&e.messageFile.trim().length>0&&(n.messageFile=s.resolve(r,e.messageFile)),n}i(y,"normalizeTerminalPaths");function C(e){if(typeof e.approvalPolicy=="string"&&!["on-request","never","on-failure","untrusted"].includes(e.approvalPolicy))throw new l("approval-policy must be on-request, never, on-failure, or untrusted");if(typeof e.sandbox=="string"&&!["read-only","workspace-write","danger-full-access"].includes(e.sandbox))throw new l("sandbox must be read-only, workspace-write, or danger-full-access")}i(C,"validateTerminalForwardingOptions");async function P(e,r,n,o){let t=await O(e,r,{cwd:n,detached:!1,env:o,inherit:!0,timeoutMs:0});if(t.code!==0||t.signal){let a=t.signal?`signal ${t.signal}`:`code ${t.code??"unknown"}`;throw new m(`${s.basename(e)} exited with ${a}`,t.code??1)}}i(P,"runChild");export{m as OpenPondChildProcessExitError,F as runOpenPondServerCommand,q as runOpenPondTerminalCommand};
|
package/dist/chunks/{app-server-connected-apps-TZOAUOYR.js → app-server-connected-apps-NH4667QJ.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as u}from"./chunk-
|
|
2
|
+
import{a as u}from"./chunk-2ACX7IW5.js";import{b as m}from"./chunk-BLNEHU62.js";import{a as d}from"./chunk-HLJJAOI2.js";import"./chunk-EJOV6Z6F.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-MZKCW6CB.js";import"./chunk-6FA3GG5B.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as i}from"./chunk-FTQLQJQV.js";async function x(o){let n=await u(),e=process.env.OPENPOND_SANDBOX_API_KEY?.trim()||process.env.OPENPOND_API_KEY?.trim()||n.token?.trim();if(!e)throw new Error("OpenPond account API key is required to resolve connected apps.");let t=process.env.OPENPOND_SANDBOX_API_URL?.trim(),s=m({apiKey:e,...t?{sandboxApiUrl:d(t,{apiBaseUrl:t})}:{baseUrl:n.apiBaseUrl}}),l=o.status??"active";if(o.teamId?.trim())return s.integrationConnections({teamId:o.teamId.trim(),status:l});let p=await s.listOrganizations(),a=I(p);if(a.length===0)return{teamId:null,connections:[]};let c=(await Promise.all(a.map(r=>s.integrationConnections({teamId:r,status:l}).catch(()=>null)))).filter(r=>!!r);return{teamId:c.find(r=>r.connections.length>0)?.teamId??c[0]?.teamId??a[0]??null,connections:f(c)}}i(x,"listAppServerIntegrationConnections");function I(o){return Array.from(new Set(o.flatMap(n=>{if(typeof n.status=="string"&&n.status!=="active")return[];let e=n.id,t=typeof n.teamId=="string"?n.teamId:typeof e=="string"?e:"";return t.trim()?[t.trim()]:[]})))}i(I,"activeTeamIds");function f(o){let n=new Map;for(let e of o)for(let t of e.connections)n.set(t.id,t);return[...n.values()]}i(f,"mergeConnections");export{x as listAppServerIntegrationConnections};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{l as c,m as d}from"./chunk-
|
|
2
|
+
import{l as c,m as d}from"./chunk-ZK3ET5EP.js";import"./chunk-TAXCMCYZ.js";import"./chunk-PKJHN666.js";import"./chunk-Z33RVGP6.js";import"./chunk-7PKDJHT6.js";import"./chunk-65WRWLUD.js";import"./chunk-54755JYM.js";import"./chunk-B66QCXH2.js";import{b}from"./chunk-PYNW5OFA.js";import"./chunk-MOXIGLN2.js";import"./chunk-RHMULF56.js";import"./chunk-VFH5C6D2.js";import"./chunk-UOFDKMRU.js";import"./chunk-AN525SPP.js";import"./chunk-IZ6DLEVY.js";import"./chunk-BGMAWETL.js";import"./chunk-65FJWWXG.js";import"./chunk-SYUKES6H.js";import"./chunk-EYTTZ5H4.js";import"./chunk-XY7HFXLH.js";import{e as a}from"./chunk-6I5AUTVO.js";import"./chunk-DKOVZ6R2.js";import"./chunk-N5EAVX4G.js";import"./chunk-U7X5ZLAL.js";import"./chunk-7PXZ4X4P.js";import"./chunk-N73MU2C3.js";import"./chunk-SO4GMSNP.js";import"./chunk-NMMHXYDJ.js";import"./chunk-QLGP2OAQ.js";import"./chunk-WZ35ICTE.js";import"./chunk-VS2LOUCT.js";import"./chunk-DMFUEUAZ.js";import"./chunk-AFKFN25T.js";import"./chunk-G4747MOW.js";import"./chunk-GF55VEMR.js";import"./chunk-FAKDGLZQ.js";import"./chunk-KCJVFLBB.js";import"./chunk-GW766ZSO.js";import"./chunk-VJYOKU3C.js";import"./chunk-SSJV3VX7.js";import"./chunk-7KWD2I6W.js";import"./chunk-2ACX7IW5.js";import"./chunk-OFJPOTES.js";import"./chunk-PLROXHG2.js";import"./chunk-YU3C6U5V.js";import"./chunk-PHZZBXDO.js";import"./chunk-KVTBX2UP.js";import"./chunk-U7D6Q744.js";import"./chunk-HG2YFMVU.js";import"./chunk-OQPJ7FJF.js";import"./chunk-BL3CZWWD.js";import"./chunk-FYWQWKVS.js";import"./chunk-GD3RCUDH.js";import"./chunk-7OKZCJHS.js";import"./chunk-UTIELP6F.js";import"./chunk-7NCM6GBN.js";import"./chunk-4V73I4OL.js";import"./chunk-LE75SVEL.js";import"./chunk-6ESBAHWK.js";import"./chunk-LZPCA6DH.js";import"./chunk-L3KS6MOV.js";import"./chunk-7J2NMUTK.js";import"./chunk-VEBW7NKD.js";import"./chunk-W45RKGM6.js";import"./chunk-AUO5DCEU.js";import"./chunk-Y4I6CFZJ.js";import"./chunk-4BUM6JEC.js";import"./chunk-UGFSAG4U.js";import"./chunk-SSHE6B7Z.js";import"./chunk-JFXINDOQ.js";import"./chunk-EDYCSW22.js";import"./chunk-JT5YQ52I.js";import"./chunk-XGY4OQLC.js";import"./chunk-PAYFJHPO.js";import"./chunk-WD4KAKEX.js";import"./chunk-2PXKSAG6.js";import"./chunk-ULTV6INR.js";import"./chunk-WGQ3FMRF.js";import"./chunk-JXLDEYRW.js";import"./chunk-JVMSN7LH.js";import"./chunk-YI6ME6PU.js";import"./chunk-DRLP7GIU.js";import"./chunk-BU6MW65V.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-DXJC3QW7.js";import"./chunk-P4QM63L3.js";import"./chunk-MTP3B2SU.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-4PUOWSDE.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-EJOV6Z6F.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-MZKCW6CB.js";import"./chunk-6FA3GG5B.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import"./chunk-FTQLQJQV.js";export{a as AGENT_PROTOCOL_VERSION,c as APP_SERVER_COMPOSITION,d as createOpenPondAppServer,b as runAppServerJsonl};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{f as $,g as J,h as L,i as v,j as q}from"./chunk-HYUTDZ3N.js";import{c as y}from"./chunk-RFQD6B44.js";import"./chunk-Y4E5AAI7.js";import"./chunk-CUB6PWAJ.js";import"./chunk-XRKFTPHD.js";import{b as H,c as Q}from"./chunk-22UARBPW.js";import{I as C,J as G,K as k,N as W,P as M,R as z,S as F,b as D,l as K,q as V,r as _}from"./chunk-KHDCMVEJ.js";import"./chunk-PPF6EBTQ.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import{d as m}from"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-KP2MYTP5.js";import"./chunk-PNPV2LDE.js";import"./chunk-4G3GTEVS.js";import"./chunk-KU4TPDPH.js";import"./chunk-55YD4UTW.js";import"./chunk-AFYYIJ6K.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-4PUOWSDE.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{f,h as g}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{a as S,f as w,j as T,k as j}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as p}from"./chunk-FTQLQJQV.js";async function ie(){let e=await m(),s=f(e),t=await y(e,s),n=g(e),r=await L({apiBase:n,apiKey:t});console.log(JSON.stringify(r,null,2))}p(ie,"runAppsTools");async function se(e){let s=await m(),t=f(s),n=g(s),r=await y(s,t),i=typeof e.handle=="string"?String(e.handle):void 0,o=i?$(i):null,c=e.refresh!==void 0?w(e.refresh):void 0,l=await J({apiBase:n,apiKey:r,forceRefresh:c}),u=o?l.filter(a=>$(a.handle||a.gitOwner)===o):l;if(u.length===0){console.log("no apps found");return}if(w(e.json)){console.log(JSON.stringify({apps:u},null,2));return}for(let a of u){let d=a.handle||a.gitOwner||"unknown",h=a.repo||a.gitRepo||a.id,B=a.latestDeployment?.status||"no-deploy",R=a.latestDeployment?.gitBranch||a.defaultBranch||"-",I=a.codeVisibility||"unknown",E=a.sandbox?"yes":"no";console.log(`${d}/${h} ${B} ${R} code=${I} sandbox=${E} ${a.id}`)}}p(se,"runAppsList");async function oe(e,s){let t=typeof e.visibility=="string"?e.visibility.trim():typeof e.codeVisibility=="string"?e.codeVisibility.trim():"";if(t!=="public"&&t!=="private")throw new Error("usage: apps code-visibility <handle>/<repo> --visibility public|private");let n=await m(),r=f(n),i=g(n),o=await y(n,r),{app:c,handle:l,repo:u}=await v(i,o,s),a=await K(i,o,c.id,t);console.log(`${l}/${u} code_visibility=${a.app?.codeVisibility??t} app_id=${c.id}`)}p(oe,"runAppsCodeVisibility");async function ae(e){let s=await m(),t=f(s),n=await y(s,t),r=g(s),i=typeof e.appId=="string"?String(e.appId):void 0,o=await G(r,n,{appId:i});console.log(JSON.stringify(o,null,2))}p(ae,"runAppsPerformance");async function ce(e,s){let t=await m(),n=f(t),r=g(t),i=await y(t,n),{app:o}=await v(r,i,s),c=await k(r,i,o.id);console.log(JSON.stringify(c,null,2))}p(ce,"runAppsSummary");async function le(e,s,t,n){let r=(typeof e.prompt=="string"?e.prompt:null)||n.join(" ");if(!r.trim())throw new Error("usage: apps assistant <plan|performance> <handle>/<repo> --prompt <text>");let i=await m(),o=f(i),c=g(i),l=await y(i,o),{app:u}=await v(c,l,t),a=await W(c,l,{appId:u.id,mode:s,prompt:r.trim()});console.log(JSON.stringify(a,null,2))}p(le,"runAppsAssistant");async function de(e,s){let t=await m(),n=f(t),r=await y(t,n),i=g(t),o=(typeof e.prompt=="string"?e.prompt:null)||s.join(" ");if(!o.trim())throw new Error("usage: apps agent create --prompt <text> [--team-id <id>]");let c=typeof e.templateRepoUrl=="string"?e.templateRepoUrl:void 0,l=typeof e.templateBranch=="string"?e.templateBranch:void 0,u=typeof e.templateLocalPath=="string"?e.templateLocalPath:void 0,a=typeof e.teamId=="string"&&e.teamId.trim()?e.teamId.trim():void 0;if(u&&String(u).trim().length>0)throw new Error("templateLocalPath is not supported; use templateRepoUrl");let d=typeof e.env=="string"?S(e.env,"env"):void 0;if(d){if(typeof d!="object"||Array.isArray(d))throw new Error("env must be a JSON object");for(let[b,A]of Object.entries(d))if(typeof A!="string")throw new Error(`env value for ${b} must be a string`)}let h=c||l||d?{templateRepoUrl:c,templateBranch:l,envVars:d}:void 0,B=typeof e.deployEnvironment=="string"?e.deployEnvironment==="preview"?"preview":"production":void 0,R=e.deployDisabled!==void 0?w(e.deployDisabled):void 0,I=e.streamDeployLogs!==void 0?w(e.streamDeployLogs):!0,E=await C(i,r,{prompt:o.trim(),...a?{teamId:a}:{},...h?{template:h}:{},...B?{deployEnvironment:B}:{},...R!==void 0?{deployDisabled:R}:{},streamDeployLogs:I});if(!E.ok){let b=await E.text().catch(()=>"");throw new Error(`agent create failed: ${E.status} ${b}`)}let N=null,O=null,P=null;await H(E,{onConversationId:p(b=>{N=b},"onConversationId"),onItems:p(b=>{for(let A of b){let U=Q(A);U&&console.log(U);let x=A;!O&&typeof x.appId=="string"&&(O=x.appId),!P&&typeof x.deploymentId=="string"&&(P=x.deploymentId)}},"onItems")}),N&&console.log(`conversation_id: ${N}`),O&&console.log(`app_id: ${O}`),P&&console.log(`deployment_id: ${P}`);try{await J({apiBase:i,apiKey:r,forceRefresh:!0}),await L({apiBase:i,apiKey:r,forceRefresh:!0})}catch(b){console.warn("cache refresh failed",b)}}p(de,"runAppsAgentCreate");async function pe(e,s,t,n){let r=await m(),i=f(r),o=await y(r,i),c=g(r),l=typeof e.method=="string"?String(e.method).toUpperCase():void 0,u=l&&["GET","POST","PUT","DELETE"].includes(l)?l:void 0;if(l&&!u)throw new Error("method must be GET, POST, PUT, or DELETE");let a=typeof e.body=="string"?S(String(e.body),"body"):void 0,d=typeof e.headers=="string"?S(String(e.headers),"headers"):void 0,h=typeof e.scheduleId=="string"?String(e.scheduleId):void 0,B=w(e.notifyEmail),R=w(e.summary)||w(e.withSummary),I=await M(c,o,{appId:s,deploymentId:t,toolName:n,scheduleId:h,method:u,body:a,headers:d,notifyEmail:B||void 0});if(console.log(JSON.stringify(I,null,2)),R&&I.ok){let E=await k(c,o,s);console.log(JSON.stringify({summary:E},null,2))}}p(pe,"runAppsToolsExecute");async function ue(e,s){let t=typeof e.env=="string"?e.env:typeof e.vars=="string"?e.vars:typeof e.envVars=="string"?e.envVars:null;if(!t)throw new Error("usage: apps env set <handle>/<repo> --env <json>");let n=S(t,"env");if(!n||typeof n!="object"||Array.isArray(n))throw new Error("env must be a JSON object");let r={};for(let[d,h]of Object.entries(n)){if(typeof h!="string")throw new Error(`env value for ${d} must be a string`);if(!d.startsWith("OPENTOOL_PUBLIC_"))throw new Error("only OPENTOOL_PUBLIC_ env vars can be set");r[d]=h}let i=await m(),o=f(i),c=g(i),l=await y(i,o),{app:u}=await v(c,l,s),a=await V(c,l,u.id,{envVars:r});console.log(JSON.stringify(a,null,2))}p(ue,"runAppsEnvSet");async function fe(e,s){let t=await m(),n=f(t),r=g(t),i=await y(t,n),{app:o}=await v(r,i,s),c=await _(r,i,o.id);console.log(JSON.stringify(c,null,2))}p(fe,"runAppsEnvGet");async function ge(e,s){let t=await m(),n=f(t),r=g(t),i=await y(t,n),{app:o,handle:c,repo:l}=await v(r,i,s),u=typeof e.env=="string"?e.env:typeof e.environment=="string"?e.environment:void 0,a=j(u),d=await D(r,i,o.id,{environment:a});console.log(JSON.stringify(d,null,2)),(w(e.watch)||w(e.wait)||w(e.follow))&&await q({baseUrl:r,apiKey:i,deploymentId:d.deploymentId,prefix:`[${c}/${l}] `,intervalMs:e.interval?Number(e.interval):void 0,timeoutMs:e.timeout?Number(e.timeout):void 0})}p(ge,"runAppsDeploy");function X(e){let s={};if(typeof e.params=="string"){let n=S(String(e.params),"params");if(!n||typeof n!="object"||Array.isArray(n))throw new Error("params must be a JSON object");for(let[r,i]of Object.entries(n))i!==void 0&&(s[r]=typeof i=="string"?i:JSON.stringify(i))}let t=p((n,r)=>{r===void 0||r===""||(s[n]=r)},"addParam");if(t("source",typeof e.source=="string"?e.source.trim():void 0),t("symbol",typeof e.symbol=="string"?e.symbol.trim():void 0),t("cursor",typeof e.cursor=="string"?e.cursor.trim():void 0),t("status",typeof e.status=="string"?e.status.trim():void 0),t("backtestRunId",typeof e.runId=="string"?e.runId.trim():typeof e.backtestRunId=="string"?e.backtestRunId.trim():void 0),t("since",T(e.since,"since")),t("until",T(e.until,"until")),typeof e.limit=="string"&&e.limit.trim().length>0){let n=Number.parseInt(e.limit,10);if(!Number.isFinite(n))throw new Error("limit must be a number");t("limit",String(n))}return Object.keys(s).length?s:void 0}p(X,"resolveBacktestEventsParams");async function me(e,s){let t=await m(),n=f(t),r=await y(t,n),i=g(t),{app:o}=await v(i,r,s),c={...X(e)??{},appId:o.id},l=await z(i,r,{method:"GET",query:c});console.log(JSON.stringify(l,null,2))}p(me,"runBacktestEvents");async function ye(e,s){let t=typeof e.runId=="string"?e.runId.trim():typeof e.backtestRunId=="string"?e.backtestRunId.trim():"";if(!t)throw new Error("usage: backtest get <handle>/<repo> --run-id <id>");let n=await m(),r=f(n),i=await y(n,r),o=g(n),{app:c}=await v(o,i,s),l=await F(o,i,{appId:c.id,runId:t});console.log(JSON.stringify(l,null,2))}p(ye,"runBacktestGet");export{X as resolveBacktestEventsParams,de as runAppsAgentCreate,le as runAppsAssistant,oe as runAppsCodeVisibility,ge as runAppsDeploy,fe as runAppsEnvGet,ue as runAppsEnvSet,se as runAppsList,ae as runAppsPerformance,ce as runAppsSummary,ie as runAppsTools,pe as runAppsToolsExecute,me as runBacktestEvents,ye as runBacktestGet};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as me,b as he,d as ye,e as D}from"./chunk-4N4EH3RJ.js";import{a as L,b as ge,c as Pe,d as we,e as Oe}from"./chunk-GY7YSD6J.js";import{j as xe}from"./chunk-KUE46HTH.js";import{d as N,e as E}from"./chunk-JCLTFDVW.js";import{E as ae,h as re}from"./chunk-2MEOUS24.js";import{d as Ae}from"./chunk-HNQPEOJD.js";import{a}from"./chunk-FTQLQJQV.js";var Le=new URL(E).hostname,be=new URL(N).hostname,$e=`${E}/opchat/v1`;function l(e){if(!e)return null;let t=e.trim();return t?t.replace(/\/+$/,""):null}a(l,"normalizeBaseUrl");function X(e){let t=l(e);if(!t)return null;try{let o=new URL(t).hostname.toLowerCase();if(o===Le)return E;if(o===be||o===`www.${be}`||o==="openpond.live"||o==="www.openpond.live")return E;if(o.startsWith("api."))return t}catch{return null}return null}a(X,"mapUiBaseToApiBase");function Y(e,t){let n=l(process.env.OPENPOND_API_URL);if(n)return n;let o=l(e?.apiBaseUrl);if(o)return o;let r=l(t.apiBaseUrl);if(r)return r;let s=X(process.env.OPENPOND_BASE_URL);return s||(X(e?.baseUrl||t.baseUrl)??E)}a(Y,"resolvePublicApiBaseUrl");function Q(e,t,n){return He(e,t,n)}a(Q,"resolveHostedChatApiBaseUrl");function He(e,t,n){let o=typeof process<"u"?process.env:{};return J(o.OPENPOND_OPCHAT_API_URL)??J(e?.chatApiBaseUrl??t.chatApiBaseUrl)??J(o.OPENPOND_CHAT_API_URL)??Me(n)}a(He,"resolveOpChatApiBaseUrl");function J(e){let t=l(e);if(!t)return null;try{let n=new URL(t),o=n.pathname.split("/").filter(Boolean),r=o.findIndex(i=>i.toLowerCase()==="opchat");return r>=0?(n.pathname=`/${[...o.slice(0,r+1),"v1"].join("/")}`,n.search="",n.hash="",l(n.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(n.pathname="/opchat/v1",n.search="",n.hash="",l(n.toString())??null):(n.pathname=`${n.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),n.search="",n.hash="",l(n.toString())??null)}catch{return null}}a(J,"normalizeOpChatApiBaseUrl");function Me(e){return J(e)??$e}a(Me,"opChatBaseFromPublicApiBase");function $(e){return e?.trim()?e.trim():"production"}a($,"deriveEnvironment");function Z(e,t=process.env){let n=[e?.apiKey,e?.session?.token,e?.token,t.OPENPOND_API_KEY];for(let o of n){let r=typeof o=="string"?o.trim():"";if(r)return r}return null}a(Z,"accountToken");function P(e,t){return!!(e&&t&&e.toLowerCase()===t.toLowerCase())}a(P,"handleEquals");function b(e,t){return l(e)===l(t)}a(b,"baseUrlEquals");function q(e,t){return`${e?.trim().toLowerCase()||""}|${l(t)??"default"}`}a(q,"profileKey");function ee(e){return l(e?.baseUrl)}a(ee,"selectorBaseUrl");function v(e){let t=l(e.baseUrl);return t?{handle:e.handle,baseUrl:t}:{handle:e.handle}}a(v,"selectorFromAccount");function A(e){let t=typeof e?.handle=="string"?e.handle.trim():"";if(!t)return null;let n=l(e?.baseUrl);return n?{handle:t,baseUrl:n}:{handle:t}}a(A,"normalizeActiveProfile");function U(e,t){if(!P(e.handle,t.handle))return!1;let n=ee(t);return n?b(e.baseUrl,n):!l(e.baseUrl)}a(U,"accountMatchesSelector");function se(e,t){if(!P(e.handle,t.handle))return!1;let n=ee(t);return n?b(e.baseUrl,n):!l(e.baseUrl)}a(se,"profileMatchesSelector");function Ue(e,t,n){let o=Array.isArray(e.accounts)?e.accounts:[],r=t||process.env.OPENPOND_ACCOUNT?A({handle:t||process.env.OPENPOND_ACCOUNT||"",baseUrl:n??process.env.OPENPOND_BASE_URL??null}):A(e.activeProfile);if(r){let s=o.find(c=>U(c,r));if(s)return s;if(l(n??process.env.OPENPOND_BASE_URL))return null;let i=o.filter(c=>P(c.handle,r.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}a(Ue,"findActiveAccount");function ke(e){let t=Array.isArray(e.accounts)?e.accounts:[],n=A(e.activeProfile)??(t[0]?v(t[0]):null);return ie(t.map(o=>({handle:o.handle,baseUrl:l(o.baseUrl),apiBaseUrl:l(o.apiBaseUrl),chatApiBaseUrl:l(o.chatApiBaseUrl),environment:$(o.environment),isActive:n?U(o,n):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}a(ke,"fallbackProfilesFromConfig");function ie(e){let t=new Map;for(let n of e){let o=l(n.baseUrl),r=`${n.handle.toLowerCase()}|${o??"default"}`,s={...n,baseUrl:o,apiBaseUrl:l(n.apiBaseUrl),chatApiBaseUrl:l(n.chatApiBaseUrl),environment:$(n.environment),isActive:n.isActive},i=t.get(r);(!i||s.isActive&&!i.isActive||s.hasApiKey&&!i.hasApiKey)&&t.set(r,s)}return Array.from(t.values())}a(ie,"normalizeProfiles");function Ee(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}a(Ee,"profileAuthHealth");function ze(e,t){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||t,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}a(ze,"normalizeHealth");function _e(e){let t=e?.account;return t?{id:t.id??null,email:t.email??null,name:t.name??null,handle:t.handle??null,image:t.image??null,timezone:t.timezone??null,isAdmin:t.isAdmin??null,isVerified:t.isVerified??null,dailyAgentAppId:t.dailyAgentAppId??null,dailyAgentDeploymentId:t.dailyAgentDeploymentId??null,credits:t.credits??null}:null}a(_e,"normalizeProfile");function Fe(e){return(e??[]).map(t=>({...t,id:t.id||t.userProductId||t.openPondProductId||t.name,name:t.name,type:t.type,status:t.status,isActive:t.isActive??null,price:t.price??null,currency:t.currency??null,credits:t.credits??null}))}a(Fe,"normalizeProducts");function je(e){return e.handle.trim().toLowerCase()==="default"&&!l(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}a(je,"isEmptyDefaultProfile");function Ke(e){let t=e?.trim();return t?t.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${t.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}a(Ke,"apiKeyHint");function qe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}a(qe,"apiKeyAccess");function H(e){let{config:t,profiles:n,account:o,token:r,apiBaseUrl:s,accountResponse:i,accountProfiles:c,health:m,authFailed:g,error:f}=e,w=Q(o,t,s),h=_e(i??null),C=A(t.activeProfile),B=(o?v(o):null)??C,O=h?.handle||o?.handle||B?.handle||null,I=(B?n.find(p=>se(p,B)):null)??n.find(p=>p.isActive)??null,y=g?"auth_error":r?"signed_in":"signed_out",d=h?.name||h?.handle||h?.email||O||"Signed out",R=l(I?.baseUrl||o?.baseUrl||N),k=$(I?.environment||o?.environment),x=A(B)??(O?A({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),j=(n.length>0?n:O?[{handle:O,baseUrl:ee(x)??l(o?.baseUrl),apiBaseUrl:s,chatApiBaseUrl:w,environment:k,isActive:!0,hasApiKey:!!r,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(p=>!je(p));return{state:y,activeProfile:x,label:d,email:h?.email??null,avatarUrl:h?.image??null,environment:k,baseUrl:R,apiBaseUrl:s,chatApiBaseUrl:w,creditsLabel:h?.credits??null,profile:h,products:Fe(i?.products),apiHealth:ze(m??null,s),accounts:j.map(p=>{let T=l(p.baseUrl),De=t.accounts?.find(fe=>P(fe.handle,p.handle)&&b(fe.baseUrl,T)),oe=c?.[q(p.handle,T)]??null,K=_e(oe?.response??null);return{handle:p.handle,baseUrl:T,apiBaseUrl:l(p.apiBaseUrl),chatApiBaseUrl:l(p.chatApiBaseUrl),environment:$(p.environment),isActive:x?se(p,x):!1,authHealth:oe?.authFailed?"auth_error":Ee(p),displayLabel:K?.name||K?.handle||K?.email||p.handle,email:K?.email??null,avatarUrl:K?.image??null,apiKeyHint:Ke(De?.apiKey),apiKeyAccess:qe(oe?.response??null)}}),error:f??m?.error??null}}a(H,"toAccountState");async function Ge(e){try{return ie(await Pe())}catch{return ke(e)}}a(Ge,"loadProfiles");async function u(e,t){let n=await ge(),o=await Ge(n),r=Ue(n,e,t),s=Z(r),i=Y(r,n),c=Q(r,n,i);return{config:n,profiles:o,account:r,token:s,apiBaseUrl:i,chatApiBaseUrl:c,accountState:H({config:n,profiles:o,account:r,token:s,apiBaseUrl:i})}}a(u,"loadOpenPondAccountContext");async function We(e){let t=l(e.baseUrl);return await we(e.handle,{baseUrl:t}),u(e.handle,t)}a(We,"switchOpenPondAccount");import{createHash as Ve}from"node:crypto";function le(e){return Ve("sha256").update(JSON.stringify([e.accountState.activeProfile,e.apiBaseUrl,e.chatApiBaseUrl,e.token])).digest("hex")}a(le,"authorityKey");var G=null,M=null;async function Je(e){let t=le(e);if(G?.key===t&&G.expiresAt>Date.now())return G.response;if(M?.key===t)return M.promise;G=null;let n={key:t,promise:D(e.apiBaseUrl,e.token)};M=n;try{let o=await n.promise;return M===n&&o.account?.id&&(G={key:t,response:o,expiresAt:Date.now()+5e3}),o}finally{M===n&&(M=null)}}a(Je,"authenticate");async function Xe(){let e=await u();if(!e.token)return e;let t=await Je(e),n=await u();if(le(n)!==le(e))throw new Error("openpond_account_authority_changed");if(!t.account?.id)throw new Error("openpond_authenticated_owner_unavailable");return{...n,accountState:H({...n,accountResponse:t})}}a(Xe,"loadAuthenticatedOpenPondAccountContext");import{randomUUID as Ye}from"node:crypto";function z(e){return e instanceof Error?e.message:String(e)}a(z,"errorMessage");var Qe=15e3;function Ze(e){return e===ae?"OpenPond Chat":e==="deepseek-v4-flash"?"DeepSeek V4 Flash":e.replace(/[-_/]+/g," ")}a(Ze,"displayNameForHostedModel");function et(e){let t=typeof e.id=="string"?e.id:null;return t?{id:t,displayName:Ze(t),ownedBy:typeof e.owned_by=="string"?e.owned_by:null,streaming:!0,raw:e}:null}a(et,"normalizeHostedModel");async function tt(){let e=await u();if(!e.token)return{models:[],error:"No OpenPond API key or session token is configured."};try{return{models:(await rt({apiBaseUrl:e.chatApiBaseUrl,token:e.token})).data.map(o=>et(o)).filter(o=>!!o),error:null}}catch(t){return{models:[],error:z(t)}}}a(tt,"loadOpenPondHostedModels");async function nt(){let e=await u();if(!e.token)return{catalog:null,error:"No OpenPond API key or session token is configured."};let t=new AbortController,n=setTimeout(()=>{t.abort(new Error("OpenPond provider catalog request timed out."))},Qe);try{return{catalog:await Se({apiBaseUrl:e.chatApiBaseUrl,token:e.token,signal:t.signal}),error:null}}catch(o){return{catalog:null,error:z(o)}}finally{clearTimeout(n)}}a(nt,"loadOpenPondProviderCatalog");async function*ot(e){let t=await u();if(!t.token)throw new Error("OpenPond is signed out. Add an account in Settings before using OpenPond Chat.");yield*Ce({apiBaseUrl:t.chatApiBaseUrl,token:t.token,model:e.model||ae,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,requestId:e.requestId,reasoningEffort:e.reasoningEffort,maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,signal:e.signal})}a(ot,"streamOpenPondHostedChatTurn");async function rt(e){let t=ce(e.apiBaseUrl,"models"),n=await fetch(t,{method:"GET",headers:ue(e.token,"application/json"),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat model list failed: ${n.status} ${await de(n)}`);return await n.json()}a(rt,"listOpChatModels");async function Se(e){let t=ce(e.apiBaseUrl,"provider-catalog"),n=await fetch(t,{method:"GET",headers:ue(e.token,"application/json"),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat provider catalog failed: ${n.status} ${await de(n)}`);let o=await n.json();return!o||typeof o!="object"||!Array.isArray(o.providers)?re.parse(o):re.parse({...o,providers:o.providers.filter(r=>r!==null&&typeof r=="object"&&Ae.safeParse(r.id).success)})}a(Se,"listOpChatProviderCatalog");async function*Ce(e){let t=ce(e.apiBaseUrl,"chat/completions"),n=await fetch(t,{method:"POST",headers:ue(e.token,"text/event-stream",e.requestId),body:JSON.stringify(ut(e,!0)),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat request failed: ${n.status} ${await de(n)}`);if(!n.body)throw new Error("OpenPond OpChat request failed: streaming response body is missing.");let o=new Map,r=!1,s=null,i={},c="",m=null,g=at(n.headers),f=n.body.getReader(),w=new TextDecoder,h="",C=[],ne=a(()=>{if(C.length===0)return[];let y=C.join(`
|
|
2
|
+
import{a as me,b as he,d as ye,e as D}from"./chunk-EJOV6Z6F.js";import{a as L,b as ge,c as Pe,d as we,e as Oe}from"./chunk-GY7YSD6J.js";import{j as xe}from"./chunk-KUE46HTH.js";import{d as N,e as E}from"./chunk-MZKCW6CB.js";import{E as ae,h as re}from"./chunk-2MEOUS24.js";import{d as Ae}from"./chunk-HNQPEOJD.js";import{a}from"./chunk-FTQLQJQV.js";var Le=new URL(E).hostname,be=new URL(N).hostname,$e=`${E}/opchat/v1`;function l(e){if(!e)return null;let t=e.trim();return t?t.replace(/\/+$/,""):null}a(l,"normalizeBaseUrl");function X(e){let t=l(e);if(!t)return null;try{let o=new URL(t).hostname.toLowerCase();if(o===Le)return E;if(o===be||o===`www.${be}`||o==="openpond.live"||o==="www.openpond.live")return E;if(o.startsWith("api."))return t}catch{return null}return null}a(X,"mapUiBaseToApiBase");function Y(e,t){let n=l(process.env.OPENPOND_API_URL);if(n)return n;let o=l(e?.apiBaseUrl);if(o)return o;let r=l(t.apiBaseUrl);if(r)return r;let s=X(process.env.OPENPOND_BASE_URL);return s||(X(e?.baseUrl||t.baseUrl)??E)}a(Y,"resolvePublicApiBaseUrl");function Q(e,t,n){return He(e,t,n)}a(Q,"resolveHostedChatApiBaseUrl");function He(e,t,n){let o=typeof process<"u"?process.env:{};return J(o.OPENPOND_OPCHAT_API_URL)??J(e?.chatApiBaseUrl??t.chatApiBaseUrl)??J(o.OPENPOND_CHAT_API_URL)??Me(n)}a(He,"resolveOpChatApiBaseUrl");function J(e){let t=l(e);if(!t)return null;try{let n=new URL(t),o=n.pathname.split("/").filter(Boolean),r=o.findIndex(i=>i.toLowerCase()==="opchat");return r>=0?(n.pathname=`/${[...o.slice(0,r+1),"v1"].join("/")}`,n.search="",n.hash="",l(n.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(n.pathname="/opchat/v1",n.search="",n.hash="",l(n.toString())??null):(n.pathname=`${n.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),n.search="",n.hash="",l(n.toString())??null)}catch{return null}}a(J,"normalizeOpChatApiBaseUrl");function Me(e){return J(e)??$e}a(Me,"opChatBaseFromPublicApiBase");function $(e){return e?.trim()?e.trim():"production"}a($,"deriveEnvironment");function Z(e,t=process.env){let n=[e?.apiKey,e?.session?.token,e?.token,t.OPENPOND_API_KEY];for(let o of n){let r=typeof o=="string"?o.trim():"";if(r)return r}return null}a(Z,"accountToken");function P(e,t){return!!(e&&t&&e.toLowerCase()===t.toLowerCase())}a(P,"handleEquals");function b(e,t){return l(e)===l(t)}a(b,"baseUrlEquals");function q(e,t){return`${e?.trim().toLowerCase()||""}|${l(t)??"default"}`}a(q,"profileKey");function ee(e){return l(e?.baseUrl)}a(ee,"selectorBaseUrl");function v(e){let t=l(e.baseUrl);return t?{handle:e.handle,baseUrl:t}:{handle:e.handle}}a(v,"selectorFromAccount");function A(e){let t=typeof e?.handle=="string"?e.handle.trim():"";if(!t)return null;let n=l(e?.baseUrl);return n?{handle:t,baseUrl:n}:{handle:t}}a(A,"normalizeActiveProfile");function U(e,t){if(!P(e.handle,t.handle))return!1;let n=ee(t);return n?b(e.baseUrl,n):!l(e.baseUrl)}a(U,"accountMatchesSelector");function se(e,t){if(!P(e.handle,t.handle))return!1;let n=ee(t);return n?b(e.baseUrl,n):!l(e.baseUrl)}a(se,"profileMatchesSelector");function Ue(e,t,n){let o=Array.isArray(e.accounts)?e.accounts:[],r=t||process.env.OPENPOND_ACCOUNT?A({handle:t||process.env.OPENPOND_ACCOUNT||"",baseUrl:n??process.env.OPENPOND_BASE_URL??null}):A(e.activeProfile);if(r){let s=o.find(c=>U(c,r));if(s)return s;if(l(n??process.env.OPENPOND_BASE_URL))return null;let i=o.filter(c=>P(c.handle,r.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}a(Ue,"findActiveAccount");function ke(e){let t=Array.isArray(e.accounts)?e.accounts:[],n=A(e.activeProfile)??(t[0]?v(t[0]):null);return ie(t.map(o=>({handle:o.handle,baseUrl:l(o.baseUrl),apiBaseUrl:l(o.apiBaseUrl),chatApiBaseUrl:l(o.chatApiBaseUrl),environment:$(o.environment),isActive:n?U(o,n):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}a(ke,"fallbackProfilesFromConfig");function ie(e){let t=new Map;for(let n of e){let o=l(n.baseUrl),r=`${n.handle.toLowerCase()}|${o??"default"}`,s={...n,baseUrl:o,apiBaseUrl:l(n.apiBaseUrl),chatApiBaseUrl:l(n.chatApiBaseUrl),environment:$(n.environment),isActive:n.isActive},i=t.get(r);(!i||s.isActive&&!i.isActive||s.hasApiKey&&!i.hasApiKey)&&t.set(r,s)}return Array.from(t.values())}a(ie,"normalizeProfiles");function Ee(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}a(Ee,"profileAuthHealth");function ze(e,t){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||t,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}a(ze,"normalizeHealth");function _e(e){let t=e?.account;return t?{id:t.id??null,email:t.email??null,name:t.name??null,handle:t.handle??null,image:t.image??null,timezone:t.timezone??null,isAdmin:t.isAdmin??null,isVerified:t.isVerified??null,dailyAgentAppId:t.dailyAgentAppId??null,dailyAgentDeploymentId:t.dailyAgentDeploymentId??null,credits:t.credits??null}:null}a(_e,"normalizeProfile");function Fe(e){return(e??[]).map(t=>({...t,id:t.id||t.userProductId||t.openPondProductId||t.name,name:t.name,type:t.type,status:t.status,isActive:t.isActive??null,price:t.price??null,currency:t.currency??null,credits:t.credits??null}))}a(Fe,"normalizeProducts");function je(e){return e.handle.trim().toLowerCase()==="default"&&!l(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}a(je,"isEmptyDefaultProfile");function Ke(e){let t=e?.trim();return t?t.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${t.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}a(Ke,"apiKeyHint");function qe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}a(qe,"apiKeyAccess");function H(e){let{config:t,profiles:n,account:o,token:r,apiBaseUrl:s,accountResponse:i,accountProfiles:c,health:m,authFailed:g,error:f}=e,w=Q(o,t,s),h=_e(i??null),C=A(t.activeProfile),B=(o?v(o):null)??C,O=h?.handle||o?.handle||B?.handle||null,I=(B?n.find(p=>se(p,B)):null)??n.find(p=>p.isActive)??null,y=g?"auth_error":r?"signed_in":"signed_out",d=h?.name||h?.handle||h?.email||O||"Signed out",R=l(I?.baseUrl||o?.baseUrl||N),k=$(I?.environment||o?.environment),x=A(B)??(O?A({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),j=(n.length>0?n:O?[{handle:O,baseUrl:ee(x)??l(o?.baseUrl),apiBaseUrl:s,chatApiBaseUrl:w,environment:k,isActive:!0,hasApiKey:!!r,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(p=>!je(p));return{state:y,activeProfile:x,label:d,email:h?.email??null,avatarUrl:h?.image??null,environment:k,baseUrl:R,apiBaseUrl:s,chatApiBaseUrl:w,creditsLabel:h?.credits??null,profile:h,products:Fe(i?.products),apiHealth:ze(m??null,s),accounts:j.map(p=>{let T=l(p.baseUrl),De=t.accounts?.find(fe=>P(fe.handle,p.handle)&&b(fe.baseUrl,T)),oe=c?.[q(p.handle,T)]??null,K=_e(oe?.response??null);return{handle:p.handle,baseUrl:T,apiBaseUrl:l(p.apiBaseUrl),chatApiBaseUrl:l(p.chatApiBaseUrl),environment:$(p.environment),isActive:x?se(p,x):!1,authHealth:oe?.authFailed?"auth_error":Ee(p),displayLabel:K?.name||K?.handle||K?.email||p.handle,email:K?.email??null,avatarUrl:K?.image??null,apiKeyHint:Ke(De?.apiKey),apiKeyAccess:qe(oe?.response??null)}}),error:f??m?.error??null}}a(H,"toAccountState");async function Ge(e){try{return ie(await Pe())}catch{return ke(e)}}a(Ge,"loadProfiles");async function u(e,t){let n=await ge(),o=await Ge(n),r=Ue(n,e,t),s=Z(r),i=Y(r,n),c=Q(r,n,i);return{config:n,profiles:o,account:r,token:s,apiBaseUrl:i,chatApiBaseUrl:c,accountState:H({config:n,profiles:o,account:r,token:s,apiBaseUrl:i})}}a(u,"loadOpenPondAccountContext");async function We(e){let t=l(e.baseUrl);return await we(e.handle,{baseUrl:t}),u(e.handle,t)}a(We,"switchOpenPondAccount");import{createHash as Ve}from"node:crypto";function le(e){return Ve("sha256").update(JSON.stringify([e.accountState.activeProfile,e.apiBaseUrl,e.chatApiBaseUrl,e.token])).digest("hex")}a(le,"authorityKey");var G=null,M=null;async function Je(e){let t=le(e);if(G?.key===t&&G.expiresAt>Date.now())return G.response;if(M?.key===t)return M.promise;G=null;let n={key:t,promise:D(e.apiBaseUrl,e.token)};M=n;try{let o=await n.promise;return M===n&&o.account?.id&&(G={key:t,response:o,expiresAt:Date.now()+5e3}),o}finally{M===n&&(M=null)}}a(Je,"authenticate");async function Xe(){let e=await u();if(!e.token)return e;let t=await Je(e),n=await u();if(le(n)!==le(e))throw new Error("openpond_account_authority_changed");if(!t.account?.id)throw new Error("openpond_authenticated_owner_unavailable");return{...n,accountState:H({...n,accountResponse:t})}}a(Xe,"loadAuthenticatedOpenPondAccountContext");import{randomUUID as Ye}from"node:crypto";function z(e){return e instanceof Error?e.message:String(e)}a(z,"errorMessage");var Qe=15e3;function Ze(e){return e===ae?"OpenPond Chat":e==="deepseek-v4-flash"?"DeepSeek V4 Flash":e.replace(/[-_/]+/g," ")}a(Ze,"displayNameForHostedModel");function et(e){let t=typeof e.id=="string"?e.id:null;return t?{id:t,displayName:Ze(t),ownedBy:typeof e.owned_by=="string"?e.owned_by:null,streaming:!0,raw:e}:null}a(et,"normalizeHostedModel");async function tt(){let e=await u();if(!e.token)return{models:[],error:"No OpenPond API key or session token is configured."};try{return{models:(await rt({apiBaseUrl:e.chatApiBaseUrl,token:e.token})).data.map(o=>et(o)).filter(o=>!!o),error:null}}catch(t){return{models:[],error:z(t)}}}a(tt,"loadOpenPondHostedModels");async function nt(){let e=await u();if(!e.token)return{catalog:null,error:"No OpenPond API key or session token is configured."};let t=new AbortController,n=setTimeout(()=>{t.abort(new Error("OpenPond provider catalog request timed out."))},Qe);try{return{catalog:await Se({apiBaseUrl:e.chatApiBaseUrl,token:e.token,signal:t.signal}),error:null}}catch(o){return{catalog:null,error:z(o)}}finally{clearTimeout(n)}}a(nt,"loadOpenPondProviderCatalog");async function*ot(e){let t=await u();if(!t.token)throw new Error("OpenPond is signed out. Add an account in Settings before using OpenPond Chat.");yield*Ce({apiBaseUrl:t.chatApiBaseUrl,token:t.token,model:e.model||ae,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,requestId:e.requestId,reasoningEffort:e.reasoningEffort,maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,signal:e.signal})}a(ot,"streamOpenPondHostedChatTurn");async function rt(e){let t=ce(e.apiBaseUrl,"models"),n=await fetch(t,{method:"GET",headers:ue(e.token,"application/json"),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat model list failed: ${n.status} ${await de(n)}`);return await n.json()}a(rt,"listOpChatModels");async function Se(e){let t=ce(e.apiBaseUrl,"provider-catalog"),n=await fetch(t,{method:"GET",headers:ue(e.token,"application/json"),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat provider catalog failed: ${n.status} ${await de(n)}`);let o=await n.json();return!o||typeof o!="object"||!Array.isArray(o.providers)?re.parse(o):re.parse({...o,providers:o.providers.filter(r=>r!==null&&typeof r=="object"&&Ae.safeParse(r.id).success)})}a(Se,"listOpChatProviderCatalog");async function*Ce(e){let t=ce(e.apiBaseUrl,"chat/completions"),n=await fetch(t,{method:"POST",headers:ue(e.token,"text/event-stream",e.requestId),body:JSON.stringify(ut(e,!0)),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat request failed: ${n.status} ${await de(n)}`);if(!n.body)throw new Error("OpenPond OpChat request failed: streaming response body is missing.");let o=new Map,r=!1,s=null,i={},c="",m=null,g=at(n.headers),f=n.body.getReader(),w=new TextDecoder,h="",C=[],ne=a(()=>{if(C.length===0)return[];let y=C.join(`
|
|
3
3
|
`);if(C=[],y==="[DONE]")return r=!0,[];let d;try{d=JSON.parse(y)}catch{throw new Error("OpenPond OpChat request failed: malformed streaming event.")}if(d&&typeof d=="object"&&"error"in d)throw new Error(`OpenPond OpChat request failed: ${Ie(d)}`);i=d;let R=d&&typeof d=="object"?d:{},k=Array.isArray(R.choices)?R.choices:[],x=k[0]&&typeof k[0]=="object"?k[0]:{},V=x.delta&&typeof x.delta=="object"?x.delta:{},j=[],p=ve(V.reasoning_content);p&&(c+=p,j.push({type:"reasoning_delta",text:p,raw:d}));let T=ve(V.content);return T&&j.push({type:"text_delta",text:T,raw:d}),lt(o,V.tool_calls),s=F(x.finish_reason)??s,m=ft(d)??m,j},"consumeEvent"),B=a(y=>{let d=y.endsWith("\r")?y.slice(0,-1):y;return d?d.startsWith(":")?[]:(d.startsWith("data:")&&C.push(d.slice(5).trimStart()),[]):ne()},"consumeLine");try{for(;;){let y=await f.read();if(y.done)break;h+=w.decode(y.value,{stream:!0});let d=h.split(`
|
|
4
4
|
`);h=d.pop()??"";for(let R of d)for(let k of B(R))yield k}if(h+=w.decode(),h)for(let y of B(h))yield y;for(let y of ne())yield y}finally{f.releaseLock()}if(!r)throw new Error("OpenPond OpChat request failed: stream ended before [DONE].");let O=ct(o);O.length>0&&(yield{type:"tool_call_delta",toolCalls:O,raw:i}),O.length>0&&c&&(yield{type:"continuation",continuation:{kind:"chat_completions_reasoning",reasoningContent:c},raw:i});let I=st(m,g);I&&(yield{type:"usage",usage:I,raw:i}),yield{type:"finish",finishReason:s,raw:i}}a(Ce,"streamOpChatChatCompletion");function at(e){let t=Be(e,["fireworks-prompt-tokens","prompt-tokens"]),n=Be(e,["fireworks-cached-prompt-tokens","cached-prompt-tokens"]);return n===null?null:{...t===null?{}:{prompt_tokens:t},cached_input_tokens:n,cache_telemetry_source:"provider_response_headers"}}a(at,"cacheUsageFromResponseHeaders");function Be(e,t){for(let n of t){let o=e.get(n);if(o===null||!/^\d+$/.test(o.trim()))continue;let r=Number(o);if(Number.isSafeInteger(r)&&r>=0)return r}return null}a(Be,"firstHeaderTokenCount");function st(e,t){if(!t||it(e))return e;let n={...e??{},cached_input_tokens:t.cached_input_tokens,cache_telemetry_source:"provider_response_headers"};return _(e?.prompt_tokens)===null&&t.prompt_tokens!==void 0&&(n.prompt_tokens=t.prompt_tokens),n}a(st,"usageWithResponseHeaderCache");function it(e){return e?_(e.cached_input_tokens)!==null||_(e.cache_read_input_tokens)!==null||_(e.cache_creation_input_tokens)!==null||_(e.prompt_cache_hit_tokens)!==null||_(e.prompt_cache_miss_tokens)!==null?!0:_(e.prompt_tokens_details?.cached_tokens)!==null||_(e.input_tokens_details?.cached_tokens)!==null:!1}a(it,"usageHasCacheTelemetry");function _(e){if(typeof e=="number"&&Number.isSafeInteger(e)&&e>=0)return e;if(typeof e!="string"||!/^\d+$/.test(e.trim()))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}a(_,"usageTokenCount");function lt(e,t){Array.isArray(t)&&t.forEach((n,o)=>{if(!n||typeof n!="object")return;let r=n,s=typeof r.index=="number"&&Number.isInteger(r.index)?r.index:o,i=e.get(s)??{arguments:""};typeof r.id=="string"&&(i.id=r.id);let c=r.function&&typeof r.function=="object"?r.function:{};typeof c.name=="string"&&(i.name=`${i.name??""}${c.name}`),typeof c.arguments=="string"&&(i.arguments+=c.arguments),e.set(s,i)})}a(lt,"mergeOpChatToolCallDeltas");function ct(e){return[...e.entries()].sort(([t],[n])=>t-n).flatMap(([,t])=>t.id&&t.name?[{id:t.id,type:"function",function:{name:t.name,arguments:t.arguments}}]:[])}a(ct,"completedOpChatToolCalls");function ut(e,t){let n={model:e.model,messages:e.messages.map(pt),stream:t};return e.tools&&(n.tools=e.tools),e.toolChoice!==void 0&&(n.tool_choice=e.toolChoice),typeof e.maxTokens=="number"&&(n.max_tokens=e.maxTokens),typeof e.temperature=="number"&&(n.temperature=e.temperature),typeof e.topP=="number"&&(n.top_p=e.topP),Object.assign(n,dt(e.reasoningEffort)),n}a(ut,"buildOpChatBody");function dt(e){return e?e==="off"?{thinking:{type:"disabled"}}:{thinking:{type:"enabled"},reasoning_effort:e}:{}}a(dt,"opChatReasoningFields");function pt(e){let{continuation:t,images:n,...o}=e,r=n?.length?[...typeof e.content=="string"&&e.content.trim()?[{type:"text",text:e.content}]:[],...n.map(s=>({type:"image_url",image_url:{url:s.url,...s.detail?{detail:s.detail}:{}}}))]:e.content;return e.role==="assistant"&&t?.kind==="chat_completions_reasoning"?{...o,...r!==void 0?{content:r}:{},reasoning_content:t.reasoningContent}:{...o,...r!==void 0?{content:r}:{}}}a(pt,"opChatMessage");function ce(e,t){let n=e.trim().replace(/\/+$/,"");if(!n)throw new Error("OpenPond OpChat API base URL is required.");return`${n}/${t}`}a(ce,"opChatEndpointUrl");function ue(e,t,n){let o=e.trim();if(!o)throw new Error("OpenPond API key is required for OpChat.");let r=new Headers;r.set("Authorization",`Bearer ${o}`),r.set("Content-Type","application/json"),r.set("Accept",t),r.set("x-openpond-client","openpond-app");let s=n||Ye();return r.set("x-openpond-request-id",s),r.set("x-request-id",s),r}a(ue,"opChatHeaders");async function de(e){let t=await e.text().catch(()=>"");if(!t)return e.statusText||`HTTP ${e.status}`;try{return Ie(JSON.parse(t))}catch{return t}}a(de,"readOpChatError");function Ie(e){if(!e||typeof e!="object")return String(e||"unknown_error");let t=e,n=t.error;if(n&&typeof n=="object"){let o=n;return[F(o.code),F(o.type),F(o.message)].filter(Boolean).join(": ")}return[F(t.error),F(t.message)].filter(Boolean).join(": ")||JSON.stringify(e)}a(Ie,"errorMessageFromPayload");function ft(e){if(!e||typeof e!="object")return null;let t=e.usage;return!t||typeof t!="object"?null:t}a(ft,"parseUsage");function F(e){return typeof e=="string"&&e.trim()?e:null}a(F,"stringValue");function ve(e){return typeof e=="string"&&e.length>0?e:null}a(ve,"streamTextValue");import{readFileSync as mt}from"node:fs";var W;function ht(){if(W!==void 0)return W??"openpond-code bundled";try{let e=new URL("../package.json",import.meta.resolve("openpond")),t=JSON.parse(mt(e,"utf8"));W=typeof t.version=="string"?`openpond-code@${t.version}`:null}catch{W=null}return W??"openpond-code bundled"}a(ht,"getBundledRuntimeVersion");function yt(e,t){let n="",o=a(r=>{r.startsWith(e)&&t(JSON.parse(r.slice(e.length)))},"processLine");return{push(r){for(n+=r;;){let s=At(n);if(s<0)return;let i=n.slice(0,s).replace(/\r$/,""),c=n[s]==="\r"&&n[s+1]===`
|
|
5
5
|
`?2:1;n=n.slice(s+c),o(i)}},flush(){let r=n.trimEnd();n="",r&&o(r)}}}a(yt,"createReadyLineParser");function At(e){let t=e.indexOf(`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as gc,b as hc,c as gi,d as hi}from"./chunk-B66QCXH2.js";import{A as Kd,B as Vd,C as po,D as Jd,E as di,F as Gd,G as Xd,H as Qd,I as Yd,J as Zd,K as ec,L as ci,N as bc,d as vd,e as yd,f as kd,g as Sd,h as Id,i as Rd,j as xd,k as Sr,l as ii,m as ai,n as Nd,o as jd,p as Fd,q as li,r as qd,s as $d,t as Hd,u as Dd,w as Tr,y as zd,z as uo}from"./chunk-MOXIGLN2.js";import{a as kc,b as yt,c as Sc,d as ln}from"./chunk-RHMULF56.js";import{b as wc}from"./chunk-UOFDKMRU.js";import{b as pt,c as Md,d as si}from"./chunk-AN525SPP.js";import{k as yr}from"./chunk-KOC3YJEU.js";import{A as mi,C as lc,F as mc,G as fc,I as Lt,K as Gn,b as Ul,c as zl,e as kr,f as md,p as Tn,r as gd,t as hd,u as wd,w as Td,x as Pd,y as Bd,z as Vn}from"./chunk-6I5AUTVO.js";import{f as fd}from"./chunk-DKOVZ6R2.js";import{a as yc}from"./chunk-N73MU2C3.js";import{E as sc,F as ic,I as pi,N as an,O as ac,c as Wd,d as Ir,e as Rr,f as xr,g as Jn,h as Ud,j as tc,k as ui,l as nc,q as rc}from"./chunk-WZ35ICTE.js";import{a as Ld}from"./chunk-DMFUEUAZ.js";import{a as Pr,d as oc,e as Cr}from"./chunk-GF55VEMR.js";import{a as cc,b as uc,d as pc}from"./chunk-FAKDGLZQ.js";import{c as vc}from"./chunk-GW766ZSO.js";import{c as mo,e as dc,f as fo}from"./chunk-VJYOKU3C.js";import{a as bd}from"./chunk-7KWD2I6W.js";import{a as oi,c as pd,i as Kn}from"./chunk-RY46UPBO.js";import{B as Ll}from"./chunk-OFJPOTES.js";import{d as ri,k as Od}from"./chunk-PLROXHG2.js";import{B as Ed,b as Z,j as Cd,s as _d,t as Ad}from"./chunk-YU3C6U5V.js";import{h as fi}from"./chunk-PHZZBXDO.js";import{a as co}from"./chunk-KVTBX2UP.js";import{a as Y,b as se,d as L}from"./chunk-U7D6Q744.js";import{$ as wr,Ec as vr,Gc as ni,Hc as ud,Jb as br,K as td,M as Xs,Mb as id,Nb as Zs,Ob as ad,P as Dt,Pb as ld,Sb as zn,T as nd,Tb as vt,Ub as dd,c as Yl,d as Zl,g as ed,ha as od,ia as ge,ib as Ys,ja as sn,jc as ei,kc as lo,lc as cd,ma as rd,na as ct,oc as ti,pc as ut,qa as Qs,ra as sd,u as rn}from"./chunk-HG2YFMVU.js";import{a as Fl,c as ql,g as $l,h as Hl,k as Bs,m as Dl,n as Ws}from"./chunk-OQPJ7FJF.js";import{df as Ql}from"./chunk-VEBW7NKD.js";import{A as Vl,D as Gs,E as Jl,F as Gl,G as Xl,s as Ks,y as Js}from"./chunk-4BUM6JEC.js";import{b as hr,c as Vs}from"./chunk-SSHE6B7Z.js";import{j as Ht}from"./chunk-DXJC3QW7.js";import{G as zs}from"./chunk-OKKNDQJF.js";import{X as Kl,x as gr}from"./chunk-ZY32SZ2P.js";import{c as fr,e as jl,m as Us,n as Bl,o as Wl}from"./chunk-KUE46HTH.js";import{C as Tl,E as Al,F as El,c as io,e as ml,f as ar,fa as Ol,ha as Ml,ia as Nl,v as ur,x as pr}from"./chunk-SV7ZBEK2.js";import{A as kl,B as Rn,C as xn,E as lr,I as Ls,J as Sl,L as Il,O as dr,V as Rl,W as cr,X as ao,Z as xl,c as hl,f as wl,h as bl,j as vl,w as yl,y as et,z as ye}from"./chunk-2MEOUS24.js";import{e as fl,f as gl}from"./chunk-HNQPEOJD.js";import{l as Ds,m as In,n as Ue}from"./chunk-RCT3O3HQ.js";import{b as ul,c as Un,e as pl,f as on,h as Sn,i as Hs,r as Pl,s as Cl,t as mr,u as _l}from"./chunk-UGOK7VTC.js";import{A as P}from"./chunk-X2J2P5ZT.js";import{a as r}from"./chunk-FTQLQJQV.js";function Ic(e){let t,n,o=new Set;function s(i){if(n)return Promise.reject(new Error("Runtime service is closing"));t??=Promise.resolve().then(e);let a=t.then(l=>{if(n)throw new Error("Runtime service is closing");return i(l)});return o.add(a),a.then(()=>o.delete(a),()=>o.delete(a)),a}return r(s,"use"),{use:s,methods(i){return Object.fromEntries(i.map(a=>[a,(...l)=>s(u=>u[a].apply(u,l))]))},close(){return n??=Promise.resolve().then(async()=>{try{await(await t?.catch(()=>{}))?.close()}finally{await Promise.allSettled([...o])}})}}}r(Ic,"lazyRuntimeService");function xc(e){let t=Hg();for(let n of e)t.accept(n);return t.values()}r(xc,"activeFileOutputRefs");function Hg(e=Number.POSITIVE_INFINITY){let t=new Map,n=new Set;function o(s){let i=Pn(s.data);if(t.size+n.size+i.length>e)throw new Error("remote_output_reference_limit");if(s.action==="work_output_delete"&&s.status==="completed"){for(let a of i){let l=Rc(a);n.add(l),t.delete(l)}return}if(s.action!=="work_output_read")for(let a of i){let l=Rc(a);n.has(l)||t.set(l,a)}}return r(o,"accept"),{accept:o,values:r(()=>[...t.values()],"values")}}r(Hg,"createOutputReferenceAccumulator");function Rc(e){return`${e.sourceTaskId}:${e.id}:${e.revision}`}r(Rc,"fileOutputRevisionKey");function Pn(e,t=0){if(t>8||e==null)return[];let n=sn.safeParse(e);if(n.success)return[n.data];if(Array.isArray(e))return e.flatMap(s=>Pn(s,t+1));let o=Dg(e);return Object.values(o).flatMap(s=>Pn(s,t+1))}r(Pn,"fileOutputRefs");function Dg(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}r(Dg,"asRecord");import{createHash as ho,randomUUID as Cc}from"node:crypto";import{promises as nt}from"node:fs";import Ie from"node:path";function go(e){return!!(e.experience==="work"&&!e.workspaceKind&&!e.localProjectId&&!e.cloudProjectId&&e.metadata?.workspaceTarget==="local"&&e.cwd)}r(go,"isManagedLocalWorkSession");function pS(e){let t=Ie.join(e.storeDir,"work","outputs"),n=e.sandboxRequest??yr;async function o(m){let w=_r(m.suggestedName);if(m.bytes.byteLength>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let C=Qs[Ie.extname(w).toLowerCase()];if(!C)throw new Error(`${w} is not an advertised Work output format. Save it as a supported file type or keep it in scratch space.`);let S=Ug({bytes:m.bytes,contentType:C,title:w,supplied:m.validation,policy:m.validationPolicy}),R=await Tc({runtimeEventsForSession:e.runtimeEventsForSession,sessionId:m.session.id,title:w,...e.managedPersistence?{firstId:`hosted-${ho("sha256").update(`${m.session.id}\0${w}`).digest("hex")}`}:{}});if(e.managedPersistence){let b=await e.managedPersistence.sourceTurnStartedAt(m.session.id,m.sourceTurnId),f={id:R.id,title:w,contentType:C,sizeBytes:m.bytes.byteLength,sha256:ho("sha256").update(m.bytes).digest("hex"),sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:R.revision,createdAt:new Date(b).toISOString(),validation:S};return e.managedPersistence.save({sessionId:m.session.id,turnId:m.sourceTurnId,identity:f,bytes:m.bytes})}let g=Ie.join(t,Ar(m.session.id));await nt.mkdir(g,{recursive:!0,mode:448});let d=Ie.join(g,`${String(R.revision).padStart(3,"0")}-${Ar(R.id)}-${w}`),k=Ie.join(g,`.${Ie.basename(d)}.${Cc()}.tmp`);await nt.writeFile(k,m.bytes,{mode:384,flag:"wx"});try{await nt.rename(k,d)}catch(b){throw await nt.rm(k,{force:!0}),b}return{outputRef:sn.parse({kind:"file",id:R.id,title:w,contentType:C,sizeBytes:m.bytes.byteLength,sha256:ho("sha256").update(m.bytes).digest("hex"),sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:R.revision,createdAt:new Date().toISOString(),location:{kind:"local",path:d,deviceId:e.deviceId},validation:S}),artifact:{artifactRef:d,path:d,title:w,contentType:C,sizeBytes:m.bytes.byteLength}}}r(o,"persistWorkOutputBytes");async function s(m){if(m.session.experience!=="work")throw new Error("Only Work tasks can save Work outputs.");if(m.session.workspaceKind!=="sandbox"||!m.session.workspaceId)throw new Error("A running Work sandbox is required to save an output.");let w=Jg(m.sandboxPath),C=Xn(await n({type:"download_file",sandboxId:m.session.workspaceId,payload:{path:w,maxBytes:ct}})),S=Xn(C.file);if(S.truncated===!0)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let R=typeof S.contentsBase64=="string"?S.contentsBase64:"";if(!R)throw new Error("Sandbox output download did not return file contents.");let g=Buffer.from(R,"base64"),d=Pc(S.totalSizeBytes)??Pc(S.sizeBytes);if(g.byteLength>ct||d!==null&&d>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);if(d!==null&&g.byteLength!==d)throw new Error("Sandbox output download was incomplete.");return o({session:m.session,sourceTurnId:m.sourceTurnId,suggestedName:m.suggestedName||Ie.posix.basename(w),bytes:g,validation:m.validation??[],validationPolicy:m.validationPolicy??"strict"})}r(s,"saveWorkOutput");async function i(m){if(!go(m.session)||!m.session.cwd)throw new Error("A managed local Work task is required to save a local output.");let w=await nt.realpath(m.session.cwd),C=Ie.isAbsolute(m.localPath)?Ie.resolve(m.localPath):Ie.resolve(w,m.localPath),S=await nt.realpath(C);if(!_c(w,S))throw new Error("Local Work outputs must stay inside the managed task workspace.");let R=await nt.stat(S);if(!R.isFile())throw new Error("A local Work output must be a file.");if(R.size>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let g=await nt.readFile(S);return o({session:m.session,sourceTurnId:m.sourceTurnId,suggestedName:m.suggestedName??Ie.basename(S),bytes:g,validation:[],validationPolicy:"preserve"})}r(i,"saveLocalWorkOutput");async function a(m){if(go(m.session))return l(m);if(m.session.experience!=="work"||m.session.workspaceKind!=="sandbox"||!m.session.workspaceId)return[];let w=Xn(await n({type:"list_files",sandboxId:m.session.workspaceId,payload:{path:"outputs",recursive:!0,maxEntries:500}})),C=Array.isArray(w.files)?w.files:[],S=await e.runtimeEventsForSession(m.session.id),R=new Set(Pn(S).filter(d=>d.sourceTurnId===m.sourceTurnId).map(d=>d.title)),g=[];for(let d of C){let k=Xn(d);if(k.type!=="file"||typeof k.path!="string")continue;let v=k.path.replace(/^\/workspace\//,""),b=_r(Ie.posix.basename(v));if(!R.has(b)){if(e.managedPersistence){let f=await Tc({runtimeEventsForSession:e.runtimeEventsForSession,sessionId:m.session.id,title:b,firstId:`hosted-${ho("sha256").update(`${m.session.id}\0${b}`).digest("hex")}`}),_=await e.managedPersistence.sourceTurnStartedAt(m.session.id,m.sourceTurnId);g.push(await e.managedPersistence.saveSandboxFile({sessionId:m.session.id,turnId:m.sourceTurnId,identity:{id:f.id,title:b,sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:f.revision,createdAt:new Date(_).toISOString(),validation:[]},sandboxPath:v}))}else g.push(await s({session:m.session,sourceTurnId:m.sourceTurnId,sandboxPath:v,suggestedName:b,validationPolicy:"preserve"}));R.add(b)}}return g}r(a,"saveAllWorkOutputs");async function l(m){if(!m.session.cwd)return[];let w=await e.runtimeEventsForSession(m.session.id),C=w.filter(d=>d.turnId===m.sourceTurnId&&d.name==="assistant.delta"&&typeof d.output=="string").map(d=>d.output??"").join(""),S=await Lg({assistantText:C,workspaceRoot:m.session.cwd,declaredPaths:m.session.metadata?.profileEvaluationRun!==void 0?P.array(Kl).max(1e3).parse(m.session.metadata.profileEvaluationOutputs??[]).map(d=>d.path):[]}),R=new Set(Pn(w).filter(d=>d.sourceTurnId===m.sourceTurnId).map(d=>d.title)),g=[];for(let d of S){let k=_r(Ie.basename(d));R.has(k)||(g.push(await i({session:m.session,sourceTurnId:m.sourceTurnId,localPath:d,suggestedName:k})),R.add(k))}return g}r(l,"saveReferencedLocalWorkOutputs");async function u(m){if(m.experience!=="work")return[];let w=await e.runtimeEventsForSession(m.id),C=new Map;for(let S of Pn(w)){if(S.location.kind!=="local")continue;let R=C.get(S.title);(!R||S.revision>R.revision)&&C.set(S.title,S)}return[...C.values()].map(S=>({localPath:S.location.kind==="local"?S.location.path:"",storageName:`${Ar(S.id)}-${_r(S.title)}`,sha256:S.sha256,sizeBytes:S.sizeBytes}))}r(u,"workInputsForSession");async function c(m){let w=await Promise.all(m.filter(C=>C.experience==="work").map(async C=>xc(await e.runtimeEventsForSession(C.id))));return rd.parse({outputs:w.flat().sort((C,S)=>S.createdAt.localeCompare(C.createdAt))})}r(c,"listWorkOutputs");async function h(m){if(m.session.experience!=="work")throw new Error("Only Work tasks can access Work outputs.");let w=m.outputId.trim();if(!w)throw new Error("A Work output id is required.");let C=await e.runtimeEventsForSession(m.session.id),S=bi(C,w,m.revision);if(!S)throw new Error("Work output not found.");return p(m.session,S)}r(h,"resolveLocalOutput");function p(m,w){if(m.experience!=="work"||w.sourceTaskId!==m.id||w.location.kind!=="local")throw new Error("This Work output is not stored on this device.");let C=Ie.resolve(t,Ar(m.id)),S=Ie.resolve(w.location.path);if(S===C||!S.startsWith(`${C}${Ie.sep}`))throw new Error("Work output path is outside managed local storage.");return{outputRef:w,target:S}}r(p,"localOutputTarget");async function y(m){let{outputRef:w,target:C}=await h(m),S=await nt.rm(C).then(()=>!0).catch(R=>{if(R.code==="ENOENT")return!1;throw R});return{outputRef:w,deleted:S}}r(y,"deleteWorkOutput");async function x(m){let{outputRef:w}=await h(m);return T(m.session,w)}r(x,"readWorkOutput");async function T(m,w){let{target:C}=p(m,w),S=await nt.stat(C);if(S.size>ct||S.size!==w.sizeBytes)throw new Error("The saved Work output no longer matches its OutputRef.");let R=await nt.readFile(C);if(R.byteLength>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let g=ho("sha256").update(R).digest("hex");if(R.byteLength!==w.sizeBytes||g!==w.sha256)throw new Error("The saved Work output no longer matches its OutputRef.");return{outputRef:w,contentsBase64:R.toString("base64")}}return r(T,"readQualifiedWorkOutput"),{outputRoot:t,deleteWorkOutput:y,listWorkOutputs:c,readWorkOutput:x,readQualifiedWorkOutput:T,saveAllWorkOutputs:a,saveLocalWorkOutput:i,saveOwnedOutputBytes:o,saveWorkOutput:s,workInputsForSession:u}}r(pS,"createWorkOutputService");async function Lg(e){let t=await nt.realpath(e.workspaceRoot),n=new Set;for(let o of[...e.declaredPaths??[],...Bg(e.assistantText)]){let s=Wg(o);if(!s)continue;let i=Ie.isAbsolute(s)?Ie.resolve(s):Ie.resolve(t,s),a;try{if(a=await nt.realpath(i),!(await nt.stat(a)).isFile())continue}catch{continue}if(_c(t,a)&&Qs[Ie.extname(a).toLowerCase()]&&(n.add(a),n.size>=100))break}return[...n]}r(Lg,"resolveReferencedLocalFiles");function Bg(e){let t=[];for(let n=0;n<e.length;n+=1){let o=e[n]==="!"?n+1:n;if(e[o]!=="[")continue;let s=e.indexOf("]",o+1);if(s<0||e[s+1]!=="(")continue;let i=s+2;if(e[i]==="<"){let l=e.indexOf(">",i+1);l>=0&&e[l+1]===")"&&(t.push(e.slice(i+1,l)),n=l+1);continue}let a=0;for(let l=i;l<e.length;l+=1){let u=e[l];if(u==="\\"){l+=1;continue}if(u==="("){a+=1;continue}if(u!==")")continue;if(a>0){a-=1;continue}let c=e.slice(i,l).trim();c&&t.push(c),n=l;break}}return t}r(Bg,"markdownLinkTargets");function Wg(e){let t=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(!t||/^(?:https?|data|mailto):/i.test(t))return null;if(t=t.replace(/^(?:workspace|sandbox):file:/i,""),/^file:\/\//i.test(t))try{t=decodeURIComponent(new URL(t).pathname)}catch{t=t.replace(/^file:\/\//i,"")}else try{t=decodeURIComponent(t)}catch{}return t.replace(/:\d+(?::\d+)?$/,"")}r(Wg,"normalizeLocalFileReference");function _c(e,t){let n=Ie.relative(e,t);return n!==""&&n!==".."&&!n.startsWith(`..${Ie.sep}`)&&!Ie.isAbsolute(n)}r(_c,"isPathInside");function Ug(e){let t=sd(e.contentType);if(!t)return e.supplied;let n=zg(e);if(n.status!=="passed")throw new Error(`Work output failed structural validation: ${n.detail}`);let o=[n,...e.supplied],s=t.validation.flatMap(i=>i==="visual"?["visual"]:i==="playback"||i==="browser"?["test"]:[]);for(let i of s)if(!o.some(a=>a.kind===i&&a.status==="passed")){if(e.policy==="strict")throw new Error(`${e.title} requires passed ${i} validation evidence before it can be saved as a completed Work output.`);o.push({kind:i,status:"not_run",label:`${e.title} ${i} validation was not run before automatic preservation`,detail:"The file was preserved automatically at turn completion; review this revision before relying on presentation or playback quality."})}return o}r(Ug,"validateWorkOutput");function zg(e){let t=Kg(e.bytes,e.contentType);return{kind:"structural",status:t?"passed":"failed",label:`Validated ${e.title} structure`,detail:t?`Content matches ${e.contentType}.`:`Content does not match ${e.contentType}.`}}r(zg,"structuralValidation");function Kg(e,t){if(e.byteLength===0)return!1;if(t.startsWith("text/")||t==="application/json"||t==="image/svg+xml"){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{return!1}if(t==="application/json")try{JSON.parse(n)}catch{return!1}return t==="text/html"?/<(?:!doctype\s+html|html|body)\b/i.test(n):t==="image/svg+xml"?/<svg\b/i.test(n):n.trim().length>0}if(t==="application/pdf")return e.subarray(0,5).toString("ascii")==="%PDF-"&&e.subarray(Math.max(0,e.byteLength-1024)).toString("ascii").includes("%%EOF");if(t.includes("wordprocessingml")||t.includes("spreadsheetml")||t.includes("presentationml")){let n=Vg(e),o=t.includes("wordprocessingml")?"word/document.xml":t.includes("spreadsheetml")?"xl/workbook.xml":"ppt/presentation.xml";return n.has("[Content_Types].xml")&&n.has("_rels/.rels")&&n.has(o)}return t==="image/png"?e.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])):t==="image/jpeg"?e[0]===255&&e[1]===216:t==="image/gif"?e.subarray(0,4).toString("ascii")==="GIF8":t==="image/webp"?e.subarray(0,4).toString("ascii")==="RIFF"&&e.subarray(8,12).toString("ascii")==="WEBP":t==="image/avif"?e.subarray(4,12).toString("ascii").includes("ftyp"):t==="audio/wav"?e.subarray(0,4).toString("ascii")==="RIFF"&&e.subarray(8,12).toString("ascii")==="WAVE":t==="audio/mpeg"?e.subarray(0,3).toString("ascii")==="ID3"||e[0]===255&&(e[1]&224)===224:t==="audio/mp4"||t==="video/mp4"||t==="video/quicktime"?e.subarray(4,12).toString("ascii").includes("ftyp"):t==="video/webm"?e.subarray(0,4).equals(Buffer.from([26,69,223,163])):!0}r(Kg,"structuralContentMatches");function Vg(e){let t=new Set;for(let n=0;n+46<=e.byteLength;){if(e.readUInt32LE(n)!==33639248){n+=1;continue}let o=e.readUInt16LE(n+28),s=e.readUInt16LE(n+30),i=e.readUInt16LE(n+32),a=n+46+o+s+i;if(a>e.byteLength)return new Set;let l=e.subarray(n+46,n+46+o).toString("utf8").replaceAll("\\","/").replace(/^\/+/,"");l&&t.add(l),n=a}return t}r(Vg,"zipCentralDirectoryEntries");function Jg(e){let t=e.trim().replaceAll("\\","/");if(!t||t.startsWith("/"))throw new Error("Work output path must be relative to /workspace.");let n=Ie.posix.normalize(t);if(n==="."||n===".."||n.startsWith("../")||!n.startsWith("outputs/")||n==="outputs/")throw new Error("Completed Work outputs must be inside /workspace/outputs.");return n}r(Jg,"normalizeOutputCandidatePath");async function Tc(e){let t=await e.runtimeEventsForSession(e.sessionId),n=null;for(let o of t){let s=wi(o.data);s?.kind!=="file"||s.title!==e.title||(!n||s.revision>n.revision)&&(n=s)}return{id:n?.id??e.firstId??Cc(),revision:(n?.revision??0)+1}}r(Tc,"nextOutputIdentity");function wi(e,t=0){if(t>6||e==null)return null;let n=sn.safeParse(e);if(n.success)return n.data;if(Array.isArray(e)){for(let s of e){let i=wi(s,t+1);if(i)return i}return null}let o=Xn(e);for(let s of Object.values(o)){let i=wi(s,t+1);if(i)return i}return null}r(wi,"findOutputRef");function bi(e,t,n,o=0){if(o>8||e==null)return null;let s=sn.safeParse(e);if(s.success&&s.data.id===t&&(n==null||s.data.revision===n))return s.data;if(Array.isArray(e)){let l=null;for(let u of e){let c=bi(u,t,n,o+1);c&&(!l||c.revision>l.revision)&&(l=c)}return l}let i=Xn(e),a=null;for(let l of Object.values(i)){let u=bi(l,t,n,o+1);u&&(!a||u.revision>a.revision)&&(a=u)}return a}r(bi,"findOutputRefById");function _r(e){let n=Ie.basename(e.trim()).replace(/[^a-zA-Z0-9._ -]+/g,"-").replace(/\s+/g," ").trim().slice(0,180);if(!n||n==="."||n==="..")throw new Error("A valid output file name is required.");return n}r(_r,"safeOutputName");function Ar(e){return e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,100)||"item"}r(Ar,"safePathSegment");function Xn(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}r(Xn,"asRecord");function Pc(e){return typeof e=="number"&&Number.isFinite(e)?e:null}r(Pc,"numberValue");import{promises as Er}from"node:fs";import Gg from"node:path";async function Ac(e,t,n=Date.now()){let o=[];for(let i of await Er.readdir(e,{withFileTypes:!0})){if(!i.isFile()||!/\.log(?:\.\d+)?$/.test(i.name))continue;let a=Gg.join(e,i.name),l=await Er.lstat(a).catch(u=>{if(u.code==="ENOENT")return null;throw u});l?.isFile()&&o.push({file:a,size:l.size,modified:l.mtimeMs})}let s=o.reduce((i,a)=>i+a.size,0);for(let i of o.sort((a,l)=>a.modified-l.modified)){if(i.file===t||i.modified>=n-14*864e5&&s<=256*1024*1024)continue;let a=await Er.lstat(i.file).catch(()=>null);a?.isFile()&&a.size===i.size&&a.mtimeMs===i.modified&&(await Er.rm(i.file,{force:!0}),s-=i.size)}}r(Ac,"pruneLogs");import{promises as wo}from"node:fs";import Xg from"node:path";var Ec=1024*1024,Qg=5,vi=/authorization|api[_-]?key|token|session[_-]?token|secret|password/i,Yg=/Bearer\s+[A-Za-z0-9._~+/-]+=*/gi,Zg=/\b(?:https?|wss?):\/\/[^\s"'<>]+/gi;function eh(e){return{name:e.name,message:e.message,stack:e.stack}}r(eh,"serializeError");function Or(e){if(e instanceof Error)return Or(eh(e));if(typeof e=="string")return th(e);if(Array.isArray(e))return e.map(n=>Or(n));if(!e||typeof e!="object")return e;let t={};for(let[n,o]of Object.entries(e))t[n]=vi.test(n)?"[REDACTED]":Or(o);return t}r(Or,"redact");async function Oc(e,t){try{await wo.rm(t,{force:!0}),await wo.rename(e,t)}catch(n){if(n.code!=="ENOENT")throw n}}r(Oc,"renameIfExists");function th(e){return e.replace(Yg,"Bearer [REDACTED]").replace(Zg,t=>nh(t))}r(th,"redactString");function nh(e){let{url:t,suffix:n}=oh(e);try{let o=new URL(t);return(o.username||o.password)&&(o.username="[REDACTED]",o.password="[REDACTED]"),Mc(o.searchParams),o.hash&&(o.hash=rh(o.hash.slice(1))),`${o.toString()}${n}`}catch{return e}}r(nh,"redactUrl");function oh(e){let t=e,n="";for(;/[),.;!?]$/.test(t);)n=`${t.slice(-1)}${n}`,t=t.slice(0,-1);return{url:t,suffix:n}}r(oh,"splitUrlSuffix");function Mc(e){for(let t of Array.from(e.keys()))vi.test(t)&&e.set(t,"[REDACTED]")}r(Mc,"redactSearchParams");function rh(e){if(!e.includes("="))return vi.test(e)?"[REDACTED]":e;let t=new URLSearchParams(e.startsWith("?")?e.slice(1):e);return Mc(t),t.toString()}r(rh,"redactHash");function SS(e){let t=e.maxBytes??Ec,n=e.maxFiles??Qg,o=Xg.join(e.logDir,e.filename??`${e.channel}.log`),s=Promise.resolve(),i=0;async function a(u){let c=0;try{c=(await wo.stat(o)).size}catch(h){if(h.code!=="ENOENT")throw h}if(!(c+u<=t)){for(let h=n-1;h>=1;h-=1)await Oc(`${o}.${h}`,`${o}.${h+1}`);await Oc(o,`${o}.1`)}}r(a,"rotateIfNeeded");function l(u,c,h={}){let p={ts:new Date().toISOString(),level:u,channel:e.channel,message:c,pid:process.pid,platform:process.platform,...e.metadata??{},...h},y=`${JSON.stringify(Or(p))}
|
|
2
|
+
import{a as gc,b as hc,c as gi,d as hi}from"./chunk-B66QCXH2.js";import{A as Kd,B as Vd,C as po,D as Jd,E as di,F as Gd,G as Xd,H as Qd,I as Yd,J as Zd,K as ec,L as ci,N as bc,d as vd,e as yd,f as kd,g as Sd,h as Id,i as Rd,j as xd,k as Sr,l as ii,m as ai,n as Nd,o as jd,p as Fd,q as li,r as qd,s as $d,t as Hd,u as Dd,w as Tr,y as zd,z as uo}from"./chunk-MOXIGLN2.js";import{a as kc,b as yt,c as Sc,d as ln}from"./chunk-RHMULF56.js";import{b as wc}from"./chunk-UOFDKMRU.js";import{b as pt,c as Md,d as si}from"./chunk-AN525SPP.js";import{k as yr}from"./chunk-BGMAWETL.js";import{A as mi,C as lc,F as mc,G as fc,I as Lt,K as Gn,b as Ul,c as zl,e as kr,f as md,p as Tn,r as gd,t as hd,u as wd,w as Td,x as Pd,y as Bd,z as Vn}from"./chunk-6I5AUTVO.js";import{f as fd}from"./chunk-DKOVZ6R2.js";import{a as yc}from"./chunk-N73MU2C3.js";import{E as sc,F as ic,I as pi,N as an,O as ac,c as Wd,d as Ir,e as Rr,f as xr,g as Jn,h as Ud,j as tc,k as ui,l as nc,q as rc}from"./chunk-WZ35ICTE.js";import{a as Ld}from"./chunk-DMFUEUAZ.js";import{a as Pr,d as oc,e as Cr}from"./chunk-GF55VEMR.js";import{a as cc,b as uc,d as pc}from"./chunk-FAKDGLZQ.js";import{c as vc}from"./chunk-GW766ZSO.js";import{c as mo,e as dc,f as fo}from"./chunk-VJYOKU3C.js";import{a as bd}from"./chunk-7KWD2I6W.js";import{a as oi,c as pd,i as Kn}from"./chunk-2ACX7IW5.js";import{B as Ll}from"./chunk-OFJPOTES.js";import{d as ri,k as Od}from"./chunk-PLROXHG2.js";import{B as Ed,b as Z,j as Cd,s as _d,t as Ad}from"./chunk-YU3C6U5V.js";import{h as fi}from"./chunk-PHZZBXDO.js";import{a as co}from"./chunk-KVTBX2UP.js";import{a as Y,b as se,d as L}from"./chunk-U7D6Q744.js";import{$ as wr,Ec as vr,Gc as ni,Hc as ud,Jb as br,K as td,M as Xs,Mb as id,Nb as Zs,Ob as ad,P as Dt,Pb as ld,Sb as zn,T as nd,Tb as vt,Ub as dd,c as Yl,d as Zl,g as ed,ha as od,ia as ge,ib as Ys,ja as sn,jc as ei,kc as lo,lc as cd,ma as rd,na as ct,oc as ti,pc as ut,qa as Qs,ra as sd,u as rn}from"./chunk-HG2YFMVU.js";import{a as Fl,c as ql,g as $l,h as Hl,k as Bs,m as Dl,n as Ws}from"./chunk-OQPJ7FJF.js";import{df as Ql}from"./chunk-VEBW7NKD.js";import{A as Vl,D as Gs,E as Jl,F as Gl,G as Xl,s as Ks,y as Js}from"./chunk-4BUM6JEC.js";import{b as hr,c as Vs}from"./chunk-SSHE6B7Z.js";import{j as Ht}from"./chunk-DXJC3QW7.js";import{G as zs}from"./chunk-OKKNDQJF.js";import{X as Kl,x as gr}from"./chunk-ZY32SZ2P.js";import{c as fr,e as jl,m as Us,n as Bl,o as Wl}from"./chunk-KUE46HTH.js";import{C as Tl,E as Al,F as El,c as io,e as ml,f as ar,fa as Ol,ha as Ml,ia as Nl,v as ur,x as pr}from"./chunk-SV7ZBEK2.js";import{A as kl,B as Rn,C as xn,E as lr,I as Ls,J as Sl,L as Il,O as dr,V as Rl,W as cr,X as ao,Z as xl,c as hl,f as wl,h as bl,j as vl,w as yl,y as et,z as ye}from"./chunk-2MEOUS24.js";import{e as fl,f as gl}from"./chunk-HNQPEOJD.js";import{l as Ds,m as In,n as Ue}from"./chunk-RCT3O3HQ.js";import{b as ul,c as Un,e as pl,f as on,h as Sn,i as Hs,r as Pl,s as Cl,t as mr,u as _l}from"./chunk-UGOK7VTC.js";import{A as P}from"./chunk-X2J2P5ZT.js";import{a as r}from"./chunk-FTQLQJQV.js";function Ic(e){let t,n,o=new Set;function s(i){if(n)return Promise.reject(new Error("Runtime service is closing"));t??=Promise.resolve().then(e);let a=t.then(l=>{if(n)throw new Error("Runtime service is closing");return i(l)});return o.add(a),a.then(()=>o.delete(a),()=>o.delete(a)),a}return r(s,"use"),{use:s,methods(i){return Object.fromEntries(i.map(a=>[a,(...l)=>s(u=>u[a].apply(u,l))]))},close(){return n??=Promise.resolve().then(async()=>{try{await(await t?.catch(()=>{}))?.close()}finally{await Promise.allSettled([...o])}})}}}r(Ic,"lazyRuntimeService");function xc(e){let t=Hg();for(let n of e)t.accept(n);return t.values()}r(xc,"activeFileOutputRefs");function Hg(e=Number.POSITIVE_INFINITY){let t=new Map,n=new Set;function o(s){let i=Pn(s.data);if(t.size+n.size+i.length>e)throw new Error("remote_output_reference_limit");if(s.action==="work_output_delete"&&s.status==="completed"){for(let a of i){let l=Rc(a);n.add(l),t.delete(l)}return}if(s.action!=="work_output_read")for(let a of i){let l=Rc(a);n.has(l)||t.set(l,a)}}return r(o,"accept"),{accept:o,values:r(()=>[...t.values()],"values")}}r(Hg,"createOutputReferenceAccumulator");function Rc(e){return`${e.sourceTaskId}:${e.id}:${e.revision}`}r(Rc,"fileOutputRevisionKey");function Pn(e,t=0){if(t>8||e==null)return[];let n=sn.safeParse(e);if(n.success)return[n.data];if(Array.isArray(e))return e.flatMap(s=>Pn(s,t+1));let o=Dg(e);return Object.values(o).flatMap(s=>Pn(s,t+1))}r(Pn,"fileOutputRefs");function Dg(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}r(Dg,"asRecord");import{createHash as ho,randomUUID as Cc}from"node:crypto";import{promises as nt}from"node:fs";import Ie from"node:path";function go(e){return!!(e.experience==="work"&&!e.workspaceKind&&!e.localProjectId&&!e.cloudProjectId&&e.metadata?.workspaceTarget==="local"&&e.cwd)}r(go,"isManagedLocalWorkSession");function pS(e){let t=Ie.join(e.storeDir,"work","outputs"),n=e.sandboxRequest??yr;async function o(m){let w=_r(m.suggestedName);if(m.bytes.byteLength>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let C=Qs[Ie.extname(w).toLowerCase()];if(!C)throw new Error(`${w} is not an advertised Work output format. Save it as a supported file type or keep it in scratch space.`);let S=Ug({bytes:m.bytes,contentType:C,title:w,supplied:m.validation,policy:m.validationPolicy}),R=await Tc({runtimeEventsForSession:e.runtimeEventsForSession,sessionId:m.session.id,title:w,...e.managedPersistence?{firstId:`hosted-${ho("sha256").update(`${m.session.id}\0${w}`).digest("hex")}`}:{}});if(e.managedPersistence){let b=await e.managedPersistence.sourceTurnStartedAt(m.session.id,m.sourceTurnId),f={id:R.id,title:w,contentType:C,sizeBytes:m.bytes.byteLength,sha256:ho("sha256").update(m.bytes).digest("hex"),sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:R.revision,createdAt:new Date(b).toISOString(),validation:S};return e.managedPersistence.save({sessionId:m.session.id,turnId:m.sourceTurnId,identity:f,bytes:m.bytes})}let g=Ie.join(t,Ar(m.session.id));await nt.mkdir(g,{recursive:!0,mode:448});let d=Ie.join(g,`${String(R.revision).padStart(3,"0")}-${Ar(R.id)}-${w}`),k=Ie.join(g,`.${Ie.basename(d)}.${Cc()}.tmp`);await nt.writeFile(k,m.bytes,{mode:384,flag:"wx"});try{await nt.rename(k,d)}catch(b){throw await nt.rm(k,{force:!0}),b}return{outputRef:sn.parse({kind:"file",id:R.id,title:w,contentType:C,sizeBytes:m.bytes.byteLength,sha256:ho("sha256").update(m.bytes).digest("hex"),sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:R.revision,createdAt:new Date().toISOString(),location:{kind:"local",path:d,deviceId:e.deviceId},validation:S}),artifact:{artifactRef:d,path:d,title:w,contentType:C,sizeBytes:m.bytes.byteLength}}}r(o,"persistWorkOutputBytes");async function s(m){if(m.session.experience!=="work")throw new Error("Only Work tasks can save Work outputs.");if(m.session.workspaceKind!=="sandbox"||!m.session.workspaceId)throw new Error("A running Work sandbox is required to save an output.");let w=Jg(m.sandboxPath),C=Xn(await n({type:"download_file",sandboxId:m.session.workspaceId,payload:{path:w,maxBytes:ct}})),S=Xn(C.file);if(S.truncated===!0)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let R=typeof S.contentsBase64=="string"?S.contentsBase64:"";if(!R)throw new Error("Sandbox output download did not return file contents.");let g=Buffer.from(R,"base64"),d=Pc(S.totalSizeBytes)??Pc(S.sizeBytes);if(g.byteLength>ct||d!==null&&d>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);if(d!==null&&g.byteLength!==d)throw new Error("Sandbox output download was incomplete.");return o({session:m.session,sourceTurnId:m.sourceTurnId,suggestedName:m.suggestedName||Ie.posix.basename(w),bytes:g,validation:m.validation??[],validationPolicy:m.validationPolicy??"strict"})}r(s,"saveWorkOutput");async function i(m){if(!go(m.session)||!m.session.cwd)throw new Error("A managed local Work task is required to save a local output.");let w=await nt.realpath(m.session.cwd),C=Ie.isAbsolute(m.localPath)?Ie.resolve(m.localPath):Ie.resolve(w,m.localPath),S=await nt.realpath(C);if(!_c(w,S))throw new Error("Local Work outputs must stay inside the managed task workspace.");let R=await nt.stat(S);if(!R.isFile())throw new Error("A local Work output must be a file.");if(R.size>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let g=await nt.readFile(S);return o({session:m.session,sourceTurnId:m.sourceTurnId,suggestedName:m.suggestedName??Ie.basename(S),bytes:g,validation:[],validationPolicy:"preserve"})}r(i,"saveLocalWorkOutput");async function a(m){if(go(m.session))return l(m);if(m.session.experience!=="work"||m.session.workspaceKind!=="sandbox"||!m.session.workspaceId)return[];let w=Xn(await n({type:"list_files",sandboxId:m.session.workspaceId,payload:{path:"outputs",recursive:!0,maxEntries:500}})),C=Array.isArray(w.files)?w.files:[],S=await e.runtimeEventsForSession(m.session.id),R=new Set(Pn(S).filter(d=>d.sourceTurnId===m.sourceTurnId).map(d=>d.title)),g=[];for(let d of C){let k=Xn(d);if(k.type!=="file"||typeof k.path!="string")continue;let v=k.path.replace(/^\/workspace\//,""),b=_r(Ie.posix.basename(v));if(!R.has(b)){if(e.managedPersistence){let f=await Tc({runtimeEventsForSession:e.runtimeEventsForSession,sessionId:m.session.id,title:b,firstId:`hosted-${ho("sha256").update(`${m.session.id}\0${b}`).digest("hex")}`}),_=await e.managedPersistence.sourceTurnStartedAt(m.session.id,m.sourceTurnId);g.push(await e.managedPersistence.saveSandboxFile({sessionId:m.session.id,turnId:m.sourceTurnId,identity:{id:f.id,title:b,sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:f.revision,createdAt:new Date(_).toISOString(),validation:[]},sandboxPath:v}))}else g.push(await s({session:m.session,sourceTurnId:m.sourceTurnId,sandboxPath:v,suggestedName:b,validationPolicy:"preserve"}));R.add(b)}}return g}r(a,"saveAllWorkOutputs");async function l(m){if(!m.session.cwd)return[];let w=await e.runtimeEventsForSession(m.session.id),C=w.filter(d=>d.turnId===m.sourceTurnId&&d.name==="assistant.delta"&&typeof d.output=="string").map(d=>d.output??"").join(""),S=await Lg({assistantText:C,workspaceRoot:m.session.cwd,declaredPaths:m.session.metadata?.profileEvaluationRun!==void 0?P.array(Kl).max(1e3).parse(m.session.metadata.profileEvaluationOutputs??[]).map(d=>d.path):[]}),R=new Set(Pn(w).filter(d=>d.sourceTurnId===m.sourceTurnId).map(d=>d.title)),g=[];for(let d of S){let k=_r(Ie.basename(d));R.has(k)||(g.push(await i({session:m.session,sourceTurnId:m.sourceTurnId,localPath:d,suggestedName:k})),R.add(k))}return g}r(l,"saveReferencedLocalWorkOutputs");async function u(m){if(m.experience!=="work")return[];let w=await e.runtimeEventsForSession(m.id),C=new Map;for(let S of Pn(w)){if(S.location.kind!=="local")continue;let R=C.get(S.title);(!R||S.revision>R.revision)&&C.set(S.title,S)}return[...C.values()].map(S=>({localPath:S.location.kind==="local"?S.location.path:"",storageName:`${Ar(S.id)}-${_r(S.title)}`,sha256:S.sha256,sizeBytes:S.sizeBytes}))}r(u,"workInputsForSession");async function c(m){let w=await Promise.all(m.filter(C=>C.experience==="work").map(async C=>xc(await e.runtimeEventsForSession(C.id))));return rd.parse({outputs:w.flat().sort((C,S)=>S.createdAt.localeCompare(C.createdAt))})}r(c,"listWorkOutputs");async function h(m){if(m.session.experience!=="work")throw new Error("Only Work tasks can access Work outputs.");let w=m.outputId.trim();if(!w)throw new Error("A Work output id is required.");let C=await e.runtimeEventsForSession(m.session.id),S=bi(C,w,m.revision);if(!S)throw new Error("Work output not found.");return p(m.session,S)}r(h,"resolveLocalOutput");function p(m,w){if(m.experience!=="work"||w.sourceTaskId!==m.id||w.location.kind!=="local")throw new Error("This Work output is not stored on this device.");let C=Ie.resolve(t,Ar(m.id)),S=Ie.resolve(w.location.path);if(S===C||!S.startsWith(`${C}${Ie.sep}`))throw new Error("Work output path is outside managed local storage.");return{outputRef:w,target:S}}r(p,"localOutputTarget");async function y(m){let{outputRef:w,target:C}=await h(m),S=await nt.rm(C).then(()=>!0).catch(R=>{if(R.code==="ENOENT")return!1;throw R});return{outputRef:w,deleted:S}}r(y,"deleteWorkOutput");async function x(m){let{outputRef:w}=await h(m);return T(m.session,w)}r(x,"readWorkOutput");async function T(m,w){let{target:C}=p(m,w),S=await nt.stat(C);if(S.size>ct||S.size!==w.sizeBytes)throw new Error("The saved Work output no longer matches its OutputRef.");let R=await nt.readFile(C);if(R.byteLength>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let g=ho("sha256").update(R).digest("hex");if(R.byteLength!==w.sizeBytes||g!==w.sha256)throw new Error("The saved Work output no longer matches its OutputRef.");return{outputRef:w,contentsBase64:R.toString("base64")}}return r(T,"readQualifiedWorkOutput"),{outputRoot:t,deleteWorkOutput:y,listWorkOutputs:c,readWorkOutput:x,readQualifiedWorkOutput:T,saveAllWorkOutputs:a,saveLocalWorkOutput:i,saveOwnedOutputBytes:o,saveWorkOutput:s,workInputsForSession:u}}r(pS,"createWorkOutputService");async function Lg(e){let t=await nt.realpath(e.workspaceRoot),n=new Set;for(let o of[...e.declaredPaths??[],...Bg(e.assistantText)]){let s=Wg(o);if(!s)continue;let i=Ie.isAbsolute(s)?Ie.resolve(s):Ie.resolve(t,s),a;try{if(a=await nt.realpath(i),!(await nt.stat(a)).isFile())continue}catch{continue}if(_c(t,a)&&Qs[Ie.extname(a).toLowerCase()]&&(n.add(a),n.size>=100))break}return[...n]}r(Lg,"resolveReferencedLocalFiles");function Bg(e){let t=[];for(let n=0;n<e.length;n+=1){let o=e[n]==="!"?n+1:n;if(e[o]!=="[")continue;let s=e.indexOf("]",o+1);if(s<0||e[s+1]!=="(")continue;let i=s+2;if(e[i]==="<"){let l=e.indexOf(">",i+1);l>=0&&e[l+1]===")"&&(t.push(e.slice(i+1,l)),n=l+1);continue}let a=0;for(let l=i;l<e.length;l+=1){let u=e[l];if(u==="\\"){l+=1;continue}if(u==="("){a+=1;continue}if(u!==")")continue;if(a>0){a-=1;continue}let c=e.slice(i,l).trim();c&&t.push(c),n=l;break}}return t}r(Bg,"markdownLinkTargets");function Wg(e){let t=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(!t||/^(?:https?|data|mailto):/i.test(t))return null;if(t=t.replace(/^(?:workspace|sandbox):file:/i,""),/^file:\/\//i.test(t))try{t=decodeURIComponent(new URL(t).pathname)}catch{t=t.replace(/^file:\/\//i,"")}else try{t=decodeURIComponent(t)}catch{}return t.replace(/:\d+(?::\d+)?$/,"")}r(Wg,"normalizeLocalFileReference");function _c(e,t){let n=Ie.relative(e,t);return n!==""&&n!==".."&&!n.startsWith(`..${Ie.sep}`)&&!Ie.isAbsolute(n)}r(_c,"isPathInside");function Ug(e){let t=sd(e.contentType);if(!t)return e.supplied;let n=zg(e);if(n.status!=="passed")throw new Error(`Work output failed structural validation: ${n.detail}`);let o=[n,...e.supplied],s=t.validation.flatMap(i=>i==="visual"?["visual"]:i==="playback"||i==="browser"?["test"]:[]);for(let i of s)if(!o.some(a=>a.kind===i&&a.status==="passed")){if(e.policy==="strict")throw new Error(`${e.title} requires passed ${i} validation evidence before it can be saved as a completed Work output.`);o.push({kind:i,status:"not_run",label:`${e.title} ${i} validation was not run before automatic preservation`,detail:"The file was preserved automatically at turn completion; review this revision before relying on presentation or playback quality."})}return o}r(Ug,"validateWorkOutput");function zg(e){let t=Kg(e.bytes,e.contentType);return{kind:"structural",status:t?"passed":"failed",label:`Validated ${e.title} structure`,detail:t?`Content matches ${e.contentType}.`:`Content does not match ${e.contentType}.`}}r(zg,"structuralValidation");function Kg(e,t){if(e.byteLength===0)return!1;if(t.startsWith("text/")||t==="application/json"||t==="image/svg+xml"){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{return!1}if(t==="application/json")try{JSON.parse(n)}catch{return!1}return t==="text/html"?/<(?:!doctype\s+html|html|body)\b/i.test(n):t==="image/svg+xml"?/<svg\b/i.test(n):n.trim().length>0}if(t==="application/pdf")return e.subarray(0,5).toString("ascii")==="%PDF-"&&e.subarray(Math.max(0,e.byteLength-1024)).toString("ascii").includes("%%EOF");if(t.includes("wordprocessingml")||t.includes("spreadsheetml")||t.includes("presentationml")){let n=Vg(e),o=t.includes("wordprocessingml")?"word/document.xml":t.includes("spreadsheetml")?"xl/workbook.xml":"ppt/presentation.xml";return n.has("[Content_Types].xml")&&n.has("_rels/.rels")&&n.has(o)}return t==="image/png"?e.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])):t==="image/jpeg"?e[0]===255&&e[1]===216:t==="image/gif"?e.subarray(0,4).toString("ascii")==="GIF8":t==="image/webp"?e.subarray(0,4).toString("ascii")==="RIFF"&&e.subarray(8,12).toString("ascii")==="WEBP":t==="image/avif"?e.subarray(4,12).toString("ascii").includes("ftyp"):t==="audio/wav"?e.subarray(0,4).toString("ascii")==="RIFF"&&e.subarray(8,12).toString("ascii")==="WAVE":t==="audio/mpeg"?e.subarray(0,3).toString("ascii")==="ID3"||e[0]===255&&(e[1]&224)===224:t==="audio/mp4"||t==="video/mp4"||t==="video/quicktime"?e.subarray(4,12).toString("ascii").includes("ftyp"):t==="video/webm"?e.subarray(0,4).equals(Buffer.from([26,69,223,163])):!0}r(Kg,"structuralContentMatches");function Vg(e){let t=new Set;for(let n=0;n+46<=e.byteLength;){if(e.readUInt32LE(n)!==33639248){n+=1;continue}let o=e.readUInt16LE(n+28),s=e.readUInt16LE(n+30),i=e.readUInt16LE(n+32),a=n+46+o+s+i;if(a>e.byteLength)return new Set;let l=e.subarray(n+46,n+46+o).toString("utf8").replaceAll("\\","/").replace(/^\/+/,"");l&&t.add(l),n=a}return t}r(Vg,"zipCentralDirectoryEntries");function Jg(e){let t=e.trim().replaceAll("\\","/");if(!t||t.startsWith("/"))throw new Error("Work output path must be relative to /workspace.");let n=Ie.posix.normalize(t);if(n==="."||n===".."||n.startsWith("../")||!n.startsWith("outputs/")||n==="outputs/")throw new Error("Completed Work outputs must be inside /workspace/outputs.");return n}r(Jg,"normalizeOutputCandidatePath");async function Tc(e){let t=await e.runtimeEventsForSession(e.sessionId),n=null;for(let o of t){let s=wi(o.data);s?.kind!=="file"||s.title!==e.title||(!n||s.revision>n.revision)&&(n=s)}return{id:n?.id??e.firstId??Cc(),revision:(n?.revision??0)+1}}r(Tc,"nextOutputIdentity");function wi(e,t=0){if(t>6||e==null)return null;let n=sn.safeParse(e);if(n.success)return n.data;if(Array.isArray(e)){for(let s of e){let i=wi(s,t+1);if(i)return i}return null}let o=Xn(e);for(let s of Object.values(o)){let i=wi(s,t+1);if(i)return i}return null}r(wi,"findOutputRef");function bi(e,t,n,o=0){if(o>8||e==null)return null;let s=sn.safeParse(e);if(s.success&&s.data.id===t&&(n==null||s.data.revision===n))return s.data;if(Array.isArray(e)){let l=null;for(let u of e){let c=bi(u,t,n,o+1);c&&(!l||c.revision>l.revision)&&(l=c)}return l}let i=Xn(e),a=null;for(let l of Object.values(i)){let u=bi(l,t,n,o+1);u&&(!a||u.revision>a.revision)&&(a=u)}return a}r(bi,"findOutputRefById");function _r(e){let n=Ie.basename(e.trim()).replace(/[^a-zA-Z0-9._ -]+/g,"-").replace(/\s+/g," ").trim().slice(0,180);if(!n||n==="."||n==="..")throw new Error("A valid output file name is required.");return n}r(_r,"safeOutputName");function Ar(e){return e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,100)||"item"}r(Ar,"safePathSegment");function Xn(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}r(Xn,"asRecord");function Pc(e){return typeof e=="number"&&Number.isFinite(e)?e:null}r(Pc,"numberValue");import{promises as Er}from"node:fs";import Gg from"node:path";async function Ac(e,t,n=Date.now()){let o=[];for(let i of await Er.readdir(e,{withFileTypes:!0})){if(!i.isFile()||!/\.log(?:\.\d+)?$/.test(i.name))continue;let a=Gg.join(e,i.name),l=await Er.lstat(a).catch(u=>{if(u.code==="ENOENT")return null;throw u});l?.isFile()&&o.push({file:a,size:l.size,modified:l.mtimeMs})}let s=o.reduce((i,a)=>i+a.size,0);for(let i of o.sort((a,l)=>a.modified-l.modified)){if(i.file===t||i.modified>=n-14*864e5&&s<=256*1024*1024)continue;let a=await Er.lstat(i.file).catch(()=>null);a?.isFile()&&a.size===i.size&&a.mtimeMs===i.modified&&(await Er.rm(i.file,{force:!0}),s-=i.size)}}r(Ac,"pruneLogs");import{promises as wo}from"node:fs";import Xg from"node:path";var Ec=1024*1024,Qg=5,vi=/authorization|api[_-]?key|token|session[_-]?token|secret|password/i,Yg=/Bearer\s+[A-Za-z0-9._~+/-]+=*/gi,Zg=/\b(?:https?|wss?):\/\/[^\s"'<>]+/gi;function eh(e){return{name:e.name,message:e.message,stack:e.stack}}r(eh,"serializeError");function Or(e){if(e instanceof Error)return Or(eh(e));if(typeof e=="string")return th(e);if(Array.isArray(e))return e.map(n=>Or(n));if(!e||typeof e!="object")return e;let t={};for(let[n,o]of Object.entries(e))t[n]=vi.test(n)?"[REDACTED]":Or(o);return t}r(Or,"redact");async function Oc(e,t){try{await wo.rm(t,{force:!0}),await wo.rename(e,t)}catch(n){if(n.code!=="ENOENT")throw n}}r(Oc,"renameIfExists");function th(e){return e.replace(Yg,"Bearer [REDACTED]").replace(Zg,t=>nh(t))}r(th,"redactString");function nh(e){let{url:t,suffix:n}=oh(e);try{let o=new URL(t);return(o.username||o.password)&&(o.username="[REDACTED]",o.password="[REDACTED]"),Mc(o.searchParams),o.hash&&(o.hash=rh(o.hash.slice(1))),`${o.toString()}${n}`}catch{return e}}r(nh,"redactUrl");function oh(e){let t=e,n="";for(;/[),.;!?]$/.test(t);)n=`${t.slice(-1)}${n}`,t=t.slice(0,-1);return{url:t,suffix:n}}r(oh,"splitUrlSuffix");function Mc(e){for(let t of Array.from(e.keys()))vi.test(t)&&e.set(t,"[REDACTED]")}r(Mc,"redactSearchParams");function rh(e){if(!e.includes("="))return vi.test(e)?"[REDACTED]":e;let t=new URLSearchParams(e.startsWith("?")?e.slice(1):e);return Mc(t),t.toString()}r(rh,"redactHash");function SS(e){let t=e.maxBytes??Ec,n=e.maxFiles??Qg,o=Xg.join(e.logDir,e.filename??`${e.channel}.log`),s=Promise.resolve(),i=0;async function a(u){let c=0;try{c=(await wo.stat(o)).size}catch(h){if(h.code!=="ENOENT")throw h}if(!(c+u<=t)){for(let h=n-1;h>=1;h-=1)await Oc(`${o}.${h}`,`${o}.${h+1}`);await Oc(o,`${o}.1`)}}r(a,"rotateIfNeeded");function l(u,c,h={}){let p={ts:new Date().toISOString(),level:u,channel:e.channel,message:c,pid:process.pid,platform:process.platform,...e.metadata??{},...h},y=`${JSON.stringify(Or(p))}
|
|
3
3
|
`;Buffer.byteLength(y)>Math.max(Ec,t)&&(y=`${JSON.stringify({ts:p.ts,level:u,channel:e.channel,message:"Oversized log record omitted",originalBytes:Buffer.byteLength(y)})}
|
|
4
4
|
`),s=s.then(async()=>{await wo.mkdir(e.logDir,{recursive:!0}),await a(Buffer.byteLength(y,"utf8")),await wo.appendFile(o,y,{encoding:"utf8",mode:384}),Date.now()-i>=6e4&&(await Ac(e.logDir,o),i=Date.now())}).catch(x=>{console.error("OpenPond logger failed",x)})}return r(l,"write"),{debug:r((u,c)=>l("debug",u,c),"debug"),info:r((u,c)=>l("info",u,c),"info"),warn:r((u,c)=>l("warn",u,c),"warn"),error:r((u,c)=>l("error",u,c),"error"),flush:r(()=>s,"flush"),filePath:o}}r(SS,"createLogger");function yi(e){let t=e.environment??process.env;if(e.provider!=="openpond"||e.model!==t.OPENPOND_HOSTED_MODEL_ID?.trim())return null;let n=t.OPENPOND_HOSTED_MODEL_CONTEXT_WINDOW,o=t.OPENPOND_HOSTED_MODEL_OUTPUT_LIMIT;if(n===void 0&&o===void 0)return null;let s=r(i=>{if(i===void 0)return null;let a=Number(i);if(!/^\d+$/.test(i)||!Number.isSafeInteger(a)||a<=0)throw new Error("Hosted admitted model limit is invalid.");return a},"parse");return{contextWindow:s(n),outputLimit:s(o)}}r(yi,"admittedHostedModelLimits");var qc=4,sh=128e3,ih=8e3,Nc=8192,jc=1024;function Mr(e){return e==="openpond"?e:null}r(Mr,"hostedContextProvider");function Nr(e,t){let o=t.trim().toLowerCase().match(/(?:^|[-_])(\d+)\s*k(?:[-_]|$)/);return o?.[1]?Number.parseInt(o[1],10)*1e3:sh}r(Nr,"hostedContextLimit");function bo(e){let t=Math.min(ih,Math.ceil(e*.25)),n=Math.min(e-1,Math.max(t,Math.ceil(e*.08)));return Math.max(1,e-n)}r(bo,"usableHostedContextLimit");function dn(e){let t=e.model?.trim();if(!t)return null;let n=yi({provider:e.provider,model:t});if(n?.contextWindow)return n.contextWindow;let s=e.settings?.modelCaches[e.provider]?.models.find(a=>a.id===t);if(s?.contextWindow)return s.contextWindow;let i=Mr(e.provider);return i?Nr(i,t):null}r(dn,"trustedProviderContextLimit");function Si(e){let t=e.model?.trim();if(!t)return null;let n=yi({provider:e.provider,model:t});return n?.outputLimit?n.outputLimit:e.settings?.modelCaches[e.provider]?.models.find(s=>s.id===t)?.outputLimit??null}r(Si,"trustedProviderOutputLimit");function jr(e){let t=e.reduce((n,o)=>n+o.role.length+(o.name?.length??0)+(o.content?.length??0)+8,0);return Math.max(1,Math.ceil(t/qc)+e.length*4)}r(jr,"estimateHostedMessageTokens");function Fr(e){let t=ch(e.provider,e.model);if(!t)return{tokens:jr(e.messages),source:"heuristic",modelFamily:null};let n=e.messages.reduce((o,s)=>o+4+ki(s.role,t)+ki(s.name??"",t)+ki(s.content??"",t),1);return{tokens:Math.max(1,n),source:"model_family",modelFamily:t}}r(Fr,"estimateHostedMessageTokensForProvider");function Qn(e){let t=e.maxContextTokens?Math.max(256,Math.floor(e.maxContextTokens/8)):Nc,n=e.modelOutputLimit&&e.modelOutputLimit>0?Math.floor(e.modelOutputLimit):Number.MAX_SAFE_INTEGER;return Math.max(1,Math.min(e.requestedOutputTokens??Nc,t,n))}r(Qn,"hostedRequestedOutputTokens");function Cn(e){let t=e.maxContextTokens??null,n=Fr({provider:e.provider,model:e.model,messages:e.messages}),o=n.tokens,s=Fc(e.tools??[]),i=Fc(e.messages.flatMap(u=>{let c={};return u.continuation!==void 0&&(c.continuation=u.continuation),u.tool_calls!==void 0&&(c.tool_calls=u.tool_calls),u.tool_call_id!==void 0&&(c.tool_call_id=u.tool_call_id),Object.keys(c).length>0?[c]:[]})),a=Math.max(1,Math.floor(e.maxOutputTokens)),l=ah(e.provider,t);return{messageTokens:o,toolDefinitionTokens:s,continuationTokens:i,outputAllowanceTokens:a,safetyReserveTokens:l,projectedTokens:o+s+i+a+l,maxContextTokens:t,tokenSource:n.source,tokenModelFamily:n.modelFamily}}r(Cn,"estimateHostedRequestBudget");function Fc(e){if(Array.isArray(e)&&e.length===0)return 0;let t=JSON.stringify(e);return!t||t==="[]"||t==="{}"?0:Math.max(1,Math.ceil(t.length/qc))}r(Fc,"estimatedSerializedTokens");function ah(e,t){return t?Math.min(Math.max(1,Math.floor(t/8)),Math.max(jc,Math.ceil(t*.02))):jc*2}r(ah,"requestSafetyReserveTokens");function lh(e,t){if(!e||typeof e!="object")return null;let n=e;for(let o of t){let s=n[o];if(typeof s=="number"&&Number.isFinite(s)&&s>=0)return Math.round(s)}return null}r(lh,"numericUsageValue");function dh(e,t){let n=bd(e),o=n.promptTokens,s=n.completionTokens,i=lh(e,["total_tokens","totalTokens"]);return t?i!==null?i:o!==null&&s!==null?o+s:null:o??i}r(dh,"tokenCountFromUsage");function $c(e){let t=e.usage===void 0?null:dh(e.usage,!!e.includeCompletion),n=Fr({provider:e.provider,model:e.model,messages:e.messages}),o=t??n.tokens,s=e.maxContextTokens??dn({provider:e.provider,model:e.model});if(!s)throw new Error(`Cannot create context usage snapshot without a trusted context limit for ${e.provider}.`);let i=Math.min(100,Math.round(o/s*100));return dr.parse({provider:e.provider,model:e.model,usedTokens:o,maxContextTokens:s,usableContextTokens:bo(s),percentFull:i,source:t===null?n.source:"provider_usage",updatedAtEventId:e.updatedAtEventId})}r($c,"createContextUsageSnapshot");function ch(e,t){let n=`${e}/${t??""}`.toLowerCase();return/\b(?:gpt|o[1-9]|codex)\b/.test(n)?"openai_cl100k":n.includes("claude")||e==="anthropic"?"anthropic_claude":n.includes("deepseek")||n.includes("kimi")||n.includes("glm")?"multilingual_code":null}r(ch,"modelTokenFamily");function ki(e,t){if(!e)return 0;let n=[...e].filter(i=>/[\u3000-\u9fff\uf900-\ufaff]/u.test(i)).length,o=Math.max(0,e.length-n);return Math.max(1,n+Math.ceil(o/(t==="anthropic_claude"?3.85:t==="multilingual_code"?3.65:3.75)))}r(ki,"estimateModelFamilyTextTokens");import{randomUUID as uh}from"node:crypto";import{promises as Dc}from"node:fs";import qr from"node:path";var Hc=8e3;function Ii(e,t){if(!/^custom:[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid custom personality identifier.");return qr.join(Sn(e).instructions,"personalities",`${t.slice(7)}.md`)}r(Ii,"personalityPath");function Ri(e,t){if(e.trim().length>Hc)throw new Un({code:"INVALID_INSTRUCTIONS",path:t??"personalization",message:`Personality text exceeds ${Hc} characters.`,action:"Shorten the personality text before using it."});return e.trim()}r(Ri,"validateText");async function ph(e){let t=qr.join(Sn(e).instructions,"personalities"),n=await Dc.readdir(t,{withFileTypes:!0}).catch(s=>{if(pl(s))return[];throw s}),o=[...ao];for(let s of n.sort((i,a)=>i.name.localeCompare(a.name))){if(!s.isFile()||!/^[a-zA-Z0-9_-]+\.md$/.test(s.name))continue;let i=qr.join(t,s.name),a=await io(i);a!==null&&o.push({id:`custom:${s.name.slice(0,-3)}`,name:s.name.slice(0,-3).replace(/[-_]+/g," "),source:"custom",description:"",content:Ri(a,i)})}return o}r(ph,"templatesWithFiles");async function mh(e,t){let{document:n}=await ur(t),o=await ph(t),s=n.personalization?.active??`builtin:${cr}`,i=s.startsWith("builtin:")?s.slice(8):s,a=o.find(u=>u.id===i);if(!a)throw new Un({code:"MISSING_PERSONALITY",path:s.startsWith("custom:")?Ii(t,s):Sn(t).config,message:`Selected personality ${s} is unavailable.`,action:"Restore its Markdown file or select an available personality in Settings."});let l=s.startsWith("custom:")?Ii(t,s):null;return xl.parse({activeTemplateId:i,customized:a.source==="custom",soul:n.personalization?.mode==="disabled"?"":a.content,soulPath:l,updatedAt:l?(await Dc.stat(l)).mtime.toISOString():null,templates:o})}r(mh,"loadPersonalizationSettings");async function qS(e,t,n){return await ar(qr.join(Sn(t).runtime,"personalization"),async()=>{let o=Ri(n.soul),s=ao.find(a=>a.id===n.activeTemplateId),i;if(!n.saveAsNew&&s&&o===s.content.trim())i=`builtin:${s.id}`;else{let a=n.templateName.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,56)||"custom";i=!n.saveAsNew&&n.activeTemplateId.startsWith("custom:")?n.activeTemplateId:`custom:${a}-${uh().slice(0,8)}`,await ml(Ii(t,i),`${o}
|
|
5
5
|
`)}await pr(t,a=>({...a,personalization:{...a.personalization,active:i}}))}),mh(e,t)}r(qS,"savePersonalizationSettings");function Lc(e,t){return[Ri(e),t.trim()].filter(Boolean).join(`
|
|
@@ -132,7 +132,7 @@ ${i}`,kind:"followup",reportingOnly:!0,idempotencyKey:`review:${o.turnId}:${o.ca
|
|
|
132
132
|
|
|
133
133
|
`)}r(Ss,"completionBody");var qk=2e4;function Ef(e){let t=e.requireSubagentDeps,n=e.sendTurn,o=e.getTurn,s=e.getPersistedRun,i=e.upsertPersistedRun,a=e.notifyRunStateChanged,l=e.latestTurnForSession,u=e.appendSubagentReceipt,c=e.subagentRuntimeDerivedProgress,h=e.subagentUsageAttribution,p=e.subagentUsageTotalsForRun,y=e.captureSubagentWorkspaceHandoff,x=e.applySubagentPatch,T=e.appendWorkspaceDiffEvent,m=e.uniqueSubagentRefs,w=e.notifyParentOfSubagentCompletion,C=e.commitCompletion,S={latestAssistantTextForSession:e.latestAssistantTextForSession},R=r(v=>new Promise(b=>setTimeout(b,v)),"delay");async function g(v){let b=t(),f=await b.getRun(v.run.id);if(f&&f.status!=="queued")return;let _=Y(),I=ye.parse({...f??v.run,status:"running",startedAt:_,progress:et.parse({...(f??v.run).progress??{},phase:"orient",latestMeaningfulActivity:"Child subagent turn started.",currentBlocker:null,updatedAt:_})});await b.upsertRun(I),await u({parentSession:v.parentSession,parentTurnId:v.parentTurnId,run:I,eventName:"subagent.started",status:"started",output:`${I.roleId} subagent is running.`}),await u({parentSession:v.parentSession,parentTurnId:v.parentTurnId,run:I,eventName:"subagent.progress",status:"pending",output:`${I.roleId} subagent is working in child conversation ${I.childSessionId??"unknown"}.`});let M=`failed_${I.id}`;try{let j=v.initialPrompt?.trim()||df({objective:v.run.objective,contextPack:v.contextPack});for(;;){let $=await d(v.childSession.id,v.run.id,{prompt:j,modelRef:v.run.modelRef??void 0,metadata:{subagentRunId:v.run.id,parentSessionId:v.parentSession.id,parentTurnId:v.parentTurnId,subagentRoleId:v.run.roleId,subagentPermissions:v.childTurnPermissions,usageAttribution:h(v.run)},usageAttribution:h(v.run),approvalPolicy:v.childTurnPermissions.approvalPolicy,sandbox:v.childTurnPermissions.sandbox,codexPermissionMode:v.childTurnPermissions.codexPermissionMode,codexReasoningEffort:v.childTurnPermissions.codexReasoningEffort},v.reservedTurnId),W=await k($);M=W.id;let U=await s(I.id);if(U?.status==="cancelled")return;if(I=U??I,W.status!=="completed")throw new Error(W.error||`Child turn ended with status ${W.status}.`);break}let N=Y(),q=await S.latestAssistantTextForSession(v.childSession.id),V=await p(v.run.id),B=await c({run:I,childSessionId:v.childSession.id,phase:"report",latestMeaningfulActivity:"Child conversation completed."}),z=await y(I),E=ve([...B.changedFiles,...z?.changedFiles??[]]),F=null;if(I=ye.parse({...I,status:"completed",completedAt:N,error:null,report:{summary:tt(q||"Child conversation completed.",qk),findings:[],artifacts:z?.artifacts??[],patchRef:z?.patchRef??null,diffRef:z?.diffRef??null,testsRun:B.validationAttempts.map($=>$.command),blockers:[],confidence:null,followUpNeeded:!1},progress:et.parse({...B,phase:"report",changedFiles:E,patchRefs:m([...B.patchRefs,z?.patchRef??null,z?.diffRef??null]),latestMeaningfulActivity:"Child conversation completed.",currentBlocker:null,updatedAt:N}),metadata:{...I.metadata,usage:V,...z?{workspaceHandoff:z.metadata}:{}}}),await i(I),z?.changed&&z.metadata.patchPath)try{let $=await x(I);$&&(I=ye.parse({...I,metadata:{...I.metadata,workspaceHandoff:{...z.metadata,applyResult:$}}}),await T(v.parentSession,v.parentTurnId).catch(()=>{}))}catch($){F=se($)||"Unable to apply the isolated child patch.",I=ye.parse({...I,status:"failed",error:F,report:{...I.report,blockers:[F],followUpNeeded:!0},progress:et.parse({...I.progress,latestMeaningfulActivity:"Child completed, but its isolated patch could not be integrated.",currentBlocker:F,updatedAt:Y()})})}await C(I,M),await u({parentSession:v.parentSession,parentTurnId:v.parentTurnId,run:I,eventName:F?"subagent.failed":"subagent.completed",status:F?"failed":"completed",output:F?`${I.roleId} child completed but integration failed: ${F}`:`${I.roleId} child completed.`}),await w({run:I,parentSession:v.parentSession,childSession:v.childSession,childTurnId:M,body:Ss(I),refs:m([...I.report?.artifacts??[],I.report?.patchRef??null,I.report?.diffRef??null])}),a?.(I)}catch(j){let N=await s(I.id).catch(()=>null);if(N&&N.status!=="running")return;let q=se(j)||"Subagent failed.",V=Y(),B=await y(I).catch(()=>null),z=!!(B?.changed||B?.artifacts.length),E=await c({run:I,childSessionId:v.childSession.id,phase:"report",latestMeaningfulActivity:z?"Child failed after producing recoverable artifacts.":"Child failed before producing a final report.",currentBlocker:q}),F=E.validationAttempts??[],$=ve([q,...E.currentBlocker?[E.currentBlocker]:[]]),W=ve([...E.changedFiles??[],...B?.changedFiles??[]]),U={summary:z?"Child conversation failed after producing recoverable artifacts.":"Child conversation failed before producing a final report.",findings:[],artifacts:B?.artifacts??[],patchRef:B?.patchRef??null,diffRef:B?.diffRef??null,testsRun:ve(F.map(te=>te.command)),blockers:$,confidence:"low",followUpNeeded:!0},J=et.parse({...E,phase:"report",changedFiles:W,patchRefs:m([...E.patchRefs??[],B?.patchRef??null,B?.diffRef??null]),latestMeaningfulActivity:z?"Child failed after producing recoverable artifacts.":"Child failed before producing a final report.",currentBlocker:q,updatedAt:V});I=ye.parse({...I,status:"failed",completedAt:V,error:q,report:U,progress:J,metadata:{...I.metadata??{},...B?{workspaceHandoff:B.metadata}:{}}}),await C(I,M),await u({parentSession:v.parentSession,parentTurnId:v.parentTurnId,run:I,eventName:"subagent.failed",status:"failed",output:z?`${I.roleId} subagent failed after producing recoverable artifacts: ${q}`:`${I.roleId} subagent failed: ${q}`}),await w({run:I,parentSession:v.parentSession,childSession:v.childSession,childTurnId:M,body:Ss(I),refs:m([...U.artifacts,U.patchRef,U.diffRef])}),a?.(I)}}r(g,"runSubagentChildTurn");async function d(v,b,f,_){let I=await l(v);return await new Promise((M,j)=>{let N=!1,q=null,V=r(E=>N||E.status==="in_progress"?!1:(N=!0,M(E),!0),"settleWithTurn"),B=r(E=>{N||(N=!0,j(E))},"fail");n(v,f,_).then(E=>{q=E.id,V(E)},B),r(async()=>{for(;!N;){let E=await l(v);if(N)return;let F=!!(E&&E.metadata?.subagentRunId===b&&(E.id!==I?.id||E.id===q));if(E&&F&&V(E))return;await R(250)}},"pollDurableTurn")().catch(B)})}r(d,"sendManagedSubagentTurn");async function k(v){let b=await Promise.race([l(v.sessionId),R(25).then(()=>null)]);if(b?.id===v.id&&b.status!=="in_progress")return b;if(v.status!=="in_progress")return v;let f=await o(v.id)??v;if(f.status!=="in_progress")return f;for(let _=0;_<200;_+=1)if(await R(250),f=await o(v.id)??f,f.status!=="in_progress")return f;return f}return r(k,"finalizedSubagentChildTurn"),{runSubagentChildTurn:g}}r(Ef,"createSubagentChildTurnRuntime");import{randomUUID as $k}from"node:crypto";function Of(e){let t=e.inbox,n=6e4,o=new Set,s=e.requireSubagentDeps,i=e.loadAppPreferences,a=e.getSession,l=e.appendSubagentReceipt,u=e.subagentWorkspaceTargetKeyForSession,c=e.subagentWorkspaceTargetKeyFromRun,h=e.subagentChildTurnPermissions,p=e.prepareSubagentWorkspaceIsolation,y=e.runSubagentChildTurn,x=e.subagentToolResultFromRun,T=e.subagentRoleLabel,m=e.interruptSessionTurn,w=e.cleanupSubagentRun,C=e.queueSubagentFollowupMessage,S=e.archiveSubagentChildSession,R=e.subagentLifecycleActionNextStep;async function g(I,M){if(I.session.subagentRunId)throw new Error("Child subagents cannot start additional subagents in this version.");let j=s(),N=await i();if(!N.subagents.enabled)throw new Error("Subagents are disabled in settings.");let q=N.subagents.roles.find(F=>F.id===M.roleId);if(!q?.enabled)throw new Error(`Subagent role ${M.roleId} is not enabled.`);let V=I.model?{providerId:I.provider,modelId:I.model}:null,B=q.modelRef??N.subagents.defaultModelRef??V??N.defaultChatModelRef??{providerId:N.defaultChatProvider,modelId:N.defaultChatModel},z=await u(I.session),E=q.toolPolicy!=="read_only";if(E&&o.has(z))throw new Error(`Another write-capable subagent is starting for ${z}.`);E&&o.add(z);try{let F=await j.listRuns({parentSessionId:I.session.id,status:["queued","running","needs_resume"],limit:1e3});if(F.length>=N.subagents.maxConcurrentRuns)throw new Error(`Subagent concurrency limit reached: ${F.length}/${N.subagents.maxConcurrentRuns} active child runs.`);let $=F.filter(Xe=>Xe.roleId===q.id);if($.length>=q.maxConcurrentRuns)throw new Error(`Subagent role ${q.id} concurrency limit reached: ${$.length}/${q.maxConcurrentRuns} active runs.`);let W=N.subagents.maxConcurrentRunsPerProvider;if(W!==null){let Xe=F.filter(_e=>_e.modelRef?.providerId===B.providerId);if(Xe.length>=W)throw new Error(`Subagent provider ${B.providerId} concurrency limit reached: ${Xe.length}/${W} active runs.`)}let U=N.subagents.maxConcurrentRunsPerWorkspaceTarget;if(U!==null&&E){let _e=(await j.listRuns({status:["queued","running","needs_resume"],limit:1e3})).filter(ke=>ke.toolPolicy!=="read_only"&&c(ke)===z);if(_e.length>=U)throw new Error(`Subagent workspace target concurrency limit reached: ${_e.length}/${U} active runs for ${z}.`)}let J=$k(),te=Y(),de=h(I.turnPermissions,q),ie=await p({parentSession:I.session,role:q,runId:J}),me=ie.sessionWorkspace??{},fe=M.context??null,we=lf({role:q,objective:M.objective,parentSession:I.session,contextPack:fe}),X={...G(me.metadata)??{},subagent:{runId:J,roleId:q.id,parentSessionId:I.session.id,parentTurnId:I.turnId,toolPolicy:q.toolPolicy,requestedIsolationMode:q.isolationMode,effectiveIsolationMode:ie.effectiveIsolationMode,workspace:ie.workspace,systemContext:we}},Ce=await j.createSession({experience:I.session.experience,provider:B.providerId,modelRef:B,openPondCommandAccessMode:I.session.openPondCommandAccessMode,hiddenFromDefaultSidebar:!0,parentSessionId:I.session.id,parentTurnId:I.turnId,subagentRunId:J,subagentRoleId:q.id,appId:I.session.appId,appName:I.session.appName,workspaceKind:me.workspaceKind??I.session.workspaceKind,workspaceId:me.workspaceId??I.session.workspaceId,workspaceName:me.workspaceName??I.session.workspaceName,localProjectId:me.localProjectId??I.session.localProjectId,cloudProjectId:me.cloudProjectId??I.session.cloudProjectId,cloudTeamId:me.cloudTeamId??I.session.cloudTeamId,currentProfile:I.session.currentProfile??null,cwd:ie.cwd??I.session.cwd,title:`${T(q)}: ${M.objective.slice(0,72)}`,metadata:X}),ae=ie.blocker,Fe=ye.parse({id:J,parentSessionId:I.session.id,parentTurnId:I.turnId,childSessionId:Ce.id,roleId:q.id,objective:M.objective,modelRef:B,isolationMode:q.isolationMode,toolPolicy:q.toolPolicy,background:q.background,peerMessages:q.peerMessages,status:ae?"failed":"queued",progress:et.parse({phase:ae?"report":"orient",currentBlocker:ae,latestMeaningfulActivity:ae?"Child failed before execution because isolation is unavailable.":"Child run created.",updatedAt:te}),createdAt:te,startedAt:null,completedAt:ae?te:null,error:ae,report:ae?{summary:"Child could not start because write-capable isolation is unavailable.",blockers:[ae],followUpNeeded:!0}:null,metadata:{context:fe,childTurnPermissions:de,concurrency:{providerId:B.providerId,providerMaxConcurrentRuns:W,workspaceTargetKey:z,workspaceTargetMaxConcurrentRuns:U},subagentWorkspace:ie.workspace}});return await j.upsertRun(Fe),await l({parentSession:I.session,parentTurnId:I.turnId,run:Fe,childSession:Ce,eventName:ae?"subagent.failed":"subagent.started",status:ae?"failed":"pending",output:ae?`Child ${q.id} failed to start: ${ae}`:`Started ${q.id} subagent.`}),!ae&&q.background&&j.queue.enqueue({label:`${q.id}: ${M.objective.slice(0,80)}`,metadata:{runId:J,childSessionId:Ce.id,parentSessionId:I.session.id}},()=>y({run:Fe,role:q,childSession:Ce,parentSession:I.session,parentTurnId:I.turnId,contextPack:fe,childTurnPermissions:de})),x(Fe,ae?"Open the child conversation or wait for workspace isolation support before retrying write-capable work.":"Subagent queued in its own child conversation. Continue useful parent work or wait for its completion notification.")}finally{E&&o.delete(z)}}r(g,"startSubagentFromModelTool");async function d(I,M){let j=s(),N=M.runId?[await j.getRun(M.runId)].filter(q=>!!q):await j.listRuns({parentSessionId:I.session.id,limit:50});for(let q of N)qo(I.session,q);return{runs:N.map(q=>x(q,"Subagent status loaded.")),nextStep:N.length===0?"No matching subagent runs.":`Loaded ${N.length} subagent run${N.length===1?"":"s"}.`}}r(d,"statusSubagentsFromModelTool");async function k(I,M){let j=s(),N=await j.getRun(M.runId);if(!N)throw new Error(`Subagent run ${M.runId} was not found.`);return qo(I.session,N),(M.inputId||N.status==="queued"||N.status==="running")&&N.childSessionId&&(await t.wait({sessionId:I.session.id,turnId:I.turnId,callId:I.callId,targetSessionId:N.childSessionId,targetInputId:M.inputId??void 0,timeoutMs:n,signal:I.signal}),N=await j.getRun(M.runId)??N),N.status!=="queued"&&N.status!=="running"&&(N=ye.parse({...N,metadata:{...N.metadata??{},completionConsumedByParent:{at:Y(),parentSessionId:I.session.id,parentTurnId:I.turnId,childCompletedAt:N.completedAt}}}),await j.upsertRun(N)),x(N,N.status==="completed"?"Child completed; use its final result or inspect the child conversation.":N.status==="queued"||N.status==="running"?"Child is still running. Do independent work, or wait again when blocked. Its completion report will arrive in the task inbox.":`Child ended with status ${N.status}; inspect its result before deciding the next action.`)}r(k,"joinSubagentFromModelTool");async function v(I,M){let j=s(),N=await j.getRun(M.runId);if(!N)throw new Error(`Subagent run ${M.runId} was not found.`);if(qo(I.session,N),N.status==="completed")return x(N,"Subagent already completed; no cancellation was applied.");if(N.status==="cancelled")return x(N,"Subagent was already cancelled.");let q=M.reason?.trim()||"Subagent cancelled by request.",V=Y(),B=ye.parse({...N,status:"cancelled",completedAt:V,error:q,report:{...N.report??{},summary:N.report?.summary||"Subagent cancelled before completion.",blockers:ve([...N.report?.blockers??[],q]),followUpNeeded:!1},metadata:{...N.metadata??{},cancellation:{reason:q,cancelledAt:V,requestedBySessionId:I.session.id,requestedByTurnId:I.turnId}}});await j.upsertRun(B);let z=null;if(N.childSessionId)try{let $=await m(N.childSessionId);z={status:$.status,turnId:$.id}}catch($){z={status:"not_active",error:se($)||"No active child turn to interrupt."}}let E=M.cleanupWorkspace===!1?{status:"skipped",reason:"cleanupWorkspace was false"}:null;if(M.cleanupWorkspace!==!1){let $=await w({run:B,parentSession:I.session,parentTurnId:I.turnId,reason:"cancel_requested",policy:"cancel_requested"});B=$.run,E=$.workspaceCleanup}B=ye.parse({...B,metadata:{...B.metadata??{},cancellation:{...G(B.metadata?.cancellation)??{},interruptResult:z,workspaceCleanup:E}}}),await j.upsertRun(B);let F=N.parentSessionId===I.session.id?I.session:await a(N.parentSessionId).catch(()=>I.session);return await l({parentSession:F,parentTurnId:N.parentTurnId??I.turnId,run:B,eventName:"subagent.cancelled",status:"failed",output:`${N.roleId} subagent cancelled: ${q}`}),x(B,E?.status==="removed"?"Subagent cancelled and isolated workspace cleanup completed.":"Subagent cancelled.")}r(v,"cancelSubagentFromModelTool");async function b(I,M){let N=await s().getRun(M.runId);if(!N)throw new Error(`Subagent run ${M.runId} was not found.`);if(qo(I.session,N),!N.childSessionId)throw new Error(`Subagent run ${N.id} has no child conversation.`);if(N.status==="cancelled")throw new Error(`Subagent run ${N.id} is ${N.status} and cannot receive a follow-up.`);let q=await C({context:I,run:N,body:M.message});return{...x(N,"Follow-up saved in the task inbox. Pass taskInputId as inputId when joining this assignment."),taskInputId:q.id}}r(b,"followupSubagentFromModelTool");async function f(I,M){let j=kl.parse(M),q=await s().getRun(I);if(!q)throw new Error(`Subagent run ${I} was not found.`);let V=await a(q.parentSessionId),B=j.reason??`Manual subagent ${j.action} requested.`,z=q,E=null,F=null;if(j.action==="cleanup"||j.action==="cleanup_and_archive"){let $=await w({run:z,parentSession:V,parentTurnId:z.parentTurnId??null,reason:B,policy:"manual_cleanup"});z=$.run,E=$.workspaceCleanup}if(j.action==="archive"||j.action==="cleanup_and_archive"){let $=await S({parentSession:V,parentTurnId:z.parentTurnId??null,run:z,reason:B,policy:"manual_archive"});z=$.run,F=$.sessionArchive}return{action:j.action,run:z,workspaceCleanup:E,sessionArchive:F,nextStep:R(j.action,E,F)}}r(f,"runSubagentLifecycleAction");async function _(I,M={}){let j=G(M)??{},q=await s().getRun(I);if(!q)throw new Error(`Subagent run ${I} was not found.`);let V=await a(q.parentSessionId),B=H(j,"checkedAt")??Y(),z=H(j,"reason")??`Retained subagent workspace retention expired at ${B}.`,E=await w({run:q,parentSession:V,parentTurnId:q.parentTurnId??null,reason:z,policy:"retention_expired"});return{action:"cleanup",run:E.run,workspaceCleanup:E.workspaceCleanup,sessionArchive:null,nextStep:R("cleanup",E.workspaceCleanup,null)}}return r(_,"cleanupExpiredRetainedSubagentWorkspace"),{cancelSubagentFromModelTool:v,cleanupExpiredRetainedSubagentWorkspace:_,followupSubagentFromModelTool:b,joinSubagentFromModelTool:k,runSubagentLifecycleAction:f,startSubagentFromModelTool:g,statusSubagentsFromModelTool:d}}r(Of,"createSubagentToolRuntime");function Mf(e){async function t(o){if(!o.run.childSessionId)return{run:o.run,sessionArchive:{status:"missing_child_session"}};let s;try{let l=await e.getSession(o.run.childSessionId);l.archived||await e.updateSession(l.id,{archived:!0}),s={status:l.archived?"already_archived":"archived",archivedAt:Y()}}catch(l){s={status:"failed",error:se(l)||"Failed to archive child conversation."}}let i=await e.getRun(o.run.id)??o.run,a=ye.parse({...i,metadata:{...i.metadata??{},childSessionArchive:{...s,reason:o.reason,policy:o.policy}}});return await e.upsertRun(a),await e.appendSubagentReceipt({parentSession:o.parentSession,parentTurnId:o.parentTurnId,run:a,eventName:"subagent.archived",status:s.status==="failed"?"failed":"completed",output:s.status==="failed"?`Failed to archive ${a.roleId} child conversation.`:`Archived ${a.roleId} child conversation.`}),{run:a,sessionArchive:s}}r(t,"archiveSubagentChildSession");function n(o,s,i){return o==="cleanup"?s?"Child workspace cleanup finished.":"No child workspace cleanup was needed.":o==="archive"?i?"Child conversation archive finished.":"No child conversation was available to archive.":"Child workspace cleanup and conversation archive finished."}return r(n,"subagentLifecycleActionNextStep"),{archiveSubagentChildSession:t,subagentLifecycleActionNextStep:n}}r(Mf,"createSubagentLifecycleRuntime");function Nf(e){function t(){return!!(e.createSession&&e.queue&&e.upsertRun&&e.getRun&&e.listRuns&&e.appendMessage&&e.listUsageRecords)}r(t,"available");async function n(i){if(!e.upsertRun)throw new Error("Subagent runtime dependencies are not available.");let a=await e.upsertRun(i);return e.notifyRunStateChanged?.(a),a}r(n,"upsertRunAndNotify");function o(){if(!e.createSession||!e.queue||!e.upsertRun||!e.getRun||!e.listRuns||!e.appendMessage||!e.listUsageRecords)throw new Error("Subagent runtime dependencies are not available.");return{createSession:e.createSession,queue:e.queue,upsertRun:n,getRun:e.getRun,listRuns:e.listRuns,appendMessage:e.appendMessage,listUsageRecords:e.listUsageRecords}}r(o,"requireDependencies");async function s(i){await e.appendRuntimeEvent(L({sessionId:i.parentSession.id,turnId:i.parentTurnId??void 0,name:i.eventName,source:"server",appId:i.parentSession.appId,status:i.status,output:i.output,data:{run:i.run,childSessionId:i.run.childSessionId,...i.childSession?{childSession:Hk(i.childSession)}:{}}}))}return r(s,"appendReceipt"),{appendReceipt:s,available:t,requireDependencies:o,upsertRunAndNotify:n}}r(Nf,"createSubagentRepositoryRuntime");function Hk(e){let{metadata:t,...n}=e;return n}r(Hk,"sessionShell");function jf(e,t){return{runId:e.id,childSessionId:e.childSessionId,roleId:e.roleId,status:e.status,modelRef:e.modelRef,isolationMode:e.isolationMode,toolPolicy:e.toolPolicy,background:e.background,peerMessages:e.peerMessages,progress:e.progress,report:e.report,nextStep:t}}r(jf,"subagentToolResultFromRun");function Ff(e){return e.id.slice(0,1).toUpperCase()+e.id.slice(1).replace(/[-_]+/g," ")}r(Ff,"subagentRoleLabel");function qf(e){let t=new Set,n=[];for(let o of e){if(!o)continue;let s=`${o.kind}:${o.id}`;t.has(s)||(t.add(s),n.push(o))}return n}r(qf,"uniqueSubagentRefs");function $f(e){return Dk(e)??Lk(e)}r($f,"authoringCommandRoute");function Hf(e){if(e.target.kind!=="agent"||e.operation!=="create"&&e.operation!=="improve")return null;let t=e.operation==="improve"?Lo(e.target.id??""):null;if(e.operation==="improve"&&!t)throw new Error("Agent improve requires an exact target Agent ID.");return{skillName:"openpond-agent-authoring",intent:{artifact:"agent",operation:e.operation,objective:e.objective.trim()||(e.operation==="create"?"Create a source-backed Profile Agent.":`Improve the Profile Agent ${t}.`),targetAgentId:t,source:"authoring_entry"}}}r(Hf,"authoringCommandRouteFromLegacyAgentRun");function Dk(e){let t=/^\/skill(?:\s+([\s\S]*))?$/i.exec(e.trim());if(!t)return null;let n=t[1]?.trim()??"";if(!n)return null;let[o="",...s]=n.split(/\s+/),i=o.toLowerCase();if(i==="list"||i==="help")return null;if(i==="edit"){let[u="",...c]=s,h=Lo(u.replace(/^\$/,""));if(!h)throw new Error("/skill edit requires an exact lowercase kebab-case Skill name.");return{skillName:"openpond-skill-authoring",intent:{artifact:"skill",operation:"edit",objective:c.join(" ").trim()||`Improve the Profile skill ${u||"selected by the user"}.`,targetSkillName:h,source:"slash_command"}}}let a=i==="create"?s.join(" ").trim():n,l=Bk(a);return{skillName:"openpond-skill-authoring",intent:{artifact:"skill",operation:"create",objective:l.objective||"Create a reusable Profile skill from the current conversation.",targetSkillName:l.name,source:"slash_command"}}}r(Dk,"skillAuthoringRoute");function Lk(e){let t=/^\/agent(?:\s+([\s\S]*))?$/i.exec(e.trim());if(!t)return null;let n=t[1]?.trim()??"",[o="",...s]=n.split(/\s+/),i=o.toLowerCase();if(i==="help"||i==="list")return null;if(i==="improve"||i==="edit"){let[l="",...u]=s,c=Lo(l);if(!c)throw new Error("/agent improve requires an exact lowercase kebab-case Agent ID.");return{skillName:"openpond-agent-authoring",intent:{artifact:"agent",operation:"improve",objective:u.join(" ").trim()||`Improve the Profile Agent ${l||"selected by the user"}.`,targetAgentId:c,source:"slash_command"}}}return{skillName:"openpond-agent-authoring",intent:{artifact:"agent",operation:"create",objective:(i==="create"?s.join(" ").trim():n)||"Create a source-backed Profile Agent from the current conversation.",targetAgentId:null,source:"slash_command"}}}r(Lk,"agentAuthoringRoute");function Bk(e){let t=e.trim(),n=/^--name\s+([a-z][a-z0-9-]*)\s+([\s\S]+)$/i.exec(t);if(n)return{name:Lo(n[1]??""),objective:n[2]?.trim()??""};let o=/^([a-z][a-z0-9-]*):\s*([\s\S]+)$/.exec(t);return o?{name:Lo(o[1]??""),objective:o[2]?.trim()??""}:{name:null,objective:t}}r(Bk,"splitOptionalSkillName");function Lo(e){let t=e.trim().toLowerCase();return/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(t)?t:null}r(Lo,"normalizePackageId");function zk(e,t){return t?.interactionKind!=="steer"?e:["[Steering instruction for an interrupted response]","Change the response direction immediately. Treat the instruction below as a correction to the response that was in progress, not as an unrelated new request.",e].join(`
|
|
134
134
|
|
|
135
|
-
`)}r(zk,"promptWithSteeringContext");function gj(e){let{attachmentRootDir:t,store:n,resolveCreateImproveTaskset:o,gradeCreateImproveTaskAttempt:s,upsertApproval:i,createSession:a,getSession:l,updateSession:u,completeTurn:c,failTurn:h,interruptTurn:p,defaultSessionCwd:y,findOpenPondApp:x,resolveSessionWorkspaceCwd:T,ensureCodexRuntime:m,appendWorkspaceDiffEvent:w,workspaceDiffBaseline:C,appendRuntimeEvent:S,processHarnessImprovementBoundary:R,executeWorkspaceTool:g,forkSandboxForSubagent:d,cleanupSandboxForSubagent:k,finalizeWorkTurn:v,workInputsForSession:b,executeOpenPondCommand:f,executeProfileAction:_,executeProjectAction:I,executeChatResourceAction:M,executeDatasetBuilderAction:j,loadOpenPondProfileState:N,loadOpenPondProfileStateForRef:q,readOpenPondProfileSkill:V,loadSelectedHarnessRuntime:B,ensureHarnessRunOverlay:z,loadOpenPondExtensionCatalog:E,readOpenPondExtensionSkill:F,executeProfileSkillCommand:$,executeWebSearch:W,createScheduledWork:U,executeConnectedAppTool:J,htmlVisuals:te,browserToolExecutor:de,manageSidebarFile:ie,listIntegrationConnections:me,loadPersonalizationSoul:fe,loadAppPreferences:we=r(async()=>Rl.parse({}),"loadAppPreferences"),loadProviderSettings:X,maybeCreateScaffoldForTurn:Ce,hostedSystemPrompt:ae,appendAssistantText:Fe,appendHostedContextUsage:Xe,streamLocalByokChatTurn:_e,streamOpenPondHostedChatTurn:ke=Kn,runLocalCreatePipelineChecks:Bo,planCreateImprove:Gt,turnFollowUpQueue:hn,subagentQueue:Le,notifySubagentRunStateChanged:to,maxHostedWorkspaceToolRounds:Xt,maxRepeatedInvalidToolRequests:Qt}=e,Me=e.inboxStore??n,Dn=Bm(e.storageHome??t),rt=ma(e.hostedToolFlags),Qe=new bs,pe=Nm({prepareInputAttachments:ap({storageHome:e.storageHome??t,attachmentRootDir:t}),store:Me,getSession:l,listSessions:r(()=>n.sessionShells(),"listSessions"),getTurn:r(A=>n.getTurn(A),"getTurn"),latestTurn:r(A=>n.latestTurnForSession(A),"latestTurn"),recoverInterruptedTurn:r(async(A,Q)=>{(await n.getTurn(Q))?.status==="in_progress"&&await p(await l(A),Q,"The local app server restarted before this turn finished. Pending inputs are preserved. Review completed tool activity, then resume this chat to continue.")},"recoverInterruptedTurn"),getSubagentRun:r(A=>n.getSubagentRun?n.getSubagentRun(A):Promise.resolve(null),"getSubagentRun"),getActiveTurn:r(A=>Qe.get(A),"getActiveTurn"),appendRuntimeEvent:S,startFollowup:r(async(A,Q,oe,re)=>{let be=await l(A),D=Dt.parse(Q);if(!be.subagentRunId){if(re.senderKind==="user")return Vo(A,D,oe,re.payload.remoteDevice?{beforeExecute:r(async jt=>{pi(re,jt)},"beforeExecute")}:void 0);let Ct=await n.latestTurnForSession(A),lt=re.payload.localPonderExecutionPermissions??Ct?.metadata.taskExecutionPermissions??{approvalPolicy:"on-request",sandbox:"read-only",codexPermissionMode:"default"};return Vo(A,{...D,...lt,...gn(re)||re.payload.taskReportingOnly===!0?{sandbox:"read-only",approvalPolicy:"never",codexPermissionMode:"default"}:{}},oe,re.senderKind==="ponder"?{beforeExecute:r(async jt=>{ac(re,jt),await Oa(an.parse(re.payload.ponderDesktop).operation,jt,n,Dn),pi(re,jt)},"beforeExecute")}:re.payload.localPonderHostedResult?{beforeExecute:r(async()=>{if(!e.localPonderHosted)throw new Error("local_ponder_hosted_unavailable");await e.localPonderHosted.assertCompletionScope(re.payload.localPonderHostedResult)},"beforeExecute")}:re.payload.localPonderControlRevision!==void 0?{beforeExecute:r(async()=>{await Me.assertLocalPonderInput?.(re)},"beforeExecute")}:void 0)}let ee=await Ga({session:be,request:D,requestedTurnPermissions:Ko(D)});if(!ee||ee.run.status==="cancelled")throw new Error("Child follow-up is unavailable.");let at={...ee.run,status:"queued",completedAt:null,error:null,report:null,metadata:{...ee.run.metadata,completionConsumedByParent:null}};await Pt().upsertRun(at),await Xa({run:at,role:ee.role,childSession:be,parentSession:await l(at.parentSessionId),parentTurnId:at.parentTurnId??oe,contextPack:typeof at.metadata.context=="string"?at.metadata.context:null,childTurnPermissions:ee.turnPermissions,initialPrompt:D.prompt,reservedTurnId:oe});let O=await n.getTurn(oe);if(!O)throw new Error("Child follow-up did not start.");return O},"startFollowup"),dispatchFollowup:r(async(A,Q)=>{let oe=await hn.enqueue({label:"Task inbox follow-up",metadata:{sessionId:A}},Q).done;if(oe.status==="failed")throw new Error(oe.error??"Task follow-up failed.")},"dispatchFollowup"),yieldWhileWaiting:r(A=>hn.yieldWhileWaiting(()=>Le?Le.yieldWhileWaiting(A):A()),"yieldWhileWaiting")}),xt=Km(pe,{input:r(A=>Me.getTaskInput(A),"input"),readSource:r(async(A,Q,oe,re)=>{if(await Oa(A,Q,n,Dn),!A.workflow?.source)throw new Error("The verified workflow source is not available yet.");return Dn.inspect(A.workflow.source,oe,re)},"readSource")}),ue=[...e.localPonderHosted?ep(e.localPonderHosted):[],...tp(n),...op({store:Me,inbox:pe,createSession:a,createReservedSession:e.createReservedSession,projects:e.localPonderProjects,settings:e.localPonderProviderSettings??X,getSession:l,sessions:r(()=>n.sessionShells(),"sessions"),transcript:r(async(A,Q)=>{if(!n.runtimeEventPageRows)throw new Error("local_ponder_history_unavailable");let oe=await n.runtimeEventPageRows({sessionId:A,afterSequence:0,beforeSequence:Q??Number.MAX_SAFE_INTEGER,limit:100});return{turn:await n.latestTurnForSession(A),latestAssistantText:await n.latestAssistantTextForSession(A),events:oe.entries.map(re=>re.event),nextBeforeSequence:oe.remainingMatchingEvents>oe.entries.length?oe.entries[0]?.sequence??null:null}},"transcript"),stop:r(A=>xs(A),"stop")})],Ee=Kp({listIntegrationConnections:me,appendRuntimeEvent:S}),Ae=vs({upsert:n.upsertModelUsageRecord?A=>n.upsertModelUsageRecord(A):null,appendRuntimeEvent:S});async function Ne(A){if(!(!R||!A.turn.harnessSnapshot||A.session.metadata?.standaloneExperiment!==void 0||A.session.metadata?.localProfileExperiment!==void 0||A.session.metadata?.profileEvaluationRun!==void 0))try{await R(A)}catch(Q){await S(L({sessionId:A.session.id,turnId:A.turn.id,name:"diagnostic",source:"server",appId:A.session.appId,status:"failed",output:Q instanceof Error?Q.message:String(Q),data:{phase:"harness_improvement_boundary"}})).catch(()=>{})}}r(Ne,"processHarnessImprovementBoundarySafely");async function Tt(A){return n.getTurn(A)}r(Tt,"getStoredTurn");function Yt(A){return os(rt,A)}r(Yt,"nativeToolsEnabledForProvider");function st(A){return de?.available({sessionId:A.id,conversationId:A.id})??!1}r(st,"browserControlAvailable");function wn(A){return Yt(A)&&rt.dynamicActionTools?"native_tool":Vt(rt,A)==="full_text_fallback"?"text_fallback":"none"}r(wn,"actionCatalogInstructionModeForProvider");async function it(A){await n.insertTurn(A)}r(it,"insertStoredTurn");async function Nt(A,Q){return n.updateTurn(A,Q)}r(Nt,"updateStoredTurn");let{activeInProgressTurn:Ke,findInProgressTurn:Wo,interruptActiveTurn:Rs,interruptedError:Bf,interruptSessionTurn:xs,throwIfInterrupted:Zt,turnWasInterrupted:Wf}=rf({activeTurns:Qe,getSession:l,getTurn:Tt,latestTurnForSession:r((A,Q)=>n.latestTurnForSession(A,Q),"latestTurnForSession"),interruptTurn:p}),Uo=af({activeTurns:Qe,interruptActiveTurn:Rs,jobRegistries:[],queues:[hn,...Le?[Le]:[]]}),zo=Nf({createSession:a,queue:Le,upsertRun:n.upsertSubagentRun?A=>n.upsertSubagentRun(A):void 0,getRun:n.getSubagentRun?A=>n.getSubagentRun(A):void 0,listRuns:n.listSubagentRuns?A=>n.listSubagentRuns(A):void 0,appendMessage:n.appendSubagentMessage?A=>n.appendSubagentMessage(A):void 0,listUsageRecords:n.listModelUsageRecords?A=>n.listModelUsageRecords(A):void 0,notifyRunStateChanged:r(A=>{to?.(A),A.childSessionId&&pe.wake(A.childSessionId)},"notifyRunStateChanged"),appendRuntimeEvent:S}),za=zo.available,Pt=zo.requireDependencies,Uf=zo.upsertRunAndNotify,Ln=zo.appendReceipt,Ts=nf(e),Ka=Ic(async()=>{let[{createCreateImproveRuntime:A},{createCreateImproveTurnHandler:Q}]=await Promise.all([import("./runtime-Q7JUJO4D.js"),import("./send-turn-YLY3YNEQ.js")]),oe=A({getSession:l,getTurn:Tt,updateTurn:Nt,getCreateImproveRun:r(re=>n.getCreateImproveRun(re),"getCreateImproveRun"),listCreateImproveRuns:r(re=>n.listCreateImproveRuns(re),"listCreateImproveRuns"),upsertCreateImproveRun:r(re=>n.upsertCreateImproveRun(re),"upsertCreateImproveRun"),mutateCreateImproveRun:r((re,be)=>n.mutateCreateImproveRun(re,be),"mutateCreateImproveRun"),getApproval:r(re=>n.getApproval(re),"getApproval"),upsertApproval:i,appendRuntimeEvent:S,ensureCodexRuntime:m,runLocalCreatePipelineChecks:Bo,planCreateImprove:Gt,turnFollowUpQueue:hn,streamLocalByokChatTurn:_e,streamOpenPondHostedChatTurn:ke,upsertModelUsageRecord:Ae,resolveTaskset:o,gradeTaskAttempt:s});return{...oe,handleCreateImproveTurn:Q({appendRuntimeEvent:S,completeTurn:c,planCreateImproveForTurn:oe.planCreateImproveForTurn,persistCreateImproveRun:oe.persistCreateImproveRun}),async close(){}}}),{applyCreateImproveActionPayload:zf,getCreateImproveRun:Kf,listCreateImproveRuns:Vf,persistCreateImprovePlanningFailure:Jf,resolveCreateImproveApproval:Gf,handleCreateImproveTurn:Xf}=Ka.methods(["applyCreateImproveActionPayload","getCreateImproveRun","listCreateImproveRuns","persistCreateImprovePlanningFailure","resolveCreateImproveApproval","handleCreateImproveTurn"]),Qf=of({appendRuntimeEvent:S,completeTurn:c}),{prepareHostedProviderRequest:Yf,closePonderHistory:Zf}=vm({ponderHistoryStore:n,sessionForPonderHistory:l,getPonderHistoryCredential:e.getPonderHistoryCredential,streamPonderHistorySummary:r(async function*(A){if(A.provider==="openpond"){let Q=await e.resolveSessionModelStream?.(A.session,A.turn)??ke;for await(let oe of Q({model:A.model,messages:A.messages,requestId:A.requestId,maxTokens:700,reasoningEffort:Oo({provider:A.provider,model:A.model,selected:void 0,settings:await(e.localPonderProviderSettings??X)?.()}),signal:A.signal}))oe.type==="text_delta"&&(yield{text:oe.text,raw:oe.raw}),oe.type==="usage"&&(yield{usage:oe.usage,raw:oe.raw}),oe.type==="finish"&&(yield{finishReason:oe.finishReason,raw:oe.raw})}else{if(!_e)throw new Error("ponder_history_provider_unavailable");for await(let Q of _e({providerId:A.provider,modelId:A.model,messages:A.messages,requestId:A.requestId,maxOutputTokens:700,expectedPonderHistoryCredential:A.expectedCredential,signal:A.signal??new AbortController().signal}))yield Q}},"streamPonderHistorySummary"),loadAppPreferences:we,appendRuntimeEvent:S,runtimeEventsForSession:r((A,Q)=>n.runtimeEventsForSession(A,Q),"runtimeEventsForSession"),streamOpenPondHostedChatTurn:ke,resolveSessionModelStream:e.resolveSessionModelStream,upsertModelUsageRecord:Ae,throwIfInterrupted:Zt,interruptedError:Bf}),{appendProfileSkillEvent:eg,executeNativeToolCalls:tg,explicitProfileSkillNames:ng,profileSkillBodyFromReadResult:og,readProfileSkillForModel:rg}=km({authorizeCandidateTool:e.authorizeCandidateTool,hasPendingSteering:r(async(A,Q)=>(await Me.pendingTaskInputs(A,Q)).some(oe=>oe.kind==="steer"),"hasPendingSteering"),maxRepeatedInvalidToolRequests:Qt,appendRuntimeEvent:S,throwIfInterrupted:Zt}),{loadProfileSkillRuntime:sg,preloadExplicitProfileSkills:ig,profileSkillInstructionModeForProvider:Ps}=Vm({loadProfileState:q?A=>q(A.currentProfile):N?()=>N():void 0,readProfileSkill:V,loadBuiltInSkills:e.loadBuiltInOpenPondSkills,readBuiltInSkill:e.readBuiltInOpenPondSkill,loadExtensionCatalog:E,readExtensionSkill:F,appendRuntimeEvent:S,nativeToolsEnabledForProvider:Yt,hostedToolFlags:rt,appendProfileSkillEvent:eg,explicitProfileSkillNames:ng,profileSkillBodyFromReadResult:og,throwIfInterrupted:Zt}),{runHostedToolLoop:Va}=Om({candidateAuthoringForTurn:e.candidateAuthoringForTurn,isolatedProfileEvaluationForTurn:e.isolatedProfileEvaluationForTurn,authorizeCandidateTool:e.authorizeCandidateTool,taskInbox:pe,inboxStore:Me,resolveModelTools:e.resolveModelTools,assertExecutionAllowed:r(A=>es(e.storageHome,A),"assertExecutionAllowed"),hostedToolFlags:rt,nativeToolsEnabledForProvider:Yt,createNativeModelToolDefinitions:Og,profileSkillInstructionModeForProvider:Ps,subagentToolsAvailable:za,runtimeEventsForSession:r((A,Q)=>n.runtimeEventsForSession(A,Q),"runtimeEventsForSession"),getSession:l,recordTurnToolCatalog:r(async({turnId:A,hash:Q,capabilities:oe})=>{let re=await Tt(A),be=re?(await n.runtimeEventsForSession(re.sessionId,{names:["session.compaction.completed"],limit:1e3,excludeReasoningDeltas:!0})).filter(ee=>ee.turnId===A).at(-1)??null:null,D=be?.data&&typeof be.data=="object"&&!Array.isArray(be.data)?be.data:null;await n.updateTurn(A,ee=>{let at=gd.parse({protocolVersion:kr,threadId:ee.sessionId,turnId:ee.id,harnessReleaseHash:ee.harnessSnapshot?.harnessRelease.contentHash??Tn({harnessRelease:null}),toolCatalogHash:Q,context:{stage:"tool_catalog_ready",provider:ee.modelRef?.providerId??null,model:ee.modelRef?.modelId??null,compaction:D?{eventId:be?.id??null,compactedThroughEventId:D.compactedThroughEventId??null,compactedThroughTurnId:D.compactedThroughTurnId??null,summaryHash:typeof D.summary=="string"?Tn(D.summary):null}:null},pendingInteraction:null,usage:{}});return{...ee,metadata:{...ee.metadata,toolCatalogHash:Q,toolCapabilities:oe,agentCheckpoint:at,agentCheckpointHash:hd(at)},harnessSnapshot:ee.harnessSnapshot?{...ee.harnessSnapshot,toolCatalogHash:Q}:ee.harnessSnapshot}})},"recordTurnToolCatalog"),getTaskset:n.getTaskset?A=>n.getTaskset(A):void 0,appendHostedContextUsage:Xe,maxHostedWorkspaceToolRounds:Xt,maxRepeatedInvalidToolRequests:Qt,appendRuntimeEvent:S,upsertModelUsageRecord:Ae,executeNativeToolCalls:tg,readProfileSkillForModel:rg,executeWorkspaceTool:g,appendAssistantText:Fe,prepareHostedProviderRequest:Yf,throwIfInterrupted:Zt}),{captureSubagentWorkspaceHandoff:ag,cleanupSubagentRun:Ja,prepareSubagentWorkspaceIsolation:lg,subagentWorkspaceTargetKeyForSession:dg,subagentWorkspaceTargetKeyFromRun:cg}=vf({attachmentRootDir:t,resolveSessionWorkspaceCwd:T,forkSandboxForSubagent:d,cleanupSandboxForSubagent:k,appendSubagentReceipt:Ln,requireSubagentPersistence:r(()=>({upsertRun:Pt().upsertRun}),"requireSubagentPersistence")}),{finalizeSubagentContinuationTurn:ug,markSubagentContinuationRunning:pg,prepareSubagentContinuationTurn:Ga,subagentChildTurnPermissions:mg,subagentRuntimeDerivedProgress:fg,subagentUsageAttribution:gg,subagentUsageTotalsForRun:hg,turnPermissionsFromSendTurnInput:Ko}=Cf({requireSubagentDeps:Pt,runtimeEventsForSession:n.persistedRuntimeEventsForSession?(A,Q)=>n.persistedRuntimeEventsForSession(A,Q):(A,Q)=>n.runtimeEventsForSession(A,Q),latestAssistantTextForSession:r(A=>n.latestAssistantTextForSession(A),"latestAssistantTextForSession"),loadAppPreferences:we,getTurn:Tt,getSession:l,appendSubagentReceipt:Ln}),{queueSubagentFollowupMessage:wg,sendSubagentMessageFromModelTool:bg}=_f({inbox:pe,requireSubagentDeps:Pt,appendRuntimeEvent:S}),{notifyParentOfSubagentCompletion:vg,recoverPendingCompletions:yg,close:kg}=Af({inbox:pe,store:Me,appendMessage:r(A=>Pt().appendMessage(A),"appendMessage"),getSession:l,appendRuntimeEvent:S}),{resolveSubagentPatchApplyApproval:Sg}=bf({getApproval:r(A=>n.getApproval(A),"getApproval"),getSubagentRun:n.getSubagentRun?A=>n.getSubagentRun(A):null,canPersistSubagentRun:!!n.upsertSubagentRun,getSession:l,upsertSubagentRunAndNotify:Uf,upsertApproval:i,appendRuntimeEvent:S,appendSubagentReceipt:Ln,appendWorkspaceDiffEvent:w,cleanupSubagentRun:Ja}),{runSubagentChildTurn:Xa}=Ef({requireSubagentDeps:Pt,sendTurn:Vo,getTurn:Tt,getPersistedRun:n.getPersistedSubagentRun?A=>n.getPersistedSubagentRun(A):A=>Pt().getRun(A),upsertPersistedRun:n.upsertPersistedSubagentRun?A=>n.upsertPersistedSubagentRun(A):A=>n.upsertSubagentRun(A),notifyRunStateChanged:r(A=>{to?.(A),A.childSessionId&&pe.wake(A.childSessionId)},"notifyRunStateChanged"),latestTurnForSession:r(A=>n.latestPersistedTurnForSession(A),"latestTurnForSession"),latestAssistantTextForSession:r(A=>n.latestAssistantTextForSession(A),"latestAssistantTextForSession"),appendSubagentReceipt:Ln,subagentRuntimeDerivedProgress:fg,subagentUsageAttribution:gg,subagentUsageTotalsForRun:hg,captureSubagentWorkspaceHandoff:ag,applySubagentPatch:qa,appendWorkspaceDiffEvent:w,uniqueSubagentRefs:qf,commitCompletion:r((A,Q)=>Me.commitSubagentCompletion(A,Q),"commitCompletion"),notifyParentOfSubagentCompletion:vg}),{archiveSubagentChildSession:Ig,subagentLifecycleActionNextStep:Rg}=Mf({getRun:r(A=>Pt().getRun(A),"getRun"),upsertRun:r(A=>Pt().upsertRun(A),"upsertRun"),getSession:l,updateSession:u,appendSubagentReceipt:Ln}),{cancelSubagentFromModelTool:xg,cleanupExpiredRetainedSubagentWorkspace:Tg,joinSubagentFromModelTool:Pg,followupSubagentFromModelTool:Cg,runSubagentLifecycleAction:_g,startSubagentFromModelTool:Ag,statusSubagentsFromModelTool:Eg}=Of({inbox:pe,requireSubagentDeps:Pt,loadAppPreferences:we,getSession:l,appendSubagentReceipt:Ln,subagentWorkspaceTargetKeyForSession:dg,subagentWorkspaceTargetKeyFromRun:cg,subagentChildTurnPermissions:mg,prepareSubagentWorkspaceIsolation:lg,runSubagentChildTurn:Xa,subagentToolResultFromRun:jf,subagentRoleLabel:Ff,interruptSessionTurn:xs,cleanupSubagentRun:Ja,queueSubagentFollowupMessage:wg,archiveSubagentChildSession:Ig,subagentLifecycleActionNextStep:Rg}),Qa=Qm({handlers:{startSubagent:Ag,statusSubagents:Eg,joinSubagent:Pg,cancelSubagent:xg,followupSubagent:Cg,sendSubagentMessage:bg,...ie?{manageSidebarFile:r((A,Q)=>ie({session:A.session,action:Q.action,path:Q.path}),"manageSidebarFile")}:{},...j?{runDatasetBuilder:r((A,Q,oe)=>j({session:A.session,turnId:A.turnId,callId:A.callId,signal:A.signal,provider:A.provider,model:A.model,action:Q,payload:oe}),"runDatasetBuilder")}:{}},subagentToolsAvailable:za,hostedToolFlags:rt,executeConnectedAppTool:J,htmlVisuals:te,browserToolExecutor:de,executeOpenPondCommand:f,executeWorkspaceTool:g,executeWebSearch:W,createScheduledWork:U,executeProfileAction:_,executeProjectAction:I,loadOpenPondProfileStateForRef:q,resolveCandidateProfile:e.resolveCandidateProfile,executeCandidateAgentCommand:e.executeCandidateAgentCommand,executeCandidateCommand:e.executeCandidateCommand,executeCandidateImage:e.executeCandidateImage}),Ya=Qu({resolveCwd:r(A=>T(A,{ensureOpenPond:!1}),"resolveCwd"),appendEvent:S});function Og(A,Q,oe,re,be={}){return be.candidateAuthoring?Qa(A,Q,oe,re,be):[...Qa(A,Q,oe,re,be),...ue,...be.trainingHarness?[]:Gu(),...xt,...be.trainingHarness?[]:[Ya],...!be.trainingHarness&&M?[ra(M)]:[],...e.harnessModelTools??[]].map(D=>({...D,enabled:r(ee=>(ee.session.systemKind!=="openpond.ponder"||ue.includes(D)||xt.includes(D))&&(D.enabled?.(ee)??!0),"enabled")}))}r(Og,"createNativeModelToolDefinitions");async function Vo(A,Q,oe,re,be){if(be&&(!Number.isSafeInteger(be.nativeTimeoutMs)||be.nativeTimeoutMs<1||be.nativeTimeoutMs>2147483647))throw new Error("Native execution timeout is invalid.");let D=Uo.beginSendTurn(),ee=oe??Df(),at=!1,O,Ct="failed";try{await Me.openTaskInboxTurn(A,ee,pe.ownerId),at=!0,O=setInterval(()=>{Me.renewTaskInboxTurn(A,ee,pe.ownerId).catch(jt=>{Qe.get(A)?.controller.abort(jt)})},2e4),O.unref();let lt=await Mg(A,Q,ee,re,be);return Ct=lt.status==="in_progress"?"failed":lt.status,lt}finally{O&&clearInterval(O),at&&await pe.settled(A,ee,Ct),D()}}r(Vo,"sendTurn");async function Mg(A,Q,oe,re,be){let D=Dt.parse(Q),ee=Ko(D);if(await Ke(A)??await Wo(A))throw new Error("A turn is already running for this chat.");let O=await l(A),Ct=await e.isRemoteAgentModel?.(D.modelRef?.providerId??O.modelRef?.providerId??O.provider,D.modelRef?.modelId??D.model??O.modelRef?.modelId??"")??!1;if(Ct&&(D.attachments?.length||D.mentionedConnectedApps?.length||D.mentionedAppIds?.length||D.createImproveRun||O.profileWorkflowBinding||O.profileComponentBinding||D.workflowInput!==void 0))throw new Error("This model accepts text messages only; attachments, connected apps, and local workflows are unavailable.");let lt=O.metadata?.source==="experiment-improvement"||O.metadata?.refinementCandidate!==void 0;if(lt&&(!re||O.experience!=="work"||O.profileWorkflowBinding||O.profileComponentBinding||D.createImproveRun||D.mentionedAppIds?.length||D.mentionedConnectedApps?.length||D.openPondActionCatalog?.length||D.attachments?.length||D.cwd))throw new Error("Candidate Work requires its private owner admission and isolated source context.");let jt=!!(D.modelRef||D.model),qe=!lt&&e.storageHome?await Ap(e.storageHome,O,D,Q):null;qe&&(ee.codexPermissionMode=qe.preferences.codexPermissionMode,ee.codexReasoningEffort=qe.preferences.codexReasoningEffort,ee.codexPermissionMode==="default"&&(ee.approvalPolicy="on-request",ee.sandbox==="danger-full-access"&&(ee.sandbox="workspace-write")));let Cs=!1;O={...O,experience:O.experience??rn};async function no(Se,wt){Cs||O.experience!=="work"||!v||(Cs=!0,O=await v({session:await l(A),turnId:Se,outcome:wt}))}r(no,"finalizeAttachedWorkSandbox");let _s=D.modelRef?.providerId??O.modelRef?.providerId??O.provider;if(e.executionHost==="embedded"&&(_s!=="openpond"||D.createImproveRun))throw new Error("Embedded Work requires the configured model adapter and native tool loop.");let Fg=(O.experience==="chat"||O.experience==="work")&&!O.systemKind&&M&&!["sandbox","sandbox_template","sandbox_app"].includes(O.workspaceKind??"");if(_s==="codex"&&!ze(O)&&!Fg)throw new Error("The Codex provider requires repository-aware Work or a local resource chat.");if(/^\/goal(?:\s|$)/i.test(D.prompt.trimStart())&&(_s!=="codex"||!ze(O)))throw new Error("/goal is only available in repository-aware Work with the Codex provider.");let en=Ct?null:O.currentProfile??null,gt=lt||!en||O.profileWorkflowBinding||O.profileComponentBinding?null:q?await q(en):N?await N():null,ce=!Ct&&!lt&&B?await B(O):null,Za=null;if(O.profileWorkflowBinding){let Se=ce?.workflow;if(!Se)throw new Error("Bound Profile workflow is unavailable for this turn.");let wt=jp({workflow:Se,value:D.workflowInput??(Se.invocation.kind==="instructions"?{}:void 0),prompt:D.prompt});ce.instructionContext=[ce.instructionContext,wt.instruction].join(`
|
|
135
|
+
`)}r(zk,"promptWithSteeringContext");function gj(e){let{attachmentRootDir:t,store:n,resolveCreateImproveTaskset:o,gradeCreateImproveTaskAttempt:s,upsertApproval:i,createSession:a,getSession:l,updateSession:u,completeTurn:c,failTurn:h,interruptTurn:p,defaultSessionCwd:y,findOpenPondApp:x,resolveSessionWorkspaceCwd:T,ensureCodexRuntime:m,appendWorkspaceDiffEvent:w,workspaceDiffBaseline:C,appendRuntimeEvent:S,processHarnessImprovementBoundary:R,executeWorkspaceTool:g,forkSandboxForSubagent:d,cleanupSandboxForSubagent:k,finalizeWorkTurn:v,workInputsForSession:b,executeOpenPondCommand:f,executeProfileAction:_,executeProjectAction:I,executeChatResourceAction:M,executeDatasetBuilderAction:j,loadOpenPondProfileState:N,loadOpenPondProfileStateForRef:q,readOpenPondProfileSkill:V,loadSelectedHarnessRuntime:B,ensureHarnessRunOverlay:z,loadOpenPondExtensionCatalog:E,readOpenPondExtensionSkill:F,executeProfileSkillCommand:$,executeWebSearch:W,createScheduledWork:U,executeConnectedAppTool:J,htmlVisuals:te,browserToolExecutor:de,manageSidebarFile:ie,listIntegrationConnections:me,loadPersonalizationSoul:fe,loadAppPreferences:we=r(async()=>Rl.parse({}),"loadAppPreferences"),loadProviderSettings:X,maybeCreateScaffoldForTurn:Ce,hostedSystemPrompt:ae,appendAssistantText:Fe,appendHostedContextUsage:Xe,streamLocalByokChatTurn:_e,streamOpenPondHostedChatTurn:ke=Kn,runLocalCreatePipelineChecks:Bo,planCreateImprove:Gt,turnFollowUpQueue:hn,subagentQueue:Le,notifySubagentRunStateChanged:to,maxHostedWorkspaceToolRounds:Xt,maxRepeatedInvalidToolRequests:Qt}=e,Me=e.inboxStore??n,Dn=Bm(e.storageHome??t),rt=ma(e.hostedToolFlags),Qe=new bs,pe=Nm({prepareInputAttachments:ap({storageHome:e.storageHome??t,attachmentRootDir:t}),store:Me,getSession:l,listSessions:r(()=>n.sessionShells(),"listSessions"),getTurn:r(A=>n.getTurn(A),"getTurn"),latestTurn:r(A=>n.latestTurnForSession(A),"latestTurn"),recoverInterruptedTurn:r(async(A,Q)=>{(await n.getTurn(Q))?.status==="in_progress"&&await p(await l(A),Q,"The local app server restarted before this turn finished. Pending inputs are preserved. Review completed tool activity, then resume this chat to continue.")},"recoverInterruptedTurn"),getSubagentRun:r(A=>n.getSubagentRun?n.getSubagentRun(A):Promise.resolve(null),"getSubagentRun"),getActiveTurn:r(A=>Qe.get(A),"getActiveTurn"),appendRuntimeEvent:S,startFollowup:r(async(A,Q,oe,re)=>{let be=await l(A),D=Dt.parse(Q);if(!be.subagentRunId){if(re.senderKind==="user")return Vo(A,D,oe,re.payload.remoteDevice?{beforeExecute:r(async jt=>{pi(re,jt)},"beforeExecute")}:void 0);let Ct=await n.latestTurnForSession(A),lt=re.payload.localPonderExecutionPermissions??Ct?.metadata.taskExecutionPermissions??{approvalPolicy:"on-request",sandbox:"read-only",codexPermissionMode:"default"};return Vo(A,{...D,...lt,...gn(re)||re.payload.taskReportingOnly===!0?{sandbox:"read-only",approvalPolicy:"never",codexPermissionMode:"default"}:{}},oe,re.senderKind==="ponder"?{beforeExecute:r(async jt=>{ac(re,jt),await Oa(an.parse(re.payload.ponderDesktop).operation,jt,n,Dn),pi(re,jt)},"beforeExecute")}:re.payload.localPonderHostedResult?{beforeExecute:r(async()=>{if(!e.localPonderHosted)throw new Error("local_ponder_hosted_unavailable");await e.localPonderHosted.assertCompletionScope(re.payload.localPonderHostedResult)},"beforeExecute")}:re.payload.localPonderControlRevision!==void 0?{beforeExecute:r(async()=>{await Me.assertLocalPonderInput?.(re)},"beforeExecute")}:void 0)}let ee=await Ga({session:be,request:D,requestedTurnPermissions:Ko(D)});if(!ee||ee.run.status==="cancelled")throw new Error("Child follow-up is unavailable.");let at={...ee.run,status:"queued",completedAt:null,error:null,report:null,metadata:{...ee.run.metadata,completionConsumedByParent:null}};await Pt().upsertRun(at),await Xa({run:at,role:ee.role,childSession:be,parentSession:await l(at.parentSessionId),parentTurnId:at.parentTurnId??oe,contextPack:typeof at.metadata.context=="string"?at.metadata.context:null,childTurnPermissions:ee.turnPermissions,initialPrompt:D.prompt,reservedTurnId:oe});let O=await n.getTurn(oe);if(!O)throw new Error("Child follow-up did not start.");return O},"startFollowup"),dispatchFollowup:r(async(A,Q)=>{let oe=await hn.enqueue({label:"Task inbox follow-up",metadata:{sessionId:A}},Q).done;if(oe.status==="failed")throw new Error(oe.error??"Task follow-up failed.")},"dispatchFollowup"),yieldWhileWaiting:r(A=>hn.yieldWhileWaiting(()=>Le?Le.yieldWhileWaiting(A):A()),"yieldWhileWaiting")}),xt=Km(pe,{input:r(A=>Me.getTaskInput(A),"input"),readSource:r(async(A,Q,oe,re)=>{if(await Oa(A,Q,n,Dn),!A.workflow?.source)throw new Error("The verified workflow source is not available yet.");return Dn.inspect(A.workflow.source,oe,re)},"readSource")}),ue=[...e.localPonderHosted?ep(e.localPonderHosted):[],...tp(n),...op({store:Me,inbox:pe,createSession:a,createReservedSession:e.createReservedSession,projects:e.localPonderProjects,settings:e.localPonderProviderSettings??X,getSession:l,sessions:r(()=>n.sessionShells(),"sessions"),transcript:r(async(A,Q)=>{if(!n.runtimeEventPageRows)throw new Error("local_ponder_history_unavailable");let oe=await n.runtimeEventPageRows({sessionId:A,afterSequence:0,beforeSequence:Q??Number.MAX_SAFE_INTEGER,limit:100});return{turn:await n.latestTurnForSession(A),latestAssistantText:await n.latestAssistantTextForSession(A),events:oe.entries.map(re=>re.event),nextBeforeSequence:oe.remainingMatchingEvents>oe.entries.length?oe.entries[0]?.sequence??null:null}},"transcript"),stop:r(A=>xs(A),"stop")})],Ee=Kp({listIntegrationConnections:me,appendRuntimeEvent:S}),Ae=vs({upsert:n.upsertModelUsageRecord?A=>n.upsertModelUsageRecord(A):null,appendRuntimeEvent:S});async function Ne(A){if(!(!R||!A.turn.harnessSnapshot||A.session.metadata?.standaloneExperiment!==void 0||A.session.metadata?.localProfileExperiment!==void 0||A.session.metadata?.profileEvaluationRun!==void 0))try{await R(A)}catch(Q){await S(L({sessionId:A.session.id,turnId:A.turn.id,name:"diagnostic",source:"server",appId:A.session.appId,status:"failed",output:Q instanceof Error?Q.message:String(Q),data:{phase:"harness_improvement_boundary"}})).catch(()=>{})}}r(Ne,"processHarnessImprovementBoundarySafely");async function Tt(A){return n.getTurn(A)}r(Tt,"getStoredTurn");function Yt(A){return os(rt,A)}r(Yt,"nativeToolsEnabledForProvider");function st(A){return de?.available({sessionId:A.id,conversationId:A.id})??!1}r(st,"browserControlAvailable");function wn(A){return Yt(A)&&rt.dynamicActionTools?"native_tool":Vt(rt,A)==="full_text_fallback"?"text_fallback":"none"}r(wn,"actionCatalogInstructionModeForProvider");async function it(A){await n.insertTurn(A)}r(it,"insertStoredTurn");async function Nt(A,Q){return n.updateTurn(A,Q)}r(Nt,"updateStoredTurn");let{activeInProgressTurn:Ke,findInProgressTurn:Wo,interruptActiveTurn:Rs,interruptedError:Bf,interruptSessionTurn:xs,throwIfInterrupted:Zt,turnWasInterrupted:Wf}=rf({activeTurns:Qe,getSession:l,getTurn:Tt,latestTurnForSession:r((A,Q)=>n.latestTurnForSession(A,Q),"latestTurnForSession"),interruptTurn:p}),Uo=af({activeTurns:Qe,interruptActiveTurn:Rs,jobRegistries:[],queues:[hn,...Le?[Le]:[]]}),zo=Nf({createSession:a,queue:Le,upsertRun:n.upsertSubagentRun?A=>n.upsertSubagentRun(A):void 0,getRun:n.getSubagentRun?A=>n.getSubagentRun(A):void 0,listRuns:n.listSubagentRuns?A=>n.listSubagentRuns(A):void 0,appendMessage:n.appendSubagentMessage?A=>n.appendSubagentMessage(A):void 0,listUsageRecords:n.listModelUsageRecords?A=>n.listModelUsageRecords(A):void 0,notifyRunStateChanged:r(A=>{to?.(A),A.childSessionId&&pe.wake(A.childSessionId)},"notifyRunStateChanged"),appendRuntimeEvent:S}),za=zo.available,Pt=zo.requireDependencies,Uf=zo.upsertRunAndNotify,Ln=zo.appendReceipt,Ts=nf(e),Ka=Ic(async()=>{let[{createCreateImproveRuntime:A},{createCreateImproveTurnHandler:Q}]=await Promise.all([import("./runtime-ISLJIGWC.js"),import("./send-turn-YLY3YNEQ.js")]),oe=A({getSession:l,getTurn:Tt,updateTurn:Nt,getCreateImproveRun:r(re=>n.getCreateImproveRun(re),"getCreateImproveRun"),listCreateImproveRuns:r(re=>n.listCreateImproveRuns(re),"listCreateImproveRuns"),upsertCreateImproveRun:r(re=>n.upsertCreateImproveRun(re),"upsertCreateImproveRun"),mutateCreateImproveRun:r((re,be)=>n.mutateCreateImproveRun(re,be),"mutateCreateImproveRun"),getApproval:r(re=>n.getApproval(re),"getApproval"),upsertApproval:i,appendRuntimeEvent:S,ensureCodexRuntime:m,runLocalCreatePipelineChecks:Bo,planCreateImprove:Gt,turnFollowUpQueue:hn,streamLocalByokChatTurn:_e,streamOpenPondHostedChatTurn:ke,upsertModelUsageRecord:Ae,resolveTaskset:o,gradeTaskAttempt:s});return{...oe,handleCreateImproveTurn:Q({appendRuntimeEvent:S,completeTurn:c,planCreateImproveForTurn:oe.planCreateImproveForTurn,persistCreateImproveRun:oe.persistCreateImproveRun}),async close(){}}}),{applyCreateImproveActionPayload:zf,getCreateImproveRun:Kf,listCreateImproveRuns:Vf,persistCreateImprovePlanningFailure:Jf,resolveCreateImproveApproval:Gf,handleCreateImproveTurn:Xf}=Ka.methods(["applyCreateImproveActionPayload","getCreateImproveRun","listCreateImproveRuns","persistCreateImprovePlanningFailure","resolveCreateImproveApproval","handleCreateImproveTurn"]),Qf=of({appendRuntimeEvent:S,completeTurn:c}),{prepareHostedProviderRequest:Yf,closePonderHistory:Zf}=vm({ponderHistoryStore:n,sessionForPonderHistory:l,getPonderHistoryCredential:e.getPonderHistoryCredential,streamPonderHistorySummary:r(async function*(A){if(A.provider==="openpond"){let Q=await e.resolveSessionModelStream?.(A.session,A.turn)??ke;for await(let oe of Q({model:A.model,messages:A.messages,requestId:A.requestId,maxTokens:700,reasoningEffort:Oo({provider:A.provider,model:A.model,selected:void 0,settings:await(e.localPonderProviderSettings??X)?.()}),signal:A.signal}))oe.type==="text_delta"&&(yield{text:oe.text,raw:oe.raw}),oe.type==="usage"&&(yield{usage:oe.usage,raw:oe.raw}),oe.type==="finish"&&(yield{finishReason:oe.finishReason,raw:oe.raw})}else{if(!_e)throw new Error("ponder_history_provider_unavailable");for await(let Q of _e({providerId:A.provider,modelId:A.model,messages:A.messages,requestId:A.requestId,maxOutputTokens:700,expectedPonderHistoryCredential:A.expectedCredential,signal:A.signal??new AbortController().signal}))yield Q}},"streamPonderHistorySummary"),loadAppPreferences:we,appendRuntimeEvent:S,runtimeEventsForSession:r((A,Q)=>n.runtimeEventsForSession(A,Q),"runtimeEventsForSession"),streamOpenPondHostedChatTurn:ke,resolveSessionModelStream:e.resolveSessionModelStream,upsertModelUsageRecord:Ae,throwIfInterrupted:Zt,interruptedError:Bf}),{appendProfileSkillEvent:eg,executeNativeToolCalls:tg,explicitProfileSkillNames:ng,profileSkillBodyFromReadResult:og,readProfileSkillForModel:rg}=km({authorizeCandidateTool:e.authorizeCandidateTool,hasPendingSteering:r(async(A,Q)=>(await Me.pendingTaskInputs(A,Q)).some(oe=>oe.kind==="steer"),"hasPendingSteering"),maxRepeatedInvalidToolRequests:Qt,appendRuntimeEvent:S,throwIfInterrupted:Zt}),{loadProfileSkillRuntime:sg,preloadExplicitProfileSkills:ig,profileSkillInstructionModeForProvider:Ps}=Vm({loadProfileState:q?A=>q(A.currentProfile):N?()=>N():void 0,readProfileSkill:V,loadBuiltInSkills:e.loadBuiltInOpenPondSkills,readBuiltInSkill:e.readBuiltInOpenPondSkill,loadExtensionCatalog:E,readExtensionSkill:F,appendRuntimeEvent:S,nativeToolsEnabledForProvider:Yt,hostedToolFlags:rt,appendProfileSkillEvent:eg,explicitProfileSkillNames:ng,profileSkillBodyFromReadResult:og,throwIfInterrupted:Zt}),{runHostedToolLoop:Va}=Om({candidateAuthoringForTurn:e.candidateAuthoringForTurn,isolatedProfileEvaluationForTurn:e.isolatedProfileEvaluationForTurn,authorizeCandidateTool:e.authorizeCandidateTool,taskInbox:pe,inboxStore:Me,resolveModelTools:e.resolveModelTools,assertExecutionAllowed:r(A=>es(e.storageHome,A),"assertExecutionAllowed"),hostedToolFlags:rt,nativeToolsEnabledForProvider:Yt,createNativeModelToolDefinitions:Og,profileSkillInstructionModeForProvider:Ps,subagentToolsAvailable:za,runtimeEventsForSession:r((A,Q)=>n.runtimeEventsForSession(A,Q),"runtimeEventsForSession"),getSession:l,recordTurnToolCatalog:r(async({turnId:A,hash:Q,capabilities:oe})=>{let re=await Tt(A),be=re?(await n.runtimeEventsForSession(re.sessionId,{names:["session.compaction.completed"],limit:1e3,excludeReasoningDeltas:!0})).filter(ee=>ee.turnId===A).at(-1)??null:null,D=be?.data&&typeof be.data=="object"&&!Array.isArray(be.data)?be.data:null;await n.updateTurn(A,ee=>{let at=gd.parse({protocolVersion:kr,threadId:ee.sessionId,turnId:ee.id,harnessReleaseHash:ee.harnessSnapshot?.harnessRelease.contentHash??Tn({harnessRelease:null}),toolCatalogHash:Q,context:{stage:"tool_catalog_ready",provider:ee.modelRef?.providerId??null,model:ee.modelRef?.modelId??null,compaction:D?{eventId:be?.id??null,compactedThroughEventId:D.compactedThroughEventId??null,compactedThroughTurnId:D.compactedThroughTurnId??null,summaryHash:typeof D.summary=="string"?Tn(D.summary):null}:null},pendingInteraction:null,usage:{}});return{...ee,metadata:{...ee.metadata,toolCatalogHash:Q,toolCapabilities:oe,agentCheckpoint:at,agentCheckpointHash:hd(at)},harnessSnapshot:ee.harnessSnapshot?{...ee.harnessSnapshot,toolCatalogHash:Q}:ee.harnessSnapshot}})},"recordTurnToolCatalog"),getTaskset:n.getTaskset?A=>n.getTaskset(A):void 0,appendHostedContextUsage:Xe,maxHostedWorkspaceToolRounds:Xt,maxRepeatedInvalidToolRequests:Qt,appendRuntimeEvent:S,upsertModelUsageRecord:Ae,executeNativeToolCalls:tg,readProfileSkillForModel:rg,executeWorkspaceTool:g,appendAssistantText:Fe,prepareHostedProviderRequest:Yf,throwIfInterrupted:Zt}),{captureSubagentWorkspaceHandoff:ag,cleanupSubagentRun:Ja,prepareSubagentWorkspaceIsolation:lg,subagentWorkspaceTargetKeyForSession:dg,subagentWorkspaceTargetKeyFromRun:cg}=vf({attachmentRootDir:t,resolveSessionWorkspaceCwd:T,forkSandboxForSubagent:d,cleanupSandboxForSubagent:k,appendSubagentReceipt:Ln,requireSubagentPersistence:r(()=>({upsertRun:Pt().upsertRun}),"requireSubagentPersistence")}),{finalizeSubagentContinuationTurn:ug,markSubagentContinuationRunning:pg,prepareSubagentContinuationTurn:Ga,subagentChildTurnPermissions:mg,subagentRuntimeDerivedProgress:fg,subagentUsageAttribution:gg,subagentUsageTotalsForRun:hg,turnPermissionsFromSendTurnInput:Ko}=Cf({requireSubagentDeps:Pt,runtimeEventsForSession:n.persistedRuntimeEventsForSession?(A,Q)=>n.persistedRuntimeEventsForSession(A,Q):(A,Q)=>n.runtimeEventsForSession(A,Q),latestAssistantTextForSession:r(A=>n.latestAssistantTextForSession(A),"latestAssistantTextForSession"),loadAppPreferences:we,getTurn:Tt,getSession:l,appendSubagentReceipt:Ln}),{queueSubagentFollowupMessage:wg,sendSubagentMessageFromModelTool:bg}=_f({inbox:pe,requireSubagentDeps:Pt,appendRuntimeEvent:S}),{notifyParentOfSubagentCompletion:vg,recoverPendingCompletions:yg,close:kg}=Af({inbox:pe,store:Me,appendMessage:r(A=>Pt().appendMessage(A),"appendMessage"),getSession:l,appendRuntimeEvent:S}),{resolveSubagentPatchApplyApproval:Sg}=bf({getApproval:r(A=>n.getApproval(A),"getApproval"),getSubagentRun:n.getSubagentRun?A=>n.getSubagentRun(A):null,canPersistSubagentRun:!!n.upsertSubagentRun,getSession:l,upsertSubagentRunAndNotify:Uf,upsertApproval:i,appendRuntimeEvent:S,appendSubagentReceipt:Ln,appendWorkspaceDiffEvent:w,cleanupSubagentRun:Ja}),{runSubagentChildTurn:Xa}=Ef({requireSubagentDeps:Pt,sendTurn:Vo,getTurn:Tt,getPersistedRun:n.getPersistedSubagentRun?A=>n.getPersistedSubagentRun(A):A=>Pt().getRun(A),upsertPersistedRun:n.upsertPersistedSubagentRun?A=>n.upsertPersistedSubagentRun(A):A=>n.upsertSubagentRun(A),notifyRunStateChanged:r(A=>{to?.(A),A.childSessionId&&pe.wake(A.childSessionId)},"notifyRunStateChanged"),latestTurnForSession:r(A=>n.latestPersistedTurnForSession(A),"latestTurnForSession"),latestAssistantTextForSession:r(A=>n.latestAssistantTextForSession(A),"latestAssistantTextForSession"),appendSubagentReceipt:Ln,subagentRuntimeDerivedProgress:fg,subagentUsageAttribution:gg,subagentUsageTotalsForRun:hg,captureSubagentWorkspaceHandoff:ag,applySubagentPatch:qa,appendWorkspaceDiffEvent:w,uniqueSubagentRefs:qf,commitCompletion:r((A,Q)=>Me.commitSubagentCompletion(A,Q),"commitCompletion"),notifyParentOfSubagentCompletion:vg}),{archiveSubagentChildSession:Ig,subagentLifecycleActionNextStep:Rg}=Mf({getRun:r(A=>Pt().getRun(A),"getRun"),upsertRun:r(A=>Pt().upsertRun(A),"upsertRun"),getSession:l,updateSession:u,appendSubagentReceipt:Ln}),{cancelSubagentFromModelTool:xg,cleanupExpiredRetainedSubagentWorkspace:Tg,joinSubagentFromModelTool:Pg,followupSubagentFromModelTool:Cg,runSubagentLifecycleAction:_g,startSubagentFromModelTool:Ag,statusSubagentsFromModelTool:Eg}=Of({inbox:pe,requireSubagentDeps:Pt,loadAppPreferences:we,getSession:l,appendSubagentReceipt:Ln,subagentWorkspaceTargetKeyForSession:dg,subagentWorkspaceTargetKeyFromRun:cg,subagentChildTurnPermissions:mg,prepareSubagentWorkspaceIsolation:lg,runSubagentChildTurn:Xa,subagentToolResultFromRun:jf,subagentRoleLabel:Ff,interruptSessionTurn:xs,cleanupSubagentRun:Ja,queueSubagentFollowupMessage:wg,archiveSubagentChildSession:Ig,subagentLifecycleActionNextStep:Rg}),Qa=Qm({handlers:{startSubagent:Ag,statusSubagents:Eg,joinSubagent:Pg,cancelSubagent:xg,followupSubagent:Cg,sendSubagentMessage:bg,...ie?{manageSidebarFile:r((A,Q)=>ie({session:A.session,action:Q.action,path:Q.path}),"manageSidebarFile")}:{},...j?{runDatasetBuilder:r((A,Q,oe)=>j({session:A.session,turnId:A.turnId,callId:A.callId,signal:A.signal,provider:A.provider,model:A.model,action:Q,payload:oe}),"runDatasetBuilder")}:{}},subagentToolsAvailable:za,hostedToolFlags:rt,executeConnectedAppTool:J,htmlVisuals:te,browserToolExecutor:de,executeOpenPondCommand:f,executeWorkspaceTool:g,executeWebSearch:W,createScheduledWork:U,executeProfileAction:_,executeProjectAction:I,loadOpenPondProfileStateForRef:q,resolveCandidateProfile:e.resolveCandidateProfile,executeCandidateAgentCommand:e.executeCandidateAgentCommand,executeCandidateCommand:e.executeCandidateCommand,executeCandidateImage:e.executeCandidateImage}),Ya=Qu({resolveCwd:r(A=>T(A,{ensureOpenPond:!1}),"resolveCwd"),appendEvent:S});function Og(A,Q,oe,re,be={}){return be.candidateAuthoring?Qa(A,Q,oe,re,be):[...Qa(A,Q,oe,re,be),...ue,...be.trainingHarness?[]:Gu(),...xt,...be.trainingHarness?[]:[Ya],...!be.trainingHarness&&M?[ra(M)]:[],...e.harnessModelTools??[]].map(D=>({...D,enabled:r(ee=>(ee.session.systemKind!=="openpond.ponder"||ue.includes(D)||xt.includes(D))&&(D.enabled?.(ee)??!0),"enabled")}))}r(Og,"createNativeModelToolDefinitions");async function Vo(A,Q,oe,re,be){if(be&&(!Number.isSafeInteger(be.nativeTimeoutMs)||be.nativeTimeoutMs<1||be.nativeTimeoutMs>2147483647))throw new Error("Native execution timeout is invalid.");let D=Uo.beginSendTurn(),ee=oe??Df(),at=!1,O,Ct="failed";try{await Me.openTaskInboxTurn(A,ee,pe.ownerId),at=!0,O=setInterval(()=>{Me.renewTaskInboxTurn(A,ee,pe.ownerId).catch(jt=>{Qe.get(A)?.controller.abort(jt)})},2e4),O.unref();let lt=await Mg(A,Q,ee,re,be);return Ct=lt.status==="in_progress"?"failed":lt.status,lt}finally{O&&clearInterval(O),at&&await pe.settled(A,ee,Ct),D()}}r(Vo,"sendTurn");async function Mg(A,Q,oe,re,be){let D=Dt.parse(Q),ee=Ko(D);if(await Ke(A)??await Wo(A))throw new Error("A turn is already running for this chat.");let O=await l(A),Ct=await e.isRemoteAgentModel?.(D.modelRef?.providerId??O.modelRef?.providerId??O.provider,D.modelRef?.modelId??D.model??O.modelRef?.modelId??"")??!1;if(Ct&&(D.attachments?.length||D.mentionedConnectedApps?.length||D.mentionedAppIds?.length||D.createImproveRun||O.profileWorkflowBinding||O.profileComponentBinding||D.workflowInput!==void 0))throw new Error("This model accepts text messages only; attachments, connected apps, and local workflows are unavailable.");let lt=O.metadata?.source==="experiment-improvement"||O.metadata?.refinementCandidate!==void 0;if(lt&&(!re||O.experience!=="work"||O.profileWorkflowBinding||O.profileComponentBinding||D.createImproveRun||D.mentionedAppIds?.length||D.mentionedConnectedApps?.length||D.openPondActionCatalog?.length||D.attachments?.length||D.cwd))throw new Error("Candidate Work requires its private owner admission and isolated source context.");let jt=!!(D.modelRef||D.model),qe=!lt&&e.storageHome?await Ap(e.storageHome,O,D,Q):null;qe&&(ee.codexPermissionMode=qe.preferences.codexPermissionMode,ee.codexReasoningEffort=qe.preferences.codexReasoningEffort,ee.codexPermissionMode==="default"&&(ee.approvalPolicy="on-request",ee.sandbox==="danger-full-access"&&(ee.sandbox="workspace-write")));let Cs=!1;O={...O,experience:O.experience??rn};async function no(Se,wt){Cs||O.experience!=="work"||!v||(Cs=!0,O=await v({session:await l(A),turnId:Se,outcome:wt}))}r(no,"finalizeAttachedWorkSandbox");let _s=D.modelRef?.providerId??O.modelRef?.providerId??O.provider;if(e.executionHost==="embedded"&&(_s!=="openpond"||D.createImproveRun))throw new Error("Embedded Work requires the configured model adapter and native tool loop.");let Fg=(O.experience==="chat"||O.experience==="work")&&!O.systemKind&&M&&!["sandbox","sandbox_template","sandbox_app"].includes(O.workspaceKind??"");if(_s==="codex"&&!ze(O)&&!Fg)throw new Error("The Codex provider requires repository-aware Work or a local resource chat.");if(/^\/goal(?:\s|$)/i.test(D.prompt.trimStart())&&(_s!=="codex"||!ze(O)))throw new Error("/goal is only available in repository-aware Work with the Codex provider.");let en=Ct?null:O.currentProfile??null,gt=lt||!en||O.profileWorkflowBinding||O.profileComponentBinding?null:q?await q(en):N?await N():null,ce=!Ct&&!lt&&B?await B(O):null,Za=null;if(O.profileWorkflowBinding){let Se=ce?.workflow;if(!Se)throw new Error("Bound Profile workflow is unavailable for this turn.");let wt=jp({workflow:Se,value:D.workflowInput??(Se.invocation.kind==="instructions"?{}:void 0),prompt:D.prompt});ce.instructionContext=[ce.instructionContext,wt.instruction].join(`
|
|
136
136
|
|
|
137
137
|
`),D.prompt=wt.prompt,Za=wt.inputHash}else if(D.workflowInput!==void 0&&O.profileComponentBinding?.target.kind!=="agent_action")throw new Error("Workflow input requires a bound Profile workflow or Agent action session.");let Jo=ce&&z?await z({runId:O.id,workspace:ce.workspace,harnessRelease:{id:ce.release.harnessRelease.id,contentHash:ce.release.harnessRelease.contentHash},admittedAt:Y()}):null,oo=lt?null:await Ga({session:O,request:D,requestedTurnPermissions:ee});oo&&(ee=oo.turnPermissions);let Go=D.modelRef?.providerId??O.modelRef?.providerId??O.provider,el=D.modelRef?.modelId??D.model??O.modelRef?.modelId??null,As=qe?.preferences??await we(),Es=lt?null:cf(O,As),Ft=el?{providerId:Go,modelId:el}:D.modelRef??O.modelRef??null,tl=D.createImproveRun?Hf(D.createImproveRun):null,qt=$f(D.prompt)??tl;if(qt&&!Zc(O))throw new Error("Agent and Skill authoring are available in repository-aware Work.");let bn=tl?null:D.createImproveRun,nl=!Ct&&!re&&!qt&&Oi(O.experience)&&$?await $({prompt:D.prompt,profileRef:en}):null,Os=await n.runtimeEventsForSession(A,{excludeReasoningDeltas:!0}),Bn=Mp(D.metadata?.userQuestionResolution,Os),qg=Y(),ol=D.usageAttribution??oo?.usageAttribution??null,rl={...D.metadata?D.metadata:{},...O.profileWorkflowBinding?{profileWorkflowBinding:O.profileWorkflowBinding,profileWorkflowInputHash:Za}:{},...O.profileComponentBinding?{profileComponentBinding:O.profileComponentBinding}:{},taskExecutionPermissions:{...ee},...Es?{subagentDelegation:Es}:{},...ol?{usageAttribution:ol}:{},...bn?{createImproveRun:bn}:{},...qt?{authoringIntent:qt.intent,selectedProfileRef:en}:{}},K={id:oe,sessionId:A,providerTurnId:null,modelRef:Ft,prompt:D.prompt,startedAt:qg,completedAt:null,status:"in_progress",error:null,metadata:rl,createImproveRun:bn??null,profileSnapshot:(O.profileWorkflowBinding||O.profileComponentBinding)&&en?{ref:en,revision:(O.profileWorkflowBinding??O.profileComponentBinding).sourceRevision,sourceHash:(O.profileWorkflowBinding??O.profileComponentBinding).harnessRelease.contentHash}:en&>&>.mode!=="none"&&!gt.error?{ref:en,revision:gt.git?.head??null,sourceHash:Wk("sha256").update(JSON.stringify({profile:gt.activeProfile,revision:gt.git?.head??null,agents:gt.agents,skills:gt.skills.map(Se=>[Se.name,Se.sourceHash]),actions:gt.actionCatalog.map(Se=>Se.id)})).digest("hex")}:null,harnessSnapshot:ce?{schemaVersion:"openpond.harnessTurnSnapshot.v1",workspaceId:ce.workspace.id,workspaceRevision:ce.workspace.revision,sourceRevision:ce.workspace.sourceRevision,channelName:ce.workspace.currentChannel.name,channelRevision:ce.workspace.currentChannel.revision,harnessRelease:{id:ce.release.harnessRelease.id,contentHash:ce.release.harnessRelease.contentHash},overlay:Jo?{id:Jo.id,revision:Jo.revision,contentHash:Jo.contentHash}:null}:null};qe&&e.storageHome&&(Ep(e.storageHome,K.id,qe),K.metadata={...K.metadata,configuration:{effectiveRevision:qe.snapshot.effectiveRevision,sources:qe.snapshot.sources,instructionSources:qe.instructions.sources,diagnostics:qe.snapshot.diagnostics}}),await it(K),await Tp({session:O,turn:K,admission:re,failTurn:h});let xe=await e.isolatedProfileEvaluationForTurn?.(O,K)??!1,Te=await e.candidateAuthoringForTurn?.(O.id,K.id)??!1;if(lt&&!Te)throw await h(O,K.id,"The candidate Work owner did not admit this stored turn."),new Error("Candidate Work has no trusted authoring authority.");let sl=Te?O.cwd:(qt&>?.mode==="local"?gt.repoPath:null)??D.cwd??await T(O,{ensureOpenPond:!1})??O.cwd??(O.appId||Go==="codex"?y(O.appId):null);O=await u(A,{experience:O.experience,provider:Go,modelRef:jt?Ft:O.modelRef,status:"active",title:O.title==="New chat"?D.prompt.slice(0,64):O.title,cwd:sl});let $e=new AbortController,Ve={session:O,turn:K,controller:$e,...sf()};Uo.registerActiveTurn(A,Ve);let $g=Op(e.storageHome,K.id,qe?.snapshot.projectRoot??null,Se=>{Ve.interruptionReason=Se,$e.abort(),Ve.codexRuntime&&Ve.codexTurnId&&Ve.codexRuntime.client.interruptTurn({threadId:Ve.codexRuntime.threadId,turnId:Ve.codexTurnId}).catch(()=>{})});try{O.experience!=="chat"&&await pe.announcePresence(A,K.id).catch(async ne=>{await S(L({sessionId:A,turnId:K.id,name:"diagnostic",source:"server",status:"failed",output:`Peer presence notice unavailable: ${String(ne)}`}))}),await pg({context:oo,childTurnId:K.id});let Se=await Ir({storageHome:e.storageHome??t,attachmentRootDir:t,sessionId:A,turnId:K.id,attachments:D.attachments}),wt=O.experience==="work"?[...b?await b(O):[],...Se]:void 0,ro=xr(xe?Se.map(ne=>({...ne,localPath:`/workspace/work/inputs/${Uk.basename(ne.name)}`})):Se),Ye=Jn(zk(Np(D.prompt,Bn),D.metadata),ro),Re=typeof D.metadata?.taskInputId=="string"?await Me.getTaskInput(D.metadata.taskInputId):null;Ye+=Wm(Re),Re?.payload.taskReportingOnly===!0&&(Ye+=`
|
|
138
138
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as ne}from"./chunk-DWF3FCY4.js";import{a as we}from"./chunk-
|
|
2
|
+
import{a as ne}from"./chunk-DWF3FCY4.js";import{a as we}from"./chunk-YAA7F5LI.js";import{h as Te}from"./chunk-JVMSN7LH.js";import{y as he,z as Re}from"./chunk-YI6ME6PU.js";import{Ca as ae,Da as X,Fa as se,L as fe,Ma as ve,N as ue,O as z,R as Q,S as te,T as me,U as ge,ka as ke,wa as A}from"./chunk-BU6MW65V.js";import{D as pe,H as F,N as U,U as J,j as u,x as q}from"./chunk-DXJC3QW7.js";import{L as R,M,N as $,O as b,S as V,ba as le,mb as W}from"./chunk-4PUOWSDE.js";import{Ra as oe,Wa as ee,ab as de,bb as ce,ga as G}from"./chunk-ZY32SZ2P.js";import{a as g}from"./chunk-FTQLQJQV.js";import{createHash as Me}from"node:crypto";function w(e,s,a,n){let t=W[a].parse(n),r=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[s,a,t.id,t.revision]);if(r){if(u(JSON.parse(r.payload))!==u(t))throw new Error(`Starter dependency conflicts with an existing revision: ${t.id}.`);return}e.run("INSERT INTO learning_revisions (scope, kind, id, revision, payload) VALUES (?, ?, ?, ?, ?)",[s,a,t.id,t.revision,JSON.stringify(t)]),e.run(`INSERT INTO learning_resources (scope, kind, id, revision) VALUES (?, ?, ?, ?)
|
|
3
3
|
ON CONFLICT (scope, kind, id) DO UPDATE SET revision = excluded.revision
|
|
4
4
|
WHERE learning_resources.revision < excluded.revision`,[s,a,t.id,t.revision])}g(w,"importStarterReleaseInTransaction");function Se(e,s,a){function n(o,d){let k=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[s,o,d.id,d.revision]);k||D(404,"model_reward_unavailable",`The exact ${o} resource is unavailable in this Profile.`);let l=W[o].parse(JSON.parse(k.payload));return b(l),d.contentHash&&l.contentHash!==d.contentHash&&D(409,"model_reward_changed","The selected resource does not match its immutable content hash."),l}g(n,"read");let t=n("binding",a),r=[...new Map(t.sources.map(o=>[u(o.reward),n("reward",o.reward)])).values()],i=new Map;for(let o of r){let d=o.implementation;for(let k of[...o.assets,..."verifierRef"in d?[d.verifierRef]:[],..."rubricRef"in d?[d.rubricRef]:[],..."inputContract"in d?[d.inputContract]:[]])i.has(k.id)||i.set(k.id,n("asset",{id:k.id,revision:1})),V(i.get(k.id),k)}return{rewardBinding:t,rewards:r,assets:[...i.values()]}}g(Se,"readSelectedModelReward");function Y(e,s,a,n){let t=q.parse(s.metadata.rewardBinding),r=g((c,f)=>{let H=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[s.profileId,c,f.id,f.revision]);H||D(404,"model_reward_unavailable",`The exact ${c} resource is unavailable in this Profile.`);let m=W[c].parse(JSON.parse(H.payload));return b(m),f.contentHash&&m.contentHash!==f.contentHash&&D(409,"model_reward_changed","The selected resource does not match its immutable content hash."),m},"read"),i=r("definition",q.parse(s.metadata.taskDefinition));(u(s.policy)!==u(i.execution.policy)||u(s.environment.metadata.portableEnvironment)!==u(i.execution.environment)||u(s.environment.metadata.portableTools)!==u(i.execution.tools))&&D(409,"model_taskset_context_changed","Taskset context differs from its immutable task definition.");let o=r("binding",t),d=[...new Map(o.sources.map(c=>[u(c.reward),r("reward",c.reward)])).values()];s.metadata.rewardExecution!==void 0&&u(s.metadata.rewardExecution)!==u({binding:o,rewards:d})&&D(409,"model_taskset_rewards_changed","Taskset embedded Rewards differ from their immutable binding.");let k=r("binding",a),l=[...new Map(k.sources.map(c=>[u(c.reward),r("reward",c.reward)])).values()],T=new Map((n?.modelResources?.assets??[]).map(c=>[c.id,c])),v=g(c=>{T.has(c)||T.set(c,r("asset",{id:c,revision:1}))},"addAsset");for(let c of[...d,...l]){let f=c.implementation;for(let H of[...c.assets,..."verifierRef"in f?[f.verifierRef]:[],..."rubricRef"in f?[f.rubricRef]:[],..."inputContract"in f?[f.inputContract]:[]])v(H.id)}let h,S=me.shape.executionResources.parse(s.environment.metadata.portableExecutionResources);if(i.execution.environment.entrypoint==="openpond.javascript-environment.v1"){let c=r("asset",{id:ue(i.execution),revision:1});h=fe.parse(JSON.parse(V(c,c.asset)));for(let f of[h.javascript.module,h.environment.actionSchemaRef,h.environment.observationSchemaRef,h.environment.stateSchemaRef])f&&v(f.id)}for(let c of s.tasks)c.privilegedContextRef&&v(c.privilegedContextRef);u(s.graders)!==u(X(o,d,[...T.values()]))&&D(409,"model_taskset_graders_changed","Taskset graders differ from their immutable Reward binding.");let N=G.parse($({schemaVersion:"openpond.tasksetRelease.v2",id:s.id,revision:s.revision,...i.execution,graders:ce(o,d),...s.metrics?{metrics:s.metrics}:{},tasks:s.tasks.map(c=>{let f=ve(c);return c.requiredOutputs===void 0&&c.metadata.portableTaskRecord===void 0&&delete f.requiredOutputs,f}),metadata:s.metadata.derivedPortableMetadata??{localSource:R(s),starter:{taskDefinition:R(i),rewardBinding:t}}}));return{sourcePackage:n?{...n.modelResources,taskset:n.taskset,executionResources:{environment:n.environment,verifierSet:n.verifierSet}}:{taskset:N,taskDefinition:i,rewardBinding:o,rewards:d,assets:[...T.values()],...S?{executionResources:S}:{},...h?{execution:h}:{}},selectedBinding:k,selectedRewards:l,assets:T}}g(Y,"readModelTasksetSource");function D(e,s,a){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:s,message:a,retryable:!1,requestId:null,details:{}})}g(D,"fail");function re(e){if(e?.metadata.learning===void 0)return null;let s=le.parse(e.metadata.learning);return b(s.definition),de(s.binding,s.rewards),M(s.definition.rewardBinding,R(s.binding))||x(409,"model_batch_binding_changed","Reviewed task definition and Reward binding do not match."),s.binding}g(re,"reviewedTasksetRewardBinding");function it(e,s,a=!0,n){let t=U(s),{project:r}=t,i=e.get("SELECT payload FROM model_projects WHERE id = ?",[r.id]),o=i?F.parse(JSON.parse(i.payload)):null;o&&o.profileId!==r.profileId&&x(404,"model_not_found","Model is not available in this Profile."),(o?.revision??0)!==t.expectedRevision&&x(409,"model_revision_conflict","Model changed since it was opened. Refresh before saving.");let d=r.trainingSetup.tasksetRef;if(!d||!r.trainingSetup.rewardBindingRef)return null;let k=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[d.id,d.revision]),l=k?A.parse(JSON.parse(k.payload)):null;(!l||l.profileId!==r.profileId)&&x(404,"model_taskset_not_found","The selected Taskset revision is not available in this Profile."),(l.contentHash!==d.contentHash||ae(l)!==l.contentHash)&&x(409,"model_taskset_changed","The selected Taskset does not match its immutable content hash.");let T=re(l);if(T)return M(R(T),r.trainingSetup.rewardBindingRef)||x(422,"model_batch_reward_review_required","Changing a reviewed batch's Reward requires regrading and a new reviewed batch."),null;let v=l.metadata.rewardBinding===void 0?null:q.parse(l.metadata.rewardBinding);if(v&&M(v,r.trainingSetup.rewardBindingRef))return null;if(!v&&n&&!n.modelResources&&!n.learningResources){let p=Se(e,r.profileId,r.trainingSetup.rewardBindingRef),_=Te({owner:{scopeId:r.profileId,modelId:r.id},source:n,...p}),O=_e(e,t,a),P=se({package:_,profileId:r.profileId,name:l.name,createdAt:O.created_at});P.taskset=ne(P.taskset,l);let L={..._.modelResources,taskset:_.taskset,executionResources:{environment:_.environment,verifierSet:_.verifierSet}};return{taskset:P.taskset,generatedFiles:P.generatedFiles,directoryId:String(P.taskset.environment.metadata.runtimeSourceTasksetId),source:l,sourcePackage:null,derived:L,imported:P}}v||x(422,"model_taskset_derivation_unavailable","This Taskset needs an authored task definition and Reward binding before its Reward can be changed.");let{sourcePackage:h,selectedBinding:S,selectedRewards:N,assets:I}=Y(e,l,r.trainingSetup.rewardBindingRef,n),c=te.safeParse(h.taskset.metadata.modelTasksetDerivation),H=o?.hosted?.apiOrigin&&o.hosted.tasksets.some(p=>{if(!c.success||p.localTasksetId!==l.id||!p.packageHash||!p.localTasksetHash)return!1;let _=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND content_hash = ? AND profile_id = ?",[l.id,p.localTasksetHash,r.profileId]),O=_?A.parse(JSON.parse(_.payload)):null;if(!O||O.contentHash!==p.localTasksetHash)return!1;let P=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = 'package' AND id = ? AND revision = ?",[r.profileId,p.releaseId,p.releaseRevision]),L=P?G.parse(JSON.parse(P.payload)):null,y=te.safeParse(L?.metadata.modelTasksetDerivation);return L?.contentHash===p.releaseHash&&y.success&&u(y.data.owner)===u(c.data.owner)&&M(y.data.root,c.data.root)})&&c.success&&c.data.owner.modelId===r.id?c.data.owner:{scopeId:r.profileId,modelId:r.id},m=ge({owner:H,source:h,rewardBinding:S,rewards:N,assets:[...I.values()]}),K=_e(e,t,a);if(n){let p=new Map(n.files.map(B=>[B.asset.id,B]));for(let B of m.assets)p.set(B.id,{asset:B.asset,base64:Buffer.from(B.text).toString("base64")});let{taskset:_,executionResources:O,...P}=m;if(!O)throw new Error("Derived imported package is missing execution resources.");let L=ke({schemaVersion:"openpond.tasksetPackage.v1",taskset:_,...O,modelResources:P,files:[...p.values()]}),y=se({package:L,profileId:r.profileId,name:l.name,createdAt:K.created_at});return y.taskset=ne(y.taskset,l),{taskset:y.taskset,generatedFiles:y.generatedFiles,directoryId:String(y.taskset.environment.metadata.runtimeSourceTasksetId),source:l,sourcePackage:h,derived:m,imported:y}}let ie=`${m.taskset.id}-r${m.taskset.revision}-${$({packageHash:m.taskset.contentHash,preparedAt:K.created_at}).contentHash}`,j=he(l,K.created_at),ye=new Map(m.taskset.tasks.map(p=>[p.id,p])),Z=[];for(let p of m.taskset.graders)if(p.kind==="custom_verifier"){let _=p.verifierRef.path;Z.some(O=>O.path===_)||Z.push({path:_,role:"verifier",content:V(I.get(p.verifierRef.id),p.verifierRef)})}let C=Re({tasksetId:m.taskset.id,now:K.created_at,sourcePackageHash:m.taskset.contentHash,draft:{...j,policy:m.taskset.policy,tasks:j.tasks.map(p=>({...p,metadata:{...p.metadata,portableTaskRecord:ye.get(p.id)}})),environment:{...j.environment,metadata:{...j.environment.metadata,runtimeSourceTasksetId:ie,portableExecutionResources:m.executionResources}},graders:X(S,N,[...I.values()]),learningSignals:{...j.learningSignals,rewards:j.learningSignals.rewards.map(p=>({...p,rules:[{id:S.id,points:1,condition:"Execute the published Reward binding with its declared normalization, weights and required gates."}],artifactRef:S.id,metadata:{...p.metadata,rewardBinding:R(S)}}))},metadata:{...j.metadata,portableCapabilities:m.taskset.capabilities,taskDefinition:R(m.taskDefinition),rewardBinding:R(S),rewardExecution:{binding:S,rewards:N},derivedPortableMetadata:m.taskset.metadata,modelTasksetDerivation:m.taskset.metadata.modelTasksetDerivation}}});if(C.metrics=m.taskset.metrics,m.taskset.metadata.tasksetOutputContract===void 0?delete C.metadata.tasksetOutputContract:C.metadata.tasksetOutputContract=m.taskset.metadata.tasksetOutputContract,C.contentHash=ae(C),C.revision!==m.taskset.revision)throw new Error("Derived local and portable Taskset revisions differ.");return{taskset:C,generatedFiles:Z,directoryId:ie,source:l,sourcePackage:h,derived:m}}g(it,"prepareModelTasksetSave");function Pe(e,s,a){let n=s.project.profileId;for(let o of[a.sourcePackage,a.derived]){if(!o)continue;for(let k of o.assets)w(e,n,"asset",k);for(let k of o.rewards)w(e,n,"reward",k);w(e,n,"binding",o.rewardBinding),w(e,n,"package",o.taskset),w(e,n,"definition",o.taskDefinition);let d=o.executionResources??o.execution;d&&w(e,n,"asset",Q(d)),o.execution&&w(e,n,"asset",z(o.execution))}let t=a.taskset;e.get("SELECT content_hash FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[t.id,t.revision])&&x(409,"model_taskset_revision_conflict","The derived Taskset revision was already published. Refresh before saving.");let i=JSON.stringify(t);e.run("INSERT INTO tasksets (id, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET status = excluded.status, payload = excluded.payload, updated_at = excluded.updated_at",[t.id,n,t.status,i,t.createdAt,t.updatedAt]),e.run("INSERT INTO taskset_revisions (taskset_id, revision, content_hash, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[t.id,t.revision,t.contentHash,n,t.status,i,t.createdAt,t.updatedAt]),e.run("UPDATE model_project_taskset_preparations SET state = 'committed' WHERE profile_id = ? AND operation_id = ?",[n,s.operationId])}g(Pe,"commitPreparedModelTaskset");function _e(e,s,a){let n=Me("sha256").update(u(s)).digest("hex"),t=s.project.profileId;a&&e.run("INSERT OR IGNORE INTO model_project_taskset_preparations (profile_id, operation_id, request_hash, created_at, state) VALUES (?, ?, ?, ?, 'preparing')",[t,s.operationId,n,new Date().toISOString()]);let r=e.get("SELECT request_hash, created_at FROM model_project_taskset_preparations WHERE profile_id = ? AND operation_id = ?",[t,s.operationId])??{request_hash:n,created_at:new Date().toISOString()};return r.request_hash!==n&&x(409,"model_operation_conflict","This save operation was already used with different Model configuration."),r}g(_e,"recordModelTasksetPreparation");function x(e,s,a){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:s,message:a,retryable:!1,requestId:null,details:{}})}g(x,"fail");import{createHash as Ee}from"node:crypto";function Ie(e,s){let a=U(s),n=e.get("SELECT request_hash, payload FROM model_project_save_operations WHERE profile_id = ? AND operation_id = ?",[a.project.profileId,a.operationId]);if(!n)return null;let t=Ee("sha256").update(u(a)).digest("hex");return n.request_hash!==t&&E(409,"model_operation_conflict","This save operation was already used with different Model configuration."),F.parse(JSON.parse(n.payload))}g(Ie,"findModelProjectSave");function ht(e,s,a,n){e.exec("BEGIN IMMEDIATE");try{let t=Oe(e,s,a,n);return e.exec("COMMIT"),t}catch(t){throw e.exec("ROLLBACK"),t}}g(ht,"commitModelProjectSave");function Oe(e,s,a,n){let t=U(s);t.learning&&E(422,"model_learning_hosted_required","Create this Model in a hosted workspace to enable continual learning.");let r=Ee("sha256").update(u(t)).digest("hex"),{project:i,operationId:o,expectedRevision:d}=t,k=Ie(e,t);if(k)return k;let l=e.get("SELECT payload FROM model_projects WHERE id = ?",[i.id]),T=l?F.parse(JSON.parse(l.payload)):null;T&&T.profileId!==i.profileId&&E(404,"model_not_found","Model is not available in this Profile."),(T?.revision??0)!==d&&E(409,"model_revision_conflict","Model changed since it was opened. Refresh before saving.");let v=xe(e,t),h=re(v);h||Ne(e,t);let S=h?R(h):v?.metadata.rewardBinding===void 0?null:q.parse(v.metadata.rewardBinding);v&&i.trainingSetup.rewardBindingRef&&(!S||!M(S,i.trainingSetup.rewardBindingRef))&&!a&&E(409,"model_taskset_preparation_required","Changing this Reward requires publishing its model-owned Taskset revision."),a&&((!i.trainingSetup.tasksetRef||!M(i.trainingSetup.tasksetRef,R(a.source))||!i.trainingSetup.rewardBindingRef||!M(i.trainingSetup.rewardBindingRef,R(a.derived.rewardBinding)))&&E(409,"model_taskset_preparation_changed","The prepared Taskset differs from the selected configuration."),Pe(e,t,a));let N=new Date().toISOString(),I=pe.parse({...i.trainingSetup,baseModel:i.trainingSetup.baseModel??i.defaultBaseModel,method:i.trainingSetup.method??(v?.authoringProvenance.buildIntent==="verifiable_reward"?"grpo":v?.authoringProvenance.buildIntent==="demonstrations"?"sft":null),...S?{rewardBindingRef:S}:{},...a?{rewardBindingRef:R(a.derived.rewardBinding),tasksetRef:R(a.taskset),tasksetRelease:null,recipe:null,...i.trainingSetup.evaluationTasksetRef&&M(i.trainingSetup.evaluationTasksetRef,R(a.source))?{evaluationTasksetRef:R(a.taskset)}:{}}:{}}),c=a?.derived??n??(v&&!h&&I.rewardBindingRef&&v.metadata.taskDefinition!==void 0&&v.metadata.rewardBinding!==void 0?Y(e,v,I.rewardBindingRef).sourcePackage:void 0),f=F.parse({...T,...i,trainingSetup:c?we({setup:I,package:c}):I,schemaVersion:"openpond.modelProject.v2",revision:d+1,hosted:T?.hosted??null,tasksetSyncs:T?.tasksetSyncs??[],createdAt:T?.createdAt??N,updatedAt:N});return e.run(`INSERT INTO model_projects (id, profile_id, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?)
|
|
5
5
|
ON CONFLICT(id) DO UPDATE SET payload = excluded.payload, updated_at = excluded.updated_at`,[f.id,f.profileId,JSON.stringify(f),f.createdAt,f.updatedAt]),e.run("INSERT INTO model_project_save_operations (profile_id, operation_id, request_hash, payload) VALUES (?, ?, ?, ?)",[f.profileId,o,r,JSON.stringify(f)]),f}g(Oe,"saveModelProjectInTransaction");function xe(e,s){let a=s.project.trainingSetup.tasksetRef;if(!a){s.project.trainingSetup.tasksetRelease&&E(400,"model_taskset_required","Choose the Taskset corresponding to this release.");return}let n=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[a.id,a.revision]),t=n?A.parse(JSON.parse(n.payload)):null;return(!t||t.profileId!==s.project.profileId)&&E(404,"model_taskset_not_found","The selected Taskset revision is not available in this Profile."),t.contentHash!==a.contentHash&&E(409,"model_taskset_changed","The selected Taskset does not match its immutable content hash."),t}g(xe,"assertTaskset");function Ne(e,s){let a=s.project.trainingSetup.rewardBindingRef;if(!a)return;function n(r,i){let o=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[s.project.profileId,r,i.id,i.revision]);o||E(404,"model_reward_unavailable","The exact Reward configuration is unavailable in this Profile.");let d=(r==="binding"?ee:oe).parse(JSON.parse(o.payload));return d.contentHash!==i.contentHash&&E(409,"model_reward_changed","The selected Reward does not match its immutable content hash."),b(d),d}g(n,"read");let t=ee.parse(n("binding",a));for(let r of t.sources)n("reward",r.reward)}g(Ne,"assertReward");function E(e,s,a){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:s,message:a,retryable:!1,requestId:null,details:{}})}g(E,"fail");function Et(e,s){let{taskset:a,package:n}=s,t=a.profileId,r=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[a.id,a.revision]);if(r&&u(A.parse(JSON.parse(r.payload)))!==u(a))throw new Error("Imported Taskset revision conflicts with an existing immutable local revision.");let i=e.get("SELECT payload FROM tasksets WHERE id = ?",[a.id]),o=i?A.parse(JSON.parse(i.payload)):null;if(o&&o.profileId!==t)throw new Error("Imported Taskset belongs to another Profile.");w(e,t,"package",n.taskset);let d=n.modelResources;if(d){w(e,t,"definition",d.taskDefinition),w(e,t,"binding",d.rewardBinding);for(let l of d.rewards)w(e,t,"reward",l);for(let l of d.assets)w(e,t,"asset",l);w(e,t,"asset",Q({environment:n.environment,verifierSet:n.verifierSet})),d.execution&&w(e,t,"asset",z(d.execution))}let k=JSON.stringify(a);r||e.run("INSERT INTO taskset_revisions (taskset_id, revision, content_hash, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[a.id,a.revision,a.contentHash,t,a.status,k,a.createdAt,a.updatedAt]),(!o||o.revision<a.revision)&&e.run("INSERT INTO tasksets (id, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET status = excluded.status, payload = excluded.payload, updated_at = excluded.updated_at",[a.id,t,a.status,k,a.createdAt,a.updatedAt])}g(Et,"importTasksetPackageInTransaction");export{w as a,it as b,Ie as c,ht as d,Oe as e,Et as f};
|