openpond 0.2.67 → 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 +668 -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-NASAJV5E.js → acp-2OIXATRY.js} +1 -1
- package/dist/chunks/{acp-agent-C3CRF6DT.js → acp-agent-PAGX2B47.js} +1 -1
- package/dist/chunks/actions-command-2VE6YI4W.js +2 -0
- package/dist/chunks/{app-layer-XIEZ6ALX.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-XEU4J4GJ.js → chunk-2TGHZXJE.js} +2 -2
- package/dist/chunks/{chunk-AXO6OHJB.js → chunk-3A2Y7UK3.js} +1 -1
- package/dist/chunks/chunk-3Z4VM2LF.js +4 -0
- package/dist/chunks/{chunk-V3T2OJBZ.js → chunk-4BUM6JEC.js} +2 -2
- package/dist/chunks/chunk-4G3GTEVS.js +23 -0
- package/dist/chunks/{chunk-43QYVOYA.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-4EZI4KCT.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-5TPYBXWM.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-ADOCQA4D.js → chunk-7PKDJHT6.js} +1 -1
- package/dist/chunks/chunk-7RJOCGQ6.js +2 -0
- package/dist/chunks/{chunk-YR5URT73.js → chunk-7RSQOC5M.js} +3 -3
- package/dist/chunks/{chunk-FVK4W27G.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-U3MVH2YT.js → chunk-APKXXAUF.js} +1 -1
- 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-RWRKUO5D.js → chunk-B66QCXH2.js} +1 -1
- package/dist/chunks/{chunk-SODAOLAP.js → chunk-BHKXPWFB.js} +1 -1
- package/dist/chunks/chunk-BU6MW65V.js +10 -0
- package/dist/chunks/{chunk-P6NQYXN6.js → chunk-CCZ276IA.js} +1 -1
- package/dist/chunks/{chunk-YONDU5TN.js → chunk-CIZI6Z7D.js} +1 -1
- package/dist/chunks/{chunk-ATFV2NA4.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-CSU7RDA5.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-XDFXKRTI.js → chunk-DWF3FCY4.js} +1 -1
- package/dist/chunks/{chunk-W3ZILZUL.js → chunk-DWM5G7BU.js} +1 -1
- package/dist/chunks/chunk-DXJC3QW7.js +2 -0
- package/dist/chunks/{chunk-IDILAYCW.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-CX7HKSQ4.js → chunk-EGP6DF34.js} +2 -2
- package/dist/chunks/{chunk-D5OFN47Z.js → chunk-ESYPMD7Q.js} +1 -1
- package/dist/chunks/{chunk-PWKJ5KLZ.js → chunk-EXYSD45J.js} +1 -1
- package/dist/chunks/{chunk-R6VI7MX5.js → chunk-EYTTZ5H4.js} +1 -1
- package/dist/chunks/chunk-FKUWCJ73.js +161 -0
- package/dist/chunks/{chunk-WD6ANOLL.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-CWAQOFLP.js → chunk-GYYJ47GX.js} +1 -1
- package/dist/chunks/chunk-HG2YFMVU.js +4 -0
- package/dist/chunks/{chunk-YQBL5P6R.js → chunk-HKVFU3B3.js} +1 -1
- package/dist/chunks/{chunk-VEXJV5H5.js → chunk-IIT66347.js} +4 -4
- package/dist/chunks/{chunk-B2K5WQZE.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-YMCF5GR2.js → chunk-JQOVC35K.js} +1 -1
- package/dist/chunks/{chunk-6LFTQBXP.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-WDKZMXIU.js → chunk-K7KBFM2T.js} +1 -1
- package/dist/chunks/{chunk-UBTP3QWI.js → chunk-KCLMA2IH.js} +1 -1
- package/dist/chunks/chunk-KDER7R45.js +2 -0
- package/dist/chunks/{chunk-IXZ5ZGIL.js → chunk-KOC3YJEU.js} +2 -2
- package/dist/chunks/{chunk-R6MMWEH4.js → chunk-KP2MYTP5.js} +1 -1
- package/dist/chunks/{chunk-TV2LE2BD.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-TSQ2I6XV.js → chunk-M4A7G4S5.js} +2 -2
- package/dist/chunks/{chunk-MX7KV5DA.js → chunk-M4ZHFDRJ.js} +1 -1
- package/dist/chunks/{chunk-26ID6A5C.js → chunk-MEJLWNRS.js} +1 -1
- package/dist/chunks/{chunk-XT5WUQGT.js → chunk-MIFVX5PK.js} +1 -1
- package/dist/chunks/{chunk-4VZJQRQI.js → chunk-MOXIGLN2.js} +1 -1
- package/dist/chunks/{chunk-UKSSFB4Q.js → chunk-N5EAVX4G.js} +1 -1
- package/dist/chunks/{chunk-4B7EGNYX.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-SD2XDZQW.js → chunk-P4QM63L3.js} +1 -1
- package/dist/chunks/chunk-PACLKDTN.js +2 -0
- package/dist/chunks/{chunk-VPAEFG7X.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-UNE52L3Y.js → chunk-PNPV2LDE.js} +1 -1
- package/dist/chunks/{chunk-2RSGVLZT.js → chunk-PSY6IRJE.js} +8 -8
- package/dist/chunks/{chunk-SVNEPXU3.js → chunk-Q73RKX7I.js} +1 -1
- package/dist/chunks/{chunk-IF5A3XWP.js → chunk-Q7FBVLLB.js} +1 -1
- package/dist/chunks/{chunk-V5AOM5MZ.js → chunk-Q7P34B2O.js} +1 -1
- package/dist/chunks/{chunk-375PADDM.js → chunk-QLGP2OAQ.js} +1 -1
- package/dist/chunks/{chunk-QQLS5FB7.js → chunk-QUNQM2E3.js} +1 -1
- package/dist/chunks/chunk-R2FYCJL6.js +2 -0
- package/dist/chunks/{chunk-6HQUIKC5.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-K3LS5SK7.js → chunk-SDHG6CKU.js} +1 -1
- package/dist/chunks/{chunk-XKZ4PFMQ.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-N54CPLVD.js → chunk-UANH7U3Y.js} +1 -1
- package/dist/chunks/{chunk-BUZ7CBJC.js → chunk-UGFSAG4U.js} +1 -1
- package/dist/chunks/chunk-ULTV6INR.js +2 -0
- package/dist/chunks/{chunk-V3ILZQER.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-H2XG5N7D.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-RS526BG7.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-YKTJPCYZ.js → chunk-XQAUHXL4.js} +4 -4
- package/dist/chunks/{chunk-ZVMQLIRA.js → chunk-XT4CSKHM.js} +1 -1
- package/dist/chunks/{chunk-KQD36SBJ.js → chunk-XY7HFXLH.js} +1 -1
- package/dist/chunks/{chunk-UXO33ST5.js → chunk-XYZV3FKD.js} +1 -1
- package/dist/chunks/{chunk-GC6RJBRZ.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-QFL2VQKX.js → chunk-Z33RVGP6.js} +1 -1
- package/dist/chunks/{chunk-OY4B7Y3T.js → chunk-ZDEIVUUI.js} +1 -1
- package/dist/chunks/{chunk-XGJG2ZKE.js → chunk-ZIQJDTQB.js} +1 -1
- package/dist/chunks/{chunk-IR2Y2VQY.js → chunk-ZYLLPRPU.js} +1 -1
- package/dist/chunks/cli-R7TAP6Z2.js +2 -0
- package/dist/chunks/{command-NWOZXU57.js → command-LNOVZQSK.js} +3 -3
- package/dist/chunks/{configuration-command-ZEIBQKB3.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-66Y46ZPM.js → connected-starting-assets-KWOFEIE4.js} +1 -1
- package/dist/chunks/{connection-GDWPMHPC.js → connection-VMBXW5PD.js} +1 -1
- package/dist/chunks/{continual-TNPTWTKK.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-O53DTZGN.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-OBAKUJPM.js → import-YHYKZ6JN.js} +2 -2
- package/dist/chunks/{learning-CRR6NRPN.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-HP4DELCP.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-3WZJ65CT.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-XP4DEGR3.js → runtime-Q7JUJO4D.js} +2 -2
- package/dist/chunks/sandbox-command-HVA5FJU4.js +2 -0
- package/dist/chunks/{sandbox-template-YFMHEMUQ.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-GQPWOPYA.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-VVRQO2JK.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-2XI36AET.js → store-create-improve-UTCLBXF2.js} +1 -1
- package/dist/chunks/{store-datasets-UFY422NG.js → store-datasets-4AQOVAQY.js} +1 -1
- package/dist/chunks/store-evaluation-results-PK2P3IMH.js +7 -0
- package/dist/chunks/{store-harness-workspaces-SGUEYDO2.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-BFOT4QVT.js → store-learning-SIUQIY5C.js} +1 -1
- package/dist/chunks/{store-learning-credentials-DYTMWQTC.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-NJFWSYSA.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-MZAYONCK.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-3BREANOX.js → store-task-inbox-L6IQTY26.js} +1 -1
- package/dist/chunks/{store-task-inventory-5HRZCDUT.js → store-task-inventory-QWS2C656.js} +1 -1
- package/dist/chunks/store-taskset-drafts-FRFL6ITK.js +9 -0
- package/dist/chunks/{store-training-S3FXWLT6.js → store-training-FYXZU2FE.js} +1 -1
- package/dist/chunks/{store-training-jobs-2LCXPA7G.js → store-training-jobs-3N3VKPIY.js} +1 -1
- package/dist/chunks/{store-training-models-7AMKS7ZW.js → store-training-models-VOFVGPZR.js} +1 -1
- package/dist/chunks/{taskset-PLKWRT4X.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-VQXUA7U4.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-decision-7JALOU6O.js +2 -0
- package/dist/chunks/training-hosted-engram-SXO75MFG.js +2 -0
- package/dist/chunks/{training-hosted-learning-WQ2IP5FP.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-serving-report-BAEABGJH.js +2 -0
- package/dist/chunks/training-hosted-steering-T556BUBG.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-BvskhHE9.js → AppDialog-CxjDHVk9.js} +1 -1
- package/dist/web/assets/AppTerminalPanel-CKJIVpKa.js +2 -0
- package/dist/web/assets/{AppToastContext-D2788RqX.js → AppToastContext-EpiT1dHs.js} +1 -1
- package/dist/web/assets/AppsView-BsMyPX_3.js +1 -0
- package/dist/web/assets/{AttachmentTypeIcon-DVluUHuc.js → AttachmentTypeIcon-BXvZy5gB.js} +1 -1
- package/dist/web/assets/BrowserSidebar-BIIV4aq4.js +1 -0
- package/dist/web/assets/{CartesianChart-DdBZ69lI.js → CartesianChart-brqLBqnF.js} +1 -1
- package/dist/web/assets/ChatTimelineEntry-CwZbn16X.js +8 -0
- package/dist/web/assets/{CollaborationTabs-ba6WupeJ.js → CollaborationTabs-BU4uc4tZ.js} +1 -1
- package/dist/web/assets/{CommandMenu-D7wTaEgl.js → CommandMenu-DkWpXR55.js} +1 -1
- package/dist/web/assets/CommunityView-CsSxJZGn.js +1 -0
- package/dist/web/assets/{ComposerAttachments-aO90qXYz.js → ComposerAttachments-BdJGCYzI.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-BPUJBSyS.js → ComposerCreateImproveStrip-CWy0j1vv.js} +1 -1
- package/dist/web/assets/{ConversationImportsSettings-Bo836wKJ.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-C6wIp6uX.js → FilePagePreview-BRhhz99q.js} +2 -2
- package/dist/web/assets/{GetStartedView-CxMv8q-h.js → GetStartedView-CLVD-qEi.js} +1 -1
- package/dist/web/assets/{GettingStartedDialog-CEb0cS-o.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-CCuUkYT8.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-CFROlATQ.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-BOWkynGB.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-MAJWS4mL.js → NativeSkillSidebar-Jzx1BeKV.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-MQiUBVx3.js → NewProjectDialog-DcnGzEd9.js} +1 -1
- package/dist/web/assets/{OutputsPage-DpF-aRTu.js → OutputsPage-Cmk15Vt_.js} +1 -1
- package/dist/web/assets/{PageChrome-8gH2hyDb.js → PageChrome-Cz_fCqtn.js} +1 -1
- package/dist/web/assets/{ProjectsPage-BQ98oGyu.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-CGCqZz_H.js → ScheduledWorkPage-CAkSwM0T.js} +1 -1
- package/dist/web/assets/{SettingsView-CqpMFLxy.js → SettingsView-DvQXGw3_.js} +3 -3
- package/dist/web/assets/{TasksetDraftEditorPrimitives-DJvIvzBb.js → TasksetDraftEditorPrimitives-JuU1k8vr.js} +1 -1
- package/dist/web/assets/TeamChatView-DmHjr8W9.js +1 -0
- package/dist/web/assets/{TerminalOverlay-D--M876l.js → TerminalOverlay-DlaM9d8F.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-DDUoHQHU.js → TrainingCreationPanel-ClpylNsr.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-CwLXn3Z7.js → TrainingDraftPanel-6tH2xSDj.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CGwPregx.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-D-ctFM4d.js → WorkspaceFileLocation-C5s_njZb.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-CQ28j3R7.js → WorkspaceGitDialogs-DjPZ6KIh.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BrZs6-EW.js → WorkspaceMonacoEditor-CC4sfOiU.js} +3 -3
- package/dist/web/assets/{WorkspacePdfPreview-CU6PSjjN.js → WorkspacePdfPreview-vszQqFa4.js} +2 -2
- package/dist/web/assets/{WorkspacePresentationPreview-IjXVXpIy.js → WorkspacePresentationPreview-DQTvhaRD.js} +1 -1
- package/dist/web/assets/api-client-DJRVOFzS.js +1 -0
- package/dist/web/assets/{app-models-CKXrDTEU.js → app-models-BUdzQbXo.js} +1 -1
- package/dist/web/assets/bot-Doyx3T4j.js +1 -0
- package/dist/web/assets/{browser-sidebar-links-D9v2cyJa.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-TLSP5JKG-BrrVo5rJ.js → chunk-3BYFS4RO-ztZjcMmt.js} +1 -1
- 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-CzpTARDY.js → chunk-H3JZ3P5T-DolwEJXo.js} +2 -2
- 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-DUWsS4X0.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-SclUkqPt.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-X3mQtOeh.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-LXNhSUEL.js → index-B6XX_0h3.js} +2 -2
- package/dist/web/assets/info-C8b_tafZ.js +1 -0
- package/dist/web/assets/{intake-contracts-wCkD2ErR.js → intake-contracts-B8JZKYwb.js} +1 -1
- package/dist/web/assets/{jsonMode-BoKiIdHd.js → jsonMode-BCKKQmmV.js} +1 -1
- package/dist/web/assets/loader-circle-y-SSPwpk.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-CO2mzpy1.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-wacA5FjV.js → monaco.contribution-B9q6qbbo.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CVe3mWSY.js → monaco.contribution-BITdsRbn.js} +2 -2
- package/dist/web/assets/{monaco.contribution-hrusiaZi.js → monaco.contribution-BqA-XZ44.js} +2 -2
- package/dist/web/assets/{monaco.contribution-C7CAQIKF.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-Ct3M2mVw.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-D-zB6X4L.js → ponder-desktop-Ca-9KggQ.js} +1 -1
- package/dist/web/assets/presentation-0bzvu6_u.js +1 -0
- package/dist/web/assets/{profile-ref-CCxrOCio.js → profile-ref-D8lxL7dW.js} +1 -1
- package/dist/web/assets/{python-C0-pUUAU.js → python-B9hOnkOI.js} +1 -1
- package/dist/web/assets/refresh-cw-D61-Ozk3.js +1 -0
- package/dist/web/assets/{requests-DjSt-duM.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-Gk3RKrY-.js → submit-issue-command-HfKzyxg5.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-BnYUBgZB.js → toggleHighContrast-ClsXu39R.js} +1 -1
- package/dist/web/assets/training-DWfghwfZ.js +1 -0
- package/dist/web/assets/{training-model-data-CxR3xpmK.js → training-model-data-CIysl8wH.js} +4 -4
- package/dist/web/assets/{tsMode-BVNyOY8h.js → tsMode-nbmaMc-D.js} +1 -1
- package/dist/web/assets/upload-C6ug8RD-.js +1 -0
- package/dist/web/assets/{useAccountSettings-4_XfwJQi.js → useAccountSettings-Dr9h4Qz_.js} +1 -1
- package/dist/web/assets/{useAgentInventory-CVuamyT3.js → useAgentInventory-ByCk2JAv.js} +1 -1
- package/dist/web/assets/useChatContextSelection-C0eMm2g6.js +1 -0
- package/dist/web/assets/{useLocalAgentSchedules-CmwN4ohy.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-CjtQ2aBD.js → workers-DKvM2NdM.js} +1 -1
- package/dist/web/assets/x-Jx2jlP9u.js +1 -0
- package/dist/web/assets/{yaml-N1KUjBZ8.js → yaml-C02vq4ar.js} +1 -1
- package/dist/web/index.html +1 -1
- package/docs/command-reference.md +93 -3
- package/package.json +1 -1
- package/dist/chunks/actions-command-BYPLSGZL.js +0 -2
- package/dist/chunks/app-server-evaluations-5YZUFXQ2.js +0 -2
- package/dist/chunks/app-server-harness-services-N5F5QVZI.js +0 -2
- package/dist/chunks/app-server-runtime-HJ2N57DL.js +0 -2
- package/dist/chunks/apps-WJTW64NW.js +0 -2
- package/dist/chunks/chunk-263WS3TB.js +0 -2
- package/dist/chunks/chunk-2UZHLO2V.js +0 -23
- package/dist/chunks/chunk-2W22IXHB.js +0 -2
- package/dist/chunks/chunk-46RMTR2Z.js +0 -2
- package/dist/chunks/chunk-4JJ4RYIB.js +0 -6
- package/dist/chunks/chunk-4NN5OLKW.js +0 -161
- package/dist/chunks/chunk-543QHE3D.js +0 -2
- package/dist/chunks/chunk-5QOFUGYQ.js +0 -2
- package/dist/chunks/chunk-5ZNE43XC.js +0 -10
- package/dist/chunks/chunk-6IS5OLI5.js +0 -2
- package/dist/chunks/chunk-7HAGSE7L.js +0 -2
- package/dist/chunks/chunk-AXYAEWWA.js +0 -2
- package/dist/chunks/chunk-B7XJBP4U.js +0 -2
- package/dist/chunks/chunk-BBIA24GD.js +0 -10
- package/dist/chunks/chunk-CJDGLPNX.js +0 -4
- package/dist/chunks/chunk-FCXDPVGJ.js +0 -3
- package/dist/chunks/chunk-FE2ENE3U.js +0 -2
- package/dist/chunks/chunk-H6EUFJJK.js +0 -2
- package/dist/chunks/chunk-IOSBGCRT.js +0 -2
- package/dist/chunks/chunk-K6DB5QWG.js +0 -2
- package/dist/chunks/chunk-LI56PPCN.js +0 -2
- package/dist/chunks/chunk-OE2OOWEQ.js +0 -2
- package/dist/chunks/chunk-OYIFH2OM.js +0 -2
- package/dist/chunks/chunk-QOUOU7FE.js +0 -22
- package/dist/chunks/chunk-R5GRESW3.js +0 -2
- package/dist/chunks/chunk-TERKCK4I.js +0 -2
- package/dist/chunks/chunk-TS5HNRZB.js +0 -2
- package/dist/chunks/chunk-V3KEG6MI.js +0 -2
- package/dist/chunks/chunk-WGISITX6.js +0 -4
- package/dist/chunks/chunk-XD4ZIQZ2.js +0 -2
- package/dist/chunks/chunk-XHU4BZQY.js +0 -13
- package/dist/chunks/chunk-ZWEY66RT.js +0 -2
- package/dist/chunks/cli-HV32F7HD.js +0 -2
- package/dist/chunks/connected-app-executor-DFHWNMRM.js +0 -2
- package/dist/chunks/connected-evidence-WOM6N5HO.js +0 -2
- package/dist/chunks/core-commands-GWRHH53F.js +0 -2
- package/dist/chunks/dataset-preparation-authoring-WJ2XEUO7.js +0 -4
- package/dist/chunks/datasets-XIMF54QN.js +0 -2
- package/dist/chunks/desktop-test-HF42V2EP.js +0 -3
- package/dist/chunks/dist-T6ES2TSM.js +0 -2
- package/dist/chunks/evaluation-coordination-WZT6FDMS.js +0 -2
- package/dist/chunks/experiment-improvements-H35VS6XZ.js +0 -2
- package/dist/chunks/experiments-F54C32EE.js +0 -2
- package/dist/chunks/experiments-signal-ONIGTGYR.js +0 -2
- package/dist/chunks/host-profile-evaluation-tools-LMCJ3MDJ.js +0 -2
- package/dist/chunks/host-profile-external-dataset-4HOXANWK.js +0 -2
- package/dist/chunks/hosted-app-server-composition-Y64A2A2B.js +0 -2
- package/dist/chunks/hosted-experiment-improvement-B2V2WIUI.js +0 -3
- package/dist/chunks/hosted-harness-runtime-C7I4KSDK.js +0 -2
- package/dist/chunks/hosted-profile-candidate-CXPVEEYQ.js +0 -3
- package/dist/chunks/hosted-profile-compiler-FGCI2VRW.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-INNUYMBD.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-UPTBRYMS.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-TIQSVKLQ.js +0 -3
- package/dist/chunks/hosted-tasksets-7VMYOTIO.js +0 -2
- package/dist/chunks/human-review-7XC77NQP.js +0 -2
- package/dist/chunks/learning-3XDGIYUL.js +0 -2
- package/dist/chunks/local-harness-improvement-runtime-UIKQSAMM.js +0 -2
- package/dist/chunks/local-harness-taskset-review-6KJN3EQL.js +0 -2
- package/dist/chunks/opchat-NWYWWIA7.js +0 -3
- package/dist/chunks/opchat-bounded-chat-ICURZM6R.js +0 -2
- package/dist/chunks/organizations-7DBQGCCV.js +0 -2
- package/dist/chunks/project-action-payload-7DRABTHY.js +0 -2
- package/dist/chunks/project-agent-AXJOWXRU.js +0 -2
- package/dist/chunks/published-experiment-source-YBBPLNF2.js +0 -2
- package/dist/chunks/refiner-profile-service-ATEFPF5O.js +0 -2
- package/dist/chunks/sandbox-command-CF2PJCFX.js +0 -2
- package/dist/chunks/saved-work-3OAVRBH3.js +0 -2
- package/dist/chunks/setup-RHIMFI2Y.js +0 -2
- package/dist/chunks/src-V236S6MV.js +0 -424
- package/dist/chunks/standalone-experiment-turn-owner-CDRMGLWW.js +0 -2
- package/dist/chunks/store-chat-resources-P4EKCLSY.js +0 -2
- package/dist/chunks/store-conversation-serving-YFEZYQD3.js +0 -2
- package/dist/chunks/store-evaluation-results-VBH4R2U7.js +0 -7
- package/dist/chunks/store-human-review-RFCVZ3HP.js +0 -7
- package/dist/chunks/store-learned-preference-migration-validation-FNBGGZU6.js +0 -2
- package/dist/chunks/store-local-experiments-XPXGYXNM.js +0 -97
- package/dist/chunks/store-model-batch-review-J2L5JQV2.js +0 -2
- package/dist/chunks/store-model-project-preparation-OCLIFKI2.js +0 -2
- package/dist/chunks/store-taskset-drafts-BNKUVHPA.js +0 -9
- package/dist/chunks/taskset-packages-SXBLYHSP.js +0 -2
- package/dist/chunks/taskset-packages-V5T4V7YN.js +0 -2
- package/dist/chunks/tool-learning-47XQKELE.js +0 -2
- package/dist/chunks/training-7VQNCOGH.js +0 -2
- package/dist/chunks/training-VKLPNCMC.js +0 -2
- package/dist/chunks/training-hosted-NNE6BP6S.js +0 -2
- package/dist/chunks/training-hosted-serving-report-VZ4SMLMG.js +0 -2
- package/dist/chunks/training-model-start-G7YDZ7ZG.js +0 -2
- package/dist/chunks/web-search-56QRZGPR.js +0 -2
- package/dist/web/assets/App-DmEA-Lia.js +0 -53
- package/dist/web/assets/AppTerminalPanel-ScQKJV4z.js +0 -2
- package/dist/web/assets/AppsView-B1uNg9IQ.js +0 -1
- package/dist/web/assets/BrowserSidebar-DfVQoJHn.js +0 -1
- package/dist/web/assets/ChatTimelineEntry-Bbc6HRks.js +0 -8
- package/dist/web/assets/CommunityView-mO58f2B0.js +0 -1
- package/dist/web/assets/HostedModelLearningReview-BQIS7hkd.js +0 -1
- package/dist/web/assets/HostedModelLearningSettings-BQ-YeFMT.js +0 -1
- package/dist/web/assets/LabModelVersionDetailPage-BkHeVbAx.js +0 -1
- package/dist/web/assets/LabsRoute-CE45yAXJ.css +0 -1
- package/dist/web/assets/LabsRoute-YA9YckKj.js +0 -101
- package/dist/web/assets/MainChatThread-DpyPgGKW.js +0 -2
- package/dist/web/assets/MainPane-WOeodByM.js +0 -10
- package/dist/web/assets/NativeSetupTerminal-fmG2c65K.js +0 -2
- package/dist/web/assets/RightChatPanelStack-Bs7A4dLs.js +0 -1
- package/dist/web/assets/RightSidebarHomePanel-C-D4kba2.js +0 -1
- package/dist/web/assets/TeamChatView-DjmIaLO1.js +0 -1
- package/dist/web/assets/TrainingRunLineage-CtYe1KGX.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-C6wWuo7U.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-JDOUmrC-.js +0 -11
- package/dist/web/assets/WorkspaceEnvironmentMenu-sfL5LZeB.js +0 -35
- package/dist/web/assets/api-client-Dgz-fOMl.js +0 -1
- package/dist/web/assets/bot-Cd761lRF.js +0 -1
- package/dist/web/assets/chat-resources-BUDXdoG0.js +0 -1
- package/dist/web/assets/chevron-down-DEbd6Ek-.js +0 -1
- package/dist/web/assets/chevron-right-DLYNg_Oq.js +0 -1
- package/dist/web/assets/chevron-up-DFJJccDl.js +0 -1
- package/dist/web/assets/chunk-GHPCQXG5-DKDBSd8H.js +0 -9
- package/dist/web/assets/chunk-GJRXJL6G-luaxRTYI.js +0 -1
- package/dist/web/assets/chunk-JDQVAG3R-C0-rh1aR.js +0 -1
- package/dist/web/assets/chunk-XMVSQIK4-BBU7r_NH.js +0 -1
- package/dist/web/assets/client-BNjO4Xi8.js +0 -1
- package/dist/web/assets/cloud-upload-CoM1FGeB.js +0 -1
- package/dist/web/assets/common-CFsO2ppZ.js +0 -1
- package/dist/web/assets/copy-BGOhV6Pk.js +0 -1
- package/dist/web/assets/create-pipeline-DRR0Qeec.js +0 -1
- package/dist/web/assets/createLucideIcon-Bv-_eGcE.js +0 -1
- package/dist/web/assets/external-link-CVXsNeO3.js +0 -1
- package/dist/web/assets/folder-open-MnOmh19D.js +0 -1
- package/dist/web/assets/folder-plus-BRddLBtO.js +0 -1
- package/dist/web/assets/git-commit-horizontal-Bm4rkXug.js +0 -1
- package/dist/web/assets/icons-CZxmQtZs.js +0 -1
- package/dist/web/assets/image-BViGUAiq.js +0 -1
- package/dist/web/assets/info-DYPIbKKD.js +0 -1
- package/dist/web/assets/loader-circle-JFgFNsP5.js +0 -1
- package/dist/web/assets/maximize-2-DXZCQO0b.js +0 -1
- package/dist/web/assets/message-square-cOCAL8J1.js +0 -1
- package/dist/web/assets/models-route-CWcJuOd0.js +0 -1
- package/dist/web/assets/monitor-B35XSAvn.js +0 -1
- package/dist/web/assets/paperclip-CKgDxioG.js +0 -1
- package/dist/web/assets/play-DzqLr7fM.js +0 -1
- package/dist/web/assets/plus-Ddp1vXnw.js +0 -1
- package/dist/web/assets/presentation-B0S9v7ib.js +0 -1
- package/dist/web/assets/refresh-cw-D45mW-vs.js +0 -1
- package/dist/web/assets/reward-checks-D139zwha.js +0 -7
- package/dist/web/assets/save-Gu4R_82E.js +0 -1
- package/dist/web/assets/schemas-C9IwV7NS.js +0 -64
- package/dist/web/assets/settings-DdonLCIN.js +0 -21
- package/dist/web/assets/settings-lists-CFHFtO0D.js +0 -5
- package/dist/web/assets/square-Dqduqyyu.js +0 -1
- package/dist/web/assets/square-terminal-DS3zwi6X.js +0 -1
- package/dist/web/assets/training-QBuGBGJd.js +0 -2
- package/dist/web/assets/upload-ABSJxuUM.js +0 -1
- package/dist/web/assets/useQuery-CCjwL8VI.js +0 -1
- package/dist/web/assets/wifi-off-DGJH7Pke.js +0 -1
- package/dist/web/assets/work-outputs-CnbRtTLg.js +0 -1
- package/dist/web/assets/x-B-_zJVOZ.js +0 -1
- /package/dist/chunks/{chunk-SFR32TMJ.js → chunk-JXLDEYRW.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.human-form-editor,.human-assessment-form{gap:16px;min-width:0;display:grid}.human-form-editor h3{margin:0;font-size:15px}.human-form-editor>div:first-of-type{justify-content:space-between;align-items:center;gap:12px;display:flex}.human-form-editor label,.human-assessment-form label{gap:6px;font-size:13px;display:grid}.human-form-editor input,.human-form-editor select,.human-form-editor textarea,.human-assessment-form input,.human-assessment-form select,.human-assessment-form textarea{box-sizing:border-box;max-width:100%;color:var(--text-primary);background:var(--surface-input);border:1px solid var(--border-default);font:inherit;border-radius:6px;padding:8px}.human-form-editor input[type=checkbox],.human-assessment-form input[type=checkbox]{justify-self:start;width:auto}.human-form-editor fieldset,.human-assessment-form fieldset{border:1px solid var(--border-default);border-radius:6px;gap:10px;min-width:0;padding:12px;display:grid}.human-form-editor>div{gap:10px;min-width:0;display:grid}.human-form-editor textarea,.human-assessment-form textarea{resize:vertical;width:100%;min-height:70px}.human-form-editor p,.human-assessment-form p{white-space:pre-wrap;color:var(--text-secondary);margin:0;font-size:13px}.human-form-editor p[role=alert]{color:var(--status-danger);border:1px solid var(--border-default);padding:10px}.human-assessment-form legend{font-size:14px;font-weight:600}.human-assessment-form ul{color:var(--text-secondary);margin:0;padding-left:20px;font-size:12px}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-B6XX_0h3.js";import{P as r,t as i}from"./useQuery-D2MQ7e5U.js";import{a,c as o,d as s,m as c,o as l,p as u,r as d,v as f,x as p}from"./schemas-Brv9Vmnk.js";import{c as m,d as h,i as g,o as _,s as v}from"./common-BWVSBnpX.js";import{A as y,C as b,D as x,E as S,K as C,M as w,N as T,P as E,Q as D,S as ee,T as te,Tt as O,b as k,d as A,et as ne,g as re,gt as j,h as ie,j as ae,k as oe,nt as M,q as N,v as P,w as F,x as se,y as I}from"./chunk-H3JZ3P5T-DolwEJXo.js";import{a as ce,c as le,i as ue,r as de,s as L,t as fe}from"./reward-checks-DJJZYgf8.js";import{n as pe,o as me,t as he}from"./chunk-C3TS766N-ppRhs95p.js";import{i as ge}from"./api-client-DJRVOFzS.js";import{n as _e,r as ve,t as ye}from"./query-scope-BRpcgljO.js";import{t as be}from"./AppDialog-CxjDHVk9.js";import{Gt as xe,Ut as Se}from"./App-CCuh99JW.js";import{t as R}from"./ModelProjectPageHeader-Dge19aE1.js";import{W as z}from"./MainPane-CQQxSDPS.js";function Ce(e,t){let n=k.parse(e);ae(n),O(t);let r=S.parse(t);if(!n.enabled)throw new M(`learning_source_disabled`,409);if(n.id!==r.sourceId||!T(n.taskDefinition,r.taskDefinition))throw new M(`learning_source_definition_mismatch`,422);if(!n.allowedSplits.includes(r.split))throw new M(`learning_source_split_not_allowed`,422);if((n.mapping?h(n.mapping):null)!==r.provenance.mappingHash)throw new M(`learning_source_mapping_mismatch`,422);return r}c({schemaVersion:s(`openpond.taskBatchPackage.v1`),batch:P,definition:F,binding:N,rewards:a(D).min(1).max(100),admissions:a(c({taskId:f(),evidence:P,decision:P,supervisedTarget:ie.nullable()}).strict()).min(1).max(1e4)}).strict();function we(e,t,n={minimum:0,maximum:1}){if(!t.evidence||!T(t.evidence,w(e))||t.submission.expectedEvidenceHash!==e.contentHash||t.submission.kind!==`outcome`||!e.submission.observedOutput)throw new M(`rating_fixture_evidence_mismatch`,422);let r=y.parse(t.submission.value);if(!Number.isFinite(n.minimum)||!Number.isFinite(n.maximum)||n.minimum>=n.maximum)throw new M(`rating_fixture_scale_invalid`,422);let i=n.minimum+(r.score-r.scale.minimum)/(r.scale.maximum-r.scale.minimum)*(n.maximum-n.minimum);return{id:`label-${t.id}-${t.revision}`,name:e.submission.exampleId,input:JSON.stringify(e.submission.input,null,2),output:JSON.stringify(e.submission.observedOutput,null,2),expectedOutput:e.submission.expected?JSON.stringify(e.submission.expected,null,2):``,evaluatorContext:e.submission.evaluatorContext?JSON.stringify(e.submission.evaluatorContext,null,2):``,artifactRefs:[],runtimeEventRefs:[],infrastructureError:``,expectedStatus:`scored`,minimumScore:String(i),maximumScore:String(i),expectedPassed:`any`,sourceLabel:{evidence:w(e),feedback:{id:t.id,revision:t.revision}}}}var Te=c({id:v,role:d([`replay`,`transfer`]),taskId:v,seeds:a(f().min(1).max(500)).min(1).max(100),grader:c({id:v,revision:f().min(1).max(200),contentHash:_,reward:P.nullable().default(null)}).strict(),failureMeaning:s(`corrected_mistake_repeated`)}).strict(),B=c({schemaVersion:s(`openpond.correctionVerificationPlan.v1`),id:v,revision:s(1),teamId:v,ownerUserId:v,modelId:v,classification:s(`reviewed_model_behavior`),feedback:P,evidence:P,trainingJobId:v,checkpoint:g,artifact:g,taskset:P,checks:a(Te).min(1).max(1e3),baselineOperationId:v,candidateOperationId:v,criterion:s(`all_declared_checks_pass_after_failed_parent`),receivedAt:m,eligibleAt:m,frozenAt:m}).strict().superRefine((e,t)=>{e.baselineOperationId===e.candidateOperationId&&t.addIssue({code:`custom`,path:[`candidateOperationId`],message:`Parent and candidate must have distinct evaluation operations.`}),new Set(e.checks.map(e=>e.id)).size!==e.checks.length&&t.addIssue({code:`custom`,path:[`checks`],message:`Correction check identities must be unique.`});for(let[n,r]of e.checks.entries())new Set(r.seeds).size!==r.seeds.length&&t.addIssue({code:`custom`,path:[`checks`,n,`seeds`],message:`Seeds must be unique per correction check.`})});B.safeExtend({contentHash:_});var Ee=c({schemaVersion:s(`openpond.correctionOpportunity.v1`),id:v,correction:g,source:d([`evaluation`,`live`]),modelId:v,trainingJobId:v,artifactId:v,checkpointId:v,observedAt:m,occurredAt:m,attempt:g,classification:d([`confirmed_repeat`,`passed`,`unscored`]),checkIds:a(v).min(1).max(1e3)}).strict(),De=c({schemaVersion:s(`openpond.correctionMetricObservation.v1`),correction:g,modelId:v,trainingJobId:v,checkpointId:v,artifactId:v,receivedAt:m,eligibleAt:m,firstBatchConsumptionAt:m.nullable(),firstTrainingUseAt:m.nullable(),verifiedAt:m.nullable(),servedAt:m.nullable(),baselineEvaluation:g.nullable(),candidateEvaluation:g.nullable(),status:d([`pending_exposure`,`pending_verification`,`baseline_not_failed`,`verified`,`regressed`,`withdrawn`]),opportunities:a(Ee).max(1e5),blockers:a(f().max(500)).max(20).default([]),observedAt:m}).strict(),Oe=c({confirmedRepeats:u().int().nonnegative(),scoredRelevantOpportunities:u().int().nonnegative(),unscoredOpportunities:u().int().nonnegative(),rate:u().min(0).max(1).nullable()}).strict(),ke=c({schemaVersion:s(`openpond.correctionMetricSummary.v1`),observedAt:m,scope:c({teamId:v,modelId:v,runId:v.nullable(),checkpointId:v.nullable(),artifactId:v.nullable()}).strict(),window:c({from:m,to:m}).strict(),correctionCount:u().int().nonnegative(),adaptation:c({medianSeconds:u().nonnegative().nullable(),resolvedCount:u().int().nonnegative(),pendingCount:u().int().nonnegative(),oldestPendingSeconds:u().nonnegative().nullable()}).strict(),evaluation:Oe.safeExtend({source:s(`evaluation`)}),live:Oe.safeExtend({source:s(`live`)})}).strict(),V=e(t(),1);function Ae(e,t){let n=t?.limits.maxIterationSpendUsd??e.trainingSetup.preferredMaximumSpendUsd??1;return{enabled:t?.enabled??!1,scheduled:!!(t&&[`schedule`,`nightly`,`approved_count`].includes(t.trigger.kind)),intervalSeconds:t?.trigger.kind===`schedule`?t.trigger.intervalSeconds:86400,humanReviewRequired:t?.admission.mode!==`qualified_automatic`,minimumApprovedExamples:t?.admission.minimumApprovedExamples??10,maxBatchExamples:t?.limits.maxBatchExamples??10,maxIterationSpendUsd:n,maxDailySpendUsd:t?.limits.maxDailySpendUsd??n,cooldownSeconds:t?.limits.cooldownSeconds??3600,maxRetries:t?.limits.maxRetries??0,maxBacklogExamples:t?.limits.maxBacklogExamples??1e3}}function je(e){let{project:t,previous:n,settings:r}=e;if(n&&(n.id!==e.policyId||n.modelProjectId!==t.portableProjectId||n.executionOwner!==`hosted`))throw new M(`learning_policy_model_mismatch`,422,`Learning settings must belong to this hosted Model.`);let i=e.applyModelConfiguration||!n,a=i?Me(t):null,o=i?t.trainingSetup.recipe?.method:n?.training.method,s=r.trigger??(r.scheduled?{kind:`schedule`,intervalSeconds:r.intervalSeconds}:{kind:`manual`});if(r.enabled&&o!==`grpo`)throw new M(`learning_training_method_unsupported`,422,`Hosted continual learning currently supports GRPO.`);return re.parse({schemaVersion:`openpond.learningPolicy.v1`,id:e.policyId,revision:(n?.revision??0)+1,modelProjectId:t.portableProjectId,executionOwner:`hosted`,enabled:r.enabled,sources:e.sources,taskDefinition:e.taskDefinition,rewardBinding:i?t.trainingSetup.rewardBindingRef:n?.rewardBinding,admission:{mode:r.humanReviewRequired?`human`:`qualified_automatic`,qualification:r.humanReviewRequired?null:n?.admission.qualification??null,minimumApprovedExamples:r.minimumApprovedExamples},trigger:s,trainingParent:a?.trainingParent??n?.trainingParent,teacher:n?.teacher??null,training:{method:o,recipe:a?.recipe??n?.training.recipe,retentionEvaluation:a?.retentionEvaluation??n?.training.retentionEvaluation,replayBatches:n?.training.replayBatches??[]},limits:{maxIterationSpendUsd:r.maxIterationSpendUsd,maxDailySpendUsd:r.maxDailySpendUsd,cooldownSeconds:r.cooldownSeconds,maxRetries:r.maxRetries,maxBatchExamples:r.maxBatchExamples,maxBacklogExamples:r.maxBacklogExamples},automation:{collect:!1,train:s.kind!==`manual`,accept:!1,serve:!1},acceptance:n?.acceptance??{minimumScore:0,maximumRetentionRegression:0,requireImprovement:!0,rollbackVersion:null}})}function Me(e){let t=e.trainingSetup,n=t.baseModel??e.defaultBaseModel;if(!t.recipe||!n||!t.evaluationTasksetRef)throw new M(`learning_model_configuration_incomplete`,422,`Select a training recipe, starting model and retained evaluation before enabling hosted learning.`);return{recipe:{id:`model-recipe-${e.etag}`,contentHash:A(t.recipe)},trainingParent:{id:n.modelId,contentHash:A(n)},retentionEvaluation:{id:t.evaluationTasksetRef.id,contentHash:t.evaluationTasksetRef.contentHash}}}var H=f().trim().min(1).max(240);c({projectId:H.optional(),search:f().max(300).optional(),kind:f().max(100).optional(),sort:d([`name`,`type`,`version`,`projects`,`datasets`,`runs`]).optional(),direction:d([`asc`,`desc`]).optional(),after:f().max(3e3).optional(),limit:u().int().min(1).max(100).default(30)}).strict(),c({teamId:H,items:a(c({reward:D,projects:u().int().nonnegative(),datasets:u().int().nonnegative(),runs:u().int().nonnegative()}).strict()).max(100),nextCursor:f().nullable()}).strict(),c({teamId:H,id:H,items:a(D).max(100),nextRevision:u().int().positive().nullable()}).strict();var Ne=c({section:d([`projects`,`datasets`,`runs`]),after:H.optional(),limit:u().int().min(1).max(100).default(25)}).strict();c({teamId:H,id:H,section:Ne.shape.section,items:a(p([c({id:H,name:f(),graderRevisions:a(u().int().positive()),archived:l()}).strict(),c({id:H,name:f(),revision:u().int().positive(),graderRevisions:a(u().int().positive())}).strict(),c({id:H,name:f(),status:f()}).strict()])).max(100),nextCursor:H.nullable()}).strict();function Pe(e,t){let n=e.normalize(`NFKD`).toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``);return`${((/^[a-z]/.test(n)?n:`grader_${n}`)||`grader`).slice(0,55).replace(/_+$/g,``)}_${A(t).slice(0,24)}`}var U=f().trim().min(1).max(500),Fe=c({id:U,contentHash:f().regex(/^[a-f0-9]{64}$/)}).strict();c({teamId:U,modelId:U,runId:U.optional(),from:f().datetime().optional(),to:f().datetime().optional()}).strict(),o(`action`,[c({action:s(`declare_verification`),teamId:U,operationId:U,plan:c({modelId:B.shape.modelId,classification:B.shape.classification,feedback:B.shape.feedback,evidence:B.shape.evidence,trainingJobId:B.shape.trainingJobId,checkpoint:B.shape.checkpoint,artifact:B.shape.artifact,taskset:B.shape.taskset,checks:B.shape.checks,baselineOperationId:B.shape.baselineOperationId,candidateOperationId:B.shape.candidateOperationId,criterion:B.shape.criterion}).strict()}).strict(),c({action:s(`link_live_opportunity`),teamId:U,operationId:U,correction:Fe,inferenceRequestId:U,grade:c({id:U,revision:u().int().positive()}).strict(),checkIds:a(U).min(1).max(1e3)}).strict()]),c({summary:ke.nullable(),observations:a(De).max(1e3)}).strict();var W=n();function Ie({form:e,answers:t,onChange:n,disabled:r=!1}){function i(e,r){let i=t.find(t=>t.criterionId===e)??{criterionId:e,value:null,abstain:!1,note:``};n([...t.filter(t=>t.criterionId!==e),{...i,...r}])}return(0,W.jsxs)(`div`,{className:`human-assessment-form`,children:[(0,W.jsx)(`p`,{className:`whitespace-pre-wrap text-sm text-muted-foreground`,children:e.instructions}),e.criteria.map(e=>{let a=t.find(t=>t.criterionId===e.id),o=`human-${e.id}`;return(0,W.jsxs)(`fieldset`,{disabled:r,className:`space-y-2`,children:[(0,W.jsxs)(`legend`,{className:`text-sm font-medium`,children:[e.label,e.required?` (required)`:``]}),(0,W.jsx)(`p`,{className:`whitespace-pre-wrap text-sm text-muted-foreground`,children:e.instructions}),e.anchors?.length?(0,W.jsx)(`ul`,{className:`text-xs text-muted-foreground`,children:e.anchors.map((e,t)=>(0,W.jsxs)(`li`,{children:[String(e.value),`: `,e.description]},t))}):null,a?.abstain?null:(0,W.jsxs)(W.Fragment,{children:[e.kind===`score`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`input`,{id:o,"aria-label":e.label,type:`number`,className:`w-full rounded-md bg-muted p-2`,min:e.minimum,max:e.maximum,step:e.step,value:typeof a?.value==`number`?a.value:``,onChange:r=>{r.target.value===``?n(t.filter(t=>t.criterionId!==e.id)):i(e.id,{value:Number(r.target.value),abstain:!1})}}),(0,W.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Raw scale `,e.minimum,` to `,e.maximum,`, step `,e.step]})]}):null,e.kind===`boolean`||e.kind===`category`||e.kind===`preference`?(0,W.jsxs)(`select`,{id:o,"aria-label":e.label,className:`w-full rounded-md bg-muted p-2`,value:a?.value===null||a?.value===void 0?``:String(a.value),onChange:r=>{r.target.value?i(e.id,{value:e.kind===`boolean`?r.target.value===`true`:r.target.value,abstain:!1}):n(t.filter(t=>t.criterionId!==e.id))},children:[(0,W.jsx)(`option`,{value:``,children:`Select an answer`}),(e.kind===`boolean`?[`true`,`false`]:e.kind===`category`?e.options:[`A`,`B`,...e.allowTie?[`tie`]:[]]).map(t=>(0,W.jsx)(`option`,{value:t,children:e.kind===`boolean`?t===`true`?`Yes`:`No`:t},t))]}):null,e.kind===`text`?(0,W.jsx)(`textarea`,{id:o,"aria-label":e.label,className:`w-full rounded-md bg-muted p-2`,minLength:e.minimumLength,maxLength:e.maximumLength,value:typeof a?.value==`string`?a.value:``,onChange:t=>i(e.id,{value:t.target.value,abstain:!1})}):null,e.kind===`preference`&&e.requireStrength?(0,W.jsxs)(`label`,{className:`block text-sm`,children:[`Preference strength`,(0,W.jsxs)(`select`,{className:`ml-2 rounded-md bg-muted p-2`,value:a?.strength??``,onChange:t=>i(e.id,{strength:t.target.value}),children:[(0,W.jsx)(`option`,{value:``,children:`Select strength`}),(0,W.jsx)(`option`,{value:`slight`,children:`Slight`}),(0,W.jsx)(`option`,{value:`moderate`,children:`Moderate`}),(0,W.jsx)(`option`,{value:`strong`,children:`Strong`})]})]}):null]}),e.allowAbstain?(0,W.jsxs)(`label`,{className:`flex gap-2 text-sm`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:a?.abstain??!1,onChange:r=>{r.target.checked?i(e.id,{abstain:!0,value:null}):n(t.filter(t=>t.criterionId!==e.id))}}),`Unable to judge this criterion`]}):null,(0,W.jsxs)(`label`,{className:`block text-sm`,children:[a?.abstain?`Reason for abstaining`:e.requireRationale?`Rationale (required)`:`Rationale`,(0,W.jsx)(`textarea`,{className:`mt-1 w-full rounded-md bg-muted p-2`,maxLength:2e4,value:a?.note??``,onChange:t=>i(e.id,{note:t.target.value})})]})]},e.id)})]})}function Le(e,t){let n=i({queryKey:[..._e(e),`inspection`,t],enabled:!!e,queryFn:({signal:n})=>e.inspectEvidence(t,{signal:n})});return{inspection:n.data?.inspection??null,error:n.error?.message??null}}function Re(e,t){return(0,V.useMemo)(()=>e?ve(new he({baseUrl:e.serverUrl,apiKey:e.token,scope:t,fetch:(t,n)=>{let r=new URL(String(t));return ge(e,`${r.pathname}${r.search}`,n)}}),[`learning`,ye(e),t]):null,[e,t])}function G(e,t,n={},r=!1){let a=i({queryKey:[..._e(e),`list`,t,n],enabled:!!e,queryFn:({signal:r})=>e.list(t,n,{signal:r}),refetchInterval:e=>r&&(t!==`grade`||!e.state.data||e.state.data.items.some(e=>`status`in e&&[`queued`,`running`,`cancelling`].includes(String(e.status))))?2e3:!1}),o=(0,V.useCallback)(()=>{a.refetch()},[a.refetch]);return{page:a.data??null,error:a.error?.message??null,loading:!!e&&a.isPending,refresh:o}}function K(e){let t=r(),n=(0,V.useRef)(!1),[i,a]=(0,V.useState)(!1),[o,s]=(0,V.useState)(null);async function c(r){if(n.current)return null;n.current=!0,a(!0),s(null);try{if(!e)throw Error(`Connect to OpenPond before saving.`);let n=await r(e);return await t.invalidateQueries({queryKey:_e(e)}),n}catch(e){return s(e instanceof Error?e.message:String(e)),null}finally{n.current=!1,a(!1)}}return{busy:i,error:o,run:c,command:e=>c(t=>t.command(e))}}function q(e,t,n,r,a=!1){let o=i({queryKey:[..._e(e),`resource`,t,n,r??`latest`],enabled:!!(e&&n),queryFn:({signal:i})=>e.get(t,n,r,{signal:i}),refetchInterval:e=>a&&(t!==`grade`||!e.state.data||`status`in e.state.data&&[`queued`,`running`,`cancelling`].includes(String(e.state.data.status)))?2e3:!1}),s=(0,V.useCallback)(()=>{o.refetch()},[o.refetch]);return{resource:o.data??null,error:o.error?.message??null,refresh:s}}function J(){return crypto.randomUUID()}function ze(e){let[t]=(0,V.useState)(()=>e?.id??`draft-${crypto.randomUUID()}`),[n,r]=(0,V.useState)(e??null);async function i(e,i){let a=L.parse({...i,id:t,editorVersion:`openpond.modelsEditor.v1`});if(n&&JSON.stringify(n.fields)===JSON.stringify(a.fields))return n;let o=n?.revision??0,s=`draft:${E({draft:a,expectedRevision:o}).contentHash}`,c=await e.command({action:`save_draft`,operationId:s,expectedRevision:o,draft:a}),l=le.parse(c.resources[0]);return r(l),l}return{record:n,save:i,finalization:(e,t)=>({draft:w(e),targetKind:e.targetKind,release:w(t)})}}function Be(e){return e==null?``:typeof e==`object`?Object.values(e).map(Be).filter(Boolean).join(` · `).slice(0,180):String(e).slice(0,180)}function Ve({value:e}){if(e==null)return(0,W.jsx)(`span`,{children:`Not provided`});if(typeof e!=`object`)return(0,W.jsx)(`span`,{style:{whiteSpace:`pre-wrap`,overflowWrap:`anywhere`},children:String(e)});if(Array.isArray(e))return e.length?(0,W.jsx)(`ul`,{children:e.map((e,t)=>(0,W.jsx)(`li`,{children:(0,W.jsx)(Ve,{value:e})},t))}):(0,W.jsx)(`span`,{children:`None`});let t=Object.entries(e);return t.length?(0,W.jsx)(`dl`,{className:`training-configuration-list`,children:t.map(([e,t])=>(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:e.replaceAll(`_`,` `)}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(Ve,{value:t})})]},e))}):(0,W.jsx)(`span`,{children:`None`})}function He(e){let t=JSON.parse(e);return O(t),ie.parse(t)}function Y({label:e,value:t,onChange:n,hint:r,disabled:i=!1}){return(0,W.jsxs)(`label`,{className:`learning-json-field`,children:[(0,W.jsx)(`span`,{children:e}),r?(0,W.jsx)(`small`,{children:r}):null,(0,W.jsx)(`textarea`,{spellCheck:!1,rows:8,value:t,disabled:i,onChange:e=>n(e.target.value)})]})}function X({error:e}){return e?(0,W.jsx)(xe,{error:e}):null}function Z({after:e,next:t,onPage:n}){return e||t?(0,W.jsxs)(`div`,{className:`model-build-actions`,children:[e?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>n(null),children:`First page`}):null,t?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>n(t),children:`Next page`}):null]}):null}function Q({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`learning-value`,children:[(0,W.jsx)(`h3`,{children:e}),(0,W.jsx)(Ve,{value:t})]})}function $({children:e}){return(0,W.jsx)(`div`,{className:`model-build-actions`,children:e})}function Ue({fixtures:e,onChange:t}){let[n,r]=(0,V.useState)(null),i=e.find(e=>e.id===n);function a(r){t(e.map(e=>e.id===n?{...e,...r}:e))}function o(){let n=`fixture-${crypto.randomUUID()}`;t([...e,{id:n,name:`Example ${e.length+1}`,input:`{}`,output:`{}`,expectedOutput:`{}`,evaluatorContext:``,artifactRefs:[],runtimeEventRefs:[],infrastructureError:``,expectedStatus:`scored`,minimumScore:`1`,maximumScore:`1`,expectedPassed:`true`}]),r(n)}return(0,W.jsxs)(`section`,{"aria-label":`Reward fixtures`,children:[(0,W.jsx)(`h3`,{children:`Fixtures`}),(0,W.jsx)(`p`,{children:`Add example outputs and the grades you expect, including answers this Reward should reject.`}),e.length?(0,W.jsx)(`ul`,{className:`learning-list`,children:e.map(n=>(0,W.jsxs)(`li`,{children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`strong`,{children:n.name||`Unnamed fixture`}),(0,W.jsx)(`p`,{children:n.expectedStatus===`scored`?`Expected score ${n.minimumScore}–${n.maximumScore}`:`Expected ${n.expectedStatus}`})]}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>r(n.id),children:`Edit fixture`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>t(e.filter(e=>e.id!==n.id)),children:`Remove`})]},n.id))}):(0,W.jsx)(`p`,{children:`No fixtures yet.`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:e.length>=50,onClick:o,children:`Add fixture`}),i?(0,W.jsx)(be,{ariaLabel:`Edit Reward fixture`,className:`labs-rename-dialog labs-model-taskset-dialog learning-editor-dialog`,backdropClassName:`labs-rename-backdrop`,onClose:()=>r(null),children:(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(`h2`,{children:`Edit fixture`}),(0,W.jsx)(`p`,{children:`Changes belong to this Reward draft. Use Save draft to retain unfinished input.`}),i.sourceLabel?(0,W.jsxs)(`p`,{children:[`Adapted from label `,i.sourceLabel.feedback.id,` · revision `,i.sourceLabel.feedback.revision,`, attempt `,i.sourceLabel.evidence.id,` · revision `,i.sourceLabel.evidence.revision,`. Editing this fixture does not change that retained label.`]}):null,(0,W.jsxs)(`label`,{children:[`Name`,(0,W.jsx)(`input`,{maxLength:500,value:i.name,onChange:e=>a({name:e.target.value})})]}),(0,W.jsx)(Y,{label:`Task input`,value:i.input,onChange:e=>a({input:e})}),(0,W.jsx)(Y,{label:`Example output`,value:i.output,onChange:e=>a({output:e})}),(0,W.jsx)(Y,{label:`Expected answer (optional)`,value:i.expectedOutput,onChange:e=>a({expectedOutput:e})}),(0,W.jsxs)(`label`,{children:[`Expected grading status`,(0,W.jsxs)(`select`,{value:i.expectedStatus,onChange:e=>a({expectedStatus:e.target.value}),children:[(0,W.jsx)(`option`,{value:`scored`,children:`Scored`}),(0,W.jsx)(`option`,{value:`unavailable`,children:`Unavailable`}),(0,W.jsx)(`option`,{value:`pending`,children:`Pending human review`}),(0,W.jsx)(`option`,{value:`failed`,children:`Grader failed`})]})]}),i.expectedStatus===`scored`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{children:[`Minimum expected score`,(0,W.jsx)(`input`,{type:`number`,step:`any`,value:i.minimumScore,onChange:e=>a({minimumScore:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Maximum expected score`,(0,W.jsx)(`input`,{type:`number`,step:`any`,value:i.maximumScore,onChange:e=>a({maximumScore:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Expected pass result`,(0,W.jsxs)(`select`,{value:i.expectedPassed,onChange:e=>a({expectedPassed:e.target.value}),children:[(0,W.jsx)(`option`,{value:`true`,children:`Passed`}),(0,W.jsx)(`option`,{value:`false`,children:`Failed`}),(0,W.jsx)(`option`,{value:`any`,children:`Either`})]})]})]}):null,(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Additional evidence`}),(0,W.jsx)(Y,{label:`Evaluator context (optional)`,value:i.evaluatorContext,onChange:e=>a({evaluatorContext:e})}),(0,W.jsxs)(`label`,{children:[`Artifact references`,(0,W.jsx)(`textarea`,{value:i.artifactRefs.join(`
|
|
2
|
+
`),onChange:e=>a({artifactRefs:e.target.value.split(`
|
|
3
|
+
`)})}),(0,W.jsx)(`small`,{children:`One reference per line.`})]}),(0,W.jsxs)(`label`,{children:[`Runtime event references`,(0,W.jsx)(`textarea`,{value:i.runtimeEventRefs.join(`
|
|
4
|
+
`),onChange:e=>a({runtimeEventRefs:e.target.value.split(`
|
|
5
|
+
`)})}),(0,W.jsx)(`small`,{children:`One reference per line.`})]}),(0,W.jsxs)(`label`,{children:[`Infrastructure failure (optional)`,(0,W.jsx)(`input`,{value:i.infrastructureError,onChange:e=>a({infrastructureError:e.target.value})})]})]}),(0,W.jsx)($,{children:(0,W.jsx)(`button`,{type:`button`,className:`training-button`,onClick:()=>r(null),children:`Done`})})]})}):null]})}function We({client:e,targetId:t,draft:n,published:r,unchanged:i,busy:a,onCheck:o,checking:s=!1,readOnly:c=!1}){let[l,u]=(0,V.useState)(),[d,f]=(0,V.useState)(null),p=q(e,`reward_check`,d,void 0,!0),m=G(e,`reward_check`,{parentId:t,limit:25,...l?{afterId:l}:{}},!0),h=K(e),g=new Map((m.page?.items??[]).map(e=>[e.id,e]));p.resource&&g.set(p.resource.id,p.resource);let _=[...g.values()].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)),v=n&&i&&_.some(e=>T(e.draft,w(n))&&[`queued`,`running`,`cancelling`].includes(e.status));async function y(){let e=await o?.();e&&(f(e.id),u(void 0),m.refresh())}async function b(e){await h.command({action:`cancel_reward_check`,operationId:crypto.randomUUID(),checkId:e.id,expectedRevision:e.revision})&&m.refresh()}return(0,W.jsxs)(`section`,{"aria-label":`Reward fixture checks`,children:[(0,W.jsx)(`h3`,{children:`Fixture checks`}),(0,W.jsx)(`p`,{children:`Results apply to the saved source and examples they checked. Publishing remains a separate action.`}),(0,W.jsx)(X,{error:m.error??p.error??h.error}),o?(0,W.jsx)($,{children:(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:a||h.busy||!!v,onClick:()=>{y()},children:s?`Queuing check…`:v?`Checking fixtures…`:`Check fixtures`})}):null,m.loading&&!m.page?(0,W.jsx)(`p`,{role:`status`,children:`Loading checks…`}):null,!_.length&&!m.loading?(0,W.jsx)(`p`,{children:`No checks recorded for this Reward.`}):null,(0,W.jsx)(`ul`,{className:`learning-list`,children:_.map(t=>{let a=n&&i&&T(t.draft,w(n));return(0,W.jsxs)(`li`,{children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`strong`,{children:t.status===`completed`?t.matchesExpectations?`All fixtures matched`:`Fixture mismatch`:t.status}),(0,W.jsxs)(`p`,{children:[a?`Current saved draft`:r&&T(r,t.reward)?`Published release ${r.revision}`:`Earlier draft revision ${t.draft.revision}`,` · `,(0,W.jsx)(me,{value:t.createdAt})]}),t.failure?(0,W.jsx)(`p`,{role:`status`,children:t.failure}):null,(0,W.jsx)(Ge,{client:e,check:t})]}),!c&&[`queued`,`running`].includes(t.status)?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busy,onClick:()=>{b(t)},children:`Cancel check`}):null]},t.id)})}),m.page?.nextCursor?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>u(m.page.nextCursor),children:`More checks`}):null,l?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>u(void 0),children:`First page`}):null]})}function Ge({client:e,check:t}){let[n,r]=(0,V.useState)(!1),i=q(e,`draft`,n?t.draft.id:null,t.draft.revision),a=i.resource?.targetKind===`reward`?i.resource.fields.fixtures??[]:[];return(0,W.jsxs)(`details`,{onToggle:e=>r(e.currentTarget.open),children:[(0,W.jsxs)(`summary`,{children:[`View results (`,t.results.length,`/`,t.fixtureRefs.length,`)`]}),(0,W.jsx)(X,{error:i.error}),(0,W.jsx)(`ul`,{children:t.results.map(e=>{let t=a.find(t=>t.id===e.fixture.id);return(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`strong`,{children:t?.name??e.fixture.id}),(0,W.jsxs)(`p`,{children:[e.result.status,e.result.rawScore===null?``:` · score ${e.result.rawScore}`,` · `,e.matchesExpectation?`Matched expectation`:`Did not match expectation`]}),e.result.message?(0,W.jsx)(`p`,{children:e.result.message}):null,t?(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Checked example`}),(0,W.jsxs)(`p`,{children:[`Expected `,t.expectedStatus,t.expectedStatus===`scored`?` · score ${t.minimumScore}–${t.maximumScore} · passed ${t.expectedPassed}`:``]}),(0,W.jsx)(`h4`,{children:`Input`}),(0,W.jsx)(`pre`,{children:t.input}),(0,W.jsx)(`h4`,{children:`Output`}),(0,W.jsx)(`pre`,{children:t.output}),(0,W.jsx)(`h4`,{children:`Expected answer`}),(0,W.jsx)(`pre`,{children:t.expectedOutput||`None`})]}):null]},e.fixture.id)})}),t.runtime?(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Execution details`}),(0,W.jsxs)(`p`,{children:[t.runtime.id,` · Evals `,t.runtime.packageVersion,` · `,t.runtime.engine]}),(0,W.jsxs)(`p`,{children:[`Source and fixture snapshot: `,t.snapshotHash]})]}):null]})}function Ke({criterion:e,onChange:t}){let n=e.anchors??[],r=e.kind===`category`?e.options:e.kind===`preference`?[`A`,`B`,...e.allowTie?[`tie`]:[]]:e.kind===`boolean`?[!0,!1]:null;function i(e,r){t(n.map((t,n)=>n===e?{...t,...r}:t))}return(0,W.jsxs)(`fieldset`,{className:`space-y-2`,children:[(0,W.jsx)(`legend`,{className:`text-sm`,children:`Raw value anchors`}),n.map((a,o)=>(0,W.jsxs)(`div`,{className:`flex gap-2`,children:[r?(0,W.jsx)(`select`,{"aria-label":`Anchor value`,className:`rounded-md bg-muted p-2`,value:String(a.value),onChange:t=>i(o,{value:e.kind===`boolean`?t.target.value===`true`:t.target.value}),children:r.map(e=>(0,W.jsx)(`option`,{value:String(e),children:String(e)},String(e)))}):(0,W.jsx)(`input`,{"aria-label":`Anchor value`,className:`w-24 rounded-md bg-muted p-2`,type:e.kind===`score`?`number`:`text`,value:String(a.value),step:e.kind===`score`?e.step:void 0,onChange:t=>i(o,{value:e.kind===`score`?Number(t.target.value):t.target.value})}),(0,W.jsx)(`input`,{"aria-label":`Anchor description`,className:`min-w-0 flex-1 rounded-md bg-muted p-2`,value:a.description,maxLength:2e3,onChange:e=>i(o,{description:e.target.value})}),(0,W.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>t(n.filter((e,t)=>t!==o)),children:`Remove anchor`})]},o)),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:n.length>=100,onClick:()=>t([...n,{value:r?.[0]??(e.kind===`score`?e.minimum:``),description:`New anchor`}]),children:`Add anchor`})]})}var qe=e=>({schemaVersion:`openpond.humanForm.v1`,mode:`individual`,instructions:e,criteria:[{id:`quality`,label:`Quality`,instructions:``,required:!0,allowAbstain:!0,kind:`score`,minimum:0,maximum:1,step:.1}]});function Je({value:e,rubric:t,onChange:n}){let r=e?j.safeParse((()=>{try{return JSON.parse(e)}catch{return null}})()):{success:!0,data:qe(t)},[i,a]=(0,V.useState)(!r.success),[o,s]=(0,V.useState)(!1),[c,l]=(0,V.useState)([]),[u,d]=(0,V.useState)(()=>r.success?r.data:qe(t)),f=j.safeParse(u);function p(e){a(!1),d(e),n(JSON.stringify(e)),l([])}function m(e,t){p({...u,criteria:u.criteria.map((n,r)=>r===e?{...n,...t}:n)})}return(0,W.jsxs)(`section`,{className:`human-form-editor`,"aria-label":`Human assessment form`,children:[i?(0,W.jsx)(xe,{error:`The stored form is invalid. The editor shows a starting form; explicitly save a corrected form before publication.`}):null,(0,W.jsxs)(`div`,{className:`flex justify-between`,children:[(0,W.jsx)(`h3`,{className:`font-medium`,children:`Assessment form`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>s(e=>!e),children:o?`Edit form`:`Preview form`})]}),f.success?null:(0,W.jsx)(xe,{error:f.error.issues[0]?.message}),o&&f.success?(0,W.jsx)(Ie,{form:u,answers:c,onChange:l}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{className:`block text-sm`,children:[`Form instructions`,(0,W.jsx)(`textarea`,{className:`w-full rounded-md bg-muted p-2`,value:u.instructions,maxLength:2e4,onChange:e=>p({...u,instructions:e.target.value})})]}),(0,W.jsxs)(`label`,{className:`block text-sm`,children:[`Assessment`,(0,W.jsxs)(`select`,{className:`ml-2 rounded-md bg-muted p-2`,value:u.mode,onChange:e=>p({...u,mode:e.target.value,criteria:e.target.value===`pairwise`?u.criteria:u.criteria.map(e=>e.kind===`preference`?{id:e.id,label:e.label,instructions:e.instructions,required:e.required,allowAbstain:e.allowAbstain,requireRationale:e.requireRationale,kind:`score`,minimum:0,maximum:5,step:1}:e)}),children:[(0,W.jsx)(`option`,{value:`individual`,children:`Individual attempt`}),(0,W.jsx)(`option`,{value:`pairwise`,children:`A/B pair`})]})]}),u.criteria.map((e,t)=>(0,W.jsxs)(`div`,{className:`space-y-2 border-b border-border py-3`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`input`,{className:`min-w-0 flex-1 rounded-md bg-muted p-2`,"aria-label":`Criterion name`,value:e.label,maxLength:500,onChange:e=>m(t,{label:e.target.value})}),(0,W.jsxs)(`select`,{className:`rounded-md bg-muted p-2`,"aria-label":`Criterion type`,value:e.kind,onChange:n=>{let r={id:e.id,label:e.label,instructions:e.instructions,required:e.required,allowAbstain:e.allowAbstain,requireRationale:e.requireRationale},i=n.target.value,a=i===`score`?{...r,kind:i,minimum:0,maximum:5,step:1}:i===`category`?{...r,kind:i,options:[`Pass`,`Fail`]}:i===`text`?{...r,kind:i,minimumLength:0,maximumLength:2e3}:i===`preference`?{...r,kind:i,allowTie:!0,requireStrength:!0}:{...r,kind:i};p({...u,criteria:u.criteria.map((e,n)=>n===t?a:e)})},children:[(0,W.jsx)(`option`,{value:`score`,children:`Score`}),(0,W.jsx)(`option`,{value:`boolean`,children:`Yes / No`}),(0,W.jsx)(`option`,{value:`category`,children:`Category`}),(0,W.jsx)(`option`,{value:`text`,children:`Text`}),u.mode===`pairwise`?(0,W.jsx)(`option`,{value:`preference`,children:`Preference`}):null]}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:u.criteria.length===1,onClick:()=>p({...u,criteria:u.criteria.filter((e,n)=>n!==t)}),children:`Remove`})]}),(0,W.jsx)(`textarea`,{"aria-label":`Criterion instructions`,className:`w-full rounded-md bg-muted p-2`,value:e.instructions,maxLength:2e4,onChange:e=>m(t,{instructions:e.target.value})}),e.kind===`score`?(0,W.jsx)(`div`,{className:`flex gap-2`,children:[`minimum`,`maximum`,`step`].map(n=>(0,W.jsxs)(`label`,{className:`text-sm`,children:[n,(0,W.jsx)(`input`,{className:`ml-2 w-20 rounded-md bg-muted p-2`,type:`number`,value:e[n],onChange:e=>m(t,{[n]:Number(e.target.value)})})]},n))}):null,e.kind===`category`?(0,W.jsxs)(`label`,{className:`block text-sm`,children:[`Options, one per line`,(0,W.jsx)(`textarea`,{className:`w-full rounded-md bg-muted p-2`,value:e.options.join(`
|
|
6
|
+
`),onChange:e=>m(t,{options:e.target.value.split(`
|
|
7
|
+
`)})})]}):null,e.kind===`text`?(0,W.jsxs)(`div`,{className:`flex gap-2`,children:[(0,W.jsxs)(`label`,{children:[`Minimum length`,(0,W.jsx)(`input`,{type:`number`,min:0,className:`ml-2 w-20 rounded-md bg-muted p-2`,value:e.minimumLength??0,onChange:e=>m(t,{minimumLength:Number(e.target.value)})})]}),(0,W.jsxs)(`label`,{children:[`Maximum length`,(0,W.jsx)(`input`,{type:`number`,className:`ml-2 w-20 rounded-md bg-muted p-2`,value:e.maximumLength,onChange:e=>m(t,{maximumLength:Number(e.target.value)})})]})]}):null,(0,W.jsx)(Ke,{criterion:e,onChange:e=>m(t,{anchors:e})}),(0,W.jsxs)(`div`,{className:`flex flex-wrap gap-4 text-sm`,children:[[`required`,`allowAbstain`,`requireRationale`].map(n=>(0,W.jsxs)(`label`,{className:`flex gap-2`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:!!e[n],onChange:e=>m(t,{[n]:e.target.checked})}),n===`allowAbstain`?`Allow abstention`:n===`requireRationale`?`Require rationale`:`Required`]},n)),e.kind===`preference`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:e.allowTie,onChange:e=>m(t,{allowTie:e.target.checked})}),` Allow tie`]}),(0,W.jsxs)(`label`,{children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:e.requireStrength??!1,onChange:e=>m(t,{requireStrength:e.target.checked})}),` Require strength`]})]}):null]})]},e.id)),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:u.criteria.length>=100,onClick:()=>p({...u,criteria:[...u.criteria,{id:`criterion-${crypto.randomUUID()}`,label:`New criterion`,instructions:``,required:!0,allowAbstain:!0,kind:`score`,minimum:0,maximum:5,step:1}]}),children:`Add criterion`})]})]})}function Ye(){return{schemaVersion:`openpond.taskRating.v1`,criteria:``,scale:{minimum:1,maximum:5},score:3,evidence:``,explanation:``}}function Xe({value:e,onChange:t}){return(0,W.jsxs)(`fieldset`,{children:[(0,W.jsx)(`legend`,{children:`Rate this response`}),(0,W.jsxs)(`label`,{children:[`Criteria`,(0,W.jsx)(`textarea`,{value:e.criteria,placeholder:`What makes this response good?`,maxLength:2e4,onChange:n=>t({...e,criteria:n.target.value})})]}),(0,W.jsxs)(`div`,{className:`learning-evidence-columns`,children:[(0,W.jsxs)(`label`,{children:[`Lowest score`,(0,W.jsx)(`input`,{type:`number`,step:`any`,value:Number.isFinite(e.scale.minimum)?e.scale.minimum:``,onChange:n=>t({...e,scale:{...e.scale,minimum:n.target.valueAsNumber}})})]}),(0,W.jsxs)(`label`,{children:[`Highest score`,(0,W.jsx)(`input`,{type:`number`,step:`any`,value:Number.isFinite(e.scale.maximum)?e.scale.maximum:``,onChange:n=>t({...e,scale:{...e.scale,maximum:n.target.valueAsNumber}})})]}),(0,W.jsxs)(`label`,{children:[`Score`,(0,W.jsx)(`input`,{type:`number`,min:Number.isFinite(e.scale.minimum)?e.scale.minimum:void 0,max:Number.isFinite(e.scale.maximum)?e.scale.maximum:void 0,step:`any`,value:Number.isFinite(e.score)?e.score:``,onChange:n=>t({...e,score:n.target.valueAsNumber})})]})]}),(0,W.jsxs)(`label`,{children:[`Evidence`,(0,W.jsx)(`textarea`,{value:e.evidence,placeholder:`Quote or describe the part of the response supporting your score.`,maxLength:2e4,onChange:n=>t({...e,evidence:n.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Explanation`,(0,W.jsx)(`textarea`,{value:e.explanation,placeholder:`Explain your judgment.`,maxLength:2e4,onChange:n=>t({...e,explanation:n.target.value})})]})]})}function Ze({value:e}){let t=y.safeParse(e);if(!t.success)return null;let n=t.data;return(0,W.jsxs)(`dl`,{children:[(0,W.jsx)(`dt`,{children:`Criteria`}),(0,W.jsx)(`dd`,{children:n.criteria}),(0,W.jsx)(`dt`,{children:`Score`}),(0,W.jsxs)(`dd`,{children:[n.score,` · Scale `,n.scale.minimum,`–`,n.scale.maximum]}),(0,W.jsx)(`dt`,{children:`Evidence`}),(0,W.jsx)(`dd`,{children:n.evidence||`No supporting evidence supplied.`}),(0,W.jsx)(`dt`,{children:`Explanation`}),(0,W.jsx)(`dd`,{children:n.explanation||`No explanation supplied.`})]})}var Qe=[{value:`custom_verifier`,label:`Code verifier · JavaScript`},{value:`state`,label:`Code verifier · Exact fields`},{value:`content`,label:`Code verifier · Text answer`},{value:`schema`,label:`Code verifier · Output schema`},{value:`artifact`,label:`Code verifier · Artifact reference`},{value:`runtime_event`,label:`Code verifier · Runtime events`},{value:`model_judge`,label:`LLM judge`},{value:`learned_model`,label:`Learned reward model`},{value:`human`,label:`Human review rubric`}];function $e(e){let t=e.reward?.implementation,n=t&&`verifierRef`in t?t.verifierRef.id:t&&`rubricRef`in t?t.rubricRef.id:t&&`inputContract`in t?t.inputContract.id:null,r=q(e.client,`asset`,n,1),i=q(e.client,`asset`,e.reward?.fixtureSetRef?.id??null,1);return n&&!r.resource||e.reward?.fixtureSetRef&&!i.resource?(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(X,{error:r.error??i.error}),(0,W.jsx)(`p`,{role:`status`,children:r.error||i.error?`Reward source is unavailable. Reload its exact release to edit it.`:`Loading Reward source…`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:e.onClose,children:`Back`})]}):(0,W.jsx)(et,{...e,sourceAsset:r.resource,fixtureAsset:i.resource})}function et({models:e,embedded:t,initialFields:n,allowedKinds:r,client:i,reward:a,sourceAsset:o,fixtureAsset:s,authoringDraft:c,fromLabel:l,onSaved:u,onClose:d,closeRef:f}){let[p]=(0,V.useState)(()=>c?.targetId??a?.id??`reward-${crypto.randomUUID()}`),[m]=(0,V.useState)(()=>{let e=ce(a,o,s);if(!l)return!a&&!c&&n?{...e,...n}:e;let t=we(l.evidence,l.feedback,a?.rawScore),r=y.parse(l.feedback.submission.value);return{...e,...a?{}:{name:`Reward for ${l.evidence.submission.exampleId}`,kind:`model_judge`,rubric:r.criteria},fixtures:[...(e.fixtures??[]).filter(e=>e.id!==t.id),t]}}),[h]=(0,V.useState)(()=>({...c?.fields??m,feedbackKey:a?ne(a):c?.fields.feedbackKey??m.feedbackKey??Pe(m.name,p)})),[g,_]=(0,V.useState)(h),[v,b]=(0,V.useState)(JSON.stringify(h)),[x,S]=(0,V.useState)(!a&&!c?.fields.feedbackKey&&!m.feedbackKey),[C,T]=(0,V.useState)(a?.revision??0),E=K(i),[ee,te]=(0,V.useState)(null);function O(e,t){return E.run(async n=>{te(e);try{return await t(n)}finally{te(null)}})}let k=ze(c),[A,re]=(0,V.useState)(`5`),[j,ie]=(0,V.useState)(`5`),ae=(0,V.useRef)(null),oe=()=>({targetKind:`reward`,targetId:p,baseRelease:a?w(a):null,fields:g});async function M(){let e=await O(`save`,e=>k.save(e,oe()));return e&&b(JSON.stringify(g)),!!e}let N=e=>_(t=>({...t,...e,...e.name!==void 0&&x?{feedbackKey:Pe(e.name,p)}:{}}));async function P(){let e=await O(`publish`,async e=>{g.fixtures?.length&&de(g.fixtures);let{reward:t,assets:n}=ue({id:p,fields:g,base:a}),{contentHash:r,...i}=t,o=await k.save(e,oe());if(g.kind!==`human`&&g.kind!==`learned_model`&&(g.fixtures?.length??0)>0){let t=(await e.list(`reward_check`,{parentId:p,status:`completed`,limit:100})).items.find(e=>e.matchesExpectations&&e.draft.id===o.id&&e.draft.revision===o.revision&&e.draft.contentHash===o.contentHash);if(t){let n=await e.command({action:`publish_checked_reward`,operationId:`calibrate:${t.id}:${t.revision}`,draft:w(o),checkId:t.id,checkRevision:t.revision});return D.parse(n.resources.find(e=>e.schemaVersion===`openpond.rewardRelease.v1`))}}let s=k.finalization(o,t),c=`reward:${t.contentHash}`,l=await e.command({action:`publish_resources`,operationId:c,finalizeDraft:s,resources:[...n.map(({contentHash:e,...t})=>({kind:`asset`,expectedRevision:0,content:t})),{kind:`reward`,expectedRevision:C,content:i}]});return D.parse(l.resources.find(e=>e.schemaVersion===`openpond.rewardRelease.v1`))});return e?(T(e.revision),b(JSON.stringify(g)),e):null}async function F(){return O(`check`,async e=>{de(g.fixtures??[]),ue({id:p,fields:g,base:a});let t=await k.save(e,oe());b(JSON.stringify(g));let n=g.kind===`model_judge`?Number(A):0;if(!Number.isFinite(n)||n<0||n>1e3)throw Error(`Enter a fixture cost limit between $0 and $1,000.`);let r=JSON.stringify([t.contentHash,n]),i=ae.current?.requestKey===r?ae.current:{requestKey:r,operationId:crypto.randomUUID()};ae.current=i;let o=await e.command({action:`queue_reward_check`,operationId:i.operationId,draft:w(t),timeoutMs:3e5,maximumSpendUsd:n}),s=fe.parse(o.resources[0]);return ie(A),ae.current=null,s})}let se=z({name:`Reward`,dirty:JSON.stringify(g)!==v||A!==j,busy:E.busy,save:A===j?M:void 0});(0,V.useImperativeHandle)(f,()=>({requestClose:()=>{se.requestLeave(d)}}));let I=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{children:[`Model provider`,(0,W.jsx)(`input`,{value:g.providerId,onChange:e=>N({providerId:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Judge model`,(0,W.jsx)(`input`,{value:g.modelId,onChange:e=>N({modelId:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Model revision (optional)`,(0,W.jsx)(`input`,{value:g.modelRevision,onChange:e=>N({modelRevision:e.target.value})})]})]});return(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[t?null:(0,W.jsx)(R,{title:a?`Edit Reward`:`New Reward`,description:`Save the grader and its source as an immutable release. Task formats keep the release they selected.`}),(0,W.jsx)(X,{error:E.error}),l?(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h2`,{children:`Retained label`}),(0,W.jsxs)(`p`,{children:[`Attempt `,l.evidence.submission.exampleId,` · revision `,l.evidence.revision,`. `,l.feedback.submittedBy?`Submitted by ${l.feedback.submittedBy.id} (${l.feedback.submittedBy.role}).`:`Submitter not recorded.`]}),(0,W.jsx)(Ze,{value:l.feedback.submission.value}),(0,W.jsx)(`p`,{children:`The fixture is an editable copy. The original label remains unchanged.`})]}):null,k.record?(0,W.jsx)(`p`,{role:`status`,children:v===JSON.stringify(g)?`Draft saved · revision ${k.record.revision}`:`Unsaved changes`}):null,(0,W.jsxs)(`label`,{children:[`Name`,(0,W.jsx)(`input`,{maxLength:500,value:g.name,onChange:e=>N({name:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Description (optional)`,(0,W.jsx)(`textarea`,{maxLength:1e4,value:g.description,onChange:e=>N({description:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Reward type`,(0,W.jsx)(`select`,{value:g.kind,onChange:e=>N({kind:e.target.value}),children:Qe.filter(e=>!r||r.includes(e.value)||e.value===g.kind).map(e=>(0,W.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),g.kind===`custom_verifier`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Y,{label:`JavaScript source`,value:g.code,onChange:e=>N({code:e}),hint:`Export a function returning score (0–1), passed, and feedback. It receives input, output, expectedOutput and evaluatorContext. Files, network and imports are unavailable.`}),(0,W.jsxs)(`label`,{children:[`Function export`,(0,W.jsx)(`input`,{value:g.exportName,onChange:e=>N({exportName:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Time limit (milliseconds)`,(0,W.jsx)(`input`,{type:`number`,min:1,max:3e5,value:g.timeout,onChange:e=>N({timeout:e.target.value})})]})]}):null,g.kind===`state`?(0,W.jsxs)(`label`,{children:[`Fields to compare`,(0,W.jsx)(`input`,{value:g.fields,onChange:e=>N({fields:e.target.value})}),(0,W.jsx)(`small`,{children:`Enter JSON field names, separated by commas. For example, answer compares the model’s output.answer with the example’s expectedOutput.answer. Every selected field must match exactly.`})]}):null,g.kind===`content`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{children:[`Output field`,(0,W.jsx)(`input`,{value:g.outputField,onChange:e=>N({outputField:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Expected field`,(0,W.jsx)(`input`,{value:g.expectedField,onChange:e=>N({expectedField:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Fixed expected text (optional)`,(0,W.jsx)(`input`,{value:g.expectedValue,onChange:e=>N({expectedValue:e.target.value})})]})]}):null,g.kind===`schema`?(0,W.jsx)(Y,{label:`Output JSON Schema`,value:g.schema,onChange:e=>N({schema:e})}):null,g.kind===`artifact`?(0,W.jsxs)(`label`,{children:[`Required artifact reference`,(0,W.jsx)(`input`,{value:g.reference,onChange:e=>N({reference:e.target.value})})]}):null,g.kind===`runtime_event`?(0,W.jsxs)(`label`,{children:[`Required events`,(0,W.jsx)(`input`,{value:g.events,onChange:e=>N({events:e.target.value})}),(0,W.jsx)(`small`,{children:`Separate event references with commas.`})]}):null,g.kind===`model_judge`||g.kind===`human`?(0,W.jsxs)(`label`,{children:[`Rubric`,(0,W.jsx)(`textarea`,{rows:10,value:g.rubric,onChange:e=>N({rubric:e.target.value})})]}):null,g.kind===`model_judge`?(0,W.jsxs)(W.Fragment,{children:[t&&e?(0,W.jsxs)(`label`,{children:[`Judge model`,(0,W.jsxs)(`select`,{value:g.providerId===`openpond`?g.modelId:``,onChange:e=>N({providerId:`openpond`,modelId:e.target.value,temperature:`0`}),children:[(0,W.jsx)(`option`,{value:``,children:`Choose model`}),e.map(e=>(0,W.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}):null,t?null:I,(0,W.jsx)(`p`,{children:`Changing the rubric or model requires calibration before this judge can grade examples.`})]}):null,g.kind===`human`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{children:[`Reviewer role`,(0,W.jsx)(`input`,{value:g.reviewerRole,onChange:e=>N({reviewerRole:e.target.value})})]}),(0,W.jsx)(Je,{value:g.humanForm??``,rubric:g.rubric,onChange:e=>N({humanForm:e})})]}):null,g.kind===`learned_model`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{children:[`Model version`,(0,W.jsx)(`input`,{value:g.learnedId,onChange:e=>N({learnedId:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Model version content hash`,(0,W.jsx)(`input`,{value:g.learnedHash,onChange:e=>N({learnedHash:e.target.value})})]}),(0,W.jsx)(Y,{label:`Model input contract`,value:g.inputContract,onChange:e=>N({inputContract:e})}),(0,W.jsxs)(`label`,{children:[`Raw score minimum`,(0,W.jsx)(`input`,{type:`number`,value:g.minimum,onChange:e=>N({minimum:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Raw score maximum`,(0,W.jsx)(`input`,{type:`number`,value:g.maximum,onChange:e=>N({maximum:e.target.value})})]})]}):null,(0,W.jsx)(Ue,{fixtures:g.fixtures??[],onChange:e=>N({fixtures:e})}),g.kind===`model_judge`?(0,W.jsx)(`p`,{children:`Check a passing and a failing example before publishing a calibrated judge. Publishing without a matching check keeps the judge pending.`}):null,(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Advanced settings`}),t&&g.kind===`model_judge`?I:null,(0,W.jsxs)(`label`,{children:[`Feedback key`,(0,W.jsx)(`input`,{value:g.feedbackKey,disabled:!!a,maxLength:80,pattern:`[a-z][a-z0-9_]{0,79}`,onChange:e=>{S(!1),N({feedbackKey:e.target.value})}}),(0,W.jsx)(`small`,{children:a?`This released score key stays fixed across grader updates.`:`Derived from the name and this grader’s identity. Override before publication if you need a technical score key.`})]}),g.kind===`model_judge`&&(!t||g.providerId===`openpond`&&e?.some(e=>e.id===g.modelId&&e.supportsSampling))?(0,W.jsxs)(`label`,{children:[`Temperature`,(0,W.jsx)(`input`,{type:`number`,min:0,max:2,step:.1,value:g.temperature,onChange:e=>N({temperature:e.target.value})}),(0,W.jsx)(`small`,{children:`0 uses deterministic sampling.`})]}):t&&g.kind===`model_judge`?(0,W.jsx)(`p`,{children:`Sampling is managed by the selected model provider.`}):null,g.kind===`model_judge`?(0,W.jsxs)(`label`,{children:[`Maximum fixture cost (USD)`,(0,W.jsx)(`input`,{type:`number`,min:0,max:1e3,step:`0.01`,value:A,onChange:e=>re(e.target.value)}),(0,W.jsx)(`small`,{children:`Total limit for this fixture check. A provider request starts only when its maximum charge fits the remaining limit.`})]}):null]}),(0,W.jsx)(We,{client:i,targetId:p,draft:k.record?.targetKind===`reward`?k.record:null,unchanged:JSON.stringify(g)===JSON.stringify(k.record?.fields),busy:E.busy||!g.fixtures?.length,onCheck:F,checking:ee===`check`}),(0,W.jsxs)($,{children:[t?null:(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:E.busy,onClick:()=>{se.requestLeave(d)},children:`Cancel`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:E.busy,onClick:()=>{M()},children:ee===`save`?`Saving draft…`:`Save draft`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:E.busy||!g.name.trim(),onClick:async()=>{let e=await P();e&&(se.allowNextNavigation(),u(e))},children:ee===`publish`?`Publishing…`:`Publish release ${C+1}`})]}),se.dialog]})}function tt({client:e,targetKind:t,onResume:n}){let[r,i]=(0,V.useState)(null),a=G(e,`draft`,{parentId:t,status:`draft`,limit:20,...r?{afterId:r}:{}}),o=K(e);return!a.loading&&!a.error&&!a.page?.items.length&&!r?null:(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h2`,{children:`Saved drafts`}),(0,W.jsx)(X,{error:a.error??o.error}),a.loading?(0,W.jsx)(`p`,{role:`status`,children:`Loading drafts…`}):(0,W.jsx)(`div`,{className:`training-table-wrap`,children:(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Draft`}),(0,W.jsx)(`th`,{children:`Saved`}),(0,W.jsx)(`th`,{children:`Actions`})]})}),(0,W.jsx)(`tbody`,{children:a.page?.items.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{children:e.fields.name||`Untitled draft`}),(0,W.jsx)(`td`,{children:new Date(e.updatedAt).toLocaleString()}),(0,W.jsxs)(`td`,{children:[(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:o.busy,onClick:()=>n(e),children:`Resume draft`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:o.busy,onClick:async()=>{await o.command({action:`archive_draft`,operationId:`archive:${e.contentHash}`,draft:w(e)})&&a.refresh()},children:`Archive draft`})]})]},e.id))})]})}),(0,W.jsx)(Z,{after:r,next:a.page?.nextCursor,onPage:i})]})}function nt(e){return{graderId:`grader-${crypto.randomUUID()}`,reward:w(e),role:e.implementation.kind===`human`?`evaluation`:`training`,normalization:e.rawScore.minimum===0&&e.rawScore.maximum===1?{kind:`identity`}:{kind:`linear`,...e.rawScore,direction:`higher`},weight:1,required:!0,hardGate:!1,privileged:!0,fixtureRefs:[]}}function rt({client:e,sources:t,onChange:n}){let[r,i]=(0,V.useState)(null),a=G(e,`reward`,{limit:30,...r?{afterId:r}:{}});return(0,W.jsxs)(`section`,{className:`learning-binding-fields`,"aria-label":`Reward sources`,children:[(0,W.jsx)(`h3`,{children:`Reward sources`}),(0,W.jsx)(`p`,{children:`Training and evaluation scores are calculated separately as weighted means. A failed hard gate sets its role’s score to zero. Missing required results make that role unscorable; missing optional results are excluded.`}),t.map((r,i)=>(0,W.jsx)(it,{client:e,source:r,onChange:e=>n(t.map((t,n)=>n===i?e:t)),onRemove:()=>n(t.filter((e,t)=>t!==i))},r.graderId)),(0,W.jsxs)(`details`,{open:!t.length,children:[(0,W.jsx)(`summary`,{children:`Add a published Reward`}),(0,W.jsx)(X,{error:a.error}),(0,W.jsxs)(`label`,{children:[`Published Reward`,(0,W.jsx)(Se,{label:`Add published Reward`,floating:!0,searchable:!0,value:``,disabled:t.length>=100,options:[{value:``,label:`Choose a Reward`},...(a.page?.items??[]).map(e=>({value:e.contentHash,label:`${e.name} · release ${e.revision}`}))],onChange:e=>{let r=a.page?.items.find(t=>t.contentHash===e);r&&n([...t,nt(r)])}})]}),a.loading?(0,W.jsx)(`p`,{role:`status`,children:`Loading Rewards…`}):a.page?.items.length?null:(0,W.jsx)(`p`,{children:`Publish a Reward in the Rewards library to add it here.`}),(0,W.jsx)(Z,{after:r,next:a.page?.nextCursor,onPage:i})]})]})}function it({client:e,source:t,onChange:n,onRemove:r}){let i=q(e,`reward`,t.reward.id,t.reward.revision),[a,o]=(0,V.useState)(String(t.reward.revision)),s=K(e),c=i.resource,l=e=>n({...t,...e});return(0,W.jsxs)(`fieldset`,{className:`learning-bound-source`,children:[(0,W.jsxs)(`legend`,{children:[c?.name??t.reward.id,` · release `,t.reward.revision]}),(0,W.jsx)(X,{error:i.error??s.error}),(0,W.jsxs)(`div`,{className:`learning-binding-grid`,children:[(0,W.jsxs)(`label`,{children:[`Role`,(0,W.jsx)(Se,{label:`Reward role`,floating:!0,value:t.role,onChange:e=>l({role:e}),options:[{value:`training`,label:`Training`,disabled:c?.implementation.kind===`human`},{value:`evaluation`,label:`Evaluation`}]})]}),(0,W.jsxs)(`label`,{children:[`Weight`,(0,W.jsx)(`input`,{type:`number`,min:0,max:1e3,step:`any`,value:t.weight,onChange:e=>l({weight:Number(e.target.value)})})]}),(0,W.jsxs)(`label`,{children:[`Score direction`,(0,W.jsx)(Se,{label:`Score direction`,floating:!0,value:t.normalization.kind===`identity`?`higher`:t.normalization.direction,disabled:!c,onChange:e=>{c&&l({normalization:{kind:`linear`,...c.rawScore,direction:e}})},options:[{value:`higher`,label:`Higher is better`},{value:`lower`,label:`Lower is better`}]}),(0,W.jsx)(`small`,{children:c?`Raw scores ${c.rawScore.minimum}–${c.rawScore.maximum} become 0–1 before combining.`:`Loading score contract…`})]}),(0,W.jsxs)(`label`,{children:[`Exact release`,(0,W.jsx)(`input`,{type:`number`,min:1,step:1,value:a,onChange:e=>o(e.target.value)}),(0,W.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:s.busy||Number(a)===t.reward.revision,onClick:async()=>{let e=await s.run(e=>e.get(`reward`,t.reward.id,Number(a)));if(e){let t=nt(e);l({reward:t.reward,normalization:t.normalization,...e.implementation.kind===`human`?{role:`evaluation`}:{}})}},children:`Use release`})]})]}),(0,W.jsxs)($,{children:[(0,W.jsxs)(`label`,{children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:t.required,onChange:e=>l({required:e.target.checked,...e.target.checked?{}:{hardGate:!1}})}),` Required result`]}),(0,W.jsxs)(`label`,{children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:t.hardGate,onChange:e=>l({hardGate:e.target.checked,...e.target.checked?{required:!0}:{}})}),` Hard gate`]}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:r,children:`Remove source`})]}),(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Release identity`}),(0,W.jsxs)(`small`,{children:[t.graderId,` · `,t.reward.contentHash]})]})]})}var at={type:`object`,properties:{question:{type:`string`}},required:[`question`],additionalProperties:!1},ot={type:`object`,properties:{answer:{type:`string`}},required:[`answer`],additionalProperties:!1};function st(e){let t=q(e.client,`binding`,e.definition?.rewardBinding.id??null,e.definition?.rewardBinding.revision);return e.definition&&!t.resource?(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(X,{error:t.error}),(0,W.jsx)(`p`,{role:`status`,children:t.error?`The format’s Reward binding is unavailable.`:`Loading exact Reward binding…`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:e.onClose,children:`Back`})]}):(0,W.jsx)(ct,{...e,binding:t.resource})}function ct({client:e,definition:t,binding:n,authoringDraft:r,onClose:i,onSaved:a}){let[o]=(0,V.useState)(()=>r?.targetId??t?.id??`format-${crypto.randomUUID()}`),s={name:t?.name??``,description:t?.description??``,instructions:t?.instructions??`Return the answer as JSON.`,input:JSON.stringify(t?.inputSchema??at,null,2),output:JSON.stringify(t?.outputSchema??ot,null,2),familyNamespace:t?.familyNamespace??o,sources:n?.sources??[],...n?.recipeRef?{recipeRef:n.recipeRef}:{}},[c,l]=(0,V.useState)(r?.fields??s),[u,d]=(0,V.useState)(JSON.stringify(r?.fields??s)),[f,p]=(0,V.useState)(t?.revision??0),[m,h]=(0,V.useState)(null),g=G(e,`binding`,{limit:30,...m?{afterId:m}:{}}),_=K(e),v=ze(r),y=()=>({targetKind:`definition`,targetId:o,baseRelease:t?w(t):null,fields:c});async function x(){let e=await _.run(e=>v.save(e,y()));return e&&d(JSON.stringify(c)),!!e}let S=e=>l(t=>({...t,...e}));async function T(){let e=await _.run(async e=>{let n=f+1,r=C.parse({schemaVersion:`openpond.rewardBinding.v1`,id:`${o}-r${n}-binding`,revision:1,sources:c.sources,...c.recipeRef?{recipeRef:c.recipeRef}:{},aggregation:`weighted_mean`,unscorable:`exclude_optional_require_all_required`}),i=E(r),a=t?.execution??{policy:{policyVisibleFields:[`input`,`policyVisibleContext`],privilegedFields:[`expectedOutput`,`evaluatorContext`],hiddenGraderRefs:[],connectedAppScopes:[]},environment:{protocolVersion:`openpond.environment.v1`,kind:`text`,entrypoint:`openpond.text.v1`,stateful:!1,deterministicSeeds:!0,lifecycle:[`create`,`reset`,`step`,`collect`,`destroy`],networkPolicy:`none`,defaultTimeoutMs:3e4},tools:[],capabilities:[]},s=b.parse({schemaVersion:`openpond.taskDefinition.v1`,id:o,revision:n,name:c.name,description:c.description,instructions:c.instructions,category:t?.category??`structured`,familyNamespace:c.familyNamespace,inputSchema:He(c.input),outputSchema:He(c.output),rewardBinding:w(i),harness:t?.harness??null,requiredOutputs:t?.requiredOutputs,contextRequirements:t?.contextRequirements,execution:{...a,policy:{...a.policy,hiddenGraderRefs:c.sources.filter(e=>e.privileged).map(e=>e.graderId)}}}),l=F.parse(E(s)),u=I.parse({schemaVersion:`openpond.learningSource.v1`,id:n===1?`${o}-direct`:`${o}-r${n}-direct`,revision:1,name:`${c.name} direct examples · r${n}`,kind:`direct`,taskDefinition:w(l),enabled:!0,allowedSplits:[`train`,`frozen_eval`,`validation`,`test`],mapping:null,adapterVersion:null}),d=await v.save(e,y()),p=await e.command({action:`publish_resources`,operationId:`format:${l.contentHash}`,finalizeDraft:v.finalization(d,l),resources:[{kind:`binding`,expectedRevision:0,content:r},{kind:`definition`,expectedRevision:f,content:s},{kind:`source`,expectedRevision:0,content:u}]});return F.parse(p.resources[1])});return e&&(p(e.revision),d(JSON.stringify(c))),e}let D=z({name:`task format`,dirty:u!==JSON.stringify(c),busy:_.busy,save:x});return(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(R,{title:t?`Edit task format`:`New task format`,description:`Define the task and bind its exact Reward releases. Publishing a new format release preserves previous examples, sources and grading.`}),(0,W.jsx)(X,{error:_.error??g.error}),v.record?(0,W.jsx)(`p`,{role:`status`,children:u===JSON.stringify(c)?`Draft saved · revision ${v.record.revision}`:`Unsaved changes`}):null,(0,W.jsxs)(`label`,{children:[`Name`,(0,W.jsx)(`input`,{value:c.name,onChange:e=>S({name:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Description`,(0,W.jsx)(`textarea`,{value:c.description,onChange:e=>S({description:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Instructions`,(0,W.jsx)(`textarea`,{value:c.instructions,onChange:e=>S({instructions:e.target.value})})]}),(0,W.jsx)(Y,{label:`Input schema`,value:c.input,onChange:e=>S({input:e})}),(0,W.jsx)(Y,{label:`Output schema`,value:c.output,onChange:e=>S({output:e})}),(0,W.jsxs)(`label`,{children:[`Task-family namespace`,(0,W.jsx)(`input`,{value:c.familyNamespace,onChange:e=>S({familyNamespace:e.target.value})}),(0,W.jsx)(`small`,{children:`Formats sharing task families must share this namespace to prevent training and held-out data overlap.`})]}),(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Start from a combined Reward`}),(0,W.jsx)(`p`,{children:`Selecting a combination replaces the sources below. Customize the copied settings before publishing.`}),(0,W.jsx)(`div`,{className:`learning-actions`,children:g.page?.items.filter(e=>e.name).map(e=>(0,W.jsxs)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>S({sources:e.sources.map(e=>({...e})),recipeRef:w(e)}),children:[e.name,` · release `,e.revision]},e.id))}),(0,W.jsx)(Z,{after:m,next:g.page?.nextCursor,onPage:h})]}),c.recipeRef?(0,W.jsxs)(`p`,{children:[`Initialized from combination release `,c.recipeRef.revision,`. This task format saves its own settings.`]}):null,(0,W.jsx)(rt,{client:e,sources:c.sources,onChange:e=>S({sources:e})}),(0,W.jsxs)($,{children:[(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:_.busy,onClick:()=>{D.requestLeave(i)},children:`Cancel`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:_.busy,onClick:()=>{x()},children:`Save draft`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:_.busy||!c.name.trim()||!c.sources.length,onClick:async()=>{let e=await T();e&&(D.allowNextNavigation(),a(e))},children:_.busy?`Publishing…`:`Publish task format release ${f+1}`})]}),D.dialog]})}function lt({client:e,binding:t,authoringDraft:n,onSaved:r,onClose:i,closeRef:a}){let[o]=(0,V.useState)(()=>n?.targetId??t?.id??`recipe-${crypto.randomUUID()}`),s={name:t?.name??``,description:t?.description??``,sources:t?.sources??[]},[c,l]=(0,V.useState)(n?.fields??s),[u,d]=(0,V.useState)(JSON.stringify(n?.fields??s)),[f,p]=(0,V.useState)(t?.revision??0),m=K(e),h=ze(n),g=()=>({targetKind:`binding`,targetId:o,baseRelease:t?w(t):null,fields:c});async function _(){let e=await m.run(e=>h.save(e,g()));return e&&d(JSON.stringify(c)),!!e}async function v(){let e=await m.run(async e=>{let t=C.parse({schemaVersion:`openpond.rewardBinding.v1`,id:o,revision:f+1,...c,aggregation:`weighted_mean`,unscorable:`exclude_optional_require_all_required`}),n=E(t),r=await h.save(e,g()),i=await e.command({action:`publish`,operationId:`binding:${n.contentHash}`,finalizeDraft:h.finalization(r,n),kind:`binding`,expectedRevision:f,content:t});return N.parse(i.resources[0])});return e&&(p(e.revision),d(JSON.stringify(c))),e}let y=z({name:`combined Reward`,dirty:u!==JSON.stringify(c),busy:m.busy,save:_});return(0,V.useImperativeHandle)(a,()=>({requestClose:()=>{y.requestLeave(i)}})),(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(R,{title:t?`Edit combined Reward`:`New combined Reward`,description:`Publish a reusable combination. Task formats copy these defaults into their own binding; existing formats keep their selected releases.`}),(0,W.jsx)(X,{error:m.error}),h.record?(0,W.jsx)(`p`,{role:`status`,children:u===JSON.stringify(c)?`Draft saved · revision ${h.record.revision}`:`Unsaved changes`}):null,(0,W.jsxs)(`label`,{children:[`Name`,(0,W.jsx)(`input`,{maxLength:500,value:c.name,onChange:e=>l({...c,name:e.target.value})})]}),(0,W.jsxs)(`label`,{children:[`Description`,(0,W.jsx)(`textarea`,{maxLength:1e4,value:c.description,onChange:e=>l({...c,description:e.target.value})})]}),(0,W.jsx)(rt,{client:e,sources:c.sources,onChange:e=>l({...c,sources:e})}),(0,W.jsxs)($,{children:[(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:m.busy,onClick:()=>{y.requestLeave(i)},children:`Cancel`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:m.busy,onClick:()=>{_()},children:`Save draft`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:m.busy||!c.name.trim()||!c.sources.length,onClick:async()=>{let e=await v();e&&(y.allowNextNavigation(),r(e))},children:m.busy?`Publishing…`:`Publish release ${f+1}`})]}),y.dialog]})}function ut({client:e,draft:t,onClose:n,onPublished:r,closeRef:i,embedded:a,models:o}){let s=q(e,t.targetKind,t.baseRelease?.id??null,t.baseRelease?.revision);return t.baseRelease&&!s.resource?(0,W.jsxs)(`div`,{className:`learning-workspace`,children:[(0,W.jsx)(X,{error:s.error}),(0,W.jsx)(`p`,{role:`status`,children:s.error?`The draft’s base release is unavailable.`:`Loading the draft’s exact base release…`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:n,children:`Back`})]}):t.targetKind===`definition`?(0,W.jsx)(st,{client:e,authoringDraft:t,definition:s.resource?F.parse(s.resource):null,onClose:n,onSaved:e=>r(e.id)}):t.targetKind===`reward`?(0,W.jsx)($e,{models:o,embedded:a,closeRef:i,client:e,authoringDraft:t,reward:s.resource?D.parse(s.resource):null,onClose:n,onSaved:e=>r(e.id)}):(0,W.jsx)(lt,{closeRef:i,client:e,authoringDraft:t,binding:s.resource?N.parse(s.resource):null,onClose:n,onSaved:e=>r(e.id)})}function dt({client:e,binding:t}){return(0,W.jsxs)(`section`,{"aria-label":`Reward combination`,children:[(0,W.jsx)(`p`,{children:`Weighted mean per role. Hard gates enforce a zero score when failed; required results must be available.`}),(0,W.jsx)(`div`,{className:`training-table-wrap`,children:(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Reward release`}),(0,W.jsx)(`th`,{children:`Role`}),(0,W.jsx)(`th`,{children:`Weight`}),(0,W.jsx)(`th`,{children:`Required`}),(0,W.jsx)(`th`,{children:`Hard gate`}),(0,W.jsx)(`th`,{children:`Direction`})]})}),(0,W.jsx)(`tbody`,{children:t.sources.map(t=>(0,W.jsx)(ft,{client:e,source:t},t.graderId))})]})}),(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Binding identity`}),(0,W.jsxs)(`small`,{children:[t.id,` · release `,t.revision,` · `,t.contentHash]}),t.recipeRef?(0,W.jsxs)(`p`,{children:[`Initialized from combination `,t.recipeRef.id,`, release `,t.recipeRef.revision,`.`]}):null]})]})}function ft({client:e,source:t}){let n=q(e,`reward`,t.reward.id,t.reward.revision);return(0,W.jsxs)(`tr`,{children:[(0,W.jsxs)(`td`,{children:[n.resource?.name??t.reward.id,` · r`,t.reward.revision,(0,W.jsx)(X,{error:n.error})]}),(0,W.jsx)(`td`,{children:t.role}),(0,W.jsx)(`td`,{children:t.weight}),(0,W.jsx)(`td`,{children:t.required?`Yes`:`No`}),(0,W.jsx)(`td`,{children:t.hardGate?`Yes`:`No`}),(0,W.jsx)(`td`,{children:t.normalization.kind===`linear`&&t.normalization.direction===`lower`?`Lower is better`:`Higher is better`})]})}function pt(e){return JSON.stringify({schemaVersion:`openpond.taskExample.v1`,sourceId:e.revision===1?`${e.id}-direct`:`${e.id}-r${e.revision}-direct`,idempotencyKey:`example-${crypto.randomUUID()}`,taskDefinition:w(e),exampleId:`your-record-id`,attemptId:`attempt-1`,occurredAt:new Date().toISOString(),familyKey:`your-family-id`,split:`train`,input:{},observedOutput:null,expected:null,evaluatorContext:null,assets:[],provenance:{sourceRecordRef:null,mappingHash:null}},null,2)}function mt({client:e,definition:t,onReview:n}){let[r,i]=(0,V.useState)(t),[a]=(0,V.useState)(()=>pt(r)),[o,s]=(0,V.useState)(a),[c,l]=(0,V.useState)(a),[u,d]=(0,V.useState)([]),[f,p]=(0,V.useState)(null),m=K(e);async function h(){return m.run(async e=>{if(new TextEncoder().encode(o).byteLength>8388608)throw Error(`Import at most 8 MiB at a time.`);let t;try{t=JSON.parse(o)}catch{t=o.split(/\r?\n/u).filter(e=>e.trim()).map((e,t)=>{try{return JSON.parse(e)}catch{throw Error(`Line ${t+1} is not valid JSON.`)}})}O(t,8388608);let n=Array.isArray(t)?t:[t];if(!n.length||n.length>100)throw Error(`Submit between 1 and 100 examples per import. The SDK supports larger feeds through individual idempotent submissions.`);let i=n.map((e,t)=>{let n=S.safeParse(e);if(!n.success)throw Error(`Row ${t+1}: ${n.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`; `)}`);if(!T(n.data.taskDefinition,w(r)))throw Error(`Row ${t+1} references a different task format release.`);return n.data}),a=await Promise.all([...new Set(i.map(e=>e.sourceId))].map(t=>e.get(`source`,t)));for(let e of i)Ce(a.find(t=>t.id===e.sourceId),e);d([]);for(let[t,n]of i.entries()){let r=te.parse((await e.submitExample(n)).resources[0]);d(e=>[...e,{row:t+1,id:r.id,revision:r.revision}])}return l(o),!0})}let g=z({name:`examples`,dirty:o!==c,busy:m.busy,save:async()=>!!await h()});return(0,W.jsxs)(`section`,{className:`learning-intake`,children:[(0,W.jsx)(`h2`,{children:`Submit examples`}),(0,W.jsx)(`p`,{children:`Fill in the task input and stable record, attempt, and family IDs. Observed output, expected answer, and evaluator context stay separate. Saved examples enter review; importing does not approve them for training.`}),(0,W.jsxs)(`p`,{children:[`Import into `,r.name,` · release `,r.revision,`.`]}),T(w(r),w(t))?null:(0,W.jsxs)(`button`,{type:`button`,className:`training-button secondary`,disabled:m.busy,onClick:()=>void g.requestLeave(()=>{let e=pt(t);i(t),s(e),l(e),d([]),p(null)}),children:[`Use format release `,t.revision]}),(0,W.jsx)(X,{error:m.error??f}),(0,W.jsxs)(`label`,{children:[`Import JSON or JSONL`,(0,W.jsx)(`input`,{type:`file`,accept:`.json,.jsonl,application/json`,disabled:m.busy,onChange:async e=>{let t=e.target.files?.[0];if(t){p(null);try{if(t.size>8388608)throw Error(`Select a file of at most 8 MiB.`);s(await t.text())}catch(e){p(e instanceof Error?e.message:String(e))}e.target.value=``}}})]}),(0,W.jsx)(Y,{label:`Example envelope or JSONL records`,hint:`Use a JSON object, an array, or one object per line. Retry a partial import with its original idempotency keys.`,value:o,onChange:s,disabled:m.busy}),(0,W.jsx)($,{children:(0,W.jsx)(`button`,{className:`training-button`,type:`button`,disabled:m.busy||!o.trim(),onClick:()=>{h()},children:m.busy?`Importing (${u.length} saved)…`:`Submit for review`})}),u.length?(0,W.jsxs)(`div`,{role:`status`,children:[(0,W.jsxs)(`p`,{children:[u.length,` examples saved.`]}),(0,W.jsx)(`ul`,{children:u.map(e=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`button`,{type:`button`,className:`labs-version-row-button`,onClick:()=>n(e.id),children:[`Review row `,e.row,` · evidence release `,e.revision]})},e.row))})]}):null,(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Submit from your application`}),(0,W.jsx)(`p`,{children:`Save the complete envelope above as example.json, install openpond-sdk, and run this TypeScript with Node. Preserve the record and its idempotency key on retries.`}),(0,W.jsx)(`pre`,{children:`import { readFile } from "node:fs/promises";
|
|
8
|
+
import { OpenPondLearningClient, TaskExampleSubmissionSchema } from "openpond-sdk/learning";
|
|
9
|
+
|
|
10
|
+
function required(name: string): string {
|
|
11
|
+
const value = process.env[name];
|
|
12
|
+
if (!value) throw new Error("Set " + name);
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const learning = new OpenPondLearningClient({
|
|
17
|
+
baseUrl: required("OPENPOND_API_URL"),
|
|
18
|
+
apiKey: required("OPENPOND_API_KEY"),
|
|
19
|
+
scope: required("OPENPOND_LEARNING_SCOPE"),
|
|
20
|
+
});
|
|
21
|
+
const example = TaskExampleSubmissionSchema.parse(
|
|
22
|
+
JSON.parse(await readFile("example.json", "utf8")),
|
|
23
|
+
);
|
|
24
|
+
const receipt = await learning.submitExample(example);
|
|
25
|
+
console.log(receipt.operationId);
|
|
26
|
+
// Retain sourceId, exampleId and attemptId for late feedback.`})]}),g.dialog]})}function ht({client:e,sourceId:t}){let[n,r]=(0,V.useState)(null),[i,a]=(0,V.useState)(0),[o,s]=(0,V.useState)(null),c=`${t}:${n??``}`;(0,V.useEffect)(()=>{let r=new AbortController;async function i(){try{if(!e)throw Error(`Connect to OpenPond to manage source access.`);let i=await e.listSourceCredentials(t,{limit:30,...n?{afterId:n}:{}},{signal:r.signal});r.signal.aborted||s({client:e,key:c,data:i,error:null})}catch(t){r.signal.aborted||s({client:e,key:c,data:null,error:t instanceof Error?t.message:String(t)})}}return i(),()=>r.abort()},[e,t,n,c,i]);let l=o?.client===e&&o.key===c?o:null,[u,d]=(0,V.useState)(`Application intake`),[f,p]=(0,V.useState)(30),[m,h]=(0,V.useState)(null),[g,_]=(0,V.useState)(!1),[v,y]=(0,V.useState)(null),b=(0,V.useRef)(null),x=K(e),S=z({name:`source credential`,dirty:!1,busy:x.busy}),C=m?.client===e&&m.sourceId===t?m.value:null;async function w(){await x.run(async e=>{let n=JSON.stringify({sourceId:t,name:u.trim(),days:f});(b.current?.client!==e||b.current.key!==n)&&(b.current={client:e,key:n,request:pe({sourceId:t,name:u.trim(),expiresAt:new Date(Date.now()+f*864e5).toISOString()})});let r=await e.createSourceCredential(b.current.request);return h({client:e,sourceId:t,value:r}),b.current=null,y(null),_(!1),r})&&a(e=>e+1)}async function T(e){await x.run(n=>n.revokeSourceCredential(t,e))&&(C?.credential.id===e&&h(null),a(e=>e+1))}return(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h3`,{children:`Application access`}),(0,W.jsx)(`p`,{children:`Create a credential for this source. It can submit examples and feedback, but cannot read private evidence, grade, approve, train or manage models.`}),(0,W.jsxs)(`p`,{children:[`Source: `,(0,W.jsx)(`code`,{children:t})]}),(0,W.jsx)(X,{error:x.error??l?.error??null}),(0,W.jsxs)(`label`,{children:[`Credential name`,(0,W.jsx)(`input`,{value:u,maxLength:100,disabled:x.busy,onChange:e=>d(e.target.value)})]}),(0,W.jsxs)(`label`,{children:[`Expires after`,(0,W.jsxs)(`select`,{value:f,disabled:x.busy,onChange:e=>p(Number(e.target.value)),children:[(0,W.jsx)(`option`,{value:7,children:`7 days`}),(0,W.jsx)(`option`,{value:30,children:`30 days`}),(0,W.jsx)(`option`,{value:90,children:`90 days`})]})]}),(0,W.jsx)($,{children:(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:!e||!u.trim()||x.busy,onClick:()=>{w()},children:`Create source credential`})}),C?(0,W.jsxs)(`div`,{role:`status`,children:[(0,W.jsx)(`p`,{children:`Copy this credential now. Its secret will not be shown again after closing.`}),(0,W.jsxs)(`label`,{children:[`Source credential`,(0,W.jsx)(`input`,{type:g?`text`:`password`,readOnly:!0,value:C.apiKey,autoComplete:`off`})]}),(0,W.jsxs)($,{children:[(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:async()=>{try{await navigator.clipboard.writeText(C.apiKey),y(`Credential copied.`)}catch{y(`Clipboard access failed. Show the credential, then select and copy it.`)}},children:`Copy credential`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>_(e=>!e),children:g?`Hide credential`:`Show credential`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>{h(null),_(!1)},children:`Dismiss credential`})]}),v?(0,W.jsx)(`p`,{children:v}):null]}):null,l?(0,W.jsxs)(`div`,{className:`training-table-wrap`,children:[(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Name`}),(0,W.jsx)(`th`,{children:`Key prefix`}),(0,W.jsx)(`th`,{children:`Expires`}),(0,W.jsx)(`th`,{children:`Status`}),(0,W.jsx)(`th`,{children:`Action`})]})}),(0,W.jsx)(`tbody`,{children:l.data?.items.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{children:e.name}),(0,W.jsx)(`td`,{children:(0,W.jsx)(`code`,{children:e.keyPrefix})}),(0,W.jsx)(`td`,{children:new Date(e.expiresAt).toLocaleString()}),(0,W.jsx)(`td`,{children:e.revokedAt?`Revoked`:Date.parse(e.expiresAt)<=Date.now()?`Expired`:`Active`}),(0,W.jsx)(`td`,{children:(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:x.busy||e.revokedAt!==null,onClick:()=>{T(e.id)},children:`Revoke`})})]},e.id))})]}),l.data&&!l.data.items.length?(0,W.jsx)(`p`,{children:`No source credentials on this page.`}):null]}):(0,W.jsx)(`p`,{role:`status`,children:`Loading source credentials…`}),(0,W.jsx)(Z,{after:n,next:l?.data?.nextCursor,onPage:r}),S.dialog]})}function gt({client:e,selectedId:t,after:n,onSelect:r,onPage:i,onReview:a,allowCredentials:o=!0}){let s=G(e,`definition`,{limit:30,...n?{afterId:n}:{}}),[c,l]=(0,V.useState)(null),[u,d]=(0,V.useState)(null),f=q(e,`definition`,t),p=f.resource??s.page?.items.find(e=>e.id===t)??null,m=q(e,`binding`,p?.rewardBinding.id??null,p?.rewardBinding.revision);return(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(R,{title:p?.name??`Task formats`,description:`Define input, output and grading once, then submit examples through JSON or the SDK. Formats are shared across models in this workspace.`,actions:(0,W.jsx)(`button`,{type:`button`,className:`training-button`,onClick:()=>d(`new`),children:`New task format`})}),(0,W.jsx)(X,{error:s.error??f.error}),p?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)($,{children:[(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>r(null),children:`All task formats`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button`,onClick:()=>d(p),children:`Edit as next release`})]}),(0,W.jsx)(`p`,{children:p.instructions}),(0,W.jsxs)(`p`,{children:[`Release `,p.revision,` · `,p.contentHash]}),(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Input and output contracts`}),(0,W.jsx)(Q,{label:`Input schema`,value:p.inputSchema}),(0,W.jsx)(Q,{label:`Output schema`,value:p.outputSchema})]}),(0,W.jsx)(X,{error:m.error}),m.resource?(0,W.jsx)(dt,{client:e,binding:m.resource}):null,o?(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Connect an application`}),(0,W.jsx)(ht,{client:e,sourceId:p.revision===1?`${p.id}-direct`:`${p.id}-r${p.revision}-direct`},`${p.id}:${p.revision}`)]}):null,(0,W.jsx)(mt,{client:e,definition:p,onReview:a},p.id)]}):t?(0,W.jsxs)(W.Fragment,{children:[f.error?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:f.refresh,children:`Retry task format`}):(0,W.jsx)(`p`,{role:`status`,children:`Loading task format…`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>r(null),children:`All task formats`})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(tt,{client:e,targetKind:`definition`,onResume:l}),(0,W.jsx)(`div`,{className:`training-table-wrap`,children:(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Task format`}),(0,W.jsx)(`th`,{children:`Category`}),(0,W.jsx)(`th`,{children:`Release`})]})}),(0,W.jsx)(`tbody`,{children:s.page?.items.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{children:(0,W.jsxs)(`button`,{type:`button`,className:`labs-version-row-button`,onClick:()=>r(e.id),children:[(0,W.jsx)(`strong`,{children:e.name}),(0,W.jsx)(`small`,{children:e.description})]})}),(0,W.jsx)(`td`,{children:e.category}),(0,W.jsx)(`td`,{children:e.revision})]},e.id))})]})}),s.loading?(0,W.jsx)(`p`,{role:`status`,children:`Loading task formats…`}):s.page?.items.length?null:(0,W.jsx)(`p`,{children:`Create a task format to accept structured examples and human corrections.`}),(0,W.jsx)(Z,{after:n,next:s.page?.nextCursor,onPage:i})]}),c?(0,W.jsx)(be,{ariaLabel:`Resume Task format`,className:`labs-rename-dialog labs-model-taskset-dialog learning-editor-dialog`,backdropClassName:`labs-rename-backdrop`,dismissDisabled:!0,onClose:()=>void 0,children:(0,W.jsx)(ut,{client:e,draft:c,onClose:()=>l(null),onPublished:e=>{l(null),f.refresh(),s.refresh(),r(e)}},c.id)}):null,u?(0,W.jsx)(be,{ariaLabel:`Task format`,className:`labs-rename-dialog labs-model-taskset-dialog learning-editor-dialog`,backdropClassName:`labs-rename-backdrop`,dismissDisabled:!0,onClose:()=>void 0,children:(0,W.jsx)(st,{definition:u===`new`?null:u,client:e,onClose:()=>d(null),onSaved:e=>{d(null),s.refresh(),f.refresh(),r(e.id)}},u===`new`?`new`:`${u.id}:${u.revision}`)}):null]})}function _t({client:e,evidence:t,feedback:n}){let[r,i]=(0,V.useState)(!1);return n.submission.expectedEvidenceHash!==t.contentHash||!t.submission.observedOutput?null:r?(0,W.jsx)(vt,{client:e,evidence:t,feedback:n}):(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>i(!0),children:`Use label to check Reward`})}function vt({client:e,evidence:t,feedback:n}){let r=q(e,`definition`,t.submission.taskDefinition.id,t.submission.taskDefinition.revision),i=q(e,`binding`,r.resource?.rewardBinding.id??null,r.resource?.rewardBinding.revision),[a,o]=(0,V.useState)(null),[s,c]=(0,V.useState)(``);return n.submission.expectedEvidenceHash!==t.contentHash||!t.submission.observedOutput?null:(0,W.jsxs)(`div`,{children:[(0,W.jsx)(X,{error:r.error??i.error}),i.resource?.sources.map(e=>(0,W.jsxs)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>o(e.reward),children:[`Check / refine `,e.graderId,` with this label`]},e.graderId)),i.resource&&!i.resource.sources.length?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>o(`new`),children:`Create Reward from this label`}):null,s?(0,W.jsx)(`p`,{role:`status`,children:s}):null,a?(0,W.jsx)(be,{ariaLabel:`Reward from label`,className:`labs-rename-dialog labs-model-taskset-dialog learning-editor-dialog`,backdropClassName:`labs-rename-backdrop`,dismissDisabled:!0,onClose:()=>void 0,children:(0,W.jsx)(yt,{client:e,evidence:t,feedback:n,rewardRef:a===`new`?null:a,onClose:()=>o(null),onSaved:(e,t)=>{o(null),c(`Saved Reward ${e} · revision ${t} with this label as a fixture. Existing task bindings retain their selected release.`)}})}):null]})}function yt({client:e,evidence:t,feedback:n,rewardRef:r,onClose:i,onSaved:a}){let o=q(e,`reward`,r?.id??null,r?.revision);return r&&!o.resource?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(X,{error:o.error}),(0,W.jsx)(`p`,{children:`Loading the Reward selected by this task…`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:i,children:`Close`})]}):(0,W.jsx)($e,{client:e,reward:o.resource,fromLabel:{evidence:t,feedback:n},onClose:i,onSaved:e=>a(e.id,e.revision)})}function bt({client:e,evidence:t,decision:n,onChanged:r,onTarget:i}){let[a,o]=(0,V.useState)(null),s=G(e,`feedback`,{parentId:t.id,limit:20,...a?{afterId:a}:{}},!0),[c,l]=(0,V.useState)(`outcome`),[u,d]=(0,V.useState)(Ye),[f,p]=(0,V.useState)(`{}`),[m,h]=(0,V.useState)(``),g=K(e),_=z({name:`feedback`,dirty:f!==`{}`||m!==``||JSON.stringify(u)!==JSON.stringify(Ye()),busy:g.busy,save:v});async function v(){let e=await g.run(e=>e.submitFeedback({schemaVersion:`openpond.taskFeedback.v1`,sourceId:t.submission.sourceId,exampleId:t.submission.exampleId,attemptId:t.submission.attemptId,idempotencyKey:J(),expectedEvidenceHash:t.contentHash,occurredAt:new Date().toISOString(),kind:c,value:c===`outcome`?y.parse(u):He(f),note:m}));return e&&(s.refresh(),p(`{}`),h(``),d(Ye())),!!e}return(0,W.jsxs)(`section`,{className:`learning-feedback`,children:[(0,W.jsx)(`h2`,{children:`Feedback and corrections`}),(0,W.jsx)(`p`,{children:`Input, ground-truth and family corrections create a new evidence revision. Grade and review that revision before sealing it.`}),(0,W.jsx)(X,{error:g.error??s.error}),(0,W.jsxs)(`label`,{children:[`Feedback type`,(0,W.jsxs)(`select`,{value:c,onChange:e=>l(e.target.value),children:[(0,W.jsx)(`option`,{value:`target_correction`,children:`Proposed supervised target`}),(0,W.jsx)(`option`,{value:`ground_truth_correction`,children:`Correct expected answer`}),(0,W.jsx)(`option`,{value:`input_correction`,children:`Correct task input`}),(0,W.jsx)(`option`,{value:`family_resolution`,children:`Resolve family`}),(0,W.jsx)(`option`,{value:`outcome`,children:`Outcome evidence`})]})]}),c===`outcome`?(0,W.jsx)(Xe,{value:u,onChange:d}):(0,W.jsx)(Y,{label:`Feedback value`,value:f,onChange:p,hint:c===`family_resolution`?`Use {"familyKey":"stable-source-family"}.`:void 0}),(0,W.jsxs)(`label`,{children:[`Feedback note`,(0,W.jsx)(`textarea`,{value:m,onChange:e=>h(e.target.value)})]}),(0,W.jsx)($,{children:(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:g.busy,onClick:()=>{v()},children:`Save feedback for review`})}),s.page?.items.map(a=>(0,W.jsxs)(`article`,{className:`learning-feedback-entry`,children:[(0,W.jsx)(`h3`,{children:a.submission.kind.replaceAll(`_`,` `)}),(0,W.jsxs)(`p`,{children:[a.status,` · `,a.submission.occurredAt]}),(0,W.jsx)(`p`,{children:a.submittedBy?`${a.submittedBy.role===`source`?`Source`:`Reviewer`}: ${a.submittedBy.id}`:`Submitter not recorded`}),(0,W.jsx)(`p`,{children:a.submission.expectedEvidenceHash===t.contentHash?`Current attempt revision`:`Earlier or unspecified attempt revision`}),(0,W.jsx)(`p`,{children:a.submission.note}),y.safeParse(a.submission.value).success?(0,W.jsx)(Ze,{value:a.submission.value}):(0,W.jsx)(Q,{label:`Proposed value`,value:a.submission.value}),a.status===`pending_review`?a.submission.kind===`target_correction`?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>i(a.submission.value),children:`Use as proposed target for grading`}):[`ground_truth_correction`,`input_correction`,`family_resolution`].includes(a.submission.kind)?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:g.busy,onClick:async()=>{await g.command({action:`apply_correction`,operationId:J(),feedbackId:a.id,evidence:w(t)})&&r()},children:`Apply correction as new evidence revision`}):(0,W.jsx)(`p`,{children:`Use this outcome when making the evidence review decision above.`}):null,a.status===`pending_review`?(0,W.jsxs)($,{children:[n&&[`outcome`,`target_correction`].includes(a.submission.kind)?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:g.busy,onClick:async()=>{await g.command({action:`resolve_feedback`,operationId:J(),feedbackId:a.id,expectedRevision:a.revision,disposition:`applied`,decision:w(n),note:`Applied the current evidence review to this feedback.`})&&s.refresh()},children:`Resolve with current review`}):null,(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:g.busy,onClick:async()=>{await g.command({action:`resolve_feedback`,operationId:J(),feedbackId:a.id,expectedRevision:a.revision,disposition:`rejected`,decision:null,note:`Rejected by the reviewer.`})&&s.refresh()},children:`Reject feedback`})]}):null,a.review?(0,W.jsxs)(`p`,{children:[`Resolved by `,a.review.actorId,`: `,a.review.note]}):null,y.safeParse(a.submission.value).success?(0,W.jsx)(_t,{client:e,evidence:t,feedback:a}):null]},a.id)),(0,W.jsx)(Z,{after:a,next:s.page?.nextCursor,onPage:o}),_.dialog]})}function xt(e){let[t,n]=(0,V.useState)(!1);return(0,W.jsxs)(`details`,{onToggle:e=>n(e.currentTarget.open),children:[(0,W.jsx)(`summary`,{children:`Reward breakdown`}),t?(0,W.jsx)(St,{...e}):null]})}function St({client:e,composition:t}){let n=q(e,`binding`,t.binding.id,t.binding.revision);return(0,W.jsxs)(`section`,{"aria-label":`Reward result breakdown`,children:[(0,W.jsx)(X,{error:n.error}),(0,W.jsx)(`p`,{children:[`training`,`evaluation`].filter(e=>t[e].status!==`not_configured`).map(e=>{let n=t[e];return`${e===`training`?`Training`:`Evaluation`}: ${n.status===`scored`?`${n.score} · ${n.passed?`passed`:`failed`}`:n.status}`}).join(` · `)}),(0,W.jsx)(`div`,{className:`training-table-wrap`,children:(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Reward`}),(0,W.jsx)(`th`,{children:`Role`}),(0,W.jsx)(`th`,{children:`Result`}),(0,W.jsx)(`th`,{children:`Raw score`}),(0,W.jsx)(`th`,{children:`Normalized`}),(0,W.jsx)(`th`,{children:`Weight / gate`}),(0,W.jsx)(`th`,{children:`Feedback`})]})}),(0,W.jsx)(`tbody`,{children:t.results.map(t=>(0,W.jsx)(Ct,{client:e,result:t,settings:n.resource?.sources.find(e=>e.graderId===t.graderId)},t.graderId))})]})}),(0,W.jsxs)(`small`,{children:[`Binding release `,t.binding.revision,` · receipt `,t.contentHash]})]})}function Ct({client:e,result:t,settings:n}){let r=q(e,`reward`,t.reward.id,t.reward.revision);return(0,W.jsxs)(`tr`,{children:[(0,W.jsxs)(`td`,{children:[r.resource?.name??t.reward.id,` · r`,t.reward.revision,(0,W.jsx)(X,{error:r.error})]}),(0,W.jsx)(`td`,{children:t.role}),(0,W.jsx)(`td`,{children:t.status===`scored`?t.passed?`Passed`:`Failed`:t.status}),(0,W.jsx)(`td`,{children:t.rawScore??`—`}),(0,W.jsx)(`td`,{children:t.normalizedScore??`—`}),(0,W.jsx)(`td`,{children:n?`${n.weight}${n.hardGate?` · hard gate`:n.required?` · required`:` · optional`}`:`Loading…`}),(0,W.jsx)(`td`,{children:t.message??`—`})]})}function wt({canManage:e=!0,client:t,selectedId:n,after:r,sourceId:i=null,onClearSource:a,onSelect:o,onPage:s,onBatches:c}){let[l,u]=(0,V.useState)(`inbox`),d=G(t,`evidence`,{reviewState:l,limit:30,...i?{parentId:i}:{},...r?{afterId:r}:{}}),f=q(t,`source`,i);return n?(0,W.jsx)(Et,{canManage:e,client:t,id:n,sourceId:i,onBack:()=>{d.refresh(),o(null)},onBatches:c},n):(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(R,{title:`Labeling`,description:i?`Review tasks from ${f.resource?.name??i}. Task validity and target approval remain separate decisions.`:`Label observed responses, propose corrections, and approve tasks independently. Examples are shared across Models in this workspace.`,actions:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:c,children:`Approved batches`}),i&&a?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:a,children:`All workspace examples`}):null]})}),(0,W.jsxs)($,{children:[(0,W.jsx)(Se,{label:`Review status`,floating:!0,value:l,options:[{value:`inbox`,label:`Inbox`},{value:`reviewed`,label:`Reviewed`}],onChange:e=>{u(e),s(null)}}),(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:d.loading||!d.page?.items.length,onClick:()=>{let e=d.page?.items[0];e&&o(e.id)},children:`Review next`})]}),(0,W.jsx)(X,{error:d.error??f.error}),(0,W.jsx)(`div`,{className:`training-table-wrap`,children:(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Request`}),(0,W.jsx)(`th`,{children:`Source`}),(0,W.jsx)(`th`,{children:`Split`}),(0,W.jsx)(`th`,{children:`Attempt`})]})}),(0,W.jsx)(`tbody`,{children:d.page?.items.map(e=>(0,W.jsx)(Tt,{client:t,evidence:e,onSelect:o},e.id))})]})}),d.loading?(0,W.jsx)(`p`,{role:`status`,children:`Loading examples…`}):d.page?.items.length?null:(0,W.jsx)(`p`,{children:`No retained examples are available for labeling in this scope.`}),(0,W.jsx)(Z,{after:r,next:d.page?.nextCursor,onPage:s})]})}function Tt({client:e,evidence:t,onSelect:n}){let r=q(e,`source`,t.source.id,t.source.revision);return(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{children:(0,W.jsx)(`button`,{type:`button`,className:`labs-version-row-button`,onClick:()=>n(t.id),children:(0,W.jsx)(`strong`,{children:Be(t.submission.input)||`Open request`})})}),(0,W.jsxs)(`td`,{children:[r.resource?.name??`Source`,(0,W.jsx)(X,{error:r.error})]}),(0,W.jsx)(`td`,{children:t.submission.split}),(0,W.jsx)(`td`,{children:t.submission.attemptId})]})}function Et({canManage:e,client:t,id:n,sourceId:r,onBack:i,onBatches:a}){let o=q(t,`evidence`,n);return o.resource&&r&&o.resource.source.id!==r?(0,W.jsxs)(`div`,{className:`learning-workspace`,children:[(0,W.jsx)(X,{error:`This example does not belong to the selected source.`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:i,children:`Back to review`})]}):o.resource?(0,W.jsx)(Dt,{canManage:e,client:t,evidence:o.resource,onBack:i,onBatches:a,onChanged:o.refresh},`${n}:${o.resource.revision}`):(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(X,{error:o.error}),(0,W.jsx)(`p`,{role:`status`,children:o.error?`This example could not be opened.`:`Loading example…`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:i,children:`Back to review`})]})}function Dt({canManage:e,client:t,evidence:n,onBack:r,onBatches:i,onChanged:a}){let o=q(t,`definition`,n.submission.taskDefinition.id,n.submission.taskDefinition.revision),s=G(t,`grade`,{parentId:n.id,limit:30},!0),c=G(t,`decision`,{parentId:n.id,limit:1}),[l,u]=(0,V.useState)(Ye),[d,f]=(0,V.useState)(!1),[p,m]=(0,V.useState)(`{}`),[h,g]=(0,V.useState)(`0`),[_,v]=(0,V.useState)(null),b=q(t,`grade`,_,void 0,!0),[S,C]=(0,V.useState)(`approved`),[E,D]=(0,V.useState)(``),[ee,te]=(0,V.useState)(!1),[O,k]=(0,V.useState)(null),A=K(t),{inspection:ne,error:re}=Le(t,w(n)),j=JSON.stringify({rating:l,correctAnswer:d,target:p,trainingUse:S,note:E}),[ie,ae]=(0,V.useState)(j),M=(0,V.useRef)(null),N=z({name:`review`,dirty:j!==ie,busy:A.busy,save:fe}),P=new Map;for(let e of[...s.page?.items??[],b.resource])e&&T(e.evidence,w(n))&&e.revision>=(P.get(e.id)?.revision??0)&&P.set(e.id,e);let F=[...P.values()].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)),I=F.find(e=>e.target===`observed`&&e.status===`completed`)??null,ce=null;try{d&&(ce=He(p))}catch{}let le=F.find(e=>e.target===`proposed_target`&&e.status===`completed`&&Ot(e.output,ce))??null,ue=F.find(e=>[`queued`,`running`,`cancelling`].includes(e.status)),de=c.page?.items[0]??null,L=de&&T(de.evidence,w(n))?de:null;async function fe(){let e=await A.run(async e=>{if(!M.current||M.current.snapshot!==j){let e=y.parse(l),t=d?He(p):null;if(d&&S!==`approved`)throw Error(`Choose Allow training to approve a corrected answer, or turn off the correction.`);if(S===`approved`&&!ne?.taskReady)throw Error(`This task needs correction. Choose Exclude or Decide later before saving.`);if(d&&!kt(le))throw Error(`Check the corrected answer and resolve any failed reward checks before saving.`);let r={schemaVersion:`openpond.taskFeedback.v1`,sourceId:n.submission.sourceId,exampleId:n.submission.exampleId,attemptId:n.submission.attemptId,expectedEvidenceHash:n.contentHash,occurredAt:new Date().toISOString(),note:E},i={...r,kind:`outcome`,value:e,idempotencyKey:J()},a=t?{...r,kind:`target_correction`,value:t,idempotencyKey:J()}:null,o={action:`review`,operationId:J(),evidence:w(n),expectedRevision:de?.revision??0,disposition:S,targetApproval:t?`approved`:S===`rejected`?`rejected`:`not_required`,approvedTarget:t,observedGradeId:I?.id??null,targetGradeId:t?le?.id??null:null,note:E},s=J(),c=J(),u=null,f=null,m=null;M.current={snapshot:j,execute:async e=>{let t=u??=x.parse((await e.submitFeedback(i)).resources[0]),n=a?f??=x.parse((await e.submitFeedback(a)).resources[0]):null,r=m??=se.parse((await e.command(o)).resources[0]);if(r.taskAdmissibility!==`pending`)for(let[i,a]of[[t,s],[n,c]])i&&await e.command({action:`resolve_feedback`,operationId:a,feedbackId:i.id,expectedRevision:i.revision,disposition:`applied`,decision:w(r),note:E});return r}}}return M.current.execute(e)});return e&&(ae(j),k(S===`pending`?`Rating saved. This example stays in the inbox until training use is decided.`:`Review saved.`),M.current=null),!!e}async function pe(e){let t=await A.run(async t=>oe.parse((await t.command({action:`queue_grade`,operationId:J(),evidence:w(n),target:e,proposedTarget:e===`observed`?null:He(p),timeoutMs:3e4,maximumSpendUsd:Number(h)})).resources[0]));t&&v(t.id)}return(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(R,{title:o.resource?.name??`Review response`,actions:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:r,children:`Back to labeling`}),e?(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:A.busy||c.loading,onClick:()=>{fe()},children:A.busy?`Saving…`:`Save review`}):null]})}),(0,W.jsx)(X,{error:A.error??re??o.error??c.error??s.error??b.error}),O?(0,W.jsx)(`p`,{role:`status`,children:O}):null,(0,W.jsxs)(`div`,{className:`learning-review-layout`,children:[(0,W.jsxs)(`div`,{className:`learning-review-content`,children:[(0,W.jsx)(`section`,{className:`learning-review-surface`,children:(0,W.jsx)(Q,{label:`Request`,value:n.submission.input})}),(0,W.jsx)(`section`,{className:`learning-review-surface`,children:(0,W.jsx)(Q,{label:`Response`,value:n.submission.observedOutput})}),(0,W.jsxs)(`details`,{className:`learning-review-surface`,children:[(0,W.jsx)(`summary`,{children:`Expected answer and task context`}),(0,W.jsx)(Q,{label:`Expected answer (evaluator only)`,value:n.submission.expected}),(0,W.jsx)(Q,{label:`Evaluator context`,value:n.submission.evaluatorContext}),o.resource?(0,W.jsx)(Q,{label:`Instructions`,value:o.resource.instructions}):null]})]}),(0,W.jsxs)(`aside`,{className:`learning-review-sidebar`,children:[(0,W.jsxs)(`section`,{className:`learning-review-surface`,children:[(0,W.jsx)(`h2`,{children:`Automated reward`}),(0,W.jsx)(`p`,{children:I?At(I):ue?`Checking response…`:`No completed check for this response.`}),I?.composition?(0,W.jsx)(xt,{client:t,composition:I.composition}):null,(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Run a check`}),(0,W.jsxs)(`label`,{children:[`Maximum cost (USD)`,(0,W.jsx)(`input`,{type:`number`,min:0,max:1e3,step:`0.01`,disabled:!e||A.busy,value:h,onChange:e=>g(e.target.value)}),(0,W.jsx)(`small`,{children:`Per check. $0 permits checks that do not call a model.`})]}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:!e||A.busy||!ne?.taskReady||!n.submission.observedOutput||!!ue,onClick:()=>{pe(`observed`)},children:`Check response`})]})]}),(0,W.jsx)(`section`,{className:`learning-review-surface`,children:(0,W.jsxs)(`fieldset`,{disabled:!e||A.busy,children:[(0,W.jsx)(Xe,{value:l,onChange:u}),(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Corrected answer`}),(0,W.jsxs)(`label`,{className:`learning-inline-choice`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:d,onChange:e=>f(e.target.checked)}),`Provide an answer for supervised training`]}),d?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Y,{label:`Corrected answer`,hint:`Match the task's output fields. The answer must pass its reward checks before approval.`,value:p,onChange:m}),(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:!ne?.taskReady||!!ue,onClick:()=>{pe(`proposed_target`)},children:`Check corrected answer`}),(0,W.jsx)(`p`,{children:le?At(le):`Check this answer before saving.`})]}):null]}),(0,W.jsxs)(`details`,{children:[(0,W.jsxs)(`summary`,{children:[`Training use · `,S===`approved`?`Allowed`:S===`rejected`?`Excluded`:`Undecided`]}),(0,W.jsx)(`p`,{children:`A low response rating can still be useful for training. Exclude an example when the task itself should not be used.`}),(0,W.jsx)(Se,{label:`Training use`,floating:!0,value:S,options:[{value:`approved`,label:`Allow training`},{value:`rejected`,label:`Exclude this task`},{value:`pending`,label:`Decide later`}],onChange:e=>C(e)}),ne?.issues.length?(0,W.jsx)(`ul`,{children:ne.issues.map((e,t)=>(0,W.jsx)(`li`,{children:e.message},t))}):null]}),(0,W.jsxs)(`label`,{children:[`Review note`,(0,W.jsx)(`textarea`,{value:E,onChange:e=>D(e.target.value)})]})]})})]})]}),(0,W.jsxs)(`details`,{className:`learning-review-surface`,onToggle:e=>te(e.currentTarget.open),children:[(0,W.jsx)(`summary`,{children:`Review history and task corrections`}),ee?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q,{label:`Latest decision`,value:L?{trainingUse:L.taskAdmissibility,automatedResult:L.observedQuality,correctedAnswer:L.targetApproval,note:L.note}:`No review saved.`}),(0,W.jsx)(`div`,{className:`training-table-wrap`,children:(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Checked answer`}),(0,W.jsx)(`th`,{children:`Status`}),(0,W.jsx)(`th`,{children:`Result`})]})}),(0,W.jsx)(`tbody`,{children:F.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{children:e.target===`observed`?`Response`:`Corrected answer`}),(0,W.jsx)(`td`,{children:e.status}),(0,W.jsx)(`td`,{children:At(e)})]},e.id))})]})}),e?(0,W.jsx)(bt,{client:t,evidence:n,decision:L,onChanged:()=>{N.requestLeave(a)},onTarget:e=>{m(JSON.stringify(e,null,2)),f(!0)}}):null,(0,W.jsx)(Q,{label:`Provenance`,value:{source:n.source,...n.submission.provenance,supersedes:n.supersedes}}),e&&L?.taskAdmissibility===`approved`&&i?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:i,children:`Approved batches`}):null]}):null]}),N.dialog]})}function Ot(e,t){if(e===t)return!0;if(!e||!t||typeof e!=`object`||typeof t!=`object`)return!1;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>Ot(e,t[n]));let n=e,r=t,i=Object.keys(n);return i.length===Object.keys(r).length&&i.every(e=>Object.hasOwn(r,e)&&Ot(n[e],r[e]))}function kt(e){if(e?.status!==`completed`||!e.composition)return!1;let t=[e.composition.training,e.composition.evaluation].filter(e=>e.status!==`not_configured`);return t.length>0&&t.every(e=>e.status===`scored`&&e.passed===!0)}function At(e){return e.failure?e.failure:e.composition?[e.composition.training,e.composition.evaluation].filter(e=>e.status!==`not_configured`).map(e=>e.status===`scored`?`${e.passed?`Passed`:`Failed`} · ${e.score}`:e.status).join(`; `):`No result recorded`}function jt({client:e,selectedId:t,after:n,onSelect:r,onPage:i,onTrain:a,onAttach:o,onUseBatch:s,purpose:c}){let l=G(e,`batch`,{limit:30,...n?{afterId:n}:{}}),[u,d]=(0,V.useState)(!1),f=l.page?.items.filter(e=>!c||e.purpose===c)??[];return t?(0,W.jsx)(Nt,{client:e,id:t,onBack:()=>r(null),onTrain:a,onAttach:o,onUseBatch:s,purpose:c}):(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(R,{title:`Approved batches`,description:`Seal exact evidence and review revisions for supervised training, reward training, or held-out evaluation.`,actions:(0,W.jsx)(`button`,{type:`button`,className:`training-button`,onClick:()=>d(!0),children:`Seal a batch`})}),(0,W.jsx)(X,{error:l.error}),u?(0,W.jsx)(Mt,{client:e,requiredPurpose:c,onClose:()=>d(!1),onSealed:e=>{d(!1),l.refresh(),r(e.id)}}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`training-table-wrap`,children:(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Batch`}),(0,W.jsx)(`th`,{children:`Purpose`}),(0,W.jsx)(`th`,{children:`Examples`}),(0,W.jsx)(`th`,{children:`Sealed`})]})}),(0,W.jsx)(`tbody`,{children:f.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{children:(0,W.jsx)(`button`,{type:`button`,className:`labs-version-row-button`,onClick:()=>r(e.id),children:e.id})}),(0,W.jsx)(`td`,{children:e.purpose.replaceAll(`_`,` `)}),(0,W.jsx)(`td`,{children:e.examples.length}),(0,W.jsx)(`td`,{children:new Date(e.sealedAt).toLocaleString()})]},e.id))})]})}),(0,W.jsx)(Z,{after:n,next:l.page?.nextCursor,onPage:i}),l.loading?(0,W.jsx)(`p`,{role:`status`,children:`Loading batches…`}):!f.length&&!l.error?(0,W.jsx)(`p`,{children:`No matching reviewed batches on this page.`}):null]})]})}function Mt({client:e,onClose:t,onSealed:n,requiredPurpose:r}){let[i,a]=(0,V.useState)(null),o=G(e,`decision`,{status:`approved`,limit:30,...i?{afterId:i}:{}}),[s,c]=(0,V.useState)(new Map),[l,u]=(0,V.useState)(r??`supervised_training`),[d]=(0,V.useState)(()=>`batch-${crypto.randomUUID()}`),f=K(e),p=(0,V.useRef)(null),[m,h]=(0,V.useState)(!1),g=z({name:`batch selection`,dirty:s.size>0,busy:f.busy}),_=f.busy||m;return(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h2`,{children:`Choose reviewed examples`}),(0,W.jsx)(`p`,{children:`All selected examples must reference one task format release. Supervised batches require approved targets; evaluation batches require held-out examples. Stale reviews and split conflicts are checked again when sealing.`}),(0,W.jsx)(X,{error:o.error??f.error}),(0,W.jsxs)(`label`,{children:[`Purpose`,(0,W.jsx)(Se,{label:`Batch purpose`,floating:!0,value:l,disabled:_||!!r,options:[{value:`supervised_training`,label:`Supervised training`},{value:`reward_training`,label:`Reward training`},{value:`evaluation`,label:`Held-out evaluation`}],onChange:e=>u(e)})]}),(0,W.jsx)(`div`,{className:`training-table-wrap`,children:(0,W.jsxs)(`table`,{className:`training-data-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Select`}),(0,W.jsx)(`th`,{children:`Evidence`}),(0,W.jsx)(`th`,{children:`Observed quality`}),(0,W.jsx)(`th`,{children:`Target`}),(0,W.jsx)(`th`,{children:`Reviewer`})]})}),(0,W.jsx)(`tbody`,{children:o.page?.items.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{children:(0,W.jsx)(`input`,{type:`checkbox`,"aria-label":`Select ${e.evidence.id}`,disabled:_||l===`supervised_training`&&e.targetApproval!==`approved`,checked:s.has(e.id),onChange:t=>c(n=>{let r=new Map(n);return t.target.checked?r.set(e.id,e):r.delete(e.id),r})})}),(0,W.jsxs)(`td`,{children:[e.evidence.id,` · r`,e.evidence.revision]}),(0,W.jsx)(`td`,{children:e.observedQuality}),(0,W.jsx)(`td`,{children:e.targetApproval}),(0,W.jsx)(`td`,{children:e.actor.id})]},e.id))})]})}),(0,W.jsx)(Z,{after:i,next:o.page?.nextCursor,onPage:a}),(0,W.jsxs)($,{children:[(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:f.busy,onClick:()=>void g.requestLeave(t),children:`Cancel`}),(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:f.busy||!s.size,onClick:async()=>{let e=await f.run(async e=>{if(p.current)return ee.parse((await e.command(p.current)).resources[0]);let t=[...s.values()],n=[];for(let r of t){let t=await e.get(`evidence`,r.evidence.id);if(!T(r.evidence,w(t)))throw Error(`Review ${r.id} is stale. Review the latest evidence revision.`);n.push(t)}let r=n[0].submission.taskDefinition;if(n.some(e=>!T(e.submission.taskDefinition,r)))throw Error(`Choose examples from the same task format release.`);return p.current={action:`seal_batch`,operationId:`${d}-seal`,batchId:d,taskDefinition:r,purpose:l,evidence:n.map(w),decisions:t.map(w)},h(!0),ee.parse((await e.command(p.current)).resources[0])});e&&n(e)},children:f.busy?`Sealing…`:m?`Retry sealing`:`Seal ${s.size} examples`})]}),g.dialog]})}function Nt({client:e,id:t,onBack:n,onTrain:r,onAttach:i,onUseBatch:a,purpose:o}){let s=q(e,`batch`,t),c=G(e,`package`,{parentId:t,limit:1}),l=K(e);return(0,W.jsxs)(`div`,{className:`labs-flat-body labs-resource-page learning-workspace`,children:[(0,W.jsx)(R,{title:`Sealed task batch`,description:t,actions:(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:n,children:`All batches`})}),(0,W.jsx)(X,{error:s.error??c.error??l.error}),s.resource?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`p`,{children:[s.resource.examples.length,` examples · `,s.resource.purpose.replaceAll(`_`,` `),` · sealed by `,s.resource.sealedBy]}),(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{children:`Inspect exact batch provenance`}),(0,W.jsx)(Q,{label:`Exact batch provenance`,value:s.resource})]}),a&&(!o||s.resource.purpose===o)?(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:l.busy,onClick:()=>{l.run(async()=>(await a(s.resource),!0))},children:`Use in experiment`}):null,i&&s.resource.purpose!==`evaluation`?(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:l.busy,onClick:()=>{l.run(async()=>(await i(s.resource),!0))},children:`Use batch for this Model`}):null,(0,W.jsxs)($,{children:[r&&s.resource.purpose!==`evaluation`?(0,W.jsx)(`button`,{type:`button`,className:`training-button`,disabled:l.busy,onClick:()=>{l.run(async()=>(await r(s.resource),!0))},children:`Prepare training run`}):null,c.page?.items[0]?(0,W.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:()=>{let e=c.page.items[0],t=URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:`application/json`})),n=document.createElement(`a`);n.href=t,n.download=`${e.id}.json`,n.click(),setTimeout(()=>URL.revokeObjectURL(t),1e3)},children:`Export Taskset package`}):null]})]}):s.error?null:(0,W.jsx)(`p`,{role:`status`,children:`Loading batch…`})]})}export{Ie as C,G as S,Ae as T,Ve as _,ut as a,K as b,tt as c,$ as d,X as f,He as g,Q as h,dt as i,$e as l,Z as m,wt as n,lt as o,Y as p,gt as r,nt as s,jt as t,We as u,Be as v,je as w,q as x,Re as y};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TrainingCreationPanel-ClpylNsr.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/index-B6XX_0h3.js","assets/index-g7UqJhnX.css","assets/icons-Bk2b68aC.js","assets/loader-circle-y-SSPwpk.js","assets/x-Jx2jlP9u.js","assets/App-CCuh99JW.js","assets/useQuery-D2MQ7e5U.js","assets/schemas-Brv9Vmnk.js","assets/common-BWVSBnpX.js","assets/settings-BC-bzgk6.js","assets/client-choice-storage-DitqKiIT.js","assets/api-client-DJRVOFzS.js","assets/requests-DmeUYik4.js","assets/create-pipeline-DsZzNkt9.js","assets/profile-ref-D8lxL7dW.js","assets/chunk-H3JZ3P5T-DolwEJXo.js","assets/work-outputs-D_8TovAK.js","assets/chunk-GS5HEE4M-C0RLeIsy.js","assets/chunk-GCUWJUUM-Dy6oUNJ6.js","assets/reward-checks-DJJZYgf8.js","assets/intake-contracts-B8JZKYwb.js","assets/training-DWfghwfZ.js","assets/chunk-Q4RGCEOI-Cr-dg4Nk.js","assets/ponder-desktop-Ca-9KggQ.js","assets/chat-resources-Beh5lB36.js","assets/app-models-BUdzQbXo.js","assets/model-display-zPvC4L2B.js","assets/submit-issue-command-HfKzyxg5.js","assets/connected-app-mentions-D3wRZLwI.js","assets/profile-agent-labels-Duh96b8x.js","assets/browser-sidebar-links-PVPCrsDJ.js","assets/browser-url-LACq2Ngu.js","assets/query-scope-BRpcgljO.js","assets/bot-Doyx3T4j.js","assets/chevron-down-DX1hzujj.js","assets/chevron-right-DHN0y3KC.js","assets/copy-DTQhoBNg.js","assets/external-link-H1629UU6.js","assets/maximize-2-CByk9-zN.js","assets/message-square-C889vRqm.js","assets/plus-DFFWjhPw.js","assets/refresh-cw-D61-Ozk3.js","assets/square-terminal-Djpzo2Qs.js","assets/AppToastContext-EpiT1dHs.js","assets/NativeSetupTerminal-D4JnbpyD.js","assets/AppDialog-CxjDHVk9.js","assets/PageChrome-Cz_fCqtn.js","assets/NativeSetupTerminal-3eR9D_R3.css","assets/organization-types-PP-yuR2J.js","assets/ui-theme.generated-D-mc26qt.js","assets/App-DpFKLxuA.css","assets/MainPane-CQQxSDPS.js","assets/useChatContextSelection-C0eMm2g6.js","assets/ComposerAttachments-BdJGCYzI.js","assets/training-model-data-CIysl8wH.js","assets/AttachmentTypeIcon-BXvZy5gB.js","assets/presentation-0bzvu6_u.js","assets/image-0DPVY6Ev.js","assets/chunk-C3TS766N-ppRhs95p.js","assets/LabModelWorkspace-u2Ulm_z4.js","assets/CartesianChart-brqLBqnF.js","assets/ModelProjectPageHeader-Dge19aE1.js","assets/LabModelWorkspace-DOrgCk9Z.css","assets/cloud-upload-HdzNTgr2.js","assets/folder-open-CAGdWOrr.js","assets/paperclip-BeIdaspf.js","assets/play-CHXXdkuO.js","assets/square-BE_4JMR3.js","assets/MainPane-BZlNLfTM.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n,t as r}from"./index-B6XX_0h3.js";import{t as i}from"./useQuery-D2MQ7e5U.js";import{a,m as o,v as s}from"./schemas-Brv9Vmnk.js";import{d as c}from"./common-BWVSBnpX.js";import{a as l}from"./chunk-AG6UJ3DI-D9KZjTYP.js";import{i as u}from"./chunk-3BYFS4RO-ztZjcMmt.js";import{n as d}from"./api-client-DJRVOFzS.js";import{i as f,n as p,r as m,t as h}from"./ChatTimelineEntry-CwZbn16X.js";import{Pt as g,zt as _}from"./App-CCuh99JW.js";import{Rt as v}from"./MainPane-CQQxSDPS.js";var y=e(t(),1),b=n(),x=o({teamId:s(),items:a(l).max(50),nextCursor:s().nullable()}).strict();function S({connection:e,teamId:t,actorId:n,sessionId:r,scopeKey:a,running:o,onOpen:s}){let l=i({queryKey:[`conversation-formal-review`,a,t,n,r],enabled:!o,staleTime:3e4,queryFn:async({signal:n})=>{let i=(r,i)=>d(e,`/v1/training/evaluation-workspace`,{method:`POST`,signal:n,body:JSON.stringify({teamId:t,projectId:null,operation:r,value:i})}),a,o=new Set;for(let e=0;e<20;e++){let e=x.parse(await i(`connectedList`,{limit:50,...a?{cursor:a}:{}}));if(e.teamId!==t)throw Error(`Recorded evidence workspace changed.`);for(let n of e.items.filter(e=>e.sessionId===r&&[`native_chat`,`native_work`].includes(e.source))){let e=n.boundaries.find(e=>e.projection===`conversation`&&e.terminal!==`unknown`&&e.coverage.answer&&e.outputHash);if(!e||!n.projectId)continue;let a={id:n.sourceId,snapshotHash:n.snapshotHash,boundaryId:e.id,boundaryRevisionHash:e.revisionHash},o=u.parse(await i(`connectedCase`,a));if(o.teamId!==t||o.sessionId!==r||o.projectId!==n.projectId||c(o.ref)!==c(a)||o.evidence.boundary.revisionHash!==a.boundaryRevisionHash||o.evidence.boundary.outputHash!==e.outputHash)throw Error(`The retained conversation snapshot changed.`);return{ref:a,projectId:n.projectId}}if(!e.nextCursor)return null;if(o.has(e.nextCursor))throw Error(`Recorded source pagination repeated its cursor.`);o.add(e.nextCursor),a=e.nextCursor}return null}});return!l.data||o?null:(0,b.jsx)(`button`,{type:`button`,className:`training-button secondary`,onClick:async()=>{let e=_(`datasets`,null,{area:`console`,projectId:l.data.projectId,reviewSource:l.data.ref});await g(e)&&s()},children:`Formally review retained conversation`})}var C=(0,y.lazy)(()=>r(()=>import(`./TrainingCreationPanel-ClpylNsr.js`).then(e=>({default:e.TrainingStatusReceipt})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70])));function w({formalReviewTeamId:e,formalReviewActorId:t,formalReviewScopeKey:n,onFormalReviewOpen:r,accountBaseUrl:i=null,activeWorkspaceAppId:a=null,billingOrganizationSlug:o=null,billingTeamId:s=null,connection:c=null,conversationKey:l,creation:u=null,onOpenBrowserLink:d,onOpenAttachmentInSidebar:g,onOpenFileInSidebar:_,onOpenProfileSettings:x,onResolveUserQuestion:w,onOpenSession:E,onOpenPonder:D,onScroll:O,rows:k,sessionId:A,turnRunning:j,userAttachmentDisplay:M=`full`,threadRef:N,workspaceRootPath:P=null,beforeMessages:F,afterMessages:I,loading:L=!1,label:R=`Conversation`,renderMessage:z,usageSessionId:B=A}){let V=(0,y.useMemo)(()=>v(k),[k]),H=f(V,l),U=T(V),W=m({connection:c,latestTurnId:U,sessionId:B,turnRunning:j});return(0,b.jsx)(b.Fragment,{children:(0,b.jsxs)(`section`,{className:`chat-thread`,"aria-label":R,"aria-busy":L,ref:N,onScroll:O,children:[F,k.map(e=>(0,b.jsx)(h,{row:e,renderMessage:e=>z?.(e)??(0,b.jsx)(p,{activeWorkspaceAppId:a,accountBaseUrl:i,billingOrganizationSlug:o,billingTeamId:s,connection:c,animateInitialContent:e.message.role===`assistant`&&H.has(e.message.id),kvCacheSummary:e.message.footerCacheSummary??(e.showFooter&&e.message.turnId?W.get(e.message.turnId)??null:null),message:e.message,codexRecoveryEnabled:e.message.turnId===U,onOpenAttachmentInSidebar:g,onOpenFileInSidebar:_,onOpenBrowserLink:d,onOpenProfileSettings:x,onResolveUserQuestion:w,onOpenSession:E,onOpenPonder:D,userAttachmentDisplay:M,workspaceRootPath:P,showFooter:e.showFooter},e.id)},e.id)),I,c&&e&&t&&n&&A&&r?(0,b.jsx)(S,{connection:c,teamId:e,actorId:t,scopeKey:n,sessionId:A,running:j,onOpen:r},n+A):null,u?(0,b.jsx)(y.Suspense,{fallback:null,children:(0,b.jsx)(C,{creation:u})}):null]})})}function T(e){for(let t=e.length-1;t>=0;--t){let n=e[t]?.turnId;if(n)return n}return null}export{w as MainChatThread};
|