openpond 0.2.66 → 0.2.68
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 +691 -1
- package/dist/app-server.js +1 -1
- package/dist/chunks/{account-context-TIJOM22A.js → account-context-MWB6HN6I.js} +1 -1
- package/dist/chunks/{acp-YYZ3ZO3Q.js → acp-2OIXATRY.js} +1 -1
- package/dist/chunks/{acp-agent-T26S7TU2.js → acp-agent-PAGX2B47.js} +1 -1
- package/dist/chunks/actions-command-2VE6YI4W.js +2 -0
- package/dist/chunks/{app-layer-5XUMNHDO.js → app-layer-YNEUEOEP.js} +1 -1
- package/dist/chunks/{app-server-connected-apps-IB6M35NS.js → app-server-connected-apps-TZOAUOYR.js} +1 -1
- package/dist/chunks/app-server-evaluations-RRLYWLPK.js +2 -0
- package/dist/chunks/app-server-harness-services-XXM336NU.js +2 -0
- package/dist/chunks/app-server-runtime-GBX65JJ7.js +2 -0
- package/dist/chunks/apps-RSFEJOQN.js +2 -0
- package/dist/chunks/chunk-2PXKSAG6.js +2 -0
- package/dist/chunks/{chunk-GRLQHYAU.js → chunk-2TGHZXJE.js} +2 -2
- package/dist/chunks/{chunk-YU4JYWCA.js → chunk-3A2Y7UK3.js} +1 -1
- package/dist/chunks/chunk-3Z4VM2LF.js +4 -0
- package/dist/chunks/chunk-4BUM6JEC.js +33 -0
- package/dist/chunks/chunk-4G3GTEVS.js +23 -0
- package/dist/chunks/{chunk-FUFI4THX.js → chunk-4KNPCJR4.js} +1 -1
- package/dist/chunks/chunk-4KTGYHCE.js +2 -0
- package/dist/chunks/chunk-4PUOWSDE.js +13 -0
- package/dist/chunks/chunk-55YD4UTW.js +2 -0
- package/dist/chunks/chunk-5G7BQAUA.js +2 -0
- package/dist/chunks/chunk-65FJWWXG.js +2 -0
- package/dist/chunks/{chunk-2GJD23CM.js → chunk-65WRWLUD.js} +1 -1
- package/dist/chunks/chunk-6D3FI2XT.js +2 -0
- package/dist/chunks/chunk-73TW6BKK.js +6 -0
- package/dist/chunks/{chunk-6S2MWJVD.js → chunk-7NCM6GBN.js} +1 -1
- package/dist/chunks/chunk-7OFD6TFD.js +2 -0
- package/dist/chunks/chunk-7OKZCJHS.js +3 -0
- package/dist/chunks/{chunk-NTM3KQ25.js → chunk-7PKDJHT6.js} +1 -1
- package/dist/chunks/chunk-7RJOCGQ6.js +2 -0
- package/dist/chunks/{chunk-SAZTOGX6.js → chunk-7RSQOC5M.js} +3 -3
- package/dist/chunks/{chunk-6TRVEA3T.js → chunk-AFH462DO.js} +1 -1
- package/dist/chunks/{chunk-GUG2SWRZ.js → chunk-AFKFN25T.js} +1 -1
- package/dist/chunks/chunk-AFYYIJ6K.js +2 -0
- package/dist/chunks/chunk-APKXXAUF.js +2 -0
- package/dist/chunks/chunk-AQUZCWM3.js +2 -0
- package/dist/chunks/chunk-AUO5DCEU.js +2 -0
- package/dist/chunks/chunk-AYOMVI7J.js +2 -0
- package/dist/chunks/{chunk-EVQISX7M.js → chunk-B66QCXH2.js} +1 -1
- package/dist/chunks/{chunk-S6UCVXBC.js → chunk-BHKXPWFB.js} +1 -1
- package/dist/chunks/chunk-BU6MW65V.js +10 -0
- package/dist/chunks/{chunk-C5B3FMV3.js → chunk-CCZ276IA.js} +1 -1
- package/dist/chunks/{chunk-LYVHYT3L.js → chunk-CIZI6Z7D.js} +1 -1
- package/dist/chunks/{chunk-4D3CICBG.js → chunk-CO23RRN7.js} +1 -1
- package/dist/chunks/{chunk-QAFXQHHG.js → chunk-D6L6UNUQ.js} +2 -2
- package/dist/chunks/chunk-DDOIPTOM.js +2 -0
- package/dist/chunks/{chunk-ZU3YBRXS.js → chunk-DKOVZ6R2.js} +3 -3
- package/dist/chunks/chunk-DRLP7GIU.js +2 -0
- package/dist/chunks/{chunk-DAEUVT2I.js → chunk-DRTHKWHK.js} +1 -1
- package/dist/chunks/{chunk-W22KWKF6.js → chunk-DWF3FCY4.js} +1 -1
- package/dist/chunks/{chunk-NABPZ7AK.js → chunk-DWM5G7BU.js} +1 -1
- package/dist/chunks/chunk-DXJC3QW7.js +2 -0
- package/dist/chunks/{chunk-V3S2B6WU.js → chunk-E2JB5OCO.js} +1 -1
- package/dist/chunks/{chunk-GI7LTJV3.js → chunk-EDYCSW22.js} +1 -1
- package/dist/chunks/{chunk-4JYTFEND.js → chunk-EFP75UEX.js} +1 -1
- package/dist/chunks/{chunk-WKHGXLJD.js → chunk-EGP6DF34.js} +2 -2
- package/dist/chunks/{chunk-M5QPL5NO.js → chunk-ESYPMD7Q.js} +1 -1
- package/dist/chunks/{chunk-PWKJ5KLZ.js → chunk-EXYSD45J.js} +1 -1
- package/dist/chunks/{chunk-XHBMK6LC.js → chunk-EYTTZ5H4.js} +1 -1
- package/dist/chunks/chunk-FKUWCJ73.js +161 -0
- package/dist/chunks/{chunk-U2BD545L.js → chunk-FNGZ4UDZ.js} +1 -1
- package/dist/chunks/{chunk-JFZ6USNQ.js → chunk-G7X73SBG.js} +1 -1
- package/dist/chunks/{chunk-36FNNR5N.js → chunk-GEYZVOGD.js} +1 -1
- package/dist/chunks/{chunk-ULJZ7NUF.js → chunk-GY7YSD6J.js} +1 -1
- package/dist/chunks/{chunk-JLW5BQVO.js → chunk-GYYJ47GX.js} +1 -1
- package/dist/chunks/chunk-HG2YFMVU.js +4 -0
- package/dist/chunks/{chunk-BTJACFU3.js → chunk-HKVFU3B3.js} +1 -1
- package/dist/chunks/chunk-IHAEZ73V.js +2 -0
- package/dist/chunks/{chunk-LI3FTPAH.js → chunk-IIT66347.js} +4 -4
- package/dist/chunks/{chunk-Q4AXZY2P.js → chunk-IO5DZUKL.js} +1 -1
- package/dist/chunks/chunk-J256AEEE.js +2 -0
- package/dist/chunks/{chunk-CRDKBFRN.js → chunk-JEMECEQH.js} +1 -1
- package/dist/chunks/{chunk-7P5SH3CI.js → chunk-JPUSTFZC.js} +1 -1
- package/dist/chunks/{chunk-5AU5Y6KS.js → chunk-JQOVC35K.js} +1 -1
- package/dist/chunks/{chunk-VS3AMJEK.js → chunk-JT5YQ52I.js} +1 -1
- package/dist/chunks/chunk-JVMSN7LH.js +2 -0
- package/dist/chunks/{chunk-HORMGT2Q.js → chunk-JXYJQT5Q.js} +1 -1
- package/dist/chunks/{chunk-OTUS7NTQ.js → chunk-K7KBFM2T.js} +1 -1
- package/dist/chunks/{chunk-FS2VKOT7.js → chunk-KCLMA2IH.js} +1 -1
- package/dist/chunks/chunk-KDER7R45.js +2 -0
- package/dist/chunks/{chunk-WBO6FQHR.js → chunk-KOC3YJEU.js} +2 -2
- package/dist/chunks/{chunk-6ZTP6CUJ.js → chunk-KP2MYTP5.js} +1 -1
- package/dist/chunks/{chunk-YRDPVTEI.js → chunk-KU4TPDPH.js} +2 -2
- package/dist/chunks/{chunk-WJSJXK2N.js → chunk-KUE46HTH.js} +1 -1
- package/dist/chunks/chunk-LVXL7T5O.js +2 -0
- package/dist/chunks/{chunk-5KWKSR4P.js → chunk-M4A7G4S5.js} +2 -2
- package/dist/chunks/{chunk-KAWXVMHI.js → chunk-M4ZHFDRJ.js} +1 -1
- package/dist/chunks/{chunk-HX6GXMDK.js → chunk-MEJLWNRS.js} +1 -1
- package/dist/chunks/{chunk-B666Z2NS.js → chunk-MIFVX5PK.js} +1 -1
- package/dist/chunks/{chunk-66HFW4OU.js → chunk-MOXIGLN2.js} +1 -1
- package/dist/chunks/{chunk-7XOUM6RK.js → chunk-N5EAVX4G.js} +1 -1
- package/dist/chunks/{chunk-Z2TOBS3P.js → chunk-NMMHXYDJ.js} +1 -1
- package/dist/chunks/{chunk-EBOTNBUS.js → chunk-NRYC4NH6.js} +1 -1
- package/dist/chunks/chunk-NSSZ2ZIU.js +2 -0
- package/dist/chunks/{chunk-4TTXNVCE.js → chunk-OFJPOTES.js} +1 -1
- package/dist/chunks/chunk-OIH2LPIT.js +2 -0
- package/dist/chunks/chunk-OUJ63LMU.js +2 -0
- package/dist/chunks/{chunk-DXA2UHBE.js → chunk-P4QM63L3.js} +1 -1
- package/dist/chunks/chunk-PACLKDTN.js +2 -0
- package/dist/chunks/{chunk-AF3AVDPP.js → chunk-PAYFJHPO.js} +1 -1
- package/dist/chunks/{chunk-OPTJYDZN.js → chunk-PHZZBXDO.js} +1 -1
- package/dist/chunks/{chunk-HPTEJBP4.js → chunk-PKJHN666.js} +1 -1
- package/dist/chunks/{chunk-HNDAGZCF.js → chunk-PLROXHG2.js} +1 -1
- package/dist/chunks/{chunk-W7NXFRHN.js → chunk-PNPV2LDE.js} +1 -1
- package/dist/chunks/{chunk-DSJZS77R.js → chunk-PSY6IRJE.js} +8 -8
- package/dist/chunks/{chunk-UK5LGSGT.js → chunk-Q73RKX7I.js} +1 -1
- package/dist/chunks/{chunk-PLVWARB7.js → chunk-Q7FBVLLB.js} +1 -1
- package/dist/chunks/{chunk-QAEZNFAM.js → chunk-Q7P34B2O.js} +1 -1
- package/dist/chunks/{chunk-QYQZQVVN.js → chunk-QLGP2OAQ.js} +1 -1
- package/dist/chunks/{chunk-GIU3Z45P.js → chunk-QUNQM2E3.js} +1 -1
- package/dist/chunks/chunk-R2FYCJL6.js +2 -0
- package/dist/chunks/{chunk-KOKBDIGR.js → chunk-R4EEGWXB.js} +1 -1
- package/dist/chunks/chunk-RBTDSI4L.js +11 -0
- package/dist/chunks/chunk-RCQYEHHD.js +2 -0
- package/dist/chunks/{chunk-TGULVWPV.js → chunk-RFQD6B44.js} +1 -1
- package/dist/chunks/{chunk-3WJQ4IGK.js → chunk-RPM4FDRX.js} +1 -1
- package/dist/chunks/{chunk-MCBRB5D6.js → chunk-RY46UPBO.js} +4 -4
- package/dist/chunks/{chunk-67HXM6AL.js → chunk-SDHG6CKU.js} +1 -1
- package/dist/chunks/{chunk-DIDQHTAX.js → chunk-SO4GMSNP.js} +1 -1
- package/dist/chunks/{chunk-O6ZYDHEJ.js → chunk-SSHE6B7Z.js} +1 -1
- package/dist/chunks/{chunk-SH7POUVX.js → chunk-SV7ZBEK2.js} +6 -6
- package/dist/chunks/{chunk-BJXPQIVD.js → chunk-U7D6Q744.js} +1 -1
- package/dist/chunks/chunk-U7X5ZLAL.js +2 -0
- package/dist/chunks/{chunk-LARJARMS.js → chunk-UANH7U3Y.js} +1 -1
- package/dist/chunks/{chunk-CYQLXS2U.js → chunk-UGFSAG4U.js} +1 -1
- package/dist/chunks/chunk-ULTV6INR.js +2 -0
- package/dist/chunks/{chunk-FHLSLOKH.js → chunk-UMAVVMXL.js} +7 -7
- package/dist/chunks/chunk-V24VHT76.js +2 -0
- package/dist/chunks/chunk-VEBW7NKD.js +2 -0
- package/dist/chunks/chunk-VJR2GNRY.js +2 -0
- package/dist/chunks/{chunk-JD76ANPN.js → chunk-VJYOKU3C.js} +1 -1
- package/dist/chunks/{chunk-5Z3AU5CL.js → chunk-VWWKWYSQ.js} +1 -1
- package/dist/chunks/chunk-WCNPGKST.js +2 -0
- package/dist/chunks/chunk-WD4KAKEX.js +2 -0
- package/dist/chunks/chunk-WGQ3FMRF.js +2 -0
- package/dist/chunks/{chunk-6C3CXME7.js → chunk-WNXUSELC.js} +1 -1
- package/dist/chunks/{chunk-GFAI2MCJ.js → chunk-WZ35ICTE.js} +3 -3
- package/dist/chunks/chunk-XHACK2KR.js +2 -0
- package/dist/chunks/chunk-XOPHFUUY.js +2 -0
- package/dist/chunks/{chunk-UXPO3ZV7.js → chunk-XQAUHXL4.js} +4 -4
- package/dist/chunks/{chunk-OXRVILDW.js → chunk-XT4CSKHM.js} +1 -1
- package/dist/chunks/{chunk-QJJNHKLT.js → chunk-XY7HFXLH.js} +1 -1
- package/dist/chunks/{chunk-ZUT4EM64.js → chunk-XYZV3FKD.js} +1 -1
- package/dist/chunks/{chunk-7FBWUVX7.js → chunk-Y2WNZWT2.js} +1 -1
- package/dist/chunks/chunk-Y4I6CFZJ.js +2 -0
- package/dist/chunks/chunk-YDZBX4XQ.js +2 -0
- package/dist/chunks/chunk-YI6ME6PU.js +22 -0
- package/dist/chunks/{chunk-H42UW6IF.js → chunk-YXMYK5P7.js} +1 -1
- package/dist/chunks/{chunk-D7R2AAX2.js → chunk-Z33RVGP6.js} +1 -1
- package/dist/chunks/{chunk-B32CW3NT.js → chunk-ZDEIVUUI.js} +1 -1
- package/dist/chunks/{chunk-IEVJLG3V.js → chunk-ZIQJDTQB.js} +1 -1
- package/dist/chunks/{chunk-GDJ4X2ZN.js → chunk-ZYLLPRPU.js} +1 -1
- package/dist/chunks/cli-R7TAP6Z2.js +2 -0
- package/dist/chunks/command-LNOVZQSK.js +58 -0
- package/dist/chunks/{configuration-command-4WTS2MZS.js → configuration-command-CNITTZRP.js} +1 -1
- package/dist/chunks/connected-app-executor-FGWCLOJO.js +2 -0
- package/dist/chunks/connected-evidence-5VZBYNWN.js +2 -0
- package/dist/chunks/{connected-starting-assets-4LDXQVLN.js → connected-starting-assets-KWOFEIE4.js} +1 -1
- package/dist/chunks/{connection-GDWPMHPC.js → connection-VMBXW5PD.js} +1 -1
- package/dist/chunks/{continual-HQCFY7GN.js → continual-FVOLGGOE.js} +1 -1
- package/dist/chunks/core-commands-BPYXVT7O.js +2 -0
- package/dist/chunks/dataset-preparation-authoring-UUYFWWCT.js +4 -0
- package/dist/chunks/datasets-E5TXSVIY.js +2 -0
- package/dist/chunks/desktop-test-FX7DTY4N.js +3 -0
- package/dist/chunks/dist-2MKJC6HN.js +2 -0
- package/dist/chunks/{dist-GR56E3QK.js → dist-DKE7RJZN.js} +1 -1
- package/dist/chunks/evaluation-coordination-KUTZEEPB.js +2 -0
- package/dist/chunks/experiment-improvements-PQNR5YHN.js +2 -0
- package/dist/chunks/experiments-Z4BJWT3Y.js +2 -0
- package/dist/chunks/experiments-signal-3GCLKUWZ.js +2 -0
- package/dist/chunks/{extension-UH34ZF7N.js → extension-3EKIT6BB.js} +1 -1
- package/dist/chunks/{help-JQA3YMCX.js → help-K6YLZ3KL.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +2 -0
- package/dist/chunks/host-profile-external-dataset-KSEPXY2S.js +2 -0
- package/dist/chunks/hosted-app-server-composition-LA3BZ4SE.js +2 -0
- package/dist/chunks/hosted-experiment-improvement-VG2WE7XZ.js +3 -0
- package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +2 -0
- package/dist/chunks/hosted-profile-candidate-PTGQLPZO.js +3 -0
- package/dist/chunks/hosted-profile-compiler-FS5R6CHJ.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-UUEZEMXU.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-inspection-4F7OEF4T.js +3 -0
- package/dist/chunks/hosted-profile-evaluation-preparation-LIJJZDHQ.js +3 -0
- package/dist/chunks/hosted-tasksets-NXVF4AQA.js +2 -0
- package/dist/chunks/human-review-2ZOB7CJZ.js +2 -0
- package/dist/chunks/{import-CLWTKDG6.js → import-YHYKZ6JN.js} +2 -2
- package/dist/chunks/javascript-isolate-process-source-YAT3GPW4.js +2 -0
- package/dist/chunks/javascript-verifier-worker-source-LGRP74W4.js +2 -0
- package/dist/chunks/{learning-XTY5VOTK.js → learning-LAXMGWSQ.js} +1 -1
- package/dist/chunks/learning-Y3UKNUGE.js +2 -0
- package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +2 -0
- package/dist/chunks/local-harness-taskset-review-XQHQ6JCR.js +2 -0
- package/dist/chunks/{model-projects-GHWCKDON.js → model-projects-6YWVD2TS.js} +1 -1
- package/dist/chunks/opchat-XXI2ZM53.js +3 -0
- package/dist/chunks/opchat-bounded-chat-3MZGCRLY.js +2 -0
- package/dist/chunks/organizations-W7HI2JA4.js +2 -0
- package/dist/chunks/{profile-RIDNU2I5.js → profile-P2SJPBOJ.js} +1 -1
- package/dist/chunks/project-action-payload-LTIQBX77.js +2 -0
- package/dist/chunks/project-agent-XRIXMXQK.js +2 -0
- package/dist/chunks/published-experiment-source-SDXUVPE7.js +2 -0
- package/dist/chunks/refiner-profile-service-56VYLZQJ.js +2 -0
- package/dist/chunks/{runtime-VSOOPNYN.js → runtime-Q7JUJO4D.js} +2 -2
- package/dist/chunks/sandbox-command-HVA5FJU4.js +2 -0
- package/dist/chunks/{sandbox-template-NN3XQI7M.js → sandbox-template-U536EEWY.js} +1 -1
- package/dist/chunks/saved-work-KSIQPXC2.js +2 -0
- package/dist/chunks/{send-turn-D3GTSSHI.js → send-turn-YLY3YNEQ.js} +1 -1
- package/dist/chunks/setup-RMZ2BHLM.js +2 -0
- package/dist/chunks/{src-662QOKNP.js → src-C3ZUESMK.js} +1 -1
- package/dist/chunks/src-SGQYVBNQ.js +424 -0
- package/dist/chunks/standalone-experiment-turn-owner-TW5MTWIO.js +2 -0
- package/dist/chunks/store-chat-resources-IRHBW2EC.js +2 -0
- package/dist/chunks/{store-continual-support-reviews-7PDLGRWF.js → store-continual-support-reviews-3KK42L4I.js} +1 -1
- package/dist/chunks/store-conversation-serving-IVURK52V.js +2 -0
- package/dist/chunks/{store-create-improve-G46KIUVT.js → store-create-improve-UTCLBXF2.js} +1 -1
- package/dist/chunks/{store-datasets-O67F75BL.js → store-datasets-4AQOVAQY.js} +1 -1
- package/dist/chunks/store-evaluation-results-PK2P3IMH.js +7 -0
- package/dist/chunks/{store-harness-workspaces-PJJQ74G6.js → store-harness-workspaces-YEXB4IRV.js} +1 -1
- package/dist/chunks/store-human-review-O4BVHP25.js +7 -0
- package/dist/chunks/store-learned-preference-migration-validation-44SVX6YB.js +2 -0
- package/dist/chunks/{store-learning-6P6IS7GH.js → store-learning-SIUQIY5C.js} +1 -1
- package/dist/chunks/{store-learning-credentials-EGJ2WTZI.js → store-learning-credentials-BUHR7SN6.js} +1 -1
- package/dist/chunks/store-local-experiments-BHVTKPPE.js +97 -0
- package/dist/chunks/store-model-batch-review-RVAYUVK2.js +2 -0
- package/dist/chunks/{store-model-configuration-T6XJJDAB.js → store-model-configuration-6L3OYXF4.js} +1 -1
- package/dist/chunks/store-model-project-preparation-AAEKCF6V.js +2 -0
- package/dist/chunks/store-modification-recordings-LCPK6K2T.js +9 -0
- package/dist/chunks/{store-preference-comparison-XQFTLMGH.js → store-preference-comparison-5YVIQNVB.js} +1 -1
- package/dist/chunks/{store-sidebar-file-bookmarks-J3JEVAYR.js → store-sidebar-file-bookmarks-WLMYDA4E.js} +1 -1
- package/dist/chunks/{store-sidebar-preferences-2JHTFXJK.js → store-sidebar-preferences-AFMYIDWT.js} +1 -1
- package/dist/chunks/{store-subagents-PUBQVWSU.js → store-subagents-KFPVSTRO.js} +1 -1
- package/dist/chunks/{store-task-inbox-VVXZUJIO.js → store-task-inbox-L6IQTY26.js} +1 -1
- package/dist/chunks/{store-task-inventory-MQX44AI6.js → store-task-inventory-QWS2C656.js} +1 -1
- package/dist/chunks/store-taskset-drafts-FRFL6ITK.js +9 -0
- package/dist/chunks/{store-training-DUVIDYK5.js → store-training-FYXZU2FE.js} +1 -1
- package/dist/chunks/{store-training-jobs-HHFH3V5O.js → store-training-jobs-3N3VKPIY.js} +1 -1
- package/dist/chunks/{store-training-models-C7UUZDTO.js → store-training-models-VOFVGPZR.js} +1 -1
- package/dist/chunks/{taskset-7FQCJ55X.js → taskset-UDDLFYKV.js} +1 -1
- package/dist/chunks/taskset-catalog-RZYEBCRQ.js +2 -0
- package/dist/chunks/taskset-packages-T6B6HYKZ.js +2 -0
- package/dist/chunks/taskset-packages-WMG5DUBN.js +2 -0
- package/dist/chunks/{teams-bot-FXMCOCPP.js → teams-bot-MPWL2PP4.js} +1 -1
- package/dist/chunks/tool-learning-ZQ6NSJ5K.js +2 -0
- package/dist/chunks/training-5NT2YB2L.js +2 -0
- package/dist/chunks/training-5UMT45UL.js +2 -0
- package/dist/chunks/training-UY6KRG4M.js +2 -0
- package/dist/chunks/{training-error-LQKCOQDJ.js → training-error-WF463UNZ.js} +1 -1
- package/dist/chunks/{training-hardware-ESXRWUIK.js → training-hardware-UWQCRDMV.js} +1 -1
- package/dist/chunks/training-hosted-CKSDRVL6.js +2 -0
- package/dist/chunks/training-hosted-alphaedit-HSMRDJTD.js +2 -0
- package/dist/chunks/training-hosted-checkpoint-evaluation-2X7RSOLC.js +2 -0
- package/dist/chunks/training-hosted-decision-7JALOU6O.js +2 -0
- package/dist/chunks/training-hosted-engram-SXO75MFG.js +2 -0
- package/dist/chunks/{training-hosted-learning-YN5VD3PW.js → training-hosted-learning-E2N32YU5.js} +1 -1
- package/dist/chunks/training-hosted-modification-comparison-TXFDJFTG.js +2 -0
- package/dist/chunks/training-hosted-neuron-training-J42WK4EH.js +2 -0
- package/dist/chunks/training-hosted-report-T633TNJG.js +2 -0
- package/dist/chunks/training-hosted-serving-report-BAEABGJH.js +2 -0
- package/dist/chunks/training-hosted-steering-T556BUBG.js +2 -0
- package/dist/chunks/training-hosted-workers-Y2PO5IOA.js +2 -0
- package/dist/chunks/training-model-start-P3PXDWNT.js +2 -0
- package/dist/chunks/web-search-ZEKJHZW4.js +2 -0
- package/dist/chunks/{workspaces-MCS2AQX6.js → workspaces-EK62ANTB.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/sandbox/types/billing.d.ts +87 -6
- package/dist/sandbox/types/io.d.ts +3 -0
- package/dist/sandbox-template/manifest.js +1 -1
- package/dist/skills/manifest.json +3 -3
- package/dist/skills/openpond-cli/references/experiments-and-training.md +461 -1
- package/dist/web/assets/App-CCuh99JW.js +54 -0
- package/dist/web/assets/{AppDialog-DuSd0wk6.js → AppDialog-CxjDHVk9.js} +1 -1
- package/dist/web/assets/AppTerminalPanel-CKJIVpKa.js +2 -0
- package/dist/web/assets/{AppToastContext-Dklk6CaG.js → AppToastContext-EpiT1dHs.js} +1 -1
- package/dist/web/assets/AppsView-BsMyPX_3.js +1 -0
- package/dist/web/assets/{AppsView-DNHWzJb2.css → AppsView-D3vVesNd.css} +1 -1
- package/dist/web/assets/{AttachmentTypeIcon-DipNT6Tj.js → AttachmentTypeIcon-BXvZy5gB.js} +1 -1
- package/dist/web/assets/BrowserSidebar-BIIV4aq4.js +1 -0
- package/dist/web/assets/{CartesianChart-UU1sdoUO.js → CartesianChart-brqLBqnF.js} +1 -1
- package/dist/web/assets/ChatTimelineEntry-CwZbn16X.js +8 -0
- package/dist/web/assets/{CollaborationTabs-BWYRQ1PE.js → CollaborationTabs-BU4uc4tZ.js} +1 -1
- package/dist/web/assets/{CommandMenu-B08F9x5g.js → CommandMenu-DkWpXR55.js} +1 -1
- package/dist/web/assets/CommunityView-CsSxJZGn.js +1 -0
- package/dist/web/assets/{ComposerAttachments-srWBKvCv.js → ComposerAttachments-BdJGCYzI.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-DqTpU5cO.js → ComposerCreateImproveStrip-CWy0j1vv.js} +1 -1
- package/dist/web/assets/{ConversationImportsSettings-2KC-KQvu.js → ConversationImportsSettings-DCmiakbZ.js} +1 -1
- package/dist/web/assets/DatasetReviewImport-DEnF_pGu.js +1 -0
- package/dist/web/assets/ExperimentTrainingDataWorkspace-WhwQ0QBi.js +2 -0
- package/dist/web/assets/{FilePagePreview-B-iUVPhh.js → FilePagePreview-BRhhz99q.js} +2 -2
- package/dist/web/assets/{GetStartedView-5v0vBWXy.js → GetStartedView-CLVD-qEi.js} +1 -1
- package/dist/web/assets/{GettingStartedDialog-Bn4072K-.js → GettingStartedDialog-CMxaAMg-.js} +1 -1
- package/dist/web/assets/HostedModelLearningReview-Cn-j-rDo.js +1 -0
- package/dist/web/assets/HostedModelLearningSettings-VNBvf38S.js +1 -0
- package/dist/web/assets/{HtmlVisual-C2WsMj90.js → HtmlVisual-D5y2WG9L.js} +10 -10
- package/dist/web/assets/LabModelVersionDetailPage-BxRmYD6h.js +1 -0
- package/dist/web/assets/{TrainingRunLineage-PXzWR65d.css → LabModelWorkspace-DOrgCk9Z.css} +1 -1
- package/dist/web/assets/LabModelWorkspace-u2Ulm_z4.js +1 -0
- package/dist/web/assets/{LabSkillSidebar-C50P74LI.js → LabSkillSidebar-C7IceJTJ.js} +1 -1
- package/dist/web/assets/LabsRoute-C9Y0GU34.css +1 -0
- package/dist/web/assets/LabsRoute-CbztQaEf.js +74 -0
- package/dist/web/assets/LearningBatchesPage-B1NZTBSv.css +1 -0
- package/dist/web/assets/LearningBatchesPage-CJqgZNvM.js +26 -0
- package/dist/web/assets/MainChatThread-DNMfrrRq.js +2 -0
- package/dist/web/assets/{MainPane-Dje-hfUM.css → MainPane-BZlNLfTM.css} +1 -1
- package/dist/web/assets/MainPane-CQQxSDPS.js +13 -0
- package/dist/web/assets/ModelProjectPageHeader-Dge19aE1.js +1 -0
- package/dist/web/assets/NativeSetupTerminal-D4JnbpyD.js +2 -0
- package/dist/web/assets/{NativeSkillSidebar-Clv0IWyn.js → NativeSkillSidebar-Jzx1BeKV.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-Cw_F5Eaa.js → NewProjectDialog-DcnGzEd9.js} +1 -1
- package/dist/web/assets/{OutputsPage-Btyiie4B.js → OutputsPage-Cmk15Vt_.js} +1 -1
- package/dist/web/assets/{PageChrome-BLLw_cEA.js → PageChrome-Cz_fCqtn.js} +1 -1
- package/dist/web/assets/{ProjectsPage-BpSHWQgj.js → ProjectsPage-BZ3Eo3Mz.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-C6H2vU9N.js +1 -0
- package/dist/web/assets/RightSidebarHomePanel-BfMMVkM1.js +1 -0
- package/dist/web/assets/{ScheduledWorkPage-WytWGQgw.js → ScheduledWorkPage-CAkSwM0T.js} +1 -1
- package/dist/web/assets/{SettingsView-BJq5zNkv.js → SettingsView-DvQXGw3_.js} +3 -3
- package/dist/web/assets/{TasksetDraftEditorPrimitives-BxFEWI9W.js → TasksetDraftEditorPrimitives-JuU1k8vr.js} +1 -1
- package/dist/web/assets/TeamChatView-DmHjr8W9.js +1 -0
- package/dist/web/assets/{TerminalOverlay-C7OM2F0-.js → TerminalOverlay-DlaM9d8F.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-KH5GFacT.js → TrainingCreationPanel-ClpylNsr.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-DzOw13Md.js → TrainingDraftPanel-6tH2xSDj.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-nZHno_4P.js → UsageSettingsSection-CzDqxOYM.js} +2 -2
- package/dist/web/assets/WorkSidebarPanel-CY-AHZ4-.js +1 -0
- package/dist/web/assets/WorkspaceDiffPanel-B4e0lyF7.js +11 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-D01ZkZZF.js +35 -0
- package/dist/web/assets/{WorkspaceFileLocation-1U8DDj1J.js → WorkspaceFileLocation-C5s_njZb.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-BO1EUA3G.js → WorkspaceGitDialogs-DjPZ6KIh.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-Rqq_sKW_.js → WorkspaceMonacoEditor-CC4sfOiU.js} +3 -3
- package/dist/web/assets/{WorkspacePdfPreview-zmmMp09R.js → WorkspacePdfPreview-vszQqFa4.js} +2 -2
- package/dist/web/assets/{WorkspacePresentationPreview-DNbhGjkE.js → WorkspacePresentationPreview-DQTvhaRD.js} +1 -1
- package/dist/web/assets/api-client-DJRVOFzS.js +1 -0
- package/dist/web/assets/{app-models-Cz3yxq4x.js → app-models-BUdzQbXo.js} +1 -1
- package/dist/web/assets/bot-Doyx3T4j.js +1 -0
- package/dist/web/assets/{browser-sidebar-links-ZyYiYBBd.js → browser-sidebar-links-PVPCrsDJ.js} +1 -1
- package/dist/web/assets/chat-resources-Beh5lB36.js +1 -0
- package/dist/web/assets/chevron-down-DX1hzujj.js +1 -0
- package/dist/web/assets/chevron-right-DHN0y3KC.js +1 -0
- package/dist/web/assets/chevron-up-_QrW88NF.js +1 -0
- package/dist/web/assets/chunk-3BYFS4RO-ztZjcMmt.js +1 -0
- package/dist/web/assets/chunk-AG6UJ3DI-D9KZjTYP.js +1 -0
- package/dist/web/assets/chunk-C3TS766N-ppRhs95p.js +1 -0
- package/dist/web/assets/chunk-GCUWJUUM-Dy6oUNJ6.js +9 -0
- package/dist/web/assets/chunk-GS5HEE4M-C0RLeIsy.js +1 -0
- package/dist/web/assets/chunk-H3JZ3P5T-DolwEJXo.js +2 -0
- package/dist/web/assets/chunk-Q4RGCEOI-Cr-dg4Nk.js +1 -0
- package/dist/web/assets/client-DwZ92xtu.js +1 -0
- package/dist/web/assets/{client-choice-storage-CXlWJW5g.js → client-choice-storage-DitqKiIT.js} +1 -1
- package/dist/web/assets/cloud-upload-HdzNTgr2.js +1 -0
- package/dist/web/assets/common-BWVSBnpX.js +1 -0
- package/dist/web/assets/copy-DTQhoBNg.js +1 -0
- package/dist/web/assets/create-pipeline-DsZzNkt9.js +1 -0
- package/dist/web/assets/{cssMode-Cps-05f3.js → cssMode-BRTtfXxU.js} +1 -1
- package/dist/web/assets/dataset-workspaces-BTPi71mz.js +1 -0
- package/dist/web/assets/external-link-H1629UU6.js +1 -0
- package/dist/web/assets/folder-open-CAGdWOrr.js +1 -0
- package/dist/web/assets/folder-plus-C14cs2mE.js +1 -0
- package/dist/web/assets/git-commit-horizontal-DFUfuVvF.js +1 -0
- package/dist/web/assets/{htmlMode-Do72TyNy.js → htmlMode-BVaCcL76.js} +1 -1
- package/dist/web/assets/icons-Bk2b68aC.js +1 -0
- package/dist/web/assets/image-0DPVY6Ev.js +1 -0
- package/dist/web/assets/{index-D7igQSAg.js → index-B6XX_0h3.js} +2 -2
- package/dist/web/assets/info-C8b_tafZ.js +1 -0
- package/dist/web/assets/intake-contracts-B8JZKYwb.js +1 -0
- package/dist/web/assets/{jsonMode-B2N7W15Y.js → jsonMode-BCKKQmmV.js} +1 -1
- package/dist/web/assets/loader-circle-y-SSPwpk.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-DPmyOFVA.js → lspLanguageFeatures-DozmNUOx.js} +1 -1
- package/dist/web/assets/maximize-2-CByk9-zN.js +1 -0
- package/dist/web/assets/message-square-C889vRqm.js +1 -0
- package/dist/web/assets/{monaco.contribution-DqqJBDzF.js → monaco.contribution-B9q6qbbo.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BfOxF9PJ.js → monaco.contribution-BITdsRbn.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DNONXznc.js → monaco.contribution-BqA-XZ44.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CRdTg0FH.js → monaco.contribution-DxAV1oS5.js} +2 -2
- package/dist/web/assets/monitor-BtxlcLuI.js +1 -0
- package/dist/web/assets/paperclip-BeIdaspf.js +1 -0
- package/dist/web/assets/{pdf-BCq2Oosd.js → pdf-perlzwEB.js} +1 -1
- package/dist/web/assets/play-CHXXdkuO.js +1 -0
- package/dist/web/assets/plus-DFFWjhPw.js +1 -0
- package/dist/web/assets/{ponder-desktop-Dm7tOkKo.js → ponder-desktop-Ca-9KggQ.js} +1 -1
- package/dist/web/assets/presentation-0bzvu6_u.js +1 -0
- package/dist/web/assets/{profile-ref-DSNkG6Ol.js → profile-ref-D8lxL7dW.js} +1 -1
- package/dist/web/assets/{python-DuGMr666.js → python-B9hOnkOI.js} +1 -1
- package/dist/web/assets/refresh-cw-D61-Ozk3.js +1 -0
- package/dist/web/assets/{requests-BCbaFiqV.js → requests-DmeUYik4.js} +1 -1
- package/dist/web/assets/reward-checks-DJJZYgf8.js +7 -0
- package/dist/web/assets/save-iEMNZoPe.js +1 -0
- package/dist/web/assets/schemas-Brv9Vmnk.js +64 -0
- package/dist/web/assets/settings-BC-bzgk6.js +21 -0
- package/dist/web/assets/settings-lists-C84qxFmP.js +5 -0
- package/dist/web/assets/square-BE_4JMR3.js +1 -0
- package/dist/web/assets/square-terminal-Djpzo2Qs.js +1 -0
- package/dist/web/assets/{submit-issue-command-wfngGS6Y.js → submit-issue-command-HfKzyxg5.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-cl0cw2QK.js → toggleHighContrast-ClsXu39R.js} +1 -1
- package/dist/web/assets/training-DWfghwfZ.js +1 -0
- package/dist/web/assets/{training-model-data-CWnu1bz9.js → training-model-data-CIysl8wH.js} +4 -4
- package/dist/web/assets/{tsMode-DLEc0PYL.js → tsMode-nbmaMc-D.js} +1 -1
- package/dist/web/assets/upload-C6ug8RD-.js +1 -0
- package/dist/web/assets/{useAccountSettings-ByxjI9BG.js → useAccountSettings-Dr9h4Qz_.js} +1 -1
- package/dist/web/assets/{useAgentInventory-Df64T07n.js → useAgentInventory-ByCk2JAv.js} +1 -1
- package/dist/web/assets/useChatContextSelection-C0eMm2g6.js +1 -0
- package/dist/web/assets/{useLocalAgentSchedules-DNh_x9gQ.js → useLocalAgentSchedules-Do0y_leJ.js} +1 -1
- package/dist/web/assets/useQuery-D2MQ7e5U.js +1 -0
- package/dist/web/assets/wifi-off-Dr-CapyW.js +1 -0
- package/dist/web/assets/work-outputs-D_8TovAK.js +1 -0
- package/dist/web/assets/{workers-CnqrOtic.js → workers-DKvM2NdM.js} +1 -1
- package/dist/web/assets/x-Jx2jlP9u.js +1 -0
- package/dist/web/assets/{yaml-C9vtYV4w.js → yaml-C02vq4ar.js} +1 -1
- package/dist/web/index.html +1 -1
- package/docs/command-reference.md +100 -4
- package/package.json +1 -1
- package/dist/chunks/actions-command-VLKMHCMI.js +0 -2
- package/dist/chunks/app-server-evaluations-V6LRWDUF.js +0 -2
- package/dist/chunks/app-server-harness-services-6ZRLA3YD.js +0 -2
- package/dist/chunks/app-server-runtime-TH56EG2Z.js +0 -2
- package/dist/chunks/apps-MNT3KXIY.js +0 -2
- package/dist/chunks/chunk-2W22IXHB.js +0 -2
- package/dist/chunks/chunk-2ZNW6GUU.js +0 -2
- package/dist/chunks/chunk-3BJ7LPE3.js +0 -2
- package/dist/chunks/chunk-3MVKXAH7.js +0 -2
- package/dist/chunks/chunk-4MQHIFZL.js +0 -2
- package/dist/chunks/chunk-55Q64WWF.js +0 -2
- package/dist/chunks/chunk-5KJMFK65.js +0 -2
- package/dist/chunks/chunk-5WPMI6QX.js +0 -2
- package/dist/chunks/chunk-7PKTCMZ6.js +0 -2
- package/dist/chunks/chunk-ANG2YMMD.js +0 -2
- package/dist/chunks/chunk-BQVB2SPF.js +0 -10
- package/dist/chunks/chunk-DMO3UIS7.js +0 -6
- package/dist/chunks/chunk-FEQ7HNJR.js +0 -2
- package/dist/chunks/chunk-G4E3WGLM.js +0 -13
- package/dist/chunks/chunk-H5ML7735.js +0 -2
- package/dist/chunks/chunk-I3NYYOSS.js +0 -2
- package/dist/chunks/chunk-IOSBGCRT.js +0 -2
- package/dist/chunks/chunk-JBFPTEVE.js +0 -2
- package/dist/chunks/chunk-JKI53ED7.js +0 -161
- package/dist/chunks/chunk-JRGECNP3.js +0 -2
- package/dist/chunks/chunk-L4EJ5R3B.js +0 -23
- package/dist/chunks/chunk-LXZLLTYQ.js +0 -2
- package/dist/chunks/chunk-MHPCVQOE.js +0 -2
- package/dist/chunks/chunk-MVPKU72J.js +0 -4
- package/dist/chunks/chunk-OKEC2EIE.js +0 -2
- package/dist/chunks/chunk-OW3EOC5Q.js +0 -4
- package/dist/chunks/chunk-QCJY6FTC.js +0 -3
- package/dist/chunks/chunk-SBQ6KLXB.js +0 -33
- package/dist/chunks/chunk-TVDZXDQW.js +0 -2
- package/dist/chunks/chunk-V3KEG6MI.js +0 -2
- package/dist/chunks/chunk-VD2TQCMH.js +0 -2
- package/dist/chunks/chunk-WLZJOCLA.js +0 -10
- package/dist/chunks/chunk-Y3B6ZUE6.js +0 -22
- package/dist/chunks/chunk-YBKDEEEH.js +0 -2
- package/dist/chunks/chunk-ZWW227M3.js +0 -2
- package/dist/chunks/cli-TE7RP5H7.js +0 -2
- package/dist/chunks/command-NW6BGKOM.js +0 -13
- package/dist/chunks/connected-app-executor-7DYMZCD7.js +0 -2
- package/dist/chunks/connected-evidence-D7C45HYD.js +0 -2
- package/dist/chunks/core-commands-RXPXOYOP.js +0 -2
- package/dist/chunks/dataset-preparation-authoring-KWRTMKN6.js +0 -4
- package/dist/chunks/datasets-LBLEKLCS.js +0 -2
- package/dist/chunks/desktop-test-INJPZ5VP.js +0 -3
- package/dist/chunks/dist-J4KHAVO3.js +0 -2
- package/dist/chunks/evaluation-coordination-3ARLJAFH.js +0 -2
- package/dist/chunks/experiment-improvements-UB4C5CSP.js +0 -2
- package/dist/chunks/experiments-AHHKFJD6.js +0 -2
- package/dist/chunks/experiments-signal-MTR475QV.js +0 -2
- package/dist/chunks/host-profile-evaluation-tools-75EPCRSZ.js +0 -2
- package/dist/chunks/host-profile-external-dataset-YRKG2GL5.js +0 -2
- package/dist/chunks/hosted-app-server-composition-GPXH3BOG.js +0 -2
- package/dist/chunks/hosted-experiment-improvement-NZTPZTDH.js +0 -3
- package/dist/chunks/hosted-harness-runtime-3AJGEIFD.js +0 -2
- package/dist/chunks/hosted-profile-candidate-3CAT3XBI.js +0 -3
- package/dist/chunks/hosted-profile-compiler-RXU626Q6.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-CBDRKJ5J.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-CHYKDYUQ.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-H5S7JZMD.js +0 -3
- package/dist/chunks/hosted-tasksets-AMGDDB2R.js +0 -2
- package/dist/chunks/human-review-DVHVJXBA.js +0 -2
- package/dist/chunks/javascript-isolate-process-source-ZPQKKLR4.js +0 -2
- package/dist/chunks/javascript-verifier-worker-source-F3LSGPOY.js +0 -2
- package/dist/chunks/learning-NJLTGZFQ.js +0 -2
- package/dist/chunks/local-harness-improvement-runtime-XEA73RGS.js +0 -2
- package/dist/chunks/local-harness-taskset-review-SW35G4DM.js +0 -2
- package/dist/chunks/opchat-LMKH3OWR.js +0 -3
- package/dist/chunks/opchat-bounded-chat-PPOWO7H4.js +0 -2
- package/dist/chunks/organizations-T6ZUSHNJ.js +0 -2
- package/dist/chunks/project-action-payload-2G57RL74.js +0 -2
- package/dist/chunks/project-agent-GBMVDJY3.js +0 -2
- package/dist/chunks/published-experiment-source-D3C2AWQD.js +0 -2
- package/dist/chunks/refiner-profile-service-PPGGNVOV.js +0 -2
- package/dist/chunks/sandbox-command-L5VQ2T6C.js +0 -2
- package/dist/chunks/saved-work-LAVTNKPT.js +0 -2
- package/dist/chunks/setup-TXEM2QSG.js +0 -2
- package/dist/chunks/src-HJHIBDFX.js +0 -424
- package/dist/chunks/standalone-experiment-turn-owner-KKYIGGPF.js +0 -2
- package/dist/chunks/store-chat-resources-ZWDYMDJF.js +0 -2
- package/dist/chunks/store-conversation-serving-WRT4N7N2.js +0 -2
- package/dist/chunks/store-evaluation-results-BEPR4LVD.js +0 -7
- package/dist/chunks/store-human-review-HJ3D7ZFA.js +0 -7
- package/dist/chunks/store-learned-preference-migration-validation-EXNRDHCO.js +0 -2
- package/dist/chunks/store-local-experiments-CBJA56X2.js +0 -97
- package/dist/chunks/store-model-batch-review-YIVD7T2T.js +0 -2
- package/dist/chunks/store-model-project-preparation-WWU5CJTV.js +0 -2
- package/dist/chunks/store-taskset-drafts-G3WFVN4M.js +0 -9
- package/dist/chunks/taskset-packages-NRRPON7B.js +0 -2
- package/dist/chunks/taskset-packages-RW4SFGDU.js +0 -2
- package/dist/chunks/tool-learning-O7QTTEDB.js +0 -2
- package/dist/chunks/training-XFM3OOPN.js +0 -2
- package/dist/chunks/training-XILDD5RG.js +0 -2
- package/dist/chunks/training-hosted-6BX2IASC.js +0 -2
- package/dist/chunks/training-hosted-checkpoint-evaluation-UXFW33QL.js +0 -2
- package/dist/chunks/training-hosted-report-UVGTPDOK.js +0 -2
- package/dist/chunks/training-hosted-serving-report-J4YOZLRP.js +0 -2
- package/dist/chunks/training-hosted-workers-6JTDCCWA.js +0 -2
- package/dist/chunks/training-model-start-E5MP3URL.js +0 -2
- package/dist/chunks/web-search-56QRZGPR.js +0 -2
- package/dist/web/assets/App-CNQi3RlI.js +0 -53
- package/dist/web/assets/AppTerminalPanel-DLz34eSs.js +0 -2
- package/dist/web/assets/AppsView-DkCMr67-.js +0 -1
- package/dist/web/assets/BrowserSidebar-BBaaanMS.js +0 -1
- package/dist/web/assets/ChatTimelineEntry-Ct59FKw1.js +0 -8
- package/dist/web/assets/CommunityView-BLTlSxyb.js +0 -1
- package/dist/web/assets/HostedModelLearningReview-DWF6WPao.js +0 -1
- package/dist/web/assets/HostedModelLearningSettings-BYl-2j7B.js +0 -1
- package/dist/web/assets/LabModelVersionDetailPage-CQz29DwD.js +0 -1
- package/dist/web/assets/LabsRoute-CE45yAXJ.css +0 -1
- package/dist/web/assets/LabsRoute-DJRgF1kQ.js +0 -101
- package/dist/web/assets/MainChatThread-gwmhe1Nw.js +0 -2
- package/dist/web/assets/MainPane-CqtgV9rU.js +0 -10
- package/dist/web/assets/NativeSetupTerminal-DrQldDsG.js +0 -2
- package/dist/web/assets/RightChatPanelStack-xW5rKbp0.js +0 -1
- package/dist/web/assets/RightSidebarHomePanel-BDmIxvIm.js +0 -1
- package/dist/web/assets/TeamChatView-BisSMAXy.js +0 -1
- package/dist/web/assets/TrainingRunLineage-B2WBOchk.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-D3Ub_jVj.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-CyTa8Cjs.js +0 -11
- package/dist/web/assets/WorkspaceEnvironmentMenu-CtZzxQ1e.js +0 -35
- package/dist/web/assets/api-client-Dgz-fOMl.js +0 -1
- package/dist/web/assets/bot-D-eTQib6.js +0 -1
- package/dist/web/assets/chat-resources-CTN4f6KC.js +0 -1
- package/dist/web/assets/chevron-down-75im8nFF.js +0 -1
- package/dist/web/assets/chevron-right-CpbCIUFo.js +0 -1
- package/dist/web/assets/chevron-up-BD8jg0bQ.js +0 -1
- package/dist/web/assets/chunk-GJRXJL6G-pJp1DyJd.js +0 -9
- package/dist/web/assets/chunk-H3JZ3P5T-B0SCoPw4.js +0 -2
- package/dist/web/assets/chunk-TLSP5JKG-DZmxtX-4.js +0 -1
- package/dist/web/assets/cloud-upload-4lP-5zmp.js +0 -1
- package/dist/web/assets/common-BMjyKlX-.js +0 -1
- package/dist/web/assets/contracts-BLiqJxBv.js +0 -1
- package/dist/web/assets/copy-DRnATDDY.js +0 -1
- package/dist/web/assets/create-pipeline-CyUZrbbO.js +0 -1
- package/dist/web/assets/createLucideIcon-CmkSm39S.js +0 -1
- package/dist/web/assets/external-link-D_nBEDFO.js +0 -1
- package/dist/web/assets/folder-open-tD5Lle1M.js +0 -1
- package/dist/web/assets/folder-plus-DlZ4hM48.js +0 -1
- package/dist/web/assets/git-commit-horizontal-g8KBhvfr.js +0 -1
- package/dist/web/assets/icons-B8_Rkg-l.js +0 -1
- package/dist/web/assets/image-CUZMnZYi.js +0 -1
- package/dist/web/assets/info-SmuBZiE5.js +0 -1
- package/dist/web/assets/intake-contracts-BW0Y0C2R.js +0 -1
- package/dist/web/assets/loader-circle-D_KVxLLz.js +0 -1
- package/dist/web/assets/maximize-2-B8HN3jsA.js +0 -1
- package/dist/web/assets/message-square-CrDvzn66.js +0 -1
- package/dist/web/assets/models-route-CWcJuOd0.js +0 -1
- package/dist/web/assets/monitor-CW-M_aaj.js +0 -1
- package/dist/web/assets/paperclip-DL449Io5.js +0 -1
- package/dist/web/assets/play-DYLqBrwg.js +0 -1
- package/dist/web/assets/plus-DXZIpQuY.js +0 -1
- package/dist/web/assets/presentation-CupIXaYv.js +0 -1
- package/dist/web/assets/refresh-cw-CzVf5_oo.js +0 -1
- package/dist/web/assets/reward-checks-Bcq9ETCA.js +0 -7
- package/dist/web/assets/save-DatjrYPV.js +0 -1
- package/dist/web/assets/schemas-lO3MoWQr.js +0 -64
- package/dist/web/assets/settings-D7C-Auyi.js +0 -21
- package/dist/web/assets/settings-lists-D2ol3uNK.js +0 -5
- package/dist/web/assets/square-BWB1nbZF.js +0 -1
- package/dist/web/assets/square-terminal-Buj-s-fz.js +0 -1
- package/dist/web/assets/training-DCdoHJ0Y.js +0 -2
- package/dist/web/assets/upload-DaFVH6R1.js +0 -1
- package/dist/web/assets/useQuery-yUz7Ui8g.js +0 -1
- package/dist/web/assets/wifi-off-CtNwnIJc.js +0 -1
- package/dist/web/assets/work-outputs-CK0nHe4g.js +0 -1
- package/dist/web/assets/x-Bhl-4Zlt.js +0 -1
- /package/dist/chunks/{chunk-SFR32TMJ.js → chunk-JXLDEYRW.js} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{A as z,a as ue,b as $,c as pe,d as fe,g as me,h as he,i as L,j as we,k as ge,l as ye,m as ve,n as be,o as H,p as N,q as Ie,r as Se,s as Ce,t as V,u as O,v as Q,w as Ee,x as M,y as xe,z as Re}from"./chunk-OTXGAKFH.js";import{k as Y}from"./chunk-
|
|
3
|
-
${w}`),Xe(w);Date.now()<Date.parse(l.expiresAt);){await new Promise(R=>setTimeout(R,l.intervalSeconds*1e3));let h;try{h=await X(i.origin,"/api/cli/import/token",{deviceCode:l.deviceCode})}catch(R){if(Number(R.status)===429)continue;throw R}let b=g.object({state:g.enum(["pending","approved","denied","consumed"]),envelope:Qe.nullable().optional()}).strict().parse(h);if(b.state==="denied"||b.state==="consumed")throw new Error("Browser sign-in was declined or already consumed. Start the connection again.");if(b.state!=="approved"||!b.envelope)continue;let m=b.envelope,p=Ye({key:Buffer.from(m.publicKey,"base64"),format:"der",type:"spki"});if(p.asymmetricKeyType!=="x25519")throw new Error("Invalid sign-in encryption key.");let C=Te("sha256").update(Ge({privateKey:a.privateKey,publicKey:p})).digest(),v=We("aes-256-gcm",C,Buffer.from(m.iv,"base64"));v.setAAD(Buffer.from(Oe(l.deviceCode))),v.setAuthTag(Buffer.from(m.tag,"base64"));let S=g.object({apiKey:g.string().min(1),teamId:g.string().min(1),expiresAt:g.string().datetime()}).strict().parse(JSON.parse(Buffer.concat([v.update(Buffer.from(m.ciphertext,"base64")),v.final()]).toString("utf8")));if(u(t,"team")&&S.teamId!==u(t,"team"))throw new Error("Browser approved a different workspace.");return await $e({handle:s,apiKey:S.apiKey,baseUrl:i.origin,apiBaseUrl:c.origin,setActive:!1}),await X(i.origin,"/api/cli/import/token",{deviceCode:l.deviceCode,acknowledge:!0}),{apiKey:S.apiKey,teamId:S.teamId,baseUrl:c.origin,account:s,accountBaseUrl:i.origin}}throw new Error("Browser sign-in expired. Start the connection again.")}d(ke,"authorizeImporter");import{homedir as Ze}from"node:os";import{join as eo}from"node:path";import{zstdCompressSync as oo}from"node:zlib";function je(e,t,o){if(t.connectionId!==e.id||!t.boundaryIds.length||new Set(t.boundaryIds).size!==t.boundaryIds.length)throw Object.assign(new Error("Retained source selection differs from its connection."),{status:400});if(o.issues.length)throw Object.assign(new Error("Retained source normalization failed."),{status:400});let r=o.sessions.find(n=>JSON.stringify([e.source.instanceId,n.sessionId,n.branchId])===t.sessionKey);if(!r||t.boundaryIds.some(n=>{let i=r.boundaries.find(s=>s.id===n),c=i?r.events[i.start]?.occurredAt:null;return!i||i.projection!=="turn"||i.terminal==="unknown"||!c||!Number.isFinite(Date.parse(c))||e.since!==null&&Date.parse(c)<Date.parse(e.since)}))throw Object.assign(new Error("Retained source boundaries changed; inspect the connection before resuming."),{status:400});return{...t,contentHash:r.contentHash,operationId:r.contentHash===t.contentHash?t.operationId:`sync-${x([t.operationId,"source-normalization",r.contentHash]).slice(0,48)}`}}d(je,"refreshRetainedAdmission");async function k(e){let t=await _(e.credentialHome??eo(Ze(),".openpond"),()=>F({account:e.account,baseUrl:e.accountBaseUrl})),o=e.account?t.apiKey:Ne(t);if(!o)throw Object.assign(new Error("This source is disconnected. Reconnect it with OpenPond Importer to authorize collection."),{status:401});let r={apiKey:o,baseUrl:e.apiBaseUrl,teamId:e.teamId};return{evidence:new Ae(r),sync:new J(r)}}d(k,"collectorClients");var Z=null;async function ee(e,t,o){let r=AbortSignal.any([AbortSignal.timeout(6e4),...t?[t]:[]]);try{return await o(r)}catch(n){let i=n&&typeof n=="object"&&"status"in n?n.status:void 0;throw Object.assign(new Error(`Conversation import ${e} failed: ${n instanceof Error?n.message:String(n)}`,{cause:n}),typeof i=="number"?{status:i}:{})}}d(ee,"admissionStep");var Be={async publishCoverage(e,t,o){let{sync:r}=await k(e);await r.publishCoverage({id:e.id,expectedRevision:e.revision,manifest:t},AbortSignal.any([AbortSignal.timeout(6e4),...o?[o]:[]]))},async heartbeat(e,t,o){let{sync:r}=await k(e),n=await r.heartbeat({id:e.id,expectedRevision:e.revision,...t},AbortSignal.any([AbortSignal.timeout(6e4),...o?[o]:[]]));return{revision:n.revision,state:n.state,destinations:ge(e,n),requestedSyncRevision:n.requestedSyncRevision,completedSyncRevision:n.completedSyncRevision}},async admit(e,t,o){let{evidence:r,sync:n}=await k(e),i=x([e.id,e.revision,e.apiBaseUrl,e.teamId,e.account,e.credentialHome,e.projectId,e.source.instanceId,t.branchLeafId,t.files]);if(Z?.key!==i){let m=Buffer.from(JSON.stringify(t.files.map(C=>({path:C.path,encoding:"zstd",base64:oo(Buffer.from(C.text)).toString("base64")})))),p=ue({source:e.source.source,files:t.files,acquisition:{machineId:e.source.machineId,sourceInstanceId:e.source.instanceId},...t.branchLeafId?{branchLeafId:t.branchLeafId}:{}});Z={key:i,bytes:m,upload:{hash:ie(m),parts:Math.ceil(m.length/2e5)},nextPart:0,normalized:p}}let c=Z,s=je(e,t,c.normalized),a=c.upload;for(;c.nextPart<a.parts;){let m=c.nextPart,p=Math.min(4,a.parts-m),C=await Promise.allSettled(Array.from({length:p},(R,j)=>{let B=m+j;return ee(`upload part ${B+1}/${a.parts}`,o,K=>r.uploadPart({...a,index:B,base64:c.bytes.subarray(B*2e5,(B+1)*2e5).toString("base64")},K))})),v=C.findIndex(R=>R.status==="rejected");c.nextPart+=v<0?p:v;let S=C[v];if(S?.status==="rejected")throw S.reason}let f={upload:a,source:e.source.source,...t.branchLeafId?{branchLeafId:t.branchLeafId}:{},destination:{kind:"existing",projectId:e.projectId},acquisition:{machineId:e.source.machineId,sourceInstanceId:e.source.instanceId}},l=c.preview??=await ee("preview",o,m=>r.preview(f,m));if(l.issues.length)throw Object.assign(new Error("Source schema was rejected; inspect the connection before resuming."),{status:400});let w=l.sessions.find(m=>m.sessionHash===s.contentHash);if(!w||t.boundaryIds.some(m=>!w.boundaries.some(p=>p.id===m&&p.projection==="turn"&&p.terminal!=="unknown")))throw Object.assign(new Error("Server preview differs from the retained source boundaries."),{status:400});let h={...f,operationId:s.operationId,previewHash:l.previewHash,selection:[{sessionHash:w.sessionHash,boundaryIds:t.boundaryIds}]},b=Ue.parse(await ee("commit",o,m=>n.commit({connectionId:e.id,expectedRevision:e.revision,request:h},m)));if(b.state!=="completed"||b.operationId!==s.operationId||b.requestHash!==x(h)||b.projectId!==e.projectId)throw new Error("Admission did not acknowledge this retained operation.")}};function G(e){if(e.everyMinute!==void 0)throw new Error("Every-minute imports are no longer supported. Use --continual --hourly or a slower schedule.");let t=y(e.continual),o=["daily","weekly","hourly"].filter(a=>y(e[a]));e.cron!==void 0&&o.push("cron");let r=e.at!==void 0||e.on!==void 0;if(!t&&(o.length||r))throw new Error("Add --continual to enable recurring imports. Without it, imports run once.");if(!t)return null;if(o.length>1)throw new Error("Choose one cadence: --daily, --weekly, --hourly, or --cron.");if(e.off!==void 0)throw new Error("Choose --continual or --off, not both.");let n=o[0]??"daily";if(["cron","hourly"].includes(n)){if(r)throw new Error("--at and --on are for daily/weekly imports; use a cron expression for other times.");return n==="cron"?be({frequency:"cron",expression:u(e,"cron")}):{frequency:"hourly"}}if(n!=="weekly"&&e.on!==void 0)throw new Error("--on selects a weekday and requires --weekly.");let i=ve(e.at===void 0?"00:00":u(e,"at"));if(n==="daily")return{frequency:"daily",time:i};let c=e.on===void 0?"mon":u(e,"on").toLowerCase(),s=ye.findIndex(a=>a===c);if(s<0)throw new Error("Use --on sun|mon|tue|wed|thu|fri|sat (default: mon).");return{frequency:"weekly",time:i,day:s}}d(G,"importSchedule");import{setTimeout as to}from"node:timers/promises";async function Pe(e){console.log("Importing saved conversations. Ctrl+C cancels this run; queued work is retained.");let t=0;try{for(;!e.signal.aborted;){let n=(await O(e.directory)).connections.filter(s=>!e.connectionId||s.id===e.connectionId).find(s=>s.run?.state==="running"),i=n?.run,c=n&&i?`${n.source}: ${i.phase} \xB7 ${i.processed}/${i.discovered} conversations checked \xB7 ${i.uploaded} turns uploaded \xB7 ${n.queued} queued`:"Starting import\u2026";process.stdout.clearLine(0),process.stdout.cursorTo(0),process.stdout.write(`${["|","/","-","\\"][t++%4]} ${c}`);try{await to(500,void 0,{signal:e.signal})}catch{if(!e.signal.aborted)throw new Error("Import progress interrupted.")}}}finally{process.stdout.clearLine(0),process.stdout.cursorTo(0)}}d(Pe,"monitorImport");async function P(e){let t=new AbortController,o=d(()=>t.abort(new Error("Import cancelled.")),"stop");process.once("SIGINT",o),process.once("SIGTERM",o);let r=new AbortController,n=!!process.stdin.isTTY&&!!process.stdout.isTTY&&!e.json,i;try{let s=Ce({directory:e.directory,signal:t.signal,until:e.until,...e.connectionId?{connectionIds:[e.connectionId]}:{},...e.retainedStart?{}:{trigger:e.scheduled?"scheduled":"manual"},transport:Be}).finally(()=>r.abort());await Promise.all([s,n?Pe({directory:e.directory,connectionId:e.connectionId,signal:r.signal}):Promise.resolve()]),i=await O(e.directory)}finally{r.abort(),process.off("SIGINT",o),process.off("SIGTERM",o)}let c=i.connections.filter(s=>!e.connectionId||s.id===e.connectionId);if(e.json)console.log(JSON.stringify(i,null,2));else for(let s of c){let a=s.run;a&&console.log(`${s.source}: ${a.state}. ${a.processed} conversations checked, ${a.uploaded} turns uploaded, ${s.queued} queued.${a.error?` ${a.error}`:""}`),console.log(s.schedule?`Continual imports: ${H(s.schedule)} (${i.timezone}). Next: ${s.nextRunAt??"source paused"}.`:"Automatic sync is off. Run openpond import sync to import again.")}return t.signal.aborted?process.exitCode=130:c.some(s=>s.run?.state==="failed")&&(process.exitCode=1),i}d(P,"runImportJob");import{readFile as no}from"node:fs/promises";async function oe(e){let t=await no(e);if(t.byteLength>1024*1024)throw new Error("Conversation selection exceeds 1 MiB.");return me.parse(JSON.parse(t.toString("utf8")))}d(oe,"readUploadSelection");async function qe(e,t){let o=await L(e.source,await oe(t));return{...e,since:null,selectedSessionKeys:[...o.sessionKeys].sort()}}d(qe,"applyUploadSelection");function W(e){return{directory:e,executable:process.execPath,args:[...process.execArgv,process.argv[1]],environment:{...process.env.OPENPOND_HOME?{OPENPOND_HOME:process.env.OPENPOND_HOME}:{},...process.env.ELECTRON_RUN_AS_NODE==="1"?{ELECTRON_RUN_AS_NODE:"1"}:{}}}}d(W,"collectorSetup");async function He(e,t,o,r){let n=d(c=>console.log(JSON.stringify(c,null,2)),"print"),i=y(r.json);if(t==="status")return n(await O(e)),!0;if(t==="conversations"){if(!o)throw new Error("Use openpond import conversations <connection-id> [--query <text>] [--range day|week|all] [--offset <number>].");let c=await N.open(e);try{let s=c.connections().find(a=>a.id===o);if(!s)throw new Error("Select a retained connection from import status.");n({sourceInstanceId:s.source.instanceId,...we(s,await he(s.source),{query:u(r,"query"),range:u(r,"range")||"all",offset:Number(u(r,"offset")||"0")})})}finally{c.close()}return!0}if(t==="coverage"){if(!o)throw new Error("Use openpond import coverage <connection-id>.");let c=await N.open(e);try{if(!c.connections().some(a=>a.id===o))throw new Error("Select a retained connection from import status.");let s=c.coverage.manifest(o);if(!s)throw new Error("This connection has no retained source coverage. Run import sync first.");n({manifest:s,summary:c.coverage.summary(o)})}finally{c.close()}return!0}if(t==="cancel")return n(await Q(e,"stop")),!0;if(t==="schedule"){if(!o)throw new Error("Use openpond import schedule <connection-id> --continual [--daily|--weekly|--hourly|--cron <expression>] or --off.");let c=G(r),s=y(r.off);if(!c&&!s)throw new Error("Choose --continual [--daily|--weekly|--hourly|--cron <expression>] or --off.");return n(await M(W(e),o,c)),!0}if(t==="sync"){let c=await O(e);if(o&&!c.connections.some(a=>a.id===o&&a.state==="active"))throw new Error("Select an active connection from import status; resume or reconnect it first.");if(!c.connections.some(a=>a.state==="active"))throw new Error("No active sources. Connect or resume a source first.");let s=u(r,"selectionFile");if(s){if(!o)throw new Error("Select a connection ID when uploading chosen conversations.");if(c.running)throw new Error("Wait for the running import or cancel it before selecting more conversations.");let a=await N.open(e);try{let f=a.connections().find(w=>w.id===o);if(!f)throw new Error("The selected connection is unavailable.");let l=await qe(f,s);if(f.since!==null){let{sync:w}=await k(f),h=await w.register({id:f.id,source:f.source.source,machineId:f.source.machineId,sourceInstanceId:f.source.instanceId,sourceLabel:$[f.source.source],sourceRoot:f.source.root,destination:{kind:"existing",projectId:f.projectId},since:null,keepSyncing:f.keepSyncing,expectedRevision:f.revision});l={...l,revision:h.revision,state:h.state,requestedSyncRevision:h.requestedSyncRevision,completedSyncRevision:h.completedSyncRevision}}a.put(l)}finally{a.close()}}else if(!c.connections.some(a=>a.state==="active"&&(!o||a.id===o)&&a.selectedConversations!==0))throw new Error("Choose conversations first with --selection-file <path>.");return await P({directory:e,connectionId:o,json:i,until:u(r,"until")||void 0}),!0}if(t!=="service")return!1;if(o==="status")n(await O(e));else if(o==="stop")n(await Q(e,"stop"));else if(o==="uninstall")n(await xe(e));else if(o==="install")n(await Ee(W(e)));else if(o==="start")await P({directory:e,json:i});else if(o==="run")await P({directory:e,json:i,scheduled:y(r.scheduled),retainedStart:!y(r.scheduled)});else throw new Error("usage: openpond import service <install|start|stop|status|run|uninstall>");return!0}d(He,"runImporterControl");async function te(e,t){let o=await N.open(e),r;try{r=o.connections().find(n=>n.id===t)}finally{o.close()}if(!r)throw new Error("Select a retained connection from openpond import status.");if(r.source.machineId!==await z(e))throw new Error("This connection belongs to another machine. Use explicit Connect setup.");if(!r.accountBaseUrl)throw new Error("The original sign-in destination is unavailable. Use explicit Connect setup.");return r}d(te,"retainedReconnect");function Ke(e,t){if(!t?.available||!t.capabilities.history||t.source!==e.source.source||t.machineId!==e.source.machineId||t.instanceId!==e.source.instanceId||t.root!==e.source.root)throw new Error("The retained source is unavailable or its identity changed. Restore its original location or use explicit Connect setup.")}d(Ke,"assertReconnectSource");async function De(e,t){let o=await te(e,t.id),r=d(n=>({...n,destinations:void 0,requestedSyncRevision:n.requestedSyncRevision??0,completedSyncRevision:n.completedSyncRevision??0}),"scope");if(x(r(o))!==x(r(t)))throw new Error("The connection changed during sign-in. Reconnect again after reviewing its current scope.")}d(De,"assertReconnectUnchanged");import{createInterface as ro}from"node:readline/promises";async function _e(e,t,o,r){let n=u(r,"session");if(!o||!n)throw new Error("Use openpond import branches <connection-id> --session <native-session-id>.");let i=await Ie(e,o,n);if(t==="branches"){console.log(JSON.stringify(i,null,2));return}let c=process.stdin.isTTY&&process.stdout.isTTY&&!y(r.json),s=u(r,"leaf"),a=u(r,"revision");if(!s&&c){i.branches.forEach((w,h)=>console.log(`${h+1}. ${w.title||w.leafId} (${w.messages} messages; ${w.updatedAt||"date unavailable"})`));let l=ro({input:process.stdin,output:process.stdout});try{s=i.branches[Number(await l.question("Choose the branch to sync: "))-1]?.leafId??"",a=i.revision}finally{l.close()}}if(!s||!a)throw new Error("Supply --leaf and --revision from import branches, or choose interactively. No branch was selected.");if(!i.branches.some(l=>l.leafId===s)||a!==i.revision)throw new Error("Branch selection is stale or invalid. Run import branches again.");if(!y(r.yes)&&(!c||!await Y("Sync only this branch and its unambiguous future continuation for this conversation? Other branches stay excluded.",!1)))throw new Error("Branch selection was not approved.");let f=await Se(e,o,n,{leafId:s,revision:a});console.log(JSON.stringify({...f,next:`openpond import resume ${o}`},null,2))}d(_e,"runImporterBranchCommand");async function $t(e,t){let[o="connect",r]=t,n=Me(u(e,"collectorDir")||Re()),i=y(e.json),c=d(I=>console.log(JSON.stringify(I,null,2)),"print"),s=G(e),a=y(e.upload),f=u(e,"selectionFile");if(a&&!["connect","reconnect"].includes(o))throw new Error("Use --upload with import connect or reconnect; import sync is already an explicit upload.");if(f&&!["connect","reconnect","sync"].includes(o))throw new Error("Use --selection-file with connect, reconnect, or sync.");if(f&&o!=="sync"&&!a)throw new Error("Use --upload to confirm the selected initial upload.");if(s&&!a&&o==="connect")throw new Error("Select an initial upload with --upload before enabling continual imports.");if(e.until&&o!=="sync")throw new Error("Use --until with import sync to select a fixed event-time cutoff.");if(s&&!["connect","reconnect","schedule"].includes(o))throw new Error("Use --continual with import connect, reconnect, or schedule.");if(y(e.off)&&o!=="schedule")throw new Error("Use import schedule <connection-id> --off to disable recurring imports.");if(o==="branches"||o==="branch"){await _e(n,o,r,e);return}if(await He(n,o,r,e))return;if(["pause","resume","disconnect"].includes(o)){let I=await N.open(n),U;try{U=I.connections().find(Je=>Je.id===r)}finally{I.close()}if(!U)throw new Error("Select a connection id from openpond import status.");let{sync:A}=await k(U),q=await A.control({id:U.id,expectedRevision:U.revision,action:o});await V(n,{...U,revision:q.revision,state:q.state}),c(q);return}let l=o==="reconnect"?await te(n,r):null;l&&(e={...e,source:l.source.source,sourcePath:l.source.root,project:l.projectId,connection:l.id,team:l.teamId,apiBaseUrl:l.apiBaseUrl,baseUrl:l.accountBaseUrl});let w=u(e,"source");if(w&&!(w in $))throw new Error("Choose a supported native source name.");let h=await z(n),b=await pe({machineId:h,...w&&u(e,"sourcePath")?{locations:{[w]:Me(u(e,"sourcePath"))}}:{}});if(o==="discover"){c(b);return}if(o!=="connect"&&o!=="reconnect")throw new Error("usage: openpond import <connect|reconnect|discover|status|conversations|coverage|sync|schedule|cancel|pause|resume|disconnect|branches|branch|service>");let m=b.filter(I=>I.source===w),p=m.length===1?m[0]:void 0,C=process.stdin.isTTY&&process.stdout.isTTY&&!i;if(l&&Ke(l,p),!p&&C){let I=m.length>1?m:b.filter(A=>A.available);I.forEach((A,q)=>console.log(`${q+1}. ${$[A.source]} ${A.root}${A.capabilities.history?"":` (${A.reason})`}`));let U=Le({input:process.stdin,output:process.stdout});try{p=I[Number(await U.question("Choose a source: "))-1]}finally{U.close()}}if(!p?.capabilities.history)throw new Error(p?.reason??(m.length>1?"Multiple source instances found. Select the exact --source-path or use interactive setup.":"Select --source and optionally --source-path."));let v=u(e,"range")||"week";if(a&&!l&&C&&!e.range){let I=Le({input:process.stdin,output:process.stdout});try{v=(await I.question("Initial history: day, week, or all [default: week]: ")).trim()||"week"}finally{I.close()}}if(!["day","week","all"].includes(v))throw new Error("--range must be day, week or all.");let S=f?null:l?l.since:v==="all"?null:new Date(Date.now()-(v==="day"?1:7)*864e5).toISOString(),R=l?S?`since ${S}`:"all":v==="week"?`last week${e.range?"":" (default)"}`:v==="day"?"last day":"all",j=f?await L(p,await oe(f)):null,B=j?j.sessionKeys:l?l.selectedSessionKeys:a?void 0:[],K=await fe(p,{since:S??void 0,limit:100});i||console.log(`Found ${K.items.length}${K.nextCursor?"+":""} sessions in ${p.root}. Initial history: ${R}.`),i||console.log(a?s?`Continual imports: ${H(s)} local time. Continual learning is unchanged.`:"One-time import. Continual imports default to off; existing schedules are unchanged.":"Connect only. No conversations will be uploaded. Choose conversations with import sync --selection-file when ready.");let D=u(e,"project");if(!y(e.yes)&&(!C||!await Y(`Connect this source to ${D||"your personal Imported conversations Project"}${a?` and upload ${j?`${j.sessionKeys.length} selected conversations`:"the selected history window"}`:" without uploading history"}${s?` and enable continual imports ${H(s)} local time`:""}?`,!0)))throw new Error("Connection was not approved. No history was uploaded.");let ne=l?l.credentialHome??so(io(),".openpond"):ae(),T=await _(ne,()=>ke(p,e)),re=new J(T),se=u(e,"connection")||`sync-${x([T.baseUrl,T.teamId,p.instanceId,D||"default"]).slice(0,40)}`;l&&await De(n,l);let ze=(await re.list()).items.find(I=>I.id===se),E=await re.register({id:se,source:p.source,machineId:h,sourceInstanceId:p.instanceId,sourceLabel:$[p.source],sourceRoot:p.root,destination:D?{kind:"existing",projectId:D}:{kind:"new",name:"Imported conversations"},since:S,keepSyncing:!1,expectedRevision:ze?.revision??0});await V(n,{id:E.id,teamId:T.teamId,apiBaseUrl:T.baseUrl,account:T.account,accountBaseUrl:T.accountBaseUrl,credentialHome:ne,source:p,projectId:E.projectId,revision:E.revision,requestedSyncRevision:E.requestedSyncRevision,completedSyncRevision:E.completedSyncRevision,since:S,selectedSessionKeys:B,keepSyncing:!1,state:E.state}),s&&await M(W(n),E.id,s),a?await P({directory:n,connectionId:E.id,json:i}):i?c({connectionId:E.id,uploaded:!1}):console.log(`Connected ${E.id}. Choose conversations to upload when ready.`)}d($t,"runImportCommand");export{$t as runImportCommand};
|
|
2
|
+
import{A as z,a as ue,b as $,c as pe,d as fe,g as me,h as he,i as L,j as we,k as ge,l as ye,m as ve,n as be,o as H,p as N,q as Ie,r as Se,s as Ce,t as V,u as O,v as Q,w as Ee,x as M,y as xe,z as Re}from"./chunk-OTXGAKFH.js";import{k as Y}from"./chunk-JPUSTFZC.js";import{a as Ne}from"./chunk-RFQD6B44.js";import"./chunk-DWM5G7BU.js";import"./chunk-RBTDSI4L.js";import"./chunk-XRKFTPHD.js";import"./chunk-JFXINDOQ.js";import"./chunk-JEMECEQH.js";import{k as Ue,l as Ae,m as J}from"./chunk-73TW6BKK.js";import"./chunk-27JGS3KB.js";import"./chunk-BT5YNE5U.js";import{d as F,g as $e}from"./chunk-RPM4FDRX.js";import"./chunk-KTIBXRWQ.js";import"./chunk-KP2MYTP5.js";import"./chunk-PNPV2LDE.js";import"./chunk-4G3GTEVS.js";import"./chunk-KU4TPDPH.js";import"./chunk-55YD4UTW.js";import"./chunk-AFYYIJ6K.js";import"./chunk-J256AEEE.js";import"./chunk-UN2LKLGV.js";import"./chunk-2LJCJOJ7.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-4PUOWSDE.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{c as le,f as de}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as u,f as y}from"./chunk-3M53YXEI.js";import{b as ce}from"./chunk-GLUWATL5.js";import"./chunk-JCLTFDVW.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{m as ae,n as x}from"./chunk-RCT3O3HQ.js";import{a as _,f as ie}from"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as g}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";import{createInterface as Le}from"node:readline/promises";import{join as so,resolve as Me}from"node:path";import{homedir as io}from"node:os";import{createHash as Te,generateKeyPairSync as Fe,createPublicKey as Ye,diffieHellman as Ge,createDecipheriv as We}from"node:crypto";import{spawn as Ve}from"node:child_process";var Oe=d(e=>Te("sha256").update(e).digest("hex"),"hash"),Qe=g.object({publicKey:g.string().max(200),iv:g.string().max(100),tag:g.string().max(100),ciphertext:g.string().max(1e4)}).strict();async function X(e,t,o){let r=await fetch(`${e}${t}`,{method:"POST",redirect:"error",signal:AbortSignal.timeout(15e3),headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),n=await r.text();if(n.length>16384)throw new Error("Authorization response exceeded its limit.");if(!r.ok)throw Object.assign(new Error(`Browser sign-in failed (${r.status}).`),{status:r.status});return JSON.parse(n)}d(X,"post");function Xe(e){let t=process.platform==="darwin"?"open":process.platform==="win32"?"rundll32":"xdg-open",o=process.platform==="win32"?["url.dll,FileProtocolHandler",e]:[e],r=Ve(t,o,{stdio:"ignore",detached:!0});r.on("error",()=>{}),r.unref()}d(Xe,"openBrowser");async function ke(e,t){let o=await F(),r=le(t)||o.apiBaseUrl||ce,n=u(t,"baseUrl")||de(o),i=new URL(n),c=new URL(r);for(let h of[i,c])if(h.protocol!=="https:"&&!(h.protocol==="http:"&&["localhost","127.0.0.1"].includes(h.hostname))||h.username||h.password||h.search||h.hash)throw new Error("Sign-in requires a clean HTTPS origin or local development origin.");let s=`import-${Oe([i.origin,e.machineId,e.instanceId].join(":")).slice(0,24)}`,a=Fe("x25519"),f=a.publicKey.export({format:"der",type:"spki"}).toString("base64"),l=g.object({deviceCode:g.string(),userCode:g.string(),expiresAt:g.string().datetime(),intervalSeconds:g.number().min(2).max(10)}).strict().parse(await X(i.origin,"/api/cli/import/device",{publicKey:f,machineId:e.machineId,sourceInstanceId:e.instanceId,sourceLabel:$[e.source],sourceRoot:e.root,...u(t,"team")?{requestedTeamId:u(t,"team")}:{}})),w=`${i.origin}/console/connections/authorize?code=${encodeURIComponent(l.userCode)}`;for(console.log(`OpenPond sign-in code: ${l.userCode}
|
|
3
|
+
${w}`),Xe(w);Date.now()<Date.parse(l.expiresAt);){await new Promise(R=>setTimeout(R,l.intervalSeconds*1e3));let h;try{h=await X(i.origin,"/api/cli/import/token",{deviceCode:l.deviceCode})}catch(R){if(Number(R.status)===429)continue;throw R}let b=g.object({state:g.enum(["pending","approved","denied","consumed"]),envelope:Qe.nullable().optional()}).strict().parse(h);if(b.state==="denied"||b.state==="consumed")throw new Error("Browser sign-in was declined or already consumed. Start the connection again.");if(b.state!=="approved"||!b.envelope)continue;let m=b.envelope,p=Ye({key:Buffer.from(m.publicKey,"base64"),format:"der",type:"spki"});if(p.asymmetricKeyType!=="x25519")throw new Error("Invalid sign-in encryption key.");let C=Te("sha256").update(Ge({privateKey:a.privateKey,publicKey:p})).digest(),v=We("aes-256-gcm",C,Buffer.from(m.iv,"base64"));v.setAAD(Buffer.from(Oe(l.deviceCode))),v.setAuthTag(Buffer.from(m.tag,"base64"));let S=g.object({apiKey:g.string().min(1),teamId:g.string().min(1),expiresAt:g.string().datetime()}).strict().parse(JSON.parse(Buffer.concat([v.update(Buffer.from(m.ciphertext,"base64")),v.final()]).toString("utf8")));if(u(t,"team")&&S.teamId!==u(t,"team"))throw new Error("Browser approved a different workspace.");return await $e({handle:s,apiKey:S.apiKey,baseUrl:i.origin,apiBaseUrl:c.origin,setActive:!1}),await X(i.origin,"/api/cli/import/token",{deviceCode:l.deviceCode,acknowledge:!0}),{apiKey:S.apiKey,teamId:S.teamId,baseUrl:c.origin,account:s,accountBaseUrl:i.origin}}throw new Error("Browser sign-in expired. Start the connection again.")}d(ke,"authorizeImporter");import{homedir as Ze}from"node:os";import{join as eo}from"node:path";import{zstdCompressSync as oo}from"node:zlib";function je(e,t,o){if(t.connectionId!==e.id||!t.boundaryIds.length||new Set(t.boundaryIds).size!==t.boundaryIds.length)throw Object.assign(new Error("Retained source selection differs from its connection."),{status:400});if(o.issues.length)throw Object.assign(new Error("Retained source normalization failed."),{status:400});let r=o.sessions.find(n=>JSON.stringify([e.source.instanceId,n.sessionId,n.branchId])===t.sessionKey);if(!r||t.boundaryIds.some(n=>{let i=r.boundaries.find(s=>s.id===n),c=i?r.events[i.start]?.occurredAt:null;return!i||i.projection!=="turn"||i.terminal==="unknown"||!c||!Number.isFinite(Date.parse(c))||e.since!==null&&Date.parse(c)<Date.parse(e.since)}))throw Object.assign(new Error("Retained source boundaries changed; inspect the connection before resuming."),{status:400});return{...t,contentHash:r.contentHash,operationId:r.contentHash===t.contentHash?t.operationId:`sync-${x([t.operationId,"source-normalization",r.contentHash]).slice(0,48)}`}}d(je,"refreshRetainedAdmission");async function k(e){let t=await _(e.credentialHome??eo(Ze(),".openpond"),()=>F({account:e.account,baseUrl:e.accountBaseUrl})),o=e.account?t.apiKey:Ne(t);if(!o)throw Object.assign(new Error("This source is disconnected. Reconnect it with OpenPond Importer to authorize collection."),{status:401});let r={apiKey:o,baseUrl:e.apiBaseUrl,teamId:e.teamId};return{evidence:new Ae(r),sync:new J(r)}}d(k,"collectorClients");var Z=null;async function ee(e,t,o){let r=AbortSignal.any([AbortSignal.timeout(6e4),...t?[t]:[]]);try{return await o(r)}catch(n){let i=n&&typeof n=="object"&&"status"in n?n.status:void 0;throw Object.assign(new Error(`Conversation import ${e} failed: ${n instanceof Error?n.message:String(n)}`,{cause:n}),typeof i=="number"?{status:i}:{})}}d(ee,"admissionStep");var Be={async publishCoverage(e,t,o){let{sync:r}=await k(e);await r.publishCoverage({id:e.id,expectedRevision:e.revision,manifest:t},AbortSignal.any([AbortSignal.timeout(6e4),...o?[o]:[]]))},async heartbeat(e,t,o){let{sync:r}=await k(e),n=await r.heartbeat({id:e.id,expectedRevision:e.revision,...t},AbortSignal.any([AbortSignal.timeout(6e4),...o?[o]:[]]));return{revision:n.revision,state:n.state,destinations:ge(e,n),requestedSyncRevision:n.requestedSyncRevision,completedSyncRevision:n.completedSyncRevision}},async admit(e,t,o){let{evidence:r,sync:n}=await k(e),i=x([e.id,e.revision,e.apiBaseUrl,e.teamId,e.account,e.credentialHome,e.projectId,e.source.instanceId,t.branchLeafId,t.files]);if(Z?.key!==i){let m=Buffer.from(JSON.stringify(t.files.map(C=>({path:C.path,encoding:"zstd",base64:oo(Buffer.from(C.text)).toString("base64")})))),p=ue({source:e.source.source,files:t.files,acquisition:{machineId:e.source.machineId,sourceInstanceId:e.source.instanceId},...t.branchLeafId?{branchLeafId:t.branchLeafId}:{}});Z={key:i,bytes:m,upload:{hash:ae(m),parts:Math.ceil(m.length/2e5)},nextPart:0,normalized:p}}let c=Z,s=je(e,t,c.normalized),a=c.upload;for(;c.nextPart<a.parts;){let m=c.nextPart,p=Math.min(4,a.parts-m),C=await Promise.allSettled(Array.from({length:p},(R,j)=>{let B=m+j;return ee(`upload part ${B+1}/${a.parts}`,o,K=>r.uploadPart({...a,index:B,base64:c.bytes.subarray(B*2e5,(B+1)*2e5).toString("base64")},K))})),v=C.findIndex(R=>R.status==="rejected");c.nextPart+=v<0?p:v;let S=C[v];if(S?.status==="rejected")throw S.reason}let f={upload:a,source:e.source.source,...t.branchLeafId?{branchLeafId:t.branchLeafId}:{},destination:{kind:"existing",projectId:e.projectId},acquisition:{machineId:e.source.machineId,sourceInstanceId:e.source.instanceId}},l=c.preview??=await ee("preview",o,m=>r.preview(f,m));if(l.issues.length)throw Object.assign(new Error("Source schema was rejected; inspect the connection before resuming."),{status:400});let w=l.sessions.find(m=>m.sessionHash===s.contentHash);if(!w||t.boundaryIds.some(m=>!w.boundaries.some(p=>p.id===m&&p.projection==="turn"&&p.terminal!=="unknown")))throw Object.assign(new Error("Server preview differs from the retained source boundaries."),{status:400});let h={...f,operationId:s.operationId,previewHash:l.previewHash,selection:[{sessionHash:w.sessionHash,boundaryIds:t.boundaryIds}]},b=Ue.parse(await ee("commit",o,m=>n.commit({connectionId:e.id,expectedRevision:e.revision,request:h},m)));if(b.state!=="completed"||b.operationId!==s.operationId||b.requestHash!==x(h)||b.projectId!==e.projectId)throw new Error("Admission did not acknowledge this retained operation.")}};function G(e){if(e.everyMinute!==void 0)throw new Error("Every-minute imports are no longer supported. Use --continual --hourly or a slower schedule.");let t=y(e.continual),o=["daily","weekly","hourly"].filter(a=>y(e[a]));e.cron!==void 0&&o.push("cron");let r=e.at!==void 0||e.on!==void 0;if(!t&&(o.length||r))throw new Error("Add --continual to enable recurring imports. Without it, imports run once.");if(!t)return null;if(o.length>1)throw new Error("Choose one cadence: --daily, --weekly, --hourly, or --cron.");if(e.off!==void 0)throw new Error("Choose --continual or --off, not both.");let n=o[0]??"daily";if(["cron","hourly"].includes(n)){if(r)throw new Error("--at and --on are for daily/weekly imports; use a cron expression for other times.");return n==="cron"?be({frequency:"cron",expression:u(e,"cron")}):{frequency:"hourly"}}if(n!=="weekly"&&e.on!==void 0)throw new Error("--on selects a weekday and requires --weekly.");let i=ve(e.at===void 0?"00:00":u(e,"at"));if(n==="daily")return{frequency:"daily",time:i};let c=e.on===void 0?"mon":u(e,"on").toLowerCase(),s=ye.findIndex(a=>a===c);if(s<0)throw new Error("Use --on sun|mon|tue|wed|thu|fri|sat (default: mon).");return{frequency:"weekly",time:i,day:s}}d(G,"importSchedule");import{setTimeout as to}from"node:timers/promises";async function Pe(e){console.log("Importing saved conversations. Ctrl+C cancels this run; queued work is retained.");let t=0;try{for(;!e.signal.aborted;){let n=(await O(e.directory)).connections.filter(s=>!e.connectionId||s.id===e.connectionId).find(s=>s.run?.state==="running"),i=n?.run,c=n&&i?`${n.source}: ${i.phase} \xB7 ${i.processed}/${i.discovered} conversations checked \xB7 ${i.uploaded} turns uploaded \xB7 ${n.queued} queued`:"Starting import\u2026";process.stdout.clearLine(0),process.stdout.cursorTo(0),process.stdout.write(`${["|","/","-","\\"][t++%4]} ${c}`);try{await to(500,void 0,{signal:e.signal})}catch{if(!e.signal.aborted)throw new Error("Import progress interrupted.")}}}finally{process.stdout.clearLine(0),process.stdout.cursorTo(0)}}d(Pe,"monitorImport");async function P(e){let t=new AbortController,o=d(()=>t.abort(new Error("Import cancelled.")),"stop");process.once("SIGINT",o),process.once("SIGTERM",o);let r=new AbortController,n=!!process.stdin.isTTY&&!!process.stdout.isTTY&&!e.json,i;try{let s=Ce({directory:e.directory,signal:t.signal,until:e.until,...e.connectionId?{connectionIds:[e.connectionId]}:{},...e.retainedStart?{}:{trigger:e.scheduled?"scheduled":"manual"},transport:Be}).finally(()=>r.abort());await Promise.all([s,n?Pe({directory:e.directory,connectionId:e.connectionId,signal:r.signal}):Promise.resolve()]),i=await O(e.directory)}finally{r.abort(),process.off("SIGINT",o),process.off("SIGTERM",o)}let c=i.connections.filter(s=>!e.connectionId||s.id===e.connectionId);if(e.json)console.log(JSON.stringify(i,null,2));else for(let s of c){let a=s.run;a&&console.log(`${s.source}: ${a.state}. ${a.processed} conversations checked, ${a.uploaded} turns uploaded, ${s.queued} queued.${a.error?` ${a.error}`:""}`),console.log(s.schedule?`Continual imports: ${H(s.schedule)} (${i.timezone}). Next: ${s.nextRunAt??"source paused"}.`:"Automatic sync is off. Run openpond import sync to import again.")}return t.signal.aborted?process.exitCode=130:c.some(s=>s.run?.state==="failed")&&(process.exitCode=1),i}d(P,"runImportJob");import{readFile as no}from"node:fs/promises";async function oe(e){let t=await no(e);if(t.byteLength>1024*1024)throw new Error("Conversation selection exceeds 1 MiB.");return me.parse(JSON.parse(t.toString("utf8")))}d(oe,"readUploadSelection");async function qe(e,t){let o=await L(e.source,await oe(t));return{...e,since:null,selectedSessionKeys:[...o.sessionKeys].sort()}}d(qe,"applyUploadSelection");function W(e){return{directory:e,executable:process.execPath,args:[...process.execArgv,process.argv[1]],environment:{...process.env.OPENPOND_HOME?{OPENPOND_HOME:process.env.OPENPOND_HOME}:{},...process.env.ELECTRON_RUN_AS_NODE==="1"?{ELECTRON_RUN_AS_NODE:"1"}:{}}}}d(W,"collectorSetup");async function He(e,t,o,r){let n=d(c=>console.log(JSON.stringify(c,null,2)),"print"),i=y(r.json);if(t==="status")return n(await O(e)),!0;if(t==="conversations"){if(!o)throw new Error("Use openpond import conversations <connection-id> [--query <text>] [--range day|week|all] [--offset <number>].");let c=await N.open(e);try{let s=c.connections().find(a=>a.id===o);if(!s)throw new Error("Select a retained connection from import status.");n({sourceInstanceId:s.source.instanceId,...we(s,await he(s.source),{query:u(r,"query"),range:u(r,"range")||"all",offset:Number(u(r,"offset")||"0")})})}finally{c.close()}return!0}if(t==="coverage"){if(!o)throw new Error("Use openpond import coverage <connection-id>.");let c=await N.open(e);try{if(!c.connections().some(a=>a.id===o))throw new Error("Select a retained connection from import status.");let s=c.coverage.manifest(o);if(!s)throw new Error("This connection has no retained source coverage. Run import sync first.");n({manifest:s,summary:c.coverage.summary(o)})}finally{c.close()}return!0}if(t==="cancel")return n(await Q(e,"stop")),!0;if(t==="schedule"){if(!o)throw new Error("Use openpond import schedule <connection-id> --continual [--daily|--weekly|--hourly|--cron <expression>] or --off.");let c=G(r),s=y(r.off);if(!c&&!s)throw new Error("Choose --continual [--daily|--weekly|--hourly|--cron <expression>] or --off.");return n(await M(W(e),o,c)),!0}if(t==="sync"){let c=await O(e);if(o&&!c.connections.some(a=>a.id===o&&a.state==="active"))throw new Error("Select an active connection from import status; resume or reconnect it first.");if(!c.connections.some(a=>a.state==="active"))throw new Error("No active sources. Connect or resume a source first.");let s=u(r,"selectionFile");if(s){if(!o)throw new Error("Select a connection ID when uploading chosen conversations.");if(c.running)throw new Error("Wait for the running import or cancel it before selecting more conversations.");let a=await N.open(e);try{let f=a.connections().find(w=>w.id===o);if(!f)throw new Error("The selected connection is unavailable.");let l=await qe(f,s);if(f.since!==null){let{sync:w}=await k(f),h=await w.register({id:f.id,source:f.source.source,machineId:f.source.machineId,sourceInstanceId:f.source.instanceId,sourceLabel:$[f.source.source],sourceRoot:f.source.root,destination:{kind:"existing",projectId:f.projectId},since:null,keepSyncing:f.keepSyncing,expectedRevision:f.revision});l={...l,revision:h.revision,state:h.state,requestedSyncRevision:h.requestedSyncRevision,completedSyncRevision:h.completedSyncRevision}}a.put(l)}finally{a.close()}}else if(!c.connections.some(a=>a.state==="active"&&(!o||a.id===o)&&a.selectedConversations!==0))throw new Error("Choose conversations first with --selection-file <path>.");return await P({directory:e,connectionId:o,json:i,until:u(r,"until")||void 0}),!0}if(t!=="service")return!1;if(o==="status")n(await O(e));else if(o==="stop")n(await Q(e,"stop"));else if(o==="uninstall")n(await xe(e));else if(o==="install")n(await Ee(W(e)));else if(o==="start")await P({directory:e,json:i});else if(o==="run")await P({directory:e,json:i,scheduled:y(r.scheduled),retainedStart:!y(r.scheduled)});else throw new Error("usage: openpond import service <install|start|stop|status|run|uninstall>");return!0}d(He,"runImporterControl");async function te(e,t){let o=await N.open(e),r;try{r=o.connections().find(n=>n.id===t)}finally{o.close()}if(!r)throw new Error("Select a retained connection from openpond import status.");if(r.source.machineId!==await z(e))throw new Error("This connection belongs to another machine. Use explicit Connect setup.");if(!r.accountBaseUrl)throw new Error("The original sign-in destination is unavailable. Use explicit Connect setup.");return r}d(te,"retainedReconnect");function Ke(e,t){if(!t?.available||!t.capabilities.history||t.source!==e.source.source||t.machineId!==e.source.machineId||t.instanceId!==e.source.instanceId||t.root!==e.source.root)throw new Error("The retained source is unavailable or its identity changed. Restore its original location or use explicit Connect setup.")}d(Ke,"assertReconnectSource");async function De(e,t){let o=await te(e,t.id),r=d(n=>({...n,destinations:void 0,requestedSyncRevision:n.requestedSyncRevision??0,completedSyncRevision:n.completedSyncRevision??0}),"scope");if(x(r(o))!==x(r(t)))throw new Error("The connection changed during sign-in. Reconnect again after reviewing its current scope.")}d(De,"assertReconnectUnchanged");import{createInterface as ro}from"node:readline/promises";async function _e(e,t,o,r){let n=u(r,"session");if(!o||!n)throw new Error("Use openpond import branches <connection-id> --session <native-session-id>.");let i=await Ie(e,o,n);if(t==="branches"){console.log(JSON.stringify(i,null,2));return}let c=process.stdin.isTTY&&process.stdout.isTTY&&!y(r.json),s=u(r,"leaf"),a=u(r,"revision");if(!s&&c){i.branches.forEach((w,h)=>console.log(`${h+1}. ${w.title||w.leafId} (${w.messages} messages; ${w.updatedAt||"date unavailable"})`));let l=ro({input:process.stdin,output:process.stdout});try{s=i.branches[Number(await l.question("Choose the branch to sync: "))-1]?.leafId??"",a=i.revision}finally{l.close()}}if(!s||!a)throw new Error("Supply --leaf and --revision from import branches, or choose interactively. No branch was selected.");if(!i.branches.some(l=>l.leafId===s)||a!==i.revision)throw new Error("Branch selection is stale or invalid. Run import branches again.");if(!y(r.yes)&&(!c||!await Y("Sync only this branch and its unambiguous future continuation for this conversation? Other branches stay excluded.",!1)))throw new Error("Branch selection was not approved.");let f=await Se(e,o,n,{leafId:s,revision:a});console.log(JSON.stringify({...f,next:`openpond import resume ${o}`},null,2))}d(_e,"runImporterBranchCommand");async function $t(e,t){let[o="connect",r]=t,n=Me(u(e,"collectorDir")||Re()),i=y(e.json),c=d(I=>console.log(JSON.stringify(I,null,2)),"print"),s=G(e),a=y(e.upload),f=u(e,"selectionFile");if(a&&!["connect","reconnect"].includes(o))throw new Error("Use --upload with import connect or reconnect; import sync is already an explicit upload.");if(f&&!["connect","reconnect","sync"].includes(o))throw new Error("Use --selection-file with connect, reconnect, or sync.");if(f&&o!=="sync"&&!a)throw new Error("Use --upload to confirm the selected initial upload.");if(s&&!a&&o==="connect")throw new Error("Select an initial upload with --upload before enabling continual imports.");if(e.until&&o!=="sync")throw new Error("Use --until with import sync to select a fixed event-time cutoff.");if(s&&!["connect","reconnect","schedule"].includes(o))throw new Error("Use --continual with import connect, reconnect, or schedule.");if(y(e.off)&&o!=="schedule")throw new Error("Use import schedule <connection-id> --off to disable recurring imports.");if(o==="branches"||o==="branch"){await _e(n,o,r,e);return}if(await He(n,o,r,e))return;if(["pause","resume","disconnect"].includes(o)){let I=await N.open(n),U;try{U=I.connections().find(Je=>Je.id===r)}finally{I.close()}if(!U)throw new Error("Select a connection id from openpond import status.");let{sync:A}=await k(U),q=await A.control({id:U.id,expectedRevision:U.revision,action:o});await V(n,{...U,revision:q.revision,state:q.state}),c(q);return}let l=o==="reconnect"?await te(n,r):null;l&&(e={...e,source:l.source.source,sourcePath:l.source.root,project:l.projectId,connection:l.id,team:l.teamId,apiBaseUrl:l.apiBaseUrl,baseUrl:l.accountBaseUrl});let w=u(e,"source");if(w&&!(w in $))throw new Error("Choose a supported native source name.");let h=await z(n),b=await pe({machineId:h,...w&&u(e,"sourcePath")?{locations:{[w]:Me(u(e,"sourcePath"))}}:{}});if(o==="discover"){c(b);return}if(o!=="connect"&&o!=="reconnect")throw new Error("usage: openpond import <connect|reconnect|discover|status|conversations|coverage|sync|schedule|cancel|pause|resume|disconnect|branches|branch|service>");let m=b.filter(I=>I.source===w),p=m.length===1?m[0]:void 0,C=process.stdin.isTTY&&process.stdout.isTTY&&!i;if(l&&Ke(l,p),!p&&C){let I=m.length>1?m:b.filter(A=>A.available);I.forEach((A,q)=>console.log(`${q+1}. ${$[A.source]} ${A.root}${A.capabilities.history?"":` (${A.reason})`}`));let U=Le({input:process.stdin,output:process.stdout});try{p=I[Number(await U.question("Choose a source: "))-1]}finally{U.close()}}if(!p?.capabilities.history)throw new Error(p?.reason??(m.length>1?"Multiple source instances found. Select the exact --source-path or use interactive setup.":"Select --source and optionally --source-path."));let v=u(e,"range")||"week";if(a&&!l&&C&&!e.range){let I=Le({input:process.stdin,output:process.stdout});try{v=(await I.question("Initial history: day, week, or all [default: week]: ")).trim()||"week"}finally{I.close()}}if(!["day","week","all"].includes(v))throw new Error("--range must be day, week or all.");let S=f?null:l?l.since:v==="all"?null:new Date(Date.now()-(v==="day"?1:7)*864e5).toISOString(),R=l?S?`since ${S}`:"all":v==="week"?`last week${e.range?"":" (default)"}`:v==="day"?"last day":"all",j=f?await L(p,await oe(f)):null,B=j?j.sessionKeys:l?l.selectedSessionKeys:a?void 0:[],K=await fe(p,{since:S??void 0,limit:100});i||console.log(`Found ${K.items.length}${K.nextCursor?"+":""} sessions in ${p.root}. Initial history: ${R}.`),i||console.log(a?s?`Continual imports: ${H(s)} local time. Continual learning is unchanged.`:"One-time import. Continual imports default to off; existing schedules are unchanged.":"Connect only. No conversations will be uploaded. Choose conversations with import sync --selection-file when ready.");let D=u(e,"project");if(!y(e.yes)&&(!C||!await Y(`Connect this source to ${D||"your personal Imported conversations Project"}${a?` and upload ${j?`${j.sessionKeys.length} selected conversations`:"the selected history window"}`:" without uploading history"}${s?` and enable continual imports ${H(s)} local time`:""}?`,!0)))throw new Error("Connection was not approved. No history was uploaded.");let ne=l?l.credentialHome??so(io(),".openpond"):ie(),T=await _(ne,()=>ke(p,e)),re=new J(T),se=u(e,"connection")||`sync-${x([T.baseUrl,T.teamId,p.instanceId,D||"default"]).slice(0,40)}`;l&&await De(n,l);let ze=(await re.list()).items.find(I=>I.id===se),E=await re.register({id:se,source:p.source,machineId:h,sourceInstanceId:p.instanceId,sourceLabel:$[p.source],sourceRoot:p.root,destination:D?{kind:"existing",projectId:D}:{kind:"new",name:"Imported conversations"},since:S,keepSyncing:!1,expectedRevision:ze?.revision??0});await V(n,{id:E.id,teamId:T.teamId,apiBaseUrl:T.baseUrl,account:T.account,accountBaseUrl:T.accountBaseUrl,credentialHome:ne,source:p,projectId:E.projectId,revision:E.revision,requestedSyncRevision:E.requestedSyncRevision,completedSyncRevision:E.completedSyncRevision,since:S,selectedSessionKeys:B,keepSyncing:!1,state:E.state}),s&&await M(W(n),E.id,s),a?await P({directory:n,connectionId:E.id,json:i}):i?c({connectionId:E.id,uploaded:!1}):console.log(`Connected ${E.id}. Choose conversations to upload when ready.`)}d($t,"runImportCommand");export{$t as runImportCommand};
|