openpond 0.2.54 → 0.2.56
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 +10823 -9118
- package/dist/app-server.js +1 -1
- package/dist/chunks/actions-command-QU4H53OG.js +2 -0
- package/dist/chunks/{app-layer-I7MZYVLL.js → app-layer-NSTE5HIT.js} +1 -1
- package/dist/chunks/app-server-connected-apps-JHGWLBXT.js +2 -0
- package/dist/chunks/app-server-evaluations-GJPFWIDA.js +2 -0
- package/dist/chunks/app-server-harness-services-IH4G6POY.js +2 -0
- package/dist/chunks/app-server-runtime-DVKOZ5B6.js +2 -0
- package/dist/chunks/apps-BKTOR4F7.js +2 -0
- package/dist/chunks/chunk-25MBPJVY.js +2 -0
- package/dist/chunks/chunk-2D4Y3HNW.js +2 -0
- package/dist/chunks/chunk-2IHO4GDJ.js +2 -0
- package/dist/chunks/chunk-2QUCCP6Z.js +2 -0
- package/dist/chunks/chunk-3K4VVB7S.js +6 -0
- package/dist/chunks/chunk-3QIB5FXI.js +10 -0
- package/dist/chunks/chunk-3RCRSMWZ.js +17 -0
- package/dist/chunks/chunk-3VUATFZD.js +2 -0
- package/dist/chunks/chunk-3Z47M3YY.js +2 -0
- package/dist/chunks/{chunk-GXSTZBM6.js → chunk-4D7HWVWD.js} +1 -1
- package/dist/chunks/chunk-4EPSHPZL.js +2 -0
- package/dist/chunks/chunk-4NESNOK5.js +2 -0
- package/dist/chunks/chunk-523TE4BI.js +2 -0
- package/dist/chunks/chunk-5MCNZCVQ.js +2 -0
- package/dist/chunks/chunk-6QSSIT62.js +2 -0
- package/dist/chunks/chunk-6ZFPQYHG.js +2 -0
- package/dist/chunks/chunk-74IIXVAE.js +2 -0
- package/dist/chunks/chunk-74ZXXBGN.js +6 -0
- package/dist/chunks/chunk-773TH7FN.js +2 -0
- package/dist/chunks/chunk-7E6T7GP5.js +2 -0
- package/dist/chunks/chunk-7ED24PP6.js +2 -0
- package/dist/chunks/chunk-7HPDGZOR.js +86 -0
- package/dist/chunks/chunk-7KWD2I6W.js +2 -0
- package/dist/chunks/chunk-7PXZ4X4P.js +2 -0
- package/dist/chunks/chunk-A6USMRWK.js +2 -0
- package/dist/chunks/chunk-ABD5M2D2.js +2 -0
- package/dist/chunks/chunk-ACYFMLWG.js +10 -0
- package/dist/chunks/chunk-AN525SPP.js +6 -0
- package/dist/chunks/chunk-APB2STJK.js +2 -0
- package/dist/chunks/chunk-AY64VY4E.js +2 -0
- package/dist/chunks/{chunk-UJ5EFSEC.js → chunk-B7RFL4N2.js} +1 -1
- package/dist/chunks/chunk-BFKYRQMA.js +2 -0
- package/dist/chunks/chunk-BLXEAZCQ.js +12 -0
- package/dist/chunks/chunk-D74JEERO.js +5 -0
- package/dist/chunks/{chunk-PA7XP42P.js → chunk-DARVPBZ4.js} +1 -1
- package/dist/chunks/chunk-DBK66CJP.js +8 -0
- package/dist/chunks/chunk-DDMZSZFL.js +1 -0
- package/dist/chunks/chunk-DIO5CB6U.js +2 -0
- package/dist/chunks/chunk-DMFUEUAZ.js +5 -0
- package/dist/chunks/chunk-DMVD2RFZ.js +2 -0
- package/dist/chunks/chunk-DUURYZOI.js +2 -0
- package/dist/chunks/chunk-DZUAT3TP.js +1 -0
- package/dist/chunks/chunk-EIEZHFIW.js +6 -0
- package/dist/chunks/chunk-EIRYMSEG.js +19 -0
- package/dist/chunks/{chunk-JDLAHVAJ.js → chunk-EKM2D7JU.js} +1 -1
- package/dist/chunks/chunk-EQFGBL3O.js +2 -0
- package/dist/chunks/chunk-EYPCBBMS.js +2 -0
- package/dist/chunks/chunk-F4KOGISR.js +10 -0
- package/dist/chunks/chunk-F74GBN6K.js +2 -0
- package/dist/chunks/chunk-FEAKTSRS.js +2 -0
- package/dist/chunks/chunk-FFRFSDBM.js +2 -0
- package/dist/chunks/chunk-FTEOCCPB.js +23 -0
- package/dist/chunks/chunk-FUOEIDMA.js +8 -0
- package/dist/chunks/{chunk-AH22RHPS.js → chunk-FV2R5RUN.js} +2 -2
- package/dist/chunks/chunk-FWIPHEVA.js +12 -0
- package/dist/chunks/chunk-FY5KHLMW.js +2 -0
- package/dist/chunks/chunk-G3RXYI2L.js +6 -0
- package/dist/chunks/chunk-GJ2ZJFDD.js +2 -0
- package/dist/chunks/chunk-GLDYJM7O.js +1 -0
- package/dist/chunks/chunk-GPVCOEUH.js +2 -0
- package/dist/chunks/chunk-GW766ZSO.js +5 -0
- package/dist/chunks/chunk-GWCHDF2C.js +4 -0
- package/dist/chunks/chunk-GZ7M5XBP.js +2 -0
- package/dist/chunks/chunk-H6IW2R22.js +140 -0
- package/dist/chunks/chunk-HCYX6RHP.js +2 -0
- package/dist/chunks/chunk-HDL5YSAA.js +2 -0
- package/dist/chunks/chunk-HIOKCIL7.js +2 -0
- package/dist/chunks/chunk-HY3GOBFJ.js +58 -0
- package/dist/chunks/chunk-HZEIRHEB.js +2 -0
- package/dist/chunks/chunk-I2NXNMRZ.js +2 -0
- package/dist/chunks/chunk-I7AQMAQI.js +33 -0
- package/dist/chunks/chunk-IZ6DLEVY.js +2 -0
- package/dist/chunks/chunk-J2TWKFML.js +1871 -0
- package/dist/chunks/chunk-JDEEWOD7.js +2 -0
- package/dist/chunks/chunk-JFXWI3EN.js +6 -0
- package/dist/chunks/chunk-JYKRR7E5.js +5 -0
- package/dist/chunks/chunk-KCJVFLBB.js +2 -0
- package/dist/chunks/{chunk-5CMKGD43.js → chunk-KG325WTN.js} +1 -1
- package/dist/chunks/chunk-KGNCKIFP.js +3 -0
- package/dist/chunks/chunk-KUERKVEU.js +3 -0
- package/dist/chunks/chunk-KVTBX2UP.js +2 -0
- package/dist/chunks/chunk-L6K7ERG5.js +2 -0
- package/dist/chunks/{chunk-N5QNXMIS.js → chunk-LQQNBVEB.js} +1 -1
- package/dist/chunks/{chunk-YJ4PNAST.js → chunk-M4JWQSV7.js} +1 -1
- package/dist/chunks/chunk-MQULU465.js +2 -0
- package/dist/chunks/chunk-N4FFQPLR.js +2 -0
- package/dist/chunks/chunk-N73MU2C3.js +2 -0
- package/dist/chunks/chunk-NHQ36THU.js +3 -0
- package/dist/chunks/{chunk-4SHKI3BH.js → chunk-O6ULLQJ6.js} +1 -1
- package/dist/chunks/chunk-O72BSKSO.js +2 -0
- package/dist/chunks/chunk-OGDADQGH.js +143 -0
- package/dist/chunks/chunk-OIUTWU6K.js +2 -0
- package/dist/chunks/chunk-OLLLZVHF.js +2 -0
- package/dist/chunks/{chunk-XM26DGML.js → chunk-OPNRWESL.js} +1 -1
- package/dist/chunks/chunk-OQKJGTTO.js +4 -0
- package/dist/chunks/chunk-OQPJ7FJF.js +9 -0
- package/dist/chunks/{chunk-R3XFY7VL.js → chunk-OS3LO5J3.js} +1 -1
- package/dist/chunks/{chunk-T5LE6R5S.js → chunk-OSIO7PLX.js} +1 -1
- package/dist/chunks/chunk-OUVIWDL2.js +2 -0
- package/dist/chunks/chunk-PCSIOUHF.js +7 -0
- package/dist/chunks/chunk-PF5R6CMP.js +21 -0
- package/dist/chunks/chunk-PPAPVGJP.js +3 -0
- package/dist/chunks/chunk-PRGBLQVH.js +2 -0
- package/dist/chunks/chunk-PSGGOZFM.js +2 -0
- package/dist/chunks/chunk-PUZQU66L.js +2 -0
- package/dist/chunks/{chunk-WITSXYEW.js → chunk-Q2QL6UWN.js} +1 -1
- package/dist/chunks/chunk-Q4TBTRIG.js +2 -0
- package/dist/chunks/chunk-Q5LEXXJG.js +16 -0
- package/dist/chunks/{chunk-YL6VFJ4P.js → chunk-QDC4OW3S.js} +1 -1
- package/dist/chunks/chunk-QEFHOJFE.js +7 -0
- package/dist/chunks/chunk-QHWGQ3A4.js +5 -0
- package/dist/chunks/chunk-QIKWJ2AA.js +11 -0
- package/dist/chunks/chunk-QNG27G3T.js +6 -0
- package/dist/chunks/chunk-QOGJAQDO.js +3 -0
- package/dist/chunks/chunk-QOTVNQDI.js +4 -0
- package/dist/chunks/{chunk-N3DEA6PG.js → chunk-RAXOSUSW.js} +1 -1
- package/dist/chunks/chunk-RNIAFXMB.js +50 -0
- package/dist/chunks/chunk-S5ESN275.js +42 -0
- package/dist/chunks/chunk-SDAUS5PY.js +2 -0
- package/dist/chunks/chunk-SDXFLO7J.js +5 -0
- package/dist/chunks/chunk-SH5CBAFC.js +2 -0
- package/dist/chunks/chunk-SWUEFLOH.js +2 -0
- package/dist/chunks/chunk-SYUKES6H.js +3 -0
- package/dist/chunks/chunk-T5AACNJI.js +2 -0
- package/dist/chunks/chunk-TRQQNFMO.js +4 -0
- package/dist/chunks/chunk-TVQAPBLZ.js +2 -0
- package/dist/chunks/chunk-UCPGRPWY.js +2 -0
- package/dist/chunks/chunk-UGL7WF3W.js +2 -0
- package/dist/chunks/chunk-UHFZHBGW.js +2 -0
- package/dist/chunks/chunk-UKMA4R6X.js +6 -0
- package/dist/chunks/{chunk-7ZG3IT7C.js → chunk-VRIEKBBH.js} +6 -6
- package/dist/chunks/chunk-VYLGI3IH.js +13 -0
- package/dist/chunks/chunk-W45RKGM6.js +1 -0
- package/dist/chunks/chunk-WJ43MJ3F.js +2 -0
- package/dist/chunks/chunk-WMKYHXVM.js +3 -0
- package/dist/chunks/chunk-WN3V6KDN.js +3 -0
- package/dist/chunks/chunk-X4OSOOSU.js +3 -0
- package/dist/chunks/chunk-XDQMGUWL.js +2 -0
- package/dist/chunks/chunk-XTFPDQMH.js +3 -0
- package/dist/chunks/chunk-XVDFJ3ZF.js +2 -0
- package/dist/chunks/chunk-XW6HGSIT.js +8 -0
- package/dist/chunks/chunk-XXYGGNVM.js +2 -0
- package/dist/chunks/chunk-Y4OWBBDD.js +184 -0
- package/dist/chunks/chunk-YBT2NB32.js +2 -0
- package/dist/chunks/chunk-YCJO3YVD.js +10 -0
- package/dist/chunks/{chunk-YD55Z5H3.js → chunk-YOBN7KTF.js} +11 -11
- package/dist/chunks/chunk-YOQRYNLP.js +2 -0
- package/dist/chunks/chunk-YR5ID2SS.js +2 -0
- package/dist/chunks/chunk-YY7LEQGP.js +2 -0
- package/dist/chunks/chunk-Z4Z5UOZM.js +22 -0
- package/dist/chunks/chunk-Z54O534A.js +3 -0
- package/dist/chunks/chunk-ZCHXGRRU.js +2 -0
- package/dist/chunks/chunk-ZFSHBFG5.js +40 -0
- package/dist/chunks/chunk-ZGTOK7ZK.js +12 -0
- package/dist/chunks/{chunk-NAZ26IZL.js → chunk-ZRDGQDZL.js} +1 -1
- package/dist/chunks/chunk-ZUJ3XUCP.js +2 -0
- package/dist/chunks/chunk-ZZWAQBA2.js +2 -0
- package/dist/chunks/cli-X25RSO2X.js +2 -0
- package/dist/chunks/configuration-command-6C5UO7GE.js +2 -0
- package/dist/chunks/connected-app-executor-IVLGQP65.js +2 -0
- package/dist/chunks/connected-evidence-GH2ATNEX.js +2 -0
- package/dist/chunks/connection-HTF6CC7M.js +2 -0
- package/dist/chunks/{continual-PKK2BOTB.js → continual-6CQAMTTR.js} +3 -3
- package/dist/chunks/core-commands-A2DGGIPS.js +2 -0
- package/dist/chunks/datasets-7BNMVJOY.js +2 -0
- package/dist/chunks/desktop-test-3CUHVLXV.js +3 -0
- package/dist/chunks/dist-OMGUJYPD.js +2 -0
- package/dist/chunks/{chunk-6VF3Q6QJ.js → dist-SKYG5LZO.js} +2 -4
- package/dist/chunks/dist-VYC5VMQB.js +2 -0
- package/dist/chunks/dist-ZVJPJLXR.js +2 -0
- package/dist/chunks/enclave-QS4BUNDU.js +2 -0
- package/dist/chunks/evaluation-coordination-XEF5L7KZ.js +2 -0
- package/dist/chunks/experiment-improvements-KRX2DP27.js +2 -0
- package/dist/chunks/experiments-DFGQYA4O.js +2 -0
- package/dist/chunks/experiments-VFQGE4HC.js +2 -0
- package/dist/chunks/extension-XKXXOP5N.js +4 -0
- package/dist/chunks/{help-WLKSACLZ.js → help-S7THC6IE.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-JJQWJUBT.js +2 -0
- package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +2 -0
- package/dist/chunks/hosted-app-server-composition-BCOO5ANF.js +2 -0
- package/dist/chunks/hosted-experiment-improvement-NFSVS5TU.js +3 -0
- package/dist/chunks/hosted-harness-runtime-723S5ZSH.js +2 -0
- package/dist/chunks/hosted-profile-candidate-2S5LFUWD.js +3 -0
- package/dist/chunks/hosted-profile-compiler-2DQIFSXW.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-76BTRTYD.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-inspection-V6Z3A5XJ.js +3 -0
- package/dist/chunks/hosted-profile-evaluation-preparation-IDJYREW3.js +3 -0
- package/dist/chunks/hosted-tasksets-ANAE2PIW.js +2 -0
- package/dist/chunks/human-review-WR777ODH.js +2 -0
- package/dist/chunks/import-MLZUHITH.js +4 -0
- package/dist/chunks/javascript-isolate-process-source-ZPQKKLR4.js +2 -0
- package/dist/chunks/javascript-verifier-worker-source-F3LSGPOY.js +2 -0
- package/dist/chunks/learning-ACEVFL5M.js +2 -0
- package/dist/chunks/local-harness-improvement-runtime-JIQ6ZVDW.js +2 -0
- package/dist/chunks/local-harness-taskset-review-XVYTGAGK.js +2 -0
- package/dist/chunks/local-scope-HVF2GZ5W.js +2 -0
- package/dist/chunks/model-projects-QPO22JPA.js +2 -0
- package/dist/chunks/opchat-T4QTNEIY.js +3 -0
- package/dist/chunks/organizations-75L5DZDV.js +2 -0
- package/dist/chunks/profile-TFZMUEDR.js +3 -0
- package/dist/chunks/profile-training-source-6GOT7AHM.js +2 -0
- package/dist/chunks/project-action-payload-7VGL7OER.js +2 -0
- package/dist/chunks/project-agent-6RRO233B.js +2 -0
- package/dist/chunks/published-experiment-source-DZFENAQA.js +2 -0
- package/dist/chunks/refiner-profile-service-UUIWFJVT.js +2 -0
- package/dist/chunks/runtime-A7OZXM43.js +6 -0
- package/dist/chunks/sandbox-command-IU5XFTJP.js +2 -0
- package/dist/chunks/{sandbox-template-BBGGPJMI.js → sandbox-template-C4V6T36U.js} +1 -1
- package/dist/chunks/saved-work-6BMBFP43.js +2 -0
- package/dist/chunks/send-turn-XTAIS2JN.js +2 -0
- package/dist/chunks/sql-execution-process-source-B4HQM6ZV.js +2 -0
- package/dist/chunks/src-CJM6HY5Y.js +326 -0
- package/dist/chunks/{src-CR6UZYTX.js → src-LMC3K6LH.js} +1 -1
- package/dist/chunks/standalone-experiment-turn-owner-JCY5LL5R.js +2 -0
- package/dist/chunks/store-chat-workflows-S72HZXQR.js +18 -0
- package/dist/chunks/store-continual-support-reviews-HHA6NX7K.js +7 -0
- package/dist/chunks/store-conversation-serving-KPC62UEY.js +2 -0
- package/dist/chunks/store-create-improve-QV54XIZW.js +40 -0
- package/dist/chunks/store-datasets-RXJ33SUN.js +86 -0
- package/dist/chunks/store-evaluation-results-3F3P527G.js +7 -0
- package/dist/chunks/store-harness-evaluation-review-settings-I2R3HPO3.js +29 -0
- package/dist/chunks/store-harness-memory-VINCZ4GK.js +17 -0
- package/dist/chunks/store-harness-refinement-candidates-EA5KFQPH.js +21 -0
- package/dist/chunks/store-harness-workspaces-XUM4Z66X.js +2 -0
- package/dist/chunks/store-human-review-RAH7WMIP.js +7 -0
- package/dist/chunks/store-learned-preference-migration-validation-4CI2IRUF.js +2 -0
- package/dist/chunks/store-learning-WLG6KFIO.js +2 -0
- package/dist/chunks/store-learning-credentials-WZQJ4HPJ.js +2 -0
- package/dist/chunks/store-local-experiments-5LUJR7GI.js +97 -0
- package/dist/chunks/store-model-batch-review-YEGX327M.js +2 -0
- package/dist/chunks/store-model-configuration-5ZURQATB.js +3 -0
- package/dist/chunks/store-preference-comparison-LV32MHVL.js +6 -0
- package/dist/chunks/store-schedules-VGTEQVKH.js +53 -0
- package/dist/chunks/store-sidebar-file-bookmarks-VB5GTLFY.js +18 -0
- package/dist/chunks/store-sidebar-preferences-GWIOG2NH.js +16 -0
- package/dist/chunks/store-subagents-T7R2Z6TB.js +67 -0
- package/dist/chunks/store-task-inbox-JJTBW76C.js +33 -0
- package/dist/chunks/store-task-inventory-OB3F2APC.js +10 -0
- package/dist/chunks/store-taskset-drafts-EKQWWFYQ.js +9 -0
- package/dist/chunks/store-training-G6YLFSIR.js +70 -0
- package/dist/chunks/store-training-jobs-RC46YBF6.js +19 -0
- package/dist/chunks/store-training-models-6BA43IPP.js +49 -0
- package/dist/chunks/store-usage-IE2U2FD3.js +63 -0
- package/dist/chunks/store-work-evidence-QQDKM5AQ.js +8 -0
- package/dist/chunks/taskset-EQRFQBYM.js +2 -0
- package/dist/chunks/taskset-packages-XC6HEE3K.js +2 -0
- package/dist/chunks/{teams-bot-7I4BAUVO.js → teams-bot-EAPGPTHZ.js} +1 -1
- package/dist/chunks/training-UF6RPI4T.js +2 -0
- package/dist/chunks/web-search-CZ3NCLPY.js +2 -0
- package/dist/chunks/workspaces-EKKE5NAC.js +2 -0
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/web/assets/App-CaRMZoxo.css +1 -0
- package/dist/web/assets/App-s-CJswyt.js +154 -0
- package/dist/web/assets/{AppDialog-BdusXgU0.js → AppDialog-t2Fx5tK3.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-C4uRpnBz.js → AppTerminalPanel-Dj1Y32oI.js} +2 -2
- package/dist/web/assets/AppsView-BYE5EBDJ.js +1 -0
- package/dist/web/assets/{BrowserSidebar-Bl7V6YO2.js → BrowserSidebar-jhWi4rVm.js} +1 -1
- package/dist/web/assets/{CartesianChart-BstFbsdn.js → CartesianChart-C1DIx0Ia.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-B8YAf0c1.js → CollaborationTabs-Bdr-HmOL.js} +1 -1
- package/dist/web/assets/{CommandMenu-DZct7zUJ.js → CommandMenu-Ux2yOHAc.js} +1 -1
- package/dist/web/assets/{CommunityView-CR0-W-uG.js → CommunityView-DPEeVKFn.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-DR-Qo7b4.js → ComposerCreateImproveStrip-CEgh4OtN.js} +1 -1
- package/dist/web/assets/{GetStartedView-xqQoMMei.js → GetStartedView-CFHP0AaI.js} +1 -1
- package/dist/web/assets/HostedModelLearningReview-D8BGTPVN.js +1 -0
- package/dist/web/assets/{HostedModelLearningSettings-De3i9wF4.js → HostedModelLearningSettings-JS1S7vNO.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-DAY1MmqP.js → LabModelVersionDetailPage-Dx5Q3xV2.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-DLnIgnry.js → LabSkillSidebar-BxffN-pN.js} +1 -1
- package/dist/web/assets/LabsRoute-CyYF8-dw.js +99 -0
- package/dist/web/assets/MainChatThread-DZpcFRFl.js +2 -0
- package/dist/web/assets/MainPane-5DTtwVCk.js +65 -0
- package/dist/web/assets/MainPane-BIM_UJ3q.css +1 -0
- package/dist/web/assets/{MarkdownText-gJMuefaJ.js → MarkdownText-BR4V6lNO.js} +24 -24
- package/dist/web/assets/{NativeSkillSidebar-Dlxb8iOC.js → NativeSkillSidebar-DU9IEgIO.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-DM-cqJ-K.js → NewExperienceSwitcher-mIy6FzCj.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-Cu1q75gq.js → NewProjectDialog-RfTZTHxl.js} +1 -1
- package/dist/web/assets/{OutputsPage-DiXMkasl.js → OutputsPage-Cr1Spf7S.js} +1 -1
- package/dist/web/assets/{ProjectsPage-DqiBHiCB.js → ProjectsPage-CE6QUB-b.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-T6VRWuHo.js +1 -0
- package/dist/web/assets/RightSidebarHomePanel-CK0rP3WT.js +1 -0
- package/dist/web/assets/ScheduledWorkPage-vOrYv8pp.js +1 -0
- package/dist/web/assets/SettingsView-DCKVrfjj.js +5 -0
- package/dist/web/assets/SettingsView-Dulr_xlq.css +1 -0
- package/dist/web/assets/{TeamChatView-DM0adMtj.js → TeamChatView-Bwrjr-vk.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-CFlH51DD.js → TerminalOverlay-DhPoKZAq.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +1 -0
- package/dist/web/assets/{TrainingDraftPanel-Bbo3RRie.js → TrainingDraftPanel-C9cRX5qf.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CSRjJUSa.js → UsageSettingsSection-CrdcSGeW.js} +1 -1
- package/dist/web/assets/{WorkSidebarPanel-DwlEMEoG.js → WorkSidebarPanel-DSSikNFQ.js} +1 -1
- package/dist/web/assets/WorkspaceDiffPanel-BAFo0CPN.js +14 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-BVHAhwnJ.js +63 -0
- package/dist/web/assets/WorkspaceGitDialogs-CwVoiDQ2.js +1 -0
- package/dist/web/assets/{WorkspaceMonacoEditor-BR4qxMgU.js → WorkspaceMonacoEditor-TxLyhzNp.js} +3 -3
- package/dist/web/assets/arrow-up-right-C9aE8Mfz.js +1 -0
- package/dist/web/assets/chunk-P3BRSSRD-DUGfuKA8.js +1 -0
- package/dist/web/assets/{clipboard-BZzZ82Bk.js → clipboard-Dk158Qp4.js} +1 -1
- package/dist/web/assets/{cloud-upload-CJPYPVl8.js → cloud-upload-k9eqBsHr.js} +1 -1
- package/dist/web/assets/{cssMode-WC4Rg1l-.js → cssMode-CO35ARZp.js} +1 -1
- package/dist/web/assets/{folder-open-sLZJxLQy.js → folder-open-sYgceW_f.js} +1 -1
- package/dist/web/assets/folder-plus-CS0R49m9.js +1 -0
- package/dist/web/assets/{git-commit-horizontal-Cotm7KEC.js → git-commit-horizontal-DrGxH2h4.js} +1 -1
- package/dist/web/assets/{htmlMode-C6oZGeaB.js → htmlMode-REMmzdfq.js} +1 -1
- package/dist/web/assets/index-3iPNbbER.css +1 -0
- package/dist/web/assets/{index-BxWTVKtn.js → index-C8aCGagb.js} +2 -2
- package/dist/web/assets/info-DLdbiUrh.js +1 -0
- package/dist/web/assets/{jsonMode-BET4LQIn.js → jsonMode-KEdMfkIf.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-BPxA_-Kg.js → lspLanguageFeatures-5KZwEoxW.js} +1 -1
- package/dist/web/assets/minimize-2-CqcI4zcM.js +1 -0
- package/dist/web/assets/{monaco.contribution-DFzEyaHi.js → monaco.contribution-BJGj65F9.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DXzyQfVi.js → monaco.contribution-Cly9Wt7L.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BH6kkO4b.js → monaco.contribution-DO10L0zW.js} +2 -2
- package/dist/web/assets/{monaco.contribution-7AUuf2NS.js → monaco.contribution-omszXBEj.js} +2 -2
- package/dist/web/assets/monitor-BFVCcbxp.js +1 -0
- package/dist/web/assets/play-C469pVZq.js +1 -0
- package/dist/web/assets/{python-PzBkTjWx.js → python-Dw0YcVy9.js} +1 -1
- package/dist/web/assets/{save-DpezrtH2.js → save-CtSjPydi.js} +1 -1
- package/dist/web/assets/square-BuImvLhT.js +1 -0
- package/dist/web/assets/{toggleHighContrast-Cto-fOXm.js → toggleHighContrast-DjCO9lIP.js} +1 -1
- package/dist/web/assets/{tsMode-BYA4LNc6.js → tsMode-BAOnxKd6.js} +1 -1
- package/dist/web/assets/{upload-C5YFNgtS.js → upload-2JkFZo3h.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-CnyTsqlf.js → useLocalAgentSchedules-BNqAisfS.js} +1 -1
- package/dist/web/assets/useProviderSettings-C4L4wDoh.js +5 -0
- package/dist/web/assets/{useProviderSettings-Bw-csWbH.css → useProviderSettings-CmL_BaxP.css} +1 -1
- package/dist/web/assets/{useSessionTurnCache-DICuJSJW.js → useSessionTurnCache-BHU2-Jmz.js} +1 -1
- package/dist/web/assets/{wifi-off-nzHj7JXp.js → wifi-off-CpOAH62M.js} +1 -1
- package/dist/web/assets/{workers-Dboaw6f_.js → workers-0QvlA2T5.js} +1 -1
- package/dist/web/assets/{yaml-uuY5JmO8.js → yaml-BK3qxo7D.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +3 -3
- package/dist/chunks/actions-command-DSO6YOEE.js +0 -2
- package/dist/chunks/app-server-runtime-7AXV6JZI.js +0 -2
- package/dist/chunks/apps-TM74FFQB.js +0 -2
- package/dist/chunks/chunk-2JO2KWT3.js +0 -5
- package/dist/chunks/chunk-2SPZYBDN.js +0 -16
- package/dist/chunks/chunk-37DXASQL.js +0 -191
- package/dist/chunks/chunk-4EEH7MEC.js +0 -2
- package/dist/chunks/chunk-4TZHH5FC.js +0 -2409
- package/dist/chunks/chunk-5TNDPNS3.js +0 -2
- package/dist/chunks/chunk-6JAN4RMN.js +0 -42
- package/dist/chunks/chunk-7QEE4PBI.js +0 -8
- package/dist/chunks/chunk-BX4J2VDU.js +0 -2
- package/dist/chunks/chunk-DALJMSJG.js +0 -33
- package/dist/chunks/chunk-EMKZVP7Z.js +0 -2
- package/dist/chunks/chunk-FPUUZQUP.js +0 -6
- package/dist/chunks/chunk-GCOUYYHG.js +0 -5
- package/dist/chunks/chunk-GS2NKNKG.js +0 -4
- package/dist/chunks/chunk-H2VT22JK.js +0 -2
- package/dist/chunks/chunk-HA7EFTPF.js +0 -23
- package/dist/chunks/chunk-IKWDL3RB.js +0 -17
- package/dist/chunks/chunk-NHFGEVVH.js +0 -518
- package/dist/chunks/chunk-NNF6KCHD.js +0 -3
- package/dist/chunks/chunk-PJM2G7SG.js +0 -21
- package/dist/chunks/chunk-PQHTZ5CP.js +0 -2
- package/dist/chunks/chunk-PYABBF53.js +0 -53
- package/dist/chunks/chunk-QRWPEW3Z.js +0 -24
- package/dist/chunks/chunk-QXVIIM4T.js +0 -2
- package/dist/chunks/chunk-SDEDAHV6.js +0 -160
- package/dist/chunks/chunk-TGIB24K4.js +0 -22
- package/dist/chunks/chunk-UE3DMPGM.js +0 -3
- package/dist/chunks/chunk-USKE34VR.js +0 -9
- package/dist/chunks/chunk-USMZT5FZ.js +0 -18
- package/dist/chunks/chunk-WV2APYWG.js +0 -2
- package/dist/chunks/chunk-YIB3J4RC.js +0 -2
- package/dist/chunks/chunk-Z3D4C7BG.js +0 -12
- package/dist/chunks/cli-JVB345H2.js +0 -2
- package/dist/chunks/configuration-command-MATM4XR5.js +0 -2
- package/dist/chunks/connected-evidence-YDPGNHLP.js +0 -2
- package/dist/chunks/core-commands-MTV4EKXY.js +0 -2
- package/dist/chunks/datasets-CP3IT47T.js +0 -2
- package/dist/chunks/desktop-test-IAZC5MAH.js +0 -3
- package/dist/chunks/dist-4HV2W6V4.js +0 -2
- package/dist/chunks/dist-SAABJU5F.js +0 -2
- package/dist/chunks/evaluation-coordination-EPHLZXYM.js +0 -2
- package/dist/chunks/experiment-improvements-6JTOPA74.js +0 -2
- package/dist/chunks/experiments-XHPFGECH.js +0 -2
- package/dist/chunks/extension-GX7DLW2X.js +0 -4
- package/dist/chunks/hosted-experiment-improvement-HAB3UE6A.js +0 -3
- package/dist/chunks/hosted-harness-runtime-YM23QNDK.js +0 -2
- package/dist/chunks/hosted-profile-candidate-EOBGKQAS.js +0 -3
- package/dist/chunks/hosted-profile-compiler-SCVJI2CP.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-RJ6XJZCS.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-OC4XNGL2.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-ZD4FM3FD.js +0 -3
- package/dist/chunks/human-review-AAVMISBF.js +0 -2
- package/dist/chunks/import-V3HUGRHR.js +0 -4
- package/dist/chunks/learning-FNBEIAY6.js +0 -2
- package/dist/chunks/opchat-QK43DXTY.js +0 -3
- package/dist/chunks/organizations-SRPAWKC7.js +0 -2
- package/dist/chunks/profile-C6CQNVYE.js +0 -3
- package/dist/chunks/project-agent-GZV5HNYI.js +0 -2
- package/dist/chunks/sandbox-command-4TJXQTKT.js +0 -2
- package/dist/chunks/src-NE6R4XC6.js +0 -329
- package/dist/chunks/taskset-LUG3ZU6J.js +0 -2
- package/dist/chunks/training-XHE6FVII.js +0 -2
- package/dist/chunks/workspaces-MFZ3OO6O.js +0 -2
- package/dist/web/assets/App-CO2F717V.css +0 -1
- package/dist/web/assets/App-CuhaCsfb.js +0 -235
- package/dist/web/assets/AppsView-BS1czXUP.js +0 -1
- package/dist/web/assets/HostedModelLearningReview-CHxxf_Lu.js +0 -1
- package/dist/web/assets/LabsRoute-CXJRJMhr.js +0 -99
- package/dist/web/assets/MainChatThread-BwAla81W.js +0 -2
- package/dist/web/assets/MainPane-CakOBCHw.js +0 -19
- package/dist/web/assets/MainPane-DOWsSew1.css +0 -1
- package/dist/web/assets/RightChatPanelStack-VaOOmxwd.js +0 -1
- package/dist/web/assets/RightSidebarHomePanel-CeSFJM5s.js +0 -1
- package/dist/web/assets/ScheduledWorkPage-D1jRQxFs.js +0 -1
- package/dist/web/assets/SettingsView-BnANbPLS.css +0 -1
- package/dist/web/assets/SettingsView-RA9OXgcu.js +0 -5
- package/dist/web/assets/TrainingCreationPanel-CgIBVGha.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-pGVezNMw.js +0 -14
- package/dist/web/assets/WorkspaceEnvironmentMenu-Byjngd9V.js +0 -32
- package/dist/web/assets/WorkspaceGitDialogs-Dgmg-6XG.js +0 -1
- package/dist/web/assets/arrow-up-right-H0pvnH2s.js +0 -1
- package/dist/web/assets/chunk-UHVJOMWN-BqXRe639.js +0 -1
- package/dist/web/assets/folder-plus-C84wrpt_.js +0 -1
- package/dist/web/assets/index-dSmk3FLJ.css +0 -1
- package/dist/web/assets/info-Dc81lEfw.js +0 -1
- package/dist/web/assets/minimize-2-Bs7MVN3C.js +0 -1
- package/dist/web/assets/monitor-DXL019Wf.js +0 -1
- package/dist/web/assets/play-CXkxUZeU.js +0 -1
- package/dist/web/assets/square-oy7f5Ce6.js +0 -1
- package/dist/web/assets/useProviderSettings-B_KeQjE5.js +0 -5
- /package/dist/chunks/{chunk-OGPHXXCD.js → chunk-BT5YNE5U.js} +0 -0
package/dist/web/assets/{useLocalAgentSchedules-CnyTsqlf.js → useLocalAgentSchedules-BNqAisfS.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i}from"./index-
|
|
1
|
+
import{r as i}from"./index-C8aCGagb.js";import{V as s}from"./App-s-CJswyt.js";const m=5e3;function _(t){const[h,n]=i.useState([]),[y,r]=i.useState(!1),[p,l]=i.useState(null),[o,w]=i.useState(()=>new Set);i.useEffect(()=>{if(!t){n([]),l(null),r(!1);return}const e=t;let a=!1;async function d(S){if(!a){S&&r(!0);try{const g=await s.localAgentSchedules(e);if(a)return;n(g.schedules),l(null)}catch(g){a||l(f(g))}finally{!a&&S&&r(!1)}}}d(!0);const u=window.setInterval(()=>{d(!1)},m);return()=>{a=!0,window.clearInterval(u)}},[t]);async function A(){if(t){r(!0);try{const e=await s.syncLocalAgentSchedules(t);n(e.schedules),l(null)}catch(e){l(f(e))}finally{r(!1)}}}async function E(e){if(!(!t||o.has(e.id))){c(e.id,!0);try{await s.runLocalAgentSchedule(t,e.id);const a=await s.localAgentSchedules(t);n(a.schedules),l(null)}catch(a){l(f(a))}finally{c(e.id,!1)}}}async function L(e){if(!(!t||o.has(e.id))){c(e.id,!0);try{await s.patchLocalAgentSchedule(t,e.id,{enabled:!e.enabled});const a=await s.localAgentSchedules(t);n(a.schedules),l(null)}catch(a){l(f(a))}finally{c(e.id,!1)}}}function c(e,a){w(d=>{const u=new Set(d);return a?u.add(e):u.delete(e),u})}return{error:p,loading:y,pendingScheduleIds:o,refresh:A,run:E,schedules:h,toggle:L}}function f(t){return t instanceof Error?t.message:String(t)}export{_ as u};
|
|
@@ -0,0 +1,5 @@
|
|
|
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};
|
package/dist/web/assets/{useProviderSettings-Bw-csWbH.css → useProviderSettings-CmL_BaxP.css}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
.account-summary,.account-list,.provider-settings-form,.diagnostics-log-panel,.settings-footnote{border:1px solid var(--border);border-radius:16px;background:#181818}.account-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px}.account-summary-main>div{display:grid;gap:5px}.account-summary span,.account-summary small,.account-list-heading small,.account-details span,.product-row span,.settings-footnote span,.empty-account-list span{color:#9b9b9b;font-size:12px}.account-summary strong{color:#f7f7f7;font-size:15px}.account-summary-main{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.account-summary .account-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.account-summary-main>div{min-width:0}.account-summary-main strong,.account-summary-main small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-summary-meta{display:flex;align-items:center;gap:8px;min-width:0}.account-summary-meta small{flex:0 1 auto;max-width:min(260px,44vw)}.account-summary-meta .account-summary-copy{max-width:min(520px,52vw);overflow:visible;text-overflow:clip;white-space:normal;line-height:1.35}.account-team-dropdown.compact{flex:0 1 auto;justify-self:auto;min-width:0}.account-team-dropdown.compact .dropdown-trigger{max-width:220px;height:24px;padding:0 6px}.account-team-dropdown .dropdown-menu{min-width:100%}.private-account-email{display:inline-block;filter:blur(4px);transition:filter .12s ease;-webkit-user-select:none;user-select:none}.private-account-email:hover,.private-account-email:focus-visible{filter:none;-webkit-user-select:text;user-select:text}.private-account-email:focus-visible{outline:1px solid rgba(58,163,255,.55);outline-offset:2px}.provider-settings-form{overflow:visible;position:relative;z-index:1}.provider-settings-form>.account-list-heading{border-bottom:0}.provider-state-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;max-width:150px;border-radius:999px;padding:0 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;background:#ffffff14;color:#bdbdbd}.provider-state-pill.muted{background:#ffffff14;color:#bdbdbd}.provider-row-status.muted{color:#bdbdbd}.provider-state-pill.ready{background:#50c87821;color:#8ddfa8}.provider-state-pill.configured{background:#3aa3ff21;color:#8fc8ff}.provider-state-pill.warning{background:#ff7a2f21;color:#ffad7d}.provider-manager-panel{border:1px solid var(--border);border-radius:16px;background:#181818;overflow:hidden}.provider-manager-scroll{display:grid;max-height:568px;overflow-y:auto;scrollbar-color:#343434 #161616;scrollbar-width:thin}.provider-manager-heading{align-items:center}.provider-manager-title-row{display:inline-flex;align-items:center;gap:12px;min-width:0}.settings-check-row.provider-subscription-filter{display:inline-flex;align-items:center;gap:6px;grid-template-columns:none;max-width:none;padding:0;color:#bdbdbd;font-size:12px;white-space:nowrap;cursor:pointer}.settings-check-row.provider-subscription-filter>span{display:block;min-width:0}.settings-check-row.provider-subscription-filter input[type=checkbox]{width:14px;height:14px;margin:0;border-radius:4px}.settings-check-row.provider-subscription-filter input[type=checkbox]:before{width:7px;height:4px}.provider-manager-empty{border:0;border-radius:0;background:transparent;padding:22px 16px}.provider-manager-scroll::-webkit-scrollbar,.provider-details-dialog::-webkit-scrollbar{width:10px}.provider-manager-scroll::-webkit-scrollbar-track,.provider-details-dialog::-webkit-scrollbar-track{background:#161616}.provider-manager-scroll::-webkit-scrollbar-thumb,.provider-details-dialog::-webkit-scrollbar-thumb{border:2px solid #161616;border-radius:999px;background:#343434}.provider-manager-scroll::-webkit-scrollbar-thumb:hover,.provider-details-dialog::-webkit-scrollbar-thumb:hover{background:#464646}.provider-manager-row{display:grid;grid-template-columns:44px minmax(160px,1fr) minmax(240px,.82fr) auto;align-items:center;gap:14px;min-height:48px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.provider-manager-row:last-child{border-bottom:0}.provider-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:28px}.provider-toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.provider-toggle input:disabled{cursor:default}.provider-toggle span{position:relative;width:34px;height:20px;border-radius:999px;background:#ffffff1f;transition:background .12s ease}.provider-toggle span:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#b8b8b8;transition:transform .12s ease,background .12s ease}.provider-toggle input:checked+span{background:#06b6d452}.provider-toggle input:checked+span:after{transform:translate(14px);background:var(--cyan)}.provider-toggle input:focus-visible+span{outline:1px solid rgba(6,182,212,.6);outline-offset:2px}.provider-toggle input:disabled+span{opacity:.48}.provider-row-main{min-width:0}.provider-row-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#f2f2f2}.provider-row-status{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;color:#bdbdbd;font-size:12px}.provider-row-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provider-row-status.ready{color:var(--cyan)}.provider-row-status.configured{color:#8fc8ff}.provider-row-status.warning{color:#ffad7d}.provider-row-status .settings-spin{flex:0 0 auto}.provider-details-button{width:86px}.provider-dialog-backdrop{z-index:90}.git-dialog.provider-details-dialog{width:min(760px,calc(100vw - 36px));max-height:min(760px,calc(100vh - 52px));overflow:auto;scrollbar-color:#343434 #161616;scrollbar-width:thin}.provider-dialog-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:20px 48px 16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.provider-dialog-header h2{margin:0;color:#f6f6f6;font-size:18px;font-weight:620}.provider-dialog-header span{color:#9b9b9b;font-size:12px}.provider-dialog-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:8px 20px 14px}.provider-dialog-stats div{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:10px;min-height:32px}.provider-dialog-stats .provider-dialog-error{grid-column:1 / -1}.provider-dialog-stats dt{color:#9b9b9b;font-size:12px}.provider-dialog-stats dd{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f2f2f2;font-size:13px}.provider-dialog-body{display:grid;gap:12px;padding-bottom:6px}.provider-card-form{display:grid;gap:12px;padding:0 20px 16px}.provider-card-form+.provider-card-form{padding-top:2px;border-top:1px solid rgba(255,255,255,.06)}.provider-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-mode-tabs{justify-self:stretch;width:auto;margin:12px 20px 0}.provider-credential-panel,.provider-subscription-panel{display:grid;gap:12px;min-width:0}.credential-form .provider-dialog-note{margin:0}.provider-credential-panel .settings-button-row,.provider-subscription-panel .settings-button-row{padding:0}.provider-dialog-note{display:flex;align-items:center;gap:8px;margin:0 20px 20px;border:1px solid rgba(255,122,47,.22);border-radius:10px;background:#ff7a2f14;padding:10px 12px;color:#ffad7d;font-size:13px}.provider-dialog-note.xai-provider-note,.provider-dialog-note.subscription-provider-note{border-color:#3aa3ff33;background:#3aa3ff14;color:#9bd0ff}.provider-dialog-note code{border-radius:4px;background:#ffffff14;padding:1px 4px;color:#f2f2f2;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.codex-provider-actions{padding:0 20px 20px}.provider-validation-message strong{white-space:pre-line}.account-dialog-advanced-fields{display:grid;gap:12px}.provider-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px 12px}.provider-settings-grid.single{grid-template-columns:minmax(0,1fr);max-width:380px}.settings-path-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;max-width:640px;padding:14px 16px 12px}.lsp-language-list{display:grid}.lsp-language-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(150px,.7fr) minmax(180px,1.2fr);align-items:end;gap:12px;min-width:0;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.lsp-language-row:last-child{border-bottom:0}.lsp-language-label{display:grid;gap:4px;min-width:0;padding-bottom:7px}.lsp-language-label strong{color:#f6f6f6;font-size:13px;font-weight:550}.lsp-language-label span{color:#9b9b9b;font-size:12px}.lsp-status-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.lsp-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:999px;padding:0 9px;white-space:nowrap;font-size:12px;background:#242424;color:#bdbdbd}.lsp-status-pill.found{background:#50c87821;color:#8ddfa8}.lsp-status-pill.missing,.lsp-status-pill.error{background:#ff7a2f21;color:#ffad7d}.lsp-status-pill.disabled{background:#ffffff14;color:#a8a8a8}.settings-select-field{position:relative;display:grid;gap:6px;min-width:0}.settings-select-field span{color:#9b9b9b;font-size:12px}.settings-select-field small{min-width:0;color:#8f8f8f;font-size:11px;line-height:1.35}.settings-select-field input,.settings-select-field select{width:100%;min-width:0;height:36px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:0 10px;font-size:13px}.settings-select-field select{appearance:none;background:linear-gradient(45deg,transparent 50%,#9b9b9b 50%) calc(100% - 16px) 50% / 5px 5px no-repeat,linear-gradient(135deg,#9b9b9b 50%,transparent 50%) calc(100% - 11px) 50% / 5px 5px no-repeat,#101010;padding-right:32px}.settings-select-field input:focus,.settings-select-field select:focus{border-color:#06b6d480}.settings-check-row{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;max-width:560px;padding:2px 16px 16px;color:var(--text)}.settings-check-row input[type=checkbox]{-webkit-appearance:none;appearance:none;display:grid;place-content:center;width:16px;height:16px;margin:2px 0 0;border:1px solid rgba(255,255,255,.18);border-radius:5px;outline:0;background:#101010;cursor:pointer;transition:border-color .12s ease,background .12s ease,opacity .12s ease}.settings-check-row input[type=checkbox]:before{content:"";width:8px;height:5px;margin-top:-1px;border-bottom:2px solid #061317;border-left:2px solid #061317;transform:rotate(-45deg) scale(0);transition:transform .12s ease}.settings-check-row input[type=checkbox]:checked{border-color:#06b6d4e0;background:var(--cyan)}.settings-check-row input[type=checkbox]:checked:before{transform:rotate(-45deg) scale(1)}.settings-check-row input[type=checkbox]:focus-visible{outline:2px solid rgba(6,182,212,.35);outline-offset:2px}.settings-check-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.48}.settings-check-row span{display:grid;gap:4px;min-width:0}.settings-check-row strong{font-size:13px;font-weight:500}.settings-check-row small{color:#8d8d8d;font-size:12px;line-height:1.4}.settings-check-row.compact{padding:0}.settings-check-row.inline{max-width:none}.subagents-settings{max-width:980px}.subagent-settings-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:0}.subagent-settings-title-row h1{margin:0}.subagent-settings-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.subagent-settings-form{display:grid;gap:18px;min-width:0}.subagent-settings-section{display:grid;gap:12px;min-width:0;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.subagent-settings-card-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0}.subagent-settings-card-header>div{min-width:0}.subagent-settings-card-header>div>span{min-width:0;overflow:hidden;color:#f2f2f2;font-size:14px;font-weight:620;text-overflow:ellipsis;white-space:nowrap}.subagent-settings-card-header>div>small{min-width:0;color:#9b9b9b;font-size:12px;line-height:1.35}.subagent-field-grid{display:grid;gap:12px;min-width:0}.subagent-field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.subagent-field-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.subagent-role-list{display:grid;min-width:0}.subagent-role-row{display:grid;gap:12px;min-width:0;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}.subagent-role-row:first-child{padding-top:0}.subagent-role-row.disabled{opacity:.64}.subagent-role-header{grid-template-columns:minmax(0,1fr) auto}.subagent-role-title{display:grid;gap:3px;min-width:0}.subagent-role-title span,.subagent-role-title small{min-width:0;overflow:hidden;text-overflow:ellipsis}.subagent-role-title span{color:#f2f2f2;font-size:14px;font-weight:620;white-space:nowrap}.subagent-role-title small{color:#9b9b9b;font-size:12px;line-height:1.35}.subagent-role-controls{display:grid;grid-template-columns:minmax(220px,1.25fr) repeat(3,minmax(140px,.75fr));align-items:end;gap:12px;min-width:0}.subagent-role-budget-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));align-items:end;gap:12px;min-width:0}.subagents-settings .provider-toggle{width:44px;height:30px}.subagents-settings .provider-toggle>span{width:40px;height:22px;border:1px solid rgba(255,255,255,.1);background:#ffffff1a}.subagents-settings .provider-toggle>span:after{top:2px;left:2px;width:16px;height:16px;background:#a9a9a9}.subagents-settings .provider-toggle input:checked+span{border-color:#06b6d46b;background:#06b6d442}.subagents-settings .provider-toggle input:checked+span:after{transform:translate(18px);background:var(--cyan)}@media(max-width:820px){.subagent-field-grid.two,.subagent-field-grid.four,.subagent-role-controls,.subagent-role-budget-grid{grid-template-columns:minmax(0,1fr)}}.settings-radio-group{display:grid;gap:10px;padding:0 16px 16px;max-width:640px}.settings-radio-row{display:flex;align-items:flex-start;gap:10px;min-width:0;color:var(--text)}.settings-radio-row input{margin-top:3px}.settings-radio-row span{display:grid;gap:4px;min-width:0}.settings-radio-row strong{font-size:13px;font-weight:500}.settings-radio-row small{color:#8d8d8d;font-size:12px;line-height:1.4}.personalization-editor{padding:0 16px 14px}.settings-select-field textarea{width:100%;min-width:0;min-height:210px;resize:vertical;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:11px 12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.settings-select-field textarea:focus{border-color:#3aa3ff73}.settings-button-row{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px 16px}@media(max-width:820px){.provider-status-grid,.provider-card-grid,.provider-deferred-grid{grid-template-columns:minmax(0,1fr)}.provider-state-pill{position:static;justify-self:start;margin:0 16px 10px}.provider-status-card>.account-list-heading{padding-right:16px}}.settings-button-row.compact{padding:0}.settings-heading-actions{display:inline-flex;align-items:center;gap:9px;min-width:0}.settings-heading-actions small{min-width:0}.settings-heading-input{width:min(240px,34vw);min-width:120px;height:32px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:0 10px;font-size:13px}.settings-heading-input:focus{border-color:#3aa3ff73}.settings-primary,.settings-secondary,.settings-icon-button,.inline-action{display:inline-flex;align-items:center;justify-content:center;border:0;background:#2a2a2a;color:#f5f5f5}.settings-primary{gap:7px;height:34px;margin:0 16px 16px;border-radius:10px;padding:0 12px;font-size:13px}.settings-secondary{gap:7px;height:34px;border-radius:10px;padding:0 12px;font-size:13px}.settings-secondary.compact{height:28px;border-radius:8px;padding:0 9px;font-size:12px}.settings-icon-button{width:32px;height:32px;border-radius:8px;padding:0}.settings-icon-button.primary,.settings-icon-button.active{background:#353535;color:#fff}.settings-icon-button.ghost{background:transparent;color:#a8a8a8}.settings-button-row .settings-primary,.settings-button-row .settings-icon-button{margin:0}.settings-primary:hover:not(:disabled),.settings-secondary:hover:not(:disabled),.settings-icon-button:hover:not(:disabled),.inline-action:hover:not(:disabled){background:#363636}.settings-icon-button.ghost:hover:not(:disabled){background:#ffffff0f;color:#fff}.settings-primary:disabled,.settings-secondary:disabled,.settings-icon-button:disabled,.inline-action:disabled{opacity:.5}.subagent-save-button{margin:0}.subagent-save-button.dirty:not(:disabled){background:var(--cyan);color:#061317}.subagent-save-button.dirty:hover:not(:disabled){background:#22d3ee}.settings-spin{animation:settings-spin .9s linear infinite}@media(max-width:820px){.provider-manager-row{grid-template-columns:36px minmax(120px,1fr) minmax(120px,.8fr) auto;gap:10px}.provider-details-button{width:74px}.provider-card-grid,.provider-dialog-stats,.subagent-role-controls,.provider-dialog-header{grid-template-columns:minmax(0,1fr)}}@keyframes settings-spin{to{transform:rotate(360deg)}}.native-agent-setup{padding:16px 20px}.native-agent-setup .provider-card-form{padding:0}.native-agent-setup p{margin:0}.account-list{overflow:hidden}.account-list-heading{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border);color:#f5f5f5;font-size:13px}.account-list-note{margin:0;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.06);color:#9b9b9b;font-size:12px}.account-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.account-row:last-child{border-bottom:0}.profile-footline{color:#9b9b9b;font-size:11px}.profile-footline.warning{color:#ffad7d}.profile-control-panel{display:grid;gap:12px;padding:0}.profile-control-panel.inline{margin-top:10px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:#ffffff06;padding:14px 16px}.profile-control-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.profile-control-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:8px}.profile-hosted-status{display:inline-flex;align-items:center;min-height:32px;gap:7px;border-left:1px solid var(--border);margin-left:2px;padding-left:12px;color:var(--muted);white-space:nowrap}.profile-hosted-status>span{font-size:11px}.profile-hosted-status>strong{max-width:180px;overflow:hidden;color:var(--text);font-size:12px;font-weight:560;text-overflow:ellipsis}.profile-local-status{min-width:0;max-width:min(520px,48vw);overflow:hidden;color:var(--muted);font-size:11px;line-height:1.4;text-align:right;text-overflow:ellipsis;white-space:nowrap}.profile-local-status.dirty,.profile-local-status.pending_commit{color:#d7ae59}.profile-local-status.error{color:#db7779}.profile-commit-dialog,.profile-path-dialog,.profile-sync-dialog{width:min(460px,calc(100vw - 34px))}.profile-sync-dialog{width:min(520px,calc(100vw - 34px))}.profile-sync-explainer{margin:0;color:#b8b8b8;font-size:12px;line-height:1.5}.profile-dialog-summary{display:grid;gap:4px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff09;padding:10px 12px}.profile-dialog-summary strong,.profile-dialog-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dialog-summary strong{color:#f6f6f6;font-size:13px;font-weight:620}.profile-dialog-summary span{color:#aaa;font-size:12px}.profile-dialog-diff-list{display:grid;gap:7px;max-height:min(260px,36vh);overflow:auto;scrollbar-color:#484848 transparent}.profile-dialog-diff-row{display:grid;gap:3px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:#ffffff06;padding:9px 10px}.profile-dialog-diff-row.warning{border-color:#ffc45738;background:#ffc45714}.profile-dialog-diff-row strong,.profile-dialog-diff-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dialog-diff-row strong{color:#f4f4f4;font-size:12px;font-weight:620}.profile-dialog-diff-row span{color:#aaa;font-size:12px}.profile-dialog-warning{border:1px solid rgba(255,122,47,.28);border-radius:9px;background:#ff7a2f17;color:#ffad7d;padding:9px 10px;font-size:12px}.profile-commit-dialog .git-dialog-footer,.profile-path-dialog .git-dialog-footer,.profile-sync-dialog .git-dialog-footer{flex-wrap:wrap}.account-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:17px;background:#06b6d41f;color:var(--cyan);font-weight:650;overflow:hidden}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-details{display:grid;gap:3px;min-width:0}.account-details strong,.account-details span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-details strong{color:#f6f6f6;font-size:14px;font-weight:550}.account-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.account-endpoint-action{flex:none;margin-left:6px}.git-dialog.account-endpoint-dialog{width:min(520px,calc(100vw - 34px));max-height:calc(100vh - 32px);overflow-y:auto}.account-dialog-details{display:grid;gap:8px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff06;padding:12px}.account-dialog-details>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;font-size:12px}.account-dialog-details span{color:#aaa}.account-dialog-details strong{overflow-wrap:anywhere;color:#f3f3f3;font-weight:550}.account-dialog-footer{justify-content:flex-end;flex-wrap:wrap}.account-dialog-save-actions{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:8px}.git-dialog-secondary.account-dialog-remove{display:inline-flex;align-items:center;gap:7px;border:1px solid #d94b42;background:#d94b42;color:#fff}.git-dialog-secondary.account-dialog-remove:hover:not(:disabled){border-color:#bd3d36;background:#bd3d36;color:#fff}.account-dialog-advanced{border:1px solid rgba(255,255,255,.1);border-radius:10px}.account-dialog-advanced summary{cursor:pointer;padding:11px 12px;font-size:13px;font-weight:550}.account-dialog-advanced[open] summary{border-bottom:1px solid rgba(255,255,255,.1)}.account-dialog-advanced-fields{padding:12px}.active-pill,.account-state{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:12px;padding:0 9px;white-space:nowrap;font-size:12px}.active-pill{background:#3aa3ff24;color:#77bdff}.inline-action{gap:5px;min-height:24px;border-radius:12px;padding:0 10px;white-space:nowrap;font-size:12px}.inline-action.danger{background:#eb57571a;color:#ff9b9b}.inline-action.danger:hover:not(:disabled){background:#eb57572e;color:#ffc0c0}.account-remove-action{width:24px;padding:0}.account-state{background:#242424;color:#bdbdbd}.account-state.signed_in{background:#50c87821;color:#8ddfa8}.account-state.signed_out,.account-state.auth_error{background:#ff7a2f21;color:#ffad7d}.account-state.ready{background:#50c87821;color:#8ddfa8}.account-state.warning{background:#ffc45724;color:#ffd38a}.account-state.loading{background:#3aa3ff24;color:#77bdff}.account-state.disabled{background:#ffffff12;color:#858585}.empty-account-list{display:grid;gap:5px;padding:18px 16px}.empty-account-list strong{color:#f5f5f5;font-size:14px}.product-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.product-row:last-child{border-bottom:0}.product-row div{display:grid;gap:3px;min-width:0}.product-row strong,.product-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-row strong{color:#f6f6f6;font-size:13px;font-weight:550}.profile-agent-list{border:0;border-radius:0;background:transparent}.profile-agent-list-heading{border-bottom:0;padding:0 0 10px}.profile-table-frame{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.profile-data-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.profile-agent-table{min-width:600px}.profile-agent-column{width:38%}.profile-action-column{width:18%}.profile-check-column{width:16%}.profile-sync-column{width:28%}.profile-data-table th,.profile-data-table td{min-width:0;border-right:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);padding:12px 14px;text-align:left;vertical-align:middle}.profile-data-table th:last-child,.profile-data-table td:last-child{border-right:0}.profile-data-table tbody tr:last-child td{border-bottom:0}.profile-data-table th{padding-block:10px;background:var(--panel-soft);color:#858585;font-size:11px;font-weight:560}.profile-data-table strong,.profile-data-table span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-data-table strong{color:#f6f6f6;font-size:13px;font-weight:550}.profile-skill-list{border:0;border-radius:0;background:transparent}.profile-skill-heading-actions{display:inline-flex;align-items:center;gap:10px}.profile-skill-table{min-width:820px}.profile-skill-name-column{width:23%}.profile-skill-trigger-column{width:29%}.profile-skill-status-column{width:10%}.profile-skill-source-column{width:22%}.profile-skill-actions-column{width:16%}.profile-skill-description{overflow:hidden;color:#a9a9a9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.profile-skill-source{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-skill-actions{display:inline-flex;align-items:center;gap:8px;min-width:0}.profile-agent-table .profile-schedule-actions{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.profile-schedule-expression{flex:1 1 auto;min-width:0;color:#a9a9a9;font-size:12px;text-align:right}.profile-agent-table .profile-schedule-controls{display:inline-flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;gap:6px;min-width:max-content;white-space:nowrap}.profile-schedule-button{width:28px;height:28px;flex:0 0 auto}.profile-agent-list-note{padding:8px 16px 12px}.profile-agent-identity{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.profile-agent-identity>div{display:grid;gap:3px;min-width:0}.profile-agent-action{min-width:0}.profile-agent-action span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a9a9a9;font-size:12px}.profile-status-text{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#bdbdbd;font-size:12px;white-space:nowrap}.profile-status-text:before{content:"";width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:currentColor;opacity:.85}.profile-status-text.ready{color:#8ddfa8}.profile-status-text.warning{color:#ffd38a}.profile-status-text.loading{color:#77bdff}.profile-status-text.disabled{color:#858585}@container profile-view (max-width: 840px){.profile-control-toolbar{align-items:flex-start;flex-direction:column}.profile-local-status{max-width:100%;text-align:left}}.settings-footnote{display:flex;justify-content:space-between;gap:18px;min-width:0;max-width:100%;padding:12px 16px}.settings-footnote.warning{border-color:#ff7a2f3d}.settings-footnote strong{min-width:0;overflow-wrap:anywhere;white-space:normal;word-break:break-word;color:#d9d9d9;font-size:12px;font-weight:500}.account-build-footnote{align-items:center}.account-build-details{display:grid;gap:4px;min-width:0}.account-build-version,.account-build-actions{display:flex;align-items:center;gap:8px}.account-build-context{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;padding:0 7px;background:#ffffff14;color:#bdbdbd;font-size:11px;font-weight:500}.account-build-context.development{background:#3aa3ff21;color:#8fc8ff}.account-build-actions{flex:0 0 auto;justify-content:flex-end}.account-build-actions .settings-primary,.account-build-actions .settings-secondary{margin:0}.account-build-actions .settings-primary.compact{height:28px;border-radius:8px;padding:0 9px;font-size:12px}.account-error-footnote{align-items:flex-start}.account-error-footnote strong{flex:1 1 420px;max-width:min(620px,75%);color:#ffbd96;line-height:1.45;text-align:right}.diagnostics-log-panel{overflow:hidden}.diagnostics-log-actions{justify-content:flex-end;flex-wrap:wrap}.diagnostics-error-list{display:grid;align-content:start;max-height:min(34vh,340px);overflow:auto;scrollbar-color:#424242 transparent}.diagnostics-error-entry{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.06);color:#ffb0a4;content-visibility:auto;contain-intrinsic-size:86px}.diagnostics-error-entry:first-child{border-top:0}.diagnostics-error-entry svg{margin-top:2px;color:#ff8f7d}.diagnostics-error-body{display:grid;gap:6px;min-width:0}.diagnostics-error-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0}.diagnostics-error-title strong{min-width:0;color:#f4f4f4;font-size:13px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.diagnostics-error-title time,.diagnostics-error-meta{color:#9b9b9b;font-size:12px}.diagnostics-error-meta{display:flex;flex-wrap:wrap;gap:6px}.diagnostics-error-meta span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagnostics-error-detail{min-width:0}.diagnostics-error-detail summary{width:fit-content;cursor:pointer;color:#d8d8d8;font-size:12px}.diagnostics-error-detail pre{max-height:180px;margin:8px 0 0;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0f0f0f;color:#dcdcdc;padding:9px 10px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.diagnostics-error-empty{display:grid;place-items:center;min-height:120px;color:#8f8f8f;font-size:13px}.diagnostics-log-viewer{display:grid;align-content:start;max-height:min(46vh,420px);min-height:260px;overflow:auto;background:#0f0f0f;scrollbar-color:#424242 transparent}.diagnostics-log-entry{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;min-width:max-content;padding:5px 12px;border-bottom:1px solid rgba(255,255,255,.045);content-visibility:auto;contain-intrinsic-size:26px}.diagnostics-log-source{color:#8f8f8f;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:nowrap}.diagnostics-log-entry code{color:#dcdcdc;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre}.diagnostics-log-empty{display:grid;place-items:center;min-height:260px;color:#8f8f8f;font-size:13px}.diagnostics-log-dir{display:flex;justify-content:space-between;gap:18px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.06)}.diagnostics-log-dir span{color:#9b9b9b;font-size:12px}.diagnostics-log-dir strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d9d9d9;font-size:12px;font-weight:500}.account-settings.provider-connections-settings{max-width:1000px;gap:20px}.account-settings.provider-connections-settings h1{margin:0}.provider-connections-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:0}.provider-connections-intro p{margin:0;color:var(--muted);font-size:14px}.provider-connections-intro button{flex-shrink:0}.provider-connections-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-connection-card{min-width:0;display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--border);border-radius:10px;background:#191919}.provider-connection-identity{display:flex;align-items:center;justify-content:space-between;gap:12px}.provider-connection-identity strong{font-size:14px;font-weight:500}.provider-connection-identity .provider-toggle{flex-shrink:0}.provider-connection-status{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.provider-connection-status.ready{color:#8ccdaa}.provider-connection-status.configured{color:#96c5eb}.provider-connection-status.warning{color:#f0b782}.provider-connection-card>p{min-height:36px;margin:0;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.provider-connection-card>button{align-self:flex-start;margin-top:auto}.provider-dialog-backdrop>.git-dialog.provider-details-dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;gap:0;border:1px solid #343434;border-radius:14px;background:#1c1c1c}.provider-details-dialog .git-dialog-close{top:16px;right:16px}.provider-details-dialog .provider-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:24px 56px 20px 24px;gap:16px;border-bottom:1px solid #303030}.provider-details-dialog .provider-dialog-header>div:first-child{display:grid;gap:6px;min-width:0}.provider-details-dialog .provider-dialog-header h2{font-size:18px;font-weight:500}.provider-details-dialog .provider-dialog-header span{font-size:12px;color:var(--muted)}.provider-details-dialog .provider-state-pill{position:static;flex-shrink:0;margin:0;font-weight:400}.provider-details-dialog .provider-chat-toggle{display:flex;align-items:center;gap:10px;padding:16px 24px;font-size:13px;cursor:pointer}.provider-chat-toggle>.provider-toggle{flex:0 0 38px}.provider-details-dialog .surface-tabs{display:flex;gap:22px;border:0;border-bottom:1px solid #303030;border-radius:0;background:transparent;margin:0;padding:0 24px}.provider-details-dialog .surface-tabs button{min-height:42px;padding:10px 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-weight:400}.provider-details-dialog .surface-tabs button[aria-selected=true],.provider-details-dialog .surface-tabs button.active{border-bottom-color:var(--cyan);background:transparent;color:var(--text)}.provider-details-dialog .provider-dialog-body{padding:20px 24px;gap:18px}.provider-details-dialog .provider-dialog-body>h3,.provider-details-dialog .native-model-heading h3{margin:0;font-size:13px;font-weight:500}.provider-details-dialog .native-connection-status,.native-connection-status>[role=status]{display:flex;align-items:center;gap:10px;font-size:13px}.provider-details-dialog .native-connection-status{justify-content:space-between;padding:12px;border:1px solid #303030;border-radius:8px}.native-connection-status>[role=status] svg{flex-shrink:0}.native-model-section{display:grid;gap:12px}.native-model-heading{display:flex;align-items:center;justify-content:space-between}.native-model-section small,.native-agent-version{color:var(--muted);font-size:12px}.native-model-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:212px;overflow-y:auto;scrollbar-width:thin}.native-model-list>span{min-width:0;border-radius:6px;background:#252525;padding:10px 12px;font-size:13px;overflow-wrap:anywhere}.native-model-list:focus-visible{outline:1px solid var(--cyan);outline-offset:3px}.provider-details-dialog .settings-secondary,.provider-details-dialog .settings-primary,.provider-connection-card .settings-secondary{border:1px solid #3a3a3a;border-radius:7px;background:#292929;height:34px;margin:0}.provider-details-dialog .settings-secondary:hover:not(:disabled){background:#353535}.provider-details-dialog .native-agent-setup>details{padding-top:16px;border-top:1px solid #303030;font-size:13px}.native-agent-setup>details>summary{color:var(--muted);cursor:pointer}.native-agent-setup>details[open]>summary{margin-bottom:16px}.provider-details-dialog .agent-sync-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.agent-setup-dialog .agent-sync-form>h3,.agent-setup-dialog .agent-source-field,.agent-setup-dialog .agent-sync-form>small,.agent-setup-dialog .agent-sync-checkbox,.agent-setup-dialog .agent-sync-form>button{grid-column:1 / -1}.provider-details-dialog .agent-sync-checkbox{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:9px;margin:0;font-size:13px}.provider-details-dialog .agent-sync-checkbox input[type=checkbox]{flex:0 0 16px;width:16px;min-width:16px;height:16px;margin:0;accent-color:var(--cyan)}.provider-details-dialog .agent-sync-form select{min-height:38px}.provider-details-dialog .agent-sync-form>.agent-connect-button{justify-self:end;min-height:36px;margin-top:4px;padding:8px 16px}.provider-details-dialog .agent-conversation-setup>details{border-top:1px solid #303030;padding-top:16px;color:var(--muted);font-size:12px}.provider-details-dialog .agent-conversation-setup summary{cursor:pointer}.provider-details-dialog .agent-conversation-setup details[open] small{display:block;margin-top:12px}.provider-details-dialog [hidden]{display:none}@media(max-width:600px){.provider-connections-intro{align-items:flex-start;flex-direction:column}.provider-connections-grid,.provider-details-dialog .agent-sync-form,.native-model-list{grid-template-columns:minmax(0,1fr)}.provider-details-dialog .native-connection-status{flex-wrap:wrap}.provider-details-dialog .provider-dialog-header{align-items:flex-start}.provider-details-dialog .provider-dialog-body{padding:18px}.provider-details-dialog .surface-tabs{padding:0 18px}}
|
|
1
|
+
.account-summary,.account-list,.provider-settings-form,.diagnostics-log-panel,.settings-footnote{border:1px solid var(--border);border-radius:16px;background:#181818}.account-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px}.account-summary-main>div{display:grid;gap:5px}.account-summary span,.account-summary small,.account-list-heading small,.account-details span,.product-row span,.settings-footnote span,.empty-account-list span{color:#9b9b9b;font-size:12px}.account-summary strong{color:#f7f7f7;font-size:15px}.account-summary-main{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.account-summary .account-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.account-summary-main>div{min-width:0}.account-summary-main strong,.account-summary-main small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-summary-meta{display:flex;align-items:center;gap:8px;min-width:0}.account-summary-meta small{flex:0 1 auto;max-width:min(260px,44vw)}.account-summary-meta .account-summary-copy{max-width:min(520px,52vw);overflow:visible;text-overflow:clip;white-space:normal;line-height:1.35}.account-team-dropdown.compact{flex:0 1 auto;justify-self:auto;min-width:0}.account-team-dropdown.compact .dropdown-trigger{max-width:220px;height:24px;padding:0 6px}.account-team-dropdown .dropdown-menu{min-width:100%}.private-account-email{display:inline-block;filter:blur(4px);transition:filter .12s ease;-webkit-user-select:none;user-select:none}.private-account-email:hover,.private-account-email:focus-visible{filter:none;-webkit-user-select:text;user-select:text}.private-account-email:focus-visible{outline:1px solid rgba(58,163,255,.55);outline-offset:2px}.provider-settings-form{overflow:visible;position:relative;z-index:1}.provider-settings-form>.account-list-heading{border-bottom:0}.provider-state-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;max-width:150px;border-radius:999px;padding:0 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;background:#ffffff14;color:#bdbdbd}.provider-state-pill.muted{background:#ffffff14;color:#bdbdbd}.provider-row-status.muted{color:#bdbdbd}.provider-state-pill.ready{background:#50c87821;color:#8ddfa8}.provider-state-pill.configured{background:#3aa3ff21;color:#8fc8ff}.provider-state-pill.warning{background:#ff7a2f21;color:#ffad7d}.provider-manager-panel{border:1px solid var(--border);border-radius:16px;background:#181818;overflow:hidden}.provider-manager-scroll{display:grid;max-height:568px;overflow-y:auto;scrollbar-color:#343434 #161616;scrollbar-width:thin}.provider-manager-heading{align-items:center}.provider-manager-title-row{display:inline-flex;align-items:center;gap:12px;min-width:0}.settings-check-row.provider-subscription-filter{display:inline-flex;align-items:center;gap:6px;grid-template-columns:none;max-width:none;padding:0;color:#bdbdbd;font-size:12px;white-space:nowrap;cursor:pointer}.settings-check-row.provider-subscription-filter>span{display:block;min-width:0}.settings-check-row.provider-subscription-filter input[type=checkbox]{width:14px;height:14px;margin:0;border-radius:4px}.settings-check-row.provider-subscription-filter input[type=checkbox]:before{width:7px;height:4px}.provider-manager-empty{border:0;border-radius:0;background:transparent;padding:22px 16px}.provider-manager-scroll::-webkit-scrollbar,.provider-details-dialog::-webkit-scrollbar{width:10px}.provider-manager-scroll::-webkit-scrollbar-track,.provider-details-dialog::-webkit-scrollbar-track{background:#161616}.provider-manager-scroll::-webkit-scrollbar-thumb,.provider-details-dialog::-webkit-scrollbar-thumb{border:2px solid #161616;border-radius:999px;background:#343434}.provider-manager-scroll::-webkit-scrollbar-thumb:hover,.provider-details-dialog::-webkit-scrollbar-thumb:hover{background:#464646}.provider-manager-row{display:grid;grid-template-columns:44px minmax(160px,1fr) minmax(240px,.82fr) auto;align-items:center;gap:14px;min-height:48px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.provider-manager-row:last-child{border-bottom:0}.provider-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:28px}.provider-toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.provider-toggle input:disabled{cursor:default}.provider-toggle span{position:relative;width:34px;height:20px;border-radius:999px;background:#ffffff1f;transition:background .12s ease}.provider-toggle span:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#b8b8b8;transition:transform .12s ease,background .12s ease}.provider-toggle input:checked+span{background:#06b6d452}.provider-toggle input:checked+span:after{transform:translate(14px);background:var(--cyan)}.provider-toggle input:focus-visible+span{outline:1px solid rgba(6,182,212,.6);outline-offset:2px}.provider-toggle input:disabled+span{opacity:.48}.provider-row-main{min-width:0}.provider-row-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#f2f2f2}.provider-row-status{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;color:#bdbdbd;font-size:12px}.provider-row-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provider-row-status.ready{color:var(--cyan)}.provider-row-status.configured{color:#8fc8ff}.provider-row-status.warning{color:#ffad7d}.provider-row-status .settings-spin{flex:0 0 auto}.provider-details-button{width:86px}.provider-dialog-backdrop{z-index:90}.git-dialog.provider-details-dialog{width:min(760px,calc(100vw - 36px));max-height:min(760px,calc(100vh - 52px));overflow:auto;scrollbar-color:#343434 #161616;scrollbar-width:thin}.provider-dialog-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:20px 48px 16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.provider-dialog-header h2{margin:0;color:#f6f6f6;font-size:18px;font-weight:620}.provider-dialog-header span{color:#9b9b9b;font-size:12px}.provider-dialog-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:8px 20px 14px}.provider-dialog-stats div{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:10px;min-height:32px}.provider-dialog-stats .provider-dialog-error{grid-column:1 / -1}.provider-dialog-stats dt{color:#9b9b9b;font-size:12px}.provider-dialog-stats dd{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f2f2f2;font-size:13px}.provider-dialog-body{display:grid;gap:12px;padding-bottom:6px}.provider-card-form{display:grid;gap:12px;padding:0 20px 16px}.provider-card-form+.provider-card-form{padding-top:2px;border-top:1px solid rgba(255,255,255,.06)}.provider-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-mode-tabs{justify-self:stretch;width:auto;margin:12px 20px 0}.provider-credential-panel,.provider-subscription-panel{display:grid;gap:12px;min-width:0}.credential-form .provider-dialog-note{margin:0}.provider-credential-panel .settings-button-row,.provider-subscription-panel .settings-button-row{padding:0}.provider-dialog-note{display:flex;align-items:center;gap:8px;margin:0 20px 20px;border:1px solid rgba(255,122,47,.22);border-radius:10px;background:#ff7a2f14;padding:10px 12px;color:#ffad7d;font-size:13px}.provider-dialog-note.xai-provider-note,.provider-dialog-note.subscription-provider-note{border-color:#3aa3ff33;background:#3aa3ff14;color:#9bd0ff}.provider-dialog-note code{border-radius:4px;background:#ffffff14;padding:1px 4px;color:#f2f2f2;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.codex-provider-actions{padding:0 20px 20px}.provider-validation-message strong{white-space:pre-line}.account-dialog-advanced-fields{display:grid;gap:12px}.provider-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px 12px}.provider-settings-grid.single{grid-template-columns:minmax(0,1fr);max-width:380px}.settings-path-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;max-width:640px;padding:14px 16px 12px}.lsp-language-list{display:grid}.lsp-language-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(150px,.7fr) minmax(180px,1.2fr);align-items:end;gap:12px;min-width:0;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.lsp-language-row:last-child{border-bottom:0}.lsp-language-label{display:grid;gap:4px;min-width:0;padding-bottom:7px}.lsp-language-label strong{color:#f6f6f6;font-size:13px;font-weight:550}.lsp-language-label span{color:#9b9b9b;font-size:12px}.lsp-status-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.lsp-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:999px;padding:0 9px;white-space:nowrap;font-size:12px;background:#242424;color:#bdbdbd}.lsp-status-pill.found{background:#50c87821;color:#8ddfa8}.lsp-status-pill.missing,.lsp-status-pill.error{background:#ff7a2f21;color:#ffad7d}.lsp-status-pill.disabled{background:#ffffff14;color:#a8a8a8}.settings-select-field{position:relative;display:grid;gap:6px;min-width:0}.settings-select-field span{color:#9b9b9b;font-size:12px}.settings-select-field small{min-width:0;color:#8f8f8f;font-size:11px;line-height:1.35}.settings-select-field input,.settings-select-field select{width:100%;min-width:0;height:36px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:0 10px;font-size:13px}.settings-select-field select{appearance:none;background:linear-gradient(45deg,transparent 50%,#9b9b9b 50%) calc(100% - 16px) 50% / 5px 5px no-repeat,linear-gradient(135deg,#9b9b9b 50%,transparent 50%) calc(100% - 11px) 50% / 5px 5px no-repeat,#101010;padding-right:32px}.settings-select-field input:focus,.settings-select-field select:focus{border-color:#06b6d480}.settings-check-row{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;max-width:560px;padding:2px 16px 16px;color:var(--text)}.settings-check-row input[type=checkbox]{-webkit-appearance:none;appearance:none;display:grid;place-content:center;width:16px;height:16px;margin:2px 0 0;border:1px solid rgba(255,255,255,.18);border-radius:5px;outline:0;background:#101010;cursor:pointer;transition:border-color .12s ease,background .12s ease,opacity .12s ease}.settings-check-row input[type=checkbox]:before{content:"";width:8px;height:5px;margin-top:-1px;border-bottom:2px solid #061317;border-left:2px solid #061317;transform:rotate(-45deg) scale(0);transition:transform .12s ease}.settings-check-row input[type=checkbox]:checked{border-color:#06b6d4e0;background:var(--cyan)}.settings-check-row input[type=checkbox]:checked:before{transform:rotate(-45deg) scale(1)}.settings-check-row input[type=checkbox]:focus-visible{outline:2px solid rgba(6,182,212,.35);outline-offset:2px}.settings-check-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.48}.settings-check-row span{display:grid;gap:4px;min-width:0}.settings-check-row strong{font-size:13px;font-weight:500}.settings-check-row small{color:#8d8d8d;font-size:12px;line-height:1.4}.settings-check-row.compact{padding:0}.settings-check-row.inline{max-width:none}.subagents-settings{max-width:980px}.subagent-settings-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:0}.subagent-settings-title-row h1{margin:0}.subagent-settings-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.subagent-settings-form{display:grid;gap:18px;min-width:0}.subagent-settings-section{display:grid;gap:12px;min-width:0;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.subagent-settings-card-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0}.subagent-settings-card-header>div{min-width:0}.subagent-settings-card-header>div>span{min-width:0;overflow:hidden;color:#f2f2f2;font-size:14px;font-weight:620;text-overflow:ellipsis;white-space:nowrap}.subagent-settings-card-header>div>small{min-width:0;color:#9b9b9b;font-size:12px;line-height:1.35}.subagent-field-grid{display:grid;gap:12px;min-width:0}.subagent-field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.subagent-field-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.subagent-role-list{display:grid;min-width:0}.subagent-role-row{display:grid;gap:12px;min-width:0;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}.subagent-role-row:first-child{padding-top:0}.subagent-role-row.disabled{opacity:.64}.subagent-role-header{grid-template-columns:minmax(0,1fr) auto}.subagent-role-title{display:grid;gap:3px;min-width:0}.subagent-role-title span,.subagent-role-title small{min-width:0;overflow:hidden;text-overflow:ellipsis}.subagent-role-title span{color:#f2f2f2;font-size:14px;font-weight:620;white-space:nowrap}.subagent-role-title small{color:#9b9b9b;font-size:12px;line-height:1.35}.subagent-role-controls{display:grid;grid-template-columns:minmax(220px,1.25fr) repeat(3,minmax(140px,.75fr));align-items:end;gap:12px;min-width:0}.subagent-role-budget-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));align-items:end;gap:12px;min-width:0}.subagents-settings .provider-toggle{width:44px;height:30px}.subagents-settings .provider-toggle>span{width:40px;height:22px;border:1px solid rgba(255,255,255,.1);background:#ffffff1a}.subagents-settings .provider-toggle>span:after{top:2px;left:2px;width:16px;height:16px;background:#a9a9a9}.subagents-settings .provider-toggle input:checked+span{border-color:#06b6d46b;background:#06b6d442}.subagents-settings .provider-toggle input:checked+span:after{transform:translate(18px);background:var(--cyan)}@media(max-width:820px){.subagent-field-grid.two,.subagent-field-grid.four,.subagent-role-controls,.subagent-role-budget-grid{grid-template-columns:minmax(0,1fr)}}.settings-radio-group{display:grid;gap:10px;padding:0 16px 16px;max-width:640px}.settings-radio-row{display:flex;align-items:flex-start;gap:10px;min-width:0;color:var(--text)}.settings-radio-row input{margin-top:3px}.settings-radio-row span{display:grid;gap:4px;min-width:0}.settings-radio-row strong{font-size:13px;font-weight:500}.settings-radio-row small{color:#8d8d8d;font-size:12px;line-height:1.4}.personalization-editor{padding:0 16px 14px}.settings-select-field textarea{width:100%;min-width:0;min-height:210px;resize:vertical;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:11px 12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.settings-select-field textarea:focus{border-color:#3aa3ff73}.settings-button-row{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px 16px}@media(max-width:820px){.provider-status-grid,.provider-card-grid,.provider-deferred-grid{grid-template-columns:minmax(0,1fr)}.provider-state-pill{position:static;justify-self:start;margin:0 16px 10px}.provider-status-card>.account-list-heading{padding-right:16px}}.settings-button-row.compact{padding:0}.settings-heading-actions{display:inline-flex;align-items:center;gap:9px;min-width:0}.settings-heading-actions small{min-width:0}.settings-heading-input{width:min(240px,34vw);min-width:120px;height:32px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:0 10px;font-size:13px}.settings-heading-input:focus{border-color:#3aa3ff73}.settings-primary,.settings-secondary,.settings-icon-button,.inline-action{display:inline-flex;align-items:center;justify-content:center;border:0;background:#2a2a2a;color:#f5f5f5}.settings-primary{gap:7px;height:34px;margin:0 16px 16px;border-radius:10px;padding:0 12px;font-size:13px}.settings-secondary{gap:7px;height:34px;border-radius:10px;padding:0 12px;font-size:13px}.settings-secondary.compact{height:28px;border-radius:8px;padding:0 9px;font-size:12px}.settings-icon-button{width:32px;height:32px;border-radius:8px;padding:0}.settings-icon-button.primary,.settings-icon-button.active{background:#353535;color:#fff}.settings-icon-button.ghost{background:transparent;color:#a8a8a8}.settings-button-row .settings-primary,.settings-button-row .settings-icon-button{margin:0}.settings-primary:hover:not(:disabled),.settings-secondary:hover:not(:disabled),.settings-icon-button:hover:not(:disabled),.inline-action:hover:not(:disabled){background:#363636}.settings-icon-button.ghost:hover:not(:disabled){background:#ffffff0f;color:#fff}.settings-primary:disabled,.settings-secondary:disabled,.settings-icon-button:disabled,.inline-action:disabled{opacity:.5}.subagent-save-button{margin:0}.subagent-save-button.dirty:not(:disabled){background:var(--cyan);color:#061317}.subagent-save-button.dirty:hover:not(:disabled){background:#22d3ee}.settings-spin{animation:settings-spin .9s linear infinite}@media(max-width:820px){.provider-manager-row{grid-template-columns:36px minmax(120px,1fr) minmax(120px,.8fr) auto;gap:10px}.provider-details-button{width:74px}.provider-card-grid,.provider-dialog-stats,.subagent-role-controls,.provider-dialog-header{grid-template-columns:minmax(0,1fr)}}@keyframes settings-spin{to{transform:rotate(360deg)}}.native-agent-setup{padding:16px 20px}.native-agent-setup .provider-card-form{padding:0}.native-agent-setup p{margin:0}.account-list{overflow:hidden}.account-list-heading{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border);color:#f5f5f5;font-size:13px}.account-list-note{margin:0;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.06);color:#9b9b9b;font-size:12px}.account-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.account-row:last-child{border-bottom:0}.profile-footline{color:#9b9b9b;font-size:11px}.profile-footline.warning{color:#ffad7d}.profile-control-panel{display:grid;gap:12px;padding:0}.profile-control-panel.inline{margin-top:10px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:#ffffff06;padding:14px 16px}.profile-control-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.profile-control-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:8px}.profile-hosted-status{display:inline-flex;align-items:center;min-height:32px;gap:7px;border-left:1px solid var(--border);margin-left:2px;padding-left:12px;color:var(--muted);white-space:nowrap}.profile-hosted-status>span{font-size:11px}.profile-hosted-status>strong{max-width:180px;overflow:hidden;color:var(--text);font-size:12px;font-weight:560;text-overflow:ellipsis}.profile-local-status{min-width:0;max-width:min(520px,48vw);overflow:hidden;color:var(--muted);font-size:11px;line-height:1.4;text-align:right;text-overflow:ellipsis;white-space:nowrap}.profile-local-status.dirty,.profile-local-status.pending_commit{color:#d7ae59}.profile-local-status.error{color:#db7779}.profile-commit-dialog,.profile-path-dialog,.profile-sync-dialog{width:min(460px,calc(100vw - 34px))}.profile-sync-dialog{width:min(520px,calc(100vw - 34px))}.profile-sync-explainer{margin:0;color:#b8b8b8;font-size:12px;line-height:1.5}.profile-dialog-summary{display:grid;gap:4px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff09;padding:10px 12px}.profile-dialog-summary strong,.profile-dialog-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dialog-summary strong{color:#f6f6f6;font-size:13px;font-weight:620}.profile-dialog-summary span{color:#aaa;font-size:12px}.profile-dialog-diff-list{display:grid;gap:7px;max-height:min(260px,36vh);overflow:auto;scrollbar-color:#484848 transparent}.profile-dialog-diff-row{display:grid;gap:3px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:#ffffff06;padding:9px 10px}.profile-dialog-diff-row.warning{border-color:#ffc45738;background:#ffc45714}.profile-dialog-diff-row strong,.profile-dialog-diff-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dialog-diff-row strong{color:#f4f4f4;font-size:12px;font-weight:620}.profile-dialog-diff-row span{color:#aaa;font-size:12px}.profile-dialog-warning{border:1px solid rgba(255,122,47,.28);border-radius:9px;background:#ff7a2f17;color:#ffad7d;padding:9px 10px;font-size:12px}.profile-commit-dialog .git-dialog-footer,.profile-path-dialog .git-dialog-footer,.profile-sync-dialog .git-dialog-footer{flex-wrap:wrap}.account-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:17px;background:#06b6d41f;color:var(--cyan);font-weight:650;overflow:hidden}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-details{display:grid;gap:3px;min-width:0}.account-details strong,.account-details span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-details strong{color:#f6f6f6;font-size:14px;font-weight:550}.account-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.account-endpoint-action{flex:none;margin-left:6px}.git-dialog.account-endpoint-dialog{width:min(520px,calc(100vw - 34px));max-height:calc(100vh - 32px);overflow-y:auto}.account-dialog-details{display:grid;gap:8px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff06;padding:12px}.account-dialog-details>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;font-size:12px}.account-dialog-details span{color:#aaa}.account-dialog-details strong{overflow-wrap:anywhere;color:#f3f3f3;font-weight:550}.account-dialog-footer{justify-content:flex-end;flex-wrap:wrap}.account-dialog-save-actions{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:8px}.git-dialog-secondary.account-dialog-remove{display:inline-flex;align-items:center;gap:7px;border:1px solid #d94b42;background:#d94b42;color:#fff}.git-dialog-secondary.account-dialog-remove:hover:not(:disabled){border-color:#bd3d36;background:#bd3d36;color:#fff}.account-dialog-advanced{border:1px solid rgba(255,255,255,.1);border-radius:10px}.account-dialog-advanced summary{cursor:pointer;padding:11px 12px;font-size:13px;font-weight:550}.account-dialog-advanced[open] summary{border-bottom:1px solid rgba(255,255,255,.1)}.account-dialog-advanced-fields{padding:12px}.active-pill,.account-state{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:12px;padding:0 9px;white-space:nowrap;font-size:12px}.active-pill{background:#3aa3ff24;color:#77bdff}.inline-action{gap:5px;min-height:24px;border-radius:12px;padding:0 10px;white-space:nowrap;font-size:12px}.inline-action.danger{background:#eb57571a;color:#ff9b9b}.inline-action.danger:hover:not(:disabled){background:#eb57572e;color:#ffc0c0}.account-remove-action{width:24px;padding:0}.account-state{background:#242424;color:#bdbdbd}.account-state.signed_in{background:#50c87821;color:#8ddfa8}.account-state.signed_out,.account-state.auth_error{background:#ff7a2f21;color:#ffad7d}.account-state.ready{background:#50c87821;color:#8ddfa8}.account-state.warning{background:#ffc45724;color:#ffd38a}.account-state.loading{background:#3aa3ff24;color:#77bdff}.account-state.disabled{background:#ffffff12;color:#858585}.empty-account-list{display:grid;gap:5px;padding:18px 16px}.empty-account-list strong{color:#f5f5f5;font-size:14px}.product-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.product-row:last-child{border-bottom:0}.product-row div{display:grid;gap:3px;min-width:0}.product-row strong,.product-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-row strong{color:#f6f6f6;font-size:13px;font-weight:550}.profile-agent-list{border:0;border-radius:0;background:transparent}.profile-agent-list-heading{border-bottom:0;padding:0 0 10px}.profile-table-frame{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.profile-data-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.profile-agent-table{min-width:600px}.profile-agent-column{width:38%}.profile-action-column{width:18%}.profile-check-column{width:16%}.profile-sync-column{width:28%}.profile-data-table th,.profile-data-table td{min-width:0;border-right:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);padding:12px 14px;text-align:left;vertical-align:middle}.profile-data-table th:last-child,.profile-data-table td:last-child{border-right:0}.profile-data-table tbody tr:last-child td{border-bottom:0}.profile-data-table th{padding-block:10px;background:var(--panel-soft);color:#858585;font-size:11px;font-weight:560}.profile-data-table strong,.profile-data-table span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-data-table strong{color:#f6f6f6;font-size:13px;font-weight:550}.profile-skill-list{border:0;border-radius:0;background:transparent}.profile-skill-heading-actions{display:inline-flex;align-items:center;gap:10px}.profile-skill-table{min-width:820px}.profile-skill-name-column{width:23%}.profile-skill-trigger-column{width:29%}.profile-skill-status-column{width:10%}.profile-skill-source-column{width:22%}.profile-skill-actions-column{width:16%}.profile-skill-description{overflow:hidden;color:#a9a9a9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.profile-skill-source{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-skill-actions{display:inline-flex;align-items:center;gap:8px;min-width:0}.profile-agent-table .profile-schedule-actions{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.profile-schedule-expression{flex:1 1 auto;min-width:0;color:#a9a9a9;font-size:12px;text-align:right}.profile-agent-table .profile-schedule-controls{display:inline-flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;gap:6px;min-width:max-content;white-space:nowrap}.profile-schedule-button{width:28px;height:28px;flex:0 0 auto}.profile-agent-list-note{padding:8px 16px 12px}.profile-agent-identity{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.profile-agent-identity>div{display:grid;gap:3px;min-width:0}.profile-agent-action{min-width:0}.profile-agent-action span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a9a9a9;font-size:12px}.profile-status-text{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#bdbdbd;font-size:12px;white-space:nowrap}.profile-status-text:before{content:"";width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:currentColor;opacity:.85}.profile-status-text.ready{color:#8ddfa8}.profile-status-text.warning{color:#ffd38a}.profile-status-text.loading{color:#77bdff}.profile-status-text.disabled{color:#858585}@container profile-view (max-width: 840px){.profile-control-toolbar{align-items:flex-start;flex-direction:column}.profile-local-status{max-width:100%;text-align:left}}.settings-footnote{display:flex;justify-content:space-between;gap:18px;min-width:0;max-width:100%;padding:12px 16px}.settings-footnote.warning{border-color:#ff7a2f3d}.settings-footnote strong{min-width:0;overflow-wrap:anywhere;white-space:normal;word-break:break-word;color:#d9d9d9;font-size:12px;font-weight:500}.account-build-footnote{align-items:center}.account-build-details{display:grid;gap:4px;min-width:0}.account-build-version,.account-build-actions{display:flex;align-items:center;gap:8px}.account-build-context{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;padding:0 7px;background:#ffffff14;color:#bdbdbd;font-size:11px;font-weight:500}.account-build-context.development{background:#3aa3ff21;color:#8fc8ff}.account-build-actions{flex:0 0 auto;justify-content:flex-end}.account-build-actions .settings-primary,.account-build-actions .settings-secondary{margin:0}.account-build-actions .settings-primary.compact{height:28px;border-radius:8px;padding:0 9px;font-size:12px}.account-error-footnote{align-items:flex-start}.account-error-footnote strong{flex:1 1 420px;max-width:min(620px,75%);color:#ffbd96;line-height:1.45;text-align:right}.diagnostics-log-panel{overflow:hidden}.diagnostics-log-actions{justify-content:flex-end;flex-wrap:wrap}.diagnostics-error-list{display:grid;align-content:start;max-height:min(34vh,340px);overflow:auto;scrollbar-color:#424242 transparent}.diagnostics-error-entry{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.06);color:#ffb0a4;content-visibility:auto;contain-intrinsic-size:86px}.diagnostics-error-entry:first-child{border-top:0}.diagnostics-error-entry svg{margin-top:2px;color:#ff8f7d}.diagnostics-error-body{display:grid;gap:6px;min-width:0}.diagnostics-error-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0}.diagnostics-error-title strong{min-width:0;color:#f4f4f4;font-size:13px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.diagnostics-error-title time,.diagnostics-error-meta{color:#9b9b9b;font-size:12px}.diagnostics-error-meta{display:flex;flex-wrap:wrap;gap:6px}.diagnostics-error-meta span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagnostics-error-detail{min-width:0}.diagnostics-error-detail summary{width:fit-content;cursor:pointer;color:#d8d8d8;font-size:12px}.diagnostics-error-detail pre{max-height:180px;margin:8px 0 0;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0f0f0f;color:#dcdcdc;padding:9px 10px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.diagnostics-error-empty{display:grid;place-items:center;min-height:120px;color:#8f8f8f;font-size:13px}.diagnostics-log-viewer{display:grid;align-content:start;max-height:min(46vh,420px);min-height:260px;overflow:auto;background:#0f0f0f;scrollbar-color:#424242 transparent}.diagnostics-log-entry{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;min-width:max-content;padding:5px 12px;border-bottom:1px solid rgba(255,255,255,.045);content-visibility:auto;contain-intrinsic-size:26px}.diagnostics-log-source{color:#8f8f8f;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:nowrap}.diagnostics-log-entry code{color:#dcdcdc;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre}.diagnostics-log-empty{display:grid;place-items:center;min-height:260px;color:#8f8f8f;font-size:13px}.diagnostics-log-dir{display:flex;justify-content:space-between;gap:18px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.06)}.diagnostics-log-dir span{color:#9b9b9b;font-size:12px}.diagnostics-log-dir strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d9d9d9;font-size:12px;font-weight:500}.account-settings.provider-connections-settings{max-width:1000px;gap:20px}.account-settings.provider-connections-settings h1{margin:0}.provider-connections-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:0}.provider-connections-intro p{margin:0;color:var(--muted);font-size:14px}.provider-connections-intro button{flex-shrink:0}.provider-connections-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-connection-card{min-width:0;display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--border);border-radius:10px;background:#191919}.provider-connection-identity{display:flex;align-items:center;justify-content:space-between;gap:12px}.provider-connection-identity strong{font-size:14px;font-weight:500}.provider-connection-identity .provider-toggle{flex-shrink:0}.provider-connection-status{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.provider-connection-status.ready{color:#8ccdaa}.provider-connection-status.configured{color:#96c5eb}.provider-connection-status.warning{color:#f0b782}.provider-connection-card>p{min-height:36px;margin:0;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.provider-connection-card>button{align-self:flex-start;margin-top:auto}.provider-dialog-backdrop>.git-dialog.provider-details-dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;gap:0;border:1px solid #343434;border-radius:14px;background:#1c1c1c}.provider-details-dialog .git-dialog-close{top:16px;right:16px}.provider-details-dialog .provider-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:24px 56px 20px 24px;gap:16px;border-bottom:1px solid #303030}.provider-details-dialog .provider-dialog-header>div:first-child{display:grid;gap:6px;min-width:0}.provider-details-dialog .provider-dialog-header h2{font-size:18px;font-weight:500}.provider-details-dialog .provider-dialog-header span{font-size:12px;color:var(--muted)}.provider-details-dialog .provider-state-pill{position:static;flex-shrink:0;margin:0;font-weight:400}.provider-details-dialog .provider-chat-toggle{display:flex;align-items:center;gap:10px;padding:16px 24px;font-size:13px;cursor:pointer}.provider-chat-toggle>.provider-toggle{flex:0 0 38px}.provider-details-dialog .surface-tabs{display:flex;gap:22px;border:0;border-bottom:1px solid #303030;border-radius:0;background:transparent;margin:0;padding:0 24px}.provider-details-dialog .surface-tabs button{min-height:42px;padding:10px 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-weight:400}.provider-details-dialog .surface-tabs button[aria-selected=true],.provider-details-dialog .surface-tabs button.active{border-bottom-color:var(--cyan);background:transparent;color:var(--text)}.provider-details-dialog .provider-dialog-body{padding:20px 24px;gap:18px}.provider-details-dialog .provider-dialog-body>h3,.provider-details-dialog .native-model-heading h3{margin:0;font-size:13px;font-weight:500}.provider-details-dialog .native-connection-status,.native-connection-status>[role=status]{display:flex;align-items:center;gap:10px;font-size:13px}.provider-details-dialog .native-connection-status{justify-content:space-between;padding:12px;border:1px solid #303030;border-radius:8px}.native-connection-status>[role=status] svg{flex-shrink:0}.native-model-section{display:grid;gap:12px}.native-model-heading{display:flex;align-items:center;justify-content:space-between}.native-model-section small,.native-agent-version{color:var(--muted);font-size:12px}.native-model-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:212px;overflow-y:auto;scrollbar-width:thin}.native-model-list>span{min-width:0;border-radius:6px;background:#252525;padding:10px 12px;font-size:13px;overflow-wrap:anywhere}.native-model-list:focus-visible{outline:1px solid var(--cyan);outline-offset:3px}.provider-details-dialog .settings-secondary,.provider-details-dialog .settings-primary,.provider-connection-card .settings-secondary{border:1px solid #3a3a3a;border-radius:7px;background:#292929;height:34px;margin:0}.provider-details-dialog .settings-secondary:hover:not(:disabled){background:#353535}.provider-details-dialog .native-agent-setup>details{padding-top:16px;border-top:1px solid #303030;font-size:13px}.native-agent-setup>details>summary{color:var(--muted);cursor:pointer}.native-agent-setup>details[open]>summary{margin-bottom:16px}.provider-details-dialog .agent-sync-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.agent-setup-dialog .agent-sync-form>h3,.agent-setup-dialog .agent-source-field,.agent-setup-dialog .agent-sync-form>small,.agent-setup-dialog .agent-sync-checkbox,.agent-setup-dialog .agent-sync-form>button{grid-column:1 / -1}.provider-details-dialog .agent-sync-checkbox{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:9px;margin:0;font-size:13px}.provider-details-dialog .agent-sync-checkbox input[type=checkbox]{flex:0 0 16px;width:16px;min-width:16px;height:16px;margin:0;accent-color:var(--cyan)}.provider-details-dialog .agent-sync-form select{min-height:38px}.provider-details-dialog .agent-sync-form>.agent-connect-button{justify-self:end;min-height:36px;margin-top:4px;padding:8px 16px}.provider-details-dialog .agent-conversation-setup>details{border-top:1px solid #303030;padding-top:16px;color:var(--muted);font-size:12px}.provider-details-dialog .agent-conversation-setup summary{cursor:pointer}.provider-details-dialog .agent-conversation-setup details[open] small{display:block;margin-top:12px}.provider-details-dialog [hidden]{display:none}@media(max-width:600px){.provider-connections-intro{align-items:flex-start;flex-direction:column}.provider-connections-grid,.provider-details-dialog .agent-sync-form,.native-model-list{grid-template-columns:minmax(0,1fr)}.provider-details-dialog .native-connection-status{flex-wrap:wrap}.provider-details-dialog .provider-dialog-header{align-items:flex-start}.provider-details-dialog .provider-dialog-body{padding:18px}.provider-details-dialog .surface-tabs{padding:0 18px}}.url-model-endpoint{overflow-wrap:anywhere}.url-model-connection-form{display:grid;gap:16px;padding:20px}.url-model-connection-form label,.url-model-field{display:grid;gap:8px}.url-model-connection-form input{width:100%;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.url-model-connection-actions{display:flex;flex-wrap:wrap;gap:10px}.url-model-connections{display:grid;gap:16px}.url-model-connections h2{font-size:16px;margin:0 0 6px}.url-model-field .dropdown-trigger{width:100%;justify-content:space-between;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.url-model-field .dropdown-menu{background:var(--panel);color:var(--text)}.acp-agent-browser{margin:20px 0}.acp-agent-browser h2{font-size:16px;margin:0 0 10px}.acp-browser-tabs,.acp-registry-search{display:flex;gap:8px;align-items:center;margin-bottom:12px}.acp-registry-search label{flex:1}.acp-registry-list{display:grid;gap:6px;max-height:320px;overflow-y:auto;margin:10px 0}.acp-registry-entry{display:grid;gap:5px;text-align:left;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:inherit;cursor:pointer}.acp-registry-entry[aria-pressed=true]{border-color:var(--accent)}.acp-registry-entry span,.acp-registry-entry small{font-size:12px;color:var(--muted)}.acp-install-summary{display:grid;gap:10px;padding:12px 0}.acp-install-summary code{overflow-wrap:anywhere;font-size:12px}.acp-agent-browser textarea{min-height:60px;font-family:monospace}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as f}from"./index-
|
|
1
|
+
import{r as f}from"./index-C8aCGagb.js";import{V as C}from"./App-s-CJswyt.js";function S(n,e,t){return new Set(n.filter(i=>{if(e.has(i.id))return!1;if(t===void 0)return!0;if(typeof i.timestamp!="string")return!1;const a=Date.parse(i.timestamp);return Number.isFinite(a)&&a>=t}).map(i=>i.id))}function v(n){let e=null;for(const t of n){if(typeof t.timestamp!="string")continue;const i=Date.parse(t.timestamp);Number.isFinite(i)&&(e=e===null?i:Math.max(e,i))}return e}function E(n,e){const t=f.useRef({scopeKey:e,ids:new Set(n.map(r=>r.id)),initialized:!1,liveCutoff:null}),i=t.current.scopeKey===e,d=i&&t.current.initialized?S(n,t.current.ids,t.current.liveCutoff??void 0):new Set;return f.useLayoutEffect(()=>{const r=t.current,s=r.scopeKey!==e,u=Date.now();t.current={scopeKey:e,ids:new Set(n.map(l=>l.id)),initialized:!s,liveCutoff:s?Math.max(u,v(n)??0):r.liveCutoff??Math.max(u,v(n)??0)}},[n,i,e]),d}const w=new Map,M=[200,600,1500];function x({connection:n,latestTurnId:e,sessionId:t,turnRunning:i}){const[a,d]=f.useState(()=>({sessionId:null,summaries:w}));return f.useEffect(()=>{if(!n||!t)return;let r=!1,s=null;const u=i?null:e,l=o=>{const c=M[o];c===void 0||r||(s=setTimeout(()=>{m(o+1)},c))},m=async o=>{try{const c=await C.usageTurnCache(n,t);if(r)return;const p=new Map(c.turns.map(h=>[h.turnId,h]));d({sessionId:t,summaries:p}),u&&!p.has(u)&&l(o)}catch{l(o)}};return m(0),()=>{r=!0,s!==null&&clearTimeout(s)}},[n,e,t,i]),a.sessionId===t?a.summaries:w}export{x as a,E as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{e as a}from"./App-s-CJswyt.js";const e=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],y=a("bell",e);const t=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]],k=a("bell-off",t);const o=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],c=a("scroll-text",o);const h=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],p=a("wifi-off",h);export{k as B,c as S,p as W,y as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j7 as c}from"./WorkspaceMonacoEditor-
|
|
1
|
+
import{j7 as c}from"./WorkspaceMonacoEditor-TxLyhzNp.js";import"./toggleHighContrast-DjCO9lIP.js";function a(e,o){const r=globalThis.MonacoEnvironment;if(r?.createTrustedTypesPolicy)try{return r.createTrustedTypesPolicy(e,o)}catch(t){console.error(t);return}try{return globalThis.trustedTypes?.createPolicy(e,o)}catch(t){console.error(t);return}}let n;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?n=globalThis.workerttPolicy:n=a("defaultWorkerFactory",{createScriptURL:e=>e});function l(e){const o=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker=="function")return r.getWorker("workerMain.js",o);if(typeof r.getWorkerUrl=="function"){const t=r.getWorkerUrl("workerMain.js",o);return new Worker(n?n.createScriptURL(t):t,{name:o,type:"module"})}}if(e.createWorker)return e.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function u(e){const o=Promise.resolve(l({label:e.label??"monaco-editor-worker",moduleId:e.moduleId,createWorker:e.createWorker})).then(r=>(r.postMessage("ignore"),r.postMessage(e.createData),r));return c.createWebWorker({worker:o,host:e.host,keepIdleModels:e.keepIdleModels})}export{u as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./WorkspaceMonacoEditor-
|
|
1
|
+
import{l as e}from"./WorkspaceMonacoEditor-TxLyhzNp.js";import"./toggleHighContrast-DjCO9lIP.js";import"./index-C8aCGagb.js";const r={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},l={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{r as conf,l as language};
|
package/dist/web/index.html
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
|
8
8
|
<link rel="apple-touch-icon" href="/openpond-icon.png" />
|
|
9
9
|
<title>OpenPond App</title>
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-C8aCGagb.js"></script>
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/index-3iPNbbER.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
|
14
14
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openpond",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.56",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "OpenPond CLI and local harness",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"build:cli": "tsx ../../scripts/build/bundle-cli.ts cli",
|
|
20
20
|
"build:package": "tsx ../../scripts/build/bundle-cli.ts package",
|
|
21
21
|
"build:local-assets": "node scripts/stage-local-assets.mjs",
|
|
22
|
-
"build:types": "tsc --project tsconfig.package.json && node scripts/flatten-types.mjs && tsx ../../scripts/build/app-server-types.ts",
|
|
22
|
+
"build:types": "node ../../scripts/run-typescript.mjs tsc --project tsconfig.package.json && node scripts/flatten-types.mjs && tsx ../../scripts/build/app-server-types.ts",
|
|
23
23
|
"docs:commands": "tsx scripts/generate-command-reference.mjs",
|
|
24
24
|
"lint": "pnpm run typecheck",
|
|
25
|
-
"typecheck": "tsc --noEmit --project tsconfig.json",
|
|
25
|
+
"typecheck": "node ../../scripts/run-typescript.mjs tsc --noEmit --project tsconfig.json",
|
|
26
26
|
"test": "vitest run test",
|
|
27
27
|
"build": "pnpm run clean && pnpm run docs:commands && pnpm run build:bundles && pnpm run build:local-assets && pnpm run build:types",
|
|
28
28
|
"prepublishOnly": "pnpm run build",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{b as R,c as p,d as m}from"./chunk-XEOEKFG6.js";import{a as v}from"./chunk-PA7XP42P.js";import"./chunk-XWPC3AN4.js";import{f as b}from"./chunk-3M53YXEI.js";import{C as O}from"./chunk-2SPZYBDN.js";import{d as P}from"./chunk-R3XFY7VL.js";import"./chunk-GLUWATL5.js";import"./chunk-YL6VFJ4P.js";import"./chunk-Z3D4C7BG.js";import"./chunk-WV2APYWG.js";import"./chunk-PJM2G7SG.js";import"./chunk-SDEDAHV6.js";import"./chunk-DALJMSJG.js";import"./chunk-TGIB24K4.js";import"./chunk-NNF6KCHD.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as c}from"./chunk-FTQLQJQV.js";import{promises as $,watch as C}from"node:fs";import y from"node:path";import{execFile as J}from"node:child_process";import{promisify as k}from"node:util";var K=k(J);async function G(t,n){let e=n[0]??"check",o=y.resolve(i(t,"cwd")??process.cwd()),l=i(t,"sourceDirectory"),u=i(t,"outputDirectory"),d=b(t.json);if(e==="check"||e==="build"){let r=await p({projectRoot:o,sourceDirectory:l,outputDirectory:u});if(d){console.log(JSON.stringify({status:"passed",actionCount:r.registry.actions.length,registry:r.registry,manifest:r.manifest,outputDirectory:r.outputDirectory},null,2));return}console.log(`${e==="check"?"Validated":"Built"} ${r.registry.actions.length} Project Action${r.registry.actions.length===1?"":"s"}.`),console.log(`Registry: ${r.registryPath}`),console.log(`Bundle: ${r.bundlePath}`);return}if(e==="run"){let r=n[1];if(!r)throw new Error("usage: openpond actions run <action-id> [--input JSON|--input-file PATH]");let a=await m({projectRoot:o,sourceDirectory:l,outputDirectory:u,build:"always"}).run({actionId:r,input:await I(t,o),timeoutMs:A(t,"timeoutMs")});console.log(JSON.stringify(a,null,2));return}if(e==="dev"){let r=n[1]??null;await _({projectRoot:o,sourceDirectory:l,outputDirectory:u,actionId:r,options:t,json:d});return}if(e==="publish"){let r=j(t,"projectId"),s=j(t,"teamId"),a=i(t,"apiKey"),w=process.env.OPENPOND_API_KEY?.trim()||null,g=a||w?null:await P({account:i(t,"account")}),h=a??w??(g?v(g):null);if(!h)throw new Error("OpenPond API key is required. Select a saved OpenPond account, set OPENPOND_API_KEY, or pass --api-key.");let N=await p({projectRoot:o,sourceDirectory:l,outputDirectory:u}),E=i(t,"sourceCommitSha")??await D(o,["rev-parse","HEAD"]),S=i(t,"sourceRef")??await D(o,["rev-parse","--abbrev-ref","HEAD"]),f=await O({apiKey:h,baseUrl:i(t,"baseUrl")??(process.env.OPENPOND_API_URL?.trim()||g?.apiBaseUrl)}).actions.publish({projectId:r,teamId:s,sourceRef:S,sourceCommitSha:E,build:N});console.log(d?JSON.stringify({release:f},null,2):`Published Project Actions release ${f.id} from ${f.sourceCommitSha}.`);return}throw new Error("usage: openpond actions <check|build|run|dev|publish> [action-id]")}c(G,"runProjectActionsCommand");async function _(t){let n=!1,e=!1,o=c(async()=>{if(n){e=!0;return}n=!0;try{let r=m({projectRoot:t.projectRoot,sourceDirectory:t.sourceDirectory,outputDirectory:t.outputDirectory,build:"always"});if(t.actionId){let s=await r.run({actionId:t.actionId,input:await I(t.options,t.projectRoot),timeoutMs:A(t.options,"timeoutMs")});console.log(JSON.stringify(s,null,2))}else{let s=await r.build(),a={status:"ready",actionCount:s.registry.actions.length,bundleHash:s.manifest.bundleHash};console.log(t.json?JSON.stringify(a):`Ready with ${a.actionCount} Project Action${a.actionCount===1?"":"s"}.`)}}catch(r){console.error(r instanceof Error?r.message:String(r))}finally{n=!1,e&&(e=!1,await o())}},"execute");await o();let l=await R(t.projectRoot),u=y.resolve(t.projectRoot,t.sourceDirectory??l.sourceDirectory??"openpond/actions");console.log(`Watching ${u}`);let d=C(u,{recursive:!0},()=>{setTimeout(()=>{o()},50)});await new Promise(r=>{let s=c(()=>{d.close(),r()},"stop");process.once("SIGINT",s),process.once("SIGTERM",s)})}c(_,"runDev");async function I(t,n){let e=i(t,"input"),o=i(t,"inputFile");if(e&&o)throw new Error("Use either --input or --input-file, not both.");return e?JSON.parse(e):o?JSON.parse(await $.readFile(y.resolve(n,o),"utf8")):{}}c(I,"actionInput");function i(t,n){let e=t[n];return typeof e=="string"&&e.trim()?e.trim():void 0}c(i,"stringOption");function j(t,n){let e=i(t,n);if(!e)throw new Error(`--${n.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`)} is required.`);return e}c(j,"requiredOption");async function D(t,n){let{stdout:e}=await K("git",n,{cwd:t}),o=e.trim();if(!o)throw new Error(`git ${n.join(" ")} returned no value.`);return o}c(D,"gitValue");function A(t,n){let e=i(t,n);if(e===void 0)return;let o=Number(e);if(!Number.isInteger(o)||o<=0)throw new Error(`--${n} must be a positive integer.`);return o}c(A,"integerOption");export{G as runProjectActionsCommand};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{ic as c,jc as d}from"./chunk-37DXASQL.js";import"./chunk-NHFGEVVH.js";import"./chunk-EMKZVP7Z.js";import{e as b}from"./chunk-PQHTZ5CP.js";import"./chunk-GCOUYYHG.js";import"./chunk-FPUUZQUP.js";import"./chunk-5TNDPNS3.js";import"./chunk-6VF3Q6QJ.js";import"./chunk-T5LE6R5S.js";import"./chunk-USKE34VR.js";import"./chunk-SDO4FC4Q.js";import"./chunk-IR3YJWPW.js";import{i as a}from"./chunk-7ZG3IT7C.js";import"./chunk-XM26DGML.js";import"./chunk-4EEH7MEC.js";import"./chunk-4TZHH5FC.js";import"./chunk-4SHKI3BH.js";import"./chunk-USMZT5FZ.js";import"./chunk-5CMKGD43.js";import"./chunk-XEOEKFG6.js";import"./chunk-HA7EFTPF.js";import"./chunk-L3KS6MOV.js";import"./chunk-7QEE4PBI.js";import"./chunk-2JO2KWT3.js";import"./chunk-IKWDL3RB.js";import"./chunk-6MI4KKWF.js";import"./chunk-QRWPEW3Z.js";import"./chunk-6FA3GG5B.js";import"./chunk-YL6VFJ4P.js";import"./chunk-Z3D4C7BG.js";import"./chunk-WV2APYWG.js";import"./chunk-PJM2G7SG.js";import"./chunk-SDEDAHV6.js";import"./chunk-DALJMSJG.js";import"./chunk-TGIB24K4.js";import"./chunk-NNF6KCHD.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import"./chunk-FTQLQJQV.js";export{a as AGENT_PROTOCOL_VERSION,c as APP_SERVER_COMPOSITION,d as createOpenPondAppServer,b as runAppServerJsonl};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{b as H,c as Q}from"./chunk-22UARBPW.js";import{f as $,g as J,h as L,i as v,j as q}from"./chunk-N3DEA6PG.js";import{c as g}from"./chunk-PA7XP42P.js";import{f as m,h as y}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import"./chunk-YJ4PNAST.js";import"./chunk-AH22RHPS.js";import{a as S,f as w,j as T,k as j}from"./chunk-3M53YXEI.js";import"./chunk-OGPHXXCD.js";import"./chunk-2SPZYBDN.js";import{J as C,K as G,L as k,O as W,Q as M,S as z,T as F,c as D,m as K,r as V,s as _}from"./chunk-QXVIIM4T.js";import{d as f}from"./chunk-R3XFY7VL.js";import"./chunk-GLUWATL5.js";import"./chunk-YL6VFJ4P.js";import"./chunk-Z3D4C7BG.js";import"./chunk-WV2APYWG.js";import"./chunk-PJM2G7SG.js";import"./chunk-SDEDAHV6.js";import"./chunk-DALJMSJG.js";import"./chunk-TGIB24K4.js";import"./chunk-NNF6KCHD.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as p}from"./chunk-FTQLQJQV.js";async function ie(){let e=await f(),s=m(e),t=await g(e,s),n=y(e),r=await L({apiBase:n,apiKey:t});console.log(JSON.stringify(r,null,2))}p(ie,"runAppsTools");async function se(e){let s=await f(),t=m(s),n=y(s),r=await g(s,t),i=typeof e.handle=="string"?String(e.handle):void 0,o=i?$(i):null,c=e.refresh!==void 0?w(e.refresh):void 0,l=await J({apiBase:n,apiKey:r,forceRefresh:c}),u=o?l.filter(a=>$(a.handle||a.gitOwner)===o):l;if(u.length===0){console.log("no apps found");return}if(w(e.json)){console.log(JSON.stringify({apps:u},null,2));return}for(let a of u){let d=a.handle||a.gitOwner||"unknown",h=a.repo||a.gitRepo||a.id,B=a.latestDeployment?.status||"no-deploy",R=a.latestDeployment?.gitBranch||a.defaultBranch||"-",I=a.codeVisibility||"unknown",E=a.sandbox?"yes":"no";console.log(`${d}/${h} ${B} ${R} code=${I} sandbox=${E} ${a.id}`)}}p(se,"runAppsList");async function oe(e,s){let t=typeof e.visibility=="string"?e.visibility.trim():typeof e.codeVisibility=="string"?e.codeVisibility.trim():"";if(t!=="public"&&t!=="private")throw new Error("usage: apps code-visibility <handle>/<repo> --visibility public|private");let n=await f(),r=m(n),i=y(n),o=await g(n,r),{app:c,handle:l,repo:u}=await v(i,o,s),a=await K(i,o,c.id,t);console.log(`${l}/${u} code_visibility=${a.app?.codeVisibility??t} app_id=${c.id}`)}p(oe,"runAppsCodeVisibility");async function ae(e){let s=await f(),t=m(s),n=await g(s,t),r=y(s),i=typeof e.appId=="string"?String(e.appId):void 0,o=await G(r,n,{appId:i});console.log(JSON.stringify(o,null,2))}p(ae,"runAppsPerformance");async function ce(e,s){let t=await f(),n=m(t),r=y(t),i=await g(t,n),{app:o}=await v(r,i,s),c=await k(r,i,o.id);console.log(JSON.stringify(c,null,2))}p(ce,"runAppsSummary");async function le(e,s,t,n){let r=(typeof e.prompt=="string"?e.prompt:null)||n.join(" ");if(!r.trim())throw new Error("usage: apps assistant <plan|performance> <handle>/<repo> --prompt <text>");let i=await f(),o=m(i),c=y(i),l=await g(i,o),{app:u}=await v(c,l,t),a=await W(c,l,{appId:u.id,mode:s,prompt:r.trim()});console.log(JSON.stringify(a,null,2))}p(le,"runAppsAssistant");async function de(e,s){let t=await f(),n=m(t),r=await g(t,n),i=y(t),o=(typeof e.prompt=="string"?e.prompt:null)||s.join(" ");if(!o.trim())throw new Error("usage: apps agent create --prompt <text> [--team-id <id>]");let c=typeof e.templateRepoUrl=="string"?e.templateRepoUrl:void 0,l=typeof e.templateBranch=="string"?e.templateBranch:void 0,u=typeof e.templateLocalPath=="string"?e.templateLocalPath:void 0,a=typeof e.teamId=="string"&&e.teamId.trim()?e.teamId.trim():void 0;if(u&&String(u).trim().length>0)throw new Error("templateLocalPath is not supported; use templateRepoUrl");let d=typeof e.env=="string"?S(e.env,"env"):void 0;if(d){if(typeof d!="object"||Array.isArray(d))throw new Error("env must be a JSON object");for(let[b,A]of Object.entries(d))if(typeof A!="string")throw new Error(`env value for ${b} must be a string`)}let h=c||l||d?{templateRepoUrl:c,templateBranch:l,envVars:d}:void 0,B=typeof e.deployEnvironment=="string"?e.deployEnvironment==="preview"?"preview":"production":void 0,R=e.deployDisabled!==void 0?w(e.deployDisabled):void 0,I=e.streamDeployLogs!==void 0?w(e.streamDeployLogs):!0,E=await C(i,r,{prompt:o.trim(),...a?{teamId:a}:{},...h?{template:h}:{},...B?{deployEnvironment:B}:{},...R!==void 0?{deployDisabled:R}:{},streamDeployLogs:I});if(!E.ok){let b=await E.text().catch(()=>"");throw new Error(`agent create failed: ${E.status} ${b}`)}let N=null,O=null,P=null;await H(E,{onConversationId:p(b=>{N=b},"onConversationId"),onItems:p(b=>{for(let A of b){let U=Q(A);U&&console.log(U);let x=A;!O&&typeof x.appId=="string"&&(O=x.appId),!P&&typeof x.deploymentId=="string"&&(P=x.deploymentId)}},"onItems")}),N&&console.log(`conversation_id: ${N}`),O&&console.log(`app_id: ${O}`),P&&console.log(`deployment_id: ${P}`);try{await J({apiBase:i,apiKey:r,forceRefresh:!0}),await L({apiBase:i,apiKey:r,forceRefresh:!0})}catch(b){console.warn("cache refresh failed",b)}}p(de,"runAppsAgentCreate");async function pe(e,s,t,n){let r=await f(),i=m(r),o=await g(r,i),c=y(r),l=typeof e.method=="string"?String(e.method).toUpperCase():void 0,u=l&&["GET","POST","PUT","DELETE"].includes(l)?l:void 0;if(l&&!u)throw new Error("method must be GET, POST, PUT, or DELETE");let a=typeof e.body=="string"?S(String(e.body),"body"):void 0,d=typeof e.headers=="string"?S(String(e.headers),"headers"):void 0,h=typeof e.scheduleId=="string"?String(e.scheduleId):void 0,B=w(e.notifyEmail),R=w(e.summary)||w(e.withSummary),I=await M(c,o,{appId:s,deploymentId:t,toolName:n,scheduleId:h,method:u,body:a,headers:d,notifyEmail:B||void 0});if(console.log(JSON.stringify(I,null,2)),R&&I.ok){let E=await k(c,o,s);console.log(JSON.stringify({summary:E},null,2))}}p(pe,"runAppsToolsExecute");async function ue(e,s){let t=typeof e.env=="string"?e.env:typeof e.vars=="string"?e.vars:typeof e.envVars=="string"?e.envVars:null;if(!t)throw new Error("usage: apps env set <handle>/<repo> --env <json>");let n=S(t,"env");if(!n||typeof n!="object"||Array.isArray(n))throw new Error("env must be a JSON object");let r={};for(let[d,h]of Object.entries(n)){if(typeof h!="string")throw new Error(`env value for ${d} must be a string`);if(!d.startsWith("OPENTOOL_PUBLIC_"))throw new Error("only OPENTOOL_PUBLIC_ env vars can be set");r[d]=h}let i=await f(),o=m(i),c=y(i),l=await g(i,o),{app:u}=await v(c,l,s),a=await V(c,l,u.id,{envVars:r});console.log(JSON.stringify(a,null,2))}p(ue,"runAppsEnvSet");async function fe(e,s){let t=await f(),n=m(t),r=y(t),i=await g(t,n),{app:o}=await v(r,i,s),c=await _(r,i,o.id);console.log(JSON.stringify(c,null,2))}p(fe,"runAppsEnvGet");async function ge(e,s){let t=await f(),n=m(t),r=y(t),i=await g(t,n),{app:o,handle:c,repo:l}=await v(r,i,s),u=typeof e.env=="string"?e.env:typeof e.environment=="string"?e.environment:void 0,a=j(u),d=await D(r,i,o.id,{environment:a});console.log(JSON.stringify(d,null,2)),(w(e.watch)||w(e.wait)||w(e.follow))&&await q({baseUrl:r,apiKey:i,deploymentId:d.deploymentId,prefix:`[${c}/${l}] `,intervalMs:e.interval?Number(e.interval):void 0,timeoutMs:e.timeout?Number(e.timeout):void 0})}p(ge,"runAppsDeploy");function X(e){let s={};if(typeof e.params=="string"){let n=S(String(e.params),"params");if(!n||typeof n!="object"||Array.isArray(n))throw new Error("params must be a JSON object");for(let[r,i]of Object.entries(n))i!==void 0&&(s[r]=typeof i=="string"?i:JSON.stringify(i))}let t=p((n,r)=>{r===void 0||r===""||(s[n]=r)},"addParam");if(t("source",typeof e.source=="string"?e.source.trim():void 0),t("symbol",typeof e.symbol=="string"?e.symbol.trim():void 0),t("cursor",typeof e.cursor=="string"?e.cursor.trim():void 0),t("status",typeof e.status=="string"?e.status.trim():void 0),t("backtestRunId",typeof e.runId=="string"?e.runId.trim():typeof e.backtestRunId=="string"?e.backtestRunId.trim():void 0),t("since",T(e.since,"since")),t("until",T(e.until,"until")),typeof e.limit=="string"&&e.limit.trim().length>0){let n=Number.parseInt(e.limit,10);if(!Number.isFinite(n))throw new Error("limit must be a number");t("limit",String(n))}return Object.keys(s).length?s:void 0}p(X,"resolveBacktestEventsParams");async function me(e,s){let t=await f(),n=m(t),r=await g(t,n),i=y(t),{app:o}=await v(i,r,s),c={...X(e)??{},appId:o.id},l=await z(i,r,{method:"GET",query:c});console.log(JSON.stringify(l,null,2))}p(me,"runBacktestEvents");async function ye(e,s){let t=typeof e.runId=="string"?e.runId.trim():typeof e.backtestRunId=="string"?e.backtestRunId.trim():"";if(!t)throw new Error("usage: backtest get <handle>/<repo> --run-id <id>");let n=await f(),r=m(n),i=await g(n,r),o=y(n),{app:c}=await v(o,i,s),l=await F(o,i,{appId:c.id,runId:t});console.log(JSON.stringify(l,null,2))}p(ye,"runBacktestGet");export{X as resolveBacktestEventsParams,de as runAppsAgentCreate,le as runAppsAssistant,oe as runAppsCodeVisibility,ge as runAppsDeploy,fe as runAppsEnvGet,ue as runAppsEnvSet,se as runAppsList,ae as runAppsPerformance,ce as runAppsSummary,ie as runAppsTools,pe as runAppsToolsExecute,me as runBacktestEvents,ye as runBacktestGet};
|