openpond 0.2.70 → 0.2.72
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.js +1 -1
- package/dist/chunks/{acp-QTA6IU6W.js → acp-7A2UPCG5.js} +1 -1
- package/dist/chunks/{acp-agent-N77HPAYQ.js → acp-agent-AGALGR6V.js} +1 -1
- package/dist/chunks/{actions-command-BZQCUDMD.js → actions-command-AXGXBU75.js} +1 -1
- package/dist/chunks/{app-layer-YQQNLIXA.js → app-layer-DUCNCJ2X.js} +1 -1
- package/dist/chunks/{app-server-evaluations-RRLYWLPK.js → app-server-evaluations-SNWXULKD.js} +1 -1
- package/dist/chunks/{app-server-harness-services-XXM336NU.js → app-server-harness-services-YNMGMKPK.js} +1 -1
- package/dist/chunks/app-server-runtime-BKJ7L6JZ.js +2 -0
- package/dist/chunks/{apps-WG7WY5CB.js → apps-2OWE23BH.js} +1 -1
- package/dist/chunks/{chunk-ZDEIVUUI.js → chunk-27OJ2OLP.js} +1 -1
- package/dist/chunks/{chunk-NSSZ2ZIU.js → chunk-2EAZB2MW.js} +1 -1
- package/dist/chunks/{chunk-DRLP7GIU.js → chunk-2GEZ3ZY7.js} +1 -1
- package/dist/chunks/{chunk-PAYFJHPO.js → chunk-2PVW2XFF.js} +1 -1
- package/dist/chunks/chunk-2Q2AWPP2.js +2 -0
- package/dist/chunks/{chunk-Y2WNZWT2.js → chunk-2Q6FTL4C.js} +1 -1
- package/dist/chunks/{chunk-KP2MYTP5.js → chunk-2QHB5P2K.js} +1 -1
- package/dist/chunks/{chunk-HG2YFMVU.js → chunk-2THZ6GZY.js} +1 -1
- package/dist/chunks/{chunk-DXJC3QW7.js → chunk-3VT2PPKW.js} +1 -1
- package/dist/chunks/{chunk-4BUM6JEC.js → chunk-4JKWCLTQ.js} +1 -1
- package/dist/chunks/{chunk-AQUZCWM3.js → chunk-5TPJ5ECJ.js} +1 -1
- package/dist/chunks/{chunk-RCQYEHHD.js → chunk-5TTQCT3G.js} +1 -1
- package/dist/chunks/{chunk-NMMHXYDJ.js → chunk-5WFKBZCU.js} +1 -1
- package/dist/chunks/{chunk-P4QM63L3.js → chunk-5ZBDHIIE.js} +1 -1
- package/dist/chunks/{chunk-WD4KAKEX.js → chunk-64EDQ7UV.js} +1 -1
- package/dist/chunks/{chunk-KU4TPDPH.js → chunk-6LAGMWJE.js} +1 -1
- package/dist/chunks/{chunk-VJYOKU3C.js → chunk-6OD2FKUS.js} +1 -1
- package/dist/chunks/{chunk-65FJWWXG.js → chunk-6YR5IYHH.js} +1 -1
- package/dist/chunks/{chunk-AUO5DCEU.js → chunk-73COPJ32.js} +1 -1
- package/dist/chunks/{chunk-SSHE6B7Z.js → chunk-AITV76GO.js} +1 -1
- package/dist/chunks/{chunk-PLROXHG2.js → chunk-ATI52WMB.js} +1 -1
- package/dist/chunks/chunk-AWD72O3G.js +2 -0
- package/dist/chunks/{chunk-DKOVZ6R2.js → chunk-BQNU4HZW.js} +1 -1
- package/dist/chunks/{chunk-UANH7U3Y.js → chunk-BTEBZYK3.js} +1 -1
- package/dist/chunks/{chunk-3Z4VM2LF.js → chunk-BUMCJHQP.js} +1 -1
- package/dist/chunks/{chunk-BU6MW65V.js → chunk-BYVE4TMU.js} +1 -1
- package/dist/chunks/{chunk-PNPV2LDE.js → chunk-BZS2PA4O.js} +1 -1
- package/dist/chunks/{chunk-AFYYIJ6K.js → chunk-C7NQPICU.js} +1 -1
- package/dist/chunks/{chunk-EWH64WRR.js → chunk-CAYKEJJY.js} +1 -1
- package/dist/chunks/{chunk-K7KBFM2T.js → chunk-CBD554GZ.js} +1 -1
- package/dist/chunks/{chunk-7RJOCGQ6.js → chunk-CHRED2FK.js} +1 -1
- package/dist/chunks/{chunk-3A2Y7UK3.js → chunk-CQRA5TXF.js} +1 -1
- package/dist/chunks/{chunk-GYYJ47GX.js → chunk-CWE2N3JI.js} +1 -1
- package/dist/chunks/{chunk-ZYLLPRPU.js → chunk-CX4T7I47.js} +1 -1
- package/dist/chunks/{chunk-TAXCMCYZ.js → chunk-CX4U32VO.js} +4 -4
- package/dist/chunks/{chunk-7TM25J6S.js → chunk-DFSQ5HZ7.js} +2 -2
- package/dist/chunks/{chunk-2PXKSAG6.js → chunk-DLOJG7LP.js} +1 -1
- package/dist/chunks/{chunk-BGMAWETL.js → chunk-DNRC6TPJ.js} +1 -1
- package/dist/chunks/{chunk-5FSPDSAO.js → chunk-DUR32LJG.js} +1 -1
- package/dist/chunks/{chunk-FHDH4OUA.js → chunk-EHMA5XS7.js} +1 -1
- package/dist/chunks/{chunk-Z33RVGP6.js → chunk-ENY24ZBB.js} +1 -1
- package/dist/chunks/{chunk-JVNKSU27.js → chunk-F3IEAU7O.js} +1 -1
- package/dist/chunks/{chunk-M4A7G4S5.js → chunk-FOAM3YZQ.js} +1 -1
- package/dist/chunks/{chunk-VJR2GNRY.js → chunk-FVMTQSVW.js} +1 -1
- package/dist/chunks/{chunk-YI6ME6PU.js → chunk-GG6PM7TB.js} +1 -1
- package/dist/chunks/{chunk-DDOIPTOM.js → chunk-GMA365GI.js} +1 -1
- package/dist/chunks/{chunk-KCLMA2IH.js → chunk-GPGXBKXU.js} +1 -1
- package/dist/chunks/{chunk-JVMSN7LH.js → chunk-GR4MJJCE.js} +1 -1
- package/dist/chunks/{chunk-7OFD6TFD.js → chunk-HA762QYM.js} +1 -1
- package/dist/chunks/{chunk-Q7FBVLLB.js → chunk-HBGTHOOB.js} +1 -1
- package/dist/chunks/{chunk-AFH462DO.js → chunk-HT6ILPD6.js} +1 -1
- package/dist/chunks/{chunk-XYZV3FKD.js → chunk-I6KTJ3GH.js} +1 -1
- package/dist/chunks/{chunk-OUJ63LMU.js → chunk-IA6CTX7A.js} +1 -1
- package/dist/chunks/{chunk-XHACK2KR.js → chunk-IUYGQO2K.js} +1 -1
- package/dist/chunks/{chunk-55YD4UTW.js → chunk-IV2HEX3I.js} +1 -1
- package/dist/chunks/{chunk-MOXIGLN2.js → chunk-JALL5NPH.js} +1 -1
- package/dist/chunks/{chunk-U7X5ZLAL.js → chunk-JCHLDNCX.js} +1 -1
- package/dist/chunks/{chunk-7PKDJHT6.js → chunk-JH4RACOB.js} +1 -1
- package/dist/chunks/{chunk-MIFVX5PK.js → chunk-JSDGOQ5U.js} +1 -1
- package/dist/chunks/{chunk-65WRWLUD.js → chunk-JVEIK4RH.js} +1 -1
- package/dist/chunks/{chunk-PPF6EBTQ.js → chunk-K3WM4NEC.js} +1 -1
- package/dist/chunks/{chunk-CCZ276IA.js → chunk-KOIXRLZZ.js} +1 -1
- package/dist/chunks/{chunk-6C6ZCYTL.js → chunk-KRJZ5CW3.js} +1 -1
- package/dist/chunks/{chunk-CUB6PWAJ.js → chunk-KTQWWCP2.js} +6 -6
- package/dist/chunks/{chunk-Y4E5AAI7.js → chunk-KUEVP7WM.js} +1 -1
- package/dist/chunks/{chunk-U7D6Q744.js → chunk-L5L3H6CI.js} +1 -1
- package/dist/chunks/{chunk-VWWKWYSQ.js → chunk-LHTRQAPZ.js} +1 -1
- package/dist/chunks/{chunk-QLGP2OAQ.js → chunk-MLLMLXKG.js} +1 -1
- package/dist/chunks/{chunk-QUNQM2E3.js → chunk-MPEK4ZNY.js} +1 -1
- package/dist/chunks/{chunk-EGP6DF34.js → chunk-MPXOPL7R.js} +2 -2
- package/dist/chunks/{chunk-PHZZBXDO.js → chunk-MQMMJKOZ.js} +1 -1
- package/dist/chunks/{chunk-B66QCXH2.js → chunk-MWPMYCYB.js} +1 -1
- package/dist/chunks/{chunk-5G7BQAUA.js → chunk-N5FT6PTI.js} +1 -1
- package/dist/chunks/{chunk-SDHG6CKU.js → chunk-NDNSLCPE.js} +1 -1
- package/dist/chunks/{chunk-WCNPGKST.js → chunk-O4YHISU2.js} +1 -1
- package/dist/chunks/{chunk-IO5DZUKL.js → chunk-OI4DAZ4U.js} +1 -1
- package/dist/chunks/{chunk-Q73RKX7I.js → chunk-OIIE5GUK.js} +1 -1
- package/dist/chunks/{chunk-N5EAVX4G.js → chunk-OOKHHOIU.js} +1 -1
- package/dist/chunks/{chunk-7OKZCJHS.js → chunk-OXRN2257.js} +1 -1
- package/dist/chunks/{chunk-HES4VP3D.js → chunk-PYPXP5R3.js} +1 -1
- package/dist/chunks/{chunk-ZK3ET5EP.js → chunk-QKBMXL4D.js} +3 -3
- package/dist/chunks/{chunk-YAA7F5LI.js → chunk-QKGNAYSC.js} +1 -1
- package/dist/chunks/{chunk-KDER7R45.js → chunk-RIFWD5XM.js} +1 -1
- package/dist/chunks/{chunk-WZ35ICTE.js → chunk-RWBP2H4M.js} +1 -1
- package/dist/chunks/{chunk-SO4GMSNP.js → chunk-S5ACNR5Y.js} +1 -1
- package/dist/chunks/{chunk-M4ZHFDRJ.js → chunk-SRK4WX7D.js} +1 -1
- package/dist/chunks/{chunk-XY7HFXLH.js → chunk-SVLVIYH2.js} +1 -1
- package/dist/chunks/{chunk-FNGZ4UDZ.js → chunk-T6ML5SCD.js} +1 -1
- package/dist/chunks/{chunk-CO23RRN7.js → chunk-TD5YYA5Z.js} +1 -1
- package/dist/chunks/{chunk-7NCM6GBN.js → chunk-TOWY6Y23.js} +1 -1
- package/dist/chunks/{chunk-OXQ2WFIH.js → chunk-TR5UC5AF.js} +1 -1
- package/dist/chunks/{chunk-JQOVC35K.js → chunk-UCPD526R.js} +1 -1
- package/dist/chunks/{chunk-Y4I6CFZJ.js → chunk-UGDBMRCT.js} +1 -1
- package/dist/chunks/{chunk-E2JB5OCO.js → chunk-UZE3C2SF.js} +1 -1
- package/dist/chunks/{chunk-PACLKDTN.js → chunk-V4VM2R6D.js} +1 -1
- package/dist/chunks/{chunk-XOPHFUUY.js → chunk-VMBWCIGG.js} +1 -1
- package/dist/chunks/{chunk-CIZI6Z7D.js → chunk-VMW23TIZ.js} +1 -1
- package/dist/chunks/{chunk-4G3GTEVS.js → chunk-VSQPWLAG.js} +1 -1
- package/dist/chunks/{chunk-54755JYM.js → chunk-VXFGSFIE.js} +2 -2
- package/dist/chunks/{chunk-R2FYCJL6.js → chunk-W4JBPYGW.js} +1 -1
- package/dist/chunks/{chunk-JZKTBYNB.js → chunk-WMJEQK4G.js} +1 -1
- package/dist/chunks/{chunk-ESYPMD7Q.js → chunk-X2MJFTLS.js} +1 -1
- package/dist/chunks/{chunk-67U7PAMU.js → chunk-X7ZMUWJO.js} +1 -1
- package/dist/chunks/{chunk-WGQ3FMRF.js → chunk-XKDOPNQ5.js} +1 -1
- package/dist/chunks/{chunk-EYTTZ5H4.js → chunk-XLZMSD5K.js} +1 -1
- package/dist/chunks/{chunk-ZIQJDTQB.js → chunk-XTT3K3TR.js} +1 -1
- package/dist/chunks/{chunk-Q7P34B2O.js → chunk-YFHQRDNQ.js} +1 -1
- package/dist/chunks/{chunk-UGFSAG4U.js → chunk-YG3HITOU.js} +1 -1
- package/dist/chunks/{chunk-DWF3FCY4.js → chunk-Z5R4OSGC.js} +1 -1
- package/dist/chunks/{chunk-JT5YQ52I.js → chunk-Z6HWSTEP.js} +1 -1
- package/dist/chunks/{chunk-4PUOWSDE.js → chunk-ZEOYNUHL.js} +1 -1
- package/dist/chunks/{chunk-4KTGYHCE.js → chunk-ZMRP2A7K.js} +1 -1
- package/dist/chunks/{chunk-OL3L3U36.js → chunk-ZSWATWK2.js} +1 -1
- package/dist/chunks/cli-KXU5DNVV.js +2 -0
- package/dist/chunks/{command-5AXJMFYC.js → command-X35I53H3.js} +3 -3
- package/dist/chunks/{configuration-command-5LUNWPOL.js → configuration-command-VJUK34UQ.js} +1 -1
- package/dist/chunks/{connected-app-executor-DHXZE4X3.js → connected-app-executor-JBFJF2H5.js} +1 -1
- package/dist/chunks/{connected-evidence-NWMPICKJ.js → connected-evidence-CQ533AML.js} +1 -1
- package/dist/chunks/{connected-starting-assets-NRVXIKQ2.js → connected-starting-assets-RL5X6LZ7.js} +1 -1
- package/dist/chunks/{continual-UCKQ2QLH.js → continual-PHGIZFF6.js} +1 -1
- package/dist/chunks/{core-commands-ZPBX35M2.js → core-commands-5DYMDWXY.js} +1 -1
- package/dist/chunks/{dataset-preparation-authoring-UUYFWWCT.js → dataset-preparation-authoring-UDSX33YK.js} +1 -1
- package/dist/chunks/{datasets-6K3ZANIV.js → datasets-BW4JFUUU.js} +1 -1
- package/dist/chunks/{desktop-test-57INNJ76.js → desktop-test-RIG4CB2Z.js} +1 -1
- package/dist/chunks/{dist-2MKJC6HN.js → dist-C5XFRP53.js} +1 -1
- package/dist/chunks/{evaluation-coordination-B7CN4R2D.js → evaluation-coordination-6QJ6XTUX.js} +1 -1
- package/dist/chunks/{experiment-improvements-G357VLDB.js → experiment-improvements-2XF63AQ4.js} +1 -1
- package/dist/chunks/{experiments-BHQO26LJ.js → experiments-3S2BVNK6.js} +1 -1
- package/dist/chunks/{experiments-signal-BI6NKETB.js → experiments-signal-IRBHGGW5.js} +1 -1
- package/dist/chunks/{help-UQN5RUPA.js → help-Q2VMJVTR.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-5LZQHA32.js +2 -0
- package/dist/chunks/{host-profile-external-dataset-KSEPXY2S.js → host-profile-external-dataset-C6ZPMTX6.js} +1 -1
- package/dist/chunks/{hosted-app-server-composition-WDDO6F23.js → hosted-app-server-composition-AYZM2HY6.js} +1 -1
- package/dist/chunks/{hosted-experiment-improvement-VVYXQ65K.js → hosted-experiment-improvement-SMZJYRJ7.js} +1 -1
- package/dist/chunks/hosted-harness-runtime-QWIFAITG.js +2 -0
- package/dist/chunks/{hosted-profile-candidate-PTGQLPZO.js → hosted-profile-candidate-WOMWAE5N.js} +1 -1
- package/dist/chunks/{hosted-profile-compiler-FS5R6CHJ.js → hosted-profile-compiler-NZ2BXN32.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-control-UUEZEMXU.js → hosted-profile-evaluation-control-3ECFFM7E.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-inspection-4F7OEF4T.js → hosted-profile-evaluation-inspection-TM7RKONG.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-preparation-LIJJZDHQ.js → hosted-profile-evaluation-preparation-2MZIRT75.js} +1 -1
- package/dist/chunks/{hosted-tasksets-KCLNMPG5.js → hosted-tasksets-IUK3VWSL.js} +1 -1
- package/dist/chunks/{human-review-PX6DBIFT.js → human-review-PG4WWVWV.js} +1 -1
- package/dist/chunks/{import-2HEYPHPW.js → import-FAZAVZBF.js} +1 -1
- package/dist/chunks/{learning-Y3UKNUGE.js → learning-3XDYMYBE.js} +1 -1
- package/dist/chunks/{learning-LSXBL5DB.js → learning-OR4CYV4B.js} +1 -1
- package/dist/chunks/local-harness-improvement-runtime-OYLTKMJU.js +2 -0
- package/dist/chunks/local-harness-taskset-review-I7YU4RZI.js +2 -0
- package/dist/chunks/{model-projects-6YWVD2TS.js → model-projects-POZRHXTF.js} +1 -1
- package/dist/chunks/{opchat-66BCRKEZ.js → opchat-TCZA6373.js} +1 -1
- package/dist/chunks/{opchat-bounded-chat-KQWXZVFN.js → opchat-bounded-chat-GMYDXLWB.js} +1 -1
- package/dist/chunks/{organizations-IOYWDOCC.js → organizations-PYKGA2P2.js} +1 -1
- package/dist/chunks/{profile-YH6G3ZTD.js → profile-GYYI555I.js} +1 -1
- package/dist/chunks/project-action-payload-FE6M2OXJ.js +2 -0
- package/dist/chunks/{project-agent-RYVMKW2F.js → project-agent-4ISJFMJD.js} +1 -1
- package/dist/chunks/{published-experiment-source-SDXUVPE7.js → published-experiment-source-E2YAJCLM.js} +1 -1
- package/dist/chunks/{refiner-profile-service-56VYLZQJ.js → refiner-profile-service-LKGXD5WJ.js} +1 -1
- package/dist/chunks/{runtime-ISLJIGWC.js → runtime-UDLOZD4Y.js} +2 -2
- package/dist/chunks/{sandbox-command-DI45NRTV.js → sandbox-command-4J6DAY7T.js} +1 -1
- package/dist/chunks/{sandbox-template-T42MDUSR.js → sandbox-template-TSXWJMWG.js} +1 -1
- package/dist/chunks/saved-work-QTEBKVUB.js +2 -0
- package/dist/chunks/{send-turn-YLY3YNEQ.js → send-turn-4MH4WMLW.js} +1 -1
- package/dist/chunks/{setup-D6TY2GWV.js → setup-IVT2FQSE.js} +1 -1
- package/dist/chunks/{src-7RN7BF4W.js → src-DC7N2H7A.js} +111 -113
- package/dist/chunks/{src-LF5X4RNQ.js → src-TOSQX36I.js} +1 -1
- package/dist/chunks/{standalone-experiment-turn-owner-TW5MTWIO.js → standalone-experiment-turn-owner-UYPA6XHW.js} +1 -1
- package/dist/chunks/{store-chat-resources-IRHBW2EC.js → store-chat-resources-QLXKKYYC.js} +1 -1
- package/dist/chunks/{store-continual-support-reviews-3KK42L4I.js → store-continual-support-reviews-4F2BOG3H.js} +1 -1
- package/dist/chunks/{store-conversation-serving-IVURK52V.js → store-conversation-serving-EUD47W6X.js} +1 -1
- package/dist/chunks/{store-create-improve-UTCLBXF2.js → store-create-improve-QUOTNNIM.js} +1 -1
- package/dist/chunks/{store-datasets-4AQOVAQY.js → store-datasets-ZUC7CNVO.js} +1 -1
- package/dist/chunks/{store-evaluation-results-PK2P3IMH.js → store-evaluation-results-LHHPHESK.js} +1 -1
- package/dist/chunks/{store-harness-workspaces-YEXB4IRV.js → store-harness-workspaces-TKX5PZWP.js} +1 -1
- package/dist/chunks/{store-human-review-O4BVHP25.js → store-human-review-7WZWRJ6X.js} +1 -1
- package/dist/chunks/{store-learned-preference-migration-validation-44SVX6YB.js → store-learned-preference-migration-validation-MVNKBR4X.js} +1 -1
- package/dist/chunks/{store-learning-SIUQIY5C.js → store-learning-WLUW2PWE.js} +1 -1
- package/dist/chunks/{store-learning-credentials-BUHR7SN6.js → store-learning-credentials-FDKCEDHK.js} +1 -1
- package/dist/chunks/{store-local-experiments-BHVTKPPE.js → store-local-experiments-HB53QFLL.js} +1 -1
- package/dist/chunks/{store-model-batch-review-RVAYUVK2.js → store-model-batch-review-O3I6GIAA.js} +1 -1
- package/dist/chunks/{store-model-configuration-AYFGMC5D.js → store-model-configuration-CDIGNU6Q.js} +1 -1
- package/dist/chunks/{store-model-project-preparation-5DEIS7TB.js → store-model-project-preparation-QMQ2HMJV.js} +1 -1
- package/dist/chunks/{store-modification-recordings-LCPK6K2T.js → store-modification-recordings-W4VEZKKQ.js} +1 -1
- package/dist/chunks/{store-preference-comparison-5YVIQNVB.js → store-preference-comparison-JKURBESE.js} +1 -1
- package/dist/chunks/{store-sidebar-file-bookmarks-WLMYDA4E.js → store-sidebar-file-bookmarks-KAEDHVVF.js} +1 -1
- package/dist/chunks/{store-sidebar-preferences-AFMYIDWT.js → store-sidebar-preferences-QPBLTHY6.js} +1 -1
- package/dist/chunks/{store-subagents-KFPVSTRO.js → store-subagents-ZELQP3MX.js} +1 -1
- package/dist/chunks/{store-task-inbox-L6IQTY26.js → store-task-inbox-4ZDQR2E7.js} +1 -1
- package/dist/chunks/{store-task-inventory-QWS2C656.js → store-task-inventory-CTIJDLYE.js} +1 -1
- package/dist/chunks/{store-taskset-drafts-EAOOY6CR.js → store-taskset-drafts-FRPBYLTW.js} +1 -1
- package/dist/chunks/{store-training-FYXZU2FE.js → store-training-WQAYUT7B.js} +1 -1
- package/dist/chunks/{store-training-jobs-3N3VKPIY.js → store-training-jobs-O5EHGTH7.js} +1 -1
- package/dist/chunks/{store-training-models-VOFVGPZR.js → store-training-models-YSZMC66T.js} +1 -1
- package/dist/chunks/{taskset-HNDIGYQG.js → taskset-OVYM4QMS.js} +1 -1
- package/dist/chunks/{taskset-packages-WMG5DUBN.js → taskset-packages-FUQWNTSB.js} +1 -1
- package/dist/chunks/{taskset-packages-T6B6HYKZ.js → taskset-packages-GM6IUOTY.js} +1 -1
- package/dist/chunks/{teams-bot-Z5CZLWE4.js → teams-bot-U2M3ORWR.js} +1 -1
- package/dist/chunks/{tool-learning-ZQ6NSJ5K.js → tool-learning-NXVR4YPA.js} +1 -1
- package/dist/chunks/{training-JTYQA7GA.js → training-EQ7G5FDY.js} +1 -1
- package/dist/chunks/training-LQUAL4Y4.js +2 -0
- package/dist/chunks/training-PEZYJ2SN.js +2 -0
- package/dist/chunks/{training-hosted-36SZFS4U.js → training-hosted-XKSUTMLQ.js} +1 -1
- package/dist/chunks/{training-hosted-alphaedit-HSMRDJTD.js → training-hosted-alphaedit-VCOEYLKK.js} +1 -1
- package/dist/chunks/{training-hosted-decision-7JALOU6O.js → training-hosted-decision-IKWWXA56.js} +1 -1
- package/dist/chunks/{training-hosted-engram-SXO75MFG.js → training-hosted-engram-3TOPPVSW.js} +1 -1
- package/dist/chunks/{training-hosted-learning-E2N32YU5.js → training-hosted-learning-UEBGSSNC.js} +1 -1
- package/dist/chunks/{training-hosted-modification-comparison-TXFDJFTG.js → training-hosted-modification-comparison-C6S4JFHW.js} +1 -1
- package/dist/chunks/{training-hosted-neuron-training-J42WK4EH.js → training-hosted-neuron-training-EP2U4PHG.js} +1 -1
- package/dist/chunks/{training-hosted-serving-report-BAEABGJH.js → training-hosted-serving-report-KJMRZJLQ.js} +1 -1
- package/dist/chunks/{training-hosted-steering-T556BUBG.js → training-hosted-steering-I27DV6A2.js} +1 -1
- package/dist/chunks/{training-model-start-P3PXDWNT.js → training-model-start-NWXNGRDC.js} +1 -1
- package/dist/chunks/{workspaces-EK62ANTB.js → workspaces-FVQYJPOS.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/skills/manifest.json +3 -3
- package/dist/skills/openpond-cli/references/experiments-and-training.md +19 -0
- package/dist/web/assets/App-QM6Y2Eod.js +54 -0
- package/dist/web/assets/{AppDialog-x1HU1uLv.js → AppDialog-C8um481a.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-CNIKmqKc.js → AppTerminalPanel-OwNr-bp6.js} +2 -2
- package/dist/web/assets/{AppToastContext-DNWd43HS.js → AppToastContext-BQ4iRFif.js} +1 -1
- package/dist/web/assets/{AppsView-BvOD83Z1.js → AppsView-mk8m_Cra.js} +1 -1
- package/dist/web/assets/{AttachmentTypeIcon-BLdDr3JZ.js → AttachmentTypeIcon-SITPqTtF.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-Ar0FlFKg.js → BrowserSidebar-BghdIKTB.js} +1 -1
- package/dist/web/assets/{CartesianChart-tS7f1HZv.js → CartesianChart-BdRx7q_O.js} +1 -1
- package/dist/web/assets/{ChatTimelineEntry-z7_kur3h.js → ChatTimelineEntry-BBOnAzJB.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-CaiFEKrv.js → CollaborationTabs-Beja-9s5.js} +1 -1
- package/dist/web/assets/{CommandMenu-BpubEqaA.js → CommandMenu-CQtrSUpu.js} +1 -1
- package/dist/web/assets/{CommunityView-TGR4s99l.js → CommunityView-LPTAakS-.js} +1 -1
- package/dist/web/assets/{ComposerAttachments-DPWCjKXz.js → ComposerAttachments-DI-Gr7Zw.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-Drji01_6.js → ComposerCreateImproveStrip-CY5Uw1yc.js} +1 -1
- package/dist/web/assets/{ConversationImportsSettings-B_oW0cz7.js → ConversationImportsSettings-DFwhKERw.js} +1 -1
- package/dist/web/assets/{DatasetReviewImport-Dr3unJSY.js → DatasetReviewImport-C9xraQk7.js} +1 -1
- package/dist/web/assets/{ExperimentTrainingDataWorkspace-DObvpJAw.js → ExperimentTrainingDataWorkspace-Cx58S6R_.js} +2 -2
- package/dist/web/assets/{FilePagePreview-9kkXbARN.js → FilePagePreview-dlbmR8s8.js} +2 -2
- package/dist/web/assets/{GetStartedView-Dv2b_SlH.js → GetStartedView-BkTV_shK.js} +1 -1
- package/dist/web/assets/{GettingStartedDialog-sPaPMc61.js → GettingStartedDialog-DulDLYnr.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-BlwhGxS6.js → HostedModelLearningReview--fXJEOfI.js} +1 -1
- package/dist/web/assets/{HostedModelLearningSettings-B5ahk3je.js → HostedModelLearningSettings-BEb7B_PC.js} +1 -1
- package/dist/web/assets/{HtmlVisual-rGsClq0p.js → HtmlVisual-BS61T2qR.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-Da7AwZWV.js → LabModelVersionDetailPage-CmzUIDbR.js} +1 -1
- package/dist/web/assets/{LabModelWorkspace-DTeYViWH.js → LabModelWorkspace-DoAnQKWk.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-BieHbNl6.js → LabSkillSidebar-DJTm7ZQs.js} +1 -1
- package/dist/web/assets/{LabsRoute-D3XqPB0-.js → LabsRoute-DNtBot4a.js} +4 -4
- package/dist/web/assets/{LearningBatchesPage-CCBuf2u4.js → LearningBatchesPage-C_oQjciE.js} +1 -1
- package/dist/web/assets/{MainChatThread-B6BQJfcq.js → MainChatThread-D9e-to8e.js} +2 -2
- package/dist/web/assets/{MainPane-D3fQou29.js → MainPane-mWeD0M-f.js} +6 -6
- package/dist/web/assets/{ModelProjectPageHeader-BZn9Lu_J.js → ModelProjectPageHeader-BecKU_2p.js} +1 -1
- package/dist/web/assets/{NativeSetupTerminal-Bglqab_g.js → NativeSetupTerminal-DO0DN4fH.js} +2 -2
- package/dist/web/assets/{NativeSkillSidebar-pUGRdnV_.js → NativeSkillSidebar-jnxgQASC.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-BpHN38MA.js → NewProjectDialog-ByHR4vMf.js} +1 -1
- package/dist/web/assets/{OutputsPage-LunDCQ6w.js → OutputsPage-DZY4BUCy.js} +1 -1
- package/dist/web/assets/{PageChrome-DThEcWAx.js → PageChrome-DjPuwWsn.js} +1 -1
- package/dist/web/assets/{ProjectsPage-vct_TQgL.js → ProjectsPage-DKbwhIM4.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-CgFK7DY0.js → RightChatPanelStack-BARH0XuL.js} +1 -1
- package/dist/web/assets/RightSidebarHomePanel-qKL8dZrN.js +1 -0
- package/dist/web/assets/{ScheduledWorkPage-mmaZfybl.js → ScheduledWorkPage-CElrmRz9.js} +1 -1
- package/dist/web/assets/{SettingsView-CJfeRsWR.js → SettingsView-CsFSjE9s.js} +3 -3
- package/dist/web/assets/{TasksetDraftEditorPrimitives-CuimAfkv.js → TasksetDraftEditorPrimitives-DJoYkvWq.js} +1 -1
- package/dist/web/assets/{TeamChatView-BcK0lF1b.js → TeamChatView-D9Y4e98Y.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-0pzEvy-C.js → TerminalOverlay-CUO8yZjy.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-CcyzFz7l.js → TrainingCreationPanel-_mnLQ1HA.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-DSLZXdLz.js → TrainingDraftPanel-CCqQTHo5.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-BT9pcnCn.js → UsageSettingsSection-CdWq5oYC.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-DRXaK-E6.js +1 -0
- package/dist/web/assets/{WorkspaceDiffPanel-Bbz5qrVA.js → WorkspaceDiffPanel-CdHr8bX6.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-6hXpvMTl.js → WorkspaceEnvironmentMenu-BnUh4dg9.js} +1 -1
- package/dist/web/assets/{WorkspaceFileLocation-BijVemBl.js → WorkspaceFileLocation-VzrSq_Ki.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-BOO0E5i9.js → WorkspaceGitDialogs-nwvQOm9r.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-B_YzK7Do.js → WorkspaceMonacoEditor-m3bCIpZe.js} +3 -3
- package/dist/web/assets/{WorkspacePdfPreview-CFti1fvu.js → WorkspacePdfPreview-u6Iv0qr0.js} +2 -2
- package/dist/web/assets/{WorkspacePresentationPreview-DPAhNaV6.js → WorkspacePresentationPreview-CjvTjhUO.js} +1 -1
- package/dist/web/assets/{bot-BE2rL_qv.js → bot-DiDSZBLn.js} +1 -1
- package/dist/web/assets/{chat-resources-Beh5lB36.js → chat-resources-CmBtWC5V.js} +1 -1
- package/dist/web/assets/chevron-down-CqxKXYPf.js +1 -0
- package/dist/web/assets/chevron-right-ClP6ukIq.js +1 -0
- package/dist/web/assets/chevron-up-DY7wpdJ1.js +1 -0
- package/dist/web/assets/{chunk-C3TS766N-j1MK0e3c.js → chunk-C3TS766N-DSA4vs-Y.js} +1 -1
- package/dist/web/assets/{client-BnJhN-14.js → client-_uDCFdg5.js} +1 -1
- package/dist/web/assets/{client-choice-storage-CQ0CNkzG.js → client-choice-storage-CRKZpilL.js} +1 -1
- package/dist/web/assets/{cloud-upload-DFjZE4O4.js → cloud-upload-CWamjPts.js} +1 -1
- package/dist/web/assets/{copy-CGrLUtw5.js → copy-B56YjDkW.js} +1 -1
- package/dist/web/assets/{cssMode-DvRw2fUx.js → cssMode-BuC9qQvo.js} +1 -1
- package/dist/web/assets/{external-link-3ZnEFUXd.js → external-link-BSn21e-y.js} +1 -1
- package/dist/web/assets/{folder-open-i9n8450i.js → folder-open-CaJGWSr2.js} +1 -1
- package/dist/web/assets/{folder-plus-cu8Md_ej.js → folder-plus-eTUep-az.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CwckmC09.js → git-commit-horizontal-Buk_hy6T.js} +1 -1
- package/dist/web/assets/{htmlMode-8VF4Ovtw.js → htmlMode-D7kF2kDL.js} +1 -1
- package/dist/web/assets/{icons-4yRSxBZj.js → icons-B4B5eUyR.js} +1 -1
- package/dist/web/assets/{image-D-umhyyK.js → image--4h1aK2l.js} +1 -1
- package/dist/web/assets/{index-DiVhx1GM.js → index-CCaTs7xt.js} +2 -2
- package/dist/web/assets/{info-Dq2RsPDJ.js → info-DjMTH4sJ.js} +1 -1
- package/dist/web/assets/{jsonMode-CvCYQHkB.js → jsonMode-BVX_7KjE.js} +1 -1
- package/dist/web/assets/loader-circle-DNHvEoaP.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-CjufNNFF.js → lspLanguageFeatures-RBOb-3wX.js} +1 -1
- package/dist/web/assets/{maximize-2-CKY8dua6.js → maximize-2-Cjg-f1xT.js} +1 -1
- package/dist/web/assets/{message-square-CVDgKlKX.js → message-square-oIMQDMc3.js} +1 -1
- package/dist/web/assets/{monaco.contribution-BYAgjZbj.js → monaco.contribution-CIbGU5-C.js} +2 -2
- package/dist/web/assets/{monaco.contribution-PjJ1258q.js → monaco.contribution-CIwt2mTE.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BYY3-y9l.js → monaco.contribution-Dd1cPdSS.js} +2 -2
- package/dist/web/assets/{monaco.contribution-Bh0CKj9i.js → monaco.contribution-KRLNg324.js} +2 -2
- package/dist/web/assets/{monitor-UYe42gew.js → monitor-BWaitd6I.js} +1 -1
- package/dist/web/assets/{paperclip-DrlSVUoz.js → paperclip-FYK6OySO.js} +1 -1
- package/dist/web/assets/{pdf-BMhday2W.js → pdf-DbwlsqZP.js} +1 -1
- package/dist/web/assets/play-DieChKfF.js +1 -0
- package/dist/web/assets/plus-DkfcQyma.js +1 -0
- package/dist/web/assets/{presentation-DcZKqH7w.js → presentation-B6MaAPC7.js} +1 -1
- package/dist/web/assets/{python-CiA01i07.js → python-DRYJxjiM.js} +1 -1
- package/dist/web/assets/{refresh-cw-00D-GDnF.js → refresh-cw-DOVpqCfJ.js} +1 -1
- package/dist/web/assets/{save-CXe7bqR7.js → save-BuyyyR4Q.js} +1 -1
- package/dist/web/assets/{settings-lists-B5J40WM6.js → settings-lists-BeAdxSjx.js} +1 -1
- package/dist/web/assets/square-D0YnIVh6.js +1 -0
- package/dist/web/assets/{square-terminal-DxC7TTds.js → square-terminal-DTOIZy6_.js} +1 -1
- package/dist/web/assets/{submit-issue-command-Dq3TqJLV.js → submit-issue-command-V--K9lVQ.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-BH3Jckfo.js → toggleHighContrast-nNzCoE0h.js} +1 -1
- package/dist/web/assets/training-DZgfVcI-.js +1 -0
- package/dist/web/assets/{training-model-data-B6IZ3x-t.js → training-model-data-CWoTokkb.js} +1 -1
- package/dist/web/assets/{tsMode-DXkj4bqC.js → tsMode-BfVi5_FZ.js} +1 -1
- package/dist/web/assets/{upload-B3KRHVHl.js → upload-C2MnlWjj.js} +1 -1
- package/dist/web/assets/{useAccountSettings-BGRkTRrp.js → useAccountSettings-QwRbZIKu.js} +1 -1
- package/dist/web/assets/{useAgentInventory-D_1AlAZJ.js → useAgentInventory-B7xEgMCA.js} +1 -1
- package/dist/web/assets/{useChatContextSelection-hoMSuUSE.js → useChatContextSelection-O6wo4EqD.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-DxTER7Ow.js → useLocalAgentSchedules-DpHnOGoV.js} +1 -1
- package/dist/web/assets/{useQuery-DkPec_9x.js → useQuery-CvZ8bzdW.js} +1 -1
- package/dist/web/assets/{wifi-off-CMzpvbWl.js → wifi-off-B8d12Alh.js} +1 -1
- package/dist/web/assets/{workers-ziY_bTv2.js → workers-sIVKxb8c.js} +1 -1
- package/dist/web/assets/x-BvVvVB-j.js +1 -0
- package/dist/web/assets/{yaml-mSvqVSko.js → yaml-8-aLM3zj.js} +1 -1
- package/dist/web/index.html +1 -1
- package/docs/command-reference.md +1 -0
- package/package.json +1 -1
- package/dist/chunks/app-server-runtime-B7AMBGQZ.js +0 -2
- package/dist/chunks/chunk-6D3FI2XT.js +0 -2
- package/dist/chunks/chunk-VEBW7NKD.js +0 -2
- package/dist/chunks/cli-ALEEFAJ7.js +0 -2
- package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +0 -2
- package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +0 -2
- package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +0 -2
- package/dist/chunks/local-harness-taskset-review-E5GN5LTR.js +0 -2
- package/dist/chunks/project-action-payload-53OH6WDH.js +0 -2
- package/dist/chunks/saved-work-54I5ZJTC.js +0 -2
- package/dist/chunks/training-5NT2YB2L.js +0 -2
- package/dist/chunks/training-UY6KRG4M.js +0 -2
- package/dist/web/assets/App-CXhxya9x.js +0 -54
- package/dist/web/assets/RightSidebarHomePanel-BJmzUcmy.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-CP-nHAsJ.js +0 -1
- package/dist/web/assets/chevron-down-Bn8yph2O.js +0 -1
- package/dist/web/assets/chevron-right-BU-jUmb2.js +0 -1
- package/dist/web/assets/chevron-up-DacwuDJZ.js +0 -1
- package/dist/web/assets/loader-circle-DBl6qqtR.js +0 -1
- package/dist/web/assets/play-DIqZnaNf.js +0 -1
- package/dist/web/assets/plus-CFNxAPMK.js +0 -1
- package/dist/web/assets/square-DJEaBefe.js +0 -1
- package/dist/web/assets/training-DWfghwfZ.js +0 -1
- package/dist/web/assets/x-omjwMPbJ.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{j as U,m as W,n as K,o as q,r as X,y as O}from"./chunk-
|
|
2
|
+
import{j as U,m as W,n as K,o as q,r as X,y as O}from"./chunk-GG6PM7TB.js";import{Ba as V,oa as y,wa as N}from"./chunk-BYVE4TMU.js";import{L as D}from"./chunk-ZEOYNUHL.js";import{Ba as F,Ca as z,Ia as G,Ja as A,ab as $,bb as L,cb as J,ea as P}from"./chunk-ZY32SZ2P.js";import{i as B,l as j,m as E,n as g}from"./chunk-RCT3O3HQ.js";import{a as f}from"./chunk-FTQLQJQV.js";import{createHash as Y}from"node:crypto";import{mkdir as Z,readdir as ie,readFile as H,writeFile as Q}from"node:fs/promises";import m from"node:path";async function Ae(e,t){let a=y.parse(e),s=["tasks","assets","environment","graders","rubrics","comparisons","metrics","fixtures"];await Promise.all(s.map(w=>Z(m.join(t,w),{recursive:!0})));let i=await oe(a,t);if(a.metrics.customAggregator){let w=m.join(t,a.metrics.customAggregator.module),v=Y("sha256").update(await H(w)).digest("hex");a=y.parse({...a,metrics:{...a.metrics,customAggregator:{...a.metrics.customAggregator,contentHash:v}}})}let c=m.join(t,"taskset.json"),d=m.join(t,"tasks","tasks.jsonl"),n=m.join(t,"graders","graders.json"),o=m.join(t,"fixtures","grader-fixtures.json"),u=m.join(t,"metrics","policy.json"),r=m.join(t,"assets","manifest.json"),l=m.join(t,"environment","contract.json"),p=m.join(t,"rubrics","preference-review.md"),k=m.join(t,"comparisons","policy.json");return await Promise.all([...K(a)].map(([w,v])=>Q(m.join(t,w),v,"utf8"))),{directory:t,files:[c,d,r,l,n,p,k,u,o,...i],draft:a}}f(Ae,"writeTasksetDraftPackage");async function _e(e){let t=await ce(e),a=Y("sha256");for(let s of t)a.update(m.relative(e,s).replaceAll(m.sep,"/")),a.update("\0"),a.update(await H(s)),a.update("\0");return a.digest("hex")}f(_e,"hashTasksetDraftPackage");async function ee(e,t){let a=m.basename(e)==="taskset.json"?e:m.join(e,"taskset.json"),s=m.dirname(a),i=f(async n=>{if(!t)return H(n,"utf8");let o=t.get(m.relative(s,n).replaceAll(m.sep,"/"));if(!o)throw Object.assign(new Error("Authored file is absent."),{code:"ENOENT"});return new TextDecoder("utf-8",{fatal:!0}).decode(o)},"read"),c=JSON.parse(await i(a)),d=y.safeParse(c);if(d.success){let[n,o,u,r,l,p]=await Promise.all([de(m.join(s,"tasks","tasks.jsonl"),i),I(m.join(s,"graders","graders.json"),i),I(m.join(s,"fixtures","grader-fixtures.json"),i),I(m.join(s,"metrics","policy.json"),i),I(m.join(s,"environment","contract.json"),i),I(m.join(s,"comparisons","policy.json"),i)]);return y.parse({...d.data,...n===null?{}:{tasks:n},...o===null?{}:{graders:o},...u===null?{}:{graderFixtures:u},...r===null?{}:{metrics:r},...l===null?{}:{environment:l},...p===null?{}:{review:p}})}return O(c)}f(ee,"readTasksetDraftPackage");async function oe(e,t){let a=W(e),s=[];for(let i of a){let c=m.join(t,i.relativePath);await Z(m.dirname(c),{recursive:!0});try{await Q(c,i.source,{encoding:"utf8",flag:"wx"})}catch(d){if(!le(d))throw d}s.push(c)}return s}f(oe,"writeConfiguredStarterCode");async function ce(e){let t=[];async function a(s){let i=await ie(s,{withFileTypes:!0});i.sort((c,d)=>c.name.localeCompare(d.name));for(let c of i){let d=m.join(s,c.name);if(c.isSymbolicLink())throw new Error(`Taskset workspaces cannot contain symbolic links: ${d}`);c.isDirectory()?await a(d):c.isFile()&&t.push(d)}}return f(a,"visit"),await a(e),t}f(ce,"packageFiles");async function I(e,t=a=>H(a,"utf8")){try{return JSON.parse(await t(e))}catch(a){if(te(a))return null;throw a}}f(I,"readOptionalJson");async function de(e,t=a=>H(a,"utf8")){try{return(await t(e)).split(/\r?\n/).map(s=>s.trim()).filter(Boolean).map(s=>JSON.parse(s))}catch(a){if(te(a))return null;throw a}}f(de,"readOptionalJsonLines");function te(e){return e instanceof Error&&"code"in e&&e.code==="ENOENT"}f(te,"isMissingFile");function le(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}f(le,"isFileExists");import{constants as re}from"node:fs";import{lstat as fe,open as me,readdir as ue}from"node:fs/promises";import _ from"node:path";async function Ge(e){let t=_.resolve(e.directory);if(!(await fe(t)).isDirectory())throw new Error("Dataset upload requires a regular authored folder.");let a=new Map,s=0;async function i(r,l){if(l>30)throw new Error("Dataset folder nesting exceeds 30 levels.");for(let p of(await ue(r,{withFileTypes:!0})).sort((k,w)=>k.name<w.name?-1:k.name>w.name?1:0)){if(p.name.startsWith("."))throw new Error("Dataset folders cannot include hidden files or directories.");if(p.isSymbolicLink()||!p.isDirectory()&&!p.isFile())throw new Error("Dataset folders can contain only regular files and directories.");let k=_.join(r,p.name);if(p.isDirectory()){await i(k,l+1);continue}if(a.size>=1e4)throw new Error("Dataset folder exceeds 10,000 files.");let w=await me(k,re.O_RDONLY|re.O_NOFOLLOW);try{let v=await w.stat();if(!v.isFile()||v.size>(e.maximumBytes??q)-s)throw new Error("Dataset folder exceeds its capture byte limit.");let R=new Uint8Array(v.size),S=0;for(;S<R.length;){let M=await w.read(R,S,R.length-S,S);if(!M.bytesRead)throw new Error("Dataset file changed during capture.");S+=M.bytesRead}let C=await w.stat();if(C.size!==v.size||C.mtimeMs!==v.mtimeMs||C.ctimeMs!==v.ctimeMs)throw new Error("Dataset file changed during capture.");s+=R.length,a.set(_.relative(t,k).replaceAll(_.sep,"/"),R)}finally{await w.close()}}}f(i,"visit"),await i(t,0);let c=await ee(t,a),d=[...a].map(([r,l])=>({path:r,contentHash:E(l),sizeBytes:l.byteLength})),n=g(d),o=y.parse({...c,id:e.datasetId??c.id,profileId:e.teamId,revision:e.expectedRevision+1,modelScope:null,status:"draft",publishedTasksetRef:null,metadata:{...c.metadata,importedTasksetPackage:{packageHash:n}}});return{workspace:X({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:o,files:[...a].filter(([r])=>!U(r)).map(([r,l])=>({path:r,base64:Buffer.from(l).toString("base64"),contentHash:E(l),sizeBytes:l.byteLength}))},e.maximumBytes),sourceHash:n,sourceFiles:d,capturedBytes:s}}f(Ge,"captureTasksetDraftWorkspace");async function ae(e){let{binding:t,rewards:a}=e.learning,s=$(t,a),i=new Set(e.graders.map(r=>r.id));if(!i.size||i.size!==e.graders.length||e.graders.some(r=>{let l=s.find(p=>p.source.graderId===r.id);return!l||r.version!==String(l.reward.revision)||g(r.metadata.rewardBinding)!==g(D(t))}))throw new Error("Calibration graders differ from the immutable Reward binding.");let c=L(t,a).filter(r=>i.has(r.id)),d=P.parse({id:e.task.id,clusterKey:e.task.clusterKey,split:e.task.split,input:e.task.input,expectedOutput:e.task.expectedOutput,policyVisibleContext:e.task.policyVisibleContext,privilegedContextRef:e.task.privilegedContextRef,artifactRefs:[],tags:e.task.tags}),n=await G({task:d,graders:c,signal:e.signal,evidence:{output:e.attempt.output,artifactRefs:e.attempt.artifactRefs,runtimeEventRefs:e.attempt.runtimeEventRefs,infrastructureError:e.attempt.infrastructureError},customVerifier:e.customVerifier?async({grader:r})=>{let l=e.graders.find(k=>k.id===r.id);if(l?.kind!=="custom_verifier")throw new Error("Calibration verifier projection is missing.");let p=await e.customVerifier({grader:l,task:e.task,attempt:e.attempt,signal:e.signal});return{score:p.score,passed:p.passed,rewardEligible:r.rewardEligible,failureClass:null,feedback:[p.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:p.evidenceRefs??[]}}:void 0,modelJudge:e.modelJudge?async({grader:r})=>{let l=e.graders.find(k=>k.id===r.id);if(l?.kind!=="model_judge")throw new Error("Calibration judge projection is missing.");let p=await e.modelJudge({grader:l,task:e.task,attempt:e.attempt});return{score:p.score,passed:p.passed,rewardEligible:r.rewardEligible,failureClass:null,feedback:[p.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:p.evidenceRefs??[]}}:void 0}),o=A({graders:c,components:n,infrastructureError:e.attempt.infrastructureError}),u=n.map(r=>{let l=e.graders.find(p=>p.id===r.graderId);return{graderId:r.graderId,graderVersion:r.graderVersion,score:r.score,passed:r.passed,hardGate:l.hardGate,rewardEligible:r.rewardEligible,feedback:r.feedback.join(`
|
|
3
3
|
`)||null,evidenceRefs:[...r.visibleEvidenceRefs,...r.privilegedEvidenceRefs],judge:l.kind==="model_judge"?l.judge:null,calibrationStatus:l.kind==="model_judge"?l.calibrationStatus:"not_applicable"}});return{schemaVersion:"openpond.gradeResult.v1",id:`calibration_${g([e.attempt.id,t.contentHash,n]).slice(0,24)}`,attemptId:e.attempt.id,graderSetHash:g(e.graders),score:o.score,passed:o.passed,components:u,failureClass:o.failureClass,feedback:n.flatMap(r=>r.feedback),rewardEligible:o.rewardEligible,createdAt:e.now?.()??new Date().toISOString()}}f(ae,"gradeLearningCalibrationAttempt");async function se(e){let{binding:t,rewards:a}=e.learning,s=$(t,a);if(e.graders.length!==s.length||s.some(({source:o,reward:u})=>!e.graders.some(r=>r.id===o.graderId&&r.version===String(u.revision)&&g(r.metadata.rewardBinding)===g(D(t)))))throw new Error("Prepared Taskset graders do not match their immutable Reward binding.");let i=P.parse({id:e.task.id,clusterKey:e.task.clusterKey,split:e.task.split,input:e.task.input,expectedOutput:e.task.expectedOutput,policyVisibleContext:e.task.policyVisibleContext,privilegedContextRef:e.task.privilegedContextRef,artifactRefs:[],tags:e.task.tags}),c=await J({binding:t,rewards:a,task:i,signal:e.signal,evidence:{output:e.attempt.output,artifactRefs:e.attempt.artifactRefs,runtimeEventRefs:e.attempt.runtimeEventRefs,infrastructureError:e.attempt.infrastructureError},customVerifier:e.customVerifier?async({grader:o})=>{let u=e.graders.find(l=>l.id===o.id);if(u?.kind!=="custom_verifier")throw new Error("Bound verifier projection is missing.");let r=await e.customVerifier({grader:u,task:e.task,attempt:e.attempt,signal:e.signal});return{score:r.score,passed:r.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[r.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:r.evidenceRefs??[]}}:void 0,modelJudge:e.modelJudge?async({grader:o})=>{let u=e.graders.find(l=>l.id===o.id);if(u?.kind!=="model_judge")throw new Error("Bound judge projection is missing.");let r=await e.modelJudge({grader:u,task:e.task,attempt:e.attempt});return{score:r.score,passed:r.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[r.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:r.evidenceRefs??[]}}:void 0}),d=c.training.status==="not_configured"?c.evaluation:c.training,n=g(e.graders);return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${g([e.attempt.id,c.contentHash]).slice(0,24)}`,attemptId:e.attempt.id,graderSetHash:n,score:d.score,passed:d.passed===!0,components:c.results.map(o=>{let u=t.sources.find(l=>l.graderId===o.graderId),r=e.graders.find(l=>l.id===o.graderId);return{graderId:o.graderId,graderVersion:r.version,score:o.normalizedScore,passed:o.passed===!0,hardGate:u.hardGate,rewardEligible:u.role==="training"&&o.status==="scored",feedback:o.message?.trim()||null,evidenceRefs:o.evidenceHashes,judge:r.kind==="model_judge"?r.judge:null,calibrationStatus:r.kind==="model_judge"?r.calibrationStatus:"not_applicable"}}),failureClass:e.attempt.infrastructureError?"infrastructure_failure":d.status!=="scored"?"grader_failure":d.passed?null:"policy_failure",feedback:c.results.flatMap(o=>o.message?.trim()?[o.message.trim()]:[]),rewardEligible:c.training.status==="scored",rewardComposition:c,createdAt:e.now?.()??new Date().toISOString()}}f(se,"gradeLearningBatchAttempt");async function ft(e){return e.learning?ae({...e,learning:e.learning}):he(e)}f(ft,"gradeCalibrationAttempt");async function he(e){if(e.learning)return se({...e,learning:e.learning});if(e.graders.some(i=>i.metadata.rewardBinding!==void 0))throw new Error("This Taskset requires its immutable public Reward binding to grade an attempt.");let t=g(e.graders),a=[];for(let i of e.graders)e.signal?.throwIfAborted(),a.push(e.attempt.infrastructureError?b(i,null,!1,"Infrastructure failure; no reward was produced.",[],!1):await we(i,e.task,e.attempt,e.modelJudge,e.customVerifier,e.signal));let s=A({graders:e.graders,infrastructureError:e.attempt.infrastructureError,components:a.map(i=>({...i,failureClass:i.score===null?"grader_failure":i.passed?null:"policy_failure"}))});return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${g([e.attempt.id,t,a]).slice(0,24)}`,attemptId:e.attempt.id,graderSetHash:t,score:s.score,passed:s.passed,components:a,failureClass:s.failureClass,feedback:e.attempt.infrastructureError?[e.attempt.infrastructureError]:a.flatMap(i=>i.feedback?[i.feedback]:[]),rewardEligible:s.rewardEligible,createdAt:e.now?.()??new Date().toISOString()}}f(he,"gradeAttempt");async function we(e,t,a,s,i,c){if(e.kind==="model_judge"){if(!s)return b(e,null,!1,"Model judge runner is unavailable.",[],!1);if(e.calibrationStatus!=="passed")return b(e,null,!1,"Model judge calibration has not passed.",[],!1);let n=await s({grader:e,task:t,attempt:a});return b(e,n.score,n.passed,n.feedback,n.evidenceRefs??[])}if(e.kind==="human")return b(e,null,!1,"Human review is pending.",[],!1);if(e.kind==="custom_verifier"){if(!i)return b(e,null,!1,"Sandboxed verifier runner is unavailable.",[],!1);let n=await i({grader:e,task:t,attempt:a,signal:c});return b(e,n.score,n.passed,n.feedback,n.evidenceRefs??[])}let d=F({grader:z(e),task:t,evidence:a});return b(e,d.score,d.passed,d.feedback,[...a.artifactRefs,...a.runtimeEventRefs])}f(we,"runGrader");function b(e,t,a,s,i,c=e.rewardEligible){let d=t!==null&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):null;return{graderId:e.id,graderVersion:e.version,score:d,passed:d!==null&&a,hardGate:e.hardGate,rewardEligible:d!==null&&c,feedback:s,evidenceRefs:i,judge:e.kind==="model_judge"?e.judge:null,calibrationStatus:e.kind==="model_judge"?e.calibrationStatus:"not_applicable"}}f(b,"component");import{access as ke,mkdir as T,readFile as ve,writeFile as x}from"node:fs/promises";import h from"node:path";async function Ft(e,t,a={}){let s=N.parse(e),i=new Map(s.graders.flatMap(n=>{if(n.kind!=="custom_verifier")return[];let o=B.safeParse(n.metadata.portableVerifierRef);return o.success&&o.data.visibility!=="policy"&&o.data.path===n.module?[[n.module,o.data]]:[]})),c=V(s);if(!c.valid)throw new Error(c.issues.map(n=>`${n.code}: ${n.message}`).join(`
|
|
4
4
|
`));await T(h.join(t,"data"),{recursive:!0}),await T(h.join(t,"graders"),{recursive:!0}),await T(h.join(t,"environment"),{recursive:!0}),await T(h.join(t,"fixtures"),{recursive:!0});let d=[h.join(t,"taskset.json"),h.join(t,"capabilities.json"),h.join(t,"data","tasks.jsonl"),h.join(t,"graders","graders.json"),h.join(t,"fixtures","grader-fixtures.json"),h.join(t,"environment","taskset.ts")];await x(d[0],j(s),"utf8"),await x(d[1],j(s.capabilities),"utf8"),await x(d[2],s.tasks.map(n=>JSON.stringify(n)).join(`
|
|
5
5
|
`)+`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{A as He,C as K,D as J,E as O,G as Me,N as je,O as z,P as L,S as ae,U as Fe,W as re,X as E,Y as _e,Z as G,_ as C,a as Q,b as me,c as Z,h as se,i as Re,j as Se,k as xe,l as De,p as Pe,r as Ee,s as q,t as B,y as Ae,z as Ie}from"./chunk-KU4TPDPH.js";import{d as ye}from"./chunk-I6VMRQF4.js";import{ha as we,ja as be}from"./chunk-D6L6UNUQ.js";import{L as H,M as te,N as _,Q as Te,o as ve}from"./chunk-4PUOWSDE.js";import{ga as ee,v as ue}from"./chunk-ZY32SZ2P.js";import{i as Y,l as F,m as W,n as i}from"./chunk-RCT3O3HQ.js";import{A as x}from"./chunk-X2J2P5ZT.js";import{a as f}from"./chunk-FTQLQJQV.js";var Xe=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","tasks/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","metrics/policy.json","assets/manifest.json","environment/contract.json","environment/taskset.ts","rubrics/preference-review.md","comparisons/policy.json"]);function oe(t){return Xe.has(B.parse(t))}f(oe,"isManagedTasksetDraftFilePath");function Be(t){let e=z(t.source),s=z(t.edited),o=t.preparation;if(o.authoringGraph!=="bound"||!e.modelResources||e.learningResources||s.modelResources||s.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==o.sourcePackageHash||!te(H(e.taskset),o.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let n=f(k=>k.taskset.graders.map(S=>S.kind==="custom_verifier"?{...S,exportName:S.exportName??"verify"}:S),"normalizedGraders");if(i(n(e))!==i(n(s)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let c=e.modelResources,v=new Map(c.assets.map(k=>[k.id,k])),a=J(s),h=J(e),p=f(k=>{let{id:S,revision:fe,contentHash:le,metadata:pe,...Je}=k,{javascriptEnvironment:nt,...ge}=pe;return{...Je,metadata:{...ge,resources:ge.resources??[]}}},"environmentContent"),m=f(k=>{if(!k)return null;let{id:S,revision:fe,contentHash:le,...pe}=k.execution.javascript;return pe},"javascriptContent"),y=i(p(e.environment))===i(p(s.environment))&&i(m(h))===i(m(a)),D=y?e.environment:s.environment,u=y?h:a,b=new Set([...c.assets.map(k=>k.id),...s.taskset.tasks.flatMap(k=>k.privilegedContextRef?[k.privilegedContextRef]:[]),...[s.environment.actionSchemaRef,s.environment.observationSchemaRef,s.environment.stateSchemaRef].flatMap(k=>k?[k.id]:[]),...a?.assets.map(k=>k.id)??[]]),M=new Set([...b,...s.taskset.tasks.flatMap(k=>[...k.artifactRefs.map(S=>S.id),...(k.requiredOutputs??[]).flatMap(S=>S.schemaRef?[S.schemaRef.id]:[])])]),A=Ye(e,s,M);for(let k of b){let S=A.find(le=>le.asset.id===k);if(!S)throw new Error(`Bound Taskset asset is missing: ${k}.`);let fe=new TextDecoder("utf-8",{fatal:!0}).decode(K(S));v.set(k,Te.parse(_({schemaVersion:"openpond.learningTextAsset.v1",id:k,revision:1,asset:S.asset,text:fe})))}let R=je(s),{contentHash:$,...T}=c.taskDefinition,{policy:V,environment:ie,environmentRelease:N,tools:r,capabilities:d,verifierSetRelease:g}=s.taskset,l=ve.parse(_({...T,instructions:R,execution:{policy:V,environment:ie,environmentRelease:N,tools:r,capabilities:d,verifierSetRelease:g}})),{contentHash:w,...P}=s.taskset,j=ee.parse(_({...P,tasks:s.taskset.tasks.map(k=>c.instructionMode==="per_task"?k:{...k,policyVisibleContext:{...k.policyVisibleContext,instructions:R}})})),I=De({owner:o.lineage.owner,source:{...c,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:c.rewardBinding,rewards:c.rewards,assets:[...v.values()],edits:{taskset:j,taskDefinition:l,executionResources:{environment:D,verifierSet:s.verifierSet},...u?{execution:u.execution}:{}}}),U=Se.parse(I.taskset.metadata.modelTasksetDerivation);if(I.taskset.id!==o.tasksetId||I.taskset.revision!==o.tasksetRevision||i({...U,schemaVersion:o.lineage.schemaVersion})!==i(o.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:ce,executionResources:de,...Ke}=I;return L({schemaVersion:"openpond.tasksetPackage.v1",taskset:ce,...de,modelResources:Ke,files:A})}f(Be,"publishBoundModelTasksetDraftPackage");function Ye(t,e,s){let o=e.files,n=new Map(t.files.map(a=>[a.asset.id,{file:a,assetHash:i(a.asset)}])),c=f(a=>{let h=n.get(a.asset.id);return h!==void 0&&h.file.base64===a.base64&&h.assetHash===i(a.asset)},"isSourceFile"),v=t.files.filter(a=>oe(a.asset.path)).map(a=>{let h=`source-artifact-${i({packageHash:t.contentHash,assetId:a.asset.id})}`;return{original:a,asset:{...a.asset,id:h,path:`source-artifacts/${t.contentHash}/${i(a.asset.path)}/${a.asset.path.split("/").at(-1)}`}}});for(let{original:a,asset:h}of v){let p=v.filter(u=>i({...u.original.asset,id:a.asset.id})===i(a.asset)),y=e.files.find(u=>u.asset.id===h.id)??p.flatMap(u=>e.files.filter(b=>i(b.asset)===i(u.asset)))[0];if(!y||y.base64!==a.base64||!p.some(u=>i(u.asset)===i(y.asset)))throw new Error(`Retained Taskset source artifact differs from its original bytes: ${a.asset.id}.`);let D=o.filter(u=>u.asset.path===a.asset.path||u.asset.id===a.asset.id);if(D.some(u=>u.asset.path!==a.asset.path||u.asset.id!==a.asset.id&&u.asset.id!==`taskset-file-${i(a.asset.path)}`&&!c(u)))throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${a.asset.id}.`);o=[...o.filter(u=>u.asset.id!==h.id&&u.asset.id!==a.asset.id&&(!D.includes(u)||c(u))),a]}for(let a of t.files.filter(h=>!o.some(p=>p.asset.id===h.asset.id))){if(a.asset.path==="environment/execution.json"){let m=se.safeParse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(K(a))));if(m.success&&i(O(m.data))===i(a))continue}let h=o.filter(m=>m.asset.path===a.asset.path),p=f(m=>i({...m.asset,id:a.asset.id})===i(a.asset)&&m.base64===a.base64,"sameEnvelope");if(s.has(a.asset.id)||!h.length||h.some(m=>!p(m)))throw new Error(`Retained Taskset source alias differs from its original bytes: ${a.asset.id}.`);o=[...o,a]}return o}f(Ye,"retainSourceFileIdentities");function Mt(t){let e=Ee.parse(t.request),s=Pe.parse(t.owner),o=z(t.source);if(o.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(o.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(o.modelResources){let h=xe({owner:s,source:{...o.modelResources,taskset:o.taskset,executionResources:{environment:o.environment,verifierSet:o.verifierSet}},rewardBinding:o.modelResources.rewardBinding,rewards:o.modelResources.rewards,assets:o.modelResources.assets}),p=h.taskset.metadata.modelTasksetDerivation;return q.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${i({owner:s,operationId:e.operationId})}`,requestHash:i(e),sourcePackageHash:o.contentHash,sourceTasksetRef:H(o.taskset),tasksetId:h.taskset.id,tasksetRevision:h.taskset.revision,lineage:{...p,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let n=Ie(o.taskset),c=n&&i(n.owner)===i(s),v=c?n.root:H(o.taskset),a={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:s,root:v,parent:H(o.taskset)};return q.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${i({owner:s,operationId:e.operationId})}`,requestHash:i(e),sourcePackageHash:o.contentHash,sourceTasksetRef:H(o.taskset),tasksetId:Ae(a),tasksetRevision:c?o.taskset.revision+1:1,lineage:a})}f(Mt,"prepareModelTasksetDraft");function Ce(t){let e=q.parse(t.preparation);if(!te(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!t.source)throw new Error("Bound Taskset authoring requires its retained source package.");return Be({preparation:e,source:t.source,edited:t.edited})}let s=Qe(t.edited),{contentHash:o,...n}=s.verifierSet,c=be({...n,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:H(s.verifierSet)}}),{contentHash:v,...a}=s.taskset,h=ee.parse(_({...a,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:c.id,contentHash:c.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...s.taskset.metadata.environmentResources===void 0?{}:{environmentResources:s.taskset.metadata.environmentResources},...s.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:s.taskset.metadata.ordinaryAuthoring}}})),p=J(s),m=p?[...s.files.filter(y=>y.asset.id!==Re(s.taskset)),O({...p.execution,verifierSet:c})]:s.files;return L({schemaVersion:"openpond.tasksetPackage.v1",taskset:h,environment:s.environment,verifierSet:c,files:m})}f(Ce,"publishModelTasksetDraftPackage");function Qe(t){let e=z(t);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}f(Qe,"requireOrdinaryPackage");function $e(t,e,s,o){if(t.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:t,inventory:s,generatedFiles:[]};let n="environment/execution.json",c=e.get(n);if(!c||c.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let v=se.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(c))),a=f(R=>{if(!R)return null;let $=s.find(T=>T.asset.id===R.id&&T.asset.path===R.path);if(!$)throw new Error(`Authored environment dependency is missing: ${R.id}.`);return $.asset},"repin"),{contentHash:h,...p}=v.javascript,m=ye.parse(_({...p,id:`javascript-${t.id}`,revision:t.revision,module:a(v.javascript.module)}));if(i(m.tools)!==i(t.environment.metadata.portableTools)||i(m.tools.map(R=>R.name))!==i(t.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let y=we({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${t.id}`,revision:t.revision,contract:Fe(t),actionSchemaRef:a(v.environment.actionSchemaRef),observationSchemaRef:a(v.environment.observationSchemaRef),stateSchemaRef:a(v.environment.stateSchemaRef),artifactCollection:v.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:H(m),resources:t.environment.resources??[]}}),D=E.parse({...t,environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:y}}}}),u=ae({taskset:D,adapterId:o}),b=O({javascript:m,environment:y,verifierSet:u.verifierSetRelease}),M=[...s.filter(R=>R.sourcePath!==n),{asset:b.asset,sourcePath:n}],A=E.parse({...D,metadata:{...D.metadata,portableFileInventory:M}});return{taskset:E.parse({...A,contentHash:G(A)}),inventory:M,generatedFiles:[{path:n,role:"environment",content:new TextDecoder().decode(K(b))}]}}f($e,"prepareAuthoredToolEnvironment");var ne=x.array(x.object({asset:Y,sourcePath:x.string().min(1)}).strict()).max(1e4),Ze=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function We(t){return Ze.has(t)}f(We,"isGeneratedTasksetPublicationFilePath");function Ve(t,e,s,o=He){let n=E.parse(t);for(let r of n.tasks)for(let d of r.requiredOutputs??[])if(Q(d.metadata)&&d.submissionMode!=="structured_json")throw new Error("Sampling schema requires a structured output.");if(n.metadata.taskDefinition!==void 0||n.metadata.rewardBinding!==void 0){for(let r of n.tasks)for(let d of re(r).requiredOutputs??[]){let g=Q(d.metadata);if(!g)continue;let l=re(r).artifactRefs.find(U=>U.id===g.schemaRef.id);if(!l||i(l)!==i(g.schemaRef)||!d.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let w=f((U,ce)=>r.assets?.find(de=>de.id===U)?.artifactRef??ce,"sourcePath"),P=e.get(w(d.schemaRef.id,d.schemaRef.path)),j=e.get(w(l.id,l.path));if(!P||!j)throw new Error("Sampling schema source bytes are missing.");let I=Z(P,d.schemaRef.contentHash);me(I,g,j)}return{taskset:n,generatedFiles:[]}}let c=new Map,v=0;for(let[r,d]of e){if(B.parse(r),v+=d.byteLength,c.size>=1e4||v>o*3/4)throw new Error("Taskset source exceeds the package byte limit.");c.set(r,d.slice())}let a=n.metrics?.customAggregator,h=a?c.get(a.module):void 0;if(a&&!h)throw new Error("Declared Taskset metric module is missing.");let p=a&&h?{...n.metrics,customAggregator:{...a,contentHash:W(h)}}:n.metrics,m=new Map,y=new Set,D=[],u=f((r,d,g,l)=>{let w=c.get(d);if(!w)throw new Error(`Declared Taskset file is missing: ${d}.`);return{id:r,path:d,contentHash:W(w),sizeBytes:w.byteLength,mediaType:g,visibility:l}},"ref"),b=f((r,d=r.path)=>{let g=m.get(r.id);if(g&&i(g)!==i({asset:r,sourcePath:d}))throw new Error(`Conflicting Taskset file identity: ${r.id}.`);let l=c.get(d);if(!l||l.length!==r.sizeBytes||W(l)!==r.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${r.id}.`);m.set(r.id,{asset:r,sourcePath:d}),y.add(d)},"add");for(let r of n.tasks){let d={};for(let l of r.requiredOutputs??[])if(l.submissionMode==="structured_json"){if(!l.schemaRef||l.mediaType!=="application/json")throw new Error("Structured outputs require a JSON schemaRef and application/json.");let w=r.metadata.portableTaskRecord?.requiredOutputs?.find(I=>I.path===l.path)?.schemaRef,P=w?.id===l.schemaRef?w.path:l.schemaRef,j=u(l.schemaRef,P,"application/schema+json","policy");if(w&&w.id===l.schemaRef&&w.visibility!=="policy")throw new Error("Structured output schema must be policy-visible.");Z(c.get(P),j.contentHash),d[l.schemaRef]=j}Object.keys(d).length&&(r.metadata={...r.metadata,outputSchemaRefs:d});let g=re(r);for(let l of g.artifactRefs)b(l,r.assets?.find(w=>w.id===l.id)?.artifactRef??l.path);for(let l of g.requiredOutputs??[])l.schemaRef&&b(l.schemaRef);for(let l of g.requiredOutputs??[]){let w=Q(l.metadata);if(!w)continue;let P=m.get(w.schemaRef.id);if(!P||i(P.asset)!==i(w.schemaRef)||!g.artifactRefs.some(I=>I.id===w.schemaRef.id)||!l.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let j=Z(c.get(m.get(l.schemaRef.id).sourcePath),l.schemaRef.contentHash);me(j,w,c.get(P.sourcePath))}}for(let r of n.environment.resources??[])b(u(r.id,r.path,r.mediaType??"application/octet-stream",r.visibility==="policy_visible"?"policy":"host_private"));let M=n.graders.map(r=>{if(r.kind==="custom_verifier"){let d=u(`verifier-${r.id}`,r.module,"application/javascript","host_private"),g=Y.safeParse(r.metadata.portableVerifierRef);return g.success&&g.data.contentHash===d.contentHash&&g.data.sizeBytes===d.sizeBytes&&(d=g.data),b(d,r.module),{...r,metadata:{...r.metadata,portableVerifierRef:d}}}if(r.kind==="human"||r.kind==="model_judge"){let d=new TextEncoder().encode(r.rubric),g=`graders/rubric-${W(d)}.md`;c.set(g,d);let l=u(`rubric-${r.id}`,g,"text/markdown","verifier"),w=Y.safeParse(r.metadata.portableRubricRef);if(w.success&&w.data.contentHash===l.contentHash&&w.data.sizeBytes===l.sizeBytes){if(w.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");l=w.data}return b(l,g),D.push({path:g,role:"verifier",content:r.rubric}),{...r,metadata:{...r.metadata,portableRubricRef:l}}}return r});a&&![...m.values()].some(r=>r.asset.path===a.module&&r.sourcePath===a.module&&r.asset.visibility!=="policy")&&b(u(`metric-${i(a.module)}`,a.module,"application/javascript","host_private"));let A=ne.parse(n.metadata.portableFileInventory??[]);for(let r of[...c.keys()].sort())if(!y.has(r)){let d=A.find(g=>g.sourcePath===r&&!m.has(g.asset.id));b(d?{...u(d.asset.id,r,d.asset.mediaType,d.asset.visibility),path:d.asset.path}:u(`taskset-file-${i(r)}`,r,"application/octet-stream","host_private"),r)}let{importedPackageHash:R,derivedPortableMetadata:$,...T}=n.metadata,V={...n.environment.metadata};if(V.portableExecutionResources!==void 0){let r=x.object({environment:x.unknown(),verifierSet:x.unknown().optional()}).parse(V.portableExecutionResources);V.portableExecutionResources={environment:r.environment}}let ie=E.parse({...n,graders:M,metrics:p,environment:{...n.environment,metadata:V},metadata:{...T,...R===void 0?{}:{sourceImportedPackageHash:R},portableFileInventory:ne.parse([...m.values()].sort((r,d)=>r.asset.id.localeCompare(d.asset.id)))}}),N=$e(ie,c,[...m.values()],s);return{taskset:E.parse({...N.taskset,contentHash:G(N.taskset)}),generatedFiles:[...D,...N.generatedFiles]}}f(Ve,"prepareAuthoredTasksetSource");var X=class extends Error{static{f(this,"TasksetDraftPublishError")}issues;constructor(e){super(e.map(s=>s.message).join(`
|
|
2
|
+
import{A as He,C as K,D as J,E as O,G as Me,N as je,O as z,P as L,S as ae,U as Fe,W as re,X as E,Y as _e,Z as G,_ as C,a as Q,b as me,c as Z,h as se,i as Re,j as Se,k as xe,l as De,p as Pe,r as Ee,s as q,t as B,y as Ae,z as Ie}from"./chunk-6LAGMWJE.js";import{d as ye}from"./chunk-I6VMRQF4.js";import{ha as we,ja as be}from"./chunk-D6L6UNUQ.js";import{L as H,M as te,N as _,Q as Te,o as ve}from"./chunk-ZEOYNUHL.js";import{ga as ee,v as ue}from"./chunk-ZY32SZ2P.js";import{i as Y,l as F,m as W,n as i}from"./chunk-RCT3O3HQ.js";import{A as x}from"./chunk-X2J2P5ZT.js";import{a as f}from"./chunk-FTQLQJQV.js";var Xe=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","tasks/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","metrics/policy.json","assets/manifest.json","environment/contract.json","environment/taskset.ts","rubrics/preference-review.md","comparisons/policy.json"]);function oe(t){return Xe.has(B.parse(t))}f(oe,"isManagedTasksetDraftFilePath");function Be(t){let e=z(t.source),s=z(t.edited),o=t.preparation;if(o.authoringGraph!=="bound"||!e.modelResources||e.learningResources||s.modelResources||s.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==o.sourcePackageHash||!te(H(e.taskset),o.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let n=f(k=>k.taskset.graders.map(S=>S.kind==="custom_verifier"?{...S,exportName:S.exportName??"verify"}:S),"normalizedGraders");if(i(n(e))!==i(n(s)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let c=e.modelResources,v=new Map(c.assets.map(k=>[k.id,k])),a=J(s),h=J(e),p=f(k=>{let{id:S,revision:fe,contentHash:le,metadata:pe,...Je}=k,{javascriptEnvironment:nt,...ge}=pe;return{...Je,metadata:{...ge,resources:ge.resources??[]}}},"environmentContent"),m=f(k=>{if(!k)return null;let{id:S,revision:fe,contentHash:le,...pe}=k.execution.javascript;return pe},"javascriptContent"),y=i(p(e.environment))===i(p(s.environment))&&i(m(h))===i(m(a)),D=y?e.environment:s.environment,u=y?h:a,b=new Set([...c.assets.map(k=>k.id),...s.taskset.tasks.flatMap(k=>k.privilegedContextRef?[k.privilegedContextRef]:[]),...[s.environment.actionSchemaRef,s.environment.observationSchemaRef,s.environment.stateSchemaRef].flatMap(k=>k?[k.id]:[]),...a?.assets.map(k=>k.id)??[]]),M=new Set([...b,...s.taskset.tasks.flatMap(k=>[...k.artifactRefs.map(S=>S.id),...(k.requiredOutputs??[]).flatMap(S=>S.schemaRef?[S.schemaRef.id]:[])])]),A=Ye(e,s,M);for(let k of b){let S=A.find(le=>le.asset.id===k);if(!S)throw new Error(`Bound Taskset asset is missing: ${k}.`);let fe=new TextDecoder("utf-8",{fatal:!0}).decode(K(S));v.set(k,Te.parse(_({schemaVersion:"openpond.learningTextAsset.v1",id:k,revision:1,asset:S.asset,text:fe})))}let R=je(s),{contentHash:$,...T}=c.taskDefinition,{policy:V,environment:ie,environmentRelease:N,tools:r,capabilities:d,verifierSetRelease:g}=s.taskset,l=ve.parse(_({...T,instructions:R,execution:{policy:V,environment:ie,environmentRelease:N,tools:r,capabilities:d,verifierSetRelease:g}})),{contentHash:w,...P}=s.taskset,j=ee.parse(_({...P,tasks:s.taskset.tasks.map(k=>c.instructionMode==="per_task"?k:{...k,policyVisibleContext:{...k.policyVisibleContext,instructions:R}})})),I=De({owner:o.lineage.owner,source:{...c,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:c.rewardBinding,rewards:c.rewards,assets:[...v.values()],edits:{taskset:j,taskDefinition:l,executionResources:{environment:D,verifierSet:s.verifierSet},...u?{execution:u.execution}:{}}}),U=Se.parse(I.taskset.metadata.modelTasksetDerivation);if(I.taskset.id!==o.tasksetId||I.taskset.revision!==o.tasksetRevision||i({...U,schemaVersion:o.lineage.schemaVersion})!==i(o.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:ce,executionResources:de,...Ke}=I;return L({schemaVersion:"openpond.tasksetPackage.v1",taskset:ce,...de,modelResources:Ke,files:A})}f(Be,"publishBoundModelTasksetDraftPackage");function Ye(t,e,s){let o=e.files,n=new Map(t.files.map(a=>[a.asset.id,{file:a,assetHash:i(a.asset)}])),c=f(a=>{let h=n.get(a.asset.id);return h!==void 0&&h.file.base64===a.base64&&h.assetHash===i(a.asset)},"isSourceFile"),v=t.files.filter(a=>oe(a.asset.path)).map(a=>{let h=`source-artifact-${i({packageHash:t.contentHash,assetId:a.asset.id})}`;return{original:a,asset:{...a.asset,id:h,path:`source-artifacts/${t.contentHash}/${i(a.asset.path)}/${a.asset.path.split("/").at(-1)}`}}});for(let{original:a,asset:h}of v){let p=v.filter(u=>i({...u.original.asset,id:a.asset.id})===i(a.asset)),y=e.files.find(u=>u.asset.id===h.id)??p.flatMap(u=>e.files.filter(b=>i(b.asset)===i(u.asset)))[0];if(!y||y.base64!==a.base64||!p.some(u=>i(u.asset)===i(y.asset)))throw new Error(`Retained Taskset source artifact differs from its original bytes: ${a.asset.id}.`);let D=o.filter(u=>u.asset.path===a.asset.path||u.asset.id===a.asset.id);if(D.some(u=>u.asset.path!==a.asset.path||u.asset.id!==a.asset.id&&u.asset.id!==`taskset-file-${i(a.asset.path)}`&&!c(u)))throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${a.asset.id}.`);o=[...o.filter(u=>u.asset.id!==h.id&&u.asset.id!==a.asset.id&&(!D.includes(u)||c(u))),a]}for(let a of t.files.filter(h=>!o.some(p=>p.asset.id===h.asset.id))){if(a.asset.path==="environment/execution.json"){let m=se.safeParse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(K(a))));if(m.success&&i(O(m.data))===i(a))continue}let h=o.filter(m=>m.asset.path===a.asset.path),p=f(m=>i({...m.asset,id:a.asset.id})===i(a.asset)&&m.base64===a.base64,"sameEnvelope");if(s.has(a.asset.id)||!h.length||h.some(m=>!p(m)))throw new Error(`Retained Taskset source alias differs from its original bytes: ${a.asset.id}.`);o=[...o,a]}return o}f(Ye,"retainSourceFileIdentities");function Mt(t){let e=Ee.parse(t.request),s=Pe.parse(t.owner),o=z(t.source);if(o.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(o.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(o.modelResources){let h=xe({owner:s,source:{...o.modelResources,taskset:o.taskset,executionResources:{environment:o.environment,verifierSet:o.verifierSet}},rewardBinding:o.modelResources.rewardBinding,rewards:o.modelResources.rewards,assets:o.modelResources.assets}),p=h.taskset.metadata.modelTasksetDerivation;return q.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${i({owner:s,operationId:e.operationId})}`,requestHash:i(e),sourcePackageHash:o.contentHash,sourceTasksetRef:H(o.taskset),tasksetId:h.taskset.id,tasksetRevision:h.taskset.revision,lineage:{...p,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let n=Ie(o.taskset),c=n&&i(n.owner)===i(s),v=c?n.root:H(o.taskset),a={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:s,root:v,parent:H(o.taskset)};return q.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${i({owner:s,operationId:e.operationId})}`,requestHash:i(e),sourcePackageHash:o.contentHash,sourceTasksetRef:H(o.taskset),tasksetId:Ae(a),tasksetRevision:c?o.taskset.revision+1:1,lineage:a})}f(Mt,"prepareModelTasksetDraft");function Ce(t){let e=q.parse(t.preparation);if(!te(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!t.source)throw new Error("Bound Taskset authoring requires its retained source package.");return Be({preparation:e,source:t.source,edited:t.edited})}let s=Qe(t.edited),{contentHash:o,...n}=s.verifierSet,c=be({...n,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:H(s.verifierSet)}}),{contentHash:v,...a}=s.taskset,h=ee.parse(_({...a,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:c.id,contentHash:c.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...s.taskset.metadata.environmentResources===void 0?{}:{environmentResources:s.taskset.metadata.environmentResources},...s.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:s.taskset.metadata.ordinaryAuthoring}}})),p=J(s),m=p?[...s.files.filter(y=>y.asset.id!==Re(s.taskset)),O({...p.execution,verifierSet:c})]:s.files;return L({schemaVersion:"openpond.tasksetPackage.v1",taskset:h,environment:s.environment,verifierSet:c,files:m})}f(Ce,"publishModelTasksetDraftPackage");function Qe(t){let e=z(t);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}f(Qe,"requireOrdinaryPackage");function $e(t,e,s,o){if(t.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:t,inventory:s,generatedFiles:[]};let n="environment/execution.json",c=e.get(n);if(!c||c.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let v=se.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(c))),a=f(R=>{if(!R)return null;let $=s.find(T=>T.asset.id===R.id&&T.asset.path===R.path);if(!$)throw new Error(`Authored environment dependency is missing: ${R.id}.`);return $.asset},"repin"),{contentHash:h,...p}=v.javascript,m=ye.parse(_({...p,id:`javascript-${t.id}`,revision:t.revision,module:a(v.javascript.module)}));if(i(m.tools)!==i(t.environment.metadata.portableTools)||i(m.tools.map(R=>R.name))!==i(t.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let y=we({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${t.id}`,revision:t.revision,contract:Fe(t),actionSchemaRef:a(v.environment.actionSchemaRef),observationSchemaRef:a(v.environment.observationSchemaRef),stateSchemaRef:a(v.environment.stateSchemaRef),artifactCollection:v.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:H(m),resources:t.environment.resources??[]}}),D=E.parse({...t,environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:y}}}}),u=ae({taskset:D,adapterId:o}),b=O({javascript:m,environment:y,verifierSet:u.verifierSetRelease}),M=[...s.filter(R=>R.sourcePath!==n),{asset:b.asset,sourcePath:n}],A=E.parse({...D,metadata:{...D.metadata,portableFileInventory:M}});return{taskset:E.parse({...A,contentHash:G(A)}),inventory:M,generatedFiles:[{path:n,role:"environment",content:new TextDecoder().decode(K(b))}]}}f($e,"prepareAuthoredToolEnvironment");var ne=x.array(x.object({asset:Y,sourcePath:x.string().min(1)}).strict()).max(1e4),Ze=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function We(t){return Ze.has(t)}f(We,"isGeneratedTasksetPublicationFilePath");function Ve(t,e,s,o=He){let n=E.parse(t);for(let r of n.tasks)for(let d of r.requiredOutputs??[])if(Q(d.metadata)&&d.submissionMode!=="structured_json")throw new Error("Sampling schema requires a structured output.");if(n.metadata.taskDefinition!==void 0||n.metadata.rewardBinding!==void 0){for(let r of n.tasks)for(let d of re(r).requiredOutputs??[]){let g=Q(d.metadata);if(!g)continue;let l=re(r).artifactRefs.find(U=>U.id===g.schemaRef.id);if(!l||i(l)!==i(g.schemaRef)||!d.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let w=f((U,ce)=>r.assets?.find(de=>de.id===U)?.artifactRef??ce,"sourcePath"),P=e.get(w(d.schemaRef.id,d.schemaRef.path)),j=e.get(w(l.id,l.path));if(!P||!j)throw new Error("Sampling schema source bytes are missing.");let I=Z(P,d.schemaRef.contentHash);me(I,g,j)}return{taskset:n,generatedFiles:[]}}let c=new Map,v=0;for(let[r,d]of e){if(B.parse(r),v+=d.byteLength,c.size>=1e4||v>o*3/4)throw new Error("Taskset source exceeds the package byte limit.");c.set(r,d.slice())}let a=n.metrics?.customAggregator,h=a?c.get(a.module):void 0;if(a&&!h)throw new Error("Declared Taskset metric module is missing.");let p=a&&h?{...n.metrics,customAggregator:{...a,contentHash:W(h)}}:n.metrics,m=new Map,y=new Set,D=[],u=f((r,d,g,l)=>{let w=c.get(d);if(!w)throw new Error(`Declared Taskset file is missing: ${d}.`);return{id:r,path:d,contentHash:W(w),sizeBytes:w.byteLength,mediaType:g,visibility:l}},"ref"),b=f((r,d=r.path)=>{let g=m.get(r.id);if(g&&i(g)!==i({asset:r,sourcePath:d}))throw new Error(`Conflicting Taskset file identity: ${r.id}.`);let l=c.get(d);if(!l||l.length!==r.sizeBytes||W(l)!==r.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${r.id}.`);m.set(r.id,{asset:r,sourcePath:d}),y.add(d)},"add");for(let r of n.tasks){let d={};for(let l of r.requiredOutputs??[])if(l.submissionMode==="structured_json"){if(!l.schemaRef||l.mediaType!=="application/json")throw new Error("Structured outputs require a JSON schemaRef and application/json.");let w=r.metadata.portableTaskRecord?.requiredOutputs?.find(I=>I.path===l.path)?.schemaRef,P=w?.id===l.schemaRef?w.path:l.schemaRef,j=u(l.schemaRef,P,"application/schema+json","policy");if(w&&w.id===l.schemaRef&&w.visibility!=="policy")throw new Error("Structured output schema must be policy-visible.");Z(c.get(P),j.contentHash),d[l.schemaRef]=j}Object.keys(d).length&&(r.metadata={...r.metadata,outputSchemaRefs:d});let g=re(r);for(let l of g.artifactRefs)b(l,r.assets?.find(w=>w.id===l.id)?.artifactRef??l.path);for(let l of g.requiredOutputs??[])l.schemaRef&&b(l.schemaRef);for(let l of g.requiredOutputs??[]){let w=Q(l.metadata);if(!w)continue;let P=m.get(w.schemaRef.id);if(!P||i(P.asset)!==i(w.schemaRef)||!g.artifactRefs.some(I=>I.id===w.schemaRef.id)||!l.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let j=Z(c.get(m.get(l.schemaRef.id).sourcePath),l.schemaRef.contentHash);me(j,w,c.get(P.sourcePath))}}for(let r of n.environment.resources??[])b(u(r.id,r.path,r.mediaType??"application/octet-stream",r.visibility==="policy_visible"?"policy":"host_private"));let M=n.graders.map(r=>{if(r.kind==="custom_verifier"){let d=u(`verifier-${r.id}`,r.module,"application/javascript","host_private"),g=Y.safeParse(r.metadata.portableVerifierRef);return g.success&&g.data.contentHash===d.contentHash&&g.data.sizeBytes===d.sizeBytes&&(d=g.data),b(d,r.module),{...r,metadata:{...r.metadata,portableVerifierRef:d}}}if(r.kind==="human"||r.kind==="model_judge"){let d=new TextEncoder().encode(r.rubric),g=`graders/rubric-${W(d)}.md`;c.set(g,d);let l=u(`rubric-${r.id}`,g,"text/markdown","verifier"),w=Y.safeParse(r.metadata.portableRubricRef);if(w.success&&w.data.contentHash===l.contentHash&&w.data.sizeBytes===l.sizeBytes){if(w.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");l=w.data}return b(l,g),D.push({path:g,role:"verifier",content:r.rubric}),{...r,metadata:{...r.metadata,portableRubricRef:l}}}return r});a&&![...m.values()].some(r=>r.asset.path===a.module&&r.sourcePath===a.module&&r.asset.visibility!=="policy")&&b(u(`metric-${i(a.module)}`,a.module,"application/javascript","host_private"));let A=ne.parse(n.metadata.portableFileInventory??[]);for(let r of[...c.keys()].sort())if(!y.has(r)){let d=A.find(g=>g.sourcePath===r&&!m.has(g.asset.id));b(d?{...u(d.asset.id,r,d.asset.mediaType,d.asset.visibility),path:d.asset.path}:u(`taskset-file-${i(r)}`,r,"application/octet-stream","host_private"),r)}let{importedPackageHash:R,derivedPortableMetadata:$,...T}=n.metadata,V={...n.environment.metadata};if(V.portableExecutionResources!==void 0){let r=x.object({environment:x.unknown(),verifierSet:x.unknown().optional()}).parse(V.portableExecutionResources);V.portableExecutionResources={environment:r.environment}}let ie=E.parse({...n,graders:M,metrics:p,environment:{...n.environment,metadata:V},metadata:{...T,...R===void 0?{}:{sourceImportedPackageHash:R},portableFileInventory:ne.parse([...m.values()].sort((r,d)=>r.asset.id.localeCompare(d.asset.id)))}}),N=$e(ie,c,[...m.values()],s);return{taskset:E.parse({...N.taskset,contentHash:G(N.taskset)}),generatedFiles:[...D,...N.generatedFiles]}}f(Ve,"prepareAuthoredTasksetSource");var X=class extends Error{static{f(this,"TasksetDraftPublishError")}issues;constructor(e){super(e.map(s=>s.message).join(`
|
|
3
3
|
`)),this.name="TasksetDraftPublishError",this.issues=e}};function os(t){let e=t.now??new Date().toISOString(),s=t.id?.trim()||`taskset-draft-${globalThis.crypto.randomUUID()}`;return C.parse({schemaVersion:"openpond.tasksetDraft.v1",id:s,revision:1,profileId:t.profileId,modelScope:t.modelScope??null,name:t.name?.trim()??"",objective:"",purpose:"general",benchmark:null,preferenceComparison:null,status:"draft",sourceRefs:[],datasetArtifact:null,policy:{policyVisibleFields:["input"],privilegedFields:["expectedOutput"],hiddenGraderRefs:[],connectedAppScopes:[]},environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:"chat",entrypoint:"openpond-chat-v1",stateful:!1,deterministicSeeds:!0,toolNames:[],lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:12e4,networkPolicy:"none",resources:[],metadata:{}},output:{mode:"text",jsonSchema:null,renderer:null},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:"chat",supportedSignals:["demonstration","preference","correction","feedback","reward","label"],compatibleMethods:["none"],rewardKinds:["none"],requiresTools:!1,requiresState:!1,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote","colocated"],exportable:!0,portabilityBlockers:[]},metrics:{schemaVersion:"openpond.tasksetMetricPolicy.v1",primaryMetric:"score",aggregation:"mean_score",missingReward:"zero",customAggregator:null},review:{enabled:!1,candidateCount:2,minimumSamples:100,allowTies:!0,allowRejectAll:!0,rubric:"",criteria:[]},tasks:[],graders:[],graderFixtures:[],learningSignals:{demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},publishedTasksetRef:null,createdAt:e,updatedAt:e,metadata:{}})}f(os,"createTasksetDraft");function qe(t){let e=[];t.name.trim()||e.push({code:"name_missing",message:"Name is required.",path:"name"}),t.objective.trim()||e.push({code:"objective_missing",message:"Objective is required.",path:"objective"}),!t.datasetArtifact&&t.tasks.length===0&&e.push({code:"tasks_missing",message:"Add at least one task or Dataset artifact.",path:"tasks"});let s=new Set(t.sourceRefs.map(o=>o.id));for(let o of t.tasks)for(let n of o.sourceRefs)s.has(n)||e.push({code:"task_source_missing",message:`Task ${o.id} references missing source ${n}.`,path:`tasks.${o.id}.sourceRefs`});return e}f(qe,"draftPublishIssues");function Oe(t){let e=C.parse(t.draft),s=t.now??new Date().toISOString(),o=qe(e);if(o.length)throw new X(o);let n=e.modelScope?.source;if(n&&t.tasksetId&&t.tasksetId!==n.tasksetId)throw new Error("Taskset draft publication differs from its prepared identity.");let c=n?.tasksetId||t.tasksetId?.trim()||e.publishedTasksetRef?.id||e.id.replace(/-draft$/,""),v=n?.tasksetRevision??(e.publishedTasksetRef?.id===c?e.publishedTasksetRef.revision+1:1),a=e.sourceRefs.length?e.sourceRefs:[et(e,c,s)],h=a[0].id,p=e.tasks.map(T=>Me.parse({...T,sourceRefs:T.sourceRefs.length?T.sourceRefs:[h],metadata:{exampleOrigin:"expert_authored",...T.metadata}})),m=e.capabilities.compatibleMethods.find(T=>T!=="none"&&T!=="retrieval")??null,y=tt(e),D=e.graders.filter(T=>T.rewardEligible&&T.weight>0&&T.kind!=="human"),u=m===null&&y==="verifiable_reward"&&D.length>0,b=m??(u?"grpo":null),M=E.parse({schemaVersion:"openpond.taskset.v1",id:c,revision:v,profileId:e.profileId,profileRelease:null,createImproveRunId:null,name:e.name,objective:e.objective,purpose:e.purpose,benchmark:e.benchmark,preferenceComparison:e.preferenceComparison,status:"needs_review",sourceRefs:a,datasetArtifact:e.datasetArtifact??null,policy:e.policy,environment:e.environment,capabilities:u?{...e.capabilities,compatibleMethods:["grpo"],rewardKinds:[...new Set(D.map(T=>T.kind==="model_judge"?"model_judge":"deterministic"))]}:e.capabilities,metrics:e.metrics,tasks:p,graders:e.graders,graderFixtures:e.graderFixtures,learningSignals:e.learningSignals,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:i("openpond-taskset-draft-authoring-v1"),promptTemplateVersion:"taskset-draft-v1",buildIntent:y,buildSpecification:null,evidenceHashes:a.map(T=>T.sourceHash),tasksetSdkVersion:"draft-v1",sourceCommit:null,repairHistory:[],createdAt:s},readiness:null,contentHash:"00000000",createdAt:v===1?e.createdAt:s,updatedAt:s,metadata:{...e.metadata,...n?{modelTasksetAuthoring:n.lineage}:{},tasksetReviewPolicy:e.review,tasksetOutputContract:e.output,...t.sourcePackageHash?{sourcePackageHash:t.sourcePackageHash}:{},...b?{trainingMethod:b}:{},diagnosis:{schemaVersion:"openpond.capabilityDiagnosis.v1",summary:e.objective,stableBehavior:[e.objective],changingKnowledge:[],requiredContext:[],requiredTools:e.environment.toolNames,intervention:b==="dpo"?"preference":b==="grpo"||b==="ppo"?"grpo_rft":b==="sft"?"sft":"no_training",trainingEligible:b!==null,rationale:b?[`The author selected ${b.toUpperCase()} compatibility.`]:["The Taskset is currently configured for evaluation only."],confidence:1}}}),A=E.parse({...M,contentHash:G(M)}),$=_e(A,{purpose:"publication"}).issues.filter(T=>T.severity==="error");if($.length)throw new X($.map(T=>({code:T.code,message:T.message,path:T.path})));return A}f(Oe,"publishTasksetDraft");function et(t,e,s){let o=i({draftId:t.id,draftRevision:t.revision,tasks:t.tasks});return{schemaVersion:"openpond.generatedDatasetSource.v1",kind:"generated",id:`source-${e}`,profileId:t.profileId,title:`${t.name} manual authoring`,sourceHash:o,occurredAt:s,licensingStatus:"approved",secretScanStatus:"passed",piiScanStatus:"passed",generatorId:"openpond-taskset-draft",generatorVersion:"1",seed:0,generatorHash:o,metadata:{draftId:t.id,draftRevision:t.revision}}}f(et,"generatedDraftSource");function tt(t){return t.metadata.buildIntent==="discovery"||!t.graders.length&&!t.learningSignals.preferences.length&&!t.learningSignals.rewards.length&&!t.learningSignals.labels.length?"discovery":t.learningSignals.preferences.length?"preferences":t.learningSignals.rewards.length?"verifiable_reward":t.learningSignals.labels.length?"rubric":!t.capabilities.compatibleMethods.some(e=>e!=="none"&&e!=="retrieval")&&t.graders.some(e=>e.rewardEligible&&e.weight>0&&e.kind!=="human")?"verifiable_reward":"demonstrations"}f(tt,"buildIntentForDraft");function Ts(t){let e=[];t.output.renderer&&e.push({relativePath:t.output.renderer.module,source:`export async function ${t.output.renderer.exportName}(output: unknown) {
|
|
4
4
|
// Return artifact paths or bytes derived from the model's structured output.
|
|
5
5
|
return output;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as gc,b as hc,c as gi,d as hi}from"./chunk-B66QCXH2.js";import{A as Kd,B as Vd,C as po,D as Jd,E as di,F as Gd,G as Xd,H as Qd,I as Yd,J as Zd,K as ec,L as ci,N as bc,d as vd,e as yd,f as kd,g as Sd,h as Id,i as Rd,j as xd,k as Sr,l as ii,m as ai,n as Nd,o as jd,p as Fd,q as li,r as qd,s as $d,t as Hd,u as Dd,w as Tr,y as zd,z as uo}from"./chunk-MOXIGLN2.js";import{a as kc,b as yt,c as Sc,d as ln}from"./chunk-RHMULF56.js";import{b as wc}from"./chunk-UOFDKMRU.js";import{b as pt,c as Md,d as si}from"./chunk-AN525SPP.js";import{k as yr}from"./chunk-BGMAWETL.js";import{A as mi,C as lc,F as mc,G as fc,I as Lt,K as Gn,b as Ul,c as zl,e as kr,f as md,p as Tn,r as gd,t as hd,u as wd,w as Td,x as Pd,y as Bd,z as Vn}from"./chunk-6I5AUTVO.js";import{f as fd}from"./chunk-DKOVZ6R2.js";import{a as yc}from"./chunk-N73MU2C3.js";import{E as sc,F as ic,I as pi,N as an,O as ac,c as Wd,d as Ir,e as Rr,f as xr,g as Jn,h as Ud,j as tc,k as ui,l as nc,q as rc}from"./chunk-WZ35ICTE.js";import{a as Ld}from"./chunk-DMFUEUAZ.js";import{a as Pr,d as oc,e as Cr}from"./chunk-GF55VEMR.js";import{a as cc,b as uc,d as pc}from"./chunk-FAKDGLZQ.js";import{c as vc}from"./chunk-GW766ZSO.js";import{c as mo,e as dc,f as fo}from"./chunk-VJYOKU3C.js";import{a as bd}from"./chunk-7KWD2I6W.js";import{a as oi,c as pd,i as Kn}from"./chunk-2ACX7IW5.js";import{B as Ll}from"./chunk-OFJPOTES.js";import{d as ri,k as Od}from"./chunk-PLROXHG2.js";import{B as Ed,b as Z,j as Cd,s as _d,t as Ad}from"./chunk-YU3C6U5V.js";import{h as fi}from"./chunk-PHZZBXDO.js";import{a as co}from"./chunk-KVTBX2UP.js";import{a as Y,b as se,d as L}from"./chunk-U7D6Q744.js";import{$ as wr,Ec as vr,Gc as ni,Hc as ud,Jb as br,K as td,M as Xs,Mb as id,Nb as Zs,Ob as ad,P as Dt,Pb as ld,Sb as zn,T as nd,Tb as vt,Ub as dd,c as Yl,d as Zl,g as ed,ha as od,ia as ge,ib as Ys,ja as sn,jc as ei,kc as lo,lc as cd,ma as rd,na as ct,oc as ti,pc as ut,qa as Qs,ra as sd,u as rn}from"./chunk-HG2YFMVU.js";import{a as Fl,c as ql,g as $l,h as Hl,k as Bs,m as Dl,n as Ws}from"./chunk-OQPJ7FJF.js";import{df as Ql}from"./chunk-VEBW7NKD.js";import{A as Vl,D as Gs,E as Jl,F as Gl,G as Xl,s as Ks,y as Js}from"./chunk-4BUM6JEC.js";import{b as hr,c as Vs}from"./chunk-SSHE6B7Z.js";import{j as Ht}from"./chunk-DXJC3QW7.js";import{G as zs}from"./chunk-OKKNDQJF.js";import{X as Kl,x as gr}from"./chunk-ZY32SZ2P.js";import{c as fr,e as jl,m as Us,n as Bl,o as Wl}from"./chunk-KUE46HTH.js";import{C as Tl,E as Al,F as El,c as io,e as ml,f as ar,fa as Ol,ha as Ml,ia as Nl,v as ur,x as pr}from"./chunk-SV7ZBEK2.js";import{A as kl,B as Rn,C as xn,E as lr,I as Ls,J as Sl,L as Il,O as dr,V as Rl,W as cr,X as ao,Z as xl,c as hl,f as wl,h as bl,j as vl,w as yl,y as et,z as ye}from"./chunk-2MEOUS24.js";import{e as fl,f as gl}from"./chunk-HNQPEOJD.js";import{l as Ds,m as In,n as Ue}from"./chunk-RCT3O3HQ.js";import{b as ul,c as Un,e as pl,f as on,h as Sn,i as Hs,r as Pl,s as Cl,t as mr,u as _l}from"./chunk-UGOK7VTC.js";import{A as P}from"./chunk-X2J2P5ZT.js";import{a as r}from"./chunk-FTQLQJQV.js";function Ic(e){let t,n,o=new Set;function s(i){if(n)return Promise.reject(new Error("Runtime service is closing"));t??=Promise.resolve().then(e);let a=t.then(l=>{if(n)throw new Error("Runtime service is closing");return i(l)});return o.add(a),a.then(()=>o.delete(a),()=>o.delete(a)),a}return r(s,"use"),{use:s,methods(i){return Object.fromEntries(i.map(a=>[a,(...l)=>s(u=>u[a].apply(u,l))]))},close(){return n??=Promise.resolve().then(async()=>{try{await(await t?.catch(()=>{}))?.close()}finally{await Promise.allSettled([...o])}})}}}r(Ic,"lazyRuntimeService");function xc(e){let t=Hg();for(let n of e)t.accept(n);return t.values()}r(xc,"activeFileOutputRefs");function Hg(e=Number.POSITIVE_INFINITY){let t=new Map,n=new Set;function o(s){let i=Pn(s.data);if(t.size+n.size+i.length>e)throw new Error("remote_output_reference_limit");if(s.action==="work_output_delete"&&s.status==="completed"){for(let a of i){let l=Rc(a);n.add(l),t.delete(l)}return}if(s.action!=="work_output_read")for(let a of i){let l=Rc(a);n.has(l)||t.set(l,a)}}return r(o,"accept"),{accept:o,values:r(()=>[...t.values()],"values")}}r(Hg,"createOutputReferenceAccumulator");function Rc(e){return`${e.sourceTaskId}:${e.id}:${e.revision}`}r(Rc,"fileOutputRevisionKey");function Pn(e,t=0){if(t>8||e==null)return[];let n=sn.safeParse(e);if(n.success)return[n.data];if(Array.isArray(e))return e.flatMap(s=>Pn(s,t+1));let o=Dg(e);return Object.values(o).flatMap(s=>Pn(s,t+1))}r(Pn,"fileOutputRefs");function Dg(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}r(Dg,"asRecord");import{createHash as ho,randomUUID as Cc}from"node:crypto";import{promises as nt}from"node:fs";import Ie from"node:path";function go(e){return!!(e.experience==="work"&&!e.workspaceKind&&!e.localProjectId&&!e.cloudProjectId&&e.metadata?.workspaceTarget==="local"&&e.cwd)}r(go,"isManagedLocalWorkSession");function pS(e){let t=Ie.join(e.storeDir,"work","outputs"),n=e.sandboxRequest??yr;async function o(m){let w=_r(m.suggestedName);if(m.bytes.byteLength>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let C=Qs[Ie.extname(w).toLowerCase()];if(!C)throw new Error(`${w} is not an advertised Work output format. Save it as a supported file type or keep it in scratch space.`);let S=Ug({bytes:m.bytes,contentType:C,title:w,supplied:m.validation,policy:m.validationPolicy}),R=await Tc({runtimeEventsForSession:e.runtimeEventsForSession,sessionId:m.session.id,title:w,...e.managedPersistence?{firstId:`hosted-${ho("sha256").update(`${m.session.id}\0${w}`).digest("hex")}`}:{}});if(e.managedPersistence){let b=await e.managedPersistence.sourceTurnStartedAt(m.session.id,m.sourceTurnId),f={id:R.id,title:w,contentType:C,sizeBytes:m.bytes.byteLength,sha256:ho("sha256").update(m.bytes).digest("hex"),sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:R.revision,createdAt:new Date(b).toISOString(),validation:S};return e.managedPersistence.save({sessionId:m.session.id,turnId:m.sourceTurnId,identity:f,bytes:m.bytes})}let g=Ie.join(t,Ar(m.session.id));await nt.mkdir(g,{recursive:!0,mode:448});let d=Ie.join(g,`${String(R.revision).padStart(3,"0")}-${Ar(R.id)}-${w}`),k=Ie.join(g,`.${Ie.basename(d)}.${Cc()}.tmp`);await nt.writeFile(k,m.bytes,{mode:384,flag:"wx"});try{await nt.rename(k,d)}catch(b){throw await nt.rm(k,{force:!0}),b}return{outputRef:sn.parse({kind:"file",id:R.id,title:w,contentType:C,sizeBytes:m.bytes.byteLength,sha256:ho("sha256").update(m.bytes).digest("hex"),sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:R.revision,createdAt:new Date().toISOString(),location:{kind:"local",path:d,deviceId:e.deviceId},validation:S}),artifact:{artifactRef:d,path:d,title:w,contentType:C,sizeBytes:m.bytes.byteLength}}}r(o,"persistWorkOutputBytes");async function s(m){if(m.session.experience!=="work")throw new Error("Only Work tasks can save Work outputs.");if(m.session.workspaceKind!=="sandbox"||!m.session.workspaceId)throw new Error("A running Work sandbox is required to save an output.");let w=Jg(m.sandboxPath),C=Xn(await n({type:"download_file",sandboxId:m.session.workspaceId,payload:{path:w,maxBytes:ct}})),S=Xn(C.file);if(S.truncated===!0)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let R=typeof S.contentsBase64=="string"?S.contentsBase64:"";if(!R)throw new Error("Sandbox output download did not return file contents.");let g=Buffer.from(R,"base64"),d=Pc(S.totalSizeBytes)??Pc(S.sizeBytes);if(g.byteLength>ct||d!==null&&d>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);if(d!==null&&g.byteLength!==d)throw new Error("Sandbox output download was incomplete.");return o({session:m.session,sourceTurnId:m.sourceTurnId,suggestedName:m.suggestedName||Ie.posix.basename(w),bytes:g,validation:m.validation??[],validationPolicy:m.validationPolicy??"strict"})}r(s,"saveWorkOutput");async function i(m){if(!go(m.session)||!m.session.cwd)throw new Error("A managed local Work task is required to save a local output.");let w=await nt.realpath(m.session.cwd),C=Ie.isAbsolute(m.localPath)?Ie.resolve(m.localPath):Ie.resolve(w,m.localPath),S=await nt.realpath(C);if(!_c(w,S))throw new Error("Local Work outputs must stay inside the managed task workspace.");let R=await nt.stat(S);if(!R.isFile())throw new Error("A local Work output must be a file.");if(R.size>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let g=await nt.readFile(S);return o({session:m.session,sourceTurnId:m.sourceTurnId,suggestedName:m.suggestedName??Ie.basename(S),bytes:g,validation:[],validationPolicy:"preserve"})}r(i,"saveLocalWorkOutput");async function a(m){if(go(m.session))return l(m);if(m.session.experience!=="work"||m.session.workspaceKind!=="sandbox"||!m.session.workspaceId)return[];let w=Xn(await n({type:"list_files",sandboxId:m.session.workspaceId,payload:{path:"outputs",recursive:!0,maxEntries:500}})),C=Array.isArray(w.files)?w.files:[],S=await e.runtimeEventsForSession(m.session.id),R=new Set(Pn(S).filter(d=>d.sourceTurnId===m.sourceTurnId).map(d=>d.title)),g=[];for(let d of C){let k=Xn(d);if(k.type!=="file"||typeof k.path!="string")continue;let v=k.path.replace(/^\/workspace\//,""),b=_r(Ie.posix.basename(v));if(!R.has(b)){if(e.managedPersistence){let f=await Tc({runtimeEventsForSession:e.runtimeEventsForSession,sessionId:m.session.id,title:b,firstId:`hosted-${ho("sha256").update(`${m.session.id}\0${b}`).digest("hex")}`}),_=await e.managedPersistence.sourceTurnStartedAt(m.session.id,m.sourceTurnId);g.push(await e.managedPersistence.saveSandboxFile({sessionId:m.session.id,turnId:m.sourceTurnId,identity:{id:f.id,title:b,sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:f.revision,createdAt:new Date(_).toISOString(),validation:[]},sandboxPath:v}))}else g.push(await s({session:m.session,sourceTurnId:m.sourceTurnId,sandboxPath:v,suggestedName:b,validationPolicy:"preserve"}));R.add(b)}}return g}r(a,"saveAllWorkOutputs");async function l(m){if(!m.session.cwd)return[];let w=await e.runtimeEventsForSession(m.session.id),C=w.filter(d=>d.turnId===m.sourceTurnId&&d.name==="assistant.delta"&&typeof d.output=="string").map(d=>d.output??"").join(""),S=await Lg({assistantText:C,workspaceRoot:m.session.cwd,declaredPaths:m.session.metadata?.profileEvaluationRun!==void 0?P.array(Kl).max(1e3).parse(m.session.metadata.profileEvaluationOutputs??[]).map(d=>d.path):[]}),R=new Set(Pn(w).filter(d=>d.sourceTurnId===m.sourceTurnId).map(d=>d.title)),g=[];for(let d of S){let k=_r(Ie.basename(d));R.has(k)||(g.push(await i({session:m.session,sourceTurnId:m.sourceTurnId,localPath:d,suggestedName:k})),R.add(k))}return g}r(l,"saveReferencedLocalWorkOutputs");async function u(m){if(m.experience!=="work")return[];let w=await e.runtimeEventsForSession(m.id),C=new Map;for(let S of Pn(w)){if(S.location.kind!=="local")continue;let R=C.get(S.title);(!R||S.revision>R.revision)&&C.set(S.title,S)}return[...C.values()].map(S=>({localPath:S.location.kind==="local"?S.location.path:"",storageName:`${Ar(S.id)}-${_r(S.title)}`,sha256:S.sha256,sizeBytes:S.sizeBytes}))}r(u,"workInputsForSession");async function c(m){let w=await Promise.all(m.filter(C=>C.experience==="work").map(async C=>xc(await e.runtimeEventsForSession(C.id))));return rd.parse({outputs:w.flat().sort((C,S)=>S.createdAt.localeCompare(C.createdAt))})}r(c,"listWorkOutputs");async function h(m){if(m.session.experience!=="work")throw new Error("Only Work tasks can access Work outputs.");let w=m.outputId.trim();if(!w)throw new Error("A Work output id is required.");let C=await e.runtimeEventsForSession(m.session.id),S=bi(C,w,m.revision);if(!S)throw new Error("Work output not found.");return p(m.session,S)}r(h,"resolveLocalOutput");function p(m,w){if(m.experience!=="work"||w.sourceTaskId!==m.id||w.location.kind!=="local")throw new Error("This Work output is not stored on this device.");let C=Ie.resolve(t,Ar(m.id)),S=Ie.resolve(w.location.path);if(S===C||!S.startsWith(`${C}${Ie.sep}`))throw new Error("Work output path is outside managed local storage.");return{outputRef:w,target:S}}r(p,"localOutputTarget");async function y(m){let{outputRef:w,target:C}=await h(m),S=await nt.rm(C).then(()=>!0).catch(R=>{if(R.code==="ENOENT")return!1;throw R});return{outputRef:w,deleted:S}}r(y,"deleteWorkOutput");async function x(m){let{outputRef:w}=await h(m);return T(m.session,w)}r(x,"readWorkOutput");async function T(m,w){let{target:C}=p(m,w),S=await nt.stat(C);if(S.size>ct||S.size!==w.sizeBytes)throw new Error("The saved Work output no longer matches its OutputRef.");let R=await nt.readFile(C);if(R.byteLength>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let g=ho("sha256").update(R).digest("hex");if(R.byteLength!==w.sizeBytes||g!==w.sha256)throw new Error("The saved Work output no longer matches its OutputRef.");return{outputRef:w,contentsBase64:R.toString("base64")}}return r(T,"readQualifiedWorkOutput"),{outputRoot:t,deleteWorkOutput:y,listWorkOutputs:c,readWorkOutput:x,readQualifiedWorkOutput:T,saveAllWorkOutputs:a,saveLocalWorkOutput:i,saveOwnedOutputBytes:o,saveWorkOutput:s,workInputsForSession:u}}r(pS,"createWorkOutputService");async function Lg(e){let t=await nt.realpath(e.workspaceRoot),n=new Set;for(let o of[...e.declaredPaths??[],...Bg(e.assistantText)]){let s=Wg(o);if(!s)continue;let i=Ie.isAbsolute(s)?Ie.resolve(s):Ie.resolve(t,s),a;try{if(a=await nt.realpath(i),!(await nt.stat(a)).isFile())continue}catch{continue}if(_c(t,a)&&Qs[Ie.extname(a).toLowerCase()]&&(n.add(a),n.size>=100))break}return[...n]}r(Lg,"resolveReferencedLocalFiles");function Bg(e){let t=[];for(let n=0;n<e.length;n+=1){let o=e[n]==="!"?n+1:n;if(e[o]!=="[")continue;let s=e.indexOf("]",o+1);if(s<0||e[s+1]!=="(")continue;let i=s+2;if(e[i]==="<"){let l=e.indexOf(">",i+1);l>=0&&e[l+1]===")"&&(t.push(e.slice(i+1,l)),n=l+1);continue}let a=0;for(let l=i;l<e.length;l+=1){let u=e[l];if(u==="\\"){l+=1;continue}if(u==="("){a+=1;continue}if(u!==")")continue;if(a>0){a-=1;continue}let c=e.slice(i,l).trim();c&&t.push(c),n=l;break}}return t}r(Bg,"markdownLinkTargets");function Wg(e){let t=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(!t||/^(?:https?|data|mailto):/i.test(t))return null;if(t=t.replace(/^(?:workspace|sandbox):file:/i,""),/^file:\/\//i.test(t))try{t=decodeURIComponent(new URL(t).pathname)}catch{t=t.replace(/^file:\/\//i,"")}else try{t=decodeURIComponent(t)}catch{}return t.replace(/:\d+(?::\d+)?$/,"")}r(Wg,"normalizeLocalFileReference");function _c(e,t){let n=Ie.relative(e,t);return n!==""&&n!==".."&&!n.startsWith(`..${Ie.sep}`)&&!Ie.isAbsolute(n)}r(_c,"isPathInside");function Ug(e){let t=sd(e.contentType);if(!t)return e.supplied;let n=zg(e);if(n.status!=="passed")throw new Error(`Work output failed structural validation: ${n.detail}`);let o=[n,...e.supplied],s=t.validation.flatMap(i=>i==="visual"?["visual"]:i==="playback"||i==="browser"?["test"]:[]);for(let i of s)if(!o.some(a=>a.kind===i&&a.status==="passed")){if(e.policy==="strict")throw new Error(`${e.title} requires passed ${i} validation evidence before it can be saved as a completed Work output.`);o.push({kind:i,status:"not_run",label:`${e.title} ${i} validation was not run before automatic preservation`,detail:"The file was preserved automatically at turn completion; review this revision before relying on presentation or playback quality."})}return o}r(Ug,"validateWorkOutput");function zg(e){let t=Kg(e.bytes,e.contentType);return{kind:"structural",status:t?"passed":"failed",label:`Validated ${e.title} structure`,detail:t?`Content matches ${e.contentType}.`:`Content does not match ${e.contentType}.`}}r(zg,"structuralValidation");function Kg(e,t){if(e.byteLength===0)return!1;if(t.startsWith("text/")||t==="application/json"||t==="image/svg+xml"){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{return!1}if(t==="application/json")try{JSON.parse(n)}catch{return!1}return t==="text/html"?/<(?:!doctype\s+html|html|body)\b/i.test(n):t==="image/svg+xml"?/<svg\b/i.test(n):n.trim().length>0}if(t==="application/pdf")return e.subarray(0,5).toString("ascii")==="%PDF-"&&e.subarray(Math.max(0,e.byteLength-1024)).toString("ascii").includes("%%EOF");if(t.includes("wordprocessingml")||t.includes("spreadsheetml")||t.includes("presentationml")){let n=Vg(e),o=t.includes("wordprocessingml")?"word/document.xml":t.includes("spreadsheetml")?"xl/workbook.xml":"ppt/presentation.xml";return n.has("[Content_Types].xml")&&n.has("_rels/.rels")&&n.has(o)}return t==="image/png"?e.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])):t==="image/jpeg"?e[0]===255&&e[1]===216:t==="image/gif"?e.subarray(0,4).toString("ascii")==="GIF8":t==="image/webp"?e.subarray(0,4).toString("ascii")==="RIFF"&&e.subarray(8,12).toString("ascii")==="WEBP":t==="image/avif"?e.subarray(4,12).toString("ascii").includes("ftyp"):t==="audio/wav"?e.subarray(0,4).toString("ascii")==="RIFF"&&e.subarray(8,12).toString("ascii")==="WAVE":t==="audio/mpeg"?e.subarray(0,3).toString("ascii")==="ID3"||e[0]===255&&(e[1]&224)===224:t==="audio/mp4"||t==="video/mp4"||t==="video/quicktime"?e.subarray(4,12).toString("ascii").includes("ftyp"):t==="video/webm"?e.subarray(0,4).equals(Buffer.from([26,69,223,163])):!0}r(Kg,"structuralContentMatches");function Vg(e){let t=new Set;for(let n=0;n+46<=e.byteLength;){if(e.readUInt32LE(n)!==33639248){n+=1;continue}let o=e.readUInt16LE(n+28),s=e.readUInt16LE(n+30),i=e.readUInt16LE(n+32),a=n+46+o+s+i;if(a>e.byteLength)return new Set;let l=e.subarray(n+46,n+46+o).toString("utf8").replaceAll("\\","/").replace(/^\/+/,"");l&&t.add(l),n=a}return t}r(Vg,"zipCentralDirectoryEntries");function Jg(e){let t=e.trim().replaceAll("\\","/");if(!t||t.startsWith("/"))throw new Error("Work output path must be relative to /workspace.");let n=Ie.posix.normalize(t);if(n==="."||n===".."||n.startsWith("../")||!n.startsWith("outputs/")||n==="outputs/")throw new Error("Completed Work outputs must be inside /workspace/outputs.");return n}r(Jg,"normalizeOutputCandidatePath");async function Tc(e){let t=await e.runtimeEventsForSession(e.sessionId),n=null;for(let o of t){let s=wi(o.data);s?.kind!=="file"||s.title!==e.title||(!n||s.revision>n.revision)&&(n=s)}return{id:n?.id??e.firstId??Cc(),revision:(n?.revision??0)+1}}r(Tc,"nextOutputIdentity");function wi(e,t=0){if(t>6||e==null)return null;let n=sn.safeParse(e);if(n.success)return n.data;if(Array.isArray(e)){for(let s of e){let i=wi(s,t+1);if(i)return i}return null}let o=Xn(e);for(let s of Object.values(o)){let i=wi(s,t+1);if(i)return i}return null}r(wi,"findOutputRef");function bi(e,t,n,o=0){if(o>8||e==null)return null;let s=sn.safeParse(e);if(s.success&&s.data.id===t&&(n==null||s.data.revision===n))return s.data;if(Array.isArray(e)){let l=null;for(let u of e){let c=bi(u,t,n,o+1);c&&(!l||c.revision>l.revision)&&(l=c)}return l}let i=Xn(e),a=null;for(let l of Object.values(i)){let u=bi(l,t,n,o+1);u&&(!a||u.revision>a.revision)&&(a=u)}return a}r(bi,"findOutputRefById");function _r(e){let n=Ie.basename(e.trim()).replace(/[^a-zA-Z0-9._ -]+/g,"-").replace(/\s+/g," ").trim().slice(0,180);if(!n||n==="."||n==="..")throw new Error("A valid output file name is required.");return n}r(_r,"safeOutputName");function Ar(e){return e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,100)||"item"}r(Ar,"safePathSegment");function Xn(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}r(Xn,"asRecord");function Pc(e){return typeof e=="number"&&Number.isFinite(e)?e:null}r(Pc,"numberValue");import{promises as Er}from"node:fs";import Gg from"node:path";async function Ac(e,t,n=Date.now()){let o=[];for(let i of await Er.readdir(e,{withFileTypes:!0})){if(!i.isFile()||!/\.log(?:\.\d+)?$/.test(i.name))continue;let a=Gg.join(e,i.name),l=await Er.lstat(a).catch(u=>{if(u.code==="ENOENT")return null;throw u});l?.isFile()&&o.push({file:a,size:l.size,modified:l.mtimeMs})}let s=o.reduce((i,a)=>i+a.size,0);for(let i of o.sort((a,l)=>a.modified-l.modified)){if(i.file===t||i.modified>=n-14*864e5&&s<=256*1024*1024)continue;let a=await Er.lstat(i.file).catch(()=>null);a?.isFile()&&a.size===i.size&&a.mtimeMs===i.modified&&(await Er.rm(i.file,{force:!0}),s-=i.size)}}r(Ac,"pruneLogs");import{promises as wo}from"node:fs";import Xg from"node:path";var Ec=1024*1024,Qg=5,vi=/authorization|api[_-]?key|token|session[_-]?token|secret|password/i,Yg=/Bearer\s+[A-Za-z0-9._~+/-]+=*/gi,Zg=/\b(?:https?|wss?):\/\/[^\s"'<>]+/gi;function eh(e){return{name:e.name,message:e.message,stack:e.stack}}r(eh,"serializeError");function Or(e){if(e instanceof Error)return Or(eh(e));if(typeof e=="string")return th(e);if(Array.isArray(e))return e.map(n=>Or(n));if(!e||typeof e!="object")return e;let t={};for(let[n,o]of Object.entries(e))t[n]=vi.test(n)?"[REDACTED]":Or(o);return t}r(Or,"redact");async function Oc(e,t){try{await wo.rm(t,{force:!0}),await wo.rename(e,t)}catch(n){if(n.code!=="ENOENT")throw n}}r(Oc,"renameIfExists");function th(e){return e.replace(Yg,"Bearer [REDACTED]").replace(Zg,t=>nh(t))}r(th,"redactString");function nh(e){let{url:t,suffix:n}=oh(e);try{let o=new URL(t);return(o.username||o.password)&&(o.username="[REDACTED]",o.password="[REDACTED]"),Mc(o.searchParams),o.hash&&(o.hash=rh(o.hash.slice(1))),`${o.toString()}${n}`}catch{return e}}r(nh,"redactUrl");function oh(e){let t=e,n="";for(;/[),.;!?]$/.test(t);)n=`${t.slice(-1)}${n}`,t=t.slice(0,-1);return{url:t,suffix:n}}r(oh,"splitUrlSuffix");function Mc(e){for(let t of Array.from(e.keys()))vi.test(t)&&e.set(t,"[REDACTED]")}r(Mc,"redactSearchParams");function rh(e){if(!e.includes("="))return vi.test(e)?"[REDACTED]":e;let t=new URLSearchParams(e.startsWith("?")?e.slice(1):e);return Mc(t),t.toString()}r(rh,"redactHash");function SS(e){let t=e.maxBytes??Ec,n=e.maxFiles??Qg,o=Xg.join(e.logDir,e.filename??`${e.channel}.log`),s=Promise.resolve(),i=0;async function a(u){let c=0;try{c=(await wo.stat(o)).size}catch(h){if(h.code!=="ENOENT")throw h}if(!(c+u<=t)){for(let h=n-1;h>=1;h-=1)await Oc(`${o}.${h}`,`${o}.${h+1}`);await Oc(o,`${o}.1`)}}r(a,"rotateIfNeeded");function l(u,c,h={}){let p={ts:new Date().toISOString(),level:u,channel:e.channel,message:c,pid:process.pid,platform:process.platform,...e.metadata??{},...h},y=`${JSON.stringify(Or(p))}
|
|
2
|
+
import{a as gc,b as hc,c as gi,d as hi}from"./chunk-MWPMYCYB.js";import{A as Kd,B as Vd,C as po,D as Jd,E as di,F as Gd,G as Xd,H as Qd,I as Yd,J as Zd,K as ec,L as ci,N as bc,d as vd,e as yd,f as kd,g as Sd,h as Id,i as Rd,j as xd,k as Sr,l as ii,m as ai,n as Nd,o as jd,p as Fd,q as li,r as qd,s as $d,t as Hd,u as Dd,w as Tr,y as zd,z as uo}from"./chunk-JALL5NPH.js";import{a as kc,b as yt,c as Sc,d as ln}from"./chunk-RHMULF56.js";import{b as wc}from"./chunk-UOFDKMRU.js";import{b as pt,c as Md,d as si}from"./chunk-AN525SPP.js";import{k as yr}from"./chunk-DNRC6TPJ.js";import{A as mi,C as lc,F as mc,G as fc,I as Lt,K as Gn,b as Ul,c as zl,e as kr,f as md,p as Tn,r as gd,t as hd,u as wd,w as Td,x as Pd,y as Bd,z as Vn}from"./chunk-6I5AUTVO.js";import{f as fd}from"./chunk-BQNU4HZW.js";import{a as yc}from"./chunk-N73MU2C3.js";import{E as sc,F as ic,I as pi,N as an,O as ac,c as Wd,d as Ir,e as Rr,f as xr,g as Jn,h as Ud,j as tc,k as ui,l as nc,q as rc}from"./chunk-RWBP2H4M.js";import{a as Ld}from"./chunk-DMFUEUAZ.js";import{a as Pr,d as oc,e as Cr}from"./chunk-GF55VEMR.js";import{a as cc,b as uc,d as pc}from"./chunk-FAKDGLZQ.js";import{c as vc}from"./chunk-GW766ZSO.js";import{c as mo,e as dc,f as fo}from"./chunk-6OD2FKUS.js";import{a as bd}from"./chunk-7KWD2I6W.js";import{a as oi,c as pd,i as Kn}from"./chunk-2ACX7IW5.js";import{B as Ll}from"./chunk-OFJPOTES.js";import{d as ri,k as Od}from"./chunk-ATI52WMB.js";import{B as Ed,b as Z,j as Cd,s as _d,t as Ad}from"./chunk-YU3C6U5V.js";import{h as fi}from"./chunk-MQMMJKOZ.js";import{a as co}from"./chunk-KVTBX2UP.js";import{a as Y,b as se,d as L}from"./chunk-L5L3H6CI.js";import{$ as wr,Ec as vr,Gc as ni,Hc as ud,Jb as br,K as td,M as Xs,Mb as id,Nb as Zs,Ob as ad,P as Dt,Pb as ld,Sb as zn,T as nd,Tb as vt,Ub as dd,c as Yl,d as Zl,g as ed,ha as od,ia as ge,ib as Ys,ja as sn,jc as ei,kc as lo,lc as cd,ma as rd,na as ct,oc as ti,pc as ut,qa as Qs,ra as sd,u as rn}from"./chunk-2THZ6GZY.js";import{a as Fl,c as ql,g as $l,h as Hl,k as Bs,m as Dl,n as Ws}from"./chunk-OQPJ7FJF.js";import{ef as Ql}from"./chunk-2Q2AWPP2.js";import{A as Vl,D as Gs,E as Jl,F as Gl,G as Xl,s as Ks,y as Js}from"./chunk-4JKWCLTQ.js";import{b as hr,c as Vs}from"./chunk-AITV76GO.js";import{j as Ht}from"./chunk-3VT2PPKW.js";import{G as zs}from"./chunk-OKKNDQJF.js";import{X as Kl,x as gr}from"./chunk-ZY32SZ2P.js";import{c as fr,e as jl,m as Us,n as Bl,o as Wl}from"./chunk-KUE46HTH.js";import{C as Tl,E as Al,F as El,c as io,e as ml,f as ar,fa as Ol,ha as Ml,ia as Nl,v as ur,x as pr}from"./chunk-SV7ZBEK2.js";import{A as kl,B as Rn,C as xn,E as lr,I as Ls,J as Sl,L as Il,O as dr,V as Rl,W as cr,X as ao,Z as xl,c as hl,f as wl,h as bl,j as vl,w as yl,y as et,z as ye}from"./chunk-2MEOUS24.js";import{e as fl,f as gl}from"./chunk-HNQPEOJD.js";import{l as Ds,m as In,n as Ue}from"./chunk-RCT3O3HQ.js";import{b as ul,c as Un,e as pl,f as on,h as Sn,i as Hs,r as Pl,s as Cl,t as mr,u as _l}from"./chunk-UGOK7VTC.js";import{A as P}from"./chunk-X2J2P5ZT.js";import{a as r}from"./chunk-FTQLQJQV.js";function Ic(e){let t,n,o=new Set;function s(i){if(n)return Promise.reject(new Error("Runtime service is closing"));t??=Promise.resolve().then(e);let a=t.then(l=>{if(n)throw new Error("Runtime service is closing");return i(l)});return o.add(a),a.then(()=>o.delete(a),()=>o.delete(a)),a}return r(s,"use"),{use:s,methods(i){return Object.fromEntries(i.map(a=>[a,(...l)=>s(u=>u[a].apply(u,l))]))},close(){return n??=Promise.resolve().then(async()=>{try{await(await t?.catch(()=>{}))?.close()}finally{await Promise.allSettled([...o])}})}}}r(Ic,"lazyRuntimeService");function xc(e){let t=Hg();for(let n of e)t.accept(n);return t.values()}r(xc,"activeFileOutputRefs");function Hg(e=Number.POSITIVE_INFINITY){let t=new Map,n=new Set;function o(s){let i=Pn(s.data);if(t.size+n.size+i.length>e)throw new Error("remote_output_reference_limit");if(s.action==="work_output_delete"&&s.status==="completed"){for(let a of i){let l=Rc(a);n.add(l),t.delete(l)}return}if(s.action!=="work_output_read")for(let a of i){let l=Rc(a);n.has(l)||t.set(l,a)}}return r(o,"accept"),{accept:o,values:r(()=>[...t.values()],"values")}}r(Hg,"createOutputReferenceAccumulator");function Rc(e){return`${e.sourceTaskId}:${e.id}:${e.revision}`}r(Rc,"fileOutputRevisionKey");function Pn(e,t=0){if(t>8||e==null)return[];let n=sn.safeParse(e);if(n.success)return[n.data];if(Array.isArray(e))return e.flatMap(s=>Pn(s,t+1));let o=Dg(e);return Object.values(o).flatMap(s=>Pn(s,t+1))}r(Pn,"fileOutputRefs");function Dg(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}r(Dg,"asRecord");import{createHash as ho,randomUUID as Cc}from"node:crypto";import{promises as nt}from"node:fs";import Ie from"node:path";function go(e){return!!(e.experience==="work"&&!e.workspaceKind&&!e.localProjectId&&!e.cloudProjectId&&e.metadata?.workspaceTarget==="local"&&e.cwd)}r(go,"isManagedLocalWorkSession");function pS(e){let t=Ie.join(e.storeDir,"work","outputs"),n=e.sandboxRequest??yr;async function o(m){let w=_r(m.suggestedName);if(m.bytes.byteLength>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let C=Qs[Ie.extname(w).toLowerCase()];if(!C)throw new Error(`${w} is not an advertised Work output format. Save it as a supported file type or keep it in scratch space.`);let S=Ug({bytes:m.bytes,contentType:C,title:w,supplied:m.validation,policy:m.validationPolicy}),R=await Tc({runtimeEventsForSession:e.runtimeEventsForSession,sessionId:m.session.id,title:w,...e.managedPersistence?{firstId:`hosted-${ho("sha256").update(`${m.session.id}\0${w}`).digest("hex")}`}:{}});if(e.managedPersistence){let b=await e.managedPersistence.sourceTurnStartedAt(m.session.id,m.sourceTurnId),f={id:R.id,title:w,contentType:C,sizeBytes:m.bytes.byteLength,sha256:ho("sha256").update(m.bytes).digest("hex"),sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:R.revision,createdAt:new Date(b).toISOString(),validation:S};return e.managedPersistence.save({sessionId:m.session.id,turnId:m.sourceTurnId,identity:f,bytes:m.bytes})}let g=Ie.join(t,Ar(m.session.id));await nt.mkdir(g,{recursive:!0,mode:448});let d=Ie.join(g,`${String(R.revision).padStart(3,"0")}-${Ar(R.id)}-${w}`),k=Ie.join(g,`.${Ie.basename(d)}.${Cc()}.tmp`);await nt.writeFile(k,m.bytes,{mode:384,flag:"wx"});try{await nt.rename(k,d)}catch(b){throw await nt.rm(k,{force:!0}),b}return{outputRef:sn.parse({kind:"file",id:R.id,title:w,contentType:C,sizeBytes:m.bytes.byteLength,sha256:ho("sha256").update(m.bytes).digest("hex"),sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:R.revision,createdAt:new Date().toISOString(),location:{kind:"local",path:d,deviceId:e.deviceId},validation:S}),artifact:{artifactRef:d,path:d,title:w,contentType:C,sizeBytes:m.bytes.byteLength}}}r(o,"persistWorkOutputBytes");async function s(m){if(m.session.experience!=="work")throw new Error("Only Work tasks can save Work outputs.");if(m.session.workspaceKind!=="sandbox"||!m.session.workspaceId)throw new Error("A running Work sandbox is required to save an output.");let w=Jg(m.sandboxPath),C=Xn(await n({type:"download_file",sandboxId:m.session.workspaceId,payload:{path:w,maxBytes:ct}})),S=Xn(C.file);if(S.truncated===!0)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let R=typeof S.contentsBase64=="string"?S.contentsBase64:"";if(!R)throw new Error("Sandbox output download did not return file contents.");let g=Buffer.from(R,"base64"),d=Pc(S.totalSizeBytes)??Pc(S.sizeBytes);if(g.byteLength>ct||d!==null&&d>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);if(d!==null&&g.byteLength!==d)throw new Error("Sandbox output download was incomplete.");return o({session:m.session,sourceTurnId:m.sourceTurnId,suggestedName:m.suggestedName||Ie.posix.basename(w),bytes:g,validation:m.validation??[],validationPolicy:m.validationPolicy??"strict"})}r(s,"saveWorkOutput");async function i(m){if(!go(m.session)||!m.session.cwd)throw new Error("A managed local Work task is required to save a local output.");let w=await nt.realpath(m.session.cwd),C=Ie.isAbsolute(m.localPath)?Ie.resolve(m.localPath):Ie.resolve(w,m.localPath),S=await nt.realpath(C);if(!_c(w,S))throw new Error("Local Work outputs must stay inside the managed task workspace.");let R=await nt.stat(S);if(!R.isFile())throw new Error("A local Work output must be a file.");if(R.size>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let g=await nt.readFile(S);return o({session:m.session,sourceTurnId:m.sourceTurnId,suggestedName:m.suggestedName??Ie.basename(S),bytes:g,validation:[],validationPolicy:"preserve"})}r(i,"saveLocalWorkOutput");async function a(m){if(go(m.session))return l(m);if(m.session.experience!=="work"||m.session.workspaceKind!=="sandbox"||!m.session.workspaceId)return[];let w=Xn(await n({type:"list_files",sandboxId:m.session.workspaceId,payload:{path:"outputs",recursive:!0,maxEntries:500}})),C=Array.isArray(w.files)?w.files:[],S=await e.runtimeEventsForSession(m.session.id),R=new Set(Pn(S).filter(d=>d.sourceTurnId===m.sourceTurnId).map(d=>d.title)),g=[];for(let d of C){let k=Xn(d);if(k.type!=="file"||typeof k.path!="string")continue;let v=k.path.replace(/^\/workspace\//,""),b=_r(Ie.posix.basename(v));if(!R.has(b)){if(e.managedPersistence){let f=await Tc({runtimeEventsForSession:e.runtimeEventsForSession,sessionId:m.session.id,title:b,firstId:`hosted-${ho("sha256").update(`${m.session.id}\0${b}`).digest("hex")}`}),_=await e.managedPersistence.sourceTurnStartedAt(m.session.id,m.sourceTurnId);g.push(await e.managedPersistence.saveSandboxFile({sessionId:m.session.id,turnId:m.sourceTurnId,identity:{id:f.id,title:b,sourceTaskId:m.session.id,sourceTurnId:m.sourceTurnId,revision:f.revision,createdAt:new Date(_).toISOString(),validation:[]},sandboxPath:v}))}else g.push(await s({session:m.session,sourceTurnId:m.sourceTurnId,sandboxPath:v,suggestedName:b,validationPolicy:"preserve"}));R.add(b)}}return g}r(a,"saveAllWorkOutputs");async function l(m){if(!m.session.cwd)return[];let w=await e.runtimeEventsForSession(m.session.id),C=w.filter(d=>d.turnId===m.sourceTurnId&&d.name==="assistant.delta"&&typeof d.output=="string").map(d=>d.output??"").join(""),S=await Lg({assistantText:C,workspaceRoot:m.session.cwd,declaredPaths:m.session.metadata?.profileEvaluationRun!==void 0?P.array(Kl).max(1e3).parse(m.session.metadata.profileEvaluationOutputs??[]).map(d=>d.path):[]}),R=new Set(Pn(w).filter(d=>d.sourceTurnId===m.sourceTurnId).map(d=>d.title)),g=[];for(let d of S){let k=_r(Ie.basename(d));R.has(k)||(g.push(await i({session:m.session,sourceTurnId:m.sourceTurnId,localPath:d,suggestedName:k})),R.add(k))}return g}r(l,"saveReferencedLocalWorkOutputs");async function u(m){if(m.experience!=="work")return[];let w=await e.runtimeEventsForSession(m.id),C=new Map;for(let S of Pn(w)){if(S.location.kind!=="local")continue;let R=C.get(S.title);(!R||S.revision>R.revision)&&C.set(S.title,S)}return[...C.values()].map(S=>({localPath:S.location.kind==="local"?S.location.path:"",storageName:`${Ar(S.id)}-${_r(S.title)}`,sha256:S.sha256,sizeBytes:S.sizeBytes}))}r(u,"workInputsForSession");async function c(m){let w=await Promise.all(m.filter(C=>C.experience==="work").map(async C=>xc(await e.runtimeEventsForSession(C.id))));return rd.parse({outputs:w.flat().sort((C,S)=>S.createdAt.localeCompare(C.createdAt))})}r(c,"listWorkOutputs");async function h(m){if(m.session.experience!=="work")throw new Error("Only Work tasks can access Work outputs.");let w=m.outputId.trim();if(!w)throw new Error("A Work output id is required.");let C=await e.runtimeEventsForSession(m.session.id),S=bi(C,w,m.revision);if(!S)throw new Error("Work output not found.");return p(m.session,S)}r(h,"resolveLocalOutput");function p(m,w){if(m.experience!=="work"||w.sourceTaskId!==m.id||w.location.kind!=="local")throw new Error("This Work output is not stored on this device.");let C=Ie.resolve(t,Ar(m.id)),S=Ie.resolve(w.location.path);if(S===C||!S.startsWith(`${C}${Ie.sep}`))throw new Error("Work output path is outside managed local storage.");return{outputRef:w,target:S}}r(p,"localOutputTarget");async function y(m){let{outputRef:w,target:C}=await h(m),S=await nt.rm(C).then(()=>!0).catch(R=>{if(R.code==="ENOENT")return!1;throw R});return{outputRef:w,deleted:S}}r(y,"deleteWorkOutput");async function x(m){let{outputRef:w}=await h(m);return T(m.session,w)}r(x,"readWorkOutput");async function T(m,w){let{target:C}=p(m,w),S=await nt.stat(C);if(S.size>ct||S.size!==w.sizeBytes)throw new Error("The saved Work output no longer matches its OutputRef.");let R=await nt.readFile(C);if(R.byteLength>ct)throw new Error(`Work output exceeds the ${ct.toLocaleString()} byte limit.`);let g=ho("sha256").update(R).digest("hex");if(R.byteLength!==w.sizeBytes||g!==w.sha256)throw new Error("The saved Work output no longer matches its OutputRef.");return{outputRef:w,contentsBase64:R.toString("base64")}}return r(T,"readQualifiedWorkOutput"),{outputRoot:t,deleteWorkOutput:y,listWorkOutputs:c,readWorkOutput:x,readQualifiedWorkOutput:T,saveAllWorkOutputs:a,saveLocalWorkOutput:i,saveOwnedOutputBytes:o,saveWorkOutput:s,workInputsForSession:u}}r(pS,"createWorkOutputService");async function Lg(e){let t=await nt.realpath(e.workspaceRoot),n=new Set;for(let o of[...e.declaredPaths??[],...Bg(e.assistantText)]){let s=Wg(o);if(!s)continue;let i=Ie.isAbsolute(s)?Ie.resolve(s):Ie.resolve(t,s),a;try{if(a=await nt.realpath(i),!(await nt.stat(a)).isFile())continue}catch{continue}if(_c(t,a)&&Qs[Ie.extname(a).toLowerCase()]&&(n.add(a),n.size>=100))break}return[...n]}r(Lg,"resolveReferencedLocalFiles");function Bg(e){let t=[];for(let n=0;n<e.length;n+=1){let o=e[n]==="!"?n+1:n;if(e[o]!=="[")continue;let s=e.indexOf("]",o+1);if(s<0||e[s+1]!=="(")continue;let i=s+2;if(e[i]==="<"){let l=e.indexOf(">",i+1);l>=0&&e[l+1]===")"&&(t.push(e.slice(i+1,l)),n=l+1);continue}let a=0;for(let l=i;l<e.length;l+=1){let u=e[l];if(u==="\\"){l+=1;continue}if(u==="("){a+=1;continue}if(u!==")")continue;if(a>0){a-=1;continue}let c=e.slice(i,l).trim();c&&t.push(c),n=l;break}}return t}r(Bg,"markdownLinkTargets");function Wg(e){let t=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(!t||/^(?:https?|data|mailto):/i.test(t))return null;if(t=t.replace(/^(?:workspace|sandbox):file:/i,""),/^file:\/\//i.test(t))try{t=decodeURIComponent(new URL(t).pathname)}catch{t=t.replace(/^file:\/\//i,"")}else try{t=decodeURIComponent(t)}catch{}return t.replace(/:\d+(?::\d+)?$/,"")}r(Wg,"normalizeLocalFileReference");function _c(e,t){let n=Ie.relative(e,t);return n!==""&&n!==".."&&!n.startsWith(`..${Ie.sep}`)&&!Ie.isAbsolute(n)}r(_c,"isPathInside");function Ug(e){let t=sd(e.contentType);if(!t)return e.supplied;let n=zg(e);if(n.status!=="passed")throw new Error(`Work output failed structural validation: ${n.detail}`);let o=[n,...e.supplied],s=t.validation.flatMap(i=>i==="visual"?["visual"]:i==="playback"||i==="browser"?["test"]:[]);for(let i of s)if(!o.some(a=>a.kind===i&&a.status==="passed")){if(e.policy==="strict")throw new Error(`${e.title} requires passed ${i} validation evidence before it can be saved as a completed Work output.`);o.push({kind:i,status:"not_run",label:`${e.title} ${i} validation was not run before automatic preservation`,detail:"The file was preserved automatically at turn completion; review this revision before relying on presentation or playback quality."})}return o}r(Ug,"validateWorkOutput");function zg(e){let t=Kg(e.bytes,e.contentType);return{kind:"structural",status:t?"passed":"failed",label:`Validated ${e.title} structure`,detail:t?`Content matches ${e.contentType}.`:`Content does not match ${e.contentType}.`}}r(zg,"structuralValidation");function Kg(e,t){if(e.byteLength===0)return!1;if(t.startsWith("text/")||t==="application/json"||t==="image/svg+xml"){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{return!1}if(t==="application/json")try{JSON.parse(n)}catch{return!1}return t==="text/html"?/<(?:!doctype\s+html|html|body)\b/i.test(n):t==="image/svg+xml"?/<svg\b/i.test(n):n.trim().length>0}if(t==="application/pdf")return e.subarray(0,5).toString("ascii")==="%PDF-"&&e.subarray(Math.max(0,e.byteLength-1024)).toString("ascii").includes("%%EOF");if(t.includes("wordprocessingml")||t.includes("spreadsheetml")||t.includes("presentationml")){let n=Vg(e),o=t.includes("wordprocessingml")?"word/document.xml":t.includes("spreadsheetml")?"xl/workbook.xml":"ppt/presentation.xml";return n.has("[Content_Types].xml")&&n.has("_rels/.rels")&&n.has(o)}return t==="image/png"?e.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])):t==="image/jpeg"?e[0]===255&&e[1]===216:t==="image/gif"?e.subarray(0,4).toString("ascii")==="GIF8":t==="image/webp"?e.subarray(0,4).toString("ascii")==="RIFF"&&e.subarray(8,12).toString("ascii")==="WEBP":t==="image/avif"?e.subarray(4,12).toString("ascii").includes("ftyp"):t==="audio/wav"?e.subarray(0,4).toString("ascii")==="RIFF"&&e.subarray(8,12).toString("ascii")==="WAVE":t==="audio/mpeg"?e.subarray(0,3).toString("ascii")==="ID3"||e[0]===255&&(e[1]&224)===224:t==="audio/mp4"||t==="video/mp4"||t==="video/quicktime"?e.subarray(4,12).toString("ascii").includes("ftyp"):t==="video/webm"?e.subarray(0,4).equals(Buffer.from([26,69,223,163])):!0}r(Kg,"structuralContentMatches");function Vg(e){let t=new Set;for(let n=0;n+46<=e.byteLength;){if(e.readUInt32LE(n)!==33639248){n+=1;continue}let o=e.readUInt16LE(n+28),s=e.readUInt16LE(n+30),i=e.readUInt16LE(n+32),a=n+46+o+s+i;if(a>e.byteLength)return new Set;let l=e.subarray(n+46,n+46+o).toString("utf8").replaceAll("\\","/").replace(/^\/+/,"");l&&t.add(l),n=a}return t}r(Vg,"zipCentralDirectoryEntries");function Jg(e){let t=e.trim().replaceAll("\\","/");if(!t||t.startsWith("/"))throw new Error("Work output path must be relative to /workspace.");let n=Ie.posix.normalize(t);if(n==="."||n===".."||n.startsWith("../")||!n.startsWith("outputs/")||n==="outputs/")throw new Error("Completed Work outputs must be inside /workspace/outputs.");return n}r(Jg,"normalizeOutputCandidatePath");async function Tc(e){let t=await e.runtimeEventsForSession(e.sessionId),n=null;for(let o of t){let s=wi(o.data);s?.kind!=="file"||s.title!==e.title||(!n||s.revision>n.revision)&&(n=s)}return{id:n?.id??e.firstId??Cc(),revision:(n?.revision??0)+1}}r(Tc,"nextOutputIdentity");function wi(e,t=0){if(t>6||e==null)return null;let n=sn.safeParse(e);if(n.success)return n.data;if(Array.isArray(e)){for(let s of e){let i=wi(s,t+1);if(i)return i}return null}let o=Xn(e);for(let s of Object.values(o)){let i=wi(s,t+1);if(i)return i}return null}r(wi,"findOutputRef");function bi(e,t,n,o=0){if(o>8||e==null)return null;let s=sn.safeParse(e);if(s.success&&s.data.id===t&&(n==null||s.data.revision===n))return s.data;if(Array.isArray(e)){let l=null;for(let u of e){let c=bi(u,t,n,o+1);c&&(!l||c.revision>l.revision)&&(l=c)}return l}let i=Xn(e),a=null;for(let l of Object.values(i)){let u=bi(l,t,n,o+1);u&&(!a||u.revision>a.revision)&&(a=u)}return a}r(bi,"findOutputRefById");function _r(e){let n=Ie.basename(e.trim()).replace(/[^a-zA-Z0-9._ -]+/g,"-").replace(/\s+/g," ").trim().slice(0,180);if(!n||n==="."||n==="..")throw new Error("A valid output file name is required.");return n}r(_r,"safeOutputName");function Ar(e){return e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,100)||"item"}r(Ar,"safePathSegment");function Xn(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}r(Xn,"asRecord");function Pc(e){return typeof e=="number"&&Number.isFinite(e)?e:null}r(Pc,"numberValue");import{promises as Er}from"node:fs";import Gg from"node:path";async function Ac(e,t,n=Date.now()){let o=[];for(let i of await Er.readdir(e,{withFileTypes:!0})){if(!i.isFile()||!/\.log(?:\.\d+)?$/.test(i.name))continue;let a=Gg.join(e,i.name),l=await Er.lstat(a).catch(u=>{if(u.code==="ENOENT")return null;throw u});l?.isFile()&&o.push({file:a,size:l.size,modified:l.mtimeMs})}let s=o.reduce((i,a)=>i+a.size,0);for(let i of o.sort((a,l)=>a.modified-l.modified)){if(i.file===t||i.modified>=n-14*864e5&&s<=256*1024*1024)continue;let a=await Er.lstat(i.file).catch(()=>null);a?.isFile()&&a.size===i.size&&a.mtimeMs===i.modified&&(await Er.rm(i.file,{force:!0}),s-=i.size)}}r(Ac,"pruneLogs");import{promises as wo}from"node:fs";import Xg from"node:path";var Ec=1024*1024,Qg=5,vi=/authorization|api[_-]?key|token|session[_-]?token|secret|password/i,Yg=/Bearer\s+[A-Za-z0-9._~+/-]+=*/gi,Zg=/\b(?:https?|wss?):\/\/[^\s"'<>]+/gi;function eh(e){return{name:e.name,message:e.message,stack:e.stack}}r(eh,"serializeError");function Or(e){if(e instanceof Error)return Or(eh(e));if(typeof e=="string")return th(e);if(Array.isArray(e))return e.map(n=>Or(n));if(!e||typeof e!="object")return e;let t={};for(let[n,o]of Object.entries(e))t[n]=vi.test(n)?"[REDACTED]":Or(o);return t}r(Or,"redact");async function Oc(e,t){try{await wo.rm(t,{force:!0}),await wo.rename(e,t)}catch(n){if(n.code!=="ENOENT")throw n}}r(Oc,"renameIfExists");function th(e){return e.replace(Yg,"Bearer [REDACTED]").replace(Zg,t=>nh(t))}r(th,"redactString");function nh(e){let{url:t,suffix:n}=oh(e);try{let o=new URL(t);return(o.username||o.password)&&(o.username="[REDACTED]",o.password="[REDACTED]"),Mc(o.searchParams),o.hash&&(o.hash=rh(o.hash.slice(1))),`${o.toString()}${n}`}catch{return e}}r(nh,"redactUrl");function oh(e){let t=e,n="";for(;/[),.;!?]$/.test(t);)n=`${t.slice(-1)}${n}`,t=t.slice(0,-1);return{url:t,suffix:n}}r(oh,"splitUrlSuffix");function Mc(e){for(let t of Array.from(e.keys()))vi.test(t)&&e.set(t,"[REDACTED]")}r(Mc,"redactSearchParams");function rh(e){if(!e.includes("="))return vi.test(e)?"[REDACTED]":e;let t=new URLSearchParams(e.startsWith("?")?e.slice(1):e);return Mc(t),t.toString()}r(rh,"redactHash");function SS(e){let t=e.maxBytes??Ec,n=e.maxFiles??Qg,o=Xg.join(e.logDir,e.filename??`${e.channel}.log`),s=Promise.resolve(),i=0;async function a(u){let c=0;try{c=(await wo.stat(o)).size}catch(h){if(h.code!=="ENOENT")throw h}if(!(c+u<=t)){for(let h=n-1;h>=1;h-=1)await Oc(`${o}.${h}`,`${o}.${h+1}`);await Oc(o,`${o}.1`)}}r(a,"rotateIfNeeded");function l(u,c,h={}){let p={ts:new Date().toISOString(),level:u,channel:e.channel,message:c,pid:process.pid,platform:process.platform,...e.metadata??{},...h},y=`${JSON.stringify(Or(p))}
|
|
3
3
|
`;Buffer.byteLength(y)>Math.max(Ec,t)&&(y=`${JSON.stringify({ts:p.ts,level:u,channel:e.channel,message:"Oversized log record omitted",originalBytes:Buffer.byteLength(y)})}
|
|
4
4
|
`),s=s.then(async()=>{await wo.mkdir(e.logDir,{recursive:!0}),await a(Buffer.byteLength(y,"utf8")),await wo.appendFile(o,y,{encoding:"utf8",mode:384}),Date.now()-i>=6e4&&(await Ac(e.logDir,o),i=Date.now())}).catch(x=>{console.error("OpenPond logger failed",x)})}return r(l,"write"),{debug:r((u,c)=>l("debug",u,c),"debug"),info:r((u,c)=>l("info",u,c),"info"),warn:r((u,c)=>l("warn",u,c),"warn"),error:r((u,c)=>l("error",u,c),"error"),flush:r(()=>s,"flush"),filePath:o}}r(SS,"createLogger");function yi(e){let t=e.environment??process.env;if(e.provider!=="openpond"||e.model!==t.OPENPOND_HOSTED_MODEL_ID?.trim())return null;let n=t.OPENPOND_HOSTED_MODEL_CONTEXT_WINDOW,o=t.OPENPOND_HOSTED_MODEL_OUTPUT_LIMIT;if(n===void 0&&o===void 0)return null;let s=r(i=>{if(i===void 0)return null;let a=Number(i);if(!/^\d+$/.test(i)||!Number.isSafeInteger(a)||a<=0)throw new Error("Hosted admitted model limit is invalid.");return a},"parse");return{contextWindow:s(n),outputLimit:s(o)}}r(yi,"admittedHostedModelLimits");var qc=4,sh=128e3,ih=8e3,Nc=8192,jc=1024;function Mr(e){return e==="openpond"?e:null}r(Mr,"hostedContextProvider");function Nr(e,t){let o=t.trim().toLowerCase().match(/(?:^|[-_])(\d+)\s*k(?:[-_]|$)/);return o?.[1]?Number.parseInt(o[1],10)*1e3:sh}r(Nr,"hostedContextLimit");function bo(e){let t=Math.min(ih,Math.ceil(e*.25)),n=Math.min(e-1,Math.max(t,Math.ceil(e*.08)));return Math.max(1,e-n)}r(bo,"usableHostedContextLimit");function dn(e){let t=e.model?.trim();if(!t)return null;let n=yi({provider:e.provider,model:t});if(n?.contextWindow)return n.contextWindow;let s=e.settings?.modelCaches[e.provider]?.models.find(a=>a.id===t);if(s?.contextWindow)return s.contextWindow;let i=Mr(e.provider);return i?Nr(i,t):null}r(dn,"trustedProviderContextLimit");function Si(e){let t=e.model?.trim();if(!t)return null;let n=yi({provider:e.provider,model:t});return n?.outputLimit?n.outputLimit:e.settings?.modelCaches[e.provider]?.models.find(s=>s.id===t)?.outputLimit??null}r(Si,"trustedProviderOutputLimit");function jr(e){let t=e.reduce((n,o)=>n+o.role.length+(o.name?.length??0)+(o.content?.length??0)+8,0);return Math.max(1,Math.ceil(t/qc)+e.length*4)}r(jr,"estimateHostedMessageTokens");function Fr(e){let t=ch(e.provider,e.model);if(!t)return{tokens:jr(e.messages),source:"heuristic",modelFamily:null};let n=e.messages.reduce((o,s)=>o+4+ki(s.role,t)+ki(s.name??"",t)+ki(s.content??"",t),1);return{tokens:Math.max(1,n),source:"model_family",modelFamily:t}}r(Fr,"estimateHostedMessageTokensForProvider");function Qn(e){let t=e.maxContextTokens?Math.max(256,Math.floor(e.maxContextTokens/8)):Nc,n=e.modelOutputLimit&&e.modelOutputLimit>0?Math.floor(e.modelOutputLimit):Number.MAX_SAFE_INTEGER;return Math.max(1,Math.min(e.requestedOutputTokens??Nc,t,n))}r(Qn,"hostedRequestedOutputTokens");function Cn(e){let t=e.maxContextTokens??null,n=Fr({provider:e.provider,model:e.model,messages:e.messages}),o=n.tokens,s=Fc(e.tools??[]),i=Fc(e.messages.flatMap(u=>{let c={};return u.continuation!==void 0&&(c.continuation=u.continuation),u.tool_calls!==void 0&&(c.tool_calls=u.tool_calls),u.tool_call_id!==void 0&&(c.tool_call_id=u.tool_call_id),Object.keys(c).length>0?[c]:[]})),a=Math.max(1,Math.floor(e.maxOutputTokens)),l=ah(e.provider,t);return{messageTokens:o,toolDefinitionTokens:s,continuationTokens:i,outputAllowanceTokens:a,safetyReserveTokens:l,projectedTokens:o+s+i+a+l,maxContextTokens:t,tokenSource:n.source,tokenModelFamily:n.modelFamily}}r(Cn,"estimateHostedRequestBudget");function Fc(e){if(Array.isArray(e)&&e.length===0)return 0;let t=JSON.stringify(e);return!t||t==="[]"||t==="{}"?0:Math.max(1,Math.ceil(t.length/qc))}r(Fc,"estimatedSerializedTokens");function ah(e,t){return t?Math.min(Math.max(1,Math.floor(t/8)),Math.max(jc,Math.ceil(t*.02))):jc*2}r(ah,"requestSafetyReserveTokens");function lh(e,t){if(!e||typeof e!="object")return null;let n=e;for(let o of t){let s=n[o];if(typeof s=="number"&&Number.isFinite(s)&&s>=0)return Math.round(s)}return null}r(lh,"numericUsageValue");function dh(e,t){let n=bd(e),o=n.promptTokens,s=n.completionTokens,i=lh(e,["total_tokens","totalTokens"]);return t?i!==null?i:o!==null&&s!==null?o+s:null:o??i}r(dh,"tokenCountFromUsage");function $c(e){let t=e.usage===void 0?null:dh(e.usage,!!e.includeCompletion),n=Fr({provider:e.provider,model:e.model,messages:e.messages}),o=t??n.tokens,s=e.maxContextTokens??dn({provider:e.provider,model:e.model});if(!s)throw new Error(`Cannot create context usage snapshot without a trusted context limit for ${e.provider}.`);let i=Math.min(100,Math.round(o/s*100));return dr.parse({provider:e.provider,model:e.model,usedTokens:o,maxContextTokens:s,usableContextTokens:bo(s),percentFull:i,source:t===null?n.source:"provider_usage",updatedAtEventId:e.updatedAtEventId})}r($c,"createContextUsageSnapshot");function ch(e,t){let n=`${e}/${t??""}`.toLowerCase();return/\b(?:gpt|o[1-9]|codex)\b/.test(n)?"openai_cl100k":n.includes("claude")||e==="anthropic"?"anthropic_claude":n.includes("deepseek")||n.includes("kimi")||n.includes("glm")?"multilingual_code":null}r(ch,"modelTokenFamily");function ki(e,t){if(!e)return 0;let n=[...e].filter(i=>/[\u3000-\u9fff\uf900-\ufaff]/u.test(i)).length,o=Math.max(0,e.length-n);return Math.max(1,n+Math.ceil(o/(t==="anthropic_claude"?3.85:t==="multilingual_code"?3.65:3.75)))}r(ki,"estimateModelFamilyTextTokens");import{randomUUID as uh}from"node:crypto";import{promises as Dc}from"node:fs";import qr from"node:path";var Hc=8e3;function Ii(e,t){if(!/^custom:[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid custom personality identifier.");return qr.join(Sn(e).instructions,"personalities",`${t.slice(7)}.md`)}r(Ii,"personalityPath");function Ri(e,t){if(e.trim().length>Hc)throw new Un({code:"INVALID_INSTRUCTIONS",path:t??"personalization",message:`Personality text exceeds ${Hc} characters.`,action:"Shorten the personality text before using it."});return e.trim()}r(Ri,"validateText");async function ph(e){let t=qr.join(Sn(e).instructions,"personalities"),n=await Dc.readdir(t,{withFileTypes:!0}).catch(s=>{if(pl(s))return[];throw s}),o=[...ao];for(let s of n.sort((i,a)=>i.name.localeCompare(a.name))){if(!s.isFile()||!/^[a-zA-Z0-9_-]+\.md$/.test(s.name))continue;let i=qr.join(t,s.name),a=await io(i);a!==null&&o.push({id:`custom:${s.name.slice(0,-3)}`,name:s.name.slice(0,-3).replace(/[-_]+/g," "),source:"custom",description:"",content:Ri(a,i)})}return o}r(ph,"templatesWithFiles");async function mh(e,t){let{document:n}=await ur(t),o=await ph(t),s=n.personalization?.active??`builtin:${cr}`,i=s.startsWith("builtin:")?s.slice(8):s,a=o.find(u=>u.id===i);if(!a)throw new Un({code:"MISSING_PERSONALITY",path:s.startsWith("custom:")?Ii(t,s):Sn(t).config,message:`Selected personality ${s} is unavailable.`,action:"Restore its Markdown file or select an available personality in Settings."});let l=s.startsWith("custom:")?Ii(t,s):null;return xl.parse({activeTemplateId:i,customized:a.source==="custom",soul:n.personalization?.mode==="disabled"?"":a.content,soulPath:l,updatedAt:l?(await Dc.stat(l)).mtime.toISOString():null,templates:o})}r(mh,"loadPersonalizationSettings");async function qS(e,t,n){return await ar(qr.join(Sn(t).runtime,"personalization"),async()=>{let o=Ri(n.soul),s=ao.find(a=>a.id===n.activeTemplateId),i;if(!n.saveAsNew&&s&&o===s.content.trim())i=`builtin:${s.id}`;else{let a=n.templateName.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,56)||"custom";i=!n.saveAsNew&&n.activeTemplateId.startsWith("custom:")?n.activeTemplateId:`custom:${a}-${uh().slice(0,8)}`,await ml(Ii(t,i),`${o}
|
|
5
5
|
`)}await pr(t,a=>({...a,personalization:{...a.personalization,active:i}}))}),mh(e,t)}r(qS,"savePersonalizationSettings");function Lc(e,t){return[Ri(e),t.trim()].filter(Boolean).join(`
|
|
@@ -132,7 +132,7 @@ ${i}`,kind:"followup",reportingOnly:!0,idempotencyKey:`review:${o.turnId}:${o.ca
|
|
|
132
132
|
|
|
133
133
|
`)}r(Ss,"completionBody");var qk=2e4;function Ef(e){let t=e.requireSubagentDeps,n=e.sendTurn,o=e.getTurn,s=e.getPersistedRun,i=e.upsertPersistedRun,a=e.notifyRunStateChanged,l=e.latestTurnForSession,u=e.appendSubagentReceipt,c=e.subagentRuntimeDerivedProgress,h=e.subagentUsageAttribution,p=e.subagentUsageTotalsForRun,y=e.captureSubagentWorkspaceHandoff,x=e.applySubagentPatch,T=e.appendWorkspaceDiffEvent,m=e.uniqueSubagentRefs,w=e.notifyParentOfSubagentCompletion,C=e.commitCompletion,S={latestAssistantTextForSession:e.latestAssistantTextForSession},R=r(v=>new Promise(b=>setTimeout(b,v)),"delay");async function g(v){let b=t(),f=await b.getRun(v.run.id);if(f&&f.status!=="queued")return;let _=Y(),I=ye.parse({...f??v.run,status:"running",startedAt:_,progress:et.parse({...(f??v.run).progress??{},phase:"orient",latestMeaningfulActivity:"Child subagent turn started.",currentBlocker:null,updatedAt:_})});await b.upsertRun(I),await u({parentSession:v.parentSession,parentTurnId:v.parentTurnId,run:I,eventName:"subagent.started",status:"started",output:`${I.roleId} subagent is running.`}),await u({parentSession:v.parentSession,parentTurnId:v.parentTurnId,run:I,eventName:"subagent.progress",status:"pending",output:`${I.roleId} subagent is working in child conversation ${I.childSessionId??"unknown"}.`});let M=`failed_${I.id}`;try{let j=v.initialPrompt?.trim()||df({objective:v.run.objective,contextPack:v.contextPack});for(;;){let $=await d(v.childSession.id,v.run.id,{prompt:j,modelRef:v.run.modelRef??void 0,metadata:{subagentRunId:v.run.id,parentSessionId:v.parentSession.id,parentTurnId:v.parentTurnId,subagentRoleId:v.run.roleId,subagentPermissions:v.childTurnPermissions,usageAttribution:h(v.run)},usageAttribution:h(v.run),approvalPolicy:v.childTurnPermissions.approvalPolicy,sandbox:v.childTurnPermissions.sandbox,codexPermissionMode:v.childTurnPermissions.codexPermissionMode,codexReasoningEffort:v.childTurnPermissions.codexReasoningEffort},v.reservedTurnId),W=await k($);M=W.id;let U=await s(I.id);if(U?.status==="cancelled")return;if(I=U??I,W.status!=="completed")throw new Error(W.error||`Child turn ended with status ${W.status}.`);break}let N=Y(),q=await S.latestAssistantTextForSession(v.childSession.id),V=await p(v.run.id),B=await c({run:I,childSessionId:v.childSession.id,phase:"report",latestMeaningfulActivity:"Child conversation completed."}),z=await y(I),E=ve([...B.changedFiles,...z?.changedFiles??[]]),F=null;if(I=ye.parse({...I,status:"completed",completedAt:N,error:null,report:{summary:tt(q||"Child conversation completed.",qk),findings:[],artifacts:z?.artifacts??[],patchRef:z?.patchRef??null,diffRef:z?.diffRef??null,testsRun:B.validationAttempts.map($=>$.command),blockers:[],confidence:null,followUpNeeded:!1},progress:et.parse({...B,phase:"report",changedFiles:E,patchRefs:m([...B.patchRefs,z?.patchRef??null,z?.diffRef??null]),latestMeaningfulActivity:"Child conversation completed.",currentBlocker:null,updatedAt:N}),metadata:{...I.metadata,usage:V,...z?{workspaceHandoff:z.metadata}:{}}}),await i(I),z?.changed&&z.metadata.patchPath)try{let $=await x(I);$&&(I=ye.parse({...I,metadata:{...I.metadata,workspaceHandoff:{...z.metadata,applyResult:$}}}),await T(v.parentSession,v.parentTurnId).catch(()=>{}))}catch($){F=se($)||"Unable to apply the isolated child patch.",I=ye.parse({...I,status:"failed",error:F,report:{...I.report,blockers:[F],followUpNeeded:!0},progress:et.parse({...I.progress,latestMeaningfulActivity:"Child completed, but its isolated patch could not be integrated.",currentBlocker:F,updatedAt:Y()})})}await C(I,M),await u({parentSession:v.parentSession,parentTurnId:v.parentTurnId,run:I,eventName:F?"subagent.failed":"subagent.completed",status:F?"failed":"completed",output:F?`${I.roleId} child completed but integration failed: ${F}`:`${I.roleId} child completed.`}),await w({run:I,parentSession:v.parentSession,childSession:v.childSession,childTurnId:M,body:Ss(I),refs:m([...I.report?.artifacts??[],I.report?.patchRef??null,I.report?.diffRef??null])}),a?.(I)}catch(j){let N=await s(I.id).catch(()=>null);if(N&&N.status!=="running")return;let q=se(j)||"Subagent failed.",V=Y(),B=await y(I).catch(()=>null),z=!!(B?.changed||B?.artifacts.length),E=await c({run:I,childSessionId:v.childSession.id,phase:"report",latestMeaningfulActivity:z?"Child failed after producing recoverable artifacts.":"Child failed before producing a final report.",currentBlocker:q}),F=E.validationAttempts??[],$=ve([q,...E.currentBlocker?[E.currentBlocker]:[]]),W=ve([...E.changedFiles??[],...B?.changedFiles??[]]),U={summary:z?"Child conversation failed after producing recoverable artifacts.":"Child conversation failed before producing a final report.",findings:[],artifacts:B?.artifacts??[],patchRef:B?.patchRef??null,diffRef:B?.diffRef??null,testsRun:ve(F.map(te=>te.command)),blockers:$,confidence:"low",followUpNeeded:!0},J=et.parse({...E,phase:"report",changedFiles:W,patchRefs:m([...E.patchRefs??[],B?.patchRef??null,B?.diffRef??null]),latestMeaningfulActivity:z?"Child failed after producing recoverable artifacts.":"Child failed before producing a final report.",currentBlocker:q,updatedAt:V});I=ye.parse({...I,status:"failed",completedAt:V,error:q,report:U,progress:J,metadata:{...I.metadata??{},...B?{workspaceHandoff:B.metadata}:{}}}),await C(I,M),await u({parentSession:v.parentSession,parentTurnId:v.parentTurnId,run:I,eventName:"subagent.failed",status:"failed",output:z?`${I.roleId} subagent failed after producing recoverable artifacts: ${q}`:`${I.roleId} subagent failed: ${q}`}),await w({run:I,parentSession:v.parentSession,childSession:v.childSession,childTurnId:M,body:Ss(I),refs:m([...U.artifacts,U.patchRef,U.diffRef])}),a?.(I)}}r(g,"runSubagentChildTurn");async function d(v,b,f,_){let I=await l(v);return await new Promise((M,j)=>{let N=!1,q=null,V=r(E=>N||E.status==="in_progress"?!1:(N=!0,M(E),!0),"settleWithTurn"),B=r(E=>{N||(N=!0,j(E))},"fail");n(v,f,_).then(E=>{q=E.id,V(E)},B),r(async()=>{for(;!N;){let E=await l(v);if(N)return;let F=!!(E&&E.metadata?.subagentRunId===b&&(E.id!==I?.id||E.id===q));if(E&&F&&V(E))return;await R(250)}},"pollDurableTurn")().catch(B)})}r(d,"sendManagedSubagentTurn");async function k(v){let b=await Promise.race([l(v.sessionId),R(25).then(()=>null)]);if(b?.id===v.id&&b.status!=="in_progress")return b;if(v.status!=="in_progress")return v;let f=await o(v.id)??v;if(f.status!=="in_progress")return f;for(let _=0;_<200;_+=1)if(await R(250),f=await o(v.id)??f,f.status!=="in_progress")return f;return f}return r(k,"finalizedSubagentChildTurn"),{runSubagentChildTurn:g}}r(Ef,"createSubagentChildTurnRuntime");import{randomUUID as $k}from"node:crypto";function Of(e){let t=e.inbox,n=6e4,o=new Set,s=e.requireSubagentDeps,i=e.loadAppPreferences,a=e.getSession,l=e.appendSubagentReceipt,u=e.subagentWorkspaceTargetKeyForSession,c=e.subagentWorkspaceTargetKeyFromRun,h=e.subagentChildTurnPermissions,p=e.prepareSubagentWorkspaceIsolation,y=e.runSubagentChildTurn,x=e.subagentToolResultFromRun,T=e.subagentRoleLabel,m=e.interruptSessionTurn,w=e.cleanupSubagentRun,C=e.queueSubagentFollowupMessage,S=e.archiveSubagentChildSession,R=e.subagentLifecycleActionNextStep;async function g(I,M){if(I.session.subagentRunId)throw new Error("Child subagents cannot start additional subagents in this version.");let j=s(),N=await i();if(!N.subagents.enabled)throw new Error("Subagents are disabled in settings.");let q=N.subagents.roles.find(F=>F.id===M.roleId);if(!q?.enabled)throw new Error(`Subagent role ${M.roleId} is not enabled.`);let V=I.model?{providerId:I.provider,modelId:I.model}:null,B=q.modelRef??N.subagents.defaultModelRef??V??N.defaultChatModelRef??{providerId:N.defaultChatProvider,modelId:N.defaultChatModel},z=await u(I.session),E=q.toolPolicy!=="read_only";if(E&&o.has(z))throw new Error(`Another write-capable subagent is starting for ${z}.`);E&&o.add(z);try{let F=await j.listRuns({parentSessionId:I.session.id,status:["queued","running","needs_resume"],limit:1e3});if(F.length>=N.subagents.maxConcurrentRuns)throw new Error(`Subagent concurrency limit reached: ${F.length}/${N.subagents.maxConcurrentRuns} active child runs.`);let $=F.filter(Xe=>Xe.roleId===q.id);if($.length>=q.maxConcurrentRuns)throw new Error(`Subagent role ${q.id} concurrency limit reached: ${$.length}/${q.maxConcurrentRuns} active runs.`);let W=N.subagents.maxConcurrentRunsPerProvider;if(W!==null){let Xe=F.filter(_e=>_e.modelRef?.providerId===B.providerId);if(Xe.length>=W)throw new Error(`Subagent provider ${B.providerId} concurrency limit reached: ${Xe.length}/${W} active runs.`)}let U=N.subagents.maxConcurrentRunsPerWorkspaceTarget;if(U!==null&&E){let _e=(await j.listRuns({status:["queued","running","needs_resume"],limit:1e3})).filter(ke=>ke.toolPolicy!=="read_only"&&c(ke)===z);if(_e.length>=U)throw new Error(`Subagent workspace target concurrency limit reached: ${_e.length}/${U} active runs for ${z}.`)}let J=$k(),te=Y(),de=h(I.turnPermissions,q),ie=await p({parentSession:I.session,role:q,runId:J}),me=ie.sessionWorkspace??{},fe=M.context??null,we=lf({role:q,objective:M.objective,parentSession:I.session,contextPack:fe}),X={...G(me.metadata)??{},subagent:{runId:J,roleId:q.id,parentSessionId:I.session.id,parentTurnId:I.turnId,toolPolicy:q.toolPolicy,requestedIsolationMode:q.isolationMode,effectiveIsolationMode:ie.effectiveIsolationMode,workspace:ie.workspace,systemContext:we}},Ce=await j.createSession({experience:I.session.experience,provider:B.providerId,modelRef:B,openPondCommandAccessMode:I.session.openPondCommandAccessMode,hiddenFromDefaultSidebar:!0,parentSessionId:I.session.id,parentTurnId:I.turnId,subagentRunId:J,subagentRoleId:q.id,appId:I.session.appId,appName:I.session.appName,workspaceKind:me.workspaceKind??I.session.workspaceKind,workspaceId:me.workspaceId??I.session.workspaceId,workspaceName:me.workspaceName??I.session.workspaceName,localProjectId:me.localProjectId??I.session.localProjectId,cloudProjectId:me.cloudProjectId??I.session.cloudProjectId,cloudTeamId:me.cloudTeamId??I.session.cloudTeamId,currentProfile:I.session.currentProfile??null,cwd:ie.cwd??I.session.cwd,title:`${T(q)}: ${M.objective.slice(0,72)}`,metadata:X}),ae=ie.blocker,Fe=ye.parse({id:J,parentSessionId:I.session.id,parentTurnId:I.turnId,childSessionId:Ce.id,roleId:q.id,objective:M.objective,modelRef:B,isolationMode:q.isolationMode,toolPolicy:q.toolPolicy,background:q.background,peerMessages:q.peerMessages,status:ae?"failed":"queued",progress:et.parse({phase:ae?"report":"orient",currentBlocker:ae,latestMeaningfulActivity:ae?"Child failed before execution because isolation is unavailable.":"Child run created.",updatedAt:te}),createdAt:te,startedAt:null,completedAt:ae?te:null,error:ae,report:ae?{summary:"Child could not start because write-capable isolation is unavailable.",blockers:[ae],followUpNeeded:!0}:null,metadata:{context:fe,childTurnPermissions:de,concurrency:{providerId:B.providerId,providerMaxConcurrentRuns:W,workspaceTargetKey:z,workspaceTargetMaxConcurrentRuns:U},subagentWorkspace:ie.workspace}});return await j.upsertRun(Fe),await l({parentSession:I.session,parentTurnId:I.turnId,run:Fe,childSession:Ce,eventName:ae?"subagent.failed":"subagent.started",status:ae?"failed":"pending",output:ae?`Child ${q.id} failed to start: ${ae}`:`Started ${q.id} subagent.`}),!ae&&q.background&&j.queue.enqueue({label:`${q.id}: ${M.objective.slice(0,80)}`,metadata:{runId:J,childSessionId:Ce.id,parentSessionId:I.session.id}},()=>y({run:Fe,role:q,childSession:Ce,parentSession:I.session,parentTurnId:I.turnId,contextPack:fe,childTurnPermissions:de})),x(Fe,ae?"Open the child conversation or wait for workspace isolation support before retrying write-capable work.":"Subagent queued in its own child conversation. Continue useful parent work or wait for its completion notification.")}finally{E&&o.delete(z)}}r(g,"startSubagentFromModelTool");async function d(I,M){let j=s(),N=M.runId?[await j.getRun(M.runId)].filter(q=>!!q):await j.listRuns({parentSessionId:I.session.id,limit:50});for(let q of N)qo(I.session,q);return{runs:N.map(q=>x(q,"Subagent status loaded.")),nextStep:N.length===0?"No matching subagent runs.":`Loaded ${N.length} subagent run${N.length===1?"":"s"}.`}}r(d,"statusSubagentsFromModelTool");async function k(I,M){let j=s(),N=await j.getRun(M.runId);if(!N)throw new Error(`Subagent run ${M.runId} was not found.`);return qo(I.session,N),(M.inputId||N.status==="queued"||N.status==="running")&&N.childSessionId&&(await t.wait({sessionId:I.session.id,turnId:I.turnId,callId:I.callId,targetSessionId:N.childSessionId,targetInputId:M.inputId??void 0,timeoutMs:n,signal:I.signal}),N=await j.getRun(M.runId)??N),N.status!=="queued"&&N.status!=="running"&&(N=ye.parse({...N,metadata:{...N.metadata??{},completionConsumedByParent:{at:Y(),parentSessionId:I.session.id,parentTurnId:I.turnId,childCompletedAt:N.completedAt}}}),await j.upsertRun(N)),x(N,N.status==="completed"?"Child completed; use its final result or inspect the child conversation.":N.status==="queued"||N.status==="running"?"Child is still running. Do independent work, or wait again when blocked. Its completion report will arrive in the task inbox.":`Child ended with status ${N.status}; inspect its result before deciding the next action.`)}r(k,"joinSubagentFromModelTool");async function v(I,M){let j=s(),N=await j.getRun(M.runId);if(!N)throw new Error(`Subagent run ${M.runId} was not found.`);if(qo(I.session,N),N.status==="completed")return x(N,"Subagent already completed; no cancellation was applied.");if(N.status==="cancelled")return x(N,"Subagent was already cancelled.");let q=M.reason?.trim()||"Subagent cancelled by request.",V=Y(),B=ye.parse({...N,status:"cancelled",completedAt:V,error:q,report:{...N.report??{},summary:N.report?.summary||"Subagent cancelled before completion.",blockers:ve([...N.report?.blockers??[],q]),followUpNeeded:!1},metadata:{...N.metadata??{},cancellation:{reason:q,cancelledAt:V,requestedBySessionId:I.session.id,requestedByTurnId:I.turnId}}});await j.upsertRun(B);let z=null;if(N.childSessionId)try{let $=await m(N.childSessionId);z={status:$.status,turnId:$.id}}catch($){z={status:"not_active",error:se($)||"No active child turn to interrupt."}}let E=M.cleanupWorkspace===!1?{status:"skipped",reason:"cleanupWorkspace was false"}:null;if(M.cleanupWorkspace!==!1){let $=await w({run:B,parentSession:I.session,parentTurnId:I.turnId,reason:"cancel_requested",policy:"cancel_requested"});B=$.run,E=$.workspaceCleanup}B=ye.parse({...B,metadata:{...B.metadata??{},cancellation:{...G(B.metadata?.cancellation)??{},interruptResult:z,workspaceCleanup:E}}}),await j.upsertRun(B);let F=N.parentSessionId===I.session.id?I.session:await a(N.parentSessionId).catch(()=>I.session);return await l({parentSession:F,parentTurnId:N.parentTurnId??I.turnId,run:B,eventName:"subagent.cancelled",status:"failed",output:`${N.roleId} subagent cancelled: ${q}`}),x(B,E?.status==="removed"?"Subagent cancelled and isolated workspace cleanup completed.":"Subagent cancelled.")}r(v,"cancelSubagentFromModelTool");async function b(I,M){let N=await s().getRun(M.runId);if(!N)throw new Error(`Subagent run ${M.runId} was not found.`);if(qo(I.session,N),!N.childSessionId)throw new Error(`Subagent run ${N.id} has no child conversation.`);if(N.status==="cancelled")throw new Error(`Subagent run ${N.id} is ${N.status} and cannot receive a follow-up.`);let q=await C({context:I,run:N,body:M.message});return{...x(N,"Follow-up saved in the task inbox. Pass taskInputId as inputId when joining this assignment."),taskInputId:q.id}}r(b,"followupSubagentFromModelTool");async function f(I,M){let j=kl.parse(M),q=await s().getRun(I);if(!q)throw new Error(`Subagent run ${I} was not found.`);let V=await a(q.parentSessionId),B=j.reason??`Manual subagent ${j.action} requested.`,z=q,E=null,F=null;if(j.action==="cleanup"||j.action==="cleanup_and_archive"){let $=await w({run:z,parentSession:V,parentTurnId:z.parentTurnId??null,reason:B,policy:"manual_cleanup"});z=$.run,E=$.workspaceCleanup}if(j.action==="archive"||j.action==="cleanup_and_archive"){let $=await S({parentSession:V,parentTurnId:z.parentTurnId??null,run:z,reason:B,policy:"manual_archive"});z=$.run,F=$.sessionArchive}return{action:j.action,run:z,workspaceCleanup:E,sessionArchive:F,nextStep:R(j.action,E,F)}}r(f,"runSubagentLifecycleAction");async function _(I,M={}){let j=G(M)??{},q=await s().getRun(I);if(!q)throw new Error(`Subagent run ${I} was not found.`);let V=await a(q.parentSessionId),B=H(j,"checkedAt")??Y(),z=H(j,"reason")??`Retained subagent workspace retention expired at ${B}.`,E=await w({run:q,parentSession:V,parentTurnId:q.parentTurnId??null,reason:z,policy:"retention_expired"});return{action:"cleanup",run:E.run,workspaceCleanup:E.workspaceCleanup,sessionArchive:null,nextStep:R("cleanup",E.workspaceCleanup,null)}}return r(_,"cleanupExpiredRetainedSubagentWorkspace"),{cancelSubagentFromModelTool:v,cleanupExpiredRetainedSubagentWorkspace:_,followupSubagentFromModelTool:b,joinSubagentFromModelTool:k,runSubagentLifecycleAction:f,startSubagentFromModelTool:g,statusSubagentsFromModelTool:d}}r(Of,"createSubagentToolRuntime");function Mf(e){async function t(o){if(!o.run.childSessionId)return{run:o.run,sessionArchive:{status:"missing_child_session"}};let s;try{let l=await e.getSession(o.run.childSessionId);l.archived||await e.updateSession(l.id,{archived:!0}),s={status:l.archived?"already_archived":"archived",archivedAt:Y()}}catch(l){s={status:"failed",error:se(l)||"Failed to archive child conversation."}}let i=await e.getRun(o.run.id)??o.run,a=ye.parse({...i,metadata:{...i.metadata??{},childSessionArchive:{...s,reason:o.reason,policy:o.policy}}});return await e.upsertRun(a),await e.appendSubagentReceipt({parentSession:o.parentSession,parentTurnId:o.parentTurnId,run:a,eventName:"subagent.archived",status:s.status==="failed"?"failed":"completed",output:s.status==="failed"?`Failed to archive ${a.roleId} child conversation.`:`Archived ${a.roleId} child conversation.`}),{run:a,sessionArchive:s}}r(t,"archiveSubagentChildSession");function n(o,s,i){return o==="cleanup"?s?"Child workspace cleanup finished.":"No child workspace cleanup was needed.":o==="archive"?i?"Child conversation archive finished.":"No child conversation was available to archive.":"Child workspace cleanup and conversation archive finished."}return r(n,"subagentLifecycleActionNextStep"),{archiveSubagentChildSession:t,subagentLifecycleActionNextStep:n}}r(Mf,"createSubagentLifecycleRuntime");function Nf(e){function t(){return!!(e.createSession&&e.queue&&e.upsertRun&&e.getRun&&e.listRuns&&e.appendMessage&&e.listUsageRecords)}r(t,"available");async function n(i){if(!e.upsertRun)throw new Error("Subagent runtime dependencies are not available.");let a=await e.upsertRun(i);return e.notifyRunStateChanged?.(a),a}r(n,"upsertRunAndNotify");function o(){if(!e.createSession||!e.queue||!e.upsertRun||!e.getRun||!e.listRuns||!e.appendMessage||!e.listUsageRecords)throw new Error("Subagent runtime dependencies are not available.");return{createSession:e.createSession,queue:e.queue,upsertRun:n,getRun:e.getRun,listRuns:e.listRuns,appendMessage:e.appendMessage,listUsageRecords:e.listUsageRecords}}r(o,"requireDependencies");async function s(i){await e.appendRuntimeEvent(L({sessionId:i.parentSession.id,turnId:i.parentTurnId??void 0,name:i.eventName,source:"server",appId:i.parentSession.appId,status:i.status,output:i.output,data:{run:i.run,childSessionId:i.run.childSessionId,...i.childSession?{childSession:Hk(i.childSession)}:{}}}))}return r(s,"appendReceipt"),{appendReceipt:s,available:t,requireDependencies:o,upsertRunAndNotify:n}}r(Nf,"createSubagentRepositoryRuntime");function Hk(e){let{metadata:t,...n}=e;return n}r(Hk,"sessionShell");function jf(e,t){return{runId:e.id,childSessionId:e.childSessionId,roleId:e.roleId,status:e.status,modelRef:e.modelRef,isolationMode:e.isolationMode,toolPolicy:e.toolPolicy,background:e.background,peerMessages:e.peerMessages,progress:e.progress,report:e.report,nextStep:t}}r(jf,"subagentToolResultFromRun");function Ff(e){return e.id.slice(0,1).toUpperCase()+e.id.slice(1).replace(/[-_]+/g," ")}r(Ff,"subagentRoleLabel");function qf(e){let t=new Set,n=[];for(let o of e){if(!o)continue;let s=`${o.kind}:${o.id}`;t.has(s)||(t.add(s),n.push(o))}return n}r(qf,"uniqueSubagentRefs");function $f(e){return Dk(e)??Lk(e)}r($f,"authoringCommandRoute");function Hf(e){if(e.target.kind!=="agent"||e.operation!=="create"&&e.operation!=="improve")return null;let t=e.operation==="improve"?Lo(e.target.id??""):null;if(e.operation==="improve"&&!t)throw new Error("Agent improve requires an exact target Agent ID.");return{skillName:"openpond-agent-authoring",intent:{artifact:"agent",operation:e.operation,objective:e.objective.trim()||(e.operation==="create"?"Create a source-backed Profile Agent.":`Improve the Profile Agent ${t}.`),targetAgentId:t,source:"authoring_entry"}}}r(Hf,"authoringCommandRouteFromLegacyAgentRun");function Dk(e){let t=/^\/skill(?:\s+([\s\S]*))?$/i.exec(e.trim());if(!t)return null;let n=t[1]?.trim()??"";if(!n)return null;let[o="",...s]=n.split(/\s+/),i=o.toLowerCase();if(i==="list"||i==="help")return null;if(i==="edit"){let[u="",...c]=s,h=Lo(u.replace(/^\$/,""));if(!h)throw new Error("/skill edit requires an exact lowercase kebab-case Skill name.");return{skillName:"openpond-skill-authoring",intent:{artifact:"skill",operation:"edit",objective:c.join(" ").trim()||`Improve the Profile skill ${u||"selected by the user"}.`,targetSkillName:h,source:"slash_command"}}}let a=i==="create"?s.join(" ").trim():n,l=Bk(a);return{skillName:"openpond-skill-authoring",intent:{artifact:"skill",operation:"create",objective:l.objective||"Create a reusable Profile skill from the current conversation.",targetSkillName:l.name,source:"slash_command"}}}r(Dk,"skillAuthoringRoute");function Lk(e){let t=/^\/agent(?:\s+([\s\S]*))?$/i.exec(e.trim());if(!t)return null;let n=t[1]?.trim()??"",[o="",...s]=n.split(/\s+/),i=o.toLowerCase();if(i==="help"||i==="list")return null;if(i==="improve"||i==="edit"){let[l="",...u]=s,c=Lo(l);if(!c)throw new Error("/agent improve requires an exact lowercase kebab-case Agent ID.");return{skillName:"openpond-agent-authoring",intent:{artifact:"agent",operation:"improve",objective:u.join(" ").trim()||`Improve the Profile Agent ${l||"selected by the user"}.`,targetAgentId:c,source:"slash_command"}}}return{skillName:"openpond-agent-authoring",intent:{artifact:"agent",operation:"create",objective:(i==="create"?s.join(" ").trim():n)||"Create a source-backed Profile Agent from the current conversation.",targetAgentId:null,source:"slash_command"}}}r(Lk,"agentAuthoringRoute");function Bk(e){let t=e.trim(),n=/^--name\s+([a-z][a-z0-9-]*)\s+([\s\S]+)$/i.exec(t);if(n)return{name:Lo(n[1]??""),objective:n[2]?.trim()??""};let o=/^([a-z][a-z0-9-]*):\s*([\s\S]+)$/.exec(t);return o?{name:Lo(o[1]??""),objective:o[2]?.trim()??""}:{name:null,objective:t}}r(Bk,"splitOptionalSkillName");function Lo(e){let t=e.trim().toLowerCase();return/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(t)?t:null}r(Lo,"normalizePackageId");function zk(e,t){return t?.interactionKind!=="steer"?e:["[Steering instruction for an interrupted response]","Change the response direction immediately. Treat the instruction below as a correction to the response that was in progress, not as an unrelated new request.",e].join(`
|
|
134
134
|
|
|
135
|
-
`)}r(zk,"promptWithSteeringContext");function gj(e){let{attachmentRootDir:t,store:n,resolveCreateImproveTaskset:o,gradeCreateImproveTaskAttempt:s,upsertApproval:i,createSession:a,getSession:l,updateSession:u,completeTurn:c,failTurn:h,interruptTurn:p,defaultSessionCwd:y,findOpenPondApp:x,resolveSessionWorkspaceCwd:T,ensureCodexRuntime:m,appendWorkspaceDiffEvent:w,workspaceDiffBaseline:C,appendRuntimeEvent:S,processHarnessImprovementBoundary:R,executeWorkspaceTool:g,forkSandboxForSubagent:d,cleanupSandboxForSubagent:k,finalizeWorkTurn:v,workInputsForSession:b,executeOpenPondCommand:f,executeProfileAction:_,executeProjectAction:I,executeChatResourceAction:M,executeDatasetBuilderAction:j,loadOpenPondProfileState:N,loadOpenPondProfileStateForRef:q,readOpenPondProfileSkill:V,loadSelectedHarnessRuntime:B,ensureHarnessRunOverlay:z,loadOpenPondExtensionCatalog:E,readOpenPondExtensionSkill:F,executeProfileSkillCommand:$,executeWebSearch:W,createScheduledWork:U,executeConnectedAppTool:J,htmlVisuals:te,browserToolExecutor:de,manageSidebarFile:ie,listIntegrationConnections:me,loadPersonalizationSoul:fe,loadAppPreferences:we=r(async()=>Rl.parse({}),"loadAppPreferences"),loadProviderSettings:X,maybeCreateScaffoldForTurn:Ce,hostedSystemPrompt:ae,appendAssistantText:Fe,appendHostedContextUsage:Xe,streamLocalByokChatTurn:_e,streamOpenPondHostedChatTurn:ke=Kn,runLocalCreatePipelineChecks:Bo,planCreateImprove:Gt,turnFollowUpQueue:hn,subagentQueue:Le,notifySubagentRunStateChanged:to,maxHostedWorkspaceToolRounds:Xt,maxRepeatedInvalidToolRequests:Qt}=e,Me=e.inboxStore??n,Dn=Bm(e.storageHome??t),rt=ma(e.hostedToolFlags),Qe=new bs,pe=Nm({prepareInputAttachments:ap({storageHome:e.storageHome??t,attachmentRootDir:t}),store:Me,getSession:l,listSessions:r(()=>n.sessionShells(),"listSessions"),getTurn:r(A=>n.getTurn(A),"getTurn"),latestTurn:r(A=>n.latestTurnForSession(A),"latestTurn"),recoverInterruptedTurn:r(async(A,Q)=>{(await n.getTurn(Q))?.status==="in_progress"&&await p(await l(A),Q,"The local app server restarted before this turn finished. Pending inputs are preserved. Review completed tool activity, then resume this chat to continue.")},"recoverInterruptedTurn"),getSubagentRun:r(A=>n.getSubagentRun?n.getSubagentRun(A):Promise.resolve(null),"getSubagentRun"),getActiveTurn:r(A=>Qe.get(A),"getActiveTurn"),appendRuntimeEvent:S,startFollowup:r(async(A,Q,oe,re)=>{let be=await l(A),D=Dt.parse(Q);if(!be.subagentRunId){if(re.senderKind==="user")return Vo(A,D,oe,re.payload.remoteDevice?{beforeExecute:r(async jt=>{pi(re,jt)},"beforeExecute")}:void 0);let Ct=await n.latestTurnForSession(A),lt=re.payload.localPonderExecutionPermissions??Ct?.metadata.taskExecutionPermissions??{approvalPolicy:"on-request",sandbox:"read-only",codexPermissionMode:"default"};return Vo(A,{...D,...lt,...gn(re)||re.payload.taskReportingOnly===!0?{sandbox:"read-only",approvalPolicy:"never",codexPermissionMode:"default"}:{}},oe,re.senderKind==="ponder"?{beforeExecute:r(async jt=>{ac(re,jt),await Oa(an.parse(re.payload.ponderDesktop).operation,jt,n,Dn),pi(re,jt)},"beforeExecute")}:re.payload.localPonderHostedResult?{beforeExecute:r(async()=>{if(!e.localPonderHosted)throw new Error("local_ponder_hosted_unavailable");await e.localPonderHosted.assertCompletionScope(re.payload.localPonderHostedResult)},"beforeExecute")}:re.payload.localPonderControlRevision!==void 0?{beforeExecute:r(async()=>{await Me.assertLocalPonderInput?.(re)},"beforeExecute")}:void 0)}let ee=await Ga({session:be,request:D,requestedTurnPermissions:Ko(D)});if(!ee||ee.run.status==="cancelled")throw new Error("Child follow-up is unavailable.");let at={...ee.run,status:"queued",completedAt:null,error:null,report:null,metadata:{...ee.run.metadata,completionConsumedByParent:null}};await Pt().upsertRun(at),await Xa({run:at,role:ee.role,childSession:be,parentSession:await l(at.parentSessionId),parentTurnId:at.parentTurnId??oe,contextPack:typeof at.metadata.context=="string"?at.metadata.context:null,childTurnPermissions:ee.turnPermissions,initialPrompt:D.prompt,reservedTurnId:oe});let O=await n.getTurn(oe);if(!O)throw new Error("Child follow-up did not start.");return O},"startFollowup"),dispatchFollowup:r(async(A,Q)=>{let oe=await hn.enqueue({label:"Task inbox follow-up",metadata:{sessionId:A}},Q).done;if(oe.status==="failed")throw new Error(oe.error??"Task follow-up failed.")},"dispatchFollowup"),yieldWhileWaiting:r(A=>hn.yieldWhileWaiting(()=>Le?Le.yieldWhileWaiting(A):A()),"yieldWhileWaiting")}),xt=Km(pe,{input:r(A=>Me.getTaskInput(A),"input"),readSource:r(async(A,Q,oe,re)=>{if(await Oa(A,Q,n,Dn),!A.workflow?.source)throw new Error("The verified workflow source is not available yet.");return Dn.inspect(A.workflow.source,oe,re)},"readSource")}),ue=[...e.localPonderHosted?ep(e.localPonderHosted):[],...tp(n),...op({store:Me,inbox:pe,createSession:a,createReservedSession:e.createReservedSession,projects:e.localPonderProjects,settings:e.localPonderProviderSettings??X,getSession:l,sessions:r(()=>n.sessionShells(),"sessions"),transcript:r(async(A,Q)=>{if(!n.runtimeEventPageRows)throw new Error("local_ponder_history_unavailable");let oe=await n.runtimeEventPageRows({sessionId:A,afterSequence:0,beforeSequence:Q??Number.MAX_SAFE_INTEGER,limit:100});return{turn:await n.latestTurnForSession(A),latestAssistantText:await n.latestAssistantTextForSession(A),events:oe.entries.map(re=>re.event),nextBeforeSequence:oe.remainingMatchingEvents>oe.entries.length?oe.entries[0]?.sequence??null:null}},"transcript"),stop:r(A=>xs(A),"stop")})],Ee=Kp({listIntegrationConnections:me,appendRuntimeEvent:S}),Ae=vs({upsert:n.upsertModelUsageRecord?A=>n.upsertModelUsageRecord(A):null,appendRuntimeEvent:S});async function Ne(A){if(!(!R||!A.turn.harnessSnapshot||A.session.metadata?.standaloneExperiment!==void 0||A.session.metadata?.localProfileExperiment!==void 0||A.session.metadata?.profileEvaluationRun!==void 0))try{await R(A)}catch(Q){await S(L({sessionId:A.session.id,turnId:A.turn.id,name:"diagnostic",source:"server",appId:A.session.appId,status:"failed",output:Q instanceof Error?Q.message:String(Q),data:{phase:"harness_improvement_boundary"}})).catch(()=>{})}}r(Ne,"processHarnessImprovementBoundarySafely");async function Tt(A){return n.getTurn(A)}r(Tt,"getStoredTurn");function Yt(A){return os(rt,A)}r(Yt,"nativeToolsEnabledForProvider");function st(A){return de?.available({sessionId:A.id,conversationId:A.id})??!1}r(st,"browserControlAvailable");function wn(A){return Yt(A)&&rt.dynamicActionTools?"native_tool":Vt(rt,A)==="full_text_fallback"?"text_fallback":"none"}r(wn,"actionCatalogInstructionModeForProvider");async function it(A){await n.insertTurn(A)}r(it,"insertStoredTurn");async function Nt(A,Q){return n.updateTurn(A,Q)}r(Nt,"updateStoredTurn");let{activeInProgressTurn:Ke,findInProgressTurn:Wo,interruptActiveTurn:Rs,interruptedError:Bf,interruptSessionTurn:xs,throwIfInterrupted:Zt,turnWasInterrupted:Wf}=rf({activeTurns:Qe,getSession:l,getTurn:Tt,latestTurnForSession:r((A,Q)=>n.latestTurnForSession(A,Q),"latestTurnForSession"),interruptTurn:p}),Uo=af({activeTurns:Qe,interruptActiveTurn:Rs,jobRegistries:[],queues:[hn,...Le?[Le]:[]]}),zo=Nf({createSession:a,queue:Le,upsertRun:n.upsertSubagentRun?A=>n.upsertSubagentRun(A):void 0,getRun:n.getSubagentRun?A=>n.getSubagentRun(A):void 0,listRuns:n.listSubagentRuns?A=>n.listSubagentRuns(A):void 0,appendMessage:n.appendSubagentMessage?A=>n.appendSubagentMessage(A):void 0,listUsageRecords:n.listModelUsageRecords?A=>n.listModelUsageRecords(A):void 0,notifyRunStateChanged:r(A=>{to?.(A),A.childSessionId&&pe.wake(A.childSessionId)},"notifyRunStateChanged"),appendRuntimeEvent:S}),za=zo.available,Pt=zo.requireDependencies,Uf=zo.upsertRunAndNotify,Ln=zo.appendReceipt,Ts=nf(e),Ka=Ic(async()=>{let[{createCreateImproveRuntime:A},{createCreateImproveTurnHandler:Q}]=await Promise.all([import("./runtime-ISLJIGWC.js"),import("./send-turn-YLY3YNEQ.js")]),oe=A({getSession:l,getTurn:Tt,updateTurn:Nt,getCreateImproveRun:r(re=>n.getCreateImproveRun(re),"getCreateImproveRun"),listCreateImproveRuns:r(re=>n.listCreateImproveRuns(re),"listCreateImproveRuns"),upsertCreateImproveRun:r(re=>n.upsertCreateImproveRun(re),"upsertCreateImproveRun"),mutateCreateImproveRun:r((re,be)=>n.mutateCreateImproveRun(re,be),"mutateCreateImproveRun"),getApproval:r(re=>n.getApproval(re),"getApproval"),upsertApproval:i,appendRuntimeEvent:S,ensureCodexRuntime:m,runLocalCreatePipelineChecks:Bo,planCreateImprove:Gt,turnFollowUpQueue:hn,streamLocalByokChatTurn:_e,streamOpenPondHostedChatTurn:ke,upsertModelUsageRecord:Ae,resolveTaskset:o,gradeTaskAttempt:s});return{...oe,handleCreateImproveTurn:Q({appendRuntimeEvent:S,completeTurn:c,planCreateImproveForTurn:oe.planCreateImproveForTurn,persistCreateImproveRun:oe.persistCreateImproveRun}),async close(){}}}),{applyCreateImproveActionPayload:zf,getCreateImproveRun:Kf,listCreateImproveRuns:Vf,persistCreateImprovePlanningFailure:Jf,resolveCreateImproveApproval:Gf,handleCreateImproveTurn:Xf}=Ka.methods(["applyCreateImproveActionPayload","getCreateImproveRun","listCreateImproveRuns","persistCreateImprovePlanningFailure","resolveCreateImproveApproval","handleCreateImproveTurn"]),Qf=of({appendRuntimeEvent:S,completeTurn:c}),{prepareHostedProviderRequest:Yf,closePonderHistory:Zf}=vm({ponderHistoryStore:n,sessionForPonderHistory:l,getPonderHistoryCredential:e.getPonderHistoryCredential,streamPonderHistorySummary:r(async function*(A){if(A.provider==="openpond"){let Q=await e.resolveSessionModelStream?.(A.session,A.turn)??ke;for await(let oe of Q({model:A.model,messages:A.messages,requestId:A.requestId,maxTokens:700,reasoningEffort:Oo({provider:A.provider,model:A.model,selected:void 0,settings:await(e.localPonderProviderSettings??X)?.()}),signal:A.signal}))oe.type==="text_delta"&&(yield{text:oe.text,raw:oe.raw}),oe.type==="usage"&&(yield{usage:oe.usage,raw:oe.raw}),oe.type==="finish"&&(yield{finishReason:oe.finishReason,raw:oe.raw})}else{if(!_e)throw new Error("ponder_history_provider_unavailable");for await(let Q of _e({providerId:A.provider,modelId:A.model,messages:A.messages,requestId:A.requestId,maxOutputTokens:700,expectedPonderHistoryCredential:A.expectedCredential,signal:A.signal??new AbortController().signal}))yield Q}},"streamPonderHistorySummary"),loadAppPreferences:we,appendRuntimeEvent:S,runtimeEventsForSession:r((A,Q)=>n.runtimeEventsForSession(A,Q),"runtimeEventsForSession"),streamOpenPondHostedChatTurn:ke,resolveSessionModelStream:e.resolveSessionModelStream,upsertModelUsageRecord:Ae,throwIfInterrupted:Zt,interruptedError:Bf}),{appendProfileSkillEvent:eg,executeNativeToolCalls:tg,explicitProfileSkillNames:ng,profileSkillBodyFromReadResult:og,readProfileSkillForModel:rg}=km({authorizeCandidateTool:e.authorizeCandidateTool,hasPendingSteering:r(async(A,Q)=>(await Me.pendingTaskInputs(A,Q)).some(oe=>oe.kind==="steer"),"hasPendingSteering"),maxRepeatedInvalidToolRequests:Qt,appendRuntimeEvent:S,throwIfInterrupted:Zt}),{loadProfileSkillRuntime:sg,preloadExplicitProfileSkills:ig,profileSkillInstructionModeForProvider:Ps}=Vm({loadProfileState:q?A=>q(A.currentProfile):N?()=>N():void 0,readProfileSkill:V,loadBuiltInSkills:e.loadBuiltInOpenPondSkills,readBuiltInSkill:e.readBuiltInOpenPondSkill,loadExtensionCatalog:E,readExtensionSkill:F,appendRuntimeEvent:S,nativeToolsEnabledForProvider:Yt,hostedToolFlags:rt,appendProfileSkillEvent:eg,explicitProfileSkillNames:ng,profileSkillBodyFromReadResult:og,throwIfInterrupted:Zt}),{runHostedToolLoop:Va}=Om({candidateAuthoringForTurn:e.candidateAuthoringForTurn,isolatedProfileEvaluationForTurn:e.isolatedProfileEvaluationForTurn,authorizeCandidateTool:e.authorizeCandidateTool,taskInbox:pe,inboxStore:Me,resolveModelTools:e.resolveModelTools,assertExecutionAllowed:r(A=>es(e.storageHome,A),"assertExecutionAllowed"),hostedToolFlags:rt,nativeToolsEnabledForProvider:Yt,createNativeModelToolDefinitions:Og,profileSkillInstructionModeForProvider:Ps,subagentToolsAvailable:za,runtimeEventsForSession:r((A,Q)=>n.runtimeEventsForSession(A,Q),"runtimeEventsForSession"),getSession:l,recordTurnToolCatalog:r(async({turnId:A,hash:Q,capabilities:oe})=>{let re=await Tt(A),be=re?(await n.runtimeEventsForSession(re.sessionId,{names:["session.compaction.completed"],limit:1e3,excludeReasoningDeltas:!0})).filter(ee=>ee.turnId===A).at(-1)??null:null,D=be?.data&&typeof be.data=="object"&&!Array.isArray(be.data)?be.data:null;await n.updateTurn(A,ee=>{let at=gd.parse({protocolVersion:kr,threadId:ee.sessionId,turnId:ee.id,harnessReleaseHash:ee.harnessSnapshot?.harnessRelease.contentHash??Tn({harnessRelease:null}),toolCatalogHash:Q,context:{stage:"tool_catalog_ready",provider:ee.modelRef?.providerId??null,model:ee.modelRef?.modelId??null,compaction:D?{eventId:be?.id??null,compactedThroughEventId:D.compactedThroughEventId??null,compactedThroughTurnId:D.compactedThroughTurnId??null,summaryHash:typeof D.summary=="string"?Tn(D.summary):null}:null},pendingInteraction:null,usage:{}});return{...ee,metadata:{...ee.metadata,toolCatalogHash:Q,toolCapabilities:oe,agentCheckpoint:at,agentCheckpointHash:hd(at)},harnessSnapshot:ee.harnessSnapshot?{...ee.harnessSnapshot,toolCatalogHash:Q}:ee.harnessSnapshot}})},"recordTurnToolCatalog"),getTaskset:n.getTaskset?A=>n.getTaskset(A):void 0,appendHostedContextUsage:Xe,maxHostedWorkspaceToolRounds:Xt,maxRepeatedInvalidToolRequests:Qt,appendRuntimeEvent:S,upsertModelUsageRecord:Ae,executeNativeToolCalls:tg,readProfileSkillForModel:rg,executeWorkspaceTool:g,appendAssistantText:Fe,prepareHostedProviderRequest:Yf,throwIfInterrupted:Zt}),{captureSubagentWorkspaceHandoff:ag,cleanupSubagentRun:Ja,prepareSubagentWorkspaceIsolation:lg,subagentWorkspaceTargetKeyForSession:dg,subagentWorkspaceTargetKeyFromRun:cg}=vf({attachmentRootDir:t,resolveSessionWorkspaceCwd:T,forkSandboxForSubagent:d,cleanupSandboxForSubagent:k,appendSubagentReceipt:Ln,requireSubagentPersistence:r(()=>({upsertRun:Pt().upsertRun}),"requireSubagentPersistence")}),{finalizeSubagentContinuationTurn:ug,markSubagentContinuationRunning:pg,prepareSubagentContinuationTurn:Ga,subagentChildTurnPermissions:mg,subagentRuntimeDerivedProgress:fg,subagentUsageAttribution:gg,subagentUsageTotalsForRun:hg,turnPermissionsFromSendTurnInput:Ko}=Cf({requireSubagentDeps:Pt,runtimeEventsForSession:n.persistedRuntimeEventsForSession?(A,Q)=>n.persistedRuntimeEventsForSession(A,Q):(A,Q)=>n.runtimeEventsForSession(A,Q),latestAssistantTextForSession:r(A=>n.latestAssistantTextForSession(A),"latestAssistantTextForSession"),loadAppPreferences:we,getTurn:Tt,getSession:l,appendSubagentReceipt:Ln}),{queueSubagentFollowupMessage:wg,sendSubagentMessageFromModelTool:bg}=_f({inbox:pe,requireSubagentDeps:Pt,appendRuntimeEvent:S}),{notifyParentOfSubagentCompletion:vg,recoverPendingCompletions:yg,close:kg}=Af({inbox:pe,store:Me,appendMessage:r(A=>Pt().appendMessage(A),"appendMessage"),getSession:l,appendRuntimeEvent:S}),{resolveSubagentPatchApplyApproval:Sg}=bf({getApproval:r(A=>n.getApproval(A),"getApproval"),getSubagentRun:n.getSubagentRun?A=>n.getSubagentRun(A):null,canPersistSubagentRun:!!n.upsertSubagentRun,getSession:l,upsertSubagentRunAndNotify:Uf,upsertApproval:i,appendRuntimeEvent:S,appendSubagentReceipt:Ln,appendWorkspaceDiffEvent:w,cleanupSubagentRun:Ja}),{runSubagentChildTurn:Xa}=Ef({requireSubagentDeps:Pt,sendTurn:Vo,getTurn:Tt,getPersistedRun:n.getPersistedSubagentRun?A=>n.getPersistedSubagentRun(A):A=>Pt().getRun(A),upsertPersistedRun:n.upsertPersistedSubagentRun?A=>n.upsertPersistedSubagentRun(A):A=>n.upsertSubagentRun(A),notifyRunStateChanged:r(A=>{to?.(A),A.childSessionId&&pe.wake(A.childSessionId)},"notifyRunStateChanged"),latestTurnForSession:r(A=>n.latestPersistedTurnForSession(A),"latestTurnForSession"),latestAssistantTextForSession:r(A=>n.latestAssistantTextForSession(A),"latestAssistantTextForSession"),appendSubagentReceipt:Ln,subagentRuntimeDerivedProgress:fg,subagentUsageAttribution:gg,subagentUsageTotalsForRun:hg,captureSubagentWorkspaceHandoff:ag,applySubagentPatch:qa,appendWorkspaceDiffEvent:w,uniqueSubagentRefs:qf,commitCompletion:r((A,Q)=>Me.commitSubagentCompletion(A,Q),"commitCompletion"),notifyParentOfSubagentCompletion:vg}),{archiveSubagentChildSession:Ig,subagentLifecycleActionNextStep:Rg}=Mf({getRun:r(A=>Pt().getRun(A),"getRun"),upsertRun:r(A=>Pt().upsertRun(A),"upsertRun"),getSession:l,updateSession:u,appendSubagentReceipt:Ln}),{cancelSubagentFromModelTool:xg,cleanupExpiredRetainedSubagentWorkspace:Tg,joinSubagentFromModelTool:Pg,followupSubagentFromModelTool:Cg,runSubagentLifecycleAction:_g,startSubagentFromModelTool:Ag,statusSubagentsFromModelTool:Eg}=Of({inbox:pe,requireSubagentDeps:Pt,loadAppPreferences:we,getSession:l,appendSubagentReceipt:Ln,subagentWorkspaceTargetKeyForSession:dg,subagentWorkspaceTargetKeyFromRun:cg,subagentChildTurnPermissions:mg,prepareSubagentWorkspaceIsolation:lg,runSubagentChildTurn:Xa,subagentToolResultFromRun:jf,subagentRoleLabel:Ff,interruptSessionTurn:xs,cleanupSubagentRun:Ja,queueSubagentFollowupMessage:wg,archiveSubagentChildSession:Ig,subagentLifecycleActionNextStep:Rg}),Qa=Qm({handlers:{startSubagent:Ag,statusSubagents:Eg,joinSubagent:Pg,cancelSubagent:xg,followupSubagent:Cg,sendSubagentMessage:bg,...ie?{manageSidebarFile:r((A,Q)=>ie({session:A.session,action:Q.action,path:Q.path}),"manageSidebarFile")}:{},...j?{runDatasetBuilder:r((A,Q,oe)=>j({session:A.session,turnId:A.turnId,callId:A.callId,signal:A.signal,provider:A.provider,model:A.model,action:Q,payload:oe}),"runDatasetBuilder")}:{}},subagentToolsAvailable:za,hostedToolFlags:rt,executeConnectedAppTool:J,htmlVisuals:te,browserToolExecutor:de,executeOpenPondCommand:f,executeWorkspaceTool:g,executeWebSearch:W,createScheduledWork:U,executeProfileAction:_,executeProjectAction:I,loadOpenPondProfileStateForRef:q,resolveCandidateProfile:e.resolveCandidateProfile,executeCandidateAgentCommand:e.executeCandidateAgentCommand,executeCandidateCommand:e.executeCandidateCommand,executeCandidateImage:e.executeCandidateImage}),Ya=Qu({resolveCwd:r(A=>T(A,{ensureOpenPond:!1}),"resolveCwd"),appendEvent:S});function Og(A,Q,oe,re,be={}){return be.candidateAuthoring?Qa(A,Q,oe,re,be):[...Qa(A,Q,oe,re,be),...ue,...be.trainingHarness?[]:Gu(),...xt,...be.trainingHarness?[]:[Ya],...!be.trainingHarness&&M?[ra(M)]:[],...e.harnessModelTools??[]].map(D=>({...D,enabled:r(ee=>(ee.session.systemKind!=="openpond.ponder"||ue.includes(D)||xt.includes(D))&&(D.enabled?.(ee)??!0),"enabled")}))}r(Og,"createNativeModelToolDefinitions");async function Vo(A,Q,oe,re,be){if(be&&(!Number.isSafeInteger(be.nativeTimeoutMs)||be.nativeTimeoutMs<1||be.nativeTimeoutMs>2147483647))throw new Error("Native execution timeout is invalid.");let D=Uo.beginSendTurn(),ee=oe??Df(),at=!1,O,Ct="failed";try{await Me.openTaskInboxTurn(A,ee,pe.ownerId),at=!0,O=setInterval(()=>{Me.renewTaskInboxTurn(A,ee,pe.ownerId).catch(jt=>{Qe.get(A)?.controller.abort(jt)})},2e4),O.unref();let lt=await Mg(A,Q,ee,re,be);return Ct=lt.status==="in_progress"?"failed":lt.status,lt}finally{O&&clearInterval(O),at&&await pe.settled(A,ee,Ct),D()}}r(Vo,"sendTurn");async function Mg(A,Q,oe,re,be){let D=Dt.parse(Q),ee=Ko(D);if(await Ke(A)??await Wo(A))throw new Error("A turn is already running for this chat.");let O=await l(A),Ct=await e.isRemoteAgentModel?.(D.modelRef?.providerId??O.modelRef?.providerId??O.provider,D.modelRef?.modelId??D.model??O.modelRef?.modelId??"")??!1;if(Ct&&(D.attachments?.length||D.mentionedConnectedApps?.length||D.mentionedAppIds?.length||D.createImproveRun||O.profileWorkflowBinding||O.profileComponentBinding||D.workflowInput!==void 0))throw new Error("This model accepts text messages only; attachments, connected apps, and local workflows are unavailable.");let lt=O.metadata?.source==="experiment-improvement"||O.metadata?.refinementCandidate!==void 0;if(lt&&(!re||O.experience!=="work"||O.profileWorkflowBinding||O.profileComponentBinding||D.createImproveRun||D.mentionedAppIds?.length||D.mentionedConnectedApps?.length||D.openPondActionCatalog?.length||D.attachments?.length||D.cwd))throw new Error("Candidate Work requires its private owner admission and isolated source context.");let jt=!!(D.modelRef||D.model),qe=!lt&&e.storageHome?await Ap(e.storageHome,O,D,Q):null;qe&&(ee.codexPermissionMode=qe.preferences.codexPermissionMode,ee.codexReasoningEffort=qe.preferences.codexReasoningEffort,ee.codexPermissionMode==="default"&&(ee.approvalPolicy="on-request",ee.sandbox==="danger-full-access"&&(ee.sandbox="workspace-write")));let Cs=!1;O={...O,experience:O.experience??rn};async function no(Se,wt){Cs||O.experience!=="work"||!v||(Cs=!0,O=await v({session:await l(A),turnId:Se,outcome:wt}))}r(no,"finalizeAttachedWorkSandbox");let _s=D.modelRef?.providerId??O.modelRef?.providerId??O.provider;if(e.executionHost==="embedded"&&(_s!=="openpond"||D.createImproveRun))throw new Error("Embedded Work requires the configured model adapter and native tool loop.");let Fg=(O.experience==="chat"||O.experience==="work")&&!O.systemKind&&M&&!["sandbox","sandbox_template","sandbox_app"].includes(O.workspaceKind??"");if(_s==="codex"&&!ze(O)&&!Fg)throw new Error("The Codex provider requires repository-aware Work or a local resource chat.");if(/^\/goal(?:\s|$)/i.test(D.prompt.trimStart())&&(_s!=="codex"||!ze(O)))throw new Error("/goal is only available in repository-aware Work with the Codex provider.");let en=Ct?null:O.currentProfile??null,gt=lt||!en||O.profileWorkflowBinding||O.profileComponentBinding?null:q?await q(en):N?await N():null,ce=!Ct&&!lt&&B?await B(O):null,Za=null;if(O.profileWorkflowBinding){let Se=ce?.workflow;if(!Se)throw new Error("Bound Profile workflow is unavailable for this turn.");let wt=jp({workflow:Se,value:D.workflowInput??(Se.invocation.kind==="instructions"?{}:void 0),prompt:D.prompt});ce.instructionContext=[ce.instructionContext,wt.instruction].join(`
|
|
135
|
+
`)}r(zk,"promptWithSteeringContext");function gj(e){let{attachmentRootDir:t,store:n,resolveCreateImproveTaskset:o,gradeCreateImproveTaskAttempt:s,upsertApproval:i,createSession:a,getSession:l,updateSession:u,completeTurn:c,failTurn:h,interruptTurn:p,defaultSessionCwd:y,findOpenPondApp:x,resolveSessionWorkspaceCwd:T,ensureCodexRuntime:m,appendWorkspaceDiffEvent:w,workspaceDiffBaseline:C,appendRuntimeEvent:S,processHarnessImprovementBoundary:R,executeWorkspaceTool:g,forkSandboxForSubagent:d,cleanupSandboxForSubagent:k,finalizeWorkTurn:v,workInputsForSession:b,executeOpenPondCommand:f,executeProfileAction:_,executeProjectAction:I,executeChatResourceAction:M,executeDatasetBuilderAction:j,loadOpenPondProfileState:N,loadOpenPondProfileStateForRef:q,readOpenPondProfileSkill:V,loadSelectedHarnessRuntime:B,ensureHarnessRunOverlay:z,loadOpenPondExtensionCatalog:E,readOpenPondExtensionSkill:F,executeProfileSkillCommand:$,executeWebSearch:W,createScheduledWork:U,executeConnectedAppTool:J,htmlVisuals:te,browserToolExecutor:de,manageSidebarFile:ie,listIntegrationConnections:me,loadPersonalizationSoul:fe,loadAppPreferences:we=r(async()=>Rl.parse({}),"loadAppPreferences"),loadProviderSettings:X,maybeCreateScaffoldForTurn:Ce,hostedSystemPrompt:ae,appendAssistantText:Fe,appendHostedContextUsage:Xe,streamLocalByokChatTurn:_e,streamOpenPondHostedChatTurn:ke=Kn,runLocalCreatePipelineChecks:Bo,planCreateImprove:Gt,turnFollowUpQueue:hn,subagentQueue:Le,notifySubagentRunStateChanged:to,maxHostedWorkspaceToolRounds:Xt,maxRepeatedInvalidToolRequests:Qt}=e,Me=e.inboxStore??n,Dn=Bm(e.storageHome??t),rt=ma(e.hostedToolFlags),Qe=new bs,pe=Nm({prepareInputAttachments:ap({storageHome:e.storageHome??t,attachmentRootDir:t}),store:Me,getSession:l,listSessions:r(()=>n.sessionShells(),"listSessions"),getTurn:r(A=>n.getTurn(A),"getTurn"),latestTurn:r(A=>n.latestTurnForSession(A),"latestTurn"),recoverInterruptedTurn:r(async(A,Q)=>{(await n.getTurn(Q))?.status==="in_progress"&&await p(await l(A),Q,"The local app server restarted before this turn finished. Pending inputs are preserved. Review completed tool activity, then resume this chat to continue.")},"recoverInterruptedTurn"),getSubagentRun:r(A=>n.getSubagentRun?n.getSubagentRun(A):Promise.resolve(null),"getSubagentRun"),getActiveTurn:r(A=>Qe.get(A),"getActiveTurn"),appendRuntimeEvent:S,startFollowup:r(async(A,Q,oe,re)=>{let be=await l(A),D=Dt.parse(Q);if(!be.subagentRunId){if(re.senderKind==="user")return Vo(A,D,oe,re.payload.remoteDevice?{beforeExecute:r(async jt=>{pi(re,jt)},"beforeExecute")}:void 0);let Ct=await n.latestTurnForSession(A),lt=re.payload.localPonderExecutionPermissions??Ct?.metadata.taskExecutionPermissions??{approvalPolicy:"on-request",sandbox:"read-only",codexPermissionMode:"default"};return Vo(A,{...D,...lt,...gn(re)||re.payload.taskReportingOnly===!0?{sandbox:"read-only",approvalPolicy:"never",codexPermissionMode:"default"}:{}},oe,re.senderKind==="ponder"?{beforeExecute:r(async jt=>{ac(re,jt),await Oa(an.parse(re.payload.ponderDesktop).operation,jt,n,Dn),pi(re,jt)},"beforeExecute")}:re.payload.localPonderHostedResult?{beforeExecute:r(async()=>{if(!e.localPonderHosted)throw new Error("local_ponder_hosted_unavailable");await e.localPonderHosted.assertCompletionScope(re.payload.localPonderHostedResult)},"beforeExecute")}:re.payload.localPonderControlRevision!==void 0?{beforeExecute:r(async()=>{await Me.assertLocalPonderInput?.(re)},"beforeExecute")}:void 0)}let ee=await Ga({session:be,request:D,requestedTurnPermissions:Ko(D)});if(!ee||ee.run.status==="cancelled")throw new Error("Child follow-up is unavailable.");let at={...ee.run,status:"queued",completedAt:null,error:null,report:null,metadata:{...ee.run.metadata,completionConsumedByParent:null}};await Pt().upsertRun(at),await Xa({run:at,role:ee.role,childSession:be,parentSession:await l(at.parentSessionId),parentTurnId:at.parentTurnId??oe,contextPack:typeof at.metadata.context=="string"?at.metadata.context:null,childTurnPermissions:ee.turnPermissions,initialPrompt:D.prompt,reservedTurnId:oe});let O=await n.getTurn(oe);if(!O)throw new Error("Child follow-up did not start.");return O},"startFollowup"),dispatchFollowup:r(async(A,Q)=>{let oe=await hn.enqueue({label:"Task inbox follow-up",metadata:{sessionId:A}},Q).done;if(oe.status==="failed")throw new Error(oe.error??"Task follow-up failed.")},"dispatchFollowup"),yieldWhileWaiting:r(A=>hn.yieldWhileWaiting(()=>Le?Le.yieldWhileWaiting(A):A()),"yieldWhileWaiting")}),xt=Km(pe,{input:r(A=>Me.getTaskInput(A),"input"),readSource:r(async(A,Q,oe,re)=>{if(await Oa(A,Q,n,Dn),!A.workflow?.source)throw new Error("The verified workflow source is not available yet.");return Dn.inspect(A.workflow.source,oe,re)},"readSource")}),ue=[...e.localPonderHosted?ep(e.localPonderHosted):[],...tp(n),...op({store:Me,inbox:pe,createSession:a,createReservedSession:e.createReservedSession,projects:e.localPonderProjects,settings:e.localPonderProviderSettings??X,getSession:l,sessions:r(()=>n.sessionShells(),"sessions"),transcript:r(async(A,Q)=>{if(!n.runtimeEventPageRows)throw new Error("local_ponder_history_unavailable");let oe=await n.runtimeEventPageRows({sessionId:A,afterSequence:0,beforeSequence:Q??Number.MAX_SAFE_INTEGER,limit:100});return{turn:await n.latestTurnForSession(A),latestAssistantText:await n.latestAssistantTextForSession(A),events:oe.entries.map(re=>re.event),nextBeforeSequence:oe.remainingMatchingEvents>oe.entries.length?oe.entries[0]?.sequence??null:null}},"transcript"),stop:r(A=>xs(A),"stop")})],Ee=Kp({listIntegrationConnections:me,appendRuntimeEvent:S}),Ae=vs({upsert:n.upsertModelUsageRecord?A=>n.upsertModelUsageRecord(A):null,appendRuntimeEvent:S});async function Ne(A){if(!(!R||!A.turn.harnessSnapshot||A.session.metadata?.standaloneExperiment!==void 0||A.session.metadata?.localProfileExperiment!==void 0||A.session.metadata?.profileEvaluationRun!==void 0))try{await R(A)}catch(Q){await S(L({sessionId:A.session.id,turnId:A.turn.id,name:"diagnostic",source:"server",appId:A.session.appId,status:"failed",output:Q instanceof Error?Q.message:String(Q),data:{phase:"harness_improvement_boundary"}})).catch(()=>{})}}r(Ne,"processHarnessImprovementBoundarySafely");async function Tt(A){return n.getTurn(A)}r(Tt,"getStoredTurn");function Yt(A){return os(rt,A)}r(Yt,"nativeToolsEnabledForProvider");function st(A){return de?.available({sessionId:A.id,conversationId:A.id})??!1}r(st,"browserControlAvailable");function wn(A){return Yt(A)&&rt.dynamicActionTools?"native_tool":Vt(rt,A)==="full_text_fallback"?"text_fallback":"none"}r(wn,"actionCatalogInstructionModeForProvider");async function it(A){await n.insertTurn(A)}r(it,"insertStoredTurn");async function Nt(A,Q){return n.updateTurn(A,Q)}r(Nt,"updateStoredTurn");let{activeInProgressTurn:Ke,findInProgressTurn:Wo,interruptActiveTurn:Rs,interruptedError:Bf,interruptSessionTurn:xs,throwIfInterrupted:Zt,turnWasInterrupted:Wf}=rf({activeTurns:Qe,getSession:l,getTurn:Tt,latestTurnForSession:r((A,Q)=>n.latestTurnForSession(A,Q),"latestTurnForSession"),interruptTurn:p}),Uo=af({activeTurns:Qe,interruptActiveTurn:Rs,jobRegistries:[],queues:[hn,...Le?[Le]:[]]}),zo=Nf({createSession:a,queue:Le,upsertRun:n.upsertSubagentRun?A=>n.upsertSubagentRun(A):void 0,getRun:n.getSubagentRun?A=>n.getSubagentRun(A):void 0,listRuns:n.listSubagentRuns?A=>n.listSubagentRuns(A):void 0,appendMessage:n.appendSubagentMessage?A=>n.appendSubagentMessage(A):void 0,listUsageRecords:n.listModelUsageRecords?A=>n.listModelUsageRecords(A):void 0,notifyRunStateChanged:r(A=>{to?.(A),A.childSessionId&&pe.wake(A.childSessionId)},"notifyRunStateChanged"),appendRuntimeEvent:S}),za=zo.available,Pt=zo.requireDependencies,Uf=zo.upsertRunAndNotify,Ln=zo.appendReceipt,Ts=nf(e),Ka=Ic(async()=>{let[{createCreateImproveRuntime:A},{createCreateImproveTurnHandler:Q}]=await Promise.all([import("./runtime-UDLOZD4Y.js"),import("./send-turn-4MH4WMLW.js")]),oe=A({getSession:l,getTurn:Tt,updateTurn:Nt,getCreateImproveRun:r(re=>n.getCreateImproveRun(re),"getCreateImproveRun"),listCreateImproveRuns:r(re=>n.listCreateImproveRuns(re),"listCreateImproveRuns"),upsertCreateImproveRun:r(re=>n.upsertCreateImproveRun(re),"upsertCreateImproveRun"),mutateCreateImproveRun:r((re,be)=>n.mutateCreateImproveRun(re,be),"mutateCreateImproveRun"),getApproval:r(re=>n.getApproval(re),"getApproval"),upsertApproval:i,appendRuntimeEvent:S,ensureCodexRuntime:m,runLocalCreatePipelineChecks:Bo,planCreateImprove:Gt,turnFollowUpQueue:hn,streamLocalByokChatTurn:_e,streamOpenPondHostedChatTurn:ke,upsertModelUsageRecord:Ae,resolveTaskset:o,gradeTaskAttempt:s});return{...oe,handleCreateImproveTurn:Q({appendRuntimeEvent:S,completeTurn:c,planCreateImproveForTurn:oe.planCreateImproveForTurn,persistCreateImproveRun:oe.persistCreateImproveRun}),async close(){}}}),{applyCreateImproveActionPayload:zf,getCreateImproveRun:Kf,listCreateImproveRuns:Vf,persistCreateImprovePlanningFailure:Jf,resolveCreateImproveApproval:Gf,handleCreateImproveTurn:Xf}=Ka.methods(["applyCreateImproveActionPayload","getCreateImproveRun","listCreateImproveRuns","persistCreateImprovePlanningFailure","resolveCreateImproveApproval","handleCreateImproveTurn"]),Qf=of({appendRuntimeEvent:S,completeTurn:c}),{prepareHostedProviderRequest:Yf,closePonderHistory:Zf}=vm({ponderHistoryStore:n,sessionForPonderHistory:l,getPonderHistoryCredential:e.getPonderHistoryCredential,streamPonderHistorySummary:r(async function*(A){if(A.provider==="openpond"){let Q=await e.resolveSessionModelStream?.(A.session,A.turn)??ke;for await(let oe of Q({model:A.model,messages:A.messages,requestId:A.requestId,maxTokens:700,reasoningEffort:Oo({provider:A.provider,model:A.model,selected:void 0,settings:await(e.localPonderProviderSettings??X)?.()}),signal:A.signal}))oe.type==="text_delta"&&(yield{text:oe.text,raw:oe.raw}),oe.type==="usage"&&(yield{usage:oe.usage,raw:oe.raw}),oe.type==="finish"&&(yield{finishReason:oe.finishReason,raw:oe.raw})}else{if(!_e)throw new Error("ponder_history_provider_unavailable");for await(let Q of _e({providerId:A.provider,modelId:A.model,messages:A.messages,requestId:A.requestId,maxOutputTokens:700,expectedPonderHistoryCredential:A.expectedCredential,signal:A.signal??new AbortController().signal}))yield Q}},"streamPonderHistorySummary"),loadAppPreferences:we,appendRuntimeEvent:S,runtimeEventsForSession:r((A,Q)=>n.runtimeEventsForSession(A,Q),"runtimeEventsForSession"),streamOpenPondHostedChatTurn:ke,resolveSessionModelStream:e.resolveSessionModelStream,upsertModelUsageRecord:Ae,throwIfInterrupted:Zt,interruptedError:Bf}),{appendProfileSkillEvent:eg,executeNativeToolCalls:tg,explicitProfileSkillNames:ng,profileSkillBodyFromReadResult:og,readProfileSkillForModel:rg}=km({authorizeCandidateTool:e.authorizeCandidateTool,hasPendingSteering:r(async(A,Q)=>(await Me.pendingTaskInputs(A,Q)).some(oe=>oe.kind==="steer"),"hasPendingSteering"),maxRepeatedInvalidToolRequests:Qt,appendRuntimeEvent:S,throwIfInterrupted:Zt}),{loadProfileSkillRuntime:sg,preloadExplicitProfileSkills:ig,profileSkillInstructionModeForProvider:Ps}=Vm({loadProfileState:q?A=>q(A.currentProfile):N?()=>N():void 0,readProfileSkill:V,loadBuiltInSkills:e.loadBuiltInOpenPondSkills,readBuiltInSkill:e.readBuiltInOpenPondSkill,loadExtensionCatalog:E,readExtensionSkill:F,appendRuntimeEvent:S,nativeToolsEnabledForProvider:Yt,hostedToolFlags:rt,appendProfileSkillEvent:eg,explicitProfileSkillNames:ng,profileSkillBodyFromReadResult:og,throwIfInterrupted:Zt}),{runHostedToolLoop:Va}=Om({candidateAuthoringForTurn:e.candidateAuthoringForTurn,isolatedProfileEvaluationForTurn:e.isolatedProfileEvaluationForTurn,authorizeCandidateTool:e.authorizeCandidateTool,taskInbox:pe,inboxStore:Me,resolveModelTools:e.resolveModelTools,assertExecutionAllowed:r(A=>es(e.storageHome,A),"assertExecutionAllowed"),hostedToolFlags:rt,nativeToolsEnabledForProvider:Yt,createNativeModelToolDefinitions:Og,profileSkillInstructionModeForProvider:Ps,subagentToolsAvailable:za,runtimeEventsForSession:r((A,Q)=>n.runtimeEventsForSession(A,Q),"runtimeEventsForSession"),getSession:l,recordTurnToolCatalog:r(async({turnId:A,hash:Q,capabilities:oe})=>{let re=await Tt(A),be=re?(await n.runtimeEventsForSession(re.sessionId,{names:["session.compaction.completed"],limit:1e3,excludeReasoningDeltas:!0})).filter(ee=>ee.turnId===A).at(-1)??null:null,D=be?.data&&typeof be.data=="object"&&!Array.isArray(be.data)?be.data:null;await n.updateTurn(A,ee=>{let at=gd.parse({protocolVersion:kr,threadId:ee.sessionId,turnId:ee.id,harnessReleaseHash:ee.harnessSnapshot?.harnessRelease.contentHash??Tn({harnessRelease:null}),toolCatalogHash:Q,context:{stage:"tool_catalog_ready",provider:ee.modelRef?.providerId??null,model:ee.modelRef?.modelId??null,compaction:D?{eventId:be?.id??null,compactedThroughEventId:D.compactedThroughEventId??null,compactedThroughTurnId:D.compactedThroughTurnId??null,summaryHash:typeof D.summary=="string"?Tn(D.summary):null}:null},pendingInteraction:null,usage:{}});return{...ee,metadata:{...ee.metadata,toolCatalogHash:Q,toolCapabilities:oe,agentCheckpoint:at,agentCheckpointHash:hd(at)},harnessSnapshot:ee.harnessSnapshot?{...ee.harnessSnapshot,toolCatalogHash:Q}:ee.harnessSnapshot}})},"recordTurnToolCatalog"),getTaskset:n.getTaskset?A=>n.getTaskset(A):void 0,appendHostedContextUsage:Xe,maxHostedWorkspaceToolRounds:Xt,maxRepeatedInvalidToolRequests:Qt,appendRuntimeEvent:S,upsertModelUsageRecord:Ae,executeNativeToolCalls:tg,readProfileSkillForModel:rg,executeWorkspaceTool:g,appendAssistantText:Fe,prepareHostedProviderRequest:Yf,throwIfInterrupted:Zt}),{captureSubagentWorkspaceHandoff:ag,cleanupSubagentRun:Ja,prepareSubagentWorkspaceIsolation:lg,subagentWorkspaceTargetKeyForSession:dg,subagentWorkspaceTargetKeyFromRun:cg}=vf({attachmentRootDir:t,resolveSessionWorkspaceCwd:T,forkSandboxForSubagent:d,cleanupSandboxForSubagent:k,appendSubagentReceipt:Ln,requireSubagentPersistence:r(()=>({upsertRun:Pt().upsertRun}),"requireSubagentPersistence")}),{finalizeSubagentContinuationTurn:ug,markSubagentContinuationRunning:pg,prepareSubagentContinuationTurn:Ga,subagentChildTurnPermissions:mg,subagentRuntimeDerivedProgress:fg,subagentUsageAttribution:gg,subagentUsageTotalsForRun:hg,turnPermissionsFromSendTurnInput:Ko}=Cf({requireSubagentDeps:Pt,runtimeEventsForSession:n.persistedRuntimeEventsForSession?(A,Q)=>n.persistedRuntimeEventsForSession(A,Q):(A,Q)=>n.runtimeEventsForSession(A,Q),latestAssistantTextForSession:r(A=>n.latestAssistantTextForSession(A),"latestAssistantTextForSession"),loadAppPreferences:we,getTurn:Tt,getSession:l,appendSubagentReceipt:Ln}),{queueSubagentFollowupMessage:wg,sendSubagentMessageFromModelTool:bg}=_f({inbox:pe,requireSubagentDeps:Pt,appendRuntimeEvent:S}),{notifyParentOfSubagentCompletion:vg,recoverPendingCompletions:yg,close:kg}=Af({inbox:pe,store:Me,appendMessage:r(A=>Pt().appendMessage(A),"appendMessage"),getSession:l,appendRuntimeEvent:S}),{resolveSubagentPatchApplyApproval:Sg}=bf({getApproval:r(A=>n.getApproval(A),"getApproval"),getSubagentRun:n.getSubagentRun?A=>n.getSubagentRun(A):null,canPersistSubagentRun:!!n.upsertSubagentRun,getSession:l,upsertSubagentRunAndNotify:Uf,upsertApproval:i,appendRuntimeEvent:S,appendSubagentReceipt:Ln,appendWorkspaceDiffEvent:w,cleanupSubagentRun:Ja}),{runSubagentChildTurn:Xa}=Ef({requireSubagentDeps:Pt,sendTurn:Vo,getTurn:Tt,getPersistedRun:n.getPersistedSubagentRun?A=>n.getPersistedSubagentRun(A):A=>Pt().getRun(A),upsertPersistedRun:n.upsertPersistedSubagentRun?A=>n.upsertPersistedSubagentRun(A):A=>n.upsertSubagentRun(A),notifyRunStateChanged:r(A=>{to?.(A),A.childSessionId&&pe.wake(A.childSessionId)},"notifyRunStateChanged"),latestTurnForSession:r(A=>n.latestPersistedTurnForSession(A),"latestTurnForSession"),latestAssistantTextForSession:r(A=>n.latestAssistantTextForSession(A),"latestAssistantTextForSession"),appendSubagentReceipt:Ln,subagentRuntimeDerivedProgress:fg,subagentUsageAttribution:gg,subagentUsageTotalsForRun:hg,captureSubagentWorkspaceHandoff:ag,applySubagentPatch:qa,appendWorkspaceDiffEvent:w,uniqueSubagentRefs:qf,commitCompletion:r((A,Q)=>Me.commitSubagentCompletion(A,Q),"commitCompletion"),notifyParentOfSubagentCompletion:vg}),{archiveSubagentChildSession:Ig,subagentLifecycleActionNextStep:Rg}=Mf({getRun:r(A=>Pt().getRun(A),"getRun"),upsertRun:r(A=>Pt().upsertRun(A),"upsertRun"),getSession:l,updateSession:u,appendSubagentReceipt:Ln}),{cancelSubagentFromModelTool:xg,cleanupExpiredRetainedSubagentWorkspace:Tg,joinSubagentFromModelTool:Pg,followupSubagentFromModelTool:Cg,runSubagentLifecycleAction:_g,startSubagentFromModelTool:Ag,statusSubagentsFromModelTool:Eg}=Of({inbox:pe,requireSubagentDeps:Pt,loadAppPreferences:we,getSession:l,appendSubagentReceipt:Ln,subagentWorkspaceTargetKeyForSession:dg,subagentWorkspaceTargetKeyFromRun:cg,subagentChildTurnPermissions:mg,prepareSubagentWorkspaceIsolation:lg,runSubagentChildTurn:Xa,subagentToolResultFromRun:jf,subagentRoleLabel:Ff,interruptSessionTurn:xs,cleanupSubagentRun:Ja,queueSubagentFollowupMessage:wg,archiveSubagentChildSession:Ig,subagentLifecycleActionNextStep:Rg}),Qa=Qm({handlers:{startSubagent:Ag,statusSubagents:Eg,joinSubagent:Pg,cancelSubagent:xg,followupSubagent:Cg,sendSubagentMessage:bg,...ie?{manageSidebarFile:r((A,Q)=>ie({session:A.session,action:Q.action,path:Q.path}),"manageSidebarFile")}:{},...j?{runDatasetBuilder:r((A,Q,oe)=>j({session:A.session,turnId:A.turnId,callId:A.callId,signal:A.signal,provider:A.provider,model:A.model,action:Q,payload:oe}),"runDatasetBuilder")}:{}},subagentToolsAvailable:za,hostedToolFlags:rt,executeConnectedAppTool:J,htmlVisuals:te,browserToolExecutor:de,executeOpenPondCommand:f,executeWorkspaceTool:g,executeWebSearch:W,createScheduledWork:U,executeProfileAction:_,executeProjectAction:I,loadOpenPondProfileStateForRef:q,resolveCandidateProfile:e.resolveCandidateProfile,executeCandidateAgentCommand:e.executeCandidateAgentCommand,executeCandidateCommand:e.executeCandidateCommand,executeCandidateImage:e.executeCandidateImage}),Ya=Qu({resolveCwd:r(A=>T(A,{ensureOpenPond:!1}),"resolveCwd"),appendEvent:S});function Og(A,Q,oe,re,be={}){return be.candidateAuthoring?Qa(A,Q,oe,re,be):[...Qa(A,Q,oe,re,be),...ue,...be.trainingHarness?[]:Gu(),...xt,...be.trainingHarness?[]:[Ya],...!be.trainingHarness&&M?[ra(M)]:[],...e.harnessModelTools??[]].map(D=>({...D,enabled:r(ee=>(ee.session.systemKind!=="openpond.ponder"||ue.includes(D)||xt.includes(D))&&(D.enabled?.(ee)??!0),"enabled")}))}r(Og,"createNativeModelToolDefinitions");async function Vo(A,Q,oe,re,be){if(be&&(!Number.isSafeInteger(be.nativeTimeoutMs)||be.nativeTimeoutMs<1||be.nativeTimeoutMs>2147483647))throw new Error("Native execution timeout is invalid.");let D=Uo.beginSendTurn(),ee=oe??Df(),at=!1,O,Ct="failed";try{await Me.openTaskInboxTurn(A,ee,pe.ownerId),at=!0,O=setInterval(()=>{Me.renewTaskInboxTurn(A,ee,pe.ownerId).catch(jt=>{Qe.get(A)?.controller.abort(jt)})},2e4),O.unref();let lt=await Mg(A,Q,ee,re,be);return Ct=lt.status==="in_progress"?"failed":lt.status,lt}finally{O&&clearInterval(O),at&&await pe.settled(A,ee,Ct),D()}}r(Vo,"sendTurn");async function Mg(A,Q,oe,re,be){let D=Dt.parse(Q),ee=Ko(D);if(await Ke(A)??await Wo(A))throw new Error("A turn is already running for this chat.");let O=await l(A),Ct=await e.isRemoteAgentModel?.(D.modelRef?.providerId??O.modelRef?.providerId??O.provider,D.modelRef?.modelId??D.model??O.modelRef?.modelId??"")??!1;if(Ct&&(D.attachments?.length||D.mentionedConnectedApps?.length||D.mentionedAppIds?.length||D.createImproveRun||O.profileWorkflowBinding||O.profileComponentBinding||D.workflowInput!==void 0))throw new Error("This model accepts text messages only; attachments, connected apps, and local workflows are unavailable.");let lt=O.metadata?.source==="experiment-improvement"||O.metadata?.refinementCandidate!==void 0;if(lt&&(!re||O.experience!=="work"||O.profileWorkflowBinding||O.profileComponentBinding||D.createImproveRun||D.mentionedAppIds?.length||D.mentionedConnectedApps?.length||D.openPondActionCatalog?.length||D.attachments?.length||D.cwd))throw new Error("Candidate Work requires its private owner admission and isolated source context.");let jt=!!(D.modelRef||D.model),qe=!lt&&e.storageHome?await Ap(e.storageHome,O,D,Q):null;qe&&(ee.codexPermissionMode=qe.preferences.codexPermissionMode,ee.codexReasoningEffort=qe.preferences.codexReasoningEffort,ee.codexPermissionMode==="default"&&(ee.approvalPolicy="on-request",ee.sandbox==="danger-full-access"&&(ee.sandbox="workspace-write")));let Cs=!1;O={...O,experience:O.experience??rn};async function no(Se,wt){Cs||O.experience!=="work"||!v||(Cs=!0,O=await v({session:await l(A),turnId:Se,outcome:wt}))}r(no,"finalizeAttachedWorkSandbox");let _s=D.modelRef?.providerId??O.modelRef?.providerId??O.provider;if(e.executionHost==="embedded"&&(_s!=="openpond"||D.createImproveRun))throw new Error("Embedded Work requires the configured model adapter and native tool loop.");let Fg=(O.experience==="chat"||O.experience==="work")&&!O.systemKind&&M&&!["sandbox","sandbox_template","sandbox_app"].includes(O.workspaceKind??"");if(_s==="codex"&&!ze(O)&&!Fg)throw new Error("The Codex provider requires repository-aware Work or a local resource chat.");if(/^\/goal(?:\s|$)/i.test(D.prompt.trimStart())&&(_s!=="codex"||!ze(O)))throw new Error("/goal is only available in repository-aware Work with the Codex provider.");let en=Ct?null:O.currentProfile??null,gt=lt||!en||O.profileWorkflowBinding||O.profileComponentBinding?null:q?await q(en):N?await N():null,ce=!Ct&&!lt&&B?await B(O):null,Za=null;if(O.profileWorkflowBinding){let Se=ce?.workflow;if(!Se)throw new Error("Bound Profile workflow is unavailable for this turn.");let wt=jp({workflow:Se,value:D.workflowInput??(Se.invocation.kind==="instructions"?{}:void 0),prompt:D.prompt});ce.instructionContext=[ce.instructionContext,wt.instruction].join(`
|
|
136
136
|
|
|
137
137
|
`),D.prompt=wt.prompt,Za=wt.inputHash}else if(D.workflowInput!==void 0&&O.profileComponentBinding?.target.kind!=="agent_action")throw new Error("Workflow input requires a bound Profile workflow or Agent action session.");let Jo=ce&&z?await z({runId:O.id,workspace:ce.workspace,harnessRelease:{id:ce.release.harnessRelease.id,contentHash:ce.release.harnessRelease.contentHash},admittedAt:Y()}):null,oo=lt?null:await Ga({session:O,request:D,requestedTurnPermissions:ee});oo&&(ee=oo.turnPermissions);let Go=D.modelRef?.providerId??O.modelRef?.providerId??O.provider,el=D.modelRef?.modelId??D.model??O.modelRef?.modelId??null,As=qe?.preferences??await we(),Es=lt?null:cf(O,As),Ft=el?{providerId:Go,modelId:el}:D.modelRef??O.modelRef??null,tl=D.createImproveRun?Hf(D.createImproveRun):null,qt=$f(D.prompt)??tl;if(qt&&!Zc(O))throw new Error("Agent and Skill authoring are available in repository-aware Work.");let bn=tl?null:D.createImproveRun,nl=!Ct&&!re&&!qt&&Oi(O.experience)&&$?await $({prompt:D.prompt,profileRef:en}):null,Os=await n.runtimeEventsForSession(A,{excludeReasoningDeltas:!0}),Bn=Mp(D.metadata?.userQuestionResolution,Os),qg=Y(),ol=D.usageAttribution??oo?.usageAttribution??null,rl={...D.metadata?D.metadata:{},...O.profileWorkflowBinding?{profileWorkflowBinding:O.profileWorkflowBinding,profileWorkflowInputHash:Za}:{},...O.profileComponentBinding?{profileComponentBinding:O.profileComponentBinding}:{},taskExecutionPermissions:{...ee},...Es?{subagentDelegation:Es}:{},...ol?{usageAttribution:ol}:{},...bn?{createImproveRun:bn}:{},...qt?{authoringIntent:qt.intent,selectedProfileRef:en}:{}},K={id:oe,sessionId:A,providerTurnId:null,modelRef:Ft,prompt:D.prompt,startedAt:qg,completedAt:null,status:"in_progress",error:null,metadata:rl,createImproveRun:bn??null,profileSnapshot:(O.profileWorkflowBinding||O.profileComponentBinding)&&en?{ref:en,revision:(O.profileWorkflowBinding??O.profileComponentBinding).sourceRevision,sourceHash:(O.profileWorkflowBinding??O.profileComponentBinding).harnessRelease.contentHash}:en&>&>.mode!=="none"&&!gt.error?{ref:en,revision:gt.git?.head??null,sourceHash:Wk("sha256").update(JSON.stringify({profile:gt.activeProfile,revision:gt.git?.head??null,agents:gt.agents,skills:gt.skills.map(Se=>[Se.name,Se.sourceHash]),actions:gt.actionCatalog.map(Se=>Se.id)})).digest("hex")}:null,harnessSnapshot:ce?{schemaVersion:"openpond.harnessTurnSnapshot.v1",workspaceId:ce.workspace.id,workspaceRevision:ce.workspace.revision,sourceRevision:ce.workspace.sourceRevision,channelName:ce.workspace.currentChannel.name,channelRevision:ce.workspace.currentChannel.revision,harnessRelease:{id:ce.release.harnessRelease.id,contentHash:ce.release.harnessRelease.contentHash},overlay:Jo?{id:Jo.id,revision:Jo.revision,contentHash:Jo.contentHash}:null}:null};qe&&e.storageHome&&(Ep(e.storageHome,K.id,qe),K.metadata={...K.metadata,configuration:{effectiveRevision:qe.snapshot.effectiveRevision,sources:qe.snapshot.sources,instructionSources:qe.instructions.sources,diagnostics:qe.snapshot.diagnostics}}),await it(K),await Tp({session:O,turn:K,admission:re,failTurn:h});let xe=await e.isolatedProfileEvaluationForTurn?.(O,K)??!1,Te=await e.candidateAuthoringForTurn?.(O.id,K.id)??!1;if(lt&&!Te)throw await h(O,K.id,"The candidate Work owner did not admit this stored turn."),new Error("Candidate Work has no trusted authoring authority.");let sl=Te?O.cwd:(qt&>?.mode==="local"?gt.repoPath:null)??D.cwd??await T(O,{ensureOpenPond:!1})??O.cwd??(O.appId||Go==="codex"?y(O.appId):null);O=await u(A,{experience:O.experience,provider:Go,modelRef:jt?Ft:O.modelRef,status:"active",title:O.title==="New chat"?D.prompt.slice(0,64):O.title,cwd:sl});let $e=new AbortController,Ve={session:O,turn:K,controller:$e,...sf()};Uo.registerActiveTurn(A,Ve);let $g=Op(e.storageHome,K.id,qe?.snapshot.projectRoot??null,Se=>{Ve.interruptionReason=Se,$e.abort(),Ve.codexRuntime&&Ve.codexTurnId&&Ve.codexRuntime.client.interruptTurn({threadId:Ve.codexRuntime.threadId,turnId:Ve.codexTurnId}).catch(()=>{})});try{O.experience!=="chat"&&await pe.announcePresence(A,K.id).catch(async ne=>{await S(L({sessionId:A,turnId:K.id,name:"diagnostic",source:"server",status:"failed",output:`Peer presence notice unavailable: ${String(ne)}`}))}),await pg({context:oo,childTurnId:K.id});let Se=await Ir({storageHome:e.storageHome??t,attachmentRootDir:t,sessionId:A,turnId:K.id,attachments:D.attachments}),wt=O.experience==="work"?[...b?await b(O):[],...Se]:void 0,ro=xr(xe?Se.map(ne=>({...ne,localPath:`/workspace/work/inputs/${Uk.basename(ne.name)}`})):Se),Ye=Jn(zk(Np(D.prompt,Bn),D.metadata),ro),Re=typeof D.metadata?.taskInputId=="string"?await Me.getTaskInput(D.metadata.taskInputId):null;Ye+=Wm(Re),Re?.payload.taskReportingOnly===!0&&(Ye+=`
|
|
138
138
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{Ea as p,
|
|
2
|
+
import{Bl as g,Ea as p,el as m,zl as u}from"./chunk-AWD72O3G.js";import{c as a,f as c,h}from"./chunk-3M53YXEI.js";import{a as l}from"./chunk-FTQLQJQV.js";var b=new Set(["hosted-saved-model-serving","hosted-control-steering-serving","hosted-import-calibration","hosted-calibration","hosted-calibrations","hosted-archive-calibration"]);async function S(w){let{action:r,target:s,teamId:t,options:i,client:o,readInput:n}=w;if(r==="hosted-calibration"){if(!s)throw new Error("Supply the original calibration ID.");return o.getNeuronCalibration(t,s)}if(r==="hosted-calibrations"){if(s)throw new Error("Use filters to list calibration history.");return o.listNeuronCalibrations(t,{projectId:a(i,"projectId")||void 0,modelHash:a(i,"modelHash")||void 0,archived:c(i.archived),cursor:a(i,"cursor")||void 0,limit:h(i.limit,"--limit")})}if(r==="hosted-saved-model-serving"){let e=p.parse(await n());return o.savedModelServing(e.modelProjectId,{teamId:t,versionHash:e.versionHash})}if(r==="hosted-control-steering-serving"){let e=m.parse(await n());if(e.request.teamId!==t)throw new Error("Use the Model's original workspace.");if(e.request.action==="activate"&&!c(i.yes))throw new Error("Activating billed serving capacity requires --yes.");return o.controlSteeringModelServing(e.modelProjectId,e.request)}if(r==="hosted-import-calibration"){let e=u.parse(await n());if(e.teamId!==t)throw new Error("Use the calibration's original workspace.");return o.importNeuronCalibration(e)}if(r==="hosted-archive-calibration"){let e=await n();if(!e||typeof e!="object"||!("id"in e)||typeof e.id!="string"||!("request"in e))throw new Error("Supply the calibration ID and original archive request.");let d=g.parse(e.request);if(d.teamId!==t)throw new Error("Use the calibration's original workspace.");return o.archiveNeuronCalibration(e.id,d)}throw new Error("Unsupported steering command.")}l(S,"runHostedSteeringCommand");export{b as a,S as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{c as h}from"./chunk-RFQD6B44.js";import{a as u,d as f}from"./chunk-
|
|
2
|
+
import{c as h}from"./chunk-RFQD6B44.js";import{a as u,d as f}from"./chunk-X7ZMUWJO.js";import{d as w}from"./chunk-RPM4FDRX.js";import{c as l,f as c}from"./chunk-BSHAIAXY.js";import{c as a}from"./chunk-3M53YXEI.js";import{b as s}from"./chunk-GLUWATL5.js";import{a as i}from"./chunk-FTQLQJQV.js";import{readFile as p,stat as m}from"node:fs/promises";async function v(r,t=1048576){let o=a(r,"inputFile");if(!o)throw new Error("Provide --input-file with the exact reviewed request.");let e=await m(o);if(!e.isFile()||e.size>t)throw new Error(`The request must be a regular JSON file of at most ${t} bytes.`);let n=await p(o);if(n.byteLength>t)throw new Error("The request file grew beyond its byte allowance.");return JSON.parse(n.toString("utf8"))}i(v,"readEvaluationCommandInput");async function E(r){let t=a(r,"team");if(!t)throw new Error("Select --team for the evaluation owner.");if(r.local===!0||r.local==="true"){let e=new URL(a(r,"serverUrl")||u);if(e.protocol!=="http:"||!["localhost","127.0.0.1","[::1]"].includes(e.hostname)||e.username||e.password||e.search||e.hash||e.pathname!=="/")throw new Error("Local evaluation commands require an HTTP loopback server origin.");return{teamId:t,baseUrl:e.origin,apiKey:"local-capability",fetch:await f(e.origin)}}let o=await w();return{teamId:t,apiKey:await h(o,c(o)),baseUrl:l(r)??o.apiBaseUrl??s}}i(E,"evaluationCommandAccess");export{v as a,E as b};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as E,c as g}from"./chunk-
|
|
2
|
+
import{a as E,c as g}from"./chunk-TD5YYA5Z.js";import{g as v}from"./chunk-5TTQCT3G.js";import{v as C}from"./chunk-ZY32SZ2P.js";import{n as h}from"./chunk-RCT3O3HQ.js";import{A as p}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";function _(n){let i=new Map;async function f(e){C(e,8388608);let o=v.parse(e);if(o.kind==="profile")return n.executeProfile(o.request);let s=h(o),l=i.get(o.id);if(l){if(l.hash!==s)throw new Error("Experiment case operation already owns different admitted inputs.");return l.result}if(i.size>=100)throw new Error("Experiment case execution capacity reached.");let c=new AbortController,a=x(o,c.signal);i.set(o.id,{hash:s,controller:c,result:a});try{return await a}finally{i.delete(o.id)}}d(f,"execute");async function x(e,o){let s=AbortSignal.any([o,AbortSignal.timeout(e.timeoutMs)]);if(s.throwIfAborted(),e.harness){if(!n.executeHarness||e.environment.kind!=="text")throw new Error("The selected standalone Harness has no compatible native Experiment adapter.");return n.executeHarness(e,s)}let l=await n.resolvePolicy(e);if(s.throwIfAborted(),e.environment.kind==="javascript"){let r=n.resolveEnvironment?await n.resolveEnvironment(e):g;return E({taskId:e.taskId,instructions:`${e.instructions}
|
|
3
3
|
${JSON.stringify({policyVisibleContext:e.policyVisibleContext})}`,input:e.input,definition:e.environment.definition,asset:e.environment.asset,initialState:e.environment.initialState,seed:e.environment.seed,timeoutMs:e.timeoutMs,execute:r,policy:l,signal:s})}let c=[{role:"system",text:e.instructions},{role:"user",text:JSON.stringify({input:e.input,policyVisibleContext:e.policyVisibleContext})}],a=null,u=null,m="completed";try{let r=await l({messages:c,tools:[],signal:s});if(s.throwIfAborted(),r.toolCalls.length)throw new Error("Text cases do not support tool calls.");a=r.text,c.push({role:"assistant",text:r.text,toolCalls:[]})}catch(r){u=r instanceof Error?r.message:"Experiment policy failed.",m=o.aborted?"cancelled":s.aborted?"timed_out":"policy_failure"}let t={schemaVersion:"openpond.javascriptEnvironmentAttempt.v1",taskId:e.taskId,status:m,output:a,error:u,messages:c,collected:m==="completed",environmentCleanupComplete:!0,snapshot:null};return{...t,contentHash:h(t)}}return d(x,"run"),{execute:f,cancel(e){let o=i.get(e);return o?.controller.abort(new Error("experiment_case_cancelled")),{id:e,cancelled:!!o}},async close(){for(let e of i.values())e.controller.abort(new Error("experiment_runtime_closed"));await Promise.allSettled([...i.values()].map(e=>e.result))}}}d(_,"createExperimentCaseService");function A(n){let i=0,f=new Map;return async({messages:x,tools:e,signal:o})=>{let s=`experiment:${n.request.id}:${i++}`,l=0,c=x.map(t=>{if(t.role==="tool")return{role:"tool",tool_call_id:t.callId,name:t.name,content:JSON.stringify(t.observation)};if(t.role==="assistant"){let r=f.get(l++);return{role:"assistant",content:t.text,...r?{continuation:r}:{},...t.toolCalls.length?{tool_calls:t.toolCalls.map(y=>({id:y.id,type:"function",function:{name:y.name,arguments:JSON.stringify(y.arguments)}}))}:{}}}return{role:t.role,content:t.text}}),a="",u=[],m;for await(let t of n.stream({model:n.request.model.modelId,messages:[...n.request.model.messages,...c],tools:e.map(r=>({type:"function",function:{name:r.name,description:r.description,parameters:r.inputSchema}})),requestId:s,maxTokens:n.request.model.maxOutputTokens,temperature:n.request.model.temperature,topP:n.request.model.topP,signal:o})){if(o.throwIfAborted(),t.type==="text_delta"&&(a+=t.text,a.length>262144))throw new Error("Experiment policy response exceeded its retained-output limit.");if(t.type==="tool_call_delta"&&(u=t.toolCalls,u.length>200))throw new Error("Experiment policy response exceeded its tool-call limit.");t.type==="continuation"&&(m=t.continuation),t.type==="usage"&&await n.onUsage?.({requestId:s,usage:t.usage})}return m&&f.set(i-1,m),{text:a,toolCalls:u.map(t=>({id:p.string().min(1).parse(t.id),name:p.string().min(1).parse(t.function?.name),arguments:p.record(p.string(),p.unknown()).parse(JSON.parse(p.string().parse(t.function?.arguments)))}))}}}d(A,"createLocalExperimentPolicy");export{_ as a,A as b};
|