openpond 0.0.38 → 0.0.39

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.
Files changed (212) hide show
  1. package/README.md +3 -4
  2. package/dist/api/core.d.ts +6 -0
  3. package/dist/api/vercel-protection.d.ts +1 -0
  4. package/dist/chunks/{app-layer-DPUJRNO2.js → app-layer-LTBWNA2F.js} +32 -10
  5. package/dist/chunks/app-server-runtime-VYYJ2AWX.js +18 -0
  6. package/dist/chunks/{apps-AKBI6AS7.js → apps-CZAJBGE3.js} +6 -4
  7. package/dist/chunks/{chunk-LZZM3IHS.js → chunk-2SF6HLT7.js} +5899 -5939
  8. package/dist/chunks/{chunk-XCATKTK3.js → chunk-3CDPPVLE.js} +108 -66
  9. package/dist/chunks/{chunk-JWF37O5E.js → chunk-3HW6OSHP.js} +1 -3
  10. package/dist/chunks/{chunk-43YI36NA.js → chunk-3KLQ52B2.js} +228 -5
  11. package/dist/chunks/chunk-4HIWFIMN.js +37172 -0
  12. package/dist/chunks/{chunk-AHPQTEIJ.js → chunk-4N6E3OVF.js} +4 -4
  13. package/dist/chunks/{chunk-YTJL6XPU.js → chunk-6V7MJVRO.js} +56 -11
  14. package/dist/chunks/{chunk-QRM7XMAO.js → chunk-BQQZNGI6.js} +152 -161
  15. package/dist/chunks/chunk-DBHSOTYZ.js +1552 -0
  16. package/dist/chunks/{chunk-275WCETC.js → chunk-FCVVOMIP.js} +145 -5
  17. package/dist/chunks/{chunk-GB6VUZUA.js → chunk-JIEUB6OS.js} +1 -1
  18. package/dist/chunks/{chunk-HS2AGRDV.js → chunk-JJPAMKXZ.js} +1 -1
  19. package/dist/chunks/{chunk-GDZYDLEL.js → chunk-JRROTGQT.js} +1 -110
  20. package/dist/chunks/chunk-KHNHUA2H.js +1737 -0
  21. package/dist/chunks/{chunk-AHNFNWUN.js → chunk-L6XH4ZGZ.js} +1 -1
  22. package/dist/chunks/chunk-M2NXTLH2.js +4054 -0
  23. package/dist/chunks/{chunk-SLMP353Q.js → chunk-MIZHCABO.js} +2 -195
  24. package/dist/chunks/chunk-SMNFI2FU.js +113 -0
  25. package/dist/chunks/chunk-VCVQLECH.js +675 -0
  26. package/dist/chunks/{chunk-V35STJF4.js → chunk-ZJBJQCQZ.js} +179 -52
  27. package/dist/chunks/{cli-7BKDWFNU.js → cli-JS76LCW2.js} +9 -5
  28. package/dist/chunks/{core-commands-YN4RMWA3.js → core-commands-4MRJQZJV.js} +7 -5
  29. package/dist/chunks/{harness-BHQRMXJR.js → desktop-test-RNMWLOVU.js} +15 -14
  30. package/dist/chunks/{chunk-XERQHYBO.js → extension-GDRW22N3.js} +5868 -3580
  31. package/dist/chunks/{help-VREQNA4I.js → help-LWNREJ7U.js} +1 -1
  32. package/dist/chunks/{opchat-D63YTNSX.js → opchat-2K2JIGK3.js} +9 -10
  33. package/dist/chunks/{organizations-I46KG7TC.js → organizations-Z5HVD2E7.js} +11 -9
  34. package/dist/chunks/{profile-WKZJHEPG.js → profile-QNECVVGN.js} +12 -38
  35. package/dist/chunks/{project-agent-ZUC3YMCT.js → project-agent-W3V75WBR.js} +9 -411
  36. package/dist/chunks/{sandbox-command-AAOPFTI5.js → sandbox-command-X3FO74NX.js} +7 -5
  37. package/dist/chunks/{sandbox-template-GKNVR4C5.js → sandbox-template-5B4T4BGU.js} +8 -6
  38. package/dist/chunks/{src-RPW5TOPI.js → src-ESAILPUH.js} +32 -30
  39. package/dist/chunks/src-IC5RX4L6.js +63517 -0
  40. package/dist/chunks/{teams-bot-PSL3ZO6Z.js → teams-bot-NTQ6VFFL.js} +6 -4
  41. package/dist/chunks/training-BR5A7SPU.js +320 -0
  42. package/dist/chunks/{workspaces-BPXC2DHT.js → workspaces-XC3QBD2Y.js} +2 -2
  43. package/dist/cli.js +24 -12
  44. package/dist/config.d.ts +9 -3
  45. package/dist/index.js +1300 -1045
  46. package/dist/profile/local-profile-types.d.ts +16 -0
  47. package/dist/profile/local-profile.d.ts +50 -4
  48. package/dist/sandbox/client-handles.d.ts +33 -46
  49. package/dist/sandbox/client.d.ts +4 -26
  50. package/dist/sandbox/sandbox-instance-client.d.ts +5 -5
  51. package/dist/sandbox/types/client.d.ts +1 -2
  52. package/dist/sandbox/types/core.d.ts +0 -1
  53. package/dist/sandbox/types/org-project-agent.d.ts +3 -89
  54. package/dist/sandbox/types/record.d.ts +1 -2
  55. package/dist/sandbox/types/runtime-profiles.d.ts +2 -2
  56. package/dist/sandbox-template/manifest.d.ts +1 -1
  57. package/dist/skills/openpond-agent-authoring/SKILL.md +40 -0
  58. package/dist/skills/openpond-agent-authoring/references/action-and-chat-design.md +13 -0
  59. package/dist/skills/openpond-agent-authoring/references/integrations-and-setup.md +13 -0
  60. package/dist/skills/openpond-agent-authoring/references/profile-layout.md +29 -0
  61. package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +14 -0
  62. package/dist/skills/openpond-desktop-harness/SKILL.md +1 -1
  63. package/dist/skills/openpond-skill-authoring/SKILL.md +44 -0
  64. package/dist/skills/openpond-skill-authoring/references/copying-and-adaptation.md +16 -0
  65. package/dist/skills/openpond-skill-authoring/references/skill-package-layout.md +38 -0
  66. package/dist/skills/openpond-skill-authoring/references/validation-and-repair.md +24 -0
  67. package/dist/skills/openpond-skill-authoring/scripts/validate-skill.mjs +102 -0
  68. package/dist/skills/openpond-taskset-authoring/SKILL.md +64 -22
  69. package/dist/skills/openpond-taskset-authoring/artifact.json +39 -0
  70. package/dist/skills/openpond-taskset-authoring/references/graders-and-rewards.md +3 -0
  71. package/dist/skills/openpond-taskset-authoring/references/method-selection.md +1 -1
  72. package/dist/skills/openpond-taskset-authoring/references/privacy-and-provenance.md +2 -0
  73. package/dist/skills/openpond-taskset-authoring/references/task-design.md +32 -0
  74. package/dist/web/assets/{AppDialog-DrwJb_wG.js → AppDialog-Bua3f-6v.js} +1 -1
  75. package/dist/web/assets/{AppsView-DPagLMsc.js → AppsView-DrJkHeSO.js} +1 -1
  76. package/dist/web/assets/BrowserSidebar-Bf-4Vozm.js +1 -0
  77. package/dist/web/assets/CommandMenu-DDZlGQiB.js +1 -0
  78. package/dist/web/assets/CommunityView-BtcCrba7.js +1 -0
  79. package/dist/web/assets/ComposerCreateImproveStrip-DOe5Otg6.js +1 -0
  80. package/dist/web/assets/GetStartedView-CG4z0Dtw.js +1 -0
  81. package/dist/web/assets/GetStartedView-yVmnGZPw.css +1 -0
  82. package/dist/web/assets/LabModelVersionDetailPage-BEkmSKuv.js +1 -0
  83. package/dist/web/assets/LabSkillSidebar-BIotN_RB.js +1 -0
  84. package/dist/web/assets/LabsRoute-CfOe0Zt5.js +3 -0
  85. package/dist/web/assets/LabsRoute-CoSPO4HR.css +1 -0
  86. package/dist/web/assets/MainChatThread-C0-l1mHt.js +2 -0
  87. package/dist/web/assets/MainPane-Bky_Rqcx.css +1 -0
  88. package/dist/web/assets/MainPane-aOVlVyRK.js +6 -0
  89. package/dist/web/assets/MarkdownText-D7DT1k1k.js +9 -0
  90. package/dist/web/assets/Messages-CBIXruA9.js +9 -0
  91. package/dist/web/assets/NativeSkillSidebar-C4t69Y7B.js +1 -0
  92. package/dist/web/assets/NewProjectDialog-Bat65tYD.js +1 -0
  93. package/dist/web/assets/OutputsPage-C58n39Db.js +1 -0
  94. package/dist/web/assets/RightChatPanelStack-Bp7nZxQ0.js +1 -0
  95. package/dist/web/assets/ScheduledWorkPage-BXP0j_c_.js +1 -0
  96. package/dist/web/assets/SettingsView-CtWK_aQ0.css +1 -0
  97. package/dist/web/assets/SettingsView-DOOfhO9a.js +6 -0
  98. package/dist/web/assets/TeamChatView-Cgxm-pKA.css +1 -0
  99. package/dist/web/assets/TeamChatView-De2wdqyY.js +3 -0
  100. package/dist/web/assets/{TerminalOverlay-BKl0p8pa.js → TerminalOverlay-BsuCH3NX.js} +1 -1
  101. package/dist/web/assets/TrainingCreationPanel-D2OFWyQ-.js +1 -0
  102. package/dist/web/assets/TrainingDraftPanel-DBpulXTz.js +1 -0
  103. package/dist/web/assets/{UsageSettingsSection-zDAwzTGl.js → UsageSettingsSection-DzMLUXAO.js} +37 -37
  104. package/dist/web/assets/WorkspaceDiffPanel-B7yIhjNF.js +14 -0
  105. package/dist/web/assets/WorkspaceEnvironmentMenu-B6jXM9xG.js +32 -0
  106. package/dist/web/assets/WorkspaceGitDialogs-CQ0fl9Qk.js +1 -0
  107. package/dist/web/assets/{WorkspaceMonacoEditor-DPGcG8fy.js → WorkspaceMonacoEditor-C2ctzITz.js} +3 -3
  108. package/dist/web/assets/arrow-up-right-ecwcx3xt.js +1 -0
  109. package/dist/web/assets/chevron-up-DP8PPfWd.js +1 -0
  110. package/dist/web/assets/circle-alert-envg1D6O.js +1 -0
  111. package/dist/web/assets/cloud-upload-5MGPLnaA.js +1 -0
  112. package/dist/web/assets/{cssMode-CKN9CcfG.js → cssMode-CFifcEfw.js} +1 -1
  113. package/dist/web/assets/folder-open-Dq3ZjeEP.js +1 -0
  114. package/dist/web/assets/folder-plus-EiZ5wbv_.js +1 -0
  115. package/dist/web/assets/git-branch-w29jmQ-X.js +1 -0
  116. package/dist/web/assets/{git-commit-horizontal-Bxi8YPep.js → git-commit-horizontal-CGZM0PZo.js} +1 -1
  117. package/dist/web/assets/{htmlMode-CeUcNhBZ.js → htmlMode-Ct1P-_lf.js} +1 -1
  118. package/dist/web/assets/index-ByIQyiUl.js +178 -0
  119. package/dist/web/assets/index-D4uCeiep.js +1 -0
  120. package/dist/web/assets/index-D9jTe16Q.css +1 -0
  121. package/dist/web/assets/info-Cd2HkIeb.js +1 -0
  122. package/dist/web/assets/{jsonMode-97z0Yz9u.js → jsonMode-BAUNCNAX.js} +1 -1
  123. package/dist/web/assets/{lspLanguageFeatures-D4Tp-JmI.js → lspLanguageFeatures-fucFYI1A.js} +1 -1
  124. package/dist/web/assets/monaco.contribution-Ce4v5kei.js +2 -0
  125. package/dist/web/assets/monaco.contribution-DLLMi4cB.js +2 -0
  126. package/dist/web/assets/monaco.contribution-g9QiIm1d.js +2 -0
  127. package/dist/web/assets/monaco.contribution-nG-5Cyjz.js +2 -0
  128. package/dist/web/assets/monitor-DgHCnCKl.js +1 -0
  129. package/dist/web/assets/{play-C-37dnR1.js → play-Be0XDHBu.js} +1 -1
  130. package/dist/web/assets/{python-CGpDXY7_.js → python-CEhEiPo7.js} +1 -1
  131. package/dist/web/assets/{refresh-cw-BAaaPCXl.js → refresh-cw-DH0KLbdD.js} +1 -1
  132. package/dist/web/assets/reply-D1TK2yV8.js +1 -0
  133. package/dist/web/assets/{save-Cvxs3XyC.js → save-C1MSeBnQ.js} +1 -1
  134. package/dist/web/assets/square-CemI-0g5.js +1 -0
  135. package/dist/web/assets/square-pen-CqfsvR_n.js +1 -0
  136. package/dist/web/assets/{toggleHighContrast-CD42jH4g.js → toggleHighContrast-DrdQN3Rl.js} +1 -1
  137. package/dist/web/assets/training-BQVNUTZA.css +1 -0
  138. package/dist/web/assets/training-model-data-B7-1Bxil.js +1 -0
  139. package/dist/web/assets/{tsMode-ZROIxEjv.js → tsMode-CKB5oOUU.js} +1 -1
  140. package/dist/web/assets/{upload-DvCSGERK.js → upload-t751LLqP.js} +1 -1
  141. package/dist/web/assets/useLocalAgentSchedules-CzC3wfIP.js +1 -0
  142. package/dist/web/assets/{wifi-off-BIb94PkS.js → wifi-off-CxTHH3JU.js} +1 -1
  143. package/dist/web/assets/{workers-oYqbrVYG.js → workers-CqYddzCd.js} +1 -1
  144. package/dist/web/assets/{yaml-WqBjNgOO.js → yaml-e5wBkc-C.js} +1 -1
  145. package/dist/web/index.html +2 -2
  146. package/docs/command-reference.md +75 -40
  147. package/package.json +3 -1
  148. package/dist/chunks/chunk-FWLOFUPU.js +0 -864
  149. package/dist/chunks/chunk-HLCTINEP.js +0 -224
  150. package/dist/chunks/chunk-MPGSHXGF.js +0 -3896
  151. package/dist/chunks/chunk-T4QXKU5Y.js +0 -1
  152. package/dist/chunks/chunk-XEJ7XXUQ.js +0 -1301
  153. package/dist/chunks/chunk-ZI4GDAUB.js +0 -3522
  154. package/dist/chunks/cli-2KBVNDRY.js +0 -23
  155. package/dist/chunks/extend-REGNTBK3.js +0 -89
  156. package/dist/chunks/extension-7K77DAVL.js +0 -121
  157. package/dist/chunks/fileFromPath-DHCRY3BD.js +0 -2151
  158. package/dist/chunks/src-MWDIK56B.js +0 -105881
  159. package/dist/web/assets/BrowserSidebar-DMn2V8RV.js +0 -1
  160. package/dist/web/assets/CloudWorkView-Cl_7mM3c.js +0 -1
  161. package/dist/web/assets/CloudWorkView-DNoPIlMj.css +0 -1
  162. package/dist/web/assets/CommandMenu-CHMQLez_.js +0 -1
  163. package/dist/web/assets/CommunityView-DcHVDUk0.js +0 -1
  164. package/dist/web/assets/ComposerCreateImproveStrip-BZ3Dgzmo.js +0 -1
  165. package/dist/web/assets/GetStartedView-DBLdduwr.css +0 -1
  166. package/dist/web/assets/GetStartedView-DTRotFqz.js +0 -1
  167. package/dist/web/assets/LabSkillSidebar-D-PqFe1T.js +0 -1
  168. package/dist/web/assets/LabsRoute-BrJkBNig.css +0 -1
  169. package/dist/web/assets/LabsRoute-Dew1BwK5.js +0 -3
  170. package/dist/web/assets/MainChatThread-BaPxxzrw.js +0 -2
  171. package/dist/web/assets/MakeAgentTutorialLearningPanel-CBsfnONQ.js +0 -2
  172. package/dist/web/assets/MarkdownText-DGLfAM_Z.js +0 -7
  173. package/dist/web/assets/Messages-CIX9uTjX.js +0 -10
  174. package/dist/web/assets/NativeSkillSidebar-AP_uHn6g.js +0 -1
  175. package/dist/web/assets/NewProjectDialog-C6lHkafU.js +0 -1
  176. package/dist/web/assets/PostTrainingLearningPanel-CZEgPc8O.js +0 -2
  177. package/dist/web/assets/PostTrainingStatusPill-CeEpwUDB.js +0 -1
  178. package/dist/web/assets/ProfileSettingsSection-Cg4tKO-C.css +0 -1
  179. package/dist/web/assets/ProfileSettingsSection-EumMLlEp.js +0 -1
  180. package/dist/web/assets/RightChatPanelStack-MXBcx3zO.js +0 -1
  181. package/dist/web/assets/SettingsView-Caljbns2.css +0 -1
  182. package/dist/web/assets/SettingsView-DyURG_Uh.js +0 -6
  183. package/dist/web/assets/TeamChatView-Bx44q3WV.css +0 -1
  184. package/dist/web/assets/TeamChatView-D3v6aqJ3.js +0 -3
  185. package/dist/web/assets/TrainingCreationPanel-CfZQTuT5.js +0 -1
  186. package/dist/web/assets/TrainingDraftPanel-DslRPSDW.js +0 -1
  187. package/dist/web/assets/WorkspaceDiffPanel-C_MZPPlL.js +0 -14
  188. package/dist/web/assets/WorkspaceEnvironmentMenu-BUAnn80j.js +0 -32
  189. package/dist/web/assets/WorkspaceGitDialogs-Drbf4ujA.js +0 -1
  190. package/dist/web/assets/activity-Dnr3jqb3.js +0 -1
  191. package/dist/web/assets/boxes-BinC8UPn.js +0 -1
  192. package/dist/web/assets/chevron-up-Bjp_-_Cb.js +0 -1
  193. package/dist/web/assets/circle-x-ubnvEYuE.js +0 -1
  194. package/dist/web/assets/copy-B_ZCCUMz.js +0 -1
  195. package/dist/web/assets/create-pipeline-request-D6uLUxe9.js +0 -4
  196. package/dist/web/assets/file-8HAMlTmQ.js +0 -1
  197. package/dist/web/assets/git-branch-l2Zih3Bv.js +0 -1
  198. package/dist/web/assets/index-BMFyOFRU.css +0 -1
  199. package/dist/web/assets/index-BzwcDzbT.js +0 -1
  200. package/dist/web/assets/index-KoQSSt_f.js +0 -177
  201. package/dist/web/assets/info-JTbDQxHx.js +0 -1
  202. package/dist/web/assets/make-agent-tutorial-D6nBCgv-.js +0 -2
  203. package/dist/web/assets/monaco.contribution-B3j6oown.js +0 -2
  204. package/dist/web/assets/monaco.contribution-BXHxPPWL.js +0 -2
  205. package/dist/web/assets/monaco.contribution-C2P5zIzh.js +0 -2
  206. package/dist/web/assets/monaco.contribution-C8c6OtGi.js +0 -2
  207. package/dist/web/assets/monitor-kzHtxHnA.js +0 -1
  208. package/dist/web/assets/reply-9rehU13k.js +0 -1
  209. package/dist/web/assets/rotate-cw-C1Z_Xs23.js +0 -1
  210. package/dist/web/assets/training-BN8CALIc.css +0 -1
  211. package/dist/web/assets/training-model-data-BXUCzS0p.js +0 -1
  212. package/docs/agent-edit-check-status-json.md +0 -132
