openpond 0.2.69 → 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-V3KLSNKS.js → account-context-LEZDNYMR.js} +1 -1
- package/dist/chunks/{acp-ER6CUXG2.js → acp-QTA6IU6W.js} +1 -1
- package/dist/chunks/{acp-agent-AYJ5RPVF.js → acp-agent-N77HPAYQ.js} +1 -1
- package/dist/chunks/{actions-command-BBUS3HDK.js → actions-command-BZQCUDMD.js} +1 -1
- package/dist/chunks/{app-layer-JCEWGUDH.js → app-layer-YQQNLIXA.js} +1 -1
- package/dist/chunks/{app-server-connected-apps-ILXBFD3S.js → app-server-connected-apps-NH4667QJ.js} +1 -1
- package/dist/chunks/{app-server-runtime-43MCH5SY.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-LSKMALD6.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-M5X7XKXY.js → chunk-BGMAWETL.js} +7 -7
- package/dist/chunks/{chunk-7EQLW2KM.js → chunk-BLNEHU62.js} +1 -1
- package/dist/chunks/{chunk-R6I623SZ.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-RCRZXHAI.js → chunk-EWH64WRR.js} +1 -1
- package/dist/chunks/{chunk-WNXUSELC.js → chunk-EXAJ2B4I.js} +1 -1
- package/dist/chunks/{chunk-TB5P3FWM.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-NZDLL6JN.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-BDZDWHBJ.js → chunk-KURL76NW.js} +1 -1
- 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-Z5CQXPIS.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-NW6WGGSL.js → chunk-TCTBCAI6.js} +1 -1
- package/dist/chunks/{chunk-EWDDDHJN.js → chunk-UZNRH6I3.js} +1 -1
- package/dist/chunks/{chunk-22RLEU3Q.js → chunk-Y4E5AAI7.js} +1 -1
- package/dist/chunks/chunk-YAA7F5LI.js +2 -0
- package/dist/chunks/{chunk-G4FRBT7G.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-C3QBDFND.js → configuration-command-5LUNWPOL.js} +1 -1
- package/dist/chunks/{connected-app-executor-LAEAQUJS.js → connected-app-executor-DHXZE4X3.js} +1 -1
- package/dist/chunks/connected-evidence-NWMPICKJ.js +2 -0
- package/dist/chunks/{connected-starting-assets-5LAJ7CZY.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-PLQJOP4P.js → help-UQN5RUPA.js} +1 -1
- package/dist/chunks/{hosted-app-server-composition-GZES7QXJ.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-V24IBVJX.js → hosted-tasksets-KCLNMPG5.js} +1 -1
- package/dist/chunks/human-review-PX6DBIFT.js +2 -0
- package/dist/chunks/{import-SI24Z7EF.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-TD5U3INY.js → profile-YH6G3ZTD.js} +1 -1
- package/dist/chunks/{project-action-payload-TK6G4VMC.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-GOY7QQUY.js → sandbox-template-T42MDUSR.js} +1 -1
- package/dist/chunks/{saved-work-M6PUHKCC.js → saved-work-54I5ZJTC.js} +1 -1
- package/dist/chunks/setup-D6TY2GWV.js +2 -0
- package/dist/chunks/{src-MT4B43TD.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-YCUTDDDC.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/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/package.json +1 -1
- package/dist/chunks/apps-VNFGMQFG.js +0 -2
- package/dist/chunks/chunk-APKXXAUF.js +0 -2
- package/dist/chunks/chunk-JCLTFDVW.js +0 -2
- package/dist/chunks/chunk-KTIBXRWQ.js +0 -2
- package/dist/chunks/chunk-YDZBX4XQ.js +0 -2
- package/dist/chunks/connected-evidence-VKY6O2JW.js +0 -2
- package/dist/chunks/core-commands-5TNBVR72.js +0 -2
- package/dist/chunks/datasets-BIDZJYDC.js +0 -2
- package/dist/chunks/desktop-test-BY2MS3UL.js +0 -3
- package/dist/chunks/evaluation-coordination-FXB4DXZA.js +0 -2
- package/dist/chunks/experiment-improvements-JPDLKZXD.js +0 -2
- package/dist/chunks/experiments-IEN7RXLX.js +0 -2
- package/dist/chunks/experiments-signal-L32D36NH.js +0 -2
- package/dist/chunks/human-review-6V6EMNVN.js +0 -2
- package/dist/chunks/learning-LAXMGWSQ.js +0 -2
- package/dist/chunks/opchat-SV67HVMX.js +0 -3
- package/dist/chunks/opchat-bounded-chat-KLMIYSZZ.js +0 -2
- package/dist/chunks/organizations-OZZFX7RG.js +0 -2
- package/dist/chunks/project-agent-FFXPNXCO.js +0 -2
- package/dist/chunks/sandbox-command-4BCUDAED.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,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{d as se}from"./chunk-CIZI6Z7D.js";import"./chunk-NZDLL6JN.js";import{c as N}from"./chunk-RFQD6B44.js";import{a as B,d as F}from"./chunk-R4EEGWXB.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.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-JEMECEQH.js";import{a as Q,b as X,c as Y,d as q,e as Z,f as ee,g as te,h as ae,i as re}from"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import{d as H}from"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.js";import"./chunk-KP2MYTP5.js";import"./chunk-PNPV2LDE.js";import{k as $,m as V}from"./chunk-4G3GTEVS.js";import"./chunk-KU4TPDPH.js";import"./chunk-55YD4UTW.js";import"./chunk-AFYYIJ6K.js";import{a as O}from"./chunk-J256AEEE.js";import"./chunk-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{c as J,f as j}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as l,f as R}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as K}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as t}from"./chunk-X2J2P5ZT.js";import{a as S}from"./chunk-FTQLQJQV.js";var G=t.enum(["create","save","publish","begin_version"]),ne=t.object({operationId:t.string().trim().min(1).max(240),kind:G,requestHash:t.string().regex(/^[a-f0-9]{64}$/),receipt:q,base:q.nullable()}).strict().superRefine((a,r)=>{let{receipt:e,base:s,kind:n}=a;(s&&(s.teamId!==e.teamId||s.datasetId!==e.datasetId||s.revision+1!==e.revision)||!s&&e.revision!==1)&&r.addIssue({code:"custom",message:"Operation recovery history identity/revision mismatch."}),s&&((s.ownerScope??"workspace")!==(e.ownerScope??"workspace")||s.originProjectId!==e.originProjectId||s.workspace.draft.createdAt!==e.workspace.draft.createdAt)&&r.addIssue({code:"custom",message:"Operation recovery cannot change Dataset ownership or origin."});let i=s?e.workspace.draft.status==="published"?"publish":s.workspace.draft.status==="published"?"begin_version":"save":"create";n!==i&&r.addIssue({code:"custom",message:"Operation recovery kind differs from its retained lifecycle."})});var c=t.string().trim().min(1).max(240),I=t.string().regex(/^[a-f0-9]{64}$/),k=t.iso.datetime(),p=t.number().int().nonnegative(),x=t.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),C=t.object({id:c,projectId:c,maximumMicroUsd:x.positive(),maximumSandboxSeconds:p.max(10800)}).strict(),ie=t.object({schemaVersion:t.literal("openpond.datasetPreparationGrant.v1"),id:c,teamId:c,ownerUserId:c,projectId:c,maximumMicroUsd:x,maximumSandboxSeconds:p,settledMicroUsd:x,heldMicroUsd:x,sandboxSeconds:p,heldSandboxSeconds:p,unresolvedCalls:p,cleanupPending:p,createdAt:k,updatedAt:k}).strict(),L=t.enum(["coding_change","debugging","code_explanation","structured_text","artifact_work"]),oe=t.enum(["inventory","preview","reconstruction","grader_authoring","qualification","release"]),le=t.enum(["draft","running","pausing","paused","needs_attention","preview_ready","ready","releasing","completed","insufficient_data","budget_exhausted","cancelling","cancelled","failed"]),fe=t.object({projectId:c,from:k,to:k,importCutoff:k,connections:t.array(c).min(1).max(50),excludedSessions:t.array(t.object({connectionId:c,sourceKeyHash:I,nativeRevisionHash:I,reason:t.enum(["source_read_failed","native_session_not_ready"]),explanation:t.string().trim().min(1).max(2e3)}).strict()).max(1e4).default([])}).strict().superRefine((a,r)=>{Date.parse(a.from)>=Date.parse(a.to)&&r.addIssue({code:"custom",message:"Source event-time window must be nonempty."}),new Set(a.connections).size!==a.connections.length&&r.addIssue({code:"custom",message:"Source connections must be unique."}),a.excludedSessions.some(e=>!a.connections.includes(e.connectionId))&&r.addIssue({code:"custom",message:"Excluded sessions must belong to selected source connections."}),new Set(a.excludedSessions.map(e=>JSON.stringify([e.connectionId,e.sourceKeyHash]))).size!==a.excludedSessions.length&&r.addIssue({code:"custom",message:"Source session exclusions must be unique."})}),ce=t.object({source:fe,taskClasses:t.array(L).min(1).max(5),limits:t.object({maximumConversations:t.number().int().min(1).max(1e4),maximumCandidates:t.number().int().min(1).max(1e4),acceptedTarget:t.number().int().min(1).max(1e4),maximumRepairsPerCandidate:t.number().int().min(0).max(5),maximumEvidenceBytesPerConversation:t.number().int().min(1024).max(2e6)}).strict(),researcher:t.object({modelId:c,maximumOutputTokens:t.number().int().min(1).max(32768)}).strict(),adjudicator:t.object({modelId:c,maximumOutputTokens:t.number().int().min(1).max(32768)}).strict(),grading:t.discriminatedUnion("mode",[t.object({mode:t.literal("auto")}).strict(),t.object({mode:t.literal("existing_only")}).strict(),t.object({mode:t.literal("manual"),releases:t.array(O).min(1).max(100)}).strict()]),budget:t.object({grantId:c,maximumMicroUsd:x.positive(),previewMaximumMicroUsd:x,qualificationMaximumMicroUsdPerCandidate:x,maximumSandboxSeconds:p.max(10800)}).strict(),finish:t.enum(["stop_ready","create_private_version"]),execution:t.enum(["preview_only","prepare"]),allowPartialVersion:t.boolean(),population:t.literal("development")}).strict().superRefine((a,r)=>{a.limits.acceptedTarget>a.limits.maximumCandidates&&r.addIssue({code:"custom",message:"Accepted target exceeds candidate scan limit."}),a.budget.previewMaximumMicroUsd>a.budget.maximumMicroUsd&&r.addIssue({code:"custom",message:"Preview allowance exceeds the shared preparation ceiling."}),new Set(a.taskClasses).size!==a.taskClasses.length&&r.addIssue({code:"custom",message:"Task classes must be unique."})}),_=t.object({operationId:c,expectedDatasetRevision:t.number().int().positive(),policy:ce}).strict(),E=t.discriminatedUnion("action",[t.object({action:t.enum(["start","pause","resume","cancel","release"]),operationId:c,expectedRevision:t.number().int().positive()}).strict(),t.object({action:t.literal("resolve"),operationId:c,expectedRevision:t.number().int().positive(),candidateId:c,decision:t.enum(["retry","exclude"]),reason:t.string().trim().min(1).max(5e3)}).strict()]),he=t.object({conversations:p,importedTurns:p,selectedTurns:p,queuedSnapshots:p.nullable(),failedSessions:p.nullable(),skippedSessions:p.nullable(),lastAdmissionAt:k.nullable(),complete:t.boolean(),sourceComplete:t.boolean().default(!1),excludedSessions:p.default(0),reasons:t.array(t.object({code:c,message:t.string().trim().min(1).max(2e3)}).strict()).max(100),sourceInventoryHash:I}).strict(),ge=t.object({maximumMicroUsd:x,settledMicroUsd:x,heldMicroUsd:x,unresolvedCalls:p,sandboxSeconds:p,cleanupPending:p,complete:t.boolean()}).strict(),we=t.object({sampleConversations:p,sampleTurns:p,candidateCount:p,modelId:c,modelConfigurationHash:I,callReceiptIds:t.array(c).max(2e3),inputTokens:p.nullable(),outputTokens:p.nullable(),classes:t.array(t.object({taskClass:L,candidates:p,assessment:t.enum(["executable","calibrated_judge","unsupported"]),requirements:t.array(t.string().trim().min(1).max(5e3)).max(20)}).strict()).max(5),exclusions:t.array(t.object({code:c,count:p,reason:t.string().trim().min(1).max(5e3)}).strict()).max(100),estimates:t.array(t.object({stage:oe,minimumMicroUsd:x,maximumMicroUsd:x,assumptions:t.array(t.string().trim().min(1).max(2e3)).min(1).max(20)}).strict().refine(a=>a.minimumMicroUsd<=a.maximumMicroUsd,"Estimate range is reversed.")).max(6),createdAt:k}).strict(),A=t.object({schemaVersion:t.literal("openpond.datasetPreparationRun.v1"),id:c,operationId:c,teamId:c,ownerUserId:c,datasetId:c,datasetRevision:t.number().int().positive(),revision:t.number().int().positive(),requestHash:I,policy:ce,status:le,stage:oe,coverage:he.nullable(),preview:we.nullable(),counts:t.object({scannedConversations:p,scannedTurns:p,candidates:p,reconstructed:p,qualifying:p,qualified:p,excluded:p,needsAttention:p}).strict(),accounting:ge,publication:t.object({datasetId:c,workspaceRevision:t.number().int().positive(),release:O}).strict().nullable(),error:t.object({code:c,message:t.string().trim().min(1).max(5e3)}).strict().nullable(),createdAt:k,updatedAt:k}).strict().superRefine((a,r)=>{a.accounting.maximumMicroUsd!==a.policy.budget.maximumMicroUsd&&r.addIssue({code:"custom",message:"Accounting authority differs from the saved preparation policy."}),a.counts.qualified+a.counts.excluded+a.counts.needsAttention>a.counts.candidates&&r.addIssue({code:"custom",message:"Preparation outcomes exceed the candidate population."}),a.status==="preview_ready"&&(a.policy.execution!=="preview_only"||a.stage!=="preview"||!a.preview||!a.coverage?.complete||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Preview readiness requires a preview-only policy, reconciled source coverage and settled preview calls."}),["ready","releasing","completed"].includes(a.status)&&(a.counts.qualified===0||!a.policy.allowPartialVersion&&a.counts.qualified<a.policy.limits.acceptedTarget)&&r.addIssue({code:"custom",message:"Preparation cannot report readiness below its accepted target."}),["ready","releasing","completed"].includes(a.status)&&(a.policy.execution!=="prepare"||!a.preview||!a.coverage?.complete||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Dataset readiness requires full preparation authority, reconciled source coverage, preview and final accounting."}),a.status==="completed"&&(!a.publication||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Completed preparation requires publication and reconciled accounting."}),a.status==="cancelled"&&(!a.accounting.complete||a.accounting.cleanupPending>0)&&r.addIssue({code:"custom",message:"Cancellation requires settled resource obligations."})}),de=t.object({teamId:c,datasetId:c,runs:t.array(A).max(50),nextCursor:c.nullable()}).strict(),be=t.object({source:Q,startSequence:p,endSequence:p,role:t.enum(["requirement","initial_context","outcome","correction","verification"])}).strict().superRefine((a,r)=>{a.endSequence<a.startSequence&&r.addIssue({code:"custom",message:"Evidence span must be ordered."})}),ye=t.object({schemaVersion:t.literal("openpond.preparedTaskProvenance.v1"),candidateId:c,preparationId:c,familyKey:c,sourceSpans:t.array(be).min(1).max(200),firstAvailableAt:k,initialInputHash:I,initialEnvironmentHash:I,initialAssetsHash:I.nullable(),sourceScopeHash:I}).strict().superRefine((a,r)=>{a.sourceSpans.some(s=>s.role==="requirement")||r.addIssue({code:"custom",message:"A reconstructed task needs a source requirement."});let e=new Set;for(let s of a.sourceSpans){a.sourceSpans.some(i=>i!==s&&i.source.id===s.source.id&&i.source.snapshotHash===s.source.snapshotHash&&i.role!==s.role&&s.startSequence<=i.endSequence&&i.startSequence<=s.endSequence)&&r.addIssue({code:"custom",message:"Evidence offsets cannot have conflicting roles."});let n=JSON.stringify([s.source,s.startSequence,s.endSequence]);e.has(n)&&r.addIssue({code:"custom",message:"Evidence span is duplicated or crosses public/private roles."}),e.add(n)}}),Ie=t.object({schemaVersion:t.literal("openpond.preparedTaskQualification.v1"),id:c,candidateId:c,preparationId:c,taskHash:I,environmentHash:I,packageHash:I,graderBindings:t.array(t.object({id:c,version:c,contentHash:I,origin:t.enum(["reused","adapted","authored"])}).strict()).min(1).max(100),checks:t.array(t.object({id:c,label:t.enum(["positive","incorrect","incomplete","adversarial","clean_reset"]),executionReceiptId:c,expectedPassed:t.boolean(),observedPassed:t.boolean().nullable(),infrastructureError:c.nullable()}).strict()).min(5).max(500),independentEvidenceRefs:t.array(c).min(1).max(100),judgeCalibration:t.enum(["not_applicable","passed","failed","pending"]),cleanup:t.enum(["completed","pending"]),passed:t.boolean(),createdAt:k}).strict().superRefine((a,r)=>{if(!a.passed)return;let e=new Set(a.checks.map(s=>s.label));["positive","incorrect","incomplete","adversarial","clean_reset"].some(s=>!e.has(s))&&r.addIssue({code:"custom",message:"Qualified tasks require positive, negative, adversarial and clean-reset evidence."}),(a.cleanup!=="completed"||["pending","failed"].includes(a.judgeCalibration)||a.checks.some(s=>s.infrastructureError!==null||s.observedPassed!==s.expectedPassed))&&r.addIssue({code:"custom",message:"Failed, uncalibrated or uncleared checks cannot qualify a task."}),a.checks.some(s=>s.expectedPassed!==["positive","clean_reset"].includes(s.label))&&r.addIssue({code:"custom",message:"Qualification witnesses must pass positives/resets and reject incorrect, incomplete and adversarial outputs."})}),pe=t.object({id:c,runId:c,revision:t.number().int().positive(),taskClass:L,status:t.enum(["discovered","reconstructing","authoring","qualifying","qualified","excluded","needs_attention"]),objective:t.string().trim().min(1).max(2e4),provenance:ye.nullable(),qualification:Ie.nullable(),reason:t.object({code:c,message:t.string().trim().min(1).max(5e3)}).strict().nullable(),attempts:p.max(6)}).strict().superRefine((a,r)=>{a.status==="qualified"&&(!a.provenance||!a.qualification?.passed)&&r.addIssue({code:"custom",message:"Candidate admission requires reconstruction and qualification receipts."}),a.provenance&&(a.provenance.candidateId!==a.id||a.provenance.preparationId!==a.runId)&&r.addIssue({code:"custom",message:"Candidate provenance identity mismatch."}),a.qualification&&(a.qualification.candidateId!==a.id||a.qualification.preparationId!==a.runId)&&r.addIssue({code:"custom",message:"Candidate qualification identity mismatch."})});var v=t.string().trim().min(1).max(240),ve=t.object({teamId:v,datasetId:v,runId:v,candidates:t.array(pe).max(50),nextCursor:v.nullable()}).strict(),T=class extends Error{constructor(e,s,n){super(n);this.status=e;this.code=s;this.name="DatasetPreparationRequestError"}status;code;static{S(this,"DatasetPreparationRequestError")}},U=class{constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,"")}options;static{S(this,"OpenPondDatasetPreparationClient")}baseUrl;async create(r,e,s){let n=_.parse(e),i=this.readRun(await this.request(r,"","POST",n,s),r);if(i.operationId!==n.operationId||i.requestHash!==K(n)||i.datasetRevision!==n.expectedDatasetRevision)throw new Error("Preparation creation receipt differs from the saved intent.");return i}async createGrant(r,e,s){let n=C.parse(e),i=this.readGrant(await this.request(r,"/grants","POST",n,s));if(i.id!==n.id||i.projectId!==n.projectId||i.maximumMicroUsd!==n.maximumMicroUsd||i.maximumSandboxSeconds!==n.maximumSandboxSeconds)throw new Error("Preparation grant receipt differs from the saved limits.");return i}async getGrant(r,e,s){let n=this.readGrant(await this.request(r,`/grants/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s));if(n.id!==e)throw new Error("Preparation grant identity mismatch.");return n}readGrant(r){let e=ie.parse(r);if(e.teamId!==this.options.teamId)throw new Error("Preparation grant workspace mismatch.");return e}async get(r,e,s){return this.readRun(await this.request(r,`/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s),r,e)}async list(r,e={}){let s=new URLSearchParams(e.cursor?{cursor:v.parse(e.cursor)}:{}),n=de.parse(await this.request(r,`?${s}`,"GET",void 0,e.signal));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.runs.some(i=>i.teamId!==n.teamId||i.datasetId!==r)||new Set(n.runs.map(i=>i.id)).size!==n.runs.length)throw new Error("Preparation list scope/identity mismatch.");return n}async command(r,e,s,n){let i=E.parse(s),o=this.readRun(await this.request(r,`/${encodeURIComponent(v.parse(e))}/commands`,"POST",i,n),r,e);if(o.revision<i.expectedRevision+1)throw new Error("Preparation command did not advance the expected revision.");return o}async operationResult(r,e,s){let n=await this.request(r,`/operations/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s);if(n===null)return null;let i=t.object({operationId:v,requestHash:t.string().regex(/^[a-f0-9]{64}$/),run:A}).strict().parse(n);if(i.operationId!==e)throw new Error("Preparation operation recovery identity mismatch.");return this.readRun(i.run,r),i}async candidates(r,e,s={}){let n=new URLSearchParams(s.cursor?{cursor:v.parse(s.cursor)}:{}),i=ve.parse(await this.request(r,`/${encodeURIComponent(v.parse(e))}/candidates?${n}`,"GET",void 0,s.signal));if(i.teamId!==this.options.teamId||i.datasetId!==r||i.runId!==e||i.candidates.some(o=>o.runId!==e)||new Set(i.candidates.map(o=>o.id)).size!==i.candidates.length)throw new Error("Preparation candidate page scope/identity mismatch.");return i}readRun(r,e,s){let n=A.parse(r);if(n.teamId!==this.options.teamId||n.datasetId!==e||s&&n.id!==s)throw new Error("Preparation run scope/identity mismatch.");return n}async request(r,e,s,n,i){let o=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/dataset-workspaces/${encodeURIComponent(v.parse(r))}/preparations${e}`,{method:s,signal:i,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},...n===void 0?{}:{body:JSON.stringify(n)}});if(!o.body)throw o.ok?new Error("Preparation response is empty."):new T(o.status,"dataset_preparation_request_failed",`Dataset preparation request failed (${o.status}).`);let d=o.body.getReader(),m=[],w=0;try{for(;;){let y=await d.read();if(y.done)break;if(w+=y.value.byteLength,w>(o.ok?8*1024*1024:64*1024))throw new Error("Preparation response exceeds its bounded page.");m.push(y.value)}}finally{await d.cancel()}let h=new Uint8Array(w),b=0;for(let y of m)h.set(y,b),b+=y.length;let g=new TextDecoder("utf-8",{fatal:!0}).decode(h);if(!o.ok){let y=null;try{y=JSON.parse(g)}catch{}let f=t.object({code:t.string().max(240),message:t.string().max(5e3)}).safeParse(y);throw new T(o.status,f.success?f.data.code:"dataset_preparation_request_failed",f.success?f.data.message:`Dataset preparation request failed (${o.status}).`)}return JSON.parse(g)}};var P=class{constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,""),this.preparations=new U(r)}options;static{S(this,"OpenPondDatasetWorkspaceClient")}baseUrl;preparations;async list(r={}){let{signal:e,...s}=r,n=X.parse(s),i=new URLSearchParams(Object.entries(n).filter(([,d])=>d!==void 0).map(([d,m])=>[d,String(m)])),o=ae.parse(await this.request(`?${i}`,"GET",void 0,e));if(o.teamId!==this.options.teamId||o.datasets.length>n.limit||new Set(o.datasets.map(d=>d.id)).size!==o.datasets.length)throw new Error("Dataset list workspace/page mismatch.");return o}async get(r,e){return this.readback(await this.request(`/${encodeURIComponent(r)}`,"GET",void 0,e),r)}async operationResult(r,e){let s=G.parse(e.kind),n=new URLSearchParams({kind:s,...e.datasetId?{datasetId:e.datasetId}:{}}),i=await this.request(`/operations/${encodeURIComponent(r)}?${n}`,"GET",void 0,e.signal,132*1024*1024);if(i===null)return null;let o=ne.parse(i);if(this.readback(o.receipt,o.receipt.datasetId),o.base&&this.readback(o.base,o.receipt.datasetId),o.operationId!==r||o.kind!==s||e.datasetId&&o.receipt.datasetId!==e.datasetId||e.requestHash&&o.requestHash!==e.requestHash)throw new Error("Dataset operation recovery identity/request mismatch.");return o}async beginVersion(r,e,s){let n=ee.parse(e),i=this.readback(await this.request(`/${encodeURIComponent(r)}/begin-version`,"POST",n,s),r);if(i.revision!==n.expectedRevision+1||i.workspace.draft.status!=="draft"||!i.publication||!i.workspace.draft.publishedTasksetRef)throw new Error("Editable version receipt mismatch.");return i}async versions(r,e={}){let s=new URLSearchParams(e.beforeRevision===void 0?{}:{beforeRevision:String(e.beforeRevision)}),n=te.parse(await this.request(`/${encodeURIComponent(r)}/versions?${s}`,"GET",void 0,e.signal));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.items.some((i,o)=>o>0&&i.workspaceRevision>=n.items[o-1].workspaceRevision||e.beforeRevision!==void 0&&i.workspaceRevision>=e.beforeRevision))throw new Error("Dataset version history scope/order mismatch.");return n}async version(r,e,s){let n=this.readback(await this.request(`/${encodeURIComponent(r)}/versions/${e}`,"GET",void 0,s),r);if(n.revision!==e||n.workspace.draft.status!=="published")throw new Error("Dataset immutable version mismatch.");return n}async save(r,e){let s=Y.parse(r),n=$(s.workspace);if(n.draft.profileId!==this.options.teamId||n.draft.revision!==s.expectedRevision+1)throw new Error("Dataset write scope or revision mismatch.");let i=this.readback(await this.request(`/${encodeURIComponent(n.draft.id)}`,"PUT",s,e),n.draft.id);if(s.originProjectId&&i.originProjectId!==s.originProjectId)throw new Error("Dataset origin Project mismatch.");if(s.ownerScope&&i.ownerScope!==s.ownerScope)throw new Error("Dataset owner scope mismatch.");if(i.workspace.contentHash!==n.contentHash)throw new Error("Dataset write receipt differs from the saved bytes.");return i}async validate(r,e,s){let n=re.parse(await this.request(`/${encodeURIComponent(r)}/validate`,"POST",{expectedRevision:e},s));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.revision!==e)throw new Error("Dataset validation receipt mismatch.");return n}async publish(r,e,s){let n=Z.parse(e),i=this.readback(await this.request(`/${encodeURIComponent(r)}/publish`,"POST",n,s),r);if(i.revision!==n.expectedRevision+1||i.workspace.draft.status!=="published"||i.publication?.packageHash!==n.packageHash)throw new Error("Dataset publication receipt mismatch.");return i}readback(r,e){let s=q.parse(r);if($(s.workspace),s.datasetId!==e||s.teamId!==this.options.teamId)throw new Error("Dataset identity mismatch.");return s}async request(r,e,s,n,i){let o=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/dataset-workspaces${r}`,{method:e,signal:n,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},...s===void 0?{}:{body:JSON.stringify(s)}});if(!o.ok)throw new Error(`Dataset request failed (${o.status}).`);if(i!==void 0){if(!o.body)throw new Error("Dataset response is empty.");let d=o.body.getReader(),m=[],w=0;try{for(;;){let g=await d.read();if(g.done)break;if(w+=g.value.byteLength,w>i)throw new Error("Dataset recovery exceeds its bounded response.");m.push(g.value)}}finally{await d.cancel()}let h=new Uint8Array(w),b=0;for(let g of m)h.set(g,b),b+=g.length;return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(h))}return o.json()}};import{readFile as Se,stat as xe}from"node:fs/promises";var M="datasets preparation <grant-create|grant-read|create|read|list|candidates|operation|start|pause|resume|cancel|resolve|release> <dataset-id> [run-or-grant-id] --team <id> --api-base-url <origin> [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--cursor <id>]";async function ue(a,r,e){let[s,n,i]=e;if(!n||!s||e.length>3)throw new Error(`usage: ${M}`);let o=l(r,"cursor")||void 0,d;if(s==="grant-create"){if(i)throw new Error("Grant creation takes its identity from the input file.");d=await a.createGrant(n,C.parse(await z(r)))}else if(s==="grant-read"){if(!i)throw new Error("Grant read requires the retained grant ID.");d=await a.getGrant(n,i)}else if(s==="create"){if(i)throw new Error("Create derives its run identity from the saved operation ID.");d=await a.create(n,_.parse(await z(r)))}else if(s==="list"){if(i)throw new Error("List accepts a Dataset ID only.");d=await a.list(n,{cursor:o})}else if(s==="operation"){let m=l(r,"operationId");if(i||!m)throw new Error("Operation recovery requires --operation-id and no run ID.");d=await a.operationResult(n,m)}else{if(!i)throw new Error(`${s} requires the retained preparation run ID.`);if(s==="read")d=await a.get(n,i);else if(s==="candidates")d=await a.candidates(n,i,{cursor:o});else{let m=s==="resolve"?E.parse(await z(r)):E.parse({action:s,operationId:l(r,"operationId"),expectedRevision:Number(l(r,"expectedRevision"))});if(m.action!==s)throw new Error("Input-file action differs from the selected preparation command.");d=await a.command(n,i,m)}}console.log(JSON.stringify(d,null,2))}S(ue,"runDatasetPreparationCommand");async function z(a){let r=l(a,"inputFile");if(!r||(await xe(r)).size>1048576)throw new Error("Preparation requires a bounded --input-file containing its saved policy or resolution command.");let e=await Se(r);if(e.byteLength>1048576)throw new Error("Preparation input exceeds one MiB.");return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(e))}S(z,"readPreparationInput");import{readFile as ke,stat as Pe}from"node:fs/promises";async function me(a,r){let[e,s]=r;if(!e||r.length>2)throw new Error("Usage: datasets <context|select|select-model|select-destination|new-experiment|select-experiment|rename-experiment|schema|list|read|create|save|file|validate|check-graders|check-sources|package|import|inspect-source|import-source|list-graders|read-grader|save-grader|test-grader|upload|publish|sync|pause-sync|disconnect-sync|related-chats> [id] --local [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--json]");let n=new URL(l(a,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||B);if(n.protocol!=="http:"||!["localhost","127.0.0.1","[::1]"].includes(n.hostname)||n.username||n.password||n.search||n.hash||n.pathname!=="/")throw new Error("Local Datasets require an HTTP loopback server origin.");let i=await F(n.origin,{maximumResponseBytes:Number.POSITIVE_INFINITY,timeoutMs:12e5}),o=l(a,"inputFile"),d={};if(o){let u=await Pe(o);if(!u.isFile()||u.size>64*1024*1024)throw new Error("Provide a bounded regular input file.");d=JSON.parse(await ke(o,"utf8"))}let m=l(a,"expectedRevision"),w=["read-grader","save-grader","test-grader"].includes(e),h=w?l(a,"datasetId"):void 0,b=w?l(a,"graderId")||(h?s:void 0):void 0;w&&(d={...d,...b?{graderId:b}:{},...e==="read-grader"?{view:"inspection",...a.limit!==void 0?{limit:Number(a.limit)}:{},...a.offset!==void 0?{offset:Number(a.offset)}:{}}:{}});let g=e==="context"?{action:"context",payload:d}:e==="select-destination"?{action:"set_destination",payload:{executionLocation:s==="hosted"?"cloud":s}}:e==="select-model"?{action:"set_model",payload:{evaluationModel:s}}:e==="new-experiment"?{action:"create_scope",payload:{operationId:l(a,"operationId")}}:e==="select"?{action:"set_focus",payload:{kind:"dataset",id:s??null,...m?{revision:Number(m)}:{}}}:e==="select-experiment"?{action:"select_scope",payload:{scopeId:s}}:e==="rename-experiment"?{action:"rename_scope",payload:{scopeId:s,...d}}:null;if(g&&!process.env.OPENPOND_CHAT_INVOCATION)throw new Error("Chat selection commands require the app's scoped command executor.");let y=await i(new URL("/v1/local-datasets",n),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...g??{action:e.replaceAll("-","_"),...h||s?{id:h||s}:{},...a.operationId?{operationId:l(a,"operationId")}:{},...m?{expectedRevision:Number(m)}:{},payload:d},...process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{}})}),f=await y.json();if(!y.ok)throw new Error(typeof f.error=="string"?f.error:`Local Dataset request failed (${y.status}).`);if(R(a.json)){console.log(JSON.stringify(f,null,2));return}let D=Array.isArray(f)?f:[...f.summary?[f.summary]:[],...Array.isArray(f.summaries)?f.summaries:[]];if(!D.length){console.log(JSON.stringify(f,null,2));return}for(let u of D){if(u.kind==="grader"){console.log(`${u.name} \xB7 version ${u.revision} \xB7 ${u.state} \xB7 ${u.checkState}`),console.log(`${u.id} \xB7 Dataset ${u.datasetId} \xB7 Grader ${u.graderId}`);continue}console.log(`${u.name} \xB7 version ${u.revision} \xB7 ${u.state} \xB7 ${u.syncState}`),console.log(`${u.id} \xB7 ${u.taskCount} tasks \xB7 ${u.graderCount} graders \xB7 ${u.checkState}`),console.log(`Inspect: openpond datasets read ${u.id} --local --expected-revision ${u.revision} --json`),console.log(`Check graders: openpond datasets check-graders ${u.id} --local --expected-revision ${u.revision}`)}}S(me,"runLocalDatasetsCommand");import{readFile as De}from"node:fs/promises";async function yt(a,r){if(R(a.local))return me(a,r);let[e,s]=r,n=l(a,"team"),i=J(a);if(e==="preparation"){if(!n||!i)throw new Error(`usage: ${M}`);let h=await H(),b=new P({teamId:n,baseUrl:i,apiKey:await N(h,j(h))});return ue(b.preparations,a,r.slice(1))}if(!n||!i||!e||r.length>2||!["upload","save","read","list","validate","publish"].includes(e))throw new Error("usage: datasets <upload|save|read|list|validate|publish> [folder|id] --team <id> --api-base-url <origin> [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--publish] [--project <id>]");let o=await H(),d=new P({teamId:n,baseUrl:i,apiKey:await N(o,j(o))}),m=l(a,"operationId"),w;if(e==="save"){let h=l(a,"inputFile");if(s||!h)throw new Error("Save requires --input-file containing the complete Dataset workspace write request, including its operationId and expectedRevision.");w=await d.save(JSON.parse(await De(h,"utf8")))}else if(e==="list"){if(s)throw new Error("List does not accept a dataset id.");w=await d.list({cursor:l(a,"cursor")||void 0})}else{if(!s)throw new Error(`${e} requires a ${e==="upload"?"folder":"dataset id"}.`);if(e==="read")w=await d.get(s);else if(e==="upload"){if(!m||m.length>220)throw new Error("Upload requires a stable --operation-id of at most 220 characters. Reuse it after an uncertain response.");let h=l(a,"expectedRevision"),b=h?Number(h):0;if(!Number.isSafeInteger(b)||b<0)throw new Error("Expected revision must be a nonnegative integer.");let g=await se({directory:s,teamId:n,expectedRevision:b,datasetId:l(a,"datasetId")||void 0}),y=V({workspace:g.workspace,preparation:null,adapterId:"openpond-hosted-taskset-authoring-v1",now:g.workspace.draft.updatedAt}),f=await d.save({operationId:`${m}:save`,expectedRevision:b,workspace:g.workspace,...l(a,"project")?{originProjectId:l(a,"project")}:{}}),D=await d.get(f.datasetId);if(D.workspace.draft.status==="draft"){let W=await d.validate(f.datasetId,f.revision);if(W.workspaceHash!==g.workspace.contentHash||W.packageHash!==y.contentHash)throw new Error("Hosted validation differs from the captured folder bytes.")}else if(D.publication?.packageHash!==y.contentHash)throw new Error("This dataset was changed after the upload receipt. Read the current version before continuing.");let u=R(a.publish)?await d.publish(f.datasetId,{operationId:`${m}:publish`,expectedRevision:f.revision,workspaceHash:f.workspace.contentHash,packageHash:y.contentHash}):f;w={teamId:n,datasetId:u.datasetId,revision:u.revision,status:u.workspace.draft.status,operationId:m,capturedBytes:g.capturedBytes,sourceHash:g.sourceHash,sourceFiles:g.sourceFiles,workspaceHash:f.workspace.contentHash,packageHash:y.contentHash,publication:u.publication}}else{let h=Number(l(a,"expectedRevision"));if(!Number.isSafeInteger(h)||h<=0)throw new Error(`${e} requires --expected-revision with the retained dataset revision.`);if(e==="validate")w=await d.validate(s,h);else{if(!m)throw new Error("Publish requires a stable --operation-id.");let b=l(a,"workspaceHash"),g=l(a,"packageHash");if(!b||!g)throw new Error("Publish requires --workspace-hash and --package-hash from the retained validation receipt. Keep these pins and the operation id unchanged on retry.");w=await d.publish(s,{operationId:m,expectedRevision:h,workspaceHash:b,packageHash:g})}}}console.log(JSON.stringify(w,null,2))}S(yt,"runDatasetsCommand");export{yt as runDatasetsCommand};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{u as f}from"./chunk-NZDLL6JN.js";import"./chunk-RFQD6B44.js";import{a as c}from"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import"./chunk-JEMECEQH.js";import"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{c as p,f as u}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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 r}from"./chunk-FTQLQJQV.js";import d from"node:path";import{access as v}from"node:fs/promises";import{constants as C}from"node:fs";import{createRequire as P}from"node:module";var l=d.join("scripts","desktop-harness.ts");async function $(n,t){let o=await j({options:n,rest:t}),e=await f(o.command,o.args,{cwd:o.cwd,inherit:!0,timeoutMs:0});if(e.code!==0)throw new m(e.code)}r($,"runDesktopTestCommand");async function j(n){let t=n.options,o=n.rest,e=o[0];if(e!=="run"&&e!=="attach")throw new c(D());let a=o.slice(1);if(a.length===0)throw new c("usage: openpond desktop-test run <scenario...> [options]");let g=p(t,"cwd")||n.cwd||process.cwd(),w=await O(g),k=(n.env??process.env).OPENPOND_NODE_BINARY?.trim()||process.execPath,s=[P(import.meta.url).resolve("tsx/cli"),l,"run",...a],h=x(t,e);return h&&s.push(`--${h}`),i(s,"--app",t,"app"),i(s,"--server",t,"server"),i(s,"--token",t,"token"),i(s,"--token-file",t,"tokenFile"),i(s,"--devtools-port",t,"devtoolsPort"),i(s,"--artifacts-dir",t,"artifactsDir"),H(s,t),i(s,"--grep",t,"grep"),i(s,"--timeout-ms",t,"timeoutMs"),u(t.keepHome)&&s.push("--keep-home"),{command:k,args:s,cwd:w}}r(j,"buildDesktopHarnessInvocation");async function O(n){let t=d.resolve(n);for(;;){let o=d.join(t,l);if(await R(o))return t;let e=d.dirname(t);if(e===t)throw new c(`Could not find ${l}. Run this command from the OpenPond source checkout or pass --cwd <repo>.`);t=e}}r(O,"resolveDesktopHarnessRepoRoot");function x(n,t){let o=t==="attach"?"attach":null;for(let e of["isolated","attach","packaged","none"])if(u(n[e])){if(o&&o!==e)throw new c("Choose only one desktop harness launch mode: --isolated, --attach, --packaged, or --none.");o=e}return o}r(x,"resolveLaunchMode");function i(n,t,o,e){let a=p(o,e);a&&n.push(t,a)}r(i,"appendStringFlag");function H(n,t){let o=p(t,"json"),e=p(t,"jsonPath");if(o&&y(o))throw new c("harness --json requires a report path. Use --json <path> or --json-path <path>.");if(o&&e&&o!==e)throw new c("Use only one JSON report path: --json <path> or --json-path <path>.");let a=o||e;a&&n.push("--json",a)}r(H,"appendJsonFlag");function y(n){return/^(true|false|1|0|yes|no)$/i.test(n)}r(y,"isBooleanLiteral");async function R(n){try{return await v(n,C.R_OK),!0}catch{return!1}}r(R,"fileExists");function D(){return["usage: openpond desktop-test run <scenario...> [options]"," openpond desktop-test attach <scenario...> [options]","","Options include --isolated, --attach, --packaged, --none, --app <path>,","--server <url>, --token <token>, --token-file <path>, --devtools-port <port>, --artifacts-dir <path>,","--json <path>, --json-path <path>, --grep <pattern>, --timeout-ms <ms>,","--keep-home, and --cwd <repo>."].join(`
|
|
3
|
-
`)}r(D,"desktopHarnessCliUsage");var m=class extends Error{static{r(this,"HarnessCommandFailedError")}exitCode;constructor(t){let o=typeof t=="number"&&t>0?t:1;super(`desktop harness failed with exit code ${o}`),this.name="HarnessCommandFailedError",this.exitCode=o}};export{j as buildDesktopHarnessInvocation,O as resolveDesktopHarnessRepoRoot,$ as runDesktopTestCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as p,b as v}from"./chunk-XT4CSKHM.js";import"./chunk-NZDLL6JN.js";import"./chunk-RFQD6B44.js";import"./chunk-R4EEGWXB.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import"./chunk-JEMECEQH.js";import{s as d,t as s,u as h,v as w}from"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{c as r}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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 m}from"./chunk-FTQLQJQV.js";async function b(t,e,n){let[a,o]=n,i=r(e,"actor");if(!i||!a||n.length>2)throw new Error("Select --actor, --team and an evaluation command.");if(e.local!==!0&&e.local!=="true")throw new Error("These evaluation owners currently run through the authenticated native bridge. Select --local --server-url with its loopback origin.");let c={...await v(e),actorId:i,projectId:r(e,"project")||null},l=a==="request"?await p(e):a==="list"?t==="schedule"?{operation:a,...r(e,"cursor")?{cursor:r(e,"cursor")}:{},limit:Number(r(e,"limit")||50)}:{operation:a}:{operation:a,id:o};if((a==="request"||a==="list")&&o)throw new Error("This operation does not accept an additional resource id.");let u=AbortSignal.timeout(6e4),f=t==="schedule"?await new s(c).command(d.parse(l),u):await new w(c).command(h.parse(l),u);console.log(JSON.stringify(f,null,2))}m(b,"runEvaluationCoordinationCommand");export{b as runEvaluationCoordinationCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as s,b as l}from"./chunk-XT4CSKHM.js";import"./chunk-NZDLL6JN.js";import"./chunk-RFQD6B44.js";import"./chunk-R4EEGWXB.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import"./chunk-JEMECEQH.js";import{q as m,r as c}from"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{c as e}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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}from"./chunk-FTQLQJQV.js";async function f(t,i){let[r,o]=i,n=e(t,"actor");if(!n||!r||i.length>2)throw new Error("usage: improve <list|read|instructions|request> [id] --team <id> --actor <owner-id> [--input-file <path>] [--local --server-url <loopback-origin>]");let u=m.parse(r==="request"?await s(t):r==="list"?{operation:r,limit:Number(e(t,"limit")||30),...e(t,"cursor")?{cursor:e(t,"cursor")}:{}}:{operation:r,id:o});if(r==="request"&&o||r==="list"&&o)throw new Error("This operation does not accept a candidate id.");let d=new c({...await l(t),actorId:n});console.log(JSON.stringify(await d.command(u,AbortSignal.timeout(6e4)),null,2))}a(f,"runExperimentImprovementsCommand");export{f as runExperimentImprovementsCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as Y,b as v,d as ae}from"./chunk-DDOIPTOM.js";import"./chunk-NZDLL6JN.js";import{c as W}from"./chunk-RFQD6B44.js";import{a as A,d as k}from"./chunk-R4EEGWXB.js";import{El as J,Fl as V,im as B}from"./chunk-6D3FI2XT.js";import"./chunk-NSSZ2ZIU.js";import"./chunk-4KTGYHCE.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import{Bd as Z,cf as ee,ff as te}from"./chunk-VEBW7NKD.js";import"./chunk-W45RKGM6.js";import"./chunk-AUO5DCEU.js";import"./chunk-Y4I6CFZJ.js";import"./chunk-PAYFJHPO.js";import"./chunk-WD4KAKEX.js";import{J as K}from"./chunk-2PXKSAG6.js";import"./chunk-ULTV6INR.js";import"./chunk-WGQ3FMRF.js";import"./chunk-JXLDEYRW.js";import"./chunk-JVMSN7LH.js";import{q as N}from"./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-JEMECEQH.js";import{n as Q,o as X}from"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import{d as G}from"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.js";import"./chunk-KP2MYTP5.js";import"./chunk-PNPV2LDE.js";import"./chunk-4G3GTEVS.js";import"./chunk-KU4TPDPH.js";import{m as M,q as z}from"./chunk-55YD4UTW.js";import"./chunk-AFYYIJ6K.js";import"./chunk-J256AEEE.js";import"./chunk-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{Fb as F}from"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-RRWL5BHZ.js";import{c as U,f as $}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as n,f as T}from"./chunk-3M53YXEI.js";import{b as D}from"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{h as _,n as H}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-NXN7GJOH.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as g}from"./chunk-FTQLQJQV.js";import{readFile as O,stat as j}from"node:fs/promises";var y=e.string().trim().min(1).max(500),re=e.string().regex(/^[a-f0-9]{64}$/),ue=e.object({schemaVersion:e.literal("openpond.experimentCaseInspection.v1"),teamId:y,executionId:y,manifestHash:re,receiptId:y,taskId:y,seed:e.string().min(1),input:e.record(e.string(),e.unknown()).nullable(),output:e.unknown().nullable(),error:e.string().nullable(),events:e.array(e.record(e.string(),e.unknown())).max(25),nextEventCursor:y.nullable(),eventCount:e.number().int().nonnegative()}).strict(),me=ue.extend({contentHash:re}).strict(),L=class{constructor(s){this.options=s;let a=new URL(s.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=a.toString().replace(/\/+$/,"")}options;static{g(this,"OpenPondExperimentInspectionClient")}baseUrl;async case(s,a,t={}){let l=new URLSearchParams(t.afterId?{afterId:y.parse(t.afterId)}:{}),p=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(y.parse(s))}/cases/${encodeURIComponent(y.parse(a))}?${l}`,{signal:t.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),w=await p.json();if(!p.ok)throw new Error(e.object({message:e.string()}).parse(w).message);let d=me.parse(w),{contentHash:o,...i}=d;if(H(i)!==o||d.teamId!==this.options.teamId||d.executionId!==s||d.receiptId!==a||t.manifestHash&&d.manifestHash!==t.manifestHash||d.events.length>d.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return d}};import{readFile as Re,stat as le}from"node:fs/promises";var R=e.string().trim().min(1).max(240),pe=e.object({location:e.literal("local").default("local"),jobId:R,modelRunId:R,modelId:R,modelVersionId:R.nullable(),adapterArtifactLineageId:R.nullable(),owner:e.object({teamId:R,actorId:R}).strict(),taskset:_,state:e.enum(["prepared","running","succeeded","failed","cancelled"]),executionState:e.enum(["queued","starting","running","cancelling","cancelled","succeeded","failed","reconciling"]),updatedAt:e.iso.datetime()}).strict(),fe=e.object({location:e.literal("cloud"),jobId:R,owner:e.object({teamId:R,actorId:R}).strict(),apiOrigin:e.url(),job:K,updatedAt:e.iso.datetime()}).strict().refine(r=>r.jobId===r.job.id&&r.owner.teamId===r.job.teamId&&r.updatedAt===r.job.updatedAt,"Hosted training attachment must match its canonical job."),ne=e.union([pe,fe]);var u=e.string().trim().min(1).max(240),I=e.string().regex(/^[a-f0-9]{64}$/),he=e.object({kind:e.enum(["structure","graders"]),revision:e.number().int().positive(),workspaceHash:I,status:e.enum(["passed","failed","unavailable"]),checkedAt:e.iso.datetime(),checked:e.number().int().nonnegative(),total:e.number().int().nonnegative(),issues:e.array(e.object({code:e.string(),message:e.string(),taskId:u.optional(),graderId:u.optional()})).max(1e4),scopes:e.array(e.object({graderId:u,checked:e.number().int().nonnegative(),total:e.number().int().nonnegative(),status:e.enum(["passed","failed","unavailable"])}).strict()).max(1e3).optional()}).strict(),ge=e.object({apiOrigin:e.url(),actorId:u,teamId:u,datasetId:u,remoteRevision:e.number().int().nonnegative(),acknowledgedHash:I.nullable(),remoteHash:I.nullable(),pendingLocalHash:I.nullable(),paused:e.boolean(),status:e.enum(["pending","syncing","synced","retry","conflict","paused"]),error:e.string().nullable(),operationId:u.nullable(),pendingWorkspace:N.nullable(),beginVersionOperationId:u.nullable().optional(),publicationIntent:e.object({operationId:u,expectedRevision:e.number().int().positive(),workspaceHash:I,packageHash:I,localHash:I}).strict().nullable().optional()}).strict(),ze=e.object({schemaVersion:e.literal("openpond.localDataset.v1"),ownerId:u,projectId:u.nullable(),workspace:N,checks:e.array(he).max(2),packageHash:I.nullable(),sync:ge.nullable()}).strict(),E=e.object({kind:e.enum(["dataset","grader","experiment"]),id:u,revision:e.number().int().positive(),name:e.string().max(500),state:e.string().max(100),datasetId:u.optional(),datasetRevision:e.number().int().positive().optional(),taskCount:e.number().int().nonnegative().optional(),graderCount:e.number().int().nonnegative().optional(),checkState:e.string().optional(),syncState:e.string().optional(),model:e.string().optional(),evaluationHash:I.optional(),graderId:u.optional(),graderType:e.string().optional(),description:e.string().optional(),location:e.enum(["local","cloud"]).optional(),scoreLabel:e.string().optional(),owner:e.object({teamId:u,actorId:u}).strict().optional(),contentHash:I.optional(),profileRef:Y.optional(),score:e.number().nullable().optional(),costUsd:e.number().nonnegative().nullable().optional(),evaluatedCount:e.number().int().nonnegative().optional(),failedCount:e.number().int().nonnegative().optional(),qualityFailureCount:e.number().int().nonnegative().optional(),executionFailureCount:e.number().int().nonnegative().optional(),ungradedCount:e.number().int().nonnegative().optional(),rows:e.array(e.object({id:u,label:e.string(),detail:e.string(),score:e.number().nullable().optional()})).max(10)}).strict(),ie=e.object({id:u,ordinal:e.number().int().positive(),name:e.string().trim().min(1).max(500),draft:ee.optional(),storedDraft:te.optional(),draftRevision:e.number().int().positive().optional(),creationHash:I.optional(),dataset:E.nullable(),evaluationModel:e.string().min(1).max(500).optional(),executionLocation:e.enum(["local","cloud"]).optional(),graders:e.array(E),selectedGraderId:u.nullable(),runs:e.array(E),selectedRunId:u.nullable(),training:e.array(ne).optional(),selectedTrainingKey:e.string().max(4e3).nullable().optional(),selectedTrainingJobId:u.nullable().optional(),results:e.array(Z).max(16).optional(),turnIds:e.array(u),operationId:u,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).strict(),we=ie.extend({ordinal:e.null()}),Je=e.object({datasetFocus:we.optional(),scopes:e.array(ie),activeScopeId:u.nullable(),selectionVersion:e.number().int().nonnegative(),selectedAt:e.iso.datetime().nullable(),selectionOperations:e.record(e.string(),e.object({hash:I,version:e.number().int().nonnegative(),visualPublicationId:e.string().optional(),resource:E.optional()}).strict()).default({})}).strict();var Ve=e.object({action:e.enum(["schema","list","read","create","save","file","validate","check_graders","check_sources","package","import","inspect_source","import_source","upload","sync","pause_sync","disconnect_sync","related_chats","list_graders","read_grader","save_grader","test_grader","publish"]),id:u.optional(),operationId:u.optional(),expectedRevision:e.number().int().nonnegative().optional(),payload:e.record(e.string(),e.unknown()).default({})}).strict(),Be=e.object({contentHash:I,scope:e.string(),graders:e.unknown(),cases:e.array(e.object({id:u,taskId:u,seed:e.string(),status:e.string(),output:e.string().nullable(),error:e.string().nullable(),score:e.number().nullable()}).strict()).max(1e4)}).strict();function oe(r){let s=r&&typeof r=="object"?r:{},a=[s.summary,...Array.isArray(s.summaries)?s.summaries:[]].flatMap(t=>{let l=E.safeParse(t);return l.success?[l.data]:[]});if(a.length){for(let t of a)console.log(`${t.name} \xB7 ${t.state}`),console.log(`${t.id} \xB7 ${t.location??"local"} \xB7 Dataset ${t.datasetId} version ${t.datasetRevision} \xB7 ${t.model}`),console.log(`${t.scoreLabel??"Mean task score"}: ${t.score==null?"Unavailable":(t.score*100).toFixed(1)+"%"} \xB7 Graded: ${t.evaluatedCount??0}/${t.taskCount??0} \xB7 Cost: ${t.costUsd==null?"Unavailable":"$"+t.costUsd.toFixed(4)}`),console.log(`Quality failures: ${t.qualityFailureCount??0} \xB7 Execution failures: ${t.executionFailureCount??0} \xB7 Ungraded: ${t.ungradedCount??t.taskCount??0}`),t.rows.length&&console.table(t.rows.map(l=>({Task:l.label,Outcome:l.detail,Score:l.score==null?"Unavailable":(l.score*100).toFixed(1)+"%"}))),console.log(`Results: openpond experiments result ${t.id} --local`);Array.isArray(s.items)&&console.table(s.items.flatMap(t=>{let l=v.safeParse(t);return l.success?[{ID:l.data.id,Name:l.data.configuration.request.name,Model:l.data.model.modelId,Status:l.data.status}]:[]}));for(let t of Array.isArray(s.errors)?s.errors:[])console.log(`Admission failed: ${t.modelId} \xB7 ${t.message}`);return}if(Array.isArray(s.models)){console.table(s.models);return}if(Array.isArray(s.items)){console.table(s.items.flatMap(t=>{let l=v.safeParse(t);return l.success?[{ID:l.data.id,Name:l.data.configuration.request.name,Model:l.data.model.modelId,Status:l.data.status}]:[]}));return}console.log(JSON.stringify(r,null,2))}g(oe,"printLocalExperimentResult");import{readFile as be,stat as xe}from"node:fs/promises";var q={"profile-catalog":"/v1/profile/evaluations","prepare-profile":"/v1/profile/evaluations/prepare","run-profile":"/v1/profile/evaluations/run","inspect-profile":"/v1/profile/evaluations/discover"};async function se(r,s){let a=s[0];if(!a||!Object.hasOwn(q,a))return!1;if(s.length!==1||r.team||r.revision||r.contentHash)throw new Error("Profile experiments accept one action and exact selection in --input-file; ownership is resolved by the running installation.");let t=new URL(n(r,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||A);if(t.protocol!=="http:"||!["localhost","127.0.0.1"].includes(t.hostname)||t.username||t.password||t.search||t.hash||t.pathname!=="/")throw new Error("Local Profile experiments require an HTTP loopback server origin.");let l=n(r,"inputFile"),p;if(l){let c=await xe(l);if(!c.isFile()||c.size>1048576)throw new Error("Profile selection input must be a file within one MiB.");let b=JSON.parse(await be(l,"utf8"));if(!b||typeof b!="object"||Array.isArray(b))throw new Error("Profile selection input must be an object.");p=b}else if(a!=="profile-catalog")throw new Error(`${a} requires --input-file with the exact Profile or run selection.`);let w=a==="profile-catalog"&&p?q["inspect-profile"]:q[a],o=await(await k(t.origin,{maximumResponseBytes:32*1024*1024,timeoutMs:a==="run-profile"||a==="prepare-profile"?12e5:6e4}))(new URL(w,t),{method:p?"POST":"GET",...p?{headers:{"content-type":"application/json"},body:JSON.stringify({...p,...["prepare-profile","run-profile","inspect-profile"].includes(a)&&process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{}})}:{}}),i=await o.json();if(!o.ok){let c=i&&typeof i=="object"&&"error"in i?i.error:void 0;throw new Error(typeof c=="string"?c:`Local Profile experiment request failed (${o.status}).`)}return console.log(JSON.stringify(i,null,2)),!0}g(se,"runLocalProfileExperimentCommand");import{readFile as Ie,stat as Se}from"node:fs/promises";async function ce(r,s,a,t,l){let[p,w]=s;if(!["record-modification","modification","modifications"].includes(p??""))return!1;if(!l)throw new Error("Local observation operations require --team <workspace-id>.");let d=B({baseUrl:a,fetch:t}),o;if(p==="record-modification"&&s.length===1){let i=n(r,"inputFile"),c=i?await Se(i):null;if(!i||!c?.isFile()||c.size>J)throw new Error("Provide --input-file <command.json> containing a recording request of at most 8 MiB.");let b=V.parse(JSON.parse(await Ie(i,"utf8")));if(b.teamId!==l)throw new Error("The recording request belongs to another workspace.");o=await d.recordModificationObservation(b)}else if(p==="modification"&&w&&s.length===2)o=await d.modificationRecording(w,{teamId:l});else if(p==="modifications"&&s.length===1){let i=n(r,"project"),c=n(r,"search"),b=n(r,"cursor"),m=n(r,"limit");o=await d.modificationRecordings({teamId:l,...i?{projectId:i}:{},...c?{search:c}:{},...b?{cursor:b}:{},...m?{limit:Number(m)}:{}})}else throw new Error("Use experiments record-modification --input-file <command.json>, modification <id>, or modifications, with --local --team <id>.");return console.log(JSON.stringify(o,null,2)),!0}g(ce,"runLocalModificationRecordingCommand");async function de(r,s){if(await se(r,s))return;let[a,t,l]=s,p=n(r,"team"),w=n(r,"receiptId");if(a==="case"&&(!t||s.length!==2||!w))throw new Error("Usage: experiments case <run-id> --local --receipt-id <retained-receipt-id> [--after-sequence <n>] [--limit <1..500>] --json. A task id is not a receipt id; find receiptId in experiments result <run-id> --local --json (independent runs: evidence.cases[].receiptId).");if(r.revision!==void 0)throw new Error("A local Experiment is one immutable run; read it by id rather than a saved configuration revision.");if(a!=="read"&&r.contentHash!==void 0)throw new Error("An exact configuration hash requires the local read action.");if(!a||s.length>(a==="compare"?3:2))throw new Error("Local Experiments require an action; use --server-url for an existing local server.");let d=n(r,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||A,o=new URL(d);if(o.protocol!=="http:"||!["localhost","127.0.0.1"].includes(o.hostname)||o.username||o.password||o.search||o.hash||o.pathname!=="/")throw new Error("Local Experiments require an HTTP loopback server origin.");let i=await k(o.origin,{timeoutMs:["prepare-harness","run"].includes(a)?12e5:6e4});if(await ce(r,s,o.origin,i,p))return;async function c(h,x){let f=await i(new URL(p?"/v1/local-experiments":"/v1/chat-experiments",o),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...p?{teamId:p}:{},...process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{},action:h,payload:x})}),S=await f.json();if(!f.ok)throw new Error(typeof S.error=="string"?S.error:`Local Experiment request failed (${f.status}).`);return S}g(c,"command");async function b(){let h=n(r,"inputFile");if(!h||!(await le(h)).isFile()||(await le(h)).size>67108864)throw new Error("Provide a bounded --input-file with exact local configuration and retained package bytes.");return JSON.parse(await Re(h,"utf8"))}g(b,"input");let m;if(!p){if(a==="models")m=await c("models",{});else if(a==="run"||a==="run-cloud")m=await c(a.replaceAll("-","_"),await b());else if(a==="list"){let h=n(r,"afterId"),x=n(r,"limit");m=await c("list",{...h?{afterId:h}:{},...x?{limit:Number(x)}:{}})}else if(a==="compare"&&t&&l)m=await c("compare",{baselineId:t,candidateId:l});else if(a==="case"&&t&&w){let h=n(r,"afterSequence"),x=n(r,"limit");m=await c("case",{id:t,receiptId:w,...h?{afterSequence:Number(h)}:{},...x?{limit:Number(x)}:{}})}else if(t&&["read","status","cancel","result"].includes(a))m=await c(a,{id:t});else throw new Error("Independent local Experiments support models/run/list/read/status/cancel/result/compare/case. Workspace operations require --team.");T(r.json)?console.log(JSON.stringify(m,null,2)):oe(m);return}if(a==="prepare-harness"){if(t)throw new Error("Local Profile preparation accepts --input-file rather than an id.");m=await c("prepareHarness",await b())}else if(a==="run"){if(t)throw new Error("Local Run accepts reviewed configuration through --input-file rather than an id.");let h=await b();m=await c(h.package?"run":"runFromRelease",h)}else if(a==="list"){if(t)throw new Error("Local List does not accept an id.");let h=n(r,"status"),x=n(r,"limit"),f=n(r,"project"),S=n(r,"afterId"),C=n(r,"datasetHash"),P=n(r,"search");m=await c("list",{...h?{status:h}:{},...f?{projectId:f}:{},...C?{datasetHash:C}:{},...P?{search:P}:{},...S?{afterId:S}:{},...x?{limit:Number(x)}:{}})}else{if(!t)throw new Error(`${a} requires a local Experiment or scoring pass id.`);let h=n(r,"afterId"),x=n(r,"limit");if(a==="duplicate"){let f=n(r,"operationId");if(!f)throw new Error("Duplicate requires --operation-id for safe replay.");let S=v.parse(await c("read",{id:t})),C=z.parse({...S.configuration,operationId:f,request:{...S.configuration.request,operationId:f},sourceExperimentId:S.id});m=await c("runFromRelease",{configuration:C,expectedPackageHash:S.packageHash})}else if(a==="passes")m=await c("passes",{executionId:t,...h?{afterId:h}:{},...x?{limit:Number(x)}:{}});else if(a==="case"){let f=n(r,"afterSequence");m=await c("case",{id:t,receiptId:w,...f?{afterSequence:Number(f)}:{},...x?{limit:Number(x)}:{}})}else if(a==="score"){let f=await b();if(f.execution?.id!==t)throw new Error("Local scoring input belongs to a different retained execution.");m=await c("score",f)}else if(a==="compare"){if(!l)throw new Error("Local Compare requires baseline and candidate execution ids.");let f=ae.parse(await c("compare",{baselineId:t,candidateId:l}));m={...f,comparison:F(f.baseline,f.candidate)}}else if(a==="read"){let f=n(r,"contentHash");m=await c("read",{id:t,...f?{configurationHash:f}:{}})}else if(["status","cancel","result","pass"].includes(a))m=await c(a,{id:t});else if(a==="cancel-pass")m=await c("cancel",{id:t});else if(a==="pass-result")m=await c("result",{id:t});else throw new Error(`Local Experiment action is unavailable: ${a}`)}console.log(JSON.stringify(m,null,2))}g(de,"runLocalExperimentsCommand");async function vt(r,s){if(s[0]==="signal-plan"||s[0]==="signal-report")return(await import("./experiments-signal-L32D36NH.js")).runExperimentsSignalCommand(r,s);if(r.local===!0||r.local==="true")return de(r,s);if(r.revision!==void 0||r.contentHash!==void 0)throw new Error("Experiments retain their immutable configuration on the run; definition revisions are not selectable.");let[a,t]=s,l=n(r,"team");if(!l||!a||s.length>(a==="compare"?3:2))throw new Error("usage: experiments <defaults|create-comparison|comparison-budget|prepare-harness|run|read|list|status|diagnostics|cancel|duplicate|score|passes|pass|cancel-pass|pass-result|result|compare|case> [id] [candidate-id] --team <id> [--input-file <path>] [--operation-id <id>]");let p=await G(),w={teamId:l,apiKey:await W(p,$(p)),baseUrl:U(r)??p.apiBaseUrl??D},d=new X(w),o;if(a==="defaults"){if(t)throw new Error("Defaults does not accept an id.");o=await d.defaults()}else if(a==="create-comparison"){let i=n(r,"inputFile");if(!i||t||(await j(i)).size>1048576)throw new Error("Create comparison requires a bounded input file with an id, fresh operationIds and optional maximumSpendUsd.");o=await d.createComparisonBudget(JSON.parse(await O(i,"utf8")))}else if(a==="comparison-budget"){if(!t)throw new Error("Comparison budget requires an id.");o=await d.comparisonBudget(t)}else if(a==="prepare-harness"){let i=n(r,"inputFile");if(!i||t||(await j(i)).size>1048576)throw new Error("Harness preparation requires a bounded --input-file with its released target, model and optional ceiling.");o=await d.prepareHarness(JSON.parse(await O(i,"utf8")))}else if(a==="run"){let i=n(r,"inputFile");if(!i||t)throw new Error("Run requires --input-file with the reviewed configuration and stable operationId.");if((await j(i)).size>1048576)throw new Error("Experiment input exceeds one MiB.");o=await d.run(JSON.parse(await O(i,"utf8")))}else if(a==="list"){if(t)throw new Error("List does not accept an Experiment id.");let i=n(r,"limit");o=await d.list(M.parse({projectId:n(r,"project")||void 0,datasetHash:n(r,"datasetHash")||void 0,search:n(r,"search")||void 0,status:n(r,"status")||void 0,afterId:n(r,"afterId")||void 0,...i?{limit:Number(i)}:{}}))}else{if(!t)throw new Error(`${a} requires an id.`);if(a==="read")o=await d.get(t);else if(a==="status")o=await d.get(t);else if(a==="diagnostics"){let i=await d.get(t),c=n(r,"afterSequence");o=await d.diagnostics(t,{manifestHash:i.manifest.contentHash,...c?{afterSequence:Number(c)}:{},afterCallId:n(r,"afterCallId")||void 0})}else if(a==="cancel")o=await d.cancel(t);else if(a==="duplicate"){let i=n(r,"operationId");if(!i)throw new Error("Duplicate requires a stable --operation-id for the new Experiment.");o=await d.duplicate(t,i)}else if(a==="score"){let i=n(r,"inputFile");if(!i||(await j(i)).size>1048576)throw new Error("Score requires --input-file containing an exact execution reference, grader releases and explicit ceiling, within one MiB.");let c=Q.parse(JSON.parse(await O(i,"utf8")));if(c.execution.id!==t)throw new Error("Scoring input belongs to a different execution.");o=await d.score(c)}else if(a==="passes")o=await d.scoringPasses(t,{afterId:n(r,"afterId")||void 0});else if(a==="pass")o=await d.scoringPass(t);else if(a==="cancel-pass")o=await d.cancelScoringPass(t);else if(a==="pass-result")o=await d.scoringResult(t);else if(a==="result")o=await d.result(t);else if(a==="case"){let i=n(r,"receiptId");if(!i)throw new Error("Case inspection requires --receipt-id from the retained Experiment.");let c=await d.get(t);o=await new L(w).case(t,i,{manifestHash:c.manifest.contentHash,afterId:n(r,"afterId")||void 0})}else if(a==="compare"){if(!s[2])throw new Error("Compare requires a baseline and candidate execution id.");o=await d.compare(t,s[2])}else throw new Error(`Unknown Experiment action: ${a}`)}console.log(JSON.stringify(o,null,2))}g(vt,"runExperimentsCommand");export{vt as runExperimentsCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{b as N,c as A}from"./chunk-DDOIPTOM.js";import"./chunk-NZDLL6JN.js";import"./chunk-RFQD6B44.js";import"./chunk-VJR2GNRY.js";import"./chunk-4KTGYHCE.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import"./chunk-W45RKGM6.js";import"./chunk-AUO5DCEU.js";import"./chunk-Y4I6CFZJ.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-JEMECEQH.js";import"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.js";import"./chunk-KP2MYTP5.js";import"./chunk-PNPV2LDE.js";import"./chunk-4G3GTEVS.js";import{O}from"./chunk-KU4TPDPH.js";import{p as F}from"./chunk-55YD4UTW.js";import"./chunk-AFYYIJ6K.js";import"./chunk-J256AEEE.js";import"./chunk-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{Ja as z,da as M}from"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as C}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as i,o as _}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as c}from"./chunk-X2J2P5ZT.js";import{a as x}from"./chunk-FTQLQJQV.js";import{readFile as $,stat as G}from"node:fs/promises";import{dirname as L,resolve as b}from"node:path";var H=c.string().regex(/^[a-f0-9]{64}$/),P=c.object({groupSize:c.number().int().min(2).max(100),minimumFamilies:c.number().int().min(2).max(1e3),minimumInformativeFamilies:c.number().int().min(2).max(1e3),minimumSpread:c.number().positive().max(1),minimumScoredFraction:c.number().positive().max(1)}).strict().refine(s=>s.minimumInformativeFamilies<=s.minimumFamilies,"Informative family requirement cannot exceed the minimum family population."),D=c.object({schemaVersion:c.literal("openpond.experimentSignalPlan.v1"),createdAt:c.iso.datetime(),preparation:F,packageHash:H,graders:c.array(M).min(1).max(100),tasks:c.array(c.object({id:c.string(),family:c.string(),taskHash:H,inputHash:H,contextHash:H}).strict()).min(1).max(1e4),thresholds:P}).strict(),j=D.extend({contentHash:H}).strict();function R(s){let n=j.parse(s),{contentHash:a,...p}=n;if(i(p)!==a)throw new Error("Signal plan content changed.");let{request:t,manifest:r,graders:m}=n.preparation;_(r,"Signal preparation manifest");let o=t.policy;if(o.kind!=="hosted_harness"||r.execution.kind!=="harness"||r.policy.kind!=="model"||r.runtimeTarget.placement!=="local"||r.gradingRole!=="evaluation"||i(r.profileEvaluation??null)!==i(o.source)||i(r.execution.harnessRelease)!==i(o.source.harnessRelease)||r.packageHash!==o.packageHash||r.policy.configurationHash!==o.modelConfigurationHash||r.policy.model.provider!=="openpond"||r.policy.model.model!==o.modelId||r.policy.model.revision!==null||r.policy.model.artifactHash!==(o.candidate?.contentHash??null)||r.policy.model.tokenizerRevision!==null||r.policy.model.chatTemplateHash!==null||r.tasksetRelease.id!==t.taskset.id||r.tasksetRelease.contentHash!==t.taskset.contentHash||i(r.population)!==i(t.population)||r.limits.maximumSpendUsd!==n.preparation.maximumCostUsd||r.metadata.profileRepositoryId!==void 0&&r.metadata.profileRepositoryId!==o.profileRepositoryId)throw new Error("Signal preparation differs from its native local source, package, model, budget or population.");for(let d of r.population){let g=o.source.externalDatasetBinding?[r.id,d.taskId,d.seed,d.fixtureId]:[r.id,d.taskId,d.seed];if(d.receiptId!==`evaluation-${i(g).slice(0,32)}`)throw new Error("Signal preparation receipt identity changed.")}if(t.policy.kind!=="hosted_harness"||t.policy.localRuntime||t.policy.packageHash!==n.packageHash)throw new Error("Signal plan requires the exact hosted-chat Harness package.");if(new Set(n.tasks.map(d=>d.id)).size!==n.tasks.length||new Set(m.map(d=>d.id)).size!==m.length||n.graders.length!==m.length)throw new Error("Signal plan contains duplicate or missing tasks/graders.");for(let[d,g]of n.graders.entries()){let f=m[d];if(f.id!==g.id||f.version!==g.version||f.contentHash!==i(g)||g.hardGate||!g.rewardEligible||g.weight<=0||g.taskIds||f.mappings?.length)throw new Error("Signal requires exact positive-weight reward graders, no hard gates, field mappings or task-specific grader subsets.")}let S=new Map;for(let d of t.population)S.set(d.taskId,(S.get(d.taskId)??0)+1);if(S.size!==n.tasks.length||n.tasks.some(d=>S.get(d.id)!==n.thresholds.groupSize))throw new Error("Every planned prompt must have exactly groupSize distinct seeded attempts.");if(new Set(n.tasks.map(d=>d.family)).size<n.thresholds.minimumFamilies)throw new Error("Signal population has too few independent source families.");return n}x(R,"verifySignalPlan");function T(s){let n=O(s.package),a=F.parse(s.preparation),p=new Set(a.request.population.map(o=>o.taskId)),t=n.taskset.tasks.filter(o=>p.has(o.id));if(t.length!==p.size||t.some(o=>o.split!=="train"))throw new Error("Signal probes require existing training tasks; validation/test/frozen holdouts cannot be reused.");if(a.request.taskset.id!==n.taskset.id||a.request.taskset.contentHash!==n.taskset.contentHash)throw new Error("Prepared taskset differs from the supplied package.");let r=a.graders.map(o=>{let S=n.taskset.graders.find(d=>d.id===o.id&&i(d)===o.contentHash);if(!S)throw new Error(`Selected grader is absent from the exact package: ${o.id}`);return S}),m=D.parse({schemaVersion:"openpond.experimentSignalPlan.v1",createdAt:s.createdAt??new Date().toISOString(),preparation:a,packageHash:n.contentHash,graders:r,tasks:t.map(o=>({id:o.id,family:o.clusterKey,taskHash:i(o),inputHash:i(o.input),contextHash:i(o.policyVisibleContext)})),thresholds:s.thresholds});return R({...m,contentHash:i(m)})}x(T,"createSignalPlan");function U(s){if(!s.length)return{count:0,min:null,max:null,mean:null,standardDeviation:null,spread:null};let n=s.reduce((a,p)=>a+p,0)/s.length;return{count:s.length,min:Math.min(...s),max:Math.max(...s),mean:n,standardDeviation:Math.sqrt(s.reduce((a,p)=>a+(p-n)**2,0)/s.length),spread:Math.max(...s)-Math.min(...s)}}x(U,"scoreDistribution");function V(s,n){let a=R(s),p=A.parse(n),t=N.parse(p.execution);if(i({execution:p.execution,cases:p.cases})!==p.contentHash)throw new Error("Signal result content changed.");if(t.packageHash!==a.packageHash||i(t.configuration.request)!==i(a.preparation.request)||i(t.graders)!==i(a.preparation.graders)||t.maximumCostUsd!==a.preparation.maximumCostUsd)throw new Error("Signal result differs from the frozen request, package, graders or budget.");if(Date.parse(t.createdAt)<Date.parse(a.createdAt))throw new Error("Signal plan must precede the execution.");let r=a.preparation.request.policy;if(r.kind!=="hosted_harness"||t.model.providerId!=="openpond"||t.model.modelId!==r.modelId||t.model.maxOutputTokens!==(r.maxOutputTokens??4096)||t.model.temperature!==(r.temperature??0)||t.model.topP!==(r.topP??1))throw new Error("Signal execution model or sampling differs from the frozen policy.");for(let e of["pending","running","completed","failed","cancelled","unknown"])if(t.counts[e]!==p.cases.filter(w=>w.status===e).length)throw new Error("Signal execution counts differ from its cases.");let m=new Map(a.preparation.request.population.map(e=>[e.receiptId,e]));if(p.cases.length!==m.size||new Set(p.cases.map(e=>e.receiptId)).size!==m.size)throw new Error("Signal result omits or duplicates planned attempts.");let o=new Map(a.tasks.map(e=>[e.id,e])),S=i(a.preparation.graders);for(let e of p.cases){let w=m.get(e.receiptId),k=o.get(e.taskId);if(!w||!k||w.taskId!==e.taskId||w.seed!==e.seed||i(e.input)!==k.inputHash||i(e.policyVisibleContext)!==k.contextHash)throw new Error("Signal case differs from its frozen prompt, context or seed.");if(e.status==="completed"&&(!e.profileNative||e.output===null||e.profileNative.modelConfigurationHash!==t.model.configurationHash||i(e.profileNative.source)!==i(r.source)||e.profileNative.outputHash!==i(e.output)))throw new Error("Signal case lacks matching native source, model or output evidence.");if(!e.grade)continue;if(e.grade.selectionHash!==S)throw new Error("Signal grade uses different selected graders.");if(e.grade.grades.some(u=>u.taskHash!==k.taskHash)||new Set(e.grade.grades.map(u=>u.evidenceHash)).size!==1)throw new Error("Signal criterion belongs to another prompt or inconsistent attempt evidence.");let y=e.grade.grades.flatMap(u=>u.components),E=z({graders:a.graders,components:y});for(let u of["score","passed","rewardEligible","gradingStatus","failureClass"])if(e.grade[u]!==E[u])throw new Error("Signal score differs from retained components and frozen weights.");for(let u of e.grade.grades){let l=a.graders.find(h=>h.id===u.components[0]?.graderId);if(u.graderSetHash!==i([l]))throw new Error("Signal criterion specification changed.");let I=z({graders:[l],components:u.components});for(let h of["score","passed","rewardEligible","gradingStatus","failureClass"])if(u[h]!==I[h])throw new Error("Signal criterion summary differs from its evidence.")}}let d=a.tasks.map(e=>{let w=p.cases.filter(l=>l.taskId===e.id),k=w.filter(l=>l.status==="completed"&&l.grade?.gradingStatus==="scored"&&l.grade.rewardEligible&&l.grade.score!==null),y=U(k.map(l=>l.grade.score)),E=k.length/w.length,u=a.graders.map(l=>({id:l.id,weight:l.weight,distribution:U(k.flatMap(I=>I.grade.grades.flatMap(h=>h.components).filter(h=>h.graderId===l.id&&h.rewardEligible&&h.score!==null).map(h=>h.score)))}));return{taskId:e.id,family:e.family,attempts:w.length,eligible:k.length,scoredFraction:E,combined:y,components:u,constant:y.spread!==null&&y.spread<=Number.EPSILON,uniqueOutputs:new Set(w.filter(l=>l.output!==null).map(l=>i(l.output))).size,informative:E>=a.thresholds.minimumScoredFraction&&(y.spread??0)>=a.thresholds.minimumSpread,outcomes:w.map(l=>({receiptId:l.receiptId,seed:l.seed,status:l.status,gradingStatus:l.grade?.gradingStatus??null,failureClass:l.grade?.failureClass??null,rewardEligible:l.grade?.rewardEligible??!1,score:l.grade?.score??null}))}}),g=[...new Set(d.filter(e=>e.informative).map(e=>e.family))],f=[];(t.status!=="completed"||!t.cleanupComplete)&&f.push("execution_or_local_cleanup_incomplete"),(t.usage.uncertainRequests||t.usage.costUsd===null||t.usage.heldUsd)&&f.push("cost_or_reservations_unsettled"),d.some(e=>e.scoredFraction<a.thresholds.minimumScoredFraction)&&f.push("insufficient_scored_coverage"),g.length<a.thresholds.minimumInformativeFamilies&&f.push("insufficient_within_prompt_signal");let q={schemaVersion:"openpond.experimentSignalReport.v1",planHash:a.contentHash,resultHash:p.contentHash,executionId:t.id,model:t.model,thresholds:a.thresholds,groups:d,informativeFamilies:g,usage:t.usage,cleanupComplete:t.cleanupComplete,blockers:f,signalObserved:f.length===0,trainingAuthorized:!1,runtimeParityVerified:!1,limitations:["Offline hashes bind supplied evidence; they do not authenticate it or prove source-family independence. Full grade evidence hashes require the retained trace/artifacts to independently reconstruct.","Local signal does not prove learner identity, GPU runtime/tokenizer parity, no-update behavior or provider deletion.","Review rates, private gold, fixture calibration, family exposure and the unchanged-parent noise control before training."]};return{...q,contentHash:i(q)}}x(V,"createSignalReport");async function v(s,n=64*1024*1024){if((await G(s)).size>n)throw new Error(`Signal input exceeds ${n} bytes: ${s}`);return JSON.parse(await $(s,"utf8"))}x(v,"readJson");async function pe(s,n){let a=C(s,"inputFile");if(!a||n.length!==1)throw new Error("usage: experiments <signal-plan|signal-report> --input-file <path>");let p=await v(a,1048576),t=L(b(a)),r;if(n[0]==="signal-plan"){let m=c.object({packageFile:c.string().min(1),preparationFile:c.string().min(1),thresholds:P}).strict().parse(p);r=T({package:await v(b(t,m.packageFile)),preparation:await v(b(t,m.preparationFile)),thresholds:m.thresholds})}else{let m=c.object({planFile:c.string().min(1),resultFile:c.string().min(1)}).strict().parse(p);r=V(await v(b(t,m.planFile)),await v(b(t,m.resultFile)))}console.log(JSON.stringify(r,null,2))}x(pe,"runExperimentsSignalCommand");export{pe as runExperimentsSignalCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import"./chunk-NZDLL6JN.js";import{c as E}from"./chunk-RFQD6B44.js";import{a as R,d as x}from"./chunk-R4EEGWXB.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import"./chunk-JEMECEQH.js";import{p as S}from"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import{d as y}from"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.js";import"./chunk-AMC4Z7G4.js";import{a as I}from"./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{K as v,L as g,U as p,V as b}from"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{c as f,f as h}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as n}from"./chunk-3M53YXEI.js";import{b as w}from"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as u}from"./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 m}from"./chunk-FTQLQJQV.js";import{readFile as A,stat as L}from"node:fs/promises";async function C(r,l){let[o,a]=l,i=n(r,"team"),q=r.local===!0||r.local==="true";if(!i||!o||l.length>2)throw new Error("usage: human-review <read|inbox|inspect|results|request> [id] --team <id> [--input-file <path>] [--local --server-url <loopback-origin>]");let t;if(o==="request"){let e=n(r,"inputFile");if(a||!e||(await L(e)).size>1048576)throw new Error("Request requires a bounded --input-file with exact scoped pins, revision and stable operationId for mutations.");if(t=p.parse(JSON.parse(await A(e,"utf8"))),t.scope!==i)throw new Error("Input belongs to another workspace.")}else if(o==="inbox"){if(a)throw new Error("Inbox does not accept an assignment id.");t=p.parse({endpoint:"inbox",scope:i,view:n(r,"view")||"mine",status:n(r,"status")||"active",limit:Number(n(r,"limit")||100),...n(r,"project")?{projectId:n(r,"project")}:{},...n(r,"afterId")?{afterId:n(r,"afterId")}:{}})}else{if(!a)throw new Error(`${o} requires an exact assignment or execution id.`);t=p.parse(o==="read"?{endpoint:"get",scope:i,id:a,...n(r,"revision")?{revision:Number(n(r,"revision"))}:{}}:o==="inspect"?{endpoint:"inspect",scope:i,id:a,...n(r,"slot")?{slot:Number(n(r,"slot"))}:{},...n(r,"afterId")?{afterId:n(r,"afterId")}:{}}:o==="results"?{endpoint:"results",scope:i,executionId:a}:{endpoint:o,scope:i,id:a})}let s;if(q){let e=new URL(n(r,"serverUrl")||R);if(e.protocol!=="http:"||!["localhost","127.0.0.1","[::1]"].includes(e.hostname)||e.username||e.password||e.search||e.hash||e.pathname!=="/")throw new Error("Local Human review requires an HTTP loopback server origin.");let c=await x(e.origin),d=await c(new URL("/v1/human-review?location=local",e),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t),redirect:"error",signal:AbortSignal.timeout(3e4)}),H=await U(d);if(s=JSON.parse(H),!d.ok)throw new Error(typeof s.error=="string"?s.error:`Local Human request failed (${d.status}).`)}else{let e=await y();s=await new S({scope:i,apiKey:await E(e,h(e)),baseUrl:f(r)??e.apiBaseUrl??w}).request(t,AbortSignal.timeout(3e4))}if(t.endpoint==="get"||t.endpoint==="command"){let e=v.parse(s),c=t.endpoint==="get"?t.id:t.command.id;if(e.id!==c||e.scope!==i)throw new Error("Review response differs from the requested identity.")}if(t.endpoint==="inbox"&&g.parse(s).items.some(c=>c.scope!==i||t.projectId&&c.projectId!==t.projectId))throw new Error("Inbox response differs from the requested scope.");if(t.endpoint==="inspect"&&b.parse(s).some(e=>e.reviewId!==t.id))throw new Error("Inspection response differs from the selected assignment.");if(t.endpoint==="results"){let e=I.parse(s),{contentHash:c,...d}=e;if(e.executionId!==t.executionId||u(d)!==c||t.selection!==void 0&&u(e.selection)!==u(t.selection))throw new Error("Result response differs from the selected execution or retained review revisions.")}console.log(JSON.stringify(s,null,2))}m(C,"runHumanReviewCommand");async function U(r){let l=r.body?.getReader();if(!l)throw new Error("Review response is unavailable.");let o=[],a=0;try{for(;;){let i=await l.read();if(i.done)break;if(a+=i.value.byteLength,a>8388608)throw new Error("Review response exceeds its bounded transport.");o.push(i.value)}}finally{await l.cancel(),l.releaseLock()}return Buffer.concat(o).toString("utf8")}m(U,"boundedResponse");export{C as runHumanReviewCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as w,b as p}from"./chunk-KP2MYTP5.js";import"./chunk-PNPV2LDE.js";import{Cb as f,Ta as d,nb as h}from"./chunk-4PUOWSDE.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{a as m}from"./chunk-AYOMVI7J.js";import"./chunk-V24VHT76.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as t}from"./chunk-3M53YXEI.js";import"./chunk-4N4EH3RJ.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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-TBODQT4W.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as l}from"./chunk-FTQLQJQV.js";import{readFile as I}from"node:fs/promises";async function N(e,u){let[r,g,a]=u;if(!r||!["get","list","command","publish-batch"].includes(r)||u.length>3)throw new Error("Use learning <get|list> <kind> [id] or learning <command|publish-batch> --input-file <path>, with --team-id.");let{context:b,baseUrl:S,teamId:L}=await m(e),o=new p({baseUrl:S,apiKey:b.token,scope:L,fetch:l((i,n)=>fetch(i,{...n,signal:n?.signal?AbortSignal.any([n.signal,AbortSignal.timeout(6e4)]):AbortSignal.timeout(6e4)}),"fetch")}),s;if(r==="get"||r==="list"){let i=h.parse(g);if(r==="get"){if(!a)throw new Error("Select a learning resource ID.");let n=t(e,"revision");s=await o.get(i,a,n?Number(n):void 0)}else{if(a)throw new Error("List accepts a resource kind, with --after-id for pagination.");s=await o.list(i,{limit:Number(t(e,"limit")||"30"),...t(e,"afterId")?{afterId:t(e,"afterId")}:{},...t(e,"parentId")?{parentId:t(e,"parentId")}:{},...t(e,"status")?{status:t(e,"status")}:{}})}}else{if(g||a)throw new Error("This action takes --input-file rather than positional resource identifiers.");let i=t(e,"inputFile");if(!i)throw new Error("Select --input-file <absolute-json-path>.");let n=await I(i);if(n.byteLength>16777216)throw new Error("Learning input exceeds 16 MiB.");let c=JSON.parse(n.toString("utf8"));f(c),s=r==="command"?await o.command(d.parse(c)):await o.publishBatch(w.parse(c))}console.log(JSON.stringify(s,null,2))}l(N,"runLearningCommand");export{N as runLearningCommand};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import"./chunk-T4QXKU5Y.js";import"./chunk-NZDLL6JN.js";import{c as h}from"./chunk-RFQD6B44.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import{a as k}from"./chunk-Q34IF4PW.js";import{a as d,c as w,d as B}from"./chunk-6XSSM4WT.js";import"./chunk-JEMECEQH.js";import"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import{d as f}from"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{c as u,d as m,f as g}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{f as p}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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{randomUUID as U}from"node:crypto";async function T(t,r){let e=r[0]||"smoke";if(e==="chat"){if(r.length!==1)throw new Error("opchat chat accepts options, not positional arguments.");await(await import("./opchat-bounded-chat-KLMIYSZZ.js")).runBoundedOpChat(t);return}let o=await f(),s=await h(o,g(o)),l=C(o,t);if(e==="provider-catalog"||e==="providers-catalog"||e==="catalog"){let n=await y({apiBaseUrl:l,token:s});console.log(JSON.stringify(n,null,2));return}if(e==="models"||e==="model-list"){let n=await w({apiBaseUrl:l,token:s});console.log(JSON.stringify(n,null,2));return}if(e==="model"||e==="model-get"){let n=r[1]||a(t,"model");if(!n)throw new Error("usage: opchat model <model>");let c=await B({apiBaseUrl:l,token:s,model:n});console.log(JSON.stringify(c,null,2));return}if(e==="smoke"){let n=await k({apiBaseUrl:l,token:s,defaultModel:a(t,"model")||void 0,compatibilityModel:a(t,"compatibilityModel")||a(t,"compatModel")||void 0,skipStream:p(t.skipStream),skipTool:p(t.skipTool),log:i(c=>console.log(c),"log")});p(t.json)&&console.log(JSON.stringify(n,null,2));return}throw new Error(`usage: opchat <provider-catalog|models|model|smoke> [--opchat-api-base-url <url>]
|
|
3
|
-
opchat chat --model <id> --message <text> --team-id <id> --max-output-tokens <n> --request-id <id> --timeout-sec <1..600> --max-spend <usd> [--stream] (one bounded request; JSON receipt after completion)`)}i(T,"runOpChatCommand");async function y(t){let r=t.apiBaseUrl.trim().replace(/\/+$/,"");if(!r)throw new Error("OpChat API base URL is required.");let e=t.token.trim();if(!e)throw new Error("OpenPond API key is required.");let o=await fetch(`${r}/provider-catalog`,{method:"GET",headers:{Authorization:`Bearer ${e}`,Accept:"application/json","Content-Type":"application/json","x-openpond-client":"openpond-cli","x-openpond-request-id":U()}});if(!o.ok)throw new Error(`Hosted provider catalog failed: ${o.status} ${await A(o)}`);return o.json()}i(y,"getOpChatProviderCatalog");async function A(t){let r=await t.text().catch(()=>"");if(!r)return t.statusText||`HTTP ${t.status}`;try{let e=JSON.parse(r);if(typeof e.message=="string")return e.message;if(typeof e.error=="string")return e.error;if(e.error&&typeof e.error=="object"&&!Array.isArray(e.error)){let o=e.error;return[o.code,o.message].filter(Boolean).join(": ")||r}return r}catch{return r}}i(A,"readResponseError");function C(t,r){let e=a(r,"opchatApiBaseUrl")||a(r,"opchatApiBaseurl")||a(r,"opChatApiBaseUrl")||a(r,"opChatApiBaseurl")||a(r,"opchatApiUrl")||a(r,"opChatApiUrl");return e?d({opChatApiBaseUrl:e}):d({apiBaseUrl:u(r)||t.apiBaseUrl,chatApiBaseUrl:m(r)||t.chatApiBaseUrl})}i(C,"resolveOpChatCliBaseUrl");function a(t,r){let e=t[r];return typeof e=="string"?e.trim():""}i(a,"optionString");export{T as runOpChatCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import"./chunk-T4QXKU5Y.js";import"./chunk-NZDLL6JN.js";import"./chunk-RFQD6B44.js";import{a as Z}from"./chunk-AZ7BL5FL.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import{a as D,d as X,i as J,j as Y}from"./chunk-6XSSM4WT.js";import"./chunk-JEMECEQH.js";import"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{a as j}from"./chunk-V24VHT76.js";import{c as $,d as z}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as A,f as H}from"./chunk-3M53YXEI.js";import"./chunk-4N4EH3RJ.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.js";import"./chunk-6FA3GG5B.js";import"./chunk-SV7ZBEK2.js";import{M as L}from"./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{A as s}from"./chunk-X2J2P5ZT.js";import{a as p}from"./chunk-FTQLQJQV.js";import{createHash as ne}from"node:crypto";var ee=new Set(["Error","TypeError","SyntaxError","AbortError","TimeoutError","SocketError","HeadersTimeoutError","BodyTimeoutError","ConnectTimeoutError"]),te=new Set(["UND_ERR_SOCKET","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_ABORTED","UND_ERR_DESTROYED","UND_ERR_CLOSED","UND_ERR_RESPONSE_STATUS_CODE","ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT","ENOTFOUND","EAI_AGAIN","ABORT_ERR"]);function K(n){let o=[],e=new Set,a=n;for(;a&&typeof a=="object"&&o.length<3&&!e.has(a);){e.add(a);let d=a;o.push({name:typeof d.name=="string"&&ee.has(d.name)?d.name:"unrecognized",code:d.code===void 0?null:typeof d.code=="string"&&te.has(d.code)?d.code:"unrecognized"}),a=d.cause}return o}p(K,"boundedTransportError");function V(){let n=null,o=null,e=null,a=null,d=null,M=null,l=0,y=0,m=0,S=0,c=0,i=0,E=null;return{observe:p(t=>{t.type==="request"&&(n=performance.now()-t.elapsedMs),t.type==="headers"&&(o=t),t.type==="bytes"&&(l=Math.max(l,t.elapsedMs-(a??o?.elapsedMs??0)),e??=t.elapsedMs,a=t.elapsedMs,y=Math.min(Number.MAX_SAFE_INTEGER,y+t.byteLength),m=Math.min(Number.MAX_SAFE_INTEGER,m+1)),t.type==="data"&&(S=Math.min(Number.MAX_SAFE_INTEGER,S+1),d=t.elapsedMs,t.errorFrame&&(i=Math.min(Number.MAX_SAFE_INTEGER,i+1))),t.type==="comment"&&(c=Math.min(Number.MAX_SAFE_INTEGER,c+1),M=t.elapsedMs),t.type==="done"&&(E=t.elapsedMs)},"observe"),snapshot:p(()=>{let t=n===null?null:Math.round(performance.now()-n);return{phase:n===null?"not_started":o?E!==null?"done":i>0?"error_frame":"response_body":"before_headers",elapsedMs:t,response:o===null?null:{status:o.status,headersAtMs:o.elapsedMs,eventStream:o.eventStream,noCache:o.noCache,noTransform:o.noTransform,bufferingDisabled:o.bufferingDisabled},bytes:y,readChunks:m,dataFrames:S,commentFrames:c,errorFrames:i,firstByteAtMs:e,lastByteAtMs:a,lastDataAtMs:d,lastCommentAtMs:M,doneAtMs:E,maxByteGapMs:l,silentForMs:t===null||o===null?null:Math.max(0,t-(a??o.elapsedMs))}},"snapshot")}}p(V,"createStreamDiagnostics");var O=s.coerce.number().int().positive().safe(),oe=s.object({model:s.string().trim().min(1).max(512),message:s.string().trim().min(1).max(131072),teamId:s.string().regex(/^[A-Za-z0-9_-]{3,191}$/),requestId:s.string().regex(/^[A-Za-z0-9._:-]{1,200}$/),maxOutputTokens:O,timeoutSec:O.max(600),maxSpend:s.coerce.number().finite().positive()}),q=s.number().finite().nonnegative(),re=s.object({id:s.string(),context_window:O,output_limit:O,metadata:s.object({billing:s.object({pricing:s.object({version:s.string().trim().min(1),source:s.string().trim().min(1),effectiveAt:s.string().refine(n=>Number.isFinite(Date.parse(n))),inputUsdPerMillionTokens:q,cachedInputUsdPerMillionTokens:q,outputUsdPerMillionTokens:q}).passthrough()})})});async function ge(n,o={}){let e=oe.parse({...n,message:A(n,"message")||A(n,"prompt")}),a=H(n.stream),d=n.effort===void 0?void 0:L.parse(n.effort),M=o.emit??(u=>console.log(JSON.stringify(u,null,2))),l=new AbortController,y=new Date().toISOString(),m=!1,S=null,c=null,i=null,E="",_=null,C=null,t=V(),x=null,B=p(u=>l.abort(new Error(`OpChat cancelled by ${u}.`)),"abort"),P=p(()=>B("SIGINT"),"interrupt"),v=p(()=>B("SIGTERM"),"terminate"),W=setTimeout(()=>l.abort(new DOMException("OpChat deadline reached.","TimeoutError")),e.timeoutSec*1e3);process.once("SIGINT",P),process.once("SIGTERM",v);let F=p((u,r)=>{let b=u==="completed"&&i&&i.estimated!==!0&&[i.prompt_tokens??i.input_tokens,i.completion_tokens??i.output_tokens].every(w=>typeof w=="number"&&Number.isSafeInteger(w)&&w>=0);return{schemaVersion:"openpond.boundedOpChatReceipt.v1",status:u,requestId:e.requestId,model:e.model,teamId:e.teamId,automaticRetry:!1,transport:a?"sse":"json",...a?{streamDiagnostics:t.snapshot()}:{},...x?{errorCauses:x}:{},startedAt:y,completedAt:new Date().toISOString(),apiOrigin:C,maxOutputTokens:e.maxOutputTokens,timeoutSec:e.timeoutSec,maximumSpendUsd:e.maxSpend,quote:S,dispatchAttempted:m,completion:c,usage:i,text:E,finishReason:_,accounting:{state:m?b?"usage_recorded":"unknown":"not_dispatched",chargedUsd:m?null:0,requiresLedgerReconciliation:m,cleanupConfirmed:!m},...r?{error:r}:{}}},"receipt");try{let u=await(o.account??j)(A(n,"account"));if(!u.token)throw new Error("Sign in to an OpenPond account before using OpChat.");let r=new URL(D({opChatApiBaseUrl:u.chatApiBaseUrl,env:{}})),b=[A(n,"opchatApiBaseUrl"),A(n,"opchatApiUrl"),z(n),$(n)].filter(g=>!!g);for(let g of b){let f=new URL(g);if(f.origin!==r.origin||f.username||f.password||f.search||f.hash)throw new Error("The OpChat API URL must match the signed-in account's chat origin.")}if(r.username||r.password||r.search||r.hash)throw new Error("The signed-in account has an invalid OpChat URL.");let w=D({opChatApiBaseUrl:b[0]??r.href,env:{}});C=r.origin,l.signal.throwIfAborted();let U=await X({apiBaseUrl:w,token:u.token,teamId:e.teamId,model:e.model,signal:AbortSignal.any([l.signal,AbortSignal.timeout(3e4)])}),Q=new Date().toISOString(),R=re.parse(U);if(R.id!==e.model)throw new Error("The catalog returned a different model identity.");if(e.maxOutputTokens>R.output_limit)throw new Error("The requested output limit exceeds the model's current limit.");let I=R.metadata.billing.pricing,N=Math.ceil(R.context_window*Math.max(I.inputUsdPerMillionTokens,I.cachedInputUsdPerMillionTokens)+e.maxOutputTokens*I.outputUsdPerMillionTokens);if(!Number.isSafeInteger(N)||N<=0)throw new Error("The model does not publish an enforceable positive request ceiling.");let k=N/1e6;if(S={kind:"worst_case_request_reservation",observedAt:Q,contextWindow:R.context_window,outputLimit:R.output_limit,pricing:I,maximumRequestCostUsd:k,predictedSpend:!1,catalog:U,catalogSha256:ne("sha256").update(JSON.stringify(U)).digest("hex")},k>e.maxSpend)throw new Error(`The current worst-case request reservation $${k} exceeds --max-spend $${e.maxSpend}.`);l.signal.throwIfAborted();let G={apiBaseUrl:w,token:u.token,teamId:e.teamId,model:e.model,requestId:e.requestId,reasoningEffort:d,maxTokens:e.maxOutputTokens,signal:l.signal,messages:[{role:"user",content:e.message}],...a?{onStreamDiagnostic:t.observe}:{}};if(m=!0,a){let g=null,f;for await(let h of Y(G)){l.signal.throwIfAborted();let T=h.raw&&typeof h.raw=="object"?h.raw:{};if(typeof T.id!="string"||!T.id||T.model!==e.model||T.request_id!==e.requestId||g!==null&&T.id!==g)throw new Error("The stream does not match the admitted completion, model and request identity.");if(g=T.id,typeof T.created=="number"&&(f=T.created),h.type==="text_delta"&&(E+=h.text),h.type==="usage"&&(i=h.usage),h.type==="finish"&&(_=h.finishReason),h.type==="tool_call_delta")throw new Error("The bounded OpChat request did not admit tool calls.")}if(!g||!_)throw new Error("The stream ended without a terminal completion receipt.");c={id:g,model:e.model,request_id:e.requestId,object:"chat.completion",assembledFromStream:!0,...f===void 0?{}:{created:f},choices:[{index:0,message:{role:"assistant",content:E},finish_reason:_}],...i===null?{}:{usage:i}}}else c=await J(G),i=c.usage??null,E=c.choices?.[0]?.message?.content??"",_=c.choices?.[0]?.finish_reason??null;if(!c.id||c.model!==e.model||c.request_id!==e.requestId)throw new Error("The completion does not match the admitted model and request identity.");if(l.signal.throwIfAborted(),!_)throw new Error("The response ended without a terminal completion receipt.");M(F("completed"))}catch(u){let r=l.signal.aborted?l.signal.reason:u;x=K(r);let b=r instanceof Error?r.message:String(r),w=l.signal.aborted?r instanceof Error&&r.name==="TimeoutError"?"timed_out":"cancelled":m?"failed":"rejected";throw M(F(w,b)),new Z(b)}finally{clearTimeout(W),process.removeListener("SIGINT",P),process.removeListener("SIGTERM",v)}}p(ge,"runBoundedOpChat");export{ge as runBoundedOpChat};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{m as M}from"./chunk-NZDLL6JN.js";import"./chunk-RFQD6B44.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import"./chunk-JEMECEQH.js";import"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{b as x}from"./chunk-V24VHT76.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{a as _,f as O,h as k,i as S}from"./chunk-3M53YXEI.js";import"./chunk-4N4EH3RJ.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as i}from"./chunk-FTQLQJQV.js";import{createHash as j,randomBytes as L}from"node:crypto";import{createServer as B}from"node:http";function D(e){return[e.slug,`team=${e.teamId}`,`role=${e.role}`,`status=${e.status}`,e.displayName].join(" ")}i(D,"formatOrganizationLine");function H(e){return[e.email??e.userId,`user=${e.userId}`,`role=${e.role}`,e.createdAt].join(" ")}i(H,"formatOrganizationMemberLine");function W(e){return e?[e.slug,`team=${e.teamId}`,`status=${e.status}`,`tools=${e.toolset.join(",")||"-"}`,e.resourceUrl].join(" "):"no mcp server configured"}i(W,"formatOrganizationMcpServerLine");var F=["estimate.read","estimate.write","estimate.execute","artifacts.read","artifacts.write"];function b(e){let t=e.trim().replace(/\/$/,"");if(!t)throw new Error("MCP resource URL must be non-empty");return new URL(t).toString().replace(/\/$/,"")}i(b,"normalizeMcpResourceUrl");function R(e,t){let r=typeof t.resourceUrl=="string"&&t.resourceUrl.trim()?t.resourceUrl.trim():typeof t.url=="string"&&t.url.trim()?t.url.trim():"";if(r)return b(r);if(!e?.resourceUrl)throw new Error("organization does not have an MCP server; run organizations mcp-generate first");return b(e.resourceUrl)}i(R,"resolveMcpProbeResourceUrl");function v(e,t){let r=typeof t.origin=="string"&&t.origin.trim()?t.origin.trim():"";return r?b(r):new URL(e).origin}i(v,"resolveMcpProbeOrigin");function U(e=32){return L(e).toString("base64url")}i(U,"randomOauthToken");function G(e){return j("sha256").update(e).digest("base64url")}i(G,"buildMcpOauthPkceChallenge");function V(e){let t=typeof e.scope=="string"&&e.scope.trim()?e.scope:typeof e.scopes=="string"&&e.scopes.trim()?e.scopes:"";if(!t)return[...F];let r=t.split(/[,\s]+/g).map(o=>o.trim()).filter(Boolean);if(r.length===0)throw new Error("scope must include at least one OAuth scope");return r}i(V,"parseMcpOAuthScopes");function q(e){let t=typeof e.clientId=="string"&&e.clientId.trim()?e.clientId.trim():"openpond-code-mcp-proof";if(t==="true")throw new Error("client-id must be a non-empty value");return t}i(q,"resolveMcpOAuthClientId");function Y(e){let t=k(e.timeoutSeconds,"timeout-seconds")??k(e.timeout,"timeout")??180;if(t<=0)throw new Error("timeout must be greater than zero");return t*1e3}i(Y,"resolveMcpOAuthTimeoutMs");function Z(e){let t=k(e.callbackPort,"callback-port")??0;if(t<0||t>65535)throw new Error("callback-port must be between 0 and 65535");return t}i(Z,"resolveMcpOAuthCallbackPort");function E(e){return new Promise((t,r)=>{e.close(o=>{o?r(o):t()})})}i(E,"closeServer");async function K(e){let t=!1,r=null,o=null,s=null,n=new Promise((u,l)=>{o=u,s=l}),a=i((u,l,g,m,p)=>{if(t){u.writeHead(204).end();return}t=!0,u.writeHead(l,{"cache-control":"no-store","content-type":"text/html; charset=utf-8"}),u.end(g),r&&clearTimeout(r),m?o?.(m):s?.(p??new Error("oauth_callback_failed"))},"settle"),c=B((u,l)=>{let g=u.headers.host??"127.0.0.1",m=new URL(u.url??"/",`http://${g}`);if(m.pathname!=="/callback"){l.writeHead(404,{"content-type":"text/plain; charset=utf-8"}),l.end("Not found");return}let p=m.searchParams.get("state")??"",f=m.searchParams.get("error")??"",w=m.searchParams.get("code")??"";if(p!==e.expectedState){a(l,400,"<!doctype html><title>OpenPond OAuth failed</title><p>State mismatch. Return to the terminal and retry.</p>",void 0,new Error("oauth_state_mismatch"));return}if(f){a(l,400,"<!doctype html><title>OpenPond OAuth denied</title><p>Authorization was not completed. Return to the terminal.</p>",void 0,new Error(`oauth_authorization_failed:${f}`));return}if(!w){a(l,400,"<!doctype html><title>OpenPond OAuth failed</title><p>Missing authorization code. Return to the terminal and retry.</p>",void 0,new Error("oauth_code_missing"));return}a(l,200,"<!doctype html><title>OpenPond OAuth complete</title><p>Authorization complete. You can return to the terminal.</p>",{code:w,state:p})});await new Promise((u,l)=>{let g=i(p=>{c.off("listening",m),l(p)},"onError"),m=i(()=>{c.off("error",g),u()},"onListening");c.once("error",g),c.once("listening",m),c.listen(e.port,"127.0.0.1")});let d=c.address();if(!d||typeof d.port!="number")throw await E(c),new Error("oauth_callback_listener_failed");return r=setTimeout(()=>{t||(t=!0,s?.(new Error("oauth_callback_timeout")))},e.timeoutMs),{close:i(async()=>{r&&clearTimeout(r),await E(c).catch(()=>{})},"close"),redirectUri:`http://127.0.0.1:${d.port}/callback`,waitForCallback:i(()=>n,"waitForCallback")}}i(K,"startMcpOAuthCallbackListener");function Q(e){x(e)}i(Q,"openUrlWithSystemBrowser");function X(e){let t=new URL(e.authorizationEndpoint);return t.searchParams.set("response_type","code"),t.searchParams.set("client_id",e.clientId),t.searchParams.set("redirect_uri",e.redirectUri),t.searchParams.set("code_challenge",e.codeChallenge),t.searchParams.set("code_challenge_method","S256"),t.searchParams.set("resource",e.resourceUrl),t.searchParams.set("scope",e.scopes.join(" ")),t.searchParams.set("state",e.state),t.toString()}i(X,"buildMcpOAuthAuthorizeUrl");async function ee(e){let t=new URLSearchParams;t.set("grant_type","authorization_code"),t.set("client_id",e.clientId),t.set("redirect_uri",e.redirectUri),t.set("code",e.code),t.set("code_verifier",e.codeVerifier);let r=await fetch(`${e.origin}/oauth/token`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:t}),o=await N(r);if(!r.ok)throw new Error(`oauth_token_exchange_failed:${r.status}:${JSON.stringify(o)}`);if(!o||typeof o!="object"||Array.isArray(o))throw new Error("oauth_token_exchange_invalid_response");let s=o;if(typeof s.access_token!="string"||!s.access_token.trim())throw new Error("oauth_token_exchange_missing_access_token");return{access_token:s.access_token,...typeof s.expires_in=="number"?{expires_in:s.expires_in}:{},...typeof s.refresh_token=="string"?{refresh_token:s.refresh_token}:{},...typeof s.scope=="string"?{scope:s.scope}:{},...typeof s.token_type=="string"?{token_type:s.token_type}:{}}}i(ee,"exchangeMcpOAuthAuthorizationCode");async function N(e){let t=await e.text().catch(()=>"");if(!t)return null;let r=t.trim();if((e.headers.get("content-type")??"").toLowerCase().includes("application/json")||r.startsWith("{")||r.startsWith("["))try{return JSON.parse(r)}catch{return t}return t}i(N,"readMcpProbeBody");async function P(e,t={}){let r=await fetch(e,t);return{url:e,status:r.status,ok:r.ok,headers:{contentType:r.headers.get("content-type"),location:r.headers.get("location"),wwwAuthenticate:r.headers.get("www-authenticate")},body:await N(r)}}i(P,"fetchMcpProbe");function te(e,t,r){return r?{jsonrpc:"2.0",id:e,method:t,params:r}:{jsonrpc:"2.0",id:e,method:t}}i(te,"buildMcpJsonRpcRequest");function T(e){let t=typeof e.arguments=="string"&&e.arguments.trim()?e.arguments:typeof e.args=="string"&&e.args.trim()?e.args:"";if(!t)return{};let r=_(t,"arguments");if(!r||typeof r!="object"||Array.isArray(r))throw new Error("arguments must be a JSON object");return r}i(T,"parseMcpToolArguments");async function z(e){let t={"content-type":"application/json"};return e.accessToken&&(t.authorization=`Bearer ${e.accessToken}`),P(e.resourceUrl,{method:"POST",headers:t,body:JSON.stringify(te(e.id,e.method,e.params))})}i(z,"postMcpJsonRpcProbe");async function A(e){let t=b(e.resourceUrl),r=b(e.origin),o=`${t}/.well-known/oauth-protected-resource`,s=`${r}/.well-known/oauth-authorization-server`,[n,a,c,d,u,l,g]=await Promise.all([P(o),P(s),P(t),z({resourceUrl:t,id:1,method:"initialize"}),z({resourceUrl:t,id:2,method:"tools/list"}),z({resourceUrl:t,id:3,method:"tools/call",params:{name:e.toolName,arguments:e.toolArguments}}),e.accessToken?z({resourceUrl:t,id:4,method:"tools/call",params:{name:e.toolName,arguments:e.toolArguments},accessToken:e.accessToken}):Promise.resolve(null)]);return{resourceUrl:t,origin:r,protectedResource:n,authorizationServer:a,directGetChallenge:c,initialize:d,toolsList:u,unauthenticatedToolCall:l,...g?{authenticatedToolCall:g}:{}}}i(A,"probeOrganizationMcp");function re(e){let t=typeof e=="string"?e.trim():"";if(t==="owner"||t==="admin"||t==="member")return t;throw new Error("role must be owner, admin, or member")}i(re,"parseOrganizationRole");function ne(e){let t=typeof e.displayName=="string"&&e.displayName.trim()?e.displayName.trim():typeof e.name=="string"&&e.name.trim()?e.name.trim():"";if(!t)throw new Error("usage: organizations create --name <name> [--slug <slug>]");return{displayName:t,...typeof e.slug=="string"&&e.slug.trim()?{slug:e.slug.trim()}:{},...typeof e.primaryContactEmail=="string"&&e.primaryContactEmail.trim()?{primaryContactEmail:e.primaryContactEmail.trim()}:{},...typeof e.customDomain=="string"&&e.customDomain.trim()?{customDomain:e.customDomain.trim()}:{}}}i(ne,"buildOrganizationCreateInput");function oe(e){let t={},r=typeof e.displayName=="string"&&e.displayName.trim()?e.displayName.trim():typeof e.name=="string"&&e.name.trim()?e.name.trim():"";if(r&&(t.displayName=r),typeof e.slug=="string"&&e.slug.trim()&&(t.slug=e.slug.trim()),typeof e.primaryContactEmail=="string"&&(t.primaryContactEmail=e.primaryContactEmail.trim()||null),typeof e.customDomain=="string"&&(t.customDomain=e.customDomain.trim()||null),typeof e.status=="string"&&e.status.trim()){let o=e.status.trim();if(o!=="active"&&o!=="disabled"&&o!=="archived")throw new Error("status must be active, disabled, or archived");t.status=o}if(Object.keys(t).length===0)throw new Error("organizations update requires at least one changed field");return t}i(oe,"buildOrganizationUpdateInput");function ie(e){let t=typeof e.email=="string"?e.email.trim():"";if(!t)throw new Error("usage: organizations member-upsert <slug> --email <email> --role <role>");return{email:t,role:re(e.role)}}i(ie,"buildOrganizationMemberInput");function ae(e){return{...typeof e.origin=="string"&&e.origin.trim()?{origin:e.origin.trim()}:{},...typeof e.toolset=="string"&&e.toolset.trim()?{toolset:S(e.toolset)}:{}}}i(ae,"buildOrganizationMcpGenerateInput");async function ge(e,t){let r=t[0]||"list",o=await M(e),s=O(e.json);if(r==="list"){let n=await o.listOrganizations();if(s){console.log(JSON.stringify({organizations:n},null,2));return}if(n.length===0){console.log("no organizations found");return}for(let a of n)console.log(D(a));return}if(r==="create"){let n=await o.createOrganization(ne(e));console.log(JSON.stringify({organization:n},null,2));return}if(r==="get"){let n=t[1];if(!n)throw new Error("usage: organizations get <slug>");let a=await o.getOrganization(n);console.log(JSON.stringify({organization:a},null,2));return}if(r==="update"){let n=t[1];if(!n)throw new Error("usage: organizations update <slug> [--name <name>]");let a=await o.updateOrganization(n,oe(e));console.log(JSON.stringify({organization:a},null,2));return}if(r==="members"||r==="member-list"){let n=t[1];if(!n)throw new Error("usage: organizations members <slug>");let a=await o.listOrganizationMembers(n);if(s){console.log(JSON.stringify({members:a},null,2));return}if(a.length===0){console.log("no organization members found");return}for(let c of a)console.log(H(c));return}if(r==="member-upsert"||r==="member-add"){let n=t[1];if(!n)throw new Error("usage: organizations member-upsert <slug> --email <email> --role <role>");let a=await o.upsertOrganizationMember(n,ie(e));console.log(JSON.stringify({member:a},null,2));return}if(r==="mcp-get"||r==="mcp-server"){let n=t[1];if(!n)throw new Error("usage: organizations mcp-get <slug>");let a=await o.getOrganizationMcpServer(n);if(s){console.log(JSON.stringify({mcpServer:a},null,2));return}console.log(W(a));return}if(r==="mcp-generate"){let n=t[1];if(!n)throw new Error("usage: organizations mcp-generate <slug> [--origin <url>]");let a=await o.generateOrganizationMcpServer(n,ae(e));console.log(JSON.stringify({mcpServer:a},null,2));return}if(r==="mcp-probe"||r==="mcp-inspect"){let n=t[1];if(!n)throw new Error("usage: organizations mcp-probe <slug> [--origin <url>] [--tool <name>] [--arguments <json>] [--access-token <token>]");let a=await o.getOrganizationMcpServer(n),c=R(a,e),d=v(c,e),u=typeof e.tool=="string"&&e.tool.trim()?e.tool.trim():typeof e.toolName=="string"&&e.toolName.trim()?e.toolName.trim():"estimate_search_history",l=T(e),g=typeof e.accessToken=="string"&&e.accessToken.trim()?e.accessToken.trim():"",m=await A({resourceUrl:c,origin:d,toolName:u,toolArguments:l,...g?{accessToken:g}:{}});console.log(JSON.stringify({mcpServer:a,probe:m},null,2));return}if(r==="mcp-authorize"||r==="mcp-oauth"){let n=t[1];if(!n)throw new Error("usage: organizations mcp-authorize <slug> [--origin <url>] [--scope <csv|space>] [--tool <name>] [--arguments <json>] [--open]");let a=await o.getOrganizationMcpServer(n),c=R(a,e),d=v(c,e),u=q(e),l=V(e),g=U(18),m=U(48),p=G(m),f=await K({expectedState:g,port:Z(e),timeoutMs:Y(e)}),w=X({authorizationEndpoint:`${d}/oauth/authorize`,clientId:u,codeChallenge:p,redirectUri:f.redirectUri,resourceUrl:c,scopes:l,state:g});if(console.error("Open this URL to authorize the organization MCP connection:"),console.error(w),console.error(`Waiting for OAuth callback on ${f.redirectUri}`),O(e.open))try{Q(w)}catch(y){console.error(`Unable to open a browser automatically: ${y instanceof Error?y.message:String(y)}`)}try{let y=await f.waitForCallback(),h=await ee({clientId:u,code:y.code,codeVerifier:m,origin:d,redirectUri:f.redirectUri}),C=typeof e.tool=="string"&&e.tool.trim()?e.tool.trim():typeof e.toolName=="string"&&e.toolName.trim()?e.toolName.trim():"estimate_search_history",I=T(e),$=await A({accessToken:h.access_token,origin:d,resourceUrl:c,toolArguments:I,toolName:C}),J=O(e.printToken);console.log(JSON.stringify({mcpServer:a,oauth:{accessTokenReceived:!0,clientId:u,expiresIn:h.expires_in??null,refreshTokenReceived:!!h.refresh_token,scope:h.scope??l.join(" "),tokenType:h.token_type??"Bearer",...J?{accessToken:h.access_token,refreshToken:h.refresh_token??null}:{}},probe:$},null,2))}finally{await f.close()}return}if(r==="mcp-rotate"||r==="mcp-disable"||r==="mcp-enable"){let n=t[1];if(!n)throw new Error(`usage: organizations ${r} <slug>`);let a=r==="mcp-rotate"?await o.rotateOrganizationMcpServer(n):r==="mcp-disable"?await o.disableOrganizationMcpServer(n):await o.enableOrganizationMcpServer(n);console.log(JSON.stringify({mcpServer:a},null,2));return}throw new Error("usage: organizations <list|create|get|update|members|member-upsert|mcp-get|mcp-generate|mcp-probe|mcp-authorize|mcp-rotate|mcp-disable|mcp-enable> [args]")}i(ge,"runOrganizationsCommand");export{F as DEFAULT_MCP_AUTHORIZE_SCOPES,te as buildMcpJsonRpcRequest,X as buildMcpOAuthAuthorizeUrl,G as buildMcpOauthPkceChallenge,ne as buildOrganizationCreateInput,ae as buildOrganizationMcpGenerateInput,ie as buildOrganizationMemberInput,oe as buildOrganizationUpdateInput,E as closeServer,ee as exchangeMcpOAuthAuthorizationCode,P as fetchMcpProbe,D as formatOrganizationLine,W as formatOrganizationMcpServerLine,H as formatOrganizationMemberLine,b as normalizeMcpResourceUrl,Q as openUrlWithSystemBrowser,V as parseMcpOAuthScopes,T as parseMcpToolArguments,re as parseOrganizationRole,z as postMcpJsonRpcProbe,A as probeOrganizationMcp,U as randomOauthToken,N as readMcpProbeBody,Z as resolveMcpOAuthCallbackPort,q as resolveMcpOAuthClientId,Y as resolveMcpOAuthTimeoutMs,v as resolveMcpProbeOrigin,R as resolveMcpProbeResourceUrl,ge as runOrganizationsCommand,K as startMcpOAuthCallbackListener};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as b,b as Y,c as F,d as H,e as W,f as z,g as X,h as E,i as y,j as v,k as C,l as Z,m as ee,n as A,o as te,p as _,q as j,r as re,s as ne,t as x,u as M,v as R,w as J,x as N,y as U,z as T}from"./chunk-EWDDDHJN.js";import{m as h,n as I,v as P}from"./chunk-NZDLL6JN.js";import"./chunk-RFQD6B44.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import"./chunk-EXYSD45J.js";import"./chunk-JEMECEQH.js";import"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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-G7X73SBG.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as u,d,e as w,f as S}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as g}from"./chunk-FTQLQJQV.js";function k(e){let o=e.gitRepo?`${e.gitOwner??"_"}/${e.gitRepo}`:e.internalRepoPath??e.templateRepoUrl??e.normalizedSourceIdentity;return[e.id,e.status,e.sourceType,e.name,o].join(" ")}g(k,"formatProjectLine");function L(e){let o=e.selectedEntrypoint.name?`${e.selectedEntrypoint.scope}:${e.selectedEntrypoint.name}`:e.selectedEntrypoint.scope,i=e.runtimeSource?[e.runtimeSource.mode,e.runtimeSource.publishedSnapshotName??e.runtimeSource.publishedSnapshotId??e.runtimeSource.sourceRef].filter(a=>!!a).join(":"):"latest_source";return[e.id,e.status,e.triggerType,e.defaultWorkflowMode,i,o,e.name].join(" ")}g(L,"formatAgentLine");async function B(e,o,i){let a=i[1]?.trim(),t=i[2]?.trim(),n="usage: agent source <deploy-plan|checks|manifest-snapshots|setup|publish> <agent-id> --team-id <id>",r=d(o,n);if(!a||!t)throw new Error(n);if(a==="deploy-plan"){let s=await e.agents.sourceDeployPlan(t,{teamId:r});console.log(JSON.stringify({deployPlan:s},null,2));return}if(a==="manifest-snapshots"){let s=await e.agents.manifestSnapshots(t,{teamId:r,limit:x(o.limit)});console.log(JSON.stringify({manifestSnapshots:s},null,2));return}if(a==="checks"){let s=await e.agents.requestSourceChecks(t,M(r,o));console.log(JSON.stringify(s,null,2));return}if(a==="setup"){let s=typeof o.provider=="string"?o.provider.trim():"",l=typeof o.allowedActions=="string"?o.allowedActions.split(",").map(c=>c.trim()).filter(Boolean):[];if(!s||l.length===0)throw new Error(`${n}; setup requires --provider and --allowed-actions`);let p=await e.agents.configureSourceSetup(t,{teamId:r,integrationBindings:[{provider:s,mode:"connected",connectionMode:"member_connection",grantPolicy:"read_only",allowedActions:l,enabled:!0}]});console.log(JSON.stringify(p,null,2));return}if(a==="publish"){let s=await e.agents.publishSource(t,R(r,o));console.log(JSON.stringify(s,null,2));return}throw new Error(n)}g(B,"runAgentSourceWorkflow");import G from"node:path";var Q=new Set(["inspect","build","validate","eval","traces"]);function $(e,o){return Q.has(e)?!0:e==="run"&&!u(o,"teamId")}g($,"shouldDelegateLocalAgentSdkCommand");async function q(e,o){let i=o[0]||"inspect",a=G.resolve(u(e,"cwd")||u(e,"path")||"."),t=[i,...o.slice(1),"--cwd",a];S(e.json)&&t.push("--json"),D(t,e,"input","input"),D(t,e,"inputFile","input-file");let n=b(a),r=await P(n.command,[...n.args,...t],{cwd:a,inherit:!0});r.code!==0&&(process.exitCode=r.code??1)}g(q,"runLocalAgentSdkCommand");function D(e,o,i,a){let t=u(o,i);t&&e.push(`--${a}`,t)}g(D,"appendForwardedOption");async function Oe(e,o){let i=o[0]||"list";if($(i,e)){await q(e,o);return}let a=await h(e);if(i==="list"){let t=d(e,"usage: agent list"),n=await a.agents.list({teamId:t});if(S(e.json)){console.log(JSON.stringify({agents:n},null,2));return}if(n.length===0){console.log("no sandbox agents found");return}for(let r of n)console.log(L(r));return}if(i==="create"||i==="upsert"){let t=await a.agents.upsert(U(e));console.log(JSON.stringify({agent:t},null,2));return}if(i==="get"){let t=o[1]?.trim(),n=d(e,"usage: agent get <agentId>");if(!t)throw new Error("usage: agent get <agentId> --team-id <id>");let r=await a.agents.get(t,{teamId:n});console.log(JSON.stringify({agent:r},null,2));return}if(i==="run"){let t=o[1]?.trim(),n=d(e,"usage: agent run <agentId>");if(!t)throw new Error("usage: agent run <agentId> --team-id <id>");let r=u(e,"idempotencyKey"),s=u(e,"conversationId"),l=u(e,"targetProjectId"),p=A(e.triggerType),c=I(e.workflowMode),m=w(e,"input","input"),f=w(e,"metadata","metadata"),O=j(e),K=await a.agents.run(t,{teamId:n,...s?{conversationId:s}:{},...r?{idempotencyKey:r}:{},...l?{targetProjectId:l}:{},...l?{targetProject:{id:l}}:{},...p?{triggerType:p}:{},...c?{workflowMode:c}:{},...m?{input:m}:{},...f?{metadata:f}:{},...O?{runtimeSourcePolicy:O}:{}});console.log(JSON.stringify(K,null,2));return}if(i==="bind-runtime-source"||i==="bind-source"){let t=o[1]?.trim(),n=d(e,"usage: agent bind-source <agentId>");if(!t)throw new Error("usage: agent bind-source <agentId> --team-id <id> --source-mode latest_source|published_snapshot|auto");let r=_(e);if(!r?.mode)throw new Error("usage: agent bind-source <agentId> --team-id <id> --source-mode latest_source|published_snapshot|auto");let s=await a.agents.update(t,{teamId:n,runtimeSource:r});console.log(JSON.stringify({agent:s,agentSource:s.runtimeSource},null,2));return}if(i==="run-test"){let t=o[1]?.trim(),n=d(e,"usage: agent run-test <agentId>");if(!t)throw new Error("usage: agent run-test <agentId> --team-id <id>");let r=u(e,"idempotencyKey"),s=u(e,"conversationId"),l=u(e,"targetProjectId"),p=w(e,"input","input"),c=w(e,"metadata","metadata"),m=I(e.workflowMode),f=await a.agents.run(t,{teamId:n,...s?{conversationId:s}:{},...r?{idempotencyKey:r}:{},...l?{targetProjectId:l}:{},...l?{targetProject:{id:l}}:{},...m?{workflowMode:m}:{},...p?{input:p}:{},metadata:{...c??{},source:"agent_run_test"},runtimeSourcePolicy:j(e,"diagnostic")});console.log(JSON.stringify({resolvedRuntimeSource:f.run.runtimeSource,agent:f.agent,run:f.run,sandbox:f.sandbox??null},null,2));return}if(i==="source"){await B(a,e,o);return}if(i==="update"){let t=o[1]?.trim(),n=d(e,"usage: agent update <agentId>");if(!t)throw new Error("usage: agent update <agentId> --team-id <id>");let r=await a.agents.update(t,T(n,e));console.log(JSON.stringify({agent:r},null,2));return}if(i==="archive"){let t=o[1]?.trim(),n=d(e,"usage: agent archive <agentId>");if(!t)throw new Error("usage: agent archive <agentId> --team-id <id>");let r=await a.agents.archive(t,{teamId:n});console.log(JSON.stringify({agent:r},null,2));return}throw new Error("usage: agent <inspect|build|validate|eval|traces|list|create|upsert|get|update|run|run-test|bind-source|source|edit|archive> [--team-id <id>] [--project-id <id>] [--name <name>]")}g(Oe,"runAgentCommand");import V from"node:path";async function xe(e,o){let i=o[0]||"list",a=await h(e);if(i==="list"){let t=d(e,"usage: project list"),n=await a.projects.list({teamId:t});if(S(e.json)){console.log(JSON.stringify({projects:n},null,2));return}if(n.length===0){console.log("no sandbox projects found");return}for(let r of n)console.log(k(r));return}if(i==="create"||i==="upsert"){let t=await a.projects.upsert(J(e));console.log(JSON.stringify({project:t},null,2));return}if(i==="get"){let t=o[1]?.trim(),n=d(e,"usage: project get <projectId>");if(!t)throw new Error("usage: project get <projectId> --team-id <id>");let r=await a.projects.get(t,{teamId:n});console.log(JSON.stringify({project:r},null,2));return}if(i==="update"){let t=o[1]?.trim(),n=d(e,"usage: project update <projectId>");if(!t)throw new Error("usage: project update <projectId> --team-id <id>");let r=await a.projects.update(t,N(n,e));console.log(JSON.stringify({project:r},null,2));return}if(i==="sync"){let t=o[1]?.trim(),n=d(e,"usage: project sync <projectId>");if(!t)throw new Error("usage: project sync <projectId> --team-id <id>");let r=await a.projects.sync(t,{teamId:n});console.log(JSON.stringify({project:r},null,2));return}if(i==="source-upload"||i==="upload-source"){let t=o[1]?.trim(),n=d(e,"usage: project source-upload <projectId>");if(!t)throw new Error("usage: project source-upload <projectId> --team-id <id> [--path <dir>]");let r=V.resolve(u(e,"path")||"."),s=await E(r,e),l=u(e,"commitMessage")||u(e,"commit-message")||"Upload OpenPond project source",p=await y(r),c=await v(r,p.entries),m=C(p,c.entries),f=await a.projects.uploadSource(t,{teamId:n,entries:m.entries,...s?{branch:s}:{},commitMessage:l});console.log(JSON.stringify({project:f,uploaded:{path:r,branch:s,fileCount:m.fileCount,totalBytes:m.totalBytes,limits:m.limits,transport:m.transport,...c.generatedManifestPath?{agentSdk:{generatedManifestPath:c.generatedManifestPath,generatedEntryCount:c.entries.length,synthesizedOpenPondYaml:c.synthesizedOpenPondYaml,uploadMetadataPath:c.uploadMetadataPath,uploadMetadataHash:c.uploadMetadataHash,commands:c.uploadMetadata?.commands,dependencySetup:c.uploadMetadata?.dependencySetup,packageManager:c.uploadMetadata?.packageManager,sourceTreeMode:c.uploadMetadata?.sourceTreeMode,artifactHashes:c.uploadMetadata?.artifactHashes}}:{}}},null,2));return}if(i==="archive"){let t=o[1]?.trim(),n=d(e,"usage: project archive <projectId>");if(!t)throw new Error("usage: project archive <projectId> --team-id <id>");let r=await a.projects.archive(t,{teamId:n});console.log(JSON.stringify({project:r},null,2));return}throw new Error("usage: project <list|create|upsert|get|update|sync|source-upload|archive> [--team-id <id>] [--name <name>]")}g(xe,"runProjectCommand");export{W as PROJECT_SOURCE_UPLOAD_CONCURRENCY,z as PROJECT_SOURCE_UPLOAD_LIMITS,H as PROJECT_SOURCE_UPLOAD_MAX_BYTES,Y as PROJECT_SOURCE_UPLOAD_MAX_FILES,F as PROJECT_SOURCE_UPLOAD_MAX_FILE_BYTES,X as PROJECT_SOURCE_UPLOAD_TRANSPORT,M as buildAgentSourceChecksInput,_ as buildAgentSourceConfig,j as buildAgentSourcePolicy,R as buildAgentSourcePublishInput,T as buildAgentUpdateInput,U as buildAgentUpsertInput,N as buildProjectUpdateInput,J as buildProjectUpsertInput,y as collectProjectSourceUploadEntries,L as formatAgentLine,k as formatProjectLine,ee as parseAgentEntrypointScope,ne as parseAgentSourceCheckDispatch,re as parseAgentSourceCheckKind,te as parseAgentSourceMode,A as parseAgentTriggerType,x as parsePositiveLimit,Z as parseProjectSourceType,b as resolveLocalAgentSdkCommand,Oe as runAgentCommand,B as runAgentSourceWorkflow,xe as runProjectCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as E,b as P,c as J,d as j,e as C,f as k,g as R,h as B,i as O,j as v,k as q,l as L,m as M,n as U,o as T,p as F,q as A,r as c}from"./chunk-BDZDWHBJ.js";import{m as N,s as S,t as y}from"./chunk-NZDLL6JN.js";import"./chunk-RFQD6B44.js";import"./chunk-22RLEU3Q.js";import"./chunk-R6I623SZ.js";import"./chunk-XRKFTPHD.js";import"./chunk-JEMECEQH.js";import"./chunk-Z5CQXPIS.js";import"./chunk-7EQLW2KM.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.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-UN2LKLGV.js";import"./chunk-2LJCJOJ7.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{b as w,f as g,g as h,h as m}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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 b}from"./chunk-FTQLQJQV.js";import{readFile as K,stat as Q}from"node:fs/promises";async function V(r,o,e,i){if(o==="list-files"){let t=i[1];if(!t)throw new Error("usage: sandbox list-files <sandboxId> [--path <path>]");let n=typeof e.path=="string"?e.path.trim():void 0,a=h(e.maxEntries,"max-entries"),s=e.recursive!==void 0?g(e.recursive):void 0,d=await r.listFiles(t,{...n?{path:n}:{},...s!==void 0?{recursive:s}:{},...a!==void 0?{maxEntries:a}:{}});return console.log(JSON.stringify({sandbox:c(d.sandbox),files:d.files},null,2)),!0}if(o==="upload-file"){let t=i[1],n=typeof e.path=="string"?e.path.trim():"",a=typeof e.contents=="string"?e.contents:typeof e.content=="string"?e.content:"",s=typeof e.contentsBase64=="string"?e.contentsBase64.trim():typeof e.contentBase64=="string"?e.contentBase64.trim():"",d=typeof e.fromPath=="string"?e.fromPath.trim():"";if(!t||!n)throw new Error('usage: sandbox upload-file <sandboxId> --path <path> --contents "text"');if(d){if(a||s)throw new Error("Choose --from-path or inline contents for the upload.");let f=await Q(d);if(!f.isFile()||f.size>10*1024*1024)throw new Error("Sandbox upload requires a file within 10 MiB.");let u=await K(d);if(u.byteLength>10*1024*1024)throw new Error("Sandbox upload file changed beyond 10 MiB.");s=u.toString("base64")}if(!a&&!s)throw new Error('usage: sandbox upload-file <sandboxId> --path <path> --contents "text"');let l=s?await r.uploadFileBase64(t,n,s):await r.uploadFile(t,n,a);return console.log(JSON.stringify({sandbox:c(l.sandbox),file:l.file},null,2)),!0}if(o==="download-file"){let t=i[1],n=typeof e.path=="string"?e.path.trim():"",a=m(e.offsetBytes,"offset-bytes"),s=m(e.maxBytes,"max-bytes");if(!t||!n)throw new Error("usage: sandbox download-file <sandboxId> --path <path>");let d=await r.downloadFileResponse(t,{path:n,...a!==void 0?{offsetBytes:a}:{},...s!==void 0?{maxBytes:s}:{}});return console.log(JSON.stringify({sandbox:c(d.sandbox),file:d.file,contents:Buffer.from(d.file.contentsBase64,"base64").toString("utf-8")},null,2)),!0}if(o==="search-files"){let t=i[1],n=typeof e.query=="string"?e.query.trim():"";if(!t||!n)throw new Error("usage: sandbox search-files <sandboxId> --query <text> [--path <path>]");let a=typeof e.path=="string"?e.path.trim():void 0,s=h(e.maxResults,"max-results"),d=await r.searchFiles(t,{query:n,...a?{path:a}:{},...s!==void 0?{maxResults:s}:{}});return console.log(JSON.stringify({sandbox:c(d.sandbox),matches:d.matches},null,2)),!0}if(o==="delete-file"){let t=i[1],n=typeof e.path=="string"?e.path.trim():"";if(!t||!n)throw new Error("usage: sandbox delete-file <sandboxId> --path <path> [--recursive]");let a=await r.deleteFile(t,n,{recursive:g(e.recursive)});return console.log(JSON.stringify({sandbox:c(a.sandbox),deleted:a.deleted},null,2)),!0}if(o==="stat-file"){let t=i[1],n=typeof e.path=="string"?e.path.trim():"";if(!t||!n)throw new Error("usage: sandbox stat-file <sandboxId> --path <path>");let a=await r.statFile(t,n);return console.log(JSON.stringify({sandbox:c(a.sandbox),file:a.file},null,2)),!0}if(o==="mkdir"){let t=i[1],n=typeof e.path=="string"?e.path.trim():"";if(!t||!n)throw new Error("usage: sandbox mkdir <sandboxId> --path <path> [--recursive false]");let a=await r.mkdir(t,{path:n,recursive:e.recursive!==void 0?g(e.recursive):void 0});return console.log(JSON.stringify({sandbox:c(a.sandbox),directory:a.directory},null,2)),!0}if(o==="move-file"){let t=i[1],n=typeof e.fromPath=="string"?e.fromPath.trim():"",a=typeof e.toPath=="string"?e.toPath.trim():"";if(!t||!n||!a)throw new Error("usage: sandbox move-file <sandboxId> --from-path <path> --to-path <path> [--overwrite]");let s=await r.moveFile(t,{fromPath:n,toPath:a,overwrite:g(e.overwrite)});return console.log(JSON.stringify({sandbox:c(s.sandbox),moved:s.moved,file:s.file},null,2)),!0}return!1}b(V,"handleSandboxFilesCommand");async function $(r,o,e,i){if(o==="git-status"){let t=i[1];if(!t)throw new Error("usage: sandbox git-status <sandboxId>");let n=await r.gitStatus(t);return console.log(JSON.stringify({sandbox:c(n.sandbox),status:n.status},null,2)),!0}if(o==="git-diff"){let t=i[1];if(!t)throw new Error("usage: sandbox git-diff <sandboxId> [--base-ref <ref>]");let n=typeof e.baseRef=="string"&&e.baseRef.trim()?e.baseRef.trim():void 0,a=await r.gitDiff(t,{...n?{baseRef:n}:{}});return console.log(JSON.stringify({sandbox:c(a.sandbox),diff:a.diff},null,2)),!0}if(o==="git-export-patch"){let t=i[1];if(!t)throw new Error("usage: sandbox git-export-patch <sandboxId> [--base-ref <ref>]");let n=typeof e.baseRef=="string"&&e.baseRef.trim()?e.baseRef.trim():void 0,a=await r.gitExportPatch(t,{...n?{baseRef:n}:{}});return console.log(JSON.stringify({sandbox:c(a.sandbox),patch:a.patch},null,2)),!0}if(o==="git-branch"){let t=i[1],n=typeof e.branch=="string"?e.branch.trim():"",a=typeof e.startPoint=="string"&&e.startPoint.trim()?e.startPoint.trim():void 0;if(!t||!n)throw new Error("usage: sandbox git-branch <sandboxId> --branch <name> [--create] [--start-point <ref>]");let s=await r.gitBranch(t,{branch:n,create:g(e.create),...a?{startPoint:a}:{}});return console.log(JSON.stringify({sandbox:c(s.sandbox),branch:s.branch},null,2)),!0}if(o==="git-commit"){let t=i[1],n=typeof e.message=="string"?e.message.trim():"",a=g(e.all),d=(typeof e.paths=="string"?e.paths:typeof e.path=="string"?e.path:"").split(",").map(f=>f.trim()).filter(Boolean);if(!t||!n||!a&&d.length===0)throw new Error('usage: sandbox git-commit <sandboxId> --message "..." [--all|--paths <csv>]');let l=await r.gitCommit(t,{message:n,...a?{all:!0}:{paths:d}});return console.log(JSON.stringify({sandbox:c(l.sandbox),commit:l.commit},null,2)),!0}if(o==="git-pull"){let t=i[1];if(!t)throw new Error("usage: sandbox git-pull <sandboxId> [--remote origin] [--branch main] [--rebase|--ff-only false]");let n=typeof e.remote=="string"&&e.remote.trim()?e.remote.trim():void 0,a=typeof e.branch=="string"&&e.branch.trim()?e.branch.trim():void 0,s=await r.gitPull(t,{...n?{remote:n}:{},...a?{branch:a}:{},...e.rebase!==void 0?{rebase:g(e.rebase)}:{},...e.ffOnly!==void 0?{ffOnly:g(e.ffOnly)}:{}});return console.log(JSON.stringify({sandbox:c(s.sandbox),pull:s.pull},null,2)),!0}if(o==="git-push"){let t=i[1];if(!t)throw new Error("usage: sandbox git-push <sandboxId> [--remote origin] [--branch main] [--set-upstream] [--force-with-lease]");let n=typeof e.remote=="string"&&e.remote.trim()?e.remote.trim():void 0,a=typeof e.branch=="string"&&e.branch.trim()?e.branch.trim():void 0,s=await r.gitPush(t,{...n?{remote:n}:{},...a?{branch:a}:{},...e.setUpstream!==void 0?{setUpstream:g(e.setUpstream)}:{},...e.forceWithLease!==void 0?{forceWithLease:g(e.forceWithLease)}:{}});return console.log(JSON.stringify({sandbox:c(s.sandbox),push:s.push},null,2)),!0}return!1}b($,"handleSandboxGitCommand");async function H(r,o,e,i){if(o==="process-start"){let t=i[1],n=(typeof e.command=="string"?e.command:null)||i.slice(2).join(" ");if(!t||!n.trim())throw new Error("usage: sandbox process-start <sandboxId> --command <command>");let a=m(e.timeoutSeconds,"timeout-seconds"),s=await r.startProcess(t,{command:n.trim(),...a!==void 0?{timeoutSeconds:a}:{}});return console.log(JSON.stringify({sandbox:c(s.sandbox),process:s.process},null,2)),!0}if(o==="process-list"){let t=i[1];if(!t)throw new Error("usage: sandbox process-list <sandboxId>");let n=await r.listProcesses(t);return console.log(JSON.stringify({sandbox:c(n.sandbox),processes:n.processes},null,2)),!0}if(o==="process-get"){let t=i[1],n=i[2];if(!t||!n)throw new Error("usage: sandbox process-get <sandboxId> <processId> [--since <cursor>]");let a=m(e.since,"since"),s=await r.getProcess(t,n,{...a!==void 0?{since:a}:{}});return console.log(JSON.stringify({sandbox:c(s.sandbox),process:s.process,output:s.output,cursor:s.cursor,completed:s.completed},null,2)),!0}if(o==="process-stop"){let t=i[1],n=i[2];if(!t||!n)throw new Error("usage: sandbox process-stop <sandboxId> <processId>");let a=await r.stopProcess(t,n);return console.log(JSON.stringify({sandbox:c(a.sandbox),process:a.process},null,2)),!0}if(o==="process-stream"){let t=i[1],n=i[2];if(!t||!n)throw new Error("usage: sandbox process-stream <sandboxId> <processId> [--since <cursor>]");let a=m(e.since,"since");return await r.streamProcessOutput(t,n,{...a!==void 0?{since:a}:{}}),!0}if(o==="pty-start"){let t=i[1];if(!t)throw new Error("usage: sandbox pty-start <sandboxId> [--command <command>]");let n=(typeof e.command=="string"?e.command:null)||i.slice(2).join(" "),a=m(e.timeoutSeconds,"timeout-seconds"),s=m(e.rows,"rows"),d=m(e.cols,"cols"),l=await r.startPty(t,{...n.trim()?{command:n.trim()}:{},...a!==void 0?{timeoutSeconds:a}:{},...s!==void 0?{rows:s}:{},...d!==void 0?{cols:d}:{}});return console.log(JSON.stringify({sandbox:c(l.sandbox),pty:l.pty},null,2)),!0}if(o==="pty-list"){let t=i[1];if(!t)throw new Error("usage: sandbox pty-list <sandboxId>");let n=await r.listPtys(t);return console.log(JSON.stringify({sandbox:c(n.sandbox),ptys:n.ptys},null,2)),!0}if(o==="pty-get"){let t=i[1],n=i[2];if(!t||!n)throw new Error("usage: sandbox pty-get <sandboxId> <ptyId> [--since <cursor>]");let a=m(e.since,"since"),s=await r.getPty(t,n,{...a!==void 0?{since:a}:{}});return console.log(JSON.stringify({sandbox:c(s.sandbox),pty:s.pty,output:s.output,cursor:s.cursor,completed:s.completed},null,2)),!0}if(o==="pty-write"){let t=i[1],n=i[2],a=typeof e.inputBase64=="string"?e.inputBase64.trim():"",s=(typeof e.input=="string"?e.input:null)||i.slice(3).join(" ");if(!t||!n||!a&&!s)throw new Error("usage: sandbox pty-write <sandboxId> <ptyId> --input <text>");let d=await r.writePtyInput(t,n,a?{dataBase64:a}:s);return console.log(JSON.stringify({sandbox:c(d.sandbox),pty:d.pty},null,2)),!0}if(o==="pty-stop"){let t=i[1],n=i[2];if(!t||!n)throw new Error("usage: sandbox pty-stop <sandboxId> <ptyId>");let a=await r.stopPty(t,n);return console.log(JSON.stringify({sandbox:c(a.sandbox),pty:a.pty},null,2)),!0}if(o==="pty-stream"){let t=i[1],n=i[2];if(!t||!n)throw new Error("usage: sandbox pty-stream <sandboxId> <ptyId> [--since <cursor>]");let a=m(e.since,"since");return await r.streamPtyOutput(t,n,{...a!==void 0?{since:a}:{}}),!0}return!1}b(H,"handleSandboxProcessCommand");async function z(r,o,e,i){if(o==="replays"||o==="replay-list"){let t=typeof e.teamId=="string"?e.teamId.trim():"",n=typeof e.projectId=="string"?e.projectId.trim():"",a=await r.listReplays({...t?{teamId:t}:{},...n?{projectId:n}:{}});if(g(e.json))return console.log(JSON.stringify(a,null,2)),!0;if(a.replays.length===0)return console.log("no sandbox replays found"),!0;for(let s of a.replays)console.log(v(s));return!0}if(o==="replay-start"||o==="start-replay"){let t=await r.startReplay(M(e));return console.log(JSON.stringify(t,null,2)),!0}if(o==="replay-get"||o==="get-replay"){let t=i[1];if(!t)throw new Error("usage: sandbox replay-get <replayId> [--team-id <id>]");let n=typeof e.teamId=="string"?e.teamId.trim():"",a=typeof e.projectId=="string"?e.projectId.trim():"",s=await r.getReplay(t,{...n?{teamId:n}:{},...a?{projectId:a}:{}});return console.log(JSON.stringify(s,null,2)),!0}if(o==="replay-logs"||o==="logs-replay"){let t=i[1];if(!t)throw new Error("usage: sandbox replay-logs <replayId> [--team-id <id>]");let n=typeof e.teamId=="string"?e.teamId.trim():"",a=typeof e.projectId=="string"?e.projectId.trim():"",s=await r.getReplayLogs(t,{...n?{teamId:n}:{},...a?{projectId:a}:{}});for(let d of s.logs)console.log(d);return!0}if(o==="replay-artifacts"||o==="artifacts-replay"){let t=i[1];if(!t)throw new Error("usage: sandbox replay-artifacts <replayId> [--team-id <id>]");let n=typeof e.teamId=="string"?e.teamId.trim():"",a=typeof e.projectId=="string"?e.projectId.trim():"",s=await r.getReplayArtifacts(t,{...n?{teamId:n}:{},...a?{projectId:a}:{}});return console.log(JSON.stringify({replayId:s.replayId,artifacts:s.artifacts.map(q)},null,2)),!0}if(o==="replay-cancel"||o==="cancel-replay"){let t=i[1];if(!t)throw new Error("usage: sandbox replay-cancel <replayId> [--team-id <id>]");let n=typeof e.teamId=="string"?e.teamId.trim():"",a=typeof e.projectId=="string"?e.projectId.trim():"",s=await r.cancelReplay(t,{...n?{teamId:n}:{},...a?{projectId:a}:{}});return console.log(JSON.stringify(s,null,2)),!0}if(o==="replay-watch"||o==="watch-replay"){let t=i[1];if(!t)throw new Error("usage: sandbox replay-watch <replayId> [--team-id <id>]");let n=typeof e.teamId=="string"?e.teamId.trim():"",a=typeof e.projectId=="string"?e.projectId.trim():"",s=m(e.intervalMs,"interval-ms")??5e3,d=m(e.timeoutMs,"timeout-ms")??900*1e3,l=Date.now(),f=new Set;for(;Date.now()-l<=d;){let u=await r.getReplay(t,{...n?{teamId:n}:{},...a?{projectId:a}:{}});for(let p of u.replay.logs)f.has(p)||(f.add(p),console.log(p));if(u.replay.state==="succeeded"||u.replay.state==="failed"||u.replay.state==="canceled"){if(console.log(v(u.replay)),u.replay.state!=="succeeded")throw new Error(`sandbox replay ${u.replay.state}: ${u.replay.error??"no error"}`);return!0}await new Promise(p=>setTimeout(p,s))}throw new Error(`sandbox replay did not finish within ${d}ms`)}return!1}b(z,"handleSandboxReplayCommand");async function G(r,o,e,i){if(o==="runtime-list"){let t=typeof e.teamId=="string"?e.teamId.trim():"",n=typeof e.projectId=="string"?e.projectId.trim():"",a=typeof e.agentId=="string"?e.agentId.trim():"",s=await r.listSandboxRuntimes({...t?{teamId:t}:{},...n?{projectId:n}:{},...a?{agentId:a}:{}});return console.log(JSON.stringify({runtimes:s},null,2)),!0}if(o==="runtime-get"){let t=i[1]?.trim();if(!t)throw new Error("usage: sandbox runtime-get <runtimeId>");let n=await r.getSandboxRuntime(t);return console.log(JSON.stringify({runtime:n},null,2)),!0}if(o==="runtime-events"){let t=i[1]?.trim();if(!t)throw new Error("usage: sandbox runtime-events <runtimeId>");return console.log(JSON.stringify(await r.listSandboxRuntimeEvents(t),null,2)),!0}if(o==="runtime-status"){let t=i[1]?.trim(),n=typeof e.status=="string"&&e.status.trim()?e.status.trim():"",a=Number(e.expectedVersion),s=typeof e.summary=="string"&&e.summary.trim()?e.summary.trim():void 0;if(!t||!n||!Number.isInteger(a))throw new Error("usage: sandbox runtime-status <runtimeId> --status <status> --expected-version <n>");let d=await r.updateSandboxRuntimeStatus(t,{status:n,expectedVersion:a,...s?{summary:s}:{}});return console.log(JSON.stringify({runtime:d},null,2)),!0}if(o==="runtime-event"){let t=i[1]?.trim(),n=typeof e.type=="string"&&e.type.trim()?e.type.trim():"",a=typeof e.summary=="string"&&e.summary.trim()?e.summary.trim():void 0,s=typeof e.payload=="string"&&e.payload.trim()?w(e.payload,"payload"):void 0,d=typeof e.lifecycleHint=="string"&&e.lifecycleHint.trim()?w(e.lifecycleHint,"lifecycle-hint"):void 0;if(!t||!n)throw new Error("usage: sandbox runtime-event <runtimeId> --type <eventType> [--summary <text>] [--payload <json>] [--lifecycle-hint <json>]");return console.log(JSON.stringify(await r.emitSandboxRuntimeEvent(t,{type:n,...a?{summary:a}:{},...s?{payload:s}:{},...d?{lifecycleHint:d}:{}}),null,2)),!0}if(o==="runtime-preserve-source"||o==="runtime-preserve"){let t=i[1]?.trim(),n=typeof e.teamId=="string"&&e.teamId.trim()?e.teamId.trim():"",a=typeof e.sandboxId=="string"&&e.sandboxId.trim()?e.sandboxId.trim():"",s=typeof e.message=="string"&&e.message.trim()?e.message.trim():"";if(!t)throw new Error("usage: sandbox runtime-preserve-source <runtimeId> [--team-id <id>] [--sandbox-id <id>] [--message <text>]");return console.log(JSON.stringify(await r.runtimes.preserveSource(t,{...a?{sandboxId:a}:{},...s?{message:s}:{}},{...n?{teamId:n}:{}}),null,2)),!0}return!1}b(G,"handleSandboxRuntimeCommand");async function D(r,o,e,i){if(o==="secrets"||o==="secret-list"){let t=typeof e.teamId=="string"?e.teamId.trim():"",n=await r.listSecrets({...t?{teamId:t}:{}});if(g(e.json))return console.log(JSON.stringify({secrets:n.map(y)},null,2)),!0;if(n.length===0)return console.log("no sandbox secrets found"),!0;for(let a of n)console.log(`${a.name} ${a.status} v${a.currentVersion??"current"} ${a.secretRef}`);return!0}if(o==="secret-create"){let t=typeof e.teamId=="string"?e.teamId.trim():"",n=typeof e.name=="string"?e.name.trim():"",a=typeof e.description=="string"&&e.description.trim()?e.description.trim():void 0,s=e.scope==="project"||e.scope==="template"||e.scope==="team"?e.scope:void 0;if(!n)throw new Error("usage: sandbox secret-create --name <ENV_NAME> [--team-id <id>] [--stdin]");let d=await S(e,`Value for ${n}`),l=await r.createSecret({...t?{teamId:t}:{},name:n,value:d,...a?{description:a}:{},...s?{scope:s}:{}});return console.log(JSON.stringify({secret:y(l)},null,2)),!0}if(o==="secret-rotate"){let t=i[1],n=typeof e.teamId=="string"?e.teamId.trim():"";if(!t)throw new Error("usage: sandbox secret-rotate <secretId> [--team-id <id>] [--stdin]");let a=await S(e,"New secret value"),s=await r.rotateSecret(t,{...n?{teamId:n}:{},value:a});return console.log(JSON.stringify({secret:y(s)},null,2)),!0}if(o==="secret-attach"){let t=i[1],n=typeof e.teamId=="string"?e.teamId.trim():"",a=typeof e.envName=="string"?e.envName.trim():"",s=e.targetType==="sandbox"||e.targetType==="template"||e.targetType==="project"||e.targetType==="agent"||e.targetType==="replay"?e.targetType:void 0,d=typeof e.targetId=="string"?e.targetId.trim():"";if(!t||!a||!s||!d)throw new Error("usage: sandbox secret-attach <secretId> --env-name <ENV_NAME> --target-type sandbox|project|agent|template|replay --target-id <id>");let l=await r.attachSecret(t,{...n?{teamId:n}:{},envName:a,targetType:s,targetId:d});return console.log(JSON.stringify({secret:y(l)},null,2)),!0}if(o==="secret-revoke"||o==="secret-delete"){let t=i[1],n=typeof e.teamId=="string"?e.teamId.trim():"";if(!t)throw new Error(`usage: sandbox ${o} <secretId> [--team-id <id>]`);let a=o==="secret-revoke"?await r.revokeSecret(t,{...n?{teamId:n}:{}}):await r.deleteSecret(t,{...n?{teamId:n}:{}});return console.log(JSON.stringify({secret:y(a)},null,2)),!0}return!1}b(D,"handleSandboxSecretsCommand");async function _(r,o,e,i){if(o==="published-snapshot-builds"||o==="published-snapshot-build-list"||o==="template-builds"||o==="template-build-list"){let t=typeof e.teamId=="string"?e.teamId.trim():"";if(!t)throw new Error("usage: sandbox published-snapshot-builds --team-id <id>");let n=await r.listPublishedSnapshotBuilds({teamId:t});if(g(e.json))return console.log(JSON.stringify({builds:n},null,2)),!0;if(n.length===0)return console.log("no published snapshot builds found"),!0;for(let a of n)console.log(O(a));return!0}if(o==="published-snapshot-build-create"||o==="create-published-snapshot-build"||o==="template-build-create"||o==="create-template-build"){let t=await r.createPublishedSnapshotBuild(F(e));return console.log(JSON.stringify({build:t},null,2)),!0}if(o==="published-snapshot-build-get"||o==="get-published-snapshot-build"||o==="template-build-get"||o==="get-template-build"){let t=i[1];if(!t)throw new Error("usage: sandbox published-snapshot-build-get <buildId>");let n=await r.getPublishedSnapshotBuild(t);return console.log(JSON.stringify({build:n},null,2)),!0}if(o==="published-snapshot-build-logs"||o==="published-snapshot-build-log"||o==="template-build-logs"||o==="template-build-log"){let t=i[1];if(!t)throw new Error("usage: sandbox published-snapshot-build-logs <buildId>");let n=await r.getPublishedSnapshotBuildLogs(t);if(g(e.json))return console.log(JSON.stringify(n,null,2)),!0;for(let a of n.logs)console.log(a);return!0}if(o==="published-snapshot-build-cancel"||o==="cancel-published-snapshot-build"||o==="template-build-cancel"||o==="cancel-template-build"){let t=i[1];if(!t)throw new Error("usage: sandbox published-snapshot-build-cancel <buildId>");let n=await r.cancelPublishedSnapshotBuild(t);return console.log(JSON.stringify({build:n},null,2)),!0}if(o==="published-snapshot-build-watch"||o==="watch-published-snapshot-build"||o==="template-build-watch"||o==="watch-template-build"){let t=i[1];if(!t)throw new Error("usage: sandbox published-snapshot-build-watch <buildId>");let n=m(e.intervalMs,"interval-ms")??5e3,a=m(e.timeoutMs,"timeout-ms")??900*1e3,s=Date.now(),d=new Set;for(;Date.now()-s<=a;){let[l,f]=await Promise.all([r.getPublishedSnapshotBuild(t),r.getPublishedSnapshotBuildLogs(t)]);for(let u of f.logs)d.has(u)||(d.add(u),console.log(u));if(l.status==="succeeded"||l.status==="failed"||l.status==="cancelled"){if(console.log(O(l)),l.status!=="succeeded")throw new Error(`published snapshot build ${l.status}: ${l.error??"no error"}`);return!0}await new Promise(u=>setTimeout(u,n))}throw new Error(`published snapshot build did not finish within ${a}ms`)}return!1}b(_,"handleSandboxTemplateBuildsCommand");function I(r){return g(r.async)||g(r.respondAsync)}b(I,"parseSandboxAsyncOption");async function qe(r,o){let e=o[0]||"list",i=await N(r);if(e==="get"){let t=o[1];if(!t||o.length!==2)throw new Error("usage: sandbox get <sandboxId>");console.log(JSON.stringify({sandbox:await i.get(t)},null,2));return}if(e==="list"){let t=typeof r.teamId=="string"?r.teamId.trim():"",n=typeof r.projectId=="string"?r.projectId.trim():"",a=typeof r.agentId=="string"?r.agentId.trim():"",s=await i.list({...t?{teamId:t}:{},...n?{projectId:n}:{},...a?{agentId:a}:{}});if(s.length===0){console.log("no sandboxes found");return}for(let d of s)console.log(k(d));return}if(e==="mcp-config"||e==="mcp-url"){let t=i.mcpServerConfig();console.log(JSON.stringify({...t,headers:{"openpond-api-key":"set OPENPOND_API_KEY or use your saved openpond profile"}},null,2));return}if(!await G(i,e,r,o)){if(e==="pricing"){let t=await i.pricing();console.log(JSON.stringify(t,null,2));return}if(e==="costs"){let t=typeof r.teamId=="string"?r.teamId.trim():"",n=typeof r.projectId=="string"?r.projectId.trim():"",a=typeof r.agentId=="string"?r.agentId.trim():"",s=await i.costs({...t?{teamId:t}:{},...n?{projectId:n}:{},...a?{agentId:a}:{}});if(g(r.summary)){console.log(JSON.stringify({costs:{teamId:s.costs.teamId,ownerUserId:s.costs.ownerUserId,generatedAt:s.costs.generatedAt,summary:s.costs.summary,lineItems:s.costs.lineItems,tiers:s.costs.pricing.tiers.map(d=>({key:d.key,resources:d.resources,keepRunningEstimate:d.keepRunningEstimate}))}},null,2));return}console.log(JSON.stringify(s,null,2));return}if(!await D(i,e,r,o)){if(e==="snapshots"||e==="snapshot-catalog"){let t=typeof r.teamId=="string"?r.teamId.trim():"",n=typeof r.projectId=="string"?r.projectId.trim():"",a=typeof r.agentId=="string"?r.agentId.trim():"",s=typeof r.query=="string"&&r.query.trim()?r.query.trim():typeof r.q=="string"&&r.q.trim()?r.q.trim():"",d=typeof r.tag=="string"?r.tag.trim():"",l=typeof r.useCase=="string"?r.useCase.trim():"",f=typeof r.replayState=="string"?r.replayState.trim():"",u=await i.snapshotCatalog({...t?{teamId:t}:{},...n?{projectId:n}:{},...a?{agentId:a}:{},...s?{q:s}:{},...d?{tag:d}:{},...l?{useCase:l}:{},...f==="draft"||f==="validated"||f==="published"?{replayState:f}:{}});if(u.snapshots.length===0){console.log("no sandbox snapshots found");return}for(let p of u.snapshots)console.log(R(p));return}if(e==="published-snapshots"||e==="published-snapshot-catalog"||e==="templates"||e==="template-catalog"){let t=typeof r.teamId=="string"?r.teamId.trim():"",n=typeof r.projectId=="string"?r.projectId.trim():"",a=typeof r.query=="string"&&r.query.trim()?r.query.trim():typeof r.q=="string"&&r.q.trim()?r.q.trim():"",s=typeof r.name=="string"&&r.name.trim()?r.name.trim():typeof r.templateName=="string"&&r.templateName.trim()?r.templateName.trim():"",d=typeof r.version=="string"?r.version.trim():"",l=typeof r.tag=="string"?r.tag.trim():"",f=typeof r.useCase=="string"?r.useCase.trim():"",u=await i.publishedSnapshots({...t?{teamId:t}:{},...n?{projectId:n}:{},...a?{q:a}:{},...s?{name:s}:{},...d?{version:d}:{},...l?{tag:l}:{},...f?{useCase:f}:{}});if(u.publishedSnapshots.length===0){console.log("no published snapshots found");return}for(let p of u.publishedSnapshots)console.log(B(p));return}if(!(await _(i,e,r,o)||await z(i,e,r,o))){if(e==="run-published-snapshot"||e==="published-snapshot-run"||e==="template-launch"||e==="launch-template"){let t=typeof r.teamId=="string"?r.teamId.trim():"",n=typeof r.projectId=="string"?r.projectId.trim():"",a=typeof r.snapshotId=="string"&&r.snapshotId.trim()?r.snapshotId.trim():typeof r.snapshot=="string"&&r.snapshot.trim()?r.snapshot.trim():"",s=typeof r.templateName=="string"&&r.templateName.trim()?r.templateName.trim():typeof r.name=="string"&&r.name.trim()?r.name.trim():typeof o[1]=="string"&&o[1].trim()?o[1].trim():"",d=typeof r.version=="string"?r.version.trim():"",l=typeof r.useCase=="string"?r.useCase.trim():"";if(!a&&!s&&!l)throw new Error("usage: sandbox run-published-snapshot [--snapshot-id <id>|--name <name>|--use-case <id>] [--version <v>]");let f=typeof r.budgetUsd=="string"&&r.budgetUsd.trim()?r.budgetUsd.trim():typeof r.budget=="string"&&r.budget.trim()?r.budget.trim():"",u=await i.runPublishedSnapshot({...t?{teamId:t}:{},...n?{projectId:n}:{},...a?{snapshotId:a}:{},...s?{templateName:s}:{},...d?{version:d}:{},...l?{useCase:l}:{},...f?{budget:{maxUsd:f}}:{},metadata:{source:"openpond-code-published-snapshot-run"}});console.log(JSON.stringify(u,null,2));return}if(e==="snapshot-fork"||e==="fork-snapshot"){let t=o[1];if(!t)throw new Error("snapshot-fork requires <snapshotId>");let n=typeof r.teamId=="string"?r.teamId.trim():"",a=typeof r.projectId=="string"?r.projectId.trim():"",s=typeof r.budgetUsd=="string"&&r.budgetUsd.trim()?r.budgetUsd.trim():typeof r.budget=="string"&&r.budget.trim()?r.budget.trim():"",d=await i.forkSnapshot(t,{...n?{teamId:n}:{},...a?{projectId:a}:{},...s?{budget:{maxUsd:s}}:{},metadata:{source:"openpond-code-snapshot-fork",templateSnapshotId:t}});console.log(JSON.stringify(d,null,2));return}if(e==="snapshot-create"||e==="create-snapshot"){let t=o[1];if(!t)throw new Error("usage: sandbox snapshot-create <sandboxId> --name <name>");let n=await i.createSnapshot(t,A(r));console.log(JSON.stringify(n,null,2));return}if(e==="snapshot-validate"||e==="validate-snapshot"){let t=o[1],n=o[2];if(!t||!n)throw new Error("snapshot-validate requires <sandboxId> <snapshotId>");let a=L(r.cleanup),s=await i.validateSnapshot(t,n,a?{cleanup:a}:{});console.log(JSON.stringify(s,null,2));return}if(e==="snapshot-publish"||e==="publish-snapshot"){let t=o[1],n=o[2];if(!t||!n)throw new Error("snapshot-publish requires <sandboxId> <snapshotId>");let a=await i.publishSnapshot(t,n);console.log(JSON.stringify(a,null,2));return}if(e==="integration-connections"){let t=typeof r.teamId=="string"?r.teamId.trim():"",n=typeof r.projectId=="string"?r.projectId.trim():"",a=typeof r.agentId=="string"?r.agentId.trim():"",s=r.status==="active"||r.status==="revoked"||r.status==="error"||r.status==="all"?r.status:void 0,d=await i.integrationConnections({...t?{teamId:t}:{},...n?{projectId:n}:{},...a?{agentId:a}:{},...s?{status:s}:{}});console.log(JSON.stringify(d,null,2));return}if(e==="create"){let t=await j(i,U(r));console.log(JSON.stringify({sandbox:c(t.sandbox),...t.runtime?{runtime:t.runtime}:{}},null,2));return}if(e==="exec"){let t=o[1],n=(typeof r.command=="string"?r.command:null)||o.slice(2).join(" ");if(!t||!n.trim())throw new Error("usage: sandbox exec <sandboxId> --command <command>");let a=m(r.timeoutSeconds,"timeout-seconds"),s=await i.exec(t,{command:n.trim(),...a!==void 0?{timeoutSeconds:a}:{}});console.log(JSON.stringify({sandbox:c(s.sandbox),command:s.command},null,2));return}if(e==="port"||e==="preview"){let t=o[1],n=m(r.port,"port");if(!t||n===void 0)throw new Error("usage: sandbox port <sandboxId> --port <port>");let a=typeof r.label=="string"?r.label:void 0,s=typeof r.access=="string"?r.access.trim():"";if(s&&s!=="private"&&s!=="public")throw new Error("sandbox port --access must be private or public");let d=s==="public"?"public":"private",l=typeof r.domain=="string"?r.domain.trim():"",f=typeof r.authToken=="string"?r.authToken:"",u=typeof r.authHeader=="string"?r.authHeader.trim():"",p=typeof r.authHeaderValue=="string"?r.authHeaderValue:"";if(f&&(u||p))throw new Error("sandbox port auth options must use either --auth-token or --auth-header with --auth-header-value");if(u&&!p||!u&&p)throw new Error("sandbox port custom header auth requires both --auth-header and --auth-header-value");let x=await i.openPort(t,{port:n,...a?{label:a}:{},access:d,...r["auto-start"]||r.autoStart?{autoStart:!0}:{},...l?{customDomain:l}:{},...f?{authPolicy:{mode:"bearer",token:f}}:{},...u&&p?{authPolicy:{mode:"header",headerName:u,headerValue:p}}:{}});console.log(JSON.stringify(x.preview,null,2));return}if(e==="stop"){let t=o[1];if(!t)throw new Error("usage: sandbox stop <sandboxId> [--fail-on-unpreserved-changes] [--async]");let n=await i.stop(t,{failOnUnpreservedChanges:g(r.failOnUnpreservedChanges),async:I(r)});console.log(JSON.stringify({sandbox:c(n.sandbox),receipt:n.receipt},null,2));return}if(e==="restore"){let t=o[1];if(!t||o.length!==2)throw new Error("usage: sandbox restore <sandboxId> [--operation-id <uuid> --snapshot-id <id> --checkpoint-custody-id <sha256> --expected-source-updated-at <timestamp> --replace-stopped-root]");let n=await i.restore(t,E(r));console.log(JSON.stringify(n,null,2));return}if(e==="start"){let t=o[1];if(!t)throw new Error("usage: sandbox start <sandboxId>");let n=await i.start(t,{...P(r),async:I(r)});console.log(JSON.stringify({sandbox:I(r)?n.sandbox:await C(i,n.sandbox),receipt:n.receipt},null,2));return}if(e==="delete"){let t=o[1];if(!t)throw new Error("usage: sandbox delete <sandboxId> [--fail-on-unpreserved-changes] [--async]");let n=await i.delete(t,{failOnUnpreservedChanges:g(r.failOnUnpreservedChanges),async:I(r)});console.log(JSON.stringify({sandbox:c(n)},null,2));return}if(e==="receipts"){let t=o[1];if(!t)throw new Error("usage: sandbox receipts <sandboxId>");let n=await i.receipts(t);console.log(JSON.stringify({receipts:n},null,2));return}if(e==="logs"){let t=o[1];if(!t)throw new Error("usage: sandbox logs <sandboxId>");let n=await i.logs(t);for(let a of n)console.log(a);return}if(!(await H(i,e,r,o)||await V(i,e,r,o)||await $(i,e,r,o))){if(e==="billing"){let t=o[1];if(!t)throw new Error("usage: sandbox billing <sandboxId>");let n=await i.billing(t,J(r));console.log(JSON.stringify({sandbox:c(n.sandbox),billing:n.billing},null,2));return}if(e==="integration-leases"){let t=o[1];if(!t)throw new Error("usage: sandbox integration-leases <sandboxId>");let n=await i.integrationLeases(t);console.log(JSON.stringify({sandbox:c(n.sandbox),integrationLeases:n.integrationLeases},null,2));return}if(e==="integration-attach"){let t=o[1];if(!t)throw new Error("usage: sandbox integration-attach <sandboxId> --integration-connection <id> --integration-capabilities <csv>");let n=await i.attachIntegrationConnection(t,T(r));console.log(JSON.stringify({sandbox:c(n.sandbox),integrationLeases:n.integrationLeases},null,2));return}if(e==="integration-remove"){let t=o[1],n=typeof r.leaseId=="string"?r.leaseId.trim():"";if(!t||!n)throw new Error("usage: sandbox integration-remove <sandboxId> --lease-id <id>");let a=await i.removeIntegrationLease(t,n);console.log(JSON.stringify({sandbox:c(a.sandbox),integrationLeases:a.integrationLeases},null,2));return}if(e==="smoke"){let t=typeof r.repo=="string"?r.repo.trim():void 0,n=typeof r.budgetUsd=="string"?r.budgetUsd.trim():typeof r.budget=="string"?r.budget.trim():void 0,a=g(r.keep),s=r.preview!==void 0?g(r.preview):!g(r.noPreview),d=g(r.snapshot),l=g(r.fork),f={...t?{repo:t}:{},...n?{budgetUsd:n}:{},keep:a,preview:s,snapshot:d,fork:l};typeof r.expectedMppMode=="string"&&r.expectedMppMode.trim()&&(f.expectedMppMode=r.expectedMppMode.trim());let u=h(r.cpu,"cpu"),p=h(r.memoryGb,"memory-gb"),x=h(r.diskGb,"disk-gb");u!==void 0&&(f.cpu=u),p!==void 0&&(f.memoryGb=p),x!==void 0&&(f.diskGb=x);let W=await i.smoke(f);console.log(JSON.stringify(W,null,2));return}throw new Error("usage: sandbox <list|get|mcp-config|runtime-list|runtime-get|runtime-events|runtime-status|runtime-event|runtime-preserve-source|pricing|costs|secrets|secret-create|secret-rotate|secret-attach|secret-revoke|secret-delete|snapshots|published-snapshots|run-published-snapshot|snapshot-fork|snapshot-validate|snapshot-publish|create|exec|port|preview|stop|start|delete|receipts|logs|billing|process-start|process-list|process-get|process-stop|process-stream|pty-start|pty-list|pty-get|pty-write|pty-stop|pty-stream|upload-file|download-file|list-files|search-files|delete-file|stat-file|mkdir|move-file|git-status|git-diff|git-export-patch|git-branch|git-commit|git-pull|git-push|smoke> [args]")}}}}}b(qe,"runSandboxCommand");export{qe as runSandboxCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{e as w}from"./chunk-APKXXAUF.js";import"./chunk-Q7FBVLLB.js";import"./chunk-4DYWVGVS.js";import"./chunk-4TO743HO.js";import"./chunk-A77DLBR4.js";import{k as u,u as h,w as s}from"./chunk-4BUM6JEC.js";import"./chunk-UGFSAG4U.js";import"./chunk-SSHE6B7Z.js";import"./chunk-WD4KAKEX.js";import"./chunk-2PXKSAG6.js";import"./chunk-ULTV6INR.js";import"./chunk-WGQ3FMRF.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-PNPV2LDE.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{a as m}from"./chunk-AYOMVI7J.js";import"./chunk-V24VHT76.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as t,f as d}from"./chunk-3M53YXEI.js";import"./chunk-4N4EH3RJ.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.js";import"./chunk-6FA3GG5B.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as r}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as c}from"./chunk-FTQLQJQV.js";import{execFile as x}from"node:child_process";import{promisify as y}from"node:util";import{realpath as E}from"node:fs/promises";import{resolve as C}from"node:path";async function Q(o){if(!d(o.allowUpload))throw new Error("Tool capture uploads bounded private tool events. Pass --allow-upload to opt in.");let e=t(o,"client");if(!["claude_code","openpond","codex","opencode"].includes(e))throw new Error("Choose --client claude_code, codex, opencode or openpond.");if(!t(o,"environmentFile"))throw new Error("Provide --environment-file with the actual application, version, and bounded state.");let i=t(o,"tools").split(",").map(v=>v.trim()).filter(Boolean);if(!i.length||new Set(i).size!==i.length)throw new Error("Choose the exact permitted tool names with --tools <comma-separated-names>.");let a=t(o,"projectId");if(!a)throw new Error("Choose an existing private Model with --project-id.");let l=await E(C(t(o,"workspace")||process.cwd())),n=e==="codex"||e==="opencode"?await w(e):e==="claude_code"?(await y(x)("claude",["--version"],{timeout:1e4,maxBuffer:65536})).stdout.trim().split(" ")[0]:h();if(e==="claude_code"&&n!=="2.1.292")throw new Error("This release supports Claude Code 2.1.292. Qualify a changed hook protocol before installation.");if(n==="unknown")throw new Error("Cannot identify this OpenPond release.");let{baseUrl:f,teamId:g}=await m(o),p=`tool-${r({home:s(o),api:new URL(f).origin,teamId:g,projectId:a,workspace:l,client:e,clientVersion:n}).slice(0,40)}`;return u.parse({schemaVersion:"openpond.toolLearningRegistration.v1",operationId:`${p}:register`,installationId:p,projectId:a,machineSourceId:`machine-${r(s(o)).slice(0,40)}`,client:e,clientVersion:n,adapterRelease:{id:"openpond-tool-learning-v1",contentHash:r({protocol:"openpond-tool-learning-v1",client:e,clientVersion:n})},collectionPolicy:{revision:1,permittedTools:i,workspaceRootHashes:[r(l)],permittedFields:["action","intent","state","result_excerpt"],unchangedControls:{numerator:1,denominator:10},maximumEventBytes:65536,maximumEpisodeBytes:2097152,maximumEpisodeEvents:256,maximumQueueBytes:1048576,maximumQueueEvents:256,maximumQueueAgeSeconds:86400,rawRetentionDays:1,purposes:e==="codex"||e==="opencode"?["capture"]:["capture","consultation"],modelUpdates:"requires_separate_review",variantGeneration:"disabled"}})}c(Q,"prepareToolLearningSetup");export{Q as prepareToolLearningSetup};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as g}from"./chunk-AYOMVI7J.js";import"./chunk-V24VHT76.js";import{f as h}from"./chunk-RRWL5BHZ.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as s,f as w,h as d}from"./chunk-3M53YXEI.js";import"./chunk-4N4EH3RJ.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.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{a as b}from"./chunk-JXYJQT5Q.js";import"./chunk-NXN7GJOH.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{once as A}from"node:events";import{setTimeout as O}from"node:timers/promises";async function T(r,p){if(p.length!==1)throw new Error("hosted-hardware does not accept an identifier; use --worker-id or --job-id.");let c=w(r.watch);if(c&&!w(r.json))throw new Error("hosted-hardware --watch requires --json for bounded NDJSON output.");let l=r.intervalMs===void 0?1e3:d(r.intervalMs,"interval-ms")??1e3,f=r.timeoutMs===void 0?15e3:d(r.timeoutMs,"timeout-ms")??15e3;if(l<100||l>6e4||f<1e3||f>6e4)throw new Error("Hardware interval must be 100..60000 ms and timeout 1000..60000 ms.");let{baseUrl:E,teamId:I,headers:S}=await g(r),e=new AbortController,a=i(()=>e.abort(),"abort"),u=i(o=>{o.code==="EPIPE"?a():(a(),process.exitCode=1)},"brokenPipe");process.once("SIGTERM",a),process.once("SIGINT",a),process.stdout.on("error",u);let v=h({baseUrl:E,headers:S,fetch:i((o,t)=>fetch(o,{...t,redirect:"error",signal:AbortSignal.any([e.signal,AbortSignal.timeout(f),...t?.signal?[t.signal]:[]])}),"fetch")}),y={teamId:I,workerId:s(r,"workerId")||void 0,jobId:s(r,"jobId")||void 0,cursor:s(r,"cursor")||void 0,limit:r.limit===void 0?void 0:d(r.limit,"limit")};try{do{let o=Date.now(),t;try{let n=await v.hardwareObservations(y);if(!c){console.log(JSON.stringify(n,null,2));return}t={schemaVersion:"openpond.hardwareWatch.v1",kind:"snapshot",snapshot:n}}catch(n){if(e.signal.aborted)return;if(!c)throw n;t={schemaVersion:"openpond.hardwareWatch.v1",kind:"error",error:b(n)??{code:"HARDWARE_READ_FAILED",message:n instanceof Error?n.message.slice(0,512):"Hardware read failed."}}}let m=JSON.stringify(t)+`
|
|
3
|
-
`;if(Buffer.byteLength(m)>8*1024*1024+1024)throw new Error("Hardware watch record exceeds its wire bound.");process.stdout.write(m)||await A(process.stdout,"drain",{signal:e.signal}),await O(Math.max(0,l-(Date.now()-o)),void 0,{signal:e.signal})}while(!e.signal.aborted)}catch(o){if(!e.signal.aborted)throw o}finally{process.off("SIGTERM",a),process.off("SIGINT",a),process.stdout.off("error",u)}}i(T,"runHardwareObservations");export{T as runHardwareObservations};
|