openpond 0.2.61 → 0.2.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-server.d.ts +3264 -18
- package/dist/app-server.js +1 -1
- package/dist/chunks/{acp-FUAWCKBH.js → acp-DYRBDJRU.js} +1 -1
- package/dist/chunks/{acp-agent-XBSJ27KI.js → acp-agent-UTLP7C3I.js} +1 -1
- package/dist/chunks/{actions-command-LOHNQUWP.js → actions-command-6LF4Z4WK.js} +1 -1
- package/dist/chunks/{app-layer-4BFMOMKM.js → app-layer-N2H3RBEN.js} +1 -1
- package/dist/chunks/{app-server-connected-apps-Q2VWWJNX.js → app-server-connected-apps-3T546FE7.js} +1 -1
- package/dist/chunks/app-server-evaluations-TXD747QA.js +2 -0
- package/dist/chunks/{app-server-harness-services-2PSZBT7U.js → app-server-harness-services-BBCDV5P3.js} +1 -1
- package/dist/chunks/app-server-runtime-VEJPDAFP.js +2 -0
- package/dist/chunks/{apps-7PIBF32Q.js → apps-CTT2XYRR.js} +1 -1
- package/dist/chunks/{chunk-KK626T3Z.js → chunk-2EPR4HLF.js} +1 -1
- package/dist/chunks/{chunk-5VPU7OS7.js → chunk-2IIBCCOK.js} +1 -1
- package/dist/chunks/{chunk-ZISYLRH6.js → chunk-2UDAKLJ4.js} +1 -1
- package/dist/chunks/{chunk-BDCTN4PU.js → chunk-2V4LPUBH.js} +1 -1
- package/dist/chunks/{chunk-I3X6M6ZO.js → chunk-3R4MSE2S.js} +1 -1
- package/dist/chunks/{chunk-OFVUN4KI.js → chunk-47AXSBPV.js} +1 -1
- package/dist/chunks/{chunk-BFKYRQMA.js → chunk-4N4EH3RJ.js} +1 -1
- package/dist/chunks/chunk-4PZWGNX4.js +86 -0
- package/dist/chunks/{chunk-VFLSBDNZ.js → chunk-4RZBGKT7.js} +1 -1
- package/dist/chunks/{chunk-VBW2X42G.js → chunk-4TM75R7V.js} +1 -1
- package/dist/chunks/chunk-4U2FNXQW.js +2 -0
- package/dist/chunks/{chunk-SCCYSPQ5.js → chunk-4ZBOYWQ3.js} +1 -1
- package/dist/chunks/{chunk-VWJ5IYQP.js → chunk-547AUVKN.js} +1 -1
- package/dist/chunks/{chunk-FJ3HMHT6.js → chunk-557XSPVS.js} +1 -1
- package/dist/chunks/{chunk-ZHFH2TZN.js → chunk-557YG77L.js} +1 -1
- package/dist/chunks/{chunk-MF35MALN.js → chunk-5A6ER3M2.js} +1 -1
- package/dist/chunks/{chunk-U4HZD2GM.js → chunk-5OSM75X5.js} +1 -1
- package/dist/chunks/{chunk-TH6Y4K5Z.js → chunk-6SH4B7DV.js} +1 -1
- package/dist/chunks/chunk-6XSSM4WT.js +3 -0
- package/dist/chunks/{chunk-HN2ZK6EV.js → chunk-7JBB4PXS.js} +1 -1
- package/dist/chunks/{chunk-SID4X3YN.js → chunk-7JXZNCBC.js} +1 -1
- package/dist/chunks/chunk-7KTARW23.js +2 -0
- package/dist/chunks/{chunk-M6JRS5PA.js → chunk-ABF3W2MO.js} +1 -1
- package/dist/chunks/{chunk-CGAL7IHZ.js → chunk-AKZPMKWP.js} +1 -1
- package/dist/chunks/{chunk-SIV5P6JO.js → chunk-AMO5DVKM.js} +2 -2
- package/dist/chunks/chunk-AZ7BL5FL.js +2 -0
- package/dist/chunks/{chunk-4RHM4WN2.js → chunk-B42QQUZY.js} +1 -1
- package/dist/chunks/{chunk-3DVWJCOA.js → chunk-B4RKHHF7.js} +1 -1
- package/dist/chunks/{chunk-CQF6QZEL.js → chunk-BEI4YULC.js} +1 -1
- package/dist/chunks/chunk-BKEDG3A4.js +22 -0
- package/dist/chunks/{chunk-GEXKTGLY.js → chunk-C7M2WBWZ.js} +14 -14
- package/dist/chunks/{chunk-ELYRVTTG.js → chunk-CJUVHE4U.js} +1 -1
- package/dist/chunks/{chunk-ZUNG6YDO.js → chunk-EIX2V2KU.js} +1 -1
- package/dist/chunks/{chunk-AWPYTDH4.js → chunk-EWOTDVDJ.js} +1 -1
- package/dist/chunks/{chunk-B47JMAVW.js → chunk-F4TJ7WQV.js} +1 -1
- package/dist/chunks/{chunk-TXBIZDXG.js → chunk-F7D4BMTO.js} +1 -1
- package/dist/chunks/{chunk-BWY4D3BN.js → chunk-FFWOTZQM.js} +1 -1
- package/dist/chunks/{chunk-6RVF2J47.js → chunk-FUSCTBJI.js} +1 -1
- package/dist/chunks/{chunk-BN5AVRUG.js → chunk-GAQLXFOT.js} +1 -1
- package/dist/chunks/{chunk-LHENAWLH.js → chunk-GEKORCMN.js} +1 -1
- package/dist/chunks/{chunk-ORLJJGZZ.js → chunk-GNCEZ3UP.js} +1 -1
- package/dist/chunks/{chunk-WRQEYW3V.js → chunk-GOIKLFXK.js} +1 -1
- package/dist/chunks/{chunk-65SM7Y2G.js → chunk-GQGLPKU4.js} +1 -1
- package/dist/chunks/{chunk-LBBXVOVR.js → chunk-GSWBNJGZ.js} +1 -1
- package/dist/chunks/{chunk-7EAWLYYB.js → chunk-GV3LFSMI.js} +1 -1
- package/dist/chunks/{chunk-GQUS7MCH.js → chunk-GW5SE3FM.js} +1 -1
- package/dist/chunks/{chunk-I3W27VK4.js → chunk-HBLN4OLY.js} +1 -1
- package/dist/chunks/{chunk-SGK4GR44.js → chunk-HFJUXKT5.js} +1 -1
- package/dist/chunks/{chunk-4P3X2RXA.js → chunk-HKV7RX5E.js} +1 -1
- package/dist/chunks/{chunk-QDBYLJGH.js → chunk-HXZXDDKW.js} +1 -1
- package/dist/chunks/{chunk-LNRFRAV5.js → chunk-INO67SEN.js} +1 -1
- package/dist/chunks/{chunk-E67M5WGY.js → chunk-IWK3RTLR.js} +1 -1
- package/dist/chunks/{chunk-U447MS3Y.js → chunk-J3B2GM4A.js} +1 -1
- package/dist/chunks/chunk-JCLTFDVW.js +2 -0
- package/dist/chunks/{chunk-25RDE7DV.js → chunk-JEISPWWM.js} +1 -1
- package/dist/chunks/{chunk-D4JZALZ4.js → chunk-JIFUGA3U.js} +1 -1
- package/dist/chunks/{chunk-H2AUR7OT.js → chunk-JQRMDFF3.js} +1 -1
- package/dist/chunks/{chunk-FWIPHEVA.js → chunk-JX6OX6XE.js} +1 -1
- package/dist/chunks/{chunk-D5ADDBS5.js → chunk-JY3YSI54.js} +1 -1
- package/dist/chunks/{chunk-CM5USMXN.js → chunk-KOKX7PBS.js} +1 -1
- package/dist/chunks/{chunk-3ZWLRBYZ.js → chunk-KUPJNBWG.js} +1 -1
- package/dist/chunks/chunk-LILXHGIA.js +2 -0
- package/dist/chunks/{chunk-MCIIGQT7.js → chunk-LJDBR3RN.js} +1 -1
- package/dist/chunks/{chunk-3TYCIYW6.js → chunk-LJPO3TEL.js} +1 -1
- package/dist/chunks/{chunk-MHYI7ATG.js → chunk-LRRBYIGH.js} +2 -2
- package/dist/chunks/{chunk-P4XM7LUT.js → chunk-M5IX6VUA.js} +1 -1
- package/dist/chunks/chunk-MEK7DLX3.js +2 -0
- package/dist/chunks/{chunk-TYHCBVQT.js → chunk-MILEWROZ.js} +1 -1
- package/dist/chunks/{chunk-ZBBVRYU3.js → chunk-MNFW5WLD.js} +1 -1
- package/dist/chunks/{chunk-2VXL6AU3.js → chunk-MNXNZDDW.js} +1 -1
- package/dist/chunks/chunk-N5GPINVP.js +2 -0
- package/dist/chunks/{chunk-TSAW2QVU.js → chunk-NBE74GLF.js} +1 -1
- package/dist/chunks/{chunk-VZXZ6CHS.js → chunk-NE4ESZPT.js} +1 -1
- package/dist/chunks/{chunk-CO3OJFPU.js → chunk-NKZNPTLA.js} +1 -1
- package/dist/chunks/{chunk-WFVOG5PU.js → chunk-NLQ2UPN2.js} +1 -1
- package/dist/chunks/chunk-NOSBNHGC.js +18 -0
- package/dist/chunks/{chunk-TTN63EAM.js → chunk-NWOK6NLE.js} +1 -1
- package/dist/chunks/{chunk-6MWT6BVU.js → chunk-NWQL6FNF.js} +1 -1
- package/dist/chunks/chunk-O3MHHGC5.js +151 -0
- package/dist/chunks/{chunk-IUGK6BBY.js → chunk-OCC43RSJ.js} +1 -1
- package/dist/chunks/{chunk-BQUWZRWU.js → chunk-P74RR2GB.js} +1 -1
- package/dist/chunks/{chunk-PAZDQRYU.js → chunk-PAE3PQEC.js} +1 -1
- package/dist/chunks/{chunk-M4ZRCRJM.js → chunk-PGO4FRHU.js} +2 -2
- package/dist/chunks/chunk-Q34IF4PW.js +2 -0
- package/dist/chunks/{chunk-Q324ZA5M.js → chunk-QAVQJZCM.js} +1 -1
- package/dist/chunks/{chunk-EIIGTADO.js → chunk-RBDUMASL.js} +1 -1
- package/dist/chunks/{chunk-TMMFF6DO.js → chunk-RH43WLBX.js} +1 -1
- package/dist/chunks/{chunk-RPOD6I64.js → chunk-RTJCELRR.js} +1 -1
- package/dist/chunks/{chunk-L3GA2CQI.js → chunk-SD64CLJX.js} +1 -1
- package/dist/chunks/{chunk-TNHDD3LO.js → chunk-SXMR6E2W.js} +1 -1
- package/dist/chunks/{chunk-MLTKB5G3.js → chunk-SZKFNKWO.js} +1 -1
- package/dist/chunks/chunk-T4QXKU5Y.js +1 -0
- package/dist/chunks/{chunk-PE7UKJXK.js → chunk-T6C5BNXK.js} +1 -1
- package/dist/chunks/{chunk-OMICIPPY.js → chunk-T6JN4PND.js} +1 -1
- package/dist/chunks/{chunk-OQUKSRU3.js → chunk-TGEGXTPR.js} +1 -1
- package/dist/chunks/chunk-TM4VEMNN.js +2 -0
- package/dist/chunks/chunk-TUCKED4T.js +4 -0
- package/dist/chunks/chunk-TVTFEGTU.js +2 -0
- package/dist/chunks/{chunk-HZLV773Y.js → chunk-TW3SRBLU.js} +1 -1
- package/dist/chunks/{chunk-BNZTJPK7.js → chunk-U456UP3N.js} +1 -1
- package/dist/chunks/chunk-UC3FXTDL.js +9 -0
- package/dist/chunks/{chunk-XLULTQLZ.js → chunk-UT6F6AIB.js} +1 -1
- package/dist/chunks/{chunk-OJFDI7VM.js → chunk-UTNGEMW5.js} +1 -1
- package/dist/chunks/{chunk-DW3GJRY3.js → chunk-VAJSRUAB.js} +1 -1
- package/dist/chunks/chunk-VE6ZIGUQ.js +2 -0
- package/dist/chunks/{chunk-GLVR74PX.js → chunk-VI32G77S.js} +1 -1
- package/dist/chunks/{chunk-ROE24PN5.js → chunk-VK4TPZTA.js} +1 -1
- package/dist/chunks/{chunk-Q66LWQGF.js → chunk-VSQXDS6H.js} +1 -1
- package/dist/chunks/{chunk-4GZ2FPB5.js → chunk-VWRTE64Y.js} +1 -1
- package/dist/chunks/{chunk-QRJPLZF7.js → chunk-W5W4IODW.js} +1 -1
- package/dist/chunks/{chunk-57RY3LSR.js → chunk-WGLVSGFA.js} +1 -1
- package/dist/chunks/{chunk-I7JCARVH.js → chunk-WQMXEZVE.js} +3 -3
- package/dist/chunks/chunk-X4ZT22SG.js +2 -0
- package/dist/chunks/{chunk-DGPGOBYZ.js → chunk-XSB3T4JZ.js} +1 -1
- package/dist/chunks/{chunk-ZZWAQBA2.js → chunk-XWDFXM3S.js} +1 -1
- package/dist/chunks/{chunk-4LZLO4OW.js → chunk-Y2KPHVZK.js} +1 -1
- package/dist/chunks/chunk-ZQHPGEYT.js +2 -0
- package/dist/chunks/{chunk-T4LLJC5N.js → chunk-ZXT7V64X.js} +1 -1
- package/dist/chunks/cli-GCSO2OAI.js +2 -0
- package/dist/chunks/{configuration-command-ONGI2BJD.js → configuration-command-BU2RPG33.js} +1 -1
- package/dist/chunks/connected-app-executor-UDE7U4KG.js +2 -0
- package/dist/chunks/{connected-evidence-4J3YXU4O.js → connected-evidence-GXIY2L7C.js} +1 -1
- package/dist/chunks/{connected-starting-assets-OXLT7S4O.js → connected-starting-assets-V5QXRK5Q.js} +1 -1
- package/dist/chunks/{connection-HJWE6SEW.js → connection-XMAAGMXJ.js} +1 -1
- package/dist/chunks/{continual-CJUZM5ZQ.js → continual-FLW6DAJK.js} +1 -1
- package/dist/chunks/{core-commands-JGXU6B4C.js → core-commands-NJ6TGND4.js} +1 -1
- package/dist/chunks/{dataset-preparation-authoring-DFGJBMVF.js → dataset-preparation-authoring-IUXUQK3L.js} +1 -1
- package/dist/chunks/{datasets-MNHZAZIB.js → datasets-AH56DKLZ.js} +1 -1
- package/dist/chunks/{desktop-test-P23MHAIG.js → desktop-test-PYUTEOWO.js} +1 -1
- package/dist/chunks/{dist-IIFTZWNR.js → dist-5267UT3V.js} +1 -1
- package/dist/chunks/{dist-X64FC6NA.js → dist-HSC43RG4.js} +1 -1
- package/dist/chunks/{evaluation-coordination-6NQEH5WU.js → evaluation-coordination-3AUICOC5.js} +1 -1
- package/dist/chunks/{experiment-improvements-M27Z5OF4.js → experiment-improvements-YS7GGPDW.js} +1 -1
- package/dist/chunks/experiments-EJZK7FPT.js +2 -0
- package/dist/chunks/{experiments-signal-R3NNH7WR.js → experiments-signal-NKUIJCIY.js} +1 -1
- package/dist/chunks/{extension-C33NUFDL.js → extension-ZM6NI5O5.js} +1 -1
- package/dist/chunks/{help-M2VQGPVC.js → help-PXUUREHZ.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-CTC5JQPD.js +2 -0
- package/dist/chunks/host-profile-external-dataset-GJWDY3YT.js +2 -0
- package/dist/chunks/hosted-app-server-composition-TLJSKMJT.js +2 -0
- package/dist/chunks/hosted-experiment-improvement-TIVXXRPG.js +3 -0
- package/dist/chunks/hosted-harness-runtime-SFLJEZFI.js +2 -0
- package/dist/chunks/{hosted-profile-candidate-37ZFY2LH.js → hosted-profile-candidate-DKEMVIYG.js} +1 -1
- package/dist/chunks/hosted-profile-compiler-V6YR6EHO.js +2 -0
- package/dist/chunks/{hosted-profile-evaluation-control-UQBMML6K.js → hosted-profile-evaluation-control-ERCXAPZD.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-inspection-YASS4T6L.js → hosted-profile-evaluation-inspection-Q3AIIIB6.js} +1 -1
- package/dist/chunks/hosted-profile-evaluation-preparation-ELLGH44Z.js +3 -0
- package/dist/chunks/{hosted-tasksets-CVUP7MS6.js → hosted-tasksets-X2YCFYEJ.js} +1 -1
- package/dist/chunks/{human-review-IJETDOWB.js → human-review-5WM6MSON.js} +1 -1
- package/dist/chunks/{import-WLLUIDS6.js → import-JWZSZCE4.js} +1 -1
- package/dist/chunks/local-harness-improvement-runtime-IGIKM6GJ.js +2 -0
- package/dist/chunks/local-harness-taskset-review-DR2ZIDOH.js +2 -0
- package/dist/chunks/{model-projects-AVBQDNYG.js → model-projects-H22KENI4.js} +1 -1
- package/dist/chunks/opchat-3S6TSDZO.js +3 -0
- package/dist/chunks/opchat-bounded-chat-B7LPCD4U.js +2 -0
- package/dist/chunks/{organizations-DJRJWC5I.js → organizations-62YNTZTO.js} +1 -1
- package/dist/chunks/{profile-JRS3JNRC.js → profile-ELE2D7HU.js} +1 -1
- package/dist/chunks/project-action-payload-32F4X2BB.js +2 -0
- package/dist/chunks/{project-agent-2KNJFNZI.js → project-agent-O4REKO6T.js} +1 -1
- package/dist/chunks/{published-experiment-source-LFYHKFAO.js → published-experiment-source-DAOTJLIN.js} +1 -1
- package/dist/chunks/refiner-profile-service-DYMZ7J3X.js +2 -0
- package/dist/chunks/{runtime-CBJF5GMB.js → runtime-776NUSE7.js} +2 -2
- package/dist/chunks/{sandbox-command-IIGTPYN3.js → sandbox-command-UQ26NDIX.js} +1 -1
- package/dist/chunks/{sandbox-template-FTANKQIA.js → sandbox-template-WP6YCGBK.js} +1 -1
- package/dist/chunks/saved-work-PG52WCRQ.js +2 -0
- package/dist/chunks/{send-turn-5UB7ZBJV.js → send-turn-RPB65PME.js} +1 -1
- package/dist/chunks/{src-4YZF6L6H.js → src-2R4CMCJ5.js} +1 -1
- package/dist/chunks/src-AU6LG7E6.js +421 -0
- package/dist/chunks/standalone-experiment-turn-owner-SD3SUTKX.js +2 -0
- package/dist/chunks/{store-chat-resources-CGW7PDCG.js → store-chat-resources-T4LR7K25.js} +1 -1
- package/dist/chunks/{store-continual-support-reviews-GWI2FRII.js → store-continual-support-reviews-R62D2HD6.js} +1 -1
- package/dist/chunks/{store-conversation-serving-637AHKBP.js → store-conversation-serving-25O7BAR2.js} +1 -1
- package/dist/chunks/{store-create-improve-ZG653Z63.js → store-create-improve-T5E2GUKK.js} +1 -1
- package/dist/chunks/{store-datasets-IW6F2QZM.js → store-datasets-5Y4U5L3R.js} +1 -1
- package/dist/chunks/{store-evaluation-results-V5J6L4NV.js → store-evaluation-results-WUVJWCFU.js} +1 -1
- package/dist/chunks/{store-harness-workspaces-HHMM6GNK.js → store-harness-workspaces-IFEFY5CK.js} +1 -1
- package/dist/chunks/{store-human-review-V5H4QDHR.js → store-human-review-ZQNLZRGG.js} +1 -1
- package/dist/chunks/store-learned-preference-migration-validation-UH6MJQSH.js +2 -0
- package/dist/chunks/{store-local-experiments-A2UWYPVQ.js → store-local-experiments-LOH4F4TF.js} +1 -1
- package/dist/chunks/{store-model-batch-review-KMYPYWJR.js → store-model-batch-review-QO4VVKWC.js} +1 -1
- package/dist/chunks/{store-model-configuration-UXNC4PGY.js → store-model-configuration-C3HSOFD5.js} +1 -1
- package/dist/chunks/store-model-project-preparation-RQ2YTC2Y.js +2 -0
- package/dist/chunks/{store-preference-comparison-HTOXLWKF.js → store-preference-comparison-RNIFLJRW.js} +1 -1
- package/dist/chunks/{store-schedules-QVWT7AEB.js → store-schedules-DVQ2PP4F.js} +1 -1
- package/dist/chunks/{store-sidebar-file-bookmarks-G5Z6NZWL.js → store-sidebar-file-bookmarks-LXWFFYCZ.js} +1 -1
- package/dist/chunks/{store-sidebar-preferences-27FFMUWU.js → store-sidebar-preferences-4HH7LX6N.js} +1 -1
- package/dist/chunks/{store-subagents-PK7ZWLPR.js → store-subagents-JLW4GD4Q.js} +1 -1
- package/dist/chunks/{store-task-inbox-LNDCZOYE.js → store-task-inbox-DL5RYFPO.js} +1 -1
- package/dist/chunks/{store-task-inventory-IG6HGWSQ.js → store-task-inventory-NJXRXFLC.js} +1 -1
- package/dist/chunks/store-taskset-drafts-UFGN4SGF.js +9 -0
- package/dist/chunks/{store-training-NQRRPKEZ.js → store-training-VRLU6NFX.js} +1 -1
- package/dist/chunks/{store-training-jobs-F6Y2ZTXP.js → store-training-jobs-3ZHG4LGI.js} +1 -1
- package/dist/chunks/{store-training-models-NRSLSBEW.js → store-training-models-KWQD5PRP.js} +1 -1
- package/dist/chunks/{store-usage-GFHQYT34.js → store-usage-ZRS3ILF2.js} +1 -1
- package/dist/chunks/{taskset-NYLUYX6K.js → taskset-QDMCQQDJ.js} +1 -1
- package/dist/chunks/{taskset-packages-I7I5KBFP.js → taskset-packages-CBLJFWDQ.js} +1 -1
- package/dist/chunks/{teams-bot-FMAEDGSD.js → teams-bot-GF272RGC.js} +1 -1
- package/dist/chunks/{training-UBX6E7SK.js → training-DF5UEPY3.js} +1 -1
- package/dist/chunks/{training-error-AYOGHHL2.js → training-error-L5V5IBX3.js} +1 -1
- package/dist/chunks/training-hosted-I2NDBYGS.js +2 -0
- package/dist/chunks/training-hosted-report-4F25RZZ4.js +2 -0
- package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +2 -0
- package/dist/chunks/training-project-preparation-XWGRY5ME.js +3 -0
- package/dist/chunks/{web-search-Q4OQVUNH.js → web-search-5RUXYIOF.js} +1 -1
- package/dist/chunks/{workspaces-XREEVSTS.js → workspaces-JRY2IE7H.js} +1 -1
- package/dist/cli.js +2 -2
- package/dist/hosted-chat.d.ts +28 -0
- package/dist/index.js +1 -1
- package/dist/skills/openpond-cli/SKILL.md +15 -2
- package/dist/skills/openpond-cli/references/compact-resource-tables.md +3 -3
- package/dist/skills/openpond-cli/references/diagnose-and-improve.md +4 -2
- package/dist/skills/openpond-cli/references/experiments-and-training.md +155 -10
- package/dist/skills/openpond-taskset-authoring/SKILL.md +5 -4
- package/dist/skills/openpond-taskset-authoring/artifact.json +7 -7
- package/dist/skills/openpond-taskset-authoring/references/failure-diagnosis.md +52 -1
- package/dist/web/assets/App-DHJVXTI2.js +54 -0
- package/dist/web/assets/App-DpFKLxuA.css +1 -0
- package/dist/web/assets/AppDialog-BurL61qE.js +1 -0
- package/dist/web/assets/AppTerminalPanel-RjFlF-a4.js +2 -0
- package/dist/web/assets/{AppToastContext-BB_2hRfw.js → AppToastContext-DZLErwj0.js} +1 -1
- package/dist/web/assets/AppsView-ttlr9ckQ.js +1 -0
- package/dist/web/assets/{AttachmentTypeIcon-DOAsVQjt.js → AttachmentTypeIcon-CpMSfHCK.js} +1 -1
- package/dist/web/assets/BrowserSidebar-Cp2l0kg0.js +1 -0
- package/dist/web/assets/{CartesianChart-DO76yfJb.js → CartesianChart-CEbM980A.js} +1 -1
- package/dist/web/assets/{ChatTimelineEntry-IKzZsHoI.js → ChatTimelineEntry-BITv20Ze.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-DNoknVMD.js → CollaborationTabs-DrKJmJZK.js} +1 -1
- package/dist/web/assets/{CommandMenu-CBY2AJxV.js → CommandMenu-6oj8FUr6.js} +1 -1
- package/dist/web/assets/CommunityView-BzpIq1lD.js +1 -0
- package/dist/web/assets/ComposerAttachments-6en7m_ov.js +2 -0
- package/dist/web/assets/ComposerCreateImproveStrip-ChplO9YP.js +1 -0
- package/dist/web/assets/ConversationImportsSettings-DRHgc7j_.js +1 -0
- package/dist/web/assets/FilePagePreview-CW4J_1u7.js +2 -0
- package/dist/web/assets/GetStartedView-CaBk_mX6.js +1 -0
- package/dist/web/assets/GettingStartedDialog-EsH-8Diz.css +1 -0
- package/dist/web/assets/GettingStartedDialog-JtFLyU3F.js +1 -0
- package/dist/web/assets/{HostedModelLearningReview-B0rbIVvn.js → HostedModelLearningReview-hhcjDifK.js} +1 -1
- package/dist/web/assets/HostedModelLearningSettings-CY8198Y1.js +1 -0
- package/dist/web/assets/LabModelVersionDetailPage-f0tHT-Sn.js +1 -0
- package/dist/web/assets/LabSkillSidebar-HibUEEko.js +1 -0
- package/dist/web/assets/{LabsRoute-DOnw39du.js → LabsRoute-B61l1b8P.js} +8 -8
- package/dist/web/assets/MainChatThread-egKi0gLk.js +2 -0
- package/dist/web/assets/MainPane-2dj6Dg4l.js +95 -0
- package/dist/web/assets/{MainPane-CuBUBA9F.css → MainPane-BwHw3UYp.css} +1 -1
- package/dist/web/assets/NativeSetupTerminal-3eR9D_R3.css +1 -0
- package/dist/web/assets/NativeSetupTerminal-CNHTByLo.js +2 -0
- package/dist/web/assets/NativeSkillSidebar-DCdMbSfe.js +1 -0
- package/dist/web/assets/NewProjectDialog-t9Imnb__.js +1 -0
- package/dist/web/assets/OutputsPage-CeGq_F1S.js +1 -0
- package/dist/web/assets/{PageChrome-BBnWAENV.js → PageChrome-VHME5V8j.js} +1 -1
- package/dist/web/assets/ProjectsPage-2TMZoEPB.js +1 -0
- package/dist/web/assets/RightChatPanelStack-B3mBViGC.js +1 -0
- package/dist/web/assets/RightSidebarHomePanel-CxDYSyyx.js +1 -0
- package/dist/web/assets/ScheduledWorkPage-Dh47iH11.js +1 -0
- package/dist/web/assets/SettingsView-D2bu3tK_.js +5 -0
- package/dist/web/assets/TeamChatView-CN17AsgA.js +1 -0
- package/dist/web/assets/TerminalOverlay-DlhRpi-X.js +16 -0
- package/dist/web/assets/TrainingCreationPanel-DJKzaNFj.js +1 -0
- package/dist/web/assets/{TrainingDraftPanel-HznyNCJ4.js → TrainingDraftPanel-BhhZPPuY.js} +1 -1
- package/dist/web/assets/{TrainingMetricWorkbench-BmzHLwIP.js → TrainingMetricWorkbench-DBy8F1xp.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-C3oZ1UEP.js → UsageSettingsSection-DTZslBeW.js} +2 -2
- package/dist/web/assets/WorkSidebarPanel-Ds-eTQLs.js +1 -0
- package/dist/web/assets/WorkspaceDiffPanel-D_iyg2D4.js +11 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-Fn-NlfMQ.js +35 -0
- package/dist/web/assets/WorkspaceFileLocation-ChEeZffU.js +1 -0
- package/dist/web/assets/WorkspaceGitDialogs-D_RUXhTi.js +1 -0
- package/dist/web/assets/{WorkspaceMonacoEditor-DfsL1WIi.js → WorkspaceMonacoEditor-BJxaiDrj.js} +3 -3
- package/dist/web/assets/{WorkspacePresentationPreview-WuS_B45u.js → WorkspacePresentationPreview-A28Poeca.js} +1 -1
- package/dist/web/assets/{chat-resources-CItQ4mZD.js → chat-resources-3SvnVeKv.js} +1 -1
- package/dist/web/assets/{chevron-down-Bnma8EMP.js → chevron-down-dYn0pd4Q.js} +1 -1
- package/dist/web/assets/chevron-right-sFx2xRvT.js +1 -0
- package/dist/web/assets/{chunk-24N6A6SF-BUjzKvRC.js → chunk-BYNVSWIQ-DWh9SmdB.js} +1 -1
- package/dist/web/assets/{chunk-GAIDBPFY-BLuHpurI.js → chunk-ZFYI4P6C-BmsNtSkR.js} +1 -1
- package/dist/web/assets/{client-choice-storage-BuNdhYSV.js → client-choice-storage-DTTLbrYt.js} +1 -1
- package/dist/web/assets/{cloud-upload-DOftANif.js → cloud-upload-CRMPCFnq.js} +1 -1
- package/dist/web/assets/connected-app-mentions-D3wRZLwI.js +1 -0
- package/dist/web/assets/copy-DR4ielPn.js +1 -0
- package/dist/web/assets/{createLucideIcon-C4b2afqG.js → createLucideIcon-DmttVQ_a.js} +1 -1
- package/dist/web/assets/{cssMode-0Hn7tCrE.js → cssMode-d-2GuNvW.js} +1 -1
- package/dist/web/assets/external-link-B4rPiZEp.js +1 -0
- package/dist/web/assets/{folder-open-wJwCoIDs.js → folder-open-BrIUcUk_.js} +1 -1
- package/dist/web/assets/{folder-plus-DnTN6mcP.js → folder-plus-DwImGEt-.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-98y7PP6G.js → git-commit-horizontal-Ds1mkrlW.js} +1 -1
- package/dist/web/assets/{htmlMode-JO_QluNH.js → htmlMode-s15GR0Fn.js} +1 -1
- package/dist/web/assets/icons-CK5-nxVC.js +1 -0
- package/dist/web/assets/{image-C7HVlg3X.js → image-CY-sHbfQ.js} +1 -1
- package/dist/web/assets/{index-BsPUniZy.js → index-DYrLeSyY.js} +2 -2
- package/dist/web/assets/index-Dezj4Z2p.css +1 -0
- package/dist/web/assets/{info-BLWDShaz.js → info-aSvM8YlJ.js} +1 -1
- package/dist/web/assets/{jsonMode-BfTXJted.js → jsonMode-vos9H2hz.js} +1 -1
- package/dist/web/assets/loader-circle-cyf35w3i.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-68cAgnuv.js → lspLanguageFeatures-pQmEaoMt.js} +1 -1
- package/dist/web/assets/{maximize-2-DUWvLap6.js → maximize-2-DgF6ZVOM.js} +1 -1
- package/dist/web/assets/{monaco.contribution-_3aU1TTb.js → monaco.contribution-BPwsKvRB.js} +2 -2
- package/dist/web/assets/{monaco.contribution-h8U8HXFT.js → monaco.contribution-BbMpa0_-.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CWeY6ia1.js → monaco.contribution-CJlccVX3.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DOiiDDen.js → monaco.contribution-pWurLXbm.js} +2 -2
- package/dist/web/assets/{monitor-B6OuAu13.js → monitor-DlEV241C.js} +1 -1
- package/dist/web/assets/{paperclip-DSHxP9CY.js → paperclip-fnRZSIRc.js} +1 -1
- package/dist/web/assets/{pdf-RXlFwNte.js → pdf-CT3zVKCE.js} +1 -1
- package/dist/web/assets/play-wI_3FLr4.js +1 -0
- package/dist/web/assets/plus-DoJe4fLj.js +1 -0
- package/dist/web/assets/{presentation-C9WnPDVr.js → presentation-Bb8ecExR.js} +1 -1
- package/dist/web/assets/profile-agent-labels-Duh96b8x.js +1 -0
- package/dist/web/assets/{python-BQXo7wMt.js → python-DXA1xp0A.js} +1 -1
- package/dist/web/assets/{refresh-cw-NXOER_CD.js → refresh-cw-B53QjxMO.js} +1 -1
- package/dist/web/assets/{save-BxXc21N6.js → save-V1Q4Fcqa.js} +1 -1
- package/dist/web/assets/settings-lists-CtH1A57b.js +5 -0
- package/dist/web/assets/square-BqSK-hv9.js +1 -0
- package/dist/web/assets/square-terminal-Dmgkm5zY.js +1 -0
- package/dist/web/assets/submit-issue-command-DRgUboVW.js +3 -0
- package/dist/web/assets/{toggleHighContrast-Di1cRuQ4.js → toggleHighContrast-B-BD2K2Q.js} +1 -1
- package/dist/web/assets/{training-managed-adapter-81RrdT1k.js → training-managed-adapter-BXNwgd3P.js} +1 -1
- package/dist/web/assets/{training-model-data-CmVo80ZR.js → training-model-data-14942K_Z.js} +5 -5
- package/dist/web/assets/{tsMode-PxisJRYB.js → tsMode-DdgIcxK3.js} +1 -1
- package/dist/web/assets/ui-theme.generated-D-mc26qt.js +144 -0
- package/dist/web/assets/{upload-NXasN1wU.js → upload-82Y6RjLi.js} +1 -1
- package/dist/web/assets/{useAccountSettings-Dqqt1vUY.js → useAccountSettings-BgHXNpq_.js} +1 -1
- package/dist/web/assets/{useAgentInventory-BV4CUWzJ.js → useAgentInventory-B-LNn3up.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-Cc0M_qax.js → useLocalAgentSchedules-CsKv22Hs.js} +1 -1
- package/dist/web/assets/{useQuery-ByaRC9SK.js → useQuery-CPC2wsWm.js} +1 -1
- package/dist/web/assets/{wifi-off-aVJ3AvT_.js → wifi-off-DXOoDN9l.js} +1 -1
- package/dist/web/assets/{workers-u92Boudu.js → workers-Clf4hKt5.js} +1 -1
- package/dist/web/assets/x-IPhrr4ju.js +1 -0
- package/dist/web/assets/{yaml-BxQUS0ew.js → yaml-I1tf8Uxx.js} +1 -1
- package/dist/web/index.html +12 -3
- package/docs/command-reference.md +28 -2
- package/package.json +2 -1
- package/dist/chunks/app-server-evaluations-HAAYVEXB.js +0 -2
- package/dist/chunks/app-server-runtime-B6BAJA6L.js +0 -2
- package/dist/chunks/chunk-4N3UF3U5.js +0 -2
- package/dist/chunks/chunk-6DCXAXVD.js +0 -22
- package/dist/chunks/chunk-BLKTUFGB.js +0 -2
- package/dist/chunks/chunk-E3EKBPCB.js +0 -2
- package/dist/chunks/chunk-F5JDBDYL.js +0 -2
- package/dist/chunks/chunk-JEVA7YQL.js +0 -3
- package/dist/chunks/chunk-KC7I6E6W.js +0 -2
- package/dist/chunks/chunk-OJSK4NSW.js +0 -151
- package/dist/chunks/chunk-UBCLPZSQ.js +0 -4
- package/dist/chunks/chunk-UJBEWIR3.js +0 -8
- package/dist/chunks/chunk-V67IFV26.js +0 -86
- package/dist/chunks/chunk-VSUHJ46L.js +0 -18
- package/dist/chunks/chunk-X3WEQL3O.js +0 -2
- package/dist/chunks/chunk-XK7SPL63.js +0 -2
- package/dist/chunks/chunk-YR5ID2SS.js +0 -2
- package/dist/chunks/cli-WC45SI7E.js +0 -2
- package/dist/chunks/connected-app-executor-TZJB25UZ.js +0 -2
- package/dist/chunks/experiments-IWSCFDBB.js +0 -2
- package/dist/chunks/host-profile-evaluation-tools-EFB2YIK2.js +0 -2
- package/dist/chunks/host-profile-external-dataset-KSNREH3Q.js +0 -2
- package/dist/chunks/hosted-app-server-composition-VV545TYL.js +0 -2
- package/dist/chunks/hosted-experiment-improvement-NYLADI7S.js +0 -3
- package/dist/chunks/hosted-harness-runtime-Z54E5MD7.js +0 -2
- package/dist/chunks/hosted-profile-compiler-SW2RWTDZ.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-preparation-ZAOGDQXO.js +0 -3
- package/dist/chunks/local-harness-improvement-runtime-KB4OP3SM.js +0 -2
- package/dist/chunks/local-harness-taskset-review-SUDEUGUU.js +0 -2
- package/dist/chunks/opchat-KSOJEL4W.js +0 -3
- package/dist/chunks/project-action-payload-SQ5BSQHY.js +0 -2
- package/dist/chunks/refiner-profile-service-UWI4NAZ3.js +0 -2
- package/dist/chunks/saved-work-QA46KCME.js +0 -2
- package/dist/chunks/src-E7NWAN5B.js +0 -420
- package/dist/chunks/standalone-experiment-turn-owner-SQJ5HXDZ.js +0 -2
- package/dist/chunks/store-learned-preference-migration-validation-KOCW5NOZ.js +0 -2
- package/dist/chunks/store-taskset-drafts-TA6X245D.js +0 -9
- package/dist/chunks/training-hosted-4R4QTSAN.js +0 -2
- package/dist/chunks/training-hosted-report-UQVK6FTG.js +0 -2
- package/dist/web/assets/App-Df7uYQGj.css +0 -1
- package/dist/web/assets/App-Yy3l2sdD.js +0 -56
- package/dist/web/assets/AppTerminalPanel-Dqr6VS3I.js +0 -2
- package/dist/web/assets/AppsView-27Fl_-49.js +0 -1
- package/dist/web/assets/BrowserSidebar-bnI3sSZO.js +0 -1
- package/dist/web/assets/CommunityView-CFKM7FTY.js +0 -1
- package/dist/web/assets/ComposerAttachments-BdjBddKf.js +0 -2
- package/dist/web/assets/ComposerCreateImproveStrip-ViJ5E0We.js +0 -1
- package/dist/web/assets/ConversationImportsSettings-xLl-7G9R.js +0 -1
- package/dist/web/assets/FilePagePreview-CTHuPzJt.js +0 -2
- package/dist/web/assets/GetStartedView-DvV_RMgM.js +0 -1
- package/dist/web/assets/GettingStartedDialog-B1jFmfgd.js +0 -1
- package/dist/web/assets/GettingStartedDialog-C73Bdcz2.css +0 -1
- package/dist/web/assets/HostedModelLearningSettings-DzAiutjq.js +0 -1
- package/dist/web/assets/LabModelVersionDetailPage-CF8FkRUY.js +0 -1
- package/dist/web/assets/LabSkillSidebar-gjbl9Nlv.js +0 -1
- package/dist/web/assets/MainChatThread-BUKup-JB.js +0 -2
- package/dist/web/assets/MainPane-BpE7AKXu.js +0 -92
- package/dist/web/assets/NativeSkillSidebar-Br5Lk6iU.js +0 -1
- package/dist/web/assets/NewProjectDialog-DyuKPOvF.js +0 -1
- package/dist/web/assets/OutputsPage-Dl63CVrw.js +0 -1
- package/dist/web/assets/ProjectsPage-BNF1TiyR.js +0 -1
- package/dist/web/assets/RightChatPanelStack-CxVAAbp-.js +0 -1
- package/dist/web/assets/RightSidebarHomePanel-D46ktZg-.js +0 -1
- package/dist/web/assets/ScheduledWorkPage-Cp0Hf-hs.js +0 -1
- package/dist/web/assets/SettingsView-BT57Q5Wx.js +0 -5
- package/dist/web/assets/TeamChatView-BmxTJ9E5.js +0 -1
- package/dist/web/assets/TerminalOverlay-D-Yq8av_.js +0 -16
- package/dist/web/assets/TrainingCreationPanel-CwfNPj_G.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-myTA9tsh.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-D0dzFgzW.js +0 -11
- package/dist/web/assets/WorkspaceEnvironmentMenu-AUzME1eX.js +0 -35
- package/dist/web/assets/WorkspaceFileLocation-Ai8Tz2Mz.js +0 -1
- package/dist/web/assets/WorkspaceGitDialogs-D-UCCckC.js +0 -1
- package/dist/web/assets/chevron-right-Cxv_xBz5.js +0 -1
- package/dist/web/assets/git-dialogs-C631EFyO.css +0 -1
- package/dist/web/assets/icons-kaq6k88m.js +0 -1
- package/dist/web/assets/index-DUMDOdB2.css +0 -1
- package/dist/web/assets/play-BPPQoqMl.js +0 -1
- package/dist/web/assets/plus-D18vYzHF.js +0 -1
- package/dist/web/assets/settings-lists-DMNPkGYk.js +0 -5
- package/dist/web/assets/square-Da8RuqW4.js +0 -1
- package/dist/web/assets/ui-theme.generated-R0MY_Jy0.js +0 -136
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as o}from"./chunk-FTQLQJQV.js";var p=class extends Error{static{o(this,"ApiTimeoutError")}timeoutMs;requestUrl;code="OPENPOND_API_TIMEOUT";constructor(t,r){super(`API request timed out after ${t}ms: ${r}`),this.timeoutMs=t,this.requestUrl=r,this.name="ApiTimeoutError"}},u=class extends Error{static{o(this,"ApiResponseTooLargeError")}maximumBytes;requestUrl;code="OPENPOND_API_RESPONSE_TOO_LARGE";constructor(t,r){super(`API response exceeded ${t} bytes: ${r}`),this.maximumBytes=t,this.requestUrl=r,this.name="ApiResponseTooLargeError"}},w=class extends Error{static{o(this,"OpenPondApiError")}status;apiMessage;code;constructor(t,r,a,s=null){let n=s||r;super(`${a} failed: ${t}${n?` ${n}`:""}`),this.status=t,this.apiMessage=s,this.name="OpenPondApiError",this.code=r||"OPENPOND_API_ERROR"}};async function v(e,t,r,a={}){let{timeoutMs:s=3e4,maxResponseBytes:n=8388608,explicitBearerAuth:i=!1,...c}=a,m=`${e}${r}`,d=new Headers(c.headers);d.set("Content-Type","application/json");let h=i?void 0:process.env.OPENPOND_API_KEY,y=t?.trim()||"",A=!i&&y.startsWith("opk_"),U=h||(A?y:null);U&&!d.has("openpond-api-key")&&d.set("openpond-api-key",U),t?d.set("Authorization",A?`ApiKey ${y}`:`Bearer ${t}`):h&&!d.has("Authorization")&&d.set("Authorization",`ApiKey ${h}`);let f=new AbortController,_=new p(s,m),E=s>0?setTimeout(()=>f.abort(_),s):null;E?.unref?.();let $=I(c.signal,f.signal,s),O=o(()=>{E&&clearTimeout(E)},"cleanup");try{let g=await fetch(m,{...c,headers:d,signal:$});return b(g,{cleanup:O,maximumBytes:n,requestUrl:m,timeoutController:f,timeoutError:_})}catch(g){throw O(),f.signal.aborted?_:g}}o(v,"apiFetch");async function L(e,t){let r;try{let a=await e.text();r=a?JSON.parse(a):{}}catch(a){if(a instanceof p||a instanceof u)throw a;r={}}if(!e.ok){let a=typeof r.error=="string"?r.error:null,s=typeof r.message=="string"?r.message:null;throw new w(e.status,a,t,s)}return r}o(L,"readApiJson");function b(e,t){if(!e.body)return t.cleanup(),e;let r=Number(e.headers.get("content-length"));if(t.maximumBytes>0&&Number.isFinite(r)&&r>t.maximumBytes)throw t.cleanup(),e.body.cancel(),new u(t.maximumBytes,t.requestUrl);let a=e.body.getReader(),s=0,n=new ReadableStream({async pull(i){try{let c=await a.read();if(c.done){t.cleanup(),i.close();return}if(s+=c.value.byteLength,t.maximumBytes>0&&s>t.maximumBytes){t.cleanup(),await a.cancel(),i.error(new u(t.maximumBytes,t.requestUrl));return}i.enqueue(c.value)}catch(c){t.cleanup(),i.error(t.timeoutController.signal.aborted?t.timeoutError:c)}},async cancel(i){t.cleanup(),await a.cancel(i)}});return new Response(n,{headers:e.headers,status:e.status,statusText:e.statusText})}o(b,"boundedResponse");function I(e,t,r){return r<=0?e??void 0:e?AbortSignal.any([e,t]):t}o(I,"composedSignal");var H="https://openpond.ai",q="https://api.openpond.ai",P="https://api.openpond.ai/opchat/v1";import{randomUUID as C}from"node:crypto";function B(e){let t=l(e);if(!t)throw new Error("apiBaseUrl is required");return t}o(B,"normalizeApiBaseUrl");function x(e){return e.replace(/\/+$/,"")}o(x,"trimTrailingSlashes");function l(e){let t=x(e?.trim()??"");return t?(t=t.replace(/\/chat\/completions$/i,"").replace(/\/models(?:\/[^/]+)?$/i,""),t.endsWith("/opchat/v1")?t:t.endsWith("/opchat")?`${t}/v1`:(t.endsWith("/v1")&&(t=t.slice(0,-3)),`${x(t)}/opchat/v1`)):null}o(l,"normalizeOptionalOpChatApiBaseUrl");function W(e={}){let t=e.env??(typeof process<"u"?process.env:{}),r=l(e.opChatApiBaseUrl)??l(t.OPENPOND_OPCHAT_API_URL);if(r)return r;let a=l(e.chatApiBaseUrl)??l(t.OPENPOND_CHAT_API_URL)??l(t.OPENPOND_GATEWAY_URL);return a||(l(e.apiBaseUrl)??l(t.OPENPOND_API_URL)??P)}o(W,"resolveOpChatApiBaseUrl");function D(e){let t=e.trim();if(!t)throw new Error("OpenPond API key is required");return t}o(D,"requireToken");function T(e,t,r,a){let s=new Headers;s.set("Authorization",`Bearer ${D(e)}`),s.set("Content-Type","application/json"),s.set("Accept",t),s.set("x-openpond-client","openpond-code");let n=r||C();return s.set("x-openpond-request-id",n),s.set("x-request-id",n),a&&s.set("x-openpond-team-id",a),s}o(T,"hostedHeaders");async function N(e){let t=await e.text().catch(()=>"");if(!t)return e.statusText||`HTTP ${e.status}`;try{let r=JSON.parse(t),a=typeof r.error=="string"||r.error&&typeof r.error=="object"&&!Array.isArray(r.error)?r.error:null,s=typeof r.code=="string"?r.code:a&&typeof a!="string"&&typeof a.code=="string"?a.code:null,n=typeof r.message=="string"?r.message:a&&typeof a!="string"&&typeof a.message=="string"?a.message:null,i=typeof a=="string"?a:a&&typeof a.type=="string"?a.type:null;return[s,i,n].filter(Boolean).join(": ")||t}catch{return t}}o(N,"readError");function S(e,t){let r={model:e.model,messages:e.messages,stream:t};typeof e.temperature=="number"&&(r.temperature=e.temperature),typeof e.maxTokens=="number"&&(r.max_tokens=e.maxTokens),e.reasoningEffort==="off"?r.thinking={type:"disabled"}:e.reasoningEffort&&(r.reasoning_effort=e.reasoningEffort),e.tools&&(r.tools=e.tools);let a=e.toolChoice??e.tool_choice;return a!==void 0&&(r.tool_choice=a),e.metadata&&(r.metadata=e.metadata),r}o(S,"buildHostedChatBody");async function G(e){let r=`${B(e.apiBaseUrl)}/models`,a=await fetch(r,{method:"GET",redirect:"error",headers:T(e.token,"application/json",void 0,e.teamId),signal:e.signal});if(!a.ok)throw new Error(`Hosted model list failed: ${a.status} ${await N(a)}`);return await a.json()}o(G,"listOpChatModels");async function z(e){let r=`${B(e.apiBaseUrl)}/chat/completions`,a=await fetch(r,{method:"POST",redirect:"error",headers:T(e.token,"application/json",e.requestId,e.teamId),body:JSON.stringify(S(e,!1)),signal:e.signal});if(!a.ok)throw new Error(`Hosted chat failed: ${a.status} ${await N(a)}`);return await a.json()}o(z,"sendHostedChatTurn");export{w as a,v as b,L as c,H as d,q as e,W as f,G as g,z as h};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{E as u,F as h}from"./chunk-
|
|
2
|
+
import{E as u,F as h}from"./chunk-2EPR4HLF.js";import{f as c}from"./chunk-UGOK7VTC.js";import{a as s}from"./chunk-FTQLQJQV.js";import{createHash as i}from"node:crypto";import{readFile as m}from"node:fs/promises";import y from"node:path";var U=".openpond/source-upload-cache.json",d="openpond.source-upload-cache.v1";async function E(e){try{let a=(await u(c(),"source-upload.v1",l(e)))?.payload;if(!a)return new Map;if(a.schema!==d||!a.entries)return new Map;let t=new Map;for(let[o,n]of Object.entries(a.entries))!f(n)||o!==p(n)||t.set(o,n);return t}catch{return new Map}}s(E,"readSourceUploadCache");async function b(e,r){let a=await m(e.absolutePath),t=i("sha256").update(a).digest("hex"),o=p({...e,sha256:t}),n=r.get(o);return n&&n.sha256===t&&i("sha256").update(Buffer.from(n.contentsBase64,"base64")).digest("hex")===t?{file:e,entry:{path:e.path,type:"file",contentsBase64:n.contentsBase64},sha256:n.sha256}:{file:e,entry:{path:e.path,type:"file",contentsBase64:a.toString("base64")},sha256:t}}s(b,"materializeSourceUploadFile");async function A(e,r){let a={};for(let t of r){let o={path:t.file.path,size:t.file.size,mtimeMs:t.file.mtimeMs,ctimeMs:t.file.ctimeMs,sha256:t.sha256,contentsBase64:t.entry.contentsBase64};a[p(o)]=o}await h(c(),"source-upload.v1",l(e),{schema:d,generatedAt:new Date().toISOString(),entries:a})}s(A,"writeSourceUploadCache");function p(e){return`${e.path}\0${e.sha256}`}s(p,"cacheKeyForFile");function f(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e;return typeof r.path=="string"&&typeof r.size=="number"&&typeof r.mtimeMs=="number"&&typeof r.ctimeMs=="number"&&typeof r.sha256=="string"&&typeof r.contentsBase64=="string"}s(f,"isCacheEntry");function l(e){return i("sha256").update(y.resolve(e)).digest("hex")}s(l,"sourceScope");export{U as a,E as b,b as c,A as d};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{h as a}from"./chunk-
|
|
2
|
+
import{h as a}from"./chunk-LJDBR3RN.js";import{fb as d,ib as p}from"./chunk-TUCKED4T.js";import{a as o}from"./chunk-FTQLQJQV.js";function g(n,e,t,i){let s=n.get(`SELECT payload,package_payload FROM local_experiment_definitions WHERE team_id=? AND id=? ${i===void 0?"ORDER BY revision DESC LIMIT 1":"AND revision=?"}`,i===void 0?[e,t]:[e,t,i]);if(!s)throw new a("local_definition_not_found","Local Experiment definition is unavailable in this workspace.",404);return{definition:d.parse(JSON.parse(s.payload)),package:JSON.parse(s.package_payload)}}o(g,"localDefinition");function _(n,e,t){let i=n.get("SELECT payload FROM local_experiment_executions WHERE team_id=? AND id=?",[e,t]);if(!i)throw new a("local_execution_not_found","Local Experiment execution is unavailable in this workspace.",404);return p.parse(JSON.parse(i.payload))}o(_,"localExecution");function f(n,e,t){return n.all("SELECT receipt_id,status,admission,result,error FROM local_experiment_cases WHERE team_id=? AND execution_id=? ORDER BY ordinal",[e,t]).map(i=>({receiptId:i.receipt_id,status:i.status,admission:JSON.parse(i.admission),result:i.result?JSON.parse(i.result):null,error:i.error}))}o(f,"localCases");function L(n,e,t,i={}){let s=_(n,e,t),c={pending:0,running:0,completed:0,failed:0,cancelled:0,unknown:0};for(let u of n.all("SELECT status,COUNT(*) AS count FROM local_experiment_cases WHERE team_id=? AND execution_id=? GROUP BY status",[e,t]))c[u.status]=u.count;let r=n.get(`SELECT COALESCE(SUM(CASE WHEN status='settled' THEN cost_usd ELSE 0 END),0) AS spent,
|
|
3
3
|
COALESCE(SUM(CASE WHEN status IN ('reserved','dispatched','unknown') THEN maximum_usd ELSE 0 END),0) AS held,
|
|
4
4
|
COALESCE(SUM(CASE WHEN status IN ('dispatched','unknown') THEN 1 ELSE 0 END),0) AS uncertain FROM local_experiment_charges WHERE team_id=? AND execution_id=?`,[e,t]),l=p.parse({...s,...i,counts:c,usage:{knownCostUsd:r.spent,costUsd:r.uncertain?null:r.spent,heldUsd:r.held,uncertainRequests:r.uncertain}});return n.run("UPDATE local_experiment_executions SET payload=? WHERE team_id=? AND id=?",[JSON.stringify(l),e,t]),l}o(L,"refreshLocalExecution");function O(n,e,t,i,s,c){let r=n.get("SELECT kind,intent_hash,receipt FROM local_experiment_operations WHERE team_id=? AND operation_id=?",[e,t]);if(r){if(r.kind!==i||r.intent_hash!==s)throw new a("local_operation_conflict","This operation already owns different immutable inputs.");return JSON.parse(r.receipt)}let l=c();return n.run("INSERT INTO local_experiment_operations(team_id,operation_id,kind,intent_hash,receipt) VALUES(?,?,?,?,?)",[e,t,i,s,JSON.stringify(l)]),l}o(O,"localOperation");function w(n,e,t){n.run("INSERT INTO local_experiment_definitions(team_id,id,revision,content_hash,project_id,payload,package_payload) VALUES(?,?,?,?,?,?,?)",[e.teamId,e.id,e.revision,e.contentHash,e.configuration.request.project?.id??null,JSON.stringify(e),JSON.stringify(t)])}o(w,"writeLocalDefinition");var E=15e3;function T(n,e,t){let i=n.get("SELECT owner_id,pid,lease_until FROM local_experiment_owner WHERE singleton=1");if(i&&i.owner_id!==e&&S(i.pid))throw new a("local_runtime_already_owned","Another live local server owns Experiment execution in this installation.");n.run("INSERT INTO local_experiment_owner(singleton,owner_id,pid,lease_until) VALUES(1,?,?,?) ON CONFLICT(singleton) DO UPDATE SET owner_id=excluded.owner_id,pid=excluded.pid,lease_until=excluded.lease_until",[e,t,Date.now()+E])}o(T,"claimLocalExperimentOwner");function m(n,e){let t=n.get("SELECT owner_id,pid FROM local_experiment_owner WHERE singleton=1");if(!t||t.owner_id!==e||t.pid!==process.pid)throw new a("local_runtime_lease_lost","This process no longer owns local Experiment execution.")}o(m,"requireLocalRuntimeOwner");function R(n,e){m(n,e),n.run("UPDATE local_experiment_owner SET lease_until=? WHERE singleton=1 AND owner_id=?",[Date.now()+E,e])}o(R,"renewLocalExperimentOwner");function S(n){if(!Number.isSafeInteger(n)||n<=0)return!0;try{return process.kill(n,0),!0}catch(e){return!(e instanceof Error&&"code"in e&&e.code==="ESRCH")}}o(S,"alive");export{g as a,_ as b,f as c,L as d,O as e,w as f,T as g,m as h,R as i};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as T,b as M,c as U}from"./chunk-RG3NH6YQ.js";import{I as S,J as x,K as k,L as P}from"./chunk-
|
|
2
|
+
import{a as T,b as M,c as U}from"./chunk-RG3NH6YQ.js";import{I as S,J as x,K as k,L as P}from"./chunk-2EPR4HLF.js";import{A as a}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";import{randomUUID as N}from"node:crypto";var r=class extends Error{constructor(i,n){super(n);this.status=i}status;static{c(this,"EnclaveError")}};function b(e){let t;try{t=new URL(e)}catch{throw new r(400,"Enter a valid model endpoint URL.")}let i=["localhost","127.0.0.1","[::1]"].includes(t.hostname);if(t.protocol!=="https:"&&!(t.protocol==="http:"&&i)||t.username||t.password||t.search||t.hash)throw new r(400,"Use HTTPS, or HTTP for a local model, without credentials, a query, or fragment in the URL.");return t.toString().replace(/\/+$/,"").replace(/\/chat\/completions$/,"")}c(b,"normalizeModelEndpoint");async function w(e){let t=new AbortController,i=c(()=>t.abort(),"abort");e.signal?.addEventListener("abort",i,{once:!0}),e.signal?.aborted&&t.abort();let n=setTimeout(i,e.timeoutMs??15e3);try{let o=await(e.fetch??fetch)(`${b(e.endpoint)}/${e.path}`,{method:e.body===void 0?"GET":"POST",redirect:"error",signal:t.signal,headers:{...e.token?{Authorization:`Bearer ${e.token}`}:{},"Content-Type":"application/json","User-Agent":"OpenPond-Model-Connection/1.0"},...e.body===void 0?{}:{body:JSON.stringify(e.body)}});if(e.expectedStatus&&o.status===e.expectedStatus)return await o.body?.cancel(),null;if(!o.ok)throw await o.body?.cancel(),new r(o.status===401||o.status===403?401:o.status===503?503:502,o.status===401||o.status===403?"The endpoint rejected the API key. Check its credentials.":o.status===503?"The endpoint is starting or busy. Try again shortly.":"The endpoint did not return a compatible response.");if(!o.body)throw new r(502,"The endpoint returned an empty response.");let s=o.body.getReader(),d=[],l=0;try{for(;;){let p=await s.read();if(p.done)break;if(l+=p.value.byteLength,l>1024*1024)throw new r(502,"The endpoint response exceeded its size limit.");d.push(p.value)}}finally{await s.cancel().catch(()=>{}),s.releaseLock()}return JSON.parse(Buffer.concat(d).toString("utf8"))}catch(o){throw o instanceof r?o:t.signal.aborted?new r(408,e.signal?.aborted?"Request cancelled.":"The endpoint request timed out."):new r(502,"Could not reach a compatible model endpoint. Check the URL and service health.")}finally{clearTimeout(n),e.signal?.removeEventListener("abort",i)}}c(w,"remoteJson");var g="url-model:",f=a.object({providerName:a.string().trim().min(1).max(100).default("Models from URL"),name:a.string().trim().min(1).max(100),endpoint:a.string(),model:a.string().trim().min(1).max(300),protocol:a.enum(["openai","tvc"]),token:a.string().max(4096).regex(/^[\x21-\x7e]*$/)}),E=a.object({endpoint:a.string(),token:f.shape.token.default("")}).strict(),A=E.extend({name:f.shape.name,providerName:f.shape.providerName,model:f.shape.model}),L=a.object({id:a.string().regex(/^url:[a-f0-9-]{36}$/)}).strict(),y=c(e=>`${g}${e.slice(4)}`,"storageId"),$=c((e,t)=>({id:e,name:t.name,providerName:t.providerName,endpoint:t.endpoint,model:t.model,protocol:t.protocol,hasToken:!!t.token}),"publicModel");async function v(e){return Object.entries(await x(e,g)).map(([t,i])=>$(`url:${t.slice(g.length)}`,f.parse(i.value)))}c(v,"listUrlModels");async function j(e,t){if(!L.safeParse({id:t}).success)throw new r(400,"Select a saved URL model.");let i=await S(e,y(t));if(!i)throw new r(409,"This model connection was removed. Add it again in Providers.");return f.parse(i.value)}c(j,"resolveUrlModel");function D(e){let t=new Map;async function i(n,o){let s=b(n.endpoint),d=await w({...n,endpoint:s,path:"health",signal:o,fetch:e.fetch}).catch(h=>{if(o?.aborted)throw h;return null}),l=T.safeParse(d);if(l.success)return await w({...n,endpoint:s,path:"chat",body:{prompt:""},expectedStatus:400,signal:o,fetch:e.fetch}),{protocol:"tvc",models:[l.data.model],contextTokens:l.data.contextTokens};let p=await w({...n,endpoint:s,path:"models",signal:o,fetch:e.fetch}),m=a.object({data:a.array(a.object({id:a.string().min(1).max(300)})).max(5e3)}).safeParse(p);if(!m.success||!m.data.data.length)throw new r(502,"No models were returned. Use the API base URL, such as https://host/v1.");return{protocol:"openai",models:[...new Set(m.data.data.map(h=>h.id))]}}return c(i,"inspect"),async(n,o,s)=>{if(s?.throwIfAborted(),n==="list")return{models:await v(e.home)};if(n==="inspect"||n==="save"){let m=(n==="save"?A:E).safeParse(o);if(!m.success)throw new r(400,"Provide a valid endpoint, API key, model, and display name.");let h=await i(m.data,s);if(n==="inspect")return h;let u=A.parse(m.data);if(!h.models.includes(u.model))throw new r(400,"The selected model is no longer offered by this endpoint. Fetch models again.");s?.throwIfAborted();let C=(await v(e.home)).find(R=>R.providerName.toLocaleLowerCase()===u.providerName.toLocaleLowerCase())?.providerName??u.providerName,I=`url:${N()}`;return await k(e.home,y(I),{...u,providerName:C,endpoint:b(u.endpoint),protocol:h.protocol},null),{models:await v(e.home)}}let d=L.safeParse(n==="chat"&&o&&typeof o=="object"?{id:o.id}:o);if(!d.success)throw new r(400,"Select a saved model connection.");if(n==="remove")return t.get(d.data.id)?.abort(),await P(e.home,y(d.data.id)),{models:await v(e.home)};if(t.has(d.data.id))throw new r(409,"This model is busy. Cancel its current turn or wait for it to finish.");let l=new AbortController;t.set(d.data.id,l);let p=c(()=>l.abort(),"abort");s?.addEventListener("abort",p,{once:!0}),s?.aborted&&l.abort();try{let m=await j(e.home,d.data.id);if(m.protocol!=="tvc")throw new r(400,"This model uses the OpenAI-compatible chat API.");let h=U.safeParse({prompt:o.prompt});if(!h.success)throw new r(400,"Enter a text message of at most 1,024 UTF-8 bytes.");return M.parse(await w({...m,path:"chat",body:h.data,signal:l.signal,timeoutMs:31e4,fetch:e.fetch}))}finally{s?.removeEventListener("abort",p),t.delete(d.data.id)}}}c(D,"createEnclaveConnection");export{r as a,v as b,j as c,D as d};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as $,b as C}from"./chunk-
|
|
2
|
+
import{a as $,b as C}from"./chunk-XWDFXM3S.js";import{b as y,c as w,e as O}from"./chunk-JCLTFDVW.js";import{a as n}from"./chunk-FTQLQJQV.js";function v(r){return{list:n((e={})=>r.listSandboxRuntimes(e),"list"),create:n(e=>r.createSandboxRuntime(e),"create"),handle:n((e,t=null)=>r.sandboxRuntime(e,t),"handle"),get:n(e=>r.getSandboxRuntime(e),"get"),createSandbox:n((e,t={},o={})=>r.createSandboxRuntimeSandbox(e,t,o),"createSandbox"),updateStatus:n((e,t)=>r.updateSandboxRuntimeStatus(e,t),"updateStatus"),events:n(e=>r.listSandboxRuntimeEvents(e),"events"),event:n((e,t)=>r.emitSandboxRuntimeEvent(e,t),"event"),checkpoint:n((e,t={})=>r.checkpointSandboxRuntime(e,t),"checkpoint"),promote:n((e,t,o={})=>r.promoteSandboxRuntime(e,t,o),"promote"),preserveSource:n((e,t={},o={})=>r.preserveSandboxRuntimeSource(e,t,o),"preserveSource")}}n(v,"createSandboxRuntimeNamespace");function A(r){return{list:n((e={})=>r.list(e),"list"),create:n(e=>r.create(e),"create"),get:n(e=>r.get(e),"get"),pricing:n(()=>r.pricing(),"pricing"),costs:n((e={})=>r.costs(e),"costs")}}n(A,"createSandboxNamespace");function j(r){return{list:n(e=>r.listProjects(e),"list"),upsert:n(e=>r.upsertProject(e),"upsert"),upsertGitRemote:n(e=>r.upsertProjectGitRemote(e),"upsertGitRemote"),get:n((e,t)=>r.getProject(e,t),"get"),update:n((e,t)=>r.updateProject(e,t),"update"),sync:n((e,t)=>r.syncProject(e,t),"sync"),ensureGitRemote:n((e,t)=>r.ensureProjectGitRemote(e,t),"ensureGitRemote"),getGitRemote:n((e,t)=>r.ensureProjectGitRemote(e,t),"getGitRemote"),git:n((e,t)=>r.ensureProjectGitRemote(e,t),"git"),uploadSource:n((e,t)=>r.uploadProjectSource(e,t),"uploadSource"),archive:n((e,t)=>r.archiveProject(e,t),"archive")}}n(j,"createSandboxProjectNamespace");function T(r){return{get:n(e=>r.getHostedProfile(e),"get"),status:n(e=>r.getHostedProfile(e),"status"),ensureHosted:n(e=>r.ensureHostedProfile(e),"ensureHosted"),push:n(e=>r.pushHostedProfile(e),"push")}}n(T,"createSandboxProfileNamespace");function k(r){return{list:n(e=>r.listAgents(e),"list"),upsert:n(e=>r.upsertAgent(e),"upsert"),get:n((e,t)=>r.getAgent(e,t),"get"),update:n((e,t)=>r.updateAgent(e,t),"update"),archive:n((e,t)=>r.archiveAgent(e,t),"archive"),run:n((e,t)=>r.runAgent(e,t),"run"),sourceDeployPlan:n((e,t)=>r.getAgentSourceDeployPlan(e,t),"sourceDeployPlan"),manifestSnapshots:n((e,t)=>r.listAgentManifestSnapshots(e,t),"manifestSnapshots"),requestSourceChecks:n((e,t)=>r.requestAgentSourceChecks(e,t),"requestSourceChecks"),configureSourceSetup:n((e,t)=>r.configureAgentSourceSetup(e,t),"configureSourceSetup"),publishSource:n((e,t)=>r.publishAgentSource(e,t),"publishSource")}}n(k,"createSandboxAgentNamespace");function E(r,e,t=null){let o=n(async(a={},d={})=>{let f=await r.getSandboxRuntime(e);return f.sandboxId?r.get(f.sandboxId):r.createSandboxRuntimeSandbox(e,a,d).then(m=>m.sandbox)},"currentSandbox"),s=n(async(a={},d={})=>{let f=await r.getSandboxRuntime(e);if(!f.sandboxId)return r.createSandboxRuntimeSandbox(e,a,d).then(h=>h.sandbox);let m=await r.get(f.sandboxId);return m.state==="stopped"?r.start(m.id,d).then(h=>h.sandbox):m.state==="archived"?r.restore(m.id).then(h=>h.sandbox):m.state==="deleted"||m.state==="error"?r.createSandboxRuntimeSandbox(e,a,d).then(h=>h.sandbox):m},"resume");return{id:e,initial:t,get:n(()=>r.getSandboxRuntime(e),"get"),sandbox:o,resume:s,createSandbox:n((a={},d={})=>r.createSandboxRuntimeSandbox(e,a,d),"createSandbox"),status:n(async a=>{if(typeof a!="string")return r.updateSandboxRuntimeStatus(e,a);let d=await r.getSandboxRuntime(e);return r.updateSandboxRuntimeStatus(e,{status:a,expectedVersion:d.version})},"status"),events:n(()=>r.listSandboxRuntimeEvents(e),"events"),event:n(a=>r.emitSandboxRuntimeEvent(e,a),"event"),recordCommit:n((a,d={})=>r.emitSandboxRuntimeEvent(e,{...d,type:d.type??"git.commit",commitSha:a}),"recordCommit"),checkpointHint:n((a={})=>r.emitSandboxRuntimeEvent(e,{type:"workflow.checkpoint_hint",summary:a.summary??a.reason??"Workflow checkpoint hint",payload:{...a.payload,reason:a.reason??null},artifactRefs:a.artifactRefs,lifecycleHint:{kind:"checkpoint",reason:a.reason??null}}),"checkpointHint"),waitForUser:n(async(a={})=>{await r.emitSandboxRuntimeEvent(e,{type:"workflow.waiting_for_user",summary:a.summary??a.reason??"Waiting for user",payload:{...a.payload,reason:a.reason??null},lifecycleHint:{kind:"waiting_for_user",reason:a.reason??null}});let d=await r.getSandboxRuntime(e);return d.status==="waiting_for_user"?d:r.updateSandboxRuntimeStatus(e,{status:"waiting_for_user",expectedVersion:d.version,summary:a.summary??a.reason,metadata:{workflowWaitForUserReason:a.reason??null}})},"waitForUser"),keepAlive:n((a={})=>{let d=D(a);return r.emitSandboxRuntimeEvent(e,{type:"workflow.keepalive",summary:a.summary??a.reason??"Workflow keepalive",payload:{...a.payload,reason:a.reason??null,keepaliveUntil:d},lifecycleHint:{kind:"keepalive",reason:a.reason??null,keepaliveUntil:d}})},"keepAlive"),checkpoint:n(a=>r.checkpointSandboxRuntime(e,a),"checkpoint"),files:{write:n(async(a,d)=>r.uploadFile((await s()).id,a,d),"write"),read:n(async a=>r.downloadFile((await s()).id,a),"read"),readResponse:n(async a=>r.downloadFileResponse((await s()).id,a),"readResponse"),list:n(async(a={})=>r.listFiles((await s()).id,a),"list"),delete:n(async(a,d={})=>r.deleteFile((await s()).id,a,d),"delete"),search:n(async a=>r.searchFiles((await s()).id,a),"search"),stat:n(async a=>r.statFile((await s()).id,a),"stat"),mkdir:n(async a=>r.mkdir((await s()).id,a),"mkdir"),move:n(async a=>r.moveFile((await s()).id,a),"move")},commands:{run:n(async a=>r.exec((await s()).id,typeof a=="string"?{command:a}:a),"run")},ports:{expose:n(async a=>r.openPort((await s()).id,typeof a=="number"?{port:a}:a),"expose")},promote:n((a,d={})=>r.promoteSandboxRuntime(e,a,d),"promote"),preserveSource:n((a={},d={})=>r.preserveSandboxRuntimeSource(e,a,d),"preserveSource"),archive:n(async a=>{let d=a??(await r.getSandboxRuntime(e)).version;return r.updateSandboxRuntimeStatus(e,{status:"archived",expectedVersion:d})},"archive")}}n(E,"createSandboxRuntimeHandle");function D(r){if(r?.until instanceof Date)return r.until.toISOString();if(typeof r?.until=="string"&&r.until.trim())return new Date(r.until).toISOString();let e=typeof r?.seconds=="number"&&Number.isFinite(r.seconds)?Math.max(1,Math.trunc(r.seconds)):60;return new Date(Date.now()+e*1e3).toISOString()}n(D,"runtimeKeepaliveUntilIso");async function z(r,e={}){let t=`openpond-code-smoke-${Date.now()}`,o=`openpond-code-exec-ok:${t}`,s=`openpond-code-preview-ok:${t}`,i=`openpond-code-file-ok:${t}`,c=4173,u=null,a=null,d=!1,f=!1;try{let m=await N(r,await r.create({repo:e.repo??"https://github.com/octocat/Hello-World",resources:{cpu:e.cpu??1,memoryGb:e.memoryGb??1,diskGb:e.diskGb??8},budget:{maxUsd:e.budgetUsd??"0.05"},quotas:{maxSpendUsd:e.budgetUsd??"0.05",maxDurationSeconds:600,idleTimeoutSeconds:600,maxOpenPorts:2},metadata:{runId:t,source:"openpond-code-sandbox-smoke"}},{async:!0}));u=m.id;let h=e.expectedMppMode;if(h&&m.reservation.mpp?.mode!==h)throw new Error(`expected ${h} reservation, got ${m.reservation.mpp?.mode??"none"}`);if(!h&&!m.reservation.mpp?.mode)throw new Error("expected sandbox reservation MPP metadata");let R=await r.exec(m.id,{command:[`printf '${o}\\n'`,"test -f README && printf 'repo-clone-ok\\n'","cat > server.cjs <<'EOF'","const { createServer } = require('node:http');",`createServer((_request, response) => response.end('${s}')).listen(${c}, '0.0.0.0');`,"EOF","nohup node server.cjs > server.log 2>&1 & sleep 1"].join(`
|
|
3
3
|
`),timeoutSeconds:120});if(R.command.status!=="succeeded")throw new Error(`expected command success, got ${R.command.status}`);if(!R.command.output.includes(o))throw new Error("expected exec marker");if(await r.uploadFile(m.id,"openpond-code-smoke.txt",i),await r.downloadFile(m.id,"openpond-code-smoke.txt")!==i)throw new Error("expected file roundtrip marker");let g=null;if(e.snapshot||e.fork){let S=await r.createSnapshot(m.id,{async:!0,name:`openpond-code-smoke-${t}`,replay:{entrypoints:[{command:"cat openpond-code-smoke.txt",name:"default"}],retention:{class:"pinned"},safety:{cleanup:"delete",idleTimeoutSeconds:600,internetEgress:"block",maxDurationSeconds:600,maxSpendUsd:e.budgetUsd??"0.05",publicPreview:!1},validation:{commands:[{command:"test -f openpond-code-smoke.txt"}]}}}),p=S.snapshot??(await K(r,m.id,S.snapshotJob?.snapshotId)).snapshot;if(g=p.id,p.state!=="ready")throw new Error(`expected ready snapshot, got ${p.state}`)}if(e.fork){if(!g)throw new Error("expected snapshot id before fork");let S=await N(r,(await r.forkSnapshot(g,{budget:{maxUsd:e.budgetUsd??"0.05"},metadata:{source:"openpond-code-sandbox-smoke-fork",templateSnapshotId:g}},{async:!0})).sandbox);a=S.id;let p=await r.exec(S.id,{command:"cat openpond-code-smoke.txt",timeoutSeconds:120});if(p.command.status!=="succeeded")throw new Error(`expected fork command success, got ${p.command.status}`);if(!p.command.output.includes(i))throw new Error("expected fork snapshot marker");e.keep||(await q(r,S.id),f=!0)}let x=null;if(e.preview!==!1){let S=await r.openPort(m.id,{label:"openpond-code-smoke",port:c}),p=await fetch(S.preview.url);x=p.status;let B=await p.text();if(p.status!==200)throw new Error(`expected preview HTTP 200, got ${p.status}`);if(!B.includes(s))throw new Error("expected preview marker")}let{sandbox:M,receipts:F}=await H(r,m.id);return e.keep||(await q(r,m.id),d=!0),{deleted:d,execOutput:R.command.output.trim(),fileRoundtrip:!0,forkSandboxId:a,previewStatus:x,receiptRefs:F.map(S=>S.mpp.receiptRef??null),reservationRef:m.reservation.mpp?.reservationRef??null,runId:t,sandboxId:m.id,snapshotId:g,state:M.state}}finally{a&&!e.keep&&!f&&await L(r,a),u&&!e.keep&&!d&&await L(r,u)}}n(z,"runSandboxSmoke");async function H(r,e){try{await r.stop(e)}catch{await r.stop(e,{async:!0})}let t=await J(r,e,new Set(["stopped","deleted"]),"stop"),o=await G(r,e);if(o.length===0)throw new Error("expected receipt readback");return{sandbox:t,receipts:o}}n(H,"stopSandboxForSmoke");async function q(r,e){try{let t=await r.delete(e);if(t.state==="deleted")return t;await r.delete(e,{async:!0})}catch{await r.delete(e,{async:!0})}return J(r,e,new Set(["deleted"]),"delete")}n(q,"deleteSandboxForSmoke");async function L(r,e){try{await q(r,e)}catch{await r.delete(e,{async:!0}).catch(()=>{})}}n(L,"cleanupSandboxBestEffort");async function J(r,e,t,o){let c=Date.now()+3e5,u=await r.get(e);for(;Date.now()<c;){if(t.has(u.state))return u;if(u.state==="error")throw new Error(`sandbox ${o} failed: ${e}`);await I(3e3),u=await r.get(e)}throw new Error(`sandbox ${o} did not reach ${[...t].join("/")} before timeout: ${e} (${u.state})`)}n(J,"waitForSandboxState");async function G(r,e){let s=Date.now()+12e4,i=await r.receipts(e);for(;Date.now()<s;){if(i.length>0)return i;await I(3e3),i=await r.receipts(e)}return i}n(G,"waitForReceipts");async function N(r,e){if(e.state==="running"||e.state==="stopped")return e;if(e.state==="error")throw new Error(`sandbox create failed: ${e.id}
|
|
4
4
|
${e.logs.join(`
|
|
5
5
|
`)}`);let t=12*6e4,o=3e3,s=Date.now()+t,i=e;for(;Date.now()<s;){if(await I(o),i=await r.get(e.id),i.state==="running"||i.state==="stopped")return i;if(i.state==="error")throw new Error(`sandbox create failed: ${i.id}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as E}from"./chunk-QRJPLZF7.js";import{h as c,i as _}from"./chunk-PWK5Z5S3.js";import{d as j}from"./chunk-OZ6LRNRE.js";import{G as v,I as A,J as t,K as d,L as o,M as g,N as l,P as I,Q as C,T as k,U as w,Y as y,k as P,q as i,u as r,x as R}from"./chunk-6DCXAXVD.js";import{c as f,f as n}from"./chunk-OE22TAXP.js";import{d as q,e as T}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as u}from"./chunk-FTQLQJQV.js";var b="local_path:";function Z(p){return`${b}${p.trim()}`}u(Z,"localPathWorkspaceId");function ee(p){return p.startsWith(b)&&p.slice(b.length).trim()||null}u(ee,"workspacePathFromLocalPathWorkspaceId");var ne=e.object({appId:e.string(),source:e.enum(["openpond","github","local_git","local_folder","unknown"]),workspacePath:e.string(),repoPath:e.string(),initialized:e.boolean(),remoteUrl:e.string().nullable(),expectedRemoteUrl:e.string().nullable(),currentBranch:e.string().nullable(),headCommit:e.string().nullable().optional().default(null),upstreamBranch:e.string().nullable().optional().default(null),ahead:e.number().int().nonnegative().optional().default(0),behind:e.number().int().nonnegative().optional().default(0),diverged:e.boolean().optional().default(!1),linkedSourceHeadCommit:e.string().nullable().optional().default(null),aheadOfLinkedSource:e.number().int().nonnegative().optional().default(0),behindLinkedSource:e.number().int().nonnegative().optional().default(0),divergedFromLinkedSource:e.boolean().optional().default(!1),linkedSourceComparisonError:e.string().nullable().optional().default(null),lastFetchAt:e.string().nullable().optional().default(null),defaultBranch:e.string().nullable(),branches:e.array(e.string()),dirty:e.boolean(),changedFilesCount:e.number(),untrackedFilesCount:e.number(),error:e.string().nullable(),updatedAt:e.string()}),O=e.object({path:e.string(),status:e.string(),additions:e.number(),deletions:e.number(),patch:e.string(),content:e.string().nullable().optional().default(null),contentType:e.string().optional(),contentEncoding:e.enum(["base64"]).optional(),readVersion:e.string().nullable().optional(),readStamp:e.string().optional()}),te=e.object({appId:e.string(),repoPath:e.string(),initialized:e.boolean(),dirty:e.boolean(),filesChanged:e.number(),additions:e.number(),deletions:e.number(),repoFiles:e.array(e.string()).optional().default([]),files:e.array(O),error:e.string().nullable(),updatedAt:e.string()}),oe=e.object({branch:e.string().trim().min(1).max(160)}),ae=e.object({path:e.string().trim().min(1),content:e.string()}),M=e.object({line:e.number().int().nonnegative(),character:e.number().int().nonnegative()}),U=e.object({start:M,end:M}),N=e.object({path:e.string(),range:U,severity:e.enum(["error","warning","info","hint"]),message:e.string(),source:e.string().nullable().optional().default(null),code:e.string().nullable().optional().default(null)}),W=e.object({id:e.string(),root:e.string(),status:e.enum(["connected","unavailable","error"]),message:e.string().nullable().optional().default(null)}),ie=e.object({path:e.string().trim().min(1),content:e.string().optional(),waitForDiagnostics:e.boolean().optional().default(!0)}),re=e.object({appId:e.string(),path:e.string(),diagnostics:e.array(N),servers:e.array(W),updatedAt:e.string()}),K=e.object({operation:e.enum(["hover","definition","references","documentSymbol"]),path:e.string().trim().min(1),content:e.string().optional(),line:e.number().int().nonnegative().optional(),character:e.number().int().nonnegative().optional()}),le=e.object({appId:e.string(),operation:K.shape.operation,path:e.string(),results:e.unknown(),servers:e.array(W),updatedAt:e.string()}),h=e.object({pinned:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional()}),se=e.record(e.string(),h),z=e.object({path:e.string().min(1),title:e.string().min(1),contentType:e.string().min(1),sizeBytes:e.number().nonnegative().nullable(),sandboxId:e.string().nullable(),revision:e.string().optional(),updatedAt:e.string().optional()}),me=e.object({files:e.array(z)});var a=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),B=e.object({ref:a,revision:e.string().nullable(),sourceHash:e.string()});var s=e.enum(["chat","work","development"]),be=e.enum(["chat","models","console","development"]),D="work";var S=e.enum(["openpond.lab"]),x=e.object({id:e.string(),experience:s.default(D),provider:t,modelRef:n.nullable().optional(),openPondCommandAccessMode:o.default(A),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().nullable().optional(),parentTurnId:e.string().nullable().optional(),subagentRunId:e.string().nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),title:e.string(),appId:e.string().nullable(),appName:e.string().nullable(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:q.nullable().optional(),profileComponentBinding:T.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable(),codexThreadId:e.string().nullable(),nativeAgent:e.object({provider:e.union([e.enum(["claude-code","grok-build","opencode"]),f]),instanceId:e.string().min(1),sessionId:e.string().min(1),cwd:e.string().min(1)}).nullable().optional(),createdAt:e.string(),updatedAt:e.string(),status:e.enum(["idle","active","failed","closed"]),runtimeSeconds:e.number().int().nonnegative().optional(),runtimeRunningSince:e.string().nullable().optional(),pinned:e.boolean(),savedForLater:e.boolean().optional(),archived:e.boolean(),order:e.number()}),we=e.object({id:e.string(),sessionId:e.string(),providerTurnId:e.string().nullable(),modelRef:n.nullable().optional(),prompt:e.string(),startedAt:e.string(),completedAt:e.string().nullable(),status:e.enum(["in_progress","completed","failed","interrupted"]),error:e.string().nullable(),metadata:e.record(e.string(),e.unknown()).optional().default({}),createImproveRun:c.nullable().optional().default(null),profileSnapshot:B.nullable().optional(),harnessSnapshot:j.nullable().optional()});var F=e.object({id:e.string().trim().min(1).max(191),agentId:e.string().trim().min(1).max(191).optional().nullable(),sourcePath:e.string().trim().min(1).max(2e3).optional().nullable(),sourceActionId:e.string().trim().min(1).max(191).optional().nullable(),name:e.string().trim().min(1).max(191).optional().nullable(),label:e.string().trim().min(1).max(160).optional().nullable(),description:e.string().trim().max(1e3).optional().nullable(),visibility:e.string().trim().max(80).optional().nullable(),inputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),outputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),approvalPolicy:e.record(e.string(),e.unknown()).optional().nullable(),artifactPolicy:e.record(e.string(),e.unknown()).optional().nullable(),setupRequirements:e.array(e.record(e.string(),e.unknown())).optional(),mcp:e.record(e.string(),e.unknown()).optional().nullable(),schedulePolicy:e.record(e.string(),e.unknown()).optional().nullable(),trace:e.record(e.string(),e.unknown()).optional().nullable(),implementation:e.record(e.string(),e.unknown()).optional().nullable(),invokesModel:e.boolean().optional()});var H=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),V=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),X=e.enum(["native_bot","oauth_connector","wallet_connector","mcp_endpoint"]),$=e.object({kind:e.literal("integration"),provider:H,appIds:e.array(V).min(1).max(4),setupSurfaces:e.array(X).min(1).max(4),connectionIds:e.array(e.string().trim().min(1)).max(8).optional(),capabilities:e.array(e.string().trim().min(1)).max(64).optional()}).strict(),m={maxAttachments:10,maxAttachmentBytes:12*1024*1024,maxAttachmentBase64Chars:Math.ceil(12*1024*1024*4/3)+16,maxTextChars:2e5},G=e.enum(["image","text","file"]),J=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(240),contentType:e.string().trim().min(1).max(160)}),Q=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(1024),contentType:e.string().trim().min(1).max(160)}),L=e.object({id:e.string().trim().min(1),name:e.string().trim().min(1).max(240),mediaType:e.string().trim().min(1).max(160),sizeBytes:e.number().int().nonnegative().max(m.maxAttachmentBytes),kind:G,lineCount:e.number().int().nonnegative().max(m.maxAttachmentBytes+1).optional(),relativePath:e.string().trim().min(1).max(1024).optional(),text:e.string().max(m.maxTextChars).optional(),contentsBase64:e.string().max(m.maxAttachmentBase64Chars).optional()}),Xe=L.omit({text:!0,contentsBase64:!0}).extend({imagePreview:J.optional(),filePreview:Q.optional()}),$e=e.object({experience:s.optional(),provider:t.default(v),modelRef:n.optional(),openPondCommandAccessMode:o.optional(),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:x.shape.profileWorkflowBinding,profileComponentBinding:x.shape.profileComponentBinding,metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional(),title:e.string().optional(),autoTitlePrompt:e.string().trim().min(1).max(2e4).optional()}),Ge=e.object({teamId:e.string().trim().min(1),projectName:e.string().trim().min(1).max(120).optional(),branch:e.string().trim().min(1).max(120).optional(),chatSessionId:e.string().trim().min(1).max(200).optional(),displayPrompt:e.string().trim().min(1).max(2e3).optional()}),Je=e.object({branch:e.string().trim().min(1).max(120).optional()}),Qe=e.object({prompt:e.string().min(1),workflowInput:e.unknown().optional(),metadata:e.record(e.string(),e.unknown()).optional(),usageAttribution:E.optional().nullable(),cwd:e.string().nullable().optional(),model:e.string().nullable().optional(),modelRef:n.optional(),mentionedAppIds:e.array(e.string().trim().min(1)).max(8).optional(),mentionedConnectedApps:e.array($).max(8).optional(),openPondActionCatalog:e.array(F).max(100).optional(),attachments:e.array(L).max(m.maxAttachments).optional(),createImproveRun:c.optional().nullable(),approvalPolicy:e.enum(["untrusted","on-failure","on-request","never"]).default("on-request"),sandbox:e.enum(["read-only","workspace-write","danger-full-access"]).default("workspace-write"),codexPermissionMode:d.default("default"),codexReasoningEffort:g.optional()}),Ye=e.object({prompt:e.string().min(1),error:e.string().min(1),target:e.enum(["cloud_workspace","hybrid_sandbox"])}),Ze=_,en=e.object({reason:e.enum(["manual"]).default("manual"),model:e.string().nullable().optional(),modelRef:n.optional()}),nn=e.object({experience:s.optional(),provider:t.optional(),modelRef:n.nullable().optional(),openPondCommandAccessMode:o.optional(),pinned:e.boolean().optional(),savedForLater:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional(),title:e.string().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional()}),tn=e.object({command:e.string().trim().min(1),cwd:e.string().trim().min(1).max(4096).nullable().optional(),timeoutSeconds:e.number().int().min(1).max(3600).optional()}),on=h,an=e.object({appIds:e.array(e.string()).min(1)}),rn=e.object({expectedRevision:e.string().optional(),defaultChatProvider:t.optional(),defaultChatModel:e.string().min(1).optional(),defaultChatModelRef:n.nullable().optional(),subagents:R.optional(),codexPermissionMode:d.optional(),codexReasoningEffort:g.optional(),openPondCommandAccessMode:o.optional(),defaultBranchPrefix:e.string().trim().max(48).optional(),defaultNewProjectDirectory:e.string().trim().max(4096).optional(),defaultTeamId:e.string().trim().max(191).nullable().optional(),advancedWorkspaceControls:e.boolean().optional(),steerActiveResponses:e.boolean().optional(),contextCompaction:k.optional(),training:w.optional(),sidebarWidth:e.number().int().min(244).max(560).optional(),diffPanelWidth:e.number().int().min(320).max(2400).optional(),sidebarSectionsCollapsed:I.optional(),editor:C.optional()}),ln=P,sn=e.object({message:e.string().trim().min(1).max(4e3),surface:e.string().trim().min(1).max(120).default("app"),stack:e.string().max(12e3).nullable().optional(),context:e.record(e.string(),e.unknown()).optional()}).strict();var mn=e.object({activeTemplateId:y,templateName:e.string().trim().min(1).max(80),soul:e.string().trim().min(1).max(8e3),saveAsNew:e.boolean().optional().default(!1)}),pn=e.object({decision:e.enum(["accept","acceptForSession","decline","cancel"]),answers:e.record(e.string().min(1).max(2e3),e.string().trim().min(1).max(8e3)).optional()}),cn=e.object({branch:e.string().trim().min(1).max(240).nullable().optional(),surface:e.enum(["desktop","terminal"])}),un=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),dn=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),gn=e.object({handle:e.string().min(1).optional(),apiKey:e.string().min(1),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()}),bn=e.object({handle:e.string().min(1),currentBaseUrl:e.string().nullable().optional(),apiKey:e.string().min(1).optional(),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()});export{Z as a,ee as b,ne as c,O as d,te as e,oe as f,ae as g,ie as h,re as i,K as j,le as k,se as l,z as m,s as n,D as o,a as p,x as q,we as r,F as s,m as t,Q as u,L as v,$e as w,Ge as x,Je as y,Qe as z,Ye as A,Ze as B,en as C,nn as D,tn as E,on as F,an as G,rn as H,ln as I,sn as J,mn as K,pn as L,cn as M,un as N,dn as O,gn as P,bn as Q};
|
|
2
|
+
import{a as E}from"./chunk-W5W4IODW.js";import{d as j}from"./chunk-OZ6LRNRE.js";import{h as c,i as _}from"./chunk-PWK5Z5S3.js";import{G as v,I as A,J as t,K as d,L as o,M as g,N as l,P as I,Q as C,T as k,U as w,Y as y,k as P,q as i,u as r,x as R}from"./chunk-BKEDG3A4.js";import{c as f,f as n}from"./chunk-OE22TAXP.js";import{d as q,e as T}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as u}from"./chunk-FTQLQJQV.js";var b="local_path:";function Z(p){return`${b}${p.trim()}`}u(Z,"localPathWorkspaceId");function ee(p){return p.startsWith(b)&&p.slice(b.length).trim()||null}u(ee,"workspacePathFromLocalPathWorkspaceId");var ne=e.object({appId:e.string(),source:e.enum(["openpond","github","local_git","local_folder","unknown"]),workspacePath:e.string(),repoPath:e.string(),initialized:e.boolean(),remoteUrl:e.string().nullable(),expectedRemoteUrl:e.string().nullable(),currentBranch:e.string().nullable(),headCommit:e.string().nullable().optional().default(null),upstreamBranch:e.string().nullable().optional().default(null),ahead:e.number().int().nonnegative().optional().default(0),behind:e.number().int().nonnegative().optional().default(0),diverged:e.boolean().optional().default(!1),linkedSourceHeadCommit:e.string().nullable().optional().default(null),aheadOfLinkedSource:e.number().int().nonnegative().optional().default(0),behindLinkedSource:e.number().int().nonnegative().optional().default(0),divergedFromLinkedSource:e.boolean().optional().default(!1),linkedSourceComparisonError:e.string().nullable().optional().default(null),lastFetchAt:e.string().nullable().optional().default(null),defaultBranch:e.string().nullable(),branches:e.array(e.string()),dirty:e.boolean(),changedFilesCount:e.number(),untrackedFilesCount:e.number(),error:e.string().nullable(),updatedAt:e.string()}),O=e.object({path:e.string(),status:e.string(),additions:e.number(),deletions:e.number(),patch:e.string(),content:e.string().nullable().optional().default(null),contentType:e.string().optional(),contentEncoding:e.enum(["base64"]).optional(),readVersion:e.string().nullable().optional(),readStamp:e.string().optional()}),te=e.object({appId:e.string(),repoPath:e.string(),initialized:e.boolean(),dirty:e.boolean(),filesChanged:e.number(),additions:e.number(),deletions:e.number(),repoFiles:e.array(e.string()).optional().default([]),files:e.array(O),error:e.string().nullable(),updatedAt:e.string()}),oe=e.object({branch:e.string().trim().min(1).max(160)}),ae=e.object({path:e.string().trim().min(1),content:e.string()}),M=e.object({line:e.number().int().nonnegative(),character:e.number().int().nonnegative()}),U=e.object({start:M,end:M}),N=e.object({path:e.string(),range:U,severity:e.enum(["error","warning","info","hint"]),message:e.string(),source:e.string().nullable().optional().default(null),code:e.string().nullable().optional().default(null)}),W=e.object({id:e.string(),root:e.string(),status:e.enum(["connected","unavailable","error"]),message:e.string().nullable().optional().default(null)}),ie=e.object({path:e.string().trim().min(1),content:e.string().optional(),waitForDiagnostics:e.boolean().optional().default(!0)}),re=e.object({appId:e.string(),path:e.string(),diagnostics:e.array(N),servers:e.array(W),updatedAt:e.string()}),K=e.object({operation:e.enum(["hover","definition","references","documentSymbol"]),path:e.string().trim().min(1),content:e.string().optional(),line:e.number().int().nonnegative().optional(),character:e.number().int().nonnegative().optional()}),le=e.object({appId:e.string(),operation:K.shape.operation,path:e.string(),results:e.unknown(),servers:e.array(W),updatedAt:e.string()}),h=e.object({pinned:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional()}),se=e.record(e.string(),h),z=e.object({path:e.string().min(1),title:e.string().min(1),contentType:e.string().min(1),sizeBytes:e.number().nonnegative().nullable(),sandboxId:e.string().nullable(),revision:e.string().optional(),updatedAt:e.string().optional()}),me=e.object({files:e.array(z)});var a=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),B=e.object({ref:a,revision:e.string().nullable(),sourceHash:e.string()});var s=e.enum(["chat","work","development"]),be=e.enum(["chat","models","console","development"]),D="work";var S=e.enum(["openpond.lab"]),x=e.object({id:e.string(),experience:s.default(D),provider:t,modelRef:n.nullable().optional(),openPondCommandAccessMode:o.default(A),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().nullable().optional(),parentTurnId:e.string().nullable().optional(),subagentRunId:e.string().nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),title:e.string(),appId:e.string().nullable(),appName:e.string().nullable(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:q.nullable().optional(),profileComponentBinding:T.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable(),codexThreadId:e.string().nullable(),nativeAgent:e.object({provider:e.union([e.enum(["claude-code","grok-build","opencode"]),f]),instanceId:e.string().min(1),sessionId:e.string().min(1),cwd:e.string().min(1)}).nullable().optional(),createdAt:e.string(),updatedAt:e.string(),status:e.enum(["idle","active","failed","closed"]),runtimeSeconds:e.number().int().nonnegative().optional(),runtimeRunningSince:e.string().nullable().optional(),pinned:e.boolean(),savedForLater:e.boolean().optional(),archived:e.boolean(),order:e.number()}),we=e.object({id:e.string(),sessionId:e.string(),providerTurnId:e.string().nullable(),modelRef:n.nullable().optional(),prompt:e.string(),startedAt:e.string(),completedAt:e.string().nullable(),status:e.enum(["in_progress","completed","failed","interrupted"]),error:e.string().nullable(),metadata:e.record(e.string(),e.unknown()).optional().default({}),createImproveRun:c.nullable().optional().default(null),profileSnapshot:B.nullable().optional(),harnessSnapshot:j.nullable().optional()});var F=e.object({id:e.string().trim().min(1).max(191),agentId:e.string().trim().min(1).max(191).optional().nullable(),sourcePath:e.string().trim().min(1).max(2e3).optional().nullable(),sourceActionId:e.string().trim().min(1).max(191).optional().nullable(),name:e.string().trim().min(1).max(191).optional().nullable(),label:e.string().trim().min(1).max(160).optional().nullable(),description:e.string().trim().max(1e3).optional().nullable(),visibility:e.string().trim().max(80).optional().nullable(),inputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),outputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),approvalPolicy:e.record(e.string(),e.unknown()).optional().nullable(),artifactPolicy:e.record(e.string(),e.unknown()).optional().nullable(),setupRequirements:e.array(e.record(e.string(),e.unknown())).optional(),mcp:e.record(e.string(),e.unknown()).optional().nullable(),schedulePolicy:e.record(e.string(),e.unknown()).optional().nullable(),trace:e.record(e.string(),e.unknown()).optional().nullable(),implementation:e.record(e.string(),e.unknown()).optional().nullable(),invokesModel:e.boolean().optional()});var H=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),V=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),X=e.enum(["native_bot","oauth_connector","wallet_connector","mcp_endpoint"]),$=e.object({kind:e.literal("integration"),provider:H,appIds:e.array(V).min(1).max(4),setupSurfaces:e.array(X).min(1).max(4),connectionIds:e.array(e.string().trim().min(1)).max(8).optional(),capabilities:e.array(e.string().trim().min(1)).max(64).optional()}).strict(),m={maxAttachments:10,maxAttachmentBytes:12*1024*1024,maxAttachmentBase64Chars:Math.ceil(12*1024*1024*4/3)+16,maxTextChars:2e5},G=e.enum(["image","text","file"]),J=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(240),contentType:e.string().trim().min(1).max(160)}),Q=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(1024),contentType:e.string().trim().min(1).max(160)}),L=e.object({id:e.string().trim().min(1),name:e.string().trim().min(1).max(240),mediaType:e.string().trim().min(1).max(160),sizeBytes:e.number().int().nonnegative().max(m.maxAttachmentBytes),kind:G,lineCount:e.number().int().nonnegative().max(m.maxAttachmentBytes+1).optional(),relativePath:e.string().trim().min(1).max(1024).optional(),text:e.string().max(m.maxTextChars).optional(),contentsBase64:e.string().max(m.maxAttachmentBase64Chars).optional()}),Xe=L.omit({text:!0,contentsBase64:!0}).extend({imagePreview:J.optional(),filePreview:Q.optional()}),$e=e.object({experience:s.optional(),provider:t.default(v),modelRef:n.optional(),openPondCommandAccessMode:o.optional(),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:x.shape.profileWorkflowBinding,profileComponentBinding:x.shape.profileComponentBinding,metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional(),title:e.string().optional(),autoTitlePrompt:e.string().trim().min(1).max(2e4).optional()}),Ge=e.object({teamId:e.string().trim().min(1),projectName:e.string().trim().min(1).max(120).optional(),branch:e.string().trim().min(1).max(120).optional(),chatSessionId:e.string().trim().min(1).max(200).optional(),displayPrompt:e.string().trim().min(1).max(2e3).optional()}),Je=e.object({branch:e.string().trim().min(1).max(120).optional()}),Qe=e.object({prompt:e.string().min(1),workflowInput:e.unknown().optional(),metadata:e.record(e.string(),e.unknown()).optional(),usageAttribution:E.optional().nullable(),cwd:e.string().nullable().optional(),model:e.string().nullable().optional(),modelRef:n.optional(),mentionedAppIds:e.array(e.string().trim().min(1)).max(8).optional(),mentionedConnectedApps:e.array($).max(8).optional(),openPondActionCatalog:e.array(F).max(100).optional(),attachments:e.array(L).max(m.maxAttachments).optional(),createImproveRun:c.optional().nullable(),approvalPolicy:e.enum(["untrusted","on-failure","on-request","never"]).default("on-request"),sandbox:e.enum(["read-only","workspace-write","danger-full-access"]).default("workspace-write"),codexPermissionMode:d.default("default"),codexReasoningEffort:g.optional()}),Ye=e.object({prompt:e.string().min(1),error:e.string().min(1),target:e.enum(["cloud_workspace","hybrid_sandbox"])}),Ze=_,en=e.object({reason:e.enum(["manual"]).default("manual"),model:e.string().nullable().optional(),modelRef:n.optional()}),nn=e.object({experience:s.optional(),provider:t.optional(),modelRef:n.nullable().optional(),openPondCommandAccessMode:o.optional(),pinned:e.boolean().optional(),savedForLater:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional(),title:e.string().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional()}),tn=e.object({command:e.string().trim().min(1),cwd:e.string().trim().min(1).max(4096).nullable().optional(),timeoutSeconds:e.number().int().min(1).max(3600).optional()}),on=h,an=e.object({appIds:e.array(e.string()).min(1)}),rn=e.object({expectedRevision:e.string().optional(),defaultChatProvider:t.optional(),defaultChatModel:e.string().min(1).optional(),defaultChatModelRef:n.nullable().optional(),subagents:R.optional(),codexPermissionMode:d.optional(),codexReasoningEffort:g.optional(),openPondCommandAccessMode:o.optional(),defaultBranchPrefix:e.string().trim().max(48).optional(),defaultNewProjectDirectory:e.string().trim().max(4096).optional(),defaultTeamId:e.string().trim().max(191).nullable().optional(),advancedWorkspaceControls:e.boolean().optional(),steerActiveResponses:e.boolean().optional(),contextCompaction:k.optional(),training:w.optional(),sidebarWidth:e.number().int().min(244).max(560).optional(),diffPanelWidth:e.number().int().min(320).max(2400).optional(),sidebarSectionsCollapsed:I.optional(),editor:C.optional()}),ln=P,sn=e.object({message:e.string().trim().min(1).max(4e3),surface:e.string().trim().min(1).max(120).default("app"),stack:e.string().max(12e3).nullable().optional(),context:e.record(e.string(),e.unknown()).optional()}).strict();var mn=e.object({activeTemplateId:y,templateName:e.string().trim().min(1).max(80),soul:e.string().trim().min(1).max(8e3),saveAsNew:e.boolean().optional().default(!1)}),pn=e.object({decision:e.enum(["accept","acceptForSession","decline","cancel"]),answers:e.record(e.string().min(1).max(2e3),e.string().trim().min(1).max(8e3)).optional()}),cn=e.object({branch:e.string().trim().min(1).max(240).nullable().optional(),surface:e.enum(["desktop","terminal"])}),un=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),dn=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),gn=e.object({handle:e.string().min(1).optional(),apiKey:e.string().min(1),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()}),bn=e.object({handle:e.string().min(1),currentBaseUrl:e.string().nullable().optional(),apiKey:e.string().min(1).optional(),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()});export{Z as a,ee as b,ne as c,O as d,te as e,oe as f,ae as g,ie as h,re as i,K as j,le as k,se as l,z as m,s as n,D as o,a as p,x as q,we as r,F as s,m as t,Q as u,L as v,$e as w,Ge as x,Je as y,Qe as z,Ye as A,Ze as B,en as C,nn as D,tn as E,on as F,an as G,rn as H,ln as I,sn as J,mn as K,pn as L,cn as M,un as N,dn as O,gn as P,bn as Q};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{Tb as l}from"./chunk-
|
|
2
|
+
import{Tb as l}from"./chunk-ABF3W2MO.js";import{c as n,d as a,e as i,g as t}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";var k=e.enum(["trajectory","reward","demonstration","preference","correction","critique","targeted_feedback","grader_evidence","infrastructure_failure"]),c=e.object({datasetRelease:t,harnessRelease:t,evidenceSetRelease:t.nullable(),profileRelease:t.nullable(),model:e.object({source:e.string().trim().min(1).max(200),revision:e.string().trim().min(1).max(500),artifactHash:a.nullable()}).strict(),environmentHash:a,graderHash:a,toolContractHash:a,verificationReceiptHash:a.nullable()}).strict(),r=e.object({schemaVersion:e.literal("openpond.learningSignal.v1"),id:n,taskId:n.nullable(),episodeId:n.nullable(),policyVersion:e.number().int().nonnegative().nullable(),lineage:c,approved:e.boolean(),verifier:e.enum(["deterministic","model_judge","human","none"]),createdAt:i,contentHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),m=r.extend({kind:e.literal("trajectory"),payload:e.object({traceRef:e.string().trim().min(1).max(2e3),traceHash:a,terminal:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),optimizerSample:l.nullable().optional()}).strict()}).strict(),d=r.extend({kind:e.literal("reward"),payload:e.object({reward:e.number().finite(),components:e.record(e.string(),e.number().finite()),eligible:e.boolean(),graderEvidenceRefs:e.array(n).max(1e3)}).strict()}).strict(),g=r.extend({kind:e.literal("demonstration"),payload:e.object({prompt:e.string().max(5e5),response:e.string().max(1e6)}).strict()}).strict(),u=r.extend({kind:e.literal("preference"),payload:e.object({prompt:e.string().max(5e5),chosen:e.string().max(1e6),rejected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),p=r.extend({kind:e.literal("correction"),payload:e.object({original:e.string().max(1e6),corrected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),b=r.extend({kind:e.literal("critique"),payload:e.object({response:e.string().max(1e6),critique:e.string().max(5e5),severity:e.enum(["note","warning","error"])}).strict()}).strict(),f=r.extend({kind:e.literal("targeted_feedback"),payload:e.object({turnIndex:e.number().int().nonnegative(),target:e.enum(["reasoning","tool","answer","policy"]),feedback:e.string().max(5e5)}).strict()}).strict(),h=r.extend({kind:e.literal("grader_evidence"),payload:e.object({graderId:n,score:e.number().finite().nullable(),passed:e.boolean(),privilegedArtifactRefs:e.array(e.string().trim().min(1).max(2e3))}).strict()}).strict(),x=r.extend({kind:e.literal("infrastructure_failure"),approved:e.literal(!1),verifier:e.literal("none"),payload:e.object({code:n,phase:n,retryable:e.boolean(),rewardEligible:e.literal(!1)}).strict()}).strict(),o=e.discriminatedUnion("kind",[m,d,g,u,p,b,f,h,x]),H=e.object({schemaVersion:e.literal("openpond.learningSignalBatch.v1"),manifestId:n,manifestHash:a,sequence:e.number().int().nonnegative(),signals:e.array(o).min(1).max(1e5),contentHash:a}).strict();var S=e.object({id:n,turn:e.number().int().nonnegative(),kind:e.enum(["message","tool_call","terminal"]),name:n.nullable(),arguments:e.record(e.string(),e.unknown()),content:e.string().max(1e6).nullable(),contentHash:a}).strict(),_=e.object({actionId:n,turn:e.number().int().nonnegative(),terminal:e.boolean(),output:e.record(e.string(),e.unknown()),artifactRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),v=e.object({sequence:e.number().int().nonnegative(),type:e.enum(["created","reset","action","observation","terminal","graded","feedback","failure","collected","destroyed"]),timestamp:i,payloadHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),s=e.object({graderId:n,graderVersion:e.string().trim().min(1).max(200),score:e.number().finite().nullable(),passed:e.boolean(),rewardEligible:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),feedback:e.array(e.string().max(5e5)),visibleEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),privilegedEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),A=e.object({schemaVersion:e.literal("openpond.harnessRunTrace.v1"),manifest:t,taskId:n,seed:e.string().trim().min(1).max(500),events:e.array(v).max(1e6),actions:e.array(S).max(1e5),observations:e.array(_).max(1e5),graderEvidence:e.array(s).max(1e4),learningSignals:e.array(o).max(1e5),terminal:e.boolean(),failureClass:s.shape.failureClass,artifactHash:a,contentHash:a}).strict();export{k as a};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{Ib as P,Lb as h,Mb as E}from"./chunk-
|
|
2
|
+
import{Ib as P,Lb as h,Mb as E}from"./chunk-ABF3W2MO.js";import{c as u,n as f}from"./chunk-VVNV4NNW.js";import{A as d}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";var S=d.object({id:u,runIds:d.array(u).min(2).max(100)}).strict();function j(r){return async s=>{let i=S.parse(s),l=await r.selectedProfile();if(!l)throw new Error("Select a Profile before comparing its evaluation runs.");let a=[];for(let e of i.runIds){let t=await r.store.getProfileEvaluationRun(e);if(!t||f(t.profileRef)!==f(l.ref))throw new Error(`Profile evaluation run ${e} is unavailable in the selected Profile.`);a.push({manifest:t.manifest,result:t.metric})}let o=await r.store.getProfileEvaluationComparison(i.id),n=P({id:i.id,members:a,createdAt:o?.createdAt??new Date().toISOString()});return r.store.saveProfileEvaluationComparison(l.ref,n)}}c(j,"createProfileEvaluationComparisonService");import{promises as m}from"node:fs";import v from"node:path";var y=d.object({id:u,evidenceKind:d.enum(["run","suite","comparison"]),evidenceId:u}).strict();function w(r){return v.join(r,"evals","reports")}c(w,"reportDirectory");async function R(r){let s=await m.lstat(r).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(s&&(!s.isDirectory()||s.isSymbolicLink()))throw new Error("Profile evaluation report directory must be a regular directory.");s||await m.mkdir(r)}c(R,"ensureRegularDirectory");async function k(r){let s,i;if(r.evidenceKind==="run")s=[r.evidenceId],i="";else if(r.evidenceKind==="suite"){let o=await r.store.getProfileEvaluationSuiteRun(r.evidenceId);if(!o||o.profileId!==r.profileRef.profileId)throw new Error("Profile evaluation suite is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}else{let o=await r.store.getProfileEvaluationComparison(r.evidenceId);if(!o)throw new Error("Profile evaluation comparison is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}let l=await Promise.all(s.map(o=>r.store.getProfileEvaluationRun(o)));if(l.some(o=>!o||f(o.profileRef)!==f(r.profileRef)))throw new Error("Profile evaluation report is missing authorized run evidence.");let a=l;if(r.evidenceKind==="run"&&(i=a[0].contentHash),r.evidenceKind!=="run"){let o=r.evidenceKind==="suite"?(await r.store.getProfileEvaluationSuiteRun(r.evidenceId)).members.map(n=>n.runHash):(await r.store.getProfileEvaluationComparison(r.evidenceId)).members.map(n=>n.metricResultHash);for(let[n,e]of a.entries())if(r.evidenceKind==="suite"&&o[n]!==e.contentHash||r.evidenceKind==="comparison"&&o[n]!==e.metric.contentHash)throw new Error("Profile evaluation report evidence differs from retained member runs.")}return{runs:a,primary:{kind:r.evidenceKind,id:r.evidenceId,contentHash:i}}}c(k,"loadRuns");async function H(r){let s=y.parse(r.request),{runs:i,primary:l}=await k({store:r.store,profileRef:r.profileRef,evidenceKind:s.evidenceKind,evidenceId:s.evidenceId}),a=c(e=>[...new Map(e.map(t=>[f(t),t])).values()],"unique"),o=a(i.map(e=>f(e.manifest.metricPolicy))),n=i.map(e=>e.metric.value).filter(e=>e!==null);return h({schemaVersion:"openpond.profileEvaluationReport.v1",id:s.id,createdAt:new Date().toISOString(),testedSources:a(i.map(e=>({profileId:e.manifest.profileEvaluation.profileId,sourceRevision:e.manifest.profileEvaluation.sourceRevision,harnessRelease:e.manifest.profileEvaluation.harnessRelease}))),tasksetReleases:a(i.map(e=>e.manifest.tasksetRelease)),metricPolicyHashes:o,modelConfigurationHashes:a(i.map(e=>e.manifest.policy.kind==="model"?e.manifest.policy.configurationHash:f(e.manifest.policy))),evidence:[l,...i.filter(e=>l.kind!=="run"||e.manifest.id!==l.id).map(e=>({kind:"run",id:e.manifest.id,contentHash:e.contentHash}))],summary:{totalChecks:i.length,passedChecks:i.filter(e=>e.passed).length,failedChecks:i.filter(e=>!e.passed&&e.metric.value!==null).length,unscoredChecks:i.filter(e=>!e.passed&&e.metric.value===null).length,meanScore:o.length===1&&n.length===i.length?n.reduce((e,t)=>e+t,0)/n.length:null}})}c(H,"buildProfileEvaluationReport");function q(r){return{list:c(async()=>{let l=await r.selectedProfile();if(!l)return[];let a=w(l.sourcePath),o=await m.lstat(a).catch(t=>{if(t.code==="ENOENT")return null;throw t});if(!o)return[];if(!o.isDirectory()||o.isSymbolicLink())throw new Error("Profile evaluation report directory is unsafe.");let n=await m.readdir(a,{withFileTypes:!0});return(await Promise.all(n.filter(t=>t.name.endsWith(".json")).map(async t=>{if(!t.isFile()||t.isSymbolicLink())throw new Error("Profile evaluation report must be a regular file.");let p=E(JSON.parse(await m.readFile(v.join(a,t.name),"utf8")));if(`${p.id}.json`!==t.name||p.testedSources.some(g=>g.profileId!==l.ref.profileId))throw new Error("Profile evaluation report differs from its source location.");return p}))).sort((t,p)=>p.createdAt.localeCompare(t.createdAt))},"list"),save:c(async l=>{let a=await r.selectedProfile();if(!a?.gitBacked)throw new Error("Select a Git-backed Profile before saving an evaluation report.");let o=await H({store:r.store,profileRef:a.ref,request:l}),n=v.join(a.sourcePath,"evals");await R(n);let e=w(a.sourcePath);return await R(e),await m.writeFile(v.join(e,`${o.id}.json`),`${JSON.stringify(o,null,2)}
|
|
3
3
|
`,{flag:"wx"}),o},"save")}}c(q,"createProfileEvaluationReportService");export{j as a,H as b,q as c};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{J as B,O as K,U as V,ha as Q}from"./chunk-PGO4FRHU.js";import{m as A}from"./chunk-VNJAAYNQ.js";import{n as J,o as z,p as H,t as P}from"./chunk-TVTFEGTU.js";import{a as N}from"./chunk-NVHZRKXB.js";import{N as T,O as E,P as v,b as O,r as F}from"./chunk-4M3YW3EQ.js";import{Da as q,Fa as D,Ma as G,Ra as L,Ya as b,x as C,z as I}from"./chunk-PBZCXPPC.js";import{A as r}from"./chunk-PF56N7ZY.js";import{a as w}from"./chunk-FTQLQJQV.js";function se(a){let n=P.parse(a.setup),e=typeof a.package=="object"&&a.package!==null&&"schemaVersion"in a.package&&a.package.schemaVersion==="openpond.tasksetPackage.v1"?Q(a.package):null,i=e?null:V(a.package),d=e??i,l=n.tasksetRef;if(!(l&&l.revision===d.taskset.revision&&(e?l.id===e.taskset.id&&l.contentHash===e.taskset.contentHash||l.id===e.taskset.metadata.sourceTasksetId&&l.contentHash===e.taskset.metadata.sourceTasksetHash:l.id===d.taskset.id)))return n;!n.evaluationTasksetRef&&d.taskset.tasks.some(h=>h.split==="frozen_eval"||h.split==="validation")&&(n.evaluationTasksetRef=n.tasksetRef);let s=n.baseModel;if(n.method!=="grpo"||n.recipe||!s?.revision||!s.tokenizerRevision||!s.chatTemplateHash)return n;let m=d.taskset.tasks.filter(h=>h.split==="train"),g=e?e.taskset.graders:b(i.rewardBinding,i.rewards),u=g.find(h=>h.rewardEligible&&h.weight>0),k=e?.environment??i?.executionResources?.environment??i?.execution?.environment;if(!m.length||!u||!k)return n;let x=8,M=8;return P.parse({...n,recipe:{schemaVersion:"openpond.rftRecipe.v1",method:"grpo",parameterization:"lora",baseModel:{id:s.modelId,revision:s.revision,tokenizerRevision:s.tokenizerRevision,chatTemplateHash:s.chatTemplateHash},dataset:{trainSplit:"train",validationSplit:d.taskset.tasks.some(h=>h.split==="frozen_eval")?"frozen_eval":"validation",maxPromptTokens:4096,maxExamples:Math.min(1e3,m.length),selectionStrategy:"stable_hash_top_n"},lora:{rank:2},rollout:{groupSize:x,concurrency:4,maxTurns:d.taskset.environment.kind==="text"?1:15,maxOutputTokens:1024,temperature:.8,topP:.95,seed:17},optimizer:{learningRate:1e-4,maxSteps:M,clipRange:.2,iterations:2,microbatchSize:1,gradientAccumulationSteps:x,advantageEpsilon:1e-8,adamw:{name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8}},loss:{method:"grpo",klBeta:.01},reward:{graderId:u.id,graderHash:A(g),environmentId:k.id,environmentVersion:String(k.revision),toolContractHash:A(d.taskset.tools),learnedPreference:null},resourceLimits:{wallTimeMs:3960*1e3,maxRollouts:M*x,maxPayloadBytes:1e6},policyOptimization:null}})}w(se,"prepareModelTrainingDefaults");var R=r.string().trim().min(1).max(500),f=J,U=r.object({schemaVersion:r.literal("openpond.modelStarter.v1"),id:R,revision:r.number().int().positive(),name:r.string().trim().min(1).max(200),description:r.string().trim().min(1).max(2e3),category:r.enum(["extraction","support","operations","knowledge","coding","writing","classification"]),taskset:f,taskDefinition:f,rewardBinding:f,rewards:r.array(f).min(1).max(100),assets:r.array(f).max(1e3),previewTaskIds:r.array(R).min(1).max(8),startingModel:z,supportedMethods:r.array(H).min(1).max(8),defaultMethod:H,provenance:r.object({author:r.string().min(1).max(200),license:r.string().min(1).max(200),sourceDescription:r.string().min(1).max(2e3)}).strict(),evidence:r.object({verifierFixtures:f.nullable(),baseline:f.nullable(),training:f.nullable(),evaluation:f.nullable()}).strict()}).strict().superRefine((a,n)=>{a.supportedMethods.includes(a.defaultMethod)||n.addIssue({code:"custom",path:["defaultMethod"],message:"The default method must be supported by the package."});for(let e of["rewards","assets"])new Set(a[e].map(i=>i.id)).size!==a[e].length&&n.addIssue({code:"custom",path:[e],message:"Dependency identities must be unique."});new Set(a.previewTaskIds).size!==a.previewTaskIds.length&&n.addIssue({code:"custom",path:["previewTaskIds"],message:"Preview tasks must be unique."})}),W=U.safeExtend({contentHash:r.string().regex(/^[a-f0-9]{64}$/)}),X=r.object({starter:W,taskset:q,taskDefinition:F,rewardBinding:L,rewards:r.array(G).min(1).max(100),assets:r.array(O).max(1e3),execution:B.optional()}).strict(),Y=r.object({schemaVersion:r.literal("openpond.modelStarterPrivacyReview.v1"),disposition:r.literal("synthetic_only"),reviewedBy:r.string().trim().min(1).max(500),reviewedAt:r.iso.datetime(),reviewedContentHash:r.string().regex(/^[a-f0-9]{64}$/),note:r.string().trim().min(1).max(2e3)}).strict();function Z(a){let{contentHash:n,...e}=a.starter,{contentHash:i,...d}=a.taskset,{contentHash:l,...c}=e.taskset,s={...d.metadata},m=s.starterAuthoring;if(m&&typeof m=="object"&&!Array.isArray(m)){let{privacyReview:g,...u}=m;s.starterAuthoring=u}return v({...a,starter:{...e,taskset:c},taskset:{...d,metadata:s}}).contentHash}w(Z,"modelStarterPrivacyContentHash");var ee=r.object({profileId:R,modelId:R,name:r.string().trim().min(1).max(200),starter:f,startingModel:z,method:H,rewardBindingRef:f.nullable().optional(),learning:N.optional()}).strict(),te=ee.extend({schemaVersion:r.literal("openpond.modelStarterCreation.v1"),operationId:R}).strict();function re(a){return C(a,64*1024),te.parse(a)}w(re,"parseModelStarterCreationRequest");function oe(a,n){let e=re(a),i=j(n);if(!E(e.starter,T(i.starter)))throw new Error("Starter creation references a different package revision.");if(!i.starter.supportedMethods.includes(e.method))throw new Error("The selected training method is not supported by this starter.");return{request:e,resolved:i}}w(oe,"validateModelStarterCreation");function de(a){let{starter:n,taskset:e,taskDefinition:i,rewardBinding:d,rewards:l}=j(a);return{starter:n,inputSchema:i.inputSchema,outputSchema:i.outputSchema,reward:{name:d.name,description:d.description,checks:d.sources.map(c=>{let s=l.find(m=>E(c.reward,T(m)));return{name:s.name,description:s.description,kind:s.implementation.kind,role:c.role,weight:c.weight,required:c.required,hardGate:c.hardGate}})},tasks:n.previewTaskIds.map(c=>{let s=e.tasks.find(m=>m.id===c);return{id:s.id,input:s.input,policyVisibleContext:s.policyVisibleContext}}),counts:{train:e.tasks.filter(c=>c.split==="train").length,validation:e.tasks.filter(c=>c.split==="validation").length,frozenEvaluation:e.tasks.filter(c=>c.split==="frozen_eval").length}}}w(de,"previewModelStarter");function j(a){C(a,16*1024*1024);let n=X.parse(a),{starter:e,taskset:i,taskDefinition:d,rewardBinding:l,rewards:c,assets:s}=n,m=i.metadata.starterAuthoring;if(m&&typeof m=="object"&&!Array.isArray(m)&&"privacyReview"in m&&Y.parse(m.privacyReview).reviewedContentHash!==Z(n))throw new Error("Starter privacy review differs from the published contents.");let g=[e,i,d,l,...c,...s];for(let t of g){let{contentHash:o,...p}=t;if(v(p).contentHash!==o)throw new Error(`Starter resource integrity failed: ${t.id}.`)}D(i),K(n.execution,i,s);function u(t,o){if(!E(t,T(o)))throw new Error(`Starter dependency mismatch: ${t.id}.`)}if(w(u,"exact"),u(e.taskset,i),u(e.taskDefinition,d),u(e.rewardBinding,l),u(d.rewardBinding,l),l.recipeRef)throw new Error("Starter binding recipes must be resolved into a standalone binding before publication.");let{policy:k,environment:x,environmentRelease:M,tools:h,capabilities:ae,verifierSetRelease:_}=i,ie={policy:k,environment:x,...M?{environmentRelease:M}:{},tools:h,capabilities:ae,..._?{verifierSetRelease:_}:{}};if(v(ie).contentHash!==v(d.execution).contentHash)throw new Error("Starter execution context differs from its task format.");if(v({graders:i.graders}).contentHash!==v({graders:b(l,c)}).contentHash)throw new Error("Starter executable graders differ from its Reward binding.");for(let[t,o]of[[e.rewards,c],[e.assets,s]]){if(t.length!==o.length||new Set(o.map(p=>p.id)).size!==o.length)throw new Error("Starter dependency inventory mismatch.");for(let p of t){let S=o.find(y=>y.id===p.id);if(!S)throw new Error(`Starter dependency is missing: ${p.id}.`);u(p,S)}}for(let t of l.sources){let o=c.find(p=>p.id===t.reward.id);if(!o)throw new Error(`Starter Reward is missing: ${t.reward.id}.`);u(t.reward,o)}for(let t of c){let o=t.implementation,p=[...t.assets,..."verifierRef"in o?[o.verifierRef]:[],..."rubricRef"in o?[o.rubricRef]:[],..."inputContract"in o?[o.inputContract]:[]];for(let S of p){let y=s.find(ne=>ne.id===S.id);if(!y||v(y.asset).contentHash!==v(S).contentHash)throw new Error(`Starter Reward source is missing or changed: ${S.id}.`);if(S.visibility==="policy")throw new Error(`Starter Reward source must remain private to its evaluator: ${S.id}.`)}}if(new Set(i.tasks.map(t=>t.id)).size!==i.tasks.length)throw new Error("Starter task identities must be unique.");let $=new Map;for(let t of i.tasks){if(t.policyVisibleContext.instructions!==d.instructions)throw new Error(`Starter task does not carry its declared model instructions: ${t.id}.`);let o=v({input:t.input,context:t.policyVisibleContext}).contentHash,p=$.get(o);if(p&&p!==t.split)throw new Error("Starter policy input appears in multiple splits.");if($.set(o,t.split),!I(d.inputSchema,t.input).valid)throw new Error(`Starter task input does not match its format: ${t.id}.`);if(t.expectedOutput!==null&&!I(d.outputSchema,t.expectedOutput).valid)throw new Error(`Starter expected output does not match its format: ${t.id}.`)}for(let t of e.previewTaskIds){let o=i.tasks.find(p=>p.id===t);if(!o||o.split==="frozen_eval")throw new Error(`Starter preview task is unavailable: ${t}.`)}return n}w(j,"validateResolvedModelStarter");export{se as a,W as b,Y as c,re as d,oe as e,de as f,j as g};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{c as F}from"./chunk-IR3YJWPW.js";import{eb as G}from"./chunk-UBCLPZSQ.js";import{l as $,m as z,n as H,o as V,p as R,q as U}from"./chunk-LV3CQ72P.js";import{b as q,d as P}from"./chunk-4M3YW3EQ.js";import{qb as Q,x as h,z as T}from"./chunk-PBZCXPPC.js";import{n as E}from"./chunk-VVNV4NNW.js";import{A as i}from"./chunk-PF56N7ZY.js";import{a}from"./chunk-FTQLQJQV.js";async function K(e){let t=D(await e),[s,m,{QuickJSWASMModule:d}]=await Promise.all([t.importModuleLoader().then(D),t.importFFI(),import("./module-ES6BEMUI-ZVL3F6NW.js").then(D)]),r=await s();r.type="sync";let w=new m(r);return new d(r,w)}a(K,"newQuickJSWASMModuleFromVariant");function D(e){return e&&"default"in e&&e.default?e.default&&"default"in e.default&&e.default.default?e.default.default:e.default:e}a(D,"smartUnwrap");var k=class extends Error{static{a(this,"JavaScriptIsolateExecutionError")}constructor(t){super(t),this.name="JavaScriptIsolateExecutionError"}};async function O(e){te(e),e.signal?.throwIfAborted();let t=a(r=>new Error(`${e.errorPrefix}_${r}`),"error"),s=Date.now()+e.timeoutMs,{default:m}=await import("./dist-SKYG5LZO.js");e.signal?.throwIfAborted();let d=await K(m);e.signal?.throwIfAborted();try{return F.withScope(r=>{let w=r.manage(d.newRuntime());w.setMemoryLimit(33554432),w.setMaxStackSize(262144),w.setInterruptHandler(()=>Date.now()>=s||e.signal?.aborted===!0);let n=r.manage(w.newContext());e.deterministic&&r.manage(n.unwrapResult(n.evalCode("globalThis.Date = undefined; Math.random = () => { throw new Error('environment_random_requires_explicit_seed'); };")));let _=r.manage(n.unwrapResult(n.evalCode("JSON.stringify"))),o=r.manage(n.unwrapResult(n.evalCode(`JSON.parse(${JSON.stringify(JSON.stringify(e.value))})`))),p=r.manage(n.unwrapResult(n.evalCode(e.source,`${e.errorPrefix}.mjs`,{type:"module"}))),v=r.manage(X(n,p,s,e.signal,t)),x=r.manage(n.getProp(v,e.exportName));if(n.typeof(x)!=="function")throw t("function_export_missing");let M=r.manage(n.unwrapResult(n.callFunction(x,n.undefined,o))),b=r.manage(X(n,M,s,e.signal,t)),c=r.manage(n.unwrapResult(n.callFunction(_,n.undefined,b)));if(n.typeof(c)!=="string")throw t("result_not_json");let f=n.getString(c);if(new TextEncoder().encode(f).byteLength>e.maxResultBytes)throw t("result_too_large");if(e.signal?.throwIfAborted(),Date.now()>=s)throw t("timeout");let g=JSON.parse(f);return h(g,e.maxResultBytes),g})}catch(r){throw e.signal?.throwIfAborted(),new k(r instanceof Error?r.message:"JavaScript execution failed.")}}a(O,"executeJavaScriptIsolate");function te(e){if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e5)throw new Error(`${e.errorPrefix}_timeout_invalid`);if(!Number.isInteger(e.maxResultBytes)||e.maxResultBytes<1||e.maxResultBytes>4194304)throw new Error(`${e.errorPrefix}_result_limit_invalid`);if(new TextEncoder().encode(e.source).byteLength>524288)throw new Error(`${e.errorPrefix}_source_too_large`);h(e.value,4194304)}a(te,"validateJavaScriptIsolateInput");function X(e,t,s,m,d){for(;;){if(m?.throwIfAborted(),Date.now()>=s)throw d("timeout");let r=e.getPromiseState(t);if(r.type==="fulfilled")return r.notAPromise?r.value.dup():r.value;if(r.type==="rejected")return e.unwrapResult(r);if(e.runtime.executePendingJobs(1).unwrap()===0)throw d("unresolved_promise")}}a(X,"settle");function I(e,t){let s=t.scope==="arguments"?e.action?.arguments:e[t.scope];for(let m of t.path){if(!s||typeof s!="object"||!Object.hasOwn(s,m))throw new Error("environment_service_reference_missing");s=s[m]}return s}a(I,"resolveValue");async function Y(e,t){if(!e.executionServices?.length)return t.controller(e);if(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("environment_timeout_invalid");h(e.value,4194304);let s=e.executionServices.map(n=>z.parse(n));if(s.length>16)throw new Error("environment_service_limit");if(new Set(s.map(n=>n.id)).size!==s.length)throw new Error("environment_service_identity_collision");let m=Date.now(),d=new AbortController,r=e.signal?AbortSignal.any([e.signal,d.signal]):d.signal,w=setTimeout(()=>d.abort(new Error("environment_timeout")),e.timeoutMs);try{let n=Object.create(null);for(let o of s){if(r.throwIfAborted(),o.operation!==e.operation||o.operation==="step"&&o.toolName!==e.value.action?.name)throw new Error("environment_service_operation_mismatch");let p=Math.min(o.timeoutMs,e.timeoutMs-(Date.now()-m));if(p<1)throw new Error("environment_timeout");let v=new AbortController,x=AbortSignal.any([r,v.signal]),M=setTimeout(()=>v.abort(new Error("environment_service_timeout")),p),b=Date.now();try{if(o.kind==="sqlite.v1"){if(!t.sql)throw new Error("environment_sql_executor_required");let c=I(e.value,o.sql);if(typeof c!="string"||!c.length||new TextEncoder().encode(c).byteLength>65536||c.includes("\0")){n[o.id]={status:"rejected",code:"invalid_submission"};continue}let f=$({schemaVersion:"openpond.sqlExecution.v1",snapshot:I(e.value,o.snapshot),sql:c,maxRows:o.maxRows,maxResultBytes:o.maxResultBytes});n[o.id]=await t.sql({request:f,timeoutMs:e.timeoutMs,signal:x})}else{let c=I(e.value,o.source),f=I(e.value,o.cases);if(typeof c!="string"||new TextEncoder().encode(c).byteLength>524288){n[o.id]={status:"rejected",code:"invalid_submission"};continue}if(!Array.isArray(f)||!f.length||f.length>o.maxCases||f.some(u=>!u||typeof u!="object"||!Object.hasOwn(u,"input")))throw new Error("environment_service_cases_invalid");let g=[];for(let u of f){let l=p-(Date.now()-b);if(l<1&&(v.abort(new Error("environment_service_timeout")),x.throwIfAborted()),g.push(await t.candidate({source:c,exportName:o.exportName,value:structuredClone(u.input),timeoutMs:Math.max(1,l),maxResultBytes:o.maxResultBytes,deterministic:!0,errorPrefix:"candidate",signal:x})),new TextEncoder().encode(JSON.stringify({status:"completed",cases:g})).byteLength>o.maxResultBytes)throw new k("candidate_result_too_large")}n[o.id]={status:"completed",cases:g}}}catch(c){if(r.throwIfAborted(),v.signal.aborted)n[o.id]={status:"rejected",code:"timeout"};else if(c instanceof k)n[o.id]={status:"rejected",code:"execution_failed"};else throw c}finally{clearTimeout(M)}}r.throwIfAborted();let _=e.timeoutMs-(Date.now()-m);if(_<1)throw new Error("environment_timeout");return await t.controller({...e,executionServices:void 0,value:{...e.value,services:n},timeoutMs:_,signal:r})}finally{clearTimeout(w)}}a(Y,"executeEnvironmentWithServices");async function re(e){let t=V.parse(e.operation);return Y(e,{candidate:O,controller:a(async s=>R.parse(await O({...s,exportName:t,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(re,"executeJavaScriptEnvironment");var J=class extends Error{static{a(this,"JavaScriptEnvironmentActionError")}code;constructor(t){super(`environment_${t}`),this.code=t,this.name="JavaScriptEnvironmentActionError"}};async function Qe(e){let t=U(e.definition),s=P(e.asset,t.module);if(!Number.isSafeInteger(e.seed))throw new Error("environment_seed_invalid");let m=e.seed;h(e.input,1048576),h(e.initialState,t.maxStateBytes);let d=structuredClone(e.input),r=structuredClone(e.initialState),w=e.execute??re,n=new AbortController,_=e.signal?AbortSignal.any([e.signal,n.signal]):n.signal,o={},p=0,v=!1,x=!1,M=null,b=[],c=null;async function f(u,l){if(v||x)throw new Error("environment_closed");if(M)throw new Error("environment_operation_in_progress");_.throwIfAborted(),l&&(h(l,262144),l=structuredClone(l));let L=E(o),y=l?t.tools.find(S=>S.name===l.name):null;if(u==="step"){if(p>=t.maxSteps)throw new J("step_budget_exhausted");p++}let j=a((S,C)=>b.push({sequence:b.length,operation:u,toolName:l?.name??null,arguments:l?structuredClone(l.arguments):null,observation:S,beforeStateHash:L,afterStateHash:E(o),error:C}),"record");try{if(l&&!y)throw new J("unknown_tool");if(l&&y&&!T(y.inputSchema,l.arguments).valid)throw new J("invalid_arguments");let S=t.executionServices?.filter(N=>N.operation===u&&(u!=="step"||N.toolName===l?.name)),C=w({source:s,operation:u,value:{input:d,initialState:r,seed:m,state:structuredClone(o),sequence:p,action:l?structuredClone(l):null},timeoutMs:Math.min(t.operationTimeoutMs,y?.timeoutMs??t.operationTimeoutMs),signal:_,...S?.length?{executionServices:S}:{}});M=C;let A=R.parse(await C);if(_.throwIfAborted(),h(A.state,t.maxStateBytes),h(A.observation,t.maxObservationBytes),(u==="collect"||y?.sideEffect==="read")&&E(A.state)!==L)throw new Error("environment_read_changed_state");o=structuredClone(A.state);let B=structuredClone(A.observation);return j(B,null),{state:structuredClone(o),observation:B}}catch(S){throw j(null,S instanceof Error?S.message:"environment_execution_failed"),S}finally{M=null}}a(f,"invoke");async function g(){return c||(x=!0,n.abort(new Error("environment_destroyed")),c=(async()=>{try{try{await M}catch{}await w({source:s,operation:"destroy",value:{input:d,initialState:r,seed:m,state:structuredClone(o),sequence:p,action:null},timeoutMs:t.operationTimeoutMs})}finally{o={},v=!0}})(),c)}a(g,"destroy");try{await f("create");let u=await f("reset"),l=E(o),L=a(()=>{if(v)throw new Error("environment_closed");return{definition:{id:t.id,revision:t.revision,contentHash:t.contentHash},inputHash:E(d),seed:m,initialStateHash:l,finalStateHash:E(o),state:structuredClone(o),events:structuredClone(b)}},"snapshot");return{definition:structuredClone(t),observation:u.observation,async step(y){return(await f("step",y)).observation},async collect(){let y=await f("collect");return{...L(),observation:y.observation}},snapshot:L,destroy:g}}catch(u){try{await g()}catch{}throw u}}a(Qe,"createJavaScriptEnvironmentSession");var ne=i.string().trim().min(1).max(500),oe=i.string().regex(/^[a-f0-9]{64}$/),W=i.object({kind:i.literal("model"),id:i.string().trim().min(1).max(191),taskId:ne,admissionHash:oe,model:G,instructions:i.string().max(262144),harness:Q.optional(),input:i.record(i.string(),i.unknown()),policyVisibleContext:i.record(i.string(),i.unknown()),timeoutMs:i.number().int().positive().max(36e5),environment:i.discriminatedUnion("kind",[i.object({kind:i.literal("text")}).strict(),i.object({kind:i.literal("javascript"),definition:H,asset:q,initialState:i.record(i.string(),i.unknown()),seed:i.number().int().safe()}).strict()])}).strict(),Ye=i.discriminatedUnion("kind",[W,i.object({kind:i.literal("profile"),request:i.unknown()}).strict()]);var Z=i.string().trim().min(1).max(200),mt=i.object({receiptId:Z,taskId:Z,seed:i.string(),request:W}).strict(),ee=class extends Error{constructor(s,m,d=409){super(m);this.code=s;this.status=d}code;status;static{a(this,"LocalExperimentError")}};export{k as a,te as b,Y as c,J as d,Qe as e,W as f,Ye as g,ee as h};
|
|
2
|
+
import{c as F}from"./chunk-IR3YJWPW.js";import{eb as G}from"./chunk-TUCKED4T.js";import{l as $,m as z,n as H,o as V,p as R,q as U}from"./chunk-LV3CQ72P.js";import{b as q,d as P}from"./chunk-4M3YW3EQ.js";import{qb as Q,x as h,z as T}from"./chunk-PBZCXPPC.js";import{n as E}from"./chunk-VVNV4NNW.js";import{A as i}from"./chunk-PF56N7ZY.js";import{a}from"./chunk-FTQLQJQV.js";async function K(e){let t=D(await e),[s,m,{QuickJSWASMModule:d}]=await Promise.all([t.importModuleLoader().then(D),t.importFFI(),import("./module-ES6BEMUI-ZVL3F6NW.js").then(D)]),r=await s();r.type="sync";let w=new m(r);return new d(r,w)}a(K,"newQuickJSWASMModuleFromVariant");function D(e){return e&&"default"in e&&e.default?e.default&&"default"in e.default&&e.default.default?e.default.default:e.default:e}a(D,"smartUnwrap");var k=class extends Error{static{a(this,"JavaScriptIsolateExecutionError")}constructor(t){super(t),this.name="JavaScriptIsolateExecutionError"}};async function O(e){te(e),e.signal?.throwIfAborted();let t=a(r=>new Error(`${e.errorPrefix}_${r}`),"error"),s=Date.now()+e.timeoutMs,{default:m}=await import("./dist-SKYG5LZO.js");e.signal?.throwIfAborted();let d=await K(m);e.signal?.throwIfAborted();try{return F.withScope(r=>{let w=r.manage(d.newRuntime());w.setMemoryLimit(33554432),w.setMaxStackSize(262144),w.setInterruptHandler(()=>Date.now()>=s||e.signal?.aborted===!0);let n=r.manage(w.newContext());e.deterministic&&r.manage(n.unwrapResult(n.evalCode("globalThis.Date = undefined; Math.random = () => { throw new Error('environment_random_requires_explicit_seed'); };")));let _=r.manage(n.unwrapResult(n.evalCode("JSON.stringify"))),o=r.manage(n.unwrapResult(n.evalCode(`JSON.parse(${JSON.stringify(JSON.stringify(e.value))})`))),p=r.manage(n.unwrapResult(n.evalCode(e.source,`${e.errorPrefix}.mjs`,{type:"module"}))),v=r.manage(X(n,p,s,e.signal,t)),x=r.manage(n.getProp(v,e.exportName));if(n.typeof(x)!=="function")throw t("function_export_missing");let M=r.manage(n.unwrapResult(n.callFunction(x,n.undefined,o))),b=r.manage(X(n,M,s,e.signal,t)),c=r.manage(n.unwrapResult(n.callFunction(_,n.undefined,b)));if(n.typeof(c)!=="string")throw t("result_not_json");let f=n.getString(c);if(new TextEncoder().encode(f).byteLength>e.maxResultBytes)throw t("result_too_large");if(e.signal?.throwIfAborted(),Date.now()>=s)throw t("timeout");let g=JSON.parse(f);return h(g,e.maxResultBytes),g})}catch(r){throw e.signal?.throwIfAborted(),new k(r instanceof Error?r.message:"JavaScript execution failed.")}}a(O,"executeJavaScriptIsolate");function te(e){if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e5)throw new Error(`${e.errorPrefix}_timeout_invalid`);if(!Number.isInteger(e.maxResultBytes)||e.maxResultBytes<1||e.maxResultBytes>4194304)throw new Error(`${e.errorPrefix}_result_limit_invalid`);if(new TextEncoder().encode(e.source).byteLength>524288)throw new Error(`${e.errorPrefix}_source_too_large`);h(e.value,4194304)}a(te,"validateJavaScriptIsolateInput");function X(e,t,s,m,d){for(;;){if(m?.throwIfAborted(),Date.now()>=s)throw d("timeout");let r=e.getPromiseState(t);if(r.type==="fulfilled")return r.notAPromise?r.value.dup():r.value;if(r.type==="rejected")return e.unwrapResult(r);if(e.runtime.executePendingJobs(1).unwrap()===0)throw d("unresolved_promise")}}a(X,"settle");function I(e,t){let s=t.scope==="arguments"?e.action?.arguments:e[t.scope];for(let m of t.path){if(!s||typeof s!="object"||!Object.hasOwn(s,m))throw new Error("environment_service_reference_missing");s=s[m]}return s}a(I,"resolveValue");async function Y(e,t){if(!e.executionServices?.length)return t.controller(e);if(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("environment_timeout_invalid");h(e.value,4194304);let s=e.executionServices.map(n=>z.parse(n));if(s.length>16)throw new Error("environment_service_limit");if(new Set(s.map(n=>n.id)).size!==s.length)throw new Error("environment_service_identity_collision");let m=Date.now(),d=new AbortController,r=e.signal?AbortSignal.any([e.signal,d.signal]):d.signal,w=setTimeout(()=>d.abort(new Error("environment_timeout")),e.timeoutMs);try{let n=Object.create(null);for(let o of s){if(r.throwIfAborted(),o.operation!==e.operation||o.operation==="step"&&o.toolName!==e.value.action?.name)throw new Error("environment_service_operation_mismatch");let p=Math.min(o.timeoutMs,e.timeoutMs-(Date.now()-m));if(p<1)throw new Error("environment_timeout");let v=new AbortController,x=AbortSignal.any([r,v.signal]),M=setTimeout(()=>v.abort(new Error("environment_service_timeout")),p),b=Date.now();try{if(o.kind==="sqlite.v1"){if(!t.sql)throw new Error("environment_sql_executor_required");let c=I(e.value,o.sql);if(typeof c!="string"||!c.length||new TextEncoder().encode(c).byteLength>65536||c.includes("\0")){n[o.id]={status:"rejected",code:"invalid_submission"};continue}let f=$({schemaVersion:"openpond.sqlExecution.v1",snapshot:I(e.value,o.snapshot),sql:c,maxRows:o.maxRows,maxResultBytes:o.maxResultBytes});n[o.id]=await t.sql({request:f,timeoutMs:e.timeoutMs,signal:x})}else{let c=I(e.value,o.source),f=I(e.value,o.cases);if(typeof c!="string"||new TextEncoder().encode(c).byteLength>524288){n[o.id]={status:"rejected",code:"invalid_submission"};continue}if(!Array.isArray(f)||!f.length||f.length>o.maxCases||f.some(u=>!u||typeof u!="object"||!Object.hasOwn(u,"input")))throw new Error("environment_service_cases_invalid");let g=[];for(let u of f){let l=p-(Date.now()-b);if(l<1&&(v.abort(new Error("environment_service_timeout")),x.throwIfAborted()),g.push(await t.candidate({source:c,exportName:o.exportName,value:structuredClone(u.input),timeoutMs:Math.max(1,l),maxResultBytes:o.maxResultBytes,deterministic:!0,errorPrefix:"candidate",signal:x})),new TextEncoder().encode(JSON.stringify({status:"completed",cases:g})).byteLength>o.maxResultBytes)throw new k("candidate_result_too_large")}n[o.id]={status:"completed",cases:g}}}catch(c){if(r.throwIfAborted(),v.signal.aborted)n[o.id]={status:"rejected",code:"timeout"};else if(c instanceof k)n[o.id]={status:"rejected",code:"execution_failed"};else throw c}finally{clearTimeout(M)}}r.throwIfAborted();let _=e.timeoutMs-(Date.now()-m);if(_<1)throw new Error("environment_timeout");return await t.controller({...e,executionServices:void 0,value:{...e.value,services:n},timeoutMs:_,signal:r})}finally{clearTimeout(w)}}a(Y,"executeEnvironmentWithServices");async function re(e){let t=V.parse(e.operation);return Y(e,{candidate:O,controller:a(async s=>R.parse(await O({...s,exportName:t,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(re,"executeJavaScriptEnvironment");var J=class extends Error{static{a(this,"JavaScriptEnvironmentActionError")}code;constructor(t){super(`environment_${t}`),this.code=t,this.name="JavaScriptEnvironmentActionError"}};async function Qe(e){let t=U(e.definition),s=P(e.asset,t.module);if(!Number.isSafeInteger(e.seed))throw new Error("environment_seed_invalid");let m=e.seed;h(e.input,1048576),h(e.initialState,t.maxStateBytes);let d=structuredClone(e.input),r=structuredClone(e.initialState),w=e.execute??re,n=new AbortController,_=e.signal?AbortSignal.any([e.signal,n.signal]):n.signal,o={},p=0,v=!1,x=!1,M=null,b=[],c=null;async function f(u,l){if(v||x)throw new Error("environment_closed");if(M)throw new Error("environment_operation_in_progress");_.throwIfAborted(),l&&(h(l,262144),l=structuredClone(l));let L=E(o),y=l?t.tools.find(S=>S.name===l.name):null;if(u==="step"){if(p>=t.maxSteps)throw new J("step_budget_exhausted");p++}let j=a((S,C)=>b.push({sequence:b.length,operation:u,toolName:l?.name??null,arguments:l?structuredClone(l.arguments):null,observation:S,beforeStateHash:L,afterStateHash:E(o),error:C}),"record");try{if(l&&!y)throw new J("unknown_tool");if(l&&y&&!T(y.inputSchema,l.arguments).valid)throw new J("invalid_arguments");let S=t.executionServices?.filter(N=>N.operation===u&&(u!=="step"||N.toolName===l?.name)),C=w({source:s,operation:u,value:{input:d,initialState:r,seed:m,state:structuredClone(o),sequence:p,action:l?structuredClone(l):null},timeoutMs:Math.min(t.operationTimeoutMs,y?.timeoutMs??t.operationTimeoutMs),signal:_,...S?.length?{executionServices:S}:{}});M=C;let A=R.parse(await C);if(_.throwIfAborted(),h(A.state,t.maxStateBytes),h(A.observation,t.maxObservationBytes),(u==="collect"||y?.sideEffect==="read")&&E(A.state)!==L)throw new Error("environment_read_changed_state");o=structuredClone(A.state);let B=structuredClone(A.observation);return j(B,null),{state:structuredClone(o),observation:B}}catch(S){throw j(null,S instanceof Error?S.message:"environment_execution_failed"),S}finally{M=null}}a(f,"invoke");async function g(){return c||(x=!0,n.abort(new Error("environment_destroyed")),c=(async()=>{try{try{await M}catch{}await w({source:s,operation:"destroy",value:{input:d,initialState:r,seed:m,state:structuredClone(o),sequence:p,action:null},timeoutMs:t.operationTimeoutMs})}finally{o={},v=!0}})(),c)}a(g,"destroy");try{await f("create");let u=await f("reset"),l=E(o),L=a(()=>{if(v)throw new Error("environment_closed");return{definition:{id:t.id,revision:t.revision,contentHash:t.contentHash},inputHash:E(d),seed:m,initialStateHash:l,finalStateHash:E(o),state:structuredClone(o),events:structuredClone(b)}},"snapshot");return{definition:structuredClone(t),observation:u.observation,async step(y){return(await f("step",y)).observation},async collect(){let y=await f("collect");return{...L(),observation:y.observation}},snapshot:L,destroy:g}}catch(u){try{await g()}catch{}throw u}}a(Qe,"createJavaScriptEnvironmentSession");var ne=i.string().trim().min(1).max(500),oe=i.string().regex(/^[a-f0-9]{64}$/),W=i.object({kind:i.literal("model"),id:i.string().trim().min(1).max(191),taskId:ne,admissionHash:oe,model:G,instructions:i.string().max(262144),harness:Q.optional(),input:i.record(i.string(),i.unknown()),policyVisibleContext:i.record(i.string(),i.unknown()),timeoutMs:i.number().int().positive().max(36e5),environment:i.discriminatedUnion("kind",[i.object({kind:i.literal("text")}).strict(),i.object({kind:i.literal("javascript"),definition:H,asset:q,initialState:i.record(i.string(),i.unknown()),seed:i.number().int().safe()}).strict()])}).strict(),Ye=i.discriminatedUnion("kind",[W,i.object({kind:i.literal("profile"),request:i.unknown()}).strict()]);var Z=i.string().trim().min(1).max(200),mt=i.object({receiptId:Z,taskId:Z,seed:i.string(),request:W}).strict(),ee=class extends Error{constructor(s,m,d=409){super(m);this.code=s;this.status=d}code;status;static{a(this,"LocalExperimentError")}};export{k as a,te as b,Y as c,J as d,Qe as e,W as f,Ye as g,ee as h};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as vt,c as at}from"./chunk-JHR3LF2F.js";import{Aa as Yt,Ea as Zt,Fa as Qt,Ha as te,b as J,p as st,ya as At,za as Pt}from"./chunk-
|
|
2
|
+
import{a as vt,c as at}from"./chunk-JHR3LF2F.js";import{Aa as Yt,Ea as Zt,Fa as Qt,Ha as te,b as J,p as st,ya as At,za as Pt}from"./chunk-TUCKED4T.js";import{t as qt}from"./chunk-JY3YSI54.js";import{S as Jt,U as St,e as Wt}from"./chunk-2EPR4HLF.js";import{I as Kt}from"./chunk-BKEDG3A4.js";import{e as Vt}from"./chunk-OE22TAXP.js";import{A as rt}from"./chunk-PF56N7ZY.js";import{a as r}from"./chunk-FTQLQJQV.js";import{promises as ae}from"node:fs";import Et from"node:path";import Ke from"node:os";import ee from"node:path";function bt(t){let e=t.trim();return e.startsWith("# AGENTS.md instructions for ")||e.startsWith("<environment_context>")||e.startsWith("<summary>")||e.startsWith("<user_info>")}r(bt,"isCodexInjectedUserMessage");function mt(t){let e=t.trim(),n=/^<(goal_context|turn_aborted)>\s*([\s\S]*?)\s*<\/\1>$/.exec(e);if(n){let o=n[1];return{kind:o,text:n[2]?.trim()||Rt(o)}}return e==="<turn_aborted>"?{kind:"turn_aborted",text:Rt("turn_aborted")}:e==="<goal_context>"?{kind:"goal_context",text:Rt("goal_context")}:null}r(mt,"codexControlMessage");function Y(t,e){return t.length<=e?t:`${t.slice(0,e)}
|
|
3
3
|
|
|
4
4
|
[truncated ${t.length-e} characters from Codex history]`}r(Y,"truncateText");function it(t){return t.replace(/\s+/g," ").trim()}r(it,"normalizeTitleText");function ne(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}r(ne,"parseMaybeJson");function Q(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}r(Q,"parseJson");function C(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}r(C,"asRecord");function l(t){return typeof t=="string"&&t.trim()?t.trim():null}r(l,"stringValue");function F(t){return typeof t=="number"&&Number.isFinite(t)?t:null}r(F,"numberValue");function oe(t){let e=new Map;if(!t)return e;for(let[n,o]of Object.entries(t))typeof o=="string"&&o.trim()&&e.set(n,o.trim());return e}r(oe,"stringMap");function P(t){return t.replace(/[^a-zA-Z0-9_-]+/g,"_").slice(0,96)||"item"}r(P,"safeId");function kt(t){let e=0;for(let n of t)typeof n=="number"&&n>e&&(e=n);return e}r(kt,"latestMillis");function tt(t){let e=kt(t.map(v));return new Date(e||Date.now()).toISOString()}r(tt,"latestIso");function v(t){if(!t)return 0;let e=Date.parse(t);return Number.isFinite(e)?e:0}r(v,"millisFromIso");function K(t){if(typeof t!="string"||!t.trim())return null;let e=t.trim().replace(/(\.\d{3})\d+(Z)$/i,"$1$2"),n=Date.parse(e);return Number.isFinite(n)?new Date(n).toISOString():null}r(K,"isoTimestamp");function re(t){if(t===null)return null;let e=t*1e3;return Number.isFinite(e)?new Date(e).toISOString():null}r(re,"isoFromEpochSeconds");function se(t){let e=/rollout-(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-/.exec(ee.basename(t));return e?K(`${e[1]}T${e[2]}:${e[3]}:${e[4]}.000Z`):null}r(se,"isoFromFileName");function et(){return process.env.CODEX_HOME?.trim()||ee.join(Ke.homedir(),".codex")}r(et,"codexHomePath");function Rt(t){return t==="turn_aborted"?"The previous turn was interrupted.":"Goal context updated."}r(Rt,"defaultCodexControlText");import{createReadStream as Je}from"node:fs";import{createInterface as qe}from"node:readline";async function Z(t,e){let n=Je(t,{encoding:"utf8"}),o=qe({input:n,crlfDelay:1/0});for await(let s of o){if(!s.trim())continue;let a=Q(s);a&&e(a)}}r(Z,"readJsonlRecords");function Mt(t){let e=new Map;async function n(o){let s=await ae.stat(o);return`${s.dev}:${s.ino}:${s.size}:${s.mtimeMs}:${s.ctimeMs}`}return r(n,"signature"),async o=>{let s;try{s=await n(o)}catch{return e.delete(o),t(o)}let a=e.get(o);if(a?.signature===s)return a.value;let i=t(o).then(async d=>(await n(o).catch(()=>null)!==s&&e.get(o)?.value===i&&e.delete(o),d)).catch(d=>{throw e.get(o)?.value===i&&e.delete(o),d});return e.set(o,{signature:s,value:i}),e.size>4&&e.delete(e.keys().next().value),i}}r(Mt,"cachedFileReader");var Ye=Mt(tn),Ze=Mt(en),Qe=Mt(nn),ie=r(t=>Ye(Et.join(t,"history.jsonl")),"readPromptHistory"),de=r(t=>Ze(Et.join(t,"session_index.jsonl")),"readSessionIndex"),ce=r(t=>Qe(Et.join(t,".codex-global-state.json")),"readGlobalState");async function tn(t){let e=new Map;return await Z(t,n=>{let o=C(n),s=l(o?.session_id),a=l(o?.text)??"",i=re(F(o?.ts));if(!s||!/\S/.test(a)||!i)return;let d=e.get(s)??{firstPrompt:null,latestPrompt:null,firstAt:null,latestAt:null};(!d.firstAt||v(i)<v(d.firstAt))&&(d.firstAt=i,d.firstPrompt=it(a).slice(0,160)),(!d.latestAt||v(i)>v(d.latestAt))&&(d.latestAt=i),e.set(s,d)}).catch(()=>{}),e}r(tn,"parsePromptHistory");async function en(t){let e=new Map;return await Z(t,n=>{let o=C(n),s=l(o?.id);s&&e.set(s,{id:s,threadName:it(l(o?.thread_name)??"")||null,updatedAt:K(l(o?.updated_at))})}).catch(()=>{}),e}r(en,"parseSessionIndex");async function nn(t){let e;try{e=JSON.parse(await ae.readFile(t,"utf8"))}catch{e=null}let n=C(e);return{workspaceRootHints:oe(C(n?.["thread-workspace-root-hints"]))}}r(nn,"parseGlobalState");import{createReadStream as bn,existsSync as _e,mkdirSync as kn,promises as En,readFileSync as Mn,statSync as Ot,writeFileSync as Nn}from"node:fs";import ht from"node:os";import b from"node:path";import{createInterface as Hn}from"node:readline";import{promises as pt}from"node:fs";import H from"node:path";var on=12e4,rn=15*1024*1024,dt=2*1024*1024,le=new Map([[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".png","image/png"],[".webp","image/webp"]]),sn=new Set(le.values()),an=new Set(["application/javascript","application/json","application/ld+json","application/sql","application/toml","application/typescript","application/x-httpd-php","application/x-javascript","application/x-sh","application/x-yaml","application/xml","application/yaml"]),dn=new Set([".c",".cc",".cpp",".css",".csv",".go",".h",".html",".java",".js",".json",".jsx",".log",".md",".mdx",".php",".py",".rb",".rs",".sh",".sql",".toml",".ts",".tsx",".txt",".xml",".yaml",".yml"]);async function or(t){let e=t.attachments??[];if(e.length===0)return[];let n=H.join(t.attachmentRootDir,R(t.sessionId),R(t.turnId)),o=new Set,s=[];for(let[a,i]of e.entries()){let c={...ue(i),...i.text?{text:i.text}:{}};if(i.contentsBase64){await pt.mkdir(n,{recursive:!0});let m=mn(i.relativePath||i.name,o,a+1),u=H.join(n,m);await pt.mkdir(H.dirname(u),{recursive:!0});let h=Buffer.from(i.contentsBase64,"base64"),p=await Jt(t.storageHome,{owner:{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,m])},displayName:i.name,mediaType:i.mediaType,bytes:h});await Wt(u,h),c.localPath=p.path,c.storageName=m}s.push(c)}return s}r(or,"materializeChatAttachments");function rr(t,e){let n=new Map(e?.materialized.map(o=>[o.id,o])??[]);return(t??[]).map(o=>{let s=ue(o),a=n.get(o.id),i=U(o.mediaType,a?.storageName??o.name);return e&&s.kind==="image"&&a?.localPath&&a.storageName&&i?{...s,imagePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:i}}:e&&a?.localPath&&a.storageName&&o.sizeBytes<=dt&&ct(o.mediaType,a.storageName)?{...s,filePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:o.mediaType}}:s})}r(rr,"chatAttachmentSummaries");function sr(t){if(!t||t.length===0)return"";let e=["<attachments>",`The user attached ${t.length} file${t.length===1?"":"s"} with this message.`],n=on;for(let[o,s]of t.entries()){let a=s.localPath?` Saved locally at: ${s.localPath}`:"";e.push(`${o+1}. ${s.name} (${s.mediaType}, ${pn(s.sizeBytes)}, ${s.kind}).${a}`);let i=s.text?.trim();if(i&&n>0){let d=i.length>n?`${i.slice(0,Math.max(0,n-34))}
|
|
5
5
|
[attachment text truncated]`:i;e.push("Text content:"),e.push("~~~text"),e.push(d),e.push("~~~"),n-=d.length}}return e.push("</attachments>"),e.join(`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{
|
|
3
|
-
`,{flag:"wx"});let o=await me(e.runPath);if(o){let r=o==="npm"?["ci","--omit=dev","--ignore-scripts","--no-audit","--no-fund"]:["install","--prod","--frozen-lockfile","--ignore-scripts","--config.node-linker=hoisted"];await(e.install??Je)(o,r,e.runPath)}let s=G.join(e.runPath,"node_modules","openpond-agent-sdk");if(!await L.lstat(s).catch(()=>null)){let r=JSON.parse(await L.readFile(t,"utf8"));if({...le(r.dependencies),...le(r.optionalDependencies)}["openpond-agent-sdk"])throw new Error("Released Profile Agent declared an SDK dependency that the locked installation did not provide.");let P=await Ie();await L.mkdir(G.dirname(s),{recursive:!0}),await L.symlink(P,s,"dir")}}c(nt,"prepareReleasedProfileActionDependencies");async function me(e){let t=G.join(e,"package.json"),a=await L.lstat(t).catch(()=>null);if(!a)return null;if(!a.isFile()||a.isSymbolicLink())throw new Error("Released Profile Agent package manifest must be a regular file.");let o=JSON.parse(await L.readFile(t,"utf8")),s={...le(o.dependencies),...le(o.optionalDependencies)};if(Object.keys(s).length){for(let[P,u]of Object.entries(s))if(/^(?:file:|link:|workspace:|git\+|https?:)/i.test(u))throw new Error(`Released Profile Agent dependency ${P} must use a portable registry version.`);let r=await We(G.join(e,"package-lock.json")),w=await We(G.join(e,"pnpm-lock.yaml"));if(r===w)throw new Error("Released Profile Agent with third-party dependencies requires exactly one npm or pnpm lockfile.");return r?"npm":"pnpm"}return null}c(me,"inspectReleasedProfileActionDependencies");function le(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Released Profile Agent dependencies must be a package map.");let t=Object.entries(e);if(t.some(([a,o])=>!a||typeof o!="string"||!o.trim()))throw new Error("Released Profile Agent dependencies must name portable versions.");return Object.fromEntries(t)}c(le,"dependencyMap");async function We(e){let t=await L.lstat(e).catch(()=>null);if(t&&(!t.isFile()||t.isSymbolicLink()))throw new Error("Released Profile Agent lockfile must be a regular file.");return!!t}c(We,"regularFile");async function Je(e,t,a){try{let o=process.platform==="win32"?`${e}.cmd`:e;await ze(o,t,{cwd:a,timeout:3e5,maxBuffer:1e6,...process.platform==="win32"?{shell:!0}:{}})}catch{throw new Error(`Released Profile Agent locked ${e} dependency installation failed.`)}}c(Je,"installLockedDependencies");var Te="harness.json";async function we(e,t,a,o,s){let r=n.resolve(a.sourcePath),w=[],P=Ae(r,e),u=P.copy,N=new Set((await _(r)).filter(Le)),E=new Set,y=c(i=>{let h=i.id;E.has(h)&&(h=`${h}-${j(i.path).slice(0,8)}`),E.add(h);let b={...i,id:h};return w.push(b),b},"addDeclaration");await f.mkdir(e,{recursive:!0});let ae=n.join(r,"instructions","system.md"),V=await f.lstat(ae).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(V){if(!V.isFile()||V.isSymbolicLink())throw new Error("Profile instructions require an actual regular source file.");await u(ae,n.join(e,"instructions","system.md")),y({id:"instruction-system",kind:"instruction",path:"instructions/system.md",parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"})}for(let i of a.skills.filter(h=>h.enabled)){if(i.validationStatus!=="valid")throw new Error(`Cannot import invalid Profile Skill ${i.name}: ${i.validationMessages.join(" ")}`);let h=n.dirname(n.join(r,i.path)),b=`skills/${H(i.name)}/SKILL.md`;await u(n.join(h,"SKILL.md"),n.join(e,...b.split("/")));let T=y({id:`skill-${H(i.name)}`,kind:"skill",path:b,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"});for(let p of i.resourceFiles){let O=`skills/${H(i.name)}/${p.split(n.sep).join("/")}`;await u(n.join(h,p),n.join(e,...O.split("/"))),y({id:`skill-resource-${H(i.name)}-${j(p).slice(0,12)}`,kind:"skill_resource",path:O,parentId:T.id,mediaType:Z(O),visibility:"policy",portability:"portable"})}}for(let i of a.agents.filter(h=>h.enabled)){let h=n.resolve(r,i.path),b=await f.realpath(h),T=await f.realpath(r),p=n.relative(T,b);if(p.startsWith("..")||n.isAbsolute(p))throw new Error("Profile Agent source escapes its admitted Profile root.");let O=await f.lstat(h),U=(await Fe(h)).filter(A=>{let C=O.isDirectory()?n.join(b,...A.split("/")):b;return!N.has(n.relative(T,C).split(n.sep).join("/"))});if(U.length===0)throw new Error(`Profile Agent ${i.id} has no source files.`);let Y=xe(U);for(let A of U){let C=`agents/${H(i.id)}/${A}`,Q=(await f.stat(h)).isDirectory()?n.join(h,...A.split("/")):h;await u(Q,n.join(e,...C.split("/"))),y({id:A===Y?`agent-${H(i.id)}`:`agent-asset-${H(i.id)}-${j(A).slice(0,12)}`,kind:A===Y?"agent":"asset",path:C,parentId:null,mediaType:Z(C),visibility:"policy",portability:"portable"})}await me(n.join(e,"agents",H(i.id)))}let X=new Set,se=new Set(a.agents.filter(i=>i.enabled).map(i=>i.id)),W=a.actionCatalog.filter(i=>i.agentId&&se.has(i.agentId)).map(i=>({id:i.id,agentId:H(i.agentId),sourceActionId:i.sourceActionId??i.id,inputSchema:typeof i.inputSchema=="object"&&i.inputSchema!==null?i.inputSchema:{type:"object",additionalProperties:!0}})),re=new Set(W.map(i=>i.id)),z=n.join(r,"workflows","catalog.json"),F=await f.lstat(z).catch(()=>null),l=(await _(r)).filter(i=>i.startsWith("workflows/")),S=l.some(i=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(i));if(S&&F)throw new Error("Authored Workflow packages and legacy workflows/catalog.json cannot coexist; migrate the catalog first.");if(F||S||W.length){if(F&&(!F.isFile()||F.isSymbolicLink()))throw new Error("Profile workflow catalog must be a regular file.");let i=S?He({files:new Map(await Promise.all(l.map(async p=>[p,await f.readFile(await ee(r,p),"utf8")]))),skillPaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:re}):null,h=i?Buffer.from(v(i.catalog)):F?await f.readFile(z):Buffer.from(v({schemaVersion:"openpond.profileWorkflows.v1",workflows:[]}));F&&P.add("workflows/catalog.json","workflows/catalog.json");let b=ie({catalog:JSON.parse(h.toString("utf8")),sourcePaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:new Set(W.map(p=>p.id))});for(let p of b.workflows)X.add(p.id);ue(b);let T="workflows/catalog.json";await f.mkdir(n.join(e,"workflows"),{recursive:!0}),await f.writeFile(n.join(e,"workflows","catalog.json"),h,{flag:"wx"});for(let p of i?.referencedPaths??[])await u(n.join(r,...p.split("/")),n.join(e,...p.split("/"))),y({id:`profile-workflow-source-${j(p).slice(0,16)}`,kind:"asset",path:p,parentId:null,mediaType:Z(p),visibility:"policy",portability:"portable"});y({id:"profile-workflows",kind:"workflow",path:T,parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"})}(F||S||W.length)&&(await f.writeFile(n.join(e,"workflows","actions.json"),v({schemaVersion:"openpond.profileWorkflowActions.v1",actions:W}),{flag:"wx"}),y({id:"profile-workflow-actions",kind:"asset",path:"workflows/actions.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}));let I=n.join(r,"evals","catalog.json"),J=await f.lstat(I).catch(()=>null),$=(await _(r)).filter(i=>/^workflows\/[^/]+\/evals\/[^/]+\.json$/.test(i)||/^evals\/(definitions|suites)\/[^/]+\.json$/.test(i));if(J&&$.length)throw new Error("Authored evaluation definitions and legacy evals/catalog.json cannot coexist; migrate the catalog first.");if(J||$.length){let[{ProfileEvaluationDefinitionSchema:i,ProfileEvaluationSuiteSchema:h,validateProfileEvaluationCatalog:b},{validateTasksetPackage:T}]=await Promise.all([import("./dist-IIFTZWNR.js"),import("./taskset-packages-I7I5KBFP.js")]);if(J&&(!J.isFile()||J.isSymbolicLink()))throw new Error("Profile evaluation catalog must be a regular file.");let p=[],O=[];for(let g of $){let x=JSON.parse(await f.readFile(await ee(r,g),"utf8"));if(g.startsWith("evals/suites/"))O.push(h.parse(x));else{let M=i.parse(x),K=/^workflows\/([^/]+)\/evals\//.exec(g)?.[1];if(K&&(M.target.kind!=="workflow"||M.target.workflowId!==K))throw new Error(`Profile evaluation ${M.id} must target its containing Workflow ${K}.`);p.push(M)}}let U=$.length?Buffer.from(v({schemaVersion:"openpond.profileEvaluations.v1",definitions:p.sort((g,x)=>g.id.localeCompare(x.id)),suites:O.sort((g,x)=>g.id.localeCompare(x.id))})):await f.readFile(I),{catalog:Y}=b({catalog:JSON.parse(U.toString("utf8")),workflowIds:X,skillPaths:new Set(w.filter(g=>g.kind==="skill").map(g=>g.path)),actionIds:re});await f.mkdir(n.join(e,"evals"),{recursive:!0}),await f.writeFile(n.join(e,"evals","catalog.json"),U,{flag:"wx"});for(let g of $)await u(n.join(r,...g.split("/")),n.join(e,...g.split("/"))),y({id:`profile-evaluation-source-${j(g).slice(0,16)}`,kind:"asset",path:g,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});y({id:"profile-evaluations",kind:"asset",path:"evals/catalog.json",parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});let A=new Set(Y.definitions.map(g=>g.tasksetRelease.contentHash)),C=n.join(r,"evals","tasksets"),Q=await f.lstat(C).catch(()=>null);if(Q&&(!Q.isDirectory()||Q.isSymbolicLink()))throw new Error("Profile evaluation Taskset directory must be a regular directory.");for(let g of A){let x=n.join(C,`${g}.json`),M=await f.lstat(x).catch(()=>null);if(!M)throw new Error(`Profile evaluation Taskset package ${g} is missing.`);if(!M.isFile()||M.isSymbolicLink())throw new Error("Profile evaluation Taskset package must be a regular file.");let K=T(JSON.parse(await f.readFile(x,"utf8")));if(K.taskset.contentHash!==g||!Y.definitions.some(ye=>ye.tasksetRelease.contentHash===g&&ye.tasksetRelease.id===K.taskset.id))throw new Error("Profile evaluation Taskset package differs from its catalog reference.");let ke=`evals/tasksets/${g}.json`;await u(x,n.join(e,...ke.split("/"))),y({id:`profile-evaluation-taskset-${g.slice(0,16)}`,kind:"asset",path:ke,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"})}}let q=await Be(a,o),k=`dependency-lock/${q.name}`;await f.mkdir(n.join(e,"dependency-lock"),{recursive:!0}),q.sourcePath?await u(q.sourcePath,n.join(e,...k.split("/"))):await f.writeFile(n.join(e,...k.split("/")),v(q.generated),{flag:"wx"}),y({id:"dependency-lock",kind:"dependency_lock",path:k,parentId:null,mediaType:Z(k),visibility:"policy",portability:"portable"}),await f.writeFile(n.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),y({id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"});let de=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:w,toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{importedFrom:"openpond.profile",profileId:a.activeProfile,...s?{profileRepositoryId:s}:{},profileGitHead:o??a.git?.head??null,profileSourceBindings:P.policy(w),profileInstructionSourcePath:"instructions/system.md",excludedEvalCount:a.evals.length,actionConversionPending:a.actionCatalog.length>0}});await f.writeFile(n.join(e,Te),v(de),{flag:"wx"}),await ce(e,t)}c(we,"writeImportedProfileSource");function ue(e){for(let t of e.workflows){let a=ne(t.inputSchema);if(!a.valid)throw new Error(`Profile workflow ${t.id} has an invalid input schema: ${a.issues[0]?.message??"schema mismatch"}`)}}c(ue,"assertProfileWorkflowInputSchemas");async function ce(e,t){let a=n.join(e,Te),o=B.parse(JSON.parse(await f.readFile(a,"utf8")));if(o.files.some(u=>u.kind==="instruction"))return;let s="instructions/system.md";await f.mkdir(n.join(e,"instructions"),{recursive:!0}),await f.writeFile(n.join(e,...s.split("/")),`# ${t}
|
|
2
|
+
import{a as Ee}from"./chunk-IZ56L2ZK.js";import{F as Ie}from"./chunk-B4RKHHF7.js";import{a as B}from"./chunk-WBUK73ST.js";import{a as je}from"./chunk-OZ6LRNRE.js";import{e as He}from"./chunk-MWXW2CA6.js";import{b as Re,c as ie,y as ne}from"./chunk-PBZCXPPC.js";import{e as ve,i as Se,l as Pe,m as be}from"./chunk-NJLULBTM.js";import{l as v,m as fe,n as j}from"./chunk-VVNV4NNW.js";import{a as c}from"./chunk-FTQLQJQV.js";import{promises as f}from"node:fs";import n from"node:path";import te from"node:path";import{constants as De,promises as D}from"node:fs";import R from"node:path";async function Fe(e){let t=await D.lstat(e);if(t.isSymbolicLink())throw new Error(`Profile source cannot be a symlink: ${e}`);if(t.isFile())return[R.basename(e)];if(!t.isDirectory())throw new Error(`Profile source is not a file or directory: ${e}`);return _(e)}c(Fe,"sourceFilesForImport");function xe(e){for(let t of["agent.ts","index.ts","agent/agent.ts","agent.yaml","agent.yml","agent.json"])if(e.includes(t))return t;return e[0]}c(xe,"selectAgentPrimaryFile");async function $e(e,t){let a=await D.lstat(e);if(!a.isFile()||a.isSymbolicLink())throw new Error(`Harness import source must be a regular non-symlink file: ${e}`);await D.mkdir(R.dirname(t),{recursive:!0}),await D.copyFile(e,t,De.COPYFILE_EXCL)}c($e,"copyRegularFile");function Z(e){let t=R.extname(e).toLowerCase();return[".md",".txt"].includes(t)?t===".md"?"text/markdown":"text/plain":[".json"].includes(t)?"application/json":[".yaml",".yml"].includes(t)?"application/yaml":[".ts",".tsx",".js",".mjs",".cjs"].includes(t)?"text/javascript":t===".py"?"text/x-python":"application/octet-stream"}c(Z,"mediaTypeForPath");async function ee(e,t){let a=R.resolve(e,...t.split("/")),o=R.relative(e,a);if(!o||o.startsWith("..")||R.isAbsolute(o))throw new Error(`Harness source path escapes its root: ${t}`);let s=await D.lstat(a);if(!s.isFile()||s.isSymbolicLink())throw new Error(`Harness source path must be a regular non-symlink file: ${t}`);let r=await D.realpath(a),w=R.relative(await D.realpath(e),r);if(w.startsWith("..")||R.isAbsolute(w))throw new Error(`Harness source path resolves outside its root: ${t}`);return a}c(ee,"resolveContainedRegularFile");async function _(e,t=e){let a=await D.readdir(t,{withFileTypes:!0}),o=[];for(let s of a){if(["node_modules",".git",".openpond"].includes(s.name)||s.name.startsWith(".env"))continue;let r=R.join(t,s.name);if(s.isSymbolicLink())throw new Error(`Harness source cannot contain symlinks: ${R.relative(e,r)}`);if(s.isDirectory())o.push(...await _(e,r));else if(s.isFile())o.push(R.relative(e,r).split(R.sep).join("/"));else throw new Error(`Harness source contains an unsupported entry: ${R.relative(e,r)}`)}return o.sort()}c(_,"listRegularFiles");function H(e){return e.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"harness"}c(H,"safeSegment");function Ae(e,t){let a=[];return{async copy(o,s){await $e(o,s);let r=te.relative(e,o),w=te.relative(t,s);r&&!r.startsWith("..")&&!te.isAbsolute(r)&&a.push({releasedPath:w.split(te.sep).join("/"),profileRelativePath:r.split(te.sep).join("/")})},add(o,s){a.push({releasedPath:o,profileRelativePath:s})},policy(o){return a.filter(s=>o.some(r=>r.path===s.releasedPath&&r.visibility==="policy"))}}}c(Ae,"createProfileSourceBindings");var Le=c(e=>e==="evals/catalog.json"||/^evals\/(definitions|suites|tasksets)\//.test(e)||/^workflows\/[^/]+\/evals\//.test(e),"isProfilePrivateEvaluationPath");import{execFile as _e}from"node:child_process";import{promises as L}from"node:fs";import G from"node:path";import{promisify as Ne}from"node:util";var ze=Ne(_e);async function nt(e){let t=G.join(e.runPath,"package.json"),a=await L.lstat(t).catch(()=>null);if(a&&(!a.isFile()||a.isSymbolicLink()))throw new Error("Released Profile Agent package manifest must be a regular file.");a||await L.writeFile(t,`{"type":"module"}
|
|
3
|
+
`,{flag:"wx"});let o=await me(e.runPath);if(o){let r=o==="npm"?["ci","--omit=dev","--ignore-scripts","--no-audit","--no-fund"]:["install","--prod","--frozen-lockfile","--ignore-scripts","--config.node-linker=hoisted"];await(e.install??Je)(o,r,e.runPath)}let s=G.join(e.runPath,"node_modules","openpond-agent-sdk");if(!await L.lstat(s).catch(()=>null)){let r=JSON.parse(await L.readFile(t,"utf8"));if({...le(r.dependencies),...le(r.optionalDependencies)}["openpond-agent-sdk"])throw new Error("Released Profile Agent declared an SDK dependency that the locked installation did not provide.");let P=await Ie();await L.mkdir(G.dirname(s),{recursive:!0}),await L.symlink(P,s,"dir")}}c(nt,"prepareReleasedProfileActionDependencies");async function me(e){let t=G.join(e,"package.json"),a=await L.lstat(t).catch(()=>null);if(!a)return null;if(!a.isFile()||a.isSymbolicLink())throw new Error("Released Profile Agent package manifest must be a regular file.");let o=JSON.parse(await L.readFile(t,"utf8")),s={...le(o.dependencies),...le(o.optionalDependencies)};if(Object.keys(s).length){for(let[P,u]of Object.entries(s))if(/^(?:file:|link:|workspace:|git\+|https?:)/i.test(u))throw new Error(`Released Profile Agent dependency ${P} must use a portable registry version.`);let r=await We(G.join(e,"package-lock.json")),w=await We(G.join(e,"pnpm-lock.yaml"));if(r===w)throw new Error("Released Profile Agent with third-party dependencies requires exactly one npm or pnpm lockfile.");return r?"npm":"pnpm"}return null}c(me,"inspectReleasedProfileActionDependencies");function le(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Released Profile Agent dependencies must be a package map.");let t=Object.entries(e);if(t.some(([a,o])=>!a||typeof o!="string"||!o.trim()))throw new Error("Released Profile Agent dependencies must name portable versions.");return Object.fromEntries(t)}c(le,"dependencyMap");async function We(e){let t=await L.lstat(e).catch(()=>null);if(t&&(!t.isFile()||t.isSymbolicLink()))throw new Error("Released Profile Agent lockfile must be a regular file.");return!!t}c(We,"regularFile");async function Je(e,t,a){try{let o=process.platform==="win32"?`${e}.cmd`:e;await ze(o,t,{cwd:a,timeout:3e5,maxBuffer:1e6,...process.platform==="win32"?{shell:!0}:{}})}catch{throw new Error(`Released Profile Agent locked ${e} dependency installation failed.`)}}c(Je,"installLockedDependencies");var Te="harness.json";async function we(e,t,a,o,s){let r=n.resolve(a.sourcePath),w=[],P=Ae(r,e),u=P.copy,N=new Set((await _(r)).filter(Le)),E=new Set,y=c(i=>{let h=i.id;E.has(h)&&(h=`${h}-${j(i.path).slice(0,8)}`),E.add(h);let b={...i,id:h};return w.push(b),b},"addDeclaration");await f.mkdir(e,{recursive:!0});let ae=n.join(r,"instructions","system.md"),V=await f.lstat(ae).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(V){if(!V.isFile()||V.isSymbolicLink())throw new Error("Profile instructions require an actual regular source file.");await u(ae,n.join(e,"instructions","system.md")),y({id:"instruction-system",kind:"instruction",path:"instructions/system.md",parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"})}for(let i of a.skills.filter(h=>h.enabled)){if(i.validationStatus!=="valid")throw new Error(`Cannot import invalid Profile Skill ${i.name}: ${i.validationMessages.join(" ")}`);let h=n.dirname(n.join(r,i.path)),b=`skills/${H(i.name)}/SKILL.md`;await u(n.join(h,"SKILL.md"),n.join(e,...b.split("/")));let T=y({id:`skill-${H(i.name)}`,kind:"skill",path:b,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"});for(let p of i.resourceFiles){let O=`skills/${H(i.name)}/${p.split(n.sep).join("/")}`;await u(n.join(h,p),n.join(e,...O.split("/"))),y({id:`skill-resource-${H(i.name)}-${j(p).slice(0,12)}`,kind:"skill_resource",path:O,parentId:T.id,mediaType:Z(O),visibility:"policy",portability:"portable"})}}for(let i of a.agents.filter(h=>h.enabled)){let h=n.resolve(r,i.path),b=await f.realpath(h),T=await f.realpath(r),p=n.relative(T,b);if(p.startsWith("..")||n.isAbsolute(p))throw new Error("Profile Agent source escapes its admitted Profile root.");let O=await f.lstat(h),U=(await Fe(h)).filter(A=>{let C=O.isDirectory()?n.join(b,...A.split("/")):b;return!N.has(n.relative(T,C).split(n.sep).join("/"))});if(U.length===0)throw new Error(`Profile Agent ${i.id} has no source files.`);let Y=xe(U);for(let A of U){let C=`agents/${H(i.id)}/${A}`,Q=(await f.stat(h)).isDirectory()?n.join(h,...A.split("/")):h;await u(Q,n.join(e,...C.split("/"))),y({id:A===Y?`agent-${H(i.id)}`:`agent-asset-${H(i.id)}-${j(A).slice(0,12)}`,kind:A===Y?"agent":"asset",path:C,parentId:null,mediaType:Z(C),visibility:"policy",portability:"portable"})}await me(n.join(e,"agents",H(i.id)))}let X=new Set,se=new Set(a.agents.filter(i=>i.enabled).map(i=>i.id)),W=a.actionCatalog.filter(i=>i.agentId&&se.has(i.agentId)).map(i=>({id:i.id,agentId:H(i.agentId),sourceActionId:i.sourceActionId??i.id,inputSchema:typeof i.inputSchema=="object"&&i.inputSchema!==null?i.inputSchema:{type:"object",additionalProperties:!0}})),re=new Set(W.map(i=>i.id)),z=n.join(r,"workflows","catalog.json"),F=await f.lstat(z).catch(()=>null),l=(await _(r)).filter(i=>i.startsWith("workflows/")),S=l.some(i=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(i));if(S&&F)throw new Error("Authored Workflow packages and legacy workflows/catalog.json cannot coexist; migrate the catalog first.");if(F||S||W.length){if(F&&(!F.isFile()||F.isSymbolicLink()))throw new Error("Profile workflow catalog must be a regular file.");let i=S?He({files:new Map(await Promise.all(l.map(async p=>[p,await f.readFile(await ee(r,p),"utf8")]))),skillPaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:re}):null,h=i?Buffer.from(v(i.catalog)):F?await f.readFile(z):Buffer.from(v({schemaVersion:"openpond.profileWorkflows.v1",workflows:[]}));F&&P.add("workflows/catalog.json","workflows/catalog.json");let b=ie({catalog:JSON.parse(h.toString("utf8")),sourcePaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:new Set(W.map(p=>p.id))});for(let p of b.workflows)X.add(p.id);ue(b);let T="workflows/catalog.json";await f.mkdir(n.join(e,"workflows"),{recursive:!0}),await f.writeFile(n.join(e,"workflows","catalog.json"),h,{flag:"wx"});for(let p of i?.referencedPaths??[])await u(n.join(r,...p.split("/")),n.join(e,...p.split("/"))),y({id:`profile-workflow-source-${j(p).slice(0,16)}`,kind:"asset",path:p,parentId:null,mediaType:Z(p),visibility:"policy",portability:"portable"});y({id:"profile-workflows",kind:"workflow",path:T,parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"})}(F||S||W.length)&&(await f.writeFile(n.join(e,"workflows","actions.json"),v({schemaVersion:"openpond.profileWorkflowActions.v1",actions:W}),{flag:"wx"}),y({id:"profile-workflow-actions",kind:"asset",path:"workflows/actions.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}));let I=n.join(r,"evals","catalog.json"),J=await f.lstat(I).catch(()=>null),$=(await _(r)).filter(i=>/^workflows\/[^/]+\/evals\/[^/]+\.json$/.test(i)||/^evals\/(definitions|suites)\/[^/]+\.json$/.test(i));if(J&&$.length)throw new Error("Authored evaluation definitions and legacy evals/catalog.json cannot coexist; migrate the catalog first.");if(J||$.length){let[{ProfileEvaluationDefinitionSchema:i,ProfileEvaluationSuiteSchema:h,validateProfileEvaluationCatalog:b},{validateTasksetPackage:T}]=await Promise.all([import("./dist-5267UT3V.js"),import("./taskset-packages-CBLJFWDQ.js")]);if(J&&(!J.isFile()||J.isSymbolicLink()))throw new Error("Profile evaluation catalog must be a regular file.");let p=[],O=[];for(let g of $){let x=JSON.parse(await f.readFile(await ee(r,g),"utf8"));if(g.startsWith("evals/suites/"))O.push(h.parse(x));else{let M=i.parse(x),K=/^workflows\/([^/]+)\/evals\//.exec(g)?.[1];if(K&&(M.target.kind!=="workflow"||M.target.workflowId!==K))throw new Error(`Profile evaluation ${M.id} must target its containing Workflow ${K}.`);p.push(M)}}let U=$.length?Buffer.from(v({schemaVersion:"openpond.profileEvaluations.v1",definitions:p.sort((g,x)=>g.id.localeCompare(x.id)),suites:O.sort((g,x)=>g.id.localeCompare(x.id))})):await f.readFile(I),{catalog:Y}=b({catalog:JSON.parse(U.toString("utf8")),workflowIds:X,skillPaths:new Set(w.filter(g=>g.kind==="skill").map(g=>g.path)),actionIds:re});await f.mkdir(n.join(e,"evals"),{recursive:!0}),await f.writeFile(n.join(e,"evals","catalog.json"),U,{flag:"wx"});for(let g of $)await u(n.join(r,...g.split("/")),n.join(e,...g.split("/"))),y({id:`profile-evaluation-source-${j(g).slice(0,16)}`,kind:"asset",path:g,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});y({id:"profile-evaluations",kind:"asset",path:"evals/catalog.json",parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});let A=new Set(Y.definitions.map(g=>g.tasksetRelease.contentHash)),C=n.join(r,"evals","tasksets"),Q=await f.lstat(C).catch(()=>null);if(Q&&(!Q.isDirectory()||Q.isSymbolicLink()))throw new Error("Profile evaluation Taskset directory must be a regular directory.");for(let g of A){let x=n.join(C,`${g}.json`),M=await f.lstat(x).catch(()=>null);if(!M)throw new Error(`Profile evaluation Taskset package ${g} is missing.`);if(!M.isFile()||M.isSymbolicLink())throw new Error("Profile evaluation Taskset package must be a regular file.");let K=T(JSON.parse(await f.readFile(x,"utf8")));if(K.taskset.contentHash!==g||!Y.definitions.some(ye=>ye.tasksetRelease.contentHash===g&&ye.tasksetRelease.id===K.taskset.id))throw new Error("Profile evaluation Taskset package differs from its catalog reference.");let ke=`evals/tasksets/${g}.json`;await u(x,n.join(e,...ke.split("/"))),y({id:`profile-evaluation-taskset-${g.slice(0,16)}`,kind:"asset",path:ke,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"})}}let q=await Be(a,o),k=`dependency-lock/${q.name}`;await f.mkdir(n.join(e,"dependency-lock"),{recursive:!0}),q.sourcePath?await u(q.sourcePath,n.join(e,...k.split("/"))):await f.writeFile(n.join(e,...k.split("/")),v(q.generated),{flag:"wx"}),y({id:"dependency-lock",kind:"dependency_lock",path:k,parentId:null,mediaType:Z(k),visibility:"policy",portability:"portable"}),await f.writeFile(n.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),y({id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"});let de=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:w,toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{importedFrom:"openpond.profile",profileId:a.activeProfile,...s?{profileRepositoryId:s}:{},profileGitHead:o??a.git?.head??null,profileSourceBindings:P.policy(w),profileInstructionSourcePath:"instructions/system.md",excludedEvalCount:a.evals.length,actionConversionPending:a.actionCatalog.length>0}});await f.writeFile(n.join(e,Te),v(de),{flag:"wx"}),await ce(e,t)}c(we,"writeImportedProfileSource");function ue(e){for(let t of e.workflows){let a=ne(t.inputSchema);if(!a.valid)throw new Error(`Profile workflow ${t.id} has an invalid input schema: ${a.issues[0]?.message??"schema mismatch"}`)}}c(ue,"assertProfileWorkflowInputSchemas");async function ce(e,t){let a=n.join(e,Te),o=B.parse(JSON.parse(await f.readFile(a,"utf8")));if(o.files.some(u=>u.kind==="instruction"))return;let s="instructions/system.md";await f.mkdir(n.join(e,"instructions"),{recursive:!0}),await f.writeFile(n.join(e,...s.split("/")),`# ${t}
|
|
4
4
|
|
|
5
5
|
Keep reusable, provider-neutral execution guidance for this Harness here.
|
|
6
6
|
`,{flag:"wx"});let w=new Set(o.files.map(u=>u.id)).has("instruction-system")?`instruction-system-${j(s).slice(0,8)}`:"instruction-system",P=B.parse({...o,name:t,files:[...o.files,{id:w,kind:"instruction",path:s,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"}]});await f.writeFile(a,v(P),{flag:"w"})}c(ce,"ensureHarnessInstructionSurface");async function Be(e,t){let a=e.repoPath?n.resolve(e.repoPath):null;if(a)for(let o of["pnpm-lock.yaml","package-lock.json","yarn.lock"]){let s=n.join(a,o),r=await f.lstat(s).catch(()=>null);if(r?.isFile()&&!r.isSymbolicLink())return{name:o,sourcePath:s}}return{name:"profile-import.json",sourcePath:null,generated:{source:"openpond.profile",profileId:e.activeProfile,profileGitHead:t??e.git?.head??null,dependenciesResolved:!1}}}c(Be,"importedDependencyLock");import{randomUUID as ge}from"node:crypto";import{promises as d}from"node:fs";import m from"node:path";var oe="harness.json",Oe=25e7;function Ve(e,t){let a=`${H(t)}-${j(t).slice(0,16)}`,o=m.join(e,"library","harnesses","workspaces",a);return{root:o,source:m.join(o,"source")}}c(Ve,"localHarnessWorkspacePaths");async function xt(e){return pe({...e,initializeSource:c(t=>Ue(t,e.name),"initializeSource")})}c(xt,"createLocalHarnessWorkspace");async function $t(e){if(e.profile.mode!=="local"||!e.profile.sourcePath)throw new Error("Only a loaded local Profile with a source path can be imported.");return pe({...e,compilationWorkspaceId:e.repositoryId?Me(e.repositoryId,e.name):e.id,initializeSource:c(t=>we(t,e.name,e.profile,e.sourceRevision,e.repositoryId),"initializeSource")})}c($t,"importProfileIntoLocalHarnessWorkspace");function Me(e,t){return`profile-source-${j([e,t]).slice(0,24)}`}c(Me,"profileCompilationWorkspaceId");async function At(e){if(e.profile.mode!=="local"||!e.profile.sourcePath)throw new Error("Only a loaded Profile source can be compiled.");let t=m.join(e.storeDir,"library","harnesses","profile-previews");await d.mkdir(t,{recursive:!0});let a=m.join(t,ge());try{await we(a,e.name,e.profile,e.sourceRevision,e.repositoryId);let o=e.repositoryId?Me(e.repositoryId,e.name):e.workspaceId;return await he({workspaceId:o,sourceDir:a})}finally{await d.rm(a,{recursive:!0,force:!0})}}c(At,"compileProfileHarnessSource");async function Lt(e){let t=await he({workspaceId:e.id,sourceDir:e.sourceDir}),a=await e.store.getHarnessWorkspace(e.id);if(a){let o=a.currentChannel.release?await e.store.getHarnessReleaseRecord(a.currentChannel.release.contentHash):null;if(a.ownerScope.id!==e.ownerId||a.sourceRevision!==t.sourceRevision||o?.harnessRelease.contentHash!==t.harnessRelease.contentHash)throw new Error("Configured Harness source changed; use a new workspace ID for the new release.");return}await pe({...e,initializeSource:c(async o=>{await d.mkdir(o,{recursive:!0}),await d.writeFile(m.join(o,oe),v(t.manifest));for(let s of t.sourceFiles){let r=m.join(o,s.path);await d.mkdir(m.dirname(r),{recursive:!0}),await d.writeFile(r,s.bytes)}},"initializeSource")})}c(Lt,"importLocalHarnessWorkspaceSource");async function Wt(e){let t=await e.store.getHarnessReleaseRecord(e.sourceRelease.contentHash);if(!t||t.harnessRelease.id!==e.sourceRelease.id)throw new Error("Harness workspace fork source release is unavailable.");return pe({...e,initializeSource:c(async a=>{await d.cp(m.join(t.bundlePath,"source"),a,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1}),await ce(a,e.name)},"initializeSource")})}c(Wt,"forkLocalHarnessWorkspaceFromRelease");async function pe(e){let t=e.now??(()=>new Date().toISOString()),a=Ve(e.storeDir,e.id),o=m.dirname(a.root);await d.mkdir(o,{recursive:!0});let s=m.join(o,`.${m.basename(a.root)}.creating-${ge()}`),r=m.join(s,"source");try{await e.initializeSource(r),await d.rename(s,a.root)}catch(w){throw await d.rm(s,{recursive:!0,force:!0}).catch(()=>{}),w}try{let w=await he({workspaceId:e.compilationWorkspaceId??e.id,sourceDir:a.source}),P=await qe({storeDir:e.storeDir,workspaceId:e.id,compiled:w,createdAt:t()}),u=t(),N=je.parse({schemaVersion:"openpond.harnessWorkspace.v1",id:e.id,ownerScope:e.originOwnerScope??{kind:"personal",id:e.ownerId},name:e.name,location:"local",sourceRevision:w.sourceRevision,revision:0,dirty:!1,currentChannel:{name:"personal",release:{id:w.harnessRelease.id,contentHash:w.harnessRelease.contentHash},revision:1},createdAt:u,updatedAt:u,metadata:{...e.originMetadata,sourceLayout:"openpond.harnessSourceManifest.v1",...e.selectionEligible===!1?{selectionEligible:!1}:{}}});return await e.store.createHarnessWorkspaceWithRelease({workspace:N,release:P})}catch(w){throw await d.rm(a.root,{recursive:!0,force:!0}).catch(()=>{}),w}}c(pe,"createLocalHarnessWorkspaceFromInitializer");async function he(e){let t=m.resolve(e.sourceDir),a=m.join(t,oe),o=B.parse(JSON.parse(await d.readFile(a,"utf8"))),s=new Set(o.files.map(l=>l.path)),r=(await _(t)).filter(l=>l!==oe),w=r.filter(l=>!s.has(l)),P=[...s].filter(l=>!r.includes(l));if(w.length||P.length)throw new Error(`Harness source manifest mismatch. Unlisted: ${w.join(", ")||"none"}; missing: ${P.join(", ")||"none"}.`);let u=[];for(let l of o.files){let S=await ee(t,l.path),I=await d.readFile(S);if(I.byteLength>Oe)throw new Error(`Harness source file ${l.path} exceeds ${Oe} bytes.`);u.push({path:l.path,bytes:I,asset:{id:l.id,path:l.path,contentHash:fe(I),sizeBytes:I.byteLength,mediaType:l.mediaType,visibility:l.visibility}})}let N=u.find(({path:l})=>l==="workflows/catalog.json");if(N){let l=o.files.find(k=>k.path===N.path);if(l?.kind!=="workflow"||l.visibility!=="policy")throw new Error("Profile workflow catalog requires a policy-visible workflow declaration.");let S=u.find(({path:k})=>k==="workflows/actions.json"),I=o.files.find(k=>k.path==="workflows/actions.json");if(!S||I?.visibility!=="policy")throw new Error("Profile workflow catalog requires a released action inventory.");let J=Re.parse(JSON.parse(new TextDecoder().decode(S.bytes))).actions,$=new Set;for(let k of J){if($.has(k.id))throw new Error(`Duplicate Profile workflow action ${k.id}.`);if($.add(k.id),!ne(k.inputSchema).valid)throw new Error(`Profile workflow action ${k.id} has an invalid input schema.`);if(!o.files.some(de=>de.path.startsWith(`agents/${k.agentId}/`)))throw new Error(`Profile workflow action ${k.id} lacks its Agent source.`)}let q=ie({catalog:JSON.parse(new TextDecoder().decode(N.bytes)),sourcePaths:new Set(o.files.filter(k=>k.kind==="skill").map(k=>k.path)),actionIds:$});ue(q)}let E=j({manifest:o,files:u.map(({path:l,asset:S})=>({path:l,contentHash:S.contentHash,sizeBytes:S.sizeBytes}))}),y=c(l=>u.filter(({path:S})=>o.files.find(I=>I.path===S)?.kind===l).map(({asset:S})=>S),"byKind"),ae=y("dependency_lock")[0],V=y("program")[0],X=o.files.filter(l=>l.portability==="local_only").map(l=>l.id),se=o.files.filter(l=>l.visibility==="host_private").map(l=>l.id),W=[...X.map(l=>`Asset ${l} is local-only.`),...se.map(l=>`Asset ${l} is host-private.`)],re={id:`harness-source-${E.slice(0,24)}`,contentHash:E},z=Pe({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${j([E,o.toolDeclarations]).slice(0,24)}`,sourceRelease:re,instructions:y("instruction"),skills:y("skill"),agents:y("agent"),toolDeclarations:o.toolDeclarations,capabilityRequirements:o.capabilityRequirements,dependencyLock:ae,portability:{portable:W.length===0,blockers:W,localOnlyAssetRefs:X,hostPrivateAssetRefs:se},metadata:{workspaceId:e.workspaceId,sourceRevision:E,sourceLayout:o.schemaVersion}}),F=be({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${j([z.contentHash,V.contentHash,o.lifecycle]).slice(0,24)}`,agentSnapshot:{id:z.id,contentHash:z.contentHash},program:V,tools:o.toolDeclarations,lifecycle:o.lifecycle,graderInterface:o.graderInterface,files:u.map(({asset:l})=>l),metadata:{runtimeProtocol:o.runtimeProtocol,sourceRevision:E,sourceLayout:o.schemaVersion,...o.metadata.importedFrom==="openpond.profile"?{profile:{id:o.metadata.profileId,sourceRevision:o.metadata.profileGitHead??E,...o.metadata.profileRepositoryId?{repositoryId:o.metadata.profileRepositoryId}:{}}}:{}}});return{manifest:o,sourceRevision:E,agentSnapshot:z,harnessRelease:F,sourceFiles:u}}c(he,"compileLocalHarnessSource");async function qe(e){let t=m.join(e.storeDir,"library","harnesses","releases"),a=m.join(t,e.compiled.harnessRelease.contentHash);await d.mkdir(t,{recursive:!0});let o=m.join(t,`.${e.compiled.harnessRelease.contentHash}.materializing-${ge()}`);try{await d.mkdir(m.join(o,"source"),{recursive:!0});for(let s of e.compiled.sourceFiles){let r=m.join(o,"source",...s.path.split("/"));await d.mkdir(m.dirname(r),{recursive:!0}),await d.writeFile(r,s.bytes,{flag:"wx"})}await d.writeFile(m.join(o,"source",oe),v(e.compiled.manifest),{flag:"wx"}),await d.writeFile(m.join(o,"agent-snapshot.json"),v(e.compiled.agentSnapshot),{flag:"wx"}),await d.writeFile(m.join(o,"harness-release.json"),v(e.compiled.harnessRelease),{flag:"wx"});try{await d.rename(o,a)}catch(s){if(s.code!=="EEXIST"&&s.code!=="ENOTEMPTY")throw s;await Ce(a,e.compiled),await d.rm(o,{recursive:!0,force:!0})}await Ce(a,e.compiled)}catch(s){throw await d.rm(o,{recursive:!0,force:!0}).catch(()=>{}),s}return Ee.parse({schemaVersion:"openpond.localHarnessReleaseRecord.v1",workspaceId:e.workspaceId,sourceRevision:e.compiled.sourceRevision,agentSnapshot:e.compiled.agentSnapshot,harnessRelease:e.compiled.harnessRelease,bundlePath:a,createdAt:e.createdAt})}c(qe,"materializeLocalHarnessRelease");async function Ue(e,t){let a=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:[{id:"dependency-lock",kind:"dependency_lock",path:"dependency-lock.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"},{id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}],toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{}});await d.mkdir(e,{recursive:!0}),await d.writeFile(m.join(e,"dependency-lock.json"),v({dependencies:{}}),{flag:"wx"}),await d.writeFile(m.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),await d.writeFile(m.join(e,oe),v(a),{flag:"wx"}),await ce(e,t)}c(Ue,"writeDefaultHarnessSource");async function Ce(e,t){let a=ve.parse(JSON.parse(await d.readFile(m.join(e,"agent-snapshot.json"),"utf8"))),o=Se.parse(JSON.parse(await d.readFile(m.join(e,"harness-release.json"),"utf8")));if(a.contentHash!==t.agentSnapshot.contentHash||o.contentHash!==t.harnessRelease.contentHash)throw new Error("Materialized Harness release does not match the compiled immutable objects.");for(let s of t.sourceFiles){let r=await d.readFile(m.join(e,"source",...s.path.split("/")));if(fe(r)!==s.asset.contentHash)throw new Error(`Materialized Harness asset ${s.path} failed hash verification.`)}}c(Ce,"verifyMaterializedRelease");export{Z as a,ee as b,_ as c,H as d,Le as e,nt as f,Ve as g,xt as h,$t as i,At as j,Lt as k,Wt as l,he as m,qe as n};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as Ne,d as qe,e as De}from"./chunk-
|
|
2
|
+
import{a as Ne,d as qe,e as De}from"./chunk-FFWOTZQM.js";import{a as te}from"./chunk-ZXT7V64X.js";import{b as xe,c as Ee,h as Ue}from"./chunk-2V4LPUBH.js";import{b as ee}from"./chunk-R4PDSOB4.js";import{Z as b,ba as Me}from"./chunk-5MTN6KXV.js";import{j as Ae,p as Oe,r as _e,s as He}from"./chunk-MNFW5WLD.js";import{a as Q,b as ke,h as Ce}from"./chunk-557XSPVS.js";import{$a as Pe,Wa as H,_a as W,a as $}from"./chunk-TUCKED4T.js";import{q as F,r as N}from"./chunk-JY3YSI54.js";import{h as _,i as Te}from"./chunk-PWK5Z5S3.js";import{X as he,Y as ve,_ as Z,b as le,ba as we,c as ue,ea as be,fa as V,ja as Se,la as ye,ma as Re,p as ce,r as pe,s as de,t as me,u as ge,w as fe}from"./chunk-2EPR4HLF.js";import{z as M}from"./chunk-BKEDG3A4.js";import{c as ie,d as B,f as ae,h as U}from"./chunk-UGOK7VTC.js";import{v as Ie}from"./chunk-NJLULBTM.js";import{A as o}from"./chunk-PF56N7ZY.js";import{a as l}from"./chunk-FTQLQJQV.js";import{promises as ne}from"node:fs";import mt from"node:os";import gt from"node:path";import{createServer as ft}from"node:http";import{randomBytes as ht}from"node:crypto";var it=o.discriminatedUnion("op",[o.strictObject({op:o.literal("set"),path:o.array(o.string().min(1)).min(1),value:o.unknown()}),o.strictObject({op:o.literal("unset"),path:o.array(o.string().min(1)).min(1)})]),at=o.discriminatedUnion("action",[o.strictObject({action:o.literal("patch"),expectedRevision:o.string(),operations:o.array(it).max(100)}),o.strictObject({action:o.literal("replace"),expectedRevision:o.string(),text:o.string().max(1048576)}),o.strictObject({action:o.literal("validate"),text:o.string().max(1048576)}),o.strictObject({action:o.literal("restore"),expectedRevision:o.string(),revision:o.string()}),o.strictObject({action:o.literal("trust"),root:o.string(),accountId:o.string(),trusted:o.boolean()}),o.strictObject({action:o.literal("client-state"),owner:o.string(),patch:Se,importOnly:o.boolean().optional()})]);function Be(n,e){let t=null;async function r(i,a){let c=U(n).config,p=null,u=null,m=null;try{p=await ue(c),m=await V(n,{projectRoot:i,accountId:a}),i||(t=m)}catch(I){u=B(I,c)}let w=m??(i?null:t);return{path:c,text:p,rawRevision:le(p),issue:u,effective:w,usingLastValid:!m&&!!w,applies:"next_turn",recoverableRevisions:await pe(n),clientState:u?null:await ye(n)}}l(r,"status");async function s(i){let a=at.parse(i);if(a.action==="validate")return{valid:!0,document:ce(a.text,U(n).config)};if(a.action==="client-state")return Re(n,a.owner,a.patch,a.importOnly);let c=l(async()=>{a.action==="patch"&&await fe(n,a.expectedRevision,a.operations),a.action==="replace"&&await de(n,a.expectedRevision,a.text),a.action==="restore"&&await me(n,a.revision,a.expectedRevision),a.action==="trust"&&await be(n,a.root,a.accountId,a.trusted)},"mutation");return e?await e(c):await c(),r()}return l(s,"mutate"),{status:r,mutate:s,schema:ge}}l(Be,"createConfigurationPayloads");import{Buffer as Fe}from"node:buffer";var G={"Access-Control-Allow-Headers":"authorization, content-type, x-openpond-team-id, idempotency-key","Access-Control-Allow-Methods":"GET, POST, PUT, PATCH, DELETE, OPTIONS"},lt=25*1024*1024,j=class extends Error{constructor(t,r,s){super(s);this.status=t;this.code=r;this.name="HttpBodyError"}status;code;static{l(this,"HttpBodyError")}};function Le(n,e,t={}){for(let[s,i]of Object.entries(G))e.setHeader(s,i);let r=$e(n.headers.origin);return r?(e.setHeader("Vary",dt(e.getHeader("Vary"))),ut(r,t)?(e.setHeader("Access-Control-Allow-Origin",r),{allowed:!0,origin:r}):{allowed:!1,origin:r}):{allowed:!0,origin:null}}l(Le,"applyCorsHeaders");function ut(n,e={}){if(n==="null")return!0;let t=je(n);return t?pt(t)?!0:new Set((e.allowedOrigins??[]).map(s=>s?je(s):null).filter(s=>!!s)).has(t):!1}l(ut,"isAllowedCorsOrigin");function x(n,e,t){n.writeHead(e,{"Content-Type":"application/json",...G}),n.end(JSON.stringify(t))}l(x,"sendJson");function Yt(n,e,t){n.writeHead(e,{"Content-Type":"text/plain; charset=utf-8",...G}),n.end(t)}l(Yt,"sendText");function Xt(n,e,t,r){n.writeHead(e,{"Content-Type":r,"Content-Length":String(t.byteLength),"Cache-Control":"no-store","X-Content-Type-Options":"nosniff",...G}),n.end(t)}l(Xt,"sendBinary");async function re(n,e={}){let t=e.maxBytes??lt,r=$e(n.headers["content-type"]),s=[],i=0;for await(let c of n){let p=Fe.from(c);if(i+=p.byteLength,i>t)throw new j(413,"request_body_too_large",`JSON request body exceeds ${t} bytes.`);s.push(p)}let a=Fe.concat(s).toString("utf8").trim();if(!a)return{};if(!ct(r))throw new j(415,"unsupported_media_type","JSON request body requires Content-Type: application/json.");try{return JSON.parse(a)}catch{throw new j(400,"invalid_json","Request body is not valid JSON.")}}l(re,"readJson");function Ve(n,e,t){let r=n.headers.authorization;return(typeof r=="string"&&r.startsWith("Bearer ")?r.slice(7):null)===t}l(Ve,"hasAuth");function $e(n){return Array.isArray(n)?n[0]??null:n??null}l($e,"headerValue");function ct(n){if(!n)return!1;let e=n.split(";")[0]?.trim().toLowerCase();return e==="application/json"||!!e?.endsWith("+json")}l(ct,"isJsonContentType");function je(n){try{let e=new URL(n);return e.protocol!=="http:"&&e.protocol!=="https:"?null:e.origin}catch{return null}}l(je,"normalizeOrigin");function pt(n){let e=new URL(n);return e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname==="::1"||e.hostname==="[::1]"}l(pt,"isLoopbackOrigin");function dt(n){let t=(Array.isArray(n)?n.join(", "):n?String(n):"").split(",").map(r=>r.trim()).filter(Boolean);return t.some(r=>r.toLowerCase()==="origin")||t.push("Origin"),t.join(", ")}l(dt,"appendVaryOrigin");function We(n){return`<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>OpenPond recovery</title>
|
|
3
3
|
<style nonce="${n}">body{font:16px system-ui;background:#171819;color:#eee;max-width:850px;margin:6vh auto;padding:24px}textarea{box-sizing:border-box;width:100%;min-height:280px;background:#222;color:#eee;padding:14px;border:1px solid #777;border-radius:8px;font:14px monospace}button,input,select{font:inherit;margin:6px;padding:8px}pre{white-space:pre-wrap}code{overflow-wrap:anywhere}button{cursor:pointer}p{line-height:1.5}</style>
|
|
4
4
|
<h1>OpenPond needs a storage repair</h1><p id="issue" role="alert">Loading recovery details\u2026</p><p><code id="file"></code></p>
|
|
5
5
|
<p id="action"></p><p>Migration backups and the source installation remain available. Execution services are stopped while recovery is open.</p>
|