@@ -1,6 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./UsageSettingsSection-zDAwzTGl.js","./index-KoQSSt_f.js","./index-BMFyOFRU.css","./activity-Dnr3jqb3.js","./index-BzwcDzbT.js","./UsageSettingsSection-O8VK0qBL.css"])))=>i.map(i=>d[i]);
2
- import{d as de,j as e,r as i,u as Ns,X as Oe,e as Fs,o as Gs,f as qs,g as Ws,h as Ks,p as Vs,D as we,E as Hs,k as Le,l as Js,m as Ys,n as O,q as Zs,s as Ke,t as Ss,v as Cs,w as Xs,x as Qs,L as et,y as st,z as Ze,A as ke,G as ye,H as Ee,I as tt,J as nt,K as at,N as lt,O as te,Q as it,R as Ve,T as ws,U as He,V as rt,M as ot,W as ct,Y as dt,Z as Je,_ as ut,$ as ht,a0 as ts,a as mt,a1 as ns,a2 as ks,a3 as gt,a4 as pt,a5 as ft,a6 as xt,a7 as Te,a8 as Ie,a9 as be,aa as vt,ab as jt,ac as bt,ad as yt,ae as Nt,af as St}from"./index-KoQSSt_f.js";import{R as Ct,P as wt}from"./ProfileSettingsSection-EumMLlEp.js";import{R as re}from"./refresh-cw-BAaaPCXl.js";/* empty css */import{S as Xe}from"./save-Cvxs3XyC.js";import{C as kt}from"./chevron-up-Bjp_-_Cb.js";import{P as Pt}from"./play-C-37dnR1.js";import{R as Rt}from"./rotate-cw-C1Z_Xs23.js";import{B as Ps,W as It,S as as}from"./wifi-off-BIb94PkS.js";import{M as Mt}from"./monitor-kzHtxHnA.js";import{r as Dt}from"./index-BzwcDzbT.js";import"./git-commit-horizontal-Bxi8YPep.js";const At=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],Et=de("clipboard-copy",At);const Tt=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],Ot=de("code-xml",Tt);const Lt=[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]],Ut=de("hard-drive",Lt);const $t=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],ie=de("key-round",$t);const zt=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],Bt=de("power",zt);const _t=[["path",{d:"M4.9 16.1C1 12.2 1 5.8 4.9 1.9",key:"s0qx1y"}],["path",{d:"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5",key:"1idnkw"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}],["path",{d:"M16.2 4.8c2 2 2.26 5.11.8 7.47",key:"ojru2q"}],["path",{d:"M19.1 1.9a9.96 9.96 0 0 1 0 14.1",key:"rhi7fg"}],["path",{d:"M9.5 18h5",key:"mfy3pd"}],["path",{d:"m8 22 4-11 4 11",key:"25yftu"}]],Rs=de("radio-tower",_t);const Ft=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],Is=de("sliders-horizontal",Ft);const Gt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],qt=de("circle-user",Gt);function ls({handle:s,image:t}){const a=s?.trim().slice(0,1).toUpperCase()||"+";return e.jsx("div",{className:"account-avatar",children:t?e.jsx("img",{src:t,alt:""}):e.jsx("span",{children:a})})}function Fe({state:s,label:t}){return e.jsx("span",{className:`account-state ${s}`,children:t??s.replace("_"," ")})}function Wt(s,t){return s==="connect"?{handle:void 0,currentBaseUrl:null}:{handle:t?.handle,currentBaseUrl:t?.baseUrl??null}}function is(s,t){const a=t.trim().replace(/\/+$/,"");if(!a)throw new Error(`${s} is required.`);try{const n=new URL(a);if(n.protocol!=="http:"&&n.protocol!=="https:")throw new Error("unsupported protocol")}catch{throw new Error(`${s} must be an absolute http or https URL.`)}return a}function rs({account:s,busy:t,initialApiKey:a="",mode:n="update",onClose:l,onSave:r}){const g=i.useId(),o=n==="connect",[x,y]=i.useState(a),[j,S]=i.useState(s?.baseUrl??""),[p,d]=i.useState(s?.apiBaseUrl??""),[c,h]=i.useState(null),[b,f]=i.useState(null);Ns(b),i.useEffect(()=>{y(a),S(s?.baseUrl??""),d(s?.apiBaseUrl??""),h(null),f(null)},[s?.apiBaseUrl,s?.baseUrl,s?.handle,a]);async function u(w){w.preventDefault(),h(null),f(null);const k=x.trim();if(o&&!k){h("API key is required.");return}let C,P;try{C=is("Base URL",j),P=is("API base URL",p)}catch(D){h(D instanceof Error?D.message:String(D));return}try{const D=Wt(n,s);await r({...D,baseUrl:C,apiBaseUrl:P,apiKey:o?k:void 0,environment:s?.environment??null})}catch(D){f(D instanceof Error?D.message:String(D))}}return e.jsx("div",{className:"git-dialog-backdrop account-endpoint-dialog-backdrop",role:"presentation",onMouseDown:w=>{w.target===w.currentTarget&&!t&&l()},children:e.jsxs("form",{className:"git-dialog account-endpoint-dialog",role:"dialog","aria-modal":"true","aria-labelledby":g,onSubmit:w=>{u(w)},children:[e.jsx("button",{className:"git-dialog-close",disabled:t,type:"button",title:"Close","aria-label":"Close",onClick:l,children:e.jsx(Oe,{size:16})}),e.jsx("div",{className:"git-dialog-icon",children:o?e.jsx(ie,{size:18}):e.jsx(Is,{size:18})}),e.jsx("h2",{id:g,children:o?"Environment account":"Environment endpoints"}),o?e.jsxs("label",{className:"git-dialog-field",children:[e.jsx("span",{children:"API key"}),e.jsx("input",{autoFocus:!0,disabled:t,placeholder:"opk_...",type:"password",value:x,onChange:w=>y(w.target.value)})]}):null,e.jsxs("label",{className:"git-dialog-field",children:[e.jsx("span",{children:"Base URL"}),e.jsx("input",{autoFocus:!o,disabled:t,inputMode:"url",value:j,onChange:w=>S(w.target.value)})]}),e.jsxs("label",{className:"git-dialog-field",children:[e.jsx("span",{children:"API base URL"}),e.jsx("input",{disabled:t,inputMode:"url",value:p,onChange:w=>d(w.target.value)})]}),c?e.jsx("div",{className:"profile-dialog-warning",children:c}):null,e.jsxs("div",{className:"git-dialog-footer",children:[e.jsx("button",{className:"git-dialog-secondary",disabled:t,type:"button",onClick:l,children:"Cancel"}),e.jsxs("button",{className:"git-dialog-primary",disabled:t,type:"submit",children:[e.jsx(Xe,{size:14}),e.jsx("span",{children:t?"Saving":o?"Connect account":"Update account"})]})]})]})})}const Ge="https://openpond.ai/settings/api-keys",Kt="Changing the active OpenPond account rechecks cloud projects, hosted agents, default team, and profile sync for that account. Local projects stay on this machine; projects uploaded from another account will need to be synced again for this account.";function Vt({payload:s,connection:t,apiKey:a,saving:n,refreshingAccounts:l,setApiKey:r,saveAccount:g,saveEnvironmentAccount:o,refreshAccounts:x,switchAccount:y,onPayload:j,onPreferences:S,onError:p,onToast:d}){const c=s?.account,h=c?.state??"loading",b=h==="signed_in",f=h==="signed_out",u=h==="auth_error",w=c?.email?.trim()||null,k=c?.accounts??[],[C,P]=i.useState([]),[,D]=i.useState(!1),[F,m]=i.useState(null),[N,v]=i.useState(null),[R,A]=i.useState(null),[L,G]=i.useState(null),[W,V]=i.useState(!1),[M,U]=i.useState(!1),[H,Q]=i.useState(null),{confirmAction:ne,confirmDialog:J,resolveConfirmDialog:K}=Fs(),E=k.find(I=>I.isActive)??k[0]??null,B=s?.preferences.defaultTeamId?.trim()||null,ee=R??B,le=Gs(c),me=s?.accountMeta.asOf??"",ge=Me(c?.environment,E?.environment),ue=b?Me(E?.displayLabel,E?.handle,c?.label,c?.activeProfile?.handle,"Signed in"):u?"Account needs attention":f?"No account connected":"Loading account",pe=b?w??os(ge):u?c?.error??"Reconnect this account to restore OpenPond cloud features.":f?"Cloud projects, hosted agents, and team defaults are disabled until you sign in.":"Checking account status.",fe=k.length>0,xe=f?"Sign in to OpenPond":u?"Reconnect account":"Add or update account",Y=f?"Paste an OpenPond API key to connect this desktop app.":u?"Paste a fresh OpenPond API key for the active account.":"Saved to OpenPond CLI config.",ve=f?"Sign in":u?"Reconnect":"Save account",z=i.useMemo(()=>C.filter(I=>I.status==="active"),[C]),Ue=(i.useMemo(()=>ee?z.find(I=>I.teamId===ee)??null:null,[z,ee])??qs(z))?.teamId??"",Ne=i.useMemo(()=>z.map(I=>({value:I.teamId,label:Me(I.displayName,I.name,I.slug,"Team"),description:Ws(I.role)})),[z]),$e=Ue||Ne[0]?.value||"",ze=Ne.length>0,Be=!t||!!N||!!F||z.length===0,Pe=L?qe(L):null,Re=!!(Pe&&H===Pe),T=Ht(E?.baseUrl??c?.baseUrl),$=b||u;i.useEffect(()=>{if(!t||!le){P([]),m(null),D(!1);return}let I=!1;const se=Ks(le);return se?(P(se),D(!1)):(P([]),D(!0)),m(null),Vs({accountKey:le,force:!!me,fetchOrganizations:async()=>(await O.organizations(t)).organizations.map(Zs).filter(X=>!!X).filter(X=>X.status==="active")}).then(q=>{I||P(q)}).catch(q=>{I||(se||P([]),m(q instanceof Error?q.message:String(q)))}).finally(()=>{I||D(!1)}),()=>{I=!0}},[me,t,le]),i.useEffect(()=>{R&&B===R&&A(null)},[B,R]);async function _(I,se={notify:!0}){const q=z.find(X=>X.teamId===I)??null;if(!(!t||!q||N||(R??B)===q.teamId)){A(q.teamId),v(q.teamId),p(null),Ys({teamId:q.teamId,accountKey:le,force:!0,fetchAgents:async X=>(await O.listSandboxAgents(t,{teamId:X})).agents}).catch(()=>{});try{S(await O.savePreferences(t,{defaultTeamId:q.teamId})),se.notify&&d?.("Default team updated","success")}catch(X){A(null),p(X instanceof Error?X.message:String(X))}finally{v(null)}}}async function ae(I="Continue"){return $?ne({title:"Change active OpenPond account?",body:Kt,confirmLabel:I,cancelLabel:"Cancel"}):!0}async function je(I){if(I.preventDefault(),W){U(!0);return}await ae(ve)&&await g(I)}async function $s(I){await ae("Save account")&&(await o({apiKey:I.apiKey??"",handle:I.handle,baseUrl:I.baseUrl,apiBaseUrl:I.apiBaseUrl,environment:cs(I.environment)}),U(!1),V(!1))}async function zs(I){if(!t||!L)throw new Error("OpenPond server connection is not ready.");if(L.isActive&&!await ae("Save endpoints"))return;const se=qe(L);Q(se),p(null);try{const q=await O.updateOpenPondAccountConfig(t,{handle:I.handle??L.handle,currentBaseUrl:I.currentBaseUrl,baseUrl:I.baseUrl,apiBaseUrl:I.apiBaseUrl,chatApiBaseUrl:null,environment:cs(I.environment),setActive:L.isActive});j(q),d?.("Account endpoints updated","success"),G(null)}catch(q){throw p(q instanceof Error?q.message:String(q)),q}finally{Q(null)}}async function Bs(I){const se=I.handle?.trim()||"";se&&await ae("Switch account")&&await y(se,I.baseUrl)}return e.jsxs("section",{className:"account-settings",children:[e.jsxs("div",{className:"account-settings-title",children:[e.jsx("h1",{children:"Account"}),e.jsx("button",{className:"settings-icon-button ghost",disabled:!t||n||l,title:"Refresh accounts and team data","aria-label":"Refresh accounts and team data",type:"button",onClick:()=>{x()},children:e.jsx(re,{size:15,className:l?"settings-spin":void 0})})]}),e.jsxs("div",{className:"account-summary",children:[e.jsxs("div",{className:"account-summary-main",children:[e.jsx(ls,{handle:ue,image:b?c?.avatarUrl??E?.avatarUrl??null:null}),e.jsxs("div",{children:[e.jsx("span",{children:"Active account"}),e.jsx("strong",{children:ue}),e.jsxs("div",{className:"account-summary-meta",children:[e.jsx("small",{className:b&&w?"private-account-email":b?void 0:"account-summary-copy",tabIndex:b&&w?0:void 0,children:pe}),b&&ze?e.jsx(we,{className:"account-team-dropdown",compact:!0,disabled:Be,label:"Default team",options:Ne,value:$e,onChange:I=>{_(I)}}):null]})]})]}),e.jsx("div",{className:"account-summary-actions",children:e.jsx(Fe,{state:h,label:f?"not signed in":void 0})})]}),e.jsxs("form",{className:"account-login-form",onSubmit:I=>{je(I)},children:[f||u?e.jsxs("div",{className:"account-signin-panel",children:[e.jsx(ie,{size:18}),e.jsxs("div",{children:[e.jsx("strong",{children:f?"Connect this app to your OpenPond account":"Refresh the saved OpenPond credential"}),e.jsx("span",{children:f?"Local projects stay available without sign-in; cloud agents, teams, and hosted runs need an account.":"The saved credential could not authenticate. Replace it to resume cloud features."})]}),e.jsxs("a",{className:"settings-secondary account-api-key-link",href:T,rel:"noreferrer",target:"_blank",children:[e.jsx(Hs,{size:14}),e.jsx("span",{children:"Create key"})]})]}):null,e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:xe}),e.jsx("small",{children:Y})]}),e.jsxs("div",{className:"account-form-grid",children:[e.jsxs("label",{children:[e.jsx("span",{children:"API key"}),e.jsx("input",{value:a,onChange:I=>r(I.target.value),placeholder:"opk_...",type:"password"})]}),e.jsxs("div",{className:"account-environment-field",children:[e.jsx("span",{children:"Environment"}),e.jsxs("button",{className:`account-env-toggle account-form-env-toggle ${W?"active":""}`,disabled:n,type:"button","aria-pressed":W,onClick:()=>V(I=>!I),children:[e.jsx("span",{className:"account-env-toggle-switch","aria-hidden":"true"}),e.jsx("span",{children:"Environment"})]})]})]}),e.jsxs("button",{className:"settings-primary",disabled:n||!W&&!a.trim(),children:[e.jsx(Le,{size:15}),e.jsx("span",{children:n?"Saving":ve})]})]}),fe?e.jsxs("div",{className:"account-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"OpenPond accounts"}),e.jsxs("small",{children:[k.length," account",k.length===1?"":"s"]})]}),k.map(I=>{const se=I.handle?.trim()||"",q=Me(I.displayLabel,I.handle,"Unknown account"),X=I.email?.trim()||null,_e=Jt(I.environment),_s=qe(I);return e.jsxs("div",{className:"account-row",children:[e.jsx(ls,{handle:q,image:I.avatarUrl??null}),e.jsxs("div",{className:"account-details",children:[e.jsx("strong",{children:q}),X?e.jsx("span",{className:"private-account-email",tabIndex:0,children:X}):null,e.jsx("span",{children:os(I.environment??"production")})]}),e.jsxs("div",{className:"account-row-actions",children:[e.jsxs("button",{className:`account-env-toggle ${_e?"active":""}`,disabled:!t||n||!!H||!se,type:"button","aria-pressed":_e,title:"Configure environment endpoints",onClick:()=>G(I),children:[e.jsx("span",{className:"account-env-toggle-switch","aria-hidden":"true"}),e.jsx("span",{children:"Environment"})]}),I.isActive?e.jsx("span",{className:"active-pill",children:"Active"}):e.jsx("button",{className:"inline-action",disabled:n||!se,type:"button",onClick:()=>{Bs(I)},children:"Use"})]}),e.jsx(Fe,{state:I.authHealth})]},_s)})]}):null,c?.products&&c.products.length>0&&e.jsxs("div",{className:"account-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Products"}),e.jsxs("small",{children:[c.products.length," active"]})]}),c.products.map(I=>e.jsxs("div",{className:"product-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:I.name}),e.jsx("span",{children:I.type})]}),e.jsx(Fe,{state:I.status})]},I.id))]}),e.jsxs("div",{className:"settings-footnote",children:[e.jsx("span",{children:s?.server.runtimeVersion??"Runtime loading"}),e.jsx("strong",{children:t?.serverUrl??"loading"})]}),s?.appsMeta.lastRefreshError&&e.jsxs("div",{className:"settings-footnote warning",children:[e.jsx("span",{children:"Last refresh error"}),e.jsx("strong",{children:s.appsMeta.lastRefreshError})]}),L?e.jsx(rs,{account:L,busy:Re,onClose:()=>{Re||G(null)},onSave:zs}):null,M?e.jsx(rs,{account:E,busy:n,initialApiKey:a,mode:"connect",onClose:()=>{n||U(!1)},onSave:$s}):null,e.jsx(Js,{state:J,onResolve:K})]})}function qe(s){return`${s.handle.trim().toLowerCase()}|${s.baseUrl??"default"}`}function Me(...s){for(const t of s){const a=t?.trim();if(a)return a}return""}function os(s){const t=s.trim().toLowerCase();return!t||t==="production"?"Production":"Environment"}function Ht(s){const t=s?.trim().replace(/\/+$/,"");if(!t)return Ge;try{const a=new URL(t);return a.protocol!=="http:"&&a.protocol!=="https:"?Ge:`${t}/settings/api-keys`}catch{return Ge}}function cs(s){const t=s?.trim();return!t||t.toLowerCase()==="production"?"custom":t}function Jt(s){const t=s?.trim().toLowerCase();return!!(t&&t!=="production")}function Yt({advancedWorkspaceControls:s,defaultBranchPrefix:t,defaultNewProjectDirectory:a,preferences:n,saving:l,chooseDefaultProjectDirectory:r,saveDefaults:g,setAdvancedWorkspaceControls:o,setDefaultBranchPrefix:x,setDefaultNewProjectDirectory:y}){const j=Ke(t)===n.defaultBranchPrefix&&a.trim()===n.defaultNewProjectDirectory&&s===n.advancedWorkspaceControls;return e.jsxs("section",{className:"account-settings",children:[e.jsx("h1",{children:"Defaults"}),e.jsxs("form",{className:"provider-settings-form",onSubmit:S=>{g(S)},children:[e.jsxs("label",{className:"settings-check-row",children:[e.jsx("input",{type:"checkbox",checked:s,disabled:l,onChange:S=>o(S.target.checked)}),e.jsxs("span",{children:[e.jsx("strong",{children:"Show advanced Git controls"}),e.jsx("small",{children:"Show branch, commit, and push controls for local project workflows."})]})]}),e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Git branches"}),e.jsx("small",{children:"Used for advanced and non-managed branch creation"})]}),e.jsx("div",{className:"provider-settings-grid single",children:e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Branch prefix"}),e.jsx("input",{value:t,disabled:l,placeholder:"feat/",onChange:S=>x(S.target.value)})]})}),e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Projects"}),e.jsx("small",{children:"Used when starting a new local project from scratch"})]}),e.jsxs("div",{className:"settings-path-row",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"New project directory"}),e.jsx("input",{value:a,disabled:l,placeholder:"~/Documents/OpenPond Projects",onChange:S=>y(S.target.value)})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:l,onClick:()=>{r()},children:[e.jsx(Ss,{size:14}),e.jsx("span",{children:"Browse"})]})]}),e.jsx("button",{className:"settings-primary",disabled:l||j,children:e.jsx("span",{children:l?"Saving":"Save defaults"})})]}),e.jsxs("div",{className:"settings-footnote",children:[e.jsx("span",{children:"Initial branch name"}),e.jsxs("strong",{children:[Ke(t),"example-project"]})]}),e.jsxs("div",{className:"settings-footnote",children:[e.jsx("span",{children:"New projects"}),e.jsx("strong",{children:a||n.defaultNewProjectDirectory})]})]})}function Zt({diagnostics:s,diagnosticsAvailable:t,diagnosticsBusy:a,diagnosticsStatus:n,logDir:l,logLineLimit:r,logLines:g,logViewBusy:o,logViewSummary:x,logViewportRef:y,tailLogs:j,copyRecentLogs:S,exportDiagnosticsBundle:p,loadOlderLogs:d,openLogsFolder:c,refreshLogView:h,toggleTailLogs:b}){const f=s.filter(w=>w.name==="diagnostic"&&w.status==="failed").slice().reverse().map(Xt),u=typeof window>"u"?void 0:window.openpond;return e.jsxs("section",{className:"account-settings",children:[e.jsx("h1",{children:"Diagnostics"}),e.jsxs("div",{className:"diagnostics-log-panel",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Recent errors"}),e.jsxs("small",{children:[f.length," saved"]})]}),e.jsx("div",{className:"diagnostics-error-list",role:"list",children:f.length===0?e.jsx("div",{className:"diagnostics-error-empty",children:"No saved errors"}):f.map(w=>e.jsxs("article",{className:"diagnostics-error-entry",role:"listitem",children:[e.jsx(Cs,{size:15}),e.jsxs("div",{className:"diagnostics-error-body",children:[e.jsxs("div",{className:"diagnostics-error-title",children:[e.jsx("strong",{children:w.message}),e.jsx("time",{dateTime:w.timestamp,children:w.timeLabel})]}),e.jsxs("div",{className:"diagnostics-error-meta",children:[e.jsx("span",{children:w.surface}),w.status?e.jsx("span",{children:w.status}):null,w.sequence?e.jsxs("span",{children:["#",w.sequence]}):null]}),w.detail?e.jsxs("details",{className:"diagnostics-error-detail",children:[e.jsx("summary",{children:"Details"}),e.jsx("pre",{children:w.detail})]}):null]})]},w.id))})]}),e.jsxs("div",{className:"account-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Logs"}),e.jsx("small",{children:t?"Desktop":"Unavailable"})]}),e.jsxs("div",{className:"product-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Logs folder"}),e.jsx("span",{children:"Desktop and server logs"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:a!==null||!u?.openLogsFolder,onClick:()=>{c()},children:[e.jsx(Ss,{size:15}),e.jsx("span",{children:a==="logs"?"Opening":"Open"})]})]}),e.jsxs("div",{className:"product-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Diagnostics export"}),e.jsx("span",{children:"Support folder with diagnostics.txt"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:a!==null||!u?.exportDiagnostics,onClick:()=>{p()},children:[e.jsx(Xs,{size:15}),e.jsx("span",{children:a==="export"?"Exporting":"Export"})]})]}),e.jsxs("div",{className:"product-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Recent logs"}),e.jsx("span",{children:"Last 1000 lines to clipboard"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:a!==null||!u?.copyRecentLogs,onClick:()=>{S()},children:[e.jsx(Et,{size:15}),e.jsx("span",{children:a==="copy"?"Copying":"Copy"})]})]})]}),e.jsxs("div",{className:"diagnostics-log-panel",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Log view"}),e.jsxs("div",{className:"settings-heading-actions diagnostics-log-actions",children:[e.jsx("small",{children:x}),e.jsx("button",{type:"button",className:`settings-icon-button ${j?"active":""}`,title:j?"Pause tail":"Tail logs","aria-label":j?"Pause tail":"Tail logs",disabled:!u?.readRecentLogs,onClick:b,children:j?e.jsx(Qs,{size:15}):e.jsx(Pt,{size:15})}),e.jsx("button",{type:"button",className:"settings-icon-button",title:"Refresh logs","aria-label":"Refresh logs",disabled:o!==null||!u?.readRecentLogs,onClick:()=>{h(r,"refresh")},children:e.jsx(re,{size:15})}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:o!==null||!u?.readRecentLogs,onClick:d,children:[e.jsx(kt,{size:15}),e.jsx("span",{children:o==="older"?"Loading":"Older"})]})]})]}),e.jsx("div",{ref:y,className:"diagnostics-log-viewer",role:"log","aria-live":j?"polite":"off",children:g.length===0?e.jsx("div",{className:"diagnostics-log-empty",children:o?"Loading logs":"No log lines"}):g.map((w,k)=>e.jsxs("div",{className:"diagnostics-log-entry",children:[e.jsx("span",{className:"diagnostics-log-source",children:w.file}),e.jsx("code",{children:w.line})]},`${w.file}:${w.timestamp}:${w.index}:${k}`))}),l&&e.jsxs("div",{className:"diagnostics-log-dir",children:[e.jsx("span",{children:"Source"}),e.jsx("strong",{children:l})]})]}),n&&e.jsxs("div",{className:`settings-footnote ${n.warning?"warning":""}`,children:[e.jsx("span",{children:n.label}),e.jsx("strong",{children:n.value})]})]})}function Xt(s){const t=ds(s.data),a=ds(t.context),l=ce(t.stack)??ce(t.detail)??ce(a.detail)??null;return{id:s.id,timestamp:s.timestamp,timeLabel:en(s.timestamp),message:Qt(s,t),surface:ce(t.surface)??s.source??"diagnostic",status:s.status??null,sequence:s.sequence??null,detail:l}}function Qt(s,t){return ce(s.error)??ce(s.output)??ce(t.message)??ce(t.error)??"Diagnostic event"}function en(s){const t=new Date(s);return Number.isNaN(t.getTime())?s:t.toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function ds(s){return s&&typeof s=="object"&&!Array.isArray(s)?s:{}}function ce(s){return typeof s=="string"&&s.trim()?s.trim():null}const us=[{id:"typescript",label:"TypeScript",placeholder:"typescript-language-server"},{id:"python",label:"Python",placeholder:"pyright-langserver"},{id:"rust",label:"Rust",placeholder:"rust-analyzer"}];function sn({editorPreferences:s,lspStatus:t,preferences:a,restarting:n,saving:l,statusLoading:r,refreshLspStatus:g,restartLanguageServers:o,saveEditorSettings:x,setEditorPreferences:y,setLanguageCustomCommand:j,setLanguageMode:S}){const p=JSON.stringify(s)!==JSON.stringify(a.editor),d=new Map(t?.languages.map(c=>[c.language,c])??[]);return e.jsxs("section",{className:"account-settings",children:[e.jsx("h1",{children:"Editor"}),e.jsxs("form",{className:"provider-settings-form editor-settings-form",onSubmit:c=>{x(c)},children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Language servers"}),e.jsx("small",{children:"Local tools"})]}),e.jsx("div",{className:"provider-settings-grid single",children:e.jsxs("div",{className:"settings-select-field",children:[e.jsx("span",{children:"Language servers"}),e.jsx(we,{value:s.languageServers,disabled:l,label:"Language servers",options:et,onChange:c=>y(h=>({...h,languageServers:c}))})]})}),e.jsxs("label",{className:"settings-check-row",children:[e.jsx("input",{type:"checkbox",checked:s.diagnosticsWhileEditing,disabled:l||s.languageServers==="off",onChange:c=>y(h=>({...h,diagnosticsWhileEditing:c.target.checked}))}),e.jsxs("span",{children:[e.jsx("strong",{children:"Diagnostics while editing"}),e.jsx("small",{children:"Update Monaco markers as the local buffer changes."})]})]}),e.jsxs("label",{className:"settings-check-row",children:[e.jsx("input",{type:"checkbox",checked:s.checkOnSave,disabled:l||s.languageServers==="off",onChange:c=>y(h=>({...h,checkOnSave:c.target.checked}))}),e.jsxs("span",{children:[e.jsx("strong",{children:"Check on save"}),e.jsx("small",{children:"Refresh diagnostics after writing a file."})]})]}),e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Languages"}),e.jsx("small",{children:"Auto, disabled, or custom executable"})]}),e.jsx("div",{className:"lsp-language-list",children:us.map(c=>{const h=s.languages[c.id];return e.jsxs("div",{className:"lsp-language-row",children:[e.jsxs("div",{className:"lsp-language-label",children:[e.jsx("strong",{children:c.label}),e.jsx("span",{children:hs(d.get(c.id),r)})]}),e.jsxs("div",{className:"settings-select-field",children:[e.jsx("span",{children:"Mode"}),e.jsx(we,{value:h.mode,disabled:l||s.languageServers==="off",label:`${c.label} language server mode`,options:st,onChange:b=>S(c.id,b)})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Custom executable"}),e.jsx("input",{value:h.customCommand,disabled:l||s.languageServers==="off"||h.mode!=="custom",placeholder:c.placeholder,onChange:b=>j(c.id,b.target.value)})]})]},c.id)})}),e.jsx("button",{className:"settings-primary",disabled:l||!p,children:e.jsx("span",{children:l?"Saving":"Save editor settings"})})]}),e.jsxs("div",{className:"account-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"LSP status"}),e.jsxs("div",{className:"settings-heading-actions",children:[e.jsx("small",{children:r?"Checking":t?"Current":"Not checked"}),e.jsx("button",{type:"button",className:"settings-icon-button",title:"Refresh LSP status","aria-label":"Refresh LSP status",disabled:r||n,onClick:()=>{g()},children:e.jsx(re,{className:r?"settings-spin":void 0,size:15})}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:r||n,onClick:()=>{o()},children:[e.jsx(Rt,{className:n?"settings-spin":void 0,size:15}),e.jsx("span",{children:n?"Restarting":"Restart"})]})]})]}),us.map(c=>{const h=d.get(c.id);return e.jsxs("div",{className:"product-row lsp-status-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:c.label}),e.jsx("span",{title:h?.command??h?.message??void 0,children:h?.command??h?.message??"Not checked"})]}),e.jsx("span",{className:`lsp-status-pill ${h?.status??"missing"}`,children:hs(h,r)})]},c.id)})]}),e.jsxs("div",{className:"settings-footnote",children:[e.jsx("span",{children:"Project config"}),e.jsx("strong",{children:"Uses tsconfig, pyrightconfig, pyproject, and Cargo files when present"})]})]})}function hs(s,t){return t&&!s?"Checking":s?s.status==="found"?"Found":s.status==="disabled"?"Disabled":s.status==="error"?"Error":"Missing":"Not checked"}function tn({goalStorageLocation:s,preferences:t,saving:a,saveDefaults:n,setGoalStorageLocation:l}){return e.jsxs("section",{className:"account-settings",children:[e.jsx("h1",{children:"Goals"}),e.jsxs("form",{className:"provider-settings-form",onSubmit:r=>{n(r)},children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Storage"}),e.jsx("small",{children:"Controls where local goal state, plans, and artifacts are written"})]}),e.jsxs("div",{className:"settings-radio-group",children:[e.jsxs("label",{className:"settings-radio-row",children:[e.jsx("input",{type:"radio",name:"goal-storage-location",checked:s==="global",disabled:a,onChange:()=>l("global")}),e.jsxs("span",{children:[e.jsx("strong",{children:"User home"}),e.jsx("small",{children:"Store goal files under ~/.openpond/goals."})]})]}),e.jsxs("label",{className:"settings-radio-row",children:[e.jsx("input",{type:"radio",name:"goal-storage-location",checked:s==="workspace",disabled:a,onChange:()=>l("workspace")}),e.jsxs("span",{children:[e.jsx("strong",{children:"Working directory"}),e.jsx("small",{children:"Store goal files in the current workspace under .openpond/goals."})]})]})]}),e.jsx("button",{className:"settings-primary",disabled:a||s===t.goalStorageLocation,children:e.jsx("span",{children:a?"Saving":"Save goals"})})]}),e.jsxs("div",{className:"settings-footnote",children:[e.jsx("span",{children:"Goal storage"}),e.jsx("strong",{children:s==="global"?"~/.openpond/goals":".openpond/goals in the working directory"})]})]})}function nn({contextCompactionAutoEnabled:s,preferences:t,saving:a,saveDefaults:n,setContextCompactionAutoEnabled:l}){return e.jsxs("section",{className:"account-settings",children:[e.jsx("h1",{children:"Context"}),e.jsxs("form",{className:"provider-settings-form",onSubmit:r=>{n(r)},children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Compaction"}),e.jsx("small",{children:"Controls automatic compaction for long OpenPond and BYOK chats"})]}),e.jsxs("label",{className:"settings-check-row",children:[e.jsx("input",{type:"checkbox",checked:s,disabled:a,onChange:r=>l(r.target.checked)}),e.jsxs("span",{children:[e.jsx("strong",{children:"Auto compact long chats"}),e.jsx("small",{children:"Summarize older turns at 85% context before the selected model runs out. The transcript stays visible."})]})]}),e.jsx("button",{className:"settings-primary",disabled:a||s===t.contextCompaction.autoEnabled,children:e.jsx("span",{children:a?"Saving":"Save context"})})]})]})}function an({insightsEnabled:s,insightsUseDefaultModel:t,insightsProvider:a,insightsModel:n,insightsEvidenceSources:l,preferences:r,providers:g,saving:o,saveDefaults:x,changeInsightsProvider:y,setInsightsEnabled:j,setInsightsUseDefaultModel:S,setInsightsModel:p,setInsightsEvidenceSourceEnabled:d}){const c=Ze(g,{enabledOnly:!0}),h=ke(a,g),b="settings-insights-model-options",f=s===r.insightsEnabled&&un(l,r.insightsEvidenceSources)&&hn({useDefault:t,provider:a,model:n},r);return e.jsxs("section",{className:"account-settings insights-settings",children:[e.jsx("h1",{children:"Insights"}),e.jsxs("form",{className:"provider-settings-form",onSubmit:u=>{x(u)},children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Background agent"}),e.jsx("small",{children:"Controls the background Insights agent"})]}),e.jsxs("label",{className:"settings-check-row",children:[e.jsx("input",{type:"checkbox",checked:s,disabled:o,onChange:u=>j(u.target.checked)}),e.jsxs("span",{children:[e.jsx("strong",{children:"Run background Insights"}),e.jsx("small",{children:"Startup and interval scans run while the app is open."})]})]}),e.jsxs("label",{className:"settings-check-row",children:[e.jsx("input",{type:"checkbox",checked:t,disabled:o,onChange:u=>S(u.target.checked)}),e.jsxs("span",{children:[e.jsx("strong",{children:"Use default chat model"}),e.jsxs("small",{children:[ye(r.defaultChatProvider,g)," /"," ",Ee(r.defaultChatModel,g,r.defaultChatProvider)]})]})]}),t?null:e.jsxs("div",{className:"provider-settings-grid two",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Insights provider"}),e.jsx("select",{value:a,disabled:o,onChange:u=>y(u.target.value),children:c.map(u=>e.jsx("option",{value:u.value,children:u.label},u.value))})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Insights model"}),e.jsx("input",{value:n,disabled:o,list:b,onChange:u=>p(u.target.value)}),e.jsx("datalist",{id:b,children:h.map(u=>e.jsx("option",{value:u.value,children:u.label},u.value))})]})]}),e.jsx("div",{className:"settings-check-grid","aria-label":"Insights evidence sources",children:Ds.map(u=>e.jsxs("label",{className:"settings-check-row compact",children:[e.jsx("input",{type:"checkbox",checked:l[u.key],disabled:o,onChange:w=>d(u.key,w.target.checked)}),e.jsxs("span",{children:[e.jsx("strong",{children:u.label}),e.jsx("small",{children:u.description})]})]},u.key))}),e.jsx("button",{className:"settings-primary",disabled:o||f,children:e.jsx("span",{children:o?"Saving":"Save insights"})})]}),e.jsxs("div",{className:"settings-footnote",children:[e.jsx("span",{children:"Insights model"}),e.jsx("strong",{children:t?"Default chat model":`${ye(a,g)} / ${n}`})]})]})}function ln({subagentsEnabled:s,subagentDelegationMode:t,subagentsUseDefaultModel:a,subagentsProvider:n,subagentsModel:l,subagentRoles:r,subagentsMaxConcurrentRuns:g,subagentsMaxConcurrentRunsPerProvider:o,subagentsMaxConcurrentRunsPerWorkspaceTarget:x,preferences:y,providers:j,saving:S,saveDefaults:p,changeSubagentsProvider:d,setSubagentsEnabled:c,setSubagentDelegationMode:h,setSubagentsUseDefaultModel:b,setSubagentsModel:f,setSubagentsMaxConcurrentRuns:u,setSubagentsMaxConcurrentRunsPerProvider:w,setSubagentsMaxConcurrentRunsPerWorkspaceTarget:k,setSubagentRoleEnabled:C,setSubagentRoleIsolationMode:P,setSubagentRoleMaxConcurrentRuns:D,setSubagentRoleModel:F,setSubagentRolePeerMessages:m,setSubagentRoleToolPolicy:N,changeSubagentRoleProvider:v}){const R=Ze(j,{enabledOnly:!0}),A=a?y.defaultChatProvider:n,L=a?y.defaultChatModel:l,G=Ms(ke(A,j),L),W=a?null:{providerId:n,modelId:l.trim()},V=mn({enabled:s,delegationMode:t,defaultModelRef:W,roles:r,maxConcurrentRuns:g,maxConcurrentRunsPerProvider:o,maxConcurrentRunsPerWorkspaceTarget:x},y);return e.jsx("section",{className:"account-settings subagents-settings",children:e.jsxs("form",{className:"subagent-settings-form",onSubmit:M=>{p(M)},children:[e.jsxs("div",{className:"subagent-settings-title-row",children:[e.jsx("h1",{children:"Subagents"}),e.jsxs("div",{className:"subagent-settings-actions",children:[e.jsx("button",{className:`settings-primary subagent-save-button${V?"":" dirty"}`,disabled:S||V,children:e.jsx("span",{children:S?"Saving":"Save agents"})}),e.jsxs("label",{className:"provider-toggle subagent-card-toggle","aria-label":"Allow subagents",children:[e.jsx("input",{type:"checkbox",checked:s,disabled:S,onChange:M=>c(M.target.checked)}),e.jsx("span",{})]})]})]}),e.jsxs("section",{className:"subagent-settings-section",children:[e.jsx("div",{className:"subagent-settings-card-header",children:e.jsxs("div",{children:[e.jsx("span",{children:"Default delegation"}),e.jsx("small",{children:"Used unless a task overrides it from the composer."})]})}),e.jsx("div",{className:"subagent-field-grid two",children:e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Subagent use"}),e.jsxs("select",{value:t,disabled:S||!s,onChange:M=>h(M.target.value),children:[e.jsx("option",{value:"manual",children:"Manual"}),e.jsx("option",{value:"balanced",children:"Balanced"}),e.jsx("option",{value:"proactive",children:"Proactive"})]})]})})]}),e.jsxs("section",{className:"subagent-settings-section",children:[e.jsx("div",{className:"subagent-settings-card-header",children:e.jsx("div",{children:e.jsx("span",{children:"Default model"})})}),e.jsxs("div",{className:"subagent-field-grid two",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Provider"}),e.jsx("select",{value:A,disabled:S||!s,onChange:M=>{b(!1),d(M.target.value)},children:R.map(M=>e.jsx("option",{value:M.value,children:M.label},M.value))})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Model"}),e.jsx("select",{value:L,disabled:S||!s,onChange:M=>{b(!1),f(M.target.value)},children:G.map(M=>e.jsx("option",{value:M.value,children:M.label},M.value))})]})]})]}),e.jsx("div",{className:"subagent-role-list",children:r.map(M=>{const U=tt.find(E=>E.id===M.id),H=M.modelRef?.providerId??A,Q=M.modelRef?.modelId||nt(H,j)||L,ne=dn(R,j,{providerId:H,modelId:Q}),J=Ae(H,Q),K=S||!s||!M.enabled;return e.jsxs("section",{className:`subagent-role-row${M.enabled?"":" disabled"}`,children:[e.jsxs("div",{className:"subagent-settings-card-header subagent-role-header",children:[e.jsxs("div",{className:"subagent-role-title",children:[e.jsx("span",{children:U?.label??M.id}),e.jsx("small",{children:U?.description??"Custom subagent role."})]}),e.jsxs("label",{className:"provider-toggle subagent-card-toggle","aria-label":`${U?.label??M.id} enabled`,children:[e.jsx("input",{type:"checkbox",checked:M.enabled,disabled:S||!s,onChange:E=>C(M.id,E.target.checked)}),e.jsx("span",{})]})]}),e.jsxs("div",{className:"subagent-role-controls",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Model"}),e.jsx("select",{value:J,disabled:K,onChange:E=>{const B=ne.find(ee=>ee.value===E.target.value);B&&(v(M.id,B.providerId),F(M.id,B.modelId))},children:ne.map(E=>e.jsx("option",{value:E.value,children:E.label},E.value))})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Isolation"}),e.jsx("select",{value:M.isolationMode,disabled:K,onChange:E=>P(M.id,E.target.value),children:rn.map(E=>e.jsx("option",{value:E.value,children:E.label},E.value))})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Tools"}),e.jsx("select",{value:M.toolPolicy,disabled:K,onChange:E=>N(M.id,E.target.value),children:on.map(E=>e.jsx("option",{value:E.value,children:E.label},E.value))})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Peer messages"}),e.jsx("select",{value:M.peerMessages,disabled:K,onChange:E=>m(M.id,E.target.value),children:cn.map(E=>e.jsx("option",{value:E.value,children:E.label},E.value))})]})]}),e.jsx("div",{className:"subagent-role-budget-grid",children:e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Role concurrency"}),e.jsx("input",{type:"number",min:1,max:16,value:M.maxConcurrentRuns,disabled:K,onChange:E=>D(M.id,ms(E.target.value,1))})]})})]},M.id)})}),e.jsxs("section",{className:"subagent-settings-section",children:[e.jsx("div",{className:"subagent-settings-card-header",children:e.jsxs("div",{children:[e.jsx("span",{children:"Limits"}),e.jsx("small",{children:"Controls child worker concurrency."})]})}),e.jsxs("div",{className:"subagent-field-grid four",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Total concurrency"}),e.jsx("input",{type:"number",min:1,max:32,value:g,disabled:S||!s,onChange:M=>u(ms(M.target.value,1))})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Per provider"}),e.jsx("input",{type:"number",min:1,max:32,value:o??"",placeholder:"No cap",disabled:S||!s,onChange:M=>w(Ye(M.target.value))})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Per workspace"}),e.jsx("input",{type:"number",min:1,max:32,value:x??"",placeholder:"No cap",disabled:S||!s,onChange:M=>k(Ye(M.target.value))})]})]})]})]})})}const rn=[{value:"none",label:"Direct workspace"},{value:"copy_on_write",label:"Copy-on-write"},{value:"worktree",label:"Worktree"}],on=[{value:"read_only",label:"Read only"},{value:"workspace_write",label:"Workspace write"},{value:"full_tools",label:"Full tools"}],cn=[{value:"goal_scoped",label:"Scoped handoffs"},{value:"disabled",label:"Disabled"}];function Ms(s,t){const a=t.trim();return!a||s.some(n=>n.value===a)?s:[{value:a,label:a},...s]}function Ae(s,t){return JSON.stringify([s,t])}function dn(s,t,a){const n=[];for(const l of s){const r=Ms(ke(l.value,t),l.value===a.providerId?a.modelId:"");for(const g of r)n.push({value:Ae(l.value,g.value),label:`${l.label} / ${g.label}`,providerId:l.value,modelId:g.value})}return a.modelId&&!n.some(l=>l.value===Ae(a.providerId,a.modelId))&&n.unshift({value:Ae(a.providerId,a.modelId),label:`${ye(a.providerId,t)} / ${a.modelId}`,providerId:a.providerId,modelId:a.modelId}),n}const Ds=[{key:"createEdit",label:"Create/Improve",description:"Waiting, blocked, or failed Create/Improve runs."},{key:"stuckTurns",label:"Stuck turns",description:"Failed or long-running active turns."},{key:"toolFailures",label:"Tool failures",description:"Repeated tool or action failures."},{key:"abandonedGoals",label:"Abandoned goals",description:"Goal loops left active too long."},{key:"userCorrections",label:"Corrections",description:"Repeated correction-style prompts."},{key:"unresolvedConversations",label:"Unresolved chats",description:"Long chats with unresolved recent work."},{key:"usageAnomalies",label:"Usage",description:"Spikes, failures, missing usage, and latency changes."}];function un(s,t){return Ds.every(a=>s[a.key]===t[a.key])}function hn(s,t){return s.useDefault?!t.insightsModelRef:t.insightsModelRef?.providerId===s.provider&&t.insightsModelRef?.modelId===s.model.trim()}function Ye(s){const t=s.trim();if(!t)return null;const a=Number(t);return Number.isFinite(a)?a:null}function ms(s,t){return Ye(s)??t}function mn(s,t){const a=t.subagents;return s.enabled===a.enabled&&s.delegationMode===a.delegationMode&&gn(s.defaultModelRef,a.defaultModelRef)&&s.maxConcurrentRuns===a.maxConcurrentRuns&&s.maxConcurrentRunsPerProvider===a.maxConcurrentRunsPerProvider&&s.maxConcurrentRunsPerWorkspaceTarget===a.maxConcurrentRunsPerWorkspaceTarget&&JSON.stringify(s.roles)===JSON.stringify(a.roles)}function gn(s,t){return(s?.providerId??null)===(t?.providerId??null)&&(s?.modelId??null)===(t?.modelId??null)}const pn=[{mode:"all",label:"All new messages",detail:"Show an in-app alert for every Team Chat message."},{mode:"direct_mentions",label:"Direct messages and mentions",detail:"Show alerts for direct messages and messages that mention you."},{mode:"none",label:"Nothing",detail:"Keep unread counts without showing message alerts."}];function fn({currentUserId:s,enabled:t,mode:a,threads:n,onModeChange:l,onThreadMuteChange:r}){const[g,o]=i.useState(null),[x,y]=i.useState(null);Ns(x);const j=i.useMemo(()=>n.filter(d=>d.archivedAt===null).map(d=>({thread:d,label:xn(d,s)})).sort((d,c)=>{const h=+!!c.thread.mutedAt-+!!d.thread.mutedAt;return h!==0?h:d.label.localeCompare(c.label)}),[s,n]),S=j.filter(({thread:d})=>!!d.mutedAt).length,p=i.useCallback(async d=>{o(d.id),y(null),await r(d.id,!d.mutedAt)||y("Could not update this conversation. Try again."),o(null)},[r]);return e.jsxs("section",{className:"account-settings notifications-settings",children:[e.jsx("h1",{children:"Notifications"}),e.jsxs("div",{className:"account-list notification-settings-card",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Team chat notifications"}),e.jsx("small",{children:"In-app alerts"})]}),e.jsx("div",{className:"notification-mode-list",role:"radiogroup","aria-label":"Notify me about",children:pn.map(d=>e.jsxs("label",{className:`notification-mode-option${a===d.mode?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"team-chat-notification-mode",checked:a===d.mode,onChange:()=>l(d.mode)}),e.jsxs("span",{children:[e.jsx("strong",{children:d.label}),e.jsx("small",{children:d.detail})]})]},d.mode))})]}),e.jsxs("div",{className:"account-list notification-settings-card",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Conversation overrides"}),e.jsx("small",{children:S===1?"1 muted":`${S} muted`})]}),t?j.length===0?e.jsx("div",{className:"empty-account-list",children:e.jsx("span",{children:"Open a Team Chat conversation to manage it here."})}):j.map(({thread:d,label:c})=>{const h=!!d.mutedAt,b=g===d.id;return e.jsxs("div",{className:"notification-thread-row",children:[e.jsx("span",{className:`notification-thread-icon${h?" muted":""}`,children:h?e.jsx(at,{size:15}):e.jsx(Ps,{size:15})}),e.jsxs("span",{className:"notification-thread-copy",children:[e.jsx("strong",{children:c}),e.jsx("small",{children:h?"Muted":"Uses the team chat setting"})]}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:g!==null,onClick:()=>{p(d)},children:b?"Saving":h?"Unmute":"Mute"})]},d.id)}):e.jsx("div",{className:"empty-account-list",children:e.jsx("span",{children:"Connect a team to manage conversation overrides."})})]}),e.jsx("div",{className:"settings-footnote",children:e.jsx("span",{children:"Muted conversations never show alerts. Unread counts remain available."})})]})}function xn(s,t){return s.kind==="general"||s.kind==="channel"?`#${s.title?.trim()||"general"}`:s.kind==="dm"?s.participants.find(a=>a.userId!==t)?.name??s.title?.trim()??"Direct message":s.title?.trim()||s.participants.filter(a=>a.userId!==t).map(a=>a.name).join(", ")||"Group conversation"}function vn({canSaveCurrentTemplate:s,personalizationTemplateId:t,personalizationTemplateOptions:a,saveAsNewOpen:n,saving:l,selectedPersonalizationTemplate:r,selectedTemplateIsCustom:g,soulDraft:o,templateNameDraft:x,changePersonalizationTemplate:y,changeSoulDraft:j,openSaveAsNew:S,resetPersonalizationDraft:p,savePersonalization:d,setSaveAsNewOpen:c,setTemplateNameDraft:h}){function b(f){f.preventDefault(),d(n)}return e.jsxs("section",{className:"account-settings",children:[e.jsx("h1",{children:"Personalization"}),e.jsxs("form",{className:"provider-settings-form personalization-form",onSubmit:b,children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Agent style"}),e.jsx("div",{className:"settings-heading-actions",children:n?e.jsxs(e.Fragment,{children:[e.jsx("input",{className:"settings-heading-input",value:x,onChange:f=>h(f.target.value),placeholder:"Name","aria-label":"Template name"}),e.jsx("button",{type:"button",className:"settings-icon-button",title:"Cancel","aria-label":"Cancel",disabled:l,onClick:()=>c(!1),children:e.jsx(Oe,{size:15})}),e.jsx("button",{type:"button",className:"settings-icon-button primary",title:"Save new template","aria-label":"Save new template",disabled:l||!o.trim()||!x.trim(),onClick:()=>{d(!0)},children:e.jsx(lt,{size:15})})]}):e.jsxs(e.Fragment,{children:[e.jsx("small",{children:g?"Custom template":"Built-in template"}),e.jsx("button",{type:"button",className:"settings-icon-button",title:"Save as new","aria-label":"Save as new",disabled:l||!r||!o.trim(),onClick:S,children:e.jsx(Le,{size:15})})]})})]}),e.jsx("div",{className:"provider-settings-grid single",children:e.jsxs("div",{className:"settings-select-field",children:[e.jsx("span",{children:"Template"}),e.jsx(we,{value:t,disabled:l||a.length===0,label:"Personalization template",options:a,onChange:f=>{y(f)}})]})}),e.jsxs("label",{className:"settings-select-field personalization-editor",children:[e.jsx("span",{children:"SOUL.md"}),e.jsx("textarea",{value:o,onChange:f=>j(f.target.value),spellCheck:!1})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsx("button",{type:"button",className:"settings-icon-button",title:"Reset to template","aria-label":"Reset to template",disabled:l||!r,onClick:p,children:e.jsx(Ct,{size:15})}),g&&e.jsx("button",{className:"settings-icon-button primary",title:"Save template","aria-label":"Save template",disabled:l||!s,children:e.jsx(Xe,{size:15})})]})]})]})}const jn=[{value:"local_secret",label:"Saved key",description:"Encrypted on this machine"},{value:"env",label:"Environment variable",description:"Read by the local server"}],bn=120,yn=new Set(["openai","xai","zai"]),Nn=new Set(["chatgpt-subscription"]),Sn="https://api.z.ai/api/coding/paas/v4";function gs(s){return s.split(/[\n,]/).map(t=>t.trim()).filter(Boolean)}function As(s){return s?s.available?"Ready":s.credential.connected?"Configured":s.credential.lastError||s.lastError?"Needs attention":s.id==="codex"?"Needs Codex login":s.routing.localByok?"Needs key":s.enabled?"Enabled":"Off":"Unknown"}function Es(s){return s?s.available?"ready":s.credential.connected?"configured":s.credential.lastError||s.lastError||s.id==="codex"?"warning":"muted":"unknown"}function ps(s){return s.credential.connected?s.credential.redacted?s.credential.redacted:s.credential.source==="chatgpt_subscription"?"ChatGPT subscription":s.credential.source:s.credential.lastError??"Not connected"}function Cn(s){return s?.trim().replace(/\/+$/,"")??""}function Ts(s,t){return s.id==="zai"&&Cn(t.providers.zai?.baseUrl)===Sn}function wn(s,t){return!s.credential.connected||!s.routing.localByok?"":s.credential.source==="chatgpt_subscription"?"Subscription":Ts(s,t)?"Coding Plan key":"API key"}function kn(s,t){const a=t.modelCaches[s.id];if(s.routing.localByok&&s.enabled&&!s.credential.connected||!s.enabled&&s.id!=="openpond")return"";const n=Math.max(a?.models.length??0,s.modelIds.length),l=s.defaultModel?Ee(s.defaultModel,t,s.id):"",r=n===1?"1 model":`${n} models`,g=wn(s,t);return[As(s),g,a?r:"",l].filter(Boolean).join(" · ")}function Pn(s){return s!=="openpond"&&Ve(s)}function Qe(s){return s?yn.has(s.id)||s.credentialModes.some(t=>Nn.has(t)):!1}function Rn(s){return Qe(s)?["api","subscription"]:["api"]}function fs(s,t){return!s||!t||!Qe(s)?"api":s.credential.source==="chatgpt_subscription"||Ts(s,t)?"subscription":"api"}function xs(s,t){const a=it.filter(n=>!!s?.statuses[n]);return t?a.filter(n=>Qe(s?.statuses[n])):a}function In(s){if(!s)return"Never";const t=new Date(s);return Number.isNaN(t.getTime())?s:t.toLocaleString()}function Mn(s,t,a=bn){const n=[],l=new Set,r=new Set(t.map(o=>o.trim()).filter(Boolean)),g=o=>{l.has(o.value)||n.length>=a||(l.add(o.value),n.push(o))};for(const o of s)r.has(o.value)&&g(o);for(const o of s)g(o);return n}function Dn({account:s,codex:t,providers:a,providerBusy:n,validationMessage:l,deleteProviderCredential:r,loadProviderModels:g,refreshProviderModels:o,saveProviderConfig:x,saveProviderCredential:y,startOpenAiSubscriptionAuth:j,validateProvider:S}){const[p,d]=i.useState(null),[c,h]=i.useState(!1),b=i.useMemo(()=>xs(a,!1),[a]),f=i.useMemo(()=>xs(a,c),[a,c]),u=p?a?.statuses[p]??null:null;function w(k,C){d(k),C&&g(k)}return e.jsxs("section",{className:"account-settings",children:[e.jsx("h1",{children:"Providers"}),a?e.jsxs("div",{className:"provider-manager-panel",children:[e.jsxs("div",{className:"account-list-heading provider-manager-heading",children:[e.jsxs("div",{className:"provider-manager-title-row",children:[e.jsx("span",{children:"Model providers"}),e.jsxs("label",{className:"settings-check-row compact provider-subscription-filter",children:[e.jsx("input",{type:"checkbox",checked:c,onChange:k=>h(k.currentTarget.checked)}),e.jsx("span",{children:"Subscriptions"})]})]}),e.jsxs("small",{children:[f.length," of ",b.length," presets"]})]}),f.length>0?e.jsx("div",{className:"provider-manager-scroll",role:"list",children:f.map(k=>{const C=a.statuses[k],P=a.modelCaches[k],D=C.modelIds.length>0&&(P?.models.length??0)<C.modelIds.length,F=n?.startsWith(`${k}:`)??!1,m=Pn(k),N=k==="openpond"||!!a.providers[k]?.enabled;return e.jsxs("div",{className:"provider-manager-row",role:"listitem",children:[e.jsxs("label",{className:"provider-toggle","aria-label":`Enable ${C.displayName}`,children:[e.jsx("input",{type:"checkbox",checked:N,disabled:!m||F,onChange:v=>{w(k,!1),x(k,{enabled:v.currentTarget.checked})}}),e.jsx("span",{})]}),e.jsx("div",{className:"provider-row-main",children:e.jsx("strong",{children:C.displayName})}),e.jsxs("div",{className:`provider-row-status ${Es(C)}`,children:[F?e.jsx(te,{size:13,className:"settings-spin"}):null,e.jsx("span",{children:kn(C,a)})]}),e.jsx("button",{type:"button",className:"settings-secondary provider-details-button",onClick:()=>{w(k,D)},children:"Details"})]},k)})}):e.jsxs("div",{className:"empty-account-list provider-manager-empty",children:[e.jsx("strong",{children:"No subscription providers"}),e.jsx("span",{children:"Turn off the filter to show API-key providers."})]})]}):null,l?e.jsxs("div",{className:"settings-footnote provider-validation-message",children:[e.jsx("span",{children:"Last validation"}),e.jsx("strong",{children:l})]}):null,p&&u&&a?e.jsx(An,{account:s,codex:t,providerId:p,providerBusy:n,settings:a,status:u,onClose:()=>d(null),onDeleteCredential:r,onRefreshModels:o,onSaveConfig:x,onSaveCredential:y,onStartOpenAiSubscriptionAuth:j,onValidate:S}):null]})}function An({account:s,codex:t,providerId:a,providerBusy:n,settings:l,status:r,onClose:g,onDeleteCredential:o,onRefreshModels:x,onSaveConfig:y,onSaveCredential:j,onStartOpenAiSubscriptionAuth:S,onValidate:p}){const d=l.providers[a],c=l.modelCaches[a],h=i.useId(),b=i.useRef(a),f=Math.max(c?.models.length??0,r.modelIds.length),u=r.routing.localByok&&Ve(a)&&a!=="codex",w=i.useMemo(()=>u?Rn(r):[],[u,r]),k=w.includes("subscription"),[C,P]=i.useState(()=>fs(r,l)),D=u&&C==="subscription"&&k,F=N=>`${h}-${N}-panel`,m=a==="codex"?"Codex app server":d?.baseUrl??(a==="openpond"?s?.chatApiBaseUrl:null)??"Not set";return i.useEffect(()=>{if(b.current!==a){b.current=a,P(fs(r,l));return}u&&!w.includes(C)&&P("api")},[C,w,u,a,l,r]),e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",role:"presentation",onMouseDown:g,children:e.jsxs("section",{className:"git-dialog provider-details-dialog",role:"dialog","aria-modal":"true","aria-label":`${r.displayName} provider details`,onMouseDown:N=>N.stopPropagation(),children:[e.jsx("button",{className:"git-dialog-close",type:"button",title:"Close","aria-label":"Close",onClick:g,children:e.jsx(Oe,{size:16})}),e.jsxs("div",{className:"provider-dialog-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:r.displayName}),e.jsx("span",{children:ye(a,l)})]}),e.jsx("div",{className:`provider-state-pill ${Es(r)}`,children:As(r)})]}),u?e.jsx("div",{className:"surface-tabs provider-mode-tabs",role:"tablist","aria-label":`${r.displayName} mode`,children:w.map(N=>e.jsx("button",{type:"button",role:"tab",id:`${h}-${N}`,className:C===N?"active":void 0,"aria-selected":C===N,"aria-controls":F(N),onClick:()=>P(N),children:N==="api"?"API":"Subscription"},N))}):null,e.jsxs("dl",{className:"provider-dialog-stats",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Credential"}),e.jsx("dd",{title:ps(r),children:ps(r)})]}),D?null:e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Base URL"}),e.jsx("dd",{title:m,children:m})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{title:d?.defaultModel??r.defaultModel??void 0,children:d?.defaultModel??r.defaultModel??"Not set"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Models"}),e.jsxs("dd",{title:c?.lastError??void 0,children:[f," cached · ",In(c?.fetchedAt)]})]})]}),a==="codex"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Account"}),e.jsx("dd",{title:t?.account?.email??void 0,children:t?.account?.label??t?.account?.email??"Not signed in"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Binary"}),e.jsx("dd",{title:t?.binaryPath??void 0,children:t?.binaryPath??"Not found"})]})]}):null,r.credential.lastError||c?.lastError||r.lastError?e.jsxs("div",{className:"provider-dialog-error",children:[e.jsx("dt",{children:"Error"}),e.jsx("dd",{title:r.credential.lastError??c?.lastError??r.lastError??void 0,children:r.credential.lastError??c?.lastError??r.lastError})]}):null]}),a==="codex"?e.jsx(En,{providerBusy:n,status:r,onValidate:p}):u&&d&&c?e.jsx(Tn,{credentialTab:C,credentialTabsId:h,hasSubscriptionTab:k,providerId:a,providerBusy:n,settings:l,status:r,onDeleteCredential:o,onRefreshModels:x,onSaveConfig:y,onSaveCredential:j,onStartOpenAiSubscriptionAuth:S,onValidate:p}):r.routing.localByok&&!Ve(a)?e.jsxs("div",{className:"provider-dialog-note",children:[e.jsx(Cs,{size:15}),e.jsx("span",{children:"Adapter pending"})]}):null]})})}function En({providerBusy:s,status:t,onValidate:a}){const n=s==="codex:validate";return e.jsxs("div",{className:"provider-dialog-body codex-provider-body",children:[e.jsxs("div",{className:"provider-dialog-note codex-provider-note",children:[e.jsx(ie,{size:15}),e.jsxs("span",{children:["Uses your local ",e.jsx("code",{children:"codex login"})," session through the Codex app server. This route is separate from OpenAI Platform API-key billing."]})]}),e.jsx("div",{className:"settings-button-row codex-provider-actions",children:e.jsxs("button",{type:"button",className:"settings-secondary",disabled:n,onClick:()=>{a("codex",{modelId:t.defaultModel??void 0})},children:[n?e.jsx(te,{size:14,className:"settings-spin"}):e.jsx(ws,{size:14}),e.jsx("span",{children:n?"Testing":"Test Codex login"})]})})]})}function Tn({credentialTab:s,credentialTabsId:t,hasSubscriptionTab:a,providerId:n,providerBusy:l,settings:r,status:g,onDeleteCredential:o,onRefreshModels:x,onSaveConfig:y,onSaveCredential:j,onStartOpenAiSubscriptionAuth:S,onValidate:p}){const d=r.providers[n],c=i.useMemo(()=>ke(n,r),[n,r]),h=`provider-models-${n}`,b=i.useRef(n),[f,u]=i.useState(d.baseUrl??""),[w,k]=i.useState(d.defaultModel??""),[C,P]=i.useState(d.modelOverrides.join(`
3
- `)),[D,F]=i.useState({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),[m,N]=i.useState("local_secret"),[v,R]=i.useState(""),[A,L]=i.useState(""),G=l===`${n}:config`,W=l===`${n}:credential`,V=l===`${n}:validate`,M=l===`${n}:models`,U=l==="openai:credential",H=n==="openai",Q=n==="xai",ne=n==="zai",K=(z=>`${t}-${z}-panel`)(s),E=s==="subscription"&&a,B=s==="subscription"&&ne?"coding-plan":"api",ee=B==="coding-plan"?"Coding Plan key":"API key",le=g.credential.connected?B==="coding-plan"?"Replace saved plan key":"Replace saved key":ee,me=B==="coding-plan"?"Save plan key":"Save key",ge=i.useMemo(()=>Mn(c,[w,...gs(C)]),[w,c,C]),ue=Math.max(0,c.length-ge.length);i.useEffect(()=>{if(b.current!==n){b.current=n,F({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),u(d.baseUrl??""),k(d.defaultModel??""),P(d.modelOverrides.join(`
4
- `));return}D.baseUrl||u(d.baseUrl??""),D.defaultModel||k(d.defaultModel??""),D.modelOverrides||P(d.modelOverrides.join(`
5
- `))},[d.baseUrl,d.defaultModel,d.modelOverrides,D.baseUrl,D.defaultModel,D.modelOverrides,n]);const pe=m==="env"?!!A.trim():!!v.trim();async function fe(z){z.preventDefault(),await y(n,{enabled:!0,baseUrl:f.trim()||null,defaultModel:w.trim()||null,modelOverrides:gs(C)}),F({baseUrl:!1,defaultModel:!1,modelOverrides:!1})}async function xe(z){if(z.preventDefault(),!!pe){if(m==="env"){await j(n,{source:"env",envVar:A.trim()});return}await j(n,{source:"local_secret",value:v}),R("")}}function Y({panel:z=!0}={}){return e.jsxs("form",{className:"provider-credential-panel",id:z?K:void 0,role:z?"tabpanel":void 0,"aria-labelledby":z?`${t}-${s}`:void 0,onSubmit:Z=>{xe(Z)},children:[e.jsxs("div",{className:"provider-card-grid credential-grid",children:[e.jsxs("div",{className:"settings-select-field",children:[e.jsx("span",{children:"Credential source"}),e.jsx(we,{value:m,disabled:W,label:"Credential source",options:jn,onChange:Z=>N(Z)})]}),m==="env"?e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Environment variable"}),e.jsx("input",{value:A,disabled:W,placeholder:"PROVIDER_API_KEY",onChange:Z=>L(Z.currentTarget.value)})]}):e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:ee}),e.jsx("input",{type:"password",value:v,disabled:W,placeholder:le,autoComplete:"off",onChange:Z=>R(Z.currentTarget.value)})]})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{className:"settings-secondary",disabled:W||!pe,children:[W?e.jsx(te,{size:14,className:"settings-spin"}):e.jsx(ie,{size:14}),e.jsx("span",{children:W?"Saving":me})]}),e.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${g.displayName} credential`,disabled:W||!g.credential.connected,onClick:()=>{o(n)},children:e.jsx(He,{size:15})})]})]})}function ve(){return H?e.jsxs("div",{className:"provider-subscription-panel",id:K,role:"tabpanel","aria-labelledby":`${t}-subscription`,children:[e.jsxs("div",{className:"provider-dialog-note codex-provider-note",children:[e.jsx(ie,{size:15}),e.jsx("span",{children:"ChatGPT subscription auth opens OpenAI login and stores a refresh token locally. API keys remain available under the API tab for raw Platform billing."})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{type:"button",className:"settings-secondary",disabled:U,onClick:()=>{S("browser")},children:[U?e.jsx(te,{size:14,className:"settings-spin"}):e.jsx(ie,{size:14}),e.jsx("span",{children:U?"Opening":"Connect ChatGPT"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:U,onClick:()=>{S("device")},children:[U?e.jsx(te,{size:14,className:"settings-spin"}):e.jsx(ie,{size:14}),e.jsx("span",{children:"Device code"})]}),e.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${g.displayName} credential`,disabled:U||!g.credential.connected,onClick:()=>{o(n)},children:e.jsx(He,{size:15})})]})]}):Q?e.jsx("div",{className:"provider-subscription-panel",id:K,role:"tabpanel","aria-labelledby":`${t}-subscription`,children:e.jsxs("div",{className:"provider-dialog-note xai-provider-note",children:[e.jsx(ie,{size:15}),e.jsx("span",{children:"SuperGrok includes Grok app and Grok Build access. xAI API calls here still use an xAI Console API key with API credits or invoiced billing, so there is no separate Connect SuperGrok step yet."})]})}):ne?e.jsxs("div",{className:"provider-subscription-panel",id:K,role:"tabpanel","aria-labelledby":`${t}-subscription`,children:[e.jsxs("div",{className:"provider-dialog-note subscription-provider-note",children:[e.jsx(ie,{size:15}),e.jsx("span",{children:"GLM Coding Plan uses a plan API key with the dedicated Coding endpoint. General Z.ai API keys and balances are separate."})]}),Y({panel:!1})]}):null}return e.jsxs("div",{className:"provider-dialog-body",children:[E?null:e.jsxs("form",{className:"provider-card-form",onSubmit:z=>{fe(z)},children:[e.jsxs("div",{className:"provider-card-grid",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Base URL"}),e.jsx("input",{value:f,disabled:G,placeholder:"https://api.example.com/v1",onChange:z=>{F(Z=>({...Z,baseUrl:!0})),u(z.currentTarget.value)}})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Default model"}),e.jsx("input",{list:h,value:w,disabled:G,placeholder:"Model id",onChange:z=>{F(Z=>({...Z,defaultModel:!0})),k(z.currentTarget.value)}}),e.jsx("datalist",{id:h,children:ge.map(z=>e.jsx("option",{value:z.value,children:z.label},z.value))}),ue>0?e.jsxs("small",{children:[ue," more cached models hidden from suggestions"]}):null]})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{className:"settings-secondary",disabled:G,children:[G?e.jsx(te,{size:14,className:"settings-spin"}):e.jsx(Xe,{size:14}),e.jsx("span",{children:G?"Saving":"Save config"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:M,onClick:()=>{x(n)},children:[M?e.jsx(te,{size:14,className:"settings-spin"}):e.jsx(re,{size:14}),e.jsx("span",{children:M?"Refreshing":"Refresh models"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:V||!w.trim(),onClick:()=>{p(n,{baseUrl:f.trim()||void 0,modelId:w.trim()||void 0})},children:[V?e.jsx(te,{size:14,className:"settings-spin"}):e.jsx(ws,{size:14}),e.jsx("span",{children:V?"Testing":"Test"})]})]})]}),e.jsx("div",{className:"provider-card-form credential-form",children:E?ve():Y()})]})}function On({status:s,busy:t,flashTailscaleUp:a,refresh:n,enableRemoteAccess:l,disableRemoteAccess:r,copyRemoteLink:g,copyTailscaleUpCommand:o,copyServeCommand:x,copyServeSetupUrl:y,copyOperatorCommand:j,createRemoteLink:S}){const p=s?.tailscale.installed??!1,d=s?.serve.enabled??!1,c=s?.serve.reachable??!1,h=!!(s?.webUiAvailable&&p),b=d?!!s?.remoteWebUrl:h,u=(s?.tailscale.peers??[]).filter(C=>!C.isSelf),w=!!s?.tailscale.error?.includes("set --operator"),k=!!(d&&s?.remoteWebUrl);return e.jsxs("section",{className:"account-settings remote-access-settings",children:[e.jsx("h1",{children:"Remote access"}),e.jsxs("div",{className:"account-summary remote-access-summary",children:[e.jsxs("div",{className:"account-summary-main",children:[e.jsx("div",{className:`remote-access-icon ${c?"online":d?"configured":""}`,children:p?e.jsx(Rs,{size:18}):e.jsx(It,{size:18})}),e.jsxs("div",{children:[e.jsx("strong",{children:c?"Tailscale Serve is reachable":d?"Tailscale Serve is configured":"Tailscale Serve is off"}),e.jsx("small",{children:s?$n(s):"Checking Tailscale"})]})]}),e.jsxs("div",{className:"account-summary-actions",children:[e.jsx("button",{type:"button",className:"settings-icon-button",title:"Refresh remote access","aria-label":"Refresh remote access",disabled:t!==null,onClick:()=>{n()},children:e.jsx(re,{className:t==="refresh"?"settings-spin":"",size:15})}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:t!==null||!p||!d&&!h,onClick:()=>{d?r():l()},children:[e.jsx(Bt,{size:15}),e.jsx("span",{children:d?t==="disable"?"Turning off":"Turn off":t==="enable"?"Turning on":"Turn on"})]})]})]}),e.jsxs("div",{className:"account-list",children:[e.jsx("div",{className:"account-list-heading remote-access-link-heading",children:e.jsxs("div",{children:[e.jsx("span",{children:"OpenPond link"}),e.jsx("small",{children:k?"Browser UI":"Tailscale + Serve"})]})}),k&&e.jsx(oe,{label:"Remote URL",value:s?.remoteWebUrl??null,actionLabel:t==="copy-link"?"Copying":"Copy",disabled:!s?.remoteWebUrl||t!==null,onAction:g}),e.jsx(oe,{label:"Tailscale up",value:s?.tailscaleUpCommand??null,flash:a,actionLabel:t==="copy-up-command"?"Copying":"Copy",disabled:!s?.tailscaleUpCommand||t!==null,onAction:o}),e.jsx(oe,{label:"Serve command",value:s?.serveCommand??null,actionLabel:t==="copy-command"?"Copying":"Copy",disabled:!s?.serveCommand||t!==null,onAction:x}),s?.serve.setupUrl&&e.jsx(oe,{label:"Enable Serve",value:s.serve.setupUrl,actionLabel:t==="copy-serve-setup"?"Copying":"Copy",disabled:t!==null,onAction:y}),w&&e.jsx(oe,{label:"One-time setup",value:s?.operatorCommand??null,actionLabel:t==="copy-operator"?"Copying":"Copy",disabled:!s?.operatorCommand||t!==null,onAction:j}),e.jsx(oe,{label:"Local target",value:s?.localUrl??null}),s?.tailscale.authUrl&&e.jsx(oe,{label:"Tailscale login",value:s.tailscale.authUrl}),e.jsx(oe,{label:"Disable command",value:s?.disableCommand??null})]}),e.jsxs("div",{className:"account-list",children:[e.jsxs("div",{className:"account-list-heading remote-access-link-heading",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Authorized clients"}),e.jsxs("small",{children:[u.length," devices"]})]}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:t!==null||!b,onClick:()=>{S()},children:e.jsx("span",{children:d?"Copy link":"Create link"})})]}),s?u.length===0?e.jsxs("div",{className:"empty-account-list",children:[e.jsx("strong",{children:"No clients reported"}),e.jsx("span",{children:s?.tailscale.running?"Tailscale did not return peer devices.":"Tailscale is not running."})]}):u.map(C=>e.jsx(Un,{peer:C},C.id)):e.jsxs("div",{className:"empty-account-list",children:[e.jsx("strong",{children:"Checking clients"}),e.jsx("span",{children:"Loading tailnet devices."})]})]}),e.jsxs("div",{className:"account-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Remote environment"}),e.jsx("small",{children:s?.tailscale.tailnetName??"Tailnet"})]}),e.jsx(Ln,{status:s})]}),s?.serve.configText&&e.jsxs("div",{className:"remote-access-config",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Tailscale config"}),e.jsx("small",{children:s.serve.enabled?"OpenPond target found":"No OpenPond target"})]}),e.jsx("pre",{children:s.serve.configText})]})]})}function oe({actionLabel:s,disabled:t,flash:a,label:n,onAction:l,value:r}){return e.jsxs("div",{className:"product-row remote-access-value-row",children:[e.jsxs("div",{children:[e.jsx("strong",{className:a?"flash":void 0,children:n}),e.jsx("code",{children:r??"Not available"})]}),l&&e.jsx("button",{type:"button",className:"settings-secondary",disabled:t,onClick:()=>{l()},children:e.jsx("span",{children:s??"Copy"})})]})}function Ln({status:s}){const t=[{label:"State",value:s?.tailscale.backendState??"Unknown"},{label:"Machine",value:s?.tailscale.machineName??"Unknown"},{label:"Tailnet",value:s?.tailscale.tailnetName??"Unknown"}],a=[{label:"Tailscale IP",value:s?.tailscale.tailscaleIps.join(", ")||"Unknown"},{label:"HTTPS host",value:s?.serve.httpsHost??s?.tailscale.dnsName??"Unknown"}];return e.jsxs("div",{className:"remote-access-environment",children:[e.jsx("div",{className:"remote-access-environment-row three",children:t.map(n=>e.jsx(vs,{label:n.label,value:n.value},n.label))}),e.jsx("div",{className:"remote-access-environment-row two",children:a.map(n=>e.jsx(vs,{label:n.label,value:n.value},n.label))})]})}function vs({label:s,value:t}){return e.jsxs("div",{className:"remote-access-environment-cell",children:[e.jsx("strong",{children:s}),e.jsx("span",{children:t})]})}function Un({peer:s}){return e.jsxs("div",{className:"account-row remote-access-peer-row",children:[e.jsx("div",{className:`remote-access-peer-dot ${s.online?"online":""}`}),e.jsxs("div",{className:"account-details",children:[e.jsx("strong",{children:s.name}),e.jsx("span",{children:s.dnsName??s.tailscaleIps[0]??"No address"})]}),e.jsx("span",{className:`account-state ${s.online?"signed_in":""}`,children:s.online?"Online":"Offline"}),e.jsx("span",{className:"account-state",children:s.os??"Unknown"})]})}function $n(s){return s.tailscale.installed?s.tailscale.running?s.webUiAvailable?s.serve.reachable?s.remoteUrl??"Tailnet link ready":s.remoteUrl?`${s.remoteUrl} ready to configure`:"Tailnet DNS unavailable":"Browser UI is not served by this process":s.tailscale.authUrl?"Tailscale needs sign-in":"Tailscale is not running":"Tailscale is not installed"}const zn=[{items:[{section:"account",label:"Account",Icon:qt},{section:"notifications",label:"Notifications",Icon:Ps},{section:"providers",label:"Providers",Icon:ot},{section:"compute",label:"Compute",Icon:Mt},{section:"dataset-storage",label:"Dataset Storage",Icon:Ut},{section:"usage",label:"Activity",Icon:ct},{section:"defaults",label:"Defaults",Icon:Is}]},{label:"Harness",items:[{section:"profile",label:"My Profile",Icon:dt},{section:"skills",label:"Skills",Icon:Je},{section:"goals",label:"Goals",Icon:as},{section:"context",label:"Context",Icon:ut},{section:"insights",label:"Insights",Icon:ht},{section:"training",label:"Training",Icon:ts},{section:"subagents",label:"Subagents",Icon:ts}]},{items:[{section:"editor",label:"Editor",Icon:Ot},{section:"remote",label:"Remote",Icon:Rs},{section:"personalization",label:"Personalization",Icon:mt},{section:"diagnostics",label:"Diagnostics",Icon:as}]}];function Bn({section:s,onBack:t,onSectionChange:a}){return e.jsxs("aside",{className:"settings-sidebar",children:[e.jsxs("button",{className:"settings-back",onClick:t,children:[e.jsx(rt,{size:15}),e.jsx("span",{children:"Back to app"})]}),e.jsx("nav",{className:"settings-nav","aria-label":"Settings",children:zn.map((n,l)=>e.jsxs("div",{className:"settings-nav-group",children:[n.label?e.jsx("div",{className:"settings-nav-heading",children:n.label}):null,n.items.map(({section:r,label:g,Icon:o})=>e.jsxs("button",{className:`settings-nav-item ${s===r?"active":""}`,onClick:()=>a(r),children:[e.jsx(o,{size:16}),e.jsx("span",{children:g})]},r))]},n.label??`settings-${l}`))})]})}function _n({catalog:s,connection:t,onCatalog:a,onError:n,onOpenExtension:l,onToast:r}){const[g,o]=i.useState(""),[x,y]=i.useState(""),[j,S]=i.useState(null),[p,d]=i.useState(null),[c,h]=i.useState(null),b=i.useCallback(m=>{const N=m instanceof Error?m.message:String(m);h(N),n(N),r?.(N,"error")},[n,r]),f=i.useCallback(()=>{h(null),n(null)},[n]),u=i.useCallback(async m=>{if(m?.preventDefault(),!(!t||!g.trim()||p)){f(),d("preview");try{const N=await O.extensionPreview(t,{source:g.trim(),...x.trim()?{ref:x.trim()}:{}});S(N)}catch(N){S(null),b(N)}finally{d(null)}}},[p,f,t,b,x,g]),w=i.useCallback(async()=>{if(!(!t||!j||p)){f(),d("install");try{const m=await O.extensionAdd(t,{source:j.repositoryUrl,ref:j.requestedRef});a(m.catalog),o(""),y(""),S(null),r?.(`Installed ${m.extension.owner}/${m.extension.repo}.`,"success")}catch(m){b(m)}finally{d(null)}}},[p,f,t,a,r,j,b]),k=i.useCallback(async m=>{if(!(!t||p)){f(),d(`update:${m.id}`);try{const N=await O.extensionUpdate(t,m);a(N.catalog);const v=N.extension.resolvedCommit===m.resolvedCommit&&N.extension.packageHash===m.packageHash;r?.(v?`${m.owner}/${m.repo} is already current.`:`Updated ${m.owner}/${m.repo}.`,"success")}catch(N){b(N)}finally{d(null)}}},[p,f,t,a,r,b]),C=i.useCallback(async()=>{if(!(!t||p||s.extensions.length===0)){f(),d("update-all");try{const m=await O.extensionUpdateAll(t);a(m.catalog);const N=`Updated ${m.updated.length}; ${m.unchanged.length} already current${m.failed.length?`; ${m.failed.length} failed`:""}.`;r?.(N,m.failed.length?"error":"success"),m.failed.length&&h(m.failed.map(v=>v.error).join(" "))}catch(m){b(m)}finally{d(null)}}},[p,s.extensions.length,f,t,a,r,b]),P=i.useCallback(async m=>{if(!(!t||p)&&window.confirm(`Remove ${m.owner}/${m.repo} and its ${m.skills.length} installed skill${m.skills.length===1?"":"s"}? Profile and built-in skills will not be changed.`)){f(),d(`remove:${m.id}`);try{const N=await O.extensionRemove(t,m);a(N.catalog),r?.(`Removed ${m.owner}/${m.repo}.`,"success")}catch(N){b(N)}finally{d(null)}}},[p,f,t,a,r,b]),D=i.useCallback(m=>{o(m),S(null),h(null)},[]),F=i.useCallback(m=>{y(m),S(null),h(null)},[]);return e.jsxs("div",{className:"account-list native-skills-list github-extensions-list",children:[e.jsxs("div",{className:"account-list-heading github-extensions-heading",children:[e.jsx("span",{children:"Third-party extensions"}),e.jsxs("div",{className:"github-extensions-heading-actions",children:[e.jsxs("small",{children:[s.extensions.length," installed from GitHub"]}),e.jsxs("button",{className:"settings-secondary compact",disabled:!t||p!==null||s.extensions.length===0,type:"button",onClick:()=>{C()},children:[p==="update-all"?e.jsx(te,{className:"settings-spin",size:13}):e.jsx(re,{size:13}),"Update all"]})]})]}),e.jsxs("form",{className:"github-extension-add",onSubmit:m=>{u(m)},children:[e.jsxs("div",{className:"github-extension-add-copy",children:[e.jsx("strong",{children:"Add a GitHub skill pack"}),e.jsx("span",{children:"Use a skills-CLI-compatible owner/repo or GitHub URL. OpenPond installs it locally without running setup code."})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Repository"}),e.jsx("input",{disabled:!t||p!==null,placeholder:"owner/repo",value:g,onChange:m=>D(m.target.value)})]}),e.jsxs("label",{className:"github-extension-ref-input",children:[e.jsx("span",{children:"Branch, tag, or SHA"}),e.jsx("input",{disabled:!t||p!==null,placeholder:"Default branch",value:x,onChange:m=>F(m.target.value)})]}),e.jsxs("button",{className:"settings-secondary",disabled:!t||!g.trim()||p!==null,type:"submit",children:[p==="preview"?e.jsx(te,{className:"settings-spin",size:14}):e.jsx(ns,{size:14}),p==="preview"?"Checking":"Preview"]})]}),c||s.error?e.jsx("div",{className:"github-extension-message error",role:"alert",children:c??s.error}):null,j?e.jsxs("div",{className:"github-extension-preview",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:[j.owner,"/",j.repo]}),e.jsxs("span",{children:[j.skills.length," skill",j.skills.length===1?"":"s"," at ",j.resolvedCommit.slice(0,12)]})]}),e.jsx("div",{className:"github-extension-preview-skills",children:j.skills.map(m=>e.jsx("span",{children:m.name},m.relativePath))}),e.jsxs("button",{className:"settings-secondary",disabled:p!==null,type:"button",onClick:()=>{w()},children:[p==="install"?e.jsx(te,{className:"settings-spin",size:14}):e.jsx(Le,{size:14}),p==="install"?"Installing":"Install extension"]})]}):null,s.extensions.length?s.extensions.map(m=>{const N=p===`update:${m.id}`,v=p===`remove:${m.id}`;return e.jsxs("div",{className:"github-extension-row",children:[e.jsxs("button",{"aria-label":`Open ${m.owner}/${m.repo} extension source`,className:"github-extension-open",disabled:!t||p!==null,type:"button",onClick:()=>l(m),children:[e.jsx("span",{className:"native-skill-icon","aria-hidden":"true",children:e.jsx(ns,{size:17})}),e.jsxs("span",{className:"native-skill-identity",children:[e.jsxs("strong",{children:[m.owner,"/",m.repo]}),e.jsx("span",{children:m.skills.map(R=>R.name).join(", ")})]}),e.jsxs("span",{className:"native-skill-provider",children:[e.jsxs("strong",{children:[m.skills.length," skill",m.skills.length===1?"":"s"]}),e.jsxs("span",{children:[m.requestedRef," · ",m.resolvedCommit.slice(0,12)]})]}),e.jsx("span",{className:`native-skill-status ${m.validationStatus==="valid"?"":"invalid"}`,children:m.validationStatus==="valid"?"Ready":"Needs attention"}),e.jsx(ks,{size:16,"aria-hidden":"true"})]}),e.jsxs("span",{className:"github-extension-row-actions",children:[e.jsx("button",{"aria-label":`Update ${m.owner}/${m.repo}`,className:"settings-icon-button ghost",disabled:p!==null,title:"Update extension",type:"button",onClick:()=>{k(m)},children:N?e.jsx(te,{className:"settings-spin",size:14}):e.jsx(re,{size:14})}),e.jsx("button",{"aria-label":`Remove ${m.owner}/${m.repo}`,className:"settings-icon-button ghost danger",disabled:p!==null,title:"Remove extension",type:"button",onClick:()=>{P(m)},children:v?e.jsx(te,{className:"settings-spin",size:14}):e.jsx(He,{size:14})})]})]},m.id)}):e.jsx("div",{className:"skills-settings-empty",children:"No third-party extensions installed."})]})}function Fn({onOpenSkill:s,onOpenExtension:t,personalSkills:a,extensionCatalog:n,connection:l,onExtensionCatalog:r,onError:g,onToast:o}){return e.jsxs("section",{className:"account-settings skills-settings","aria-labelledby":"skills-settings-title",children:[e.jsx("header",{className:"skills-settings-header",children:e.jsxs("div",{children:[e.jsx("h1",{id:"skills-settings-title",children:"Skills"}),e.jsx("p",{children:"Install third-party GitHub packs, inspect personal Codex skills, and view instructions bundled with OpenPond."})]})}),e.jsx(_n,{catalog:n,connection:l,onCatalog:r,onError:g,onOpenExtension:t,onToast:o}),e.jsxs("div",{className:"account-list native-skills-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Personal Codex skills"}),e.jsx("small",{children:"Discovered from your local Codex skills folder"})]}),a.length?a.map(x=>e.jsxs("div",{className:"native-skill-row personal-skill-row",children:[e.jsx("span",{className:"native-skill-icon","aria-hidden":"true",children:e.jsx(Je,{size:17})}),e.jsxs("span",{className:"native-skill-identity",children:[e.jsx("strong",{children:x.name}),e.jsx("span",{children:x.description||"Packaged Codex skill"})]}),e.jsxs("span",{className:"native-skill-provider",children:[e.jsx("strong",{children:x.resourceFiles.length?`${x.resourceFiles.length} packaged resource${x.resourceFiles.length===1?"":"s"}`:"Instructions only"}),e.jsx("span",{children:x.sourcePath})]}),e.jsx("span",{className:`native-skill-status ${x.validationStatus==="valid"?"":"invalid"}`,children:x.validationStatus==="valid"?"Ready":"Needs attention"}),e.jsx("span",{"aria-hidden":"true"})]},x.sourcePath)):e.jsx("div",{className:"skills-settings-empty",children:"No personal Codex skills found."})]}),e.jsxs("div",{className:"account-list native-skills-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"App integration skills"}),e.jsx("small",{children:"Bundled with this OpenPond build"})]}),gt.map(x=>{const y=pt(x.provider)?.label??x.provider;return e.jsxs("button",{className:"native-skill-row",type:"button",onClick:()=>s(x),children:[e.jsx("span",{className:"native-skill-icon","aria-hidden":"true",children:e.jsx(Je,{size:17})}),e.jsxs("span",{className:"native-skill-identity",children:[e.jsx("strong",{children:x.name}),e.jsx("span",{children:x.description})]}),e.jsxs("span",{className:"native-skill-provider",children:[e.jsx("strong",{children:y}),e.jsx("span",{children:x.path})]}),e.jsx("span",{className:"native-skill-status",children:"Built in"}),e.jsx(ks,{size:16,"aria-hidden":"true"})]},x.name)})]})]})}const es="default";function Gn({connection:s,embedded:t=!1,onError:a,onPreferences:n,preferences:l,providers:r}){const g=l.training,[o,x]=i.useState(We(g.defaultModelRef)),[y,j]=i.useState(g.creationMode),[S,p]=i.useState(g.autoApproveEvidence),[d,c]=i.useState(!1),h=i.useMemo(()=>Ze(r,{includeUnavailable:!0}),[r]),b=i.useMemo(()=>h.map(C=>({provider:C,models:ke(C.value,r)})).filter(C=>C.models.length>0),[h,r]),f=qn(o),u=ft(l.defaultChatProvider,l.defaultChatModel,r)?` · ${Wn(l.codexReasoningEffort)} reasoning`:"",w=Kn(f,g.defaultModelRef??null)&&y===g.creationMode&&S===g.autoApproveEvidence;i.useEffect(()=>{x(We(g.defaultModelRef)),j(g.creationMode),p(g.autoApproveEvidence)},[l.defaultChatModel,l.defaultChatProvider,g.autoApproveEvidence,g.creationMode,g.defaultModelRef]);async function k(C){if(C.preventDefault(),!!s){c(!0),a(null);try{n(await O.savePreferences(s,{training:{defaultModelRef:f,creationMode:y,autoApproveEvidence:S}}))}catch(P){a(P instanceof Error?P.message:String(P))}finally{c(!1)}}}return e.jsxs("section",{className:`account-settings training-settings${t?" embedded":""}`,children:[t?null:e.jsx("h1",{children:"Training"}),e.jsxs("form",{className:"provider-settings-form",onSubmit:C=>{k(C)},children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Taskset authoring"}),e.jsx("small",{children:"The coding model that proposes tasks, graders, fixtures, and policy boundaries"})]}),e.jsx("div",{className:"provider-settings-grid single",children:e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Authoring model"}),e.jsxs("select",{value:o,disabled:d,onChange:C=>x(C.target.value),children:[e.jsxs("option",{value:es,children:["Use chat default — ",ye(l.defaultChatProvider,r)," · ",Ee(l.defaultChatModel,r,l.defaultChatProvider),u]}),b.map(C=>e.jsx("optgroup",{label:C.provider.label,children:C.models.map(P=>e.jsx("option",{value:We({providerId:C.provider.value,modelId:P.value}),children:P.label},P.value))},C.provider.value))]}),e.jsx("small",{children:"By default, /train follows the same provider, model, and reasoning level selected for chat."})]})}),e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Default flow"}),e.jsx("small",{children:"Used by /train and Task Creator unless you choose another mode"})]}),e.jsx("div",{className:"provider-settings-grid single",children:e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Task Creator mode"}),e.jsxs("select",{value:y,disabled:d,onChange:C=>j(C.target.value),children:[e.jsx("option",{value:"customize",children:"Guided plan — review and revise before materializing"}),e.jsx("option",{value:"defaults",children:"Fast draft — use reversible defaults"})]})]})}),e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Evidence confirmation"}),e.jsx("small",{children:"Controls the first authoring gate; materialization and training remain separate"})]}),e.jsxs("label",{className:"settings-check-row",children:[e.jsx("input",{type:"checkbox",checked:S,disabled:d,onChange:C=>p(C.target.checked)}),e.jsxs("span",{children:[e.jsx("strong",{children:"Skip evidence confirmation"}),e.jsx("small",{children:"Immediately send excerpts from explicitly selected chats to the authoring model. This never approves Taskset materialization or training spend."})]})]}),e.jsx("button",{className:"settings-primary",disabled:d||w,children:e.jsx("span",{children:d?"Saving":"Save training settings"})})]}),e.jsxs("div",{className:"settings-footnote",children:[e.jsx("span",{children:"Authoring model"}),e.jsx("strong",{children:f?`${ye(f.providerId,r)} / ${Ee(f.modelId,r,f.providerId)}`:"Chat default"})]}),e.jsxs("div",{className:"settings-footnote",children:[e.jsx("span",{children:"Safety boundary"}),e.jsx("strong",{children:"Taskset and training approvals always required"})]})]})}function We(s){return s?JSON.stringify([s.providerId,s.modelId]):es}function qn(s){if(s===es)return null;try{const t=JSON.parse(s);return!Array.isArray(t)||t.length!==2||typeof t[0]!="string"||typeof t[1]!="string"?null:{providerId:t[0],modelId:t[1]}}catch{return null}}function Wn(s){return`${s.slice(0,1).toUpperCase()}${s.slice(1)}`}function Kn(s,t){return s?.providerId===t?.providerId&&s?.modelId===t?.modelId}function Os({disabled:s,onChange:t,purpose:a="model",storageRoots:n,value:l}){const r=i.useId(),[g,o]=i.useState(!1),x=js(l),y=p=>a==="dataset"?p.datasetStorePath:p.modelStorePath,j=a==="dataset"?"Dataset":"Model",S=n.find(p=>js(y(p))===x)??null;return e.jsxs("div",{className:"model-storage-picker",children:[e.jsxs("label",{className:"model-storage-label",htmlFor:r,children:[j," storage"]}),e.jsxs("div",{className:"model-storage-control-row",children:[e.jsxs("select",{"aria-label":`${j} storage drive`,className:"model-storage-select",disabled:s,id:r,title:l??`No ${a} storage configured`,value:l??"",onChange:p=>t(p.target.value||null),children:[e.jsx("option",{value:"",children:"Not configured"}),l&&!S?e.jsx("option",{value:l,children:"Manual location"}):null,n.map(p=>e.jsxs("option",{disabled:!p.mounted||!p.writable,title:y(p),value:y(p),children:[p.label," · ",Yn(p.kind)," · ",Zn(p)]},p.id))]}),e.jsx("button",{className:"settings-icon-button model-storage-add",disabled:s,type:"button",title:"Add manual location","aria-label":`Add manual ${a} storage location`,onClick:()=>o(!0),children:e.jsx(Le,{size:15})})]}),g?Vn(e.jsx(Hn,{initialPath:l??"",purpose:a,onClose:()=>o(!1),onUse:p=>{t(p),o(!1)}})):null]})}function Vn(s){return typeof document>"u"?s:Dt.createPortal(s,document.body)}function Hn({initialPath:s,onClose:t,onUse:a,purpose:n="model"}){const l=i.useId(),[r,g]=i.useState(s),o=Jn(r);i.useEffect(()=>{const y=j=>{j.key==="Escape"&&t()};return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[t]);function x(y){y.preventDefault(),y.stopPropagation(),!o&&a(r.trim())}return e.jsx("div",{className:"git-dialog-backdrop",role:"presentation",onMouseDown:y=>{y.target===y.currentTarget&&t()},children:e.jsxs("form",{className:"git-dialog model-storage-dialog",role:"dialog","aria-modal":"true","aria-labelledby":l,onSubmit:x,children:[e.jsx("button",{className:"git-dialog-close",type:"button",title:"Close","aria-label":`Close manual ${n} storage`,onClick:t,children:e.jsx(Oe,{size:15})}),e.jsx("div",{className:"git-dialog-icon",children:e.jsx(xt,{size:18})}),e.jsxs("h2",{id:l,children:["Manual ",n," storage"]}),e.jsx("p",{children:"Enter an absolute path to a folder mounted on this machine."}),e.jsxs("label",{className:"git-dialog-field",children:[e.jsx("span",{children:"Mounted folder path"}),e.jsx("input",{autoFocus:!0,spellCheck:!1,value:r,placeholder:n==="dataset"?"/mnt/OpenPond/datasets":"/mnt/models or /run/user/…/gvfs/…",onChange:y=>g(y.target.value)})]}),e.jsx("div",{className:"model-storage-dialog-note",children:"For SMB, connect the share in Files or Finder first, then paste its mounted folder path. OpenPond uses your operating system’s existing connection and credentials."}),r.trim()&&o?e.jsx("div",{className:"profile-dialog-warning",children:o}):null,e.jsxs("div",{className:"git-dialog-footer",children:[e.jsx("button",{className:"git-dialog-secondary",type:"button",onClick:t,children:"Cancel"}),e.jsx("button",{className:"git-dialog-primary",disabled:!!o,type:"submit",children:"Use location"})]})]})})}function Jn(s){const t=s.trim();return t?/^[a-z][a-z\d+.-]*:\/\//i.test(t)?"Use the mounted folder path, not an smb:// or other network URL.":t==="~"||t.startsWith("~/")||t.startsWith("/")||t.startsWith("\\\\")||/^[a-z]:[\\/]/i.test(t)?null:"Enter an absolute mounted folder path.":"Enter a mounted folder path."}function Yn(s){return s==="network"?"Network":s==="removable"?"Removable":s==="cache"?"Cache":"Local"}function Zn(s){return s.mounted?s.writable?`${Xn(s.freeBytes)} free`:"Read only":"Not mounted"}function js(s){const t=(s??"").trim().replace(/[\\/]+$/,"");return/^(?:[a-z]:[\\/]|\\\\)/i.test(t)?t.toLowerCase():t}function Xn(s){if(s==null)return"Unknown";if(s<1024)return`${s} B`;const t=["KB","MB","GB","TB"];let a=s,n=-1;do a/=1024,n+=1;while(a>=1024&&n<t.length-1);return`${a>=10?a.toFixed(0):a.toFixed(1)} ${t[n]}`}function Qn({state:s,busy:t,title:a="Compute",onScan:n,onSave:l,onDownloadSmolLm2:r,onCancelDownload:g}){const o=s?.inventory??null,[x,y]=i.useState(s?.settings.modelStorePath??null),[j,S]=i.useState(s?.settings.defaultDeviceIds[0]??"automatic");i.useEffect(()=>{y(s?.settings.modelStorePath??null)},[s?.settings.modelStorePath]),i.useEffect(()=>{S(s?.settings.defaultDeviceIds[0]??"automatic")},[s?.settings.defaultDeviceIds]);const p=x===(s?.settings.modelStorePath??null)&&j===(s?.settings.defaultDeviceIds[0]??"automatic"),d=i.useMemo(()=>o?.devices.filter(u=>u.kind!=="cpu"&&u.available)??[],[o?.devices]),c=o?.models.find(u=>u.modelId==="HuggingFaceTB/SmolLM2-135M-Instruct")??null,h=[...o?.downloads??[]].reverse().find(u=>u.modelId==="HuggingFaceTB/SmolLM2-135M-Instruct")??null,b=!!(h&&["queued","downloading","verifying","cancelling"].includes(h.status));async function f(u){u.preventDefault(),await l(x,s?.settings.datasetStorePath??null,j==="automatic"?[]:[j])}return e.jsxs("section",{className:"account-settings compute-settings",children:[e.jsxs("div",{className:"compute-title-row",children:[e.jsx("h1",{children:a}),e.jsx("button",{className:"settings-icon-button",type:"button",title:"Scan compute","aria-label":"Scan compute",disabled:t!==null,onClick:()=>{n()},children:e.jsx(re,{size:15,className:t==="scan"?"settings-spin":void 0})})]}),e.jsx("div",{className:"account-summary",children:e.jsx("div",{className:"account-summary-main compute-summary-main",children:e.jsxs("div",{children:[e.jsx("strong",{children:o?`${o.host.operatingSystem} · ${o.host.architecture}`:t==="load"?"Loading this machine":"This machine has not been scanned"}),e.jsx("small",{children:o?`${o.devices.length} device${o.devices.length===1?"":"s"} · ${Ce(o.host.totalMemoryBytes)} memory · scanned ${na(o.scannedAt)}`:"Run a bounded native scan to discover local training capabilities."})]})})}),e.jsxs("form",{className:"provider-settings-form",onSubmit:u=>{f(u)},children:[e.jsx("div",{className:"account-list-heading",children:e.jsx("span",{children:"Defaults"})}),e.jsx(Os,{disabled:t!==null,storageRoots:o?.storageRoots??[],value:x,onChange:y}),e.jsx("div",{className:"provider-settings-grid single compute-device-default",children:e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Default device"}),e.jsxs("select",{value:j,disabled:t!==null,onChange:u=>S(u.target.value),children:[e.jsx("option",{value:"automatic",children:"Automatic"}),d.map(u=>e.jsx("option",{value:u.id,children:u.name},u.id))]})]})}),e.jsx("button",{className:"settings-primary",disabled:t!==null||p,children:t==="save"?"Saving":"Save compute settings"})]}),e.jsx(bs,{title:"Devices",empty:"No devices discovered",rows:(o?.devices??[]).map(u=>({id:u.id,title:u.name,detail:ea(u),meta:u.available?"Available":u.unavailableReason??"Unavailable"}))}),e.jsx(bs,{title:"Runtimes",empty:"No runtimes discovered",rows:(o?.runtimes??[]).map(u=>({id:u.id,title:sa(u.kind),detail:u.version??u.detail??"Not installed",meta:u.state==="available"?"Available":"Unavailable"}))}),e.jsxs("div",{className:"account-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Models"}),e.jsxs("div",{className:"compute-heading-actions",children:[b&&h?e.jsx("button",{type:"button",className:"settings-secondary",disabled:h.status==="cancelling",onClick:()=>{g(h.id)},children:h.status==="cancelling"?"Cancelling":"Cancel"}):c?null:e.jsx("button",{type:"button",className:"settings-secondary",disabled:!s?.settings.modelStorePath,onClick:()=>{r()},children:"Download SmolLM2"}),e.jsx("small",{children:o?.models.length??0})]})]}),h&&!c?e.jsxs("div",{className:"compute-download-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"SmolLM2 135M Instruct"}),e.jsx("small",{children:h.status==="failed"?h.error:`${ta(h.status)} · ${Ce(h.downloadedBytes)} of ${Ce(h.expectedBytes)} · Apache-2.0`})]}),e.jsx("progress",{max:h.expectedBytes,value:h.downloadedBytes})]}):null,o?.models.length?o.models.map(u=>e.jsxs("div",{className:"compute-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:u.name}),e.jsxs("small",{children:[u.source," · ",u.format," · ",Ce(u.sizeBytes)]})]}),e.jsx("span",{children:u.trainingCompatible?"Trainable":u.inferenceCompatible?"Inference only":"Unsupported"})]},u.id)):h?null:e.jsx("div",{className:"empty-account-list",children:e.jsx("span",{children:"No recognized local models"})})]}),o?.warnings.length?e.jsxs("details",{className:"compute-diagnostics",children:[e.jsx("summary",{children:"Diagnostics"}),e.jsx("ul",{children:o.warnings.map(u=>e.jsx("li",{children:u},u))})]}):null]})}function bs({title:s,empty:t,rows:a}){return e.jsxs("div",{className:"account-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:s}),e.jsx("small",{children:a.length})]}),a.length?a.map(n=>e.jsxs("div",{className:"compute-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:n.title}),e.jsx("small",{children:n.detail})]}),e.jsx("span",{children:n.meta})]},n.id)):e.jsx("div",{className:"empty-account-list",children:e.jsx("span",{children:t})})]})}function ea(s){return[s.vendor,s.kind,s.totalMemoryBytes?Ce(s.totalMemoryBytes):null,s.computeCapability?`compute ${s.computeCapability}`:null].filter(Boolean).join(" · ")}function sa(s){return s==="trl_peft"?"TRL / PEFT":s.toUpperCase()}function ta(s){return s.replaceAll("_"," ").replace(/^./,t=>t.toUpperCase())}function na(s){const t=new Date(s);return Number.isNaN(t.valueOf())?s:t.toLocaleString()}function Ce(s){if(s==null)return"Unknown";if(s<1024)return`${s} B`;const t=["KB","MB","GB","TB"];let a=s,n=-1;do a/=1024,n+=1;while(a>=1024&&n<t.length-1);return`${a>=10?a.toFixed(0):a.toFixed(1)} ${t[n]}`}function aa({state:s,catalog:t,busy:a,catalogLoading:n,onRefresh:l,onSave:r}){const[g,o]=i.useState(s?.settings.datasetStorePath??null);i.useEffect(()=>{o(s?.settings.datasetStorePath??null)},[s?.settings.datasetStorePath]);const x=i.useMemo(()=>s?.inventory?.storageRoots.find(p=>ys(p.datasetStorePath)===ys(g))??null,[g,s?.inventory?.storageRoots]),y=g===(s?.settings.datasetStorePath??null),j=t?.datasets??[];async function S(p){p.preventDefault(),await r(g)}return e.jsxs("section",{className:"account-settings compute-settings dataset-storage-settings",children:[e.jsxs("div",{className:"compute-title-row",children:[e.jsxs("div",{children:[e.jsx("h1",{children:"Dataset Storage"}),e.jsx("p",{className:"dataset-storage-intro",children:"Choose where Dataset artifacts are saved and review registered Datasets without loading their rows."})]}),e.jsx("button",{"aria-label":"Refresh Dataset storage",className:"settings-icon-button",disabled:a!==null||n,onClick:()=>{l()},title:"Refresh Dataset storage",type:"button",children:e.jsx(re,{className:n?"settings-spin":void 0,size:15})})]}),e.jsx("div",{className:"account-summary",children:e.jsx("div",{className:"account-summary-main compute-summary-main",children:e.jsxs("div",{children:[e.jsx("strong",{children:x?.label??(g?"Manual location":"Not configured")}),e.jsx("small",{children:g??"Choose a writable local or mounted location before importing a Dataset."}),x?e.jsxs("small",{children:[oa(x.kind)," · ",x.freeBytes==null?"Free space unknown":`${Ls(x.freeBytes)} free`]}):null]})})}),e.jsxs("form",{className:"provider-settings-form",onSubmit:p=>{S(p)},children:[e.jsx("div",{className:"account-list-heading",children:e.jsx("span",{children:"Location"})}),e.jsx(Os,{disabled:a!==null,onChange:o,purpose:"dataset",storageRoots:s?.inventory?.storageRoots??[],value:g}),e.jsx("button",{className:"settings-primary",disabled:a!==null||y,children:a==="save"?"Saving":"Save Dataset storage"})]}),e.jsxs("div",{className:"account-list dataset-storage-list",children:[e.jsxs("div",{className:"account-list-heading",children:[e.jsx("span",{children:"Registered Datasets"}),e.jsx("small",{children:j.length})]}),j.length?j.map(p=>e.jsx(la,{dataset:p},p.tasksetId)):e.jsx("div",{className:"empty-account-list",children:e.jsx("span",{children:n?"Loading registered Datasets":"No registered Datasets"})})]})]})}function la({dataset:s}){const t=s.storageKind==="parquet"?"Parquet":"Inline Taskset";return e.jsxs("div",{className:"compute-row dataset-storage-row",children:[e.jsxs("div",{children:[e.jsx("strong",{children:s.name}),e.jsxs("small",{children:[Us(s.rowCount)," rows"," · ",ia(s)," · ",t," · ",s.sizeBytes==null?"Size unavailable":Ls(s.sizeBytes)]}),!s.available&&s.unavailableReason?e.jsx("small",{className:"dataset-storage-error",children:s.unavailableReason}):null]}),e.jsx("span",{children:s.available?ra(s.status):"Unavailable"})]})}function ia(s){return[["train",s.splitCounts.train],["validation",s.splitCounts.validation],["test",s.splitCounts.test],["frozen eval",s.splitCounts.frozen_eval]].filter(([,a])=>Number(a)>0).map(([a,n])=>`${Us(Number(n))} ${a}`).join(" · ")||"No split rows"}function Ls(s){if(s<1024)return`${s} B`;const t=["KB","MB","GB","TB"];let a=s,n=-1;do a/=1024,n+=1;while(a>=1024&&n<t.length-1);return`${a>=10?a.toFixed(0):a.toFixed(1)} ${t[n]}`}function Us(s){return new Intl.NumberFormat().format(s)}function ys(s){return s?.replace(/[\\/]+$/,"")??""}function ra(s){return s.replaceAll("_"," ").replace(/^./,t=>t.toUpperCase())}function oa(s){return s.replace(/^./,t=>t.toUpperCase())}function ca({connection:s,onError:t,onPayload:a}){const[n,l]=i.useState(""),[r,g]=i.useState(!1),[o,x]=i.useState(!1);i.useEffect(()=>{s||l("")},[s]);async function y(d,c){if(s){g(!0),t(null);try{const h=await O.switchOpenPondAccount(s,{handle:d,baseUrl:c??null}),b=await O.savePreferences(s,{defaultTeamId:null});a({...h,preferences:b.preferences})}catch(h){t(h instanceof Error?h.message:String(h))}finally{g(!1)}}}async function j(d){if(d.preventDefault(),!(!s||!n.trim())){g(!0),t(null);try{const c=await O.saveOpenPondAccount(s,{apiKey:n.trim(),setActive:!0}),h=await O.savePreferences(s,{defaultTeamId:null});a({...c,preferences:h.preferences}),l("")}catch(c){t(c instanceof Error?c.message:String(c))}finally{g(!1)}}}async function S(d){if(!(!s||!d.apiKey.trim())){g(!0),t(null);try{const c=d.handle?.trim(),h=d.environment?.trim(),b=await O.saveOpenPondAccount(s,{apiKey:d.apiKey.trim(),handle:c||void 0,baseUrl:d.baseUrl,apiBaseUrl:d.apiBaseUrl,environment:h||"custom",setActive:!0}),f=await O.savePreferences(s,{defaultTeamId:null});a({...b,preferences:f.preferences}),l("")}catch(c){throw t(c instanceof Error?c.message:String(c)),c}finally{g(!1)}}}async function p(){if(s){x(!0),t(null);try{a(await O.refreshOpenPondAccounts(s))}catch(d){t(d instanceof Error?d.message:String(d))}finally{x(!1)}}}return{apiKey:n,refreshingAccounts:o,saving:r,refreshAccounts:p,saveAccount:j,saveEnvironmentAccount:S,setApiKey:l,switchAccount:y}}function da({connection:s,onError:t,onPreferences:a,preferences:n,providers:l}){const[r,g]=i.useState(n.defaultBranchPrefix),[o,x]=i.useState(n.defaultNewProjectDirectory),[y,j]=i.useState(n.goalStorageLocation),[S,p]=i.useState(n.advancedWorkspaceControls),[d,c]=i.useState(n.contextCompaction.autoEnabled),[h,b]=i.useState(n.insightsEnabled),[f,u]=i.useState(!n.insightsModelRef),[w,k]=i.useState(n.insightsModelRef?.providerId??n.defaultChatProvider),[C,P]=i.useState(n.insightsModelRef?.modelId??n.defaultChatModel),[D,F]=i.useState(n.insightsEvidenceSources),[m,N]=i.useState(n.subagents.enabled),[v,R]=i.useState(n.subagents.delegationMode),[A,L]=i.useState(!n.subagents.defaultModelRef),[G,W]=i.useState(n.subagents.defaultModelRef?.providerId??n.defaultChatProvider),[V,M]=i.useState(n.subagents.defaultModelRef?.modelId??n.defaultChatModel),[U,H]=i.useState(n.subagents.roles),[Q,ne]=i.useState(n.subagents.maxConcurrentRuns),[J,K]=i.useState(n.subagents.maxConcurrentRunsPerProvider),[E,B]=i.useState(n.subagents.maxConcurrentRunsPerWorkspaceTarget),[ee,le]=i.useState(!1),me=A?null:{providerId:G,modelId:V.trim()},ge=m!==n.subagents.enabled||v!==n.subagents.delegationMode||!ua(me,n.subagents.defaultModelRef)||Q!==n.subagents.maxConcurrentRuns||J!==n.subagents.maxConcurrentRunsPerProvider||E!==n.subagents.maxConcurrentRunsPerWorkspaceTarget||JSON.stringify(U)!==JSON.stringify(n.subagents.roles);i.useEffect(()=>{g(n.defaultBranchPrefix),x(n.defaultNewProjectDirectory),j(n.goalStorageLocation),p(n.advancedWorkspaceControls),c(n.contextCompaction.autoEnabled),b(n.insightsEnabled),u(!n.insightsModelRef),k(n.insightsModelRef?.providerId??n.defaultChatProvider),P(n.insightsModelRef?.modelId??n.defaultChatModel),F(n.insightsEvidenceSources),N(n.subagents.enabled),R(n.subagents.delegationMode),L(!n.subagents.defaultModelRef),W(n.subagents.defaultModelRef?.providerId??n.defaultChatProvider),M(n.subagents.defaultModelRef?.modelId??n.defaultChatModel),H(n.subagents.roles),ne(n.subagents.maxConcurrentRuns),K(n.subagents.maxConcurrentRunsPerProvider),B(n.subagents.maxConcurrentRunsPerWorkspaceTarget)},[n.defaultChatProvider,n.defaultChatModel,n.defaultBranchPrefix,n.defaultNewProjectDirectory,n.goalStorageLocation,n.advancedWorkspaceControls,n.contextCompaction.autoEnabled,n.insightsEnabled,n.insightsModelRef,n.insightsEvidenceSources,n.subagents]);function ue(T){k(T),P($=>Te(T,$,l))}function pe(T){W(T),M($=>Te(T,$,l))}function fe(){return A?n.defaultChatProvider:G}function xe(){return A?n.defaultChatModel:V}function Y(T,$){H(_=>_.map(ae=>ae.id===T?$(ae):ae))}function ve(T,$){Y(T,_=>({..._,enabled:$}))}function z(T,$){Y(T,_=>({..._,background:$}))}function Z(T,$){Y(T,_=>{if($)return{..._,modelRef:null};const ae=_.modelRef?.providerId??fe(),je=_.modelRef?.modelId??xe();return{..._,modelRef:Ie(ae,je,l)??null}})}function ss(T,$){Y(T,_=>({..._,modelRef:Ie($,_.modelRef?.modelId??xe(),l)??null}))}function Ue(T,$){Y(T,_=>{const ae=_.modelRef?.providerId??fe(),je=$.trim();return{..._,modelRef:je?{providerId:ae,modelId:je}:null}})}function Ne(T,$){Y(T,_=>({..._,isolationMode:$}))}function $e(T,$){Y(T,_=>({..._,toolPolicy:$}))}function ze(T,$){Y(T,_=>({..._,peerMessages:$}))}function Be(T,$){Y(T,_=>({..._,maxConcurrentRuns:he($,1,16)}))}async function Pe(){let T=null;if(window.openpond?.selectFolder){const $=await window.openpond.selectFolder();if($.canceled)return;T=$.path}else T=window.prompt("Default new project directory",o);T?.trim()&&x(T.trim())}async function Re(T){if(T.preventDefault(),!!s){le(!0),t(null);try{a(await O.savePreferences(s,{defaultBranchPrefix:Ke(r),defaultNewProjectDirectory:o.trim(),goalStorageLocation:y,advancedWorkspaceControls:S,contextCompaction:{...n.contextCompaction,autoEnabled:d},insightsEnabled:h,insightsModelRef:f?null:Ie(w,C,l)??null,insightsEvidenceSources:D,subagents:{enabled:m,workspaceDefaultsVersion:n.subagents.workspaceDefaultsVersion,toolDefaultsVersion:n.subagents.toolDefaultsVersion,delegationMode:v,defaultModelRef:A?null:Ie(G,V,l)??null,roles:U,maxConcurrentRuns:he(Q,1,32),maxConcurrentRunsPerProvider:J===null?null:he(J,1,32),maxConcurrentRunsPerWorkspaceTarget:E===null?null:he(E,1,32)}}))}catch($){t($ instanceof Error?$.message:String($))}finally{le(!1)}}}return{advancedWorkspaceControls:S,contextCompactionAutoEnabled:d,defaultBranchPrefix:r,defaultNewProjectDirectory:o,goalStorageLocation:y,insightsEnabled:h,insightsUseDefaultModel:f,insightsProvider:w,insightsModel:C,insightsEvidenceSources:D,subagentsEnabled:m,subagentDelegationMode:v,subagentsUseDefaultModel:A,subagentsProvider:G,subagentsModel:V,subagentRoles:U,subagentsMaxConcurrentRuns:Q,subagentsMaxConcurrentRunsPerProvider:J,subagentsMaxConcurrentRunsPerWorkspaceTarget:E,subagentsDirty:ge,saving:ee,chooseDefaultProjectDirectory:Pe,saveDefaults:Re,changeInsightsProvider:ue,changeSubagentsProvider:pe,changeSubagentRoleProvider:ss,setAdvancedWorkspaceControls:p,setContextCompactionAutoEnabled:c,setDefaultBranchPrefix:g,setDefaultNewProjectDirectory:x,setGoalStorageLocation:j,setInsightsEnabled:b,setInsightsUseDefaultModel:u,setInsightsModel:P,setSubagentsUseDefaultModel:L,setSubagentsModel:M,setInsightsEvidenceSourceEnabled:(T,$)=>F(_=>({..._,[T]:$})),setSubagentsEnabled:N,setSubagentDelegationMode:T=>R(T),setSubagentsMaxConcurrentRuns:T=>ne(he(T,1,32)),setSubagentsMaxConcurrentRunsPerProvider:T=>K(T===null?null:he(T,1,32)),setSubagentsMaxConcurrentRunsPerWorkspaceTarget:T=>B(T===null?null:he(T,1,32)),setSubagentRoleBackground:z,setSubagentRoleEnabled:ve,setSubagentRoleIsolationMode:Ne,setSubagentRoleMaxConcurrentRuns:Be,setSubagentRoleModel:Ue,setSubagentRolePeerMessages:ze,setSubagentRoleToolPolicy:$e,setSubagentRoleUseDefaultModel:Z}}function he(s,t,a){return Number.isFinite(s)?Math.min(a,Math.max(t,Math.trunc(s))):t}function ua(s,t){return(s?.providerId??null)===(t?.providerId??null)&&(s?.modelId??null)===(t?.modelId??null)}const ha=15e3,ma=100,ga=100,pa=2500;function fa({onError:s,section:t}){const[a,n]=i.useState(null),[l,r]=i.useState(null),[g,o]=i.useState(ma),[x,y]=i.useState([]),[j,S]=i.useState(null),[p,d]=i.useState(!0),c=i.useRef(null),[h,b]=i.useState(null),f=!!(window.openpond?.openLogsFolder||window.openpond?.readRecentLogs||window.openpond?.copyRecentLogs||window.openpond?.exportDiagnostics),w=!!window.openpond?.readRecentLogs?`${x.length} of ${g} line${g===1?"":"s"}${p?" tailing":""}`:"Unavailable";i.useEffect(()=>{t==="diagnostics"&&k(g,"refresh",{quiet:!0})},[t]),i.useEffect(()=>{if(t!=="diagnostics"||!p||!window.openpond?.readRecentLogs)return;let N=!1;const v=window.setInterval(()=>{N||(N=!0,k(g,"refresh",{quiet:!0}).finally(()=>{N=!1}))},pa);return()=>window.clearInterval(v)},[t,p,g]),i.useEffect(()=>{if(t!=="diagnostics"||!p)return;const N=c.current;N&&(N.scrollTop=N.scrollHeight)},[t,p,x]);async function k(N=g,v="refresh",R={}){const A=window.openpond?.readRecentLogs;if(!A){const L="Log view is not available in this runtime.";R.quiet||(b({label:"Logs",value:L,warning:!0}),s(L));return}R.quiet||r(v);try{const L=await De(A(N),"Read logs");if(!L.ok)throw new Error(L.error);o(L.lineLimit),S(L.logDir),y(L.lines),R.quiet?b(G=>G?.label==="Logs"?null:G):b(null)}catch(L){const G=L instanceof Error?L.message:String(L);b({label:"Logs",value:G,warning:!0}),R.quiet||s(G)}finally{R.quiet||r(null)}}function C(){d(!1),k(g+ga,"older")}function P(){const N=!p;d(N),N&&k(g,"refresh",{quiet:!0})}async function D(){const N=window.openpond?.openLogsFolder;if(!N){const v="Desktop logs are not available in this runtime.";b({label:"Logs",value:v,warning:!0}),s(v);return}n("logs"),s(null);try{const v=await De(N(),"Open logs");if(!v.ok)throw new Error(v.error??"Could not open the logs folder.");b(null)}catch(v){const R=v instanceof Error?v.message:String(v);b({label:"Logs",value:R,warning:!0}),s(R)}finally{n(null)}}async function F(){const N=window.openpond?.copyRecentLogs;if(!N){const v="Recent log copy is not available in this runtime.";b({label:"Copy",value:v,warning:!0}),s(v);return}n("copy"),s(null);try{const v=await De(N(1e3),"Copy recent logs");if(!v.ok)throw new Error(v.error??"Could not copy recent logs.");b({label:"Copy",value:v.lines?`Copied ${v.lines} recent log lines.`:"Copied recent logs."})}catch(v){const R=v instanceof Error?v.message:String(v);b({label:"Copy",value:R,warning:!0}),s(R)}finally{n(null)}}async function m(){const N=window.openpond?.exportDiagnostics;if(!N){const v="Diagnostics export is not available in this runtime.";b({label:"Export",value:v,warning:!0}),s(v);return}n("export"),s(null);try{const v=await De(N(),"Export diagnostics");if(!v.ok)throw new Error(v.error??"Could not export diagnostics.");b({label:"Export",value:v.path?`Saved to ${v.path}`:"Diagnostics exported."})}catch(v){const R=v instanceof Error?v.message:String(v);b({label:"Export",value:R,warning:!0}),s(R)}finally{n(null)}}return{diagnosticsAvailable:f,diagnosticsBusy:a,diagnosticsStatus:h,logDir:j,logLineLimit:g,logLines:x,logViewBusy:l,logViewSummary:w,logViewportRef:c,tailLogs:p,copyRecentLogs:F,exportDiagnosticsBundle:m,loadOlderLogs:C,openLogsFolder:D,refreshLogView:k,toggleTailLogs:P}}async function De(s,t){let a;try{return await Promise.race([s,new Promise((n,l)=>{a=window.setTimeout(()=>{l(new Error(`${t} did not receive a desktop response.`))},ha)})])}finally{a!==void 0&&window.clearTimeout(a)}}function xa({connection:s,enabled:t,onError:a,onPreferences:n,onToast:l,preferences:r}){const[g,o]=i.useState(r.editor),[x,y]=i.useState(null),[j,S]=i.useState(!1),[p,d]=i.useState(!1),[c,h]=i.useState(!1);i.useEffect(()=>{o(r.editor)},[r.editor]);const b=i.useCallback(async()=>{if(s){d(!0);try{y(await O.workspaceLspSettingsStatus(s))}catch(C){a(C instanceof Error?C.message:String(C))}finally{d(!1)}}},[s,a]);i.useEffect(()=>{!t||!s||b()},[s,t,b]);function f(C,P){o(D=>({...D,languages:{...D.languages,[C]:{...D.languages[C],mode:P}}}))}function u(C,P){o(D=>({...D,languages:{...D.languages,[C]:{...D.languages[C],customCommand:P}}}))}async function w(C){if(C.preventDefault(),!!s){S(!0),a(null);try{const P=await O.savePreferences(s,{editor:g});n(P),y(await O.workspaceLspSettingsStatus(s))}catch(P){a(P instanceof Error?P.message:String(P))}finally{S(!1)}}}async function k(){if(s){h(!0),a(null);try{await O.restartWorkspaceLsp(s),y(await O.workspaceLspSettingsStatus(s)),l?.("Language servers restarted.","success")}catch(C){a(C instanceof Error?C.message:String(C))}finally{h(!1)}}}return{editorPreferences:g,lspStatus:x,restarting:c,saving:j,statusLoading:p,refreshLspStatus:b,restartLanguageServers:k,saveEditorSettings:w,setEditorPreferences:o,setLanguageCustomCommand:u,setLanguageMode:f}}function va({connection:s,onError:t,onPayload:a,personalization:n}){const l=i.useMemo(()=>n.templates.map(m=>({value:m.id,label:m.name,description:m.id===n.activeTemplateId?"Selected":m.source==="built_in"?m.description:void 0})),[n.activeTemplateId,n.templates]),[r,g]=i.useState(n.activeTemplateId),[o,x]=i.useState(n.soul),[y,j]=i.useState(""),[S,p]=i.useState(!1),[d,c]=i.useState(!1),h=n.templates.find(m=>m.id===r)??n.templates[0],b=h?.source==="custom",f=h?o!==h.content:!0,u=r!==n.activeTemplateId||o!==n.soul||f,w=!!(b&&o.trim()&&h&&u);i.useEffect(()=>{g(n.activeTemplateId),x(n.soul);const m=n.templates.find(N=>N.id===n.activeTemplateId);j(m?`${m.name} Copy`:""),p(!1)},[n.activeTemplateId,n.soul,n.templates]);async function k(m=!1){if(!m&&!b)return;const N=m?y:h?.name;if(!(!s||!o.trim()||!N?.trim())){c(!0),t(null);try{a(await O.savePersonalization(s,{activeTemplateId:r,templateName:N,soul:o,saveAsNew:m})),p(!1)}catch(v){t(v instanceof Error?v.message:String(v))}finally{c(!1)}}}async function C(m){const N=n.templates.find(v=>v.id===m);if(N&&(g(N.id),j(`${N.name} Copy`),x(N.content),p(!1),!!s)){c(!0),t(null);try{a(await O.savePersonalization(s,{activeTemplateId:N.id,templateName:N.name,soul:N.content,saveAsNew:!1}))}catch(v){t(v instanceof Error?v.message:String(v))}finally{c(!1)}}}function P(){h&&(j(`${h.name} Copy`),x(h.content),p(!1))}function D(m){x(m),h&&!b&&m!==h.content&&p(!0)}function F(){h&&(j(`${h.name} Copy`),p(!0))}return{canSaveCurrentTemplate:w,personalizationTemplateId:r,personalizationTemplateOptions:l,saveAsNewOpen:S,saving:d,selectedPersonalizationTemplate:h,selectedTemplateIsCustom:b,soulDraft:o,templateNameDraft:y,changePersonalizationTemplate:C,changeSoulDraft:D,openSaveAsNew:F,resetPersonalizationDraft:P,savePersonalization:k,setSaveAsNewOpen:p,setTemplateNameDraft:j}}function ja({connection:s,onError:t,onPreferences:a,onProviders:n,preferences:l,providers:r}){const[g,o]=i.useState(l.defaultChatProvider),[x,y]=i.useState(l.defaultChatModel),[j,S]=i.useState(!1),[p,d]=i.useState(null),[c,h]=i.useState(null);i.useEffect(()=>{o(l.defaultChatProvider),y(l.defaultChatModel)},[l.defaultChatProvider,l.defaultChatModel]);async function b(v){if(v.preventDefault(),!!s){S(!0),t(null);try{a(await O.savePreferences(s,{defaultChatProvider:g,defaultChatModel:Te(g,x,r)}))}catch(R){t(R instanceof Error?R.message:String(R))}finally{S(!1)}}}function f(v){o(v),y(R=>Te(v,R,r))}async function u(v,R,A){if(!s)return null;d(`${v}:${R}`),h(null),t(null);try{return await A()}catch(L){return t(L instanceof Error?L.message:String(L)),null}finally{d(null)}}async function w(v,R){await u(v,"config",async()=>{const A=await O.saveProviderSettings(s,{providers:{[v]:R}});return n(A),A})}async function k(v,R){await u(v,"credential",async()=>{const A=await O.saveProviderCredential(s,v,R);return n(A),A})}async function C(v){await u(v,"credential",async()=>{const R=await O.deleteProviderCredential(s,v,{});return n(R),R})}async function P(v){return u("openai","credential",async()=>{const R=await O.startOpenAiSubscriptionAuth(s,{method:v});return R.method==="browser"?(window.open(R.url,"_blank","noopener,noreferrer"),h("OpenAI ChatGPT login opened in your browser. Return here after authorization.")):(window.open(R.url,"_blank","noopener,noreferrer"),h(`OpenAI device login started. Enter code ${R.userCode}.`)),D(R.expiresAt),R})}async function D(v){if(s)for(;Date.now()<v;){await new Promise(R=>setTimeout(R,2500));try{const R=await O.providerSettings(s);n(R);const A=R.statuses.openai?.credential;if(A?.connected&&A.source==="chatgpt_subscription"){h("OpenAI ChatGPT subscription connected.");return}}catch{}}}async function F(v){await u(v,"models",async()=>{const R=await O.refreshProviderModels(s,v,{force:!0});return n(R.providers),R})}async function m(v){await u(v,"models",async()=>{const R=await O.loadProviderModels(s,v,{limit:500});return n(R.providers),R})}async function N(v,R={}){await u(v,"validate",async()=>{const A=await O.validateProviderCredential(s,v,R);return h(A.ok?`${v} validated${A.modelId?` with ${A.modelId}`:""}.`:A.errors.join(`
6
- `)||`${v} validation failed.`),n(A.providers),A})}return{defaultModel:x,defaultProvider:g,providerBusy:p,saving:j,validationMessage:c,changeDefaultProvider:f,deleteProviderCredential:C,loadProviderModels:m,refreshProviderModels:F,saveProviderConfig:w,saveProviderCredential:k,saveProviders:b,setDefaultModel:y,startOpenAiSubscriptionAuth:P,validateProvider:N}}function ba({connection:s,enabled:t,onError:a,onToast:n}){const[l,r]=i.useState(null),[g,o]=i.useState(null),[x,y]=i.useState(!1),j=i.useRef(null),S=i.useCallback(async(P={})=>{if(s){P.quiet||o("refresh");try{const D=await O.remoteAccess(s);r(D),a(null)}catch(D){a(D instanceof Error?D.message:String(D))}finally{P.quiet||o(null)}}},[s,a]);i.useEffect(()=>{!t||!s||S({quiet:!0})},[s,t,S]),i.useEffect(()=>()=>{j.current!==null&&window.clearTimeout(j.current)},[]);function p(){j.current!==null&&window.clearTimeout(j.current),y(!1),window.setTimeout(()=>{y(!0),j.current=window.setTimeout(()=>{y(!1),j.current=null},1500)},0)}async function d(){if(a(null),!!s)try{r(await O.remoteAccess(s))}catch{}}async function c(){if(!s)return null;l&&!l.tailscale.running&&p(),o("enable");try{const P=await O.enableRemoteAccess(s);return r(P.status),a(null),P.status.tailscale.running?!P.status.serve.enabled&&P.status.serve.error&&n?.(P.status.serve.setupUrl?"Tailscale Serve needs to be enabled for this tailnet. Copy the Enable Serve link.":P.message||P.status.serve.error,"error"):(p(),n?.(P.message||"Tailscale is not running. Run Tailscale up first.","error")),P.status}catch{return await d(),p(),n?.("Unable to turn on remote access. Run Tailscale up first.","error"),null}finally{o(null)}}async function h(){if(s&&window.confirm("Turn off remote access? This runs tailscale serve reset and clears Tailscale Serve config on this device.")){o("disable");try{const P=await O.disableRemoteAccess(s);r(P.status),a(null)}catch{await d()}finally{o(null)}}}async function b(){l?.remoteWebUrl&&(o("copy-link"),await be(l.remoteWebUrl),o(null))}async function f(){l?.serveCommand&&(o("copy-command"),await be(l.serveCommand),o(null))}async function u(){l?.serve.setupUrl&&(o("copy-serve-setup"),await be(l.serve.setupUrl),o(null))}async function w(){l?.tailscaleUpCommand&&(o("copy-up-command"),await be(l.tailscaleUpCommand),o(null))}async function k(){l?.operatorCommand&&(o("copy-operator"),await be(l.operatorCommand),o(null))}async function C(){if(!l?.serve.enabled){const P=await c();P?.serve.enabled&&P.remoteWebUrl&&await be(P.remoteWebUrl);return}await b()}return{status:l,busy:g,flashTailscaleUp:x,refresh:S,enableRemoteAccess:c,disableRemoteAccess:h,copyRemoteLink:b,copyTailscaleUpCommand:w,copyServeCommand:f,copyServeSetupUrl:u,copyOperatorCommand:k,createRemoteLink:C}}function ya(s){const{connection:t,enabled:a,onError:n}=s,[l,r]=i.useState(null),[g,o]=i.useState(null),x=i.useCallback(async()=>{if(t){o("load");try{const c=await O.computeState(t);r(c),n(null)}catch(c){n(Se(c))}finally{o(null)}}},[t,n]),y=i.useCallback(async()=>{if(t){o("scan");try{const c=await O.scanCompute(t),h=await O.computeState(t);r({...h,inventory:c,scanning:!1}),n(null)}catch(c){n(Se(c))}finally{o(null)}}},[t,n]),j=i.useCallback(async(c,h,b)=>{if(!t)return!1;o("save");try{const f=await O.updateComputeSettings(t,{modelStorePath:c,datasetStorePath:h,defaultDeviceIds:b}),u=await O.computeState(t);return r({...u,settings:f}),n(null),!0}catch(f){return n(Se(f)),!1}finally{o(null)}},[t,n]),S=i.useCallback(async()=>{if(t)try{await O.downloadSmolLm2(t),await x()}catch(c){n(Se(c))}},[t,n,x]),p=i.useCallback(async c=>{if(t)try{await O.cancelModelDownload(t,c),await x()}catch(h){n(Se(h))}},[t,n,x]);i.useEffect(()=>{a&&x()},[a,x]);const d=l?.inventory?.downloads.some(c=>["queued","downloading","verifying","cancelling"].includes(c.status))??!1;return i.useEffect(()=>{if(!a||!d)return;const c=window.setInterval(()=>{x()},1e3);return()=>window.clearInterval(c)},[a,d,x]),{state:l,busy:g,refresh:x,scan:y,save:j,downloadSmolLm2:S,cancelDownload:p}}function Se(s){return s instanceof Error?s.message:String(s)}function Na(s){const{connection:t,enabled:a,onError:n,profileId:l}=s,[r,g]=i.useState(null),[o,x]=i.useState(!1),y=i.useCallback(async()=>{if(t){x(!0);try{g(await O.datasetCatalog(t,l)),n(null)}catch(j){n(Sa(j))}finally{x(!1)}}},[t,n,l]);return i.useEffect(()=>{a&&y()},[a,y]),{catalog:r,loading:o,refresh:y}}function Sa(s){return s instanceof Error?s.message:String(s)}const Ca=i.lazy(()=>St(()=>import("./UsageSettingsSection-zDAwzTGl.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url).then(s=>({default:s.UsageSettingsSection})));function Ua({payload:s,connection:t,diagnostics:a,onPayload:n,onError:l,onToast:r,onBack:g,onOpenSourceSession:o,onOpenSkill:x,onOpenExtension:y,teamChatCurrentUserId:j,teamChatEnabled:S,teamChatNotificationMode:p,teamChatThreads:d,onTeamChatNotificationModeChange:c,onTeamChatThreadMuteChange:h,initialSection:b="account"}){const[f,u]=i.useState(b),w=s?.codex??null,k=i.useMemo(()=>vt(s?.preferences),[s?.preferences]),C=s?.personalization??jt,P=a??s?.diagnostics??[],D=bt()&&yt(t?.platform),F=i.useCallback(B=>{s&&n({...s,providers:B})},[n,s]),m=i.useCallback(B=>{s&&n({...s,preferences:B.preferences})},[n,s]),N=i.useCallback(B=>{s&&n({...s,extensionCatalog:B})},[n,s]),v=ca({connection:t,onError:l,onPayload:n}),R=ja({connection:t,onError:l,onPayload:n,onPreferences:m,onProviders:F,preferences:k,providers:s?.providers??null}),A=da({connection:t,onError:l,onPayload:n,onPreferences:m,preferences:k,providers:s?.providers??null}),L=xa({connection:t,enabled:f==="editor",onError:l,onPayload:n,onPreferences:m,onToast:r,preferences:k}),G=va({connection:t,onError:l,onPayload:n,personalization:C}),W=fa({onError:l,section:f}),V=ba({connection:t,enabled:f==="remote",onError:l,onToast:r}),M=f==="dataset-storage",U=ya({connection:t,enabled:f==="compute"||M,onError:l}),H=Na({connection:t,enabled:M,onError:l,profileId:s?.profile.activeProfile??"default"}),Q=i.useCallback(B=>U.save(U.state?.settings.modelStorePath??null,B,U.state?.settings.defaultDeviceIds??[]),[U.save,U.state?.settings.defaultDeviceIds,U.state?.settings.modelStorePath]),ne=i.useCallback(async()=>{await Promise.all([U.refresh(),H.refresh()])},[U.refresh,H.refresh]),J=i.useCallback(()=>f!=="subagents"||!A.subagentsDirty?!0:window.confirm("You have unsaved changes. Leave Subagents without saving?"),[A.subagentsDirty,f]),K=i.useCallback(B=>{B!==f&&J()&&u(B)},[J,f]),E=i.useCallback(()=>{J()&&g()},[J,g]);return i.useEffect(()=>{u(b)},[b]),i.useEffect(()=>{if(f!=="subagents"||!A.subagentsDirty)return;const B=ee=>{ee.preventDefault(),ee.returnValue="You have unsaved changes."};return window.addEventListener("beforeunload",B),()=>window.removeEventListener("beforeunload",B)},[A.subagentsDirty,f]),e.jsxs("div",{className:`settings-shell ${D?"platform-macos":""}`,children:[e.jsx("div",{className:"settings-drag-region","aria-hidden":"true"}),e.jsx("div",{className:"settings-window-controls",children:e.jsx(Nt,{platform:t?.platform})}),e.jsx(Bn,{section:f,onBack:E,onSectionChange:K}),e.jsx("main",{className:"settings-content",children:f==="account"?e.jsx(Vt,{payload:s,connection:t,onPayload:n,onPreferences:m,onError:l,onToast:r,...v}):f==="notifications"?e.jsx(fn,{currentUserId:j,enabled:S,mode:p,threads:d,onModeChange:c,onThreadMuteChange:h}):f==="profile"?e.jsx(wt,{payload:s,connection:t,onPayload:n,onError:l,onToast:r}):f==="skills"?e.jsx(Fn,{personalSkills:s?.codexPersonalSkills??[],extensionCatalog:s?.extensionCatalog??{rootPath:"",registryPath:"",extensions:[],error:null},connection:t,onExtensionCatalog:N,onError:l,onToast:r,onOpenSkill:x,onOpenExtension:y}):f==="providers"?e.jsx(Dn,{account:s?.account??null,codex:w,providers:s?.providers??null,...R}):f==="compute"?e.jsx(Qn,{state:U.state,busy:U.busy,onScan:U.scan,onSave:U.save,onDownloadSmolLm2:U.downloadSmolLm2,onCancelDownload:U.cancelDownload}):f==="dataset-storage"?e.jsx(aa,{state:U.state,catalog:H.catalog,busy:U.busy,catalogLoading:H.loading,onRefresh:ne,onSave:Q}):f==="defaults"?e.jsx(Yt,{preferences:k,...A}):f==="goals"?e.jsx(tn,{preferences:k,...A}):f==="context"?e.jsx(nn,{preferences:k,...A}):f==="insights"?e.jsx(an,{preferences:k,providers:s?.providers??null,...A}):f==="training"?e.jsx(Gn,{connection:t,onError:l,onPreferences:m,preferences:k,providers:s?.providers??null}):f==="subagents"?e.jsx(ln,{preferences:k,providers:s?.providers??null,...A}):f==="editor"?e.jsx(sn,{preferences:k,...L}):f==="remote"?e.jsx(On,{...V}):f==="usage"?e.jsx(i.Suspense,{fallback:e.jsx("div",{className:"usage-load-state",children:"Loading activity…"}),children:e.jsx(Ca,{account:s?.account??null,connection:t,enabled:f==="usage",onError:l,onOpenSourceSession:o})}):f==="personalization"?e.jsx(vn,{...G}):e.jsx(Zt,{diagnostics:P,...W})})]})}export{Ua as SettingsView};
@@ -1 +0,0 @@
1
- .main-pane.team-active{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-height:0;overflow:hidden}.main-pane.team-active.diff-open{--right-panel-chat-reserve: 440px;grid-template-columns:minmax(0,1fr) minmax(320px,max(320px,min(var(--diff-panel-width),calc(100% - var(--right-panel-chat-reserve)))))}.main-pane.team-active>.team-chat-view{grid-column:1;grid-row:1}.team-chat-view{display:grid;grid-template-columns:minmax(0,1fr);width:100%;height:100%;min-width:0;min-height:0;background:var(--bg)}.team-chat-main{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0}.team-chat-error{position:absolute;display:flex;align-items:center;gap:10px;z-index:3;top:12px;left:50%;max-width:min(520px,calc(100% - 32px));transform:translate(-50%);border:1px solid rgba(248,113,113,.35);border-radius:6px;background:#321b1d;color:#fecaca;padding:8px 11px;font-size:12px}.team-chat-error button{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;border:0;background:transparent;color:inherit;padding:2px;font:inherit;font-weight:600;cursor:pointer}.team-chat-error button:hover,.team-chat-error button:focus-visible{color:#fff}.team-chat-error button:focus-visible{outline:2px solid currentColor;outline-offset:2px}.team-chat-messages,.team-ai-thread-messages{min-height:0;overflow-y:auto;scrollbar-color:rgba(255,255,255,.2) transparent;scrollbar-width:thin}.team-chat-messages{padding:18px max(22px,calc((100% - 790px)/2)) 30px}.team-chat-empty{display:grid;min-height:180px;place-items:center;color:var(--muted);font-size:13px}.team-chat-load-older{display:block;min-height:28px;margin:0 auto 10px;border:0;border-radius:5px;background:transparent;color:#67d4c0;padding:0 8px;font-size:11px}.team-chat-load-older:hover:not(:disabled){background:#2dd4bf17}.team-chat-load-older:disabled{opacity:.55}.team-chat-message{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:8px 6px}.team-chat-message:hover{background:#ffffff06}.team-chat-message:focus{outline:none;background:#2dd4bf12;box-shadow:inset 2px 0 #2dd4bf}.team-chat-avatar{display:inline-grid;flex:0 0 auto;place-items:center;overflow:hidden;border-radius:6px;background:#29433b;color:#d1fae5;object-fit:cover;font-weight:700}.team-chat-avatar{width:34px;height:34px;font-size:11px}.team-chat-message-content{min-width:0;color:#e8e8e8;font-size:13px;line-height:1.5}.team-chat-message-content>header{display:flex;align-items:baseline;gap:7px;min-height:20px}.team-chat-message-content>header strong{color:var(--text);font-size:13px}.team-chat-message-content>header time,.team-chat-message-content>header>span{color:#777;font-size:10px}.team-chat-message-content>header>span.failed{color:#d97a70}.team-chat-message-content>div:not(.team-chat-message-actions){overflow-wrap:anywhere;white-space:pre-wrap}.team-chat-message-content .deleted{color:#777;font-style:italic}.team-chat-message-reply-quote{display:grid;width:min(520px,100%);min-width:0;margin:3px 0 5px;border:0;border-left:3px solid #2dd4bf;border-radius:4px;background:#2dd4bf13;color:var(--muted-strong);padding:6px 9px;text-align:left}.team-chat-message-reply-quote:hover{background:#2dd4bf1f}.team-chat-message-reply-quote strong{overflow:hidden;color:#67d4c0;font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.team-chat-message-reply-quote span{overflow:hidden;font-size:11px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.team-chat-message-content>.team-chat-message-images{display:grid;grid-template-columns:repeat(2,minmax(0,240px));gap:6px;max-width:486px;margin-top:6px;white-space:normal}.team-chat-message-images>a,.team-chat-message-images img,.team-chat-message-image-loading,.team-chat-message-image-retry{display:block;width:100%;aspect-ratio:4 / 3;border:1px solid var(--border);border-radius:6px;background:#181818;object-fit:cover}.team-chat-message-images>a{overflow:hidden}.team-chat-message-images img{border:0}.team-chat-message-image-loading,.team-chat-message-image-retry{background:#202020}.team-chat-message-image-retry{display:grid;place-items:center;color:var(--muted-strong);padding:0}.team-chat-message-image-retry:hover{background:#292929;color:var(--text)}.team-chat-load-older:focus-visible,.team-chat-message-actions button:focus-visible,.team-chat-message-reply-quote:focus-visible,.team-chat-icon-button:focus-visible,.team-chat-thread-link:focus-visible,.team-chat-message-images>a:focus-visible,.team-chat-message-image-retry:focus-visible{outline:2px solid #67d4c0;outline-offset:2px}.team-chat-message-actions{display:inline-flex;gap:2px;margin-left:auto;opacity:0}.team-chat-message:hover .team-chat-message-actions,.team-chat-message-actions:focus-within,.team-chat-message-actions.visible{opacity:1}.team-chat-message-actions button,.team-chat-icon-button{display:inline-grid;width:25px;height:25px;place-items:center;border:0;border-radius:5px;background:transparent;color:var(--muted)}.team-chat-message-actions button:hover,.team-chat-icon-button:hover{background:#ffffff14;color:var(--text)}.team-chat-thread-link{display:inline-flex;align-items:center;gap:6px;min-height:28px;margin-top:7px;border:0;border-radius:5px;background:transparent;color:#67d4c0;padding:0 6px;font-size:12px;font-weight:600}.team-chat-thread-link:hover{background:#2dd4bf17}.team-chat-thread-link small{color:var(--muted);font-size:10px;font-weight:500}.team-chat-message-edit textarea{width:100%;min-height:72px;resize:vertical;border:1px solid rgba(45,212,191,.45);border-radius:6px;background:#191919;color:var(--text);padding:8px;font:inherit}.team-chat-message-edit>div{display:flex;justify-content:flex-end;gap:6px;margin-top:5px}.team-chat-message-edit button{min-height:27px;border:1px solid var(--border);border-radius:5px;background:#202020;color:var(--text);padding:0 9px;font-size:11px}.team-chat-composer-shell,.team-ai-thread-composer{padding:10px max(22px,calc((100% - 790px)/2)) 16px;background:linear-gradient(to bottom,transparent,var(--bg) 14px)}.team-chat-composer-reply{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;min-height:48px;margin-bottom:6px;border:1px solid var(--border);border-left:3px solid #2dd4bf;border-radius:7px;background:#1d2422;color:#67d4c0;padding:5px 7px 5px 10px}.team-chat-composer-reply-target{display:grid;min-width:0;border:0;background:transparent;color:inherit;padding:0;text-align:left}.team-chat-composer-reply-target strong,.team-chat-composer-reply-target span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-chat-composer-reply-target strong{font-size:11px}.team-chat-composer-reply-target span{color:var(--muted-strong);font-size:11px}.team-chat-composer-reply-target:hover span{color:var(--text)}.team-chat-composer-reply-target:focus-visible{outline:2px solid #67d4c0;outline-offset:2px}.team-chat-message-context-menu{position:fixed;z-index:100;width:150px;border:1px solid var(--border);border-radius:7px;background:#222;padding:4px;box-shadow:0 12px 30px #00000061}.team-chat-message-context-menu button{display:flex;width:100%;min-height:32px;align-items:center;gap:8px;border:0;border-radius:5px;background:transparent;color:var(--text);padding:0 9px;font-size:12px;text-align:left}.team-chat-message-context-menu button:hover,.team-chat-message-context-menu button:focus-visible{outline:none;background:#2dd4bf1f;color:#a7f3d0}.team-chat-composer-shell .composer,.team-ai-thread-composer .composer{width:100%}.team-chat-model-toggle{display:inline-flex;align-items:center;gap:6px;min-height:28px;color:var(--muted-strong);font-size:11px;white-space:nowrap}.team-chat-model-toggle input{accent-color:#2dd4bf}.team-ai-thread-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;border-left:1px solid var(--border);background:#171717}.team-ai-thread-panel>header{display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding:8px 12px 8px 16px}.team-ai-thread-panel>header>div,.team-ai-message-author{display:flex;align-items:center;gap:7px}.team-ai-thread-panel>header strong{font-size:13px}.team-ai-thread-panel>header span,.team-ai-message-author span{color:var(--muted);font-size:10px}.team-ai-thread-messages{padding:14px 16px 24px}.team-ai-message{padding:10px 0 14px;color:#e6e6e6;font-size:12px;line-height:1.55}.team-ai-message+.team-ai-message{border-top:1px solid rgba(255,255,255,.055)}.team-ai-message>.markdown-message{margin-top:5px;overflow-wrap:anywhere}.team-ai-message.assistant .team-ai-message-author{color:#67d4c0}.team-ai-message.streaming{opacity:.88}.team-ai-running{color:var(--muted);padding:12px 0;font-size:11px}.team-ai-turn-state{margin-top:8px;border-left:2px solid #777;color:var(--muted);padding:7px 9px;font-size:11px}.team-ai-turn-state.failed,.team-ai-turn-state.interrupted{border-left-color:#f87171;color:#fca5a5}.team-ai-thread-composer{padding-right:12px;padding-left:12px}@media(max-width:980px){.main-pane.team-active.diff-open{grid-template-columns:minmax(0,1fr)}.team-ai-thread-panel{position:absolute;z-index:5;inset:0 0 0 auto;width:min(430px,100%);box-shadow:-12px 0 30px #00000047}}@media(max-width:620px){.team-chat-messages,.team-chat-composer-shell{padding-inline:10px}.team-chat-composer-controls{flex-wrap:wrap}}
@@ -1,3 +0,0 @@
1
- import{j as t,c1 as J,X as R,r as o,c2 as le,c3 as H,a as re,U as de,M as K,Y as T,n as ce,bJ as E,u as me,e as ue,c4 as ge,c5 as he,c6 as fe,l as xe,c7 as ve,c8 as ye}from"./index-KoQSSt_f.js";/* empty css */import{M as k}from"./MarkdownText-DGLfAM_Z.js";import{R as X}from"./refresh-cw-BAaaPCXl.js";import{R as N}from"./reply-9rehU13k.js";import{r as Ce}from"./index-BzwcDzbT.js";function be(e,l){const s=new Set(Array.from(e.matchAll(/(?:^|\s)@([a-zA-Z0-9_-]+)/g),n=>(n[1]??"").toLowerCase()));return l.filter(n=>{const d=n.handle?.toLowerCase(),r=n.name.toLowerCase().replace(/[^a-z0-9_-]+/g,"-");return d&&s.has(d)||s.has(r)}).map(n=>n.userId)}function je(e){return t.jsxs("div",{className:"team-chat-composer-reply",role:"status",children:[t.jsx(N,{size:15,"aria-hidden":"true"}),t.jsxs("button",{type:"button",className:"team-chat-composer-reply-target","aria-label":`Jump to message from ${e.authorLabel}`,onClick:e.onJump,children:[t.jsxs("strong",{children:["Replying to ",e.authorLabel]}),t.jsx("span",{children:J(e.target)})]}),t.jsx("button",{type:"button",className:"team-chat-icon-button","aria-label":"Cancel reply","data-tooltip":"Cancel reply",onClick:e.onCancel,children:t.jsx(R,{size:14})})]})}function we(e){return t.jsxs("button",{type:"button",className:"team-chat-message-reply-quote","aria-label":`Jump to replied message from ${e.authorLabel}`,onClick:e.onJump,children:[t.jsx("strong",{children:e.authorLabel}),t.jsx("span",{children:J(e.target)})]})}function Te(e){const l=o.useRef(null);if(o.useEffect(()=>{if(!e.menu)return;l.current?.focus();const n=()=>e.onClose(),d=r=>{r.key==="Escape"&&n()};return window.addEventListener("click",n),window.addEventListener("blur",n),window.addEventListener("keydown",d),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("click",n),window.removeEventListener("blur",n),window.removeEventListener("keydown",d),window.removeEventListener("scroll",n,!0)}},[e.menu,e.onClose]),!e.menu||typeof document>"u")return null;const s=t.jsx("div",{className:"team-chat-message-context-menu",role:"menu","aria-label":"Message actions",style:{left:e.menu.x,top:e.menu.y},onClick:n=>n.stopPropagation(),children:t.jsxs("button",{ref:l,type:"button",role:"menuitem",onClick:()=>{e.onReply(e.menu.message),e.onClose()},children:[t.jsx(N,{size:14}),"Reply"]})});return Ce.createPortal(s,document.body)}function Me(e){const d=e.clientX||e.fallbackX,r=e.clientY||e.fallbackY;return{x:Math.max(8,Math.min(d,e.viewportWidth-150-8)),y:Math.max(8,Math.min(r,e.viewportHeight-42-8))}}function Y(e){return`team-chat-message-${encodeURIComponent(e)}`}function Re(e){const[l,s]=o.useState(!1),[n,d]=o.useState(e.message.body),r=e.message.refs.find(a=>a.refType==="hosted_ai_thread"),m=e.message.refs.find(a=>a.refType==="agent_run"),v=typeof r?.preview.status=="string"?r.preview.status:null,h=typeof e.message.metadata.deliveryStatus=="string"?e.message.metadata.deliveryStatus:null,y=typeof e.message.metadata.uploadProgress=="string"?e.message.metadata.uploadProgress:null,c=!e.message.deletedAt&&!h,g=le(e.message,e.messagesById),b=g?H(g,e.membersById):null;return t.jsxs("article",{id:Y(e.message.id),className:`team-chat-message${e.own?" own":""}`,tabIndex:-1,onContextMenu:a=>{if(!c)return;a.preventDefault();const C=a.currentTarget.getBoundingClientRect();e.onOpenReplyMenu(e.message,{clientX:a.clientX,clientY:a.clientY,fallbackX:C.right-12,fallbackY:C.top+24})},children:[t.jsx(Ie,{member:e.author}),t.jsxs("div",{className:"team-chat-message-content",children:[t.jsxs("header",{children:[t.jsx("strong",{children:e.author?.name??"Team member"}),t.jsx("time",{children:Se(e.message.createdAt)}),e.message.editedAt?t.jsx("span",{children:"edited"}):null,h==="sending"?t.jsx("span",{children:"sending"}):null,h==="sending"&&y?t.jsxs("span",{children:["uploaded ",y]}):null,h==="failed"?t.jsx("span",{className:"failed",children:"not sent"}):null,h==="failed"?t.jsxs("div",{className:"team-chat-message-actions visible",children:[t.jsx("button",{type:"button","data-tooltip":"Retry message","aria-label":"Retry message",onClick:()=>{e.onRetry(e.message)},children:t.jsx(X,{size:13})}),t.jsx("button",{type:"button","data-tooltip":"Remove failed message","aria-label":"Remove failed message",onClick:()=>e.onDismissFailed(e.message),children:t.jsx(R,{size:13})})]}):c||e.own&&!e.message.deletedAt?t.jsxs("div",{className:"team-chat-message-actions",children:[c?t.jsx("button",{type:"button","data-tooltip":"Reply","aria-label":"Reply to message",onClick:()=>e.onReply(e.message),children:t.jsx(N,{size:13})}):null,e.own&&!r?t.jsx("button",{type:"button","data-tooltip":"Edit message","aria-label":"Edit message",onClick:()=>s(!0),children:t.jsx(re,{size:13})}):null,e.own?t.jsx("button",{type:"button","data-tooltip":"Delete message","aria-label":"Delete message",onClick:()=>{e.onDelete(e.message)},children:t.jsx(de,{size:13})}):null]}):null]}),g&&b?t.jsx(we,{authorLabel:b,target:g,onJump:()=>e.onJumpToMessage(g.id)}):null,l?t.jsxs("form",{className:"team-chat-message-edit",onSubmit:a=>{a.preventDefault(),e.onEdit(e.message,n).then(C=>{C&&s(!1)})},children:[t.jsx("textarea",{autoFocus:!0,value:n,onChange:a=>d(a.currentTarget.value),onKeyDown:a=>{a.key==="Escape"&&(a.preventDefault(),s(!1),d(e.message.body))}}),t.jsxs("div",{children:[t.jsx("button",{type:"button",onClick:()=>s(!1),children:"Cancel"}),t.jsx("button",{type:"submit",disabled:!n.trim(),children:"Save"})]})]}):t.jsx("div",{className:e.message.deletedAt?"deleted":"",children:e.message.deletedAt?"Message deleted":e.message.body}),!e.message.deletedAt&&e.message.attachments.length>0?t.jsx(Ae,{message:e.message,connection:e.connection}):null,r?t.jsxs("button",{type:"button",className:"team-chat-thread-link",onClick:()=>{e.onOpenAiThread(r.refId)},children:[t.jsx(K,{size:14}),t.jsx("span",{children:"Thread"}),v&&v!=="completed"?t.jsx("small",{children:_(v)}):null,t.jsx("span",{"aria-hidden":"true",children:"›"})]}):null,m?t.jsxs("button",{type:"button",className:"team-chat-thread-link",onClick:()=>{e.onOpenAgentConversation(m.refId)},children:[t.jsx(T,{size:14}),t.jsx("span",{children:"Agent run"}),t.jsx("small",{children:_(String(m.preview.status??"queued"))}),t.jsx("span",{"aria-hidden":"true",children:"›"})]}):null]})]})}function Ae(e){const l=new Map(Array.isArray(e.message.metadata.localAttachmentPreviews)?e.message.metadata.localAttachmentPreviews.flatMap(s=>{if(!s||typeof s!="object")return[];const n=s;return typeof n.id=="string"&&typeof n.url=="string"?[[n.id,n.url]]:[]}):[]);return t.jsx("div",{className:"team-chat-message-images",children:e.message.attachments.map(s=>t.jsx(Pe,{attachmentId:s.id,alt:s.name,teamId:e.message.teamId,connection:e.connection,localUrl:l.get(s.clientAttachmentId)??null},s.id))})}function Pe(e){const[l,s]=o.useState(e.localUrl),[n,d]=o.useState(!1),r=o.useRef(0);async function m(){if(!e.connection||e.localUrl){e.localUrl||d(!0);return}d(!1);try{const v=await ce.teamChatAttachmentDownload(e.connection,e.teamId,e.attachmentId);s(v.url)}catch{s(null),d(!0)}}return o.useEffect(()=>{s(e.localUrl),d(!1),r.current=0,e.localUrl||m()},[e.attachmentId,e.connection,e.localUrl,e.teamId]),l?t.jsx("a",{href:l,target:"_blank",rel:"noreferrer","aria-label":`Open ${e.alt}`,children:t.jsx("img",{src:l,alt:e.alt,loading:"lazy",onError:()=>{if(!e.localUrl&&r.current<1){r.current+=1,m();return}s(null),d(!0)}})}):n?t.jsx("button",{type:"button",className:"team-chat-message-image-retry","aria-label":`Retry ${e.alt}`,"data-tooltip":"Retry image",onClick:()=>{r.current=0,e.localUrl?(d(!1),s(e.localUrl)):m()},children:t.jsx(X,{size:18})}):t.jsx("div",{className:"team-chat-message-image-loading",role:"status","aria-label":`Loading ${e.alt}`})}function _(e){return e==="pending"?"Starting":e==="running"?"Responding":e==="failed"?"Failed":e==="interrupted"?"Interrupted":e==="cancelled"?"Cancelled":e}function Ie({member:e}){if(e?.image)return t.jsx("img",{className:"team-chat-avatar",src:e.image,alt:""});const l=(e?.name??"T").split(/\s+/).slice(0,2).map(s=>s[0]?.toUpperCase()??"").join("");return t.jsx("span",{className:"team-chat-avatar fallback",children:l})}function Se(e){const l=new Date(e);return Number.isFinite(l.getTime())?l.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"}):""}const L={value:"none",label:"No project",detail:"Team conversation",options:[],busy:!1},U={value:"local",label:"Local",detail:"Local execution",options:[],action:{value:"local",label:"Local",detail:"Local execution",disabled:!1},busy:!1},G=new Set(["codex","openai","xai","openrouter","deepseek","zai","moonshot","together","groq","fireworks","custom-openai-compatible"]);function ke(e,l){return!l||e===l?e:e?`${l}
2
-
3
- ${e}`:l}function Oe(e){me(e.error);const[l,s]=o.useState(""),[n,d]=o.useState(!1),[r,m]=o.useState(null),[v,h]=o.useState(null),[y,c]=o.useState(0),g=o.useRef(null),b=o.useRef(!0),a=o.useRef(e.detail?.thread.id??null);a.current=e.detail?.thread.id??null;const{confirmAction:C,confirmDialog:V,resolveConfirmDialog:Q}=ue(),A=o.useMemo(()=>new Map(e.members.map(i=>[i.userId,i])),[e.members]),D=o.useMemo(()=>new Map((e.detail?.messages??[]).map(i=>[i.id,i])),[e.detail?.messages]),Z=e.detail?.thread.id??null,z=r?.threadId===Z?D.get(r.message.id)??r.message:null,M=z?.deletedAt?null:z,j=M?ge(M):null,O=j?H(j,A):null,p=e.detail?he(e.detail.thread,e.currentUserId):"Team",P=G.has(e.provider)?e.provider:"codex",q=P===e.provider?e.model:"gpt-5.6-sol",ee=o.useMemo(()=>fe({hostedActions:e.agents,profile:e.profile,teamId:e.teamId}),[e.agents,e.profile,e.teamId]),te=e.detail?.messages.at(-1)?.sequence??0;o.useEffect(()=>{if(!b.current)return;const i=g.current;i&&(i.scrollTop=i.scrollHeight)},[te,e.detail?.thread.id]);const $=o.useCallback(i=>{i.deletedAt||i.id.startsWith("pending:")||typeof i.metadata.deliveryStatus=="string"||(m({threadId:i.threadId,message:i}),d(!1),h(null),c(f=>f+1))},[]),ne=o.useCallback(()=>h(null),[]),ae=o.useCallback((i,f)=>{const x=Me({...f,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});h({message:i,...x})},[]),B=o.useCallback(i=>{const f=document.getElementById(Y(i));f&&(f.scrollIntoView({behavior:"smooth",block:"center"}),f.focus({preventScroll:!0}))},[]);async function se(i=[],f=null){if(i.some(u=>u.kind!=="image"||!["image/png","image/jpeg","image/webp","image/gif"].includes(u.mediaType)))return e.showToast("Team chat supports PNG, JPEG, WebP, and GIF images.","error"),!1;let x=f;if(M&&x)return e.showToast("Remove the agent action before replying to a message.","error"),!1;if(ve(x)){const u=ye(x);if(!u)throw new Error("The selected profile agent is missing its profile id.");if(!await C({title:`Publish ${x.label??x.name??"agent"} to Team?`,body:`This will upload the committed agent source to ${e.teamName??"this Team"}, create its hosted runtime, and then send your message.`,confirmLabel:"Publish and send",tone:"default"}))return!1;x=await e.onPublishProfileAgent(u)}const I=x?.approvalPolicy?.risk;let F=null;if(x?.approvalPolicy?.required&&I&&I!=="read"){const u=I==="destructive";if(!await C({title:u?"Approve destructive action?":"Approve external write?",body:`${x.label??x.name??"This agent action"} will use the workspace connection to ${u?"perform a destructive operation":"write external data"}. Approve this run only?`,confirmLabel:u?"Approve destructive action":"Approve write",tone:u?"danger":"default"}))return!1;F=crypto.randomUUID()}const S=l,oe=e.detail?.thread.id??null,w=M,W=()=>{a.current===oe&&(s(u=>ke(u,S)),w&&m(u=>u??{threadId:w.threadId,message:w}))};s(""),w&&m(null);try{const u=await e.onSendMessage({body:S,useModel:n,providerId:P,modelId:q,mentionUserIds:be(S,e.members),attachments:i,replyToMessage:w,selectedActionKey:x?.id??null,approvalId:F});return u?n&&d(!1):W(),u}catch(u){throw W(),u}}return t.jsxs("section",{className:"team-chat-view",children:[t.jsxs("div",{className:"team-chat-main conversation-surface-main",children:[t.jsxs("div",{className:"team-chat-messages conversation-message-scroll",role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":e.loading,"aria-label":p,tabIndex:0,ref:g,onScroll:i=>{const f=i.currentTarget;b.current=f.scrollHeight-f.scrollTop-f.clientHeight<72},children:[e.detail?.hasMoreBefore?t.jsx("button",{type:"button",className:"team-chat-load-older",disabled:e.loading,onClick:()=>{e.onLoadMoreMessages()},children:e.loading?"Loading...":"Load older messages"}):null,e.loading&&!e.detail?t.jsx("div",{className:"team-chat-empty",children:"Loading messages..."}):e.detail?.messages.length?e.detail.messages.map(i=>t.jsx(Re,{message:i,author:i.authorUserId?A.get(i.authorUserId)??null:null,own:i.authorUserId===e.currentUserId,onOpenAiThread:e.onOpenAiThread,onOpenAgentConversation:e.onOpenAgentConversation,onEdit:e.onEditMessage,onDelete:e.onDeleteMessage,onRetry:e.onRetryMessage,onDismissFailed:e.onDismissFailedMessage,membersById:A,messagesById:D,onReply:$,onOpenReplyMenu:ae,onJumpToMessage:B,connection:e.connection},i.id)):t.jsx("div",{className:"team-chat-empty",children:"No messages yet"})]}),t.jsxs("div",{className:"team-chat-composer-shell conversation-composer-shell",children:[j&&O?t.jsx(je,{authorLabel:O,target:j,onCancel:()=>m(null),onJump:()=>B(j.id)}):null,t.jsx(E,{mode:"dock",surface:"team",teamUseModel:n,teamUseModelLocked:!!j,teamMentionMembers:e.members.filter(i=>i.userId!==e.currentUserId),actionCatalog:ee,onTeamUseModelChange:d,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:e.busy,running:!1,focusRequestId:y,submissionScopeKey:`team:${e.detail?.thread.id??"none"}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:P,model:q,projectTarget:L,workspaceTarget:U,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:s,showToast:e.showToast,onSubmit:async(i,f)=>se(i??[],f??null),onStop:()=>!1})]})]}),t.jsx(Te,{menu:v,onClose:ne,onReply:$}),t.jsx(xe,{state:V,onResolve:Q})]})}function qe(e){const[l,s]=o.useState(""),n=e.agentConversation,d=o.useRef(null),r=o.useRef(null),m=o.useRef(null),v=n.messages.at(-1)?.sequence??0,h=["pending","queued","running"].includes(n.run.status);o.useEffect(()=>{const c=d.current;c&&(c.scrollTop=c.scrollHeight)},[v,n.run.status]),o.useEffect(()=>{r.current?.focus();const c=g=>{g.key==="Escape"&&(g.preventDefault(),e.onCloseAgentConversation())};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[e.onCloseAgentConversation]);async function y(){const c=m.current??crypto.randomUUID();m.current=c;const g=await e.onSendAgentTurn({body:l,clientRequestId:c});return g&&(m.current=null,s("")),g}return t.jsxs("aside",{className:"workspace-diff-panel team-ai-thread-panel","aria-label":`${n.agent.name} run`,children:[e.onResizeStart?t.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize agent run panel",onPointerDown:e.onResizeStart}):null,t.jsxs("header",{children:[t.jsxs("div",{children:[t.jsx(T,{size:15}),t.jsx("strong",{children:n.agent.name}),t.jsx("span",{children:n.run.status})]}),t.jsx("button",{ref:r,type:"button",className:"team-chat-icon-button","aria-label":"Close agent run",onClick:e.onCloseAgentConversation,children:t.jsx(R,{size:16})})]}),t.jsxs("div",{className:"team-ai-thread-messages",ref:d,role:"log","aria-live":"polite","aria-relevant":"additions text",tabIndex:0,children:[n.messages.map(c=>t.jsxs("article",{className:`team-ai-message ${c.role}`,children:[t.jsxs("div",{className:"team-ai-message-author",children:[c.role==="assistant"?t.jsx(T,{size:14}):null,t.jsx("strong",{children:c.role==="user"?"Team member":n.agent.name})]}),t.jsx(k,{connection:e.connection,content:c.body})]},c.id)),n.messages.length===0?t.jsx("div",{className:"team-chat-empty",children:"The agent run is starting."}):null]}),t.jsx("div",{className:"team-ai-thread-composer",children:t.jsx(E,{mode:"dock",surface:"team",teamUseModel:!1,teamUseModelLocked:!0,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:e.busy||h,running:h,submissionScopeKey:`team-agent:${n.conversationId}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:e.provider,model:e.model,projectTarget:L,workspaceTarget:U,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:c=>{m.current=null,s(c)},showToast:e.showToast,onSubmit:y,onStop:()=>!1})})]})}function $e(e){const[l,s]=o.useState(""),n=e.aiThread,d=new Map(e.members.map(a=>[a.userId,a])),r=n.turns.at(-1)??null,m=o.useRef(null),v=n.messages.at(-1)?.sequence??0,h=o.useRef(null),y=G.has(e.provider)?e.provider:"codex",c=y===e.provider?e.model:"gpt-5.6-sol",g=!!(n.activeTurn&&(n.activeTurn.status==="pending"||n.activeTurn.status==="running"));o.useEffect(()=>{const a=m.current;a&&(a.scrollTop=a.scrollHeight)},[v,n.activeTurn?.partialBody]),o.useEffect(()=>{h.current?.focus();const a=C=>{C.key==="Escape"&&(C.preventDefault(),e.onCloseAiThread())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[e.onCloseAiThread]);async function b(){const a=await e.onSendAiTurn({body:l,providerId:y,modelId:c});return a&&s(""),a}return t.jsxs("aside",{className:"workspace-diff-panel team-ai-thread-panel","aria-label":"AI thread",children:[e.onResizeStart?t.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-label":"Resize AI thread panel","aria-orientation":"vertical",onPointerDown:e.onResizeStart}):null,t.jsxs("header",{children:[t.jsxs("div",{children:[t.jsx(K,{size:15}),t.jsx("strong",{children:"AI thread"}),t.jsxs("span",{children:[n.messages.length," messages"]})]}),t.jsx("button",{ref:h,type:"button",className:"team-chat-icon-button","data-tooltip":"Close thread","aria-label":"Close thread",onClick:e.onCloseAiThread,children:t.jsx(R,{size:16})})]}),t.jsxs("div",{className:"team-ai-thread-messages",ref:m,role:"log","aria-live":"polite","aria-relevant":"additions text",tabIndex:0,children:[n.messages.map(a=>t.jsxs("article",{className:`team-ai-message ${a.role}`,children:[t.jsxs("div",{className:"team-ai-message-author",children:[a.role==="assistant"?t.jsx(T,{size:14}):null,t.jsx("strong",{children:a.role==="assistant"?"Model":a.createdByUserId?d.get(a.createdByUserId)?.name??"Team member":"Team member"})]}),t.jsx(k,{connection:e.connection,content:a.body})]},a.id)),n.activeTurn?.partialBody?t.jsxs("article",{className:"team-ai-message assistant streaming",children:[t.jsxs("div",{className:"team-ai-message-author",children:[t.jsx(T,{size:14}),t.jsx("strong",{children:"Model"}),t.jsx("span",{children:n.activeTurn.status})]}),t.jsx(k,{connection:e.connection,content:n.activeTurn.partialBody})]}):n.activeTurn?t.jsx("div",{className:"team-ai-running",children:n.activeTurn.status==="pending"?"Starting model...":"Model is responding..."}):r&&["failed","interrupted","cancelled"].includes(r.status)?t.jsx("div",{className:`team-ai-turn-state ${r.status}`,children:r.status==="failed"?"Model response failed":r.status==="interrupted"?"Model response was interrupted":"Model response was cancelled"}):null]}),t.jsx("div",{className:"team-ai-thread-composer",children:t.jsx(E,{mode:"dock",surface:"team",teamUseModel:!0,teamUseModelLocked:!0,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:g,running:g,submissionScopeKey:`team-ai:${n.conversationId}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:y,model:c,projectTarget:L,workspaceTarget:U,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:s,showToast:e.showToast,onSubmit:b,onStop:e.onStopAiTurn})})]})}export{qe as TeamAgentConversationPanel,$e as TeamAiThreadPanel,Oe as TeamChatView,ke as restoreFailedTeamChatPrompt};
@@ -1 +0,0 @@
1
- import{r as h,j as e,O as f,v as b,Z as d,N as x,X as j}from"./index-KoQSSt_f.js";/* empty css */function z({creation:s,training:r,compact:i=!1,onOpenTraining:t}){const[o,g]=h.useState(""),[c,u]=h.useState(""),n=s.state,a=!!r.busyAction;return h.useEffect(()=>{g(""),u("")},[s.id,n]),e.jsxs("section",{className:i?`composer-create-strip ${k(n)} training-create-strip`:"training-approval","aria-label":"Training task status",children:[i?e.jsxs("div",{className:"composer-create-strip-heading",children:[n==="planning"||n==="materializing"||n==="validating"?e.jsx(f,{className:"composer-create-spin",size:15}):n==="failed"?e.jsx(b,{size:15}):e.jsx(d,{size:15}),e.jsx("span",{children:v(n)}),e.jsx("small",{children:"training"})]}):null,n==="awaiting_disclosure_approval"?e.jsxs("div",{className:i?"composer-create-plan-summary":"training-creation-content",children:[i?null:e.jsx("strong",{children:"Review selected evidence with the authoring model?"}),e.jsxs("p",{children:["Approve sends excerpts from ",s.request.sourceIds.length," explicitly selected source",s.request.sourceIds.length===1?"":"s"," to ",s.request.analysisModel?.providerId,"/",s.request.analysisModel?.modelId," so it can propose a Taskset and grader. This does not start training."]}),e.jsxs("div",{className:i?"composer-create-actions":"training-inline-actions",children:[e.jsxs("button",{className:i?void 0:"training-button",disabled:a,onClick:()=>{r.actions.approveDisclosure(s.id,!0)},children:[e.jsx(x,{size:13}),e.jsx("span",{children:"Approve evidence"})]}),e.jsxs("button",{className:i?void 0:"training-button secondary",disabled:a,onClick:()=>{r.actions.approveDisclosure(s.id,!1)},children:[e.jsx(j,{size:13}),e.jsx("span",{children:"Decline"})]}),i&&t?e.jsxs("button",{disabled:a,onClick:t,children:[e.jsx(d,{size:13}),e.jsx("span",{children:"Open Training"})]}):null]})]}):n==="awaiting_materialization_approval"&&s.proposal?e.jsxs("div",{className:i?"composer-create-plan-summary":"training-creation-content",children:[i?null:e.jsx("strong",{children:s.proposal.name}),e.jsx("p",{children:s.proposal.objective}),e.jsxs("div",{className:"training-creation-plan-facts",children:[e.jsx("span",{children:s.proposal.taskKind.replaceAll("_"," ")}),e.jsxs("span",{children:[s.proposal.proposedGraders.length," grader",s.proposal.proposedGraders.length===1?"":"s"]}),e.jsx("span",{children:s.proposal.proposedMethod.replaceAll("_"," ")})]}),s.request.mode==="customize"?e.jsxs("div",{className:"training-question-answer",children:[e.jsx("input",{value:c,onChange:l=>u(l.target.value),placeholder:"Revise tasks, graders, fixtures, or policy"}),e.jsx("button",{className:i?void 0:"training-button secondary",disabled:!c.trim()||a,onClick:async()=>{const l=c;u(""),await r.actions.chatCreation(s.id,l)},children:"Revise"})]}):null,e.jsxs("div",{className:i?"composer-create-actions":"training-inline-actions",children:[e.jsxs("button",{className:i?void 0:"training-button",disabled:a,onClick:()=>{r.actions.materialize(s.id,!0)},children:[e.jsx(x,{size:13}),e.jsx("span",{children:"Materialize Taskset"})]}),t?e.jsxs("button",{className:i?void 0:"training-button secondary",disabled:a,onClick:t,children:[e.jsx(d,{size:13}),e.jsx("span",{children:"Review details"})]}):null,e.jsxs("button",{className:i?void 0:"training-button secondary",disabled:a,onClick:()=>{r.actions.materialize(s.id,!1)},children:[e.jsx(j,{size:13}),e.jsx("span",{children:"Cancel"})]})]})]}):n==="awaiting_questions"?e.jsx("div",{className:i?"composer-create-question":"training-creation-content",children:(()=>{const l=s.blockingQuestions.find(p=>!p.answer);return l?e.jsxs(e.Fragment,{children:[e.jsx("p",{children:l.prompt}),e.jsxs("div",{className:"training-question-answer",children:[e.jsx("input",{value:o,onChange:p=>g(p.target.value)}),e.jsx("button",{className:i?void 0:"training-button",disabled:!o.trim()||a,onClick:()=>{r.actions.answerQuestions(s.id,{[l.id]:o})},children:"Continue"})]})]}):null})()}):e.jsxs("div",{className:i?"composer-create-status-body":"training-creation-content",children:[e.jsx("p",{children:m(s)}),i&&t?e.jsx("div",{className:"composer-create-actions",children:e.jsxs("button",{onClick:t,children:[e.jsx(d,{size:13}),e.jsx("span",{children:"Open Training"})]})}):null]})]})}function C({creation:s}){return e.jsxs("section",{className:"chat-create-receipt","aria-label":"Training status",children:[e.jsxs("div",{className:"chat-create-receipt-heading",children:[e.jsx(d,{size:14}),e.jsx("span",{children:v(s.state)}),e.jsx("small",{children:"training"})]}),e.jsx("p",{children:s.request.objective??m(s)}),e.jsxs("div",{className:"chat-create-receipt-facts",children:[e.jsxs("span",{children:[s.request.sourceIds.length," selected source",s.request.sourceIds.length===1?"":"s"]}),e.jsx("span",{children:s.request.mode==="customize"?"guided plan":"fast draft"})]})]})}function v(s){return s==="awaiting_disclosure_approval"?"Training evidence review":s==="awaiting_materialization_approval"?"Training plan ready":s==="awaiting_questions"?"Training question":s==="materializing"?"Materializing Taskset":s==="ready"?"Taskset ready":s==="failed"?"Training plan failed":s==="cancelled"?"Training plan cancelled":"Preparing training plan"}function m(s){return s.blockedReason?s.blockedReason:s.state==="ready"?"The reviewed Taskset was materialized. Training still requires a separate approval.":s.state==="cancelled"?"Taskset creation was cancelled.":s.state==="planning"?"The authoring model is proposing tasks, graders, fixtures, and policy boundaries.":`Task Creator is ${s.state.replaceAll("_"," ")}.`}function k(s){return s==="ready"?"success":s==="failed"||s==="cancelled"?"danger":s==="awaiting_disclosure_approval"||s==="awaiting_materialization_approval"||s==="awaiting_questions"?"warning":"info"}export{z as TrainingCreationPanel,C as TrainingStatusReceipt};
@@ -1 +0,0 @@
1
- import{j as s,W as p,at as j,au as x}from"./index-KoQSSt_f.js";/* empty css */function m({training:r,sessionId:t,expanded:i,onOpenTraining:d,onResizeStart:l,onToggleExpanded:o}){const n=r.payload?.sources.filter(e=>e.sessionId===t)??[],c=new Set(n.map(e=>e.id)),a=r.payload?.creations.find(e=>e.request.sourceIds.some(h=>c.has(h)))??null;return s.jsxs("aside",{className:`workspace-diff-panel training-draft-panel ${i?"expanded":""}`,"aria-label":"Training task draft",children:[i?null:s.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize task draft",onPointerDown:l}),s.jsxs("div",{className:"workspace-diff-topbar",children:[s.jsx("div",{className:"workspace-diff-tabs",children:s.jsxs("button",{type:"button",className:"workspace-diff-tab active",children:[s.jsx(p,{size:14}),s.jsx("span",{children:"Task draft"})]})}),s.jsx("div",{className:"workspace-diff-toolbar-actions",children:s.jsx("button",{className:"diff-icon-button",type:"button",onClick:o,"aria-label":i?"Dock task draft":"Expand task draft",children:i?s.jsx(j,{size:14}):s.jsx(x,{size:14})})})]}),s.jsxs("div",{className:"training-draft-body",children:[s.jsx("span",{className:"training-eyebrow",children:"Selected chat"}),s.jsx("h2",{children:n[0]?.title??"Not added to training"}),s.jsxs("dl",{className:"training-definition",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"Sources"}),s.jsx("dd",{children:n.length})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Status"}),s.jsx("dd",{children:a?.state.replaceAll("_"," ")??"No draft"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Method"}),s.jsx("dd",{children:a?.proposal?.proposedMethod??"Pending"})]})]}),a?.proposal?s.jsxs(s.Fragment,{children:[s.jsx("h3",{children:a.proposal.name}),s.jsx("p",{children:a.proposal.objective})]}):s.jsxs("p",{children:["Add this chat with the sidebar action or run ",s.jsx("code",{children:"/train"}),"."]}),a?.blockedReason?s.jsx("p",{className:"training-draft-warning",children:a.blockedReason}):null,s.jsx("button",{className:"training-button secondary",type:"button",onClick:d,children:"Open Training"})]})]})}export{m as TrainingDraftPanel};