openpond 0.2.55 → 0.2.57
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 +10545 -10254
- package/dist/app-server.js +1 -1
- package/dist/chunks/actions-command-QU4H53OG.js +2 -0
- package/dist/chunks/{app-layer-Y2UERCPY.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-VCRNCNX2.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-UA5DA5I2.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-B7QDZPNX.js → chunk-5MCNZCVQ.js} +1 -1
- package/dist/chunks/chunk-6FDWRG55.js +2 -0
- package/dist/chunks/{chunk-DLVPSCTB.js → chunk-6QSSIT62.js} +1 -1
- 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-G6JMQGX7.js → chunk-B7RFL4N2.js} +1 -1
- package/dist/chunks/chunk-BLXEAZCQ.js +12 -0
- package/dist/chunks/chunk-D74JEERO.js +5 -0
- package/dist/chunks/{chunk-U2YMBCX7.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-R27YGT77.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-BQAF5P7K.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-IODUCRBA.js → chunk-HY3GOBFJ.js} +1 -1
- 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-KUERKVEU.js +3 -0
- package/dist/chunks/chunk-KVTBX2UP.js +2 -0
- package/dist/chunks/chunk-L3KS6MOV.js +2 -0
- package/dist/chunks/chunk-L6K7ERG5.js +2 -0
- package/dist/chunks/{chunk-MH3LHSGX.js → chunk-LQQNBVEB.js} +1 -1
- package/dist/chunks/{chunk-BTI4N7YO.js → chunk-M4JWQSV7.js} +1 -1
- package/dist/chunks/chunk-MQULU465.js +2 -0
- package/dist/chunks/chunk-MULXCKG7.js +10 -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-O6ULLQJ6.js +2 -0
- 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-OPNRWESL.js +3 -0
- package/dist/chunks/chunk-OQKJGTTO.js +4 -0
- package/dist/chunks/chunk-OQPJ7FJF.js +9 -0
- package/dist/chunks/{chunk-TERVLCRG.js → chunk-OS3LO5J3.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-NOTXPD2T.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-QDC4OW3S.js +2 -0
- 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-NNIRIUSY.js → chunk-RAXOSUSW.js} +1 -1
- package/dist/chunks/chunk-RNIAFXMB.js +50 -0
- package/dist/chunks/{chunk-SHQOIROR.js → chunk-S5ESN275.js} +3 -3
- 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-C6D4WAYN.js → chunk-UKMA4R6X.js} +2 -2
- package/dist/chunks/{chunk-4WEUCGJ3.js → chunk-VRIEKBBH.js} +1 -1
- 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-QRAKXZOC.js → chunk-YOBN7KTF.js} +6 -6
- package/dist/chunks/chunk-YOQRYNLP.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-Q7AXHFZV.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-TTGJ6YTR.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/dist-VYC5VMQB.js +2 -0
- package/dist/chunks/{dist-FAJX2UBW.js → dist-ZVJPJLXR.js} +1 -1
- 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-DWMY6D2R.js → extension-XKXXOP5N.js} +1 -1
- package/dist/chunks/{help-A72QDRNG.js → help-S7THC6IE.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-NRLXL2S5.js +2 -0
- package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +2 -0
- package/dist/chunks/hosted-app-server-composition-HPL3CRXN.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/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-NOZ6TVXL.js → profile-TFZMUEDR.js} +1 -1
- 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-LKGBDVJ4.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/src-INHPJ63Z.js +326 -0
- package/dist/chunks/{src-ZWJ5IO7A.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-H7XT23XB.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-CTlAPuCY.css → App-CaRMZoxo.css} +1 -1
- package/dist/web/assets/App-s-CJswyt.js +154 -0
- package/dist/web/assets/{AppDialog-CPHTPqrx.js → AppDialog-t2Fx5tK3.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-BVj5Tj93.js → AppTerminalPanel-Dj1Y32oI.js} +2 -2
- package/dist/web/assets/{AppsView-O69zEBY3.js → AppsView-BYE5EBDJ.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-Pr_Kpe8p.js → BrowserSidebar-jhWi4rVm.js} +1 -1
- package/dist/web/assets/{CartesianChart-JPqo6YOf.js → CartesianChart-C1DIx0Ia.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-CAJcQFn2.js → CollaborationTabs-Bdr-HmOL.js} +1 -1
- package/dist/web/assets/{CommandMenu-B-w53n9A.js → CommandMenu-Ux2yOHAc.js} +1 -1
- package/dist/web/assets/{CommunityView-DbZKK8_P.js → CommunityView-DPEeVKFn.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-3_083PF4.js → ComposerCreateImproveStrip-CEgh4OtN.js} +1 -1
- package/dist/web/assets/{GetStartedView-D7JGm_6c.js → GetStartedView-CFHP0AaI.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-DwgMfZ7_.js → HostedModelLearningReview-D8BGTPVN.js} +1 -1
- package/dist/web/assets/{HostedModelLearningSettings-JRfQadRl.js → HostedModelLearningSettings-JS1S7vNO.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-BUYflJY_.js → LabModelVersionDetailPage-Dx5Q3xV2.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-BBiqk7Rf.js → LabSkillSidebar-BxffN-pN.js} +1 -1
- package/dist/web/assets/{LabsRoute-Ci6vUnSd.js → LabsRoute-CyYF8-dw.js} +4 -4
- package/dist/web/assets/{MainChatThread-BQK3oI2N.js → MainChatThread-DZpcFRFl.js} +2 -2
- package/dist/web/assets/MainPane-5DTtwVCk.js +65 -0
- package/dist/web/assets/MainPane-BIM_UJ3q.css +1 -0
- package/dist/web/assets/{MarkdownText-DOdOVFXL.js → MarkdownText-BR4V6lNO.js} +21 -21
- package/dist/web/assets/{NativeSkillSidebar-CRI_ri8z.js → NativeSkillSidebar-DU9IEgIO.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-DhYtfE68.js → NewExperienceSwitcher-mIy6FzCj.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-D8sy1gOz.js → NewProjectDialog-RfTZTHxl.js} +1 -1
- package/dist/web/assets/{OutputsPage-CbWgrhXA.js → OutputsPage-Cr1Spf7S.js} +1 -1
- package/dist/web/assets/{ProjectsPage-DLB67lyA.js → ProjectsPage-CE6QUB-b.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-ozSKnDyX.js → RightChatPanelStack-T6VRWuHo.js} +1 -1
- package/dist/web/assets/RightSidebarHomePanel-CK0rP3WT.js +1 -0
- package/dist/web/assets/{ScheduledWorkPage-Cafv_QnR.js → ScheduledWorkPage-vOrYv8pp.js} +1 -1
- package/dist/web/assets/SettingsView-DCKVrfjj.js +5 -0
- package/dist/web/assets/SettingsView-Dulr_xlq.css +1 -0
- package/dist/web/assets/{TeamChatView-vIrmXOY_.js → TeamChatView-Bwrjr-vk.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-CAmF__Dq.js → TerminalOverlay-DhPoKZAq.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +1 -0
- package/dist/web/assets/{TrainingDraftPanel-D7XZePAk.js → TrainingDraftPanel-C9cRX5qf.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CYTmp7PG.js → UsageSettingsSection-CrdcSGeW.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-DSSikNFQ.js +1 -0
- package/dist/web/assets/{WorkspaceDiffPanel-DQGoIjH9.js → WorkspaceDiffPanel-BAFo0CPN.js} +6 -6
- package/dist/web/assets/{WorkspaceEnvironmentMenu-c1pHDskn.js → WorkspaceEnvironmentMenu-BVHAhwnJ.js} +1 -1
- package/dist/web/assets/WorkspaceGitDialogs-CwVoiDQ2.js +1 -0
- package/dist/web/assets/{WorkspaceMonacoEditor-BCKzvSj2.js → WorkspaceMonacoEditor-TxLyhzNp.js} +3 -3
- package/dist/web/assets/{arrow-up-right-CP4hZdrJ.js → arrow-up-right-C9aE8Mfz.js} +1 -1
- package/dist/web/assets/{chunk-NOJECMB7-Bhcms-w5.js → chunk-P3BRSSRD-DUGfuKA8.js} +1 -1
- package/dist/web/assets/{clipboard-BgrXorn-.js → clipboard-Dk158Qp4.js} +1 -1
- package/dist/web/assets/{cloud-upload-B_zYztb6.js → cloud-upload-k9eqBsHr.js} +1 -1
- package/dist/web/assets/{cssMode-DanjGgA8.js → cssMode-CO35ARZp.js} +1 -1
- package/dist/web/assets/{folder-open-CdVKbtGq.js → folder-open-sYgceW_f.js} +1 -1
- package/dist/web/assets/{folder-plus-Cc5KElB6.js → folder-plus-CS0R49m9.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CjGIIgRi.js → git-commit-horizontal-DrGxH2h4.js} +1 -1
- package/dist/web/assets/{htmlMode-DRGDF_UL.js → htmlMode-REMmzdfq.js} +1 -1
- package/dist/web/assets/index-3iPNbbER.css +1 -0
- package/dist/web/assets/{index-BE-wXZ5R.js → index-C8aCGagb.js} +2 -2
- package/dist/web/assets/{info-BLj0RvhA.js → info-DLdbiUrh.js} +1 -1
- package/dist/web/assets/{jsonMode-CCu0j2GD.js → jsonMode-KEdMfkIf.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-s_Lhm7P6.js → lspLanguageFeatures-5KZwEoxW.js} +1 -1
- package/dist/web/assets/{minimize-2-Cyg_zD9z.js → minimize-2-CqcI4zcM.js} +1 -1
- package/dist/web/assets/{monaco.contribution-CY7mRgOB.js → monaco.contribution-BJGj65F9.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CAzXvYkn.js → monaco.contribution-Cly9Wt7L.js} +2 -2
- package/dist/web/assets/{monaco.contribution-mUPNK9ra.js → monaco.contribution-DO10L0zW.js} +2 -2
- package/dist/web/assets/{monaco.contribution-aUeLcBEg.js → monaco.contribution-omszXBEj.js} +2 -2
- package/dist/web/assets/{monitor-DZvOs_wC.js → monitor-BFVCcbxp.js} +1 -1
- package/dist/web/assets/{play-BJPzemuY.js → play-C469pVZq.js} +1 -1
- package/dist/web/assets/{python-B_qnnVaG.js → python-Dw0YcVy9.js} +1 -1
- package/dist/web/assets/{save-BDy9tA3E.js → save-CtSjPydi.js} +1 -1
- package/dist/web/assets/{square-Cb2c5td4.js → square-BuImvLhT.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-MhO1JLyR.js → toggleHighContrast-DjCO9lIP.js} +1 -1
- package/dist/web/assets/{tsMode-DfBXJb9V.js → tsMode-BAOnxKd6.js} +1 -1
- package/dist/web/assets/{upload-D56kThRh.js → upload-2JkFZo3h.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-DMnGfswi.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-ClAY8gze.js → useSessionTurnCache-BHU2-Jmz.js} +1 -1
- package/dist/web/assets/{wifi-off-C9lWJmVm.js → wifi-off-CpOAH62M.js} +1 -1
- package/dist/web/assets/{workers-BYzrH8by.js → workers-0QvlA2T5.js} +1 -1
- package/dist/web/assets/{yaml-D3T8UkT3.js → yaml-BK3qxo7D.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunks/actions-command-WTFZA7LF.js +0 -2
- package/dist/chunks/app-server-runtime-2RM3N4I6.js +0 -2
- package/dist/chunks/apps-KDNWYO3G.js +0 -2
- package/dist/chunks/chunk-2DFR7PJ4.js +0 -2460
- package/dist/chunks/chunk-4CRM2ADK.js +0 -2
- package/dist/chunks/chunk-55G6B54U.js +0 -6
- package/dist/chunks/chunk-73G5UYBB.js +0 -12
- package/dist/chunks/chunk-ARQEJOEK.js +0 -33
- package/dist/chunks/chunk-CGBI2VYJ.js +0 -2
- package/dist/chunks/chunk-GGIG3XU7.js +0 -3
- package/dist/chunks/chunk-JIMU3KDA.js +0 -24
- package/dist/chunks/chunk-JUJSA7KI.js +0 -22
- package/dist/chunks/chunk-K5SBVO3B.js +0 -195
- package/dist/chunks/chunk-KD3QVRIJ.js +0 -21
- package/dist/chunks/chunk-L4235TRQ.js +0 -140
- package/dist/chunks/chunk-MVF3F5QS.js +0 -2
- package/dist/chunks/chunk-OULAKUIN.js +0 -2
- package/dist/chunks/chunk-OWNLDB2O.js +0 -2
- package/dist/chunks/chunk-QDHMP5FS.js +0 -2
- package/dist/chunks/chunk-QKD5OMDI.js +0 -2
- package/dist/chunks/chunk-R2BSIRYL.js +0 -3
- package/dist/chunks/chunk-STDMBJOQ.js +0 -9
- package/dist/chunks/chunk-T4QGDQHP.js +0 -4
- package/dist/chunks/chunk-USMZT5FZ.js +0 -18
- package/dist/chunks/chunk-VJEZPDBS.js +0 -5
- package/dist/chunks/chunk-WDFLCNRC.js +0 -8
- package/dist/chunks/chunk-WZYRAR7X.js +0 -16
- package/dist/chunks/chunk-YDT7L3VZ.js +0 -24
- package/dist/chunks/chunk-YUPBAWBJ.js +0 -554
- package/dist/chunks/cli-465VC2WP.js +0 -2
- package/dist/chunks/configuration-command-LAAP2EXT.js +0 -2
- package/dist/chunks/connected-evidence-XM626247.js +0 -2
- package/dist/chunks/core-commands-W7EK552V.js +0 -2
- package/dist/chunks/datasets-QJWYTTQL.js +0 -2
- package/dist/chunks/desktop-test-3B2D34NF.js +0 -3
- package/dist/chunks/dist-HUAE2KFZ.js +0 -2
- package/dist/chunks/evaluation-coordination-2MONR4AX.js +0 -2
- package/dist/chunks/experiment-improvements-WVQ5FK46.js +0 -2
- package/dist/chunks/experiments-S5UQ32QB.js +0 -2
- package/dist/chunks/hosted-experiment-improvement-2OWOQLHC.js +0 -3
- package/dist/chunks/hosted-harness-runtime-TGFMAV7W.js +0 -2
- package/dist/chunks/hosted-profile-candidate-WQSI6HZO.js +0 -3
- package/dist/chunks/hosted-profile-compiler-Z2A4TEA6.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-FKGARUEE.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-QOY2JKV4.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-WVP6CALP.js +0 -3
- package/dist/chunks/human-review-TGHQKXFZ.js +0 -2
- package/dist/chunks/import-4UE5XNSG.js +0 -4
- package/dist/chunks/learning-R2XBMMEM.js +0 -2
- package/dist/chunks/opchat-WULL6CUP.js +0 -3
- package/dist/chunks/organizations-I37HISVX.js +0 -2
- package/dist/chunks/project-agent-T6XKC54C.js +0 -2
- package/dist/chunks/sandbox-command-STB47FRY.js +0 -2
- package/dist/chunks/src-T3KWWCAH.js +0 -322
- package/dist/chunks/taskset-RNYDR4GS.js +0 -2
- package/dist/chunks/training-M6FAPRSJ.js +0 -2
- package/dist/chunks/workspaces-MFZ3OO6O.js +0 -2
- package/dist/web/assets/App-CLFfy_Av.js +0 -154
- package/dist/web/assets/MainPane-D3ojiN-p.js +0 -18
- package/dist/web/assets/MainPane-DOWsSew1.css +0 -1
- package/dist/web/assets/RightSidebarHomePanel-CKs3OwhD.js +0 -1
- package/dist/web/assets/SettingsView-BnANbPLS.css +0 -1
- package/dist/web/assets/SettingsView-T1vYDPjh.js +0 -5
- package/dist/web/assets/TrainingCreationPanel-D75K0yk5.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-CODMjVHY.js +0 -1
- package/dist/web/assets/WorkspaceGitDialogs-DrVtapQQ.js +0 -1
- package/dist/web/assets/index-B5re-RJy.css +0 -1
- package/dist/web/assets/useProviderSettings-Bv5B9eNk.js +0 -5
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ComposerCreateImproveStrip-CEgh4OtN.js","assets/index-C8aCGagb.js","assets/index-3iPNbbER.css","assets/App-s-CJswyt.js","assets/App-CaRMZoxo.css","assets/MarkdownText-BR4V6lNO.js","assets/play-C469pVZq.js","assets/WorkspaceDiffPanel-BAFo0CPN.js","assets/training-model-data-CKOkpBBL.js","assets/folder-open-sYgceW_f.js","assets/info-DLdbiUrh.js","assets/minimize-2-CqcI4zcM.js","assets/save-CtSjPydi.js","assets/clipboard-Dk158Qp4.js","assets/AppTerminalPanel-Dj1Y32oI.js","assets/RightSidebarHomePanel-CK0rP3WT.js","assets/WorkSidebarPanel-DSSikNFQ.js","assets/cloud-upload-k9eqBsHr.js","assets/arrow-up-right-C9aE8Mfz.js","assets/square-BuImvLhT.js","assets/WorkSidebarPanel-Bky_Rqcx.css","assets/NewExperienceSwitcher-mIy6FzCj.js","assets/CollaborationTabs-Bdr-HmOL.js","assets/CollaborationTabs-BfVlyLmR.css","assets/AppsView-BYE5EBDJ.js","assets/useProviderSettings-C4L4wDoh.js","assets/useProviderSettings-CmL_BaxP.css","assets/AppsView-BonAGiS8.css","assets/GetStartedView-CFHP0AaI.js","assets/AppDialog-t2Fx5tK3.js","assets/GetStartedView-yVmnGZPw.css","assets/LabsRoute-CyYF8-dw.js","assets/chunk-P3BRSSRD-DUGfuKA8.js","assets/LabsRoute-ACN76d2j.css","assets/training-eg6uFi3M.css","assets/ScheduledWorkPage-vOrYv8pp.js","assets/useLocalAgentSchedules-BNqAisfS.js","assets/OutputsPage-Cr1Spf7S.js","assets/ProjectsPage-CE6QUB-b.js","assets/ProjectsPage-kun3Ron2.css","assets/LabSkillSidebar-BxffN-pN.js","assets/LabSkillSidebar-CVxtS9pd.css","assets/BrowserSidebar-jhWi4rVm.js","assets/BrowserSidebar-lNqqj4Ip.css","assets/RightChatPanelStack-T6VRWuHo.js","assets/useSessionTurnCache-BHU2-Jmz.js","assets/NativeSkillSidebar-DU9IEgIO.js","assets/NativeSkillSidebar-T8KXjnUH.css","assets/TeamChatView-Bwrjr-vk.js","assets/TeamChatView-dL6B0qib.css","assets/git-dialogs-C-F47S10.css","assets/CommunityView-DPEeVKFn.js","assets/wifi-off-CpOAH62M.js","assets/CommunityView-CnZqWEjK.css","assets/TrainingDraftPanel-C9cRX5qf.js","assets/MainChatThread-DZpcFRFl.js","assets/TrainingCreationPanel-BXHfohNm.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as o,j as n,_ as Ae}from"./index-C8aCGagb.js";import{o as pr,P as hl,b as lr,s as st,_ as ml,n as _i,a as pl,c as gl,u as bl,d as La,e as Ve,H as oa,f as la,g as Ne,h as Oa,i as xl,j as vl,k as yl,l as jl,m as cr,A as Li,p as va,q as Ms,r as Oi,C as Bt,t as kr,v as gr,w as Xn,x as Dt,y as ca,F as ua,z as wl,B as kl,D as da,E as Cl,O as Sl,G as ya,I as js,J as Rl,K as yt,L as ja,M as El,N as Ml,Q as Nl,R as Al,S as fa,T as zi,U as Il,V as Be,X as Ns,W as Fi,Y as Tl,Z as za,$ as Fa,a0 as wa,a1 as $l,a2 as Pl,a3 as _l,a4 as Qt,a5 as ka,a6 as Qn,a7 as Da,a8 as Di,a9 as Ll,aa as Ol,ab as zl,ac as Fl,ad as Dl,ae as Bl,af as Ul,ag as ql,ah as Hl,ai as Vl,aj as Bi,ak as Wl,al as Gl,am as Kl,an as Ql,ao as Xl,ap as Jl,aq as Yl,ar as Zl,as as Xt,at as ha,au as ec,av as tc,aw as ur,ax as nc,ay as Ui,az as sc,aA as rc,aB as ac,aC as qi,aD as ic,aE as oc,aF as lc,aG as cc,aH as uc,aI as dc,aJ as Hi,aK as fc,aL as hc,aM as Ba,aN as mc,aO as pc,aP as gc,aQ as Ua,aR as bc,aS as xc,aT as vc,aU as yc,aV as jc,aW as wc,aX as kc,aY as Cc,aZ as Sc,a_ as Rc,a$ as Ec,b0 as Mc,b1 as Nc,b2 as Ac,b3 as Ic,b4 as Tc}from"./App-s-CJswyt.js";import{T as $c,W as br,P as Pc,F as _c,C as Lc,A as Oc,r as Ca,i as xr,h as zc,n as ma,a as Vi,b as Wi,c as Gi,d as Fc,e as Dc,M as Ki,I as Qi,u as Xi,f as Bc,g as Uc,j as qc}from"./MarkdownText-BR4V6lNO.js";import{C as Hc}from"./cloud-upload-k9eqBsHr.js";import{A as Cr}from"./arrow-up-right-C9aE8Mfz.js";import{S as Ji}from"./square-BuImvLhT.js";import{F as Yi}from"./folder-open-sYgceW_f.js";import{P as Vc}from"./play-C469pVZq.js";function Zi(e){return e?(e.match(/\r\n|\r|\n/g)?.length??0)+(/(?:\r\n|\r|\n)$/.test(e)?0:1):0}const Xr=pr({id:st().min(1),revision:_i().int().positive(),scope:hl,title:st().min(1),state:ml(["waiting","ready","dispatching","admitted","completed","failed","cancelled","blocked","attention"]),reason:st().nullable(),cancellationRequested:lr(),waitingForDesktop:lr(),prerequisite:pr({sessionId:st().min(1).nullable(),title:st().min(1),turnId:st().nullable()}).strict(),successor:pr({operationId:st().min(1),sessionId:st().nullable(),providerId:st().min(1),modelId:st().nullable(),workspaceLabel:st().min(1)}).strict(),successCriteria:st().min(1),canEdit:lr(),canCancel:lr()}).strict(),qa=pr({handoffId:st().min(1),revision:_i().int().positive(),successor:bl([La.options[0],La.options[1]]),successCriteria:st().trim().min(1).max(4e3),targets:gl.array().max(100),nextCursor:pl.nullable()}).strict();const Wc=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Gc=Ve("arrow-down",Wc);const Kc=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Qc=Ve("arrow-up",Kc);const Xc=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]],Ha=Ve("at-sign",Xc);const Jc=[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Yc=Ve("badge-check",Jc);const Zc=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],eu=Ve("ban",Zc);const tu=[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]],nu=Ve("circle-dashed",tu);const su=[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]],ru=Ve("cloud-download",su);const au=[["path",{d:"M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343",key:"1vfytu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0",key:"1etmh7"}]],iu=Ve("file-headphone",au);const ou=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]],lu=Ve("file-spreadsheet",ou);const cu=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z",key:"1tzo1f"}]],uu=Ve("file-play",cu);const du=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],Ar=Ve("image",du);const fu=[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]],eo=Ve("lightbulb",fu);const hu=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],mu=Ve("mic",hu);const pu=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Va=Ve("paperclip",pu);const gu=[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]],bu=Ve("presentation",gu);const xu=[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]],vu=Ve("reply",xu);const yu=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],ju=Ve("circle-x",yu);function wu(e){const t=Nu(e);if(t)return t;const s=Mu();let r="";const a=[],i=[],l=[];for(const p of e){if(!r&&p.label&&(r=p.label),qu(i,p.label),Hu(l,p),p.kind==="command"&&p.content){Au(s,Tu(p.content));continue}Iu(s,p)||Uu(a,p.label)}const c=[...Pu(s),...i,...l],u=s.runCount>0?Du(s.runCount):"",f=Ku(a),x=(e.length===1&&e[0]?.kind==="command"&&e[0].content&&i.length===0&&l.length===0?to(e[0].content,"completed"):null)||Bu(c,u)||f||r||"Ran command";return{kind:Fu(s,u),text:x}}function to(e,t="completed"){const s=ao(e);if(s.length===0)return null;const r=t==="running"||t==="pending";if(s.some(io))return r?"Running shell command":"Ran shell command";const a=no(s);if(!a)return null;const[i,l]=a;if(i==="cat"){const u=Jt(l);return u.length===0?r?"Reading standard input":"Read standard input":`${r?"Reading":"Read"} ${bn(u)}`}if(i==="sed")return Eu(Xu([i,...l]),r);if(i==="rg")return Ju([i,...l],r);if(["grep","ag"].includes(i)||i==="git"&&l[0]==="grep")return r?"Searching code":"Searched code";if(["ls","find","tree","fd"].includes(i)){const u=i==="ls"?Jt(l):[];return u.length===0?r?"Listing files":"Listed files":`${r?"Listing":"Listed"} files in ${bn(u)}`}if(["head","tail","nl","wc","awk","jq"].includes(i)){const u=ro(i,l);return u.length===0?r?`Running ${i}`:`Ran ${i}`:`${r?"Reading":"Read"} ${bn(u)}`}if(i==="apply_patch")return r?"Editing files":"Edited files";if(i==="write_stdin")return r?"Continuing command":"Continued command";if(i==="wait")return r?"Waiting for command":"Waited for command";if(i==="js")return r?"Running JavaScript":"Ran JavaScript";if(i==="exec_command")return r?"Running shell command":"Ran shell command";if(i==="read_file")return r?"Reading file":"Read file";if(i==="view_image")return r?"Viewing image":"Viewed image";if(i==="update_plan")return r?"Updating plan":"Updated plan";if(i==="tool_search")return r?"Searching tools":"Searched tools";if(i==="rm")return r?"Removing files":"Removed files";if(i==="mv")return r?"Moving files":"Moved files";if(i==="cp")return r?"Copying files":"Copied files";if(i==="mkdir")return r?"Creating directories":"Created directories";if(i==="touch")return r?"Creating files":"Created files";if(i==="git")return ku(l,r);if(Ru(i))return Cu(i,l,r);if(so(i))return Su(i,r);if(["curl","wget"].includes(i))return r?"Fetching URL":"Fetched URL";if(["node","tsx","python","python3","bash","sh","zsh"].includes(i))return r?`Running ${ws(i)} script`:`Ran ${ws(i)} script`;const c=ws(i);return r?`Running ${c} command`:`Ran ${c} command`}function ku(e,t){const s=e.find(r=>!r.startsWith("-"))??"";return s==="status"?t?"Checking Git status":"Checked Git status":s==="diff"?t?"Reviewing changes":"Reviewed changes":s==="show"||s==="log"?t?"Reading Git history":"Read Git history":s==="add"?t?"Staging changes":"Staged changes":s==="commit"?t?"Committing changes":"Committed changes":s==="push"?t?"Pushing changes":"Pushed changes":s==="pull"||s==="fetch"?t?"Fetching changes":"Fetched changes":s==="checkout"||s==="switch"?t?"Switching branches":"Switched branches":s==="branch"?t?"Listing branches":"Listed branches":t?"Running Git command":"Ran Git command"}function Cu(e,t,s){const r=t.join(" ").toLowerCase();return/\b(typecheck|tsc)\b/.test(r)?s?"Checking types":"Checked types":/\b(lint|eslint|prettier)\b/.test(r)?s?"Running lint":"Ran lint":/\b(test|vitest|jest|playwright)\b/.test(r)?s?"Running tests":"Ran tests":/\bbuild\b/.test(r)?s?"Building project":"Built project":/\b(install|add)\b/.test(r)?s?"Installing dependencies":"Installed dependencies":s?`Running ${ws(e)} command`:`Ran ${ws(e)} command`}function Su(e,t){return e==="tsc"?t?"Checking types":"Checked types":e==="eslint"||e==="prettier"?t?"Running lint":"Ran lint":t?"Running tests":"Ran tests"}function Ru(e){return["bun","npm","pnpm","yarn"].includes(e)}function ws(e){const t=e.split("/").filter(Boolean).at(-1)??e;return t==="python"||t==="python3"?"Python":t==="node"||t==="tsx"?"Node":["bash","sh","zsh"].includes(t)?"shell":t==="git"?"Git":t}function Eu(e,t){return!e||!t?e:e.startsWith("Read ")?`Reading ${e.slice(5)}`:e.startsWith("Run ")?`Running ${e.slice(4)}`:e}function Mu(){return{approvals:0,controlCount:0,editCount:0,goalContextUpdates:0,imageCount:0,listedFiles:0,readFileCount:0,readFiles:new Set,reasoningCount:0,runCount:0,searchedCode:0,subagentStatuses:new Map,testsOrChecks:0,turnInterruptions:0,webSearches:0}}function Nu(e){if(e.length===0)return null;const t=e.map(i=>i.subagentMessage).filter(i=>!!i);if(t.length===0||t.length!==e.length)return null;if(t.length===1){const i=t[0];return{kind:"subagent",text:`${i.direction==="received"?"Child Message Received":"Child Message Sent"}: ${i.summary}`}}const s=t.filter(i=>i.direction==="received").length,r=t.length-s,a=[s>0?Wa(s,"received"):null,r>0?Wa(r,"sent"):null].filter(i=>!!i);return{kind:"subagent",text:Sr(Sa(a))}}function Wa(e,t){return e===1?`child message ${t}`:`${e} child messages ${t}`}function Au(e,t){e.editCount+=t.editCount??0,e.listedFiles+=t.listedFiles??0,e.searchedCode+=t.searchedCode??0,e.testsOrChecks+=t.testsOrChecks??0;for(const s of t.readFiles??[])e.readFiles.add(s);t.readFiles?.length&&(e.readFileCount+=t.readFiles.length),t.countedAsRun&&(e.runCount+=1)}function Iu(e,t){const s=t.label.toLowerCase();if(t.controlKind)return e.controlCount+=1,t.controlKind==="goal_context"&&(e.goalContextUpdates+=1),t.controlKind==="turn_aborted"&&(e.turnInterruptions+=1),!0;if(s==="reasoning")return e.reasoningCount+=1,!0;if(s.includes("approval"))return e.approvals+=1,!0;if(s.includes("subagent"))return Ou(e,t,r(s)),!0;if(s.includes("image"))return e.imageCount+=1,!0;function r(a){return a.includes("failed")?"failed":a.includes("blocked")?"blocked":a.includes("stale")?"stale":a.includes("needs revision")?"needs revision":a.includes("archived")?"archived":a.includes("accepted")?"accepted":a.includes("submitted")?"submitted":a.includes("completed")?"completed":"running"}return s.includes("web")?(e.webSearches+=1,!0):/\b(searching|searched)\b/.test(s)?(e.searchedCode+=1,!0):/\b(listing|listed)\b/.test(s)?(e.listedFiles+=1,!0):/\b(reading|read)\b/.test(s)?(e.readFileCount+=1,!0):/\b(editing|edited|writing|wrote|deleting|deleted|moving|moved|uploading|uploaded|creating|created)\b/.test(s)?(e.editCount+=1,!0):!1}function Tu(e){const t=ao(e);if(t.length===0||t.some(io))return{countedAsRun:!0};const s=no(t);if(!s)return{countedAsRun:!0};const[r,a]=s;if(r==="apply_patch")return{countedAsRun:!1,editCount:1};if(["rm","mv","cp","mkdir","touch"].includes(r))return{countedAsRun:!1,editCount:1};if($u(r,a)||so(r))return{countedAsRun:!1,testsOrChecks:1};if(r==="rg")return a.includes("--files")?{countedAsRun:!1,listedFiles:1}:{countedAsRun:!1,searchedCode:1};if(["grep","ag"].includes(r))return{countedAsRun:!1,searchedCode:1};if(r==="git"&&a[0]==="grep")return{countedAsRun:!1,searchedCode:1};if(["ls","find","tree","fd"].includes(r))return{countedAsRun:!1,listedFiles:1};const i=ro(r,a);return i.length>0?{countedAsRun:!1,readFiles:i}:{countedAsRun:!0}}function no(e){let t=0;for(;/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(e[t]??"");)t+=1;const s=e[t];if(!s)return null;if(s==="bunx"||s==="npx"){const r=e[t+1];return r?[r,e.slice(t+2)]:[s,[]]}return[s,e.slice(t+1)]}function $u(e,t){if(!["bun","npm","pnpm","yarn"].includes(e))return!1;const s=t.join(" ").toLowerCase();return/\b(test|typecheck|check|lint|vitest|jest|playwright|tsc)\b/.test(s)}function so(e){return["eslint","jest","playwright","prettier","tsc","vitest"].includes(e)}function ro(e,t){if(e==="cat"||e==="nl"||e==="head"||e==="tail"||e==="wc")return Jr(Jt(t));if(e==="sed"){const s=t.findIndex(r=>r!=="-n"&&!r.startsWith("--"));return Jr(s>=0?Jt(t.slice(s+1)):[])}return e==="awk"||e==="jq"?Jr(Jt(t.slice(1))):[]}function Jr(e){return e.filter(t=>!(!t||t==="."||t==="-"||/^\d+$/.test(t)))}function Pu(e){const t=[],s=Lu(e);s&&t.push(s),e.editCount>0&&t.push("made edits");const r=e.readFiles.size||e.readFileCount;return r>0&&t.push(Ka("read",r,"file")),e.searchedCode>0&&t.push("searched code"),e.listedFiles>0&&t.push("listed files"),e.testsOrChecks>0&&t.push(e.testsOrChecks===1?"ran checks":`ran ${e.testsOrChecks} checks`),e.webSearches>0&&t.push("searched web"),e.imageCount>0&&t.push(Ka("read",e.imageCount,"image")),e.reasoningCount>0&&t.length===0&&t.push("thought through the request"),e.approvals>0&&t.push("requested approval"),t.push(..._u(e)),t}function _u(e){const t=[];e.goalContextUpdates===1&&t.push("goal context updated"),e.goalContextUpdates>1&&t.push(`${e.goalContextUpdates} goal context updates`),e.turnInterruptions===1&&t.push("turn interrupted"),e.turnInterruptions>1&&t.push(`${e.turnInterruptions} turns interrupted`);const s=e.controlCount-e.goalContextUpdates-e.turnInterruptions;return s===1&&t.push("context updated"),s>1&&t.push(`${s} context updates`),t}function Lu(e){const t=zu(e);return t.failed>0?zt(t.failed,"failed"):t.blocked>0?zt(t.blocked,"blocked"):t.stale>0?zt(t.stale,"stale"):t["needs revision"]>0?zt(t["needs revision"],"needs revision"):t.submitted>0?zt(t.submitted,"submitted"):t.running>0&&t.completed===0&&t.accepted===0?zt(t.running,"running"):t.accepted>0?zt(t.accepted,"accepted"):t.completed>0?zt(t.completed,"completed"):t.archived>0?zt(t.archived,"archived"):null}function Ou(e,t,s){const r=t.openSession?.sessionId??(t.content.trim()||t.id),a=e.subagentStatuses.get(r);(!a||Ga(s)>Ga(a))&&e.subagentStatuses.set(r,s)}function zu(e){const t={accepted:0,archived:0,blocked:0,completed:0,failed:0,"needs revision":0,running:0,stale:0,submitted:0};for(const s of e.subagentStatuses.values())t[s]+=1;return t}function Ga(e){return e==="running"?1:e==="submitted"?2:e==="accepted"||e==="completed"||e==="archived"?3:e==="needs revision"?4:e==="blocked"?5:e==="stale"?6:7}function zt(e,t){return e===1?`subagent ${t}`:`${e} subagents ${t}`}function Fu(e,t){const s=[];return e.subagentStatuses.size>0&&s.push("subagent"),e.editCount>0&&s.push("edit"),(e.readFiles.size>0||e.readFileCount>0)&&s.push("read"),e.searchedCode>0&&s.push("search"),e.listedFiles>0&&s.push("list"),e.webSearches>0&&s.push("web"),e.imageCount>0&&s.push("image"),e.reasoningCount>0&&s.push("reasoning"),e.approvals>0&&s.push("approval"),e.controlCount>0&&s.push("control"),(e.testsOrChecks>0||t)&&s.push("command"),s[0]??"command"}function Du(e){return e===1?"ran a command":`ran ${e} commands`}function Ka(e,t,s){return t===1?`${e} a ${s}`:`${e} ${t} ${s}s`}function Bu(e,t){return e.length===0?t?Sr(t):"":Sr(Sa(t?[...e,t]:e))}function Uu(e,t){const s=t.trim();s&&(e.includes(s)||e.push(s))}function qu(e,t){const s=Vu(t);!s||e.includes(s)||e.push(s)}function Hu(e,t){const s=t.receipt;if(!s)return;const r=`${s.status} receipt ${Gu(s.id)} ${Wu(s.totalUsd)}`;e.includes(r)||e.push(r)}function Vu(e){switch(e.trim().toLowerCase()){case"applied locally":return"applied locally";case"apply locally failed":return"apply locally failed";case"exported sandbox patch":return"exported patch";case"patch export failed":return"patch export failed";case"preserved sandbox source":return"preserved sandbox source";case"preserve failed":return"preserve failed";case"stopped sandbox":return"stopped sandbox";case"sandbox stop failed":return"sandbox stop failed";default:return null}}function Wu(e){const t=e.trim();return t.startsWith("$")?t:`$${t}`}function Gu(e){const t=e.trim();return t.length<=14?t:`${t.slice(0,6)}...${t.slice(-4)}`}function Ku(e){return e.length===0?"":Sr(Sa(e.map(Qu)))}function Qu(e){return e&&`${e[0].toLowerCase()}${e.slice(1)}`}function Sa(e){return e.length===0?"":e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function Sr(e){return e&&`${e[0].toUpperCase()}${e.slice(1)}`}function Xu(e){const t=e.findIndex((i,l)=>l>0&&i!=="-n"&&!i.startsWith("--")),s=t>=0?e[t]??"":"",r=t>=0?Jt(e.slice(t+1)):[],a=/^(\d+)(?:,(\d+))?p$/.exec(s);if(a){const i=a[1],l=a[2],c=l?`lines ${i}-${l}`:`line ${i}`;return r.length>0?`Read ${c} of ${bn(r)}`:`Read ${c}`}return r.length>0?`Read ${bn(r)} with sed`:"Run sed"}function Ju(e,t=!1){const s=e.slice(1);if(s.includes("--files")){const l=Jt(s.filter(c=>c!=="--files"));return l.length>0?`${t?"Listing":"Listed"} files matching ${bn(l)}`:t?"Listing files":"Listed files"}const r=Jt(s),a=r[0],i=r.slice(1);return a?i.length>0?`${t?"Searching":"Searched"} for ${Qa(a)} in ${bn(i)}`:`${t?"Searching":"Searched"} for ${Qa(a)}`:t?"Searching files":"Searched files"}function ao(e){return(e.match(/"([^"\\]|\\.)*"|'[^']*'|[^\s]+/g)??[]).map(s=>Yu(s)).filter(Boolean)}function Yu(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function io(e){return["|","&&","||",";",">",">>","<","(",")"].includes(e)}function Jt(e){const t=[];for(let s=0;s<e.length;s+=1){const r=e[s];if(!r.startsWith("-")){t.push(r);continue}Zu(r)&&s+1<e.length&&(s+=1)}return t}function Zu(e){return["-e","-f","-g","--glob","--type","-t","--context","-C","-A","-B","-m","-n","-c"].includes(e)}function bn(e){return e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e[0]} and ${e.length-1} more`}function Qa(e){return`"${e}"`}const oo=o.createContext(null),Xa="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; font-src data:; connect-src 'none'; frame-src 'none'; child-src 'none'; worker-src 'none'; object-src 'none'; base-uri 'none'; form-action 'none'",bs=e=>JSON.stringify(e).replace(/</g,"\\u003c").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),Ja=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<");function ed(e,t,s=oa){const r=`(() => {
|
|
3
|
+
const style = document.getElementById('openpond-theme');
|
|
4
|
+
const keys = ${bs(Object.keys(oa))};
|
|
5
|
+
function theme(values) { if (!values || typeof values !== 'object') return;
|
|
6
|
+
style.textContent = ':root{' + keys.map(k => k+':'+String(values[k]||'').replace(/[;{}<>]/g,'')+';').join('') + '}'; }
|
|
7
|
+
theme(${bs(s)});
|
|
8
|
+
addEventListener('message', e => { if(e.source === parent && e.data?.type === 'openpond-theme') theme(e.data.theme); });
|
|
9
|
+
const send = data => parent.postMessage({ ...data, identity: ${bs(t)} }, '*');
|
|
10
|
+
let interactionPending=false;
|
|
11
|
+
for(const type of ['wheel','touchmove','pointerdown','keydown']) addEventListener(type,e=>{
|
|
12
|
+
if(!e.isTrusted || interactionPending)return; interactionPending=true;
|
|
13
|
+
requestAnimationFrame(()=>{interactionPending=false;send({type:'openpond-interaction'});});
|
|
14
|
+
},{passive:true});
|
|
15
|
+
let queued = false, previous = 0, loaded = false, reportedReady = false;
|
|
16
|
+
// Initial sizing must work when the frame top is clipped: Chromium may
|
|
17
|
+
// suspend animation frames there before its child has expanded.
|
|
18
|
+
function measure() { if(queued)return; queued=true; queueMicrotask(() => { queued=false;
|
|
19
|
+
const body = document.body; if(!body)return;
|
|
20
|
+
const height = Math.max(80, Math.ceil(Math.max(body.getBoundingClientRect().height, body.scrollHeight)));
|
|
21
|
+
if(height!==previous || (loaded && !reportedReady)) { previous=height; reportedReady=loaded; send({type:'openpond-size',height,ready:loaded}); }
|
|
22
|
+
}); }
|
|
23
|
+
const observer = new ResizeObserver(measure);
|
|
24
|
+
addEventListener('DOMContentLoaded', () => { observer.observe(document.body); measure(); });
|
|
25
|
+
addEventListener('load', () => { void document.fonts.ready.then(() => { loaded=true; measure(); }); });
|
|
26
|
+
let count=0;
|
|
27
|
+
function log(level,args){ if(count++<40)send({type:'openpond-console',level,text:args.map(v=>{try{return typeof v==='string'?v:JSON.stringify(v)}catch{return String(v)}}).join(' ').slice(0,2000)}); }
|
|
28
|
+
for(const level of ['log','warn','error']) { const original=console[level]; console[level]=(...args)=>{log(level,args);original.apply(console,args)}; }
|
|
29
|
+
addEventListener('error', e => log('error',[e.message]));
|
|
30
|
+
addEventListener('unhandledrejection', e => log('error',[String(e.reason)]));
|
|
31
|
+
addEventListener('securitypolicyviolation', e => log('error',['Blocked resource: '+e.violatedDirective+' ('+e.blockedURI+')']));
|
|
32
|
+
// Links are informational inside a self-contained visual, never navigation.
|
|
33
|
+
document.addEventListener('click', e => { if(e.composedPath().some(n=>n?.tagName==='A'))e.preventDefault(); }, true);
|
|
34
|
+
})();`,a=`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="${Ja(Xa)}"><meta name="viewport" content="width=device-width,initial-scale=1"><style id="openpond-theme"></style><style>html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font-web)}body{display:flow-root;overflow-wrap:anywhere}*{box-sizing:border-box}img,svg,canvas{max-width:100%}button,input,select{font:inherit}button{cursor:pointer}html{scrollbar-width:none}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}</style><script>${r}<\/script></head><body>${e}</body></html>`;return`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="${Ja(Xa)}"><meta name="viewport" content="width=device-width,initial-scale=1"><style>html,body{margin:0;background:transparent}iframe{display:block;border:0;width:100%;height:80px;color-scheme:dark}</style></head><body><iframe title="Interactive visual" sandbox="allow-scripts" referrerpolicy="no-referrer" allow="camera 'none'; microphone 'none'; geolocation 'none'; clipboard-read 'none'; clipboard-write 'none'"></iframe><script>(()=>{
|
|
35
|
+
const frame=document.querySelector('iframe'); const identity=${bs(t)};
|
|
36
|
+
const state=window.__openpondVisual={height:80,console:[],ready:false};
|
|
37
|
+
addEventListener('message', e=>{
|
|
38
|
+
const d=e.data;if(!d||typeof d!=='object')return;
|
|
39
|
+
if(e.source===parent && parent!==window && d.type==='openpond-theme' && d.identity===identity){frame.contentWindow.postMessage({type:'openpond-theme',theme:d.theme},'*');return;}
|
|
40
|
+
if(e.source!==frame.contentWindow || d.identity!==identity)return;
|
|
41
|
+
if(d.type==='openpond-interaction' && parent!==window)parent.postMessage({type:'openpond-visual-interaction',identity},'*');
|
|
42
|
+
if(d.type==='openpond-console' && state.console.length<40 && ['log','warn','error'].includes(d.level) && typeof d.text==='string')state.console.push({level:d.level,text:d.text.slice(0,2000)});
|
|
43
|
+
if(d.type==='openpond-size' && Number.isFinite(d.height)){
|
|
44
|
+
const height=Math.max(80,Math.min(${la},Math.ceil(d.height)));state.height=height;if(d.ready===true)state.ready=true;
|
|
45
|
+
frame.style.height=state.height+'px';if(parent!==window)parent.postMessage({type:'openpond-visual-size',identity,height:state.height,ready:state.ready},'*');
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
frame.srcdoc=${bs(a)};
|
|
49
|
+
})();<\/script></body></html>`}function Ya(){const e=getComputedStyle(document.querySelector(".app-shell")??document.documentElement);return Object.fromEntries(Object.entries(oa).map(([t,s])=>[t,e.getPropertyValue(t).trim()||s]))}function lo({visual:e,connection:t,expanded:s=!1}){const r=o.useContext(oo),a=o.useRef(null),i=o.useRef(null),[l,c]=o.useState(null),[u,f]=o.useState(null),[m,x]=o.useState(null),[p,h]=o.useState(0),[b,g]=o.useState(s),[v,y]=o.useState(s),[S,k]=o.useState(!1),[A,R]=o.useState(!1),[E,C]=o.useState(e.heights[0]?.height??320),$=`${e.publicationId}:${s?"expanded":"inline"}:${p}`,F=`/v1/sessions/${encodeURIComponent(e.sessionId)}/visuals/${e.publicationId}`;o.useEffect(()=>{const z=a.current;if(!z||s)return;const V=new IntersectionObserver(([W])=>{const le=!!W?.isIntersecting||document.activeElement===i.current;g(le),le||R(!1),le&&y(!0)},{rootMargin:"160px"});return V.observe(z),()=>V.disconnect()},[s]),o.useEffect(()=>{if(!t||!v)return;const z=new AbortController;let V=null;return c(null),x(null),f(null),Promise.all([Ne(t,`${F}/document`,{signal:z.signal}),fetch(`${t.serverUrl}${F}/preview`,{headers:{Authorization:`Bearer ${t.token}`},signal:z.signal}).then(W=>{if(!W.ok)throw new Error("Preview unavailable");return W.blob()})]).then(([W,le])=>{z.signal.aborted||(c(W.html),V=URL.createObjectURL(le),f(V))}).catch(W=>{z.signal.aborted||x(W instanceof Error?W.message:"Visual unavailable")}),()=>{z.abort(),V&&URL.revokeObjectURL(V)}},[t,F,p,v]);const U=o.useMemo(()=>l===null?void 0:ed(l,$,Ya()),[l,$]);o.useEffect(()=>{if(R(!1),!U||!(b||s)||S)return;const z=setTimeout(()=>x("The visual did not finish loading."),8e3),V=ce=>{const q=ce.data;if(!(ce.source!==i.current?.contentWindow||q?.identity!==$)){if(q.type==="openpond-visual-interaction"){a.current?.dispatchEvent(new Event("openpond-visual-interaction",{bubbles:!0}));return}q.type!=="openpond-visual-size"||!Number.isFinite(q.height)||(q.ready===!0&&(clearTimeout(z),R(!0)),C(Math.max(80,Math.min(la,Math.ceil(q.height)))))}},W=()=>i.current?.contentWindow?.postMessage({type:"openpond-theme",identity:$,theme:Ya()},"*");window.addEventListener("message",V);const le=new MutationObserver(W),be=[document.documentElement,document.querySelector(".app-shell")].filter(ce=>ce!==null);for(const ce of be)le.observe(ce,{attributes:!0,attributeFilter:["class","style","data-theme"]});const re=matchMedia("(prefers-color-scheme: dark)");return re.addEventListener("change",W),()=>{clearTimeout(z),le.disconnect(),window.removeEventListener("message",V),re.removeEventListener("change",W)}},[$,U,s,S,b]);const H=()=>{if(l===null)return;const z=URL.createObjectURL(new Blob([l],{type:"text/html;charset=utf-8"})),V=document.createElement("a");V.href=z,V.download=`${e.output.title}.html`,V.click(),setTimeout(()=>URL.revokeObjectURL(z),1e3)};return n.jsxs("div",{className:"html-visual",ref:a,"data-visual-id":e.visualId,"data-publication-id":e.publicationId,children:[n.jsxs("div",{className:"html-visual-toolbar",children:[n.jsxs("span",{children:[e.output.title,e.output.revision>1?` · Revision ${e.output.revision}`:""]}),n.jsx("button",{type:"button",disabled:l===null,onClick:()=>k(z=>!z),"aria-pressed":S,children:S?"Visual":"Source"}),n.jsx("button",{type:"button",disabled:l===null,onClick:H,children:"Download"}),!s&&r?n.jsx("button",{type:"button",onClick:()=>r(e),children:"Expand"}):null]}),S?n.jsx("pre",{className:"html-visual-source",tabIndex:0,children:l}):n.jsx("div",{className:"html-visual-content",style:{minHeight:E},children:t?m?n.jsxs("p",{className:"html-visual-status",role:"status",children:[m," ",n.jsx("button",{type:"button",onClick:()=>h(z=>z+1),children:"Retry"})]}):n.jsxs(n.Fragment,{children:[U&&(b||s)?n.jsx("iframe",{ref:i,title:e.output.title,sandbox:"allow-scripts",referrerPolicy:"no-referrer",allow:"camera 'none'; microphone 'none'; geolocation 'none'; clipboard-read 'none'; clipboard-write 'none'",srcDoc:U,style:{height:E,opacity:A?1:0}}):null,A?null:n.jsx("div",{className:"html-visual-placeholder",children:u?n.jsx("button",{className:"html-visual-preview",type:"button",onClick:()=>g(!0),"aria-label":`Activate ${e.output.title}`,children:n.jsx("img",{src:u,alt:`Saved preview of ${e.output.title}`,style:{maxHeight:E}})}):n.jsx("p",{className:"html-visual-status",role:"status",children:"Loading visual…"})})]}):n.jsx("p",{className:"html-visual-status",children:"Connect to view this visual."})}),E===la&&!S?n.jsx("p",{className:"html-visual-status",children:"This visual reaches the height limit. Scroll inside it to see more."}):null]})}function td({visual:e,connection:t,expanded:s,onResizeStart:r,onClose:a,onToggleExpanded:i}){return n.jsxs("aside",{className:`workspace-diff-panel html-visual-panel ${s?"expanded":""}`,"aria-label":e.output.title,children:[s?null:n.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize visual panel",onPointerDown:r}),n.jsxs("div",{className:"html-visual-toolbar",children:[n.jsx("strong",{children:"Visual"}),n.jsx("button",{type:"button",onClick:i,children:s?"Restore panel":"Fill view"}),n.jsx("button",{type:"button",onClick:a,children:"Close"})]}),n.jsx("div",{className:"html-visual-panel-body",children:n.jsx(lo,{visual:e,connection:t,expanded:!0},e.publicationId)})]})}const Za=Object.freeze({events:[],messages:[]});class nd{projection=Za;project(t){if(t===this.projection.events)return this.projection.messages;if(!ad(this.projection.events,t))return this.replace(t);const s=t.slice(this.projection.events.length);if(s.length===0)return this.projection={events:t,messages:this.projection.messages},this.projection.messages;const r=sd(this.projection.messages,s);if(r)return this.projection={events:t,messages:r},r;const a=rd(t,this.projection.events.length);if(!a)return this.replace(t);const i=t.slice(a.eventIndex),l=new Set(i.flatMap(f=>f.turnId?[f.turnId]:[])),u=[...this.projection.messages.filter(f=>!f.turnId||!l.has(f.turnId)),...Oa(i)];return this.projection={events:t,messages:u},u}reset(){this.projection=Za}snapshot(){return this.projection}replace(t){const s=Oa(t);return this.projection={events:t,messages:s},s}}function sd(e,t){if(t.length===0||e.length===0)return null;const s=e[e.length-1];if(s?.role!=="assistant"||s.createImproveRun||t.some(f=>f.name!=="assistant.delta"&&f.name!=="assistant.reasoning.delta"||f.turnId!==s.turnId||!f.output))return null;let r=s.content,a=s.reasoningContent,i=s.timestamp,l=!1,c=!1;for(const f of t)f.name==="assistant.delta"?(r=`${r??""}${f.output}`,l=!0):(a=`${a??""}${f.output}`,c=!0),i=f.timestamp;const u={...s,...l?{content:r}:{},...c?{reasoningContent:a}:{},timestamp:i};return[...e.slice(0,-1),u]}function rd(e,t){const s=e[t];if(!s?.turnId)return null;const r=e.findIndex(a=>a.turnId===s.turnId);return r<0?null:{eventIndex:r}}function ad(e,t){return e.length===0?!0:e.length>=t.length?!1:e[0]===t[0]&&e[e.length-1]===t[e.length-1]}function id(e,t){const s=o.useCallback(i=>t?e.subscribeSession(t,i):()=>{},[t,e]),r=o.useCallback(()=>e.getSessionSnapshot(t),[t,e]),a=o.useSyncExternalStore(s,r,r);return o.useEffect(()=>{if(t)return e.retainSession(t,!0),()=>e.retainSession(t,!1)},[t,e]),a}function od(e){async function t(s,r){const a=(r??e.getPrompt()).trim();if(!e.running||!a)return!1;if(e.hasFilesOrActions)return e.showToast("Steering supports a plain-text instruction. Remove files or actions before sending it.","info"),!1;if(s==="queued"&&!e.inbox.enabled)return e.stageLocal(a),e.clear(),!0;if(!e.begin(e.scope))return!1;e.setError(null);try{const i=e.inbox.enabled?s==="steer"?await e.inbox.steer(a):await e.inbox.queue({prompt:a,modelRef:{providerId:e.provider,modelId:e.model},...e.provider==="codex"?xl(e.codexPermissionMode):{approvalPolicy:"on-request",sandbox:"workspace-write"},codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort}):await e.onSubmit([],null,null,{preservePrompt:!0,promptOverride:a,turnMetadata:{interactionKind:"steer"}});return i&&(!e.getCurrentSubmissionScopeKey||e.getCurrentSubmissionScopeKey()===e.scope)&&e.clear(),i}catch(i){return e.setError(i instanceof Error?i.message:String(i)),!1}finally{e.finish(e.scope)}}return{stageCurrentSteerDraft:s=>t("queued",s),submitImmediateSteer:s=>t("steer",s)}}function ld(e,t){const s=e.slice(0,Math.max(0,Math.min(t,e.length))),r=/(?:^|\s)\$([a-zA-Z][a-zA-Z0-9_-]*)?$/.exec(s);if(!r||typeof r.index!="number")return null;const a=r[0].lastIndexOf("$");return a<0?null:{end:s.length,query:(r[1]??"").toLowerCase(),start:r.index+a}}function Ir(e){return`$${e.name}`}function cd(e,t,s){const r=Math.max(0,Math.min(t.start,e.length)),a=Math.max(r,Math.min(t.end,e.length)),i=e.slice(0,r),l=e.slice(a),c=i&&!/\s$/.test(i)?" ":"",u=l&&/^\s/.test(l)?"":" ",f=`${c}${Ir(s)}${u}`;return{cursor:i.length+f.length-(l?u.length:0),value:`${i}${f}${l}`}}function vr(e,t,s){const r=t.trim().toLowerCase(),a=e.filter(i=>i.enabled&&i.validationStatus==="valid").filter(i=>r?[i.name,i.description,i.path].join(" ").toLowerCase().includes(r):!0).sort((i,l)=>i.name.localeCompare(l.name));return typeof s=="number"&&Number.isFinite(s)?a.slice(0,Math.max(0,s)):a}function co(e,t,s){const r=t.trim().replace(/\s+/g," "),a=ud(s,e.length);if(!r)return{value:e,cursorIndex:a};const i=e.slice(0,a),l=e.slice(a),c=i&&!/\s$/.test(i)?" ":"",u=l&&!/^\s/.test(l)?" ":"",f=`${c}${r}${u}`;return{value:`${i}${f}${l}`,cursorIndex:i.length+c.length+r.length+u.length}}function ud(e,t){return Number.isFinite(e)?Math.max(0,Math.min(t,Math.round(e))):t}async function dd({appendToEnd:e=!1,currentScopeKey:t,cursorIndex:s,originScopeKey:r,prompt:a,setOriginDraft:i,submitFromOrigin:l,transcript:c}){const u=co(a,c,e?a.length:s);return i(u.value),t===r?"drafted":await l(u.value)?(i(""),"submitted"):"retained"}const Jn=new Map,yr=new Map,jr=new Map;function ei(e){for(const t of yr.get(e)??[])t()}function fd(e){return Jn.has(e)}function hd(e,t){const s=yr.get(e)??new Set;return s.add(t),yr.set(e,s),()=>{s.delete(t),s.size===0&&yr.delete(e)}}function uo(e){Jn.get(e)?.controller.abort()}function md(e,t){const s=jr.get(e)??new Set;return s.add(t),jr.set(e,s),()=>{s.delete(t),s.size===0&&jr.delete(e)}}function pd(e){const t=Jn.get(e);if(t)return t.submitRequested=!0,!0;for(const s of jr.get(e)??[])if(s())return!0;return!1}function gd(e,t,s={}){uo(e);const r=new AbortController,a={controller:r,promise:Promise.resolve(),submitRequested:s.submit??!1};return a.promise=Promise.resolve().then(()=>{if(!r.signal.aborted)return t(r.signal,()=>a.submitRequested)}).catch(i=>{if(!r.signal.aborted)throw i}).finally(()=>{Jn.get(e)===a&&(Jn.delete(e),ei(e))}),Jn.set(e,a),ei(e),a.promise}const bd=new Set(["task.inbox","task.input","task.wait","turn.started","turn.completed","turn.failed","turn.interrupted","approval.requested","approval.resolved"]);function ti(e){try{const t=JSON.parse(sessionStorage.getItem(e)??"null");return t&&typeof t.body=="string"&&typeof t.key=="string"&&(t.kind==="steer"||t.kind==="queued")?t:null}catch{return null}}function xd(e,t,s,r=!0){const a=vl(),i=yl(e),l=o.useMemo(()=>["task-inbox",i,t],[i,t]),c=!!(e&&t),u=jl({queryKey:l,enabled:c,staleTime:0,refetchOnWindowFocus:!0,refetchOnReconnect:!0,queryFn:()=>cr.taskInbox(e,t)}),[f,m]=o.useState(null),[x,p]=o.useState(null),h=`${i}:${t}`;let b;for(let S=s.length-1;S>=0;S--){const k=s[S];if(k.sessionId===t&&bd.has(k.name)){b=k.id;break}}const g=o.useCallback(async()=>{c&&await a.invalidateQueries({queryKey:l,exact:!0})},[c,a,l]);o.useEffect(()=>{g()},[g,b]),o.useEffect(()=>{const S=()=>{g()};return window.addEventListener("openpond-runtime-connected",S),()=>window.removeEventListener("openpond-runtime-connected",S)},[g]);async function v(S,k){if(!c)return!1;m({scope:h,id:S}),p(null);try{const A=await k();return await a.cancelQueries({queryKey:l,exact:!0}),a.setQueryData(l,R=>R&&{...R,inputs:[...R.inputs.filter(E=>E.id!==A.id),A].sort((E,C)=>E.sequence-C.sequence)}),g(),!0}catch(A){return p({scope:h,message:A instanceof Error?A.message:String(A)}),g(),!1}finally{m(A=>A?.scope===h&&A.id===S?null:A)}}async function y(S,k,A){if(!e||!t)return!1;if(S==="steer"&&!r)return p({scope:h,message:"This agent accepts follow-ups on its next turn. Queue your message instead."}),!1;const R=`openpond:task-input:${e.serverUrl}:${t}`,E=ti(R),C=E?.body===k&&E.kind===S,$=C?E:{body:k,kind:S,request:A,key:crypto.randomUUID(),turnId:S==="steer"?u.data?.activeTurnId??null:null};if(S==="steer"&&(!$.turnId||!C&&!u.data?.acceptingInput))return p({scope:h,message:"This turn is no longer accepting steering. Your text is still in the composer; send it as a follow-up or queue it."}),g(),!1;try{sessionStorage.setItem(R,JSON.stringify($))}catch{}const F=await v($.key,async()=>{let U;try{U=await(S==="steer"?cr.steerTurn(e,t,{prompt:k,expectedTurnId:$.turnId,idempotencyKey:$.key}):cr.queueTaskInput(e,t,$.request,$.key))}catch(H){if(H instanceof Li&&H.status>=400&&H.status<500)try{sessionStorage.removeItem(R)}catch{}throw H}if(U.state==="rejected"||U.state==="cancelled"){try{sessionStorage.removeItem(R)}catch{}throw new Error(U.error??"This input was cancelled. Review your text before sending again.")}return U});if(F)try{ti(R)?.key===$.key&&sessionStorage.removeItem(R)}catch{}return F}return{enabled:c,snapshot:u.data?{...u.data,acceptingInput:u.data.acceptingInput&&r}:null,busyId:f?.scope===h?f.id:null,error:x?.scope===h?x.message:u.error?.message??null,steer:S=>y("steer",S),queue:S=>y("queued",S.prompt,S),mutate:(S,k)=>v(S.id,()=>cr.updateTaskInput(e,t,S.id,k)),refresh:g}}function vd(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`steer-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,9)}`}function ks(e,t=120){const s=e.trim().replace(/\s+/g," ");return s.length<=t?s:`${s.slice(0,Math.max(0,t-1)).trimEnd()}...`}function fo(e,t={}){const s=t.now??new Date().toISOString();return{createdAt:s,id:t.id??vd(),prompt:e,updatedAt:s}}function ho(e,t){return e.filter(s=>s.id!==t)}function yd(e,t,s){const r=s?.trim();return e.flatMap(a=>a.id!==t?[a]:r?[fo(r)]:[])}function jd(e,t,s){return s?ho(e,t):e}function pa(e,t,s=[]){return e[t]??s}function wd(e,t,s,r=[]){const a=pa(e,t,r),i=s(a);return Object.is(a,i)?e:{...e,[t]:i}}function kd({inbox:e,onRestore:t}){const[s,r]=o.useState(null),a=e.snapshot,i=a?.inputs.filter(u=>u.senderKind==="user"&&u.kind==="queued"&&u.state==="pending")??[],l=a?.inputs.filter(u=>u.state!=="cancelled"&&!i.some(f=>f.id===u.id)).slice(-8)??[],c=s?.input.sessionId===a?.sessionId?s:null;return!i.length&&!l.length&&!a?.waits.length&&!e.error?null:n.jsxs("section",{className:"task-inbox-panel","aria-label":"Task inbox",children:[e.error&&n.jsxs("p",{className:"task-inbox-error",role:"alert",children:[e.error," ",n.jsx("button",{type:"button",onClick:()=>{e.refresh()},children:"Refresh"})]}),a?.waits.map(u=>n.jsxs("p",{className:"task-inbox-status",role:"status",children:[u.targetSessionId?`Waiting for task ${u.targetSessionId}`:"Waiting for a message",". Work resumes when an update arrives."]},u.id)),i.length>0&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"task-inbox-heading",children:[n.jsxs("span",{children:[i.length," queued"]}),a?.paused&&n.jsx("span",{children:"Paused — messages stay saved"}),!a?.activeTurnId&&n.jsx("button",{type:"button",disabled:!!e.busyId,onClick:()=>{e.mutate(i[0],{action:"resume",expectedRevision:i[0].revision})},children:"Resume queue"})]}),i.map(u=>n.jsx("div",{className:"task-inbox-item",children:c?.input.id===u.id?n.jsxs(n.Fragment,{children:[n.jsx("textarea",{"aria-label":"Edit queued message",value:c.body,maxLength:32e3,onChange:f=>r({...c,body:f.target.value})}),n.jsxs("div",{className:"task-inbox-actions",children:[n.jsx("button",{type:"button",disabled:!c.body.trim()||!!e.busyId,onClick:async()=>{await e.mutate(c.input,{action:"edit",expectedRevision:c.input.revision,body:c.body})&&r(null)},children:"Save changes"}),n.jsx("button",{type:"button",onClick:()=>r(null),children:"Cancel edit"})]})]}):n.jsxs(n.Fragment,{children:[n.jsx("p",{title:u.body,children:ks(u.body,220)}),n.jsxs("div",{className:"task-inbox-actions",children:[n.jsx("span",{children:u.turnId?"Starting":"Next turn"}),n.jsx("button",{type:"button",disabled:!!e.busyId||!!u.turnId||!a?.acceptingInput,onClick:()=>{e.mutate(u,{action:"steer",expectedRevision:u.revision,expectedTurnId:a.activeTurnId})},children:"Steer now"}),n.jsx("button",{type:"button",disabled:!!e.busyId||!!u.turnId,onClick:()=>r({input:u,body:u.body}),children:"Edit"}),n.jsx("button",{type:"button",disabled:!!e.busyId||!!u.turnId,onClick:()=>{e.mutate(u,{action:"cancel",expectedRevision:u.revision})},children:"Delete"})]})]})},u.id))]}),l.length>0&&n.jsxs("details",{className:"task-inbox-activity",open:l.some(u=>u.state==="rejected"||!!u.error),children:[n.jsxs("summary",{children:["Messages and delivery (",l.length,")"]}),l.map(u=>n.jsxs("div",{className:"task-inbox-item",children:[n.jsxs("div",{className:"task-inbox-heading",children:[n.jsx("span",{children:u.senderKind==="user"?"Your instruction":u.senderKind==="runtime"?"Task update":`Task ${u.senderSessionId}`}),n.jsx("span",{children:Cd(u)})]}),n.jsx("p",{children:ks(u.body,320)}),u.error&&n.jsx("p",{className:"task-inbox-error",children:u.error}),(u.state==="rejected"||u.error)&&u.senderKind==="user"&&n.jsx("button",{type:"button",onClick:()=>t(u.body),children:"Use as follow-up"})]},u.id)),n.jsx("p",{className:"task-inbox-status",children:"Delivery shows when input reached a model request. It does not confirm understanding or a reply."})]})]})}function Cd(e){return e.state==="pending"?"Saved · pending delivery":e.state==="included"?"Included":e.state==="resolved"?"Request finished":e.state==="rejected"?"Not delivered":"Cancelled"}const mo=new Set(["claude-code","opencode","grok-build"]);function Sd({currentModelOptions:e,currentProvider:t,providerOptions:s,providerSettings:r}){return s.flatMap(a=>{if(a.value==="setup-provider")return[];const i=a.value,l=i===t?e:va(i,r);if(i==="custom-openai-compatible"){const c=r?.modelCaches[i]?.models??[],u=new Map;for(const f of l){const m=c.find(p=>p.id===f.value)?.raw?.connectionProvider,x=typeof m=="string"?m:a.label;u.set(x,[...u.get(x)??[],f])}return[...u].map(([f,m])=>({key:`${i}:${f}`,provider:i,label:f,defaultModel:m[0].value,options:m}))}return l.length||Ms(i)||mo.has(i)?[{key:i,provider:i,label:a.label,defaultModel:Oi(i,r),options:l}]:[]})}function Rd(e){const t=e.options.find(s=>s.value===e.defaultModel)??e.options[0];return!t&&!(Ms(e.provider)||mo.has(e.provider))?null:{provider:e.provider,model:t?.value??""}}function po({busy:e,placement:t,state:s,onChange:r}){const[a,i]=o.useState(!1),[l,c]=o.useState(""),u=o.useRef(null),f=o.useMemo(()=>{const m=l.trim().toLowerCase();return m?s.options.filter(x=>`${x.label} ${x.detail}`.toLowerCase().includes(m)):s.options},[l,s.options]);return o.useEffect(()=>{if(!a){c("");return}function m(p){u.current?.contains(p.target)||i(!1)}function x(p){p.key==="Escape"&&i(!1)}return document.addEventListener("pointerdown",m),document.addEventListener("keydown",x),()=>{document.removeEventListener("pointerdown",m),document.removeEventListener("keydown",x)}},[a]),s.options.length<=1?null:n.jsxs("div",{className:`composer-profile-target ${t==="top"?"open-up":""}`,ref:u,children:[n.jsxs("button",{type:"button",className:`composer-profile-trigger ${a?"active":""}`,disabled:e,"aria-label":"Profile","aria-haspopup":"menu","aria-expanded":a,onClick:()=>i(m=>!m),children:[n.jsx("span",{children:s.label}),n.jsx(Bt,{size:14})]}),a?n.jsxs("div",{className:"composer-project-menu",role:"menu","aria-label":"Profile",children:[n.jsx("div",{className:"composer-menu-search",children:n.jsx("input",{autoFocus:!0,value:l,placeholder:"Search profiles",onChange:m=>c(m.currentTarget.value)})}),n.jsx("div",{className:"composer-menu-items",children:f.map(m=>{const x=m.value===s.value;return n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":x,className:`composer-project-option ${x?"selected":""}`,onClick:()=>{r(m.value),i(!1)},children:[n.jsxs("span",{children:[n.jsx("strong",{children:m.label}),n.jsx("small",{children:m.detail})]}),x?n.jsx(Dt,{size:14}):null]},m.value)})})]}):null]})}function Ed({busy:e,placement:t,state:s,onChange:r}){const[a,i]=o.useState(!1),[l,c]=o.useState(!1),[u,f]=o.useState(""),m=o.useRef(null),p=s.value==="none"?"Select Project":s.label,h=s.options.find(k=>k.value===s.value)?.kind??"local",b=o.useMemo(()=>{const k=u.trim().toLowerCase();return k?s.options.filter(A=>[A.label,A.detail].filter(Boolean).some(R=>R.toLowerCase().includes(k))):s.options},[u,s.options]),g=b.filter(k=>k.kind==="local"||k.kind==="cloud"),v=b.filter(k=>k.kind==="action"),y=b.filter(k=>k.kind==="none");o.useEffect(()=>{if(!a){f(""),c(!1);return}function k(R){m.current?.contains(R.target)||i(!1)}function A(R){R.key==="Escape"&&(l?c(!1):i(!1))}return document.addEventListener("pointerdown",k),document.addEventListener("keydown",A),()=>{document.removeEventListener("pointerdown",k),document.removeEventListener("keydown",A)}},[l,a]);function S(k){const A=k.value===s.value,R=e||k.disabled,E=k.kind==="action";return n.jsxs("button",{type:"button",role:E?"menuitem":"menuitemradio","aria-checked":E?void 0:A,className:`composer-project-option ${A?"selected":""} ${k.kind}`,disabled:R,onClick:()=>{r(k.value),c(!1),i(!1)},children:[n.jsx(ni,{kind:k.kind,size:14}),n.jsxs("span",{children:[n.jsx("strong",{children:k.label}),n.jsx("small",{children:k.detail})]}),A&&n.jsx(Dt,{size:14})]},k.value)}return n.jsxs("div",{className:`composer-project-target ${t==="top"?"open-up":""}`,ref:m,children:[n.jsxs("button",{type:"button",className:`composer-project-trigger ${a?"active":""} ${h}`,disabled:e,"aria-label":"Project","aria-haspopup":"menu","aria-expanded":a,onClick:()=>{i(k=>!k),c(!1)},children:[n.jsx(ni,{kind:h,size:14}),n.jsx("span",{children:p}),n.jsx(Bt,{size:14})]}),a&&n.jsxs("div",{className:"composer-project-menu",role:"menu","aria-label":"Project",children:[n.jsx("div",{className:"composer-menu-search",children:n.jsx("input",{autoFocus:!0,value:u,placeholder:"Search projects",onChange:k=>f(k.target.value)})}),n.jsx("div",{className:"composer-menu-items",children:b.length===0?n.jsx("div",{className:"composer-menu-empty",children:"No projects found"}):g.map(S)}),v.length>0||y.length>0?n.jsxs("div",{className:"composer-project-actions",children:[v.length>0?n.jsxs("button",{type:"button",role:"menuitem",className:`composer-project-option action composer-project-new-trigger ${l?"selected":""}`,"aria-haspopup":"menu","aria-expanded":l,onClick:()=>c(k=>!k),children:[n.jsx(kr,{size:14}),n.jsxs("span",{children:[n.jsx("strong",{children:"New"}),n.jsx("small",{children:"Create or add a project"})]}),n.jsx(gr,{size:14})]}):null,y.map(S)]}):null]}),a&&l?n.jsxs("div",{className:"composer-project-new-menu",role:"menu","aria-label":"New project",children:[n.jsxs("button",{type:"button",role:"menuitem",className:"composer-project-new-menu-back",onClick:()=>c(!1),children:[n.jsx(Xn,{size:14}),n.jsx("span",{children:"New project"})]}),v.map(S)]}):null]})}function ni({kind:e,size:t}){return e==="cloud"?n.jsx(ca,{size:t}):e==="action"?n.jsx(kr,{size:t}):n.jsx(ua,{size:t})}function Md({busy:e,placement:t,state:s,onChange:r}){const[a,i]=o.useState(!1),l=o.useRef(null),c=s.value==="cloud"?"cloud":s.value==="hybrid"?"hybrid":"local",u=`${s.label}: ${s.detail}`,f=s.uploadAction??null,m=f?si(f):null,x=f?f.disabled&&f.disabledReason?f.disabledReason:`${f.label}: ${m??f.detail}`:null,p=!!(f&&(e||s.busy||f.disabled));return o.useEffect(()=>{if(!a)return;function h(g){l.current?.contains(g.target)||i(!1)}function b(g){g.key==="Escape"&&i(!1)}return document.addEventListener("pointerdown",h),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",h),document.removeEventListener("keydown",b)}},[a]),n.jsxs("div",{className:`workspace-action-control ${t==="top"?"open-up":""}`,ref:l,children:[n.jsxs("button",{type:"button",className:`workspace-action-trigger ${c} ${a?"active":""}`,disabled:e,"data-tooltip":u,"aria-label":"Working in","aria-haspopup":"menu","aria-expanded":a,onClick:()=>i(h=>!h),children:[n.jsx(Yr,{value:s.value,size:14}),n.jsx("span",{className:"workspace-target-trigger-label",children:s.label}),n.jsx(Bt,{size:14})]}),f?n.jsx("button",{type:"button",className:`workspace-upload-trigger ${f.value}`,disabled:p,"data-tooltip":x??void 0,"aria-label":f.label,onClick:()=>{r(f.value),i(!1)},children:n.jsx(Yr,{value:f.value,size:14})}):null,a&&n.jsx("div",{className:"workspace-target-menu",role:"menu","aria-label":"Working in",children:s.options.map(h=>{const b=h.value===s.value,g=e||s.busy||h.disabled,y=si(h)??h.detail,S=h.disabled&&h.disabledReason?h.disabledReason:`${h.label}: ${y}`;return n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":b,className:`workspace-target-option ${b?"selected":""} ${h.value}`,disabled:g,"data-tooltip":S,onClick:()=>{r(h.value),i(!1)},children:[n.jsx(Yr,{value:h.value,size:14}),n.jsxs("span",{children:[n.jsx("strong",{children:h.label}),n.jsx("small",{children:y})]}),b&&n.jsx(Dt,{size:14})]},h.value)})})]})}function si(e){return e.disabled&&e.disabledReason?e.disabledReason:e.stateNote??null}function Yr({value:e,size:t}){return e==="cloud"?n.jsx(ca,{size:t}):e==="hybrid"?n.jsxs("span",{className:"workspace-target-hybrid-icon","aria-hidden":"true",children:[n.jsx(ua,{className:"hybrid-folder",size:t}),n.jsx(ca,{className:"hybrid-cloud",size:Math.max(7,Math.round(t*.62))})]}):e==="upload_cloud"?n.jsx(Hc,{size:t}):n.jsx(ua,{size:t})}function ri({disabled:e,model:t,modelGroups:s,placement:r,provider:a,providerSettings:i,reasoningEffort:l,showReasoning:c,onModelSelectionChange:u,onReasoningEffortChange:f}){const[m,x]=o.useState(!1),[p,h]=o.useState("root"),b=o.useRef(null),g=s.find(C=>C.provider===a&&C.options.some($=>$.value===t))??s.find(C=>C.provider===a),v=g?.options.find(C=>C.value===t),y=wl(a,t,i),S=kl(a,t,l,i),k=y.find(C=>C.value===S)??y[0],A=Nd(v?.label??t)||g?.label||a,R=c?`${A} ${k.shortLabel??k.label}`:A,E=c?"Model and reasoning":"Model";return o.useEffect(()=>{if(!m){h("root");return}function C(F){b.current?.contains(F.target)||x(!1)}function $(F){F.key==="Escape"&&x(!1)}return document.addEventListener("pointerdown",C),document.addEventListener("keydown",$),()=>{document.removeEventListener("pointerdown",C),document.removeEventListener("keydown",$)}},[m]),o.useEffect(()=>{!c&&p==="effort"&&h("root")},[p,c]),n.jsxs("div",{className:`codex-model-reasoning ${r==="top"?"open-up":""}`,"data-tooltip":E,ref:b,children:[n.jsxs("button",{type:"button",className:`codex-model-trigger ${m?"active":""}`,disabled:e,"aria-label":E,"aria-haspopup":"menu","aria-expanded":m,onClick:()=>x(C=>!C),children:[n.jsx("span",{children:R}),n.jsx(Bt,{size:14})]}),m&&n.jsx("div",{className:"codex-model-menu",role:"menu","aria-label":E,children:p==="root"?n.jsxs("div",{className:"codex-model-menu-root",children:[n.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>h("provider"),children:[n.jsx("span",{children:"Provider"}),n.jsx("span",{className:"codex-model-menu-value",children:g?.label??a}),n.jsx(gr,{size:14})]}),n.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>h("model"),children:[n.jsx("span",{children:"Model"}),n.jsx("span",{className:"codex-model-menu-value",children:da(v?.label??t)||"Agent default"}),n.jsx(gr,{size:14})]}),c?n.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>h("effort"),children:[n.jsx("span",{children:"Effort"}),n.jsx("span",{className:"codex-model-menu-value",children:k.shortLabel??k.label}),n.jsx(gr,{size:14})]}):null]}):p==="provider"?n.jsxs(n.Fragment,{children:[n.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Provider",onClick:()=>h("root"),children:[n.jsx(Xn,{size:14}),n.jsx("span",{children:"Provider"})]}),n.jsx("div",{className:"codex-model-menu-divider"}),n.jsx("div",{className:"codex-model-menu-options",children:s.map(C=>{const $=C.key===g?.key;return n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":$,className:$?"selected":"",onClick:()=>{const F=Rd(C);F&&(u(F.provider,F.model),h("root"))},children:[n.jsx("span",{children:C.label}),$?n.jsx(Dt,{size:14}):null]},C.key)})})]}):p==="model"?n.jsxs(n.Fragment,{children:[n.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Model",onClick:()=>h("root"),children:[n.jsx(Xn,{size:14}),n.jsx("span",{children:"Model"})]}),n.jsx("div",{className:"codex-model-menu-divider"}),n.jsxs("div",{className:"codex-model-menu-options",children:[(g?.options??[]).map(C=>{const $=C.value===t;return n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":$,className:$?"selected":"",onClick:()=>{u(a,C.value),h("root")},children:[n.jsx("span",{children:da(C.label)}),$?n.jsx(Dt,{size:14}):null]},C.value)}),g?.options.length?null:n.jsx("div",{className:"codex-model-menu-empty",role:"status",children:"No models available. Connect or check this provider in Settings."})]})]}):n.jsxs("div",{className:"codex-model-menu-effort",children:[n.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Effort",onClick:()=>h("root"),children:[n.jsx(Xn,{size:14}),n.jsx("span",{children:"Effort"})]}),n.jsx("div",{className:"codex-model-menu-divider"}),y.map(C=>n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":C.value===S,className:C.value===S?"selected":"",onClick:()=>{f(C.value),h("root")},children:[n.jsx("span",{children:C.label}),C.value===S?n.jsx(Dt,{size:14}):null]},C.value))]})})]})}function Nd(e){return da(e).replace(/^GPT-/,"").replace(/\s+Codex Spark$/," Spark").replace(/\s+Codex$/," Codex")}function Ad({detailsOpen:e,goalRuntime:t,objectiveId:s,subagentRuntime:r,onToggleDetails:a}){const i=r?.activeCount?`${t.tooltip}. ${r.tooltip}`:t.tooltip;return n.jsxs("div",{className:`composer-goal-strip ${t.tone}${r?.activeCount?" has-subagents":""}`,"data-tooltip":i,children:[n.jsx("div",{className:"composer-goal-heading",children:n.jsxs("button",{type:"button",className:"composer-goal-toggle","aria-expanded":e,"aria-controls":s,onClick:a,children:[n.jsx("span",{children:t.actionLabel}),n.jsxs("span",{className:"composer-goal-toggle-meta",children:[r?n.jsx("span",{className:"composer-goal-subagent-count",children:r.label}):null,n.jsx("span",{children:t.timeLabel}),n.jsx(Bt,{size:15,"aria-hidden":"true"})]})]})}),e&&n.jsxs("div",{className:"composer-goal-objective",id:s,children:[t.objective,r?n.jsx("span",{className:"composer-goal-subagent-summary",children:r.tooltip}):null]})]})}function Id({drafts:e,sendingDraftId:t,onDeleteDraft:s,onEditDraft:r,onSteerDraft:a}){return e.length===0?null:n.jsx("div",{className:"composer-steer-stack","aria-label":"Steer drafts",children:e.map(i=>{const l=t===i.id,c=ks(i.prompt);return n.jsxs("div",{className:`composer-steer-row ${l?"sending":""}`,children:[n.jsx("span",{className:"composer-steer-row-icon","aria-hidden":"true",children:n.jsx(vu,{size:13})}),n.jsx("span",{className:"composer-steer-row-text",title:i.prompt,children:c}),n.jsxs("button",{type:"button",className:"composer-steer-row-action primary",disabled:l,"aria-label":`Steer: ${ks(i.prompt,60)}`,onClick:()=>a(i.id),children:[n.jsx(Cr,{size:12}),n.jsx("span",{children:l?"Sending":"Steer"})]}),n.jsx("button",{type:"button",className:"composer-steer-row-icon-button",disabled:l,"data-tooltip":"Delete steer draft","aria-label":"Delete steer draft",onClick:()=>s(i.id),children:n.jsx($c,{size:13})}),n.jsx("button",{type:"button",className:"composer-steer-row-action",disabled:l,"aria-label":`Edit: ${ks(i.prompt,60)}`,onClick:()=>r(i),children:n.jsx("span",{children:"Edit"})})]},i.id)})})}const Td=/\b(?:https?:\/\/)?(?:github\.com|(?:[a-z0-9-]+\.)*openpond\.ai)\/[^\s<>"'`]+/gi,$d=/\b(?:git@)?(?:github\.com|(?:[a-z0-9-]+\.)*openpond\.ai):[^\s<>"'`]+/gi,Pd=new Set(["about","apps","collections","codespaces","contact","customer-stories","enterprise","events","explore","features","issues","login","marketplace","mobile","new","notifications","orgs","organizations","pricing","pulls","readme","search","settings","sponsors","team","topics","trending"]),_d=new Set(["account","api","dashboard","docs","install.sh","login","logout","opchat","sandboxes","settings"]);function Ld(e){const t=e.toLowerCase().replace(/^www\./,"");return t==="github.com"?"github":t==="openpond.ai"||t.endsWith(".openpond.ai")?"openpond":null}function Od(e){return e==="github"?Pd:_d}function go(e){let t=e;for(;/[.,;!?]$/.test(t);)t=t.slice(0,-1);for(;zd(t);)t=t.slice(0,-1);return t}function zd(e){const t=e.at(-1);if(!t||!")]}".includes(t))return!1;const s=t===")"?"(":t==="]"?"[":"{";let r=0;for(const a of e)a===s&&(r+=1),a===t&&(r-=1);return r<0}function Fd(e){return e.replace(/\.git$/i,"")}function bo(e){try{return decodeURIComponent(e)}catch{return e}}function Dd(e){return Fd(bo(e.trim()))}function xo(e){const t=e.host.toLowerCase().replace(/^www\./,""),s=Ld(t);if(!s)return null;const r=bo(e.owner?.trim()??""),a=Dd(e.repo??"");return!r||!a||Od(s).has(r.toLowerCase())?null:{end:e.end,host:t,label:`${r}/${a}`,provider:s,repo:a,start:e.start,url:e.url,owner:r}}function Bd(e,t){const s=go(e);if(!s)return null;try{const r=new URL(/^https?:\/\//i.test(s)?s:`https://${s}`),a=r.pathname.split("/").filter(Boolean);return xo({end:t+s.length,host:r.hostname,owner:a[0],repo:a[1],start:t,url:s})}catch{return null}}function Ud(e,t){const s=go(e),r=/^(?:git@)?([^:]+):(.+)$/i.exec(s);if(!r)return null;const a=r[1]?.trim()??"",i=(r[2]??"").split("/").filter(Boolean);return xo({end:t+s.length,host:a,owner:i[0],repo:i[1],start:t,url:s})}function ai(e,t,s){const r=[];t.lastIndex=0;let a;for(;a=t.exec(e);){const i=a[0]??"",l=s(i,a.index);l&&r.push(l)}return r}function qd(e){if(!e)return[];const t=[...ai(e,Td,Bd),...ai(e,$d,Ud)].sort((r,a)=>r.start-a.start||a.end-r.end),s=[];for(const r of t)s.some(a=>r.start<a.end&&r.end>a.start)||s.push(r);return s.sort((r,a)=>r.start-a.start)}const Hd=10,Vd=340,Wd=320,Gd=160,Kd=56;function Ft(e,t=0){const s=Number.parseFloat(e);return Number.isFinite(s)?s:t}function Zr(e){if(!e)return;e.style.height="auto";const t=window.getComputedStyle(e),s=Ft(t.fontSize,16),r=Ft(t.lineHeight,s*1.45),a=Ft(t.paddingTop)+Ft(t.paddingBottom),i=Ft(t.borderTopWidth)+Ft(t.borderBottomWidth),l=Ft(t.minHeight,66),c=Math.max(l,Math.ceil(r*Hd+a+i)),u=Math.max(l,Math.min(e.scrollHeight,c));e.style.height=`${u}px`,e.style.overflowY=e.scrollHeight>c?"auto":"hidden"}function ea(e,t){const s=e.getBoundingClientRect(),r=t.getBoundingClientRect(),a=window.getComputedStyle(e),i=Ft(a.paddingLeft,14),l=Ft(a.paddingTop,15),c=Math.max(0,r.width-16),u=Math.min(Vd,c),f=s.left-r.left+i-8,m=Math.max(8,Math.min(f,r.width-u-8)),x=Math.max(8,s.top-r.top+l+2);return{left:m,top:x,width:u}}function Qd(e){const t=e.getBoundingClientRect(),s=Math.floor(t.top-Kd);return{maxHeight:Math.max(Gd,Math.min(Wd,s))}}const Xd="[data-inline-token='true']",Jd="[data-inline-repo-link='true']",Yd="[data-inline-connected-app-mention='true']";function Cs(e){return e instanceof HTMLElement&&e.matches(Xd)}function Ss(e){return e instanceof HTMLElement&&e.matches(Jd)}function Rs(e){return e instanceof HTMLElement&&e.matches(Yd)}function Rr(e,t){return Math.max(0,Math.min(e,t))}function Yn(e,t){return e?Rr(e.position,t.length):null}function Zd(e,t,s,r=!1){const a=Yn(t,s),i=Rr(e,s.length);return a===null?i:i>a||r&&i===a?i+1:i}function ii(e,t,s){const r=Yn(t,s);return Rr(r===null?e:e>r?e-1:e,s.length)}function ta(e){let t="",s=null;function r(a){if(Ss(a)){t+=a.dataset.repoUrl??"";return}if(Rs(a)){t+=a.dataset.connectedMentionText??"";return}if(Cs(a)){s=t.length;return}if(a.nodeType===Node.TEXT_NODE){t+=a.textContent??"";return}a instanceof HTMLBRElement||a.childNodes.forEach(r)}return e.childNodes.forEach(r),{text:t,tokenPosition:s}}function xn(e){if(Ss(e))return e.dataset.repoUrl?.length??0;if(Rs(e))return e.dataset.connectedMentionText?.length??0;if(Cs(e))return 1;if(e.nodeType===Node.TEXT_NODE)return e.textContent?.length??0;if(e instanceof HTMLBRElement)return 0;let t=0;return e.childNodes.forEach(s=>{t+=xn(s)}),t}function oi(e,t,s){if(!t||t!==e&&!e.contains(t))return null;let r=0,a=!1;function i(l){if(!a){if((Cs(l)||Ss(l)||Rs(l))&&(l===t||l.contains(t))){(l!==t||s>0)&&(r+=xn(l)),a=!0;return}if(Cs(l)||Ss(l)||Rs(l)){r+=xn(l);return}if(l===t){if(l.nodeType===Node.TEXT_NODE)r+=s;else{const c=Array.from(l.childNodes).slice(0,s);for(const u of c)r+=xn(u)}a=!0;return}if(l.nodeType===Node.TEXT_NODE){r+=l.textContent?.length??0;return}l instanceof HTMLBRElement||l.childNodes.forEach(i)}}return i(e),a?r:null}function na(e){const t=window.getSelection();if(!t||t.rangeCount===0)return null;const s=oi(e,t.anchorNode,t.anchorOffset),r=oi(e,t.focusNode,t.focusOffset);return s===null||r===null?null:{anchor:s,focus:r}}function li(e,t){let s=Math.max(0,t);function r(l){const c=l.parentNode;return c?{node:c,offset:Array.prototype.indexOf.call(c.childNodes,l)}:{node:e,offset:0}}function a(l){const c=r(l);return{node:c.node,offset:c.offset+1}}function i(l){if(Cs(l)||Ss(l)||Rs(l)){const c=xn(l);return s<=0?r(l):s<=c?a(l):(s-=c,null)}if(l.nodeType===Node.TEXT_NODE){const c=l.textContent?.length??0;return s<=c?{node:l,offset:s}:(s-=c,null)}if(l instanceof HTMLBRElement)return null;for(const c of l.childNodes){const u=i(c);if(u)return u}return null}return i(e)??{node:e,offset:e.childNodes.length}}function vo(e,t){const s=window.getSelection();if(!s)return;const r=li(e,t.anchor),a=li(e,t.focus);if(s.removeAllRanges(),typeof s.setBaseAndExtent=="function"){s.setBaseAndExtent(r.node,r.offset,a.node,a.offset);return}const i=document.createRange(),l=t.anchor<=t.focus,c=l?r:a,u=l?a:r;i.setStart(c.node,c.offset),i.setEnd(u.node,u.offset),s.addRange(i)}function ef(e,t){vo(e,{anchor:t,focus:t})}function ci(e){document.execCommand("insertText",!1,e)}function tf(e){return e==="plus"?'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>':e==="bot"?'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg>':e==="skill"?'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V5a2 2 0 0 1 2-2h5a3 3 0 0 1 3 3v15a3 3 0 0 0-3-3Z"></path><path d="M21 18a1 1 0 0 0 1-1V5a2 2 0 0 0-2-2h-5a3 3 0 0 0-3 3v15a3 3 0 0 1 3-3Z"></path></svg>':'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg>'}function nf(){return'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="composer-invocation-clear" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>'}function ui(e){const t=document.createElement("span");t.className="composer-invocation-pill",t.contentEditable="false",t.dataset.inlineToken="true";const s=document.createElement("button");s.type="button",s.className="composer-invocation-remove",s.setAttribute("aria-label",`Remove ${e.label}`),s.addEventListener("mousedown",i=>i.preventDefault()),s.addEventListener("click",i=>{i.preventDefault(),e.onRemove()});const r=document.createElement("span");r.className="composer-invocation-icon",r.setAttribute("aria-hidden","true"),r.innerHTML=tf(e.icon),s.append(r),s.insertAdjacentHTML("beforeend",nf());const a=document.createElement("span");return a.className="composer-invocation-label",a.textContent=e.label,t.append(s,a),t}function sf(e){return e.provider==="github"?ya("github"):Sl}function rf(e){const t=document.createElement("span");t.className=`composer-repo-link ${e.provider}`,t.contentEditable="false",t.dataset.inlineRepoLink="true",t.dataset.repoUrl=e.url,t.dataset.repoProvider=e.provider,t.setAttribute("aria-label",`${e.provider==="github"?"GitHub":"OpenPond"} repository ${e.label}`),t.title=e.url;const s=document.createElement("img");s.className="composer-repo-link-icon",s.src=sf(e),s.alt="",s.draggable=!1;const r=document.createElement("span");return r.className="composer-repo-link-label",r.textContent=e.label,t.append(s,r),t}function af(e){return ya(e)}function of(e){const t=document.createElement("span");t.className=`composer-connected-app-mention ${e.provider}`,t.contentEditable="false",t.dataset.inlineConnectedAppMention="true",t.dataset.connectedMentionText=e.text,t.dataset.connectedMentionProvider=e.provider,t.setAttribute("aria-label",`${e.label} connected app mention ${e.displayText}`),t.title=e.detail;const s=document.createElement("img");s.className="composer-connected-app-mention-icon",s.src=af(e.provider),s.alt="",s.draggable=!1;const r=document.createElement("span");return r.className="composer-connected-app-mention-label",r.textContent=e.displayText,t.append(s,r),t}function lf(e,t){const s=qd(e);return t===null?s:s.filter(r=>t<=r.start||t>=r.end)}function cf(e,t,s){const r=Cl(e,t);return s===null?r:r.filter(a=>s<=a.start||s>=a.end)}function yo(e,t,s){const r=[...lf(e,t).map(l=>({end:l.end,kind:"repo",link:l,start:l.start})),...cf(e,s,t).map(l=>({end:l.end,kind:"connected-app",mention:l,start:l.start}))].sort((l,c)=>l.start-c.start||c.end-l.end),a=[];let i=0;for(const l of r)l.start<i||(a.push(l),i=l.end);return a}function uf(e,t,s){return yo(e,t,s).map(r=>r.kind==="repo"?`${r.start}:${r.end}:repo:${r.link.provider}:${r.link.label}:${r.link.url}`:`${r.start}:${r.end}:connected-app:${r.mention.provider}:${r.mention.text}:${r.mention.displayText}`).join("|")}function df(e,t,s,r){const a=Yn(s,t),i=yo(t,a,r);let l=!1;function c(m){m&&e.append(document.createTextNode(m))}function u(m,x){if(!s||a===null||l||a<m||a>x){c(t.slice(m,x));return}c(t.slice(m,a)),e.append(ui(s)),l=!0,c(t.slice(a,x))}e.replaceChildren();let f=0;for(const m of i)u(f,m.start),m.kind==="repo"?e.append(rf(m.link)):e.append(of(m.mention)),f=m.end;u(f,t.length),s&&!l&&e.append(ui(s))}const ff=o.forwardRef(function({connectedAppMentions:t=[],disabled:s,onCursorChange:r,onKeyDown:a,onPasteFiles:i,onPasteTextAsAttachment:l,onPromptChange:c,onTokenPositionChange:u,placeholder:f,prompt:m,token:x},p){const h=o.useRef(null),g=`${x?`${x.key}:${Yn(x,m)??0}`:"none"}|${uf(m,Yn(x,m),t)}`,v=o.useRef(null),y=m.length===0&&!x;o.useImperativeHandle(p,()=>({get element(){return h.current},getPrompt(){const R=h.current;return R?ta(R).text:m},focusAtPromptIndex(R,E){const C=h.current;if(!C)return;const $=Zd(R,x,m,E?.afterToken);C.focus(),ef(C,$),Zr(C)},resize(){Zr(h.current)}}),[m,x]),o.useLayoutEffect(()=>{const R=h.current;if(!R)return;const E=v.current!==g;v.current=g;const C=ta(R);if(E||m===""||C.text!==m||C.tokenPosition!==Yn(x,m)){const F=document.activeElement===R?na(R):null;df(R,m,x,t),R.dataset.empty=m.length===0&&!x?"true":"false",F&&vo(R,F)}Zr(R)},[t,m,x,g]);function S(){const R=h.current;if(!R)return;const E=na(R)?.focus??xn(R),C=ta(R),$=ii(E,x,C.text);R.dataset.empty=C.text.length===0&&!x?"true":"false",u(C.tokenPosition),r($),c(C.text,$)}function k(){S(),window.requestAnimationFrame(S)}function A(){const R=h.current;if(!R)return;const E=na(R)?.focus??xn(R);r(ii(E,x,m))}return n.jsx("div",{ref:h,className:"composer-inline-input",role:"textbox","aria-multiline":"true",contentEditable:!s,suppressContentEditableWarning:!0,"data-empty":y?"true":"false","data-placeholder":f,onBeforeInput:R=>{R.nativeEvent.inputType==="insertParagraph"&&(R.preventDefault(),ci(`
|
|
50
|
+
`),k())},onInput:S,onKeyDown:R=>{a(R)},onKeyUp:A,onMouseUp:A,onPaste:R=>{R.preventDefault();const E=Array.from(R.clipboardData.files);if(E.length>0&&i){i(E);return}const C=R.clipboardData.getData("text/plain");C&&(l?.(C)||(ci(C),k()))}})});function hf(e){if(!e.saving){if(!e.prompt.trim()){e.showInfo("Add task instructions before saving a draft.");return}if(e.attachmentsCount>0){e.showInfo("Task drafts currently save instructions only. Remove attachments before saving.");return}if(e.hasSelectedInvocation){e.showInfo("Finish or remove the selected command before saving this task draft.");return}e.setSaving(!0),e.onSave(e.prompt).then(t=>{t&&e.onSaved()}).finally(()=>e.setSaving(!1))}}function mf(e,t,s,r,a,i,l){return e==="Enter"&&(t||s)&&!r&&a==="work"&&i==="chat"&&l}function pf(e){return e.surface==="team"?"Message team":e.mode!=="start"?"Ask for follow-up changes":e.experience==="chat"?"Ask anything":"What should we work on? Ctrl Enter to save as draft"}function di(e){const t=e.implementation?.type;return t==="openpond-agent"||t==="local-profile-agent"||t==="openpond-profile-action"&&(e.sourceActionId==="chat"||e.id==="chat"||e.id.endsWith(".chat"))}function gf(e){return e.kind==="command"?`command:${e.command.id}`:e.kind==="app-context"?`app-context:${e.app.id}`:e.kind==="skill"?`skill:${e.skill.name}`:`action:${e.action.id}`}function bf(e){return e.kind==="command"?`${e.command.command} ${e.command.label}`:e.kind==="app-context"?e.app.name:e.kind==="skill"?Ir(e.skill):ja(e.action)}function xf(e){return e.kind==="command"?Ml(e.command):e.kind==="app-context"?`Planning context${e.app.description?`: ${e.app.description}`:e.app.gitRepo?`: ${e.app.gitRepo}`:""}`:e.kind==="skill"?e.skill.description||e.skill.path:e.action.description||Nl(e.action)}function vf(e){return e.kind==="app"?`app:${e.app.id}`:e.kind==="connected-app"?`connected-app:${e.app.provider}`:e.kind==="team-member"?`team-member:${e.member.userId}`:e.kind==="skill"?`skill:${e.skill.name}`:`action:${e.action.id}`}function yf(e){return e.kind==="app"?e.app.name:e.kind==="connected-app"?e.app.label:e.kind==="team-member"?e.member.name:e.kind==="skill"?Ir(e.skill):El(e.action)}function jf(e){if(e.kind==="action")return Al(e.action);if(e.kind==="connected-app")return e.app.detail;if(e.kind==="team-member")return e.member.handle?`@${e.member.handle}`:"Team member";if(e.kind==="skill")return e.skill.description||e.skill.path;const t=e.app.sandboxActionRegistry?.actions.map(s=>s.name)??[];return t.length>0?`Actions: ${t.slice(0,4).join(", ")}${t.length>4?` +${t.length-4}`:""}`:e.app.sandboxManifestError?"Manifest registry unavailable":e.app.description||e.app.gitRepo||e.app.id}function wf(e){return e.kind==="files"?"files":e.kind==="folder"?"folder":e.kind==="slash"?`slash:${gf(e.item)}`:`mention:${vf(e.item)}`}function jo(e){return e.kind==="files"?"Files and folders":e.kind==="folder"?"Local folder":e.kind==="slash"?bf(e.item):yf(e.item)}function wo(e){return e.kind==="files"?"Attach images, documents, or other files":e.kind==="folder"?"Share a bounded folder as Work input":e.kind==="slash"?xf(e.item):jf(e.item)}function kf(e,t){const s=t.toLowerCase().split(/\s+/).filter(Boolean);if(s.length===0)return!0;const r=`${jo(e)} ${wo(e)}`.toLowerCase();return s.every(a=>r.includes(a))}function Cf(e,t){const s=t.trimStart(),r=s.startsWith("/")?"slash":s.startsWith("@")?"mentions":null,a=r?s.slice(1).trimStart():s,i=r?e.filter(u=>u.id===r||u.queryScope===r||u.queryScopes?.includes(r)):e;if(!a)return i;const l=i.map(u=>({...u,items:u.items.filter(f=>kf(f,a))})).filter(u=>u.items.length>0);return l.length>0?l:[{...(r?i[0]:null)??{id:"results",label:"Results"},emptyLabel:r==="slash"?"No slash commands match":r==="mentions"?"No mentions match":"No commands match",items:[]}]}function Sf(e){if(e.kind==="files")return n.jsx(Va,{size:14});if(e.kind==="folder")return n.jsx(Va,{size:14});if(e.kind==="slash"){const s=e.item;return s.kind==="command"?s.command.id==="agent"?n.jsx(js,{size:14}):s.command.id==="skill"?n.jsx(Rl,{size:14}):n.jsx(br,{size:14}):s.kind==="app-context"?n.jsx(Ha,{size:14}):s.kind==="skill"?n.jsx(yt,{size:14}):di(s.action)?n.jsx(js,{size:14}):n.jsx(br,{size:14})}const t=e.item;return t.kind==="connected-app"?n.jsx("img",{alt:"",className:"composer-provider-mention-icon",draggable:!1,src:ya(t.app.provider)}):t.kind==="action"?di(t.action)?n.jsx(js,{size:14}):n.jsx(br,{size:14}):t.kind==="skill"?n.jsx(yt,{size:14}):n.jsx(Ha,{size:14})}function Rf(e){if(e.kind==="slash"&&e.item.kind==="app-context"||e.kind==="mention"&&e.item.kind==="app")return e.item.app.id}function Ra({ariaLabel:e,className:t="",id:s,menuIndex:r,menuRef:a,onSelect:i,onSelectIndex:l,sections:c,style:u,variant:f}){const m=o.useRef(null),x=c.reduce((h,b)=>h+b.items.length,0);o.useEffect(()=>{if(f==="add"&&r===0){const h=m.current?.closest(".composer-command-menu");h&&(h.scrollTop=0);return}m.current?.scrollIntoView({block:"nearest"})},[x,r,f]);let p=0;return n.jsx("div",{ref:a,id:s,className:`composer-project-menu composer-slash-menu ${t} composer-command-menu composer-command-menu-${f}`.trim(),role:f==="add"?"menu":"listbox","aria-label":e,style:u,children:c.map(h=>{const b=p;return p+=h.items.length,n.jsxs("div",{className:`composer-command-section ${h.grid?"composer-command-section-grid":""}`.trim(),role:"group","aria-label":h.label,children:[n.jsx("div",{className:"composer-command-section-title",children:h.label}),h.items.length>0?h.items.map((g,v)=>{const y=b+v,S=y===r;return n.jsxs("button",{type:"button",role:f==="add"?"menuitem":"option",ref:S?m:void 0,"aria-selected":f==="typed"?S:void 0,className:`composer-project-option ${S?"selected":""} composer-command-option`,"data-app-context-id":Rf(g),onFocus:()=>l(y),onMouseEnter:()=>l(y),onMouseDown:k=>{k.preventDefault()},onClick:()=>i(g),children:[Sf(g),n.jsxs("span",{children:[n.jsx("strong",{children:jo(g)}),n.jsx("small",{children:wo(g)})]}),f==="typed"&&S?n.jsx(Dt,{size:14}):n.jsx("span",{"aria-hidden":"true"})]},wf(g))}):n.jsx("div",{className:"composer-menu-empty",children:h.emptyLabel??"No items available"})]},h.id)})})}function Ef({mentionIndex:e,items:t,onSelect:s,onSelectIndex:r,style:a}){return n.jsx(Ra,{ariaLabel:"Mentions",className:"composer-mention-menu",menuIndex:e,sections:[{emptyLabel:"No matching mentions",id:"mentions",items:t.map(i=>({kind:"mention",item:i})),label:"@"}],style:a,variant:"typed",onSelect:i=>{i.kind==="mention"&&s(i.item)},onSelectIndex:r})}const fi=new WeakMap,Er=new WeakMap,Mf=3e4;function As(e,t){return JSON.stringify([e,t?.binaryPath??null,t?.sourceHome??null,t?.enabled??!0,t?.acp??null])}function ko(e,t,s){return Er.get(e)?.get(As(t,s))?.value??null}function Co(e,t,s,r){let a=Er.get(e);a||(a=new Map,Er.set(e,a)),a.set(As(t,r),{value:s,refreshedAt:Date.now()})}function Nf(e,t,s){const r=As(t,s),a=Er.get(e)?.get(r);if(a&&Date.now()-a.refreshedAt<Mf)return{promise:Promise.resolve(a.value),release(){}};let i=fi.get(e);i||(i=new Map,fi.set(e,i));let l=i.get(r);if(!l){const f=new AbortController;l={controller:f,readers:0,promise:Ne(e,`/v1/providers/${t}/native-setup`,{method:"POST",body:JSON.stringify({action:"capabilities"}),signal:f.signal})},i.set(r,l);const m=l,x=()=>{i.get(r)===m&&i.delete(r)};l.promise.then(p=>{i.get(r)===m&&!f.signal.aborted&&!p.error&&p.session&&Co(e,t,p,s),x()},x)}l.readers++;const c=l;let u=!1;return{promise:c.promise,release(){u||(u=!0,c.readers--,c.readers===0&&i.get(r)===c&&(i.delete(r),c.controller.abort()))}}}function Af({connection:e,provider:t,providerSettings:s,disabled:r,placement:a="top",onSettings:i,onSetup:l}){const c=s?.providers[t],[u,f]=o.useState(null),m=As(t,c),x=e?ko(e,t,c):null,p=u?.connection===e&&u.provider===t&&u.instance===m?u.value:x,[h,b]=o.useState(null),[g,v]=o.useState(!1),y=Ms(t)||["opencode","grok-build","claude-code"].includes(t);if(o.useEffect(()=>{if(b(null),!e||!y)return;const A=Nf(e,t,c);let R=!0;return A.promise.then(E=>{R&&(E.error?b(E.error):(f({connection:e,provider:t,instance:m,value:E}),i({provider:t,settings:E.settings})))}).catch(E=>{R&&b(E.message)}),()=>{R=!1,A.release()}},[e,t,y,i,m]),!y||!e)return null;const S=c?.nativeMode??p?.session?.modes?.currentModeId??"";async function k(A){if(e){v(!0);try{const R=await Ne(e,"/v1/providers",{method:"PATCH",body:JSON.stringify({providers:{[t]:A}})});if(p){const E={...p,settings:R};Co(e,t,E,c),f({connection:e,provider:t,instance:m,value:E})}i({provider:t,settings:R}),b(null)}catch(R){b(R instanceof Error?R.message:"Could not save agent settings.")}finally{v(!1)}}}return n.jsxs(n.Fragment,{children:[c&&!c.enabled?n.jsx("button",{type:"button",disabled:r||g,onClick:()=>{k({enabled:!0})},children:"Enable agent"}):null,p?.session?.modes?n.jsx(fa,{compact:!0,className:"permission-select",icon:n.jsx(zi,{size:14}),placement:a,label:t==="claude-code"?"Claude permissions":"Agent mode",disabled:r||g,value:t==="claude-code"&&S==="default"?"manual":S,options:p.session.modes.availableModes.map(A=>({value:A.id,label:t==="claude-code"&&A.id==="manual"?"Ask":A.name,...t==="claude-code"?{description:A.id==="plan"?"Inspect and plan before making changes.":A.id==="bypassPermissions"?"Run tools and commands without permission prompts.":"Ask before actions that require permission."}:{}})),onChange:A=>{k({nativeMode:A})}}):null,p?.session?.configOptions?.filter(A=>A.type==="select"&&A.category!=="model"&&A.category!=="mode").map(A=>n.jsxs("label",{className:"composer-native-option",children:[n.jsx("span",{children:A.name}),n.jsx("select",{title:`Default ${A.name.toLowerCase()} for this agent installation`,disabled:r||g,value:c?.nativeOptions?.[A.id]??A.currentValue,onChange:R=>{k({nativeOptions:{...c?.nativeOptions,[A.id]:R.target.value}})},children:A.options?.flatMap(R=>"options"in R?R.options:[R]).map(R=>n.jsx("option",{value:R.value,children:R.name},R.value))})]},A.id)),h||p?.error?n.jsxs("span",{role:"status",title:h??p?.error??void 0,children:["Agent needs attention",l?n.jsx("button",{type:"button",onClick:l,children:"Open setup"}):null]}):null]})}function So(){return!!(navigator.mediaDevices&&typeof AudioContext<"u")}async function If(e={}){if(!So())throw new Error("Voice recording is not available in this browser.");const t=await navigator.mediaDevices.getUserMedia({audio:{autoGainControl:!0,channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),s=new AudioContext,r=s.createMediaStreamSource(t),a=s.createScriptProcessor(4096,1,1),i=s.createGain();i.gain.value=0;const l={audioContext:s,chunks:[],processor:a,silentGain:i,source:r,stream:t,startedAt:performance.now(),stopped:!1,onAudioLevel:e.onAudioLevel};return a.onaudioprocess=c=>{if(l.stopped)return;const u=c.inputBuffer.getChannelData(0);l.chunks.push(new Float32Array(u)),l.onAudioLevel?.(Tf(u))},r.connect(a),a.connect(i),i.connect(s.destination),{stop:()=>hi(l,!0),cancel:()=>hi(l,!1).then(()=>{})}}function Tf(e){if(e.length===0)return 0;let t=0;for(const r of e)t+=r*r;const s=Math.sqrt(t/e.length);return Math.min(1,Math.pow(s*5,.6))}async function hi(e,t){if(e.stopped)return{blob:new Blob([],{type:"audio/wav"}),durationMs:0,sampleRate:e.audioContext.sampleRate};e.stopped=!0,e.processor.disconnect(),e.silentGain.disconnect(),e.source.disconnect();for(const a of e.stream.getTracks())a.stop();await e.audioContext.close().catch(()=>{});const s=Math.max(0,performance.now()-e.startedAt);if(!t)return{blob:new Blob([],{type:"audio/wav"}),durationMs:s,sampleRate:e.audioContext.sampleRate};const r=$f(e.chunks);if(r.length===0)throw new Error("No microphone audio was captured.");return{blob:Pf(r,e.audioContext.sampleRate),durationMs:s,sampleRate:e.audioContext.sampleRate}}function $f(e){const t=e.reduce((a,i)=>a+i.length,0),s=new Float32Array(t);let r=0;for(const a of e)s.set(a,r),r+=a.length;return s}function Pf(e,t){const a=e.length*2,i=new ArrayBuffer(44+a),l=new DataView(i);dr(l,0,"RIFF"),l.setUint32(4,36+a,!0),dr(l,8,"WAVE"),dr(l,12,"fmt "),l.setUint32(16,16,!0),l.setUint16(20,1,!0),l.setUint16(22,1,!0),l.setUint32(24,t,!0),l.setUint32(28,t*1*2,!0),l.setUint16(32,2,!0),l.setUint16(34,16,!0),dr(l,36,"data"),l.setUint32(40,a,!0);let c=44;for(const u of e){const f=Math.max(-1,Math.min(1,u));l.setInt16(c,f<0?f*32768:f*32767,!0),c+=2}return new Blob([i],{type:"audio/wav"})}function dr(e,t,s){for(let r=0;r<s.length;r+=1)e.setUint8(t+r,s.charCodeAt(r))}const ga=96,Ro=Array.from({length:ga},()=>0);function xs(){return[...Ro]}function _f(e,t){return[...e.slice(-95),Math.max(0,Math.min(1,t))]}function Lf({levels:e}){const t=o.useMemo(()=>e.length>=ga?e.slice(-ga):[...Ro.slice(e.length),...e],[e]);return n.jsx("span",{className:"voice-recording-waveform",role:"img","aria-label":"Live microphone level",children:t.map((s,r)=>n.jsx("span",{className:"voice-recording-bar",style:{"--voice-level":s},"aria-hidden":"true"},r))})}const Of=12e4,Eo="openpond.voice.setupNoticeAcknowledged",zf="Voice dictation runs locally with whisper.cpp. OpenPond uses a local whisper-cli binary and downloads the voice model on first use.";function mi({connection:e,buttonClassName:t,wrapperClassName:s="",disabled:r=!1,iconSize:a=16,language:i="en",onActiveChange:l,showToast:c,onTranscript:u,transcriptionChannelKey:f}){const m=o.useRef(null),x=o.useRef(null),p=o.useRef(e),h=o.useRef(r),b=o.useRef("idle"),g=o.useRef(!1),v=o.useRef(pi());Il(()=>{v.current=pi()}),p.current=e,h.current=r;const[y,S]=o.useState("idle"),[k,A]=o.useState(null),[R,E]=o.useState(xs),C=o.useCallback(D=>hd(f,D),[f]),$=o.useCallback(()=>fd(f),[f]),F=o.useSyncExternalStore(C,$,$),U=F,H=y==="starting",z=y==="recording",V=z||F,W=H||V;b.current=y;const le=o.useCallback(()=>{x.current!==null&&(window.clearTimeout(x.current),x.current=null)},[]),be=o.useCallback(async()=>{le();const D=m.current;m.current=null,g.current=!1,S("idle"),E(xs()),D&&await D.cancel().catch(()=>{})},[le]),re=o.useCallback(async(D,_,ae)=>{const Ie=p.current;if(!Ie)throw new Error("Voice input is still connecting.");const se=await Be.voiceTranscriptionStatus(Ie,{signal:_});if(!se.binaryPath)throw new Error(se.installHint??"Install whisper.cpp to use dictation.");const fe=await Be.transcribeVoice(Ie,{audioBase64:await Ff(D.blob),durationMs:Math.round(D.durationMs),language:i,mimeType:"audio/wav"},{signal:_});_.aborted||Promise.resolve(u(fe.text,{submit:ae()})).catch(K=>{c(sa(K),"error")})},[i,u,c]),ce=o.useCallback(()=>{uo(f),A(null),E(xs())},[f]),q=o.useCallback(async(D=!1)=>{le();const _=m.current;m.current=null,_&&(S("idle"),A(null),E(xs()),gd(f,async(ae,Ie)=>{const se=await _.stop();ae.aborted||await re(se,ae,Ie)},{submit:D}).catch(ae=>{ae instanceof DOMException&&ae.name==="AbortError"||c(sa(ae),"error")}))},[le,c,re,f]),ye=o.useCallback(async()=>{if(h.current)return;if(!p.current){A("Voice input is still connecting.");return}if(!So()){A("Voice recording is not available in this browser.");return}A(null),S("starting");try{if(await window.openpond?.requestMicrophoneAccess?.()===!1)throw new Error("Microphone access is denied.");const ae=await If({onAudioLevel:Ie=>{E(se=>_f(se,Ie))}});if(m.current=ae,E(xs()),S("recording"),g.current){g.current=!1,q(!0);return}x.current=window.setTimeout(()=>{q(!1)},Of)}catch(_){A(sa(_)),await be()}},[be,q]),G=o.useCallback(()=>{if(v.current){ye();return}c(zf,"info",{actionLabel:"Continue",persistent:!0,onAction:()=>{v.current=!0,Df(),ye()}})},[ye,c]);return o.useEffect(()=>md(f,()=>m.current?(q(!0),!0):b.current==="starting"?(g.current=!0,!0):!1),[q,f]),o.useEffect(()=>{l?.(W)},[W,l]),o.useEffect(()=>()=>l?.(!1),[l]),o.useEffect(()=>{if(!k||z||U)return;const D=window.setTimeout(()=>A(null),7e3);return()=>window.clearTimeout(D)},[U,k,z]),o.useEffect(()=>()=>{be()},[be]),n.jsxs("span",{className:`voice-input-control ${s} ${H?"starting":""} ${z?"recording":""} ${F?"transcribing":""}`.trim(),children:[V?n.jsxs("span",{className:"voice-recording-strip",children:[n.jsx("span",{className:"sr-only",role:"status",children:F?"Transcribing audio":"Recording voice"}),n.jsx("button",{type:"button",className:"voice-recording-action cancel","aria-label":F?"Cancel transcription":"Cancel dictation",onClick:()=>{F?ce():be()},children:n.jsx(Ns,{size:15})}),F?n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"voice-transcribing-label","aria-hidden":"true",children:["Transcribing",n.jsxs("span",{className:"voice-transcribing-dots",children:[n.jsx("span",{children:"."}),n.jsx("span",{children:"."}),n.jsx("span",{children:"."})]})]}),n.jsx("span",{className:"voice-recording-action-spacer","aria-hidden":"true"})]}):n.jsxs(n.Fragment,{children:[n.jsx(Lf,{levels:R}),n.jsx("button",{type:"button",className:"voice-recording-action stop","aria-label":"Stop and transcribe",onClick:()=>{q(!1)},children:n.jsx(Ji,{size:10,fill:"currentColor"})})]})]}):n.jsx("button",{type:"button",className:`voice-input-trigger ${t} ${H?"starting":""}`.trim(),"aria-label":H?"Starting dictation":"Dictate",disabled:r||U||H,onClick:G,children:n.jsx(mu,{size:a})}),k&&!V?n.jsx("span",{className:"voice-input-status",role:"status",children:k}):null]})}async function Ff(e){const t=new Uint8Array(await e.arrayBuffer());let s="";for(let r=0;r<t.length;r+=32768){const a=t.subarray(r,r+32768);s+=String.fromCharCode(...a)}return window.btoa(s)}function sa(e){const t=e instanceof Error?e.message:String(e);return/NotAllowedError|Permission denied|denied/i.test(t)?"Microphone access is denied.":/NotFoundError|Requested device not found/i.test(t)?"No microphone was found.":t||"Voice input failed."}function pi(){if(typeof window>"u")return!1;try{return Fi.getItem(Eo)==="true"}catch{return!1}}function Df(){if(!(typeof window>"u"))try{Fi.setItem(Eo,"true")}catch{}}const Bf=new Set(["codex","openai","xai","openrouter","deepseek","zai","moonshot","together","groq","custom-openai-compatible","setup-provider"]);function Uf({surface:e="chat",teamUseModel:t=!1,teamUseModelLocked:s=!1,onTeamUseModelChange:r,addFiles:a,addMenuId:i,addMenuOpen:l,addMenuRef:c,busy:u,codexPermissionMode:f,codexReasoningEffort:m,connection:x,contextStatusStyle:p,contextStatusTooltipId:h,contextWindowStatus:b,disabled:g,dropdownPlacement:v,fileInputRef:y,modelValue:S,modelOptions:k=[],hideModelControls:A=!1,openPondCommandAccessMode:R,showCommandAccess:E=!0,profileTarget:C,onCodexPermissionModeChange:$,onCodexReasoningEffortChange:F,onOpenPondCommandAccessModeChange:U,onProfileTargetChange:H,onModelChange:z,onOpenFilePicker:V,onProviderChange:W,onProviderSetupOpen:le,onSend:be,onStop:re,onToggleAddMenu:ce,onTranscript:q,voiceInputChannelKey:ye,provider:G,providerSettings:D,providerOptions:_,running:ae,sendDisabled:Ie,sendTooltip:se,showToast:fe,stopIcon:K="stop",stopLabel:te="Stop response"}){const J=As(G,D?.providers[G]),[Y,ue]=o.useState(null),Pe=x?ko(x,G,D?.providers[G]):null,ke=Y?.connection===x&&Y.provider===G&&Y.instance===J?Y.settings:Pe?.settings??null,we=o.useMemo(()=>ke?D?{...D,providers:{...D.providers,[G]:ke.providers[G]},statuses:{...D.statuses,[G]:ke.statuses[G]},modelCaches:{...D.modelCaches,[G]:ke.modelCaches[G]}}:ke:D,[D,ke,G]),M=o.useCallback(ie=>{x&&ue({connection:x,provider:ie.provider,instance:J,settings:ie.settings})},[x,J]),T=Ms(G)||["claude-code","opencode","grok-build"].includes(G),P=S||Oi(G,we),[Q,ne]=o.useState(!1),$e=Tl(G,P,we),xe=o.useMemo(()=>Sd({currentModelOptions:ke?va(G,we):k,currentProvider:G,providerOptions:_,providerSettings:we}),[k,G,_,we,ke]),De=o.useMemo(()=>xe.filter(ie=>Bf.has(ie.provider)),[xe]),jt=(ie,w)=>{if(F($l(ie,w,we)),ie===G){z(w);return}z(w),W(ie)};return e==="team"?n.jsxs("div",{className:`composer-primary-controls team-chat-composer-controls ${ae?"has-running-turn":""}`.trim(),children:[n.jsx("button",{type:"button",className:"composer-icon","aria-label":"Add photos and files",disabled:g,onClick:V,children:n.jsx(kr,{size:18})}),n.jsx("input",{ref:y,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:ie=>{a(Array.from(ie.currentTarget.files??[])),ie.currentTarget.value=""}}),n.jsxs("label",{className:"team-chat-model-toggle",children:[n.jsx("input",{type:"checkbox",checked:t,disabled:u||s,onChange:ie=>r?.(ie.currentTarget.checked)}),n.jsx("span",{children:"Use model"})]}),n.jsx("div",{className:"composer-spacer"}),t?n.jsx(ri,{disabled:u,model:P,modelGroups:De,placement:v,provider:G,providerSettings:we,reasoningEffort:m,showReasoning:$e,onModelSelectionChange:jt,onReasoningEffortChange:F}):null,n.jsx(mi,{buttonClassName:"composer-icon",connection:x,disabled:g,iconSize:16,wrapperClassName:"composer-voice-input",onActiveChange:ne,showToast:fe,onTranscript:q,transcriptionChannelKey:ye}),n.jsx(gi,{running:ae,sendDisabled:Ie,sendTooltip:se,stopIcon:K,stopLabel:te,voiceInputActive:Q,onSend:be,onStop:re})]}):n.jsxs("div",{className:`composer-primary-controls ${ae?"has-running-turn":""}`.trim(),children:[n.jsxs("div",{className:"composer-add-control open-up",ref:c,children:[n.jsx("button",{type:"button",className:`composer-icon ${l?"active":""}`,"aria-label":"Add to message","aria-haspopup":"menu","aria-expanded":l,"aria-controls":l?i:void 0,disabled:g,onMouseDown:ie=>ie.preventDefault(),onClick:ce,children:n.jsx(kr,{size:18})}),n.jsx("input",{ref:y,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:ie=>{a(Array.from(ie.currentTarget.files??[])),ie.currentTarget.value=""}})]}),!A&&T?n.jsx(Af,{connection:x,provider:G,providerSettings:we,placement:v,onSettings:M,onSetup:le,disabled:u||g}):null,E&&G==="codex"?n.jsx(fa,{compact:!0,className:"permission-select",icon:n.jsx(zi,{size:14}),placement:v,label:"Codex permissions",tooltip:za.find(ie=>ie.value===f)?.label,value:f,options:za,disabled:u,onChange:ie=>$(ie)}):E&&!T?n.jsx(fa,{compact:!0,className:"permission-select",icon:n.jsx(wa,{size:14}),placement:v,label:"Command access",tooltip:Fa.find(ie=>ie.value===(R==="disabled"?"ask":R))?.label,value:R==="disabled"?"ask":R,options:Fa,disabled:u,onChange:ie=>U(ie)}):null,C&&H?n.jsx(po,{busy:u,placement:v,state:C,onChange:H}):null,n.jsx("div",{className:"composer-spacer"}),!A&&n.jsxs("span",{className:`context-status-shell ${b.tone}`,style:p,children:[n.jsx("span",{className:`composer-status ${b.tone}`,role:b.maxTokens===null?"img":"meter","aria-label":b.tooltip,"aria-describedby":h,"aria-valuemin":b.maxTokens===null?void 0:0,"aria-valuemax":b.maxTokens??void 0,"aria-valuenow":b.maxTokens===null?void 0:b.usedTokens,tabIndex:0}),n.jsxs("span",{className:"context-status-tooltip",id:h,role:"tooltip",children:[n.jsx("span",{className:"context-status-tooltip-title",children:"Context window"}),n.jsxs("span",{className:"context-status-tooltip-main",children:[n.jsx("span",{children:b.summary}),n.jsx("span",{children:b.tokensLabel})]}),b.maxTokens!==null&&n.jsx("span",{className:"context-status-tooltip-bar","aria-hidden":"true",children:n.jsx("span",{})}),b.detail?n.jsx("span",{className:"context-status-tooltip-detail",children:b.detail}):null]})]}),!A&&n.jsx(ri,{disabled:u,model:P,modelGroups:xe,placement:v,provider:G,providerSettings:we,reasoningEffort:m,showReasoning:$e,onModelSelectionChange:jt,onReasoningEffortChange:F}),n.jsx(mi,{buttonClassName:"composer-icon",connection:x,disabled:g,iconSize:16,wrapperClassName:"composer-voice-input",onActiveChange:ne,showToast:fe,onTranscript:q,transcriptionChannelKey:ye}),n.jsx(gi,{running:ae,sendDisabled:Ie,sendTooltip:se,stopIcon:K,stopLabel:te,voiceInputActive:Q,onSend:be,onStop:re})]})}function gi({running:e,sendDisabled:t,sendTooltip:s,stopIcon:r,stopLabel:a,voiceInputActive:i,onSend:l,onStop:c}){const u=e?a:s;return n.jsx("button",{type:"button",className:`send-button ${e?"stop-button":""}`.trim(),disabled:!e&&t&&!i,"data-tooltip":u,"aria-label":u,onClick:e?()=>{c()}:l,children:e?r==="pause"?n.jsx(Pc,{size:15}):n.jsx(Ji,{size:13,fill:"currentColor"}):n.jsx(Qc,{size:18})})}function qf(e){return e.description||e.path}function Hf({items:e,onSelect:t,onSelectIndex:s,skillIndex:r,style:a}){const i=o.useRef(null);return o.useEffect(()=>{i.current?.scrollIntoView({block:"nearest"})},[e.length,r]),n.jsx("div",{className:"composer-project-menu composer-slash-menu composer-skill-menu",role:"listbox","aria-label":"Available skills",style:a,children:e.length>0?e.map((l,c)=>{const u=c===r;return n.jsxs("button",{type:"button",className:`composer-project-option ${u?"selected":""}`,ref:u?i:void 0,role:"option","aria-selected":u,onMouseEnter:()=>s(c),onMouseDown:f=>{f.preventDefault(),t(l)},children:[n.jsx(yt,{size:14}),n.jsxs("span",{children:[n.jsx("strong",{children:Ir(l)}),n.jsx("small",{children:qf(l)})]}),u?n.jsx(Dt,{size:14}):n.jsx("span",{"aria-hidden":"true"})]},l.name)}):n.jsx("div",{className:"composer-menu-empty",role:"option","aria-selected":"false",children:"No matching skills"})})}function Vf({actionCatalogCount:e,actionIndex:t,items:s,onSelect:r,onSelectIndex:a,style:i}){return n.jsx(Ra,{ariaLabel:"OpenPond agents and actions",menuIndex:t,sections:[{emptyLabel:e===0?"No matching commands or apps":"No matching commands, apps, agents, or actions",id:"slash",items:s.map(l=>({kind:"slash",item:l})),label:"/"}],style:i,variant:"typed",onSelect:l=>{l.kind==="slash"&&r(l.item)},onSelectIndex:a})}function Wf({busy:e,initialDescription:t,open:s,onClose:r,onSubmit:a}){const[i,l]=o.useState(""),[c,u]=o.useState(()=>t.trim()),f=i.trim(),m=c.trim(),x=e||!f||!m;if(o.useEffect(()=>{s&&(l(""),u(t.trim()))},[t,s]),o.useEffect(()=>{if(!s||e)return;function h(b){b.key==="Escape"&&r()}return document.addEventListener("keydown",h),()=>document.removeEventListener("keydown",h)},[e,r,s]),!s)return null;async function p(){if(x)return;await a({title:f,description:m})&&(l(""),u(""))}return n.jsx("div",{className:"git-dialog-backdrop",role:"presentation",onMouseDown:e?void 0:r,children:n.jsxs("section",{className:"git-dialog submit-issue-dialog",role:"dialog","aria-modal":"true","aria-label":"Submit GitHub issue",onMouseDown:h=>h.stopPropagation(),onKeyDown:h=>{h.key!=="Enter"||!(h.target instanceof HTMLInputElement)||(h.preventDefault(),p())},children:[n.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",onClick:r,children:n.jsx(Ns,{size:16})}),n.jsx("div",{className:"git-dialog-icon",children:n.jsx(Pl,{size:18})}),n.jsx("h2",{children:"Submit issue"}),n.jsxs("div",{className:"git-dialog-row submit-issue-repo-row",children:[n.jsx("span",{children:"Repository"}),n.jsx("strong",{children:_l})]}),n.jsxs("label",{className:"git-dialog-field",children:[n.jsx("span",{children:"Title"}),n.jsx("input",{autoFocus:!0,disabled:e,placeholder:"Short issue title",value:i,onChange:h=>l(h.target.value)})]}),n.jsxs("label",{className:"git-dialog-field",children:[n.jsx("span",{children:"Description"}),n.jsx("textarea",{disabled:e,placeholder:"What happened, what you expected, and any useful context",value:c,onChange:h=>u(h.target.value)})]}),n.jsxs("div",{className:"git-dialog-footer",children:[n.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:r,children:"Cancel"}),n.jsx("button",{className:"git-dialog-primary",disabled:x,type:"button",onClick:()=>{p()},children:"Submit issue"})]})]})})}const Gf=new Set(["c","cc","cpp","css","go","h","html","java","js","json","jsx","mdx","php","py","rb","rs","sh","sql","toml","ts","tsx","xml","yaml","yml"]),Kf=new Set(["csv","ods","tsv","xls","xlsm","xlsx"]),Qf=new Set(["7z","bz2","gz","rar","tar","tgz","xz","zip"]),Xf=new Set(["doc","docx","epub","md","odt","pdf","rtf","txt"]),Jf=new Set(["key","odp","ppt","pptx"]);function Mo(e){const t=e.mediaType.toLowerCase(),s=e.name.split(".").pop()?.toLowerCase()??"";return e.kind==="image"||t.startsWith("image/")?"image":t.startsWith("audio/")?"audio":t.startsWith("video/")?"video":Kf.has(s)||t.includes("spreadsheet")||t.includes("excel")?"spreadsheet":Qf.has(s)||t.includes("zip")||t.includes("compressed")?"archive":Jf.has(s)||t.includes("presentation")||t.includes("powerpoint")?"presentation":Gf.has(s)?"code":e.kind==="text"||Xf.has(s)||t.startsWith("text/")||t==="application/pdf"||t.includes("document")||t.includes("msword")?"document":"file"}function Yf(e){if(e.mediaType.toLowerCase()==="application/pdf")return"PDF";const t=Mo(e);return t==="spreadsheet"?"Spreadsheet":t.charAt(0).toUpperCase()+t.slice(1)}function No(e){return`${e.toLocaleString()} ${e===1?"line":"lines"}`}const Zf={archive:Oc,audio:iu,code:Lc,document:yt,file:_c,image:Ar,presentation:bu,spreadsheet:lu,video:uu};function Ao({attachment:e,...t}){const s=Zf[Mo(e)];return n.jsx(s,{...t})}const eh=new Set(["csv","css","html","js","json","jsx","log","md","mdx","py","sql","svg","ts","tsx","txt","xml","yaml","yml"]),th=2e3,nh=/^Pasted text(?: (\d+))?\.txt$/;function sh(e,t){if(e.length<th)return null;const s=new Set;for(const i of t){const l=nh.exec(i.name);l&&s.add(l[1]?Number(l[1]):1)}let r=1;for(;s.has(r);)r+=1;const a=r===1?"Pasted text.txt":`Pasted text ${r}.txt`;return new File([e],a,{type:"text/plain"})}function rh({attachment:e,onRemove:t}){const[s,r]=o.useState(null);o.useEffect(()=>{if(e.kind!=="text")return;let i=!1;return e.file.text().then(l=>{i||r(Zi(l))},()=>{}),()=>{i=!0}},[e.file,e.kind]);const a=e.kind!=="image";return n.jsxs("div",{className:`composer-attachment-card ${e.kind}`,children:[n.jsx("div",{className:"composer-attachment-thumb","aria-hidden":"true",children:e.previewUrl?n.jsx("img",{alt:"",decoding:"async",src:e.previewUrl}):n.jsx(Ao,{attachment:e,size:22})}),a?n.jsxs("div",{className:"composer-attachment-meta",children:[n.jsx("strong",{children:e.name}),n.jsx("span",{children:e.kind==="text"&&s!==null?No(s):Yf(e)})]}):null,n.jsx("button",{type:"button",className:"composer-attachment-remove","aria-label":`Remove ${e.name}`,onClick:t,children:n.jsx(Ns,{size:14})})]})}function ah(){return globalThis.crypto?.randomUUID?.()??`attachment-${Date.now()}-${Math.random().toString(36).slice(2)}`}function ih(e){if(e.type.startsWith("image/"))return"image";if(e.type.startsWith("text/"))return"text";const t=e.name.split(".").pop()?.toLowerCase()??"";return eh.has(t)?"text":"file"}async function oh(e){const[t,s]=await Promise.all([ch(e.file),e.kind==="text"?uh(e.file):Promise.resolve(void 0)]);return{id:e.id,name:e.name,mediaType:e.mediaType,sizeBytes:e.sizeBytes,kind:e.kind,...s!==void 0?{lineCount:Zi(s)}:{},...e.relativePath?{relativePath:e.relativePath}:{},contentsBase64:t,...s?{text:dh(s)}:{}}}function lh(e){const t=["KB","MB","GB"];let s=e/1024;for(const r of t){if(s<1024)return`${s.toFixed(s>=10?0:1)} ${r}`;s/=1024}return`${s.toFixed(0)} TB`}function ch(e){return new Promise((t,s)=>{const r=new FileReader;r.onload=()=>{const a=typeof r.result=="string"?r.result:"",[,i=""]=a.split(",",2);t(i)},r.onerror=()=>s(r.error??new Error("Failed to read file")),r.readAsDataURL(e)})}function uh(e){return new Promise((t,s)=>{const r=new FileReader;r.onload=()=>t(typeof r.result=="string"?r.result:""),r.onerror=()=>s(r.error??new Error("Failed to read file")),r.readAsText(e)})}function dh(e){if(e.length<=Qt.maxTextChars)return e;const t=`
|
|
51
|
+
[attachment text truncated]`;return`${e.slice(0,Math.max(0,Qt.maxTextChars-t.length))}${t}`}function fh(){const e=o.useRef([]),t=o.useRef([]),s=o.useRef(!1),[r,a]=o.useState([]),[i,l]=o.useState(null);o.useEffect(()=>{e.current=r},[r]),o.useEffect(()=>()=>{s.current=!0;for(const p of e.current)vs(p);for(const p of t.current)vs(p)},[]);const c=o.useCallback(p=>{if(p.length===0)return;const h=Math.max(0,Qt.maxAttachments-r.length),b=[];let g=0,v=0;for(const y of p){if(y.size>Qt.maxAttachmentBytes){g+=1;continue}if(b.length>=h){v+=1;continue}const S="webkitRelativePath"in y&&typeof y.webkitRelativePath=="string"&&y.webkitRelativePath.trim()?y.webkitRelativePath.trim():void 0;b.push({id:ah(),file:y,name:y.name||"Untitled file",mediaType:y.type||"application/octet-stream",sizeBytes:y.size,kind:ih(y),...S?{relativePath:S}:{},...y.type.startsWith("image/")?{previewUrl:URL.createObjectURL(y)}:{}})}if(b.length>0&&(a([...r,...b]),l(null)),g>0||v>0){const y=[];g>0&&y.push(`${g} file${g===1?"":"s"} exceeded ${lh(Qt.maxAttachmentBytes)}`),v>0&&y.push(`maximum ${Qt.maxAttachments} attachments`),l(y.join("; "))}},[r]),u=o.useCallback(p=>{a(h=>{const b=h.find(v=>v.id===p);b&&vs(b);const g=h.filter(v=>v.id!==p);return g.length===0&&l(null),g})},[]),f=o.useCallback(()=>{for(const p of e.current)vs(p);e.current=[],a([]),l(null)},[]),m=o.useCallback(()=>{const p=e.current;return p.length===0||(e.current=[],t.current=p,a([]),l(null)),p},[]),x=o.useCallback((p,h)=>{if(p.length===0)return;const b=new Set(p.map(g=>g.id));if(t.current=t.current.filter(g=>!b.has(g.id)),h==="restore"&&!s.current){a(g=>{const v=new Set(g.map(S=>S.id)),y=[...p.filter(S=>!v.has(S.id)),...g];return e.current=y,y});return}for(const g of p)vs(g)},[]);return{attachmentError:i,attachments:r,addFiles:c,clearAttachments:f,removeAttachment:u,settleStagedAttachments:x,setAttachmentError:l,stageAttachmentsForSubmit:m}}function vs(e){e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}function hh(e,t){const s=e.slice(0,Math.max(0,Math.min(t,e.length))),r=/(?:^|\s)\/([a-zA-Z0-9_-]*)$/.exec(s);if(!r||typeof r.index!="number")return null;const a=r[0].lastIndexOf("/");if(a<0)return null;const i=r.index+a;return{end:s.length,query:(r[1]??"").toLowerCase(),start:i}}function mh(e,t,s=ka){const r=e.slice(0,Math.max(0,Math.min(t,e.length))),a=/(?:^|\s)\/([a-z][a-z0-9_-]*)\s$/.exec(r);if(!a)return null;const i=s.find(c=>c.id===a[1]);if(!i)return null;const l=a[0].lastIndexOf("/");return l<0||typeof a.index!="number"?null:{command:i,end:r.length,start:a.index+l}}function ph(e,t=ka){return Ol({commands:t,prompt:`/${e}`})}function bi(e,t){return e.length===0?[]:e.filter(s=>t?[s.id,s.name??"",s.label??"",s.description??"",typeof s.implementation?.type=="string"?s.implementation.type:""].join(" ").toLowerCase().includes(t):!0)}function xi(e,t){return e.length===0?[]:e.filter(s=>t?[s.id,s.name,s.description??"",s.gitRepo??"",Di(s)].join(" ").toLowerCase().includes(t):!0).slice(0,8)}function vi({actionCatalog:e,connectedAppMentions:t,mentionApps:s,profileSkills:r,query:a,surface:i,teamMentionMembers:l}){const c=a.toLowerCase();if(i==="team"){const p=l.filter(b=>c?[b.name,b.handle??""].map(Qn).some(g=>g.includes(c)):!0).map(b=>({kind:"team-member",member:b}));return[...Da(e,c,e.length).map(b=>({kind:"action",action:b})),...p]}const u=s.filter(p=>c?[Qn(p.id),Qn(p.name),p.gitRepo?Qn(p.gitRepo):"",Di(p)].some(b=>b.includes(c)):!0).map(p=>({kind:"app",app:p})),f=Da(e,c,e.length).map(p=>({kind:"action",action:p})),m=vr(r,c).map(p=>({kind:"skill",skill:p})),x=Ll(t,c).map(p=>({kind:"connected-app",app:p}));return[...f,...m,...u,...x]}function gh(e,t,s){const r=t?.trim();if(!r)return e;const a=Math.max(0,Math.min(s??0,e.length)),i=e.slice(0,a),l=e.slice(a),c=i&&!/\s$/.test(i)?" ":"",u=l&&!/^\s/.test(l)?" ":"";return`${i}${c}${r}${u}${l}`.replace(/\s+/g," ").trim()}function bh(e){const t=Qn(ja(e)||e.name||e.id);return t?`@${t}`:null}function xh(e){const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return e;try{const s=JSON.parse(t);if(!s||Array.isArray(s)||typeof s!="object")return e;const r=Object.entries(s).filter(([,a])=>a!=null&&a!=="").map(([a,i])=>`${Io(a)}: ${ba(a,i)}`);return r.length?r.join(" · "):e}catch{return e}}function Io(e){const t=e.replace(/Id$/,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replaceAll("_"," ").trim().toLowerCase();return t?`${t[0].toUpperCase()}${t.slice(1)}`:"Input"}function ba(e,t){if(Array.isArray(t))return t.map(r=>ba(e,r)).join(", ");if(t&&typeof t=="object")return Object.entries(t).map(([r,a])=>`${Io(r)}: ${ba(r,a)}`).join(" · ");const s=String(t);return/Id$/.test(e)&&/^[a-z0-9_-]+$/i.test(s)?s.split(/[-_]+/).filter(Boolean).map(r=>`${r[0].toUpperCase()}${r.slice(1)}`).join(" "):s}function vh({action:e,prompt:t,selectedActionMentionText:s,selectedInvocationPosition:r}){if(!e)return null;const a=s?.trim(),i=a?.startsWith("@")?a:bh(e);return i?gh(xh(t),i,r):null}function yh({attachmentCount:e,prompt:t,selectedAction:s,selectedCommand:r}){return!!(t.trim()||e>0||s||r)}const jh=new Set(["openpond-agent-authoring","openpond-skill-authoring","openpond-taskset-authoring","openpond-refiner-authoring"]);function wh({activeMentionKey:e,activeSkillKey:t,activeSlashKey:s,addMenuIndex:r,addMenuItems:a,addMenuOpen:i,addMenuPanelRef:l,addMenuRef:c,attachmentCount:u,composerRef:f,createImproveActive:m,goalRuntimeActive:x,inputRef:p,inputShellRef:h,mentionQuery:b,prompt:g,selectedActionId:v,selectAddMenuItem:y,setActionIndex:S,setActionMenuDismissedPrompt:k,setAddMenuIndex:A,setAddMenuOpen:R,setAddMenuQuery:E,setMentionMenuDismissedPrompt:C,setMentionIndex:$,setSkillIndex:F,setSkillMenuDismissedPrompt:U,skillMatchCount:H,skillQuery:z,slashMatchCount:V,slashQuery:W,showActionMenu:le,showMentionMenu:be,showSkillMenu:re}){const[ce,q]=o.useState({}),[ye,G]=o.useState({}),[D,_]=o.useState({}),[ae,Ie]=o.useState({});return o.useEffect(()=>{$(0)},[b]),o.useEffect(()=>{F(0)},[H,z]),o.useEffect(()=>{S(0)},[V,W]),o.useEffect(()=>{const se=p.current?.element,fe=se?.parentElement;if(!se||!fe||typeof ResizeObserver>"u")return;const K=new ResizeObserver(()=>p.current?.resize());return K.observe(fe),()=>K.disconnect()},[]),o.useEffect(()=>{if(!i)return;function se(K){const te=K.target,J=p.current?.element?.parentElement;!c.current?.contains(te)&&!l.current?.contains(te)&&!J?.contains(te)&&(R(!1),E(""),C(e),k(s),U(t))}function fe(K){if(K.key==="Escape"){K.preventDefault(),R(!1),E(""),C(e),k(s),U(t);return}if(a.length!==0){if(K.key==="ArrowDown"){K.preventDefault(),A(te=>(te+1)%a.length);return}if(K.key==="ArrowUp"){K.preventDefault(),A(te=>(te-1+a.length)%a.length);return}if(K.key==="Home"){K.preventDefault(),A(0);return}if(K.key==="End"){K.preventDefault(),A(a.length-1);return}if(K.key==="Enter"){K.preventDefault();const te=a[r]??a[0];te&&y(te)}}}return document.addEventListener("pointerdown",se),document.addEventListener("keydown",fe),()=>{document.removeEventListener("pointerdown",se),document.removeEventListener("keydown",fe)}},[e,t,s,r,a,i]),o.useLayoutEffect(()=>{if(!i)return;const se=h.current;if(!se)return;const fe=se;function K(){Ie(Qd(fe))}return K(),window.addEventListener("resize",K),window.addEventListener("scroll",K,!0),()=>{window.removeEventListener("resize",K),window.removeEventListener("scroll",K,!0)}},[i,u,m,x]),o.useLayoutEffect(()=>{if(!le)return;const se=p.current?.element,fe=f.current;if(!se||!fe)return;const K=se,te=fe;function J(){_(ea(K,te))}return J(),window.addEventListener("resize",J),window.addEventListener("scroll",J,!0),()=>{window.removeEventListener("resize",J),window.removeEventListener("scroll",J,!0)}},[u,m,x,g,v,le]),o.useLayoutEffect(()=>{if(!re)return;const se=p.current?.element,fe=f.current;if(!se||!fe)return;const K=se,te=fe;function J(){G(ea(K,te))}return J(),window.addEventListener("resize",J),window.addEventListener("scroll",J,!0),()=>{window.removeEventListener("resize",J),window.removeEventListener("scroll",J,!0)}},[u,m,x,g,v,re]),o.useLayoutEffect(()=>{if(!be)return;const se=p.current?.element,fe=f.current;if(!se||!fe)return;const K=se,te=fe;function J(){q(ea(K,te))}return J(),window.addEventListener("resize",J),window.addEventListener("scroll",J,!0),()=>{window.removeEventListener("resize",J),window.removeEventListener("scroll",J,!0)}},[u,m,x,g,v,be]),{actionMenuStyle:D,addMenuStyle:ae,mentionMenuStyle:ce,skillMenuStyle:ye}}const kh=o.lazy(()=>Ae(()=>import("./ComposerCreateImproveStrip-CEgh4OtN.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(e=>({default:e.ComposerCreateImproveStrip}))),Ch=ka.find(e=>e.id==="submit-issue"),Sh=[],Rh=[];function To({experience:e="development",mode:t,surface:s="chat",teamUseModel:r=!1,teamUseModelLocked:a=!1,teamMentionMembers:i=[],onTeamUseModelChange:l,prompt:c,composeNotice:u=null,mentionApps:f=[],connectedAppMentions:m=[],profileSkills:x=[],selectedMentionAppId:p=null,contextWindowStatus:h,goalRuntime:b=null,subagentRuntime:g=null,createImproveRuntime:v=null,busy:y,readOnlyReason:S=null,running:k=y,taskSessionId:A=null,taskEvents:R=Rh,steerActiveResponses:E=!1,submissionScopeKey:C="default",getCurrentSubmissionScopeKey:$,voiceInputChannelKey:F=C,initialSteerDrafts:U=Sh,showProjectFooter:H=!0,hideModelControls:z=!1,autoFocus:V=!1,focusRequestId:W=0,attachmentRequest:le=null,connection:be,providerSettings:re=null,provider:ce,model:q,projectTarget:ye,profileTarget:G=null,actionCatalog:D=[],requestedAction:_=null,workspaceTarget:ae,codexPermissionMode:Ie,codexReasoningEffort:se,openPondCommandAccessMode:fe,onProviderChange:K,onProviderSetupOpen:te,onProjectTargetChange:J,onProfileTargetChange:Y,onWorkspaceTargetChange:ue,onModelChange:Pe,onCodexPermissionModeChange:ke,onCodexReasoningEffortChange:we,onOpenPondCommandAccessModeChange:M,onPromptChange:T,onMentionAppSelect:P,onSaveTaskDraft:Q,showToast:ne,onSubmit:$e,onStop:xe,onPauseGoal:De}){const jt=o.useMemo(()=>{for(let d=R.length-1;d>=0;d--){const j=R[d];if(j.sessionId!==A||!["session.started","session.updated","session.title.updated"].includes(j.name))continue;const L=j.data,O=zl.safeParse(L&&typeof L=="object"&&"session"in L?L.session:null);if(O.success)return typeof O.data.metadata?.nativeReadOnlyReason=="string"?O.data.metadata.nativeReadOnlyReason:null}return S},[S,R,A]),ie=o.useRef(null),w=o.useRef(null),I=o.useRef(null),ee=!(Ms(ce)||["claude-code","opencode","grok-build"].includes(ce)),Ce=E&&ee,X=xd(be,A,R,ee),_e=o.useRef(null),Le=o.useRef(null),lt=o.useRef(null),Xe=o.useRef(null),ht=o.useRef(0),ct=_&&D.some(d=>d.id===_.actionId)?_:null,rt=o.useRef(!1),Ut=o.useRef(0),Yt=o.useRef(ct?.requestId??0),Zt=o.useRef(new Set),vn=o.useRef(new Set),[Se,We]=o.useState(c.length),Ts=o.useRef(Se);Ts.current=Se;const[$s,yn]=o.useState(0),[Ps,jn]=o.useState(0),[_s,wn]=o.useState(0),[Ge,en]=o.useState(0),[Ls,Ye]=o.useState(""),[kn,Je]=o.useState(null),[Os,at]=o.useState(null),[$r,Zn]=o.useState(null),[Ue,wt]=o.useState(!1),[Cn,zs]=o.useState(!1),[mt,Nt]=o.useState(ct?.actionId??null),[At,pt]=o.useState(null),[kt,Ze]=o.useState(null),[es,Ct]=o.useState(null),[ts,Sn]=o.useState(null),[ns,Rn]=o.useState(!1),[En,ss]=o.useState(()=>({[C]:U})),[tn,Mn]=o.useState(null),[St,me]=o.useState(!1),[Fs,qt]=o.useState(""),[Nn,Ds]=o.useState(!1),{attachmentError:An,attachments:Re,addFiles:Ke,removeAttachment:It,settleStagedAttachments:Bs,setAttachmentError:gt,stageAttachmentsForSubmit:Pr}=fh(),In=o.useRef(0);o.useEffect(()=>{!le||In.current===le.id||(In.current=le.id,Ke([le.file]))},[Ke,le]);const Us=o.useCallback(d=>{const j=sh(d,Re);return!j||Re.length>=Qt.maxAttachments||j.size>Qt.maxAttachmentBytes?!1:(Ke([j]),!0)},[Ke,Re]),_r=pf({experience:e,mode:t,surface:s}),nn=e==="development"||e==="work"&&ye.value!=="none",Lr=Fl(ce,q,re),Tn="top",qs=o.useId(),Or=o.useId(),Hs=o.useId(),Vs={"--context-fill":`${Math.round((h.percent??0)/100*360)}deg`,"--context-bar-fill":`${h.percent??0}%`},Oe=o.useMemo(()=>D.find(d=>d.id===mt)??null,[D,mt]),Tt=o.useMemo(()=>Dl(ce,e),[e,ce]),ut=o.useMemo(()=>nn?x:x.filter(d=>!jh.has(d.name)),[e,x]),ze=o.useMemo(()=>Tt.find(d=>d.id===At)??null,[Tt,At]),sn=vh({action:Oe,prompt:c,selectedActionMentionText:es,selectedInvocationPosition:kt}),Ws=yh({attachmentCount:Re.length,prompt:c,selectedAction:Oe,selectedCommand:ze}),zr=o.useMemo(()=>{const d=Math.max(0,Math.min(kt??0,c.length));return ze?{icon:ze.id==="agent"?"plus":ze.id==="skill"?"skill":"workflow",key:`command:${ze.id}`,label:ze.id==="agent"?"Author Agent":ze.id,position:d,onRemove:()=>{pt(null),Ze(null),Ct(null)}}:Oe?{icon:Oe.implementation?.type==="openpond-agent"?"bot":"workflow",key:`action:${Oe.id}`,label:ja(Oe),position:d,onRemove:()=>{Nt(null),Ze(null),Ct(null)}}:null},[c.length,Oe,ze,kt]),rn=ts===C,Gs=rn||!Ws,Ks=rn?"Preparing files":k?Ce?"Steer":"Queue for next turn":"Send",Qe=rn,Qs=rn;function $t(d=C){if(jt)return!1;const j=Zt.current;return j.has(d)?!1:(j.add(d),!0)}function Pt(d){Zt.current.delete(d)}function Xs(d){return Zt.current.has(d)}function an(){return Xs(C)}function Js(d){Sn(j=>j===d?null:j)}const $n=o.useMemo(()=>{const d=Bl(re,{enabledOnly:!0}).map(he=>({...he,description:void 0})),j=nn?d:d.filter(he=>he.value!=="codex"),L=ae.value==="cloud"&&nn?j.filter(he=>he.value==="openpond"):j,O=L.some(he=>he.value===ce)?L:[{value:ce,label:Ul(ce,re),description:"Current"},...L],de={value:"setup-provider",label:"New Model/Provider",icon:"plus",separatorBefore:!0};return[...O,de]},[ce,re,nn,ae.value]),Ys=o.useMemo(()=>va(ce,re),[ce,re]),Fe=o.useMemo(()=>ql(c,Math.min(Se,c.length)),[Se,c]),Pn=Fe?`${c}:${Fe.start}:${Math.min(Se,c.length)}`:null,dt=o.useMemo(()=>Fe?vi({actionCatalog:D,connectedAppMentions:m,mentionApps:f,profileSkills:ut,query:Fe.query,surface:s,teamMentionMembers:i}):[],[D,m,f,Fe,ut,s,i]),rs=o.useMemo(()=>s==="team"?[]:vi({actionCatalog:D,connectedAppMentions:m,mentionApps:f,profileSkills:ut,query:"",surface:s,teamMentionMembers:i}).filter(d=>d.kind!=="skill"),[D,m,f,ut,s,i]),_n=!!(!Ue&&!Qe&&Fe&&Pn&&kn!==Pn&&dt.length>0),et=o.useMemo(()=>ld(c,Math.min(Se,c.length)),[Se,c]),Ht=et?`${c}:${et.start}:${et.end}`:null,ft=o.useMemo(()=>et?vr(ut,et.query):[],[et,ut]),Vt=!!(!Ue&&!Qe&&et&&Ht&&$r!==Ht),ve=o.useMemo(()=>hh(c,Math.min(Se,c.length)),[Se,c]),Ln=ve?`${c}:${ve.start}:${ve.end}`:null,as=o.useMemo(()=>ve?bi(D,ve.query):[],[D,ve]),Zs=o.useMemo(()=>ve&&s!=="team"?xi(f,ve.query):[],[ve,f,s]),is=o.useMemo(()=>ve&&s!=="team"?ph(ve.query,Tt):[],[ve,Tt,s]),er=o.useMemo(()=>ve&&s!=="team"?vr(ut,ve.query):[],[ve,ut,s]),it=o.useMemo(()=>[...as.map(d=>({kind:"action",action:d})),...er.map(d=>({kind:"skill",skill:d})),...is.map(d=>({kind:"command",command:d})),...Zs.map(d=>({kind:"app-context",app:d}))],[as,Zs,is,er]),os=!!(!Ue&&!Qe&&ve&&Ln&&Os!==Ln),On=o.useMemo(()=>Tt.map(d=>({kind:"command",command:d})),[Tt]),on=o.useMemo(()=>[...bi(D,"").map(d=>({kind:"action",action:d})),...xi(f,"").map(d=>({kind:"app-context",app:d}))],[D,f]),Wt=o.useMemo(()=>vr(ut,"").map(d=>({kind:"skill",skill:d})),[ut]),ln=o.useMemo(()=>{const d=[{id:"add",items:e==="work"?[{kind:"files"},{kind:"folder"}]:[{kind:"files"}],label:"Add"}];return on.length>0&&d.push({id:"slash",items:on.map(j=>({kind:"slash",item:j})),label:"Agents and actions",queryScope:"slash"}),Wt.length>0&&d.push({id:"skills",items:Wt.map(j=>({kind:"slash",item:j})),label:"Skills",queryScopes:["slash","mentions"]}),d.push({id:"openpond",items:On.map(j=>({kind:"slash",item:j})),label:"OpenPond",grid:!0,queryScope:"slash"}),d.push({emptyLabel:"No mentions available",id:"mentions",items:rs.map(j=>({kind:"mention",item:j})),label:"@"}),d},[rs,On,Wt,on,e]),zn=o.useMemo(()=>Cf(ln,Ls),[Ls,ln]),cn=o.useMemo(()=>zn.flatMap(d=>d.items),[zn]);o.useEffect(()=>{Ue&&en(d=>d<cn.length?d:0)},[cn.length,Ue]);const un=!!b,bt=un&&b?.tone==="active",ls=bt?"Pause goal":"Stop response",Te=bt?"pause":"stop",Fr=e==="work"||ye.value!=="none",Dr=pa(En,C,U),cs=tn?.scopeKey===C?tn.draftId:null;function Fn(d,j){ss(L=>wd(L,d,j,d===C?U:[]))}o.useLayoutEffect(()=>{I.current?.resize()},[Re.length,An,v,b,c,mt,At,kt]),o.useEffect(()=>{if(!V){rt.current=!1;return}if(rt.current||Qe)return;const d=window.requestAnimationFrame(()=>{rt.current=!0;const j=document.activeElement;j&&j!==document.body&&j!==document.documentElement||I.current?.focusAtPromptIndex(c.length)});return()=>window.cancelAnimationFrame(d)},[V,Qe,c.length]),o.useEffect(()=>{!W||Ut.current===W||Qe||(Ut.current=W,window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(c.length)}))},[W,Qe,c.length]),o.useEffect(()=>{b||Rn(!1)},[b]),o.useEffect(()=>{mt&&!D.some(d=>d.id===mt)&&(Nt(null),Ze(null))},[D,mt]),o.useEffect(()=>{if(!_||_.requestId<=Yt.current)return;const d=D.find(j=>j.id===_.actionId);d&&(Yt.current=_.requestId,Nt(d.id),pt(null),Ze(0),Ct(null),T(""),We(0),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(0,{afterToken:!0})}))},[D,T,_]),o.useEffect(()=>{!Oe&&!ze||Ze(d=>d===null?0:Math.max(0,Math.min(d,c.length)))},[c.length,Oe,ze]),o.useEffect(()=>{if(!p||!P)return;const d=f.find(j=>j.id===p);(!d||!Hl(c,d))&&P(null)},[f,P,c,p]);const{actionMenuStyle:Br,addMenuStyle:Ur,mentionMenuStyle:_t,skillMenuStyle:qr}=wh({activeMentionKey:Pn,activeSkillKey:Ht,activeSlashKey:Ln,addMenuIndex:Ge,addMenuItems:cn,addMenuOpen:Ue,addMenuPanelRef:Xe,addMenuRef:lt,attachmentCount:Re.length,composerRef:ie,createImproveActive:!!v,goalRuntimeActive:!!b,inputRef:I,inputShellRef:w,mentionQuery:Fe?.query,prompt:c,selectedActionId:mt,selectAddMenuItem:Vn,setActionIndex:wn,setActionMenuDismissedPrompt:at,setAddMenuIndex:en,setAddMenuOpen:wt,setAddMenuQuery:Ye,setMentionMenuDismissedPrompt:Je,setMentionIndex:yn,setSkillIndex:jn,setSkillMenuDismissedPrompt:Zn,skillMatchCount:ft.length,skillQuery:et?.query,slashMatchCount:it.length,slashQuery:ve?.query,showActionMenu:os,showMentionMenu:_n,showSkillMenu:Vt});function Lt(){Nt(null),pt(null),Ze(null),Ct(null)}function Hr(){Lt(),T(""),We(0)}function Rt(d){qt(d.trim()),me(!0)}function Vr(){Nn||(me(!1),Lt())}async function Wr(){return await(bt&&De?De():xe())}function Gt(d,j){const L=Math.max(0,Math.min(Se,c.length)),O=j?Math.max(0,Math.min(j.start,c.length)):L,de=j?Math.max(O,Math.min(j.end,c.length)):O,he=c.slice(0,O),Ee=c.slice(de),xt=he&&!/\s$/.test(he)?" ":"",Ot=Ee&&!/^\s/.test(Ee)?" ":"",pn=`${Wl(d)} `,Mt=`${xt}${pn}${Ot}`,gn=`${he}${Mt}${Ee}`,ot=he.length+Mt.length;return T(gn),P?.(d.id),We(ot),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(ot)}),ot}function Dn(d){if(!Fe)return;const j=Math.max(0,Math.min(Se,c.length));Gt(d,{start:Fe.start,end:j})}function Bn(d,j,L=null){const O=Math.max(0,Math.min(Se,c.length)),de=j?Math.max(0,Math.min(j.start,c.length)):O,he=j?Math.max(de,Math.min(j.end,c.length)):de,Ee=`${c.slice(0,de)}${c.slice(he)}`;return Nt(d.id),pt(null),Ze(de),Ct(L?.startsWith("@")?L:null),at(null),T(Ee),We(de),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(de,{afterToken:!0})}),de}function qe(d){if(!Fe)return;const j=Math.max(0,Math.min(Se,c.length)),L=Math.max(0,Math.min(Fe.start,c.length)),O=Math.max(L,Math.min(j,c.length));Bn(d,{start:L,end:O},c.slice(L,O).trim())}function dn(d,j){const L=Math.max(0,Math.min(Se,c.length)),O=j?Math.max(0,Math.min(j.start,c.length)):L,de=j?Math.max(O,Math.min(j.end,c.length)):O,he=c.slice(0,O),Ee=c.slice(de),xt=he&&!/\s$/.test(he)?" ":"",Ot=Ee&&!/^\s/.test(Ee)?" ":"",pn=`${Gl(d)} `,Mt=`${xt}${pn}${Ot}`,gn=`${he}${Mt}${Ee}`,ot=he.length+Mt.length;return T(gn),We(ot),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(ot)}),ot}function Gr(d){if(!Fe)return;const j=Math.max(0,Math.min(Se,c.length));dn(d,{start:Fe.start,end:j})}function tr(d,j){const L=Math.max(0,Math.min(Se,c.length)),O=j?Math.max(0,Math.min(j.start,c.length)):L,de=j?Math.max(O,Math.min(j.end,c.length)):O,he=d.handle||Qn(d.name),Ee=c.slice(0,O),xt=c.slice(de),Ot=Ee&&!/\s$/.test(Ee)?" ":"",pn=xt&&!/^\s/.test(xt)?" ":"",Mt=`${Ot}@${he} ${pn}`,gn=`${Ee}${Mt}${xt}`,ot=Ee.length+Mt.length;return T(gn),We(ot),window.requestAnimationFrame(()=>I.current?.focusAtPromptIndex(ot)),ot}function us(d){if(d.kind==="team-member"){if(!Fe)return;const j=Math.max(0,Math.min(Se,c.length));tr(d.member,{start:Fe.start,end:j});return}if(d.kind==="app"){Dn(d.app);return}if(d.kind==="connected-app"){Gr(d.app);return}if(d.kind==="skill"){if(!Fe)return;const j=Math.max(0,Math.min(Se,c.length));He(d.skill,{start:Fe.start,end:j});return}qe(d.action)}function Kr(d){ve&&(at(null),Gt(d,{start:ve.start,end:ve.end}))}function Et(d){ve&&Bn(d,ve)}function ds(d,j){const L=Math.max(0,Math.min(Se,c.length)),O=j?Math.max(0,Math.min(j.start,c.length)):L,de=j?Math.max(O,Math.min(j.end,c.length)):O,he=`${c.slice(0,O)}${c.slice(de)}`;return pt(d.id),Nt(null),Ze(O),Ct(null),at(null),T(he),We(O),d.id==="submit-issue"&&Rt(he),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(O,{afterToken:!0})}),O}function Un(d){ve&&ds(d,ve)}function fn(d){if(d.kind==="command"){Un(d.command);return}if(d.kind==="app-context"){Kr(d.app);return}if(d.kind==="skill"){if(!ve)return;He(d.skill,ve);return}Et(d.action)}function He(d,j){const L=cd(c,j,d);return Zn(null),Je(null),at(null),T(L.value),We(L.cursor),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(L.cursor)}),L.cursor}function nr(d){et&&He(d,et)}function qn(){_e.current?.click()}function Hn(){Le.current?.click()}function tt(d){ht.current=d,Ye(""),en(0)}function fs(){const d=Math.max(0,Math.min(Se,c.length)),j=Math.max(0,Math.min(ht.current,c.length));return d>=j?{start:j,end:d}:{start:d,end:d}}function Vn(d){const j=fs();if(wt(!1),Ye(""),d.kind==="files"||d.kind==="folder"){if(j.start!==j.end){const L=`${c.slice(0,j.start)}${c.slice(j.end)}`;T(L),We(j.start)}tt(j.start),d.kind==="folder"?Hn():qn();return}if(d.kind==="slash"){if(d.item.kind==="command"){tt(ds(d.item.command,j));return}if(d.item.kind==="app-context"){tt(Gt(d.item.app,j));return}if(d.item.kind==="skill"){tt(He(d.item.skill,j));return}tt(Bn(d.item.action,j));return}if(d.item.kind==="team-member"){tt(tr(d.item.member,j));return}if(d.item.kind==="app"){tt(Gt(d.item.app,j));return}if(d.item.kind==="connected-app"){tt(dn(d.item.app,j));return}if(d.item.kind==="skill"){tt(He(d.item.skill,j));return}tt(Bn(d.item.action,j))}const{stageCurrentSteerDraft:hs,submitImmediateSteer:hn}=od({running:k,scope:C,inbox:X,getPrompt:()=>I.current?.getPrompt()??c,hasFilesOrActions:!!(Re.length||Oe||ze),provider:ce,model:q,codexPermissionMode:Ie,codexReasoningEffort:se,openPondCommandAccessMode:fe,getCurrentSubmissionScopeKey:$,onSubmit:$e,showToast:ne,begin:d=>vn.current.has(d)?!1:(vn.current.add(d),!0),finish:d=>{vn.current.delete(d)},clear:Hr,setError:gt,stageLocal:d=>{Fn(C,j=>[...j,fo(d)]),window.requestAnimationFrame(()=>I.current?.focusAtPromptIndex(0))}});async function ms(d){const j=C;if(tn?.scopeKey===j)return!1;const L=pa(En,j,U).find(O=>O.id===d);if(!L)return!1;Mn({draftId:d,scopeKey:j}),gt(null);try{const O=k,de=await $e([],null,null,{preservePrompt:!0,promptOverride:L.prompt,...O?{turnMetadata:{interactionKind:"steer"}}:{}});return Fn(j,he=>jd(he,d,de)),de}catch(O){return gt(O instanceof Error?O.message:String(O)),!1}finally{Mn(O=>O?.scopeKey===j&&O.draftId===d?null:O)}}function ps(d){cs!==d&&Fn(C,j=>ho(j,d))}function sr(d){if(cs!==d.id){if(Re.length>0||mt||At){ne("Finish the current composer before editing a queued message.","info");return}Fn(C,j=>yd(j,d.id,c)),T(d.prompt),We(d.prompt.length),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(d.prompt.length)})}}async function Kt(d={}){const j=C;if(!$t(j))return!1;wt(!1),gt(null);const L=Pr();try{Sn(L.length>0?j:null);let O;try{O=await Promise.all(L.map(oh))}finally{Js(j)}const de=Oe&&sn&&!c.trim()?sn:void 0,he=d.promptOverride??de,Ee=await $e(O,Oe,ze,sn||he||d.preservePrompt?{...sn?{displayPrompt:sn}:{},...he!==void 0?{promptOverride:he}:{},...d.preservePrompt?{preservePrompt:!0}:{}}:void 0);return Bs(L,Ee?"dispose":"restore"),Ee&&!Kl(Oe)&&Lt(),Ee}catch(O){return Bs(L,"restore"),gt(O instanceof Error?O.message:String(O)),!1}finally{Pt(j),Js(j)}}async function mn(){if(k){Ce?await hn():await hs();return}if(an())return;const d=Oe||ze?null:Bi(c);if(ze?.id==="submit-issue"||d?.command==="submit-issue"){Rt(d?.command==="submit-issue"?d.args:c);return}Gs||await Kt()}function rr(){pd(F)||mn()}async function Wn(d){if(an()||Nn)return!1;const j=C;if(!$t(j))return!1;Ds(!0),wt(!1),gt(null);try{const L=await $e([],null,Ch,{displayPrompt:`/submit-issue ${d.title.trim()}`,promptOverride:Vl(d)});return L&&(me(!1),Lt()),L}catch(L){return gt(L instanceof Error?L.message:String(L)),!1}finally{Pt(j),Ds(!1)}}async function ar(d,j){const L=I.current?.getPrompt()??c,O=Math.max(0,Math.min(Ts.current,L.length)),de=co(L,d,j.submit?L.length:O),he=await dd({appendToEnd:j.submit,currentScopeKey:$?.()??C,cursorIndex:O,originScopeKey:C,prompt:L,setOriginDraft:Ee=>T(Ee),submitFromOrigin:Ee=>Kt({preservePrompt:!0,promptOverride:Ee}),transcript:d});if(he==="retained"){ne("The voice message couldn't be sent. It is saved in the original chat draft.","error");return}if(he==="submitted"){ne("Voice message sent to the chat where recording started.","success");return}if(j.submit){if(k){Ce?await hn(de.value):await hs(de.value);return}await Kt({promptOverride:de.value});return}We(de.cursorIndex),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(de.cursorIndex)})}return jt?n.jsx("p",{className:"composer dock",role:"status",children:jt}):n.jsxs("form",{ref:ie,className:`composer ${t} ${v?"has-create-runtime":""} ${un?"has-goal-runtime":""} ${Re.length>0?"has-attachments":""} ${Oe||ze?"has-selected-action":""} ${An?"has-attachment-error":""} ${Ue?"has-add-menu":""}`,onSubmit:d=>{d.preventDefault(),mn()},children:[n.jsx("input",{webkitdirectory:"",ref:Le,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:d=>{Ke(Array.from(d.currentTarget.files??[])),d.currentTarget.value=""}}),_n&&n.jsx(Ef,{items:dt,mentionIndex:$s,onSelect:us,onSelectIndex:yn,style:_t}),Vt&&n.jsx(Hf,{items:ft,onSelect:nr,onSelectIndex:jn,skillIndex:Ps,style:qr}),os&&n.jsx(Vf,{actionCatalogCount:D.length,actionIndex:_s,items:it,onSelect:fn,onSelectIndex:wn,style:Br}),n.jsx(Wf,{busy:Nn,initialDescription:Fs,open:St,onClose:Vr,onSubmit:Wn}),H&&n.jsxs("div",{className:"composer-footer",children:[H?n.jsx(Ed,{busy:y||ye.busy,placement:Tn,state:ye,onChange:J}):null,G&&Y?n.jsx(po,{busy:y,placement:Tn,state:G,onChange:Y}):null,Fr?n.jsx(Md,{busy:y,placement:Tn,state:ae,onChange:ue}):null]}),v?n.jsx(o.Suspense,{fallback:null,children:n.jsx(kh,{runtime:v})}):null,X.enabled?n.jsx(kd,{inbox:X,onRestore:d=>{T(c.trim()?`${c}
|
|
52
|
+
|
|
53
|
+
${d}`:d),I.current?.focusAtPromptIndex(0)}}):n.jsx(Id,{drafts:Dr,sendingDraftId:cs,onDeleteDraft:ps,onEditDraft:sr,onSteerDraft:d=>{ms(d)}}),un&&b&&n.jsx(Ad,{detailsOpen:ns,goalRuntime:b,objectiveId:Hs,subagentRuntime:g,onToggleDetails:()=>Rn(d=>!d)}),u&&n.jsx("div",{className:`composer-notice ${u.tone}`,role:"status",children:u.message}),X.enabled&&k&&Ws&&n.jsxs("div",{className:"task-input-actions",children:[n.jsx("button",{type:"button",disabled:!!X.busyId||!X.snapshot?.acceptingInput,onClick:()=>{hn()},children:"Steer now"}),n.jsx("button",{type:"button",disabled:!!X.busyId,onClick:()=>{hs()},children:"Queue for next turn"})]}),n.jsxs("div",{className:"composer-input-shell",ref:w,children:[Ue&&s!=="team"&&n.jsx(Ra,{id:qs,ariaLabel:"Add to message",className:"composer-add-command-menu",menuIndex:Ge,menuRef:Xe,sections:zn,style:Ur,variant:"add",onSelect:Vn,onSelectIndex:en}),Re.length>0&&n.jsx("div",{className:"composer-attachments","aria-label":"Selected attachments",children:Re.map(d=>n.jsx(rh,{attachment:d,onRemove:()=>It(d.id)},d.id))}),An&&n.jsx("div",{className:"composer-attachment-error",role:"status",children:An}),n.jsx("div",{className:"composer-textarea-frame",onClick:d=>{d.target===d.currentTarget&&I.current?.focusAtPromptIndex(Se)},children:n.jsx(ff,{ref:I,connectedAppMentions:m,disabled:Qe,onCursorChange:We,onKeyDown:d=>{if(Ue&&["ArrowDown","ArrowUp","Home","End","Enter","Escape"].includes(d.key)){d.preventDefault();return}if(_n){if(d.key==="ArrowDown"){d.preventDefault(),yn(j=>(j+1)%dt.length);return}if(d.key==="ArrowUp"){d.preventDefault(),yn(j=>(j-1+dt.length)%dt.length);return}if(d.key==="Enter"||d.key==="Tab"){d.preventDefault(),us(dt[$s]??dt[0]);return}if(d.key==="Escape"){d.preventDefault(),Je(Pn);return}}if(Vt){if(ft.length>0&&d.key==="ArrowDown"){d.preventDefault(),jn(j=>(j+1)%ft.length);return}if(ft.length>0&&d.key==="ArrowUp"){d.preventDefault(),jn(j=>(j-1+ft.length)%ft.length);return}if(ft.length>0&&(d.key==="Enter"||d.key==="Tab")){d.preventDefault(),nr(ft[Ps]??ft[0]);return}if(d.key==="Escape"){d.preventDefault(),Zn(Ht??c);return}}if(os){if(it.length>0&&d.key==="ArrowDown"){d.preventDefault(),wn(j=>(j+1)%it.length);return}if(it.length>0&&d.key==="ArrowUp"){d.preventDefault(),wn(j=>(j-1+it.length)%it.length);return}if(it.length>0&&(d.key==="Enter"||d.key==="Tab")){d.preventDefault(),fn(it[_s]??it[0]);return}if(d.key==="Escape"){d.preventDefault(),at(Ln??c);return}}if((Oe||ze)&&d.key==="Backspace"&&Se===(kt??0)){d.preventDefault(),Lt();return}if(mf(d.key,d.ctrlKey,d.metaKey,d.shiftKey,e,s,!!Q)){d.preventDefault(),hf({attachmentsCount:Re.length,hasSelectedInvocation:!!(Oe||ze),onSave:Q,onSaved:Lt,prompt:c,saving:Cn,setSaving:zs,showInfo:j=>ne(j,"info")});return}d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),rn||mn())},onPasteFiles:Ke,onPasteTextAsAttachment:Us,onPromptChange:(d,j)=>{if(Ue){const O=Math.max(0,Math.min(ht.current,d.length));j<O?(ht.current=j,Ye("")):Ye(d.slice(O,j))}const L=s==="team"?null:mh(d,j,Tt);if(L){const O=`${d.slice(0,L.start)}${d.slice(L.end)}`,de=L.start;T(d),We(j),window.requestAnimationFrame(()=>{pt(L.command.id),Nt(null),Ze(de),at(null),T(O),We(de),L.command.id==="submit-issue"&&Rt(O),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(de,{afterToken:!0})})});return}T(d)},onTokenPositionChange:d=>{if(!(!Oe&&!ze)){if(d===null){Lt();return}Ze(d)}},placeholder:_r,prompt:c,token:zr})}),n.jsx(Uf,{surface:s,teamUseModel:r,teamUseModelLocked:a,onTeamUseModelChange:l,addFiles:Ke,addMenuId:qs,addMenuOpen:Ue,addMenuRef:lt,busy:y,codexPermissionMode:Ie,codexReasoningEffort:se,connection:be,contextStatusStyle:Vs,contextStatusTooltipId:Or,contextWindowStatus:h,disabled:Qs,dropdownPlacement:Tn,fileInputRef:_e,modelValue:Lr,modelOptions:Ys,hideModelControls:z,openPondCommandAccessMode:fe,showCommandAccess:nn,profileTarget:H?null:G,onCodexPermissionModeChange:ke,onCodexReasoningEffortChange:we,onOpenPondCommandAccessModeChange:M,onProfileTargetChange:Y,onModelChange:Pe,onOpenFilePicker:qn,onProviderChange:K,onProviderSetupOpen:te,onSend:rr,onStop:Wr,onToggleAddMenu:()=>{const d=Math.max(0,Math.min(Se,c.length));Ue||(ht.current=d,Ye(""),en(0),wt(!0)),window.requestAnimationFrame(()=>{I.current?.focusAtPromptIndex(d)})},onTranscript:ar,voiceInputChannelKey:F,provider:ce,providerSettings:re,providerOptions:$n,running:k,sendDisabled:Gs,sendTooltip:Ks,showToast:ne,stopIcon:Te,stopLabel:ls})]})]})}const yi=o.memo(function({draftStore:t,...s}){const r=Ql(t),a=t.getScopeKey(),i=o.useCallback(l=>{t.setForScope(a,l)},[a,t]);return n.jsx(Xl,{id:"composer",children:n.jsx(To,{...s,prompt:r,onPromptChange:i})})});function Eh({questions:e,answers:t,disabled:s,onChange:r}){return n.jsx("div",{className:"native-question-fields",children:e.map(a=>n.jsxs("fieldset",{disabled:s,children:[n.jsx("legend",{children:a.question}),a.options.map(i=>{const l=(t[a.question]??"").split(", ");return n.jsxs("label",{title:i.description,children:[n.jsx("input",{type:a.multiSelect?"checkbox":"radio",name:a.question,checked:l.includes(i.label),onChange:c=>{const u=a.multiSelect?(c.target.checked?[...l.filter(Boolean),i.label]:l.filter(f=>f!==i.label)).join(", "):i.label;r({...t,[a.question]:u})}}),i.label,i.description?n.jsx("small",{children:i.description}):null]},i.label)}),n.jsxs("label",{children:["Your answer",n.jsx("input",{type:"text",maxLength:8e3,value:t[a.question]??"",onChange:i=>r({...t,[a.question]:i.target.value})})]})]},a.question))})}function ji({approval:e,onResolve:t}){const[s,r]=o.useState(null),[a,i]=o.useState({});if(o.useEffect(()=>{r(null),i({})},[e?.id]),!e||e.kind==="create_plan")return null;const l=Mh(e.detail),c=typeof e.providerRequestId=="string"&&e.providerRequestId.startsWith("native-agent:");let u=[],f=[];if(c)try{const h=JSON.parse(e.detail);u=h.options??[],f=h.questions??[]}catch{}const m=c?u.some(h=>h.kind==="allow_always"):e.kind!=="subagent_patch_apply",x=u.find(h=>h.kind==="allow_always")?.name;async function p(h){if(!(!e||s)){r(h);try{await t(e.id,h,h==="accept"&&f.length?a:void 0)}catch{r(null)}}}return n.jsx("div",{className:"approval-request-shell",role:"status","aria-live":"polite",children:n.jsxs("section",{className:"approval-request-card","aria-label":`${wi(e.kind)} approval request`,children:[n.jsxs("div",{className:"approval-request-copy",children:[n.jsx("div",{className:"approval-request-header",children:n.jsx("span",{children:wi(e.kind)})}),n.jsx("code",{className:"approval-request-title",title:e.title,children:e.title}),l&&l!==e.title&&n.jsxs("details",{className:"approval-request-details",children:[n.jsx("summary",{children:"Details"}),n.jsx("pre",{children:l})]}),f.length?n.jsx(Eh,{questions:f,answers:a,disabled:!!s,onChange:i}):null]}),n.jsxs("div",{className:"approval-request-actions",children:[n.jsxs("button",{type:"button",className:"approval-action primary",disabled:!!s||f.some(h=>!a[h.question]?.trim())||c&&!u.some(h=>h.kind==="allow_once"),onClick:()=>{p("accept")},children:[n.jsx(Dt,{size:14}),n.jsx("span",{children:s==="accept"?"Sending":f.length?"Submit answers":"Approve"})]}),m?n.jsxs("button",{type:"button",className:"approval-action",title:c?x:"Approve for the rest of this session",disabled:!!s,onClick:()=>{p("acceptForSession")},children:[n.jsx(Yc,{size:14}),n.jsx("span",{children:s==="acceptForSession"?"Approving":c?x:"Session"})]}):null,n.jsxs("button",{type:"button",className:"approval-action muted",disabled:!!s||c&&!u.some(h=>h.kind==="reject_once"),onClick:()=>{p("decline")},children:[n.jsx(eu,{size:14}),n.jsx("span",{children:s==="decline"?"Denying":"Deny"})]}),n.jsx("button",{type:"button",className:"approval-action icon-only",title:c?"Dismiss request":"Cancel task","aria-label":c?"Dismiss request":"Cancel task",disabled:!!s,onClick:()=>{p("cancel")},children:n.jsx(Ns,{size:15})})]})]})})}function wi(e){return e==="create_plan"?"Plan review":e==="subagent_patch_apply"?"Subagent patch":e==="file_change"||e==="legacy_patch"?"File change":e==="permissions"?"Permissions":e==="user_input"?"Input needed":"Command"}function Mh(e){const t=e.trim();if(!t)return"";try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}function Nh({resolution:e,onSelect:t,onClose:s}){const r=o.useRef(null),a=o.useId();return o.useEffect(()=>{const i=r.current;return i?.showModal(),()=>i?.close()},[]),n.jsxs("dialog",{ref:r,className:"chat-file-resolution","aria-labelledby":a,onCancel:s,children:[n.jsx("h2",{id:a,children:"Choose a file"}),n.jsxs("p",{children:["Matches for ",n.jsx("strong",{children:e.requestedPath})," in this project's folders:"]}),e.truncated?n.jsx("p",{children:"The search reached its limit. More matches may exist."}):null,n.jsx("div",{className:"chat-file-resolution-options",children:e.candidates.map(i=>n.jsx("button",{type:"button",onClick:()=>t(i),children:i},i))}),n.jsx("button",{type:"button",className:"git-dialog-secondary",onClick:s,children:"Cancel"})]})}const Ah=/\.(?:m4v|mov|mp4|webm)$/i;function Ih(e){return Ah.test(e.trim().split(/[?#]/,1)[0]??"")}function Th(e,t){let s=e.trim();if(!s||!Ih(s))return null;if(/^file:\/\//i.test(s))try{s=decodeURIComponent(new URL(s).pathname)}catch{s=s.replace(/^file:\/\//i,"")}if(/^\//.test(s)||/^[A-Za-z]:[\\/]/.test(s))return s;const r=t?.trim().replace(/[\\/]+$/,"");return r?`${r}/${s.replace(/^\.\//,"")}`:null}function $h({conversationKey:e,connection:t,handleOpenBrowserLink:s,activeWorkspaceAppId:r,rightSidebarUsesSandbox:a,rightSidebarSandboxId:i,onShowDiffPanel:l,showToast:c,workspaceRootPath:u,setOpenDiffFileRequest:f}){const[m,x]=o.useState(null),p=o.useRef(0);o.useEffect(()=>(p.current++,x(null),()=>{p.current++}),[t,r,e,i]);const h=o.useCallback((y,S)=>{if(/[\\/]$/.test(y)){const E=/^(?:[~/\\]|[A-Za-z]:)/.test(y)?y:u?`${u}/${y}`:y;Ca(E).then(C=>{C||c("Open this folder in the desktop app on the machine where it was created.","error")});return}const k=a?i:r;if(xr(y)&&!S?.source&&t&&k){zc(t,k,y,a?"sandbox":"local").then(E=>s(E)).catch(E=>c(E instanceof Error?E.message:"Could not open HTML preview.","error"));return}const A=Th(y,u);if(A&&t){Be.signLocalVideoUrl(t,{path:A}).then(({url:E})=>s(E)).catch(E=>{c(E instanceof Error?E.message:"Could not open this video.","error")});return}const R=ma(y,{});l(),f({id:Date.now(),path:S?.source&&xr(y)?(R?.path??y).replace(/[?#].*$/,""):R?.path??y,source:S?.source})},[t,s,r,a,i,l,c,u,f]),b=o.useCallback((y,S)=>{const k=++p.current;if(x(null),/^https?:\/\//i.test(y)){s(y);return}if(!t||!r||a){h(y,S);return}const A=ma(y)?.path??y,R=xr(A)?A.match(/[?#].*$/)?.[0]??"":"",E=R?A.slice(0,-R.length):A;Be.resolveWorkspaceFile(t,r,E).then(C=>{k===p.current&&(C.status==="resolved"?h(C.kind==="directory"?`${C.path}/`:`${C.path}${R}`,S):C.candidates.length?x({requestedPath:y,candidates:C.candidates.map($=>`${$}${R}`),truncated:C.truncated,source:S?.source}):c(C.truncated?"The project search reached its limit. Open this file using its full path.":`Could not find ${y} in this project's folders. Try its full path.`,"error"))}).catch(C=>{k===p.current&&c(C instanceof Error?C.message:"Could not locate this file.","error")})},[t,r,a,h,s,c]),g=o.useCallback(()=>x(null),[]),v=o.useCallback(y=>{const S=m?.source;x(null),b(y,{source:S})},[m,b]);return{handleOpenFileInSidebar:b,fileResolution:m,dismissFileResolution:g,selectFileResolution:v}}function Ph(e,t={}){const s=e.map(r=>({id:`message:${r.id}`,type:"message",message:r,showFooter:r.role==="assistant"}));return t.showThinkingIndicator&&s.push({id:"thinking",type:"thinking"}),s}function Og(e){const t=new Map;for(const s of e)s.role==="assistant"&&s.turnId&&t.set(s.turnId,s.id);return t}function zg(e,t){const s=e.turnId;return e.role==="assistant"&&s!==void 0&&t.get(s)===e.id}function _h(e){const t=e[e.length-1];if(!t)return!0;if(t.role==="assistant"||t.role==="error"||t.role==="status_divider"&&t.statusState==="running")return!1;if(t.role==="activity_group"){if(t.traceState==="running")return!1;const s=t.activities?.[t.activities.length-1]??null;return s?.state!=="running"&&s?.state!=="pending"}return!0}function Lh(e){const t=[];if(e.localWorkspaceId&&t.push({value:"local",label:"Local"}),(e.sandboxSourceAvailable??!!e.sandboxWorkspaceId)&&t.push({value:"sandbox",label:"Sandbox"}),t.length===0)return{source:null,options:t};const s=new Set(t.map(a=>a.value));if(e.override&&s.has(e.override))return{source:e.override,options:t};const r=e.workspaceTarget==="local"?"local":"sandbox";return s.has(r)?{source:r,options:t}:{source:t[0].value,options:t}}const Oh=new Set(["create","edit","help","list"]);function zh(e,t,s=null){return Fh(e)}function Fh(e){const t=e.trim();if(!t)return"/skill";const[s=""]=t.split(/\s+/,1);return Oh.has(s.toLowerCase())?`/skill ${t}`:`/skill create ${t}`}async function Dh(e){const t=e.session?.currentProfile??null,s=e.session?await e.patchSession(e.session.id,e.ref):null;try{return{selected:await e.selectProfile(e.ref),session:s}}catch(r){if(s)try{await e.patchSession(s.id,t)}catch{}throw r}}function Bh(e,t){if(!e||!t)return null;const s=new Set(e.sources.filter(r=>r.sessionId===t).map(r=>r.id));return s.size?e.creations.find(r=>r.request.sourceIds.some(a=>s.has(a)))??null:null}function Uh(e){const[t,s]=o.useState(null),[r,a]=o.useState(null),[i,l]=o.useState(!1),[c,u]=o.useState(null),[f,m]=o.useState(null),x=o.useRef(null),p=o.useRef(0),h=o.useCallback(async(y,S={})=>{if(!e){a(null),u("OpenPond App server is not connected.");return}const k=p.current+1;p.current=k,S.silent||l(!0),u(null);try{const A=await Be.getCreateImproveCandidateDiff(e,y.runId,y.candidateId),R=x.current;if(k!==p.current||R?.runId!==y.runId||R.candidateId!==y.candidateId)return;a(A)}catch(A){if(k!==p.current)return;u(A instanceof Error?A.message:String(A))}finally{k===p.current&&!S.silent&&l(!1)}},[e]),b=o.useCallback(y=>{const S=x.current;if(!(y&&S?.runId===y.runId&&S.candidateId===y.candidateId)){if(x.current=y,s(y),m(null),!y){p.current+=1,a(null),u(null),l(!1);return}a(k=>k?.appId===qh(y)?k:null),h(y)}},[h]),g=o.useCallback(async(y={})=>{const S=x.current;S&&await h(S,y)},[h]),v=o.useCallback(y=>{m({id:Date.now(),path:y})},[]);return o.useEffect(()=>{e||b(null)},[b,e]),{selection:t,diff:r,loading:i,error:c,openFileRequest:f,activate:b,refresh:g,openFile:v}}function qh(e){return`candidate:${e.runId}:${e.candidateId}`}function Hh(e){const{activeModel:t,activeProvider:s,bootstrap:r,codexPermissionMode:a,codexReasoningEffort:i,connection:l,onOpenRightChatForSession:c,onPayload:u}=e,f=o.useCallback(async p=>{if(!l||!r)throw new Error("OpenPond is still connecting.");const h=r.profile;if(h.mode!=="local"||!h.repoPath)throw new Error("A local Git-backed Profile is required to change an Agent.");const b=p.authoringModel??Jl(s,t,r.providers);if(!b)throw new Error("Choose a model before changing an Agent.");const g=await Be.createSession(l,{provider:b.providerId,modelRef:b,systemKind:"openpond.lab",hiddenFromDefaultSidebar:!0,title:`${p.operation==="create"?"New":"Improve"} Agent · ${p.objective.slice(0,80)}`,cwd:h.repoPath,metadata:{source:p.operation==="create"?"lab_agent_create":"lab_agent_improve",profileId:h.activeProfile??"default",targetAgentId:p.agentId??null}}),v=p.objective.trim();if(!v)throw new Error(p.operation==="create"?"Describe what the Agent should do.":"Describe what the Agent could do better.");if(b.providerId==="codex")throw new Error("Agent authoring uses OpenPond's bundled authoring skill. Choose a hosted model.");const y=p.operation==="create"?`/agent create ${v}`:`/agent improve ${p.agentId??""} ${v}`,S=await Be.sendTurn(l,g.id,{prompt:y,model:b.modelId,modelRef:b,approvalPolicy:"never",sandbox:"workspace-write",codexPermissionMode:"default",codexReasoningEffort:i});if(S.status==="failed")throw new Error(S.error??"OpenPond could not complete the Agent authoring turn.");u(await Be.bootstrap(l)),c(g.id,g)},[t,s,r,a,i,l,c,u]),m=o.useCallback((p,h,b)=>f({objective:p,operation:"create",authoringRunId:h,authoringModel:b}),[f]),x=o.useCallback((p,h,b,g,v)=>f({agentId:p,agentName:b,objective:h,operation:"improve",authoringRunId:g,authoringModel:v}),[f]);return{createAgentFromLab:m,improveAgentFromLab:x}}const Vh=72,ra=120,$o=24,Wh=280,Gh=460;function fr(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=Vh}const hr={canGoPrevious:!1,canGoNext:!1};function Po(e){return Array.from(e.querySelectorAll(".message-row.user")).filter(t=>t.parentElement===e)}function Kh({activeWorkspaceId:e,cloudProjects:t}){const s=t.find(i=>i.id===e),r=t.find(i=>i.organizationSlug||i.teamId),a=s??r??null;return{organizationSlug:a?.organizationSlug??null,teamId:a?.teamId??null}}function Is(e,t){return t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop}function _o(e,t){return Is(e,t)+t.getBoundingClientRect().height}function Lo(e){return e.scrollTop+$o}function Oo(e){return e.scrollTop+8}function ys(e){const t=Lo(e),s=Oo(e);let r=!1,a=!1;for(const i of Po(e)){const l=Is(e,i);if(_o(e,i)<s&&(r=!0),l>t+8&&(a=!0),r&&a)break}return{canGoPrevious:r,canGoNext:a}}function Qh(e,t){const s=Po(e),r=Lo(e);if(t==="previous"){const a=Oo(e);for(let i=s.length-1;i>=0;i-=1){const l=s[i];if(_o(e,l)<a)return l}return null}for(const a of s)if(Is(e,a)>r+8)return a;return null}function Xh(e){return Math.min(Gh,Math.max(Wh,Math.abs(e)/5))}function Jh(e){return e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2}function Yh(e){const t=Yl({messages:e});return t?{run:t}:null}function ki(e){return e.command==="workflow"?["Create a scheduled workflow attached to this chat.","Use the schedule_work tool after resolving the exact cadence, local date/time, and timezone from my request. Ask a concise clarification only if a required scheduling detail is genuinely missing.",`Workflow request: ${e.args}`].join(`
|
|
54
|
+
|
|
55
|
+
`):e.command==="agent"?e.args?`/agent ${e.args}`:"/agent":e.command==="skill"?e.args?`/skill ${e.args}`:"/skill":e.args?`/${e.command} ${e.args}`:`/${e.command}`}function aa(e,t){return{surface:"chat",workflowKind:"slash_command",commandName:`/${e.command}`,commandSource:t}}function Zh(e){return e.command==="goal"||e.command==="agent"||e.command==="skill"||e.command==="workflow"||e.command==="sync-cloud"}function em(e){const t=e?.trim()??"";return/^[a-z0-9]{24}$/.test(t)?t:null}function tm({busy:e,handoff:t,onDismiss:s,onSelectTask:r}){const a=Zl(t),i=t.selectedTaskIndex+1;return n.jsxs("section",{className:"training-chat-handoff","aria-label":"Model chat",children:[n.jsxs("div",{className:"training-chat-handoff-copy",children:[n.jsx("strong",{children:a?"Generated Taskset question":"Model chat"}),n.jsx("span",{children:t.tasksetName}),n.jsx("small",{children:a?`${nm(a.split)} · ${i} of ${t.tasks.length} · New chat per question`:"Ask the imported model directly"})]}),n.jsxs("div",{className:"training-chat-handoff-actions",children:[a?n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button","aria-label":"Previous generated question",title:"Previous question",disabled:e||t.selectedTaskIndex===0,onClick:()=>r(t.selectedTaskIndex-1),children:n.jsx(Xn,{size:14})}),n.jsx("button",{type:"button",className:"training-chat-handoff-load",disabled:e,onClick:()=>r(t.selectedTaskIndex),children:"Load question"}),n.jsx("button",{type:"button","aria-label":"Next generated question",title:"Next question",disabled:e||t.selectedTaskIndex>=t.tasks.length-1,onClick:()=>r(t.selectedTaskIndex+1),children:n.jsx(Vi,{size:14})})]}):null,n.jsx("button",{type:"button","aria-label":"Close generated question handoff",title:"Close",disabled:e,onClick:s,children:n.jsx(Ns,{size:14})})]})]})}function nm(e){return e==="frozen_eval"?"Frozen evaluation":e==="validation"?"Validation":"Training"}function sm({activeModel:e,activeProvider:t,busy:s,handoff:r,onDismiss:a,onSelectTask:i}){return!r||r.model.providerId!==t||r.model.modelId!==e?null:n.jsx(tm,{busy:s,handoff:r,onDismiss:a,onSelectTask:i})}function rm({canGoNext:e,canGoPrevious:t,onJumpToLatest:s,onNext:r,onPrevious:a}){return n.jsxs("div",{className:"chat-scroll-controls","aria-label":"Message navigation",children:[n.jsx("button",{type:"button",className:"chat-scroll-control-button","data-tooltip":"Go to previous message","aria-label":"Go to previous message","aria-disabled":!t,onClick:a,children:n.jsx(Xn,{size:17})}),n.jsx("button",{type:"button",className:"chat-scroll-control-button primary","data-tooltip":"Jump to latest","aria-label":"Jump to latest",onClick:s,children:n.jsx(Gc,{size:18})}),n.jsx("button",{type:"button",className:"chat-scroll-control-button","data-tooltip":"Go to next message","aria-label":"Go to next message","aria-disabled":!e,onClick:r,children:n.jsx(Vi,{size:17})})]})}function am({busy:e,onSync:t}){return n.jsxs("button",{type:"button",className:"sync-local-button",disabled:e,onClick:t,children:[n.jsx(ru,{size:15}),n.jsx("span",{children:e?"Syncing locally":"Sync locally to work on this"})]})}function zo(e){return e.supportedView&&e.open&&!e.hasContentPanel}function im(e,t){return e==="team"?"team-active":e==="community"?"community-active":e==="apps"||e==="get-started"||e==="labs"||e==="outputs"||e==="projects"||e==="scheduled"?"page-active":t?"chat-active":"chat-start"}const Ci=96;function ia(e,t){if(!t.row.isConnected||t.row.parentElement!==e)return null;const s=Number.parseFloat(e.style.getPropertyValue("--chat-sent-message-space"))||0,r=Number.parseFloat(getComputedStyle(e).paddingBottom)-s,a=e.lastElementChild,i=a?a.getBoundingClientRect().bottom-t.row.getBoundingClientRect().top+r:r,l=Math.max(0,e.clientHeight-Ci-i);return Math.abs(l-s)>.5&&e.style.setProperty("--chat-sent-message-space",`${l}px`),Math.max(0,Is(e,t.row)-Ci)}function om(e,t){const s=u=>{u.deltaY<0&&t()};let r=null;const a=u=>{r=u.touches[0]?.clientY??null},i=u=>{const f=u.touches[0]?.clientY??null;f!==null&&r!==null&&f>r&&t(),r=f},l=u=>{u.target?.closest?.("input, textarea, select, [contenteditable='true']")||(["ArrowUp","PageUp","Home"].includes(u.key)||u.key===" "&&u.shiftKey)&&t()},c=u=>{if(u.target!==e)return;const m=e.getBoundingClientRect().left+e.clientLeft+e.clientWidth;u.clientX>=m&&t()};return e.addEventListener("openpond-visual-interaction",t),e.addEventListener("wheel",s,{passive:!0}),e.addEventListener("touchstart",a,{passive:!0}),e.addEventListener("touchmove",i,{passive:!0}),e.addEventListener("keydown",l),e.addEventListener("pointerdown",c),()=>{e.removeEventListener("openpond-visual-interaction",t),e.removeEventListener("wheel",s),e.removeEventListener("touchstart",a),e.removeEventListener("touchmove",i),e.removeEventListener("keydown",l),e.removeEventListener("pointerdown",c)}}function Si(e){const t=e.getBoundingClientRect().top;for(const s of Array.from(e.children)){const r=s.getBoundingClientRect();if(!(r.bottom<=t))return{row:s,offset:r.top-t}}return null}function lm(e,t){if(t.row.parentElement!==e)return;const s=t.row.getBoundingClientRect().top-e.getBoundingClientRect().top;e.scrollTop+=s-t.offset}function cm(e){const{contentKey:t,threadElement:s=null,enabled:r=!0,onContentChange:a,threadRef:i}=e,l=o.useRef(a),c=o.useRef(null);l.current=a,o.useLayoutEffect(()=>{const u=s??i.current;if(!r||!u||typeof window>"u")return;let f=null,m=0,x=u.scrollHeight;const p=(S=!0)=>{S&&(m=Math.max(m,4)),f===null&&(f=window.requestAnimationFrame(()=>{f=null,i.current===u&&l.current(u);const k=Math.abs(u.scrollHeight-x)>1;x=u.scrollHeight,m-=1,(m>0||k)&&p(!1)}))};c.current=()=>p();const h=typeof MutationObserver>"u"?null:new MutationObserver(()=>{v(),p()}),b=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>p()),g=new Set,v=()=>{if(!b)return;const S=new Set(Array.from(u.children).filter(k=>k instanceof HTMLElement));for(const k of g)S.has(k)||(b.unobserve(k),g.delete(k));for(const k of S)g.has(k)||(b.observe(k),g.add(k))};h?.observe(u,{childList:!0,characterData:!0,subtree:!0}),v();const y=()=>p();return u.addEventListener("load",y,!0),()=>{c.current=null,h?.disconnect(),b?.disconnect(),u.removeEventListener("load",y,!0),f!==null&&window.cancelAnimationFrame(f)}},[r,s,i]),o.useLayoutEffect(()=>{r&&c.current?.()},[t,r])}function um({browserConversationId:e,chatSubmissionVersion:t,chatHistoryHasMore:s,chatHistoryLoading:r,chatMessages:a,onLoadMoreChatHistory:i,pendingApproval:l,showChatThread:c,showThinkingIndicator:u,view:f}){const m=o.useRef(null),[x,p]=o.useState(null),h=o.useCallback(w=>{m.current=w,p(I=>I===w?I:w)},[]),b=o.useRef(null),g=o.useRef(!0),v=o.useRef(null),y=o.useRef(0),S=o.useRef(null),k=o.useRef(0),A=o.useRef(0),R=o.useRef(0),E=o.useRef(null),C=o.useRef(null),$=o.useRef(null),F=o.useRef(!1),U=o.useRef(!1),H=o.useRef(null),z=o.useRef(null),V=o.useRef(null),[W,le]=o.useState(0),[be,re]=o.useState(null),[ce,q]=o.useState(!1),[ye,G]=o.useState(132),[D,_]=o.useState(hr),ae=o.useMemo(()=>Ph(a,{showThinkingIndicator:u}),[a,u]),Ie=o.useMemo(()=>({"--chat-composer-reserve":`${ye}px`}),[ye]),se=a.at(-1),fe=[ae.length,se?.id??"",se?.content?.length??0,se?.timestamp??"",u?"thinking":""].join(":"),K=s,te=e,J=f==="chat"&&c&&!!te&&be!==te,Y=o.useCallback(w=>{q(I=>I===w?I:w)},[]),ue=o.useCallback(w=>{_(I=>I.canGoPrevious===w.canGoPrevious&&I.canGoNext===w.canGoNext?I:w)},[]),Pe=o.useCallback((w,I={})=>{const ee=I.nearBottom??fr(w);Y(!ee),ue(ys(w))},[Y,ue]),ke=o.useCallback(w=>{const I=F.current;F.current=!1,re(w),Y(!1),ue(hr),I&&le(ee=>ee+1)},[Y,ue]),we=o.useCallback(()=>{V.current===null||typeof window>"u"||(window.cancelAnimationFrame(V.current),V.current=null)},[]),M=o.useCallback((w,I,ee)=>{we();const Ce=Math.max(0,w.scrollHeight-w.clientHeight),X=()=>{const Ut=typeof I=="function"?I():I;return Math.max(0,Math.min(Ut,Math.max(0,w.scrollHeight-w.clientHeight)))},_e=Math.max(0,Math.min(X(),Ce)),Le=w.scrollTop,lt=_e-Le;if(typeof window>"u"||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0||Math.abs(lt)<1){w.scrollTop=_e,ee?.();return}const ht=Xh(lt),ct=window.performance.now(),rt=Ut=>{if(m.current!==w){V.current=null;return}const Yt=Math.min(1,(Ut-ct)/ht),Zt=X();if(w.scrollTop=Le+(Zt-Le)*Jh(Yt),Yt<1){V.current=window.requestAnimationFrame(rt);return}w.scrollTop=X(),V.current=null,ee?.()};V.current=window.requestAnimationFrame(rt)},[we]),T=o.useCallback(()=>{U.current=!1,!(H.current===null||typeof window>"u")&&(window.cancelAnimationFrame(H.current),H.current=null)},[]),P=o.useCallback(()=>{z.current===null||typeof window>"u"||(window.cancelAnimationFrame(z.current),z.current=null)},[]),Q=o.useCallback(w=>{if(typeof window>"u"){w.scrollTop=w.scrollHeight;return}if(z.current!==null)return;let I=window.performance.now();const ee=Ce=>{if(m.current!==w||!g.current){z.current=null;return}const X=Math.max(0,w.scrollHeight-w.clientHeight),_e=X-w.scrollTop;if(Math.abs(_e)<=.75){w.scrollTop=X,z.current=null;return}if(_e<0||_e>240)w.scrollTop=X;else{const Le=Math.max(.5,Math.min(3,(Ce-I)/16.666666666666668)),lt=1-Math.pow(1-.22,Le);w.scrollTop+=Math.min(36*Le,_e*lt)}I=Ce,z.current=window.requestAnimationFrame(ee)};z.current=window.requestAnimationFrame(ee)},[]),ne=o.useCallback((w,I={})=>{if(P(),w.scrollTop=w.scrollHeight,typeof window>"u"){I.finishInitial&&ke(I.conversationKey??null);return}T(),U.current=!0;let Ce=0,X=0,_e=w.scrollHeight;const Le=I.settle?12:2,lt=()=>{const Xe=m.current;if(!Xe){H.current=null,U.current=!1,I.finishInitial&&ke(I.conversationKey??null);return}Xe.scrollTop=Xe.scrollHeight;const ht=Xe.scrollHeight-Xe.scrollTop-Xe.clientHeight,ct=Math.abs(Xe.scrollHeight-_e)<=1;if(_e=Xe.scrollHeight,X=ht<=1&&ct?X+1:0,Ce+=1,Ce<Le&&X<2){H.current=window.requestAnimationFrame(lt);return}H.current=null,U.current=!1,g.current=!0,Y(!1),ue(ys(Xe)),I.finishInitial&&ke(I.conversationKey??null)};H.current=window.requestAnimationFrame(lt)},[T,P,ke,Y,ue]),$e=o.useCallback(()=>{v.current=null,m.current?.style.removeProperty("--chat-sent-message-space");const w=m.current;w&&(T(),P(),g.current=!0,Y(!1),M(w,()=>w.scrollHeight-w.clientHeight,()=>{m.current===w&&(w.scrollTop=w.scrollHeight,g.current=!0,Y(!1),ue(ys(w)))}))},[T,P,Y,ue,M]),xe=o.useCallback(w=>{const I=m.current;if(!I)return;const ee=Qh(I,w);if(!ee)return;T(),P(),v.current&&(v.current.following=!1),M(I,()=>ee.isConnected?Math.max(0,Is(I,ee)-$o):I.scrollTop,()=>{if(m.current!==I)return;const X=fr(I);g.current=X,Pe(I,{nearBottom:X})})},[T,P,M,Pe]),De=o.useCallback(async()=>{if(!K||!i||r||$.current)return;const w=m.current;if(!w)return;const I={anchor:Si(w),firstRowId:ae[0]?.id,settled:!1};C.current=I,g.current=!1,T(),P(),we(),$.current=I;try{!await i()&&C.current===I&&(C.current=null)}finally{I.settled=!0,$.current===I&&($.current=null)}},[K,r,i,ae,T,P,we]),jt=o.useCallback(w=>{const I=C.current;I&&(I.anchor=Si(w));const ee=fr(w),Ce=Math.abs(w.scrollHeight-A.current)>1||Math.abs(w.clientHeight-R.current)>1,X=w.scrollTop<k.current-1,_e=w.scrollTop>k.current+1;if(k.current=w.scrollTop,A.current=w.scrollHeight,R.current=w.clientHeight,v.current)g.current=!1,Pe(w);else if(U.current){g.current=!0,Y(!1),ue(hr);return}else ee&&(g.current||_e&&!Ce)?(g.current=!0,Pe(w,{nearBottom:!0})):X&&!Ce?(g.current=!1,P(),Pe(w,{nearBottom:!1})):g.current?(Y(!1),ue(ys(w))):Pe(w,{nearBottom:ee});!F.current&&w.scrollTop<=ra&&K&&!r&&De()},[K,P,r,De,Y,ue,Pe]),ie=o.useCallback(w=>{const I=v.current;if(I){const ee=ia(w,I);ee!==null&&I.following&&V.current===null&&(w.scrollTop=ee),Pe(w);return}!g.current||V.current!==null||U.current||Q(w)},[Q,Pe]);return o.useEffect(()=>{const w=x;if(!w)return;const I=()=>{v.current&&(v.current.following=!1),g.current=!1,k.current=w.scrollTop,A.current=w.scrollHeight,R.current=w.clientHeight,T(),P(),we()},ee=()=>{v.current&&I()},Ce=_e=>{["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(_e.key)&&ee()},X=om(w,I);return w.addEventListener("wheel",ee,{passive:!0}),w.addEventListener("touchmove",ee,{passive:!0}),w.addEventListener("pointerdown",ee),w.addEventListener("keydown",Ce),()=>{X(),w.removeEventListener("wheel",ee),w.removeEventListener("touchmove",ee),w.removeEventListener("pointerdown",ee),w.removeEventListener("keydown",Ce)}},[x,T,P,we]),o.useEffect(()=>{if(!x||typeof ResizeObserver>"u")return;const w=new ResizeObserver(()=>{v.current&&ie(x)});return w.observe(x),()=>w.disconnect()},[x,ie]),cm({contentKey:fe,enabled:f==="chat"&&c,onContentChange:ie,threadElement:x,threadRef:m}),o.useLayoutEffect(()=>{if(f!=="chat"||!c||typeof window>"u")return;const w=b.current;if(!w)return;let I=null;const ee=()=>{I=null;const _e=Math.max(96,Math.ceil(w.getBoundingClientRect().height+20));G(Le=>Le===_e?Le:_e)},Ce=()=>{I===null&&(I=window.requestAnimationFrame(ee))};Ce();const X=typeof window.ResizeObserver>"u"?null:new window.ResizeObserver(Ce);return X?.observe(w),window.addEventListener("resize",Ce),()=>{I!==null&&window.cancelAnimationFrame(I),X?.disconnect(),window.removeEventListener("resize",Ce)}},[c,f]),o.useLayoutEffect(()=>{const w=m.current;if(!(f!=="chat"||!c||!w||F.current)){if(v.current){ie(w);return}g.current&&ne(w,{settle:!0})}},[ye,ie,ne,c,f]),o.useLayoutEffect(()=>{v.current=null,m.current?.style.removeProperty("--chat-sent-message-space"),C.current=null,$.current=null,F.current=!0,g.current=!0,k.current=0,A.current=0,R.current=0,P(),we(),T(),re(null),Y(!1),ue(hr)},[T,we,P,te,Y,ue]),o.useLayoutEffect(()=>{if(t===0||t===y.current||f!=="chat"||!c)return;const w=m.current,I=Array.from(w?.querySelectorAll(".message-row.user")??[]).filter(Ce=>Ce.parentElement===w).at(-1);if(!w||!I||I===S.current)return;y.current=t,T(),P();const ee={row:I,following:!0};v.current=ee,g.current=!1,ia(w,ee),M(w,()=>ia(w,ee)??w.scrollTop),ke(te)},[t,ae,x,te,f,c,T,P,M,ke]),o.useLayoutEffect(()=>{const w=m.current;S.current=Array.from(w?.querySelectorAll(".message-row.user")??[]).filter(I=>I.parentElement===w).at(-1)??null}),o.useEffect(()=>{const w=m.current;f!=="chat"||!w||F.current||!K||r||w.scrollTop<=ra&&w.scrollHeight<=w.clientHeight+ra&&De()},[K,r,W,ae.length,De,f]),o.useLayoutEffect(()=>{const w=C.current,I=m.current;if(!(!w||!I||F.current)){if(ae[0]?.id===w.firstRowId){w.settled&&!r&&(C.current=null);return}C.current=null,w.anchor&&lm(I,w.anchor),Pe(I)}},[ae,r,Pe]),o.useLayoutEffect(()=>{const w=m.current;if(f!=="chat"||!te||!w){E.current=te,g.current=!0,ke(te);return}const I=E.current!==te;if(E.current=te,v.current){ke(te);return}if(I||F.current){g.current=!0,ne(w,{conversationKey:te,finishInitial:!0,settle:!0});return}const ee=fr(w);if(g.current){g.current=!0,Y(!1),ue(ys(w)),ne(w,{settle:!0});return}Pe(w,{nearBottom:ee})},[te,x,ke,l?.id,ne,Y,ue,Pe,f]),o.useEffect(()=>()=>{T(),we(),P()},[T,we,P]),{chatColumnStyle:Ie,chatThreadPreparingInitialScroll:J,chatThreadRef:h,composerStackRef:b,goToUserMessage:xe,handleChatScroll:jt,jumpToLatestChatMessage:$e,showScrollToBottomButton:ce,userMessageNavigation:D,chatTimelineRows:ae}}function dm(e,t){const s=fm(e),[r,a]=o.useState(()=>s.getUrl(t));return o.useEffect(()=>{let i=!1;return a(s.getUrl(t)),s.loadUrl(t).then(l=>{i||a(l)}),()=>{i=!0}},[t,s]),r}function fm(e){const[,t]=o.useState(0),s=o.useCallback(a=>!e||!a?null:(Xt.activateConnection(e),Xt.get(Ri(e,a))),[e]),r=o.useCallback(async a=>{if(!e||!a)return null;const i=Ri(e,a);return Xt.activateConnection(e),Xt.load(i,()=>Be.signChatAttachmentImageUrl(e,a)).finally(()=>t(l=>l+1))},[e]);return o.useMemo(()=>({getUrl:s,loadUrl:r}),[s,r])}function Ri(e,t){return ha(e,"chat-attachment-image",t.sessionId,t.turnId,t.attachmentId,t.storageName,t.contentType)}const Ei="<openpond_trusted_runtime_context>",Mi="</openpond_trusted_runtime_context>";function hm(e){const t=e.trimStart();if(!t.startsWith(Ei))return e;const s=t.indexOf(Mi,Ei.length);if(s===-1)return"";const r=t.slice(s+Mi.length).trim();if(!r.startsWith("<user_request>"))return r;const a=r.slice(14);return(a.endsWith("</user_request>")?a.slice(0,-15):a).trim()}function Ea({content:e,timestamp:t,kvCacheSummary:s}){const r=ec(t),a=s?.cacheHitRate,i=typeof a=="number"&&Number.isFinite(a)&&a>=0&&a<=1?`${Math.round(a*100)}%`:null;return n.jsxs("div",{className:"assistant-message-footer",children:[r?n.jsx("time",{className:"message-timestamp",dateTime:t,title:tc(t),children:r}):null,i?n.jsxs("span",{className:"message-kv-cache-metric","aria-label":`KV cache reuse ${i}`,children:["KV ",i]}):null,n.jsx("button",{type:"button",className:"message-copy-button",title:"Copy message","aria-label":"Copy assistant message",disabled:!e,onClick:()=>{e&&Gi(e)},children:n.jsx(Wi,{size:14})})]})}function Fo({content:e}){const[t,s]=o.useState(!1),[r,a]=o.useState(!1),i=o.useRef(null),l=o.useId();return o.useEffect(()=>{const c=i.current;if(!c)return;const u=()=>{const m=Number.parseFloat(getComputedStyle(c).lineHeight);a(c.scrollHeight>Math.ceil(m*5)+1)};u();const f=new ResizeObserver(u);return f.observe(c),()=>f.disconnect()},[e,t]),n.jsxs("div",{className:"user-message-content-wrap",children:[n.jsx("div",{ref:i,id:l,className:`user-message-content ${t?"":"collapsed"}`,children:e}),r?n.jsxs("button",{type:"button",className:"user-message-show-more","aria-expanded":t,"aria-controls":l,onClick:()=>s(c=>!c),children:[t?n.jsx(Fc,{size:14}):n.jsx(Bt,{size:14}),n.jsx("span",{children:t?"Show less":"Show more"})]}):null]})}async function Es(e,t){const{ownerScope:s}=await Ne(e,"/v1/ponder/desktop");if(!s||["installationId","profileId","ownerUserId","teamId"].some(r=>s[r]!==t[r]))throw new Error("Open this task on its original desktop, account and workspace.")}function mm({message:e,onOpenSession:t,onOpenPonder:s,connection:r}){const[a,i]=o.useState(null),l=o.useRef(0);o.useEffect(()=>(l.current++,()=>{l.current++}),[r,e.id]);const c=e.taskMessage;if(!c)return null;const{input:u,peer:f,direction:m}=c;async function x(){if(!r||!s)return;const h=l.current;try{if(!f.ponderScope)throw new Error("This message has no verified Ponder source.");await Es(r,f.ponderScope);const b=await Ne(r,"/v1/ponder",{method:"POST",body:"{}"});if(h!==l.current)return;if(b.bindingId!==f.bindingId)throw new Error("This task's original Ponder conversation is no longer active.");i(null),s()}catch(b){h===l.current&&i(b instanceof Error?b.message:String(b))}}const p=u.error?u.error:{pending:"Queued",included:"Included in agent request",resolved:"Delivered to agent",rejected:"Not delivered",cancelled:"Cancelled"}[u.state];return n.jsxs("article",{className:"message-row user task-message-row",children:[n.jsx("div",{className:"user-message",children:n.jsx(Fo,{content:u.body})}),n.jsxs("div",{className:"task-message-attribution",children:[n.jsx("span",{children:m==="sent"?"Sent to":"Received from"}),f.kind==="ponder"?s&&r?n.jsx("button",{type:"button",onClick:()=>{x()},children:f.title}):n.jsx("span",{children:f.title}):t?n.jsx("button",{type:"button",onClick:()=>t(f.sessionId),children:f.title}):n.jsx("span",{children:f.title}),n.jsx("span",{title:`Delivery receipt ${u.id}`,role:"status",children:p})]}),a?n.jsx("p",{role:"alert",children:a}):null,n.jsx(Ea,{content:u.body,timestamp:e.timestamp})]})}const pm=64,gm=120,bm=210,xm=360,vm=40,ym=120,jm=600,wm=100,Ni=33,wr=new Set;let mr=!1;function km(e,t,s=0){if(e<=0)return{characterCount:0,remainder:0};const r=e>jm?xm:e>ym?bm:e>vm?gm:pm,a=s+Math.min(Math.max(t,0),wm)*r/1e3,i=Math.min(e,Math.floor(a));return{characterCount:i,remainder:a-i}}function Do(e,t,s){let r=Math.min(t.length,e.length+s);const a=t.charCodeAt(r-1),i=t.charCodeAt(r);return a>=55296&&a<=56319&&i>=56320&&i<=57343&&(r+=1),t.slice(0,r)}function Ai(){return typeof window<"u"&&typeof window.matchMedia=="function"&&typeof document<"u"&&document.visibilityState==="visible"&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Cm(e,t,s){return t&&s?Do("",e,1):e}function Sm(e,t=!1){const[s,r]=o.useState(()=>Cm(e,t,Ai())),a=o.useRef(s),i=o.useRef(e),l=o.useRef(null),c=o.useRef(null),u=o.useRef(0),f=o.useRef(!0);return o.useEffect(()=>(f.current=!0,()=>{f.current=!1,l.current!==null&&(window.clearTimeout(l.current),l.current=null)}),[]),o.useEffect(()=>{if(i.current=e,!Ai()||!e.startsWith(a.current)){l.current!==null&&(window.clearTimeout(l.current),l.current=null),c.current=null,u.current=0,a.current=e,f.current&&r(e);return}if(a.current.length===e.length||l.current!==null)return;const m=()=>{if(!f.current){l.current=null;return}const x=a.current,p=i.current,h=performance.now();if(!p.startsWith(x)){a.current=p,r(p),l.current=null,c.current=null,u.current=0;return}const b=p.length-x.length;if(b===0){l.current=null,c.current=null,u.current=0;return}const g=c.current===null?16:h-c.current,v=km(b,g,u.current);if(c.current=h,u.current=v.remainder,v.characterCount>0){const y=Do(x,p,v.characterCount);a.current=y,r(y)}l.current=window.setTimeout(m,Ni)};return l.current=window.setTimeout(m,Ni),()=>{l.current!==null&&(window.clearTimeout(l.current),l.current=null)}},[e]),o.useEffect(()=>{const x=Rm(()=>{document.visibilityState!=="visible"&&(l.current!==null&&(window.clearTimeout(l.current),l.current=null),c.current=null,u.current=0,a.current=i.current,f.current&&r(i.current))});return()=>{x(),l.current!==null&&(window.clearTimeout(l.current),l.current=null)}},[]),s}function Rm(e){return wr.add(e),mr||(document.addEventListener("visibilitychange",Ii),mr=!0),()=>{wr.delete(e),wr.size===0&&mr&&(document.removeEventListener("visibilitychange",Ii),mr=!1)}}function Ii(){for(const e of wr)e()}function Bo({animateInitialContent:e=!1,content:t,...s}){const r=Sm(t,e),a=Dc(r,r.length===t.length),i=Em(a,r.length===t.length);return n.jsx(Ki,{...s,content:a,finalizedContent:i.finalized,mutableContent:i.mutable})}function Em(e,t){if(t||!e)return{finalized:e,mutable:""};const s=e.split(`
|
|
56
|
+
`);let r=!1,a=null,i=0,l=0;for(let c=0;c<s.length-1;c+=1){const u=s[c]??"",f=u.trim();!a&&/^\s*```/.test(u)&&(r=!r),r||(a&&f.endsWith(a)?a=null:!a&&f.startsWith("\\[")&&!f.endsWith("\\]")?a="\\]":!a&&f.startsWith("$$")&&f.indexOf("$$",2)<0&&(a="$$")),i+=u.length+1,!r&&!a&&f===""&&(l=i)}return{finalized:e.slice(0,l),mutable:e.slice(l)}}function Tr({children:e,className:t="",controls:s,danger:r=!1,expanded:a=!1,icon:i,onToggle:l,running:c=!1}){const u=["activity-summary",l?"":"static",r?"danger":"",c?"working":"",t].filter(Boolean).join(" "),f=n.jsxs(n.Fragment,{children:[i,n.jsx("span",{className:"activity-summary-text",children:n.jsx("span",{children:e})}),l?n.jsx(Bt,{"aria-hidden":!0,className:`activity-summary-toggle ${a?"expanded":""}`,size:14}):null]});return l?n.jsx("button",{type:"button","aria-controls":s,"aria-expanded":a,className:u,onClick:l,children:f}):n.jsx("div",{className:u,role:c?"status":void 0,children:f})}function Mm({actionRun:e,onOpenBrowserLink:t,onOpenFileInSidebar:s,workspaceRootPath:r=null}){const a=Tm(e.status),i=$m(e);return n.jsxs("div",{className:`action-run-card ${e.status}`,children:[n.jsxs("div",{className:"action-run-header",children:[n.jsx("span",{className:"action-run-status",title:e.status,children:n.jsx(a,{size:15})}),n.jsxs("div",{className:"action-run-title",children:[n.jsx("strong",{children:e.title}),n.jsx("span",{children:e.actionName})]})]}),i.length>0&&n.jsx("div",{className:"action-run-meta","aria-label":"Action run metadata",children:i.map(l=>n.jsxs("span",{className:"action-run-chip",children:[l.icon,n.jsx("span",{children:l.label}),n.jsx("code",{children:l.value})]},l.label))}),e.responseText&&n.jsx("p",{className:"action-run-response",children:e.responseText}),e.refs.length>0&&n.jsx("div",{className:"action-run-ref-list","aria-label":"Action run references",children:e.refs.slice(0,8).map(l=>n.jsx(Im,{refItem:l,onOpenBrowserLink:t,onOpenFileInSidebar:s,workspaceRootPath:r},l.id))}),e.childCalls.length>0&&n.jsx("div",{className:"action-run-child-list","aria-label":"Child implementation calls",children:e.childCalls.map(l=>n.jsxs("div",{className:`action-run-child ${l.status}`,children:[n.jsx("span",{children:l.label}),n.jsx("small",{children:l.status}),l.detail&&n.jsx("code",{children:l.detail})]},l.id))})]})}function Ti(e){return e.implementationType==="openpond-profile-action"}function Nm(e){const t=e.agentName??e.agentId;return e.actionName.endsWith(".chat")?ur({actionId:e.actionName,label:e.title,name:t}):t?ur({actionId:e.actionName,name:t}):e.title&&!nc(e.title)?ur({actionId:e.actionName,label:e.title}):ur({actionId:e.actionName})}function Am(e){return e.status==="failed"?`${e.title} failed.`:e.status==="completed"?`${e.title} completed.`:e.status==="pending"?`${e.title} is pending.`:`${e.title} is running...`}function Im({refItem:e,onOpenBrowserLink:t,onOpenFileInSidebar:s,workspaceRootPath:r}){const a=s?ma(e.target,{}):null,i=Pm(e.target)&&t,l=!!(a&&s);return n.jsxs("div",{className:`action-run-ref ${e.kind}`,children:[n.jsx("span",{children:e.label}),n.jsx("code",{children:e.target}),i&&n.jsx("button",{type:"button",title:`Open ${e.target}`,"aria-label":`Open ${e.label}`,onClick:()=>t(e.target,{newTab:!0}),children:n.jsx(Cr,{size:13})}),l&&n.jsx("button",{type:"button",title:`Open ${e.target}`,"aria-label":`Open ${e.label}`,onClick:()=>{a&&s&&s(a.path)},children:n.jsx(Cr,{size:13})})]})}function Tm(e){return e==="completed"?Ui:e==="failed"?ju:nu}function $m(e){const t=[];return e.implementationType&&t.push({label:"Type",value:e.implementationType,icon:n.jsx(br,{size:12})}),e.runId&&t.push({label:"Run",value:e.runId,icon:n.jsx(yt,{size:12})}),e.sandboxId&&t.push({label:"Sandbox",value:e.sandboxId,icon:n.jsx(yt,{size:12})}),e.sourceRef&&t.push({label:"Source",value:e.sourceRef,icon:n.jsx(sc,{size:12})}),e.manifestHash&&t.push({label:"Manifest",value:e.manifestHash,icon:n.jsx(yt,{size:12})}),t}function Pm(e){return/^https?:\/\//i.test(e)}function _m(e,t){const s=Lm(e),[r,a]=o.useState(()=>s.getUrl(t));return o.useEffect(()=>{let i=!1;return a(s.getUrl(t)),s.loadUrl(t).then(l=>{i||a(l)}),()=>{i=!0}},[t,s]),r}function Lm(e){const[,t]=o.useState(0),s=o.useCallback(a=>!e||!a?null:(Xt.activateConnection(e),Xt.get(ha(e,"local-video",a))),[e]),r=o.useCallback(async a=>{if(!e||!a)return null;Xt.activateConnection(e);const i=ha(e,"local-video",a);return Xt.load(i,()=>Be.signLocalVideoUrl(e,{path:a})).finally(()=>t(l=>l+1))},[e]);return o.useMemo(()=>({getUrl:s,loadUrl:r}),[s,r])}function Om(e,t){return{toolCount:e.reduce((r,a)=>r+($i(a)?0:1),0),toolsExpanded:t,visibleActivities:t?e.filter(r=>!$i(r)):[]}}function $i(e){return e.kind==="reasoning"}function zm(e,t){if(!e||!t)return null;const s=Date.parse(t)-Date.parse(e);if(!Number.isFinite(s)||s<1e3)return null;const r=Math.round(s/1e3);if(r<60)return`${r}s`;const a=Math.floor(r/60),i=r%60;if(a<60)return i>0?`${a}m ${i}s`:`${a}m`;const l=Math.floor(a/60),c=a%60;return c>0?`${l}h ${c}m`:`${l}h`}const Fm=4;function Dm({onOpenSession:e,onShowAll:t,sessions:s}){const r=s.slice(0,Fm),a=Math.max(0,s.length-r.length),i=s.map(qo).join(", ");return n.jsxs("div",{"aria-label":`Subagent conversations: ${i}`,className:"activity-subagent-avatar-group",title:`Subagent conversations: ${i}`,children:[r.map(l=>n.jsx(Uo,{openSession:l,onOpenSession:e},l.sessionId)),a>0?n.jsxs("button",{type:"button","aria-label":`Show ${a} more subagent conversation${a===1?"":"s"}`,className:"activity-subagent-avatar activity-subagent-avatar-count",onClick:t,title:`Show ${a} more subagent conversation${a===1?"":"s"}`,children:["+",a]}):null]})}function Uo({className:e="",onOpenSession:t,openSession:s}){const r=Vo(s.roleId),a=qm(s.status),i=`Open ${qo(s)} conversation`;return n.jsx("button",{type:"button","aria-label":i,className:`activity-subagent-avatar ${e}`,"data-role":r,"data-status":a,onClick:()=>t(s.sessionId),title:i,children:n.jsx(Bm,{roleId:r})})}function Bm({roleId:e}){return e==="coding"?n.jsxs("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",className:"activity-subagent-avatar-svg",children:[n.jsx("path",{d:"M9.4 7.2 4.8 12l4.6 4.8"}),n.jsx("path",{d:"m14.6 7.2 4.6 4.8-4.6 4.8"}),n.jsx("path",{d:"m12.9 5.7-1.8 12.6"})]}):e==="research"?n.jsxs("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",className:"activity-subagent-avatar-svg",children:[n.jsx("circle",{cx:"10.8",cy:"10.8",r:"5.2"}),n.jsx("path",{d:"m15 15 4 4"}),n.jsx("path",{d:"M8.6 10.8h4.4"}),n.jsx("path",{d:"M10.8 8.6v4.4"})]}):e==="review"?n.jsxs("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",className:"activity-subagent-avatar-svg",children:[n.jsx("path",{d:"M7 4.8h7.2L18 8.6v10.6H7z"}),n.jsx("path",{d:"M14 4.8v4h4"}),n.jsx("path",{d:"m8.9 14.2 2 2 4.3-4.7"})]}):e==="test"?n.jsxs("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",className:"activity-subagent-avatar-svg",children:[n.jsx("path",{d:"M9.2 4.8h5.6"}),n.jsx("path",{d:"M10.4 4.8v5.4l-4 6.8a1.8 1.8 0 0 0 1.6 2.7h8a1.8 1.8 0 0 0 1.6-2.7l-4-6.8V4.8"}),n.jsx("path",{d:"M8.2 15.8h7.6"})]}):e==="docs"?n.jsxs("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",className:"activity-subagent-avatar-svg",children:[n.jsx("path",{d:"M7 4.8h7.2L18 8.6v10.6H7z"}),n.jsx("path",{d:"M14 4.8v4h4"}),n.jsx("path",{d:"M9.2 11.4h5.6"}),n.jsx("path",{d:"M9.2 14.2h5.6"}),n.jsx("path",{d:"M9.2 17h3.4"})]}):e==="planner"?n.jsxs("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",className:"activity-subagent-avatar-svg",children:[n.jsx("circle",{cx:"7.2",cy:"7.2",r:"2.1"}),n.jsx("circle",{cx:"16.8",cy:"7.2",r:"2.1"}),n.jsx("circle",{cx:"12",cy:"16.8",r:"2.1"}),n.jsx("path",{d:"M9 8.2h6"}),n.jsx("path",{d:"m8.5 9 2.4 5.4"}),n.jsx("path",{d:"m15.5 9-2.4 5.4"})]}):e==="summarizer"?n.jsxs("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",className:"activity-subagent-avatar-svg",children:[n.jsx("path",{d:"M7 6.8h10"}),n.jsx("path",{d:"M7 10.4h8.2"}),n.jsx("path",{d:"M7 14h6.2"}),n.jsx("path",{d:"M7 17.6h4.2"})]}):n.jsxs("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",className:"activity-subagent-avatar-svg",children:[n.jsx("circle",{cx:"12",cy:"8.2",r:"3.2"}),n.jsx("path",{d:"M6.5 19.2c.6-3 2.5-5 5.5-5s4.9 2 5.5 5"}),n.jsx("path",{d:"M5.2 11.8h2"}),n.jsx("path",{d:"M16.8 11.8h2"})]})}function Um(e){const t=new Map;for(const s of e){const r=s.openSession;r&&t.set(r.sessionId,{...t.get(r.sessionId),...r})}return[...t.values()].reverse()}function qo(e){const t=`${Ho(e.roleId)} subagent`,s=e.status?.replace(/_/g," ").trim();return s?`${t} (${s})`:t}function Ho(e){return Vo(e).split(/[-_]+/).filter(Boolean).map(s=>s.slice(0,1).toUpperCase()+s.slice(1)).join(" ")||"Subagent"}function Vo(e){const t=e?.trim().toLowerCase()||"subagent";return/^[a-z][a-z0-9_-]*$/.test(t)?t:"subagent"}function qm(e){const t=e?.trim().toLowerCase()||"unknown";return/^[a-z][a-z0-9_-]*$/.test(t)?t:"unknown"}function Hm({activity:e,defaultExpanded:t=!1}){const[s,r]=o.useState(t),a=o.useId(),i=Gm(e);return n.jsxs("section",{className:`harness-refiner-receipt ${e.state} ${e.result??""}`,children:[n.jsxs("button",{"aria-controls":i?a:void 0,"aria-expanded":i?s:void 0,className:"harness-refiner-receipt-summary",disabled:!i,onClick:()=>i&&r(l=>!l),type:"button",children:[n.jsx(rc,{"aria-hidden":!0,className:e.state==="running"?"spinning":void 0,size:12}),n.jsx("span",{children:ac(e)}),i?n.jsx(Bt,{"aria-hidden":!0,className:`harness-refiner-receipt-toggle ${s?"expanded":""}`,size:13}):null]}),i&&s?n.jsxs("div",{className:"harness-refiner-receipt-details",id:a,children:[n.jsx(Vm,{activity:e}),e.reason?n.jsxs("section",{children:[n.jsx("strong",{children:"Reason"}),n.jsx("p",{children:e.reason})]}):null,e.expectedOutcome?n.jsxs("section",{children:[n.jsx("strong",{children:"Expected outcome"}),n.jsx("p",{children:e.expectedOutcome})]}):null,e.evidenceBasis?n.jsxs("section",{children:[n.jsx("strong",{children:"Evidence basis"}),n.jsx("p",{children:e.evidenceBasis.kind.replaceAll("_"," ")}),n.jsxs("small",{children:[e.evidenceBasis.supportingEvidenceIds.length," supporting item",e.evidenceBasis.supportingEvidenceIds.length===1?"":"s",e.evidenceBasis.counterevidence.length?` · ${e.evidenceBasis.counterevidence.length} counterexample${e.evidenceBasis.counterevidence.length===1?"":"s"}`:" · no material counterevidence"]})]}):null,e.validations.length?n.jsxs("section",{children:[n.jsx("strong",{children:"Validation"}),n.jsx("div",{className:"harness-refiner-validation-list",children:e.validations.map(l=>n.jsxs("div",{children:[n.jsx("span",{className:l.status,children:l.status}),n.jsx("p",{children:l.summary})]},l.id))})]}):null,e.edits.length?n.jsxs("details",{className:"harness-refiner-exact-edits",children:[n.jsxs("summary",{children:["Review ",e.edits.length," exact edit",e.edits.length===1?"":"s"]}),e.edits.map(l=>n.jsxs("section",{children:[n.jsxs("strong",{children:[l.operation," · ",l.target]}),n.jsx("p",{children:l.summary}),l.content===null?n.jsx("small",{children:"File deleted."}):n.jsx("pre",{children:l.content})]},l.id))]}):null,n.jsx(Wm,{refs:e.refs})]}):null]})}function Vm({activity:e}){const t=[e.route?[e.decision==="route"?"Owner":"Layer",e.route]:null,e.operation?["Operation",e.operation]:null,e.target?["Target",e.target]:null,e.critiqueStatus!=="not_applicable"?["Critique",e.critiqueStatus]:null,e.validationStatus!=="not_applicable"?["Validation",e.validationStatus]:null].filter(s=>!!s);return t.length?n.jsx("dl",{className:"harness-refiner-receipt-facts",children:t.map(([s,r])=>n.jsxs("div",{children:[n.jsx("dt",{children:s}),n.jsx("dd",{children:r?.replaceAll("_"," ")})]},s))}):null}function Wm({refs:e}){const t=Object.entries(e).filter(s=>!!s[1]);return t.length?n.jsxs("details",{className:"harness-refiner-references",children:[n.jsx("summary",{children:"Receipt references"}),n.jsx("dl",{children:t.map(([s,r])=>n.jsxs("div",{children:[n.jsx("dt",{children:Km(s)}),n.jsx("dd",{children:n.jsx("code",{children:r})})]},s))})]}):null}function Gm(e){return e.state!=="running"&&!!(e.reason||e.expectedOutcome||e.route||e.operation||e.target||e.evidenceBasis||e.validations.length||e.edits.length||Object.values(e.refs).some(Boolean))}function Km(e){const t=e.replace(/([a-z])([A-Z])/g,"$1 $2");return`${t[0]?.toUpperCase()??""}${t.slice(1)}`}function Qm({artifact:e,onOpenFileInSidebar:t}){const[s,r]=o.useState(null),a=o.useCallback(()=>r(null),[]);return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"activity-artifact",title:e.path,onContextMenu:i=>{i.preventDefault(),r({path:e.path,title:e.title,...Jm(i.clientX,i.clientY)})},children:[t?n.jsxs("button",{"aria-label":`Open ${e.title} in right sidebar`,className:"activity-artifact-name",type:"button",onClick:()=>t(e.path),children:[n.jsx(yt,{"aria-hidden":!0,size:14}),n.jsx("strong",{children:e.title})]}):n.jsxs("span",{className:"activity-artifact-name",children:[n.jsx(yt,{"aria-hidden":!0,size:14}),n.jsx("strong",{children:e.title})]}),n.jsxs("span",{className:"activity-artifact-actions",children:[n.jsx("button",{"aria-label":`Show ${e.title} in file browser`,"data-tooltip":"Open in file browser",type:"button",onClick:()=>{Ca(e.path)},children:n.jsx(Yi,{"aria-hidden":!0,size:14})}),t?n.jsx("button",{"aria-label":`Open ${e.title} in right sidebar`,"data-tooltip":"Open in right sidebar",type:"button",onClick:()=>t(e.path),children:n.jsx(qi,{"aria-hidden":!0,size:14})}):null]})]}),n.jsx(Xm,{menu:s,onClose:a})]})}function Xm({menu:e,onClose:t}){const s=o.useRef(null);return o.useEffect(()=>{if(!e)return;s.current?.focus();const r=()=>t(),a=i=>{i.key==="Escape"&&r()};return window.addEventListener("pointerdown",r),window.addEventListener("blur",r),window.addEventListener("keydown",a),window.addEventListener("scroll",r,!0),()=>{window.removeEventListener("pointerdown",r),window.removeEventListener("blur",r),window.removeEventListener("keydown",a),window.removeEventListener("scroll",r,!0)}},[e,t]),!e||typeof document>"u"?null:ic.createPortal(n.jsx("div",{"aria-label":`${e.title} file actions`,className:"activity-artifact-context-menu",role:"menu",style:{left:e.x,top:e.y},onPointerDown:r=>r.stopPropagation(),children:n.jsxs("button",{ref:s,role:"menuitem",type:"button",onClick:()=>{Gi(e.path),t()},children:[n.jsx(Wi,{"aria-hidden":!0,size:14}),n.jsx("span",{children:"Copy path"})]})}),document.body)}function Jm(e,t){return{x:Math.max(8,Math.min(e,window.innerWidth-164-8)),y:Math.max(8,Math.min(t,window.innerHeight-42-8))}}const Wo=5,Ym=280;function Zm({activeWorkspaceAppId:e,connection:t,message:s,onOpenFileInSidebar:r,onOpenSession:a}){const i=s.activities??[],[l,c]=o.useState(!1),[u,f]=o.useState(null),m=o.useId(),x=o.useMemo(()=>wu(i),[i]),p=o.useMemo(()=>Om(i,l),[i,l]),h=i.find(C=>C.imagePreview)?.imagePreview??null,b=s.deliverables??[],g=Ma(u,t,e),v=s.traceState==="running",y=s.traceState==="failed"||s.traceState==="interrupted",S=zm(s.traceStartedAt,s.traceCompletedAt),k=up(x.text,s.traceState,S,i),A=Um(i),R=i.length>0&&i.every(C=>C.subagentMessage),E=p.toolCount>0||!!s.refinerActivity;return R&&!s.refinerActivity?n.jsx(op,{activities:i}):n.jsx(n.Fragment,{children:i.length>0||b.length>0||s.refinerActivity?n.jsxs("article",{className:`activity-group work-trace ${v?"running":"settled"}`,children:[i.length>0||s.refinerActivity?n.jsxs("div",{className:"activity-summary-row",children:[n.jsx(Tr,{controls:E?m:void 0,danger:y,expanded:p.toolsExpanded,icon:h?n.jsx(bp,{activeWorkspaceAppId:e,connection:t,image:h}):n.jsx(xp,{kind:x.kind}),onToggle:E?()=>c(C=>!C):void 0,running:v,children:k||"Worked"}),A.length>0&&a?n.jsx(Dm,{onOpenSession:a,onShowAll:()=>c(!0),sessions:A}):null]}):null,b.length>0?n.jsx(sp,{artifacts:b,connection:t,onOpenFileInSidebar:r}):null,l&&E?n.jsxs("div",{className:"work-trace-flow",id:m,children:[p.visibleActivities.map(C=>n.jsx(tp,{activeWorkspaceAppId:e,activity:C,connection:t,onOpenImage:f,onOpenSession:a},C.id)),n.jsx(ep,{activity:s.refinerActivity})]}):null,n.jsx(Qi,{open:!!g,src:g,title:u?.path??"",onClose:()=>f(null)})]}):null})}function ep({activity:e}){return e?n.jsx("article",{className:"refiner-activity-row",children:n.jsx(Hm,{activity:e})}):null}function tp({activeWorkspaceAppId:e,activity:t,connection:s,onOpenImage:r,onOpenSession:a}){const[i,l]=o.useState(!1),c=o.useId();return t.subagentMessage?n.jsx(Go,{activity:t}):n.jsxs("div",{className:`activity-tool-row ${t.controlKind==="turn_aborted"?"danger":""}`,children:[n.jsx(Tr,{className:"activity-tool-summary",controls:c,danger:t.controlKind==="turn_aborted",expanded:i,icon:t.kind==="command"?n.jsx(wa,{"aria-hidden":!0,className:"activity-summary-kind-icon",size:12}):void 0,onToggle:()=>l(u=>!u),children:fp(t)}),i?n.jsx(np,{activeWorkspaceAppId:e,activity:t,connection:s,detailsId:c,onOpenImage:r,onOpenSession:a}):null]})}function np({activeWorkspaceAppId:e,activity:t,connection:s,detailsId:r,onOpenImage:a,onOpenSession:i}){const l=Ma(t.imagePreview??null,s,e);return n.jsxs("div",{className:"activity-tool-details",id:r,children:[t.kind==="command"&&t.content?n.jsx(hp,{command:t.content,exitCode:t.terminal?.exitCode,output:t.detail,state:t.state}):t.content?jp(t.content)?n.jsx("pre",{className:"activity-detail-output",children:t.content}):n.jsx("code",{className:"activity-tool-content",children:t.content}):null,t.detail&&t.kind!=="command"?n.jsx("pre",{className:"activity-detail-output",children:t.detail.replace(/\r\n/g,`
|
|
57
|
+
`).trimEnd()}):null,t.meta?n.jsx("small",{className:"activity-detail-meta",children:t.meta}):null,t.imagePreview&&l?n.jsx("button",{type:"button",className:"activity-image-preview",title:`Open ${t.imagePreview.path}`,onClick:()=>a(t.imagePreview??null),children:n.jsx("img",{alt:oc(t.imagePreview.path),decoding:"async",loading:"lazy",src:l})}):null,t.openSession&&i?n.jsx(Uo,{className:"activity-subagent-detail-avatar",openSession:t.openSession,onOpenSession:i}):null]})}function sp({artifacts:e,connection:t,onOpenFileInSidebar:s}){return n.jsx("div",{className:"activity-artifact-list",children:e.map(r=>r.contentType.startsWith("video/")?n.jsx(ap,{artifact:r,connection:t,onOpenFileInSidebar:s},r.path):r.contentType.startsWith("image/")?n.jsx(rp,{artifact:r,connection:t},r.path):n.jsx(Qm,{artifact:r,onOpenFileInSidebar:s},r.path))})}function rp({artifact:e,connection:t}){const[s,r]=o.useState(!1),a=Xi(t,e.path);return n.jsxs("div",{className:"activity-artifact-image",title:e.path,children:[n.jsx("button",{type:"button",disabled:!a,onClick:()=>r(!0),title:`Open ${e.title}`,children:a?n.jsx("img",{alt:e.title,decoding:"async",loading:"lazy",src:a}):n.jsx(Ar,{"aria-hidden":!0,size:20})}),n.jsx("strong",{children:e.title}),n.jsx(Qi,{open:s&&!!a,src:a,title:e.title,onClose:()=>r(!1)})]})}function ap({artifact:e,connection:t,onOpenFileInSidebar:s}){const r=o.useRef(null),[a,i]=o.useState(!1),l=_m(t,e.path),c=()=>{const u=r.current;u&&u.play().then(()=>i(!0)).catch(()=>{})};return n.jsxs("div",{className:"activity-artifact-video",title:e.path,children:[n.jsxs("div",{className:"activity-artifact-video-stage",children:[l?n.jsx("video",{controls:!0,onPlay:()=>i(!0),preload:"metadata",ref:r,src:l}):n.jsx("div",{className:"activity-artifact-video-loading",children:"Preparing video…"}),l&&!a?n.jsx("button",{type:"button",className:"activity-artifact-video-play",onClick:c,"aria-label":`Play ${e.title}`,children:n.jsx(Vc,{"aria-hidden":!0,fill:"currentColor",size:22})}):null]}),n.jsxs("div",{className:"activity-artifact-video-footer",children:[n.jsxs("button",{type:"button",className:"activity-artifact-video-file",onClick:()=>{Ca(e.path)},title:`Show ${e.path} in its folder`,children:[n.jsx(Yi,{"aria-hidden":!0,size:13}),n.jsxs("span",{children:[n.jsx("strong",{children:e.title}),n.jsx("code",{children:e.path})]}),n.jsx("small",{children:e.sizeBytes==null?e.contentType:ip(e.sizeBytes)})]}),s?n.jsxs("button",{type:"button",className:"activity-artifact-video-sidebar",onClick:()=>s(e.path),title:"Open video in sidebar",children:[n.jsx(qi,{"aria-hidden":!0,size:13}),"Open in sidebar"]}):null]})]})}function ip(e){return e<1024?`${e} B`:e<1024**2?`${(e/1024).toFixed(1)} KB`:e<1024**3?`${(e/1024**2).toFixed(1)} MB`:`${(e/1024**3).toFixed(1)} GB`}function Go({activity:e}){const[t,s]=o.useState(!1),r=e.subagentMessage;if(!r)return null;const a=`${Ho(r.roleId??e.openSession?.roleId)} subagent`,i=r.direction==="received"?`${a} update`:`Message to ${a.toLowerCase()}`,l=r.modelRef?.modelId?`${i} · ${r.modelRef.modelId}`:i,c=lp(r),u=cp(r.body);return n.jsx("div",{className:`activity-child-message ${r.direction}`,children:n.jsxs("div",{className:"activity-child-message-card",children:[n.jsxs("div",{className:"activity-child-message-header",children:[n.jsxs("span",{className:"activity-child-message-title",children:[n.jsx(js,{"aria-hidden":!0,size:14}),n.jsx("strong",{title:l,children:l})]}),n.jsx("small",{children:r.kind.replace(/_/g," ")})]}),n.jsx("p",{className:u&&!t?"collapsed":void 0,style:{"--subagent-message-visible-lines":Wo},children:r.body}),u?n.jsx("button",{type:"button",className:"activity-child-message-toggle","aria-expanded":t,onClick:()=>s(f=>!f),children:t?"Show less":"Show more"}):null,n.jsxs("details",{className:"activity-child-message-details",children:[n.jsx("summary",{children:"Message details"}),n.jsx("div",{className:"activity-child-message-facts","aria-label":"Child message metadata",children:c.map(f=>n.jsxs("span",{children:[n.jsx("small",{children:f.label}),n.jsx("code",{title:f.value,children:f.value})]},f.label))})]}),r.refs?.length?n.jsx("div",{className:"activity-child-message-refs","aria-label":"Child message references",children:r.refs.map(f=>n.jsxs("span",{children:[f.kind,":",f.id," (",f.label,")"]},`${f.kind}:${f.id}`))}):null]})},e.id)}function op({activities:e}){const t=e[0]?.subagentMessage?.direction??"received";return n.jsx("article",{className:`activity-child-message-group ${t}`,children:e.map(s=>n.jsx(Go,{activity:s},s.id))})}function lp(e){return[{label:"Message",value:e.messageId},{label:"Kind",value:e.kind},{label:"From",value:e.fromRunId},e.roleId?{label:"Role",value:e.roleId}:null,e.modelRef?{label:"Model",value:`${e.modelRef.providerId}/${e.modelRef.modelId}`}:null,e.childSessionId?{label:"Child",value:e.childSessionId}:null,e.toRunId?{label:"To run",value:e.toRunId}:null,e.toRole?{label:"To role",value:e.toRole}:null,e.deliveryStatus?{label:"Delivery",value:e.deliveryStatus}:null,e.wakeReason?{label:"Wake",value:e.wakeReason}:null,e.createdAt?{label:"Created",value:e.createdAt}:null].filter(t=>!!t)}function cp(e){return e.length>Ym||e.split(/\r?\n/).length>Wo}function up(e,t,s,r){return t==="running"?dp(r)||e||"Working…":t==="failed"?`${s?`Failed after ${s}`:"Failed"}${e?` · ${e}`:""}`:t==="interrupted"?`${s?`Interrupted after ${s}`:"Interrupted"}${e?` · ${e}`:""}`:t==="completed"?`${s?`Worked for ${s}`:"Worked"}${e?` · ${e}`:""}`:e}function dp(e){let t=null;for(let s=e.length-1;s>=0;s-=1){const r=e[s];if(r.kind!=="reasoning"&&(t??=r,r.state==="running"||r.state==="pending"))return Mr(r)}return t?Mr(t):null}function Mr(e){return e.kind==="command"?e.state==="failed"?"Command failed":to(e.content,e.state)??(e.state==="running"||e.state==="pending"?"Running command":"Ran command"):e.label.trim()||null}function fp(e){if(e.kind!=="command")return e.label;if(e.state==="running"||e.state==="pending")return Mr(e)??"Running command";const t=mp(e.terminal?.durationMs);return e.state==="failed"?`Command failed${t?` in ${t}`:""}`:`${Mr(e)??"Ran command"}${t?` in ${t}`:""}`}function hp({command:e,exitCode:t,output:s,state:r}){const a=r==="running"||r==="pending"?"Running…":t!=null?`Exit code ${t}`:r==="completed"?"Exit code 0":"Failed";return n.jsxs("section",{"aria-label":"Shell command output",className:`activity-command-terminal ${r??"completed"}`,children:[n.jsx("header",{children:"Shell"}),n.jsx("pre",{children:n.jsxs("code",{className:"shell-command-code",children:[n.jsx("span",{className:"activity-command-prompt","aria-hidden":!0,children:"$ "}),pp(e),s?n.jsx("span",{className:"activity-command-output",children:`
|
|
58
|
+
${s.replace(/\r\n/g,`
|
|
59
|
+
`).trimEnd()}`}):null]})}),n.jsx("footer",{children:a})]})}function mp(e){if(e==null||e<0)return null;if(e<6e4)return`${Math.max(1,Math.round(e/1e3))}s`;const t=Math.floor(e/6e4),s=Math.round(e%6e4/1e3);return s>0?`${t}m ${s}s`:`${t}m`}function pp(e){return gp(e).map((t,s)=>n.jsx("span",{className:`shell-token ${t.kind}`,children:t.text},`${s}-${t.text}`))}function gp(e){const t=e.match(/"[^"]*"|'[^']*'|&&|\|\||[|;&()<>]|\s+|[^\s|;&()<>]+/g)??[e];let s=!0;return t.map(r=>/^\s+$/.test(r)?{kind:"plain",text:r}:/^(?:&&|\|\||[|;&()<>])$/.test(r)?(s=r!==")"&&r!==">",{kind:"operator",text:r}):/^(['"]).*\1$/.test(r)?{kind:"string",text:r}:/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(r)?{kind:"variable",text:r}:s?(s=!1,{kind:"command",text:r}):/^-{1,2}[\w-]/.test(r)?{kind:"flag",text:r}:/^(?:\.{0,2}\/|~\/|[\w.-]+\/)/.test(r)?{kind:"path",text:r}:{kind:"plain",text:r})}function bp({activeWorkspaceAppId:e,connection:t,image:s}){const r=Ma(s,t,e);return r?n.jsx("img",{"aria-hidden":!0,className:"activity-summary-image",decoding:"async",loading:"lazy",src:r,alt:""}):null}function xp({kind:e}){const t=vp(e);return n.jsx(t,{"aria-hidden":!0,className:`activity-summary-kind-icon ${e}`,size:14})}function vp(e){return e==="approval"||e==="control"?lc:e==="edit"?cc:e==="image"?Ar:e==="list"?uc:e==="read"?yt:e==="reasoning"?eo:e==="search"?dc:e==="subagent"?js:e==="web"?Hi:wa}function Ma(e,t,s){const r=e&&yp(e.path)?e.path:null,a=e?.appId??s,i=Xi(t,r),l=Bc(t,r?null:a,r?null:e?.path);return r?i:l}function yp(e){return/^file:\/\//i.test(e)||/^\//.test(e)||/^[A-Za-z]:[\\/]/.test(e)}function jp(e){return e.includes(`
|
|
60
|
+
`)||e.length>160}function wp({summary:e,onOpenFileInSidebar:t}){const[s,r]=o.useState(null),a=`${e.filesChanged} ${e.filesChanged===1?"file":"files"} changed`,i=e.files.reduce((l,c)=>{const u=Ko(c);return{additions:l.additions+u.additions,deletions:l.deletions+u.deletions}},{additions:0,deletions:0});return n.jsxs("div",{className:"change-summary-card",children:[n.jsxs("div",{className:"change-summary-header",children:[n.jsx("span",{children:a}),n.jsxs("span",{className:"change-summary-counts",children:[n.jsxs("span",{className:"diff-addition",children:["+",i.additions]}),n.jsxs("span",{className:"diff-deletion",children:["-",i.deletions]})]})]}),n.jsx("div",{className:"change-summary-files",children:e.files.map(l=>n.jsx(kp,{file:l,onOpenFileInSidebar:t,open:s===l.path,onToggle:()=>r(c=>c===l.path?null:l.path)},l.path))})]})}function kp({file:e,onOpenFileInSidebar:t,open:s,onToggle:r}){const a=Ko(e),i=Qo(e.patch);return n.jsxs("div",{className:"change-summary-file",children:[n.jsxs("div",{className:"change-summary-file-trigger",children:[n.jsx("button",{type:"button",className:"change-summary-file-toggle",onClick:r,children:n.jsx("span",{children:e.path})}),n.jsxs("span",{className:"change-summary-counts",children:[n.jsxs("span",{className:"diff-addition",children:["+",a.additions]}),n.jsxs("span",{className:"diff-deletion",children:["-",a.deletions]})]}),t&&n.jsx("button",{type:"button",className:"change-summary-open-file",title:"Open in sidebar","aria-label":`Open ${e.path} in sidebar`,onClick:()=>t(e.path),children:n.jsx(Cr,{size:14})}),n.jsx("button",{type:"button",className:"change-summary-expand-file",title:s?"Hide patch":"Show patch","aria-label":s?`Hide ${e.path} patch`:`Show ${e.path} patch`,onClick:r,children:n.jsx(Bt,{className:s?"expanded":"",size:14})})]}),s&&i&&n.jsx("div",{className:"change-summary-patch-unavailable",children:"Patch is no longer available for this workspace path."}),s&&e.patch&&!i&&n.jsx("pre",{className:"change-summary-patch",children:n.jsx("code",{children:e.patch})})]})}function Ko(e){if((e.status==="added"||e.status==="untracked")&&e.additions===0&&e.content)return{additions:Cp(e.content),deletions:0};if(e.additions>0||e.deletions>0||!e.patch||Qo(e.patch))return{additions:e.additions,deletions:e.deletions};const t=Sp(e.patch);return t.additions>0||t.deletions>0?t:{additions:e.additions,deletions:e.deletions}}function Cp(e){const t=e.endsWith(`
|
|
61
|
+
`)?e.slice(0,-1):e;return t?t.split(`
|
|
62
|
+
`).length:0}function Qo(e){return/^error: Could not access /m.test(e)}function Sp(e){let t=0,s=0;for(const r of e.split(`
|
|
63
|
+
`))r.startsWith("+++")||r.startsWith("---")||(r.startsWith("+")&&(t+=1),r.startsWith("-")&&(s+=1));return{additions:t,deletions:s}}function Rp({run:e}){const t=e.plan,s=e.questions.find(c=>c.status==="pending")??null,r=fc(t?.metadata),i=e.target.kind==="agent"?null:e.sourceRefs[0]??t?.sourcePlan[0]?.path??null,l=e.checkRefs.length||t?.checks.length||0;return n.jsxs("section",{className:"chat-create-receipt","aria-label":"Create or improve status",children:[n.jsxs("div",{className:"chat-create-receipt-heading",children:[n.jsx(yt,{size:14}),n.jsx("span",{children:Ep(e)}),n.jsx("small",{children:e.target.kind})]}),n.jsx("p",{children:Mp(e,t?.summary??null,s?.prompt??null)}),r||i||l?n.jsxs("div",{className:"chat-create-receipt-facts",children:[r?n.jsx("span",{title:r.detail,children:r.label}):null,i?n.jsx("span",{title:i,children:i}):null,l?n.jsxs("span",{children:[l," Evals"]}):null]}):null]})}function Ep(e){const t=e.target.kind==="agent";return e.state==="awaiting_questions"?"Question ready":e.state==="awaiting_plan_approval"?"Plan ready":e.state==="applying_source"?t?"Saving Agent":"Applying source":e.state==="running_checks"?"Running Evals":e.state==="evaluating"?t?"Checking Agent":"Evaluating candidate":e.state==="awaiting_promotion"?t?"Update ready":"Candidate ready":e.state==="opening_pull_request"?"Opening review":e.state==="pull_request_open"?"Review open":e.state==="reconciling_release"?t?"Applying update":"Merging change":e.state==="released"?t?"Agent updated":"Released":e.state==="rejected"?t?"Current Agent kept":"Rejected":e.state==="ready"||e.state==="ready_local"?t?"Agent ready":"Workproduct ready":e.state==="published_hosted"?"Published":e.state==="cancelled"?"Cancelled":e.state==="blocked"?"Blocked":e.state==="failed"?"Failed":e.operation==="improve"?"Planning improvement":"Planning creation"}function Mp(e,t,s){return e.state==="awaiting_questions"&&s?s:t||(e.blockedReason?e.blockedReason:e.state==="ready"||e.state==="ready_local"?e.target.kind==="agent"?"The Agent and its actions are ready to use.":"The candidate and its Evals are ready.":e.state==="awaiting_promotion"?e.target.kind==="agent"?"The updated Agent passed its Evals. Apply the update or keep the current version.":"The candidate has been committed and evaluated. Merge or reject it.":e.state==="pull_request_open"&&e.releaseOutcome.pullRequest?e.target.kind==="agent"?"The Agent update review is waiting to finish or close.":"The external review is waiting for merge or closure.":e.state==="released"?e.target.kind==="agent"?"The Agent update is saved and its Evals passed.":"The change merged and the active Profile passed its post-merge Evals.":e.state==="rejected"?e.blockedReason??(e.target.kind==="agent"?"The Agent update was not applied.":"The candidate was rejected."):`Preparing work for ${e.objective}.`)}const xa=o.memo(function({activeWorkspaceAppId:t=null,animateInitialContent:s=!1,accountBaseUrl:r=null,billingOrganizationSlug:a=null,billingTeamId:i=null,connection:l=null,conversationLinks:c,message:u,kvCacheSummary:f=null,onOpenBrowserLink:m,onOpenAttachmentInSidebar:x,onOpenFileInSidebar:p,onOpenProfileSettings:h,onResolveUserQuestion:b,onOpenSession:g,onOpenPonder:v,showFooter:y=!0,userAttachmentDisplay:S="full",workspaceRootPath:k=null}){if(u.role==="visual"&&u.visual)return n.jsx("article",{className:"message-row assistant",children:n.jsx(lo,{visual:u.visual,connection:l},u.visual.publicationId)});if(u.role==="task_message")return n.jsx(mm,{message:u,onOpenSession:g,onOpenPonder:v,connection:l});if(u.role==="status_divider")return n.jsx(Hp,{message:u});if(u.role==="activity_group")return n.jsx(Zm,{activeWorkspaceAppId:t,connection:l,message:u,onOpenFileInSidebar:p,onOpenSession:g});if(u.role==="error")return u.errorKind==="opchat_quota_exceeded"?n.jsx("article",{className:"message-row assistant",children:n.jsx(zp,{accountBaseUrl:r,billingOrganizationSlug:a,billingTeamId:i,onOpenBrowserLink:m})}):n.jsx("article",{className:"message-row assistant",children:n.jsx("div",{className:"assistant-message error-message",children:u.content??""})});if(u.role==="user"){const R=hm(u.content??""),E=u.attachments??[],C=S==="compact",$=E.length>0,F=!!(!C&&E.some(U=>U.kind==="image"));return!R&&!$?null:n.jsx("article",{className:"message-row user",children:n.jsxs("div",{className:`user-message ${$?"has-attachments":""} ${F?"has-image-attachments":""}`,children:[E.length?n.jsx(Dp,{attachments:E,compact:C,connection:l,onOpenAttachment:x}):null,R?n.jsx(Fo,{content:R}):null]})})}const A=u.actionRun&&Ti(u.actionRun)?Nm(u.actionRun):null;return n.jsxs("article",{className:"message-row assistant",children:[u.reasoningContent?n.jsx(Np,{activeWorkspaceAppId:t,animateInitialContent:s,connection:l,reasoningContent:u.reasoningContent,onOpenBrowserLink:m,onOpenFileInSidebar:p,workspaceRootPath:k}):null,u.content?n.jsx("div",{className:"assistant-message",children:n.jsx(Bo,{activeWorkspaceAppId:t,animateInitialContent:s,connection:l,content:u.content,conversationLinks:c,onOpenConversation:g,onOpenBrowserLink:m,onOpenFileInSidebar:p,workspaceRootPath:k})}):null,u.sources?.length?n.jsx(Pp,{sources:u.sources,onOpenBrowserLink:m}):null,u.actionRun&&Ti(u.actionRun)?n.jsxs("div",{className:`assistant-message action-run-profile-message ${u.actionRun.status}`,children:[n.jsx(Ki,{activeWorkspaceAppId:t,connection:l,content:u.actionRun.responseText??Am(u.actionRun),onOpenBrowserLink:m,onOpenFileInSidebar:p,workspaceRootPath:k}),A?n.jsx("div",{className:"action-run-agent-label",children:h?n.jsx("button",{type:"button",className:"action-run-agent-link",onClick:h,children:A}):n.jsx("span",{children:A})}):null]}):u.actionRun?n.jsx(Mm,{actionRun:u.actionRun,onOpenBrowserLink:m,onOpenFileInSidebar:p,workspaceRootPath:k}):null,u.changeSummary&&n.jsx(wp,{summary:u.changeSummary,onOpenFileInSidebar:p}),u.createImproveRun?n.jsx(Rp,{run:u.createImproveRun}):null,u.userQuestion?n.jsx($p,{question:u.userQuestion,onResolve:b}):null,y||f?n.jsx(Ea,{content:u.content,timestamp:u.timestamp,kvCacheSummary:f}):null]})},Ip),Np=o.memo(function({activeWorkspaceAppId:t,animateInitialContent:s,connection:r,reasoningContent:a,onOpenBrowserLink:i,onOpenFileInSidebar:l,workspaceRootPath:c}){const[u,f]=o.useState(!1);return n.jsxs("div",{className:"activity-group assistant-reasoning",children:[n.jsx(Tr,{expanded:u,icon:n.jsx(eo,{"aria-hidden":!0,className:"activity-summary-kind-icon",size:13}),onToggle:()=>f(m=>!m),children:"Thinking"}),u?n.jsx("div",{className:"assistant-reasoning-content",children:n.jsx(Bo,{activeWorkspaceAppId:t,animateInitialContent:s,connection:r,content:a,onOpenBrowserLink:i,onOpenFileInSidebar:l,workspaceRootPath:c})}):null]})},Ap);function Ap(e,t){return e.activeWorkspaceAppId===t.activeWorkspaceAppId&&e.animateInitialContent===t.animateInitialContent&&e.connection===t.connection&&e.reasoningContent===t.reasoningContent&&e.onOpenBrowserLink===t.onOpenBrowserLink&&e.onOpenFileInSidebar===t.onOpenFileInSidebar&&e.workspaceRootPath===t.workspaceRootPath}function Ip(e,t){return e.activeWorkspaceAppId===t.activeWorkspaceAppId&&e.animateInitialContent===t.animateInitialContent&&e.accountBaseUrl===t.accountBaseUrl&&e.billingOrganizationSlug===t.billingOrganizationSlug&&e.billingTeamId===t.billingTeamId&&e.connection===t.connection&&e.kvCacheSummary===t.kvCacheSummary&&e.onOpenBrowserLink===t.onOpenBrowserLink&&e.onOpenAttachmentInSidebar===t.onOpenAttachmentInSidebar&&e.onOpenFileInSidebar===t.onOpenFileInSidebar&&e.onOpenProfileSettings===t.onOpenProfileSettings&&e.onResolveUserQuestion===t.onResolveUserQuestion&&e.onOpenSession===t.onOpenSession&&e.showFooter===t.showFooter&&e.userAttachmentDisplay===t.userAttachmentDisplay&&e.workspaceRootPath===t.workspaceRootPath&&Tp(e.message,t.message)}function Tp(e,t){return e===t?!0:e.id===t.id&&e.role===t.role&&e.visual?.publicationId===t.visual?.publicationId&&e.content===t.content&&e.timestamp===t.timestamp&&e.turnId===t.turnId&&e.statusKind===t.statusKind&&e.statusState===t.statusState&&e.statusTone===t.statusTone&&e.errorKind===t.errorKind&&Fp(e.attachments,t.attachments)&&e.activities===t.activities&&e.sources===t.sources&&e.actionRun===t.actionRun&&e.changeSummary===t.changeSummary&&e.createImproveRun===t.createImproveRun&&e.userQuestion===t.userQuestion&&e.reasoningContent===t.reasoningContent&&e.taskMessage===t.taskMessage}function $p({question:e,onResolve:t}){const[s,r]=o.useState(""),[a,i]=o.useState(!1),l=async c=>{if(!(!t||a||e.status!=="pending")){i(!0);try{await t(e,c)}finally{i(!1)}}};return n.jsxs("section",{className:`user-question-card ${e.status}`,"aria-label":"Question from OpenPond",children:[n.jsxs("header",{className:"user-question-header",children:[n.jsx("span",{className:"user-question-icon","aria-hidden":!0,children:n.jsx(mc,{size:17})}),n.jsxs("span",{className:"user-question-heading",children:[n.jsx("span",{className:"user-question-eyebrow",children:"Question"}),n.jsx("strong",{children:e.question})]})]}),e.reason?n.jsx("p",{className:"user-question-reason",children:e.reason}):null,e.status==="pending"?n.jsxs(n.Fragment,{children:[e.options.length>0?n.jsx("div",{className:"user-question-options",children:e.options.map((c,u)=>n.jsxs("button",{disabled:a||!t,type:"button",onClick:()=>{l({questionId:e.id,action:"answer",optionId:c.id,text:c.label})},children:[n.jsx("span",{className:"user-question-option-index","aria-hidden":!0,children:u+1}),n.jsxs("span",{className:"user-question-option-copy",children:[n.jsx("span",{children:c.label}),c.description?n.jsx("small",{children:c.description}):null]})]},c.id))}):null,e.allowFreeform?n.jsxs("form",{className:"user-question-freeform",onSubmit:c=>{c.preventDefault();const u=s.trim();u&&l({questionId:e.id,action:"answer",optionId:null,text:u})},children:[n.jsx("label",{htmlFor:`question-answer-${e.id}`,children:"Or write your own answer"}),n.jsxs("span",{className:"user-question-freeform-controls",children:[n.jsx("input",{"aria-label":"Answer",disabled:a||!t,id:`question-answer-${e.id}`,onChange:c=>r(c.target.value),placeholder:"Type an answer",value:s}),n.jsx("button",{disabled:a||!t||!s.trim(),type:"submit",children:a?"Sending…":"Answer"})]})]}):null,n.jsx("button",{className:"user-question-dismiss",disabled:a||!t,type:"button",onClick:()=>{l({questionId:e.id,action:"dismiss",optionId:null,text:""})},children:"Skip for now"})]}):n.jsxs("span",{className:"user-question-resolution",children:[n.jsx(Ui,{"aria-hidden":!0,size:15}),n.jsx("small",{children:e.status==="answered"?`Answered${e.answer?.text?`: ${e.answer.text}`:""}`:"Skipped"})]})]})}function Pp({sources:e,onOpenBrowserLink:t}){return n.jsx("div",{className:"assistant-sources","aria-label":"Sources",children:n.jsx("div",{className:"assistant-source-stack",children:e.map(s=>n.jsx(_p,{source:s,onOpenBrowserLink:t},`${s.id}:${s.url}`))})})}function _p({source:e,onOpenBrowserLink:t}){const s=Op(e),r=[e.title,Xo(e.url)].filter(Boolean).join(" - "),a=n.jsxs(n.Fragment,{children:[n.jsx(Lp,{source:e}),n.jsx("span",{children:s})]});return t?n.jsx("button",{type:"button",className:"assistant-source-pill",title:r||s,"aria-label":`Open source ${s}`,onClick:()=>t(e.url,{newTab:!0}),children:a}):n.jsx("a",{className:"assistant-source-pill",href:e.url,target:"_blank",rel:"noreferrer",title:r||s,"aria-label":`Open source ${s}`,children:a})}function Lp({source:e}){const[t,s]=o.useState(!1);return!e.faviconUrl||t?n.jsx(Hi,{className:"assistant-source-fallback-icon",size:13}):n.jsx("img",{alt:"","aria-hidden":"true",className:"assistant-source-favicon",decoding:"async",loading:"lazy",src:e.faviconUrl,onError:()=>s(!0)})}function Op(e){return e.sourceName?.trim()||Xo(e.url)||e.title}function Xo(e){try{return new URL(e).hostname.replace(/^www\./i,"")}catch{return null}}function zp({accountBaseUrl:e,billingOrganizationSlug:t,billingTeamId:s,onOpenBrowserLink:r}){const a=hc({accountBaseUrl:e,organizationSlug:t,teamId:s}),i=n.jsxs(n.Fragment,{children:[n.jsx(Ba,{size:15}),n.jsx("span",{children:"Add credits"}),n.jsx(pc,{size:13})]});return n.jsxs("div",{className:"assistant-message quota-error-card",role:"alert",children:[n.jsx("div",{className:"quota-error-card-icon",children:n.jsx(Ba,{size:17})}),n.jsxs("div",{className:"quota-error-card-body",children:[n.jsx("strong",{children:"OpenPond Chat allowance reached"}),n.jsx("p",{children:"You have reached your OpChat token allowance for this period. Add credits or wait for the allowance to reset."}),r?n.jsx("button",{type:"button",className:"quota-error-card-action",onClick:()=>r(a,{newTab:!0}),children:i}):n.jsx("a",{className:"quota-error-card-action",href:a,target:"_blank",rel:"noreferrer",children:i})]})]})}function Fp(e,t){if(e===t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let s=0;s<e.length;s+=1){const r=e[s],a=t[s];if(r.id!==a.id||r.kind!==a.kind||r.name!==a.name||r.mediaType!==a.mediaType||r.sizeBytes!==a.sizeBytes||r.lineCount!==a.lineCount||r.imagePreview?.sessionId!==a.imagePreview?.sessionId||r.imagePreview?.turnId!==a.imagePreview?.turnId||r.imagePreview?.attachmentId!==a.imagePreview?.attachmentId||r.imagePreview?.storageName!==a.imagePreview?.storageName||r.imagePreview?.contentType!==a.imagePreview?.contentType||r.filePreview?.sessionId!==a.filePreview?.sessionId||r.filePreview?.turnId!==a.filePreview?.turnId||r.filePreview?.attachmentId!==a.filePreview?.attachmentId||r.filePreview?.storageName!==a.filePreview?.storageName||r.filePreview?.contentType!==a.filePreview?.contentType)return!1}return!0}function Dp({attachments:e,compact:t,connection:s,onOpenAttachment:r}){return n.jsx("div",{className:`user-message-attachments${t?" compact":""}`,"aria-label":"Attached files",children:e.map(a=>n.jsx(Bp,{attachment:a,compact:t,connection:s,onOpenAttachment:r},a.id))})}function Bp({attachment:e,compact:t,connection:s,onOpenAttachment:r}){return!t&&e.kind==="image"&&e.imagePreview?n.jsx(qp,{attachment:e,connection:s}):n.jsx(Up,{attachment:e,onOpenAttachment:r})}function Up({attachment:e,onOpenAttachment:t}){const[s,r]=o.useState(!1),a=!!((e.filePreview||e.imagePreview)&&t),i=s?"Opening":e.lineCount!==void 0?No(e.lineCount):null,l=n.jsxs(n.Fragment,{children:[n.jsx(Ao,{attachment:e,size:13}),n.jsx("span",{children:e.name}),i?n.jsx("small",{children:i}):null]});return a?n.jsx("button",{"aria-label":`Open attached file ${e.name}`,className:"user-message-attachment openable",disabled:s,title:`Open ${e.name}`,type:"button",onClick:()=>{!t||s||(r(!0),t(e).finally(()=>r(!1)))},children:l}):n.jsx("span",{className:"user-message-attachment",title:e.name,children:l})}function qp({attachment:e,connection:t}){const s=dm(t,e.imagePreview);return n.jsxs("figure",{className:`user-message-image-attachment ${s?"ready":"loading"}`,title:e.name,children:[n.jsx("div",{className:"user-message-image-frame",children:s?n.jsx("img",{alt:e.name,decoding:"async",loading:"lazy",src:s}):n.jsx(Ar,{size:24})}),n.jsx("figcaption",{children:n.jsx("span",{children:e.name})})]})}const Fg=o.memo(function(){return n.jsx("article",{className:"activity-group thinking-row","aria-live":"polite",children:n.jsx(Tr,{running:!0,children:"Thinking…"})})});function Hp({message:e}){const t=e.statusTone??"info",s=e.statusState??"idle";return n.jsx("article",{className:`status-divider ${t} ${s}`,"aria-live":t==="danger"?"assertive":"polite",children:n.jsx("span",{children:e.content??""})})}function Nr(e){return e.state==="proposed"&&["waiting_input","waiting_approval","cancelled"].includes(e.target.status)}function Vp({items:e,busy:t,editingId:s,onEdit:r,onSend:a,onDismiss:i,onOpen:l}){return e.length?n.jsx("section",{className:"ponder-recommendations","aria-label":"Ponder recommendations",children:e.map(c=>n.jsxs("article",{className:"ponder-recommendation","data-state":c.state,children:[n.jsx("button",{type:"button",className:"ponder-recommendation-target",onClick:()=>l(c.target.conversationId),children:c.target.title}),n.jsx("p",{children:c.summary}),c.submittedText||c.proposedText?n.jsx("blockquote",{children:c.submittedText??c.proposedText}):null,n.jsxs("details",{children:[n.jsx("summary",{children:"Why Ponder suggested this"}),c.evidence.map(u=>n.jsx("p",{children:u.excerpt},u.id))]}),["proposed","failed","stale","submitting"].includes(c.state)?n.jsxs("div",{className:"ponder-recommendation-actions",children:[c.state==="proposed"&&c.proposedText?n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button",disabled:!!t,onClick:()=>r(c),children:s===c.id?"Editing below":"Edit"}),n.jsx("button",{type:"button",disabled:!!t||Nr(c),onClick:()=>a(c),children:t===c.id?"Sending…":s===c.id?"Send edited message":"Send"})]}):null,(c.state==="failed"||c.state==="submitting")&&c.submittedText&&c.submissionRevision!==null?n.jsx("button",{type:"button",disabled:!!t,onClick:()=>a(c),children:t===c.id?"Retrying…":"Retry reviewed message"}):null,Nr(c)?n.jsx("small",{role:"status",children:"Resolve this task's wait or cancellation before sending a new message."}):null,c.state!=="submitting"?n.jsx("button",{type:"button",disabled:!!t,onClick:()=>i(c),children:"Dismiss"}):n.jsx("small",{role:"status",children:"Awaiting task acknowledgment"}),c.state==="stale"?n.jsx("small",{role:"status",children:"Task changed — review its latest state"}):null]}):n.jsx("small",{role:"status",children:c.state==="submitted"?"Message submitted to the task":c.state==="stale"?"Task changed — review the latest task before sending":c.state.replaceAll("_"," ")}),c.error?n.jsx("p",{role:"alert",children:c.error}):null]},c.id))}):null}function Wp(e,t){const[s,r]=o.useState([]),[a,i]=o.useState(null),[l,c]=o.useState(null),u=o.useRef({connection:e,bindingId:t});u.current={connection:e,bindingId:t};const f=o.useRef(!1),m=o.useRef(!0),x=o.useCallback(async h=>{if(!t)return;const b=await Ne(e,"/v1/ponder/recommendations",{signal:h});m.current&&!h?.aborted&&u.current.connection===e&&u.current.bindingId===t&&b.bindingId===t&&(r(b.items),i(null))},[e,t]);o.useEffect(()=>{if(m.current=!0,r([]),i(null),c(null),!t)return()=>{m.current=!1};const h=new AbortController;let b=!1;const g=async()=>{if(!b){b=!0;try{await x(h.signal)}catch(y){h.signal.aborted||i(y instanceof Error?y.message:"Unable to read recommendations.")}finally{b=!1}}};g();const v=window.setInterval(()=>{g()},5e3);return()=>{m.current=!1,h.abort(),window.clearInterval(v)}},[t,x]);const p=o.useCallback(async(h,b,g)=>{if(f.current||!t)return!1;if(b==="send"&&Nr(h))return i("Resolve this task's wait or cancellation before sending a new message."),!1;const v=b==="send"&&(h.state==="submitting"||h.state==="failed");if(v&&(!h.submittedText||h.submissionRevision===null))return!1;const y=v?h.submissionRevision:h.revision,S=v?h.submittedText:g;f.current=!0,c(h.id);try{return await Ne(e,`/v1/ponder/recommendations/${encodeURIComponent(h.id)}/action`,{method:"POST",body:JSON.stringify({action:b,expectedRevision:y,...S===void 0?{}:{message:S}})}),!m.current||u.current.connection!==e||u.current.bindingId!==t?!1:(await x(),m.current&&u.current.connection===e&&u.current.bindingId===t)}catch(k){return u.current.connection===e&&u.current.bindingId===t&&i(k instanceof Error?k.message:"Recommendation action failed."),!1}finally{f.current=!1,u.current.connection===e&&u.current.bindingId===t&&c(null)}},[t,e,x]);return{items:s,error:a,busy:l,action:p,refresh:x}}function Gp({connection:e,work:t,localWork:s,busy:r,onOpenWork:a,onOpenLocalWork:i,onOpenLocalOutput:l,onOpenOutput:c}){const[u,f]=o.useState(null),[m,x]=o.useState(null),p=o.useRef({connection:e,mounted:!0,inFlight:!1});p.current.connection!==e&&(p.current={connection:e,mounted:!0,inFlight:!1}),o.useEffect(()=>{const g=p.current;return g.mounted=!0,f(null),x(null),()=>{g.mounted=!1}},[e]);const h=[...t.flatMap(g=>g.deliveries.filter(v=>v.status==="attention"&&v.attentionAt).map(v=>({task:g,delivery:v,kind:"hosted"}))),...s.flatMap(g=>g.deliveries.filter(v=>v.status==="attention"&&v.attentionAt).map(v=>({task:g,delivery:v,kind:"local"})))];async function b(g){const v=p.current;if(!g.attentionAt||v.inFlight)return;const y=()=>v.mounted&&p.current===v;v.inFlight=!0,f(g.inputId),x(null);try{await Ne(e,"/v1/ponder/results/retry",{method:"POST",body:JSON.stringify({inputId:g.inputId,attentionAt:g.attentionAt,priorTurnId:g.ponderTurnId})})}catch(S){y()&&x(S instanceof Error&&S.message==="hosted_work_model_not_available"?"The selected model is unavailable. Choose an available model, then retry.":"The discussion could not be started. Refresh and try again.")}finally{v.inFlight=!1,y()&&f(null)}}return h.length===0?null:n.jsxs("section",{"aria-label":"Saved results needing discussion","aria-live":"polite",children:[h.map(g=>n.jsxs("div",{className:"ponder-desktop-attention",children:[n.jsxs("p",{children:["The result from"," ",n.jsx("button",{type:"button",onClick:()=>g.kind==="hosted"?a(g.task.conversationId):i(g.task),children:g.task.title})," ","is saved.",g.delivery.attentionReason==="model_unavailable"?" The selected model was unavailable.":g.delivery.attentionReason==="chat_cancelled"?" The discussion was cancelled.":" The discussion failed."]}),g.delivery.outputs.map(v=>n.jsxs("button",{type:"button",onClick:()=>g.kind==="local"?l({...g.task,turnId:g.delivery.localTurnId},v.id):c(v.id),children:[v.title," · Download"]},v.id)),n.jsx("button",{type:"button",disabled:r||u!==null,onClick:()=>{b(g.delivery)},children:u===g.delivery.inputId?"Starting discussion…":"Retry discussion"})]},g.delivery.inputId)),m?n.jsx("p",{role:"alert",children:m}):null]})}function Kp({message:e,connection:t,work:s,onOpenWork:r,onOpenOutput:a,onOpenLocalWork:i,onOpenLocalOutput:l}){if(e.source==="ponder-recommendation")return null;const c=e.metadata.ponderMessage,u=gc.safeParse(e.metadata.ponderLocalMessage),f=u.success?u.data:null;if(!c&&!f&&e.role!=="user"&&e.role!=="assistant")return null;const m=f?.body??c?.body??e.text;return!c&&!f&&e.role==="assistant"&&!m.trim()?null:n.jsxs("div",{className:`ponder-transcript-message ${f||c?"task-handoff":""}`,children:[n.jsx(xa,{showFooter:!1,connection:t,conversationLinks:s,onOpenSession:r,message:{id:e.id,role:f||c||e.role==="user"?"user":"assistant",content:m,timestamp:e.createdAt}}),f?n.jsxs("div",{className:"ponder-message-destination",children:[n.jsxs("span",{children:[f.direction==="sent"?"Sent to":"Received from"," "]}),n.jsx("button",{type:"button",onClick:()=>i(f),children:f.title}),n.jsxs("span",{children:[" ","· Local task ·"," ",f.status==="resolved"?"Delivered":f.status==="included"?"Included in agent request":f.status.replaceAll("_"," ")]})]}):null,c?n.jsxs("div",{className:"ponder-message-destination",children:[n.jsxs("span",{children:[c.direction==="sent"?"Sent to":"Received from"," "]}),n.jsx("button",{type:"button",onClick:()=>r(c.conversationId),children:c.title}),n.jsxs("span",{children:[" ","·"," ",c.status==="consumed"?"Delivered":c.status.replaceAll("_"," ")]})]}):null,e.role==="assistant"?n.jsx(Ea,{content:m,timestamp:e.createdAt,kvCacheSummary:e.metadata.kvCacheSummary}):null,c?.outputFileIds.map(x=>n.jsx("button",{type:"button",onClick:()=>a(x),children:s.flatMap(p=>p.deliveries.flatMap(h=>h.outputs)).find(p=>p.id===x)?.title??"Saved file"},x)),f?.outputs.map(x=>n.jsxs("button",{type:"button",onClick:()=>l(f,x.id),children:[x.title," · Download"]},x.id))]})}function Qp({connection:e,item:t,onSaved:s}){const[r,a]=o.useState(null),[i,l]=o.useState(""),[c,u]=o.useState(""),[f,m]=o.useState(""),[x,p]=o.useState(""),[h,b]=o.useState(!1),[g,v]=o.useState(null),y=o.useRef(0),S=o.useRef(!1),k=o.useRef(new Map);o.useEffect(()=>(y.current++,S.current=!1,k.current.clear(),a(null),b(!1),v(null),()=>{y.current++}),[e,t.id,t.revision]);async function A(){if(S.current)return;const E=y.current;S.current=!0,b(!0);try{await Es(e,t.scope);const C=`/v1/ponder/handoffs/${encodeURIComponent(t.id)}/edit`,$=qa.parse(await Ne(e,C));if($.handoffId!==t.id||$.revision!==t.revision)throw new Error("The handoff changed. Refresh Activity before editing it.");const F=[...$.targets];let U=$.nextCursor,H=1;for(;U;){if(E!==y.current)return;if(++H>200)throw new Error("The desktop catalog exceeded its page limit.");const z=qa.parse(await Ne(e,`${C}?cursor=${encodeURIComponent(JSON.stringify(U))}`));if(z.handoffId!==$.handoffId||z.revision!==$.revision)throw new Error("The handoff changed. Refresh Activity before editing it.");F.push(...z.targets),U=z.nextCursor}if(E!==y.current)return;$.targets=F,$.nextCursor=null,a($),l($.targets.some(z=>z.id===$.successor.targetId&&z.revision===$.successor.targetRevision)?$.successor.targetId:""),u($.successor.action==="create"?$.successor.title:t.title),m($.successor.prompt),p($.successCriteria),v(null)}catch(C){E===y.current&&v(C instanceof Error?C.message:String(C))}finally{E===y.current&&(S.current=!1,b(!1))}}async function R(){if(!r||S.current)return;const E=r.targets.find(U=>U.id===i);if(!E){v("Choose an available successor on the original desktop.");return}const C={...r.successor,targetId:E.id,targetRevision:E.revision,prompt:f.trim(),...r.successor.action==="create"?{title:c.trim()}:{}},$=JSON.stringify({handoffId:t.id,expectedRevision:r.revision,successor:C,successCriteria:x.trim()});k.current.has($)||k.current.set($,crypto.randomUUID());const F=y.current;S.current=!0,b(!0);try{if(await Es(e,t.scope),F!==y.current||(await Ne(e,"/v1/ponder/handoffs/edit",{method:"POST",body:$,headers:{"Idempotency-Key":k.current.get($)}}),F!==y.current))return;a(null),v(null),await s()}catch(U){F===y.current&&v(U instanceof Error?U.message:String(U))}finally{F===y.current&&(S.current=!1,b(!1))}}return n.jsxs("div",{children:[r?n.jsxs("form",{onSubmit:E=>{E.preventDefault(),R()},children:[n.jsx("p",{children:"Changes apply before successor admission. Saving requires the success criteria to be checked again."}),n.jsxs("label",{children:["Successor",n.jsxs("select",{value:i,disabled:h,required:!0,onChange:E=>l(E.target.value),children:[n.jsx("option",{value:"",children:"Choose a successor"}),r.targets.map(E=>n.jsxs("option",{value:E.id,children:[E.title," · ",E.modelId??E.providerId," · ",E.workspaceLabel]},E.id))]})]}),r.successor.action==="create"&&n.jsxs("label",{children:["Task title",n.jsx("input",{value:c,disabled:h,required:!0,maxLength:300,onChange:E=>u(E.target.value)})]}),n.jsxs("label",{children:["Instruction",n.jsx("textarea",{value:f,disabled:h,required:!0,maxLength:32e3,onChange:E=>m(E.target.value)})]}),n.jsxs("label",{children:["Success criteria",n.jsx("textarea",{value:x,disabled:h,required:!0,maxLength:4e3,onChange:E=>p(E.target.value)})]}),n.jsx("button",{type:"submit",disabled:h,children:h?"Saving handoff…":"Save handoff"}),n.jsx("button",{type:"button",disabled:h,onClick:()=>a(null),children:"Close editor"})]}):n.jsx("button",{type:"button",disabled:h,onClick:()=>{A()},children:h?"Loading handoff…":"Edit handoff"}),g&&n.jsx("p",{role:"alert",children:g})]})}function Xp({items:e,onOpenTask:t,onCancel:s,cancelling:r,connection:a,onEdited:i}){return e.length?n.jsx("section",{className:"ponder-linked-work","aria-label":"Completion handoffs",children:e.map(l=>n.jsxs("article",{children:[n.jsx("strong",{children:l.title}),n.jsx("p",{children:l.cancellationRequested?"Cancellation requested; awaiting the actual stop outcome.":l.state==="waiting"?"Waiting for the original task’s verified result.":l.state==="ready"?"Prerequisite verified; awaiting desktop admission.":l.state==="dispatching"?"Desktop claimed the successor; reconciling admission.":l.state==="admitted"?"Successor admitted; awaiting its result.":l.state==="attention"?"The prerequisite needs review before its successor can start.":l.state==="blocked"?"Handoff blocked.":`Handoff ${l.state}.`}),l.waitingForDesktop&&n.jsx("p",{children:"Reconnect the original desktop under the same account and workspace."}),l.reason&&n.jsx("p",{children:l.reason}),n.jsxs("small",{children:[l.successor.modelId??l.successor.providerId," ·"," ",l.successor.workspaceLabel]}),n.jsxs("details",{children:[n.jsx("summary",{children:"Success criteria"}),n.jsx("p",{children:l.successCriteria})]}),l.prerequisite.sessionId&&n.jsx("button",{type:"button",onClick:()=>t(l,l.prerequisite.sessionId),children:"Open original task"}),l.successor.sessionId&&n.jsx("button",{type:"button",onClick:()=>t(l,l.successor.sessionId),children:"Open successor task"}),l.canCancel&&n.jsx("button",{type:"button",disabled:r!==null,onClick:()=>s(l),children:r===l.id?"Requesting cancellation…":"Cancel handoff"}),l.canEdit&&n.jsx(Qp,{connection:a,item:l,onSaved:i})]},l.id))}):null}async function Jp(e,t,s,r){if(!t.turnId)throw new Error("This local result has no completed task turn.");if(await Es(e,t),!r())return;const a=await Ne(e,"/v1/ponder/desktop/outputs",{method:"POST",body:JSON.stringify({operationId:t.operationId,turnId:t.turnId,outputId:s})});if(!r())return;const i=Uint8Array.from(atob(a.contentsBase64),u=>u.charCodeAt(0)),l=URL.createObjectURL(new Blob([i],{type:a.contentType})),c=document.createElement("a");c.href=l,c.download=a.filename,document.body.append(c),c.click(),c.remove(),setTimeout(()=>URL.revokeObjectURL(l),3e4)}function vt(e){return e instanceof Li&&(e.message==="public_api_route_not_found"||e.message==="product_route_not_found")?"Ponder Pal is available in this app, but the connected OpenPond service has not been updated yet.":e instanceof Error?e.message:String(e)}function Yp({connection:e,presentation:t,composer:s,onOpenWork:r,onOpenLocalWork:a}){const[i,l]=o.useState(null),[c,u]=o.useState(null),[f,m]=o.useState(""),[x,p]=o.useState(""),[h,b]=o.useState(!1),[g,v]=o.useState(null),[y,S]=o.useState([]),[k,A]=o.useState([]),[R,E]=o.useState([]),[C,$]=o.useState([]),[F,U]=o.useState(null),H=o.useRef(new Map),z=o.useRef(null),V=Wp(e,i?.bindingId??null),[W,le]=o.useState(null),be=W?V.items.find(M=>M.id===W.id):null,re=!!(W&&(!be||be.state!=="proposed"||be.revision!==W.revision||Nr(be))),ce=o.useRef(""),q=o.useRef({connection:e,bindingId:i?.bindingId,destination:W?.id??"chat",draft:f});q.current={connection:e,bindingId:i?.bindingId,destination:W?.id??"chat",draft:f};const ye=o.useRef(!1),G=o.useRef(!0);function D(){le(null),m(ce.current)}function _(M){W||(ce.current=f),le(M),m(M.proposedText??"")}async function ae(M,T){const P=q.current,Q=W?.id===M.id;await V.action(M,T,T==="send"?Q?f:M.proposedText??void 0:void 0)&&Q&&q.current.connection===P.connection&&q.current.bindingId===P.bindingId&&q.current.destination===P.destination&&(q.current.draft===P.draft?D():le(null))}o.useEffect(()=>{G.current=!0;let M=!0;return l(null),u(null),S([]),A([]),E([]),$([]),U(null),H.current.clear(),z.current=null,v(null),m(""),ce.current="",b(!1),p(""),le(null),Ne(e,"/v1/ponder",{method:"POST",body:"{}"}).then(T=>{M&&(l(T),v(null))}).catch(T=>{M&&v(vt(T))}),()=>{M=!1,G.current=!1}},[e]),o.useEffect(()=>{if(!i)return;let M=!0;const T=async()=>{try{const Q=await Ne(e,`/v1/ponder/conversations/${encodeURIComponent(i.conversationId)}`);M&&u(Q)}catch(Q){M&&v(vt(Q))}};T();const P=window.setInterval(()=>{T()},3e3);return()=>{M=!1,window.clearInterval(P)}},[e,i]),o.useEffect(()=>{if(!i)return;let M=!0;const T=async()=>{try{const Q=await Ne(e,"/v1/ponder/work"),ne=Xr.array().parse(Q.localHandoffs);M&&(A(Q.items),E(Q.localItems),$(ne))}catch(Q){M&&v(vt(Q))}};T();const P=window.setInterval(()=>{T()},3e3);return()=>{M=!1,window.clearInterval(P)}},[e,i]),o.useEffect(()=>{if(!i||t!=="activity")return;z.current=null,S([]);let M=!0,T=!1;const P=async()=>{if(!T){T=!0;try{let ne;do{const $e=z.current,xe=await Ne(e,`/v1/ponder/conversations/${encodeURIComponent(i.conversationId)}/activity${$e?`?after=${encodeURIComponent($e)}`:""}`);if(!M)return;xe.items.length>0&&(S(De=>[...De,...xe.items]),z.current=xe.nextCursor),ne=xe.hasMore&&xe.items.length>0}while(ne)}catch(ne){M&&v(vt(ne))}finally{T=!1}}};P();const Q=window.setInterval(()=>{P()},3e3);return()=>{M=!1,window.clearInterval(Q)}},[e,i,t]);async function Ie(M){const T=M.contentsBase64?Uint8Array.from(atob(M.contentsBase64),xe=>xe.charCodeAt(0)):M.text!==void 0?new TextEncoder().encode(M.text):null;if(!T)throw new Error(`Attachment ${M.name} has no content to upload.`);const P=await crypto.subtle.digest("SHA-256",T),Q=btoa(String.fromCharCode(...new Uint8Array(P))),ne=await Ne(e,"/v1/ponder/work-inputs",{method:"POST",body:JSON.stringify({name:M.name,contentType:M.mediaType,sizeBytes:T.byteLength,sha256Base64:Q})}),$e=await fetch(ne.upload.url,{method:ne.upload.method,headers:ne.upload.headers,body:new Blob([T],{type:M.mediaType})});if(!$e.ok)throw new Error(`Attachment upload failed (${$e.status})`);return Ne(e,`/v1/ponder/work-inputs/${encodeURIComponent(ne.input.id)}/finalize`,{method:"POST",body:"{}"})}async function se(M=[],T){const P=(T?.promptOverride??f).trim();if(!i||!P||ye.current)return!1;const Q=q.current,ne=()=>G.current&&q.current.connection===Q.connection&&q.current.bindingId===Q.bindingId&&q.current.destination===Q.destination;ye.current=!0,b(!0);try{if(W){if(re)throw new Error("Review the latest task state before sending this proposed message.");if(M.length)throw new Error("Send task messages as text. Attachments can be sent in the task's own conversation.");const De=await V.action(W,"send",P);return ne()?(De&&q.current.draft===Q.draft&&D(),De):!1}const $e=await Promise.all(M.map(Ie));if(!ne())return!1;const xe=await Ne(e,`/v1/ponder/conversations/${encodeURIComponent(i.conversationId)}/turns`,{method:"POST",headers:{"idempotency-key":crypto.randomUUID()},body:JSON.stringify({prompt:P,attachments:$e})});return ne()?(u(De=>De?{...De,activeTurn:xe}:{id:i.conversationId,messages:[],activeTurn:xe}),q.current.draft===Q.draft&&m(""),v(null),!0):!1}catch($e){return ne()&&v(vt($e)),!1}finally{ye.current=!1,b(!1)}}async function fe(M,T){if(M.wait)try{await Ne(e,`/v1/ponder/turns/${encodeURIComponent(M.id)}/waits/${encodeURIComponent(M.wait.id)}/resolve`,{method:"POST",body:JSON.stringify(T)}),p("")}catch(P){v(vt(P))}}async function K(M){try{await Ne(e,`/v1/ponder/turns/${encodeURIComponent(M.id)}/cancel`,{method:"POST",body:"{}"})}catch(T){v(vt(T))}}async function te(M){const T=window.open("about:blank","_blank");try{const P=await Ne(e,`/v1/ponder/work-outputs/${encodeURIComponent(M)}`);if(!P.downloadURL)throw new Error("This output is not available for download.");T?T.location.replace(P.downloadURL):window.location.assign(P.downloadURL)}catch(P){T?.close(),v(vt(P))}}async function J(M){if(!M.sessionId)return;const T=q.current,P=()=>G.current&&q.current.connection===T.connection&&q.current.bindingId===T.bindingId;try{if(await Es(e,M),!P())return;a(M.sessionId)}catch(Q){P()&&v(vt(Q))}}async function Y(M,T){const P=q.current,Q=()=>G.current&&q.current.connection===P.connection&&q.current.bindingId===P.bindingId;try{await Jp(e,M,T,Q)}catch(ne){Q()&&v(vt(ne))}}async function ue(M){if(F)return;const T=q.current,P=()=>G.current&&q.current.connection===T.connection&&q.current.bindingId===T.bindingId,Q=`${M.id}:${M.revision}`;H.current.has(Q)||H.current.set(Q,crypto.randomUUID()),U(M.id);try{await Ne(e,"/v1/ponder/handoffs/cancel",{method:"POST",headers:{"Idempotency-Key":H.current.get(Q)},body:JSON.stringify({handoffId:M.id,expectedRevision:M.revision})});const ne=await Ne(e,"/v1/ponder/work"),$e=Xr.array().parse(ne.localHandoffs);P()&&($($e),v(null))}catch(ne){P()&&v(vt(ne))}finally{P()&&U(null)}}const Pe=!!(c?.activeTurn&&["queued","running","retry_scheduled"].includes(c.activeTurn.status)),ke=!!(c?.activeTurn&&["queued","running","retry_scheduled","waiting_approval","waiting_input"].includes(c.activeTurn.status)),we=t==="activity"&&y.length>0?{id:"ponder-activity",role:"activity_group",timestamp:new Date().toISOString(),activities:y.map(M=>({id:M.id,label:M.type,content:M.text??"",timestamp:new Date().toISOString()}))}:null;return n.jsxs("div",{className:"chat-column","aria-label":"Ponder Pal",children:[n.jsxs("section",{className:"chat-thread","aria-label":"Conversation",children:[n.jsx(Xp,{connection:e,items:C,onEdited:async()=>{const M=q.current,T=await Ne(e,"/v1/ponder/work");G.current&&q.current.connection===M.connection&&q.current.bindingId===M.bindingId&&$(Xr.array().parse(T.localHandoffs))},onOpenTask:(M,T)=>{J({...M.scope,sessionId:T})},onCancel:M=>{ue(M)},cancelling:F}),n.jsx(Gp,{connection:e,work:k,localWork:R,onOpenWork:r,onOpenLocalWork:M=>{J(M)},onOpenLocalOutput:(M,T)=>{Y(M,T)},onOpenOutput:M=>{te(M)},busy:h||ke}),c?.messages.map(M=>n.jsx(Kp,{message:M,connection:e,work:k,onOpenWork:r,onOpenOutput:T=>{te(T)},onOpenLocalWork:T=>{J(T)},onOpenLocalOutput:(T,P)=>{Y(T,P)}},M.id)),n.jsx(Vp,{items:V.items,busy:V.busy,editingId:W?.id??null,onEdit:_,onSend:M=>{ae(M,"send")},onDismiss:M=>{ae(M,"dismiss")},onOpen:r}),V.error?n.jsx("p",{role:"alert",children:V.error}):null,we&&n.jsx(xa,{message:we,connection:e}),Pe&&n.jsx("p",{className:"ponder-request-status",role:"status","aria-live":"polite",children:"Request received. Ponder is working on it…"}),c?.activeTurn?.status==="failed"&&n.jsxs("p",{className:"ponder-request-status",role:"alert",children:["Ponder couldn’t complete this request. ",c.activeTurn.errorText??"Please try again."]}),c?.activeTurn?.wait&&n.jsxs("section",{className:"ponder-desktop-attention",children:[n.jsx("strong",{children:c.activeTurn.wait.title}),c.activeTurn.wait.kind==="approval"?n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button",onClick:()=>{fe(c.activeTurn,{decision:"accepted"})},children:"Approve"}),n.jsx("button",{type:"button",onClick:()=>{fe(c.activeTurn,{decision:"declined"})},children:"Decline"})]}):c.activeTurn.wait.options.length>0?c.activeTurn.wait.options.map(M=>n.jsx("button",{type:"button",onClick:()=>{fe(c.activeTurn,{value:M})},children:M},M)):n.jsxs("form",{onSubmit:M=>{M.preventDefault(),fe(c.activeTurn,{value:x})},children:[n.jsx("input",{"aria-label":"Response to Ponder Pal",value:x,onChange:M=>p(M.target.value)}),n.jsx("button",{type:"submit",disabled:!x.trim(),children:"Send response"})]})]}),c?.activeTurn?.outputs?.map(M=>M.downloadURL?n.jsx("a",{href:M.downloadURL,target:"_blank",rel:"noreferrer",children:M.name},M.id):n.jsx("button",{type:"button",onClick:()=>{te(M.id)},children:M.name},M.id)),g&&n.jsx(xa,{message:{id:"ponder-error",role:"error",content:g,timestamp:new Date().toISOString()},connection:e})]}),n.jsxs("div",{className:"composer-stack dock",children:[W?n.jsxs("div",{className:"ponder-message-destination",role:"status",children:[n.jsxs("span",{children:["Message to ",W.target.title,re?" — review the latest task state before sending":""]}),n.jsx("button",{type:"button",onClick:D,children:"Return to Ponder chat"})]}):null,n.jsx(To,{...s,experience:"chat",mode:"dock",showProjectFooter:!1,hideModelControls:!0,connection:e,prompt:f,onPromptChange:m,busy:h||re||!!V.busy||!i,running:Pe&&!W,submissionScopeKey:`ponder:${i?.conversationId??"loading"}:${W?.id??"chat"}`,voiceInputChannelKey:`ponder:${i?.conversationId??"loading"}`,onSubmit:(M,T,P,Q)=>se(M,Q?.promptOverride?{promptOverride:Q.promptOverride}:void 0),onStop:()=>c?.activeTurn?K(c.activeTurn):void 0})]})]})}function Zp({accountBaseUrl:e,onOpenBrowserLink:t,...s}){function r(a){if(!e){s.composer.showToast("OpenPond account URL is unavailable for this Work task.","error");return}try{const i=new URL(`/tasks/${encodeURIComponent(a)}`,e);t(i.toString(),{newTab:!0})}catch{s.composer.showToast("OpenPond account URL is invalid for this Work task.","error")}}return n.jsx(Yp,{...s,onOpenWork:r})}function eg(e){return JSON.stringify({account:e?.account.activeProfile??null,baseUrl:e?.account.baseUrl??null,owner:e?.account.profile?.id??null,state:e?.account.state??null,teamId:e?.preferences.defaultTeamId??null})}const tg=o.lazy(()=>Ae(()=>import("./WorkspaceDiffPanel-BAFo0CPN.js").then(e=>e.a),__vite__mapDeps([7,1,2,5,3,4,8,9,10,11,12,13])).then(e=>({default:e.WorkspaceDiffPanel}))),ng=o.lazy(()=>Ae(()=>import("./AppTerminalPanel-Dj1Y32oI.js"),__vite__mapDeps([14,1,2])).then(e=>({default:e.AppTerminalPanel}))),sg=o.lazy(()=>Ae(()=>import("./RightSidebarHomePanel-CK0rP3WT.js"),__vite__mapDeps([15,1,2,3,4,13,9,11])).then(e=>({default:e.RightSidebarHomePanel}))),rg=o.lazy(()=>Ae(()=>import("./WorkSidebarPanel-DSSikNFQ.js"),__vite__mapDeps([16,1,2,3,4,5,9,11,17,18,19,6,20])).then(e=>({default:e.WorkSidebarPanel}))),ag=o.lazy(()=>Ae(()=>import("./NewExperienceSwitcher-mIy6FzCj.js"),__vite__mapDeps([21,1,2,3,4])).then(e=>({default:e.NewExperienceSwitcher}))),ig=o.lazy(()=>Ae(()=>import("./CollaborationTabs-Bdr-HmOL.js"),__vite__mapDeps([22,1,2,3,4,23])).then(e=>({default:e.CollaborationTabs}))),og=o.lazy(()=>Ae(()=>import("./AppsView-BYE5EBDJ.js"),__vite__mapDeps([24,1,2,3,4,25,12,5,26,17,18,19,9,6,27])).then(e=>({default:e.AppsView}))),lg=o.lazy(()=>Ae(()=>import("./GetStartedView-CFHP0AaI.js"),__vite__mapDeps([28,1,2,6,3,4,29,5,30])).then(e=>({default:e.GetStartedView}))),cg=o.lazy(()=>Ae(()=>import("./LabsRoute-CyYF8-dw.js").then(e=>e.t),__vite__mapDeps([31,1,2,3,4,32,29,17,8,10,0,5,6,33,34])).then(e=>({default:e.LabsRoute}))),ug=o.lazy(()=>Ae(()=>import("./ScheduledWorkPage-vOrYv8pp.js"),__vite__mapDeps([35,1,2,3,4,36,5,6,12,11,17,18,19,9])).then(e=>({default:e.ScheduledWorkPage}))),dg=o.lazy(()=>Ae(()=>import("./OutputsPage-Cr1Spf7S.js"),__vite__mapDeps([37,1,2,3,4,5,9,17,18,19,6])).then(e=>({default:e.OutputsPage}))),fg=o.lazy(()=>Ae(()=>import("./ProjectsPage-CE6QUB-b.js"),__vite__mapDeps([38,1,2,3,4,17,39])).then(e=>({default:e.ProjectsPage}))),Pi=o.lazy(()=>Ae(()=>import("./LabSkillSidebar-BxffN-pN.js"),__vite__mapDeps([40,1,2,3,4,5,11,17,18,19,9,6,41])).then(e=>({default:e.LabSkillSidebar}))),hg=o.lazy(()=>Ae(()=>import("./BrowserSidebar-jhWi4rVm.js"),__vite__mapDeps([42,1,2,3,4,5,19,43])).then(e=>({default:e.BrowserSidebar}))),mg=o.lazy(()=>Ae(()=>import("./RightChatPanelStack-T6VRWuHo.js"),__vite__mapDeps([44,1,2,9,3,4,45,5,17,18,19,6])).then(e=>({default:e.RightChatPanelStack}))),pg=o.lazy(()=>Ae(()=>import("./NativeSkillSidebar-DU9IEgIO.js"),__vite__mapDeps([46,1,2,3,4,11,47])).then(e=>({default:e.NativeSkillSidebar}))),gg=o.lazy(()=>Ae(()=>import("./TeamChatView-Bwrjr-vk.js"),__vite__mapDeps([48,1,2,3,4,5,17,18,19,9,6,49,50])).then(e=>({default:e.TeamChatView}))),bg=o.lazy(()=>Ae(()=>import("./TeamChatView-Bwrjr-vk.js"),__vite__mapDeps([48,1,2,3,4,5,17,18,19,9,6,49,50])).then(e=>({default:e.TeamChatProView}))),xg=o.lazy(()=>Ae(()=>import("./CommunityView-DPEeVKFn.js"),__vite__mapDeps([51,1,2,52,3,4,5,17,18,19,9,6,53])).then(e=>({default:e.CommunityView}))),vg=o.lazy(()=>Ae(()=>import("./TeamChatView-Bwrjr-vk.js"),__vite__mapDeps([48,1,2,3,4,5,17,18,19,9,6,49,50])).then(e=>({default:e.TeamAiThreadPanel}))),yg=o.lazy(()=>Ae(()=>import("./TeamChatView-Bwrjr-vk.js"),__vite__mapDeps([48,1,2,3,4,5,17,18,19,9,6,49,50])).then(e=>({default:e.TeamAgentConversationPanel}))),jg=o.lazy(()=>Ae(()=>import("./TrainingDraftPanel-C9cRX5qf.js"),__vite__mapDeps([54,1,2,3,4,11,34])).then(e=>({default:e.TrainingDraftPanel}))),wg=o.lazy(()=>Ae(()=>import("./MainChatThread-DZpcFRFl.js"),__vite__mapDeps([55,1,2,45,3,4,32,5,17,18,19,9,6])).then(e=>({default:e.MainChatThread}))),kg=o.lazy(()=>Ae(()=>import("./TrainingCreationPanel-BXHfohNm.js"),__vite__mapDeps([56,1,2,3,4,34])).then(e=>({default:e.TrainingCreationPanel})));function Cg({ponderMode:e=null,onPonderModeChange:t,experience:s,onNewExperienceChange:r,view:a,teamChat:i,community:l,bootstrap:c,runtimeEvents:u,chatMessages:f,pendingUserMessage:m,contextWindowStatus:x,goalRuntime:p,subagentRuntime:h,selectedSessionId:b,composerDraftStore:g,mainComposerFocusRequestId:v,labCloseDetailRequestId:y,labCloseDetailKind:S,sideChatTrainingLaunchRequest:k,onSideChatTrainingLaunchHandled:A,mentionApps:R,connectedAppMentions:E,profileSkills:C,selectedMentionAppId:$,busy:F,turnRunning:U,activeProvider:H,activeModel:z,codexPermissionMode:V,codexReasoningEffort:W,openPondCommandAccessMode:le,pendingApproval:be,activeWorkspaceAppId:re,activeWorkspaceId:ce,activeWorkspaceKind:q,projectTarget:ye,actionCatalog:G,workspaceTarget:D,connection:_,workspaceName:ae,workspaceState:Ie,workspaceDiff:se,workspaceBusy:fe,diffBusy:K,forceChatThread:te=!1,diffPanelOpen:J,diffPanelExpanded:Y,rightPanelMode:ue,rightPanelTabRequest:Pe,rightChatPanels:ke,runtimeEventStore:we,nativeSkillSidebar:M,extensionSkillSidebar:T,workspaceDiffPanelViewState:P,sidebarFileOpenRequest:Q,sidebarFileBookmarks:ne,onSetSidebarFileStatus:$e,browserConversationId:xe,terminalScope:De,terminalTabs:jt,terminalCwd:ie,pendingTerminalCommand:w,terminalOpen:I,onToggleTerminal:ee,onWorkspaceDiffPanelViewStateChange:Ce,training:X,trainingSessions:_e,trainingChatHandoff:Le,trainingDetailTasksetId:lt,onTrainingDetailTasksetIdChange:Xe,onTrainingChatTaskSelect:ht,onTrainingChatHandoffDismiss:ct,onOpenSession:rt,onExperienceHandoff:Ut,cloudProjects:Yt,projects:Zt,projectsAccountBaseUrl:vn,projectsTeamName:Se,projectTaskCounts:We,onNewCloudProject:Ts,onNewLocalProject:$s,onNewProjectTask:yn,onToggleProjectPinned:Ps,onUploadLocalProject:jn,chatHistoryHasMore:_s=!1,chatHistoryLoading:wn=!1,onDiffPanelResizeStart:Ge,canSyncWorkspace:en,startMessage:Ls,onPayload:Ye,onError:kn,setView:Je,onOpenProfileSettings:Os,onOpenProviderSettings:at,onOpenTrainingSettings:$r,onOpenDatasetStorageSettings:Zn,changeDraftProvider:Ue,changeProjectTarget:wt,changeWorkspaceTarget:Cn,setDraftProvider:zs,setDraftModel:mt,onBeginNewChatWithModel:Nt,changeCodexPermissionMode:At,changeCodexReasoningEffort:pt,changeOpenPondCommandAccessMode:kt,resolveApproval:Ze,answerCreateImproveQuestion:es,approveCreateImproveRun:Ct,applyCreateImproveCandidate:ts,cancelCreateImproveRun:Sn,openCreateImprovePullRequest:ns,pauseCreateImproveRun:Rn,reconcileCreateImprovePullRequest:En,rejectCreateImproveCandidate:ss,resumeCreateImproveRun:tn,reviseCreateImproveRun:Mn,setMentionedAppId:St,showToast:me,onSaveTaskDraft:Fs,sendPrompt:qt,stopTurn:Nn,syncWorkspaceLocally:Ds,refreshWorkspaceDiff:An,onToggleDiffPanelExpanded:Re,onShowDiffPanel:Ke,onShowBrowserPanel:It,onShowTrainingDraftPanel:Bs,onShowFilesPanel:gt,onShowRightChatPanel:Pr,onAddRightChat:In,onOpenRightChatForSession:Us,onLabDetailOpenChange:_r,evaluationSidebarActive:nn,onEvaluationSidebarControl:Lr,scheduledDetailOpen:Tn,onScheduledDetailOpenChange:qs,onTerminalTabsChange:Or,onCloseRightChatPanel:Hs,onCloseNativeSkillSidebar:Vs,onActivateRightChatPanel:Oe,onRightChatModelChange:Tt,onRightChatPromptChange:ut,onRightChatScrollStateChange:ze,onRightChatProviderChange:sn,onSubmitRightChat:Ws,onStopRightChat:zr,onCloseTerminal:rn,onLoadMoreChatHistory:Gs}){const[Ks]=o.useState(()=>new nd),Qe=b&&!Ua(b)?b:null,Qs=id(we,Qe),$t=o.useMemo(()=>Qe?bc(u,Qs.events):u,[Qe,Qs.events,u]),Pt=o.useMemo(()=>Qe?xc(Ks.project($t),m):f,[Ks,Qe,m,$t,f]),[Xs,an]=o.useState(null),[Js,$n]=o.useState(0),Ys=o.useRef(""),Fe=o.useCallback(()=>Ys.current,[]),[Pn,dt]=o.useState(null),[rs,_n]=o.useState(null),[et,Ht]=o.useState(null),[ft,Vt]=o.useState(null),[ve,Ln]=o.useState(null),[as,Zs]=o.useState(null),[is,er]=o.useState(null),[it,os]=o.useState([]);o.useEffect(()=>{dt(null)},[xe]);const On=o.useMemo(()=>c?.sessions.find(N=>N.id===b)??null,[c?.sessions,b]),on=On?.currentProfile??c?.profileLibrary?.lastUsed??null,Wt=eg(c),ln=vc(c?.profileLibrary??{profiles:[]},on)??c?.profile??null,zn=o.useMemo(()=>yc(ln,c?.extensionCatalog),[c?.extensionCatalog,ln]),cn=o.useMemo(()=>jc(ln),[ln]),un=o.useCallback(async(N,B=b)=>{if(!_||!c)return;const pe=wc(c.profileLibrary??{profiles:[]},N);if(pe)try{const je=B&&!Ua(B)?c.sessions.find(Z=>Z.id===B)??null:null,oe=await Dh({ref:pe,session:je,selectProfile:Z=>Be.profileSelect(_,Z),patchSession:(Z,nt)=>Be.patchSession(_,Z,{currentProfile:nt})});let Me=c.sessions;oe.session&&(Me=Me.map(Z=>Z.id===oe.session.id?oe.session:Z)),Ye({...c,profile:oe.selected.profile,profileLibrary:oe.selected.library,sessions:Me})}catch(je){const oe=je instanceof Error?je.message:String(je);kn(oe),me(oe,"error")}},[c,_,kn,Ye,b,me]);o.useEffect(()=>{if(!kc(Q,xe))return;const{file:N,id:B}=Q;if(dt({id:B,path:N.path}),!_)return;let pe=!1;return(N.workspaceKind==="local"?Be.workspaceFile(_,N.workspaceId,N.path).then(oe=>oe.content??""):Be.sandboxDownloadFile(_,N.workspaceId,N.path).then(oe=>{if(oe.file.isBinary)throw new Error("Binary files cannot be attached to chat.");return oe.contents})).then(oe=>{if(pe)return;const Me=N.path.split("/").at(-1)??N.path;an({id:B,file:new File([oe],Me,{type:Sg(N)})})}).catch(oe=>{pe||me(oe instanceof Error?oe.message:String(oe),"error")}),()=>{pe=!0}},[xe,_,me,Q]);const bt=s==="development"||s==="work"&&ye.value!=="none",ls=o.useMemo(()=>{if(s==="chat")return cn;if(!bt)return[];const N=new Map(G.filter(B=>!Cc(B)).map(B=>[B.id,B]));for(const B of cn)N.set(B.id,B);for(const B of it)N.set(B.id,B);return[...N.values()]},[G,s,bt,it,cn]),Te=Uh(_),Fr=o.useCallback(N=>{if(!N){Te.activate(null);return}Te.activate({runId:N.run.id,candidateId:N.candidate.id,title:N.run.objective,fileRootPath:N.fileRootPath,initialPath:N.initialPath})},[Te.activate]),Dr=o.useCallback(()=>{Te.selection?.initialPath&&Te.openFile(Te.selection.initialPath),Ke()},[Te.openFile,Te.selection?.initialPath,Ke]),cs=o.useCallback(N=>{Ht(N),N&&Ke()},[Ke]),Fn=o.useCallback(()=>{Ht(null),Y&&Re()},[Y,Re]);o.useEffect(()=>{a!=="labs"&&Ht(null)},[a]);const Br=o.useCallback((N,B)=>{const pe=Date.now(),je=G.find(Me=>Me.id===N)??null;g.set(""),St(null),Je("chat");const oe=Me=>{if(!(Me.find(ge=>ge.id===N)??null))return!1;const nt=Me.map(ge=>ge.id===N?{...ge,label:B}:ge);return os(nt),window.requestAnimationFrame(()=>{er({actionId:N,requestId:Math.max(Date.now(),pe+1)})}),!0};if(!_){je?oe([je]):me("The Agent action catalog is still loading. Try Use again.","error");return}Be.profileCurrent(_).then(Me=>{const Z=Me.actionCatalog.map(nt=>Sc(nt));!oe(Z)&&je?oe([je]):Z.some(nt=>nt.id===N)||me("This Agent is ready, but its default chat action is unavailable.","error")}).catch(Me=>{je||me(Me instanceof Error?Me.message:String(Me),"error")})},[G,g,_,St,Je,me]),Ur=o.useCallback((N,B)=>{g.set(N),St(null),B&&Ue(B),Je("chat")},[Ue,g,St,Je]),_t=o.useMemo(()=>Rc(c?.preferences),[c?.preferences]),qr=_t.training,{createAgentFromLab:Lt,improveAgentFromLab:Hr}=Hh({activeModel:z,activeProvider:H,bootstrap:c,codexPermissionMode:V,codexReasoningEffort:W,connection:_,onOpenRightChatForSession:Us,onPayload:Ye}),Rt=o.useMemo(()=>{const N=X.payload?.tasksets??[];return N.some(B=>B.id===ve)?ve:N[0]?.id??null},[ve,X.payload?.tasksets]),Vr=a==="labs"&&Rt?`profiles/${c?.profile.activeProfile??"default"}/tasksets/${Rt}`:null,Wr=o.useMemo(()=>{if(a!=="labs"||!Rt||!X.payload)return null;const N=X.payload.tasksets.find(ge=>ge.id===Rt);if(!N)return null;const B=X.payload.plans.filter(ge=>ge.tasksetId===N.id),pe=new Set(B.map(ge=>ge.id)),je=X.payload.jobs.filter(ge=>pe.has(ge.planId)).sort((ge,gs)=>gs.createdAt.localeCompare(ge.createdAt)),oe=je.find(ge=>ge.id===as)??je[0]??null,Me=oe?B.find(ge=>ge.id===oe.planId)??null:B.sort((ge,gs)=>gs.createdAt.localeCompare(ge.createdAt))[0]??null,Z=oe?X.payload.models.find(ge=>ge.jobId===oe.id)??null:null,nt=oe?X.payload.artifacts.filter(ge=>ge.jobId===oe.id):[];return{taskset:N,plan:Me,job:oe,lineage:Z,artifacts:nt}},[Rt,as,X.payload,a]),Gt=o.useMemo(()=>Bh(X.payload,b),[b,X.payload]),Dn=o.useMemo(()=>Yh(Pt),[Pt]),Bn=!!p||!!Dn||!!h,qe=a==="labs"&&!!Te.selection,dn=a==="labs"&&J&&ue==="changes"&&!!et,Gr=(a==="chat"||a==="labs")&&!!re,tr=a==="chat"&&J&&ue==="chat"&&ke.length===0,us=Ec(q)?ce??em(ae):null,Kr=a==="chat"&&!!us,Et=us,ds=!!Et||D.value==="cloud"||D.value==="hybrid",Un=o.useMemo(()=>Lh({workspaceTarget:D.value,localWorkspaceId:re,sandboxSourceAvailable:ds,sandboxWorkspaceId:Et,override:rs}),[re,ds,Et,rs,D.value]),fn=Un.source,He=fn==="sandbox",nr=o.useMemo(()=>fn&&Un.options.length>1?{value:fn,options:Un.options,onChange:_n}:null,[fn,Un.options]);o.useEffect(()=>{_n(null)},[re,xe,Et,D.value]);const qn=!dn&&(qe||Gr||Kr)&&J&&(ue==="changes"||ue==="goal"&&Bn||tr),Hn=a==="chat"&&J&&ue==="browser",tt=(a==="chat"||a==="labs")&&J&&ue==="chat"&&ke.length>0,fs=a==="chat"&&J&&ue==="training",Vn=a==="chat"&&J&&!!M,hs=a==="chat"&&J&&!!T,hn=a==="team"&&J&&ue==="chat"&&!!i.aiThread,ms=a==="team"&&J&&ue==="chat"&&!!i.agentConversation,ps=s==="work"&&a==="chat"&&J&&ue==="home",sr=zo({supportedView:a==="chat"&&bt||a==="labs",open:J,hasContentPanel:qn||dn||Hn||tt||fs||Vn||hn||ms||ps}),Kt=!nn&&(qn||dn||Hn||tt||fs||Vn||hn||ms||ps||sr),mn=Kt&&ue!=="chat"&&Y,rr=c?.account.baseUrl??c?.account.activeProfile?.baseUrl??null,Wn=Kh({activeWorkspaceId:ce,cloudProjects:Yt}),ar=a==="chat"&&U&&!be&&_h(Pt),d=te||Pt.length>0||ar,j=b??`draft:${a}:${q??"none"}:${ce??re??"none"}`;Ys.current=j;const L=n.jsx(sm,{activeModel:z,activeProvider:H,busy:U,handoff:Le,onDismiss:ct,onSelectTask:ht}),O=o.useMemo(()=>({onAnswerQuestion:es,onApprove:Ct,onApplyCandidate:ts,onCancel:Sn,onOpenPullRequest:ns,onPause:Rn,onReconcilePullRequest:En,onRejectCandidate:ss,onResume:tn,onRevise:Mn}),[es,Ct,ts,Sn,ns,Rn,En,ss,tn,Mn]),de=o.useMemo(()=>Dn?{...Dn,...O}:null,[O,Dn]),he=im(a,d),Ee=o.useCallback(async(N=[],B=null,pe=null,je={})=>{const oe=je.promptOverride??g.getSnapshot(),Me=()=>{je.preservePrompt||(g.set(""),St(null))};if(!B){const Z=pe?{command:pe.id,args:oe.trim()}:Bi(oe);if(Z){if(!Mc({id:Z.command},s))return me(`/${Z.command} isn't available in ${s}.`,"info"),!1;if(Z.command==="train")return N.length>0?(me("/train uses the selected chat; add other chats from Models.","error"),!1):b?(Me(),Vt({id:Date.now(),objective:Z.args.trim()||null,initialSessionIds:[b]}),Je("labs"),!0):(Me(),Vt({id:Date.now(),objective:Z.args.trim()||null,initialSessionIds:[]}),Je("labs"),!0);if(!Z.args&&Z.command!=="skill"&&Z.command!=="sync-cloud")return me(`Add instructions after /${Z.command}.`,"info"),!1;if(N.length>0)return me(`/${Z.command} tasks do not accept attachments yet. Add file context in the task thread.`,"error"),!1;if(Z.command==="submit-issue")return Nc(E)?($n(ge=>ge+1),qt([],null,Ac(Z.args),{clearPrompt:je.preservePrompt?()=>{}:void 0,usageAttribution:aa(Z,pe?"composer_selection":"prompt_parse")})):(me("Connect the GitHub app before using /submit-issue.","error"),!1);if(Zh(Z)){const ge=Z.command==="skill"?zh(Z.args,H,c?.profile.sourcePath??null):ki(Z);return $n(gs=>gs+1),qt([],null,ge,{clearPrompt:je.preservePrompt?()=>{}:void 0,usageAttribution:aa(Z,pe?"composer_selection":"prompt_parse")})}return $n(ge=>ge+1),qt([],null,ki(Z),{clearPrompt:je.preservePrompt?()=>{}:void 0,usageAttribution:aa(Z,pe?"composer_selection":"prompt_parse")})}}return $n(Z=>Z+1),qt(N,B,je.promptOverride,{clearPrompt:je.preservePrompt?()=>{}:void 0,displayPrompt:je.displayPrompt,turnMetadata:je.turnMetadata})},[z,H,q,c?.profile,E,g,s,qt,b,St,Je,me,X,a]),xt=o.useCallback(N=>{Le&&N!==Le.model.modelId&&ct(),zs(H),mt(N)},[H,ct,mt,zs,Le]),Ot=o.useCallback(N=>{Le&&N!==Le.model.providerId&&ct(),Ue(N)},[Ue,ct,Le]),{chatColumnStyle:pn,chatThreadPreparingInitialScroll:Mt,chatThreadRef:gn,chatTimelineRows:ot,composerStackRef:Jo,goToUserMessage:Na,handleChatScroll:Yo,jumpToLatestChatMessage:Zo,showScrollToBottomButton:el,userMessageNavigation:ir}=um({browserConversationId:xe,chatSubmissionVersion:Js,chatHistoryHasMore:_s,chatHistoryLoading:wn,chatMessages:Pt,onLoadMoreChatHistory:Gs,pendingApproval:be,showChatThread:d,showThinkingIndicator:ar,view:a}),Gn=o.useCallback((N,B)=>{Ic({conversationId:xe,href:N,explicitFile:B?.explicitFile,newTab:B?.newTab}).then(pe=>{pe&&window.openpond?.browser&&It()}).catch(pe=>me(pe instanceof Error?pe.message:"Could not open browser.","error"))},[xe,It,me]),Aa=Uc({projectTargetDetail:ye.detail,projectTargetValue:ye.value,workspaceRepoPath:Ie?.repoPath,workspaceTargetValue:D.value}),{handleOpenFileInSidebar:Ia,fileResolution:Ta,dismissFileResolution:tl,selectFileResolution:nl}=$h({conversationKey:xe,connection:_,handleOpenBrowserLink:Gn,activeWorkspaceAppId:re,rightSidebarUsesSandbox:He,rightSidebarSandboxId:Et,onShowDiffPanel:Ke,showToast:me,workspaceRootPath:Aa,setOpenDiffFileRequest:dt}),$a=o.useCallback(async N=>{if(!_||!N.filePreview&&!N.imagePreview){me("File content is not available for this attachment.","error");return}try{const B=N.name.trim().replace(/[\\/]+/g,"-")||"attachment.txt",je=`Attachments/${N.id.replace(/[^a-zA-Z0-9._-]+/g,"-")||"file"}/${B}`,oe={path:je,status:"",additions:0,deletions:0,patch:"",content:null};let Me,Z;if(N.filePreview){const nt=await Be.chatAttachmentFile(_,N.filePreview);oe.content=nt.content,xr(B)&&(Z=await qc(_,B,nt.content))}else N.imagePreview&&(Me=(await Be.signChatAttachmentImageUrl(_,N.imagePreview)).url);Z?Gn(Z):Ke(),dt({id:Date.now(),path:je,source:!!Z,file:oe,...Me?{imageUrl:Me}:{}})}catch(B){me(B instanceof Error?B.message:"Could not open this attachment.","error")}},[_,Gn,Ke,me]),sl=fe&&!!re&&!Ie,Pa=Te.selection?`candidate:${Te.selection.runId}:${Te.selection.candidateId}`:null,rl=qn?n.jsx(tg,{appId:qe?Pa:He?null:re,workspaceId:qe?Pa:He?Et:re,workspaceKind:qe?"local_project":He?null:"local_project",connection:_,runtimeEvents:$t,diff:qe?Te.diff:He?null:se,fileRootPath:qe?Te.selection?.fileRootPath??null:He?null:Vr,filesWithPreview:qe,editorPreferences:c?.preferences.editor??null,loading:qe?Te.loading:He?fe:K||sl,openFileRequest:qe?Te.openFileRequest:Pn,sidebarFileBookmarks:ne,sidebarFileSourceSessionId:b,onSetSidebarFileStatus:$e,readOnly:qe,sideChatTabs:ke.map(N=>({id:N.id,title:N.title,running:N.running})),sourceSwitcher:qe?null:nr,tabRequest:Pe,viewState:P,workspaceName:qe?Te.selection?.title??"Change":He?ae??"Sandbox":ae,workspaceInitialized:qe?!0:He?!!Et:!!Ie?.initialized,workspaceError:qe?Te.error:He?null:Ie?.error??se?.error??null,expanded:Y,onResizeStart:Ge,onRefresh:N=>{qe?Te.refresh(N):An(N)},onToggleExpanded:Re,onOpenBrowser:It,onOpenBrowserUrl:Gn,onViewStateChange:Ce,onCloseSideChat:Hs,onOpenSideChat:a==="chat"?In:void 0,onSelectSideChat:N=>{Oe(N),Pr()},goalDetails:{active:ue==="goal",createRuntime:de,goalRuntime:p,subagentRuntime:h},sandboxFileSource:He?{sandboxId:Et,emptyMessage:"No sandbox filesystem yet."}:null,trainingSummary:Wr}):null,[_a,or]=o.useState(null);o.useEffect(()=>{or(null)},[b]),o.useEffect(()=>{ue!=="browser"&&or(null)},[ue]);const al=o.useCallback(N=>{or(N),It()},[It]),il=Hn&&_a?n.jsx(td,{visual:_a,connection:_,expanded:Y,onResizeStart:Ge,onToggleExpanded:Re,onClose:()=>{or(null),Y&&Re()}}):Hn?n.jsx(hg,{conversationId:xe,expanded:Y,onResizeStart:Ge}):null,ol=hn?o.createElement(vg,{...i,key:i.aiThread?.conversationId,onResizeStart:Ge}):null,ll=ms?o.createElement(yg,{...i,key:i.agentConversation?.run.id,onResizeStart:Ge}):null,cl=tt?n.jsx(mg,{panels:ke,runtimeEventStore:we,actionCatalog:ls,createImproveActions:O,contextCompaction:_t.contextCompaction,steerActiveResponses:_t.steerActiveResponses,busy:F,codexPermissionMode:V,codexReasoningEffort:W,openPondCommandAccessMode:le,connection:_,connectedAppMentions:E,mentionApps:R,codexPersonalSkills:c?.codexPersonalSkills??[],profileSkills:C,profileLibrary:c?.profileLibrary??{lastUsed:null,profiles:[]},extensionCatalog:c?.extensionCatalog??null,projectTarget:ye,providerSettings:c?.providers??null,accountBaseUrl:rr,billingOrganizationSlug:Wn.organizationSlug,billingTeamId:Wn.teamId,showToast:me,workspaceTarget:D,onAddChat:In,onActivatePanel:Oe,onClosePanel:Hs,onCodexPermissionModeChange:At,onCodexReasoningEffortChange:pt,onOpenPondCommandAccessModeChange:kt,onModelChange:Tt,onOpenAttachmentInSidebar:$a,onOpenFileInSidebar:Ia,onOpenProfileSettings:Os,onOpenSession:rt,onOpenPonder:()=>t?.("clean"),onProviderChange:sn,onProviderSetupOpen:at,onPromptChange:ut,onProfileTargetChange:(N,B)=>{un(B,N)},onScrollStateChange:ze,onProjectTargetChange:wt,onResolveApproval:Ze,onResizeStart:Ge,onSelectFiles:gt,onShowBrowserPanel:It,onStop:zr,onSubmit:Ws,onWorkspaceTargetChange:N=>{Cn(N)}}):null,ul=sr?n.jsx(sg,{expanded:Y,terminalOpen:I,sideChatAvailable:a==="chat"||a==="labs",onOpenBrowser:It,onOpenFiles:gt,onOpenReview:Ke,onOpenSideChat:In,onOpenTrainingDraft:Bs,trainingDraftAvailable:!!b,onResizeStart:Ge,onToggleExpanded:Re,onToggleTerminal:ee}):null,dl=ps?n.jsx(rg,{chatMessages:Pt,connection:_,contextWindowStatus:x,expanded:Y,runtimeEvents:$t,sessionId:b,showToast:me,onResizeStart:Ge,onToggleExpanded:Re,onUseOutput:N=>an({id:Date.now(),file:N}),onHandoffOutput:async(N,B,pe)=>{await Ut({target:N,sourceSessionId:b,output:B,prompt:Tc(B,N)}),pe&&an({id:Date.now(),file:pe})},onReviseOutput:(N,B,pe)=>{an({id:Date.now(),file:B}),g.set(`Create revision ${N.revision+1} of "${N.title}" from the attached revision ${N.revision}. Apply only this requested change:
|
|
64
|
+
|
|
65
|
+
${pe}`)},onAgentPackageInstalled:async()=>{_&&Ye(await Be.bootstrap(_))}}):null,fl=fs?n.jsx(o.Suspense,{fallback:null,children:n.jsx(jg,{training:X,sessionId:b,expanded:Y,onOpenTraining:()=>Je("labs"),onResizeStart:Ge,onToggleExpanded:Re})}):null,Kn=ll??ol??cl??(Vn&&M?n.jsx(pg,{expanded:Y,skill:M,onClose:Vs,onResizeStart:Ge,onToggleExpanded:Re}):null)??(hs&&T?n.jsx(Pi,{connection:_,expanded:Y,selection:T,onClose:Vs,onResizeStart:Ge,onToggleExpanded:Re}):null)??(dn&&et?n.jsx(Pi,{connection:_,expanded:Y,selection:et,onClose:Fn,onResizeStart:Ge,onToggleExpanded:Re}):null)??rl??il??fl??dl??ul,Qr=n.jsx(o.Suspense,{fallback:null,children:n.jsx(ng,{open:I,connection:_,scope:De,tabs:jt,onTabsChange:Or,cwd:ie,appId:re,workspaceName:ae,queuedCommand:w,onClose:rn})});return n.jsx(oo.Provider,{value:al,children:n.jsxs("main",{className:`main-pane ${he} ${I?"terminal-open":""} ${Kt?"diff-open":""} ${mn?"diff-expanded":""}`,children:[Ta?n.jsx(Nh,{resolution:Ta,onClose:tl,onSelect:nl}):null,a==="team"||a==="community"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(ig,{onSelect:Je,view:a})}):null,a==="chat"&&e&&_&&c?.account.activeProfile?n.jsx(Zp,{connection:_,presentation:e,composer:{contextWindowStatus:x,providerSettings:c.providers??null,provider:H,model:z,projectTarget:ye,workspaceTarget:D,codexPermissionMode:V,codexReasoningEffort:W,openPondCommandAccessMode:le,onProviderChange:Ot,onProviderSetupOpen:at,onProjectTargetChange:wt,onWorkspaceTargetChange:N=>{Cn(N)},onModelChange:xt,onCodexPermissionModeChange:At,onCodexReasoningEffortChange:pt,onOpenPondCommandAccessModeChange:kt,showToast:me},accountBaseUrl:vn,onOpenBrowserLink:Gn,onOpenLocalWork:rt},Wt):a==="apps"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(og,{payload:c,onPayload:Ye,account:c?.account??null,connection:_,defaultTeamId:c?.preferences.defaultTeamId??null,onToast:me})}):a==="team"?n.jsxs(o.Suspense,{fallback:null,children:[i.teamId?n.jsx(gg,{...i}):n.jsx(bg,{}),Kt?Kn:null]}):a==="community"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(xg,{...l})}):a==="get-started"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(lg,{})}):a==="scheduled"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(ug,{connection:_,selectedProfileKey:on?JSON.stringify(on):null,onOpenSession:rt,detailOpen:Tn,detailExpanded:Y,onDetailOpenChange:qs,onDetailResizeStart:Ge,onToggleDetailExpanded:Re},Wt)}):a==="outputs"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(dg,{connection:_,onViewChat:rt})}):a==="projects"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(fg,{accountBaseUrl:vn,connection:_,onNewCloudProject:Ts,onNewLocalProject:$s,onNewTask:yn,onTogglePinned:Ps,onUploadLocalProject:jn,projects:Zt,taskCountByProjectId:We,teamName:Se},Wt)}):a==="labs"?mn?n.jsx(o.Suspense,{fallback:null,children:Kn}):n.jsxs(n.Fragment,{children:[n.jsx(o.Suspense,{fallback:null,children:n.jsx(cg,{account:c?.account??null,closeDetailRequestId:y,closeDetailKind:S,onNewModel:(N,B,pe)=>{Vt({id:Date.now(),objective:null,initialSessionIds:[],initialTasksetId:N,learnedPreferenceReward:B,initialModelId:pe})},onUseAgent:Br,onCreateAgent:Lt,onImproveAgent:Hr,onDetailOpenChange:_r,onEvaluationSidebarControl:Lr,onSkillSelectionChange:cs,onOpenRunConversation:Us,onAnswerQuestion:es,onApplyCandidate:ts,onApprove:Ct,onCancel:Sn,candidateReview:{diff:Te.diff,error:Te.error,loading:Te.loading},onCandidateReviewChange:Fr,onOpenPullRequest:ns,onOpenCandidateFiles:Dr,onPause:Rn,onReconcilePullRequest:En,onRejectCandidate:ss,onResume:tn,onRevise:Mn,profileView:{payload:c,connection:_,onPayload:Ye,onError:kn,onToast:me,onSkillCommand:Ur},training:{training:X,sessions:_e,localProjects:c?.localProjects??[],connection:_,defaultModel:{providerId:H,modelId:z},onError:kn,onToast:me,onSettingsPreferences:N=>{c&&Ye({...c,preferences:N.preferences})},onOpenTrainingSettings:$r,onOpenProviderSettings:at,onOpenDatasetStorageSettings:Zn,onOpenChat:rt,onChatWithModel:Nt,onOpenTasksetFiles:gt,launchRequest:k??ft,onLaunchHandled:N=>{if(k?.id===N){A(N);return}Vt(B=>B?.id===N?null:B)},preferences:qr,settingsPreferences:_t,providerSettings:c?.providers??null,reasoningEffort:W,selectedTasksetId:Rt,onSelectedTasksetIdChange:Ln,onSelectedTrainingJobIdChange:Zs,detailTasksetId:lt,onDetailTasksetIdChange:Xe}})}),Qr,Kt?n.jsx(o.Suspense,{fallback:null,children:Kn}):null]}):mn?n.jsx(o.Suspense,{fallback:null,children:Kn}):d?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:`chat-column ${be?"has-approval":""}`,style:pn,children:[n.jsx(o.Suspense,{fallback:null,children:n.jsx(wg,{formalReviewTeamId:_t.defaultTeamId??null,formalReviewActorId:c?.account.profile?.id??null,formalReviewScopeKey:Wt,onFormalReviewOpen:()=>Je("labs"),accountBaseUrl:rr,activeWorkspaceAppId:re,billingOrganizationSlug:Wn.organizationSlug,billingTeamId:Wn.teamId,connection:_,conversationKey:xe??"draft",creation:Gt,onOpenBrowserLink:Gn,onOpenAttachmentInSidebar:$a,onOpenFileInSidebar:Ia,onOpenProfileSettings:Os,onResolveUserQuestion:async(N,B)=>{const pe=B.action==="answer"?B.text:"Dismiss this question";if(!await qt([],null,pe,{displayPrompt:pe,turnMetadata:{userQuestionResolution:B}}))throw new Error("The question response could not be sent.")},onOpenSession:rt,onOpenPonder:()=>t?.("clean"),onScroll:N=>Yo(N.currentTarget),rows:ot,sessionId:xe,turnRunning:U,userAttachmentDisplay:H==="codex"?"compact":"full",threadRef:gn,workspaceRootPath:Aa})}),n.jsxs("div",{className:`composer-stack dock ${be?"has-approval":""}`,ref:Jo,children:[Gt?n.jsx(o.Suspense,{fallback:null,children:n.jsx(kg,{compact:!0,creation:Gt,training:X,onOpenTraining:()=>Je("labs")})}):null,L,n.jsx(ji,{approval:be,onResolve:Ze}),el&&!Mt?n.jsx(rm,{canGoNext:ir.canGoNext,canGoPrevious:ir.canGoPrevious,onJumpToLatest:Zo,onNext:()=>{ir.canGoNext&&Na("next")},onPrevious:()=>{ir.canGoPrevious&&Na("previous")}}):null,n.jsx(yi,{experience:s,readOnlyReason:typeof On?.metadata?.nativeReadOnlyReason=="string"?On.metadata.nativeReadOnlyReason:null,draftStore:g,attachmentRequest:Xs,mode:"dock",focusRequestId:v,mentionApps:bt?R:[],connectedAppMentions:E,profileSkills:H==="codex"?c?.codexPersonalSkills??[]:zn,selectedMentionAppId:$,contextWindowStatus:x,goalRuntime:s!=="chat"?p:null,subagentRuntime:s!=="chat"?h:null,createImproveRuntime:bt?de:null,busy:U,running:U,steerActiveResponses:_t.steerActiveResponses,taskSessionId:Qe,taskEvents:$t,submissionScopeKey:j,getCurrentSubmissionScopeKey:Fe,voiceInputChannelKey:`main-composer:${j}`,showProjectFooter:!1,connection:_,providerSettings:c?.providers??null,provider:H,model:z,projectTarget:ye,profileTarget:null,actionCatalog:ls,requestedAction:is,workspaceTarget:D,codexPermissionMode:V,codexReasoningEffort:W,openPondCommandAccessMode:le,onProviderChange:Ot,onProviderSetupOpen:at,onProjectTargetChange:wt,onProfileTargetChange:N=>{un(N)},onWorkspaceTargetChange:N=>{Cn(N)},onModelChange:xt,onCodexPermissionModeChange:At,onCodexReasoningEffortChange:pt,onOpenPondCommandAccessModeChange:kt,onMentionAppSelect:St,onSaveTaskDraft:Fs,showToast:me,onSubmit:Ee,onStop:Nn})]})]}),Qr,n.jsx(o.Suspense,{fallback:null,children:Kn})]}):n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"start-panel",children:[n.jsx(o.Suspense,{fallback:null,children:n.jsx(ag,{value:s==="chat"?"chat":"work",onChange:N=>{if(N==="ponder"){t?.("clean");return}t?.(null),r(N)}})}),n.jsxs("div",{className:"start-welcome",children:[n.jsx("h1",{children:Ls}),en&&n.jsx(am,{busy:fe,onSync:()=>{Ds()}})]}),n.jsxs("div",{className:"composer-stack start",children:[L,n.jsx(ji,{approval:be,onResolve:Ze}),n.jsx(yi,{experience:s,draftStore:g,attachmentRequest:Xs,mode:"start",autoFocus:!0,focusRequestId:v,mentionApps:bt?R:[],connectedAppMentions:E,profileSkills:H==="codex"?c?.codexPersonalSkills??[]:zn,selectedMentionAppId:$,contextWindowStatus:x,goalRuntime:s!=="chat"?p:null,subagentRuntime:s!=="chat"?h:null,createImproveRuntime:bt?de:null,busy:U,running:U,steerActiveResponses:_t.steerActiveResponses,taskSessionId:Qe,taskEvents:$t,submissionScopeKey:j,getCurrentSubmissionScopeKey:Fe,voiceInputChannelKey:`main-composer:${j}`,connection:_,providerSettings:c?.providers??null,provider:H,model:z,showProjectFooter:s!=="chat",projectTarget:ye,profileTarget:null,actionCatalog:ls,requestedAction:is,workspaceTarget:D,codexPermissionMode:V,codexReasoningEffort:W,openPondCommandAccessMode:le,onProviderChange:Ot,onProviderSetupOpen:at,onProjectTargetChange:wt,onProfileTargetChange:N=>{un(N)},onWorkspaceTargetChange:N=>{Cn(N)},onModelChange:xt,onCodexPermissionModeChange:At,onCodexReasoningEffortChange:pt,onOpenPondCommandAccessModeChange:kt,onMentionAppSelect:St,onSaveTaskDraft:Fs,showToast:me,onSubmit:Ee,onStop:Nn})]})]}),Qr,n.jsx(o.Suspense,{fallback:null,children:Kn})]})]})})}function Sg(e){const t=e.path.toLowerCase();return t.endsWith(".md")||t.endsWith(".mdx")?"text/markdown":t.endsWith(".json")?"application/json":t.endsWith(".yaml")||t.endsWith(".yml")?"application/yaml":"text/plain"}const Dg=Object.freeze(Object.defineProperty({__proto__:null,MainPane:Cg,shouldShowRightSidebarHomePanel:zo},Symbol.toStringTag,{value:"Module"}));export{ji as A,ru as C,iu as F,Ar as I,xa as M,Va as P,vu as R,Fg as T,Nf as a,ah as b,ih as c,bu as d,lu as e,uu as f,nd as g,_h as h,zg as i,Ph as j,cm as k,Og as l,To as m,rh as n,ff as o,Qc as p,Dg as q,oh as r,Co as s,id as u};
|