openpond 0.2.57 → 0.2.59
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 +2 -1
- package/dist/app-server.js +1 -1
- package/dist/chunks/{actions-command-QU4H53OG.js → actions-command-JJ3CU7J6.js} +1 -1
- package/dist/chunks/{app-layer-NSTE5HIT.js → app-layer-KAUZAHGE.js} +1 -1
- package/dist/chunks/{app-server-connected-apps-JHGWLBXT.js → app-server-connected-apps-SXGZOUJJ.js} +1 -1
- package/dist/chunks/{app-server-evaluations-GJPFWIDA.js → app-server-evaluations-N4OMTPCI.js} +1 -1
- package/dist/chunks/{app-server-harness-services-IH4G6POY.js → app-server-harness-services-DDFUMNYC.js} +1 -1
- package/dist/chunks/app-server-runtime-SVB6L26M.js +2 -0
- package/dist/chunks/{apps-BKTOR4F7.js → apps-EZB56RHV.js} +1 -1
- package/dist/chunks/{chunk-SDXFLO7J.js → chunk-22VMH6JV.js} +1 -1
- package/dist/chunks/{chunk-FTEOCCPB.js → chunk-25JDHAZ5.js} +1 -1
- package/dist/chunks/{chunk-PPAPVGJP.js → chunk-2G4BEISF.js} +1 -1
- package/dist/chunks/{chunk-O72BSKSO.js → chunk-2L5XWJJ5.js} +1 -1
- package/dist/chunks/{chunk-QOTVNQDI.js → chunk-2RNQQNB7.js} +2 -2
- package/dist/chunks/{chunk-O6ULLQJ6.js → chunk-2WKUBGIF.js} +1 -1
- package/dist/chunks/{chunk-F4KOGISR.js → chunk-37MWETFU.js} +1 -1
- package/dist/chunks/{chunk-D74JEERO.js → chunk-3CDEBKSU.js} +1 -1
- package/dist/chunks/{chunk-L6K7ERG5.js → chunk-4EDIRCD3.js} +1 -1
- package/dist/chunks/{chunk-JYKRR7E5.js → chunk-4GPXTISD.js} +1 -1
- package/dist/chunks/chunk-57TRXBLT.js +3 -0
- package/dist/chunks/{chunk-LQQNBVEB.js → chunk-76M2MEHV.js} +1 -1
- package/dist/chunks/{chunk-HCYX6RHP.js → chunk-776WNDV2.js} +1 -1
- package/dist/chunks/{chunk-HDL5YSAA.js → chunk-7AVNZF36.js} +1 -1
- package/dist/chunks/{chunk-3K4VVB7S.js → chunk-7K7O3CKY.js} +1 -1
- package/dist/chunks/chunk-7UH4YDA7.js +3 -0
- package/dist/chunks/{chunk-KUERKVEU.js → chunk-ABZ2ZOLU.js} +1 -1
- package/dist/chunks/{chunk-ZRDGQDZL.js → chunk-ANFDRKUU.js} +1 -1
- package/dist/chunks/{chunk-GWCHDF2C.js → chunk-AQD7K4Z5.js} +1 -1
- package/dist/chunks/{chunk-4D7HWVWD.js → chunk-ARLOVWQ3.js} +1 -1
- package/dist/chunks/{chunk-2QUCCP6Z.js → chunk-ATAOHSFR.js} +1 -1
- package/dist/chunks/{chunk-3RCRSMWZ.js → chunk-BE6SS65L.js} +2 -2
- package/dist/chunks/{chunk-Z54O534A.js → chunk-BGJYITVI.js} +1 -1
- package/dist/chunks/{chunk-BLXEAZCQ.js → chunk-BL3YH2QU.js} +1 -1
- package/dist/chunks/{chunk-2D4Y3HNW.js → chunk-BO5JZYWG.js} +1 -1
- package/dist/chunks/{chunk-ZGTOK7ZK.js → chunk-BQS7Z4AP.js} +1 -1
- package/dist/chunks/{chunk-7HPDGZOR.js → chunk-BRORSFJX.js} +3 -3
- package/dist/chunks/{chunk-XXYGGNVM.js → chunk-BVQWVIGK.js} +1 -1
- package/dist/chunks/{chunk-SWUEFLOH.js → chunk-C37PUHA6.js} +1 -1
- package/dist/chunks/{chunk-3VUATFZD.js → chunk-CGWA54LE.js} +1 -1
- package/dist/chunks/{chunk-EQFGBL3O.js → chunk-CKMSBAI2.js} +1 -1
- package/dist/chunks/{chunk-YOBN7KTF.js → chunk-COHMDT7A.js} +7 -7
- package/dist/chunks/{chunk-JDEEWOD7.js → chunk-DPHAN6N3.js} +1 -1
- package/dist/chunks/{chunk-YOQRYNLP.js → chunk-DZUN5YWB.js} +1 -1
- package/dist/chunks/{chunk-6FDWRG55.js → chunk-E72UU4VX.js} +1 -1
- package/dist/chunks/{chunk-ABD5M2D2.js → chunk-EOBHQ3JT.js} +1 -1
- package/dist/chunks/chunk-EQOV34UH.js +2 -0
- package/dist/chunks/chunk-EUMXMT3S.js +2 -0
- package/dist/chunks/{chunk-773TH7FN.js → chunk-EWOSLZDX.js} +1 -1
- package/dist/chunks/{chunk-HIOKCIL7.js → chunk-FAYASU7Z.js} +1 -1
- package/dist/chunks/{chunk-EIRYMSEG.js → chunk-FKJHEZCW.js} +1 -1
- package/dist/chunks/{chunk-Q2QL6UWN.js → chunk-GL3NX3F3.js} +1 -1
- package/dist/chunks/{chunk-UKMA4R6X.js → chunk-GOPFFQZU.js} +1 -1
- package/dist/chunks/{chunk-RAXOSUSW.js → chunk-GUOLMLZN.js} +1 -1
- package/dist/chunks/{chunk-GZ7M5XBP.js → chunk-GVZLGS2U.js} +1 -1
- package/dist/chunks/chunk-GYJQKCEO.js +5 -0
- package/dist/chunks/{chunk-XDQMGUWL.js → chunk-H7ATCPPB.js} +1 -1
- package/dist/chunks/{chunk-J2TWKFML.js → chunk-IFDALGZE.js} +4 -4
- package/dist/chunks/{chunk-S5ESN275.js → chunk-IRV6GWGG.js} +3 -3
- package/dist/chunks/chunk-JFXINDOQ.js +3 -0
- package/dist/chunks/{chunk-PRGBLQVH.js → chunk-JMBQYBPI.js} +1 -1
- package/dist/chunks/{chunk-DBK66CJP.js → chunk-JQKSXCAJ.js} +1 -1
- package/dist/chunks/{chunk-DARVPBZ4.js → chunk-JUQMSHNR.js} +1 -1
- package/dist/chunks/{chunk-3Z47M3YY.js → chunk-K44RHALX.js} +1 -1
- package/dist/chunks/{chunk-4EPSHPZL.js → chunk-KO3HNMLJ.js} +1 -1
- package/dist/chunks/{chunk-4NESNOK5.js → chunk-LNCHFVHT.js} +1 -1
- package/dist/chunks/{chunk-7E6T7GP5.js → chunk-LPWBIGKW.js} +1 -1
- package/dist/chunks/{chunk-OIUTWU6K.js → chunk-MFMYWZK2.js} +1 -1
- package/dist/chunks/{chunk-A6USMRWK.js → chunk-MMQRHR3V.js} +1 -1
- package/dist/chunks/{chunk-I7AQMAQI.js → chunk-MNC4YUDI.js} +6 -6
- package/dist/chunks/{chunk-ZFSHBFG5.js → chunk-N6ENLEMY.js} +2 -2
- package/dist/chunks/{chunk-SH5CBAFC.js → chunk-NTB2O4RP.js} +1 -1
- package/dist/chunks/{chunk-OQKJGTTO.js → chunk-O3RF72BT.js} +1 -1
- package/dist/chunks/{chunk-QEFHOJFE.js → chunk-O4VIXU7A.js} +1 -1
- package/dist/chunks/{chunk-5MCNZCVQ.js → chunk-OLDK2LKJ.js} +1 -1
- package/dist/chunks/{chunk-WMKYHXVM.js → chunk-OX3XZKGK.js} +2 -2
- package/dist/chunks/{chunk-SDAUS5PY.js → chunk-P2RSBSCT.js} +1 -1
- package/dist/chunks/{chunk-EKM2D7JU.js → chunk-PFSMXKTI.js} +1 -1
- package/dist/chunks/{chunk-FUOEIDMA.js → chunk-PH6IORGZ.js} +1 -1
- package/dist/chunks/{chunk-PUZQU66L.js → chunk-PQJTYOR2.js} +1 -1
- package/dist/chunks/{chunk-OLLLZVHF.js → chunk-PY6K2JRH.js} +1 -1
- package/dist/chunks/{chunk-EYPCBBMS.js → chunk-RBZH6A6M.js} +1 -1
- package/dist/chunks/{chunk-6QSSIT62.js → chunk-RZUEVS64.js} +1 -1
- package/dist/chunks/{chunk-Q5LEXXJG.js → chunk-SF5HJ7PL.js} +4 -4
- package/dist/chunks/{chunk-NHQ36THU.js → chunk-TG7P7BSV.js} +1 -1
- package/dist/chunks/{chunk-G3RXYI2L.js → chunk-TIHXUKFD.js} +1 -1
- package/dist/chunks/{chunk-QOGJAQDO.js → chunk-TKLBP3MM.js} +1 -1
- package/dist/chunks/{chunk-M4JWQSV7.js → chunk-U2MAPON2.js} +1 -1
- package/dist/chunks/chunk-U5FKRYJO.js +86 -0
- package/dist/chunks/{chunk-QNG27G3T.js → chunk-V34H7Y2T.js} +2 -2
- package/dist/chunks/chunk-VGRMAGOK.js +9 -0
- package/dist/chunks/chunk-VRODAXFS.js +145 -0
- package/dist/chunks/{chunk-EIEZHFIW.js → chunk-WC42WOLG.js} +1 -1
- package/dist/chunks/{chunk-OS3LO5J3.js → chunk-WRI4XKSK.js} +1 -1
- package/dist/chunks/{chunk-XTFPDQMH.js → chunk-XJZSIXEO.js} +2 -2
- package/dist/chunks/{chunk-25MBPJVY.js → chunk-XMKCCLGB.js} +1 -1
- package/dist/chunks/{chunk-HZEIRHEB.js → chunk-XMWXH7TS.js} +1 -1
- package/dist/chunks/chunk-YCQSVHCD.js +9 -0
- package/dist/chunks/{chunk-B7RFL4N2.js → chunk-YHHF4Q7Y.js} +1 -1
- package/dist/chunks/{chunk-DMVD2RFZ.js → chunk-ZAN4DYLH.js} +1 -1
- package/dist/chunks/chunk-ZH3K7LKQ.js +2 -0
- package/dist/chunks/cli-5DFVQL5Y.js +2 -0
- package/dist/chunks/{configuration-command-6C5UO7GE.js → configuration-command-JS6U3RMC.js} +1 -1
- package/dist/chunks/connected-app-executor-UBMGMV76.js +2 -0
- package/dist/chunks/{connected-evidence-GH2ATNEX.js → connected-evidence-NLAIEVQ3.js} +1 -1
- package/dist/chunks/connection-NZSD3U5O.js +2 -0
- package/dist/chunks/{continual-6CQAMTTR.js → continual-WFPIDWPH.js} +1 -1
- package/dist/chunks/core-commands-U4IBRRY5.js +2 -0
- package/dist/chunks/{datasets-7BNMVJOY.js → datasets-UX47DTTB.js} +1 -1
- package/dist/chunks/{desktop-test-3CUHVLXV.js → desktop-test-UUU7PD4P.js} +1 -1
- package/dist/chunks/{dist-VYC5VMQB.js → dist-OGLX76LL.js} +1 -1
- package/dist/chunks/{dist-ZVJPJLXR.js → dist-W5MJYSPF.js} +1 -1
- package/dist/chunks/{evaluation-coordination-XEF5L7KZ.js → evaluation-coordination-3YQN5JQW.js} +1 -1
- package/dist/chunks/{experiment-improvements-KRX2DP27.js → experiment-improvements-ZRVD2AGY.js} +1 -1
- package/dist/chunks/{experiments-DFGQYA4O.js → experiments-JEB5A2N5.js} +1 -1
- package/dist/chunks/{extension-XKXXOP5N.js → extension-JCUA3RWV.js} +1 -1
- package/dist/chunks/{help-S7THC6IE.js → help-KA4OINP5.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-2URLU5SG.js +2 -0
- package/dist/chunks/host-profile-external-dataset-B2AQNSDR.js +2 -0
- package/dist/chunks/{hosted-app-server-composition-HPL3CRXN.js → hosted-app-server-composition-VJQ3FM4I.js} +1 -1
- package/dist/chunks/{hosted-experiment-improvement-NFSVS5TU.js → hosted-experiment-improvement-42YWXB3P.js} +1 -1
- package/dist/chunks/hosted-harness-runtime-BM4WONJN.js +2 -0
- package/dist/chunks/{hosted-profile-candidate-2S5LFUWD.js → hosted-profile-candidate-HVVC43XQ.js} +1 -1
- package/dist/chunks/hosted-profile-compiler-RKDWHYK3.js +2 -0
- package/dist/chunks/{hosted-profile-evaluation-control-76BTRTYD.js → hosted-profile-evaluation-control-57V24UGU.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-inspection-V6Z3A5XJ.js → hosted-profile-evaluation-inspection-BUWLCKCD.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-preparation-IDJYREW3.js → hosted-profile-evaluation-preparation-3XLRR6UH.js} +1 -1
- package/dist/chunks/{hosted-tasksets-ANAE2PIW.js → hosted-tasksets-THKM5QY5.js} +1 -1
- package/dist/chunks/{human-review-WR777ODH.js → human-review-CSYAW4PC.js} +1 -1
- package/dist/chunks/import-CBDJ4DME.js +3 -0
- package/dist/chunks/local-harness-improvement-runtime-3T6E7I5Q.js +2 -0
- package/dist/chunks/local-harness-taskset-review-LQPQBALH.js +2 -0
- package/dist/chunks/{opchat-T4QTNEIY.js → opchat-6ADSONAD.js} +1 -1
- package/dist/chunks/{organizations-75L5DZDV.js → organizations-GT24ZTCN.js} +1 -1
- package/dist/chunks/{profile-TFZMUEDR.js → profile-Y2MCSOUK.js} +1 -1
- package/dist/chunks/project-action-payload-GHSLE7K3.js +2 -0
- package/dist/chunks/{project-agent-6RRO233B.js → project-agent-YYSQIHVE.js} +1 -1
- package/dist/chunks/{published-experiment-source-DZFENAQA.js → published-experiment-source-5TMGLKDM.js} +1 -1
- package/dist/chunks/refiner-profile-service-ZK7KAFP5.js +2 -0
- package/dist/chunks/{runtime-A7OZXM43.js → runtime-QFXCXSVB.js} +2 -2
- package/dist/chunks/{sandbox-command-IU5XFTJP.js → sandbox-command-U6346TVJ.js} +1 -1
- package/dist/chunks/{sandbox-template-C4V6T36U.js → sandbox-template-XWWPWWNR.js} +1 -1
- package/dist/chunks/saved-work-SWHZ4OLO.js +2 -0
- package/dist/chunks/{send-turn-XTAIS2JN.js → send-turn-SIXOZUVJ.js} +1 -1
- package/dist/chunks/{src-LMC3K6LH.js → src-6SHCCYEN.js} +1 -1
- package/dist/chunks/{src-INHPJ63Z.js → src-EZAKCCUV.js} +56 -56
- package/dist/chunks/standalone-experiment-turn-owner-LIAQWTGI.js +2 -0
- package/dist/chunks/{store-continual-support-reviews-HHA6NX7K.js → store-continual-support-reviews-GDX6CSUU.js} +1 -1
- package/dist/chunks/{store-conversation-serving-KPC62UEY.js → store-conversation-serving-W55XMDH4.js} +1 -1
- package/dist/chunks/{store-create-improve-QV54XIZW.js → store-create-improve-A7E7CUPZ.js} +1 -1
- package/dist/chunks/{store-datasets-RXJ33SUN.js → store-datasets-HKF3EO7B.js} +1 -1
- package/dist/chunks/{store-evaluation-results-3F3P527G.js → store-evaluation-results-645RFBGR.js} +1 -1
- package/dist/chunks/{store-human-review-RAH7WMIP.js → store-human-review-F5KESW52.js} +1 -1
- package/dist/chunks/{store-learned-preference-migration-validation-4CI2IRUF.js → store-learned-preference-migration-validation-V27XD4I7.js} +1 -1
- package/dist/chunks/{store-local-experiments-5LUJR7GI.js → store-local-experiments-HWQWNTIU.js} +1 -1
- package/dist/chunks/{store-model-batch-review-YEGX327M.js → store-model-batch-review-TOCSDVAP.js} +1 -1
- package/dist/chunks/{store-model-configuration-5ZURQATB.js → store-model-configuration-6543ASY2.js} +1 -1
- package/dist/chunks/{store-sidebar-file-bookmarks-VB5GTLFY.js → store-sidebar-file-bookmarks-53B7QIGS.js} +1 -1
- package/dist/chunks/{store-sidebar-preferences-GWIOG2NH.js → store-sidebar-preferences-YXGEJVUO.js} +1 -1
- package/dist/chunks/{store-subagents-T7R2Z6TB.js → store-subagents-HRCAK7VZ.js} +1 -1
- package/dist/chunks/{store-task-inbox-JJTBW76C.js → store-task-inbox-WF74W4U2.js} +11 -11
- package/dist/chunks/{store-task-inventory-OB3F2APC.js → store-task-inventory-KHCTEZVK.js} +1 -1
- package/dist/chunks/{store-taskset-drafts-EKQWWFYQ.js → store-taskset-drafts-3ACG5AVX.js} +1 -1
- package/dist/chunks/{store-training-G6YLFSIR.js → store-training-R46WOGXB.js} +1 -1
- package/dist/chunks/{store-training-jobs-RC46YBF6.js → store-training-jobs-D4LECE7O.js} +1 -1
- package/dist/chunks/{store-training-models-6BA43IPP.js → store-training-models-EQVNXOVB.js} +1 -1
- package/dist/chunks/{taskset-EQRFQBYM.js → taskset-NR2X2UOK.js} +1 -1
- package/dist/chunks/{taskset-packages-XC6HEE3K.js → taskset-packages-ONULEIVI.js} +1 -1
- package/dist/chunks/{teams-bot-EAPGPTHZ.js → teams-bot-CHUYMD6K.js} +1 -1
- package/dist/chunks/{training-UF6RPI4T.js → training-IDSGYGU2.js} +1 -1
- package/dist/chunks/{web-search-CZ3NCLPY.js → web-search-BPON7H5N.js} +1 -1
- package/dist/chunks/{workspaces-EKKE5NAC.js → workspaces-2TJRDM5K.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/web/assets/App-pcwmC4IR.js +154 -0
- package/dist/web/assets/{AppDialog-t2Fx5tK3.js → AppDialog-CdHad7GT.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-Dj1Y32oI.js → AppTerminalPanel-CrmoOgd4.js} +2 -2
- package/dist/web/assets/AppsView-0P6cBsD4.js +1 -0
- package/dist/web/assets/{BrowserSidebar-jhWi4rVm.js → BrowserSidebar-Cb6edJw6.js} +1 -1
- package/dist/web/assets/{CartesianChart-C1DIx0Ia.js → CartesianChart-B2Sxi0lv.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-Bdr-HmOL.js → CollaborationTabs-PP0AIXhb.js} +1 -1
- package/dist/web/assets/{CommandMenu-Ux2yOHAc.js → CommandMenu-GfQIMe6W.js} +1 -1
- package/dist/web/assets/{CommunityView-DPEeVKFn.js → CommunityView-V6KmMl5n.js} +1 -1
- package/dist/web/assets/ComposerCreateImproveStrip-oeVeyhPX.js +1 -0
- package/dist/web/assets/ConversationImportsSettings-CuQcvVgE.js +1 -0
- package/dist/web/assets/ConversationImportsSettings-PfUa8V7X.css +1 -0
- package/dist/web/assets/{GetStartedView-CFHP0AaI.js → GetStartedView-2oZ068h_.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-D8BGTPVN.js → HostedModelLearningReview-DLzak_Vf.js} +1 -1
- package/dist/web/assets/{HostedModelLearningSettings-JS1S7vNO.js → HostedModelLearningSettings-Eca6Pd9R.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-Dx5Q3xV2.js → LabModelVersionDetailPage-DsBblnMp.js} +1 -1
- package/dist/web/assets/LabSkillSidebar-DDknttrB.js +1 -0
- package/dist/web/assets/{LabsRoute-CyYF8-dw.js → LabsRoute-CgNiUHsy.js} +4 -4
- package/dist/web/assets/MainChatThread-yCVg99LU.js +2 -0
- package/dist/web/assets/MainPane-C86le7UF.js +65 -0
- package/dist/web/assets/{MarkdownText-BR4V6lNO.js → MarkdownText-BBVriBCj.js} +1 -1
- package/dist/web/assets/{NativeSkillSidebar-DU9IEgIO.js → NativeSkillSidebar-D2uVZkqh.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-mIy6FzCj.js → NewExperienceSwitcher-DuD6GScJ.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-RfTZTHxl.js → NewProjectDialog-B6XZkJrU.js} +1 -1
- package/dist/web/assets/OutputsPage-PUlmcWjv.js +1 -0
- package/dist/web/assets/{ProjectsPage-CE6QUB-b.js → ProjectsPage-DWBRmej6.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-HaCVep4t.js +1 -0
- package/dist/web/assets/{RightSidebarHomePanel-CK0rP3WT.js → RightSidebarHomePanel-BUtdPb2L.js} +1 -1
- package/dist/web/assets/{ScheduledWorkPage-vOrYv8pp.js → ScheduledWorkPage-Dg9GkGrT.js} +1 -1
- package/dist/web/assets/SettingsView-DjjnCnlb.css +1 -0
- package/dist/web/assets/{SettingsView-DCKVrfjj.js → SettingsView-DtldfnV-.js} +4 -4
- package/dist/web/assets/{TeamChatView-Bwrjr-vk.js → TeamChatView-C71JX4je.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-DhPoKZAq.js → TerminalOverlay-B4F6Q36s.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-B9MxFzQx.js +1 -0
- package/dist/web/assets/{TrainingDraftPanel-C9cRX5qf.js → TrainingDraftPanel-7C48sHfC.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CrdcSGeW.js → UsageSettingsSection-CC57FcUB.js} +1 -1
- package/dist/web/assets/{WorkSidebarPanel-DSSikNFQ.js → WorkSidebarPanel-Cto1usLM.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-BAFo0CPN.js → WorkspaceDiffPanel-CL7wi3kp.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-BVHAhwnJ.js → WorkspaceEnvironmentMenu-zdzSDofs.js} +18 -18
- package/dist/web/assets/{WorkspaceGitDialogs-CwVoiDQ2.js → WorkspaceGitDialogs-CZSmjnrc.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-TxLyhzNp.js → WorkspaceMonacoEditor-TrUDJMKb.js} +3 -3
- package/dist/web/assets/agent-connections-4Dza2mDg.js +1 -0
- package/dist/web/assets/{arrow-up-right-C9aE8Mfz.js → arrow-up-right-xKb5kWQJ.js} +1 -1
- package/dist/web/assets/{chunk-P3BRSSRD-DUGfuKA8.js → chunk-P3BRSSRD-BsGTkgyC.js} +1 -1
- package/dist/web/assets/{clipboard-Dk158Qp4.js → clipboard-BgjV3aCx.js} +1 -1
- package/dist/web/assets/{cloud-upload-k9eqBsHr.js → cloud-upload-Bw9XUsKQ.js} +1 -1
- package/dist/web/assets/{cssMode-CO35ARZp.js → cssMode-DxsFJGb-.js} +1 -1
- package/dist/web/assets/{folder-open-sYgceW_f.js → folder-open-CbmUjIYS.js} +1 -1
- package/dist/web/assets/{folder-plus-CS0R49m9.js → folder-plus-slsst7Ct.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-DrGxH2h4.js → git-commit-horizontal-BIS-8MuS.js} +1 -1
- package/dist/web/assets/{htmlMode-REMmzdfq.js → htmlMode-BE4VOrZo.js} +1 -1
- package/dist/web/assets/{index-C8aCGagb.js → index-DEg0S7Qk.js} +2 -2
- package/dist/web/assets/index-erq7hUne.css +1 -0
- package/dist/web/assets/{info-DLdbiUrh.js → info-5bL9xSSf.js} +1 -1
- package/dist/web/assets/{jsonMode-KEdMfkIf.js → jsonMode-CYimnBhD.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-5KZwEoxW.js → lspLanguageFeatures-CiFuk-P7.js} +1 -1
- package/dist/web/assets/{minimize-2-CqcI4zcM.js → minimize-2-BGVWKvTg.js} +1 -1
- package/dist/web/assets/{monaco.contribution-omszXBEj.js → monaco.contribution-BTY4dJ0f.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BJGj65F9.js → monaco.contribution-C7sMrcos.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DO10L0zW.js → monaco.contribution-DUE3CQph.js} +2 -2
- package/dist/web/assets/{monaco.contribution-Cly9Wt7L.js → monaco.contribution-DkLVGT8N.js} +2 -2
- package/dist/web/assets/{monitor-BFVCcbxp.js → monitor-B5hx_tzp.js} +1 -1
- package/dist/web/assets/{play-C469pVZq.js → play-pmSO95Qg.js} +1 -1
- package/dist/web/assets/{python-Dw0YcVy9.js → python-CiZvL3LX.js} +1 -1
- package/dist/web/assets/{save-CtSjPydi.js → save-CvYL4DUg.js} +1 -1
- package/dist/web/assets/{square-BuImvLhT.js → square-DT_uFOml.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-DjCO9lIP.js → toggleHighContrast-CrE1_HY0.js} +1 -1
- package/dist/web/assets/{tsMode-BAOnxKd6.js → tsMode-CI_PdZmj.js} +1 -1
- package/dist/web/assets/{upload-2JkFZo3h.js → upload-PVi8vC3T.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-BNqAisfS.js → useLocalAgentSchedules-BHJNVf42.js} +1 -1
- package/dist/web/assets/useProviderSettings-CU3zXyie.js +5 -0
- package/dist/web/assets/{useProviderSettings-CmL_BaxP.css → useProviderSettings-Cktvzinz.css} +1 -1
- package/dist/web/assets/{useSessionTurnCache-BHU2-Jmz.js → useSessionTurnCache-BE7cipLX.js} +1 -1
- package/dist/web/assets/{wifi-off-CpOAH62M.js → wifi-off-7WiFuOhD.js} +1 -1
- package/dist/web/assets/{workers-0QvlA2T5.js → workers-Cv8r4CvM.js} +1 -1
- package/dist/web/assets/{yaml-BK3qxo7D.js → yaml-Bj7mdkV2.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +10 -3
- package/docs/conversation-imports.md +57 -0
- package/package.json +1 -1
- package/dist/chunks/app-server-runtime-VCRNCNX2.js +0 -2
- package/dist/chunks/chunk-FV2R5RUN.js +0 -3
- package/dist/chunks/chunk-FY5KHLMW.js +0 -2
- package/dist/chunks/chunk-HY3GOBFJ.js +0 -58
- package/dist/chunks/chunk-KG325WTN.js +0 -2
- package/dist/chunks/chunk-MULXCKG7.js +0 -10
- package/dist/chunks/chunk-OGDADQGH.js +0 -143
- package/dist/chunks/chunk-QHWGQ3A4.js +0 -5
- package/dist/chunks/chunk-VRIEKBBH.js +0 -9
- package/dist/chunks/chunk-WJ43MJ3F.js +0 -2
- package/dist/chunks/chunk-YY7LEQGP.js +0 -2
- package/dist/chunks/cli-X25RSO2X.js +0 -2
- package/dist/chunks/connected-app-executor-IVLGQP65.js +0 -2
- package/dist/chunks/connection-HTF6CC7M.js +0 -2
- package/dist/chunks/core-commands-A2DGGIPS.js +0 -2
- package/dist/chunks/host-profile-evaluation-tools-NRLXL2S5.js +0 -2
- package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +0 -2
- package/dist/chunks/hosted-harness-runtime-723S5ZSH.js +0 -2
- package/dist/chunks/hosted-profile-compiler-2DQIFSXW.js +0 -2
- package/dist/chunks/import-MLZUHITH.js +0 -4
- package/dist/chunks/local-harness-improvement-runtime-JIQ6ZVDW.js +0 -2
- package/dist/chunks/local-harness-taskset-review-XVYTGAGK.js +0 -2
- package/dist/chunks/project-action-payload-7VGL7OER.js +0 -2
- package/dist/chunks/refiner-profile-service-UUIWFJVT.js +0 -2
- package/dist/chunks/saved-work-6BMBFP43.js +0 -2
- package/dist/chunks/standalone-experiment-turn-owner-JCY5LL5R.js +0 -2
- package/dist/web/assets/App-s-CJswyt.js +0 -154
- package/dist/web/assets/AppsView-BYE5EBDJ.js +0 -1
- package/dist/web/assets/ComposerCreateImproveStrip-CEgh4OtN.js +0 -1
- package/dist/web/assets/LabSkillSidebar-BxffN-pN.js +0 -1
- package/dist/web/assets/MainChatThread-DZpcFRFl.js +0 -2
- package/dist/web/assets/MainPane-5DTtwVCk.js +0 -65
- package/dist/web/assets/OutputsPage-Cr1Spf7S.js +0 -1
- package/dist/web/assets/RightChatPanelStack-T6VRWuHo.js +0 -1
- package/dist/web/assets/SettingsView-Dulr_xlq.css +0 -1
- package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +0 -1
- package/dist/web/assets/index-3iPNbbER.css +0 -1
- package/dist/web/assets/useProviderSettings-C4L4wDoh.js +0 -5
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{r as s,j as e}from"./index-C8aCGagb.js";import{e as Ae,g as q,aA as ae,bz as K,X as ge,S as se,q as Z,D as Ee,ay as be,aF as fe,cp as Oe,bG as Me,ct as Re,V as H,cu as te,bC as $e,p as De,ac as ce}from"./App-s-CJswyt.js";import{S as Te}from"./save-CtSjPydi.js";import{T as de}from"./MarkdownText-BR4V6lNO.js";const _e=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],Y=Ae("key-round",_e);function Le({connection:n,onChanged:r,onAdded:c}){const[l,o]=s.useState(!1),[m,p]=s.useState(!1),[t,A]=s.useState(null),[T,E]=s.useState(0),[C,L]=s.useState(""),[a,S]=s.useState(null),[R,_]=s.useState(""),[P,O]=s.useState(""),[h,v]=s.useState(""),[k,M]=s.useState("[]"),[D,f]=s.useState("{}"),[N,z]=s.useState(!1),[w,x]=s.useState(!1),[u,i]=s.useState(null);s.useEffect(()=>{if(!l||m||!n)return;const d=new AbortController;return z(!0),i(null),q(n,`/v1/providers/acp-registry${T?"?refresh=true":""}`,{signal:d.signal}).then(J=>{d.signal.aborted||(A(J),S(null))}).catch(J=>{d.signal.aborted||i(J instanceof Error?J.message:"Could not load ACP registry.")}).finally(()=>{d.signal.aborted||z(!1)}),()=>d.abort()},[l,m,n,T]);const g=a?[a.distribution.binary?.[t?.platform??""]?"binary":null,a.distribution.npx?"npx":null,a.distribution.uvx?"uvx":null].filter(d=>!!d):[],j=g.includes(R)?R:g[0],y=j==="binary"?a?.distribution.binary?.[t?.platform??""]:j==="npx"?a?.distribution.npx:a?.distribution.uvx;async function V(d){if(d.preventDefault(),!(!n||w)){x(!0),i(null);try{const J=m?{custom:{displayName:P.trim(),command:h.trim(),args:JSON.parse(k),env:JSON.parse(D)}}:{registryId:a?.id,version:a?.version,distribution:j,displayName:P.trim()||a?.name},W=await q(n,"/v1/providers/acp-registry",{method:"POST",body:JSON.stringify(J)});r(W.settings),c(W.providerId),o(!1),S(null),O(""),v(""),M("[]"),f("{}")}catch(J){i(J instanceof Error?J.message:"Could not add ACP agent.")}finally{x(!1)}}}return e.jsxs("section",{className:"acp-agent-browser",children:[e.jsx("button",{type:"button",className:"settings-secondary",disabled:!n||w,onClick:()=>o(d=>!d),children:l?"Close agent browser":"Add ACP agent"}),l?e.jsxs("div",{className:"provider-connections-panel",children:[e.jsx("h2",{children:"Add an ACP agent"}),e.jsx("p",{children:"Connect an agent from the Agent Client Protocol registry or provide an existing ACP command. Each connection keeps its own configuration."}),e.jsxs("div",{className:"acp-browser-tabs",children:[e.jsx("button",{type:"button",className:"settings-secondary","aria-pressed":!m,disabled:w,onClick:()=>{p(!1),i(null)},children:"Registry"}),e.jsx("button",{type:"button",className:"settings-secondary","aria-pressed":m,disabled:w,onClick:()=>{p(!0),i(null)},children:"Custom command"})]}),u?e.jsx("p",{role:"alert",children:u}):null,e.jsxs("form",{className:"provider-card-form",onSubmit:d=>{V(d)},children:[m?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{required:!0,maxLength:160,value:P,disabled:w,onChange:d=>O(d.target.value),placeholder:"My ACP agent"})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Executable"}),e.jsx("input",{required:!0,value:h,disabled:w,onChange:d=>v(d.target.value),placeholder:"Executable from PATH or absolute path"})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Arguments (JSON array)"}),e.jsx("textarea",{value:k,disabled:w,onChange:d=>M(d.target.value),placeholder:'["--acp"]'})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Environment overrides (JSON object)"}),e.jsx("textarea",{value:D,disabled:w,onChange:d=>f(d.target.value)})]}),e.jsx("small",{children:"Overrides are saved in your local configuration. Inherited environment variables do not need to be entered here."})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"acp-registry-search",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Search registry"}),e.jsx("input",{value:C,disabled:w,onChange:d=>L(d.target.value),placeholder:"Search agents"})]}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:N||w,onClick:()=>E(d=>d+1),"aria-label":"Refresh ACP registry",children:e.jsx(ae,{size:14})})]}),N?e.jsxs("p",{role:"status",children:[e.jsx(K,{size:16,className:"settings-spin"})," Loading registry…"]}):null,t?e.jsx("div",{className:"acp-registry-list",role:"list","aria-label":"ACP registry agents",children:t.agents.filter(d=>`${d.name} ${d.description}`.toLowerCase().includes(C.toLowerCase())).map(d=>e.jsxs("button",{type:"button",className:"acp-registry-entry",disabled:w,"aria-pressed":a?.id===d.id,onClick:()=>{S(d),_(""),O(d.name)},children:[e.jsxs("strong",{children:[d.name," ",e.jsx("small",{children:d.version})]}),e.jsx("span",{children:d.description}),d.supported?null:e.jsxs("small",{children:["No distribution for ",t.platform,"; use a custom command."]})]},d.id))}):null,t&&!t.agents.some(d=>`${d.name} ${d.description}`.toLowerCase().includes(C.toLowerCase()))?e.jsx("p",{children:"No agents match your search."}):null,a?e.jsxs("div",{className:"acp-install-summary",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Connection name"}),e.jsx("input",{value:P,disabled:w,onChange:d=>O(d.target.value)})]}),g.length?e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Distribution"}),e.jsx("select",{value:j,disabled:w,onChange:d=>_(d.target.value),children:g.map(d=>e.jsx("option",{value:d,children:d==="binary"?`Binary for ${t?.platform}`:d},d))})]}):null,y?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:j==="binary"?y.archive:`${j} ${y.package} ${(y.args??[]).join(" ")}`}),e.jsxs("p",{children:[j==="binary"?"Adding downloads and installs this version locally.":`Connecting runs ${j}, which downloads this package version if needed.`," The agent uses its own authentication and model catalog."]})]}):null,a.website||a.repository?e.jsx("a",{href:a.website??a.repository,target:"_blank",rel:"noreferrer",children:"Agent documentation"}):null]}):null]}),e.jsx("button",{className:"settings-primary",disabled:w||!n||!m&&(!a||!j),children:w?"Adding agent…":"Add and connect"})]})]}):null]})}function xe(n){const r=s.useRef(null),c=s.useRef(n);return c.current=n,s.useEffect(()=>{const l=document.activeElement instanceof HTMLElement?document.activeElement:null,o=()=>[...r.current?.querySelectorAll('button:not(:disabled), input:not(:disabled), select:not(:disabled), a[href], [tabindex="0"]')??[]].filter(p=>p.getClientRects().length>0);o()[0]?.focus();const m=p=>{if(document.querySelector(".native-setup-terminal")||(p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),c.current()),p.key!=="Tab"))return;const t=o(),A=t[0],T=t.at(-1);p.shiftKey&&document.activeElement===A?(p.preventDefault(),T?.focus()):!p.shiftKey&&document.activeElement===T&&(p.preventDefault(),A?.focus())};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m),l?.isConnected&&l.focus()}},[]),r}function Ue({connection:n,onChanged:r}){const[c,l]=s.useState(!1),[o,m]=s.useState([]),[p,t]=s.useState(null),[A,T]=s.useState(null),[E,C]=s.useState(0);s.useEffect(()=>{const a=new AbortController;return m([]),t(null),n&&q(n,"/v1/url-models/list",{signal:a.signal}).then(S=>{a.signal.aborted||m(S.models)}).catch(()=>{a.signal.aborted||t("Could not load your model connections.")}),()=>a.abort()},[n,E]);async function L(a){if(!(!n||A)){T(a.id),t(null);try{const S=await q(n,"/v1/url-models/remove",{method:"POST",body:JSON.stringify({id:a.id})});m(S.models),await r()}catch(S){t(S instanceof Error?S.message:"Could not remove the connection.")}finally{T(null)}}}return e.jsxs("section",{"aria-label":"Models from URL",className:"url-model-connections",children:[e.jsxs("div",{className:"provider-connections-intro",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Models from URL"}),e.jsx("p",{children:"Connect a model endpoint and select it in your chats. "})]}),e.jsx("button",{type:"button",className:"settings-primary",disabled:!n,onClick:()=>l(!0),children:"Add model"})]}),p?e.jsxs("p",{role:"alert",children:[p," ",e.jsx("button",{type:"button",onClick:()=>C(a=>a+1),children:"Retry"})]}):null,e.jsx("div",{className:"provider-connections-grid",children:o.map(a=>e.jsxs("div",{className:"provider-connection-card",children:[e.jsx("strong",{children:a.name}),e.jsx("p",{className:"url-model-endpoint",children:a.endpoint}),e.jsxs("p",{children:[a.providerName," · ",a.model," · ",a.hasToken?"Key saved securely":"No API key"]}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:!!A,onClick:()=>{L(a)},children:A===a.id?"Removing…":"Remove model"})]},a.id))}),c&&n?e.jsx(ze,{providerNames:[...new Set(o.map(a=>a.providerName))],connection:n,onClose:()=>l(!1),onSaved:async a=>{m(a.models),await r(),l(!1)}}):null]})}function ze({connection:n,providerNames:r,onClose:c,onSaved:l}){const o=xe(c),[m,p]=s.useState(r[0]?`provider:${r[0]}`:"__new__"),[t,A]=s.useState(""),T=m==="__new__"?t.trim():m.slice(9),[E,C]=s.useState(""),[L,a]=s.useState(""),[S,R]=s.useState(""),[_,P]=s.useState(""),[O,h]=s.useState(null),[v,k]=s.useState(!1),[M,D]=s.useState(null),f=s.useRef(null);s.useEffect(()=>()=>f.current?.abort(),[]);function N(){h(null),P(""),D(null)}async function z(x){if(f.current)return;const u=new AbortController;f.current=u,k(!0),D(null);try{if(x){const i=await q(n,"/v1/url-models/save",{method:"POST",signal:u.signal,body:JSON.stringify({endpoint:E.trim(),token:L,name:S.trim(),model:_,providerName:T})});u.signal.aborted||(a(""),await l(i))}else{const i=await q(n,"/v1/url-models/inspect",{method:"POST",signal:u.signal,body:JSON.stringify({endpoint:E.trim(),token:L})});u.signal.aborted||(h(i),P(i.models[0]??""),S.trim()||R(i.models[0]??""))}}catch(i){u.signal.aborted||D(i instanceof Error?i.message:"Connection failed.")}finally{f.current=null,u.signal.aborted||k(!1)}}function w(x){x.preventDefault(),z(!!O)}return e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",role:"presentation",onMouseDown:x=>{x.target===x.currentTarget&&c()},children:e.jsxs("section",{ref:o,className:"git-dialog provider-details-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"url-model-title",tabIndex:-1,children:[e.jsxs("div",{className:"provider-dialog-header",children:[e.jsx("h2",{id:"url-model-title",children:"Add model"}),e.jsx("button",{type:"button",className:"git-dialog-close","aria-label":"Close Add model",onClick:c,children:e.jsx(ge,{size:18})})]}),e.jsxs("form",{className:"url-model-connection-form",onSubmit:w,children:[e.jsxs("div",{className:"url-model-field",children:[e.jsx("span",{children:"Provider"}),e.jsx(se,{label:"Provider",value:m,disabled:v,floating:!0,options:[...r.map(x=>({value:`provider:${x}`,label:x})),{value:"__new__",label:"Create new provider",icon:"plus",separatorBefore:!!r.length}],onChange:p})]}),m==="__new__"?e.jsxs("label",{children:["Provider name",e.jsx("input",{required:!0,maxLength:100,placeholder:"My model provider",value:t,disabled:v,onChange:x=>A(x.target.value)})]}):null,e.jsxs("label",{children:["Endpoint URL",e.jsx("input",{type:"url",required:!0,placeholder:"https://api.example.com/v1",value:E,disabled:v,onChange:x=>{C(x.target.value),N()}})]}),e.jsxs("label",{children:["API key ",e.jsx("span",{className:"settings-footnote",children:"Optional for endpoints that do not require one"}),e.jsx("input",{type:"password",autoComplete:"new-password",spellCheck:!1,value:L,disabled:v,placeholder:"API key",onChange:x=>{a(x.target.value),N()}})]}),O?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"url-model-field",children:[e.jsx("span",{children:"Model"}),e.jsx(se,{label:"Model",value:_,disabled:v,floating:!0,searchable:!0,options:O.models.map(x=>({value:x,label:x})),onChange:x=>{P(x),R(x)}})]}),e.jsxs("label",{children:["Display name",e.jsx("input",{required:!0,maxLength:100,value:S,disabled:v,onChange:x=>R(x.target.value)})]})]}):e.jsx("p",{className:"settings-footnote",children:"Use the model service’s API base URL. Keys are encrypted on this machine."}),M?e.jsx("p",{role:"alert",children:M}):null,e.jsxs("div",{className:"url-model-connection-actions",children:[e.jsx("button",{className:"settings-primary",type:"submit",disabled:v||!T||!!O&&(!_||!S.trim()),children:v?"Connecting…":O?"Add model":"Fetch models"}),e.jsx("button",{type:"button",className:"settings-secondary",onClick:c,children:"Cancel"})]})]})]})})}const ee=["codex","claude-code","grok-build","opencode"];function I(n){return Z(n)||["claude-code","grok-build","opencode"].includes(n)}const Be={codex:{executable:"codex",install:"https://developers.openai.com/codex/cli"},"claude-code":{executable:"claude",install:"https://code.claude.com/docs/en/setup"},"grok-build":{executable:"grok",install:"https://docs.x.ai/build/cli"},opencode:{executable:"opencode",install:"https://opencode.ai/docs"}},Q=(n,r)=>JSON.stringify([n||"",r||""]);function ue({connection:n,providerId:r,config:c,status:l,cachedModels:o,busy:m,onCheck:p}){const[t,A]=s.useState(null),[T,E]=s.useState(null),[C,L]=s.useState(null),[a,S]=s.useState(!1),[R,_]=s.useState(c.binaryPath??""),[P,O]=s.useState(c.sourceHome??""),h=s.useRef(null),v=s.useRef(null),k=s.useRef(p);k.current=p;const M=Z(r),D=Be[r]??{executable:c.acp?.command??"",install:c.acp?.installUrl??""},[f,N]=s.useState(c.acp?.command??""),[z,w]=s.useState(JSON.stringify(c.acp?.args??[])),[x,u]=s.useState(JSON.stringify(c.acp?.env??{},null,2)),i=Q(c.binaryPath,c.sourceHome)+JSON.stringify(c.acp),g=Q(R.trim(),P.trim())!==Q(c.binaryPath,c.sourceHome)||M&&(f!==c.acp?.command||z!==JSON.stringify(c.acp?.args??[])||x!==JSON.stringify(c.acp?.env??{},null,2)),j=m||a||t!==null,y=s.useCallback(async b=>{h.current?.abort();const $=new AbortController;h.current=$;const F=setTimeout(()=>$.abort(new Error("Connection check timed out. Retry when the agent is available.")),45e3);S(!0),E(null);try{const B=await k.current(r,$.signal,b);h.current===$&&!$.signal.aborted&&L(B)}catch(B){h.current===$&&E(B instanceof Error?B.message:"Could not check the agent.")}finally{clearTimeout(F),h.current===$&&(h.current=null,S(!1))}},[r]);s.useEffect(()=>{if(N(c.acp?.command??""),w(JSON.stringify(c.acp?.args??[])),u(JSON.stringify(c.acp?.env??{},null,2)),_(c.binaryPath??""),O(c.sourceHome??""),v.current===i){v.current=null;return}A(null),L(null),y()},[y,i,c.binaryPath,c.sourceHome,n?.serverUrl,n?.token]),s.useEffect(()=>()=>{const b=h.current;h.current=null,b?.abort()},[]);async function V(b){if(b.preventDefault(),!(!g||j)){try{const $=M&&c.acp?{...c.acp,command:f.trim(),args:JSON.parse(z),env:JSON.parse(x)}:c.acp;v.current=Q(R.trim(),P.trim())+JSON.stringify($),await y({binaryPath:R.trim()||null,sourceHome:P.trim()||null,...M?{acp:$}:{}})}catch($){E($ instanceof Error?$.message:"Invalid command configuration.")}v.current=null}}async function d(){if(!n||C?.status!=="needs_login")return;const b=new AbortController,$=setTimeout(()=>b.abort(),1e4);h.current?.abort(),h.current=b,S(!0),E(null);try{const F=await q(n,`/v1/providers/${r}/native-setup`,{method:"POST",body:JSON.stringify({action:"login"}),signal:b.signal});h.current===b&&!b.signal.aborted&&A(F.command)}catch(F){h.current===b&&E(F instanceof Error?F.message:"Could not open native login.")}finally{clearTimeout($),h.current===b&&(h.current=null,S(!1))}}async function J(b){if(!n||j||g)return;S(!0),E(null);const $=new AbortController;h.current=$;const F=setTimeout(()=>$.abort(new Error("Authentication timed out. Use the agent’s login and refresh.")),185e3);try{const B=await q(n,`/v1/providers/${r}/native-setup`,{method:"POST",body:JSON.stringify({action:"authenticate",authMethodId:b}),signal:$.signal});$.signal.aborted||(v.current=Q(B.settings.providers[r]?.binaryPath,B.settings.providers[r]?.sourceHome)+JSON.stringify(B.settings.providers[r]?.acp),L(B),await y(),v.current=null)}catch(B){$.signal.aborted||E(B instanceof Error?B.message:"Authentication failed.")}finally{clearTimeout(F),h.current===$&&(h.current=null,S(!1))}}const W=C?.settings.modelCaches[r]?.models??o,X=[...new Set(W.map(b=>Ee(b.displayName||b.id)))],ne=T??C?.error;return e.jsxs("div",{className:"provider-dialog-body native-agent-setup",children:[e.jsx("p",{children:M?`Uses the configured ${l.displayName} ACP command and its own login.`:`Uses your existing ${l.displayName} installation and login.`}),e.jsxs("div",{className:"native-connection-status",children:[e.jsx("div",{role:"status","aria-live":"polite",children:a?e.jsxs(e.Fragment,{children:[e.jsx(K,{size:16,className:"settings-spin"}),e.jsx("span",{children:"Checking connection…"})]}):C?.status==="ready"?e.jsxs(e.Fragment,{children:[e.jsx(be,{size:16}),e.jsx("span",{children:c.enabled?"Connected":"Connected, disabled for chat"})]}):e.jsxs(e.Fragment,{children:[e.jsx(fe,{size:16}),e.jsx("span",{children:C?.status==="missing"?"Installation not found":C?.status==="needs_login"?"Sign in required":"Connection needs attention"})]})}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:j||!n,onClick:()=>{y()},title:"Refresh connection","aria-label":"Refresh connection",children:[e.jsx(ae,{size:14})," Refresh"]})]}),ne?e.jsx("p",{role:"alert",children:ne}):null,X.length?e.jsxs("section",{className:"native-model-section","aria-label":"Available models",children:[e.jsxs("div",{className:"native-model-heading",children:[e.jsx("h3",{children:"Models"}),e.jsxs("small",{children:[X.length," available"]})]}),e.jsx("div",{className:"native-model-list",tabIndex:0,"aria-label":"Models",role:"list",children:X.map(b=>e.jsx("span",{role:"listitem",children:b},b))}),e.jsx("small",{children:"Choose a model when starting a chat."})]}):null,C?.version?e.jsx("small",{className:"native-agent-version",children:C.version}):null,!M&&C?.status==="needs_login"?e.jsx("button",{type:"button",className:"settings-secondary",disabled:j||g||!n,title:g?"Save changes before signing in to a different installation":void 0,onClick:()=>{d()},children:"Sign in"}):null,M&&C?.authMethods?.length?e.jsx("div",{className:"acp-auth-methods",children:C.authMethods.map(b=>b.type==="terminal"?e.jsxs("p",{children:["Use ",b.name," in the agent’s own terminal, then refresh this connection."]},b.id):e.jsx("button",{type:"button",className:"settings-secondary",disabled:j||g||!n,onClick:()=>{J(b.id)},title:b.description,children:b.name},b.id))}):null,C?.status==="missing"&&D.install?e.jsxs("p",{children:[e.jsxs("a",{href:D.install,target:"_blank",rel:"noreferrer",children:["Install ",l.displayName]}),", then refresh this connection."]}):null,(T||C?.status==="unavailable")&&!a?e.jsx("button",{type:"button",className:"settings-secondary",disabled:j||!n,onClick:()=>{y()},children:"Retry"}):null,t&&n?e.jsx(Oe,{connection:n,command:t,onComplete:()=>{A(null),y()},onClose:()=>{A(null),y()}}):null,I(r)?e.jsxs("details",{children:[e.jsx("summary",{children:"Advanced"}),e.jsxs("form",{className:"provider-card-form",onSubmit:b=>{V(b)},children:[M?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"ACP command"}),e.jsx("input",{value:f,disabled:j,onChange:b=>N(b.target.value)})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Arguments (JSON array)"}),e.jsx("textarea",{value:z,disabled:j,onChange:b=>w(b.target.value)})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Environment overrides (JSON object)"}),e.jsx("textarea",{value:x,disabled:j,onChange:b=>u(b.target.value)})]})]}):null,e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Executable override"}),e.jsx("input",{value:R,placeholder:`${D.executable} from PATH, or an absolute path`,disabled:j,onChange:b=>_(b.currentTarget.value)})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:M?"Home directory":"Source home"}),e.jsx("input",{value:P,placeholder:"Use the agent's existing home",disabled:j,onChange:b=>O(b.currentTarget.value)})]}),g?e.jsx("button",{className:"settings-secondary",disabled:j||!n,children:"Save changes"}):null]})]}):null]})}const Je=[{value:"local_secret",label:"Saved key",description:"Encrypted on this machine"},{value:"env",label:"Environment variable",description:"Read by the local server"}],Fe=120,Ge=new Set(["openai","xai","zai"]),He=new Set(["chatgpt-subscription"]),Ve="https://api.z.ai/api/coding/paas/v4";function he(n){return n.split(/[\n,]/).map(r=>r.trim()).filter(Boolean)}function ve(n){return n?n.available?"Ready":n.credential.connected?"Configured":n.credential.lastError||n.lastError?"Needs attention":n.id==="codex"?"Needs Codex login":I(n.id)?"Check connection":n.routing.localByok?"Needs key":n.enabled?"Enabled":"Off":"Unknown"}function je(n){return n?n.available?"ready":n.credential.connected?"configured":n.credential.lastError||n.lastError||n.id==="codex"?"warning":"muted":"unknown"}function me(n){return n.credential.connected?n.credential.redacted?n.credential.redacted:n.credential.source==="native_agent_login"?"Native login":n.credential.source==="chatgpt_subscription"?"ChatGPT subscription":n.credential.source:n.credential.lastError??"Not connected"}function qe(n){return n?.trim().replace(/\/+$/,"")??""}function ye(n,r){return n.id==="zai"&&qe(r.providers.zai?.baseUrl)===Ve}function Ke(n,r){return!n.credential.connected||!n.routing.localByok?"":n.credential.source==="native_agent_login"?"Native login":n.credential.source==="chatgpt_subscription"?"Subscription":ye(n,r)?"Coding Plan key":"API key"}function Ze(n,r){const c=r.modelCaches[n.id];if(n.routing.localByok&&n.enabled&&!n.credential.connected||!n.enabled&&n.id!=="openpond")return"";const l=Math.max(c?.models.length??0,n.modelIds.length),o=n.defaultModel?$e(n.defaultModel,r,n.id):"",m=l===1?"1 model":`${l} models`;return[Ke(n,r),c?m:"",o].filter(Boolean).join(" · ")}function We(n){return n!=="openpond"&&te(n)}function Ne(n){return n?Ge.has(n.id)||n.credentialModes.some(r=>He.has(r)):!1}function Xe(n){return Ne(n)?["api","subscription"]:["api"]}function pe(n,r){return!n||!r||!Ne(n)?"api":n.credential.source==="chatgpt_subscription"||ye(n,r)?"subscription":"api"}function Ye(n){if(!n)return"Never";const r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString()}function Qe(n,r,c=Fe){const l=[],o=new Set,m=new Set(r.map(t=>t.trim()).filter(Boolean)),p=t=>{o.has(t.value)||l.length>=c||(o.add(t.value),l.push(t))};for(const t of n)m.has(t.value)&&p(t);for(const t of n)p(t);return l}function ln({onProvidersChanged:n,checkNativeProvider:r,connection:c,account:l,codex:o,providers:m,providerBusy:p,validationMessage:t,deleteProviderCredential:A,loadProviderModels:T,refreshProviderModels:E,saveProviderConfig:C,saveProviderCredential:L,startOpenAiSubscriptionAuth:a,validateProvider:S}){const[R,_]=s.useState(null),[P,O]=s.useState(null),[h,v]=s.useState(null),k=[...ee,...Object.keys(m?.statuses??{}).filter(Z)].filter(f=>m?.statuses[f]),M=h?m?.statuses[h]??null:null;function D(f,N){v(f),N&&T(f)}return e.jsxs("section",{className:"account-settings provider-connections-settings",children:[e.jsx("h1",{children:"Providers"}),e.jsxs("div",{className:"provider-connections-intro",children:[e.jsx("p",{children:"Manage your installed agents and login. Sync their conversations from Connections."}),e.jsx("button",{type:"button",className:"settings-secondary",onClick:()=>{Me({kind:"view",view:"apps"})},children:"Connections & apps"})]}),m?e.jsx("div",{className:"provider-connections-panel",children:k.length>0?e.jsx("div",{className:"provider-connections-grid",role:"list",children:k.map(f=>{const N=m.statuses[f],z=m.modelCaches[f],w=N.modelIds.length>0&&(z?.models.length??0)<N.modelIds.length,x=p?.startsWith(`${f}:`)??!1,u=We(f),i=f==="openpond"||!!m.providers[f]?.enabled;return e.jsxs("div",{className:"provider-connection-card",role:"listitem",children:[e.jsxs("div",{className:"provider-connection-identity",children:[e.jsx("strong",{children:N.displayName}),e.jsxs("label",{className:"provider-toggle","aria-label":`Enable ${N.displayName}`,children:[e.jsx("input",{type:"checkbox",checked:i,disabled:!u||x,onChange:g=>{C(f,{enabled:g.currentTarget.checked})}}),e.jsx("span",{})]})]}),e.jsxs("div",{className:`provider-connection-status ${je(N)}`,children:[x?e.jsx(K,{size:13,className:"settings-spin"}):null,e.jsx("span",{children:ve(N)})]}),e.jsx("p",{children:Ze(N,m)||(N.enabled?"Check your installation and sign in to use this agent.":"Enable this agent to use it in chats.")}),f==="codex"||f==="claude-code"?e.jsx(Re,{connection:c,provider:f}):null,e.jsx("button",{type:"button",className:"settings-secondary",onClick:()=>{D(f,w)},children:"Manage"}),Z(f)?e.jsx("button",{type:"button",className:"settings-secondary",disabled:R!==null||!c,onClick:async()=>{if(c){_(f),O(null);try{const g=await q(c,"/v1/providers/acp-registry",{method:"DELETE",body:JSON.stringify({providerId:f})});n(g.settings),h===f&&v(null)}catch(g){O(g instanceof Error?g.message:"Could not remove ACP agent.")}finally{_(null)}}},children:R===f?"Removing…":"Remove connection"}):null]},f)})}):e.jsx("div",{className:"empty-account-list provider-manager-empty",children:e.jsx("strong",{children:"No agent providers available"})})}):null,P?e.jsx("p",{role:"alert",children:P}):null,e.jsx(Le,{connection:c,onChanged:n,onAdded:f=>v(f)}),e.jsx(Ue,{connection:c,onChanged:async()=>{c&&n(await H.providerSettings(c))}}),t?e.jsxs("div",{className:"settings-footnote provider-validation-message",children:[e.jsx("span",{children:"Last validation"}),e.jsx("strong",{children:t})]}):null,h&&M&&m?e.jsx(Ie,{checkNativeProvider:r,connection:c,account:l,codex:o,providerId:h,providerBusy:p,settings:m,status:M,onClose:()=>v(null),onDeleteCredential:A,onRefreshModels:E,onSaveConfig:C,onSaveCredential:L,onStartOpenAiSubscriptionAuth:a,onValidate:S}):null]})}function Ie({checkNativeProvider:n,connection:r,account:c,codex:l,providerId:o,providerBusy:m,settings:p,status:t,onClose:A,onDeleteCredential:T,onRefreshModels:E,onSaveConfig:C,onSaveCredential:L,onStartOpenAiSubscriptionAuth:a,onValidate:S,conversationPanel:R}){const _=xe(A),[P,O]=s.useState("setup"),h=s.useId(),v=p.providers[o],k=p.modelCaches[o],M=s.useId(),D=s.useRef(o),f=Math.max(k?.models.length??0,t.modelIds.length),N=t.routing.localByok&&te(o)&&o!=="codex"&&!I(o),z=s.useMemo(()=>N?Xe(t):[],[N,t]),w=z.includes("subscription"),[x,u]=s.useState(()=>pe(t,p)),i=N&&x==="subscription"&&w,g=y=>`${M}-${y}-panel`,j=o==="codex"?"Codex app server":v?.baseUrl??(o==="openpond"?c?.chatApiBaseUrl:null)??"Not set";return s.useEffect(()=>{if(D.current!==o){D.current=o,u(pe(t,p));return}N&&!z.includes(x)&&u("api")},[x,z,N,o,p,t]),e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",role:"presentation",onMouseDown:A,children:e.jsxs("section",{ref:_,className:`git-dialog provider-details-dialog${R?" agent-setup-dialog":""}`,role:"dialog","aria-modal":"true","aria-label":`${t.displayName} provider details`,onMouseDown:y=>y.stopPropagation(),children:[e.jsx("button",{className:"git-dialog-close",type:"button",title:"Close","aria-label":"Close",onClick:A,children:e.jsx(ge,{size:16})}),e.jsxs("div",{className:"provider-dialog-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:t.displayName}),e.jsx("span",{children:ee.includes(o)||Z(o)?"Installation and login":"API and subscription settings"})]}),e.jsx("div",{className:`provider-state-pill ${je(t)}`,children:ve(t)})]}),(ee.includes(o)||Z(o))&&v?e.jsxs("label",{className:"provider-chat-toggle",children:[e.jsxs("span",{className:"provider-toggle",children:[e.jsx("input",{type:"checkbox","aria-label":`Enable ${t.displayName} for chat`,checked:v.enabled,disabled:m!==null,onChange:y=>{C(o,{enabled:y.target.checked})}}),e.jsx("span",{"aria-hidden":"true"})]}),e.jsxs("span",{children:["Use ",t.displayName," for chats"]})]}):null,R?e.jsxs("div",{className:"surface-tabs provider-agent-tabs",role:"tablist","aria-label":"Agent settings",onKeyDown:y=>{if(y.key!=="ArrowLeft"&&y.key!=="ArrowRight")return;y.preventDefault();const V=P==="setup"?"sync":"setup";O(V),y.currentTarget.querySelector(`#${CSS.escape(`${h}-${V}`)}`)?.focus()},children:[e.jsx("button",{type:"button",role:"tab",id:`${h}-setup`,"aria-controls":`${h}-setup-panel`,"aria-selected":P==="setup",tabIndex:P==="setup"?0:-1,onClick:()=>O("setup"),children:"Agent setup"}),e.jsx("button",{type:"button",role:"tab",id:`${h}-sync`,"aria-controls":`${h}-sync-panel`,"aria-selected":P==="sync",tabIndex:P==="sync"?0:-1,onClick:()=>O("sync"),children:"Conversation sync"})]}):null,e.jsxs("div",{hidden:P!=="setup",id:`${h}-setup-panel`,role:R?"tabpanel":void 0,"aria-labelledby":R?`${h}-setup`:void 0,children:[N?e.jsx("div",{className:"surface-tabs provider-mode-tabs",role:"tablist","aria-label":`${t.displayName} mode`,children:z.map(y=>e.jsx("button",{type:"button",role:"tab",id:`${M}-${y}`,className:x===y?"active":void 0,"aria-selected":x===y,"aria-controls":g(y),onClick:()=>u(y),children:y==="api"?"API":"Subscription"},y))}):null,ee.includes(o)||Z(o)?null:e.jsxs("dl",{className:"provider-dialog-stats",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Credential"}),e.jsx("dd",{title:me(t),children:me(t)})]}),i?null:e.jsxs(e.Fragment,{children:[I(o)?null:e.jsxs("div",{children:[e.jsx("dt",{children:"Base URL"}),e.jsx("dd",{title:j,children:j})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{title:v?.defaultModel??t.defaultModel??void 0,children:v?.defaultModel??t.defaultModel??"Not set"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Models"}),e.jsxs("dd",{title:k?.lastError??void 0,children:[f," cached, ",Ye(k?.fetchedAt)]})]})]}),o==="codex"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Account"}),e.jsx("dd",{title:l?.account?.email??void 0,children:l?.account?.label??l?.account?.email??"Not signed in"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Binary"}),e.jsx("dd",{title:l?.binaryPath??void 0,children:l?.binaryPath??"Not found"})]})]}):null,t.credential.lastError||k?.lastError||t.lastError?e.jsxs("div",{className:"provider-dialog-error",children:[e.jsx("dt",{children:"Error"}),e.jsx("dd",{title:t.credential.lastError??k?.lastError??t.lastError??void 0,children:t.credential.lastError??k?.lastError??t.lastError})]}):null]}),o==="codex"?e.jsxs(e.Fragment,{children:[v?e.jsx(ue,{connection:r,providerId:o,config:v,status:t,cachedModels:k?.models??[],busy:m!==null,onCheck:n},o):null,e.jsxs("div",{className:"provider-dialog-body",children:[e.jsx("h3",{children:"ChatGPT with the OpenPond harness"}),e.jsx("p",{children:"Native Codex and the OpenPond harness keep their own connections. Choose the execution path in the model picker."}),e.jsx("p",{children:p.statuses.openai?.credential.connected?"OpenPond harness connected":"OpenPond harness not connected"}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:m!==null,onClick:()=>{a("browser")},children:"Connect ChatGPT for OpenPond"}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:m!==null,onClick:()=>{C("openai",{enabled:!p.providers.openai?.enabled})},children:[p.providers.openai?.enabled?"Disable":"Enable"," OpenPond harness route"]})]})]}):I(o)&&v?e.jsx(ue,{connection:r,providerId:o,config:v,status:t,cachedModels:k?.models??[],busy:m!==null,onCheck:n},o):N&&v&&k?e.jsx(en,{credentialTab:x,credentialTabsId:M,hasSubscriptionTab:w,providerId:o,providerBusy:m,settings:p,status:t,onDeleteCredential:T,onRefreshModels:E,onSaveConfig:C,onSaveCredential:L,onStartOpenAiSubscriptionAuth:a,onValidate:S}):t.routing.localByok&&!te(o)?e.jsxs("div",{className:"provider-dialog-note",children:[e.jsx(fe,{size:15}),e.jsx("span",{children:"Adapter pending"})]}):null]}),P==="sync"?e.jsx("div",{role:"tabpanel",id:`${h}-sync-panel`,"aria-labelledby":`${h}-sync`,children:R}):null]})})}function en({credentialTab:n,credentialTabsId:r,hasSubscriptionTab:c,providerId:l,providerBusy:o,settings:m,status:p,onDeleteCredential:t,onRefreshModels:A,onSaveConfig:T,onSaveCredential:E,onStartOpenAiSubscriptionAuth:C,onValidate:L}){const a=m.providers[l],S=s.useMemo(()=>De(l,m),[l,m]),R=`provider-models-${l}`,_=s.useRef(l),[P,O]=s.useState(a.baseUrl??""),[h,v]=s.useState(a.defaultModel??""),[k,M]=s.useState(a.modelOverrides.join(`
|
|
2
|
-
`)),[D,f]=s.useState({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),[N,z]=s.useState("local_secret"),[w,x]=s.useState(""),[u,i]=s.useState(""),g=o===`${l}:config`,j=o===`${l}:credential`,y=o===`${l}:validate`,V=o===`${l}:models`,d=o==="openai:credential",J=l==="openai",W=l==="xai",X=l==="zai",b=(U=>`${r}-${U}-panel`)(n),$=n==="subscription"&&c,F=n==="subscription"&&X?"coding-plan":"api",B=F==="coding-plan"?"Coding Plan key":"API key",Ce=p.credential.connected?F==="coding-plan"?"Replace saved plan key":"Replace saved key":B,Se=F==="coding-plan"?"Save plan key":"Save key",le=s.useMemo(()=>Qe(S,[h,...he(k)]),[h,S,k]),ie=Math.max(0,S.length-le.length);s.useEffect(()=>{if(_.current!==l){_.current=l,f({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),O(a.baseUrl??""),v(a.defaultModel??""),M(a.modelOverrides.join(`
|
|
3
|
-
`));return}D.baseUrl||O(a.baseUrl??""),D.defaultModel||v(a.defaultModel??""),D.modelOverrides||M(a.modelOverrides.join(`
|
|
4
|
-
`))},[a.baseUrl,a.defaultModel,a.modelOverrides,D.baseUrl,D.defaultModel,D.modelOverrides,l]);const re=N==="env"?!!u.trim():!!w.trim();async function we(U){U.preventDefault(),await T(l,{enabled:!0,baseUrl:P.trim()||null,defaultModel:h.trim()||null,modelOverrides:he(k)}),f({baseUrl:!1,defaultModel:!1,modelOverrides:!1})}async function Pe(U){if(U.preventDefault(),!!re){if(N==="env"){await E(l,{source:"env",envVar:u.trim()});return}await E(l,{source:"local_secret",value:w}),x("")}}function oe({panel:U=!0}={}){return e.jsxs("form",{className:"provider-credential-panel",id:U?b:void 0,role:U?"tabpanel":void 0,"aria-labelledby":U?`${r}-${n}`:void 0,onSubmit:G=>{Pe(G)},children:[e.jsxs("div",{className:"provider-card-grid credential-grid",children:[e.jsxs("div",{className:"settings-select-field",children:[e.jsx("span",{children:"Credential source"}),e.jsx(se,{value:N,disabled:j,label:"Credential source",options:Je,onChange:G=>z(G)})]}),N==="env"?e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Environment variable"}),e.jsx("input",{value:u,disabled:j,placeholder:"PROVIDER_API_KEY",onChange:G=>i(G.currentTarget.value)})]}):e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:B}),e.jsx("input",{type:"password",value:w,disabled:j,placeholder:Ce,autoComplete:"off",onChange:G=>x(G.currentTarget.value)})]})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{className:"settings-secondary",disabled:j||!re,children:[j?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(Y,{size:14}),e.jsx("span",{children:j?"Saving":Se})]}),e.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${p.displayName} credential`,disabled:j||!p.credential.connected,onClick:()=>{t(l)},children:e.jsx(de,{size:15})})]})]})}function ke(){return J?e.jsxs("div",{className:"provider-subscription-panel",id:b,role:"tabpanel","aria-labelledby":`${r}-subscription`,children:[e.jsxs("div",{className:"provider-dialog-note codex-provider-note",children:[e.jsx(Y,{size:15}),e.jsx("span",{children:"ChatGPT subscription auth opens OpenAI login and stores a refresh token locally. API keys remain available under the API tab for raw Platform billing."})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{type:"button",className:"settings-secondary",disabled:d,onClick:()=>{C("browser")},children:[d?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(Y,{size:14}),e.jsx("span",{children:d?"Opening":"Connect ChatGPT"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:d,onClick:()=>{C("device")},children:[d?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(Y,{size:14}),e.jsx("span",{children:"Device code"})]}),e.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${p.displayName} credential`,disabled:d||!p.credential.connected,onClick:()=>{t(l)},children:e.jsx(de,{size:15})})]})]}):W?e.jsx("div",{className:"provider-subscription-panel",id:b,role:"tabpanel","aria-labelledby":`${r}-subscription`,children:e.jsxs("div",{className:"provider-dialog-note xai-provider-note",children:[e.jsx(Y,{size:15}),e.jsx("span",{children:"SuperGrok includes Grok app and Grok Build access. xAI API calls here still use an xAI Console API key with API credits or invoiced billing, so there is no separate Connect SuperGrok step yet."})]})}):X?e.jsxs("div",{className:"provider-subscription-panel",id:b,role:"tabpanel","aria-labelledby":`${r}-subscription`,children:[e.jsxs("div",{className:"provider-dialog-note subscription-provider-note",children:[e.jsx(Y,{size:15}),e.jsx("span",{children:"GLM Coding Plan uses a plan API key with the dedicated Coding endpoint. General Z.ai API keys and balances are separate."})]}),oe({panel:!1})]}):null}return e.jsxs("div",{className:"provider-dialog-body",children:[$?null:e.jsxs("form",{className:"provider-card-form",onSubmit:U=>{we(U)},children:[e.jsxs("div",{className:"provider-card-grid",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Base URL"}),e.jsx("input",{value:P,disabled:g,placeholder:"https://api.example.com/v1",onChange:U=>{f(G=>({...G,baseUrl:!0})),O(U.currentTarget.value)}})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Default model"}),e.jsx("input",{list:R,value:h,disabled:g,placeholder:"Model id",onChange:U=>{f(G=>({...G,defaultModel:!0})),v(U.currentTarget.value)}}),e.jsx("datalist",{id:R,children:le.map(U=>e.jsx("option",{value:U.value,children:U.label},U.value))}),ie>0?e.jsxs("small",{children:[ie," more cached models hidden from suggestions"]}):null]})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{className:"settings-secondary",disabled:g,children:[g?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(Te,{size:14}),e.jsx("span",{children:g?"Saving":"Save config"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:V,onClick:()=>{A(l)},children:[V?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(ae,{size:14}),e.jsx("span",{children:V?"Refreshing":"Refresh models"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:y||!h.trim(),onClick:()=>{L(l,{baseUrl:P.trim()||void 0,modelId:h.trim()||void 0})},children:[y?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(be,{size:14}),e.jsx("span",{children:y?"Testing":"Test"})]})]})]}),e.jsx("div",{className:"provider-card-form credential-form",children:$?ke():oe()})]})}function rn({connection:n,onError:r,onPreferences:c,onProviders:l,preferences:o,providers:m}){const p=s.useRef(n);p.current=n;const[t,A]=s.useState(o.defaultChatProvider),[T,E]=s.useState(o.defaultChatModel),[C,L]=s.useState(!1),[a,S]=s.useState(null),[R,_]=s.useState(null);s.useEffect(()=>{A(o.defaultChatProvider),E(o.defaultChatModel)},[o.defaultChatProvider,o.defaultChatModel]);async function P(u){if(u.preventDefault(),!!n){L(!0),r(null);try{c(await H.savePreferences(n,{defaultChatProvider:t,defaultChatModel:ce(t,T,m)}))}catch(i){r(i instanceof Error?i.message:String(i))}finally{L(!1)}}}function O(u){A(u),E(i=>ce(u,i,m))}async function h(u,i,g){if(!n)return null;S(`${u}:${i}`),_(null),r(null);try{return await g()}catch(j){return r(j instanceof Error?j.message:String(j)),null}finally{S(null)}}async function v(u,i){await h(u,"config",async()=>{const g=await H.saveProviderSettings(n,{providers:{[u]:i}});return l(g),g})}async function k(u,i){await h(u,"credential",async()=>{const g=await H.saveProviderCredential(n,u,i);return l(g),g})}async function M(u){await h(u,"credential",async()=>{const i=await H.deleteProviderCredential(n,u,{});return l(i),i})}async function D(u){return h("openai","credential",async()=>{const i=await H.startOpenAiSubscriptionAuth(n,{method:u});return i.method==="browser"?(window.open(i.url,"_blank","noopener,noreferrer"),_("OpenAI ChatGPT login opened in your browser. Return here after authorization.")):(window.open(i.url,"_blank","noopener,noreferrer"),_(`OpenAI device login started. Enter code ${i.userCode}.`)),f(i.expiresAt),i})}async function f(u){if(n)for(;Date.now()<u;){await new Promise(i=>setTimeout(i,2500));try{const i=await H.providerSettings(n);l(i);const g=i.statuses.openai?.credential;if(g?.connected&&g.source==="chatgpt_subscription"){_("OpenAI ChatGPT subscription connected.");return}}catch{}}}async function N(u){await h(u,"models",async()=>{const i=await H.refreshProviderModels(n,u,{force:!0});return l(i.providers),i})}async function z(u){await h(u,"models",async()=>{const i=await H.loadProviderModels(n,u,{limit:500});return l(i.providers),i})}async function w(u,i={}){await h(u,"validate",async()=>{const g=await H.validateProviderCredential(n,u,i);return _(g.ok?`${u} validated${g.modelId?` with ${g.modelId}`:""}.`:g.errors.join(`
|
|
5
|
-
`)||`${u} validation failed.`),l(g.providers),g})}return{checkNativeProvider:async(u,i,g)=>{if(!n)throw new Error("Connect to the local OpenPond server first.");i.throwIfAborted(),g&&await H.saveProviderSettings(n,{providers:{[u]:g}}),i.throwIfAborted();const j=await q(n,`/v1/providers/${u}/native-setup`,{method:"POST",body:JSON.stringify({action:"check"}),signal:i});if(i.throwIfAborted(),p.current?.serverUrl!==n.serverUrl||p.current?.token!==n.token)throw new DOMException("Connection changed","AbortError");return l(j.settings),j},defaultModel:T,defaultProvider:t,providerBusy:a,saving:C,validationMessage:R,changeDefaultProvider:O,deleteProviderCredential:M,loadProviderModels:z,refreshProviderModels:N,saveProviderConfig:v,saveProviderCredential:k,saveProviders:P,setDefaultModel:E,startOpenAiSubscriptionAuth:D,validateProvider:w}}export{Y as K,ln as P,xe as a,Ie as b,rn as u};
|