openpond 0.2.55 → 0.2.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-server.d.ts +10545 -10254
- package/dist/app-server.js +1 -1
- package/dist/chunks/actions-command-QU4H53OG.js +2 -0
- package/dist/chunks/{app-layer-Y2UERCPY.js → app-layer-NSTE5HIT.js} +1 -1
- package/dist/chunks/app-server-connected-apps-JHGWLBXT.js +2 -0
- package/dist/chunks/app-server-evaluations-GJPFWIDA.js +2 -0
- package/dist/chunks/app-server-harness-services-IH4G6POY.js +2 -0
- package/dist/chunks/app-server-runtime-VCRNCNX2.js +2 -0
- package/dist/chunks/apps-BKTOR4F7.js +2 -0
- package/dist/chunks/chunk-25MBPJVY.js +2 -0
- package/dist/chunks/chunk-2D4Y3HNW.js +2 -0
- package/dist/chunks/chunk-2IHO4GDJ.js +2 -0
- package/dist/chunks/chunk-2QUCCP6Z.js +2 -0
- package/dist/chunks/chunk-3K4VVB7S.js +6 -0
- package/dist/chunks/chunk-3QIB5FXI.js +10 -0
- package/dist/chunks/chunk-3RCRSMWZ.js +17 -0
- package/dist/chunks/chunk-3VUATFZD.js +2 -0
- package/dist/chunks/chunk-3Z47M3YY.js +2 -0
- package/dist/chunks/{chunk-UA5DA5I2.js → chunk-4D7HWVWD.js} +1 -1
- package/dist/chunks/chunk-4EPSHPZL.js +2 -0
- package/dist/chunks/chunk-4NESNOK5.js +2 -0
- package/dist/chunks/chunk-523TE4BI.js +2 -0
- package/dist/chunks/{chunk-B7QDZPNX.js → chunk-5MCNZCVQ.js} +1 -1
- package/dist/chunks/chunk-6FDWRG55.js +2 -0
- package/dist/chunks/{chunk-DLVPSCTB.js → chunk-6QSSIT62.js} +1 -1
- package/dist/chunks/chunk-6ZFPQYHG.js +2 -0
- package/dist/chunks/chunk-74IIXVAE.js +2 -0
- package/dist/chunks/chunk-74ZXXBGN.js +6 -0
- package/dist/chunks/chunk-773TH7FN.js +2 -0
- package/dist/chunks/chunk-7E6T7GP5.js +2 -0
- package/dist/chunks/chunk-7ED24PP6.js +2 -0
- package/dist/chunks/chunk-7HPDGZOR.js +86 -0
- package/dist/chunks/chunk-7KWD2I6W.js +2 -0
- package/dist/chunks/chunk-7PXZ4X4P.js +2 -0
- package/dist/chunks/chunk-A6USMRWK.js +2 -0
- package/dist/chunks/chunk-ABD5M2D2.js +2 -0
- package/dist/chunks/chunk-ACYFMLWG.js +10 -0
- package/dist/chunks/chunk-AN525SPP.js +6 -0
- package/dist/chunks/chunk-APB2STJK.js +2 -0
- package/dist/chunks/chunk-AY64VY4E.js +2 -0
- package/dist/chunks/{chunk-G6JMQGX7.js → chunk-B7RFL4N2.js} +1 -1
- package/dist/chunks/chunk-BLXEAZCQ.js +12 -0
- package/dist/chunks/chunk-D74JEERO.js +5 -0
- package/dist/chunks/{chunk-U2YMBCX7.js → chunk-DARVPBZ4.js} +1 -1
- package/dist/chunks/chunk-DBK66CJP.js +8 -0
- package/dist/chunks/chunk-DDMZSZFL.js +1 -0
- package/dist/chunks/chunk-DIO5CB6U.js +2 -0
- package/dist/chunks/chunk-DMFUEUAZ.js +5 -0
- package/dist/chunks/chunk-DMVD2RFZ.js +2 -0
- package/dist/chunks/chunk-DUURYZOI.js +2 -0
- package/dist/chunks/chunk-DZUAT3TP.js +1 -0
- package/dist/chunks/chunk-EIEZHFIW.js +6 -0
- package/dist/chunks/chunk-EIRYMSEG.js +19 -0
- package/dist/chunks/{chunk-R27YGT77.js → chunk-EKM2D7JU.js} +1 -1
- package/dist/chunks/chunk-EQFGBL3O.js +2 -0
- package/dist/chunks/chunk-EYPCBBMS.js +2 -0
- package/dist/chunks/chunk-F4KOGISR.js +10 -0
- package/dist/chunks/chunk-F74GBN6K.js +2 -0
- package/dist/chunks/chunk-FEAKTSRS.js +2 -0
- package/dist/chunks/chunk-FFRFSDBM.js +2 -0
- package/dist/chunks/chunk-FTEOCCPB.js +23 -0
- package/dist/chunks/chunk-FUOEIDMA.js +8 -0
- package/dist/chunks/{chunk-BQAF5P7K.js → chunk-FV2R5RUN.js} +2 -2
- package/dist/chunks/chunk-FWIPHEVA.js +12 -0
- package/dist/chunks/chunk-FY5KHLMW.js +2 -0
- package/dist/chunks/chunk-G3RXYI2L.js +6 -0
- package/dist/chunks/chunk-GJ2ZJFDD.js +2 -0
- package/dist/chunks/chunk-GLDYJM7O.js +1 -0
- package/dist/chunks/chunk-GPVCOEUH.js +2 -0
- package/dist/chunks/chunk-GW766ZSO.js +5 -0
- package/dist/chunks/chunk-GWCHDF2C.js +4 -0
- package/dist/chunks/chunk-GZ7M5XBP.js +2 -0
- package/dist/chunks/chunk-H6IW2R22.js +140 -0
- package/dist/chunks/chunk-HCYX6RHP.js +2 -0
- package/dist/chunks/chunk-HDL5YSAA.js +2 -0
- package/dist/chunks/chunk-HIOKCIL7.js +2 -0
- package/dist/chunks/{chunk-IODUCRBA.js → chunk-HY3GOBFJ.js} +1 -1
- package/dist/chunks/chunk-HZEIRHEB.js +2 -0
- package/dist/chunks/chunk-I2NXNMRZ.js +2 -0
- package/dist/chunks/chunk-I7AQMAQI.js +33 -0
- package/dist/chunks/chunk-IZ6DLEVY.js +2 -0
- package/dist/chunks/chunk-J2TWKFML.js +1871 -0
- package/dist/chunks/chunk-JDEEWOD7.js +2 -0
- package/dist/chunks/chunk-JFXWI3EN.js +6 -0
- package/dist/chunks/chunk-JYKRR7E5.js +5 -0
- package/dist/chunks/chunk-KCJVFLBB.js +2 -0
- package/dist/chunks/{chunk-5CMKGD43.js → chunk-KG325WTN.js} +1 -1
- package/dist/chunks/chunk-KUERKVEU.js +3 -0
- package/dist/chunks/chunk-KVTBX2UP.js +2 -0
- package/dist/chunks/chunk-L3KS6MOV.js +2 -0
- package/dist/chunks/chunk-L6K7ERG5.js +2 -0
- package/dist/chunks/{chunk-MH3LHSGX.js → chunk-LQQNBVEB.js} +1 -1
- package/dist/chunks/{chunk-BTI4N7YO.js → chunk-M4JWQSV7.js} +1 -1
- package/dist/chunks/chunk-MQULU465.js +2 -0
- package/dist/chunks/chunk-MULXCKG7.js +10 -0
- package/dist/chunks/chunk-N4FFQPLR.js +2 -0
- package/dist/chunks/chunk-N73MU2C3.js +2 -0
- package/dist/chunks/chunk-NHQ36THU.js +3 -0
- package/dist/chunks/chunk-O6ULLQJ6.js +2 -0
- package/dist/chunks/chunk-O72BSKSO.js +2 -0
- package/dist/chunks/chunk-OGDADQGH.js +143 -0
- package/dist/chunks/chunk-OIUTWU6K.js +2 -0
- package/dist/chunks/chunk-OLLLZVHF.js +2 -0
- package/dist/chunks/chunk-OPNRWESL.js +3 -0
- package/dist/chunks/chunk-OQKJGTTO.js +4 -0
- package/dist/chunks/chunk-OQPJ7FJF.js +9 -0
- package/dist/chunks/{chunk-TERVLCRG.js → chunk-OS3LO5J3.js} +1 -1
- package/dist/chunks/chunk-OUVIWDL2.js +2 -0
- package/dist/chunks/chunk-PCSIOUHF.js +7 -0
- package/dist/chunks/chunk-PF5R6CMP.js +21 -0
- package/dist/chunks/chunk-PPAPVGJP.js +3 -0
- package/dist/chunks/chunk-PRGBLQVH.js +2 -0
- package/dist/chunks/chunk-PSGGOZFM.js +2 -0
- package/dist/chunks/chunk-PUZQU66L.js +2 -0
- package/dist/chunks/{chunk-NOTXPD2T.js → chunk-Q2QL6UWN.js} +1 -1
- package/dist/chunks/chunk-Q4TBTRIG.js +2 -0
- package/dist/chunks/chunk-Q5LEXXJG.js +16 -0
- package/dist/chunks/chunk-QDC4OW3S.js +2 -0
- package/dist/chunks/chunk-QEFHOJFE.js +7 -0
- package/dist/chunks/chunk-QHWGQ3A4.js +5 -0
- package/dist/chunks/chunk-QIKWJ2AA.js +11 -0
- package/dist/chunks/chunk-QNG27G3T.js +6 -0
- package/dist/chunks/chunk-QOGJAQDO.js +3 -0
- package/dist/chunks/chunk-QOTVNQDI.js +4 -0
- package/dist/chunks/{chunk-NNIRIUSY.js → chunk-RAXOSUSW.js} +1 -1
- package/dist/chunks/chunk-RNIAFXMB.js +50 -0
- package/dist/chunks/{chunk-SHQOIROR.js → chunk-S5ESN275.js} +3 -3
- package/dist/chunks/chunk-SDAUS5PY.js +2 -0
- package/dist/chunks/chunk-SDXFLO7J.js +5 -0
- package/dist/chunks/chunk-SH5CBAFC.js +2 -0
- package/dist/chunks/chunk-SWUEFLOH.js +2 -0
- package/dist/chunks/chunk-SYUKES6H.js +3 -0
- package/dist/chunks/chunk-T5AACNJI.js +2 -0
- package/dist/chunks/chunk-TRQQNFMO.js +4 -0
- package/dist/chunks/chunk-TVQAPBLZ.js +2 -0
- package/dist/chunks/chunk-UCPGRPWY.js +2 -0
- package/dist/chunks/chunk-UGL7WF3W.js +2 -0
- package/dist/chunks/{chunk-C6D4WAYN.js → chunk-UKMA4R6X.js} +2 -2
- package/dist/chunks/{chunk-4WEUCGJ3.js → chunk-VRIEKBBH.js} +1 -1
- package/dist/chunks/chunk-VYLGI3IH.js +13 -0
- package/dist/chunks/chunk-W45RKGM6.js +1 -0
- package/dist/chunks/chunk-WJ43MJ3F.js +2 -0
- package/dist/chunks/chunk-WMKYHXVM.js +3 -0
- package/dist/chunks/chunk-WN3V6KDN.js +3 -0
- package/dist/chunks/chunk-X4OSOOSU.js +3 -0
- package/dist/chunks/chunk-XDQMGUWL.js +2 -0
- package/dist/chunks/chunk-XTFPDQMH.js +3 -0
- package/dist/chunks/chunk-XVDFJ3ZF.js +2 -0
- package/dist/chunks/chunk-XW6HGSIT.js +8 -0
- package/dist/chunks/chunk-XXYGGNVM.js +2 -0
- package/dist/chunks/chunk-Y4OWBBDD.js +184 -0
- package/dist/chunks/chunk-YBT2NB32.js +2 -0
- package/dist/chunks/{chunk-QRAKXZOC.js → chunk-YOBN7KTF.js} +6 -6
- package/dist/chunks/chunk-YOQRYNLP.js +2 -0
- package/dist/chunks/chunk-YY7LEQGP.js +2 -0
- package/dist/chunks/chunk-Z4Z5UOZM.js +22 -0
- package/dist/chunks/chunk-Z54O534A.js +3 -0
- package/dist/chunks/chunk-ZCHXGRRU.js +2 -0
- package/dist/chunks/chunk-ZFSHBFG5.js +40 -0
- package/dist/chunks/chunk-ZGTOK7ZK.js +12 -0
- package/dist/chunks/{chunk-Q7AXHFZV.js → chunk-ZRDGQDZL.js} +1 -1
- package/dist/chunks/chunk-ZUJ3XUCP.js +2 -0
- package/dist/chunks/chunk-ZZWAQBA2.js +2 -0
- package/dist/chunks/cli-X25RSO2X.js +2 -0
- package/dist/chunks/configuration-command-6C5UO7GE.js +2 -0
- package/dist/chunks/connected-app-executor-IVLGQP65.js +2 -0
- package/dist/chunks/connected-evidence-GH2ATNEX.js +2 -0
- package/dist/chunks/connection-HTF6CC7M.js +2 -0
- package/dist/chunks/{continual-TTGJ6YTR.js → continual-6CQAMTTR.js} +3 -3
- package/dist/chunks/core-commands-A2DGGIPS.js +2 -0
- package/dist/chunks/datasets-7BNMVJOY.js +2 -0
- package/dist/chunks/desktop-test-3CUHVLXV.js +3 -0
- package/dist/chunks/dist-OMGUJYPD.js +2 -0
- package/dist/chunks/dist-VYC5VMQB.js +2 -0
- package/dist/chunks/{dist-FAJX2UBW.js → dist-ZVJPJLXR.js} +1 -1
- package/dist/chunks/enclave-QS4BUNDU.js +2 -0
- package/dist/chunks/evaluation-coordination-XEF5L7KZ.js +2 -0
- package/dist/chunks/experiment-improvements-KRX2DP27.js +2 -0
- package/dist/chunks/experiments-DFGQYA4O.js +2 -0
- package/dist/chunks/experiments-VFQGE4HC.js +2 -0
- package/dist/chunks/{extension-DWMY6D2R.js → extension-XKXXOP5N.js} +1 -1
- package/dist/chunks/{help-A72QDRNG.js → help-S7THC6IE.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-NRLXL2S5.js +2 -0
- package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +2 -0
- package/dist/chunks/hosted-app-server-composition-HPL3CRXN.js +2 -0
- package/dist/chunks/hosted-experiment-improvement-NFSVS5TU.js +3 -0
- package/dist/chunks/hosted-harness-runtime-723S5ZSH.js +2 -0
- package/dist/chunks/hosted-profile-candidate-2S5LFUWD.js +3 -0
- package/dist/chunks/hosted-profile-compiler-2DQIFSXW.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-76BTRTYD.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-inspection-V6Z3A5XJ.js +3 -0
- package/dist/chunks/hosted-profile-evaluation-preparation-IDJYREW3.js +3 -0
- package/dist/chunks/hosted-tasksets-ANAE2PIW.js +2 -0
- package/dist/chunks/human-review-WR777ODH.js +2 -0
- package/dist/chunks/import-MLZUHITH.js +4 -0
- package/dist/chunks/learning-ACEVFL5M.js +2 -0
- package/dist/chunks/local-harness-improvement-runtime-JIQ6ZVDW.js +2 -0
- package/dist/chunks/local-harness-taskset-review-XVYTGAGK.js +2 -0
- package/dist/chunks/local-scope-HVF2GZ5W.js +2 -0
- package/dist/chunks/model-projects-QPO22JPA.js +2 -0
- package/dist/chunks/opchat-T4QTNEIY.js +3 -0
- package/dist/chunks/organizations-75L5DZDV.js +2 -0
- package/dist/chunks/{profile-NOZ6TVXL.js → profile-TFZMUEDR.js} +1 -1
- package/dist/chunks/profile-training-source-6GOT7AHM.js +2 -0
- package/dist/chunks/project-action-payload-7VGL7OER.js +2 -0
- package/dist/chunks/project-agent-6RRO233B.js +2 -0
- package/dist/chunks/published-experiment-source-DZFENAQA.js +2 -0
- package/dist/chunks/refiner-profile-service-UUIWFJVT.js +2 -0
- package/dist/chunks/runtime-A7OZXM43.js +6 -0
- package/dist/chunks/sandbox-command-IU5XFTJP.js +2 -0
- package/dist/chunks/{sandbox-template-LKGBDVJ4.js → sandbox-template-C4V6T36U.js} +1 -1
- package/dist/chunks/saved-work-6BMBFP43.js +2 -0
- package/dist/chunks/send-turn-XTAIS2JN.js +2 -0
- package/dist/chunks/src-INHPJ63Z.js +326 -0
- package/dist/chunks/{src-ZWJ5IO7A.js → src-LMC3K6LH.js} +1 -1
- package/dist/chunks/standalone-experiment-turn-owner-JCY5LL5R.js +2 -0
- package/dist/chunks/store-chat-workflows-S72HZXQR.js +18 -0
- package/dist/chunks/store-continual-support-reviews-HHA6NX7K.js +7 -0
- package/dist/chunks/store-conversation-serving-KPC62UEY.js +2 -0
- package/dist/chunks/store-create-improve-QV54XIZW.js +40 -0
- package/dist/chunks/store-datasets-RXJ33SUN.js +86 -0
- package/dist/chunks/store-evaluation-results-3F3P527G.js +7 -0
- package/dist/chunks/store-harness-evaluation-review-settings-I2R3HPO3.js +29 -0
- package/dist/chunks/store-harness-memory-VINCZ4GK.js +17 -0
- package/dist/chunks/store-harness-refinement-candidates-EA5KFQPH.js +21 -0
- package/dist/chunks/store-harness-workspaces-XUM4Z66X.js +2 -0
- package/dist/chunks/store-human-review-RAH7WMIP.js +7 -0
- package/dist/chunks/store-learned-preference-migration-validation-4CI2IRUF.js +2 -0
- package/dist/chunks/store-learning-WLG6KFIO.js +2 -0
- package/dist/chunks/store-learning-credentials-WZQJ4HPJ.js +2 -0
- package/dist/chunks/store-local-experiments-5LUJR7GI.js +97 -0
- package/dist/chunks/store-model-batch-review-YEGX327M.js +2 -0
- package/dist/chunks/store-model-configuration-5ZURQATB.js +3 -0
- package/dist/chunks/store-preference-comparison-LV32MHVL.js +6 -0
- package/dist/chunks/store-schedules-VGTEQVKH.js +53 -0
- package/dist/chunks/store-sidebar-file-bookmarks-VB5GTLFY.js +18 -0
- package/dist/chunks/store-sidebar-preferences-GWIOG2NH.js +16 -0
- package/dist/chunks/store-subagents-T7R2Z6TB.js +67 -0
- package/dist/chunks/store-task-inbox-JJTBW76C.js +33 -0
- package/dist/chunks/store-task-inventory-OB3F2APC.js +10 -0
- package/dist/chunks/store-taskset-drafts-EKQWWFYQ.js +9 -0
- package/dist/chunks/store-training-G6YLFSIR.js +70 -0
- package/dist/chunks/store-training-jobs-RC46YBF6.js +19 -0
- package/dist/chunks/store-training-models-6BA43IPP.js +49 -0
- package/dist/chunks/store-usage-IE2U2FD3.js +63 -0
- package/dist/chunks/store-work-evidence-QQDKM5AQ.js +8 -0
- package/dist/chunks/taskset-EQRFQBYM.js +2 -0
- package/dist/chunks/taskset-packages-XC6HEE3K.js +2 -0
- package/dist/chunks/{teams-bot-H7XT23XB.js → teams-bot-EAPGPTHZ.js} +1 -1
- package/dist/chunks/training-UF6RPI4T.js +2 -0
- package/dist/chunks/web-search-CZ3NCLPY.js +2 -0
- package/dist/chunks/workspaces-EKKE5NAC.js +2 -0
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/web/assets/{App-CTlAPuCY.css → App-CaRMZoxo.css} +1 -1
- package/dist/web/assets/App-s-CJswyt.js +154 -0
- package/dist/web/assets/{AppDialog-CPHTPqrx.js → AppDialog-t2Fx5tK3.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-BVj5Tj93.js → AppTerminalPanel-Dj1Y32oI.js} +2 -2
- package/dist/web/assets/{AppsView-O69zEBY3.js → AppsView-BYE5EBDJ.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-Pr_Kpe8p.js → BrowserSidebar-jhWi4rVm.js} +1 -1
- package/dist/web/assets/{CartesianChart-JPqo6YOf.js → CartesianChart-C1DIx0Ia.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-CAJcQFn2.js → CollaborationTabs-Bdr-HmOL.js} +1 -1
- package/dist/web/assets/{CommandMenu-B-w53n9A.js → CommandMenu-Ux2yOHAc.js} +1 -1
- package/dist/web/assets/{CommunityView-DbZKK8_P.js → CommunityView-DPEeVKFn.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-3_083PF4.js → ComposerCreateImproveStrip-CEgh4OtN.js} +1 -1
- package/dist/web/assets/{GetStartedView-D7JGm_6c.js → GetStartedView-CFHP0AaI.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-DwgMfZ7_.js → HostedModelLearningReview-D8BGTPVN.js} +1 -1
- package/dist/web/assets/{HostedModelLearningSettings-JRfQadRl.js → HostedModelLearningSettings-JS1S7vNO.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-BUYflJY_.js → LabModelVersionDetailPage-Dx5Q3xV2.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-BBiqk7Rf.js → LabSkillSidebar-BxffN-pN.js} +1 -1
- package/dist/web/assets/{LabsRoute-Ci6vUnSd.js → LabsRoute-CyYF8-dw.js} +4 -4
- package/dist/web/assets/{MainChatThread-BQK3oI2N.js → MainChatThread-DZpcFRFl.js} +2 -2
- package/dist/web/assets/MainPane-5DTtwVCk.js +65 -0
- package/dist/web/assets/MainPane-BIM_UJ3q.css +1 -0
- package/dist/web/assets/{MarkdownText-DOdOVFXL.js → MarkdownText-BR4V6lNO.js} +21 -21
- package/dist/web/assets/{NativeSkillSidebar-CRI_ri8z.js → NativeSkillSidebar-DU9IEgIO.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-DhYtfE68.js → NewExperienceSwitcher-mIy6FzCj.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-D8sy1gOz.js → NewProjectDialog-RfTZTHxl.js} +1 -1
- package/dist/web/assets/{OutputsPage-CbWgrhXA.js → OutputsPage-Cr1Spf7S.js} +1 -1
- package/dist/web/assets/{ProjectsPage-DLB67lyA.js → ProjectsPage-CE6QUB-b.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-ozSKnDyX.js → RightChatPanelStack-T6VRWuHo.js} +1 -1
- package/dist/web/assets/RightSidebarHomePanel-CK0rP3WT.js +1 -0
- package/dist/web/assets/{ScheduledWorkPage-Cafv_QnR.js → ScheduledWorkPage-vOrYv8pp.js} +1 -1
- package/dist/web/assets/SettingsView-DCKVrfjj.js +5 -0
- package/dist/web/assets/SettingsView-Dulr_xlq.css +1 -0
- package/dist/web/assets/{TeamChatView-vIrmXOY_.js → TeamChatView-Bwrjr-vk.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-CAmF__Dq.js → TerminalOverlay-DhPoKZAq.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +1 -0
- package/dist/web/assets/{TrainingDraftPanel-D7XZePAk.js → TrainingDraftPanel-C9cRX5qf.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CYTmp7PG.js → UsageSettingsSection-CrdcSGeW.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-DSSikNFQ.js +1 -0
- package/dist/web/assets/{WorkspaceDiffPanel-DQGoIjH9.js → WorkspaceDiffPanel-BAFo0CPN.js} +6 -6
- package/dist/web/assets/{WorkspaceEnvironmentMenu-c1pHDskn.js → WorkspaceEnvironmentMenu-BVHAhwnJ.js} +1 -1
- package/dist/web/assets/WorkspaceGitDialogs-CwVoiDQ2.js +1 -0
- package/dist/web/assets/{WorkspaceMonacoEditor-BCKzvSj2.js → WorkspaceMonacoEditor-TxLyhzNp.js} +3 -3
- package/dist/web/assets/{arrow-up-right-CP4hZdrJ.js → arrow-up-right-C9aE8Mfz.js} +1 -1
- package/dist/web/assets/{chunk-NOJECMB7-Bhcms-w5.js → chunk-P3BRSSRD-DUGfuKA8.js} +1 -1
- package/dist/web/assets/{clipboard-BgrXorn-.js → clipboard-Dk158Qp4.js} +1 -1
- package/dist/web/assets/{cloud-upload-B_zYztb6.js → cloud-upload-k9eqBsHr.js} +1 -1
- package/dist/web/assets/{cssMode-DanjGgA8.js → cssMode-CO35ARZp.js} +1 -1
- package/dist/web/assets/{folder-open-CdVKbtGq.js → folder-open-sYgceW_f.js} +1 -1
- package/dist/web/assets/{folder-plus-Cc5KElB6.js → folder-plus-CS0R49m9.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CjGIIgRi.js → git-commit-horizontal-DrGxH2h4.js} +1 -1
- package/dist/web/assets/{htmlMode-DRGDF_UL.js → htmlMode-REMmzdfq.js} +1 -1
- package/dist/web/assets/index-3iPNbbER.css +1 -0
- package/dist/web/assets/{index-BE-wXZ5R.js → index-C8aCGagb.js} +2 -2
- package/dist/web/assets/{info-BLj0RvhA.js → info-DLdbiUrh.js} +1 -1
- package/dist/web/assets/{jsonMode-CCu0j2GD.js → jsonMode-KEdMfkIf.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-s_Lhm7P6.js → lspLanguageFeatures-5KZwEoxW.js} +1 -1
- package/dist/web/assets/{minimize-2-Cyg_zD9z.js → minimize-2-CqcI4zcM.js} +1 -1
- package/dist/web/assets/{monaco.contribution-CY7mRgOB.js → monaco.contribution-BJGj65F9.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CAzXvYkn.js → monaco.contribution-Cly9Wt7L.js} +2 -2
- package/dist/web/assets/{monaco.contribution-mUPNK9ra.js → monaco.contribution-DO10L0zW.js} +2 -2
- package/dist/web/assets/{monaco.contribution-aUeLcBEg.js → monaco.contribution-omszXBEj.js} +2 -2
- package/dist/web/assets/{monitor-DZvOs_wC.js → monitor-BFVCcbxp.js} +1 -1
- package/dist/web/assets/{play-BJPzemuY.js → play-C469pVZq.js} +1 -1
- package/dist/web/assets/{python-B_qnnVaG.js → python-Dw0YcVy9.js} +1 -1
- package/dist/web/assets/{save-BDy9tA3E.js → save-CtSjPydi.js} +1 -1
- package/dist/web/assets/{square-Cb2c5td4.js → square-BuImvLhT.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-MhO1JLyR.js → toggleHighContrast-DjCO9lIP.js} +1 -1
- package/dist/web/assets/{tsMode-DfBXJb9V.js → tsMode-BAOnxKd6.js} +1 -1
- package/dist/web/assets/{upload-D56kThRh.js → upload-2JkFZo3h.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-DMnGfswi.js → useLocalAgentSchedules-BNqAisfS.js} +1 -1
- package/dist/web/assets/useProviderSettings-C4L4wDoh.js +5 -0
- package/dist/web/assets/{useProviderSettings-Bw-csWbH.css → useProviderSettings-CmL_BaxP.css} +1 -1
- package/dist/web/assets/{useSessionTurnCache-ClAY8gze.js → useSessionTurnCache-BHU2-Jmz.js} +1 -1
- package/dist/web/assets/{wifi-off-C9lWJmVm.js → wifi-off-CpOAH62M.js} +1 -1
- package/dist/web/assets/{workers-BYzrH8by.js → workers-0QvlA2T5.js} +1 -1
- package/dist/web/assets/{yaml-D3T8UkT3.js → yaml-BK3qxo7D.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunks/actions-command-WTFZA7LF.js +0 -2
- package/dist/chunks/app-server-runtime-2RM3N4I6.js +0 -2
- package/dist/chunks/apps-KDNWYO3G.js +0 -2
- package/dist/chunks/chunk-2DFR7PJ4.js +0 -2460
- package/dist/chunks/chunk-4CRM2ADK.js +0 -2
- package/dist/chunks/chunk-55G6B54U.js +0 -6
- package/dist/chunks/chunk-73G5UYBB.js +0 -12
- package/dist/chunks/chunk-ARQEJOEK.js +0 -33
- package/dist/chunks/chunk-CGBI2VYJ.js +0 -2
- package/dist/chunks/chunk-GGIG3XU7.js +0 -3
- package/dist/chunks/chunk-JIMU3KDA.js +0 -24
- package/dist/chunks/chunk-JUJSA7KI.js +0 -22
- package/dist/chunks/chunk-K5SBVO3B.js +0 -195
- package/dist/chunks/chunk-KD3QVRIJ.js +0 -21
- package/dist/chunks/chunk-L4235TRQ.js +0 -140
- package/dist/chunks/chunk-MVF3F5QS.js +0 -2
- package/dist/chunks/chunk-OULAKUIN.js +0 -2
- package/dist/chunks/chunk-OWNLDB2O.js +0 -2
- package/dist/chunks/chunk-QDHMP5FS.js +0 -2
- package/dist/chunks/chunk-QKD5OMDI.js +0 -2
- package/dist/chunks/chunk-R2BSIRYL.js +0 -3
- package/dist/chunks/chunk-STDMBJOQ.js +0 -9
- package/dist/chunks/chunk-T4QGDQHP.js +0 -4
- package/dist/chunks/chunk-USMZT5FZ.js +0 -18
- package/dist/chunks/chunk-VJEZPDBS.js +0 -5
- package/dist/chunks/chunk-WDFLCNRC.js +0 -8
- package/dist/chunks/chunk-WZYRAR7X.js +0 -16
- package/dist/chunks/chunk-YDT7L3VZ.js +0 -24
- package/dist/chunks/chunk-YUPBAWBJ.js +0 -554
- package/dist/chunks/cli-465VC2WP.js +0 -2
- package/dist/chunks/configuration-command-LAAP2EXT.js +0 -2
- package/dist/chunks/connected-evidence-XM626247.js +0 -2
- package/dist/chunks/core-commands-W7EK552V.js +0 -2
- package/dist/chunks/datasets-QJWYTTQL.js +0 -2
- package/dist/chunks/desktop-test-3B2D34NF.js +0 -3
- package/dist/chunks/dist-HUAE2KFZ.js +0 -2
- package/dist/chunks/evaluation-coordination-2MONR4AX.js +0 -2
- package/dist/chunks/experiment-improvements-WVQ5FK46.js +0 -2
- package/dist/chunks/experiments-S5UQ32QB.js +0 -2
- package/dist/chunks/hosted-experiment-improvement-2OWOQLHC.js +0 -3
- package/dist/chunks/hosted-harness-runtime-TGFMAV7W.js +0 -2
- package/dist/chunks/hosted-profile-candidate-WQSI6HZO.js +0 -3
- package/dist/chunks/hosted-profile-compiler-Z2A4TEA6.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-FKGARUEE.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-QOY2JKV4.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-WVP6CALP.js +0 -3
- package/dist/chunks/human-review-TGHQKXFZ.js +0 -2
- package/dist/chunks/import-4UE5XNSG.js +0 -4
- package/dist/chunks/learning-R2XBMMEM.js +0 -2
- package/dist/chunks/opchat-WULL6CUP.js +0 -3
- package/dist/chunks/organizations-I37HISVX.js +0 -2
- package/dist/chunks/project-agent-T6XKC54C.js +0 -2
- package/dist/chunks/sandbox-command-STB47FRY.js +0 -2
- package/dist/chunks/src-T3KWWCAH.js +0 -322
- package/dist/chunks/taskset-RNYDR4GS.js +0 -2
- package/dist/chunks/training-M6FAPRSJ.js +0 -2
- package/dist/chunks/workspaces-MFZ3OO6O.js +0 -2
- package/dist/web/assets/App-CLFfy_Av.js +0 -154
- package/dist/web/assets/MainPane-D3ojiN-p.js +0 -18
- package/dist/web/assets/MainPane-DOWsSew1.css +0 -1
- package/dist/web/assets/RightSidebarHomePanel-CKs3OwhD.js +0 -1
- package/dist/web/assets/SettingsView-BnANbPLS.css +0 -1
- package/dist/web/assets/SettingsView-T1vYDPjh.js +0 -5
- package/dist/web/assets/TrainingCreationPanel-D75K0yk5.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-CODMjVHY.js +0 -1
- package/dist/web/assets/WorkspaceGitDialogs-DrVtapQQ.js +0 -1
- package/dist/web/assets/index-B5re-RJy.css +0 -1
- package/dist/web/assets/useProviderSettings-Bv5B9eNk.js +0 -5
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{e as ye}from"./chunk-FY5KHLMW.js";import{a as we}from"./chunk-IZ6DLEVY.js";import{a as ve,c as Re}from"./chunk-NHQ36THU.js";import{t as he}from"./chunk-QOTVNQDI.js";import{a as B}from"./chunk-7ED24PP6.js";import{a as de,b as G,h as V,i as z,j as Y}from"./chunk-N4FFQPLR.js";import{k as le}from"./chunk-GJ2ZJFDD.js";import{m as ue,n as me,o as pe,p as fe,q as ge}from"./chunk-74ZXXBGN.js";import{m as E}from"./chunk-KGNCKIFP.js";import{a as i}from"./chunk-FTQLQJQV.js";function q(e){let t=/^memory\/([a-z0-9][a-z0-9-]{0,119})$/.exec(e.replaceAll("\\","/"));if(!t)throw new Error(`Invalid Harness memory target: ${e}.`);return t[1]}i(q,"memoryKeyFromTarget");function Z(e,t){let r=e.metadata.expectedMemory;if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Memory proposal is missing its expected revision snapshot.");let n=r;if(n.key!==q(t))throw new Error("Memory proposal expected revision targets a different key.");if(n.revision!==null&&(!Number.isInteger(n.revision)||Number(n.revision)<1))throw new Error("Memory proposal expected revision is invalid.");if(n.contentHash!==null&&typeof n.contentHash!="string")throw new Error("Memory proposal expected content hash is invalid.");if(n.status!==null&&n.status!=="active"&&n.status!=="deleted")throw new Error("Memory proposal expected status is invalid.");return{revision:n.revision,contentHash:n.contentHash,status:n.status}}i(Z,"expectedMemoryRevision");function ee(e){return{id:e.id,runRef:e.runRef,turnId:e.turnId,reason:e.reason,suggestedRoutes:e.suggestedRoutes,boundary:e.boundary}}i(ee,"boundedTriggerEvidence");function te(e){return{id:e.id,kind:e.kind,state:e.state,tool:e.tool?.name??null,deterministicClass:e.deterministicClass,summary:e.summary}}i(te,"boundedObservationEvidence");function re(e){let t=new Map;for(let r of e)for(let n of r.eventRefs){let o=Ne(r,n);t.set(`${o.kind}:${o.id}`,o)}return[...t.values()]}i(re,"proposalEvidence");function Ne(e,t){return{kind:e.kind==="recovery"?"recovery":e.kind==="validation"?"validation":e.kind==="user_turn"?"user_turn":"tool_event",id:t.id,contentHash:t.contentHash}}i(Ne,"observationEvidence");function j(e){let t=new Map;for(let r of e)for(let n of r.eventRefs)t.set(n.id,n);return[...t.values()]}i(j,"uniqueEventRefs");function U(e,t){return e.id===t.id&&e.revision===t.revision&&e.contentHash===t.contentHash}i(U,"sameOverlayRef");function D(e){return{id:e.id,revision:e.revision,contentHash:e.contentHash}}i(D,"overlayRef");function ne(e,t){return e.revision===t.workspace.revision&&e.sourceRevision===t.workspace.sourceRevision&&e.currentChannel.revision===t.workspace.channelRevision&&e.currentChannel.release?.id===t.baseHarnessRelease.id&&e.currentChannel.release.contentHash===t.baseHarnessRelease.contentHash}i(ne,"sameWorkspaceRevision");function R(e,t){return`${e}-${E(t).slice(0,24)}`}i(R,"stableId");import{execFile as Fe}from"node:child_process";import{promises as N}from"node:fs";import x from"node:path";import{promisify as We}from"node:util";var Ve=36e3,ke=10,He=20*1024*1024,X=40,ze=24e3,Be=3,je=3,be=6,Te=["turn.started","assistant.delta","tool.started","tool.completed","skill.loaded","workspace_action_result","diagnostic","turn.completed","turn.failed","turn.interrupted"],Ue=We(Fe);async function Ee(e,t,r,n,o){let[a,s,l,g,m]=await Promise.all([e.getSession(t.runRef),e.getTurn(t.turnId),e.runtimeEventsForTurn(t.turnId,{names:Te}),e.turnsForSession(t.runRef,1e3),e.listModelUsageRecords({turnId:t.turnId,limit:1e4})]),d=[...g].sort((c,h)=>c.startedAt.localeCompare(h.startedAt)),y=d.findIndex(c=>c.id===t.turnId),u=y>0?d[y-1]:null,p=d.slice(Math.max(0,y-Be),Math.max(0,y)),b=new Map(await Promise.all(p.map(async c=>[c.id,await e.runtimeEventsForTurn(c.id,{names:["assistant.delta"]})]))),k=new Map(r.flatMap(c=>c.eventRefs.map(h=>[h.id,h]))),H=l.filter(c=>k.has(c.id));if(!o?.allowMissingRuntimeEvents)for(let[c,h]of k){let I=H.find(Le=>Le.id===c);if(!I||E(I)!==h.contentHash)throw new Error(`Refiner runtime event ${c} is unavailable or hash-mismatched.`)}let f=rt({events:l,exactEvents:H,turnId:t.turnId,boundarySequence:t.boundary.eventSequence,limit:t.policy.maxEvidenceEvents}),O=J(l,t.turnId),_=r.map(c=>c.kind),C=Ye(l,t.turnId),S={modelRequestCount:m.length||C.modelRequestCount,promptTokens:m.reduce((c,h)=>c+(h.promptTokens??0),0)||C.promptTokens,completionTokens:m.reduce((c,h)=>c+(h.completionTokens??0),0)||C.completionTokens,totalTokens:m.reduce((c,h)=>c+(h.totalTokens??0),0)||C.totalTokens},M={modelRequestCount:S.modelRequestCount,failedModelRequestCount:m.filter(c=>c.status==="failed"||c.status==="interrupted").length,promptTokens:S.promptTokens,completionTokens:S.completionTokens,totalTokens:S.totalTokens,toolFailureCount:_.filter(c=>c==="tool_failure").length,retryCount:_.filter(c=>c==="retry").length,recoveryCount:_.filter(c=>c==="recovery").length},F=await Ze(a?.cwd),L=l.filter(c=>c.turnId===t.turnId&&ot(c)&&(c.sequence===void 0||c.sequence<=t.boundary.eventSequence)).sort($),P=Ke(L),W=p.map(c=>Xe(c,b.get(c.id)??[])),v=n?await Je({store:e,workspaceId:n,trigger:t,observations:r}):[];return{task:{prompt:s?.prompt?T(s.prompt,8e3):null,assistantOutput:O,assistantOutputLinkCount:Se(O),previousAssistantOutput:u?J(b.get(u.id)??[],u.id):null},artifactDiagnostics:F,executionProfile:M,eventExcerpts:f.map(c=>{let h=A(c.data),I=A(h.result);return{id:c.id,name:c.name,action:c.action??(typeof h.tool=="string"?h.tool:null),status:c.status??null,command:w(I.command,3e3),error:w(c.error,2e3),output:w(I.output,2e3)??w(c.output,2e3),exitCode:typeof I.exitCode=="number"?I.exitCode:null,timedOut:I.timedOut===!0,stderr:w(I.stderr,3e3),stdout:w(I.stdout,3e3)}}),reviewPacket:{currentTurn:{id:t.turnId,status:s?.status??null,error:s?.error?T(s.error,2e3):null,prompt:s?.prompt?T(s.prompt,8e3):null,assistantOutput:O,assistantOutputLinkCount:Se(O)},priorConversation:W,timeline:P,artifacts:Ce(l,t.turnId),artifactDiagnostics:F,executionProfile:M,priorIncidents:v,truncation:{timelineEventCount:L.length,includedTimelineEventCount:P.length,timelineTruncated:P.length<L.length}}}}i(Ee,"loadBoundedRefinerContext");function Xe(e,t){return{turnId:e.id,status:e.status,prompt:e.prompt?T(e.prompt,3e3):null,assistantOutput:J(t,e.id,3e3)}}i(Xe,"conversationTurn");function Ke(e){let t=e.map(_e);if(t.length<=X)return Ie(t);let r=t.filter(a=>a.status==="failed"||a.name==="turn.completed"||a.name==="turn.failed"||a.name==="turn.interrupted"||a.name==="skill.loaded"||a.name==="validation.completed"||a.name==="diagnostic"),n=new Set(r.map(xe)),o=t.filter(a=>!n.has(xe(a))).slice(-(X-Math.min(r.length,X)));return Ie([...r.slice(-X),...o].sort((a,s)=>Number(a.sequence??0)-Number(s.sequence??0)))}i(Ke,"boundedReviewTimeline");function Ie(e){let t=[],r=0;for(let n of e){let o=JSON.stringify(n).length;r+o>ze||(t.push(n),r+=o)}return t}i(Ie,"fitTimelineToCharacterBudget");function _e(e){let t=A(e.data),r=A(t.result);return{sequence:e.sequence??null,timestamp:e.timestamp,name:e.name,action:e.action??(typeof t.tool=="string"?t.tool:null),status:e.status??null,args:Ge(e.args,1500),command:w(r.command,2e3),error:w(e.error,2e3),output:w(r.output,2e3)??w(e.output,2e3),exitCode:typeof r.exitCode=="number"?r.exitCode:null,timedOut:r.timedOut===!0,stderr:w(r.stderr,2e3),stdout:w(r.stdout,2e3)}}i(_e,"reviewTimelineEntry");function xe(e){return`${e.sequence??"none"}:${e.name??"unknown"}:${e.action??"none"}`}i(xe,"timelineEntryKey");function Ce(e,t){let r=new Map;for(let n of e)if(n.turnId===t)for(let o of oe(n.data))r.set(`${o.id}:${o.revision}`,o);return[...r.values()].sort((n,o)=>n.title.localeCompare(o.title)||n.revision-o.revision).slice(0,30).map(n=>({id:n.id,title:n.title,revision:n.revision,contentType:n.contentType,sizeBytes:n.sizeBytes,sha256:n.sha256,locationKind:n.location.kind,validation:n.validation.map(o=>({kind:o.kind,status:o.status,label:o.label,detail:o.detail??null}))}))}i(Ce,"fileOutputInventory");function oe(e,t=0){if(t>8)return[];let r=he.safeParse(e);return r.success?[r.data]:Array.isArray(e)?e.flatMap(n=>oe(n,t+1)):!e||typeof e!="object"?[]:Object.values(e).flatMap(n=>oe(n,t+1))}i(oe,"findFileOutputRefs");async function Je(e){let t=new Set(e.observations.flatMap(s=>s.deterministicClass?[s.deterministicClass]:[])),r=new Set(e.observations.flatMap(s=>s.tool?[s.tool.name]:[]));if(t.size===0&&r.size===0)return[];let n=(await e.store.listHarnessImprovementArtifacts(e.workspaceId,"observation",200)).filter(s=>s.runRef!==e.trigger.runRef&&s.turnId!==e.trigger.turnId&&(s.deterministicClass!==null&&t.has(s.deterministicClass)||s.tool!==null&&r.has(s.tool.name))).sort((s,l)=>l.createdAt.localeCompare(s.createdAt)),o=new Map;for(let s of n){let l=`${s.runRef}:${s.turnId}`,g=o.get(l)??[];g.push(s),o.set(l,g)}let a=[];for(let s of o.values()){if(a.length>=je)break;let l=s[0],[g,m]=await Promise.all([e.store.getTurn(l.turnId),e.store.runtimeEventsForTurn(l.turnId,{names:Te})]);if(!g)continue;let d=[...new Set(s.flatMap(p=>p.deterministicClass&&t.has(p.deterministicClass)?[p.deterministicClass]:[]))],y=[...new Set(s.flatMap(p=>p.tool&&r.has(p.tool.name)?[p.tool.name]:[]))],u=Qe(m.filter(p=>p.turnId===g.id));a.push({runRef:l.runRef,turnId:l.turnId,createdAt:l.createdAt,matchedBy:{deterministicClasses:d,tools:y},observations:s.slice(0,4).map(p=>({kind:p.kind,state:p.state,deterministicClass:p.deterministicClass,summary:p.summary})),prompt:g.prompt?T(g.prompt,1200):null,assistantOutput:J(m,g.id,1200),timeline:u,artifacts:Ce(m,g.id).slice(0,5)})}return a}i(Je,"loadRelevantPriorIncidentPackets");function Qe(e){let t=new Set(["turn.completed","turn.failed","turn.interrupted"]),r=e.filter(a=>{if(t.has(a.name))return!0;let s=JSON.stringify({error:a.error,output:a.output,data:a.data});return a.status==="failed"||/"ok"\s*:\s*false|failed|denied|unavailable|timed?\s*out|exception|traceback/i.test(s)}).sort($).map(a=>{let s=_e(a);return{sequence:s.sequence,name:s.name,action:s.action,status:s.status,error:w(s.error,800),output:w(s.output,800),exitCode:s.exitCode,timedOut:s.timedOut}}),n=new Map;for(let a of r){let s=JSON.stringify({name:a.name,action:a.action,status:a.status,error:a.error,output:a.output,exitCode:a.exitCode,timedOut:a.timedOut}),l=n.get(s);if(l){l.occurrenceCount+=1;continue}n.set(s,{...a,occurrenceCount:1})}let o=[...n.values()];return o.length<=be?o:[...o.slice(0,be-2),...o.slice(-2)]}i(Qe,"priorIncidentTimeline");function Ge(e,t){if(e===void 0)return null;try{let r=T(JSON.stringify(e),t);return JSON.parse(r.endsWith(`
|
|
3
|
+
[truncated]`)?JSON.stringify(r):r)}catch{return T(String(e),t)}}i(Ge,"boundedUnknown");function Ye(e,t){let r={modelRequestCount:0,promptTokens:0,completionTokens:0,totalTokens:0},n=[...e].reverse().find(o=>o.turnId===t&&o.name==="diagnostic"&&o.action==="taskset_grade"&&typeof o.output=="string");if(!n?.output)return r;try{let o=A(JSON.parse(n.output)),a=A(o.attempt),s=A(a.usage);return{modelRequestCount:K(a.modelRequestCount),promptTokens:K(s.promptTokens),completionTokens:K(s.completionTokens),totalTokens:K(s.totalTokens)}}catch{return r}}i(Ye,"tasksetGradeExecutionProfile");function K(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.trunc(e):0}i(K,"nonnegativeInteger");async function Ze(e){if(!e)return[];let t=[];for(let r of[e,x.join(e,"outputs")]){let n=await N.readdir(r,{withFileTypes:!0}).catch(()=>[]);for(let o of n)if(!(!o.isFile()||!o.name.toLowerCase().endsWith(".pdf"))&&(t.push({filename:x.join(r,o.name),displayPath:x.relative(e,x.join(r,o.name)).replaceAll(x.sep,"/")}),t.length>=ke))break;if(t.length>=ke)break}return Promise.all(t.map(async({filename:r,displayPath:n})=>{try{if((await N.stat(r)).size>He)return{path:n,mediaType:"application/pdf",check:"pdf_text_bounds",status:"unavailable",reason:`artifact exceeds ${He} byte inspection bound`};let{stdout:a}=await Ue("pdftotext",["-bbox",r,"-"],{env:{...process.env,PATH:we()},maxBuffer:8*1024*1024,timeout:15e3});return et(n,a)}catch(o){return{path:n,mediaType:"application/pdf",check:"pdf_text_bounds",status:"unavailable",reason:o instanceof Error?o.message.slice(0,500):String(o).slice(0,500)}}}))}i(Ze,"inspectBoundedPdfArtifactDiagnostics");function et(e,t){let r=[],n=0;for(let o of t.matchAll(/<page\s+width="([^"]+)"\s+height="([^"]+)"[^>]*>([\s\S]*?)<\/page>/g)){n+=1;let a=Number(o[1]),s=Number(o[2]);for(let l of o[3].matchAll(/<word\s+xMin="([^"]+)"\s+yMin="([^"]+)"\s+xMax="([^"]+)"\s+yMax="([^"]+)"[^>]*>([\s\S]*?)<\/word>/g)){let[g,m,d,y]=l.slice(1,5).map(Number);g>=0&&m>=0&&d<=a&&y<=s||r.push({page:n,text:tt(l[5]).slice(0,120),xMin:g,yMin:m,xMax:d,yMax:y,pageWidth:a,pageHeight:s})}}return{path:e,mediaType:"application/pdf",check:"pdf_text_bounds",status:r.length>0?"failed":"passed",pages:n,clippedTextCount:r.length,examples:r.slice(0,10)}}i(et,"pdfTextBoundsDiagnostic");function tt(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'|'/g,"'")}i(tt,"decodeXmlText");function Se(e){return e?e.match(/https?:\/\/[^\s<>)\]}"']+/gi)?.length??0:0}i(Se,"countAbsoluteLinks");function J(e,t,r=8e3){let n=e.filter(o=>o.turnId===t&&o.name==="assistant.delta"&&typeof o.output=="string").sort($).map(o=>o.output).join("");return n?T(n,r):null}i(J,"assistantOutputForTurn");async function Ae(e,t,r){let n=await e.listHarnessImprovementArtifacts(t,"observation",1e3),o=new Map(n.map(a=>{let s=de.parse(a);return[s.contentHash,s]}));return r.observations.map(a=>{let s=o.get(a.contentHash);if(!s||s.id!==a.id)throw new Error(`Refiner observation ${a.id} is unavailable or hash-mismatched.`);return s})}i(Ae,"loadExactObservations");async function se(e,t,r={}){let n=st(t),o=r.forceUnloaded!==!0,a=i((u,p)=>o&&(u==="instruction"||u==="skill"&&n.has(at(p))),"wasLoaded"),s=x.resolve(e,"source"),l=B.parse(JSON.parse(await N.readFile(x.join(s,"harness.json"),"utf8"))),g=Ve,m=[],d=l.files.filter(u=>["instruction","skill","agent"].includes(u.kind)&&u.visibility==="policy").map(u=>({path:u.path,kind:u.kind,loaded:a(u.kind,u.path)})),y=l.files.slice().sort((u,p)=>{let b=["instruction","skill","agent"].includes(u.kind)&&a(u.kind,u.path),k=["instruction","skill","agent"].includes(p.kind)&&a(p.kind,p.path);if(b!==k)return b?-1:1;let H=i(f=>f==="instruction"?0:f==="skill"?1:2,"rank");return H(u.kind)-H(p.kind)||u.path.localeCompare(p.path)});for(let u of y){if(!["instruction","skill","agent"].includes(u.kind)||u.visibility!=="policy"||!["text/markdown","text/plain","text/javascript"].includes(u.mediaType))continue;let p=it(s,u.path),b=await N.lstat(p);if(!b.isFile()||b.isSymbolicLink())continue;let k=await N.readFile(p);k.byteLength>g||(m.push({path:u.path,kind:u.kind,content:k.toString("utf8"),loaded:a(u.kind,u.path)}),g-=k.byteLength)}return{manifest:l,files:m,catalog:d}}i(se,"readBoundedRefinerSource");function rt(e){let t=[...e.exactEvents].sort($),r=e.events.filter(l=>l.turnId===e.turnId&&nt(l)&&(l.sequence===void 0||l.sequence<=e.boundarySequence)).sort($);if(r.length<=e.limit)return r;let n=new Set(t.map(l=>l.id)),o=t.slice(0,e.limit),a=e.limit-o.length;if(a<=0)return o;let s=r.filter(l=>!n.has(l.id)).slice(-a);return[...o,...s].sort($)}i(rt,"selectRefinerEvidenceWindow");function nt(e){return["tool.completed","workspace_action_result","skill.loaded","validation.completed","diagnostic"].includes(e.name)}i(nt,"isRefinerEvidenceEvent");function ot(e){return["turn.completed","turn.failed","turn.interrupted","tool.completed","workspace_action_result","skill.loaded","validation.completed","diagnostic"].includes(e.name)}i(ot,"isRefinerReviewTimelineEvent");function $(e,t){return(e.sequence??Number.MAX_SAFE_INTEGER)-(t.sequence??Number.MAX_SAFE_INTEGER)}i($,"compareRuntimeEvents");function w(e,t){return typeof e=="string"?T(e,t):null}i(w,"textField");function T(e,t){let r=e.replace(/\bBearer\s+[A-Za-z0-9._~+/=-]+/gi,"Bearer [redacted]").replace(/\b(api[_-]?key|access[_-]?token|auth(?:orization)?|password|secret)(\s*[:=]\s*)([^\s,;]+)/gi,"$1$2[redacted]");return r.length<=t?r:`${r.slice(0,t)}
|
|
4
|
+
[truncated]`}i(T,"redactAndBoundRefinerText");function st(e){let t=e.metadata.loadedSkillNames;return Array.isArray(t)?new Set(t.filter(r=>typeof r=="string"&&r.trim().length>0)):new Set}i(st,"loadedSkillNamesFromTrigger");function at(e){return/^skills\/([^/]+)\/SKILL\.md$/.exec(e.replaceAll("\\","/"))?.[1]??""}i(at,"skillNameFromPath");function it(e,t){let r=x.resolve(e,...t.replaceAll("\\","/").split("/")),n=x.relative(e,r);if(!n||n.startsWith("..")||x.isAbsolute(n))throw new Error(`Harness source path escapes its immutable bundle: ${t}`);return r}i(it,"containedSourcePath");function A(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}i(A,"asRecord");async function Oe(e){let t=e.rebasedOntoCurrent?e.workspace.currentChannel.release:e.overlay.baseHarnessRelease;if(!t)throw new Error("Queued Refiner trigger references a Harness workspace without a current release.");let r=await e.store.getHarnessReleaseRecord(t.contentHash);if(!r||r.harnessRelease.id!==t.id||r.workspaceId!==e.workspace.id)throw new Error("Queued Refiner trigger references an unavailable effective Harness release.");let n=await se(r.bundlePath,e.trigger,{forceUnloaded:e.rebasedOntoCurrent}),o=e.rebasedOntoCurrent?await e.store.getHarnessReleaseRecord(e.overlay.baseHarnessRelease.contentHash):r;if(!o||o.harnessRelease.id!==e.overlay.baseHarnessRelease.id||o.workspaceId!==e.workspace.id)throw new Error("Queued Refiner trigger references an unavailable admitted Harness release.");return{admittedSource:e.rebasedOntoCurrent?await se(o.bundlePath,e.trigger):n,effectiveReleaseRef:t,release:r,source:n}}i(Oe,"loadRefinerReleaseContext");function Me(e,t){if(t.requestId!==e.requestId||t.evidenceHash!==e.evidenceHash||t.admittedRelease.id!==e.harness.admittedRelease.id||t.admittedRelease.contentHash!==e.harness.admittedRelease.contentHash||t.currentRelease.id!==e.harness.currentRelease.id||t.currentRelease.contentHash!==e.harness.currentRelease.contentHash)throw new Error("Managed Harness Refiner response binding does not match the request.")}i(Me,"assertHostedResponseBinding");function Q(e){return{id:e.id,contentHash:e.contentHash,coreHash:e.coreHash,profileHash:e.profileHash}}i(Q,"refinerReleaseMetadata");async function Pe(e,t,r){return(await e.listHarnessImprovementArtifacts(t,"refiner_outcome",1e3)).find(o=>o.trigger.id===r.id&&o.trigger.contentHash===r.contentHash)??null}i(Pe,"findRefinerOutcome");async function ae(e,t,r){return(await e.listHarnessImprovementArtifacts(t,"proposal",1e3)).find(o=>o.id===r)??null}i(ae,"findProposal");async function qe(e,t,r){let n=await ae(e,t,R("proposal",r.contentHash)),o=n?.metadata.trigger;return o?.id===r.id&&o.contentHash===r.contentHash?n:null}i(qe,"findProposalByTrigger");async function ie(e,t,r){return(await e.listHarnessImprovementArtifacts(t,"targeted_validation",1e3)).filter(o=>o.proposal.id===r.id&&o.proposal.contentHash===r.contentHash)}i(ie,"findProposalValidations");var De=new WeakMap;async function zt(e){let t=G.parse(e.trigger).contentHash,r=De.get(e.store);r||(r=new Map,De.set(e.store,r));let n=r.get(t);if(n)return n;let o=ct(e);r.set(t,o);try{return await o}finally{r.get(t)===o&&r.delete(t)}}i(zt,"runLocalHarnessRefinerWorker");async function ct(e){let t=G.parse(e.trigger);if(t.decision!=="queue_refiner")throw new Error("The model-backed Refiner only accepts queue_refiner decisions.");if(!t.overlay)throw new Error("A queued Local Harness Refiner decision requires a run overlay.");let r=await e.store.getHarnessRunOverlay(t.runRef);if(!r||!U(r,t.overlay))throw new Error("Queued Refiner trigger does not match the durable run overlay.");let n=await e.store.getHarnessWorkspace(r.workspace.workspaceId);if(!n||n.location!==e.store.harnessStoragePlacement)throw new Error("Harness Refiner workspace does not match the admitted storage placement.");let o=await Pe(e.store,n.id,t);if(o){let v=o.proposal?await ae(e.store,n.id,o.proposal.id):null;return{outcome:o,overlay:await e.store.getHarnessRunOverlay(t.runRef)??r,proposal:v,validations:v?await ie(e.store,n.id,v):[],workspace:await e.store.getHarnessWorkspace(n.id)??n,advanceReceipt:null,applyReceipt:null}}let a=await Ae(e.store,n.id,t),s=!ne(n,r);if(r.status!=="active"){let v=await qe(e.store,n.id,t);return v&&U(r,v.overlay)?$e({...e,trigger:t,workspace:n,overlay:r,proposal:v,observations:a}):ce({store:e.store,workspace:n,overlay:r,trigger:t,observations:a,reason:`The run overlay is ${r.status} and has no recoverable proposal for this trigger.`,now:e.now})}let{admittedSource:l,effectiveReleaseRef:g,release:m,source:d}=await Oe({store:e.store,workspace:n,overlay:r,trigger:t,rebasedOntoCurrent:s}),y=(await e.store.listHarnessMemories(n.id)).slice(0,100).map(v=>({path:`memory/${v.key}`,kind:"memory",content:v.content,loaded:!0}));d.catalog.push(...y.map(({path:v,kind:c,loaded:h})=>({path:v,kind:c,loaded:h}))),d.files.push(...y);let u=await Ee(e.store,t,a,n.id,{allowMissingRuntimeEvents:e.reviewScope==="cross_run_candidate"}),p={memory:!0,prompt:!0,skill:!0,agent:!1},b=[...a.map(v=>v.id),...u.reviewPacket.priorIncidents.flatMap(v=>typeof v.id=="string"&&v.id.trim()?[v.id.trim()]:[])],k={capabilities:p,trigger:ee(t),observations:a.map(te),admissibleEvidenceIds:b,reviewPacket:u.reviewPacket,runtimeActivation:{admittedRelease:r.baseHarnessRelease,currentRelease:g,rebasedOntoCurrent:s,admittedSourceFiles:l.files,admittedSourceCatalog:l.catalog},sourceFiles:d.files,sourceCatalog:d.catalog,additionalEvidence:e.additionalEvidence??null},H=await(e.loadActiveRefinerRelease?e.loadActiveRefinerRelease():ye(e.storeDir)),f;if(e.stream)f=await ue({evidence:k,stream:e.stream,signal:e.signal,timeoutMs:e.timeoutMs,reviewProfile:H.profile});else if(e.refine){let v=fe.parse({schemaVersion:"openpond.hostedHarnessRefinerRequest.v2",requestId:t.id,idempotencyKey:t.contentHash,evidenceHash:E(k),harness:{admittedRelease:r.baseHarnessRelease,currentRelease:g,overlay:D(r),workspace:{id:n.id,revision:n.revision,sourceRevision:n.sourceRevision,channelRevision:n.currentChannel.revision},capabilities:p},evidence:k}),c=ge.parse(await e.refine({request:v,signal:e.signal}));Me(v,c),f=c.decision}else throw new Error("Harness Refiner requires a public model stream or managed adapter.");if(f=pe({decision:f,evidence:k}),f=me(f,H.profile),f.decision==="no_action")return ce({store:e.store,workspace:n,overlay:r,trigger:t,observations:a,reason:f.reason,metadata:{refinerRelease:Q(H)},now:e.now});if(f.decision==="route")return dt({store:e.store,workspace:n,overlay:r,trigger:t,observations:a,decision:f,refinerRelease:Q(H),now:e.now});ut(f,d.catalog,d.files);let O=mt(f,d.files),_=f.route==="memory"?await e.store.getHarnessMemory(n.id,q(f.target)):null,C=(e.now??(()=>new Date().toISOString()))(),S=gt(f),M=ft({trigger:t,decision:f,materializedContent:O,manifest:d.manifest,effects:S}),F=R("proposal",t.contentHash),L=R("targeted-check",{trigger:t.contentHash,route:f.route,target:f.target}),P=re(a),W=await e.store.freezeHarnessRunOverlayWithProposalAtomically({runId:t.runRef,expectedRevision:r.revision,edits:M,updatedAt:C,buildProposal:i(v=>le({schemaVersion:"openpond.harnessImprovementProposal.v1",id:F,overlay:D(v),baseHarnessRelease:{id:m.harnessRelease.id,contentHash:m.harnessRelease.contentHash},expectedWorkspace:{workspaceId:n.id,revision:n.revision,sourceRevision:n.sourceRevision,channelRevision:n.currentChannel.revision},requestedScope:"personal",route:f.route,risk:f.operation==="delete"||S.some(c=>!["text_instruction","memory","dependency_selection"].includes(c))?"review":"low",effects:S,evidence:P,edits:M,validationPlan:vt({decision:f,evidence:P,validationId:L,effects:S}),expectedOutcome:f.expectedOutcome,createdAt:C,metadata:{refinerRelease:Q(H),trigger:{id:t.id,contentHash:t.contentHash},reason:f.reason,evidenceBasis:f.evidenceBasis,generatedManifestEditId:M.find(c=>c.target==="harness.json")?.id??null,rebasedFromHarnessRelease:s?r.baseHarnessRelease:null,expectedMemory:f.route==="memory"?{key:q(f.target),revision:_?.revision??null,contentHash:_?.contentHash??null,status:_?.status??null}:null}}),"buildProposal")});return $e({...e,trigger:t,workspace:n,overlay:W.overlay,proposal:W.proposal,observations:a})}i(ct,"executeLocalHarnessRefinerWorker");async function $e(e){let t=(e.now??(()=>new Date().toISOString()))(),r=await ie(e.store,e.workspace.id,e.proposal);if(r.length===0){r=await Re({storeDir:e.storeDir,workspace:e.workspace,proposal:e.proposal,now:i(()=>t,"now")});for(let l of r)await e.store.saveHarnessImprovementArtifact(e.workspace.id,"targeted_validation",l)}if(e.proposal.route==="memory")return lt({...e,validations:r,timestamp:t});let n=await ve({store:e.store,storeDir:e.storeDir,overlay:e.overlay,proposal:e.proposal,validations:r,receiptId:R("harness-advance",e.proposal.contentHash),now:i(()=>t,"now")}),o=V({schemaVersion:"openpond.improvementRouteDecision.v1",id:R("route",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},route:e.proposal.route,authority:"refiner_model",automatic:n.receipt.decision==="advanced",reason:n.receipt.reason,createdAt:t,metadata:{proposalId:e.proposal.id}});await e.store.saveHarnessImprovementArtifact(e.workspace.id,"route_decision",o);let a=Y({schemaVersion:"openpond.improvementApplyReceipt.v1",id:R("apply",e.proposal.contentHash),proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},beforeOverlay:e.trigger.overlay,afterOverlay:n.receipt.decision==="advanced"?D(e.overlay):null,decision:n.receipt.decision==="advanced"?"applied":"retained",boundary:e.trigger.boundary,validationRefs:r.map(l=>({id:l.id,contentHash:l.contentHash})),outcomeEvidenceRefs:j(e.observations),rollbackOf:null,createdAt:t,metadata:{workspaceAdvanceDecision:n.receipt.decision}});await e.store.saveHarnessImprovementArtifact(e.workspace.id,"apply_receipt",a);let s=z({schemaVersion:"openpond.harnessRefinerOutcome.v1",id:R("refiner-outcome",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},decision:"proposed",proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},reason:n.receipt.reason,evidenceRefs:e.trigger.observations,estimatedCostUsd:e.trigger.estimatedMaxCostUsd,createdAt:t,metadata:{refinerRelease:e.proposal.metadata.refinerRelease??null,validationStatuses:r.map(l=>l.status),workspaceAdvanceReceipt:{id:n.receipt.id,contentHash:n.receipt.contentHash}}});return await e.store.saveHarnessImprovementArtifact(e.workspace.id,"refiner_outcome",s),{outcome:s,overlay:e.overlay,proposal:e.proposal,validations:r,workspace:n.workspace,advanceReceipt:n.receipt,applyReceipt:a}}i($e,"finishPersistedProposal");async function lt(e){let t=e.proposal.validationPlan.filter(m=>m.required).every(m=>e.validations.some(d=>d.validationId===m.id&&d.status==="passed")),r=e.proposal.edits.find(m=>m.route==="memory");if(!r)throw new Error("Memory proposal has no memory edit.");let n=Z(e.proposal,r.target),o=t&&r.operation!=="delete";o&&await e.store.writeHarnessMemory({workspaceId:e.workspace.id,key:q(r.target),content:r.content,expectedRevision:n.revision,sourceRunId:e.trigger.runRef,sourceProposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},createdAt:e.timestamp});let a=o?"Validated low-risk Personal memory applied at the safe turn boundary.":r.operation==="delete"?"Memory deletion requires explicit review.":"Required memory validation did not pass.",s=V({schemaVersion:"openpond.improvementRouteDecision.v1",id:R("route",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},route:"memory",authority:"refiner_model",automatic:o,reason:a,createdAt:e.timestamp,metadata:{proposalId:e.proposal.id}});await e.store.saveHarnessImprovementArtifact(e.workspace.id,"route_decision",s);let l=Y({schemaVersion:"openpond.improvementApplyReceipt.v1",id:R("apply",e.proposal.contentHash),proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},beforeOverlay:e.trigger.overlay,afterOverlay:o?D(e.overlay):null,decision:o?"applied":"retained",boundary:e.trigger.boundary,validationRefs:e.validations.map(m=>({id:m.id,contentHash:m.contentHash})),outcomeEvidenceRefs:j(e.observations),rollbackOf:null,createdAt:e.timestamp,metadata:{externalState:"harness_memory"}});await e.store.saveHarnessImprovementArtifact(e.workspace.id,"apply_receipt",l);let g=z({schemaVersion:"openpond.harnessRefinerOutcome.v1",id:R("refiner-outcome",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},decision:"proposed",proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},reason:a,evidenceRefs:e.trigger.observations,estimatedCostUsd:e.trigger.estimatedMaxCostUsd,createdAt:e.timestamp,metadata:{refinerRelease:e.proposal.metadata.refinerRelease??null,validationStatuses:e.validations.map(m=>m.status)}});return await e.store.saveHarnessImprovementArtifact(e.workspace.id,"refiner_outcome",g),{outcome:g,overlay:e.overlay,proposal:e.proposal,validations:e.validations,workspace:e.workspace,advanceReceipt:null,applyReceipt:l}}i(lt,"finishMemoryProposal");async function ce(e){let t=(e.now??(()=>new Date().toISOString()))(),r=z({schemaVersion:"openpond.harnessRefinerOutcome.v1",id:R("refiner-outcome",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},decision:"no_action",proposal:null,reason:e.reason,evidenceRefs:e.trigger.observations,estimatedCostUsd:e.trigger.estimatedMaxCostUsd,createdAt:t,metadata:e.metadata??{}});return await e.store.saveHarnessImprovementArtifact(e.workspace.id,"refiner_outcome",r),{outcome:r,overlay:e.overlay,proposal:null,validations:[],workspace:e.workspace,advanceReceipt:null,applyReceipt:null}}i(ce,"persistNoAction");async function dt(e){let t=(e.now??(()=>new Date().toISOString()))(),r=V({schemaVersion:"openpond.improvementRouteDecision.v1",id:R("route",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},route:e.decision.route,authority:"refiner_model",automatic:!1,reason:e.decision.reason,createdAt:t,metadata:{summary:e.decision.summary,expectedOutcome:e.decision.expectedOutcome,evidenceBasis:e.decision.evidenceBasis,refinerRelease:e.refinerRelease}});return await e.store.saveHarnessImprovementArtifact(e.workspace.id,"route_decision",r),ce({store:e.store,workspace:e.workspace,overlay:e.overlay,trigger:e.trigger,observations:e.observations,reason:`Routed to ${e.decision.route}: ${e.decision.summary}`,metadata:{routed:!0,route:e.decision.route,routeDecision:{id:r.id,contentHash:r.contentHash},expectedOutcome:e.decision.expectedOutcome,evidenceBasis:e.decision.evidenceBasis,refinerRelease:e.refinerRelease},now:i(()=>t,"now")})}i(dt,"persistExternalRoute");function ut(e,t,r){let n=e.route==="memory"?"memory":e.route==="skill"?"skill":e.route==="agent"?"agent":"instruction",o=t.find(s=>s.path===e.target);if(e.operation==="create"){if(o)throw new Error(`Refiner create target already exists: ${e.target}.`);if(!pt(e.route,e.target))throw new Error(`Refiner create target is not a safe ${e.route} component path: ${e.target}.`);return}if(!o)throw new Error(`Refiner targeted an unlisted source file: ${e.target}.`);if(o.kind!==n)throw new Error(`Refiner route ${e.route} cannot ${e.operation} ${o.kind} file ${o.path}.`);let a=r.find(s=>s.path===e.target);if(e.operation==="update"&&!a)throw new Error(`Refiner update target ${e.target} exceeded the bounded source budget.`)}i(ut,"assertSafeDecision");function mt(e,t){if(e.operation==="delete")return null;if(e.operation==="create"){if(e.createContent===null)throw new Error("Refiner create proposal is missing bounded component content.");return e.createContent}let r=t.find(a=>a.path===e.target);if(!r)throw new Error(`Refiner update target ${e.target} exceeded the bounded source budget.`);if(e.find===null||e.replace===null)throw new Error("Refiner update proposal is missing its exact find/replace edit.");let n=r.content.split(e.find).length-1;if(n!==1)throw new Error(`Refiner update find text must occur exactly once in ${e.target}; found ${n}.`);let o=r.content.replace(e.find,e.replace);if(o===r.content)throw new Error("Refiner proposal does not change the selected source file.");return o}i(mt,"materializeDecisionContent");function pt(e,t){let r=t.replaceAll("\\","/");return e==="memory"?/^memory\/[a-z0-9][a-z0-9-]{0,119}$/.test(r):e==="prompt"?/^instructions\/refinements\/[a-z0-9][a-z0-9-]*\.md$/.test(r):e==="skill"?/^skills\/[a-z0-9][a-z0-9-]*\/SKILL\.md$/.test(r):/^agents\/[a-z0-9][a-z0-9-]*\/agent\.ts$/.test(r)}i(pt,"safeCreatedComponentPath");function ft(e){let{decision:t}=e,r={id:R("overlay-edit",{trigger:e.trigger.contentHash,operation:t.operation,target:t.target,content:e.materializedContent}),route:t.route,operation:t.operation,target:t.target,summary:t.summary,content:e.materializedContent,contentHash:e.materializedContent===null?null:E(e.materializedContent),effects:e.effects};if(t.route==="memory")return[r];if(t.operation==="update")return[r];let n=e.manifest.files.find(d=>d.path===t.target),o=new Set,a=[],s=e.manifest.files;if(t.operation==="create"){let d=t.route==="skill"?"skill":t.route==="agent"?"agent":"instruction";s=[...s,{id:R(d,t.target),kind:d,path:t.target,parentId:null,mediaType:t.route==="agent"?"text/javascript":"text/markdown",visibility:"policy",portability:"portable"}]}else{if(!n)throw new Error(`Refiner delete target is not declared: ${t.target}.`);o.add(n.id);for(let d of e.manifest.files)d.parentId===n.id&&(o.add(d.id),a.push({id:R("overlay-edit",{trigger:e.trigger.contentHash,operation:"delete",target:d.path}),route:t.route,operation:"delete",target:d.path,summary:`Remove resource ${d.path} with ${t.target}.`,content:null,contentHash:null,effects:e.effects}));s=s.filter(d=>!o.has(d.id))}let l=B.parse({...e.manifest,files:s}),g=`${JSON.stringify(l,null,2)}
|
|
5
|
+
`,m={id:R("overlay-edit",{trigger:e.trigger.contentHash,operation:"update",target:"harness.json",content:g}),route:t.route,operation:"update",target:"harness.json",summary:`${t.operation==="create"?"Register":"Remove"} Harness component ${t.target}.`,content:g,contentHash:E(g),effects:e.effects};return[r,...a,m]}i(ft,"buildProposalEdits");function gt(e){if(e.route==="agent")return["executable_code"];if(e.route==="memory")return["memory"];let t=[e.summary,e.expectedOutcome,e.createContent??"",e.find??"",e.replace??""].join(`
|
|
6
|
+
`),r=new Set(["text_instruction"]);return/\b(?:margin|markup|revenue|profit|pricing|invoice|quote|job premium|per[- ]truck cost|cost estimate|estimate cost)\b|(?:\$|usd\s*)\d/i.test(t)&&r.add("financial_logic"),/\b(?:business rule|decision rule|eligibility|approval threshold|pricing policy|per[- ]truck governor)\b/i.test(t)&&r.add("business_logic"),/\b(?:permission|access control|credential|secret handling|authorization scope|allowlist)\b/i.test(t)&&r.add("permission"),/\bconnected app\b/i.test(t)&&r.add("connected_app"),/\b(?:publish|publication)\b/i.test(t)&&r.add("publication"),/\bdeploy(?:ment|ed|ing)?\b/i.test(t)&&r.add("deployment"),/\b(?:train(?:ing)?|fine[- ]tun(?:e|ing)|reinforcement learning|\brl\b)\b/i.test(t)&&r.add("training"),/\b(?:model binding|serving model|model selection)\b/i.test(t)&&r.add("model_binding"),/\b(?:team-wide|global harness|all users)\b/i.test(t)&&r.add("team_or_global"),[...r]}i(gt,"classifyProposalEffects");function vt(e){let t=[];return e.decision.operation!=="delete"&&e.evidence.some(r=>r.kind==="recovery")&&t.push({id:`${e.validationId}-observed-recovery`,kind:"observed_recovery",description:"Verify that the proposal is grounded in the recorded successful recovery.",required:!0}),t.push({id:`${e.validationId}-component`,kind:e.decision.route==="memory"?"memory":e.decision.route==="skill"?"skill":e.decision.route==="agent"?"package":"prompt",description:`Compile and validate the ${e.decision.operation} ${e.decision.route} component ${e.decision.target}.`,required:!0}),e.decision.route!=="memory"&&t.push({id:`${e.validationId}-activation`,kind:"component_activation",description:`Prove the ${e.decision.route} edit is present in the effective Desktop Work runtime surface.`,required:!0}),e.effects.some(r=>["business_logic","financial_logic"].includes(r))&&t.push({id:`${e.validationId}-business-formula`,kind:"business_formula",description:"Verify business or financial logic against an approved deterministic fixture before release.",required:!0}),e.effects.some(r=>["permission","connected_app","publication","deployment","training","model_binding","team_or_global"].includes(r))&&t.push({id:`${e.validationId}-targeted-evaluation`,kind:"targeted_evaluation",description:"Run an authority-preserving targeted Evaluation before this sensitive change can release.",required:!0}),t}i(vt,"proposalValidationPlan");export{Ze as a,zt as b};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as _}from"./chunk-6FA3GG5B.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as i}from"./chunk-FTQLQJQV.js";var u=3e3,g=9999,p="openpond.yaml",C="openpond-template-plan.json",w="openpond.sandboxTemplate.buildPlan.v1",q=["google","github","x"],P=new Set([22,2222,2375,2376,3108,5900,5901,6080,7818]),E=e.array(e.string().trim().min(1).max(1e3)).max(50),d=e.string().trim().min(1).max(4096).refine(D,{message:"path must be a relative workspace path"}),$=e.string().trim().min(1).max(500).refine(t=>!t.includes("\0")&&!/\s/.test(t),"image ref must be a single OCI reference"),F=e.string().trim().regex(/^sha256:[0-9a-f]{64}$/i),k=e.string().trim().min(1).max(500).refine(t=>t.startsWith("/")&&!t.includes("\0"),"workspaceRoot must be an absolute guest path"),B=e.object({ref:$,digest:F.optional(),registrySecretRef:e.string().trim().min(1).max(500).optional(),platform:e.literal("linux/amd64").optional(),workspaceRoot:k.optional()}).strict(),Z=e.object({context:d.default("."),path:d.default("Dockerfile"),target:e.string().trim().min(1).max(191).optional(),buildArgs:e.record(e.string().max(191),e.string().max(500)).optional(),registrySecretRefs:e.array(e.string().trim().min(1).max(500)).max(10).optional(),platform:e.literal("linux/amd64").optional(),workspaceRoot:k.optional()}).strict(),V=e.object({base:e.string().trim().min(1).max(120).optional(),snapshot:e.string().trim().min(1).max(191).optional(),image:B.optional(),dockerfile:Z.optional()}).strict().superRefine((t,a)=>{[t.base,t.snapshot,t.image,t.dockerfile].filter(Boolean).length!==1&&a.addIssue({code:e.ZodIssueCode.custom,message:"runtime must declare exactly one of base, snapshot, image, or dockerfile"})}),N=e.object({cpu:e.number().positive().max(8).optional(),memoryGb:e.number().positive().max(32).optional(),diskGb:e.number().positive().max(100).optional()}).strict(),z=e.object({provider:e.enum(q),scopes:e.array(e.string().trim().min(1).max(200)).max(100).default([]),capabilities:e.array(e.string().trim().min(1).max(200)).max(100).default([])}).strict(),U=e.object({models:e.array(e.string().trim().min(1).max(200)).max(100).default([]),scopes:e.array(e.string().trim().min(1).max(200)).max(100).default([])}).strict(),W=e.object({opchat:U.optional()}).catchall(e.record(e.string(),e.unknown())).default({}),X=e.object({name:e.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).max(63).optional(),mountPath:e.string().trim().min(1).max(256).optional(),storageGb:e.number().int().positive().max(100).optional(),deleteOnSandboxDelete:e.boolean().optional()}).strict(),J=e.object({port:e.number().int().min(u).max(g).refine(t=>!P.has(t),{message:"preview port is reserved"}),protocol:e.literal("http").default("http"),label:e.string().trim().min(1).max(80).optional(),access:e.enum(["private","public"]).default("private"),path:e.string().trim().min(1).max(512).refine(t=>t.startsWith("/"),{message:"preview path must start with /"}).default("/")}).strict(),R=e.object({command:e.string().trim().min(1).max(1e3),cwd:d.optional(),timeoutSeconds:e.number().int().positive().max(86400).optional(),requiresStart:e.boolean().default(!1),ports:e.array(J).max(20).default([]),artifactPaths:e.array(d).max(100).default([])}).strict(),I=R.extend({name:e.string().trim().min(1).max(80)}).strict(),H=e.object({name:e.string().trim().min(1).max(80).optional(),service:e.string().trim().min(1).max(80).optional(),port:e.number().int().min(u).max(g).refine(t=>!P.has(t),{message:"app MCP port is reserved"}),path:e.string().trim().min(1).max(512).refine(t=>t.startsWith("/"),{message:"app MCP path must start with /"}).default("/mcp")}).strict(),Y=e.object({name:e.string().trim().min(1).max(80).optional(),port:e.number().int().min(u).max(g).refine(t=>!P.has(t),{message:"validation probe port is reserved"}),path:e.string().trim().min(1).max(512).refine(t=>t.startsWith("/"),{message:"validation probe path must start with /"}).default("/"),expectedStatus:e.number().int().min(100).max(599).default(200)}).strict(),G=e.record(e.string(),e.unknown()).refine(t=>t.type==="object","input schema must be a JSON schema object"),K=e.object({name:e.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(191),required:e.boolean().default(!1),secret:e.boolean().default(!0),description:e.string().trim().max(500).optional()}).strict(),h=e.string().trim().min(1).max(120),Q=e.object({name:e.string().trim().min(1).max(120),description:e.string().trim().max(500).optional(),cron:e.string().trim().min(1).max(500).optional(),rate:e.string().trim().min(1).max(500).optional(),once:h.optional(),scheduleType:e.enum(["rate","cron","once"]).optional(),scheduleExpression:e.string().trim().min(1).max(500).optional(),timezone:e.string().trim().min(1).max(100).optional(),enabled:e.boolean().default(!0),startAt:h.optional(),endAt:h.optional(),maxRuns:e.number().int().positive().nullable().optional(),runtimePolicy:e.enum(["run_and_stop","run_and_archive","run_and_delete","use_existing_running"]).default("run_and_stop"),action:e.string().trim().min(1).max(120).optional(),actionName:e.string().trim().min(1).max(120).optional(),command:e.string().trim().min(1).max(2e3).optional(),target:e.object({kind:e.enum(["start","action","service","command"]).optional(),name:e.string().trim().min(1).max(120).optional(),actionName:e.string().trim().min(1).max(120).optional(),command:e.string().trim().min(1).max(2e3).optional(),requiresStart:e.boolean().optional()}).strict().optional(),requiresStart:e.boolean().optional(),budget:e.object({maxUsd:e.string().trim().min(1).max(40).optional()}).strict().optional(),resources:N.optional(),quotas:e.record(e.string(),e.unknown()).optional(),lifecycle:e.record(e.string(),e.unknown()).optional(),retentionPolicy:e.record(e.string(),e.unknown()).optional(),env:e.array(e.object({name:e.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(191),value:e.string().optional(),secretRef:e.string().optional()}).strict()).max(100).optional(),integrationLeases:e.array(e.record(e.string(),e.unknown())).max(20).optional(),metadata:e.record(e.string(),e.unknown()).optional()}).strict().superRefine((t,a)=>{[t.cron,t.rate,t.once,t.scheduleExpression].filter(l=>typeof l=="string"&&l.trim()).length!==1&&a.addIssue({code:e.ZodIssueCode.custom,path:["scheduleExpression"],message:"schedule must declare exactly one of cron, rate, once, or scheduleExpression"}),t.scheduleExpression&&!t.scheduleType&&a.addIssue({code:e.ZodIssueCode.custom,path:["scheduleType"],message:"scheduleType is required with scheduleExpression"});let r=t.command??t.target?.command??null,o=t.target?.name??null,s=t.actionName??t.action??t.target?.actionName??(t.target?.kind==="action"?o:null),m=t.target?.kind??(r?"command":"action");m==="action"&&!s&&a.addIssue({code:e.ZodIssueCode.custom,path:["action"],message:"schedule action target is required"}),m==="service"&&!o&&a.addIssue({code:e.ZodIssueCode.custom,path:["target","name"],message:"schedule service target name is required"}),m==="command"&&!r&&a.addIssue({code:e.ZodIssueCode.custom,path:["command"],message:"schedule command target is required"})}),b=e.object({schemaVersion:e.literal(1),name:e.string().trim().min(1).max(80).regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$/),version:e.string().trim().min(1).max(40),useCase:e.string().trim().min(1).max(80),description:e.string().trim().min(1).max(500),runtime:V,resources:N.optional(),setup:e.object({commands:E.default([])}).strict().default({commands:[]}),validation:e.object({commands:E.min(1),probes:e.array(Y).max(20).default([])}).strict(),start:R,actions:e.array(I).max(20).default([]),services:e.array(I).max(20).default([]),schedules:e.array(Q).max(20).default([]),mcp:e.object({endpoints:e.array(H).max(10).default([])}).strict().default({endpoints:[]}),volumes:e.array(X).max(5).default([]),integrations:e.object({requiredLeases:e.array(z).max(20).default([])}).strict().default({requiredLeases:[]}),permissions:W,inputs:e.object({schema:G.default({type:"object"}),env:e.array(K).max(100).default([])}).strict().default({schema:{type:"object"},env:[]}),artifacts:e.object({paths:e.array(d).max(100).default([])}).strict().default({paths:[]}),network:e.object({egress:e.enum(["restricted","allow","block"]).default("restricted")}).strict().default({egress:"restricted"})}).strict().superRefine((t,a)=>{se(t,a),j(a,t.volumes.flatMap(n=>n.name?[n.name]:[]),"volume names must be unique","volumes"),re(t,a),ie(t,a),le(t,a),me(t,a)}),y=e.object({path:e.string(),message:e.string(),code:e.string()});function ee(t){let a;try{a=_.load(t)}catch(n){return{ok:!1,manifest:null,diagnostics:[{path:"$",code:"invalid_yaml",message:n instanceof Error?n.message:"Invalid YAML"}]}}return M(a)}i(ee,"validateSandboxTemplateYaml");function M(t){if(!t||typeof t!="object"||Array.isArray(t))return{ok:!1,manifest:null,diagnostics:[{path:"$",code:"invalid_type",message:`${p} must be an object`}]};if(Object.prototype.hasOwnProperty.call(t,"databases"))return{ok:!1,manifest:null,diagnostics:[{path:"$.databases",code:"database_resources_removed",message:"managed database requests are unsupported for Firecracker sandbox templates; use a durable volume with SQLite or files instead"}]};let a=b.safeParse(t);return a.success?{ok:!0,manifest:a.data,diagnostics:[]}:{ok:!1,manifest:null,diagnostics:a.error.issues.map(n=>({path:oe(n.path),code:n.code,message:n.message}))}}i(M,"validateSandboxTemplateManifest");function te(t){return t.map(a=>`${a.path}: ${a.message}`).join(`
|
|
3
|
+
`)}i(te,"formatSandboxTemplateDiagnostics");function v(t){return[{kind:"start",name:"start",...t.start,artifactPaths:S(t.start,t)},...t.actions.map(a=>({kind:"action",name:a.name,command:a.command,cwd:a.cwd,timeoutSeconds:a.timeoutSeconds,requiresStart:a.requiresStart,ports:a.ports,artifactPaths:S(a,t)})),...t.services.map(a=>({kind:"service",name:a.name,command:a.command,cwd:a.cwd,timeoutSeconds:a.timeoutSeconds,requiresStart:a.requiresStart,ports:a.ports,artifactPaths:S(a,t)}))]}i(v,"sandboxTemplateExecutableEntries");function O(t){let a=v(t);return{template:{name:t.name,version:t.version,useCase:t.useCase,runtime:t.runtime},resources:t.resources??null,volumes:t.volumes,executables:a.map(n=>({kind:n.kind,name:n.name,command:n.command,cwd:n.cwd??null,timeoutSeconds:n.timeoutSeconds??null,requiresStart:n.requiresStart,ports:n.ports.map(r=>r.port),artifactPaths:n.artifactPaths})),ports:a.flatMap(n=>n.ports.map(r=>({executable:n.name,kind:n.kind,port:r.port,access:r.access,label:r.label??null}))),appMcpEndpoints:t.mcp.endpoints.map(n=>({name:n.name??null,service:n.service??null,port:n.port,path:n.path})),validation:{commands:t.validation.commands,probes:t.validation.probes},schedules:t.schedules}}i(O,"sandboxTemplateBuildMetadata");function ae(t){return{kind:w,schemaVersion:1,manifestFile:t.manifestFile,projectRoot:t.projectRoot,manifest:t.manifest,metadata:O(t.manifest),executables:v(t.manifest)}}i(ae,"sandboxTemplateBuildPlan");function ne(t){let a=t.name.trim()||"Sandbox Template",n=ce(a),r=t.description?.trim()||`Local scaffold for ${a}.`;return{".gitignore":["node_modules","artifacts",".DS_Store",""].join(`
|
|
4
|
+
`),"README.md":[`# ${a}`,"","Local sandbox template scaffold.","","## Commands","","- `pnpm dev` starts the preview service on port 3000.","- `pnpm process` writes a sample artifact.",`- \`pnpm validate\` validates ${p}.`,""].join(`
|
|
5
|
+
`),"package.json":`${JSON.stringify({private:!0,type:"module",scripts:{dev:"node src/server.ts",process:"node scripts/process.ts",validate:`openpond sandbox-template validate --file ${p}`}},null,2)}
|
|
6
|
+
`,[p]:["schemaVersion: 1",`name: ${n}`,"version: 0.1.0","useCase: sandbox-template-scaffold",`description: ${r}`,"runtime:"," base: node-bun-workspace","resources:"," cpu: 1"," memoryGb: 1"," diskGb: 8","setup:"," commands:"," - mkdir -p artifacts","validation:"," commands:"," - test -f src/server.ts"," - test -f scripts/process.ts","start:"," command: pnpm process"," timeoutSeconds: 300"," ports: []"," artifactPaths:"," - artifacts/result.json","actions: []","schedules: []","services:"," - name: web"," command: pnpm dev"," timeoutSeconds: 3600"," ports:"," - port: 3000"," protocol: http"," label: web"," access: private"," path: /"," artifactPaths: []","inputs:"," env:"," - name: FOO_API_KEY"," required: false"," secret: true"," description: API key used by the sample action."," schema:"," type: object"," properties:"," subject:"," type: string"," title: Subject"," default: Example","artifacts:"," paths:"," - artifacts/result.json","network:"," egress: restricted",""].join(`
|
|
7
|
+
`),"src/server.ts":["import { createServer } from 'node:http';","","createServer((_request, response) => {"," response.setHeader('content-type', 'application/json');"," response.end(JSON.stringify({ ok: true, template: 'sandbox-template-scaffold' }));","}).listen(3000, '0.0.0.0');",""].join(`
|
|
8
|
+
`),"scripts/process.ts":["import { mkdir, writeFile } from 'node:fs/promises';","","const raw = process.env.OPENPOND_REPLAY_PARAMS_BASE64;","const params = raw ? JSON.parse(Buffer.from(raw, 'base64').toString('utf8')).input ?? {} : {};","await mkdir('artifacts', { recursive: true });","await writeFile('artifacts/result.json', JSON.stringify({ ok: true, input: params }, null, 2));","console.log('wrote artifacts/result.json');",""].join(`
|
|
9
|
+
`),"fixtures/input.txt":`Example input
|
|
10
|
+
`}}i(ne,"sandboxTemplateScaffoldFiles");function D(t){return!t.includes("\0")&&!t.startsWith("/")&&!t.split(/[\\/]+/).some(a=>a===".."||a==="")}i(D,"isSafeRelativeWorkspacePath");function oe(t){return t.length===0?"$":`$${t.map(a=>typeof a=="number"?`[${a}]`:`.${String(a)}`).join("")}`}i(oe,"formatIssuePath");function j(t,a,n,r){let o=new Set;for(let s of a){if(o.has(s)){t.addIssue({code:e.ZodIssueCode.custom,path:[r],message:n});return}o.add(s)}}i(j,"addDuplicateNameIssue");function se(t,a){let n=["start",...t.actions.map(r=>r.name),...t.services.map(r=>r.name)];j(a,n,"start, action, and service names must be unique","actions")}i(se,"validateExecutableNames");function re(t,a){let n=x(t.inputs.schema.properties),r=new Set(t.volumes.map(o=>o.name).filter(o=>!!o));for(let[o,s]of Object.entries(n)){let m=x(s),l=x(m["x-openpond-upload"]??m.xOpenPondUpload),c=typeof l.targetPath=="string"&&l.targetPath.trim()?l.targetPath.trim():typeof l.path=="string"&&l.path.trim()?l.path.trim():"";if(!c)continue;let A=c.replace(/^workspace\//,"").replace(/^\/+/,"").replace(/\/+$/,"");if(!D(A)){a.addIssue({code:e.ZodIssueCode.custom,path:["inputs","schema","properties",o,"x-openpond-upload","targetPath"],message:"upload target must be a relative workspace path"});continue}let f=A.split("/");f[0]==="volumes"&&(!f[1]||!r.has(f[1]))&&a.addIssue({code:e.ZodIssueCode.custom,path:["inputs","schema","properties",o,"x-openpond-upload","targetPath"],message:"upload target references an undeclared volume"})}}i(re,"validateInputSchemaUploadTargets");function ie(t,a){j(a,t.inputs.env.map(n=>n.name),"env input names must be unique","inputs")}i(ie,"validateEnvInputs");function le(t,a){let n=new Map(t.services.map(o=>[o.name,new Set(o.ports.map(s=>s.port))])),r=new Set([...t.start.ports.map(o=>o.port),...t.services.flatMap(o=>o.ports.map(s=>s.port))]);for(let[o,s]of t.mcp.endpoints.entries()){if(s.service){let m=n.get(s.service);if(!m){a.addIssue({code:e.ZodIssueCode.custom,path:["mcp","endpoints",o,"service"],message:`app MCP service does not exist: ${s.service}`});continue}m.has(s.port)||a.addIssue({code:e.ZodIssueCode.custom,path:["mcp","endpoints",o,"port"],message:`app MCP port ${s.port} is not declared on service ${s.service}`});continue}r.has(s.port)||a.addIssue({code:e.ZodIssueCode.custom,path:["mcp","endpoints",o,"port"],message:`app MCP port ${s.port} is not declared on start or services`})}}i(le,"validateMcpEndpoints");function me(t,a){let n=new Set(t.actions.map(o=>o.name)),r=new Set(t.services.map(o=>o.name));for(let[o,s]of t.schedules.entries()){let m=s.command??s.target?.command??null;if(s.target?.kind==="command"||m)continue;let l=s.actionName??s.action??s.target?.actionName??(s.target?.kind==="action"?s.target?.name:null);if(l&&!n.has(l)&&a.addIssue({code:e.ZodIssueCode.custom,path:["schedules",o,"action"],message:`schedule action target does not exist: ${l}`}),s.target?.kind==="service"){let c=s.target.name??"";c&&!r.has(c)&&a.addIssue({code:e.ZodIssueCode.custom,path:["schedules",o,"target","name"],message:`schedule service target does not exist: ${c}`})}}}i(me,"validateScheduleTargets");function x(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}i(x,"asRecord");function S(t,a){return t.artifactPaths.length>0?t.artifactPaths:a.artifacts.paths}i(S,"commandArtifactPaths");function ce(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,80)||"sandbox-template"}i(ce,"slug");var pe=e.object({id:e.string(),name:e.string(),description:e.string().nullable(),scheduleType:e.string(),scheduleExpression:e.string(),enabled:e.boolean(),rawEnabled:e.boolean().optional(),syncStatus:e.string().nullable(),syncError:e.string().nullable().optional(),startAt:e.string().nullable(),endAt:e.string().nullable(),maxRuns:e.number().nullable(),executionCount:e.number().nullable(),lifecycleStatus:e.string().nullable(),lifecycleReason:e.string().nullable(),lastExecutionAt:e.string().nullable().optional(),lastExecutionStatus:e.string().nullable().optional(),lastRunNowAt:e.string().nullable().optional(),lastRunNowStatus:e.string().nullable().optional(),updatedAt:e.string(),deploymentId:e.string(),isProduction:e.boolean().optional(),payload:e.unknown().optional()}).passthrough(),de=e.object({total:e.number().int().nonnegative(),active:e.number().int().nonnegative(),paused:e.number().int().nonnegative(),enabled:e.number().int().nonnegative().optional(),disabled:e.number().int().nonnegative().optional(),nextRunAt:e.string().nullable().optional(),lastRunAt:e.string().nullable().optional(),schedules:e.array(pe).optional().default([]),truncated:e.boolean().optional()}).passthrough(),T=e.object({name:e.string(),kind:e.enum(["start","action","service"]),command:e.string(),cwd:e.string().nullable(),timeoutSeconds:e.number().nullable(),requiresStart:e.boolean(),ports:e.array(e.object({port:e.number(),protocol:e.string(),label:e.string().nullable(),access:e.string(),path:e.string()}).passthrough()).default([]),artifactPaths:e.array(e.string()).default([])}).passthrough(),ue=e.object({schemaVersion:e.literal(1),source:e.literal("openpond.yaml"),manifestName:e.string(),manifestVersion:e.string(),manifestUseCase:e.string(),manifestDescription:e.string(),manifestPath:e.string(),manifestHash:e.string(),inputSchema:e.record(e.string(),e.unknown()).default({}),env:e.array(e.object({name:e.string(),required:e.boolean(),secret:e.boolean(),description:e.string().nullable()}).passthrough()).default([]),start:T,actions:e.array(T).default([]),services:e.array(T).default([]),defaultActionName:e.string().nullable(),updatedAt:e.string()}).passthrough(),Ie=e.object({id:e.string(),name:e.string(),description:e.string().nullable(),visibility:e.string().nullable().optional(),gitOwner:e.string().nullable().optional(),gitRepo:e.string().nullable().optional(),gitHost:e.string().nullable().optional(),defaultBranch:e.string().nullable().optional(),sandbox:e.boolean().optional().default(!1),sandboxActionRegistry:ue.nullable().optional(),sandboxManifestHash:e.string().nullable().optional(),sandboxManifestPath:e.string().nullable().optional(),sandboxManifestSyncedAt:e.string().nullable().optional(),sandboxManifestError:e.string().nullable().optional(),updatedAt:e.string().nullable().optional(),latestDeployment:e.object({id:e.string().optional(),status:e.string().optional(),deploymentDomain:e.string().nullable().optional(),createdAt:e.string().optional(),isProduction:e.boolean().nullable().optional(),gitBranch:e.string().nullable().optional()}).nullable().optional(),scheduleSummary:de.nullable().optional()}),ge=e.object({detected:e.boolean(),rootPath:e.string(),manifestPath:e.string(),manifestHash:e.string().nullable().optional().default(null),manifest:e.record(e.string(),e.unknown()).nullable().optional().default(null),normalizedManifest:b.nullable().optional().default(null),valid:e.boolean().optional().default(!1),diagnostics:e.array(y).optional().default([])}),be=e.object({appId:e.string(),appName:e.string(),gitOwner:e.string().nullable(),gitRepo:e.string().nullable(),gitHost:e.string().nullable(),defaultBranch:e.string().nullable(),linkedAt:e.string()}),L=e.object({teamId:e.string(),projectId:e.string(),projectSlug:e.string().nullable().optional().default(null),projectName:e.string().nullable().optional().default(null),sourceRepoUrl:e.string().nullable().optional().default(null),defaultBranch:e.string().nullable().optional().default(null),lastUploadedCommit:e.string().nullable().optional().default(null),lastUploadTransport:e.enum(["git_head","snapshot","api_source_upload"]).nullable().optional().default(null),manifestPath:e.string().nullable().optional().default(null),manifestHash:e.string().nullable().optional().default(null),syncedAt:e.string().nullable().optional().default(null),linkedAt:e.string()}),fe=e.enum(["github_repo","internal_repo","template","manual"]),we=e.object({id:e.string(),teamId:e.string(),name:e.string(),slug:e.string().nullable().optional().default(null),sourceType:fe.optional().default("manual"),sourceLabel:e.string().nullable().optional().default(null),defaultBranch:e.string().nullable().optional().default(null),internalRepoPath:e.string().nullable().optional().default(null),manifestPath:e.string().nullable().optional().default(null),manifestHash:e.string().nullable().optional().default(null),syncedAt:e.string().nullable().optional().default(null),organizationName:e.string().nullable().optional().default(null),organizationSlug:e.string().nullable().optional().default(null),createdAt:e.string().nullable().optional().default(null),updatedAt:e.string().nullable().optional().default(null)}),ke=e.object({id:e.string(),name:e.string(),path:e.string(),workspacePath:e.string(),repoPath:e.string().nullable(),source:e.enum(["folder","git"]),sourceFolders:e.array(e.string().min(1)).min(1).optional(),hiddenFromDefaultSidebar:e.boolean().optional(),sandboxTemplate:ge.nullable().optional().default(null),linkedOpenPondApp:be.nullable().optional().default(null),linkedSandboxProject:L.nullable().optional().default(null),preferredSandboxAgentId:e.string().nullable().optional().default(null),createdAt:e.string(),updatedAt:e.string()}),Ne=e.object({path:e.string().trim().min(1).optional(),sourceFolders:e.array(e.string().trim().min(1)).min(1).optional(),primaryFolder:e.string().trim().min(1).optional(),name:e.string().trim().min(1).max(120).optional(),createNew:e.boolean().optional(),baseDirectory:e.string().trim().min(1).max(4096).optional()}).superRefine((t,a)=>{if(t.createNew){(t.path||t.sourceFolders||t.primaryFolder)&&a.addIssue({code:"custom",message:"A new folder cannot be combined with existing source folders."}),t.name?.trim()||a.addIssue({code:"custom",path:["name"],message:"Project name is required when creating a new project."});return}t.path&&t.sourceFolders&&a.addIssue({code:"custom",message:"Use either path or source folders."}),!t.path?.trim()&&!t.sourceFolders?.length&&a.addIssue({code:"custom",path:["path"],message:"Project path is required."}),t.sourceFolders?.length&&!t.name?.trim()&&a.addIssue({code:"custom",path:["name"],message:"Project name is required."}),t.primaryFolder&&!t.sourceFolders?.length&&a.addIssue({code:"custom",path:["primaryFolder"],message:"Primary folder requires source folders."})}),Re=e.object({linkedSandboxProject:L.nullable().optional(),preferredSandboxAgentId:e.string().nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional()});export{u as a,g as b,p as c,C as d,ee as e,te as f,v as g,ae as h,ne as i,ue as j,Ie as k,we as l,ke as m,Ne as n,Re as o};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as vt,c as rt}from"./chunk-PSGGOZFM.js";import{Da as Jt,Ea as Yt,b as V,p as ot,xa as At,ya as Pt,za as qt}from"./chunk-QOTVNQDI.js";import{s as Vt}from"./chunk-WJ43MJ3F.js";import{S as Kt,U as St,e as Xt}from"./chunk-I7AQMAQI.js";import{I as Wt}from"./chunk-Z4Z5UOZM.js";import{e as Ut}from"./chunk-FFRFSDBM.js";import{b as nt}from"./chunk-ES2ISFJC.js";import{a as r}from"./chunk-FTQLQJQV.js";import{createReadStream as pe,existsSync as fe,mkdirSync as xn,promises as ge,readFileSync as yn,statSync as Dt,writeFileSync as In}from"node:fs";import ht from"node:os";import w from"node:path";import{createInterface as he}from"node:readline";import{promises as ut}from"node:fs";import H from"node:path";var Ue=12e4,Xe=15*1024*1024,st=2*1024*1024,Zt=new Map([[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".png","image/png"],[".webp","image/webp"]]),We=new Set(Zt.values()),Ke=new Set(["application/javascript","application/json","application/ld+json","application/sql","application/toml","application/typescript","application/x-httpd-php","application/x-javascript","application/x-sh","application/x-yaml","application/xml","application/yaml"]),Ve=new Set([".c",".cc",".cpp",".css",".csv",".go",".h",".html",".java",".js",".json",".jsx",".log",".md",".mdx",".php",".py",".rb",".rs",".sh",".sql",".toml",".ts",".tsx",".txt",".xml",".yaml",".yml"]);async function ko(t){let e=t.attachments??[];if(e.length===0)return[];let n=H.join(t.attachmentRootDir,v(t.sessionId),v(t.turnId)),o=new Set,s=[];for(let[a,i]of e.entries()){let c={...Qt(i),...i.text?{text:i.text}:{}};if(i.contentsBase64){await ut.mkdir(n,{recursive:!0});let m=Ze(i.relativePath||i.name,o,a+1),u=H.join(n,m);await ut.mkdir(H.dirname(u),{recursive:!0});let h=Buffer.from(i.contentsBase64,"base64"),p=await Kt(t.storageHome,{owner:{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,m])},displayName:i.name,mediaType:i.mediaType,bytes:h});await Xt(u,h),c.localPath=p.path,c.storageName=m}s.push(c)}return s}r(ko,"materializeChatAttachments");function Eo(t,e){let n=new Map(e?.materialized.map(o=>[o.id,o])??[]);return(t??[]).map(o=>{let s=Qt(o),a=n.get(o.id),i=U(o.mediaType,a?.storageName??o.name);return e&&s.kind==="image"&&a?.localPath&&a.storageName&&i?{...s,imagePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:i}}:e&&a?.localPath&&a.storageName&&o.sizeBytes<=st&&at(o.mediaType,a.storageName)?{...s,filePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:o.mediaType}}:s})}r(Eo,"chatAttachmentSummaries");function Mo(t){if(!t||t.length===0)return"";let e=["<attachments>",`The user attached ${t.length} file${t.length===1?"":"s"} with this message.`],n=Ue;for(let[o,s]of t.entries()){let a=s.localPath?` Saved locally at: ${s.localPath}`:"";e.push(`${o+1}. ${s.name} (${s.mediaType}, ${Qe(s.sizeBytes)}, ${s.kind}).${a}`);let i=s.text?.trim();if(i&&n>0){let d=i.length>n?`${i.slice(0,Math.max(0,n-34))}
|
|
3
|
+
[attachment text truncated]`:i;e.push("Text content:"),e.push("~~~text"),e.push(d),e.push("~~~"),n-=d.length}}return e.push("</attachments>"),e.join(`
|
|
4
|
+
`)}r(Mo,"chatAttachmentContext");function No(t,e){let n=t.trim()||"Please review the attached files.",o=e.trim();return o?`${n}
|
|
5
|
+
|
|
6
|
+
${o}`:n}r(No,"formatPromptWithAttachmentContext");function Qt(t){let e=t.lineCount??(t.text!==void 0?ot(t.text):void 0);return{id:t.id,name:t.name,mediaType:t.mediaType,sizeBytes:t.sizeBytes,kind:t.kind,...e!==void 0?{lineCount:e}:{},...t.relativePath?{relativePath:t.relativePath}:{}}}r(Qt,"chatAttachmentSummary");async function Ho(t){let e=v(t.sessionId),n=v(t.turnId),o=qe(t.storageName),s=U(t.contentType,o??"");if(!o||!s)return null;let a=H.resolve(t.attachmentRootDir,e,n),i=H.resolve(a,o);return i!==a&&!i.startsWith(`${a}${H.sep}`)?null:St(t.storageHome,{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,o])},async(d,c)=>c.sizeBytes>Xe?null:{path:o,contentType:s,bytes:await ut.readFile(d),sizeBytes:c.sizeBytes})}r(Ho,"readChatAttachmentImageFile");async function $o(t){let e=Je(t);return!e||!at(t.contentType,t.storageName)?null:St(t.storageHome,{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,e.storageName])},async(n,o)=>o.sizeBytes>st?null:{path:e.storageName,contentType:t.contentType,content:await ut.readFile(n,"utf8"),sizeBytes:o.sizeBytes})}r($o,"readChatAttachmentTextFile");function U(t,e){let n=t.split(";")[0]?.trim().toLowerCase()??"";return We.has(n)?n:Zt.get(H.extname(e).toLowerCase())??null}r(U,"chatAttachmentImageContentType");function v(t){return t.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"item"}r(v,"safeChatAttachmentPathSegment");function qe(t){let e=t.trim();return!e||e==="."||e===".."||/[\\/]/.test(e)?null:H.basename(e)}r(qe,"cleanStorageName");function Je(t){let e=Ye(t.storageName);if(!e)return null;let n=H.resolve(t.attachmentRootDir,v(t.sessionId),v(t.turnId)),o=H.resolve(n,e);return o.startsWith(`${n}${H.sep}`)?{absolutePath:o,storageName:e}:null}r(Je,"chatAttachmentStoredFilePath");function Ye(t){let e=t.trim().replaceAll("\\","/");if(!e||e.startsWith("/"))return null;let n=e.split("/");return n.some(o=>!o||o==="."||o==="..")?null:n.join("/")}r(Ye,"cleanStoragePath");function at(t,e){let n=t.split(";")[0]?.trim().toLowerCase()??"";return n.startsWith("text/")||Ke.has(n)?!0:Ve.has(H.extname(e).toLowerCase())}r(at,"chatAttachmentTextPreviewSupported");function Ze(t,e,n){let s=t.replaceAll("\\","/").split("/").filter(d=>d&&d!=="."&&d!=="..").map(d=>d.replace(/[^a-zA-Z0-9._ -]+/g,"-").trim()).filter(Boolean).join("/")||`attachment-${n}`,a=s,i=2;for(;e.has(a);){let d=H.extname(s);a=`${d?s.slice(0,-d.length):s}-${i}${d}`,i+=1}return e.add(a),a}r(Ze,"uniqueSafeFileName");function Qe(t){if(t<1024)return`${t} B`;let e=["KB","MB","GB"],n=t/1024;for(let o of e){if(n<1024)return`${n.toFixed(n>=10?0:1)} ${o}`;n/=1024}return`${n.toFixed(0)} TB`}r(Qe,"formatBytes");import{existsSync as tn,lstatSync as en,mkdirSync as nn,readFileSync as te,statSync as on,writeFileSync as rn}from"node:fs";import F from"node:path";var sn=/^[ \t]*##[ \t]+(.+?):[ \t]+((?:\/|[A-Za-z]:[\\/])[^\r\n]+)[ \t]*$/gm,an=/^[ \t]*##[ \t]+(.+?):[ \t]*\r?\n[ \t]*((?:\/|[A-Za-z]:[\\/])[^\r\n]+)[ \t]*$/gm,dn=new Map([[".csv","text/csv"],[".html","text/html"],[".json","application/json"],[".md","text/markdown"],[".pdf","application/pdf"],[".svg","image/svg+xml"],[".txt","text/plain"],[".xml","application/xml"],[".yaml","application/yaml"],[".yml","application/yaml"]]);function ee(t,e){let n=/^\s*# Files mentioned by the user:\s*$/im.exec(t);if(!n)return[];let o=t.slice(n.index+n[0].length),s=/^\s*## My request for Codex:\s*$/im.exec(o);if(!s)return[];let a=[],i=new Set,d=o.slice(0,s.index),c=F.resolve(e,"attachments");for(let m of[sn,an])for(let u of d.matchAll(m)){let h=u?.[1]?.trim(),p=u?.[2]?.trim();if(!h||!p)continue;let f=F.resolve(p);f.startsWith(`${c}${F.sep}`)&&(i.has(f)||(i.add(f),a.push({label:h,localPath:f})))}return a}r(ee,"codexNativeFileMentions");function ne(t,e){let n=new Set(t.map(o=>o.localPath).filter(o=>!!o).map(o=>F.resolve(o)));return[...t,...e.filter(o=>!!U("",o.localPath)&&!n.has(o.localPath)).map(o=>({label:o.label,localPath:o.localPath}))]}r(ne,"mergeCodexNativeImageReferences");function oe(t){let e=[];for(let[n,o]of t.mentions.entries()){if(U("",o.localPath))continue;let s;try{let f=en(o.localPath);if(!f.isFile()||f.size>Vt.maxAttachmentBytes)continue;s=f.size}catch{continue}let a=cn(o.localPath),i=at(a,o.localPath)?"text":"file",d=`${t.turnId}_native_file_${t.offset+n+1}`,c=o.label.slice(0,240),m={id:d,name:c,mediaType:a,sizeBytes:s,kind:i};if(i!=="text"||!t.attachmentRootDir||s>st){e.push(m);continue}let u=ln(d,o.localPath),h=F.join(t.attachmentRootDir,v(t.sessionId),v(t.turnId)),p=F.join(h,u);try{let f=te(o.localPath);nn(h,{recursive:!0}),tn(p)||rn(p,f,{mode:384}),e.push({...m,lineCount:ot(f.toString("utf8")),filePreview:{sessionId:t.sessionId,turnId:t.turnId,attachmentId:d,storageName:u,contentType:a}})}catch{e.push(m)}}return e}r(oe,"codexNativeFileAttachments");function cn(t){return dn.get(F.extname(t).toLowerCase())??"application/octet-stream"}r(cn,"nativeFileMediaType");function ln(t,e){let n=F.basename(e).replace(/[^a-zA-Z0-9._ -]+/g,"-").trim()||"attachment";return`${t.replace(/[^a-zA-Z0-9._-]+/g,"-")}-${n}`}r(ln,"nativeFileStorageName");function re(t){if(!t.localPath||!t.attachmentRootDir||!at(t.mediaType,t.name))return{};let e=F.resolve(t.localPath),n=F.resolve(t.attachmentRootDir,v(t.sessionId));if(!e.startsWith(`${n}${F.sep}`))return{};let[o,...s]=F.relative(n,e).replaceAll("\\","/").split("/"),a=s.join("/");if(!o||!a)return{};try{let i=on(e);return!i.isFile()||i.size>st||!un(i.size,t.sizeBytes)?{}:{filePreview:{sessionId:t.sessionId,turnId:o,attachmentId:t.attachmentId,storageName:a,contentType:t.mediaType},lineCount:ot(te(e,"utf8"))}}catch{return{}}}r(re,"codexHistoryTextAttachmentMetadata");function un(t,e){let n=e<1024?0:e<10240?52:e<1048576?512:e<10485760?52429:524288;return Math.abs(t-e)<=n}r(un,"attachmentSizeMatchesRecordedValue");import{promises as Rt}from"node:fs";import pt from"node:path";var mn=3e4,se=new Map,mt=new Map;async function bt(t,e={}){let n=e.now??Date.now(),o=e.ttlMs??mn,s=await fn(t),a=se.get(t);if(a&&a.signature===s&&n-a.loadedAt<o)return a.files;let i=mt.get(t);if(i)return i;let d=pn(t).then(c=>(se.set(t,{files:c,loadedAt:n,signature:s,scans:(a?.scans??0)+1}),c)).finally(()=>{mt.get(t)===d&&mt.delete(t)});return mt.set(t,d),d}r(bt,"loadCodexHistoryFileIndex");async function pn(t){let e=[{root:pt.join(t,"sessions"),archived:!1},{root:pt.join(t,"archived_sessions"),archived:!0}],n=[];for(let o of e)await ae(o.root,o.archived,n);return n}r(pn,"scanCodexHistoryFiles");async function ae(t,e,n){let o=await Rt.readdir(t,{withFileTypes:!0}).catch(()=>[]);for(let s of o){let a=pt.join(t,s.name);if(s.isDirectory()){await ae(a,e,n);continue}if(!s.isFile()||!s.name.endsWith(".jsonl"))continue;let i=gn(s.name);if(!i)continue;let d=await Rt.stat(a).catch(()=>null);d&&n.push({threadId:i,filePath:a,archived:e,stats:d})}}r(ae,"walk");async function fn(t){let e=["sessions","archived_sessions","history.jsonl","session_index.jsonl",".codex-global-state.json"];return(await Promise.all(e.map(async o=>{let s=await Rt.stat(pt.join(t,o)).catch(()=>null);return`${o}:${s?.mtimeMs??0}:${s?.size??0}`}))).join("|")}r(fn,"indexSignature");function gn(t){return/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i.exec(t)?.[1]??null}r(gn,"threadIdFromFileName");import hn from"node:os";import ie from"node:path";function Et(t){let e=t.trim();return e.startsWith("# AGENTS.md instructions for ")||e.startsWith("<environment_context>")||e.startsWith("<summary>")||e.startsWith("<user_info>")}r(Et,"isCodexInjectedUserMessage");function ft(t){let e=t.trim(),n=/^<(goal_context|turn_aborted)>\s*([\s\S]*?)\s*<\/\1>$/.exec(e);if(n){let o=n[1];return{kind:o,text:n[2]?.trim()||kt(o)}}return e==="<turn_aborted>"?{kind:"turn_aborted",text:kt("turn_aborted")}:e==="<goal_context>"?{kind:"goal_context",text:kt("goal_context")}:null}r(ft,"codexControlMessage");function q(t,e){return t.length<=e?t:`${t.slice(0,e)}
|
|
7
|
+
|
|
8
|
+
[truncated ${t.length-e} characters from Codex history]`}r(q,"truncateText");function gt(t){return t.replace(/[^\S\r\n]+/g," ").replace(/\s+/g," ").trim()}r(gt,"normalizeTitleText");function de(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}r(de,"parseMaybeJson");function it(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}r(it,"parseJson");function C(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}r(C,"asRecord");function l(t){return typeof t=="string"&&t.trim()?t.trim():null}r(l,"stringValue");function B(t){return typeof t=="number"&&Number.isFinite(t)?t:null}r(B,"numberValue");function ce(t){let e=new Map;if(!t)return e;for(let[n,o]of Object.entries(t))typeof o=="string"&&o.trim()&&e.set(n,o.trim());return e}r(ce,"stringMap");function R(t){return t.replace(/[^a-zA-Z0-9_-]+/g,"_").slice(0,96)||"item"}r(R,"safeId");function Mt(t){let e=0;for(let n of t)typeof n=="number"&&n>e&&(e=n);return e}r(Mt,"latestMillis");function Z(t){let e=Mt(t.map(k));return new Date(e||Date.now()).toISOString()}r(Z,"latestIso");function k(t){if(!t)return 0;let e=Date.parse(t);return Number.isFinite(e)?e:0}r(k,"millisFromIso");function J(t){if(typeof t!="string"||!t.trim())return null;let e=t.trim().replace(/(\.\d{3})\d+(Z)$/i,"$1$2"),n=Date.parse(e);return Number.isFinite(n)?new Date(n).toISOString():null}r(J,"isoTimestamp");function le(t){if(t===null)return null;let e=t*1e3;return Number.isFinite(e)?new Date(e).toISOString():null}r(le,"isoFromEpochSeconds");function ue(t){let e=/rollout-(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-/.exec(ie.basename(t));return e?J(`${e[1]}T${e[2]}:${e[3]}:${e[4]}.000Z`):null}r(ue,"isoFromFileName");function Q(){return process.env.CODEX_HOME?.trim()||ie.join(hn.homedir(),".codex")}r(Q,"codexHomePath");function kt(t){return t==="turn_aborted"?"The previous turn was interrupted.":"Goal context updated."}r(kt,"defaultCodexControlText");var xt="codex_history_",j="codex_history",_n=500,xe=2e3,Tn=1440*60*1e3,Cn=512*1024,wn=2*1024*1024,Sn=3e4,Nt=6e4,An=8e3,yt=15*1024*1024,me=new Map,ye=new Map;function Pn(t){return`${xt}${t}`}r(Pn,"codexHistorySessionId");function vn(t){return t.startsWith(xt)?t.slice(xt.length):null}r(vn,"codexHistoryThreadIdFromSessionId");function Ie(t){return t.startsWith(xt)}r(Ie,"isCodexHistorySessionId");async function ir(t={}){return(await Te(t)).map(n=>n.session)}r(ir,"loadCodexHistorySessions");async function dr(t=Q()){return bt(t)}r(dr,"loadCodexHistorySearchFiles");async function cr(t,e={}){let n=e.codexHome??Q(),o=await _e(t,n),s={attachmentRootDir:e.attachmentRootDir,codexHome:n,filePath:o.filePath,fallbackTimestamp:o.session.updatedAt,maxEvents:e.maxEvents??ho(),sessionId:o.session.id,threadId:o.threadId},a=e.tail?await bn({...s,maxBytes:e.tailBytes??xo()}):await Rn(s);return{session:{...o.session,metadata:Re(o.session.metadata,a.goalRuntime??Un(o.session.metadata)),status:a.status==="active"?"active":o.session.status,updatedAt:Z([a.updatedAt,o.session.updatedAt]),title:o.session.title==="Codex chat"&&a.firstPrompt?q(gt(a.firstPrompt),80):o.session.title},events:a.events}}r(cr,"readCodexHistoryThreadPayload");async function lr(t,e={}){let n=await _e(t,e.codexHome??Q()),o=Dt(n.filePath);return{revision:`${o.size}:${o.mtimeMs}`,thread:n}}r(lr,"readCodexHistoryThreadRevision");async function _e(t,e){let n=vn(t);if(!n)throw new Error("Codex history session not found");let o=Ce(e,n),s=ye.get(o);if((!s||!fe(s.filePath))&&(s=(await Te({codexHome:e,includeThreadId:n,metadataLimit:1})).find(i=>i.threadId===n)),!s)throw new Error("Codex history session not found");return s}r(_e,"resolveCodexHistoryThread");async function Te(t={}){let e=t.codexHome??Q(),[n,o,s,a]=await Promise.all([bt(e),kn(e),En(e),Mn(e)]),i=t.excludeThreadIds??new Set,d=Math.max(1,t.metadataLimit??go()),c=new Map(n.map(p=>[p.threadId,p])),u=n.filter(p=>!i.has(p.threadId)||p.threadId===t.includeThreadId).map(p=>({file:p,updatedMs:Mt([p.stats.mtimeMs,k(o.get(p.threadId)?.latestAt),k(s.get(p.threadId)?.updatedAt)])})).sort((p,f)=>f.updatedMs-p.updatedMs).slice(0,d).map(p=>p.file);if(t.includeThreadId){let p=c.get(t.includeThreadId);p&&!u.some(f=>f.threadId===p.threadId)&&u.unshift(p)}let h=[];for(let[p,f]of u.entries()){let $=await Nn(f),X=o.get(f.threadId),W=s.get(f.threadId),b=Dn(W,X),O=Z([X?.latestAt,W?.updatedAt,new Date(f.stats.mtimeMs).toISOString(),$.createdAt]),_=$.createdAt??X?.firstAt??ue(f.filePath)??new Date(f.stats.birthtimeMs||f.stats.ctimeMs||f.stats.mtimeMs).toISOString(),L=$.cwd??a.workspaceRootHints.get(f.threadId)??null,E=await Hn(f,O);h.push({threadId:f.threadId,filePath:f.filePath,session:{id:Pn(f.threadId),experience:"development",provider:"codex",openPondCommandAccessMode:Wt,title:b,appId:null,appName:null,workspaceId:null,workspaceName:null,metadata:Re(void 0,E.goalRuntime),cwd:L,codexThreadId:f.threadId,createdAt:_,updatedAt:Z([E.latestMessageAt,O]),status:E.status,pinned:!1,savedForLater:!1,archived:f.archived,order:p}})}for(let p of h)ye.set(Ce(e,p.threadId),p);return h}r(Te,"loadCodexHistoryThreads");function Ce(t,e){return`${w.resolve(t)}\0${e}`}r(Ce,"threadLookupCacheKey");async function ur(t){let e=[];return await dt(t.filePath,n=>{let o=C(n.payload),s=It(n,o);if(s?.type!=="message")return;let a=l(s.role);if(a!=="user"&&a!=="assistant")return;let i=ct(s.content).trim(),d=a==="assistant"?ke(i):i;!d||a==="user"&&ft(d)||e.push(d)}),e.join(`
|
|
9
|
+
`)}r(ur,"readCodexHistorySearchText");async function Rn(t){let e=we(t);return await dt(t.filePath,n=>{e.accept(n)}),e.finish()}r(Rn,"parseCodexSessionFile");async function bn(t){let e=we(t),n=await Se(t.filePath,t.maxBytes);for(let o of n.split(/\r?\n/)){if(!o.trim())continue;let s=it(o);s&&e.accept(s)}return e.finish()}r(bn,"parseCodexSessionTailFile");function we(t){let e=Math.max(20,t.maxEvents??xe),n=[{id:`${t.sessionId}_session_started`,sessionId:t.sessionId,timestamp:t.fallbackTimestamp,name:"session.started",source:"server",data:{source:j,codexThreadId:t.threadId}}],o=0,s=0,a=0,i=null,d=!1,c=!1,m=null,u=!1,h=null,p=null,f=null,$=null,X=null,W=new Map;function b(x){if(n.push(x),n.length>e){let g=n[0];n.splice(1,n.length-e),g&&n[0]!==g&&n.unshift(g)}}r(b,"push");function O(x){return`${t.sessionId}_turn_${R(x)}`}r(O,"providerRuntimeTurnId");function _(x){if(!x)return;let g=O(x);i!==g&&(i=g,d=!1,c=!1,s=0,a=0)}r(_,"adoptProviderTurn");function L(x=null){return _(x),i||(o+=1,i=`${t.sessionId}_turn_${o}`,d=!1,c=!1,i)}r(L,"activeTurnId");function E(x=null){return _(x),(!i||d||c)&&(o+=1,i=`${t.sessionId}_turn_${o}`,d=!1),d=!0,c=!1,i}r(E,"beginPromptTurn");function z(x=null){return _(x),(!i||c)&&(o+=1,i=`${t.sessionId}_turn_${o}`,d=!1),c=!1,i}r(z,"beginLifecycleTurn");function M(x,g,S="Goal cleared",I=!1){b({id:`${t.sessionId}_thread_goal_cleared_${R(`${x}_${S}`)}`,sessionId:t.sessionId,...g?{turnId:g}:{},timestamp:x,name:"diagnostic",source:"provider",status:"completed",output:S,data:{source:j,codexThreadId:t.threadId,kind:"thread_goal_cleared",provider:"codex",threadId:t.threadId,synthetic:I}})}r(M,"pushThreadGoalCleared");function et(x,g,S,I=null){let K=L(I);c||b({id:`${K}_${g==="turn.completed"?"completed":"interrupted"}_${R(x)}`,sessionId:t.sessionId,turnId:K,timestamp:x,name:g,source:"provider",status:"completed",...S?{output:S}:{},data:{source:j,codexThreadId:t.threadId}}),c=!0,$=x,u&&(u=!1,M(x,K,"Goal cleared",!0))}r(et,"completeLifecycleTurn");function lt(x){let g=J(x.timestamp)??t.fallbackTimestamp;X=Z([X,g]);let S=C(x.payload);if(x.type==="event_msg"&&S){let A=l(S.type);if(A==="thread_goal_updated"){let T=C(S.goal);if(!T)return;u=Lt(T),h=Ft(T,g);let y=i??void 0;b({id:`${t.sessionId}_thread_goal_${R(g)}`,sessionId:t.sessionId,...y?{turnId:y}:{},timestamp:g,name:"diagnostic",source:"provider",status:"completed",output:q(ve(T)??"Goal runtime updated",Nt),data:{source:j,codexThreadId:t.threadId,kind:"thread_goal",provider:"codex",goal:T}});return}if(A==="thread_goal_cleared"){u=!1,h=null,M(g,i??void 0);return}if(A==="task_started"){z(l(S.turn_id)),f=g;return}if(A==="task_complete"){et(g,"turn.completed",void 0,l(S.turn_id));return}if(A==="turn_aborted"){et(g,"turn.interrupted",Xn(S),l(S.turn_id));return}}let I=It(x,S);if(!I)return;let K=jn(I),D=l(I.id);if(I.type==="message"){let A=l(I.role),T=I.content,y=ct(T);if(!y&&!oo(T))return;if(A==="user"){_(K);let P=Ot(y,g);P&&(u=!0,h??=P);let N=ft(y);if(N){let wt=i??void 0;b({id:`${t.sessionId}_${N.kind}_${R(g)}`,sessionId:t.sessionId,...wt?{turnId:wt}:{},timestamp:g,name:N.kind==="turn_aborted"?"turn.interrupted":"diagnostic",source:"provider",status:"completed",output:q(N.text,Nt),data:{source:j,codexThreadId:t.threadId,kind:N.kind}}),N.kind==="turn_aborted"&&(c=!0,$=g,u&&(u=!1,M(g,wt,"Goal cleared",!0)));return}if(Et(y))return;let G=E(K),Y=eo(T,{attachmentRootDir:t.attachmentRootDir,codexHome:t.codexHome??Q(),sessionId:t.sessionId,turnId:G});s=0,a=0,p=g,m||(m=Y.prompt),b({id:D?`${t.sessionId}_${R(D)}_started`:`${G}_started`,sessionId:t.sessionId,turnId:G,timestamp:g,name:"turn.started",source:"chat_action",args:{prompt:q(Y.prompt,Sn),...Y.attachments.length>0?{attachments:Y.attachments}:{}},status:"started",data:{source:j,codexThreadId:t.threadId}});return}if(A==="assistant"){let P=L(K),N=l(I.phase),G=x.type==="message",Y=ke(y);Y&&(s+=1,b({id:D?`${t.sessionId}_${R(D)}_assistant`:`${P}_assistant_${s}`,sessionId:t.sessionId,turnId:P,timestamp:g,name:"assistant.delta",source:"provider",output:q(Y,Nt),data:{source:j,codexThreadId:t.threadId,...N?{phase:N}:{}}})),(N==="final_answer"||G)&&($=g,c||b({id:D?`${t.sessionId}_${R(D)}_completed`:`${P}_completed`,sessionId:t.sessionId,turnId:P,timestamp:g,name:"turn.completed",source:"provider",status:"completed",data:{source:j,codexThreadId:t.threadId}}),c=!0)}return}if(Bn(I.type)){a+=1;let A=L(K),T=R(l(I.call_id)??String(a)),y=l(I.name)??"tool",P=Ln(I),N=I.type==="custom_tool_call"?P:de(P),G=I.type==="custom_tool_call"?On(y,P):Fn(y,N);W.set(T,{command:G,name:y}),b({id:D?`${t.sessionId}_${R(D)}_tool_started`:`${A}_tool_started_${a}_${T}`,sessionId:t.sessionId,turnId:A,timestamp:g,name:"tool.started",source:"provider",action:y,status:"started",output:G??y,data:{source:j,codexThreadId:t.threadId,callId:T,tool:y,arguments:N??P,...G?{command:G}:{}}});return}if(Pe(I.type)){a+=1;let A=L(K),T=R(l(I.call_id)??String(a)),y=W.get(T),P=q(Ae(I),An);b({id:D?`${t.sessionId}_${R(D)}_tool_completed`:`${A}_tool_completed_${a}_${T}`,sessionId:t.sessionId,turnId:A,timestamp:g,name:"tool.completed",source:"provider",action:y?.name??l(I.type)??"tool",status:"completed",output:P,data:{source:j,codexThreadId:t.threadId,callId:T,...y?.name?{tool:y.name}:{},...y?.command?{command:y.command}:{}}}),P&&y?.command&&b({id:D?`${t.sessionId}_${R(D)}_command_output`:`${A}_command_output_${a}_${T}`,sessionId:t.sessionId,turnId:A,timestamp:g,name:"command.output",source:"provider",output:P,data:{source:j,codexThreadId:t.threadId,callId:T,command:y.command}}),W.delete(T)}}r(lt,"accept");function Ge(){let x=Math.max(k(p),k(f)),g=k($),S=!!(x&&(!g||x>g)&&!c);return{events:n,status:u||S?"active":"idle",updatedAt:X,firstPrompt:m,goalRuntime:h}}return r(Ge,"finish"),{accept:lt,finish:Ge}}r(we,"createCodexRecordParser");async function kn(t){let e=new Map;return await dt(w.join(t,"history.jsonl"),n=>{let o=C(n),s=l(o?.session_id),a=gt(l(o?.text)??""),i=le(B(o?.ts));if(!s||!a||!i)return;let d=e.get(s)??{firstPrompt:null,latestPrompt:null,firstAt:null,latestAt:null};(!d.firstAt||k(i)<k(d.firstAt))&&(d.firstAt=i,d.firstPrompt=a),(!d.latestAt||k(i)>k(d.latestAt))&&(d.latestAt=i,d.latestPrompt=a),e.set(s,d)}).catch(()=>{}),e}r(kn,"readPromptHistory");async function En(t){let e=new Map;return await dt(w.join(t,"session_index.jsonl"),n=>{let o=C(n),s=l(o?.id);s&&e.set(s,{id:s,threadName:gt(l(o?.thread_name)??"")||null,updatedAt:J(l(o?.updated_at))})}).catch(()=>{}),e}r(En,"readSessionIndex");async function Mn(t){let e=w.join(t,".codex-global-state.json"),n;try{n=JSON.parse(await ge.readFile(e,"utf8"))}catch{n=null}let o=C(n);return{workspaceRootHints:ce(C(o?.["thread-workspace-root-hints"]))}}r(Mn,"readGlobalState");async function Nn(t){let e=me.get(t.filePath);if(e&&e.mtimeMs===t.stats.mtimeMs&&e.size===t.stats.size)return e.metadata;let n={id:null,cwd:null,createdAt:null};return await $n(t.filePath,80,o=>{let s=C(o.payload);s&&(o.type==="session_meta"&&(n={id:n.id??l(s.id)??l(s.session_id),cwd:n.cwd??l(s.cwd),createdAt:n.createdAt??J(l(s.timestamp)??l(o.timestamp))}),o.type==="turn_context"&&!n.cwd&&(n={...n,cwd:l(s.cwd)}))}),me.set(t.filePath,{mtimeMs:t.stats.mtimeMs,size:t.stats.size,metadata:n}),n}r(Nn,"readCodexSessionMetadata");async function Hn(t,e){if(!(Date.now()-t.stats.mtimeMs<=Tn))return{status:"idle",latestMessageAt:null,goalRuntime:null};let o=await Se(t.filePath,Cn).catch(()=>"");if(!o)return{status:"idle",latestMessageAt:null,goalRuntime:null};let s=null,a=null,i=null,d=null,c=null,m=null,u=!1,h=null,p=!1;for(let b of o.split(/\r?\n/)){let O=it(b);if(!O)continue;let _=J(O.timestamp)??e,L=C(O.payload);if(O.type==="event_msg"&&L){let z=l(L.type);if(z==="thread_goal_updated"){let M=C(L.goal);M&&(d=_,u=Lt(M),h=Ft(M,_))}else z==="thread_goal_cleared"?(d=_,u=!1,h=null):z==="task_started"?(c=_,m=_):(z==="task_complete"||z==="turn_aborted")&&(a=_,m=_,u&&(d=_,u=!1));continue}let E=It(O,L);if(E){if(E.type==="message"){let z=l(E.role),M=ct(E.content);if(z==="user"&&M){let et=Ot(M,_);et&&(h??=et,d=_,u=!0);let lt=ft(M);lt?.kind==="turn_aborted"&&(a=_),!lt&&!Et(M)&&(s=_)}z==="assistant"&&M&&(i=_,(l(E.phase)==="final_answer"||O.type==="message")&&(a=_))}Pe(E.type)&&/(?:Process running with session ID|Script running with cell ID)/i.test(Ae(E))&&(p=!0)}}let f=Math.max(k(s),k(c)),$=k(a),X=!!(f&&(!$||f>$)),W=u||X||p&&!$?"active":"idle";return W==="active"&&!h&&(h=await Gn(t,e)),{status:W,latestMessageAt:Z([i,s,d,m]),goalRuntime:h}}r(Hn,"statusForCodexHistoryFile");async function dt(t,e){let n=pe(t,{encoding:"utf8"}),o=he({input:n,crlfDelay:1/0});for await(let s of o){if(!s.trim())continue;let a=it(s);a&&e(a)}}r(dt,"readJsonlRecords");async function $n(t,e,n){let o=pe(t,{encoding:"utf8"}),s=he({input:o,crlfDelay:1/0}),a=0;try{for await(let i of s){if(!i.trim())continue;let d=it(i);if(d&&(n(d),a+=1),a>=e)return}}finally{s.close(),o.destroy()}}r($n,"readInitialJsonlRecords");async function Se(t,e){let n=await ge.open(t,"r");try{let o=await n.stat(),s=Math.min(e,o.size),a=Math.max(0,o.size-s),i=Buffer.alloc(s),{bytesRead:d}=await n.read(i,0,s,a),c=i.subarray(0,d).toString("utf8");if(a===0)return c;let m=c.search(/\r?\n/);return m===-1?c:c.slice(m+1)}finally{await n.close()}}r(Se,"readTail");function Dn(t,e){return q(t?.threadName??e?.firstPrompt??e?.latestPrompt??"Codex chat",80)}r(Dn,"titleForThread");function Fn(t,e){let n=C(e);return l(n?.cmd)??l(n?.command)??l(n?.tool)??t}r(Fn,"commandFromToolCall");function On(t,e){if(t!=="exec")return null;let n=Array.from(e.matchAll(/(?:"cmd"|\bcmd)\s*:\s*("(?:\\.|[^"\\])*")/g),o=>{try{let s=JSON.parse(o[1]??"");return typeof s=="string"&&s.trim()?s.trim():null}catch{return null}}).filter(o=>!!o);return n.length===1?n[0]:n.length===0&&/\btools\.apply_patch\s*\(/.test(e)?"apply_patch":null}r(On,"commandFromCustomToolCall");function Ln(t){return l(t.arguments)??l(t.input)??""}r(Ln,"codexToolCallArguments");function Ae(t){return l(t.output)??ct(t.output)}r(Ae,"codexToolCallOutput");function Bn(t){return t==="function_call"||t==="custom_tool_call"}r(Bn,"isCodexToolCall");function Pe(t){return t==="function_call_output"||t==="custom_tool_call_output"}r(Pe,"isCodexToolCallOutput");function It(t,e){return t.type==="response_item"?e:zn(t.type)?C(t):null}r(It,"responsePayloadFromCodexRecord");function jn(t){let e=C(t.internal_chat_message_metadata_passthrough);return l(e?.turn_id)??l(t.turn_id)}r(jn,"providerTurnIdFromResponsePayload");function zn(t){return t==="message"||t==="function_call"||t==="function_call_output"||t==="custom_tool_call"||t==="custom_tool_call_output"}r(zn,"isLegacyResponseItemType");function ve(t){return l(t.objective)}r(ve,"goalObjective");function Ft(t,e){return Lt(t)?{provider:"codex",objective:ve(t)??"Active goal",status:l(t.status)??"active",timeUsedSeconds:_t(B(t.timeUsedSeconds)??B(t.time_used_seconds)??0),tokensUsed:tt(B(t.tokensUsed)??B(t.tokens_used)),tokenBudget:tt(B(t.tokenBudget)??B(t.token_budget)),updatedAt:e}:null}r(Ft,"activeGoalRuntimeFromCodexGoalRecord");function Ot(t,e){return/<codex_internal_context\b[^>]*\bsource=["']goal["'][^>]*>/i.test(t)?{provider:"codex",objective:Wn(t,"objective")??"Active goal",status:"active",timeUsedSeconds:_t(Ht(t,"Time used seconds")??0),tokensUsed:tt(Ht(t,"Tokens used")),tokenBudget:tt(Ht(t,"Token budget")),updatedAt:e}:null}r(Ot,"activeGoalRuntimeFromCodexInternalContext");function Lt(t){let n=(l(t.status)??"active").toLowerCase();return!(n.includes("complete")||n.includes("achieved")||n.includes("blocked")||n.includes("limited")||n.includes("paused")||n.includes("stopped")||n.includes("canceled")||n.includes("cancelled")||n.includes("interrupted")||n.includes("aborted")||n.includes("failed")||n.includes("closed"))}r(Lt,"goalRecordIsActive");async function Gn(t,e){let n=null;return await dt(t.filePath,o=>{let s=J(o.timestamp)??e,a=C(o.payload);if(o.type==="event_msg"&&a){let c=l(a.type);if(c==="thread_goal_updated"){let m=C(a.goal);m&&(n=Ft(m,s));return}if(c==="thread_goal_cleared"){n=null;return}}let i=It(o,a);if(i?.type!=="message"||l(i.role)!=="user")return;let d=Ot(ct(i.content),s);d&&!n&&(n=d)}).catch(()=>{}),n}r(Gn,"latestKnownActiveGoalRuntimeForCodexHistoryFile");function Re(t,e){let n={...t??{}};return delete n.codexGoalRuntime,e&&(n.codexGoalRuntime=e),Object.keys(n).length>0?n:void 0}r(Re,"sessionMetadataWithCodexGoalRuntime");function Un(t){let e=C(t?.codexGoalRuntime);if(!e||l(e.provider)!=="codex")return null;let n=l(e.objective),o=l(e.status),s=J(e.updatedAt);return!n||!o||!s?null:{provider:"codex",objective:n,status:o,timeUsedSeconds:_t(B(e.timeUsedSeconds)??0),tokensUsed:tt(B(e.tokensUsed)),tokenBudget:tt(B(e.tokenBudget)),updatedAt:s}}r(Un,"codexGoalRuntimeFromSessionMetadata");function Xn(t){let e=l(t.reason);return e?`Turn interrupted: ${e}`:"Turn interrupted."}r(Xn,"turnAbortMessage");function Wn(t,e){let n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`<${n}[^>]*>([\\s\\S]*?)<\\/${n}>`,"i").exec(t)?.[1]?.trim()||null}r(Wn,"xmlBlock");function Kn(t,e){let n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`^\\s*-?\\s*${n}:\\s*(.+?)\\s*$`,"im").exec(t)?.[1]?.trim()||null}r(Kn,"lineValue");function Ht(t,e){let n=Kn(t,e);if(!n||n.toLowerCase()==="none")return null;let o=n.replace(/,/g,""),s=/^-?\d+(?:\.\d+)?/.exec(o);if(!s)return null;let a=Number(s[0]);return Number.isFinite(a)?a:null}r(Ht,"numberFromLine");function _t(t){return Math.max(0,Math.floor(t))}r(_t,"nonNegativeInteger");function tt(t){return t===null?null:_t(t)}r(tt,"nullableNonNegativeInteger");function ct(t){return typeof t=="string"?t.trim():Array.isArray(t)?t.map(e=>{if(typeof e=="string")return e;let n=C(e);return l(n?.text)??""}).filter(Boolean).join(`
|
|
10
|
+
`).trim():""}r(ct,"textFromContent");var Vn=/(?:^|\n)\s*<attachments>\s*([\s\S]*?)\s*<\/attachments>\s*/g,qn=/^\s*\d+\.\s+(.+)\s+\(([^,]+),\s*([0-9]+(?:\.[0-9]+)?)\s*(B|KB|MB|GB|TB),\s*(image|text|file)\)\.(?:\s+Saved locally at:\s*(.+))?\s*$/i,be=/<image\s+name=(?:\[([^\]]*)\]|"([^"]*)"|'([^']*)'|([^\s>]+))\s+path="([^"]+)"\s*>/g,Jn=/<\/image>/gi,Yn=/^\s*# Files mentioned by the user:\s*$/im,Zn=/^\s*## My request for Codex:\s*$/im,Qn=/^\s*::git-(?:stage|commit|create-branch|push|create-pr)\{[^\r\n]*\}\s*$/,to=/^data:([^;,]+);base64,([a-zA-Z0-9+/=\s]+)$/;function ke(t){let e=null;return t.split(/\r?\n/).filter(o=>{let s=/^\s*(`{3,}|~{3,})/.exec(o)?.[1];if(s){let a=s[0];return e===null?e=a:e===a&&(e=null),!0}return e!==null||!Qn.test(o)}).join(`
|
|
11
|
+
`).replace(/\n{3,}/g,`
|
|
12
|
+
|
|
13
|
+
`).trim()}r(ke,"visibleCodexAssistantContent");function eo(t,e){let n=Ee(t),o=[],s=0,a=ee(n.text,e.codexHome),i=ne(ro(n.text),a),d=no(n.text.replace(Vn,(c,m)=>(o.push(...so(m,e,s)),s+=1,`
|
|
14
|
+
`)).replace(be,`
|
|
15
|
+
`).replace(Jn,`
|
|
16
|
+
`).trim());return o.push(...oe({attachmentRootDir:e.attachmentRootDir,mentions:a,offset:o.length,sessionId:e.sessionId,turnId:e.turnId})),o.push(...ao(n.inputImages,i,e,o.length)),n.inputImages.length===0&&o.push(...io(i,e,o.length)),{prompt:d||(o.length>0?"Please review the attached files.":n.text.trim()),attachments:o}}r(eo,"visibleCodexUserContent");function no(t){let e=Yn.exec(t);if(!e)return t;let n=t.slice(e.index+e[0].length),o=Zn.exec(n);return o?n.slice(o.index+o[0].length).trim():t}r(no,"visibleCodexPromptText");function Ee(t){if(typeof t=="string")return{text:t.trim(),inputImages:[]};if(!Array.isArray(t))return{text:"",inputImages:[]};let e=[],n=[];for(let o of t){if(typeof o=="string"){e.push(o);continue}let s=C(o),a=l(s?.text);a&&e.push(a);let i=l(s?.image_url);i&&l(s?.type)==="input_image"&&n.push(i)}return{text:e.filter(Boolean).join(`
|
|
17
|
+
`).trim(),inputImages:n}}r(Ee,"codexUserContentParts");function oo(t){return Ee(t).inputImages.length>0}r(oo,"codexContentHasInputImage");function ro(t){return Array.from(t.matchAll(be)).map(e=>({label:e[1]??e[2]??e[3]??e[4]??null,localPath:e[5]??null}))}r(ro,"codexImageReferences");function so(t,e,n){let o=[];for(let s of t.split(/\r?\n/)){let a=qn.exec(s);if(!a)continue;let i=a[1]?.trim(),d=a[2]?.trim(),c=po(a[3],a[4]),m=fo(a[5]);if(!i||!d||c===null||!m)continue;let u=`${e.turnId}_attachment_${n+1}_${o.length+1}`,h=a[6]?.trim()||uo(i),p=co({attachmentId:u,context:e,kind:m,localPath:h,mediaType:d}),f=re({attachmentId:u,attachmentRootDir:e.attachmentRootDir,localPath:h,mediaType:d,name:i,sessionId:e.sessionId,sizeBytes:c});o.push({id:u,name:i,mediaType:d,sizeBytes:c,kind:m,...p?{imagePreview:p}:{},...f})}return o}r(so,"parseCodexAttachmentContext");function ao(t,e,n,o){let s=[];for(let[a,i]of t.entries()){let d=lo(i);if(!d)continue;let c=e[a],m=Ne(c,d.contentType,a),u=`${n.turnId}_input_image_${a+1+o}`,h=Bt({bytes:d.bytes,attachmentId:u,contentType:d.contentType,context:n,name:m});s.push({id:u,name:m,mediaType:d.contentType,sizeBytes:d.bytes.byteLength,kind:"image",...h?{imagePreview:h}:{}})}return s}r(ao,"codexInputImageAttachments");function io(t,e,n){let o=[];for(let[s,a]of t.entries()){let i=a.localPath??null;if(!i)continue;let d=U("",i),c=Me(i);if(!d||!c)continue;let m=Ne(a,d,s),u=`${e.turnId}_image_reference_${s+1+n}`,h=Bt({bytes:c,attachmentId:u,contentType:d,context:e,name:m});o.push({id:u,name:m,mediaType:d,sizeBytes:c.byteLength,kind:"image",...h?{imagePreview:h}:{}})}return o}r(io,"codexImageReferenceAttachments");function co(t){if(t.kind!=="image"||!t.localPath||!t.context.attachmentRootDir)return;let e=w.basename(t.localPath),n=U(t.mediaType,e);if(!n)return;let o=w.resolve(t.localPath),s=w.resolve(t.context.attachmentRootDir,v(t.context.sessionId),v(t.context.turnId));if(o===s||!o.startsWith(`${s}${w.sep}`)){let a=Me(t.localPath);return a?Bt({attachmentId:t.attachmentId,bytes:a,contentType:n,context:t.context,name:e}):void 0}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:n}}r(co,"codexHistoryImagePreview");function Bt(t){if(!t.context.attachmentRootDir||t.bytes.byteLength>yt)return;let e=mo(t.attachmentId,t.name,t.contentType),n=w.join(t.context.attachmentRootDir,v(t.context.sessionId),v(t.context.turnId)),o=w.join(n,e);try{xn(n,{recursive:!0}),fe(o)||In(o,t.bytes,{mode:384})}catch{return}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:t.contentType}}r(Bt,"materializedCodexHistoryImagePreview");function lo(t){let e=to.exec(t.trim());if(!e)return null;let n=U(e[1],"");if(!n)return null;let o=Buffer.from(e[2].replace(/\s+/g,""),"base64");return o.byteLength===0||o.byteLength>yt?null:{bytes:o,contentType:n}}r(lo,"parseDataImageUrl");function Me(t){try{let e=Dt(t);return!e.isFile()||e.size<=0||e.size>yt?null:yn(t)}catch{return null}}r(Me,"readCodexHistoryImageBytes");function uo(t){return[w.join(ht.homedir(),"Pictures","Screenshots",t),w.join(ht.homedir(),"Pictures",t),w.join(ht.homedir(),"Downloads",t),w.join(ht.homedir(),"Desktop",t)].find(n=>{if(!U("",n))return!1;try{let s=Dt(n);return s.isFile()&&s.size>0&&s.size<=yt}catch{return!1}})}r(uo,"localImagePathByName");function Ne(t,e,n){let o=t?.localPath?w.basename(t.localPath):"";if(o)return o;let s=t?.label?.trim();return s?`${s}${$t(e)}`:`image-${n+1}${$t(e)}`}r(Ne,"imageAttachmentName");function mo(t,e,n){let o=w.extname(e)||$t(n),s=w.basename(e,w.extname(e)).replace(/[^a-zA-Z0-9._ -]+/g,"-").trim()||"image";return`${R(t)}-${s}${o}`}r(mo,"uniqueCodexHistoryImageStorageName");function $t(t){return t==="image/jpeg"?".jpg":t==="image/gif"?".gif":t==="image/webp"?".webp":".png"}r($t,"imageExtension");function po(t,e){if(!t||!e)return null;let n=Number.parseFloat(t);if(!Number.isFinite(n)||n<0)return null;let o=e.toUpperCase(),a={B:1,KB:1024,MB:1024**2,GB:1024**3,TB:1024**4}[o];return a?Math.round(n*a):null}r(po,"parseAttachmentByteSize");function fo(t){return t==="image"||t==="text"||t==="file"?t:null}r(fo,"attachmentKind");function go(){return jt("OPENPOND_CODEX_HISTORY_LIMIT",_n)}r(go,"metadataLimit");function ho(){return jt("OPENPOND_CODEX_HISTORY_EVENT_LIMIT",xe)}r(ho,"eventLimit");function xo(){return jt("OPENPOND_CODEX_HISTORY_THREAD_TAIL_BYTES",wn)}r(xo,"threadTailBytes");function jt(t,e){let n=process.env[t],o=n?Number.parseInt(n,10):NaN;return Number.isFinite(o)&&o>0?o:e}r(jt,"positiveIntegerEnv");import{createHash as $e}from"node:crypto";import{createHash as yo}from"node:crypto";function Tt(t){return t.provider==="openpond"?t.id:t.provider==="codex"?t.codexThreadId:t.nativeAgent?.sessionId??null}r(Tt,"localManagedSessionId");function gr(t){return Ut(t)||["openpond","codex","claude-code","opencode","grok-build"].includes(t)}r(gr,"localManagedProviderSupported");function He(t,e){return yo("sha256").update(JSON.stringify({id:t.id,provider:t.provider,managedSessionId:Tt(t),nativeAgent:t.nativeAgent??null,cwd:t.cwd,nativeHistoryProjection:t.metadata?.nativeHistoryProjection===!0,nativeResumeAvailable:t.metadata?.nativeResumeAvailable===!0,nativeBranch:t.metadata?.nativeBranch??null,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,latestTurnId:e})).digest("hex")}r(He,"localManagedTargetRevision");function De(t){return $e("sha256").update(V("POST","/ponder/desktop/catalog",t)).digest("hex")}r(De,"localSessionIdentityHash");function Ct(t,e){return De({managedRevision:He(t,e),modelRef:t.modelRef??null,profile:t.currentProfile??null,profileWorkflowBinding:t.profileWorkflowBinding??null,profileComponentBinding:t.profileComponentBinding??null,experience:t.experience,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}r(Ct,"localSessionOwnershipRevision");function zt(t){return De({provider:t.provider,modelRef:t.modelRef??null,experience:t.experience,profile:t.currentProfile??null,workflow:t.profileWorkflowBinding??null,component:t.profileComponentBinding??null,cwd:t.cwd,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,cloudProjectId:t.cloudProjectId??null,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}r(zt,"localSessionConfigurationRevision");function vr(t){return t.metadata?.ponderLocalOwner===void 0&&!t.archived&&!t.systemKind&&!t.hiddenFromDefaultSidebar&&t.status!=="closed"&&!t.metadata?.nativeHistoryProjection&&!Ie(t.id)&&!["sandbox","sandbox_template","sandbox_app"].includes(t.workspaceKind??"")}r(vr,"localSessionMayResolveOwnership");function Io(t){return $e("sha256").update(JSON.stringify({provider:t.provider,modelRef:t.modelRef,profile:t.currentProfile,workflow:t.profileWorkflowBinding,component:t.profileComponentBinding,cwd:t.cwd,workspaceKind:t.workspaceKind,workspaceId:t.workspaceId,localProjectId:t.localProjectId,owner:t.metadata?.ponderLocalOwner,commandAccessMode:t.openPondCommandAccessMode})).digest("hex")}r(Io,"remoteExecutionRevision");function _o(t){return{revision:Io(t),managedSessionId:Tt(t)}}r(_o,"remoteExecutionSnapshot");function Rr(t,e){if(!t.payload.remoteDevice)return;let n=t.payload.remoteDeviceExecution,o=_o(e);if(!n||n.revision!==o.revision||n.managedSessionId&&n.managedSessionId!==o.managedSessionId)throw new Error("The local task's provider, Profile, workspace or original agent changed before the remote instruction could run.")}r(Rr,"assertRemoteExecution");import{createHash as To}from"node:crypto";function Nr(t){return{ponderDesktopReservation:t}}r(Nr,"localSessionReservationMetadata");function Fe(t){let e=t.metadata?.ponderDesktopReservation;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;return typeof n.operationId!="string"||typeof n.payloadHash!="string"||typeof n.creationHash!="string"?null:n}r(Fe,"readLocalSessionReservation");function Hr(t){return To("sha256").update(V("POST","/local/session",t)).digest("hex")}r(Hr,"localSessionCreationHash");import{createHash as Co}from"node:crypto";function Oe(t){return Co("sha256").update(V("POST","/ponder/desktop/catalog",t)).digest("hex")}r(Oe,"hash");function wo(t){return t?Oe(t):null}r(wo,"ponderDesktopProfileSelectionId");async function Wr(t){let e=[];for(let n of t.sessions){if(!rt(n,t.owner)||n.archived||n.systemKind||n.experience==="development"||n.hiddenFromDefaultSidebar||n.status==="closed"||["sandbox","sandbox_template","sandbox_app"].includes(n.workspaceKind??""))continue;let o=await t.inspect(n.id),s=n.localProjectId??n.workspaceId??n.cwd;if(!s)continue;let a=wo(n.currentProfile);if(e.length>=Pt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(At.parse({id:n.id,kind:"session",title:n.title||"Local task",providerId:n.provider,modelId:n.modelRef?.modelId??null,experience:n.experience,workspaceId:s,workspaceLabel:n.workspaceName??n.cwd??s,profileSelectionId:a,revision:Ct(n,o.latestTurnId),available:o.canSendFollowup,unavailableReason:o.unavailableReason,canMessage:o.canSendFollowup,canSteer:o.canSteer,canStop:o.activeTurnId!==null&&o.managedSessionId!==null,activeTurnId:o.activeTurnId}))}for(let n of t.starters){let o=At.parse(n);if(o.kind!=="starter")throw new Error("ponder_desktop_starter_kind_invalid");if(e.length>=Pt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(o)}if(e.sort((n,o)=>n.id.localeCompare(o.id)),new Set(e.map(n=>n.id)).size!==e.length)throw new Error("ponder_desktop_catalog_duplicate_target");return qt.parse({targets:e,capturedAt:new Date().toISOString(),revision:Oe(e)})}r(Wr,"capturePonderDesktopCatalog");import{createHash as Gt}from"node:crypto";function Le(t,e){return Gt("sha256").update(V("POST",t,e)).digest("hex")}r(Le,"payloadHash");function Be(t){let e=`ponder-desktop-op:${Gt("sha256").update(JSON.stringify([t.origin.scope.bindingId,t.origin.originChatTurnId,Le("/ponder/desktop/intent",t.intent),...t.origin.humanControlId?[t.origin.humanControlId]:[]])).digest("hex")}`;if(t.id!==e||t.payloadHash!==Le("/ponder/desktop/operation",{origin:t.origin,intent:t.intent,target:t.target}))throw new Error("ponder_desktop_operation_identity_invalid")}r(Be,"assertPonderDesktopOperationIdentity");function je(t){return`ponder-desktop-${Gt("sha256").update(t).digest("hex")}`}r(je,"ponderDesktopReservedSessionId");var ze=nt.object({operation:Yt,sessionRevision:nt.string().regex(/^[a-f0-9]{64}$/),executionRevision:nt.string().regex(/^[a-f0-9]{64}$/),managedSessionId:nt.string().min(1).nullable()}).strict();function So(t,e){if(t.senderKind!=="ponder")return;let n=ze.parse(t.payload.ponderDesktop),o=e.provider==="codex"?e.codexThreadId:e.nativeAgent?.sessionId??null;if(n.executionRevision!==zt(e)||n.managedSessionId!==null&&n.managedSessionId!==o)throw new Error("The local task's model, Profile, workspace or original agent changed before the queued instruction could run.")}r(So,"assertPonderDesktopExecution");function Ao(t,e,n,o,s){Be(e);let a=e.intent,i=t.get("SELECT payload FROM ponder_desktop_authority WHERE id = 1"),d=i?Jt.parse(JSON.parse(i.payload)):null;if(!d||d.state!=="attached"||Date.parse(d.leaseExpiresAt)<=Date.now()||d.epoch!==e.claimedEpoch||d.authorizationRevision!==e.origin.authorizationRevision||!Object.entries(e.origin.scope).every(([u,h])=>d.scope[u]===h))throw new Error("ponder_desktop_local_authority_changed");if(e.state!=="dispatching"||!e.claimId)throw new Error("ponder_desktop_input_identity_invalid");let c=vt.parse(n.metadata?.ponderLocalOwner),m=e.origin.scope;if(!rt(n,{...c,installationId:m.installationId,profileId:m.profileId,ownerUserId:m.ownerUserId,teamId:m.teamId}))throw new Error("ponder_desktop_input_owner_changed");if(a.action!=="create"&&a.targetId!==n.id)throw new Error("ponder_desktop_input_target_changed");if(s!==Ct(n,o)||a.action!=="create"&&s!==a.targetRevision)throw new Error("ponder_desktop_input_target_changed");if(a.action==="create"){if(n.id!==je(e.id))throw new Error("ponder_desktop_input_reservation_invalid");let u=Fe(n);if(!u||typeof u!="object"||u.operationId!==e.id||u.payloadHash!==e.payloadHash)throw new Error("ponder_desktop_input_reservation_invalid")}}r(Ao,"assertPonderDesktopRecipient");function as(t,e,n,o){if(e.senderKind!=="ponder"&&e.payload.ponderDesktop===void 0)return;if(e.senderKind!=="ponder"||e.senderSessionId!==null)throw new Error("ponder_desktop_input_authority_invalid");let{operation:s,sessionRevision:a}=ze.parse(e.payload.ponderDesktop),i=s.intent;if(i.action==="stop"||i.action==="observe"||i.action==="inspect"||e.id!==`ponder-input:${s.id}`||e.idempotencyKey!==s.id||e.body!==i.prompt||e.replyTo!==null||e.kind!==(i.action==="steer"?"steer":"queued")||e.expectedTurnId!==(i.action==="steer"?i.expectedTurnId:null))throw new Error("ponder_desktop_input_identity_invalid");Ao(t,s,n,o,a),So(e,n)}r(as,"assertPonderDesktopInput");export{Nr as a,Fe as b,Hr as c,Tt as d,gr as e,He as f,ko as g,Eo as h,Mo as i,No as j,Ho as k,$o as l,vn as m,Ie as n,ir as o,dr as p,cr as q,lr as r,ur as s,Ct as t,zt as u,vr as v,_o as w,Rr as x,wo as y,Wr as z,Be as A,je as B,ze as C,So as D,Ao as E,as as F};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as M,b as x,c as A}from"./chunk-4EPSHPZL.js";import{Ea as q,Fa as U,Ia as T,Ja as $,La as j,Oa as D,Ra as O,Sa as K,Ta as z,Ua as _,Va as G,la as P}from"./chunk-25MBPJVY.js";import{e as w,l as c}from"./chunk-WN3V6KDN.js";import{Hb as R,Kb as H,Ob as C,v as k}from"./chunk-Y4OWBBDD.js";import{B as I,Cb as h,Db as b,Ua as v,Xa as E,Ya as y,db as S}from"./chunk-ACYFMLWG.js";import{b as a}from"./chunk-ES2ISFJC.js";import{a as p}from"./chunk-FTQLQJQV.js";var L=a.string().regex(/^[a-f0-9]{64}$/),J=a.object({request:q,maximumCostUsd:a.number().finite().positive().max(1e4),graders:a.array(D).min(1).max(100),admissionRequestHash:L.optional(),sourceExperimentId:a.string().trim().min(1).max(200).optional()}).strict(),X=J.extend({configurationHash:L}).strict(),F=U.extend({configuration:X}).strict();function g(r){return r.policy.kind==="hosted_harness"?{...r,population:r.population.map(({receiptId:e,...t})=>t)}:r}p(g,"experimentConfigurationRequest");function V(r){let e=J.parse(r);return c({...e,request:g(e.request)})}p(V,"experimentRunConfigurationHash");async function Q(r){let e=F.parse(r),{configuration:t,...s}=e,n=await $(s),{configurationHash:o,...i}=t;if(o!==V(i)||c(g(t.request))!==c(g(n.request))||t.maximumCostUsd!==n.manifest.limits.maximumSpendUsd)throw new Error("Experiment configuration differs from its retained run.");if(n.manifest.metadata.experimentDefinition===null){let d=K.parse({definition:null,configurationHash:t.configurationHash,maximumCostUsd:t.maximumCostUsd,graders:t.graders,...t.admissionRequestHash?{admissionRequestHash:t.admissionRequestHash}:{},...t.sourceExperimentId?{sourceExperimentId:t.sourceExperimentId}:{}});if(n.manifest.metadata.experimentConfigurationHash!==c(d))throw new Error("Experiment configuration differs from its admitted manifest.")}return{...n,configuration:t}}p(Q,"verifyExperimentRunDetails");var W=a.object({teamId:a.string().trim().min(1).max(240),items:a.array(a.object({name:a.string().trim().min(1).max(500),source:S,ready:a.boolean(),reason:a.string().min(1).max(2e3).nullable()}).strict()).max(8),nextCursor:a.string().min(1).max(8192).nullable()}).strict(),u=a.string().trim().min(1).max(200),Y=class extends Error{static{p(this,"OpenPondExperimentError")}constructor(r,e,t){super(t),this.status=r,this.code=e,this.name="OpenPondExperimentError"}status;code},we=class{static{p(this,"OpenPondExperimentsClient")}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;baseUrl;async harnessSources(r={}){let e=r.cursor===void 0?void 0:a.string().min(1).max(8192).parse(r.cursor),t=new URLSearchParams(e?{cursor:e}:{}),s=W.parse(await this.request(`/harness-sources?${t}`,"GET",void 0,r.signal));if(s.teamId!==this.options.teamId||new Set(s.items.map(n=>c(n.source))).size!==s.items.length||s.nextCursor!==null&&s.nextCursor===e||s.items.some(n=>n.ready!==(n.reason===null)))throw new Error("Harness catalog differs from its workspace, readiness or continuation.");return s}async prepareHarness(r,e){let t=z.parse(r),s=_.parse(await this.request("/harness-setup","POST",t,e));T(s.request,s.manifest);let n=s.request.policy;if(s.request.teamId!==this.options.teamId||s.request.operationId!==t.operationId||n.kind!=="hosted_harness"||n.profileRepositoryId!==t.profileRepositoryId||n.source.definitionId!==t.definitionId||n.modelId!==t.modelId||n.reasoningEffort!==t.reasoningEffort||s.maximumCostUsd!==t.maximumCostUsd||s.manifest.limits.maximumSpendUsd!==t.maximumCostUsd)throw new Error("Harness preparation differs from its requested scope or configuration.");return s}async run(r,e){let t=G.parse(r);if(t.request.teamId!==this.options.teamId)throw new Error("Experiment workspace mismatch.");let s=await this.details(await this.request("","POST",t,e));if(c(g(s.request))!==c(g(t.request))||s.configuration.maximumCostUsd!==t.maximumCostUsd||s.configuration.sourceExperimentId!==t.sourceExperimentId||s.configuration.admissionRequestHash!==c(t))throw new Error("Experiment admission differs from its submitted configuration.");if(t.graders&&c(t.graders)!==c(s.configuration.graders.map(n=>({id:n.id,version:n.version,contentHash:n.contentHash,mappings:n.mappings??[]}))))throw new Error("Experiment admission differs from its selected graders or mappings.");return s}async get(r,e={}){return this.details(await this.request(`/${encodeURIComponent(u.parse(r))}`,"GET",void 0,e.signal),r)}async list(r={},e){let t=O.parse(r),s=new URLSearchParams(Object.entries(t).filter(([,i])=>i!==void 0).map(([i,d])=>[i,String(d)])),n=a.object({items:a.array(a.unknown()).max(100),nextCursor:u.nullable()}).strict().parse(await this.request(`?${s}`,"GET",void 0,e)),o=await Promise.all(n.items.map(i=>this.details(i)));if(o.length>t.limit||new Set(o.map(i=>i.summary.id)).size!==o.length||n.nextCursor!==null&&n.nextCursor!==o.at(-1)?.summary.id||o.some(i=>t.projectId&&i.request.project?.id!==t.projectId||t.datasetHash&&i.request.taskset.contentHash!==t.datasetHash||t.status&&i.summary.status!==t.status))throw new Error("Experiment page differs from its selected scope.");return{items:o,nextCursor:n.nextCursor}}async result(r,e){let t=a.object({executionId:u,passId:u.nullable(),manifest:a.unknown(),result:a.unknown()}).strict().parse(await this.request(`/${encodeURIComponent(u.parse(r))}/result`,"GET",void 0,e)),s=h(t);if(t.executionId!==r||s.manifest.teamId!==this.options.teamId||s.manifest.lineage?.execution.id!==r||s.manifest.lineage.scoringPassId!==t.passId)throw new Error("Experiment result identity mismatch.");return{...s,executionId:r,passId:t.passId}}async cancel(r,e){return this.details(await this.request(`/${encodeURIComponent(u.parse(r))}/cancel`,"POST",{},e),r)}async duplicate(r,e,t){let s=await this.details(await this.request(`/${encodeURIComponent(u.parse(r))}/duplicate`,"POST",{operationId:u.parse(e)},t));if(s.request.operationId!==e||s.configuration.sourceExperimentId!==r||s.summary.id===r)throw new Error("Duplicate Experiment admission differs from its source or operation.");return s}async score(r,e){let t=M.parse(r),s=this.pass(await this.request(`/${encodeURIComponent(t.execution.id)}/scoring-passes`,"POST",t,e));if(c(s.request)!==c(t))throw new Error("Scoring admission differs from its submitted inputs.");return s}async scoringPass(r,e){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(u.parse(r))}`,"GET",void 0,e),r)}async scoringPasses(r,e={}){let t=new URLSearchParams(e.afterId?{afterId:u.parse(e.afterId)}:{});e.executionKind&&t.set("executionKind",a.literal("recorded_evidence").parse(e.executionKind));let s=a.object({items:a.array(a.unknown()).max(30),nextCursor:u.nullable()}).strict().parse(await this.request(`/${encodeURIComponent(u.parse(r))}/scoring-passes?${t}`,"GET",void 0,e.signal)),n=s.items.map(o=>this.pass(o));if(n.some(o=>o.request.execution.id!==r||o.request.executionKind!==e.executionKind)||new Set(n.map(o=>o.id)).size!==n.length)throw new Error("Scoring pass page differs from its execution ownership.");return{items:n,nextCursor:s.nextCursor}}async cancelScoringPass(r,e){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(u.parse(r))}/cancel`,"POST",{},e),r)}async scoringResult(r,e){let t=a.object({executionId:u,passId:u,manifest:a.unknown(),result:a.unknown()}).strict().parse(await this.request(`/scoring-passes/${encodeURIComponent(u.parse(r))}/result`,"GET",void 0,e)),s=h(t);if(t.passId!==r||s.manifest.teamId!==this.options.teamId||s.manifest.id!==r||s.manifest.lineage?.execution.id!==t.executionId||s.manifest.lineage.scoringPassId!==r)throw new Error("Scoring result identity mismatch.");return{...s,executionId:t.executionId,passId:r}}async compare(r,e,t){let s=p(i=>i.startsWith("score_")?this.scoringResult(i,t):this.result(i,t),"read"),[n,o]=await Promise.all([s(r),s(e)]);return{baseline:n,candidate:o,comparison:b(n,o)}}async details(r,e){let t=await Q(r);if(t.summary.teamId!==this.options.teamId||e&&t.summary.id!==e)throw new Error("Experiment identity mismatch.");return t}pass(r,e){let t=x(r);if(t.teamId!==this.options.teamId||e&&t.id!==e)throw new Error("Scoring pass identity mismatch.");return t}async request(r,e,t,s){let n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments${r}`,{method:e,signal:s,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...t===void 0?{}:{body:JSON.stringify(t)}}),o=await n.json();if(!n.ok){let i=a.object({code:a.string(),message:a.string()}).safeParse(o);throw new Y(n.status,i.success?i.data.code:"experiment_request_failed",i.success?i.data.message:"Experiment request failed.")}return o}},l=a.string().trim().min(1).max(500),N=a.string().regex(/^[a-f0-9]{64}$/),Z=a.object({schemaVersion:a.literal("openpond.experimentCaseInspection.v1"),teamId:l,executionId:l,manifestHash:N,receiptId:l,taskId:l,seed:a.string().min(1),input:a.record(a.string(),a.unknown()).nullable(),output:a.unknown().nullable(),error:a.string().nullable(),events:a.array(a.record(a.string(),a.unknown())).max(25),nextEventCursor:l.nullable(),eventCount:a.number().int().nonnegative()}).strict(),ee=Z.extend({contentHash:N}).strict(),Ie=class{static{p(this,"OpenPondExperimentInspectionClient")}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;baseUrl;async case(r,e,t={}){let s=new URLSearchParams(t.afterId?{afterId:l.parse(t.afterId)}:{}),n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(l.parse(r))}/cases/${encodeURIComponent(l.parse(e))}?${s}`,{signal:t.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),o=await n.json();if(!n.ok)throw new Error(a.object({message:a.string()}).parse(o).message);let i=ee.parse(o),{contentHash:d,...m}=i;if(c(m)!==d||i.teamId!==this.options.teamId||i.executionId!==r||i.receiptId!==e||t.manifestHash&&i.manifestHash!==t.manifestHash||i.events.length>i.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return i}};function re(r){return JSON.stringify(r.release?["reward",r.release.id,r.release.revision,r.release.contentHash,r.feedbackKey]:["dataset",r.id,r.version,r.contentHash,r.feedbackKey])}p(re,"datasetGraderIdentity");function te(r){let e=new Map;for(let t of r){let s=re(t),n=e.get(s);n?n.aliases.push(t):e.set(s,{key:s,grader:t,aliases:[t]})}return[...e.values()]}p(te,"groupDatasetGraders");function ve(r){let e=te(r),t=new Map;for(let s of e){let n=t.get(s.grader.feedbackKey);if(n&&n!==s.key)throw new Error(`Different selected grader releases use feedback key "${s.grader.feedbackKey}". Select one, or publish graders with distinct feedback keys.`);t.set(s.grader.feedbackKey,s.key);let o=JSON.stringify(s.grader.mappings??[]);if(s.aliases.some(i=>JSON.stringify(i.mappings??[])!==o))throw new Error(`Aliases of grader "${s.grader.feedbackKey}" have different field mappings. Select one alias and review its mappings.`)}return e.map(s=>s.grader)}p(ve,"canonicalDatasetGraderSelection");function be(r){let e=v(r.binding),t=P(r.packageValue),s=t.taskset;if(s.id!==e.dataset.id||s.revision!==e.dataset.revision||s.contentHash!==e.dataset.contentHash||t.contentHash!==e.packageHash||c(s.environment)!==e.environmentHash||c(t.files.filter(n=>n.asset.visibility!=="policy").map(n=>n.asset))!==e.privateDatasetClosureHash)throw new Error("The selected Dataset package, environment or protected closure changed.");if(e.population.length>500)throw new Error("Select at most 500 exact Dataset cases before starting this bounded Profile evaluation.");for(let n of e.population){let o=s.tasks.find(i=>i.id===n.taskId);if(!o||o.split!==e.split)throw new Error("The selected ordered population is outside its exact Dataset split.");if(n.fixtureId!==null)throw new Error("This recorded cutoff needs an admitted replay fixture before executing the Profile target.")}if(e.gradingSource){if(!r.actualGrading)throw new Error("The actual selected scoring owner is required for this recipe.");let n=x(r.actualGrading.pass),o=h(a.object({manifest:a.unknown(),result:a.unknown()}).strict().parse(r.actualGrading.evidence));if(n.status!=="completed"||n.id!==e.gradingSource.pass.id||n.contentHash!==e.gradingSource.pass.contentHash||o.manifest.id!==e.gradingSource.evidence.id||o.result.contentHash!==e.gradingSource.evidence.contentHash||o.manifest.lineage?.scoringPassId!==n.id||c(o.manifest.dataset)!==c(e.dataset)||c(o.manifest.evaluators)!==c(e.evaluators)||c(e.fieldMappings)!==c(n.graders.map(m=>({graderId:m.id,fields:m.mappings??[]}))))throw new Error("The selected scoring owner changed its exact Dataset, measurements or mappings.");let i=o.manifest.population,d=e.recordedOrigin?e.recordedOrigin.members.map(m=>({caseId:m.caseId,seed:m.seed,fixtureId:m.fixtureId})):e.population.map(m=>({caseId:m.taskId,seed:m.seed,fixtureId:m.fixtureId}));if(i.length!==d.length||i.some((m,B)=>c(m)!==c(d[B])))throw new Error("The selected scoring population differs from the exact ordered original cases and cutoffs.")}else{if(e.fieldMappings.some(i=>!s.graders.some(d=>d.id===i.graderId)))throw new Error("The field mappings name a grader outside the selected release.");for(let i of e.fieldMappings)j.parse(i.fields);let n=e.evaluators.map(i=>{let d=r.graders.find(m=>m.feedbackKey===i.feedbackKey&&c(m.release??{id:m.id,revision:m.version,contentHash:m.contentHash})===c(i.release));if(!d)throw new Error("Select an exact released Dataset grader for this external recipe.");return d});if(e.fieldMappings.some(i=>!n.some(d=>d.id===i.graderId)))throw new Error("Field mappings refer to an unselected grader.");let o=n.map(i=>({release:i.release??{id:i.id,revision:i.version,contentHash:i.contentHash},feedbackKey:i.feedbackKey,configurationHash:c({graderHash:i.contentHash,mappings:e.fieldMappings.find(d=>d.graderId===i.id)?.fields??[]}),output:"score",categories:[]}));if(c(o)!==c(e.evaluators))throw new Error("The external recipe's graders or mappings differ from the current exact released grading settings.");for(let i of r.graders)if(!s.graders.some(d=>d.id===i.id&&d.version===i.version&&c(d)===i.contentHash))throw new Error("External grader pins differ from the actual Dataset implementation.")}for(let n of r.graders)if(!s.graders.some(o=>o.id===n.id&&o.version===n.version&&c(o)===n.contentHash))throw new Error("Dataset-native grader pins differ from their actual implementation.");return t}p(be,"verifyExternalDatasetPackage");var f=a.string().trim().min(1).max(240),se=a.object({profileRef:a.object({source:a.enum(["local","github","openpond_git"]),repositoryId:f,profileId:f}).strict(),sourceRevision:a.string().min(1).max(500),harnessRelease:w,catalogHash:a.string().regex(/^[a-f0-9]{64}$/).nullable(),definitions:a.array(E).max(1e3),suites:a.array(y).max(100),runs:a.array(a.object({profileRef:a.object({source:a.enum(["local","github","openpond_git"]),repositoryId:f,profileId:f}).strict(),manifest:k,metric:I,gradeRefs:a.array(w),receiptRefs:a.array(w),passRate:a.number().min(0).max(1),passed:a.boolean(),completedAt:a.iso.datetime(),contentHash:a.string().regex(/^[a-f0-9]{64}$/)}).strict()).max(1e3),comparisons:a.array(R).max(1e3),suiteRuns:a.array(C).max(1e3),reports:a.array(H).max(1e3)}).strict(),ae=a.object({teamId:f,profileRepositoryId:f,trainingProjectId:f.optional()}).strict(),He=class{static{p(this,"OpenPondProfileEvaluationDiscoveryClient")}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("Profile discovery requires a scoped HTTP endpoint and owner credential.")}options;async read(r,e){let t=ae.parse({...r,teamId:this.options.teamId}),{response:s,value:n}=await A(this.options.fetch??fetch,`${this.options.baseUrl.replace(/\/$/,"")}/v1/profile-evaluation-discovery`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},body:JSON.stringify(t),signal:e},(i,d,m)=>new Error(m));if(!s.ok)throw new Error("The released Profile evaluation owner is unavailable to this account and workspace.");let o=se.parse(n);if(o.profileRef.repositoryId!==t.profileRepositoryId)throw new Error("Profile discovery returned another source owner.");return o}};export{Y as a,we as b,Ie as c,ve as d,be as e,He as f};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as H,d as Q,f as X}from"./chunk-TRQQNFMO.js";import{a as ee}from"./chunk-FEAKTSRS.js";import{a as re}from"./chunk-SDAUS5PY.js";import{d as ae,i as oe,j as ie}from"./chunk-O72BSKSO.js";import{d as te}from"./chunk-FUOEIDMA.js";import{I as Y,K as Z}from"./chunk-VRIEKBBH.js";import{o as se,s as b}from"./chunk-WJ43MJ3F.js";import{Ib as K,ca as P,la as g,xa as U}from"./chunk-25MBPJVY.js";import{w as G,x as F,z as T}from"./chunk-Y4OWBBDD.js";import{a as j,f as q}from"./chunk-FFRFSDBM.js";import{g as L}from"./chunk-VYLGI3IH.js";import{Ta as N,Ua as y,Wa as W,ab as $,e as _}from"./chunk-ACYFMLWG.js";import{b as R,c as v,d as J,l as S,m as n}from"./chunk-KGNCKIFP.js";import{b as h}from"./chunk-ES2ISFJC.js";import{a as d}from"./chunk-FTQLQJQV.js";import{randomUUID as V,createHash as fe}from"node:crypto";import{mkdtemp as ue,mkdir as pe,writeFile as D,rm as me}from"node:fs/promises";import he from"node:os";import E from"node:path";var ne=d(async e=>{let a=g(e.packageValue);if(e.grader.runtime!=="sandbox_process")throw new Error("Select the sandbox process runtime for a local file grader.");if(!a.taskset.graders.some(r=>n(r)===n(e.grader)))throw new Error("The private grader differs from its package.");if(!a.taskset.tasks.some(r=>n(r)===n(e.task)))throw new Error("The private case differs from its package.");await e.authorize(),e.signal?.throwIfAborted();let i=await ue(E.join(he.tmpdir(),"profile-private-grade-")),t=V();try{for(let f of a.files.filter(l=>l.asset.visibility!=="policy")){let l=f.asset.path;if(E.isAbsolute(l)||l.split(/[\\/]/).some(u=>!u||u==="."||u===".."))throw new Error("Private grader asset path invalid.");let m=E.join(i,"package",l);await pe(E.dirname(m),{recursive:!0,mode:448}),await D(m,P(f),{mode:256})}await D(E.join(i,"request.json"),JSON.stringify({task:e.task,attempt:e.evidence,input:e.task.input,output:e.evidence.output,artifacts:"artifacts"in e.evidence?e.evidence.artifacts:[],expectedOutput:e.task.expectedOutput}),{mode:256});let r=`import fs from 'node:fs/promises'; const module=await import(${JSON.stringify("./package/"+e.grader.verifierRef.path)}); const result=await module[${JSON.stringify(e.grader.exportName??"verify")}](JSON.parse(await fs.readFile('request.json','utf8'))); console.log(JSON.stringify(result));`;await D(E.join(i,"runner.mjs"),r,{mode:256});let s=await ee({authorize:d(async()=>(await e.authorize(),e.signal?.throwIfAborted(),{candidateId:t,candidateRevision:1,ownerId:t,sessionId:t,turnId:t,sourceRoot:i,writablePaths:[]}),"authorize")})({candidateId:t,sessionId:t,turnId:t,expectedRevision:1,command:"/runtime/node --max-old-space-size=512 runner.mjs",timeoutMs:e.grader.timeoutMs,maxOutputBytes:7e4,signal:e.signal});if(await e.authorize(),e.signal?.throwIfAborted(),s.code!==0||s.timedOut||s.stdoutTruncated||s.stderrTruncated)throw new Error("Private grading sandbox did not complete.");return H.parse(JSON.parse(s.stdout))}finally{await me(i,{recursive:!0,force:!0})}},"executeLocalProfileVerifier");function Me(e){return async a=>{if(!a.manifest)throw new Error("The hosted grader requires its admitted manifest.");await a.authorize(),a.signal?.throwIfAborted();let i="artifacts"in a.evidence&&Array.isArray(a.evidence.artifacts)?a.evidence.artifacts.map(({reference:l,title:m,contentType:u})=>({reference:l,title:m,contentType:u})):[],t="caseOwner"in a.evidence?a.evidence.caseOwner:null;if(!t?.sessionId||!t.turnId)throw new Error("The private grader has no sealed case owner.");let r=Buffer.from(JSON.stringify({manifest:a.manifest,packageValue:a.packageValue,graderId:a.grader.id,taskId:a.task.id,evidence:{...a.evidence,artifacts:i}}));if(r.length>2e7)throw new Error("The private grading package exceeds its transport limit.");let o={callId:V(),sessionId:t.sessionId,turnId:t.turnId,sha256:fe("sha256").update(r).digest("hex"),sizeBytes:r.length,timeoutMs:a.grader.timeoutMs},s=d((l,m=12e4)=>e.request(Z.parse({contractVersion:Y,requestId:V(),operation:"profile-evaluations/grade",params:l}),m),"request");for(let l=0;l<r.length;l+=98304)await a.authorize(),a.signal?.throwIfAborted(),await s({...o,action:"upload",offset:l,contentsBase64:r.subarray(l,l+98304).toString("base64")});let f=await s({...o,action:"execute"},a.grader.timeoutMs+12e4);return await a.authorize(),a.signal?.throwIfAborted(),H.parse(f)}}d(Me,"createHostedProfileVerifier");async function ge(e,a){let i=g(e);for(let r of i.taskset.graders){if(r.kind==="model_judge"&&(!a||r.calibrationStatus!=="passed"))throw new Error("This Profile requires its current calibrated judge and bounded private provider owner.");let o="verifierRef"in r?r.verifierRef:"rubricRef"in r?r.rubricRef:null;o&&A(i,o)}let t=i.taskset.metrics?.customAggregator;if(t){let r=i.files.find(o=>o.asset.path===t.module);if(!r||r.asset.visibility==="policy"||S(P(r))!==t.contentHash)throw new Error("The authored aggregate metric is not its exact private release.");new TextDecoder("utf8",{fatal:!0}).decode(P(r))}}d(ge,"preflightProfilePrivateGrading");function A(e,a){let i=e.files.find(t=>t.asset.id===a.id);if(!i||i.asset.visibility==="policy"||n(i.asset)!==n(a))throw new Error("The exact private grader asset is unavailable.");return new TextDecoder("utf8",{fatal:!0}).decode(P(i))}d(A,"readPrivate");async function $e(e){let a=g(e.packageValue);if(a.contentHash!==e.manifest.packageHash||a.taskset.contentHash!==e.manifest.tasksetRelease.contentHash)throw new Error("The private grading package changed its frozen Run identity.");await e.authorize(),await ge(a,!!e.executeBudgetedJudge),await e.authorize();let i=d(async({grader:o,task:s,evidence:f})=>{let l=e.signal;await e.authorize(),l?.throwIfAborted();let m={manifest:e.manifest,packageValue:a,grader:o,task:s,evidence:f,signal:l,authorize:e.authorize},u=e.executeSandboxVerifier?await e.executeSandboxVerifier(m):o.runtime==="sandbox_process"?await ne(m):await Q({source:A(a,o.verifierRef),exportName:o.exportName,runtime:o.runtime,timeoutMs:o.timeoutMs,signal:l,value:{task:s,attempt:f,input:s.input,output:f.output,artifacts:"artifacts"in f?f.artifacts:[],expectedOutput:s.expectedOutput,infrastructureError:f.infrastructureError??null}});return await e.authorize(),l?.throwIfAborted(),{score:u.score,passed:u.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[u.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:u.evidenceRefs}},"customVerifier"),t=a.taskset.metrics?.customAggregator,r=t?new TextDecoder("utf8",{fatal:!0}).decode(P(a.files.find(o=>o.asset.path===t.module))):void 0;return{authorize:e.authorize,customVerifier:i,...e.executeBudgetedJudge?{modelJudge:L({readRubric:d(async o=>{await e.authorize();let s=A(a,o);return await e.authorize(),s},"readRubric"),executeBudgeted:d(async(o,s)=>{await e.authorize(),s?.throwIfAborted();let f=await e.executeBudgetedJudge(o,s);return await e.authorize(),s?.throwIfAborted(),f},"executeBudgeted")})}:{},...r!==void 0?{metricSource:r,metricExecutor:d(async o=>{await e.authorize(),o.signal?.throwIfAborted();let s=await X(o);return await e.authorize(),o.signal?.throwIfAborted(),s},"metricExecutor")}:{}}}d($e,"createProfilePrivateGradingOwner");import{promises as ve}from"node:fs";import ke from"node:path";async function at(e){let a=e.definition.tasksetRelease,i=await te(e.store,e.harnessRelease);if(!i)throw new Error("Evaluation Profile Harness release is unavailable.");let t=await Re({...e,runtime:i});if(t)return t;let r=await e.store.listTasksetRevisions(e.profileId);for(let o of r){if(a.id!==o.id&&a.id!==`taskset-release-${o.id}-r${o.revision}`)continue;let s=await we(e.storeDir,o);if(s.taskset.id===a.id&&s.taskset.contentHash===a.contentHash)return s}throw new Error(`Released Taskset ${a.id} is unavailable in Profile ${e.profileId}.`)}d(at,"loadLocalProfileEvaluationTaskset");async function we(e,a){let i=a.metadata.importedPackageHash;if(typeof i=="string"){let o=await ie(e,i);if(o.taskset.id!==a.id||o.taskset.revision!==a.revision)throw new Error("Imported evaluation Taskset differs from its local Profile revision.");return o}if(U(a)!==a.contentHash)throw new Error("Authored evaluation Taskset differs from its immutable revision.");let t=K({taskset:a,adapterId:ae(a)}),r=await re({storeDir:e,taskset:a,content:{schemaVersion:"openpond.tasksetPackage.v1",taskset:t.tasksetRelease,environment:t.environmentRelease,verifierSet:t.verifierSetRelease}});return await oe(e,r),r}d(we,"loadCandidate");async function Re(e){let a=e.definition.tasksetRelease,i=e.runtime;if(i.release.harnessRelease.id!==e.harnessRelease.id||i.release.harnessRelease.contentHash!==e.harnessRelease.contentHash)throw new Error("Evaluation Taskset runtime differs from its requested release.");let t=`evals/tasksets/${a.contentHash}.json`,r=i.release.harnessRelease.files.find(o=>o.path===t);if(r){if(r.visibility!=="verifier")throw new Error("Evaluation Taskset package is not verifier-private.");let o=await ve.readFile(ke.join(i.release.bundlePath,"source",...t.split("/")));if(S(o)!==r.contentHash)throw new Error("Released evaluation Taskset package bytes differ from their source receipt.");let s=g(JSON.parse(o.toString("utf8")));if(s.taskset.id!==a.id||s.taskset.contentHash!==a.contentHash)throw new Error("Released evaluation Taskset package differs from its definition.");return s}return null}d(Re,"loadReleasedProfileEvaluationTaskset");function C(e){return{id:W(e),label:"Selected Dataset evaluation",description:"Explicit sealed external Dataset evaluation recipe.",target:e.target,tasksetRelease:{id:e.dataset.id,contentHash:e.dataset.contentHash},split:e.split,taskIds:[...new Set(e.population.map(a=>a.taskId))],seeds:[...new Set(e.population.map(a=>a.seed))],criterion:e.criterion}}d(C,"externalProfileEvaluationDefinition");async function lt(e){let a=e.manifest.profileEvaluation,i=a?.externalDatasetBinding?y(a.externalDatasetBinding):null;if(!i)return null;if(!e.resolveExternalDataset)throw new Error("This owner has no authorized external Dataset resolver.");let t=await e.resolveExternalDataset(i,e.selected);await t.authorize();let r=g(t.packageValue),o=await e.loadCatalog({ref:e.selected.profileRef,sourceRevision:e.selected.sourceRevision,harnessRelease:e.selected.harnessRelease});if(n(t.binding)!==n(i)||i.profileId!==e.selected.profileRef.profileId||i.declaredProfileCatalogHash!==o.catalogHash||r.contentHash!==i.packageHash||n(r.taskset)!==n(e.taskset)||i.environmentHash!==n(r.taskset.environment)||i.privateDatasetClosureHash!==n(r.files.filter(l=>l.asset.visibility!=="policy").map(l=>l.asset)))throw new Error("External Dataset admission changed its actual Profile, package or private closure.");let s=C(i),f={schemaVersion:"openpond.profileEvaluations.v1",definitions:[s],suites:[]};if(T(e.manifest,e.taskset,f),!a||a.catalogHash!==n(f)||a.definitionHash!==n(s)||n(a.target)!==n(i.target))throw new Error("External Dataset manifest changed its derived definition.");return await t.authorize(),{...t,packageValue:r,definition:s,catalog:f}}d(lt,"admitProfileExternalDataset");var Pe=h.object({id:R,createdAt:J,definitionId:R,externalDatasetBinding:N.optional(),profileRef:se.optional(),profileSource:h.object({sourceRevision:h.string().min(1).max(500),harnessRelease:h.object({id:R,contentHash:v}).strict()}).strict().optional(),modelRef:q,hostModelConfigurationHash:v.optional(),hostArtifactHash:v.optional(),maximumSpendUsd:h.number().positive().max(1e4).optional(),expectedManifestHash:v.optional(),hostExperiment:h.object({definition:h.object({id:R,revision:h.number().int().positive(),contentHash:v}).strict().nullable(),configurationHash:v,project:h.object({id:R,revision:h.number().int().positive(),contentHash:v,targetId:R.nullable()}).strict().optional()}).strict().optional()}).strict();function vt(e){return async(a,i)=>{let t=Pe.parse(a);if(i?.requireExpectedManifestHash&&!t.expectedManifestHash)throw new Error("Profile evaluation execution requires the reviewed manifest hash.");if(t.profileSource&&!t.profileRef)throw new Error("An exact Profile source requires its accepted Profile reference.");let r=i?.selectedWorkflows??await e.selectedWorkflows(t.profileRef,t.profileSource);if(t.profileRef&&n(t.profileRef)!==n(r.profileRef))throw new Error("Profile preparation did not resolve the explicitly selected Profile.");if(t.profileSource&&(r.sourceRevision!==t.profileSource.sourceRevision||n(r.harnessRelease)!==n(t.profileSource.harnessRelease)))throw new Error("Profile preparation changed its explicitly pinned source.");let o=t.externalDatasetBinding?y(t.externalDatasetBinding):null,s=o?await(e.resolveExternalDataset?e.resolveExternalDataset(o,r):Promise.reject(new Error("This host has not qualified external Dataset Profile execution."))):null;if(s&&(await s.authorize(),n(y(s.binding))!==n(o)))throw new Error("External Dataset admission differs from the actual authorized recipe.");let f=await e.loadCatalog({ref:r.profileRef,sourceRevision:r.sourceRevision,harnessRelease:r.harnessRelease});if(o&&o.declaredProfileCatalogHash!==f.catalogHash)throw new Error("The original Profile verifier catalog changed.");let l=o?C(o):null;if(l&&t.definitionId!==l.id)throw new Error("Use the external recipe's own definition identity.");let m={schemaVersion:"openpond.profileEvaluations.v1",definitions:l?[l]:f.definitions,suites:l?[]:f.suites},u=l??f.definitions.find(c=>c.id===t.definitionId);if(!u)throw new Error(`Evaluation ${t.definitionId} is absent from the selected Profile release.`);let k=u.target,z=k.kind==="workflow"?r.workflows.find(c=>c.binding.workflowId===k.workflowId)?.binding:_.parse({schemaVersion:"openpond.profileComponentBinding.v1",profileId:r.profileRef.profileId,sourceRevision:r.sourceRevision,harnessRelease:r.harnessRelease,target:k});if(!z)throw new Error(`Evaluation workflow ${k.kind==="workflow"?k.workflowId:""} is absent from the selected Profile release.`);let w=g(s?.packageValue??await e.loadTasksetPackage(u,r.profileRef.profileId,r.harnessRelease)),p=w.taskset;if(p.id!==u.tasksetRelease.id||p.contentHash!==u.tasksetRelease.contentHash)throw new Error("Evaluation Taskset package differs from its released definition.");let le=p.environment.kind==="text"&&p.tools.length===0,M=p.environment.kind==="work"&&p.environment.entrypoint==="openpond-work-v1"&&p.tools.every(c=>["work_exec","work_save_output"].includes(c.name));if(!le&&!M)throw new Error("Profile evaluation supports text cases or Work cases with the built-in execution and output tools.");if(t.maximumSpendUsd!==void 0&&M&&!e.boundedWorkComputeAvailable)throw new Error("This host has not admitted budgeted Work compute.");if(p.tasks.some(c=>c.artifactRefs.length>b.maxAttachments||c.artifactRefs.some(x=>x.visibility!=="policy"||x.mediaType!=="application/pdf"||x.sizeBytes>b.maxAttachmentBytes)))throw new Error("Profile evaluation accepts only bounded policy-visible PDF task attachments.");if(!o&&!e.privateGradingPreflight&&(p.graders.some(c=>c.kind==="model_judge"||c.kind==="custom_verifier")||p.metrics?.aggregation==="custom"))throw new Error("Profile evaluation cannot run this Taskset's model judge, custom verifier, or custom metric in the current app-server runtime.");await e.privateGradingPreflight?.(w);let B={adapterId:k.kind==="workflow"?"openpond.profile-workflow":"openpond.profile-component",placement:e.placement,runtimeVersion:"app-server-v1",capabilityReceipt:n({adapterId:k.kind==="workflow"?"openpond.profile-workflow":"openpond.profile-component",packageHash:w.contentHash,connectedAppScopes:p.policy.connectedAppScopes})},ce={...$({catalog:m,definitionId:u.id,profileId:r.profileRef.profileId,sourceRevision:r.sourceRevision,harnessRelease:r.harnessRelease,environmentHash:n({packageHash:w.contentHash,runtimeTarget:B})}),...o?{externalDatasetBinding:o}:{},...e.sourceCandidate?{sourceCandidate:e.sourceCandidate}:{}};if(o&&(o.packageHash!==w.contentHash||o.environmentHash!==n(p.environment)||o.privateDatasetClosureHash!==n(w.files.filter(c=>c.asset.visibility!=="policy").map(c=>c.asset))))throw new Error("External Dataset package/environment/private closure changed.");let de=j.parse({provider:t.modelRef.providerId,model:t.modelRef.modelId,revision:null,artifactHash:t.hostArtifactHash??null,tokenizerRevision:null,chatTemplateHash:null}),O=await e.modelConfigurationHash(t.modelRef,t),I=G({schemaVersion:"openpond.tasksetRunManifest.v1",id:t.id,tasksetRelease:u.tasksetRelease,packageHash:w.contentHash,execution:{kind:"harness",harnessRelease:r.harnessRelease},profileEvaluation:ce,policy:{kind:"model",model:de,configurationHash:O},gradingRole:"evaluation",metricPolicy:F(p),population:o?o.population.map(c=>({...c,receiptId:`evaluation-${n([t.id,c.taskId,c.seed,c.fixtureId]).slice(0,32)}`})):u.taskIds.flatMap(c=>u.seeds.map(x=>({receiptId:`evaluation-${n([t.id,c,x]).slice(0,32)}`,taskId:c,seed:x,fixtureId:null}))),runtimeTarget:B,limits:{maxTurns:128,timeoutMs:p.environment.defaultTimeoutMs,maxOutputBytes:25e7,maximumSpendUsd:t.maximumSpendUsd??null},createdAt:t.createdAt,metadata:{sourceTasksetId:p.metadata.sourceTasksetId??p.id,...r.profileRef.source==="openpond_git"?{profileRepositoryId:r.profileRef.repositoryId}:{},...t.hostExperiment?{experimentDefinition:t.hostExperiment.definition,experimentConfigurationHash:t.hostExperiment.configurationHash,...t.hostExperiment.project?{project:t.hostExperiment.project}:{}}:{}}});if(T(I,p,m),s&&await s.authorize(),t.expectedManifestHash&&I.contentHash!==t.expectedManifestHash)throw new Error("Profile evaluation setup changed since preview; prepare the run again.");return{manifest:I,taskset:p,profileRef:r.profileRef,binding:z,modelRef:t.modelRef,modelConfigurationHash:O}}}d(vt,"createProfileEvaluationRunPreparationService");export{ne as a,Me as b,ge as c,$e as d,at as e,Re as f,lt as g,vt as h};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as me,b as D,c as G,d as j,e as z,g as ye,i as T,j as we,k as S,l as he,v as B,x as F}from"./chunk-NNIRIUSY.js";import{a as re,b as L,c as R}from"./chunk-U2YMBCX7.js";import{b as H,c as be,d as ve,f as w,h as P,i as Re}from"./chunk-BSHAIAXY.js";import{a as Z,b as ee,c as te}from"./chunk-BQAF5P7K.js";import{a as M,f as v,k as X}from"./chunk-3M53YXEI.js";import{M as pe,N as ue,R as ge,V as fe,h as $,i as ie,l as ae,n as se,o as ce,p as le,q as de}from"./chunk-B7QDZPNX.js";import{d as y,e as ne,f as oe,g as C}from"./chunk-TERVLCRG.js";import{a as g}from"./chunk-FTQLQJQV.js";import{promises as V,existsSync as W}from"node:fs";import U from"node:path";import{stdin as $e}from"node:process";async function Ge(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=await ce(n,i,a.id);console.log(JSON.stringify(s,null,2))}g(Ge,"runTemplateStatus");async function je(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=await le(n,i,a.id);console.log(JSON.stringify(s,null,2))}g(je,"runTemplateBranches");async function ze(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=typeof e.env=="string"?e.env:typeof e.environment=="string"?e.environment:void 0,f=X(s),c=await de(n,i,a.id,{environment:f});console.log(JSON.stringify(c,null,2))}g(ze,"runTemplateUpdate");async function He(e){let o=await y(),t=w(o),r=typeof e.apiKey=="string"?e.apiKey:typeof e.key=="string"?e.key:null,n=r?r.trim():await L();if(!n)throw new Error("API key is required");n.startsWith("opk_")||console.log("warning: API keys usually start with opk_."),await C({handle:o.activeProfile?.handle||"default",apiKey:n,baseUrl:t,apiBaseUrl:o.apiBaseUrl,chatApiBaseUrl:o.chatApiBaseUrl,setActive:!0}),console.log("Saved account credentials to the encrypted OpenPond credential store.")}g(He,"runLogin");async function Fe(e,o){let t=o[0]||"list";if(t==="list"){let r=await ne();console.log(JSON.stringify({profiles:r},null,2));return}if(t==="use"){let r=o[1];if(!r)throw new Error("usage: profiles use <name> [--base-url <url>]");let n=await oe(r,{baseUrl:H(e)});console.log(JSON.stringify({profile:n},null,2));return}if(t==="save"){let r=o[1];if(!r)throw new Error("usage: profiles save <name> --api-key <key> [--base-url <url>] [--api-base-url <url>] [--chat-api-base-url <url>]");let n=typeof e.apiKey=="string"?e.apiKey:typeof e.key=="string"?e.key:null,i=n?n.trim():await L(),a=typeof e.environment=="string"?e.environment:typeof e.env=="string"?e.env:void 0,s=await C({handle:r,apiKey:i,baseUrl:H(e),apiBaseUrl:be(e),chatApiBaseUrl:ve(e),environment:a,setActive:!0});console.log(JSON.stringify({profile:s},null,2));return}throw new Error("usage: profiles <list|use|save> [args]")}g(Fe,"runProfiles");async function Ve(){let e=await y(),o=w(e),t=P(e),r=await R(e,o),n=await pe(t,r);console.log(JSON.stringify(n,null,2))}g(Ve,"runAccount");async function We(e){let o=await y(),t=P(o),r=re(o),n=await ue(t,r);console.log(JSON.stringify(n,null,2))}g(We,"runHealth");async function qe(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=typeof e.branch=="string"?String(e.branch):void 0,f=await $(n,i,a.id,{branch:s});if(!f?.id){console.log("no deployments found");return}let c=await ie(n,i,f.id),d=(c&&Array.isArray(c.toolsJson)?c.toolsJson:null)||(c&&typeof c.metadataJson=="object"&&c.metadataJson?c.metadataJson.tools:null),u=Array.isArray(d)?d:[];if(u.length===0){console.log("no tools found");return}for(let l of u){let m=l,h=m.profile||m.function,I=m.name||h?.name||"unknown",p=m.description||h?.description||"";console.log(p?`${I} - ${p}`:I)}}g(qe,"runToolList");async function Ye(e,o,t){let r=await y(),n=w(r),i=P(r),a=await R(r,n),{app:s}=await T(i,a,o),f=typeof e.branch=="string"?String(e.branch):void 0,c=await $(i,a,s.id,{branch:f});if(!c?.id)throw new Error("no deployments found");let d;if(typeof e.body=="string")try{d=JSON.parse(e.body)}catch{throw new Error("tool body must be valid JSON")}let u=typeof e.method=="string"?String(e.method).toUpperCase():"POST",l=await fe(n,a,{appId:s.id,deploymentId:c.id,toolName:t,method:u,body:d,headers:a?{"openpond-api-key":a}:void 0});if(!l.ok)throw new Error(l.error||`tool failed (${l.status})`);let m=l.data??{ok:!0};console.log(JSON.stringify(m,null,2))}g(Ye,"runToolRun");async function Qe(e,o,t){let r=await y(),n=w(r),i=P(r),a=await R(r,n),{app:s}=await T(i,a,o),f=typeof e.branch=="string"?String(e.branch):void 0,c=typeof e.deploymentId=="string"?String(e.deploymentId):void 0,d=c?{id:c}:await $(i,a,s.id,{branch:f});if(!d?.id)throw new Error("no deployments found");let u=typeof e.body=="string"?M(String(e.body),"body"):{};if(!u||typeof u!="object"||Array.isArray(u))throw new Error("body must be a JSON object");let l=typeof e.method=="string"?String(e.method).toUpperCase():"POST",m={...u,appId:s.id,deploymentId:d.id,toolName:t,method:l},h=await ge(i,a,m);console.log(JSON.stringify(h,null,2))}g(Qe,"runBacktestRun");async function Xe(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a,handle:s,repo:f}=await T(n,i,o),c=typeof e.branch=="string"?String(e.branch):void 0,d=typeof e.deploymentId=="string"?String(e.deploymentId):void 0,u=d?{id:d}:await $(n,i,a.id,{branch:c});if(!u?.id){console.log("no deployments found");return}await we({baseUrl:n,apiKey:i,deploymentId:u.id,prefix:`[${s}/${f}] `,intervalMs:e.interval?Number(e.interval):void 0,timeoutMs:e.timeout?Number(e.timeout):void 0})}g(Xe,"runDeployWatch");async function Ze(e,o){let r=((typeof e.name=="string"?e.name:null)||o.join(" ")).trim();if(!r)throw new Error("usage: repo create --name <name> [--team-id <id>] [--path <dir>] [--template <owner/repo|url>] [--template-branch <branch>] [--empty|--opentool] [--sandbox] [--token] [--auto-schedule-migration <true|false>]");let n=await y(),i=w(n),a=await R(n,i),s=P(n),f=typeof e.teamId=="string"&&e.teamId.trim()?e.teamId.trim():void 0,c=typeof e.template=="string"?e.template.trim():"";if(c&&(e.empty==="true"||e.opentool==="true"))throw new Error("choose one: --template or --empty/--opentool");if(e.empty==="true"&&e.opentool==="true")throw new Error("choose one: --empty or --opentool");let d=typeof e.description=="string"?e.description.trim():void 0,u=typeof e.templateBranch=="string"&&e.templateBranch.trim().length>0?e.templateBranch.trim():void 0,l=typeof e.env=="string"?M(e.env,"env"):void 0;if(l){if(typeof l!="object"||Array.isArray(l))throw new Error("env must be a JSON object");for(let[b,A]of Object.entries(l))if(typeof A!="string")throw new Error(`env value for ${b} must be a string`)}if(c){e.deployOnPush!==void 0&&console.warn("deploy-on-push is not used for template create (auto deploys)");let b=Re(c,i),k=(await se(s,a,[{name:r,...d?{description:d}:{},templateRepoUrl:b,...u?{templateBranch:u}:{},...l?{envVars:l}:{}}],f)).items?.[0];if(!k||k.status!=="ok"||!k.appId)throw new Error(k?.error||"Template create failed");console.log(`app_id: ${k.appId}`),k.deploymentId&&console.log(`deployment_id: ${k.deploymentId}`),k.conversationId&&console.log(`conversation_id: ${k.conversationId}`);return}let m=process.cwd(),h=typeof e.path=="string"?e.path:typeof e.dir=="string"?e.dir:null,I=h&&h.trim().length>0?h.trim():$e.isTTY?await he(m):m,p=U.resolve(I);if(W(p)){if(!(await V.stat(p)).isDirectory())throw new Error(`path is not a directory: ${p}`)}else await V.mkdir(p,{recursive:!0});let Pe=(await V.readdir(p)).filter(b=>b!==".git").length===0,x=v(e.yes)||v(e.force);if(!Pe&&!x&&!await S(`Directory is not empty (${p}). Continue?`,!1)){console.log("aborted");return}let ke=U.join(p,".git");if(!W(ke)){if(!(x?!0:await S("Initialize git repository here?",!0))){console.log("aborted");return}let A=await B("git",["init"],{cwd:p});if(A.code!==0)throw new Error(`git init failed: ${A.stderr.trim()||A.stdout.trim()||"unknown error"}`)}let K=await F(p,"origin");if(K&&!x&&!await S(`Remote "origin" already set (${K}). Replace it?`,!1)){console.log("aborted");return}let q=e.opentool==="true"?"opentool":"empty",Te=v(e.sandbox),Be=v(e.deployOnPush),N=e.autoScheduleMigration,Y=typeof N=="string"||typeof N=="boolean",Ee=Y?v(N):void 0,E=await ae(s,a,{name:r,...f?{teamId:f}:{},...d?{description:d}:{},...q?{repoInit:q}:{},...Te?{sandbox:!0}:{},...l?{envVars:l}:{},...Be?{deployOnPush:!0}:{},...Y?{autoScheduleMigration:Ee}:{}}),O=me(E);z(O);let J=v(e.token)||v(e.setRemoteToken),Oe=D(O,a),Q=J?Oe:O,_=await B("git",K?["remote","set-url","origin",Q]:["remote","add","origin",Q],{cwd:p});if(_.code!==0)throw new Error(`git remote failed: ${j(_.stderr.trim()||_.stdout.trim()||"unknown error")}`);let Ae=J?G(O):O;console.log(`app_id: ${E.appId}`),E.gitOwner&&E.gitRepo&&console.log(`repo: ${E.gitOwner}/${E.gitRepo}`),console.log(`remote: ${Ae}`),console.log('next: git add . && git commit -m "init"');let Ie=E.defaultBranch||"master";console.log(`next: openpond repo push --path ${p} --branch ${Ie}`),J||console.log(`token-remote (non-interactive): git -C ${p} remote set-url origin ${G(O)}`);try{await ye({apiBase:s,apiKey:a,forceRefresh:!0})}catch(b){console.warn("cache refresh failed",b)}}g(Ze,"runRepoCreate");async function Se(e){let o=await B("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:e});if(o.code!==0)return null;let t=o.stdout.trim();return t.length>0?t:null}g(Se,"resolveGitBranch");async function et(e){let o=await y(),t=w(o),r=await R(o,t),n=typeof e.path=="string"?e.path:typeof e.dir=="string"?e.dir:null,i=U.resolve(n&&n.trim().length>0?n.trim():"."),a=U.join(i,".git");if(!W(a))throw new Error(`git repo not found at ${i} (missing .git)`);let s=await F(i,"origin");if(!s)throw new Error("origin remote not set; run `openpond repo create` first");z(s);let c=(typeof e.branch=="string"?e.branch.trim():"")||await Se(i);if(!c)throw new Error("unable to resolve git branch; pass --branch");let d;try{d=D(s,r)}catch{throw new Error("origin remote must be https for tokenized pushes")}let u=v(e.keepTokenRemote)||v(e.token)||v(e.setRemoteToken),l=s.includes("x-access-token:"),m=!u&&!l?s:null,h=process.env.GIT_TERMINAL_PROMPT;process.env.GIT_TERMINAL_PROMPT="0";try{if(!l){let p=await B("git",["remote","set-url","origin",d],{cwd:i});if(p.code!==0)throw new Error(`git remote set-url failed: ${j(p.stderr.trim()||p.stdout.trim()||"unknown error")}`)}if((await B("git",["push","-u","origin",c],{cwd:i,inherit:!0})).code!==0)throw new Error("git push failed")}finally{m&&await B("git",["remote","set-url","origin",m],{cwd:i}).catch(()=>null),h===void 0?delete process.env.GIT_TERMINAL_PROMPT:process.env.GIT_TERMINAL_PROMPT=h}}g(et,"runRepoPush");async function tt(e){if(e.length===0)throw new Error("usage: opentool <init|validate|build> [args]");let o=process.platform==="win32"?"npx.cmd":"npx";if((await B(o,["opentool",...e],{inherit:!0})).code!==0)throw new Error("opentool command failed")}g(tt,"runOpentool");async function nt(){let e="openpond",o=Z(),t=await te(e),r=`npm i -g ${e}@${t}`,n=ee(o,t);if(n===0){console.log(`${e} is up to date (${o})`);return}if(n===-1){console.log(`Update available: ${o} -> ${t}`),console.log(`Run: ${r}`);return}if(n===1){console.log(`Installed version (${o}) is newer than npm latest (${t}).`);return}if(o===t){console.log(`${e} is up to date (${o})`);return}console.log(`Installed: ${o}`),console.log(`Latest: ${t}`),console.log(`Run: ${r}`)}g(nt,"runCheckUpdate");export{Ge as a,je as b,ze as c,He as d,Fe as e,Ve as f,We as g,qe as h,Ye as i,Qe as j,Xe as k,Ze as l,Se as m,et as n,tt as o,nt as p};
|
|
2
|
+
import{a as me,b as D,c as G,d as j,e as z,g as ye,i as T,j as we,k as S,l as he,v as B,x as F}from"./chunk-RAXOSUSW.js";import{a as re,b as L,c as R}from"./chunk-DARVPBZ4.js";import{a as Z,b as ee,c as te}from"./chunk-FV2R5RUN.js";import{b as H,c as be,d as ve,f as w,h as P,i as Re}from"./chunk-BSHAIAXY.js";import{a as M,f as v,k as X}from"./chunk-3M53YXEI.js";import{M as pe,N as ue,R as ge,V as fe,h as $,i as ie,l as ae,n as se,o as ce,p as le,q as de}from"./chunk-5MCNZCVQ.js";import{d as y,e as ne,f as oe,g as C}from"./chunk-OS3LO5J3.js";import{a as g}from"./chunk-FTQLQJQV.js";import{promises as V,existsSync as W}from"node:fs";import U from"node:path";import{stdin as $e}from"node:process";async function Ge(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=await ce(n,i,a.id);console.log(JSON.stringify(s,null,2))}g(Ge,"runTemplateStatus");async function je(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=await le(n,i,a.id);console.log(JSON.stringify(s,null,2))}g(je,"runTemplateBranches");async function ze(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=typeof e.env=="string"?e.env:typeof e.environment=="string"?e.environment:void 0,f=X(s),c=await de(n,i,a.id,{environment:f});console.log(JSON.stringify(c,null,2))}g(ze,"runTemplateUpdate");async function He(e){let o=await y(),t=w(o),r=typeof e.apiKey=="string"?e.apiKey:typeof e.key=="string"?e.key:null,n=r?r.trim():await L();if(!n)throw new Error("API key is required");n.startsWith("opk_")||console.log("warning: API keys usually start with opk_."),await C({handle:o.activeProfile?.handle||"default",apiKey:n,baseUrl:t,apiBaseUrl:o.apiBaseUrl,chatApiBaseUrl:o.chatApiBaseUrl,setActive:!0}),console.log("Saved account credentials to the encrypted OpenPond credential store.")}g(He,"runLogin");async function Fe(e,o){let t=o[0]||"list";if(t==="list"){let r=await ne();console.log(JSON.stringify({profiles:r},null,2));return}if(t==="use"){let r=o[1];if(!r)throw new Error("usage: profiles use <name> [--base-url <url>]");let n=await oe(r,{baseUrl:H(e)});console.log(JSON.stringify({profile:n},null,2));return}if(t==="save"){let r=o[1];if(!r)throw new Error("usage: profiles save <name> --api-key <key> [--base-url <url>] [--api-base-url <url>] [--chat-api-base-url <url>]");let n=typeof e.apiKey=="string"?e.apiKey:typeof e.key=="string"?e.key:null,i=n?n.trim():await L(),a=typeof e.environment=="string"?e.environment:typeof e.env=="string"?e.env:void 0,s=await C({handle:r,apiKey:i,baseUrl:H(e),apiBaseUrl:be(e),chatApiBaseUrl:ve(e),environment:a,setActive:!0});console.log(JSON.stringify({profile:s},null,2));return}throw new Error("usage: profiles <list|use|save> [args]")}g(Fe,"runProfiles");async function Ve(){let e=await y(),o=w(e),t=P(e),r=await R(e,o),n=await pe(t,r);console.log(JSON.stringify(n,null,2))}g(Ve,"runAccount");async function We(e){let o=await y(),t=P(o),r=re(o),n=await ue(t,r);console.log(JSON.stringify(n,null,2))}g(We,"runHealth");async function qe(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=typeof e.branch=="string"?String(e.branch):void 0,f=await $(n,i,a.id,{branch:s});if(!f?.id){console.log("no deployments found");return}let c=await ie(n,i,f.id),d=(c&&Array.isArray(c.toolsJson)?c.toolsJson:null)||(c&&typeof c.metadataJson=="object"&&c.metadataJson?c.metadataJson.tools:null),u=Array.isArray(d)?d:[];if(u.length===0){console.log("no tools found");return}for(let l of u){let m=l,h=m.profile||m.function,I=m.name||h?.name||"unknown",p=m.description||h?.description||"";console.log(p?`${I} - ${p}`:I)}}g(qe,"runToolList");async function Ye(e,o,t){let r=await y(),n=w(r),i=P(r),a=await R(r,n),{app:s}=await T(i,a,o),f=typeof e.branch=="string"?String(e.branch):void 0,c=await $(i,a,s.id,{branch:f});if(!c?.id)throw new Error("no deployments found");let d;if(typeof e.body=="string")try{d=JSON.parse(e.body)}catch{throw new Error("tool body must be valid JSON")}let u=typeof e.method=="string"?String(e.method).toUpperCase():"POST",l=await fe(n,a,{appId:s.id,deploymentId:c.id,toolName:t,method:u,body:d,headers:a?{"openpond-api-key":a}:void 0});if(!l.ok)throw new Error(l.error||`tool failed (${l.status})`);let m=l.data??{ok:!0};console.log(JSON.stringify(m,null,2))}g(Ye,"runToolRun");async function Qe(e,o,t){let r=await y(),n=w(r),i=P(r),a=await R(r,n),{app:s}=await T(i,a,o),f=typeof e.branch=="string"?String(e.branch):void 0,c=typeof e.deploymentId=="string"?String(e.deploymentId):void 0,d=c?{id:c}:await $(i,a,s.id,{branch:f});if(!d?.id)throw new Error("no deployments found");let u=typeof e.body=="string"?M(String(e.body),"body"):{};if(!u||typeof u!="object"||Array.isArray(u))throw new Error("body must be a JSON object");let l=typeof e.method=="string"?String(e.method).toUpperCase():"POST",m={...u,appId:s.id,deploymentId:d.id,toolName:t,method:l},h=await ge(i,a,m);console.log(JSON.stringify(h,null,2))}g(Qe,"runBacktestRun");async function Xe(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a,handle:s,repo:f}=await T(n,i,o),c=typeof e.branch=="string"?String(e.branch):void 0,d=typeof e.deploymentId=="string"?String(e.deploymentId):void 0,u=d?{id:d}:await $(n,i,a.id,{branch:c});if(!u?.id){console.log("no deployments found");return}await we({baseUrl:n,apiKey:i,deploymentId:u.id,prefix:`[${s}/${f}] `,intervalMs:e.interval?Number(e.interval):void 0,timeoutMs:e.timeout?Number(e.timeout):void 0})}g(Xe,"runDeployWatch");async function Ze(e,o){let r=((typeof e.name=="string"?e.name:null)||o.join(" ")).trim();if(!r)throw new Error("usage: repo create --name <name> [--team-id <id>] [--path <dir>] [--template <owner/repo|url>] [--template-branch <branch>] [--empty|--opentool] [--sandbox] [--token] [--auto-schedule-migration <true|false>]");let n=await y(),i=w(n),a=await R(n,i),s=P(n),f=typeof e.teamId=="string"&&e.teamId.trim()?e.teamId.trim():void 0,c=typeof e.template=="string"?e.template.trim():"";if(c&&(e.empty==="true"||e.opentool==="true"))throw new Error("choose one: --template or --empty/--opentool");if(e.empty==="true"&&e.opentool==="true")throw new Error("choose one: --empty or --opentool");let d=typeof e.description=="string"?e.description.trim():void 0,u=typeof e.templateBranch=="string"&&e.templateBranch.trim().length>0?e.templateBranch.trim():void 0,l=typeof e.env=="string"?M(e.env,"env"):void 0;if(l){if(typeof l!="object"||Array.isArray(l))throw new Error("env must be a JSON object");for(let[b,A]of Object.entries(l))if(typeof A!="string")throw new Error(`env value for ${b} must be a string`)}if(c){e.deployOnPush!==void 0&&console.warn("deploy-on-push is not used for template create (auto deploys)");let b=Re(c,i),k=(await se(s,a,[{name:r,...d?{description:d}:{},templateRepoUrl:b,...u?{templateBranch:u}:{},...l?{envVars:l}:{}}],f)).items?.[0];if(!k||k.status!=="ok"||!k.appId)throw new Error(k?.error||"Template create failed");console.log(`app_id: ${k.appId}`),k.deploymentId&&console.log(`deployment_id: ${k.deploymentId}`),k.conversationId&&console.log(`conversation_id: ${k.conversationId}`);return}let m=process.cwd(),h=typeof e.path=="string"?e.path:typeof e.dir=="string"?e.dir:null,I=h&&h.trim().length>0?h.trim():$e.isTTY?await he(m):m,p=U.resolve(I);if(W(p)){if(!(await V.stat(p)).isDirectory())throw new Error(`path is not a directory: ${p}`)}else await V.mkdir(p,{recursive:!0});let Pe=(await V.readdir(p)).filter(b=>b!==".git").length===0,x=v(e.yes)||v(e.force);if(!Pe&&!x&&!await S(`Directory is not empty (${p}). Continue?`,!1)){console.log("aborted");return}let ke=U.join(p,".git");if(!W(ke)){if(!(x?!0:await S("Initialize git repository here?",!0))){console.log("aborted");return}let A=await B("git",["init"],{cwd:p});if(A.code!==0)throw new Error(`git init failed: ${A.stderr.trim()||A.stdout.trim()||"unknown error"}`)}let K=await F(p,"origin");if(K&&!x&&!await S(`Remote "origin" already set (${K}). Replace it?`,!1)){console.log("aborted");return}let q=e.opentool==="true"?"opentool":"empty",Te=v(e.sandbox),Be=v(e.deployOnPush),N=e.autoScheduleMigration,Y=typeof N=="string"||typeof N=="boolean",Ee=Y?v(N):void 0,E=await ae(s,a,{name:r,...f?{teamId:f}:{},...d?{description:d}:{},...q?{repoInit:q}:{},...Te?{sandbox:!0}:{},...l?{envVars:l}:{},...Be?{deployOnPush:!0}:{},...Y?{autoScheduleMigration:Ee}:{}}),O=me(E);z(O);let J=v(e.token)||v(e.setRemoteToken),Oe=D(O,a),Q=J?Oe:O,_=await B("git",K?["remote","set-url","origin",Q]:["remote","add","origin",Q],{cwd:p});if(_.code!==0)throw new Error(`git remote failed: ${j(_.stderr.trim()||_.stdout.trim()||"unknown error")}`);let Ae=J?G(O):O;console.log(`app_id: ${E.appId}`),E.gitOwner&&E.gitRepo&&console.log(`repo: ${E.gitOwner}/${E.gitRepo}`),console.log(`remote: ${Ae}`),console.log('next: git add . && git commit -m "init"');let Ie=E.defaultBranch||"master";console.log(`next: openpond repo push --path ${p} --branch ${Ie}`),J||console.log(`token-remote (non-interactive): git -C ${p} remote set-url origin ${G(O)}`);try{await ye({apiBase:s,apiKey:a,forceRefresh:!0})}catch(b){console.warn("cache refresh failed",b)}}g(Ze,"runRepoCreate");async function Se(e){let o=await B("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:e});if(o.code!==0)return null;let t=o.stdout.trim();return t.length>0?t:null}g(Se,"resolveGitBranch");async function et(e){let o=await y(),t=w(o),r=await R(o,t),n=typeof e.path=="string"?e.path:typeof e.dir=="string"?e.dir:null,i=U.resolve(n&&n.trim().length>0?n.trim():"."),a=U.join(i,".git");if(!W(a))throw new Error(`git repo not found at ${i} (missing .git)`);let s=await F(i,"origin");if(!s)throw new Error("origin remote not set; run `openpond repo create` first");z(s);let c=(typeof e.branch=="string"?e.branch.trim():"")||await Se(i);if(!c)throw new Error("unable to resolve git branch; pass --branch");let d;try{d=D(s,r)}catch{throw new Error("origin remote must be https for tokenized pushes")}let u=v(e.keepTokenRemote)||v(e.token)||v(e.setRemoteToken),l=s.includes("x-access-token:"),m=!u&&!l?s:null,h=process.env.GIT_TERMINAL_PROMPT;process.env.GIT_TERMINAL_PROMPT="0";try{if(!l){let p=await B("git",["remote","set-url","origin",d],{cwd:i});if(p.code!==0)throw new Error(`git remote set-url failed: ${j(p.stderr.trim()||p.stdout.trim()||"unknown error")}`)}if((await B("git",["push","-u","origin",c],{cwd:i,inherit:!0})).code!==0)throw new Error("git push failed")}finally{m&&await B("git",["remote","set-url","origin",m],{cwd:i}).catch(()=>null),h===void 0?delete process.env.GIT_TERMINAL_PROMPT:process.env.GIT_TERMINAL_PROMPT=h}}g(et,"runRepoPush");async function tt(e){if(e.length===0)throw new Error("usage: opentool <init|validate|build> [args]");let o=process.platform==="win32"?"npx.cmd":"npx";if((await B(o,["opentool",...e],{inherit:!0})).code!==0)throw new Error("opentool command failed")}g(tt,"runOpentool");async function nt(){let e="openpond",o=Z(),t=await te(e),r=`npm i -g ${e}@${t}`,n=ee(o,t);if(n===0){console.log(`${e} is up to date (${o})`);return}if(n===-1){console.log(`Update available: ${o} -> ${t}`),console.log(`Run: ${r}`);return}if(n===1){console.log(`Installed version (${o}) is newer than npm latest (${t}).`);return}if(o===t){console.log(`${e} is up to date (${o})`);return}console.log(`Installed: ${o}`),console.log(`Latest: ${t}`),console.log(`Run: ${r}`)}g(nt,"runCheckUpdate");export{Ge as a,je as b,ze as c,He as d,Fe as e,Ve as f,We as g,qe as h,Ye as i,Qe as j,Xe as k,Ze as l,Se as m,et as n,tt as o,nt as p};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{La as _,Oa as C}from"./chunk-25MBPJVY.js";import{e as R,l as m}from"./chunk-WN3V6KDN.js";import{Aa as A}from"./chunk-ACYFMLWG.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as l}from"./chunk-FTQLQJQV.js";var u=e.string().trim().min(1).max(200),P=e.object({operationId:u,execution:R,executionKind:e.literal("recorded_evidence").optional(),graders:e.array(A).min(1).max(100),maximumCostUsd:e.number().finite().min(1e-6).max(1e4),mappings:e.array(e.object({graderId:u,fields:_}).strict()).max(100).optional()}).strict().superRefine((a,n)=>{new Set(a.graders.map(o=>o.id)).size!==a.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."}),a.mappings&&(new Set(a.mappings.map(o=>o.graderId)).size!==a.mappings.length||a.mappings.some(o=>!a.graders.some(c=>c.id===o.graderId)))&&n.addIssue({code:"custom",path:["mappings"],message:"Map each selected grader at most once."})}),q=e.object({schemaVersion:e.literal("openpond.experimentScoringPass.v1"),id:u,teamId:u,revision:e.number().int().positive(),request:P,graders:e.array(C).min(1).max(100),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),scored:e.number().int().nonnegative(),unavailable:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),resultAvailable:e.boolean(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),error:e.object({code:u,message:e.string().max(2e3)}).strict().nullable()}).strict(),L=q.extend({contentHash:e.string().regex(/^[a-f0-9]{64}$/)});function O(a){let n=L.parse(a),{contentHash:o,...c}=n;if(m(c)!==o||Object.values(n.counts).reduce((r,d)=>r+d,0)!==n.totalCount)throw new Error("Scoring pass integrity or population accounting failed.");let t=["completed","failed","cancelled"].includes(n.status);if(t&&(!n.completedAt||n.counts.pending||n.counts.running)||!t&&(n.completedAt!==null||n.resultAvailable)||n.status==="completed"&&!n.resultAvailable)throw new Error("Scoring pass lifecycle differs from its retained result.");if(n.graders.length!==n.request.graders.length||new Set(n.graders.map(r=>r.feedbackKey)).size!==n.graders.length||n.graders.some((r,d)=>m(r.release)!==m(n.request.graders[d])||m(r.mappings??[])!==m(n.request.mappings?.find(f=>f.graderId===r.release?.id)?.fields??[])))throw new Error("Scoring pass graders differ from their exact admission.");return n}l(O,"verifyExperimentScoringPass");var I=8388608;async function B(a,n,o,c){let t=new AbortController,r=o.signal,d=l(()=>t.abort(r?.reason),"forward");r?.aborted?d():r?.addEventListener("abort",d,{once:!0});let f=setTimeout(()=>t.abort(new Error("Connected evidence request timed out.")),6e4),s,h=l(()=>{s&&s.cancel(t.signal.reason).catch(()=>{})},"abortReader");t.signal.addEventListener("abort",h,{once:!0});let v=new Promise((w,g)=>{let p=l(()=>g(t.signal.reason??new DOMException("Request aborted","AbortError")),"abort");t.signal.aborted?p():t.signal.addEventListener("abort",p,{once:!0})});try{let w=a(n,{...o,signal:t.signal}).then(i=>{if(t.signal.aborted)throw i.body?.cancel(t.signal.reason).catch(()=>{}),t.signal.reason;return i}),g=await Promise.race([w,v]),p=g.headers.get("content-length");if(s=g.body?.getReader(),t.signal.aborted)throw await s?.cancel(t.signal.reason),t.signal.reason;if(p&&Number(p)>I)throw await s?.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");let x=[],b=0;if(s)for(;;){let i=await Promise.race([s.read(),v]);if(i.done)break;if(b+=i.value.byteLength,b>I)throw await s.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");x.push(i.value)}let S=new Uint8Array(b),E=0;for(let i of x)S.set(i,E),E+=i.byteLength;let y;try{y=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(S))}catch{throw c(502,"connected_response_invalid","Connected evidence response is not valid JSON.")}return{response:g,value:y}}finally{clearTimeout(f),r?.removeEventListener("abort",d),t.signal.removeEventListener("abort",h),s?.releaseLock()}}l(B,"fetchConnectedJson");export{P as a,O as b,B as c};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{N as a,O as o}from"./chunk-VRIEKBBH.js";import{a as t}from"./chunk-FTQLQJQV.js";function i(e){return n({runtime:o(e.ports),close:e.close})}t(i,"createAppServer");function n(e){let r=!1;return{runtime:e.runtime,close:t(async()=>{r||(r=!0,await e.close?.())},"close")}}t(n,"attachAppServer");async function s(e){let r=typeof e.appServer=="function"?null:e.appServer;try{await a({host:r?.runtime??(async()=>(r=await e.appServer(),r.runtime)),readable:e.readable,writable:e.writable,hostStorageClient:e.hostStorageClient})}finally{await r?.close()}}t(s,"runAppServerJsonl");export{i as a,s as b};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as y}from"./chunk-ZCHXGRRU.js";import{l as v}from"./chunk-ACYFMLWG.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as s}from"./chunk-FTQLQJQV.js";var te="application/vnd.openpond.training+json;version=2",M="application/vnd.openpond.model-project+json;version=2",ne=1048576,ae=67108864,oe=8388608,h=524288,J=8388608,u=class extends Error{static{s(this,"OpenPondProtocolError")}code;constructor(t,n){super(n),this.name="OpenPondProtocolError",this.code=t}};function w(t){return JSON.stringify(S(t))}s(w,"canonicalJson");function $(t){return new TextEncoder().encode(w(t)).byteLength}s($,"canonicalJsonByteLength");async function O(t){let n=new TextEncoder().encode(w(t)),i=await globalThis.crypto.subtle.digest("SHA-256",n);return Array.from(new Uint8Array(i),o=>o.toString(16).padStart(2,"0")).join("")}s(O,"canonicalSha256");function x(t,n,i){let o=$(t);if(o>n)throw new u("payload_too_large",`${i} is ${o} bytes; the maximum is ${n} bytes.`)}s(x,"assertCanonicalPayloadSize");function H(t,n,i){let o=new TextEncoder().encode(t).byteLength;if(o>n)throw new u("response_too_large",`${i} is ${o} bytes; the maximum is ${n} bytes.`);try{return JSON.parse(t)}catch{throw new u("invalid_json",`${i} was not valid JSON.`)}}s(H,"parseBoundedJson");function S(t){if(t===null||typeof t=="string"||typeof t=="boolean")return t;if(typeof t=="number"){if(!Number.isFinite(t))throw new u("non_json_value","Canonical JSON cannot contain a non-finite number.");return Object.is(t,-0)?0:t}if(Array.isArray(t))return t.map(n=>S(n));if(typeof t=="object"){let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw new u("non_json_value","Canonical JSON accepts only plain objects.");let i={};for(let o of Object.keys(t).sort()){let r=t[o];if(r===void 0||typeof r=="function"||typeof r=="symbol")throw new u("non_json_value",`Canonical JSON cannot contain ${typeof r} at ${o}.`);i[o]=S(r)}return i}throw new u("non_json_value",`Canonical JSON cannot contain ${typeof t}.`)}s(S,"normalizeCanonicalJson");var a=e.string().trim().min(1).max(500),d=e.string().regex(/^[a-f0-9]{64}$/),c=e.string().datetime({offset:!0}),m=e.object({id:a,contentHash:d}).strict(),P=m.extend({revision:e.number().int().positive()}).strict(),p=e.object({schemaVersion:e.literal("openpond.baseModelPreference.v1"),modelId:a,revision:e.string().trim().min(1).max(256).nullable(),tokenizerRevision:e.string().trim().min(1).max(256).nullable(),chatTemplateHash:e.string().trim().min(8).max(256).nullable(),modelAssetId:a.nullable(),source:e.enum(["managed","local","builtin"])}).strict(),T=e.enum(["sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),B=e.object({schemaVersion:e.string().regex(/^openpond\.[A-Za-z0-9]+Recipe\.v\d+$/),method:T,parameterization:e.enum(["lora","full"])}).catchall(e.unknown()),D=e.object({profileProjectId:a,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),harnessRelease:m}).strict(),U=e.object({profileProjectId:a,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),catalogHash:d,definitionId:a,harnessRelease:m,tasksetRelease:m}).strict(),E=e.object({tasksetRef:P.nullable().default(null),evaluationTasksetRef:P.nullable().optional(),profileSource:D.nullable().optional(),profileEvaluation:U.nullable().optional(),rewardBindingRef:P.nullable().optional(),tasksetRelease:m.nullable().default(null),harnessRelease:m.nullable().default(null),baseModel:p.nullable().default(null),method:T.nullable().default(null),destinationId:a.nullable().default(null),managedRolloutPlacement:e.enum(["local","remote"]).default("remote"),managedGpuPlacementObjective:e.enum(["fast","balanced","economical"]).default("balanced"),managedGpuRequirement:e.enum(["any","h100_hbm3"]).default("any"),runPreset:e.enum(["small","standard","custom","small_experiment"]).nullable().default(null),recipe:B.nullable().default(null),preferredMaximumSpendUsd:e.number().nonnegative().nullable().default(null),preferredRetentionDays:e.number().int().nonnegative().nullable().default(null)}).strict(),N=E.omit({managedGpuRequirement:!0}),q=e.object({schemaVersion:e.literal("openpond.hostedModelProjectLink.v1"),apiOrigin:e.string().url().refine(t=>new URL(t).origin===t,"Use a canonical API origin.").nullable().default(null),teamId:a,projectId:a,portableProjectId:a,revision:e.number().int().positive(),etag:d,syncedSourceRevision:e.number().int().positive(),syncedAt:c,tasksets:e.array(e.object({localTasksetId:a,localTasksetHash:d.nullable().default(null),releaseId:a,releaseRevision:e.number().int().positive(),releaseHash:d,packageHash:d.nullable().default(null),hostedTasksetId:a,syncedAt:c}).strict()).max(1e4).default([])}).strict(),L=e.object({localTasksetId:a,releaseId:a,releaseRevision:e.number().int().positive(),releaseHash:d,state:e.enum(["syncing","synced","sync_failed"]),hostedTasksetId:a.nullable().default(null),lastAttemptAt:c,syncedAt:c.nullable().default(null),lastError:e.string().trim().min(1).max(5e3).nullable().default(null)}).strict(),V=e.object({schemaVersion:e.literal("openpond.modelProject.v2"),id:a,profileId:a,revision:e.number().int().positive().default(1),name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:a.nullable(),trainingSetup:E,hosted:q.nullable().default(null),tasksetSyncs:e.array(L).max(1e4).default([]),createdAt:c,updatedAt:c}).strict(),k=V.pick({id:!0,profileId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,trainingSetup:!0}),G=e.object({schemaVersion:e.literal("openpond.modelProjectSave.v1"),operationId:a,expectedRevision:e.number().int().nonnegative(),project:k,learning:y.optional()}).strict().superRefine((t,n)=>{t.learning&&t.expectedRevision!==0&&n.addIssue({code:"custom",path:["learning"],message:"Use learning settings to edit an existing Model's policy."})}),Y=e.object({schemaVersion:e.literal("openpond.modelProjectConfigurationCheck.v1"),configurationHash:d,projectId:a,expectedRevision:e.number().int().nonnegative(),checkedAt:c,canSave:e.boolean(),deferred:e.array(e.enum(["base_model","taskset"])).max(2),findings:e.array(e.object({code:a,severity:e.enum(["error","warning"]),message:e.string().min(1).max(5e3),field:e.string().min(1).max(500).nullable()}).strict()).max(100)}).strict(),z=e.object({id:a,name:e.string().min(1).max(500),available:e.boolean(),preference:p}).strict();async function re(t){let n=g(t);return O({project:n.project,expectedRevision:n.expectedRevision,...n.learning?{learning:n.learning}:{}})}s(re,"modelProjectConfigurationHash");function g(t){try{v(t,h)}catch{throw new C(400,{schemaVersion:"openpond.modelProjectApiError.v2",code:"model_configuration_json_invalid",message:"Model configuration must be bounded JSON data.",retryable:!1,requestId:null,details:{}})}return G.parse(t)}s(g,"parseModelProjectSaveRequest");async function ie(t,n,i){v(t,h);let o=k.parse(t);x(o,h,"Model configuration");let r=i?y.parse(i):void 0,l=await O({project:o,expectedRevision:n,...r?{learning:r}:{}});return g({schemaVersion:"openpond.modelProjectSave.v1",operationId:`model-save:${l}`,expectedRevision:n,project:o,...r?{learning:r}:{}})}s(ie,"createModelProjectSaveRequest");var X=e.object({schemaVersion:e.literal("openpond.hostedModelProjectSync.v2"),portableProjectId:a,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:a.nullable(),trainingSetup:N,sourceRevision:e.number().int().positive(),sourceUpdatedAt:c,expectedEtag:d.nullable().default(null)}).strict(),b=e.object({id:a,teamId:a,portableProjectId:a,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:a.nullable(),trainingSetup:N,sourceRevision:e.number().int().positive(),sourceUpdatedAt:c,revision:e.number().int().positive(),etag:d,createdAt:c,updatedAt:c}).strict(),F=e.object({kind:e.enum(["taskset_release","harness_release","dataset_release","evidence_set","model_version","reward_model_version","evaluation_receipt"]),ref:m,role:e.string().trim().min(1).max(200).nullable().default(null),updatedAt:c}).strict(),Z=e.object({project:b,resources:e.array(F).max(1e4),jobCount:e.number().int().nonnegative(),latestJobIds:e.array(a).max(100)}).strict(),K=e.object({schemaVersion:e.literal("openpond.modelProjectApiError.v2"),code:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3),retryable:e.boolean().default(!1),requestId:e.string().trim().min(1).max(500).nullable().default(null),details:e.record(e.string(),e.unknown()).default({})}).strict(),C=class extends Error{static{s(this,"OpenPondModelProjectApiError")}status;code;retryable;requestId;details;constructor(t,n){super(n.message),this.name="OpenPondModelProjectApiError",this.status=t,this.code=n.code,this.retryable=n.retryable,this.requestId=n.requestId,this.details=n.details}};function R(t){let n={};return new Headers(t).forEach((i,o)=>{n[o]=i}),n}s(R,"headersRecord");function se(t){let n=t.fetch??fetch,i=t.baseUrl.replace(/\/$/,"");async function o(r,l){let j=typeof t.headers=="function"?await t.headers():t.headers??{},f=await n(`${i}${r}`,{...l,headers:{accept:M,...l?.body?{"content-type":M}:{},...R(j),...R(l?.headers)}}),I=H(await f.text(),J,"Model Project API response");if(!f.ok){let _=K.safeParse(I);throw _.success?new C(f.status,_.data):new u("invalid_error_response",`Model Project request failed with HTTP ${f.status} and an invalid error envelope.`)}return I}return s(o,"request"),{async configurationCandidates(){return e.object({candidates:e.array(z).max(1e3)}).strict().parse(await o("/v1/model-projects/configuration/candidates",{headers:{accept:"application/json"}})).candidates},async checkConfiguration(r){let l=g(r);return Y.parse(await o("/v1/model-projects/configuration/check",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(l)}))},async saveConfiguration(r){let l=g(r);return b.parse(await o("/v1/model-projects/configuration/save",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(l)}))},async upsert(r){x(r,h,"Model Project sync");let l=X.parse(r),j=await o(`/v1/model-projects/${encodeURIComponent(l.portableProjectId)}`,{method:"PUT",body:JSON.stringify(l)});return b.parse(A(j,"project"))},async list(){let r=await o("/v1/model-projects");return e.array(b).parse(A(r,"projects"))},async get(r){let l=await o(`/v1/model-projects/${encodeURIComponent(a.parse(r))}`);return Z.parse(l)}}}s(se,"createModelProjectsClient");function A(t,n){return!t||typeof t!="object"||Array.isArray(t)?t:n in t?t[n]:t}s(A,"unwrapObject");export{te as a,M as b,ne as c,ae as d,oe as e,h as f,J as g,u as h,w as i,O as j,x as k,H as l,m,P as n,p as o,T as p,B as q,D as r,U as s,E as t,N as u,q as v,L as w,V as x,k as y,G as z,Y as A,z as B,re as C,g as D,ie as E,X as F,b as G,F as H,Z as I,K as J,C as K,se as L};
|