openpond 0.2.30 → 0.2.31

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 (168) hide show
  1. package/dist/api/types.d.ts +8 -0
  2. package/dist/app-server.d.ts +27797 -513
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/{actions-command-NOCBOF5S.js → actions-command-6LFZFTLA.js} +1 -1
  5. package/dist/chunks/{app-layer-GLXYIT4B.js → app-layer-ZZHTHTJU.js} +1 -1
  6. package/dist/chunks/app-server-runtime-256UCS6N.js +2 -0
  7. package/dist/chunks/{apps-YSWZT656.js → apps-C2BMJ7DO.js} +1 -1
  8. package/dist/chunks/{chunk-GOQDMRUV.js → chunk-34URWDE7.js} +1 -1
  9. package/dist/chunks/chunk-4476RDBS.js +41 -0
  10. package/dist/chunks/{chunk-J3ZRHNGL.js → chunk-4QX2I2DX.js} +1 -1
  11. package/dist/chunks/{chunk-TOIG2PMH.js → chunk-55UCBRIX.js} +1 -1
  12. package/dist/chunks/{chunk-2LSP2AAN.js → chunk-5BFWDFPX.js} +1 -1
  13. package/dist/chunks/{chunk-JPCPNW6T.js → chunk-B5LKUQGM.js} +1 -1
  14. package/dist/chunks/{chunk-I7XD5OBR.js → chunk-BAKCGJ5D.js} +1 -1
  15. package/dist/chunks/{chunk-HMADUZ5P.js → chunk-CE27WEHK.js} +1 -1
  16. package/dist/chunks/{chunk-7TV2VBSD.js → chunk-DR3XPQRZ.js} +1 -1
  17. package/dist/chunks/{chunk-C5OV4XWF.js → chunk-EFTLCT7C.js} +1 -1
  18. package/dist/chunks/{chunk-GHGVF2KG.js → chunk-GCU66EAF.js} +1 -1
  19. package/dist/chunks/{chunk-F4WS5QIT.js → chunk-IFP6W4OW.js} +22 -22
  20. package/dist/chunks/{chunk-I5K74TOH.js → chunk-JEVA7YQL.js} +2 -2
  21. package/dist/chunks/{chunk-JKMPJFMN.js → chunk-JFR34MIK.js} +2 -2
  22. package/dist/chunks/chunk-JVIHGSOV.js +6 -0
  23. package/dist/chunks/{chunk-6ZK5EZGN.js → chunk-K6EGNB2A.js} +1 -1
  24. package/dist/chunks/chunk-L2UT3YIF.js +5 -0
  25. package/dist/chunks/{chunk-XLF7VRKY.js → chunk-L54LZUGH.js} +1 -1
  26. package/dist/chunks/{chunk-J2S7BOZU.js → chunk-MJC26GOX.js} +4 -4
  27. package/dist/chunks/{chunk-MAMUNDBZ.js → chunk-MVAJMRCW.js} +3 -3
  28. package/dist/chunks/{chunk-Y2NQXJ2Q.js → chunk-MXLB6MEW.js} +1 -1
  29. package/dist/chunks/chunk-PSZKG3E3.js +4 -0
  30. package/dist/chunks/{chunk-N6HBB2EA.js → chunk-PZ6KPMEZ.js} +342 -335
  31. package/dist/chunks/{chunk-XRV4WLI7.js → chunk-QPZNN5Q3.js} +1 -1
  32. package/dist/chunks/{chunk-ETH4SZO6.js → chunk-QTEYV4TW.js} +1 -1
  33. package/dist/chunks/{chunk-Y2KDWP74.js → chunk-T22TCCWW.js} +1 -1
  34. package/dist/chunks/{chunk-WVUPFGU7.js → chunk-UU7RXSJS.js} +1 -1
  35. package/dist/chunks/{chunk-TJNIYJUH.js → chunk-XCTFXXVY.js} +1 -1
  36. package/dist/chunks/{chunk-6LY7GYNK.js → chunk-Z6F6PYF4.js} +1 -1
  37. package/dist/chunks/cli-DSFTE4KT.js +2 -0
  38. package/dist/chunks/{configuration-command-VGYAJAKN.js → configuration-command-IHUB6BBM.js} +1 -1
  39. package/dist/chunks/{core-commands-QQNCA4WQ.js → core-commands-F2HIN7V4.js} +1 -1
  40. package/dist/chunks/{desktop-test-BMDAEN6Z.js → desktop-test-BFFUGVRS.js} +1 -1
  41. package/dist/chunks/{dist-5C6RYTQQ.js → dist-XCT2G25K.js} +1 -1
  42. package/dist/chunks/extension-D7IYZW7H.js +4 -0
  43. package/dist/chunks/{help-DZBHIKVE.js → help-5MKQV36D.js} +1 -1
  44. package/dist/chunks/opchat-XO7EDHY7.js +3 -0
  45. package/dist/chunks/{organizations-LAUKUPDF.js → organizations-DIRGTVK5.js} +1 -1
  46. package/dist/chunks/{profile-ESJFHPYC.js → profile-EMVJ5DJQ.js} +1 -1
  47. package/dist/chunks/{project-agent-CPQP4ZY6.js → project-agent-4QC7N3MB.js} +1 -1
  48. package/dist/chunks/{sandbox-command-W6NWHFAR.js → sandbox-command-L263BBOL.js} +1 -1
  49. package/dist/chunks/{sandbox-template-SM62NUMJ.js → sandbox-template-RYKWTBW7.js} +1 -1
  50. package/dist/chunks/{src-4L62URN6.js → src-RINMQ7IQ.js} +1 -1
  51. package/dist/chunks/src-RM2LIZGT.js +325 -0
  52. package/dist/chunks/{teams-bot-6LEMA4OH.js → teams-bot-NIZB6DOY.js} +1 -1
  53. package/dist/chunks/{workspaces-5PQMYPBV.js → workspaces-GPYDSN4C.js} +1 -1
  54. package/dist/cli.js +1 -1
  55. package/dist/hosted-chat.d.ts +1 -0
  56. package/dist/index.js +1 -1
  57. package/dist/web/assets/App-BcbjzSeU.js +226 -0
  58. package/dist/web/assets/{AppDialog-FvWvdWfk.js → AppDialog-C1cvE0gH.js} +1 -1
  59. package/dist/web/assets/{AppTerminalPanel-Dfo_tXAE.js → AppTerminalPanel-BFJNR2ik.js} +2 -2
  60. package/dist/web/assets/{AppsView-CKg2_SXF.js → AppsView-CReOofAf.js} +1 -1
  61. package/dist/web/assets/BrowserSidebar-CPxAck2O.js +1 -0
  62. package/dist/web/assets/{CartesianChart-iXtVfIXm.js → CartesianChart-SlZ8Qfkg.js} +1 -1
  63. package/dist/web/assets/{CollaborationTabs-BFuRwsEy.js → CollaborationTabs-DgFEunqQ.js} +1 -1
  64. package/dist/web/assets/{CommandMenu-Coahy7-K.js → CommandMenu-BiROlSdv.js} +1 -1
  65. package/dist/web/assets/CommunityView-DVST_ZxO.js +1 -0
  66. package/dist/web/assets/ComposerCreateImproveStrip-jRBhdiFB.js +1 -0
  67. package/dist/web/assets/GetStartedView-Ck4EW1_s.js +1 -0
  68. package/dist/web/assets/HostedModelLearningReview-DYFjp-96.js +1 -0
  69. package/dist/web/assets/HostedModelLearningSettings-BD7quEFA.js +1 -0
  70. package/dist/web/assets/LabModelVersionDetailPage-8-Gb5AAH.js +1 -0
  71. package/dist/web/assets/{LabSkillSidebar-C7BuAuNK.js → LabSkillSidebar-DO-kFl9Z.js} +1 -1
  72. package/dist/web/assets/{LabsRoute-CUVbklNy.js → LabsRoute-Dc9RQKdA.js} +6 -6
  73. package/dist/web/assets/MainChatThread-DZXcFgmJ.js +2 -0
  74. package/dist/web/assets/MainPane-BYrnuI30.js +19 -0
  75. package/dist/web/assets/{MarkdownText-DV3sDJG3.js → MarkdownText-ueZFkEyk.js} +21 -21
  76. package/dist/web/assets/{NativeSkillSidebar-B3wc0iGh.js → NativeSkillSidebar-DlAX2-dH.js} +1 -1
  77. package/dist/web/assets/NewExperienceSwitcher-BHYLG0IZ.js +1 -0
  78. package/dist/web/assets/NewProjectDialog-BwN6SnxR.js +1 -0
  79. package/dist/web/assets/OutputsPage-Q0kpdfq_.js +1 -0
  80. package/dist/web/assets/ProjectsPage-TnlBYfFy.js +1 -0
  81. package/dist/web/assets/{ProjectsPage-DdG-U9ZW.css → ProjectsPage-kun3Ron2.css} +1 -1
  82. package/dist/web/assets/RightChatPanelStack-D2qZ-1nK.js +1 -0
  83. package/dist/web/assets/{RightSidebarHomePanel-DweT04nf.js → RightSidebarHomePanel-q6FF-DR9.js} +1 -1
  84. package/dist/web/assets/ScheduledWorkPage-BTX3Sjoa.js +1 -0
  85. package/dist/web/assets/SettingsView-C7av3zwv.css +1 -0
  86. package/dist/web/assets/SettingsView-gAhNO4Rg.js +9 -0
  87. package/dist/web/assets/{TeamChatView-BoQYnywK.js → TeamChatView-DZtfZ12z.js} +2 -2
  88. package/dist/web/assets/{TerminalOverlay-oLOOTbdP.js → TerminalOverlay-MJqx0xg6.js} +1 -1
  89. package/dist/web/assets/{TrainingCreationPanel-aCFYDuYZ.js → TrainingCreationPanel-ORoKcc3m.js} +1 -1
  90. package/dist/web/assets/{TrainingDraftPanel-CFa1YRTU.js → TrainingDraftPanel-oolNVDIx.js} +1 -1
  91. package/dist/web/assets/{UsageSettingsSection-CakaMl6_.js → UsageSettingsSection-Lh_fLOcC.js} +1 -1
  92. package/dist/web/assets/WorkSidebarPanel-BIqP9SXr.js +1 -0
  93. package/dist/web/assets/WorkspaceDiffPanel-B0Zwyx9a.js +14 -0
  94. package/dist/web/assets/WorkspaceEnvironmentMenu-BpgvG43X.js +32 -0
  95. package/dist/web/assets/{WorkspaceGitDialogs-CE6uwWBo.js → WorkspaceGitDialogs-Bw5ADFuc.js} +1 -1
  96. package/dist/web/assets/{WorkspaceMonacoEditor-Dd1yWxIF.js → WorkspaceMonacoEditor-BpivuGzo.js} +3 -3
  97. package/dist/web/assets/{arrow-up-right-DrBHDOjJ.js → arrow-up-right-BjC4ygxR.js} +1 -1
  98. package/dist/web/assets/{clipboard-BwxTBPCP.js → clipboard-BOJ-sNJz.js} +1 -1
  99. package/dist/web/assets/{cloud-upload-Ce9uYXcQ.js → cloud-upload-D-_3UWhI.js} +1 -1
  100. package/dist/web/assets/{cssMode-DDD1HmKz.js → cssMode-CnHRib-_.js} +1 -1
  101. package/dist/web/assets/{folder-open-BmWqQp0P.js → folder-open-CO3Vz0rT.js} +1 -1
  102. package/dist/web/assets/{folder-plus-B402AJf4.js → folder-plus-CL6B10XJ.js} +1 -1
  103. package/dist/web/assets/{git-commit-horizontal-C1uAivqm.js → git-commit-horizontal-C_SNHoOD.js} +1 -1
  104. package/dist/web/assets/git-dialogs-C-F47S10.css +1 -0
  105. package/dist/web/assets/{htmlMode-1MNILRvh.js → htmlMode-DBpIV7Gx.js} +1 -1
  106. package/dist/web/assets/{index-CPTsOhRN.js → index-Dx0lr1R3.js} +2 -2
  107. package/dist/web/assets/index-lqk3IxE0.css +1 -0
  108. package/dist/web/assets/{info-BNROwjpD.js → info-C1C3X2vW.js} +1 -1
  109. package/dist/web/assets/{jsonMode-mGxJ8u70.js → jsonMode-B9puI-La.js} +1 -1
  110. package/dist/web/assets/{lspLanguageFeatures-DnwAgCyz.js → lspLanguageFeatures-DwPRvLkn.js} +1 -1
  111. package/dist/web/assets/{minimize-2-DFgldo5D.js → minimize-2-Cr76Lc_J.js} +1 -1
  112. package/dist/web/assets/{monaco.contribution-BlgPPKyd.js → monaco.contribution-CnlZLXhW.js} +2 -2
  113. package/dist/web/assets/{monaco.contribution-CBuz55_x.js → monaco.contribution-DKa3PSXH.js} +2 -2
  114. package/dist/web/assets/{monaco.contribution-qZ9QzQ68.js → monaco.contribution-DQxsY08y.js} +2 -2
  115. package/dist/web/assets/{monaco.contribution-CGYtN1vj.js → monaco.contribution-OemObo_b.js} +2 -2
  116. package/dist/web/assets/monitor-CktBkAZk.js +1 -0
  117. package/dist/web/assets/{python-CpsWHcA8.js → python-CVC74_7Q.js} +1 -1
  118. package/dist/web/assets/refresh-cw-JaxiGpHD.js +1 -0
  119. package/dist/web/assets/{save-8XYI0E0Y.js → save-DFm1K29k.js} +1 -1
  120. package/dist/web/assets/{square-FQ0GLxuE.js → square-D5fFhDFt.js} +1 -1
  121. package/dist/web/assets/{toggleHighContrast-CX2hgvvU.js → toggleHighContrast-D_EkCruq.js} +1 -1
  122. package/dist/web/assets/{tsMode-D9XBNmxG.js → tsMode-BczIS4rA.js} +1 -1
  123. package/dist/web/assets/{upload-BNXILcvp.js → upload-DvED7nbd.js} +1 -1
  124. package/dist/web/assets/{useLocalAgentSchedules-Ccst1Wnz.js → useLocalAgentSchedules-DWd5OvYb.js} +1 -1
  125. package/dist/web/assets/useSessionTurnCache-oMoxBcGj.js +1 -0
  126. package/dist/web/assets/{wifi-off-BoQdtnnN.js → wifi-off-BZL-Op_B.js} +1 -1
  127. package/dist/web/assets/{workers-DpMJzLwE.js → workers-DapCJCaQ.js} +1 -1
  128. package/dist/web/assets/{yaml-BqS3gPsN.js → yaml-DB9KLqu1.js} +1 -1
  129. package/dist/web/index.html +2 -2
  130. package/docs/command-reference.md +1 -0
  131. package/package.json +1 -1
  132. package/dist/chunks/app-server-runtime-SNSNFJW7.js +0 -2
  133. package/dist/chunks/chunk-3YSCXFE6.js +0 -5
  134. package/dist/chunks/chunk-DDRIX3EP.js +0 -40
  135. package/dist/chunks/chunk-P57W2CB2.js +0 -6
  136. package/dist/chunks/cli-DCFZ4GT6.js +0 -2
  137. package/dist/chunks/extension-IQW2KDT6.js +0 -6
  138. package/dist/chunks/opchat-BSTDLB7O.js +0 -3
  139. package/dist/chunks/src-G3GYZMCL.js +0 -323
  140. package/dist/web/assets/App-eRfSvxdE.js +0 -226
  141. package/dist/web/assets/BrowserSidebar-CBRz9dVj.js +0 -1
  142. package/dist/web/assets/CommunityView-C0B6EVIp.js +0 -1
  143. package/dist/web/assets/ComposerCreateImproveStrip-C0MkRhov.js +0 -1
  144. package/dist/web/assets/GetStartedView-f90pfPRp.js +0 -1
  145. package/dist/web/assets/HostedModelLearningReview-DdZnSPKb.js +0 -1
  146. package/dist/web/assets/HostedModelLearningSettings-p9RdBxGd.js +0 -1
  147. package/dist/web/assets/LabModelVersionDetailPage-DLqT1fMT.js +0 -1
  148. package/dist/web/assets/MainChatThread-Crjs_iFv.js +0 -2
  149. package/dist/web/assets/MainPane-Bl91XbhC.js +0 -10
  150. package/dist/web/assets/Messages-Bxo_ATcK.js +0 -10
  151. package/dist/web/assets/NewExperienceSwitcher-DBdsaysM.js +0 -1
  152. package/dist/web/assets/NewProjectDialog-CtJJ6u5l.js +0 -1
  153. package/dist/web/assets/OutputsPage-CV9rYjbQ.js +0 -1
  154. package/dist/web/assets/ProjectsPage-O162K_Yb.js +0 -1
  155. package/dist/web/assets/RightChatPanelStack-CXzHpD5V.js +0 -1
  156. package/dist/web/assets/ScheduledWorkPage-DFvjzhvz.js +0 -1
  157. package/dist/web/assets/SettingsView-B-O30p4h.js +0 -9
  158. package/dist/web/assets/SettingsView-BaWWvIJW.css +0 -1
  159. package/dist/web/assets/WorkSidebarPanel-XFwuIBFa.js +0 -1
  160. package/dist/web/assets/WorkspaceDiffPanel-CL-lAcvW.js +0 -14
  161. package/dist/web/assets/WorkspaceEnvironmentMenu-DcFKeae1.js +0 -32
  162. package/dist/web/assets/chat-file-links-DKYaOINv.js +0 -1
  163. package/dist/web/assets/chevron-up-CT-jxFh0.js +0 -1
  164. package/dist/web/assets/desktop-files-BQj1J-ob.js +0 -1
  165. package/dist/web/assets/git-dialogs-BZDqS1eT.css +0 -1
  166. package/dist/web/assets/index-BZ4iTv8E.css +0 -1
  167. package/dist/web/assets/play-BQFyTfNz.js +0 -1
  168. package/dist/web/assets/refresh-cw-DfFBmfXv.js +0 -1
@@ -1 +1 @@
1
- import{j as e}from"./index-CPTsOhRN.js";import{m as o,bl as c,X as n}from"./App-eRfSvxdE.js";import{M as d}from"./minimize-2-DFgldo5D.js";function x({expanded:s,skill:a,onClose:i,onResizeStart:r,onToggleExpanded:l}){const t=a.path.split("/").at(-1)??a.path;return e.jsxs("aside",{className:`workspace-diff-panel native-skill-sidebar ${s?"expanded":""}`,"aria-label":`Skill source: ${a.name}`,children:[s?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize native skill source",onPointerDown:r}),e.jsxs("div",{className:"workspace-diff-topbar native-skill-sidebar-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Native skill files",children:e.jsxs("button",{className:"workspace-diff-tab active",type:"button",role:"tab","aria-selected":!0,children:[e.jsx(o,{size:14}),e.jsx("span",{children:t})]})}),e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsx("button",{className:"diff-icon-button",type:"button",title:s?"Dock sidebar":"Expand sidebar","aria-label":s?"Dock sidebar":"Expand sidebar",onClick:l,children:s?e.jsx(d,{size:14}):e.jsx(c,{size:14})}),e.jsx("button",{className:"diff-icon-button",type:"button",title:"Close skill source","aria-label":"Close skill source",onClick:i,children:e.jsx(n,{size:14})})]})]}),e.jsxs("div",{className:"native-skill-sidebar-body",children:[e.jsxs("header",{className:"native-skill-source-header",children:[e.jsx("h2",{children:a.name}),e.jsx("p",{children:a.description}),e.jsx("code",{children:a.path})]}),e.jsx("pre",{className:"native-skill-markdown-source","aria-label":`${a.name} Markdown source`,children:e.jsx("code",{children:a.body})})]})]})}export{x as NativeSkillSidebar};
1
+ import{j as e}from"./index-Dx0lr1R3.js";import{m as o,bC as c,X as n}from"./App-BcbjzSeU.js";import{M as d}from"./minimize-2-Cr76Lc_J.js";function x({expanded:s,skill:a,onClose:i,onResizeStart:r,onToggleExpanded:l}){const t=a.path.split("/").at(-1)??a.path;return e.jsxs("aside",{className:`workspace-diff-panel native-skill-sidebar ${s?"expanded":""}`,"aria-label":`Skill source: ${a.name}`,children:[s?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize native skill source",onPointerDown:r}),e.jsxs("div",{className:"workspace-diff-topbar native-skill-sidebar-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Native skill files",children:e.jsxs("button",{className:"workspace-diff-tab active",type:"button",role:"tab","aria-selected":!0,children:[e.jsx(o,{size:14}),e.jsx("span",{children:t})]})}),e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsx("button",{className:"diff-icon-button",type:"button",title:s?"Dock sidebar":"Expand sidebar","aria-label":s?"Dock sidebar":"Expand sidebar",onClick:l,children:s?e.jsx(d,{size:14}):e.jsx(c,{size:14})}),e.jsx("button",{className:"diff-icon-button",type:"button",title:"Close skill source","aria-label":"Close skill source",onClick:i,children:e.jsx(n,{size:14})})]})]}),e.jsxs("div",{className:"native-skill-sidebar-body",children:[e.jsxs("header",{className:"native-skill-source-header",children:[e.jsx("h2",{children:a.name}),e.jsx("p",{children:a.description}),e.jsx("code",{children:a.path})]}),e.jsx("pre",{className:"native-skill-markdown-source","aria-label":`${a.name} Markdown source`,children:e.jsx("code",{children:a.body})})]})]})}export{x as NativeSkillSidebar};
@@ -0,0 +1 @@
1
+ import{j as a}from"./index-Dx0lr1R3.js";import{bX as i}from"./App-BcbjzSeU.js";function f({value:s,onChange:o,allowPonder:c=!1}){const t=c?[{value:"ponder",label:"Ponder Pal"},...i]:i,p=(e,l)=>{let r;if(e.key==="Home")r=0;else if(e.key==="End")r=t.length-1;else if(e.key==="ArrowRight"||e.key==="ArrowDown")r=(l+1)%t.length;else if(e.key==="ArrowLeft"||e.key==="ArrowUp")r=(l-1+t.length)%t.length;else return;e.preventDefault();const n=t[r];if(!n)return;o(n.value),e.currentTarget.parentElement?.querySelectorAll(".new-experience-option")?.[r]?.focus()};return a.jsx("div",{className:"new-experience-switcher",role:"radiogroup","aria-label":"Choose task mode",children:t.map((e,l)=>{const r=e.value===s;return a.jsx("button",{type:"button",role:"radio","aria-checked":r,className:`new-experience-option ${r?"active":""}`,"data-experience":e.value,tabIndex:r?0:-1,onClick:()=>{r||o(e.value)},onKeyDown:n=>p(n,l),children:e.label},e.value)})})}export{f as NewExperienceSwitcher};
@@ -0,0 +1 @@
1
+ import{r as n,j as e}from"./index-Dx0lr1R3.js";import{X as D,i as B,F as z}from"./App-BcbjzSeU.js";import{F as $}from"./folder-open-CO3Vz0rT.js";import{F as w}from"./folder-plus-CL6B10XJ.js";import{M as q}from"./monitor-CktBkAZk.js";function Q({open:h,mode:N="local",name:i,path:f,directory:S,busy:a,onNameChange:x,onPathChange:v,onClose:g,onSubmit:A}){const[o,y]=n.useState([]),[u,b]=n.useState(""),[C,p]=n.useState(""),[F,P]=n.useState(!1),k=n.useRef(null),E=n.useRef(null);if(n.useEffect(()=>{if(h)return k.current=document.activeElement instanceof HTMLElement?document.activeElement:null,()=>k.current?.focus()},[h]),!h)return null;const c=N==="cloud",l=N==="existing-local",L=c?B:l?$:w,K=c?"New Cloud Project":l?"Create project":"New Local Project",M=c?"Create a hosted project in OpenPond Cloud.":"Create a new local Git project and add it to Projects.",d=!!window.openpond?.selectFolder,O=d?"This computer":"Connected computer",j=async()=>{if(!d&&!F){P(!0);return}const t=d?await window.openpond.selectFolder():{path:f.trim(),canceled:!1},r=t.path?.trim();if(!(!r||t.canceled)){if(o.includes(r)){p("This folder is already selected.");return}y(s=>[...s,r]),u||b(r),i.trim()||x(r.split(/[\\/]/).filter(Boolean).at(-1)??r),d||(v(""),P(!1)),p("")}},R=a||(l?!i.trim()||o.length===0:!i.trim()),T=a?"Creating":c?"Create Cloud Project":"Create project";return e.jsx("div",{className:"git-dialog-backdrop",role:"presentation",onKeyDown:t=>{t.key==="Escape"&&!a&&(t.stopPropagation(),g())},children:e.jsxs("form",{ref:E,className:`git-dialog new-project-dialog${l?" new-project-collection":""}`,role:"dialog","aria-modal":"true","aria-label":"Create project",onKeyDown:t=>{if(t.key!=="Tab")return;const r=Array.from(E.current?.querySelectorAll("button:not(:disabled), input:not(:disabled)")??[]);if(!r.length)return;const s=r[0],m=r.at(-1);t.shiftKey&&document.activeElement===s?(t.preventDefault(),m?.focus()):!t.shiftKey&&document.activeElement===m&&(t.preventDefault(),s?.focus())},onSubmit:async t=>{t.preventDefault(),p(""),await A(l?{name:i.trim(),sourceFolders:o,primaryFolder:u}:void 0)||p("Project could not be created. Check the selected folders and try again.")},children:[e.jsx("button",{className:"git-dialog-close",disabled:a,type:"button",onClick:g,children:e.jsx(D,{size:14})}),l?null:e.jsx("div",{className:"git-dialog-icon",children:e.jsx(L,{size:18})}),e.jsx("h2",{children:K}),l?null:e.jsx("p",{children:M}),l?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"new-project-name-field",children:[e.jsx(z,{size:16,"aria-hidden":"true"}),e.jsx("input",{autoFocus:!0,"aria-label":"Project name",disabled:a,value:i,onChange:t=>x(t.target.value),placeholder:"Project name"})]}),e.jsxs("div",{className:"new-project-source-heading",children:[e.jsx("span",{children:"Source folders"}),o.length?e.jsxs("span",{children:[e.jsx(q,{size:15,"aria-hidden":"true"}),O]}):null]}),e.jsxs("div",{className:`new-project-source-box${o.length?" populated":" empty"}`,children:[o.length===0?e.jsxs("div",{className:"new-project-empty-source",children:[e.jsxs("span",{children:["Add a folder on ",d?"this":"the connected"," computer"]}),e.jsxs("button",{type:"button",disabled:a,onClick:()=>{j()},children:[e.jsx(w,{size:14,"aria-hidden":"true"}),"Add"]})]}):e.jsx("ul",{className:"new-project-folder-list",children:o.map(t=>e.jsxs("li",{className:"new-project-folder-row",children:[e.jsx(z,{size:15,"aria-hidden":"true"}),e.jsx("span",{title:t,"aria-label":t,children:t.split(/[\\/]/).filter(Boolean).at(-1)??t}),u===t?e.jsx("span",{className:"new-project-primary-pill",children:"Primary"}):e.jsx("button",{className:"new-project-make-primary",type:"button",disabled:a,onClick:()=>b(t),children:"Make primary"}),e.jsx("button",{className:"new-project-remove",type:"button",disabled:a,"aria-label":`Remove ${t}`,onClick:()=>{y(r=>{const s=r.filter(m=>m!==t);return u===t&&b(s[0]??""),s})},children:e.jsx(D,{size:14,"aria-hidden":"true"})})]},t))}),o.length?e.jsxs("button",{className:"new-project-add-row",type:"button",disabled:a,onClick:()=>{j()},children:[e.jsx(w,{size:15,"aria-hidden":"true"}),"Add folder"]}):null,F?e.jsxs("label",{className:"new-project-manual-path",children:[e.jsx("span",{children:"Folder path on connected computer"}),e.jsx("input",{value:f,onChange:t=>v(t.target.value),placeholder:"/path/to/folder",onKeyDown:t=>{t.key==="Enter"&&(t.preventDefault(),j())}}),e.jsx("button",{type:"button",disabled:!f.trim(),onClick:()=>{j()},children:"Add folder"})]}):null]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"git-dialog-field",children:[e.jsx("span",{children:"Project name"}),e.jsx("input",{autoFocus:!0,disabled:a,placeholder:"New project",value:i,onChange:t=>x(t.target.value)})]}),e.jsxs("div",{className:"git-dialog-row",children:[e.jsx("span",{children:"Location"}),e.jsx("strong",{className:"git-dialog-path",children:c?"OpenPond Cloud":S})]})]}),C?e.jsx("p",{className:"new-project-error",role:"alert",children:C}):null,e.jsxs("div",{className:"new-project-footer",children:[e.jsx("button",{className:"new-project-cancel",type:"button",disabled:a,onClick:g,children:"Cancel"}),e.jsx("button",{className:"git-dialog-primary",disabled:R,type:"submit",children:T})]})]})})}export{Q as NewProjectDialog};
@@ -0,0 +1 @@
1
+ import{r as i,j as e}from"./index-Dx0lr1R3.js";import{w as W,bf as A,b8 as D,X as B,m as R}from"./App-BcbjzSeU.js";import{s as M,b as z,C as K,F as X}from"./MarkdownText-ueZFkEyk.js";import{F as q,I as H,b as Y,d as V,e as G}from"./MainPane-BYrnuI30.js";import{F as J}from"./folder-open-CO3Vz0rT.js";import"./cloud-upload-D-_3UWhI.js";import"./arrow-up-right-BjC4ygxR.js";import"./square-D5fFhDFt.js";import"./refresh-cw-JaxiGpHD.js";const Q="application/vnd.openxmlformats-officedocument.wordprocessingml.document",Z="application/vnd.openxmlformats-officedocument.presentationml.presentation",tt="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";function x(t){const s=t.contentType.toLowerCase(),o=t.title.toLowerCase();return s===Q||o.endsWith(".docx")?{label:"Document",type:"document"}:s==="application/pdf"||o.endsWith(".pdf")?{label:"PDF",type:"pdf"}:s===Z||o.endsWith(".pptx")?{label:"Presentation",type:"presentation"}:s===tt||s==="text/csv"||s==="text/tab-separated-values"||o.endsWith(".xlsx")||o.endsWith(".csv")||o.endsWith(".tsv")?{label:"Table",type:"table"}:s==="text/html"||o.endsWith(".html")?{label:"HTML",type:"html"}:s==="application/json"||s==="text/markdown"||s==="text/plain"?{label:"Text",type:"text"}:s.startsWith("image/")?{label:"Image",type:"image"}:s.startsWith("audio/")?{label:"Audio",type:"audio"}:s.startsWith("video/")?{label:"Video",type:"video"}:{label:"File",type:"file"}}function et(t){return[...t].sort((s,o)=>P(o.createdAt)-P(s.createdAt)||o.revision-s.revision)}function P(t){const s=new Date(t).getTime();return Number.isNaN(s)?0:s}const st=15e3,f=new Map;function nt(t){const s=i.useMemo(()=>t?_(t):null,[t]),o=s?L(s):null,[a,r]=i.useState(o??[]),[j,h]=i.useState(!!t&&!o),[b,d]=i.useState(null);return i.useEffect(()=>{let p=!1;if(!t||!s){r([]),h(!1),d(null);return}const m=L(s);return r(m??[]),h(!m),d(null),ot(t).then(l=>{p||r(l)}).catch(l=>{p||d(rt(l))}).finally(()=>{p||h(!1)}),()=>{p=!0}},[s,t]),{error:b,loading:j,outputs:a}}function L(t){const s=f.get(t);return s&&s.refreshedAt>0?s.outputs:null}function ot(t){const s=_(t),o=f.get(s);if(o?.request)return o.request;if(o&&o.refreshedAt>0&&Date.now()-o.refreshedAt<st)return Promise.resolve(o.outputs);const a=W.workOutputs(t).then(r=>et(r.outputs)).then(r=>(f.set(s,{outputs:r,refreshedAt:Date.now(),request:null}),r)).catch(r=>{throw o?f.set(s,{...o,request:null}):f.delete(s),r});return f.set(s,{outputs:o?.outputs??[],refreshedAt:o?.refreshedAt??0,request:a}),a}function _(t){return`${t.serverUrl}\0${t.token}`}function rt(t){return t instanceof Error?t.message:"Could not load Work outputs."}const v="all",at=new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"});function Tt({connection:t,onViewChat:s}){const{error:o,loading:a,outputs:r}=nt(t),[j,h]=i.useState(v),[b,d]=i.useState(null),[p,m]=i.useState(null),[l,T]=i.useState(null);i.useEffect(()=>()=>{l?.objectUrl&&URL.revokeObjectURL(l.objectUrl)},[l?.objectUrl]);const k=i.useMemo(()=>Array.from(new Set(r.map(n=>x(n).label))).sort((n,u)=>n.localeCompare(u)),[r]),y=k.includes(j)?j:v,w=i.useMemo(()=>y===v?r:r.filter(n=>x(n).label===y),[y,r]);async function I(n){if(!t)return;const u=S(n);m(u),d(null);try{const c=await W.workspaceTool(t,n.sourceTaskId,{action:"work_output_read",source:"ui_button",args:{outputId:n.id,revision:n.revision}});if(!c.ok)throw new Error(c.output);const F=pt(c.data),O=typeof F.contentsBase64=="string"?F.contentsBase64:"";if(!O)throw new Error("The output did not include file data.");const N=new File([dt(O)],n.title,{type:n.contentType}),U=x(n),E=U.type==="text"||U.type==="html";l?.objectUrl&&URL.revokeObjectURL(l.objectUrl),T({file:N,objectUrl:E?null:URL.createObjectURL(N),output:n,text:E?await N.text():null})}catch(c){d(ft(c))}finally{m(null)}}async function C(n){if(n.location.kind!=="local")return;const u=await M(n.location.path,n.title);!u.ok&&!u.canceled&&d("Could not save a copy of the Work output.")}return e.jsxs("section",{"aria-label":"Outputs",className:`outputs-view${l?" detail-open":""}`,children:[e.jsx("div",{className:"outputs-scroll",children:e.jsxs("div",{className:"outputs-content",children:[r.length>0?e.jsx("header",{className:"outputs-header",children:e.jsx("label",{className:"outputs-filter",children:e.jsxs("select",{"aria-label":"Filter files by file type",onChange:n=>h(n.target.value),value:y,children:[e.jsx("option",{value:v,children:"All file types"}),k.map(n=>e.jsx("option",{value:n,children:n},n))]})})}):null,o||b?e.jsx("p",{className:"outputs-error",children:b??o}):null,t?a&&r.length===0?e.jsxs("div",{className:"outputs-loading",role:"status",children:[e.jsx(A,{className:"outputs-spin",size:16}),e.jsx("span",{children:"Loading files"})]}):r.length===0?e.jsx(g,{children:"Files created in Work will appear here."}):w.length===0?e.jsx(g,{children:"No files match this file type."}):e.jsx("div",{className:"outputs-grid","data-testid":"desktop-output-cards",children:w.map(n=>{const u=x(n),c=S(n);return e.jsxs("article",{className:"output-card",children:[e.jsxs("button",{"aria-label":`Preview ${n.title}`,className:"output-card-main",disabled:p===c,onClick:()=>{I(n)},type:"button",children:[e.jsx("span",{className:"output-card-icon",children:e.jsx($,{type:u.type})}),e.jsxs("span",{className:"output-card-copy",children:[e.jsx("strong",{children:n.title}),e.jsxs("small",{children:[u.label," · ",ut(n.sizeBytes)]}),e.jsxs("small",{children:["Revision ",n.revision," ·"," ",e.jsx("time",{dateTime:n.createdAt,children:ct(n.createdAt)})]})]}),p===c?e.jsx(A,{className:"outputs-spin",size:15}):null]}),e.jsxs("div",{className:"output-card-actions",children:[n.location.kind==="local"?e.jsx("button",{"aria-label":`Download ${n.title}`,className:"output-download-button",onClick:()=>{C(n)},title:"Download",type:"button",children:e.jsx(D,{"aria-hidden":"true",size:14})}):null,e.jsx("button",{onClick:()=>s(n.sourceTaskId),type:"button",children:"View chat"})]})]},c)})}):e.jsx(g,{children:"Connect to the local OpenPond server to view outputs."})]})}),l?e.jsx(lt,{onClose:()=>T(null),onSave:()=>{C(l.output)},onViewChat:()=>s(l.output.sourceTaskId),preview:l}):null]})}function lt({onClose:t,onSave:s,onViewChat:o,preview:a}){const r=x(a.output);return e.jsxs("aside",{"aria-label":`${a.output.title} preview`,className:"output-detail",children:[e.jsxs("header",{className:"output-detail-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:a.output.title}),e.jsxs("p",{children:[r.label," · Revision ",a.output.revision]})]}),e.jsx("button",{"aria-label":"Close output preview",onClick:t,type:"button",children:e.jsx(B,{size:16})})]}),e.jsx("div",{className:"output-preview-surface",children:a.text!==null?r.type==="html"?e.jsx("iframe",{sandbox:"",srcDoc:a.text,title:a.output.title}):e.jsx("pre",{children:a.text}):r.type==="image"&&a.objectUrl?e.jsx("img",{alt:a.output.title,src:a.objectUrl}):r.type==="pdf"&&a.objectUrl?e.jsx("iframe",{src:a.objectUrl,title:a.output.title}):r.type==="audio"&&a.objectUrl?e.jsx("audio",{controls:!0,src:a.objectUrl}):r.type==="video"&&a.objectUrl?e.jsx("video",{controls:!0,src:a.objectUrl}):e.jsxs("div",{className:"output-native-preview",children:[e.jsx($,{type:r.type}),e.jsx("p",{children:"This file type uses its native application for detailed review."})]})}),e.jsxs("div",{className:"output-detail-actions",children:[a.output.location.kind==="local"?e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>{z(a.output.location.kind==="local"?a.output.location.path:"")},type:"button",children:[e.jsx(J,{size:14}),"Reveal"]}),e.jsx("button",{"aria-label":`Download ${a.output.title}`,className:"output-download-button",onClick:s,title:"Download",type:"button",children:e.jsx(D,{"aria-hidden":"true",size:14})})]}):null,e.jsx("button",{onClick:o,type:"button",children:"View chat"})]})]})}function $({type:t}){const s=it(t);return e.jsx(s,{"aria-hidden":"true",size:18})}function it(t){return t==="audio"?q:t==="html"||t==="text"?K:t==="image"?H:t==="presentation"?Y:t==="table"?V:t==="video"?G:t==="file"?X:R}function g({children:t}){return e.jsx("p",{className:"outputs-empty",children:t})}function S(t){return`${t.sourceTaskId}:${t.id}:${t.revision}`}function ut(t){return t<1e3?`${t} B`:t<1e6?`${(t/1e3).toFixed(1)} KB`:`${(t/1e6).toFixed(1)} MB`}function ct(t){const s=new Date(t);return Number.isNaN(s.getTime())?"Unknown date":at.format(s)}function dt(t){const s=window.atob(t),o=new ArrayBuffer(s.length),a=new Uint8Array(o);for(let r=0;r<s.length;r+=1)a[r]=s.charCodeAt(r);return o}function pt(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function ft(t){return t instanceof Error?t.message:"Could not load Work outputs."}export{Tt as OutputsPage};
@@ -0,0 +1 @@
1
+ import{j as e,r as h}from"./index-Dx0lr1R3.js";import{dG as ee,w as L,g as te,ax as W,an as F,bE as _,aR as O,be as A,i as M,aV as $}from"./App-BcbjzSeU.js";import{C as V}from"./cloud-upload-D-_3UWhI.js";function H(t,s){const r=t.project.sourceLabel?.trim()??"";if(t.project.sourceType==="github_repo"&&r){if(/^https?:\/\//i.test(r))return r;if(/^[^/\s]+\/[^/\s]+$/.test(r))return`https://github.com/${r}`}return ee({accountBaseUrl:s,organizationSlug:t.project.organizationSlug,projectSlug:t.project.slug})}function re(t,s){return t.kind==="cloud"?H(t,s):t.project.linkedSandboxProject?.sourceRepoUrl??null}function I(t){return t.replace(/^https?:\/\//i,"").replace(/\/$/,"")}async function k(t){const s=window.openpond?.browser;if(s){const r=await s.openExternal({conversationId:"projects",url:t});if(!r.ok)throw new Error(r.error??"Unable to open project URL.");return}window.open(t,"_blank","noopener,noreferrer")}function se({loading:t,workspace:s,linked:r,unavailable:n}){if(t)return e.jsx(c,{children:"Loading environments…"});if(!r)return e.jsx(c,{children:"Upload this local project to create cloud development environments."});if(n)return e.jsx(c,{error:!0,children:"Unable to load environments."});if(!s?.environments.length)return e.jsx(c,{children:"No development environment has been created for this project yet."});const o=ce(s);return e.jsx(G,{headings:["Environment","Status","Branch","Default","Updated"],children:s.environments.map(({sandbox:a,runtime:l})=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:de(a.metadata,a.id)})}),e.jsx("td",{children:e.jsx(D,{status:a.state})}),e.jsx("td",{children:e.jsx("code",{children:l?.baseBranch??a.repoRef??"Not available"})}),e.jsx("td",{children:a.id===o?"Preferred":"—"}),e.jsx("td",{children:q(a.updatedAt)})]},a.id))})}function ne({loading:t,workspace:s,linked:r,unavailable:n}){return t?e.jsx(c,{children:"Loading deployments…"}):r?n?e.jsx(c,{error:!0,children:"Unable to load deployments."}):s?.errors.deployments?e.jsx(c,{error:!0,children:"Unable to load deployments."}):s?.website?s.deployments.length?e.jsx(G,{headings:["Deployment","Status","Commit","Build","Created by","Created"],children:s.deployments.map(o=>e.jsx(le,{deployment:o},o.release.id))}):e.jsx(c,{children:"No deployments yet."}):e.jsx(c,{children:"Set up Website before creating a deployment."}):e.jsx(c,{children:"Upload this local project before creating deployments."})}function ie({loading:t,workspace:s,linked:r,unavailable:n}){const[o,a]=h.useState(null);return t?e.jsx(c,{children:"Loading requests…"}):r?n?e.jsx(c,{error:!0,children:"Unable to load requests."}):s?.errors.requests?e.jsx(c,{error:!0,children:"Unable to load requests."}):s?.website?s.requests.length?e.jsx("div",{className:"project-detail-table-frame",children:e.jsxs("table",{className:"project-detail-table project-request-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Request"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Runtime"}),e.jsx("th",{children:"Started"}),e.jsx("th",{children:"Duration"})]})}),s.requests.map(l=>{const p=o===l.id;return e.jsxs("tbody",{children:[e.jsxs("tr",{"aria-expanded":p,className:"project-request-row",onClick:()=>a(j=>j===l.id?null:l.id),children:[e.jsxs("td",{children:[e.jsx("code",{children:l.method})," ",je(l.path)]}),e.jsx("td",{children:e.jsx(D,{status:String(l.responseStatus),tone:l.outcome==="failure"?"error":"success"})}),e.jsx("td",{children:l.coldStart===null?"Unknown":l.coldStart?"Cold":"Warm"}),e.jsx("td",{children:q(l.startedAt)}),e.jsx("td",{children:K(l.totalDurationMs)})]}),p?e.jsx(ae,{trace:l}):null]},l.id)})]})}):e.jsx(c,{children:"No requests yet."}):e.jsx(c,{children:"Set up Website to receive requests."}):e.jsx(c,{children:"Upload this local project and set up Website to receive requests."})}function oe({loading:t,workspace:s,linked:r,unavailable:n}){if(t)return e.jsx(c,{children:"Loading website…"});if(!r)return e.jsx(c,{children:"Upload this local project before setting up Website."});if(n)return e.jsx(c,{error:!0,children:"Unable to load the website."});if(s?.errors.website)return e.jsx(c,{error:!0,children:"Unable to load the website."});const o=s?.website??null,a=o?.settings.platformDomain?`https://${o.settings.platformDomain}`:null,l=o?.releases.find(j=>j.id===o.settings.activeReleaseId)?.sourceCommitSha??null,p=[["Public URL",a?e.jsx("a",{href:a,onClick:j=>{j.preventDefault(),k(a)},children:I(a)}):"Not assigned"],["Live release",o?.settings.activeReleaseId?"Active":"Not published"],["Source",l?J(l):"Not available"],["Account database",ue(s)],["Availability",o?.settings.runtimePolicy?.availabilityMode==="always_on"?"Always on":"On demand"]];return e.jsxs("div",{className:"project-detail-table-frame",children:[e.jsxs("table",{className:"project-detail-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Setting"}),e.jsx("th",{children:"Value"})]})}),e.jsx("tbody",{children:p.map(([j,d])=>e.jsxs("tr",{children:[e.jsx("td",{children:j}),e.jsx("td",{children:d})]},j))})]}),o?null:e.jsx("div",{className:"project-detail-table-note",children:"Website has not been set up for this project."})]})}function G({headings:t,children:s}){return e.jsx("div",{className:"project-detail-table-frame",children:e.jsxs("table",{className:"project-detail-table",children:[e.jsx("thead",{children:e.jsx("tr",{children:t.map(r=>e.jsx("th",{children:r},r))})}),e.jsx("tbody",{children:s})]})})}function c({children:t,error:s=!1}){return e.jsx("div",{className:`project-detail-empty${s?" error":""}`,children:t})}function D({status:t,tone:s}){return e.jsx("span",{className:`project-detail-status${s?` ${s}`:""}`,children:t.replaceAll("_"," ")})}function le({deployment:t}){const{build:s,release:r}=t;return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("strong",{children:["v",r.version]})}),e.jsx("td",{children:e.jsx(D,{status:r.status,tone:r.status==="failed"?"error":r.status==="active"||r.status==="ready"?"success":void 0})}),e.jsx("td",{children:e.jsx("code",{children:r.sourceCommitSha?J(r.sourceCommitSha):"Not available"})}),e.jsx("td",{children:s?`${s.status.replaceAll("_"," ")} · ${s.currentStage.replaceAll("_"," ")}`:"Not started"}),e.jsx("td",{children:t.creatorName??"Unknown"}),e.jsx("td",{children:q(r.createdAt)})]})}function ae({trace:t}){return e.jsx("tr",{className:"project-request-detail",children:e.jsxs("td",{colSpan:5,children:[e.jsx("dl",{children:t.stages.map((s,r)=>e.jsxs("div",{children:[e.jsxs("dt",{children:[s.name.replaceAll("_"," "),s.errorCode?` · ${s.errorCode}`:""]}),e.jsx("dd",{children:K(s.durationMs)})]},`${s.name}:${r}`))}),t.errorCode?e.jsx("p",{children:t.errorCode}):null]})})}function ce(t){const s=t.project.metadata.preferredDevelopmentSandboxId;return typeof s=="string"&&s.trim()?s:null}function de(t,s){for(const r of["name","label","environmentName"]){const n=t[r];if(typeof n=="string"&&n.trim())return n}return s.length>18?s.slice(0,18):s}function ue(t){return t?.website?t.errors.database?"Unavailable":t.database?.status==="ready"?`Connected · ${t.database.provider}`:t.database?.status==="provisioning"?"Connecting…":"Not connected":"Set up the website first"}function je(t){const s="/ingress",r=t.indexOf(s);return r===-1?t:`/api${t.slice(r+s.length)||"/"}`}function J(t){return t.length>12?t.slice(0,12):t}function K(t){return t<1e3?`${Math.round(t)} ms`:`${(t/1e3).toFixed(t<1e4?2:1)} s`}function q(t){const s=Date.parse(t);return Number.isFinite(s)?new Date(s).toLocaleString():t}function he({accountBaseUrl:t,connection:s,project:r,taskCount:n,teamName:o,onBack:a,onNewTask:l,onTogglePinned:p,onUploadLocalProject:j}){const[d,u]=h.useState("source"),[b,x]=h.useState(null),[i,f]=h.useState(null),[N,R]=h.useState(!1),[z,T]=h.useState([]),[y,P]=h.useState(!1),[E,B]=h.useState(null),m=fe(r);h.useEffect(()=>{u("source")},[r.id]),h.useEffect(()=>{let U=!0;if(f(null),x(null),R(!1),T([]),B(null),!s)return P(!1),()=>{U=!1};P(!0);const X=m?pe(s,m):Promise.resolve(null),Y=r.kind==="local"?L.localProjectActions(s,r.project.id):Promise.resolve(null);return Promise.allSettled([X,Y]).then(([v,g])=>{if(!U)return;v.status==="fulfilled"&&v.value&&(x(v.value.project),f(v.value.workspace),R(v.value.workspaceUnavailable)),g.status==="fulfilled"&&g.value&&T(g.value.actions.map(ve));const S=[v,g].filter(Z=>Z.status==="rejected");S.length>0&&S.length===+!!m+ +(r.kind==="local")&&B(S[0]?.reason instanceof Error?S[0].reason.message:"Project details could not be loaded."),P(!1)}),()=>{U=!1}},[s,m?.projectId,m?.teamId,r]);const C=h.useMemo(()=>Ne(ye(b),z),[b,z]),w=re(r,t),Q=be({hostedProject:b,project:r,repositoryUrl:w,taskCount:n,teamName:o});return e.jsxs("section",{"aria-label":`${r.project.name} project`,className:"project-detail-view",children:[e.jsxs("header",{className:"project-detail-header",children:[e.jsxs("div",{className:"project-detail-heading",children:[e.jsxs("button",{className:"project-detail-back",onClick:a,type:"button",children:[e.jsx(te,{"aria-hidden":"true",size:15}),e.jsx("span",{children:"Projects"})]}),e.jsx("h1",{children:r.project.name})]}),e.jsxs("div",{className:"project-detail-actions",children:[r.kind==="local"?e.jsxs("button",{onClick:()=>j(r),type:"button",children:[e.jsx(V,{"aria-hidden":"true",size:14}),e.jsx("span",{children:"Upload"})]}):null,w?e.jsxs("button",{onClick:()=>{k(w)},type:"button",children:[e.jsx(W,{"aria-hidden":"true",size:14}),e.jsx("span",{children:"Open repository"})]}):null,e.jsxs("button",{onClick:()=>l(r),type:"button",children:[e.jsx(F,{"aria-hidden":"true",size:14}),e.jsx("span",{children:"New task"})]}),e.jsx("button",{"aria-label":`${r.pinned?"Unpin":"Pin"} ${r.project.name}`,onClick:()=>p(r),title:r.pinned?"Unpin project":"Pin project",type:"button",children:r.pinned?e.jsx(_,{"aria-hidden":"true",size:14}):e.jsx(O,{"aria-hidden":"true",size:14})})]})]}),e.jsxs("div",{"aria-label":"Project detail",className:"project-detail-tabs",role:"tablist",children:[e.jsx("button",{"aria-selected":d==="source",onClick:()=>u("source"),role:"tab",type:"button",children:"Source"}),e.jsxs("button",{"aria-selected":d==="actions",onClick:()=>u("actions"),role:"tab",type:"button",children:["Project Actions",C.length>0?e.jsx("span",{children:C.length}):null]}),e.jsx("button",{"aria-selected":d==="environments",onClick:()=>u("environments"),role:"tab",type:"button",children:"Environments"}),e.jsx("button",{"aria-selected":d==="deployments",onClick:()=>u("deployments"),role:"tab",type:"button",children:"Deployments"}),e.jsx("button",{"aria-selected":d==="requests",onClick:()=>u("requests"),role:"tab",type:"button",children:"Requests"}),e.jsx("button",{"aria-selected":d==="website",onClick:()=>u("website"),role:"tab",type:"button",children:"Website"})]}),E?e.jsx("div",{className:"project-detail-error",role:"alert",children:E}):null,d==="source"?e.jsx(me,{loading:y,rows:Q}):d==="actions"?e.jsx(xe,{actions:C,loading:y}):d==="environments"?e.jsx(se,{linked:!!m,loading:y,unavailable:N,workspace:i}):d==="deployments"?e.jsx(ne,{linked:!!m,loading:y,unavailable:N,workspace:i}):d==="requests"?e.jsx(ie,{linked:!!m,loading:y,unavailable:N,workspace:i}):e.jsx(oe,{linked:!!m,loading:y,unavailable:N,workspace:i})]})}async function pe(t,s){try{const r=await L.getSandboxProjectWorkspace(t,s.projectId,{teamId:s.teamId});return{project:r.project,workspace:r,workspaceUnavailable:!1}}catch{return{project:(await L.getSandboxProject(t,s.projectId,{teamId:s.teamId})).project,workspace:null,workspaceUnavailable:!0}}}function me({loading:t,rows:s}){return e.jsx("div",{className:"project-detail-table-frame",children:e.jsxs("table",{className:"project-detail-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Setting"}),e.jsx("th",{children:"Value"})]})}),e.jsx("tbody",{children:s.map(([r,n])=>e.jsxs("tr",{children:[e.jsx("td",{children:r}),e.jsx("td",{children:t&&r==="Latest commit"?"Loading…":n})]},r))})]})})}function xe({actions:t,loading:s}){return s?e.jsx("div",{className:"project-detail-empty",children:"Loading Project Actions…"}):t.length===0?e.jsx("div",{className:"project-detail-empty",children:"No Project Actions are registered from this source."}):e.jsx("div",{className:"project-detail-table-frame",children:e.jsxs("table",{className:"project-detail-table actions",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Action"}),e.jsx("th",{children:"Description"}),e.jsx("th",{children:"Source"})]})}),e.jsx("tbody",{children:t.map(r=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:r.id})}),e.jsx("td",{children:r.description??"No description"}),e.jsx("td",{children:r.source==="hosted"?"Hosted project":"Local source"})]},`${r.source}:${r.id}`))})]})})}function be(t){const{hostedProject:s,project:r,repositoryUrl:n,taskCount:o,teamName:a}=t,l=r.kind==="local"?r.project.linkedSandboxProject:null,p=s?.gitBranch??s?.defaultBranch??(r.kind==="cloud"?r.project.defaultBranch:l?.defaultBranch)??"Not set",j=s?ge(s):l?.lastUploadedCommit??null,d=s?.sandboxManifestSyncedAt??(r.kind==="cloud"?r.project.syncedAt:l?.syncedAt)??null;return[["Repository",n?e.jsx("a",{href:n,onClick:u=>{u.preventDefault(),k(n)},children:I(n)}):r.kind==="local"?r.project.path:"Not available"],...r.kind==="local"?[["Primary folder",r.project.workspacePath],["Source folders",e.jsx("ul",{className:"project-source-folder-list",children:(r.project.sourceFolders??[r.project.workspacePath]).map(u=>e.jsx("li",{children:u},u))},"source-folders")]]:[],["Branch",p],["Latest commit",j?Se(j):"Not available"],["Last synced",d?ke(d):"Not available"],["Team",a??(r.kind==="cloud"?r.project.organizationName:null)??"Local only"],["Tasks",String(o)]]}function fe(t){if(t.kind==="cloud")return{projectId:t.project.id,teamId:t.project.teamId};const s=t.project.linkedSandboxProject;return s?{projectId:s.projectId,teamId:s.teamId}:null}function ye(t){const s=t?.sandboxActionRegistry?.actions;return Array.isArray(s)?s.flatMap(r=>{if(!r||typeof r!="object"||Array.isArray(r))return[];const n=r,o=typeof(n.id??n.name)=="string"?String(n.id??n.name).trim():"";return o?[{id:o,description:typeof n.description=="string"?n.description:null,source:"hosted"}]:[]}):[]}function ve(t){return{id:t.id,description:t.description??t.label??t.name??null,source:"local"}}function Ne(t,s){const r=new Map;for(const n of[...t,...s])r.has(n.id)||r.set(n.id,n);return Array.from(r.values()).sort((n,o)=>n.id.localeCompare(o.id))}function ge(t){return[t.sourceConfig.commitSha,t.sourceConfig.sourceCommitSha,t.metadata.commitSha,t.metadata.sourceCommitSha,t.templateRemoteSha].find(r=>typeof r=="string"&&!!r.trim())??null}function Se(t){return t.length>12?t.slice(0,12):t}function ke(t){const s=Date.parse(t);return Number.isFinite(s)?new Date(s).toLocaleString():t}const Pe=new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"});function Ie({accountBaseUrl:t,connection:s,projects:r,taskCountByProjectId:n,teamName:o,onNewCloudProject:a,onNewLocalProject:l,onNewTask:p,onTogglePinned:j,onUploadLocalProject:d}){const[u,b]=h.useState(null),x=h.useMemo(()=>r.find(i=>i.id===u)??null,[r,u]);return h.useEffect(()=>{u&&!x&&b(null)},[x,u]),x?e.jsx(he,{accountBaseUrl:t,connection:s,onBack:()=>b(null),onNewTask:p,onTogglePinned:j,onUploadLocalProject:d,project:x,taskCount:n[x.id]??0,teamName:o}):e.jsxs("section",{"aria-label":"Projects",className:"projects-page",children:[e.jsxs("header",{className:"projects-page-header",children:[e.jsxs("div",{children:[e.jsx("h1",{children:"Projects"}),e.jsxs("p",{children:["Local projects on this device and hosted projects for ",o??"your active team","."]})]}),e.jsxs("div",{className:"projects-cloud-actions",children:[e.jsxs("button",{className:"projects-cloud-button",onClick:l,type:"button",children:[e.jsx(A,{"aria-hidden":"true",size:15}),e.jsx("span",{children:"Add project"})]}),e.jsxs("button",{className:"projects-cloud-button",onClick:a,type:"button",children:[e.jsx(M,{"aria-hidden":"true",size:15}),e.jsx("span",{children:"New cloud project"})]})]})]}),r.length===0?e.jsxs("div",{className:"projects-empty",children:[e.jsx(A,{"aria-hidden":"true",size:24}),e.jsx("h2",{children:"No projects yet"}),e.jsx("p",{children:"Add folders from this computer or create a hosted project."})]}):e.jsx("div",{className:"projects-table-frame",children:e.jsxs("table",{className:"projects-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:"Project"}),e.jsx("th",{scope:"col",children:"Location"}),e.jsx("th",{scope:"col",children:"Tasks"}),e.jsx("th",{scope:"col",children:"Updated"}),e.jsx("th",{"aria-label":"Project actions",scope:"col"})]})}),e.jsx("tbody",{children:r.map(i=>{const f=i.project.updatedAt;return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("button",{className:"projects-name-button",onClick:()=>b(i.id),type:"button",children:[e.jsx("span",{className:`projects-kind-icon ${Ce(i)}`,children:$(i)?e.jsx(A,{"aria-hidden":"true",size:16}):e.jsx(M,{"aria-hidden":"true",size:16})}),e.jsx("span",{className:"projects-name-copy",children:e.jsx("strong",{children:i.project.name})})]})}),e.jsx("td",{children:$(i)?e.jsxs("div",{className:"projects-location-cell",children:[e.jsx("span",{className:"projects-location",title:i.project.path,children:i.project.path}),e.jsxs("button",{className:"projects-upload-button",onClick:()=>d(i),title:`Upload ${i.project.name} to the active team`,type:"button",children:[e.jsx(V,{"aria-hidden":"true",size:13}),e.jsx("span",{children:"Upload"})]})]}):e.jsx(we,{accountBaseUrl:t,project:i})}),e.jsx("td",{children:n[i.id]??0}),e.jsx("td",{children:f?e.jsx("time",{dateTime:f,children:Ue(f)}):e.jsx("span",{className:"projects-table-muted",children:"—"})}),e.jsx("td",{children:e.jsxs("div",{className:"projects-row-actions",children:[e.jsx("button",{"aria-label":`Start a new task in ${i.project.name}`,onClick:()=>p(i),title:"New task",type:"button",children:e.jsx(F,{"aria-hidden":"true",size:15})}),e.jsx("button",{"aria-label":`${i.pinned?"Unpin":"Pin"} ${i.project.name}`,onClick:()=>j(i),title:i.pinned?"Unpin project":"Pin project",type:"button",children:i.pinned?e.jsx(_,{"aria-hidden":"true",size:15}):e.jsx(O,{"aria-hidden":"true",size:15})})]})})]},i.id)})})]})})]})}function Ce(t){return $(t)?t.project.linkedSandboxProject&&t.cloudLinkTrusted?"linked":"desktop":"cloud"}function we({accountBaseUrl:t,project:s}){const r=H(s,t);return r?e.jsxs("a",{className:"projects-location-link",href:r,onClick:n=>{n.preventDefault(),k(r)},title:r,children:[e.jsx("span",{children:I(r)}),e.jsx(W,{"aria-hidden":"true",size:12})]}):e.jsx("span",{className:"projects-table-muted",children:"Repository unavailable"})}function Ue(t){const s=Date.parse(t);return Number.isFinite(s)?Pe.format(s):t}export{Ie as ProjectsPage};
@@ -1 +1 @@
1
- .projects-page{display:grid;align-content:start;gap:26px;width:min(1040px,calc(100% - 72px));min-width:0;justify-self:center;padding:42px 0 56px}.projects-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.projects-page-header h1,.projects-empty h2{margin:0;color:var(--text)}.projects-page-header h1{font-size:24px;font-weight:650;line-height:1.15}.projects-page-header p{max-width:650px;margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.projects-cloud-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.projects-cloud-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;flex:0 0 auto;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff14;color:var(--text);padding:0 13px;font-size:13px}.projects-cloud-button:hover{background:#ffffff1f}.projects-table-frame{min-width:0;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:#ffffff05}.projects-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed}.projects-table th,.projects-table td{height:58px;border-bottom:1px solid var(--border);padding:0 14px;color:var(--muted-strong);font-size:12px;text-align:left;vertical-align:middle}.projects-table th{height:38px;color:var(--muted);font-size:11px;font-weight:550}.projects-table th:first-child{width:30%}.projects-table th:nth-child(2){width:30%}.projects-table th:nth-child(3){width:9%}.projects-table th:nth-child(4){width:18%}.projects-table th:last-child{width:88px}.projects-table tbody tr:last-child td{border-bottom:0}.projects-table tbody tr:hover{background:#ffffff06}.projects-name-button{display:flex;align-items:center;gap:10px;width:100%;min-width:0;border:0;background:transparent;color:var(--text);padding:0;text-align:left}.projects-kind-icon{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border-radius:8px;background:#ffffff0f;color:var(--muted-strong)}.projects-kind-icon.cloud,.projects-kind-icon.linked{background:#06b6d41a;color:#7edcec}.projects-name-copy{display:grid;gap:2px;min-width:0}.projects-name-copy strong,.projects-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-name-copy strong{font-size:13px;font-weight:600}.projects-location{display:block;max-width:100%}.projects-location-cell{display:flex;align-items:center;gap:8px;min-width:0}.projects-location-cell .projects-location{min-width:0}.projects-upload-button{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;min-height:26px;border:1px solid rgba(105,196,210,.22);border-radius:6px;background:#69c4d212;color:#79ceda;padding:0 8px;font-size:11px}.projects-upload-button:hover{background:#69c4d221}.projects-location-link{display:inline-flex;align-items:center;gap:5px;max-width:100%;color:var(--muted-strong);text-decoration:none}.projects-location-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-location-link svg{flex:0 0 auto}.projects-location-link:hover{color:#79ceda;text-decoration:underline}.projects-table time,.projects-table-muted{color:var(--muted)}.projects-row-actions{display:flex;justify-content:flex-end;gap:3px}.projects-row-actions button{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--muted);padding:0}.projects-row-actions button:hover{background:#ffffff12;color:var(--text)}.projects-empty{display:grid;justify-items:center;gap:10px;margin-top:44px;color:var(--muted);text-align:center}.projects-empty h2{font-size:16px;font-weight:600}.projects-empty p{max-width:440px;margin:0 0 6px;font-size:13px;line-height:1.5}.project-detail-view{display:grid;align-content:start;gap:24px;width:min(1040px,calc(100% - 72px));min-width:0;justify-self:center;padding:32px 0 56px}.project-detail-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.project-detail-heading{display:grid;gap:12px;min-width:0}.project-detail-heading h1{overflow:hidden;margin:0;color:var(--text);font-size:24px;font-weight:650;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.project-detail-back{display:inline-flex;align-items:center;gap:6px;width:max-content;border:0;background:transparent;color:var(--muted);padding:0;font-size:12px}.project-detail-back:hover{color:var(--text)}.project-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.project-detail-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;min-height:32px;border:1px solid rgba(255,255,255,.1);border-radius:7px;background:#ffffff0b;color:var(--muted-strong);padding:0 10px;font-size:12px}.project-detail-actions button:hover{background:#ffffff17;color:var(--text)}.project-detail-tabs{display:flex;align-items:center;gap:4px;width:max-content;max-width:100%;overflow-x:auto;border-radius:8px;background:#ffffff0b;padding:3px}.project-detail-tabs button{display:inline-flex;align-items:center;gap:7px;min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:0 11px;font-size:12px}.project-detail-tabs button[aria-selected=true]{background:#ffffff1a;color:var(--text)}.project-detail-tabs button span{min-width:18px;border-radius:9px;background:#69c4d21f;color:#79ceda;padding:1px 5px;font-size:10px;text-align:center}.project-detail-table-frame{min-width:0;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:#ffffff05}.project-detail-table{width:100%;min-width:620px;border-collapse:collapse;text-align:left}.project-detail-table th,.project-detail-table td{height:48px;border-bottom:1px solid var(--border);padding:0 16px;color:var(--muted-strong);font-size:12px;vertical-align:middle}.project-detail-table th{height:38px;color:var(--muted);font-size:11px;font-weight:550}.project-detail-table th:first-child,.project-detail-table:not(.actions) td:first-child{width:190px}.project-detail-table:not(.actions) td:first-child,.project-detail-table.actions td:last-child{color:var(--muted)}.project-detail-table.actions th:first-child{width:30%}.project-detail-table.actions th:last-child{width:150px}.project-detail-table tbody tr:last-child td{border-bottom:0}.project-detail-table a{color:#79ceda;text-decoration:none}.project-detail-table a:hover{text-decoration:underline}.project-detail-table code{color:var(--text);font-family:var(--font-mono);font-size:11px}.project-detail-empty,.project-detail-error{border-block:1px solid var(--border);color:var(--muted);padding:28px 2px;font-size:13px}.project-detail-empty.error{color:#f2a99e}.project-detail-table-note{border-top:1px solid var(--border);color:var(--muted);padding:16px;font-size:12px}.project-detail-status{color:var(--muted-strong);text-transform:capitalize}.project-detail-status.success{color:#70c8a1}.project-detail-status.error{color:#f2a99e}.project-request-row{cursor:pointer}.project-request-row:hover{background:#ffffff06}.project-request-detail td{height:auto;background:#ffffff04;padding-block:12px}.project-request-detail dl{display:grid;gap:0;margin:0}.project-request-detail dl div{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border);padding:8px 0}.project-request-detail dl div:last-child{border-bottom:0}.project-request-detail dt{color:var(--muted);text-transform:capitalize}.project-request-detail dd{margin:0;color:var(--text)}.project-request-detail p{margin:10px 0 0;color:#f2a99e}.project-detail-error{border:1px solid rgba(213,117,104,.28);border-radius:8px;background:#d5756814;color:#f2a99e;padding:10px 12px}@media(max-width:760px){.projects-page,.project-detail-view{width:calc(100% - 32px);padding-top:28px}.projects-page-header{align-items:stretch;flex-direction:column;gap:16px}.projects-cloud-actions{width:100%}.projects-cloud-button{flex:1 1 0}.project-detail-header{align-items:stretch;flex-direction:column}.project-detail-actions{justify-content:flex-start}}
1
+ .projects-page{display:grid;align-content:start;gap:26px;width:min(1040px,calc(100% - 72px));min-width:0;justify-self:center;padding:42px 0 56px}.projects-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.projects-page-header h1,.projects-empty h2{margin:0;color:var(--text)}.projects-page-header h1{font-size:24px;font-weight:650;line-height:1.15}.projects-page-header p{max-width:650px;margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.projects-cloud-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.projects-cloud-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;flex:0 0 auto;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff14;color:var(--text);padding:0 13px;font-size:13px}.projects-cloud-button:hover{background:#ffffff1f}.projects-table-frame{min-width:0;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:#ffffff05}.projects-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed}.projects-table th,.projects-table td{height:58px;border-bottom:1px solid var(--border);padding:0 14px;color:var(--muted-strong);font-size:12px;text-align:left;vertical-align:middle}.projects-table th{height:38px;color:var(--muted);font-size:11px;font-weight:550}.projects-table th:first-child{width:30%}.projects-table th:nth-child(2){width:30%}.projects-table th:nth-child(3){width:9%}.projects-table th:nth-child(4){width:18%}.projects-table th:last-child{width:88px}.projects-table tbody tr:last-child td{border-bottom:0}.projects-table tbody tr:hover{background:#ffffff06}.projects-name-button{display:flex;align-items:center;gap:10px;width:100%;min-width:0;border:0;background:transparent;color:var(--text);padding:0;text-align:left}.projects-kind-icon{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border-radius:8px;background:#ffffff0f;color:var(--muted-strong)}.projects-kind-icon.cloud,.projects-kind-icon.linked{background:#06b6d41a;color:#7edcec}.projects-name-copy{display:grid;gap:2px;min-width:0}.projects-name-copy strong,.projects-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-name-copy strong{font-size:13px;font-weight:600}.projects-location{display:block;max-width:100%}.projects-location-cell{display:flex;align-items:center;gap:8px;min-width:0}.projects-location-cell .projects-location{min-width:0}.projects-upload-button{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;min-height:26px;border:1px solid rgba(105,196,210,.22);border-radius:6px;background:#69c4d212;color:#79ceda;padding:0 8px;font-size:11px}.projects-upload-button:hover{background:#69c4d221}.projects-location-link{display:inline-flex;align-items:center;gap:5px;max-width:100%;color:var(--muted-strong);text-decoration:none}.projects-location-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-location-link svg{flex:0 0 auto}.projects-location-link:hover{color:#79ceda;text-decoration:underline}.projects-table time,.projects-table-muted{color:var(--muted)}.projects-row-actions{display:flex;justify-content:flex-end;gap:3px}.projects-row-actions button{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--muted);padding:0}.projects-row-actions button:hover{background:#ffffff12;color:var(--text)}.projects-empty{display:grid;justify-items:center;gap:10px;margin-top:44px;color:var(--muted);text-align:center}.projects-empty h2{font-size:16px;font-weight:600}.projects-empty p{max-width:440px;margin:0 0 6px;font-size:13px;line-height:1.5}.project-detail-view{display:grid;align-content:start;gap:24px;width:min(1040px,calc(100% - 72px));min-width:0;justify-self:center;padding:32px 0 56px}.project-detail-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.project-detail-heading{display:grid;gap:12px;min-width:0}.project-detail-heading h1{overflow:hidden;margin:0;color:var(--text);font-size:24px;font-weight:650;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.project-detail-back{display:inline-flex;align-items:center;gap:6px;width:max-content;border:0;background:transparent;color:var(--muted);padding:0;font-size:12px}.project-detail-back:hover{color:var(--text)}.project-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.project-detail-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;min-height:32px;border:1px solid rgba(255,255,255,.1);border-radius:7px;background:#ffffff0b;color:var(--muted-strong);padding:0 10px;font-size:12px}.project-detail-actions button:hover{background:#ffffff17;color:var(--text)}.project-detail-tabs{display:flex;align-items:center;gap:4px;width:max-content;max-width:100%;overflow-x:auto;border-radius:8px;background:#ffffff0b;padding:3px}.project-detail-tabs button{display:inline-flex;align-items:center;gap:7px;min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:0 11px;font-size:12px}.project-detail-tabs button[aria-selected=true]{background:#ffffff1a;color:var(--text)}.project-detail-tabs button span{min-width:18px;border-radius:9px;background:#69c4d21f;color:#79ceda;padding:1px 5px;font-size:10px;text-align:center}.project-detail-table-frame{min-width:0;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:#ffffff05}.project-detail-table{width:100%;min-width:620px;border-collapse:collapse;text-align:left}.project-detail-table th,.project-detail-table td{height:48px;border-bottom:1px solid var(--border);padding:0 16px;color:var(--muted-strong);font-size:12px;vertical-align:middle}.project-detail-table th{height:38px;color:var(--muted);font-size:11px;font-weight:550}.project-detail-table th:first-child,.project-detail-table:not(.actions) td:first-child{width:190px}.project-detail-table:not(.actions) td:first-child,.project-detail-table.actions td:last-child{color:var(--muted)}.project-detail-table.actions th:first-child{width:30%}.project-detail-table.actions th:last-child{width:150px}.project-detail-table tbody tr:last-child td{border-bottom:0}.project-detail-table a{color:#79ceda;text-decoration:none}.project-detail-table a:hover{text-decoration:underline}.project-source-folder-list{margin:0;padding-left:18px;overflow-wrap:anywhere}.project-source-folder-list li+li{margin-top:4px}.project-detail-table code{color:var(--text);font-family:var(--font-mono);font-size:11px}.project-detail-empty,.project-detail-error{border-block:1px solid var(--border);color:var(--muted);padding:28px 2px;font-size:13px}.project-detail-empty.error{color:#f2a99e}.project-detail-table-note{border-top:1px solid var(--border);color:var(--muted);padding:16px;font-size:12px}.project-detail-status{color:var(--muted-strong);text-transform:capitalize}.project-detail-status.success{color:#70c8a1}.project-detail-status.error{color:#f2a99e}.project-request-row{cursor:pointer}.project-request-row:hover{background:#ffffff06}.project-request-detail td{height:auto;background:#ffffff04;padding-block:12px}.project-request-detail dl{display:grid;gap:0;margin:0}.project-request-detail dl div{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border);padding:8px 0}.project-request-detail dl div:last-child{border-bottom:0}.project-request-detail dt{color:var(--muted);text-transform:capitalize}.project-request-detail dd{margin:0;color:var(--text)}.project-request-detail p{margin:10px 0 0;color:#f2a99e}.project-detail-error{border:1px solid rgba(213,117,104,.28);border-radius:8px;background:#d5756814;color:#f2a99e;padding:10px 12px}@media(max-width:760px){.projects-page,.project-detail-view{width:calc(100% - 32px);padding-top:28px}.projects-page-header{align-items:stretch;flex-direction:column;gap:16px}.projects-cloud-actions{width:100%}.projects-cloud-button{flex:1 1 0}.project-detail-header{align-items:stretch;flex-direction:column}.project-detail-actions{justify-content:flex-start}}
@@ -0,0 +1 @@
1
+ import{r as a,j as i}from"./index-Dx0lr1R3.js";import{F as ve}from"./folder-open-CO3Vz0rT.js";import{dI as we,dJ as Re,dK as Ie,dL as ye,a9 as Ce,aB as je,aO as Pe,dM as Te,aC as Ae,aD as Se,aH as Me,aE as Ee,X as Ne,P as Fe,aT as Be}from"./App-BcbjzSeU.js";import{u as De,a as Le}from"./useSessionTurnCache-oMoxBcGj.js";import{f as $e,u as Oe,s as He,g as Ke,l as Ue,h as qe,T as ze,M as Ve,i as We,A as Qe,j as Ge}from"./MainPane-BYrnuI30.js";import"./cloud-upload-D-_3UWhI.js";import"./arrow-up-right-BjC4ygxR.js";import"./MarkdownText-ueZFkEyk.js";import"./square-D5fFhDFt.js";import"./refresh-cw-JaxiGpHD.js";function Je({panel:s,runtimeEventStore:$,actionCatalog:C,createImproveActions:j,contextCompaction:P,steerActiveResponses:O,initialScrollState:g,codexPermissionMode:H,codexReasoningEffort:K,openPondCommandAccessMode:T,connection:b,connectedAppMentions:U,mentionApps:q,codexPersonalSkills:z,profileSkills:V,profileTarget:A,projectTarget:W,providerSettings:Q,accountBaseUrl:G,billingOrganizationSlug:J,billingTeamId:X,showToast:_,workspaceTarget:Y,onCodexPermissionModeChange:Z,onCodexReasoningEffortChange:ee,onOpenPondCommandAccessModeChange:S,onModelChange:se,onOpenAttachmentInSidebar:te,onOpenFileInSidebar:ie,onOpenProfileSettings:ne,onOpenSession:oe,onProviderChange:ae,onProviderSetupOpen:re,onPromptChange:ce,onProfileTargetChange:de,onScrollStateChange:le,onProjectTargetChange:ue,onResolveApproval:he,onShowBrowserPanel:M,onStop:me,onSubmit:x,onWorkspaceTargetChange:fe}){const w=a.useRef(null),[v]=a.useState(()=>new $e),R=a.useRef(g?.stickyToBottom??!0),E=a.useRef(!1),I=Oe($,s.runtimeSource==="live"?s.sessionId:null),t=a.useMemo(()=>{if(s.runtimeSource==="history"||!s.sessionId)return s;const n=I.events,l=we(n,[]);return{...s,messages:je(v.project(n),s.pendingUserMessage),createImproveRun:Ce({events:n}),contextWindowStatus:Ie({provider:s.provider,snapshot:ye(l,s.sessionId),preferences:P}),goalRuntime:Re(l,s.sessionId)}},[v,P,I,s]),u=t.running&&!t.pendingApproval&&He(t.messages),f=a.useMemo(()=>t.createImproveRun?{...j,run:t.createImproveRun}:null,[t.createImproveRun,j]),N=a.useMemo(()=>Ke(t.messages,{showThinkingIndicator:u}),[t.messages,u]),F=De(t.messages,t.sessionId??`draft:${t.id}`),p=t.messages.at(-1),y=a.useMemo(()=>Ue(t.messages),[t.messages]),B=Le({connection:b,latestTurnId:p?.turnId??null,sessionId:t.sessionId,turnRunning:t.running}),D=[t.id,t.sessionId??"draft",N.length,p?.id??"",p?.content?.length??0,p?.timestamp??"",u?"thinking":""].join(":");a.useLayoutEffect(()=>{const n=w.current;!n||E.current||(E.current=!0,n.scrollTop=g?.stickyToBottom?n.scrollHeight:g?.scrollTop??0)},[g]),qe({contentKey:D,onContentChange:n=>{R.current&&(n.scrollTop=n.scrollHeight)},threadRef:w});const c=a.useCallback((n,l)=>{const k=t.sessionId??`side-chat:${t.id}`;Pe({conversationId:k,href:n,explicitFile:l?.explicitFile,newTab:l?.newTab}).then(h=>{h&&M()})},[t.id,t.sessionId,M]),pe=a.useCallback(async(n,l)=>{const k=l.action==="answer"?l.text:"Dismiss this question";if(!await x([],null,null,{displayPrompt:k,promptOverride:k,turnMetadata:{userQuestionResolution:l}}))throw new Error("The question response could not be sent.")},[x]);return i.jsxs("section",{className:`right-chat-pane ${t.pendingApproval?"has-approval":""}`,id:`right-chat-panel-${t.id}`,role:"tabpanel","aria-labelledby":`right-chat-tab-${t.id}`,children:[i.jsx("div",{className:"chat-thread right-chat-thread",ref:w,onScroll:n=>{const l=n.currentTarget;R.current=l.scrollHeight-l.scrollTop-l.clientHeight<=72,le({scrollTop:l.scrollTop,stickyToBottom:R.current})},children:N.map(n=>n.type==="thinking"?i.jsx(ze,{},n.id):i.jsx(Ve,{activeWorkspaceAppId:t.activeWorkspaceAppId,accountBaseUrl:G,billingOrganizationSlug:J,billingTeamId:X,connection:b,animateInitialContent:n.message.role==="assistant"&&F.has(n.message.id),kvCacheSummary:We(n.message,y)&&n.message.turnId?B.get(n.message.turnId)??null:null,message:n.message,onOpenBrowserLink:c,onOpenAttachmentInSidebar:te,onOpenFileInSidebar:ie,onOpenProfileSettings:ne,onResolveUserQuestion:pe,onOpenSession:oe,userAttachmentDisplay:s.provider==="codex"?"compact":"full",workspaceRootPath:t.workspaceRootPath,showFooter:n.showFooter},n.id))}),i.jsxs("div",{className:`composer-stack dock right-chat-composer ${t.pendingApproval?"has-approval":""}`,children:[i.jsx(Qe,{approval:t.pendingApproval,onResolve:he}),i.jsx(Ge,{mode:"dock",prompt:s.prompt,mentionApps:q,connectedAppMentions:U,profileSkills:s.provider==="codex"?z:V,profileTarget:s.provider==="codex"?null:A,selectedMentionAppId:null,contextWindowStatus:t.contextWindowStatus,goalRuntime:t.goalRuntime,createImproveRuntime:f,busy:t.running,running:t.running,steerActiveResponses:O,taskSessionId:s.runtimeSource==="live"?s.sessionId:null,taskEvents:I.events,submissionScopeKey:t.sessionId??t.id,showProjectFooter:!1,connection:b,providerSettings:Q,provider:s.provider,model:s.model,projectTarget:W,actionCatalog:C,workspaceTarget:Y,codexPermissionMode:H,codexReasoningEffort:K,openPondCommandAccessMode:s.provider==="codex"?T:t.session?.openPondCommandAccessMode??T,onProviderChange:ae,onProviderSetupOpen:re,onProjectTargetChange:ue,onWorkspaceTargetChange:fe,onModelChange:se,onCodexPermissionModeChange:Z,onCodexReasoningEffortChange:ee,onOpenPondCommandAccessModeChange:S,onPromptChange:ce,onProfileTargetChange:de,onMentionAppSelect:void 0,showToast:_,onSubmit:x,onStop:me})]})]})}function as({panels:s,runtimeEventStore:$,actionCatalog:C=[],createImproveActions:j,contextCompaction:P,steerActiveResponses:O,busy:g,codexPermissionMode:H,codexReasoningEffort:K,openPondCommandAccessMode:T,connection:b,connectedAppMentions:U,mentionApps:q,codexPersonalSkills:z,profileSkills:V=[],profileLibrary:A={lastUsed:null,profiles:[]},extensionCatalog:W,projectTarget:Q,providerSettings:G,accountBaseUrl:J,billingOrganizationSlug:X,billingTeamId:_,showToast:Y,workspaceTarget:Z,onAddChat:ee,onActivatePanel:S,onClosePanel:se,onCodexPermissionModeChange:te,onCodexReasoningEffortChange:ie,onOpenPondCommandAccessModeChange:ne,onModelChange:oe,onOpenAttachmentInSidebar:ae,onOpenFileInSidebar:re,onOpenProfileSettings:ce,onOpenSession:de,onProviderChange:le,onProviderSetupOpen:ue,onPromptChange:he,onProfileTargetChange:M,onScrollStateChange:me,onProjectTargetChange:x,onResolveApproval:fe,onResizeStart:w,onSelectFiles:v,onShowBrowserPanel:R,onStop:E,onSubmit:I,onWorkspaceTargetChange:t}){const[u,f]=a.useState(!1),[N,F]=a.useState(()=>Te(s)?.id??null),p=a.useRef(null),y=a.useRef(new Map),B=a.useRef(new Set(s.map(e=>e.id))),D=a.useRef(new Map(s.map(e=>[e.id,e.activationVersion]))),c=s.find(e=>e.id===N)??s.at(-1)??null,pe=c?.session?.currentProfile??A.lastUsed,n=Ae(A,pe),l=n?Se(n,W):V,k=n?[...C.filter(e=>!Me(e)),...Ee(n)]:C;a.useEffect(()=>{const e=B.current,d=D.current;let r=null,m=null;for(const o of s)e.has(o.id)||(r=o),e.has(o.id)&&o.activationVersion>(d.get(o.id)??0)&&(m=o);B.current=new Set(s.map(o=>o.id)),D.current=new Map(s.map(o=>[o.id,o.activationVersion])),F(o=>m?m.id:r?r.id:o&&s.some(L=>L.id===o)?o:s.at(-1)?.id??null)},[s]),a.useEffect(()=>{if(!u)return;function e(r){p.current?.contains(r.target)||f(!1)}function d(r){r.key==="Escape"&&f(!1)}return document.addEventListener("pointerdown",e),document.addEventListener("keydown",d),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",d)}},[u]);const h=a.useCallback((e,d=!1)=>{F(e),S(e),d&&window.requestAnimationFrame(()=>y.current.get(e)?.focus())},[S]),ge=a.useCallback((e=!1)=>{v(),e&&window.requestAnimationFrame(()=>{document.getElementById("right-sidebar-files-tab")?.focus()})},[v]),ke=a.useCallback((e,d)=>{const r=s.findIndex(xe=>xe.id===d);if(r<0)return;const m=r+1;let o=null;if(e.key==="ArrowRight"&&(o=(m+1)%(s.length+1)),e.key==="ArrowLeft"&&(o=(m-1+s.length+1)%(s.length+1)),e.key==="Home"&&(o=0),e.key==="End"&&(o=s.length),o===null)return;if(e.preventDefault(),o===0){ge(!0);return}const L=s[o-1];L&&h(L.id,!0)},[s,ge,h]),be=a.useCallback(e=>{if(!["ArrowRight","ArrowLeft","Home","End"].includes(e.key)||(e.preventDefault(),e.key==="Home"))return;const d=e.key==="ArrowLeft"||e.key==="End"?s.at(-1):s[0];d&&h(d.id,!0)},[s,h]);return i.jsxs("aside",{className:"workspace-diff-panel right-chat-panel-stack","aria-label":"Side chats",children:[i.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize side chat panel",onPointerDown:w}),i.jsx("div",{className:"workspace-diff-topbar right-chat-topbar",children:i.jsxs("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:[i.jsxs("button",{type:"button",className:"workspace-diff-tab",role:"tab",id:"right-sidebar-files-tab","aria-controls":"right-sidebar-files-panel","aria-selected":!1,tabIndex:-1,onClick:()=>ge(!1),onKeyDown:be,children:[i.jsx(ve,{size:14}),i.jsx("span",{children:"Files"})]}),s.map(e=>{const d=e.id===c?.id;return i.jsxs("div",{className:`workspace-diff-tab right-chat-tab ${d?"active":""}`,children:[i.jsxs("button",{type:"button",className:"workspace-diff-tab-main",role:"tab",id:`right-chat-tab-${e.id}`,"aria-controls":`right-chat-panel-${e.id}`,"aria-selected":d,tabIndex:d?0:-1,title:e.title,ref:r=>{r?y.current.set(e.id,r):y.current.delete(e.id)},onClick:()=>h(e.id),onKeyDown:r=>ke(r,e.id),children:[e.running?i.jsx("span",{className:"right-chat-status-dot","aria-label":"Running"}):null,i.jsx("span",{children:e.title})]}),i.jsx("button",{type:"button",className:"workspace-diff-tab-close",title:`Close ${e.title}`,"aria-label":`Close ${e.title}`,onClick:r=>{r.stopPropagation(),se(e.id)},children:i.jsx(Ne,{size:12})})]},e.id)}),i.jsxs("div",{className:"workspace-diff-add-anchor",ref:p,children:[i.jsx("button",{type:"button",className:`workspace-diff-add-tab ${u?"active":""}`,title:"Add to right sidebar","aria-label":"Add to right sidebar","aria-haspopup":"menu","aria-expanded":u,onClick:()=>f(e=>!e),children:i.jsx(Fe,{size:15})}),u?i.jsxs("div",{className:"workspace-diff-add-menu right-chat-add-popover",role:"menu",children:[i.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{f(!1),ee()},children:[i.jsx(Be,{size:13}),i.jsx("span",{children:"New task"})]}),i.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{f(!1),v()},children:[i.jsx(ve,{size:13}),i.jsx("span",{children:"Files"})]})]}):null]})]})}),i.jsx("div",{className:"right-chat-stack-body panes-1",children:c?i.jsx(Je,{busy:g,createImproveActions:j,contextCompaction:P,steerActiveResponses:O,codexPermissionMode:H,codexReasoningEffort:K,openPondCommandAccessMode:T,connection:b,connectedAppMentions:U,actionCatalog:k,mentionApps:q,codexPersonalSkills:z,profileSkills:l,profileTarget:null,panel:c,runtimeEventStore:$,initialScrollState:{scrollTop:c.scrollTop,stickyToBottom:c.stickyToBottom},projectTarget:Q,providerSettings:G,accountBaseUrl:J,billingOrganizationSlug:X,billingTeamId:_,showToast:Y,workspaceTarget:Z,onCodexPermissionModeChange:te,onCodexReasoningEffortChange:ie,onOpenPondCommandAccessModeChange:e=>ne(e,c.session),onModelChange:e=>oe(c.id,e),onOpenAttachmentInSidebar:ae,onOpenFileInSidebar:re,onOpenProfileSettings:ce,onOpenSession:de,onProviderChange:e=>le(c.id,e),onProviderSetupOpen:ue,onPromptChange:e=>he(c.id,e),onProfileTargetChange:e=>M(c.sessionId,e),onScrollStateChange:e=>me(c.id,e),onProjectTargetChange:x,onResolveApproval:fe,onShowBrowserPanel:R,onStop:()=>E(c.sessionId),onSubmit:(e,d,r,m)=>I(c.id,e,d,r,m),onWorkspaceTargetChange:t},c.id):null})]})}export{as as RightChatPanelStack};
@@ -1 +1 @@
1
- import{j as e}from"./index-CPTsOhRN.js";import{ba as f,bl as x,aW as j,av as u,b1 as k,E as g}from"./App-eRfSvxdE.js";import{C as w}from"./clipboard-BwxTBPCP.js";import{F as v}from"./folder-open-BmWqQp0P.js";import{M as S}from"./minimize-2-DFgldo5D.js";function y({expanded:i,terminalOpen:s,sideChatAvailable:r,onOpenBrowser:l,onOpenFiles:t,onOpenReview:o,onOpenSideChat:n,onOpenTrainingDraft:d,trainingDraftAvailable:c,onResizeStart:b,onToggleExpanded:m,onToggleTerminal:h}){const p=[{id:"review",label:"Review",meta:"Diffs",icon:w,onSelect:o},{id:"files",label:"Files",meta:"Workspace",icon:v,onSelect:t},{id:"browser",label:"Browser",meta:"Preview",icon:j,onSelect:l},{id:"side-chat",label:"Side chat",meta:"Context",icon:u,onSelect:n,disabled:!r},{id:"training-draft",label:"Task draft",meta:"Training",icon:k,onSelect:d,disabled:!c},{id:"terminal",label:s?"Hide terminal":"Terminal",meta:"Shell",icon:g,onSelect:h}];return e.jsxs("aside",{className:`workspace-diff-panel right-sidebar-home-panel ${i?"expanded":""}`,"aria-label":"Right sidebar",children:[i?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize right sidebar",onPointerDown:b}),e.jsxs("div",{className:"workspace-diff-topbar right-sidebar-home-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:e.jsxs("button",{type:"button",className:"workspace-diff-tab active",role:"tab","aria-selected":!0,children:[e.jsx(f,{size:14}),e.jsx("span",{children:"Workspace"})]})}),e.jsx("div",{className:"workspace-diff-toolbar-actions",children:e.jsx("button",{type:"button",className:"diff-icon-button",title:i?"Dock sidebar":"Expand sidebar","aria-label":i?"Dock sidebar":"Expand sidebar",onClick:m,children:i?e.jsx(S,{size:14}):e.jsx(x,{size:14})})})]}),e.jsx("div",{className:"right-sidebar-home-body",children:e.jsx("div",{className:"right-sidebar-home-actions",role:"menu","aria-label":"Workspace actions",children:p.map(a=>e.jsxs("button",{type:"button",className:"right-sidebar-home-row",role:"menuitem",disabled:a.disabled,onClick:a.onSelect,children:[e.jsx(a.icon,{size:15}),e.jsx("span",{children:a.label}),a.meta?e.jsx("span",{className:"right-sidebar-home-chip",children:a.meta}):null]},a.id))})})]})}export{y as RightSidebarHomePanel};
1
+ import{j as e}from"./index-Dx0lr1R3.js";import{ai as f,bC as x,aq as j,aT as u,bk as k,G as g}from"./App-BcbjzSeU.js";import{C as w}from"./clipboard-BOJ-sNJz.js";import{F as S}from"./folder-open-CO3Vz0rT.js";import{M as v}from"./minimize-2-Cr76Lc_J.js";function y({expanded:i,terminalOpen:s,sideChatAvailable:r,onOpenBrowser:l,onOpenFiles:t,onOpenReview:o,onOpenSideChat:n,onOpenTrainingDraft:d,trainingDraftAvailable:c,onResizeStart:b,onToggleExpanded:m,onToggleTerminal:h}){const p=[{id:"review",label:"Review",meta:"Diffs",icon:w,onSelect:o},{id:"files",label:"Files",meta:"Workspace",icon:S,onSelect:t},{id:"browser",label:"Browser",meta:"Preview",icon:j,onSelect:l},{id:"side-chat",label:"Side chat",meta:"Context",icon:u,onSelect:n,disabled:!r},{id:"training-draft",label:"Task draft",meta:"Training",icon:k,onSelect:d,disabled:!c},{id:"terminal",label:s?"Hide terminal":"Terminal",meta:"Shell",icon:g,onSelect:h}];return e.jsxs("aside",{className:`workspace-diff-panel right-sidebar-home-panel ${i?"expanded":""}`,"aria-label":"Right sidebar",children:[i?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize right sidebar",onPointerDown:b}),e.jsxs("div",{className:"workspace-diff-topbar right-sidebar-home-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:e.jsxs("button",{type:"button",className:"workspace-diff-tab active",role:"tab","aria-selected":!0,children:[e.jsx(f,{size:14}),e.jsx("span",{children:"Workspace"})]})}),e.jsx("div",{className:"workspace-diff-toolbar-actions",children:e.jsx("button",{type:"button",className:"diff-icon-button",title:i?"Dock sidebar":"Expand sidebar","aria-label":i?"Dock sidebar":"Expand sidebar",onClick:m,children:i?e.jsx(v,{size:14}):e.jsx(x,{size:14})})})]}),e.jsx("div",{className:"right-sidebar-home-body",children:e.jsx("div",{className:"right-sidebar-home-actions",role:"menu","aria-label":"Workspace actions",children:p.map(a=>e.jsxs("button",{type:"button",className:"right-sidebar-home-row",role:"menuitem",disabled:a.disabled,onClick:a.onSelect,children:[e.jsx(a.icon,{size:15}),e.jsx("span",{children:a.label}),a.meta?e.jsx("span",{className:"right-sidebar-home-chip",children:a.meta}):null]},a.id))})})]})}export{y as RightSidebarHomePanel};
@@ -0,0 +1 @@
1
+ import{r as o,j as e}from"./index-Dx0lr1R3.js";import{w as E,x as Re,bf as Ce,dF as Ae,bC as Te,X as $e,ax as xe,g as De,M as ee,v as Ee,aY as U,ao as Me}from"./App-BcbjzSeU.js";import{R as X,u as Ie}from"./useLocalAgentSchedules-DWd5OvYb.js";import{a as We,P as le,T as pe}from"./MarkdownText-ueZFkEyk.js";import{P as ae,R as Pe}from"./refresh-cw-JaxiGpHD.js";import{S as ze}from"./save-DFm1K29k.js";import{M as Le}from"./minimize-2-Cr76Lc_J.js";import{r as Fe,c as Oe,a as Ze}from"./MainPane-BYrnuI30.js";import"./cloud-upload-D-_3UWhI.js";import"./arrow-up-right-BjC4ygxR.js";import"./square-D5fFhDFt.js";import"./folder-open-CO3Vz0rT.js";const _e=3e4;function He(s){const[t,n]=o.useState([]),[l,d]=o.useState([]),[x,p]=o.useState(null),[j,r]=o.useState(!1),[a,c]=o.useState(null),[k,w]=o.useState(()=>new Set);async function h(m,f){f&&r(!0);try{const u=await E.hostedSavedWork(m);n(u.definitions),d(u.runs),p(u.webBaseUrl??null),c(null)}catch(u){c(se(u))}finally{f&&r(!1)}}o.useEffect(()=>{if(!s){n([]),d([]),p(null),c(null),r(!1);return}let m=!1;const f=async A=>{if(!m){A&&r(!0);try{const g=await E.hostedSavedWork(s);if(m)return;n(g.definitions),d(g.runs),p(g.webBaseUrl??null),c(null)}catch(g){m||c(se(g))}finally{!m&&A&&r(!1)}}};f(!0);const u=window.setInterval(()=>{f(!1)},_e);return()=>{m=!0,window.clearInterval(u)}},[s]);async function b(){s&&await h(s,!0)}async function R(m){s&&(await E.createHostedSavedWork(s,m),await h(s,!1))}async function $(m,f){await C(m,async u=>{await E.updateHostedSavedWork(u,m,f)})}async function y(m){await C(m,async f=>{await E.deleteHostedSavedWork(f,m)})}async function P(m){await C(m,async f=>{await E.runHostedSavedWork(f,m,crypto.randomUUID())})}async function C(m,f){if(!(!s||k.has(m))){N(m,!0);try{await f(s),await h(s,!1)}catch(u){throw c(se(u)),u}finally{N(m,!1)}}}function N(m,f){w(u=>{const A=new Set(u);return f?A.add(m):A.delete(m),A})}return{create:R,definitions:t,error:a,loading:j,pendingScheduleIds:k,refresh:b,remove:y,run:P,runs:l,update:$,webBaseUrl:x}}function se(s){return s instanceof Error?s.message:String(s)}const Ue=3e4;function Ke(s){const[t,n]=o.useState([]),[l,d]=o.useState([]),[x,p]=o.useState(!1),[j,r]=o.useState(null),[a,c]=o.useState(()=>new Set),k=o.useCallback(async h=>{if(s){h&&p(!0);try{const b=await E.chatWorkflows(s);n(b.workflows),d(b.runs),r(null)}catch(b){r(b instanceof Error?b.message:String(b))}finally{h&&p(!1)}}},[s]);o.useEffect(()=>{if(!s){n([]),d([]),r(null),p(!1);return}k(!0);const h=window.setInterval(()=>{k(!1)},Ue);return()=>window.clearInterval(h)},[s,k]);async function w(h,b){if(!a.has(h)){c(R=>new Set(R).add(h));try{await b(),await k(!1)}catch(R){throw r(R instanceof Error?R.message:String(R)),R}finally{c(R=>{const $=new Set(R);return $.delete(h),$})}}}return{workflows:t,runs:l,loading:x,error:j,pendingIds:a,refresh:()=>k(!0),update:(h,b)=>w(h,()=>E.updateChatWorkflow(s,h,b)),remove:h=>w(h,()=>E.deleteChatWorkflow(s,h)),run:h=>w(h,()=>E.runChatWorkflow(s,h))}}const je="openpond.scheduled-work.view.v1";function oe(s=we()){try{return s?.getItem(je)==="list"?"list":"calendar"}catch{return"calendar"}}function Ve(s,t=we()){try{t?.setItem(je,s)}catch{}}function we(){if(typeof window>"u")return null;try{return Re}catch{return null}}function W(s,t){if(!s)return"None";const n=new Date(s);if(!Number.isFinite(n.getTime()))return"None";try{return n.toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",...t?{timeZone:t,timeZoneName:"short"}:{}})}catch{return n.toLocaleString()}}function be(s){return B(s.replaceAll("_"," "))}function B(s){return s.replace(/^./,t=>t.toUpperCase())}function ve(s){const[t="0",n="00"]=s.split(":");return new Date(2020,0,1,Number(t),Number(n)).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Ye({run:s}){const t=s.error||s.stderr||s.stdout;return e.jsxs("details",{className:"scheduled-run-row",children:[e.jsxs("summary",{children:[e.jsxs("span",{children:[e.jsx("strong",{children:be(s.status)}),e.jsx("small",{children:W(s.createdAt,null)})]}),e.jsx("span",{className:"scheduled-run-trigger",children:s.trigger==="manual"?"Manual":"Scheduled"})]}),t?e.jsx("pre",{children:t}):null]})}function Be({onOpen:s,run:t}){return e.jsxs("button",{className:"scheduled-run-row hosted",onClick:s,type:"button",children:[e.jsxs("span",{children:[e.jsx("strong",{children:be(t.status)}),e.jsx("small",{children:W(t.createdAt,null)})]}),e.jsxs("span",{className:"scheduled-run-trigger",children:[B(t.triggerKind)," ",e.jsx(xe,{size:11})]}),t.deliveryError?e.jsx("p",{children:t.deliveryError}):null]})}function Q({children:s,detailExpanded:t,kind:n="schedule",label:l,onClose:d,onDetailResizeStart:x,onToggleDetailExpanded:p}){return e.jsxs("aside",{"aria-label":l,className:`workspace-diff-panel scheduled-detail${t?" expanded":""}`,children:[t?null:e.jsx("div",{"aria-label":"Resize schedule details","aria-orientation":"vertical",className:"workspace-diff-resize-handle",onPointerDown:x,role:"separator"}),e.jsxs("div",{className:"workspace-diff-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":`${n==="workflow"?"Workflow":"Schedule"} details`,children:e.jsxs("button",{"aria-selected":"true",className:"workspace-diff-tab active",role:"tab",type:"button",children:[e.jsx(Ae,{size:14}),e.jsx("span",{children:n==="workflow"?"Workflow":"Schedule"})]})}),e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsx("button",{"aria-label":t?`Dock ${n} details`:`Expand ${n} details`,className:"diff-icon-button",onClick:p,title:t?`Dock ${n} details`:`Expand ${n} details`,type:"button",children:t?e.jsx(Le,{size:14}):e.jsx(Te,{size:14})}),e.jsx("button",{"aria-label":`Close ${n} details`,className:"diff-icon-button",onClick:d,title:`Close ${n} details`,type:"button",children:e.jsx($e,{size:14})})]})]}),e.jsx("div",{className:"scheduled-detail-body",children:s})]})}function T({children:s,title:t}){return e.jsxs("section",{className:"scheduled-detail-section",children:[e.jsx("div",{className:"scheduled-detail-section-heading",children:e.jsx("h3",{children:t})}),s]})}function I({label:s,value:t}){return e.jsxs("div",{children:[e.jsx("dt",{children:s}),e.jsx("dd",{children:t})]})}function te({children:s}){return e.jsx("p",{className:"scheduled-empty",children:s})}function ke({label:s}){return e.jsxs("div",{className:"scheduled-loading",role:"status",children:[e.jsx(Ce,{className:"scheduled-spin",size:16}),e.jsx("span",{children:s})]})}const qe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function Ge({items:s,onSelect:t,selectedKey:n}){const[l,d]=o.useState(()=>de(new Date)),x=o.useMemo(()=>Je(l),[l]),p=o.useMemo(()=>Xe(s),[s]),j=new Intl.DateTimeFormat(void 0,{month:"long",year:"numeric"}).format(l),r=s.filter(a=>!ge(a.nextRunAt));return e.jsxs("div",{className:"scheduled-calendar",children:[e.jsxs("div",{className:"scheduled-calendar-toolbar",children:[e.jsx("strong",{children:j}),e.jsxs("div",{children:[e.jsx("button",{"aria-label":"Previous month",className:"scheduled-icon-button",onClick:()=>d(ce(l,-1)),type:"button",children:e.jsx(De,{size:15})}),e.jsx("button",{className:"scheduled-calendar-today",onClick:()=>d(de(new Date)),type:"button",children:"Today"}),e.jsx("button",{"aria-label":"Next month",className:"scheduled-icon-button",onClick:()=>d(ce(l,1)),type:"button",children:e.jsx(We,{size:15})})]})]}),e.jsxs("div",{className:"scheduled-calendar-grid",role:"grid","aria-label":j,children:[qe.map(a=>e.jsx("div",{className:"scheduled-calendar-weekday",role:"columnheader",children:a},a)),x.map(a=>{const c=ne(a),k=p.get(c)??[],w=a.getMonth()!==l.getMonth(),h=c===ne(new Date);return e.jsxs("div",{className:`scheduled-calendar-day${w?" outside":""}${h?" today":""}`,role:"gridcell",children:[e.jsx("span",{className:"scheduled-calendar-day-number",children:a.getDate()}),e.jsx("div",{className:"scheduled-calendar-events",children:k.map(b=>e.jsxs("button",{"aria-current":n===b.key?"true":void 0,className:`scheduled-calendar-event${b.enabled?"":" paused"}`,onClick:()=>t(b.key),title:b.title,type:"button",children:[e.jsx("span",{children:Qe(b.nextRunAt)}),e.jsx("strong",{children:b.title})]},b.key))})]},c)})]}),r.length?e.jsxs("div",{className:"scheduled-calendar-unscheduled",children:[e.jsx("span",{children:"No upcoming run"}),e.jsx("div",{children:r.map(a=>e.jsx("button",{onClick:()=>t(a.key),type:"button",children:a.title},a.key))})]}):null]})}function Je(s){const t=new Date(s.getFullYear(),s.getMonth(),1),n=new Date(t);return n.setDate(t.getDate()-t.getDay()),Array.from({length:42},(l,d)=>{const x=new Date(n);return x.setDate(n.getDate()+d),x})}function Xe(s){const t=new Map;for(const n of s){const l=ge(n.nextRunAt);if(!l)continue;const d=ne(l);t.set(d,[...t.get(d)??[],n])}for(const n of t.values())n.sort((l,d)=>l.nextRunAt.localeCompare(d.nextRunAt));return t}function ge(s){if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t}function ne(s){return`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`}function de(s){return new Date(s.getFullYear(),s.getMonth(),1)}function ce(s,t){return new Date(s.getFullYear(),s.getMonth()+t,1)}function Qe(s){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(new Date(s))}function es({entry:s,onSelect:t,selected:n}){return e.jsxs("button",{"aria-current":n?"true":void 0,className:"scheduled-list-row",onClick:t,type:"button",children:[e.jsx("span",{className:"scheduled-status-dot"}),e.jsxs("span",{className:"scheduled-list-copy",children:[e.jsx("span",{className:"scheduled-list-title",children:e.jsx("strong",{children:s.workflow.label})}),e.jsx("span",{children:s.workflow.description}),e.jsxs("small",{children:["On demand · Source ",s.binding.sourceRevision.slice(0,10)]})]})]})}function ss({cadence:s,onSelect:t,schedule:n,selected:l}){return e.jsxs("button",{"aria-current":l?"true":void 0,className:"scheduled-list-row",onClick:t,type:"button",children:[e.jsx("span",{className:`scheduled-status-dot ${n.enabled?"active":"paused"}`}),e.jsxs("span",{className:"scheduled-list-copy",children:[e.jsx("span",{className:"scheduled-list-title",children:e.jsx("strong",{children:n.scheduleName})}),e.jsx("span",{children:n.localProjectName}),e.jsxs("small",{children:[s,n.nextRunAt?` · Next ${W(n.nextRunAt,n.timezone)}`:" · No next run"]})]})]})}function ts({cadence:s,definition:t,onSelect:n,schedule:l,selected:d}){return e.jsxs("button",{"aria-current":d?"true":void 0,className:"scheduled-list-row",onClick:n,type:"button",children:[e.jsx("span",{className:`scheduled-status-dot ${l.enabled?"active":"paused"}`}),e.jsxs("span",{className:"scheduled-list-copy",children:[e.jsxs("span",{className:"scheduled-list-title",children:[e.jsx("strong",{children:t.name}),e.jsx("small",{className:"scheduled-environment-badge hosted",children:"Hosted"})]}),e.jsx("span",{children:t.prompt}),e.jsxs("small",{children:[s,l.nextRunAt?` · Next ${W(l.nextRunAt,l.timeZone)}`:" · No next run"]})]})]})}function ns({cadence:s,onSelect:t,selected:n,workflow:l}){return e.jsxs("button",{"aria-current":n?"true":void 0,className:"scheduled-list-row",onClick:t,type:"button",children:[e.jsx("span",{className:`scheduled-status-dot ${l.enabled?"active":"paused"}`}),e.jsxs("span",{className:"scheduled-list-copy",children:[e.jsxs("span",{className:"scheduled-list-title",children:[e.jsx("strong",{children:l.name}),e.jsx("small",{className:"scheduled-environment-badge",children:"Chat"})]}),e.jsx("span",{children:l.prompt}),e.jsxs("small",{children:["Runs in ",l.sessionTitle," · ",s,l.nextRunAt?` · Next ${W(l.nextRunAt,l.recurrence.timeZone)}`:" · No next run"]})]})]})}function ls(s,t){return s.filter(n=>t==="active"?n.enabled:t==="paused"?!n.enabled:!0).sort((n,l)=>{const d=n.nextRunAt?new Date(n.nextRunAt).getTime():Number.POSITIVE_INFINITY,x=l.nextRunAt?new Date(l.nextRunAt).getTime():Number.POSITIVE_INFINITY;return d-x||n.name.localeCompare(l.name)})}function re(s){const t=ve(s.localTime);return s.kind==="once"?`Once on ${s.startDate} at ${t} · ${s.timeZone}`:s.kind==="weekdays"?`Weekdays at ${t} · ${s.timeZone}`:s.kind==="weekly"?`${s.weekdays?.map(B).join(", ")??"Weekly"} at ${t} · ${s.timeZone}`:s.kind==="monthly"?`Monthly on day ${s.dayOfMonth??1} at ${t} · ${s.timeZone}`:`Daily at ${t} · ${s.timeZone}`}function as({detailExpanded:s,onClose:t,onDelete:n,onDetailResizeStart:l,onRun:d,onToggle:x,onToggleDetailExpanded:p,pending:j,runs:r,workflow:a}){return e.jsxs(Q,{detailExpanded:s,label:`${a.name} details`,onClose:t,onDetailResizeStart:l,onToggleDetailExpanded:p,children:[e.jsx("div",{className:"scheduled-detail-header",children:e.jsxs("div",{children:[e.jsxs("div",{className:"scheduled-detail-title-row",children:[e.jsx("h2",{children:"Workflow details"}),e.jsx("span",{children:a.enabled?"Active":"Paused"})]}),e.jsx("p",{children:a.name})]})}),e.jsx(T,{title:"Prompt",children:e.jsx("pre",{className:"scheduled-prompt",children:a.prompt})}),e.jsx(T,{title:"Profile source",children:a.profileRef&&a.profileWorkflowId?e.jsxs("p",{children:[a.profileRef.profileId," · workflows/",a.profileWorkflowId,"/PROMPT.md"]}):e.jsx("p",{className:"scheduled-detail-error",children:a.profileMigrationError??"Profile package is unresolved."})}),e.jsxs(T,{title:"Delivery",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(I,{label:"Runs in",value:a.sessionTitle}),e.jsx(I,{label:"Cadence",value:re(a.recurrence)}),e.jsx(I,{label:"Next run",value:W(a.nextRunAt,a.recurrence.timeZone)}),e.jsx(I,{label:"Last run",value:W(a.lastRunAt,a.recurrence.timeZone)})]}),a.lastError?e.jsx("p",{className:"scheduled-detail-error",children:a.lastError}):null]}),e.jsxs("div",{className:"scheduled-detail-actions",children:[e.jsxs("button",{disabled:j,onClick:()=>{d()},type:"button",children:[e.jsx(X,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:j,onClick:()=>{x()},type:"button",children:[a.enabled?e.jsx(le,{size:15}):e.jsx(ae,{size:15}),e.jsx("span",{children:a.enabled?"Pause":"Resume"})]}),e.jsxs("button",{disabled:j,onClick:()=>{n()},type:"button",children:[e.jsx(pe,{size:15}),e.jsx("span",{children:"Delete"})]})]}),e.jsx(T,{title:"Runs",children:r.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:r.map(c=>e.jsxs("div",{className:"scheduled-run-row",children:[e.jsx("span",{children:B(c.status)}),e.jsx("small",{children:W(c.createdAt,a.recurrence.timeZone)}),c.error?e.jsx("p",{children:c.error}):null]},c.id))})})]})}async function rs(s){const t=s.catalog.workflows.find(d=>d.workflow.id===s.workflowId);if(!t)throw new Error("Selected Profile workflow is unavailable.");const n=s.client??E,l=await n.createSession(s.connection,{experience:"work",provider:"openpond",...s.workspaceTarget==="local"?{metadata:{workspaceTarget:"local"}}:{},currentProfile:s.catalog.profileRef,profileWorkflowBinding:t.binding,title:t.workflow.label});return s.onSessionCreated?.(l.id),await n.sendTurn(s.connection,l.id,{prompt:s.prompt?.trim()||t.workflow.label,workflowInput:s.value,...s.attachments?.length?{attachments:s.attachments}:{},approvalPolicy:"on-request",sandbox:"workspace-write",codexPermissionMode:"default"}),l.id}function is({catalog:s,connection:t,detailExpanded:n,entry:l,onClose:d,onDetailResizeStart:x,onOpenSession:p,onToggleDetailExpanded:j}){const[r,a]=o.useState(""),[c,k]=o.useState([]),[w,h]=o.useState("{}"),[b,R]=o.useState(s.profileRef.source==="local"?"local":"hosted"),[$,y]=o.useState(!1),[P,C]=o.useState(null),N=l.workflow;async function m(f){if(f.preventDefault(),!$){y(!0),C(null);try{const u=JSON.parse(w);if(c.length>ee.maxAttachments)throw new Error(`Choose at most ${ee.maxAttachments} files.`);const A=await Promise.all(c.map(async g=>{if(g.size>ee.maxAttachmentBytes)throw new Error(`${g.name} exceeds the attachment size limit.`);return Fe({id:Ze(),file:g,name:g.name,mediaType:g.type||"application/octet-stream",sizeBytes:g.size,kind:Oe(g)})}));await rs({connection:t,catalog:s,workflowId:N.id,value:u,prompt:r,attachments:A,workspaceTarget:b,onSessionCreated:p})}catch(u){C(u instanceof Error?u.message:String(u))}finally{y(!1)}}}return e.jsxs(Q,{detailExpanded:n,kind:"workflow",label:`${N.label} details`,onClose:d,onDetailResizeStart:x,onToggleDetailExpanded:j,children:[e.jsx("div",{className:"scheduled-detail-header",children:e.jsxs("div",{children:[e.jsx("div",{className:"scheduled-detail-title-row",children:e.jsx("h2",{children:"Workflow details"})}),e.jsx("p",{children:N.label})]})}),e.jsx(T,{title:"Description",children:e.jsx("p",{children:N.description})}),e.jsxs(T,{title:"Source",children:[e.jsxs("p",{children:["workflows/",N.id,"/",N.invocation.kind==="instructions"?"PROMPT.md":"ACTION.json"]}),e.jsxs("p",{children:["Revision ",l.binding.sourceRevision.slice(0,12)," · Release ",l.binding.harnessRelease.contentHash.slice(0,12)]})]}),N.skillPaths.length>0?e.jsx(T,{title:"Skills",children:e.jsx("p",{children:N.skillPaths.join(", ")})}):null,N.invocation.kind==="instructions"?e.jsx(T,{title:"Instructions",children:e.jsx("pre",{className:"scheduled-prompt",children:N.invocation.instructions})}):null,e.jsx(T,{title:"Start a run",children:e.jsxs("form",{className:"scheduled-profile-workflow-form",onSubmit:f=>{m(f)},children:[e.jsx("label",{htmlFor:"scheduled-profile-workflow-prompt",children:"Instructions for this run"}),e.jsx("textarea",{id:"scheduled-profile-workflow-prompt",onChange:f=>a(f.target.value),value:r}),e.jsx("label",{htmlFor:"scheduled-profile-workflow-files",children:"Files for this run"}),e.jsx("input",{id:"scheduled-profile-workflow-files",type:"file",multiple:!0,onChange:f=>k(Array.from(f.target.files??[]))}),c.length>0?e.jsx("small",{children:c.map(f=>f.name).join(", ")}):null,e.jsx("label",{htmlFor:"scheduled-profile-workflow-target",children:"Run in"}),e.jsxs("select",{id:"scheduled-profile-workflow-target",value:b,onChange:f=>R(f.target.value),children:[e.jsx("option",{value:"local",children:"Desktop local workspace"}),e.jsx("option",{value:"hosted",children:"Hosted Work"})]}),N.invocation.kind==="agent_action"?e.jsxs(e.Fragment,{children:[e.jsx("label",{htmlFor:"scheduled-profile-workflow-input",children:"Input JSON"}),e.jsx("textarea",{id:"scheduled-profile-workflow-input",onChange:f=>h(f.target.value),value:w})]}):null,P?e.jsx("p",{className:"scheduled-detail-error",role:"alert",children:P}):null,e.jsx("div",{className:"scheduled-detail-actions",children:e.jsxs("button",{disabled:$,type:"submit",children:[e.jsx(X,{size:15}),e.jsx("span",{children:$?"Starting…":"Run now"})]})})]})})]})}function os(s){return s.flatMap(t=>t.schedules.map(n=>({definition:t,schedule:n})))}function ds(s,t){return s.filter(n=>t==="active"?n.schedule.enabled:t==="paused"?!n.schedule.enabled:!0).sort((n,l)=>O(n.schedule.nextRunAt)-O(l.schedule.nextRunAt)||n.definition.name.localeCompare(l.definition.name))}function cs(s,t){return s.filter(n=>t==="active"?n.enabled:t==="paused"?!n.enabled:!0).sort((n,l)=>O(n.nextRunAt)-O(l.nextRunAt)||n.scheduleName.localeCompare(l.scheduleName))}function us(s,t,n){return[...s.map(l=>({kind:"chat",workflow:l})),...t.map(l=>({kind:"local",schedule:l})),...n.map(l=>({kind:"hosted",row:l}))].sort((l,d)=>{const x=O(ue(l)),p=O(ue(d));if(x!==p)return x-p;const j=he(l),r=he(d);return j.localeCompare(r)})}function hs(s){return s.kind==="chat"?{enabled:s.workflow.enabled,key:V(s.workflow.id),nextRunAt:s.workflow.nextRunAt,title:s.workflow.name}:s.kind==="local"?{enabled:s.schedule.enabled,key:K(s.schedule.id),nextRunAt:s.schedule.nextRunAt,title:s.schedule.scheduleName}:{enabled:s.row.schedule.enabled,key:Y(s.row.schedule.id),nextRunAt:s.row.schedule.nextRunAt,title:s.row.definition.name}}function fs(s){const t=s.recurrence;return t?re(t):s.expression??"Manual"}function ue(s){return s.kind==="chat"?s.workflow.nextRunAt:s.kind==="local"?s.schedule.nextRunAt:s.row.schedule.nextRunAt}function he(s){return s.kind==="chat"?s.workflow.name:s.kind==="local"?s.schedule.scheduleName:s.row.definition.name}function ye(s){const t=s.timezone?` · ${s.timezone}`:"";if(s.scheduleType==="rate")return`Every ${s.scheduleExpression}${t}`;const n=s.scheduleExpression.trim().split(/\s+/);if(n.length===5&&/^\d+$/.test(n[0])&&/^\d+$/.test(n[1])){const l=ve(`${n[1].padStart(2,"0")}:${n[0].padStart(2,"0")}`);if(n[2]==="*"&&n[3]==="*"&&n[4]==="*")return`Daily at ${l}${t}`;if(n[2]==="*"&&n[3]==="*"&&n[4]==="MON-FRI")return`Weekdays at ${l}${t}`}return`Cron ${s.scheduleExpression}${t}`}function K(s){return`local:${s}`}function V(s){return`chat:${s}`}function H(s){return`profile:${s}`}function Y(s){return`hosted:${s}`}function O(s){if(!s)return Number.MAX_SAFE_INTEGER;const t=new Date(s).getTime();return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER}const ms=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function Ws({connection:s,selectedProfileKey:t,onOpenSession:n,detailOpen:l,detailExpanded:d,onDetailOpenChange:x,onDetailResizeStart:p,onToggleDetailExpanded:j}){const r=He(s),a=Ke(s),c=Ie(s),[k,w]=o.useState(null),[h,b]=o.useState(!1),[R,$]=o.useState(null),[y,P]=o.useState("all"),[C,N]=o.useState(oe);Ee(()=>N(oe()));const[m,f]=o.useState(!1),[u,A]=o.useState(null),g=o.useMemo(()=>os(r.definitions),[r.definitions]),q=o.useMemo(()=>ds(g,y),[y,g]),L=o.useMemo(()=>cs(c.schedules,y),[y,c.schedules]),G=o.useMemo(()=>ls(a.workflows,y),[a.workflows,y]),S=g.find(i=>Y(i.schedule.id)===u)??null,M=c.schedules.find(i=>K(i.id)===u)??null,D=a.workflows.find(i=>V(i.id)===u)??null,z=k?.workflows.find(i=>H(i.workflow.id)===u)??null,v=S?r.runs.filter(i=>i.scheduleId===S.schedule.id):[],J=o.useMemo(()=>us(G,L,q),[G,L,q]),Ne=o.useMemo(()=>[...J.map(hs),...k?.workflows.map(i=>({enabled:!0,key:H(i.workflow.id),nextRunAt:null,title:i.workflow.label}))??[]],[J,k]);U(r.error,{prefix:"Workflows"}),U(c.error,{prefix:"Local schedules"}),U(a.error,{prefix:"Chat workflows"}),U(R,{prefix:"Profile workflows"}),o.useEffect(()=>{if(!s||!t){w(null),$(null);return}let i=!0;return b(!0),E.profileWorkflows(s).then(_=>{i&&(w(_),$(null))}).catch(_=>{i&&$(_ instanceof Error?_.message:String(_))}).finally(()=>{i&&b(!1)}),()=>{i=!1}},[s,t]),o.useEffect(()=>{u&&!S&&!M&&!D&&!z&&!h&&A(null)},[h,D,S,M,z,u]),o.useEffect(()=>{!l&&u&&A(null)},[l,u]),o.useEffect(()=>()=>x(!1),[x]);function Z(i){A(i),x(!0)}function F(){A(null),x(!1)}function ie(i){N(i),Ve(i)}async function Se(){f(!0);try{await Promise.all([r.refresh(),c.refresh(),a.refresh(),s&&t?E.profileWorkflows(s).then(w):Promise.resolve()])}finally{f(!1)}}return e.jsxs("section",{"aria-label":"Workflows",className:`scheduled-work-view${S||M||D||z?" detail-open":""}${d?" detail-expanded":""}`,children:[e.jsx("div",{className:"scheduled-work-scroll",children:e.jsxs("div",{className:"scheduled-work-content",children:[e.jsxs("header",{className:"scheduled-work-header",children:[e.jsxs("div",{"aria-label":"Workflow view",className:"scheduled-view-tabs",role:"tablist",children:[e.jsx("button",{"aria-selected":C==="calendar",className:C==="calendar"?"active":void 0,onClick:()=>ie("calendar"),role:"tab",type:"button",children:"Calendar"}),e.jsx("button",{"aria-selected":C==="list",className:C==="list"?"active":void 0,onClick:()=>ie("list"),role:"tab",type:"button",children:"List"})]}),e.jsxs("div",{className:"scheduled-work-header-actions",children:[e.jsx("button",{"aria-label":"Refresh schedules",className:"scheduled-icon-button",disabled:!s||r.loading||c.loading||a.loading||h,onClick:()=>{Se()},title:"Refresh schedules",type:"button",children:e.jsx(Pe,{className:m?"scheduled-spin":void 0,size:16})}),e.jsxs("label",{className:"scheduled-filter",children:[e.jsx(Me,{"aria-hidden":"true",size:16}),e.jsxs("select",{"aria-label":"Schedule filter",onChange:i=>P(i.target.value),value:y,children:[e.jsx("option",{value:"active",children:"Active"}),e.jsx("option",{value:"paused",children:"Paused"}),e.jsx("option",{value:"all",children:"All"})]})]})]})]}),e.jsx("section",{"aria-busy":r.loading||c.loading||a.loading||h,className:"scheduled-list",children:s?(r.loading||c.loading||a.loading||h)&&g.length===0&&c.schedules.length===0&&a.workflows.length===0&&!k?.workflows.length?e.jsx(ke,{label:"Loading schedules"}):r.error&&c.error&&g.length===0&&c.schedules.length===0?e.jsx(te,{children:"Schedules are unavailable. Refresh to try again."}):J.length===0&&!k?.workflows.length?e.jsx(te,{children:"Create a scheduled task here or ask for one in Work."}):C==="calendar"?e.jsx(Ge,{items:Ne,onSelect:Z,selectedKey:u}):e.jsxs("div",{className:"scheduled-list-rows",children:[k?.workflows.map(i=>e.jsx(es,{entry:i,onSelect:()=>Z(H(i.workflow.id)),selected:u===H(i.workflow.id)},H(i.workflow.id))),J.map(i=>i.kind==="chat"?e.jsx(ns,{cadence:re(i.workflow.recurrence),onSelect:()=>Z(V(i.workflow.id)),selected:u===V(i.workflow.id),workflow:i.workflow},V(i.workflow.id)):i.kind==="local"?e.jsx(ss,{cadence:ye(i.schedule),onSelect:()=>Z(K(i.schedule.id)),schedule:i.schedule,selected:u===K(i.schedule.id)},K(i.schedule.id)):e.jsx(ts,{cadence:fs(i.row.schedule),definition:i.row.definition,onSelect:()=>Z(Y(i.row.schedule.id)),schedule:i.row.schedule,selected:u===Y(i.row.schedule.id)},Y(i.row.schedule.id)))]}):e.jsx(te,{children:"Connect to OpenPond to view scheduled Work."})})]})}),z&&k&&s?e.jsx(is,{catalog:k,connection:s,detailExpanded:d,entry:z,onClose:F,onDetailResizeStart:p,onOpenSession:n,onToggleDetailExpanded:j},z.workflow.id):S?e.jsx(ps,{onClose:F,onDelete:async()=>{await r.remove(S.schedule.id),F()},onRun:()=>r.run(S.schedule.id),onSave:i=>r.update(S.schedule.id,i),onToggle:()=>r.update(S.schedule.id,{enabled:!S.schedule.enabled}),pending:r.pendingScheduleIds.has(S.schedule.id),row:S,runs:v,detailExpanded:d,onDetailResizeStart:p,onToggleDetailExpanded:j,webBaseUrl:r.webBaseUrl},`${S.schedule.id}:${S.definition.version}:${S.schedule.configurationVersion}`):D?e.jsx(as,{detailExpanded:d,onClose:F,onDelete:async()=>{await a.remove(D.id),F()},onDetailResizeStart:p,onRun:()=>a.run(D.id),onToggle:()=>a.update(D.id,{enabled:!D.enabled}),onToggleDetailExpanded:j,pending:a.pendingIds.has(D.id),runs:a.runs.filter(i=>i.workflowId===D.id),workflow:D},D.id):M?e.jsx(xs,{connection:s,onClose:F,onRun:()=>c.run(M),onToggle:()=>c.toggle(M),pending:c.pendingScheduleIds.has(M.id),schedule:M,detailExpanded:d,onDetailResizeStart:p,onToggleDetailExpanded:j},M.id):null]})}function xs({connection:s,detailExpanded:t,onClose:n,onDetailResizeStart:l,onRun:d,onToggleDetailExpanded:x,onToggle:p,pending:j,schedule:r}){const a=bs(s,r.id);return U(a.error,{prefix:"Local schedule runs"}),e.jsxs(Q,{detailExpanded:t,label:`${r.scheduleName} details`,onClose:n,onDetailResizeStart:l,onToggleDetailExpanded:x,children:[e.jsx("div",{className:"scheduled-detail-header",children:e.jsxs("div",{children:[e.jsxs("div",{className:"scheduled-detail-title-row",children:[e.jsx("h2",{children:"Schedule details"}),e.jsx("span",{children:r.enabled?"Active":"Paused"})]}),e.jsx("p",{children:r.scheduleName})]})}),e.jsxs(T,{title:"Task",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(I,{label:"Environment",value:"Local"}),e.jsx(I,{label:"Project",value:r.localProjectName}),e.jsx(I,{label:"Agent",value:r.agentName}),e.jsx(I,{label:"Action",value:r.targetAction})]}),e.jsx("pre",{className:"scheduled-prompt",children:ws(r)})]}),e.jsxs(T,{title:"Schedule",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(I,{label:"Cadence",value:ye(r)}),e.jsx(I,{label:"Expression",value:r.scheduleExpression}),e.jsx(I,{label:"Timezone",value:r.timezone??"Local time"}),e.jsx(I,{label:"Next run",value:W(r.nextRunAt,r.timezone)}),e.jsx(I,{label:"Last run",value:W(r.lastRunAt,r.timezone)})]}),r.lastError?e.jsx("p",{className:"scheduled-detail-error",children:r.lastError}):null]}),e.jsxs("div",{className:"scheduled-detail-actions",children:[e.jsxs("button",{disabled:j,onClick:()=>{d()},type:"button",children:[e.jsx(X,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:j,onClick:()=>{p()},type:"button",children:[r.enabled?e.jsx(le,{size:15}):e.jsx(ae,{size:15}),e.jsx("span",{children:r.enabled?"Pause":"Resume"})]})]}),e.jsx(T,{title:"Runs",children:a.loading&&a.runs.length===0?e.jsx(ke,{label:"Loading runs"}):a.runs.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:a.runs.map(c=>e.jsx(Ye,{run:c},c.id))})})]})}function ps({detailExpanded:s,onClose:t,onDelete:n,onDetailResizeStart:l,onRun:d,onSave:x,onToggleDetailExpanded:p,onToggle:j,pending:r,row:a,runs:c,webBaseUrl:k}){const w=js(a.schedule),[h,b]=o.useState(a.definition.name),[R,$]=o.useState(a.definition.prompt),[y,P]=o.useState(w.kind),[C,N]=o.useState(w.timeZone),[m,f]=o.useState(w.startDate),[u,A]=o.useState(w.localTime),[g,q]=o.useState(w.weekdays?.[0]??"monday"),[L,G]=o.useState(w.dayOfMonth??1),S=c[0]?.conversationId??null,M=k?fe(k,S):null,D=h!==a.definition.name||R!==a.definition.prompt||y!==w.kind||C!==w.timeZone||m!==w.startDate||u!==w.localTime||g!==(w.weekdays?.[0]??"monday")||L!==(w.dayOfMonth??1);async function z(v){v.preventDefault(),await x({name:h,prompt:R,recurrence:{version:1,kind:y,timeZone:C,startDate:m,localTime:u,end:{kind:"never"},...y==="weekly"?{weekdays:[g]}:{},...y==="monthly"?{dayOfMonth:L}:{}}})}return e.jsx(Q,{detailExpanded:s,label:`${a.definition.name} details`,onClose:t,onDetailResizeStart:l,onToggleDetailExpanded:p,children:e.jsxs("form",{onSubmit:z,children:[e.jsxs("div",{className:"scheduled-detail-header",children:[e.jsx("div",{children:e.jsxs("div",{className:"scheduled-detail-title-row",children:[e.jsx("h2",{children:"Schedule details"}),e.jsx("span",{children:a.schedule.enabled?"Active":"Paused"})]})}),e.jsx("div",{className:"scheduled-detail-header-controls",children:e.jsx("button",{"aria-label":"Delete schedule",className:"scheduled-icon-button",disabled:r,onClick:()=>{n()},title:"Delete schedule",type:"button",children:e.jsx(pe,{size:16})})})]}),e.jsxs(T,{title:"Task",children:[e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{maxLength:180,onChange:v=>b(v.target.value),required:!0,value:h})]}),e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Prompt"}),e.jsx("textarea",{onChange:v=>$(v.target.value),required:!0,value:R})]})]}),e.jsxs(T,{title:"Schedule",children:[e.jsxs("div",{className:"scheduled-field-grid",children:[e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Repeat"}),e.jsxs("select",{onChange:v=>P(v.target.value),value:y,children:[e.jsx("option",{value:"once",children:"Once"}),e.jsx("option",{value:"daily",children:"Daily"}),e.jsx("option",{value:"weekdays",children:"Weekdays"}),e.jsx("option",{value:"weekly",children:"Weekly"}),e.jsx("option",{value:"monthly",children:"Monthly"})]})]}),y==="weekly"?e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Day"}),e.jsx("select",{onChange:v=>q(v.target.value),value:g,children:ms.map(v=>e.jsx("option",{value:v,children:B(v)},v))})]}):y==="monthly"?e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Day of month"}),e.jsx("input",{max:31,min:1,onChange:v=>G(Number(v.target.value)),type:"number",value:L})]}):null,e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Start date"}),e.jsx("input",{onChange:v=>f(v.target.value),required:!0,type:"date",value:m})]}),e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Time"}),e.jsx("input",{onChange:v=>A(v.target.value),required:!0,type:"time",value:u})]}),e.jsxs("label",{className:"scheduled-field scheduled-field-wide",children:[e.jsx("span",{children:"Timezone"}),e.jsx("input",{onChange:v=>N(v.target.value),required:!0,value:C})]})]}),e.jsxs("p",{className:"scheduled-next-run",children:["Next run: ",W(a.schedule.nextRunAt,w.timeZone)]})]}),e.jsxs("div",{className:"scheduled-detail-actions",children:[D?e.jsxs("button",{disabled:r,type:"submit",children:[e.jsx(ze,{size:15}),e.jsx("span",{children:"Save"})]}):null,e.jsxs("button",{disabled:r,onClick:()=>{d()},type:"button",children:[e.jsx(X,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:r,onClick:()=>{j()},type:"button",children:[a.schedule.enabled?e.jsx(le,{size:15}):e.jsx(ae,{size:15}),e.jsx("span",{children:a.schedule.enabled?"Pause":"Resume"})]})]}),e.jsxs("button",{className:"scheduled-open-chat",disabled:r||!M,onClick:()=>{M&&me(M,S)},type:"button",children:[e.jsx("span",{children:"Open hosted chat"}),e.jsx(xe,{size:14})]}),e.jsx(T,{title:"Runs",children:c.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:c.map(v=>e.jsx(Be,{onOpen:()=>{k&&me(fe(k,v.conversationId),v.conversationId)},run:v},v.id))})})]})})}function js(s){return s.recurrence??{version:1,kind:"daily",timeZone:s.timeZone||ks(),startDate:vs(),localTime:"08:00",end:{kind:"never"}}}function ws(s){const t=s.input.prompt;return typeof t=="string"&&t.trim()?t.trim():Object.keys(s.input).length>0?JSON.stringify(s.input,null,2):"No task input configured."}function bs(s,t){const[n,l]=o.useState([]),[d,x]=o.useState(!1),[p,j]=o.useState(null);return o.useEffect(()=>{if(!s){l([]),x(!1),j(null);return}let r=!1;return x(!0),E.localAgentScheduleRuns(s,t,{limit:20}).then(a=>{r||(l(a.runs),j(null))}).catch(a=>{r||j(gs(a))}).finally(()=>{r||x(!1)}),()=>{r=!0}},[s,t]),{error:p,loading:d,runs:n}}function fe(s,t){const n=new URL(s);return n.pathname=t?`/sandboxes/work/${encodeURIComponent(t)}`:"/sandboxes/work",n.search="",n.hash="",n.toString()}async function me(s,t){const n=window.openpond?.browser;n?.openExternal&&(await n.openExternal({conversationId:t??"hosted-scheduled-work",url:s})).ok||window.open(s,"_blank","noopener,noreferrer")}function vs(){return new Date().toISOString().slice(0,10)}function ks(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}function gs(s){return s instanceof Error?s.message:String(s)}export{Ws as ScheduledWorkPage,W as formatScheduledRunAt,fe as hostedConversationUrl};
@@ -0,0 +1 @@
1
+ .settings-shell{position:relative;display:grid;grid-template-columns:300px minmax(0,1fr);height:100%;min-height:0;background:var(--bg)}.settings-shell.harness-diff-open{grid-template-columns:300px minmax(0,1fr) minmax(380px,max(380px,min(var(--diff-panel-width, 480px),48vw)))}.settings-shell>.workspace-diff-panel{z-index:3;grid-column:3;grid-row:1}.settings-shell.harness-diff-expanded{grid-template-columns:300px minmax(0,1fr)}.settings-shell.harness-diff-expanded>.settings-content{display:none}.settings-shell.harness-diff-expanded>.workspace-diff-panel{grid-column:2;border-left:0}.settings-window-controls{position:absolute;z-index:4;top:12px;right:12px;display:inline-flex;align-items:center;gap:8px;height:20px;-webkit-app-region:no-drag;app-region:no-drag}.settings-window-controls .topbar-diff-button:disabled{cursor:default;opacity:.4}.settings-drag-region{position:absolute;z-index:2;top:0;right:0;left:300px;height:43px;-webkit-app-region:drag;app-region:drag}.settings-sidebar{min-height:0;border-right:1px solid var(--border);background:#101010;padding:12px 7px 0}.settings-shell.platform-macos .settings-sidebar{padding-top:43px}.settings-back{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;width:100%;min-height:32px;border:0;border-radius:12px;background:transparent;color:#8e8e8e;padding:0 10px;text-align:left;font-size:13px}.settings-back span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-back:hover{color:var(--text);background:#ffffff0f}.settings-nav{display:grid;gap:3px;margin-top:10px}.settings-nav-group{display:grid;gap:3px}.settings-nav-group+.settings-nav-group{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.settings-nav-heading{padding:3px 10px 5px;color:#8a8a8a;font-size:11px;font-weight:600}.settings-nav-item{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:29px;border:0;border-radius:10px;background:transparent;color:#f5f5f5;padding:0 10px;text-align:left;font-size:13px}.settings-nav-item.active{background:#2a2a2a}.settings-content{min-width:0;min-height:0;overflow:auto;padding:64px max(48px,12vw);scrollbar-width:none}.settings-content-wide{padding-inline:clamp(24px,5vw,72px)}.settings-stacked-sections{display:grid;gap:34px}.account-settings-embedded{border-top:1px solid rgba(255,255,255,.07);padding-top:28px}.settings-content::-webkit-scrollbar{display:none}.account-settings{display:grid;gap:28px;max-width:760px}.profile-settings{container-name:profile-view;container-type:inline-size;width:min(1120px,100%);max-width:none;min-width:0;margin-inline:auto}.account-settings h1{margin:0 0 24px;color:#f7f7f7;font-size:22px;font-weight:500;letter-spacing:0}.account-settings-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 24px}.account-settings-title h1{margin:0}.account-settings-title-actions{display:flex;align-items:center;gap:6px;margin-left:auto}@media(max-width:980px){.settings-shell,.settings-shell.harness-diff-open,.settings-shell.harness-diff-expanded{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.settings-drag-region{left:0}.settings-sidebar,.settings-shell.platform-macos .settings-sidebar{display:flex;min-width:0;gap:8px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border);padding:44px 14px 10px;scrollbar-width:none}.settings-sidebar::-webkit-scrollbar{display:none}.settings-back{flex:0 0 auto;width:auto}.settings-back span,.settings-nav-heading{display:none}.settings-nav,.settings-nav-group{display:flex;flex:0 0 auto;gap:3px;margin:0}.settings-nav-group+.settings-nav-group{margin:0;padding:0 0 0 8px;border-top:0;border-left:1px solid rgba(255,255,255,.06)}.settings-nav-item{display:inline-flex;flex:0 0 auto;width:auto;padding-inline:10px}.settings-content,.settings-content-wide{grid-column:1;grid-row:2;padding:28px 18px}.settings-shell.harness-diff-expanded>.workspace-diff-panel{grid-column:1;grid-row:2}}.configuration-settings header h1{margin-bottom:12px}.configuration-settings header p,.configuration-settings details p{color:var(--muted);font-size:13px;line-height:1.6}.configuration-settings details{min-width:0;border:1px solid var(--border);border-radius:12px;padding:16px}.configuration-settings summary{cursor:pointer;font-size:14px;font-weight:500}.configuration-settings textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);padding:14px;line-height:1.6;font-size:13px}.configuration-actions{display:flex;flex-wrap:wrap;gap:8px;margin-block:12px}.configuration-settings button,.configuration-settings select{border:1px solid var(--border);border-radius:8px;background:#242424;color:var(--text);padding:8px 12px}.configuration-settings button:disabled{opacity:.5;cursor:default}.configuration-settings table{width:100%;border-collapse:collapse;font-size:12px}.configuration-settings th,.configuration-settings td{text-align:left;padding:8px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.configuration-settings pre{overflow:auto;font-size:12px}.configuration-settings code{overflow-wrap:anywhere}.configuration-banner{margin-bottom:24px}.configuration-page h2{font-size:16px;font-weight:500;margin:0}.account-summary,.account-list,.provider-settings-form,.diagnostics-log-panel,.settings-footnote{border:1px solid var(--border);border-radius:16px;background:#181818}.account-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px}.account-summary-main>div{display:grid;gap:5px}.account-summary span,.account-summary small,.account-list-heading small,.account-details span,.product-row span,.settings-footnote span,.empty-account-list span{color:#9b9b9b;font-size:12px}.account-summary strong{color:#f7f7f7;font-size:15px}.account-summary-main{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.account-summary .account-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.account-summary-main>div{min-width:0}.account-summary-main strong,.account-summary-main small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-summary-meta{display:flex;align-items:center;gap:8px;min-width:0}.account-summary-meta small{flex:0 1 auto;max-width:min(260px,44vw)}.account-summary-meta .account-summary-copy{max-width:min(520px,52vw);overflow:visible;text-overflow:clip;white-space:normal;line-height:1.35}.account-team-dropdown.compact{flex:0 1 auto;justify-self:auto;min-width:0}.account-team-dropdown.compact .dropdown-trigger{max-width:220px;height:24px;padding:0 6px}.account-team-dropdown .dropdown-menu{min-width:100%}.private-account-email{display:inline-block;filter:blur(4px);transition:filter .12s ease;-webkit-user-select:none;user-select:none}.private-account-email:hover,.private-account-email:focus-visible{filter:none;-webkit-user-select:text;user-select:text}.private-account-email:focus-visible{outline:1px solid rgba(58,163,255,.55);outline-offset:2px}.provider-settings-form{overflow:visible;position:relative;z-index:1}.provider-settings-form>.account-list-heading{border-bottom:0}.provider-state-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;max-width:150px;border-radius:999px;padding:0 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;background:#ffffff14;color:#bdbdbd}.provider-state-pill.muted{background:#ffffff14;color:#bdbdbd}.provider-row-status.muted{color:#bdbdbd}.provider-state-pill.ready{background:#50c87821;color:#8ddfa8}.provider-state-pill.configured{background:#3aa3ff21;color:#8fc8ff}.provider-state-pill.warning{background:#ff7a2f21;color:#ffad7d}.provider-manager-panel{border:1px solid var(--border);border-radius:16px;background:#181818;overflow:hidden}.provider-manager-scroll{display:grid;max-height:568px;overflow-y:auto;scrollbar-color:#343434 #161616;scrollbar-width:thin}.provider-manager-heading{align-items:center}.provider-manager-title-row{display:inline-flex;align-items:center;gap:12px;min-width:0}.settings-check-row.provider-subscription-filter{display:inline-flex;align-items:center;gap:6px;grid-template-columns:none;max-width:none;padding:0;color:#bdbdbd;font-size:12px;white-space:nowrap;cursor:pointer}.settings-check-row.provider-subscription-filter>span{display:block;min-width:0}.settings-check-row.provider-subscription-filter input[type=checkbox]{width:14px;height:14px;margin:0;border-radius:4px}.settings-check-row.provider-subscription-filter input[type=checkbox]:before{width:7px;height:4px}.provider-manager-empty{border:0;border-radius:0;background:transparent;padding:22px 16px}.provider-manager-scroll::-webkit-scrollbar,.provider-details-dialog::-webkit-scrollbar{width:10px}.provider-manager-scroll::-webkit-scrollbar-track,.provider-details-dialog::-webkit-scrollbar-track{background:#161616}.provider-manager-scroll::-webkit-scrollbar-thumb,.provider-details-dialog::-webkit-scrollbar-thumb{border:2px solid #161616;border-radius:999px;background:#343434}.provider-manager-scroll::-webkit-scrollbar-thumb:hover,.provider-details-dialog::-webkit-scrollbar-thumb:hover{background:#464646}.provider-manager-row{display:grid;grid-template-columns:44px minmax(160px,1fr) minmax(240px,.82fr) auto;align-items:center;gap:14px;min-height:48px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.provider-manager-row:last-child{border-bottom:0}.provider-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:28px}.provider-toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.provider-toggle input:disabled{cursor:default}.provider-toggle span{position:relative;width:34px;height:20px;border-radius:999px;background:#ffffff1f;transition:background .12s ease}.provider-toggle span:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#b8b8b8;transition:transform .12s ease,background .12s ease}.provider-toggle input:checked+span{background:#06b6d452}.provider-toggle input:checked+span:after{transform:translate(14px);background:var(--cyan)}.provider-toggle input:focus-visible+span{outline:1px solid rgba(6,182,212,.6);outline-offset:2px}.provider-toggle input:disabled+span{opacity:.48}.provider-row-main{min-width:0}.provider-row-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#f2f2f2}.provider-row-status{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;color:#bdbdbd;font-size:12px}.provider-row-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provider-row-status.ready{color:var(--cyan)}.provider-row-status.configured{color:#8fc8ff}.provider-row-status.warning{color:#ffad7d}.provider-row-status .settings-spin{flex:0 0 auto}.provider-details-button{width:86px}.provider-dialog-backdrop{z-index:90}.provider-details-dialog{width:min(760px,calc(100vw - 36px));max-height:min(760px,calc(100vh - 52px));overflow:auto;scrollbar-color:#343434 #161616;scrollbar-width:thin}.provider-dialog-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:20px 48px 16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.provider-dialog-header h2{margin:0;color:#f6f6f6;font-size:18px;font-weight:620}.provider-dialog-header span{color:#9b9b9b;font-size:12px}.provider-dialog-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:8px 20px 14px}.provider-dialog-stats div{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:10px;min-height:32px}.provider-dialog-stats .provider-dialog-error{grid-column:1 / -1}.provider-dialog-stats dt{color:#9b9b9b;font-size:12px}.provider-dialog-stats dd{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f2f2f2;font-size:13px}.provider-dialog-body{display:grid;gap:12px;padding-bottom:6px}.provider-card-form{display:grid;gap:12px;padding:0 20px 16px}.provider-card-form+.provider-card-form{padding-top:2px;border-top:1px solid rgba(255,255,255,.06)}.provider-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-mode-tabs{justify-self:stretch;width:auto;margin:12px 20px 0}.provider-credential-panel,.provider-subscription-panel{display:grid;gap:12px;min-width:0}.credential-form .provider-dialog-note{margin:0}.provider-credential-panel .settings-button-row,.provider-subscription-panel .settings-button-row{padding:0}.provider-dialog-note{display:flex;align-items:center;gap:8px;margin:0 20px 20px;border:1px solid rgba(255,122,47,.22);border-radius:10px;background:#ff7a2f14;padding:10px 12px;color:#ffad7d;font-size:13px}.provider-dialog-note.xai-provider-note,.provider-dialog-note.subscription-provider-note{border-color:#3aa3ff33;background:#3aa3ff14;color:#9bd0ff}.provider-dialog-note code{border-radius:4px;background:#ffffff14;padding:1px 4px;color:#f2f2f2;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.codex-provider-actions{padding:0 20px 20px}.provider-validation-message strong{white-space:pre-line}.account-dialog-advanced-fields{display:grid;gap:12px}.provider-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px 12px}.provider-settings-grid.single{grid-template-columns:minmax(0,1fr);max-width:380px}.settings-path-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;max-width:640px;padding:14px 16px 12px}.lsp-language-list{display:grid}.lsp-language-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(150px,.7fr) minmax(180px,1.2fr);align-items:end;gap:12px;min-width:0;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.lsp-language-row:last-child{border-bottom:0}.lsp-language-label{display:grid;gap:4px;min-width:0;padding-bottom:7px}.lsp-language-label strong{color:#f6f6f6;font-size:13px;font-weight:550}.lsp-language-label span{color:#9b9b9b;font-size:12px}.lsp-status-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.lsp-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:999px;padding:0 9px;white-space:nowrap;font-size:12px;background:#242424;color:#bdbdbd}.lsp-status-pill.found{background:#50c87821;color:#8ddfa8}.lsp-status-pill.missing,.lsp-status-pill.error{background:#ff7a2f21;color:#ffad7d}.lsp-status-pill.disabled{background:#ffffff14;color:#a8a8a8}.settings-select-field{position:relative;display:grid;gap:6px;min-width:0}.settings-select-field span{color:#9b9b9b;font-size:12px}.settings-select-field small{min-width:0;color:#8f8f8f;font-size:11px;line-height:1.35}.settings-select-field input,.settings-select-field select{width:100%;min-width:0;height:36px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:0 10px;font-size:13px}.settings-select-field select{appearance:none;background:linear-gradient(45deg,transparent 50%,#9b9b9b 50%) calc(100% - 16px) 50% / 5px 5px no-repeat,linear-gradient(135deg,#9b9b9b 50%,transparent 50%) calc(100% - 11px) 50% / 5px 5px no-repeat,#101010;padding-right:32px}.settings-select-field input:focus,.settings-select-field select:focus{border-color:#06b6d480}.settings-check-row{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;max-width:560px;padding:2px 16px 16px;color:var(--text)}.settings-check-row input[type=checkbox]{-webkit-appearance:none;appearance:none;display:grid;place-content:center;width:16px;height:16px;margin:2px 0 0;border:1px solid rgba(255,255,255,.18);border-radius:5px;outline:0;background:#101010;cursor:pointer;transition:border-color .12s ease,background .12s ease,opacity .12s ease}.settings-check-row input[type=checkbox]:before{content:"";width:8px;height:5px;margin-top:-1px;border-bottom:2px solid #061317;border-left:2px solid #061317;transform:rotate(-45deg) scale(0);transition:transform .12s ease}.settings-check-row input[type=checkbox]:checked{border-color:#06b6d4e0;background:var(--cyan)}.settings-check-row input[type=checkbox]:checked:before{transform:rotate(-45deg) scale(1)}.settings-check-row input[type=checkbox]:focus-visible{outline:2px solid rgba(6,182,212,.35);outline-offset:2px}.settings-check-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.48}.settings-check-row span{display:grid;gap:4px;min-width:0}.settings-check-row strong{font-size:13px;font-weight:500}.settings-check-row small{color:#8d8d8d;font-size:12px;line-height:1.4}.settings-check-row.compact{padding:0}.settings-check-row.inline{max-width:none}.subagents-settings{max-width:980px}.subagent-settings-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:0}.subagent-settings-title-row h1{margin:0}.subagent-settings-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.subagent-settings-form{display:grid;gap:18px;min-width:0}.subagent-settings-section{display:grid;gap:12px;min-width:0;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.subagent-settings-card-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0}.subagent-settings-card-header>div{min-width:0}.subagent-settings-card-header>div>span{min-width:0;overflow:hidden;color:#f2f2f2;font-size:14px;font-weight:620;text-overflow:ellipsis;white-space:nowrap}.subagent-settings-card-header>div>small{min-width:0;color:#9b9b9b;font-size:12px;line-height:1.35}.subagent-field-grid{display:grid;gap:12px;min-width:0}.subagent-field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.subagent-field-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.subagent-role-list{display:grid;min-width:0}.subagent-role-row{display:grid;gap:12px;min-width:0;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}.subagent-role-row:first-child{padding-top:0}.subagent-role-row.disabled{opacity:.64}.subagent-role-header{grid-template-columns:minmax(0,1fr) auto}.subagent-role-title{display:grid;gap:3px;min-width:0}.subagent-role-title span,.subagent-role-title small{min-width:0;overflow:hidden;text-overflow:ellipsis}.subagent-role-title span{color:#f2f2f2;font-size:14px;font-weight:620;white-space:nowrap}.subagent-role-title small{color:#9b9b9b;font-size:12px;line-height:1.35}.subagent-role-controls{display:grid;grid-template-columns:minmax(220px,1.25fr) repeat(3,minmax(140px,.75fr));align-items:end;gap:12px;min-width:0}.subagent-role-budget-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));align-items:end;gap:12px;min-width:0}.subagents-settings .provider-toggle{width:44px;height:30px}.subagents-settings .provider-toggle>span{width:40px;height:22px;border:1px solid rgba(255,255,255,.1);background:#ffffff1a}.subagents-settings .provider-toggle>span:after{top:2px;left:2px;width:16px;height:16px;background:#a9a9a9}.subagents-settings .provider-toggle input:checked+span{border-color:#06b6d46b;background:#06b6d442}.subagents-settings .provider-toggle input:checked+span:after{transform:translate(18px);background:var(--cyan)}@media(max-width:820px){.subagent-field-grid.two,.subagent-field-grid.four,.subagent-role-controls,.subagent-role-budget-grid{grid-template-columns:minmax(0,1fr)}}.settings-radio-group{display:grid;gap:10px;padding:0 16px 16px;max-width:640px}.settings-radio-row{display:flex;align-items:flex-start;gap:10px;min-width:0;color:var(--text)}.settings-radio-row input{margin-top:3px}.settings-radio-row span{display:grid;gap:4px;min-width:0}.settings-radio-row strong{font-size:13px;font-weight:500}.settings-radio-row small{color:#8d8d8d;font-size:12px;line-height:1.4}.personalization-editor{padding:0 16px 14px}.settings-select-field textarea{width:100%;min-width:0;min-height:210px;resize:vertical;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:11px 12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.settings-select-field textarea:focus{border-color:#3aa3ff73}.settings-button-row{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px 16px}@media(max-width:820px){.provider-status-grid,.provider-card-grid,.provider-deferred-grid{grid-template-columns:minmax(0,1fr)}.provider-state-pill{position:static;justify-self:start;margin:0 16px 10px}.provider-status-card>.account-list-heading{padding-right:16px}}.settings-button-row.compact{padding:0}.settings-heading-actions{display:inline-flex;align-items:center;gap:9px;min-width:0}.settings-heading-actions small{min-width:0}.settings-heading-input{width:min(240px,34vw);min-width:120px;height:32px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:0 10px;font-size:13px}.settings-heading-input:focus{border-color:#3aa3ff73}.settings-primary,.settings-secondary,.settings-icon-button,.inline-action{display:inline-flex;align-items:center;justify-content:center;border:0;background:#2a2a2a;color:#f5f5f5}.settings-primary{gap:7px;height:34px;margin:0 16px 16px;border-radius:10px;padding:0 12px;font-size:13px}.settings-secondary{gap:7px;height:34px;border-radius:10px;padding:0 12px;font-size:13px}.settings-secondary.compact{height:28px;border-radius:8px;padding:0 9px;font-size:12px}.settings-icon-button{width:32px;height:32px;border-radius:8px;padding:0}.settings-icon-button.primary,.settings-icon-button.active{background:#353535;color:#fff}.settings-icon-button.ghost{background:transparent;color:#a8a8a8}.settings-button-row .settings-primary,.settings-button-row .settings-icon-button{margin:0}.settings-primary:hover:not(:disabled),.settings-secondary:hover:not(:disabled),.settings-icon-button:hover:not(:disabled),.inline-action:hover:not(:disabled){background:#363636}.settings-icon-button.ghost:hover:not(:disabled){background:#ffffff0f;color:#fff}.settings-primary:disabled,.settings-secondary:disabled,.settings-icon-button:disabled,.inline-action:disabled{opacity:.5}.subagent-save-button{margin:0}.subagent-save-button.dirty:not(:disabled){background:var(--cyan);color:#061317}.subagent-save-button.dirty:hover:not(:disabled){background:#22d3ee}.settings-spin{animation:settings-spin .9s linear infinite}@media(max-width:820px){.provider-manager-row{grid-template-columns:36px minmax(120px,1fr) minmax(120px,.8fr) auto;gap:10px}.provider-details-button{width:74px}.provider-card-grid,.provider-dialog-stats,.subagent-role-controls,.provider-dialog-header{grid-template-columns:minmax(0,1fr)}}@keyframes settings-spin{to{transform:rotate(360deg)}}.account-list{overflow:hidden}.account-list-heading{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border);color:#f5f5f5;font-size:13px}.account-list-note{margin:0;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.06);color:#9b9b9b;font-size:12px}.account-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.account-row:last-child{border-bottom:0}.profile-footline{color:#9b9b9b;font-size:11px}.profile-footline.warning{color:#ffad7d}.profile-control-panel{display:grid;gap:12px;padding:0}.profile-control-panel.inline{margin-top:10px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:#ffffff06;padding:14px 16px}.profile-control-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.profile-control-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:8px}.profile-hosted-status{display:inline-flex;align-items:center;min-height:32px;gap:7px;border-left:1px solid var(--border);margin-left:2px;padding-left:12px;color:var(--muted);white-space:nowrap}.profile-hosted-status>span{font-size:11px}.profile-hosted-status>strong{max-width:180px;overflow:hidden;color:var(--text);font-size:12px;font-weight:560;text-overflow:ellipsis}.profile-local-status{min-width:0;max-width:min(520px,48vw);overflow:hidden;color:var(--muted);font-size:11px;line-height:1.4;text-align:right;text-overflow:ellipsis;white-space:nowrap}.profile-local-status.dirty,.profile-local-status.pending_commit{color:#d7ae59}.profile-local-status.error{color:#db7779}.profile-commit-dialog,.profile-path-dialog,.profile-sync-dialog{width:min(460px,calc(100vw - 34px))}.profile-sync-dialog{width:min(520px,calc(100vw - 34px))}.profile-sync-explainer{margin:0;color:#b8b8b8;font-size:12px;line-height:1.5}.profile-dialog-summary{display:grid;gap:4px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff09;padding:10px 12px}.profile-dialog-summary strong,.profile-dialog-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dialog-summary strong{color:#f6f6f6;font-size:13px;font-weight:620}.profile-dialog-summary span{color:#aaa;font-size:12px}.profile-dialog-diff-list{display:grid;gap:7px;max-height:min(260px,36vh);overflow:auto;scrollbar-color:#484848 transparent}.profile-dialog-diff-row{display:grid;gap:3px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:#ffffff06;padding:9px 10px}.profile-dialog-diff-row.warning{border-color:#ffc45738;background:#ffc45714}.profile-dialog-diff-row strong,.profile-dialog-diff-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dialog-diff-row strong{color:#f4f4f4;font-size:12px;font-weight:620}.profile-dialog-diff-row span{color:#aaa;font-size:12px}.profile-dialog-warning{border:1px solid rgba(255,122,47,.28);border-radius:9px;background:#ff7a2f17;color:#ffad7d;padding:9px 10px;font-size:12px}.profile-commit-dialog .git-dialog-footer,.profile-path-dialog .git-dialog-footer,.profile-sync-dialog .git-dialog-footer{flex-wrap:wrap}.account-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:17px;background:#06b6d41f;color:var(--cyan);font-weight:650;overflow:hidden}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-details{display:grid;gap:3px;min-width:0}.account-details strong,.account-details span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-details strong{color:#f6f6f6;font-size:14px;font-weight:550}.account-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.account-endpoint-action{flex:none;margin-left:6px}.git-dialog.account-endpoint-dialog{width:min(520px,calc(100vw - 34px));max-height:calc(100vh - 32px);overflow-y:auto}.account-dialog-details{display:grid;gap:8px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff06;padding:12px}.account-dialog-details>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;font-size:12px}.account-dialog-details span{color:#aaa}.account-dialog-details strong{overflow-wrap:anywhere;color:#f3f3f3;font-weight:550}.account-dialog-footer{justify-content:flex-end;flex-wrap:wrap}.account-dialog-save-actions{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:8px}.git-dialog-secondary.account-dialog-remove{display:inline-flex;align-items:center;gap:7px;border:1px solid #d94b42;background:#d94b42;color:#fff}.git-dialog-secondary.account-dialog-remove:hover:not(:disabled){border-color:#bd3d36;background:#bd3d36;color:#fff}.account-dialog-advanced{border:1px solid rgba(255,255,255,.1);border-radius:10px}.account-dialog-advanced summary{cursor:pointer;padding:11px 12px;font-size:13px;font-weight:550}.account-dialog-advanced[open] summary{border-bottom:1px solid rgba(255,255,255,.1)}.account-dialog-advanced-fields{padding:12px}.active-pill,.account-state{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:12px;padding:0 9px;white-space:nowrap;font-size:12px}.active-pill{background:#3aa3ff24;color:#77bdff}.inline-action{gap:5px;min-height:24px;border-radius:12px;padding:0 10px;white-space:nowrap;font-size:12px}.inline-action.danger{background:#eb57571a;color:#ff9b9b}.inline-action.danger:hover:not(:disabled){background:#eb57572e;color:#ffc0c0}.account-remove-action{width:24px;padding:0}.account-state{background:#242424;color:#bdbdbd}.account-state.signed_in{background:#50c87821;color:#8ddfa8}.account-state.signed_out,.account-state.auth_error{background:#ff7a2f21;color:#ffad7d}.account-state.ready{background:#50c87821;color:#8ddfa8}.account-state.warning{background:#ffc45724;color:#ffd38a}.account-state.loading{background:#3aa3ff24;color:#77bdff}.account-state.disabled{background:#ffffff12;color:#858585}.empty-account-list{display:grid;gap:5px;padding:18px 16px}.empty-account-list strong{color:#f5f5f5;font-size:14px}.product-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.product-row:last-child{border-bottom:0}.product-row div{display:grid;gap:3px;min-width:0}.product-row strong,.product-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-row strong{color:#f6f6f6;font-size:13px;font-weight:550}.profile-agent-list{border:0;border-radius:0;background:transparent}.profile-agent-list-heading{border-bottom:0;padding:0 0 10px}.profile-table-frame{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.profile-data-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.profile-agent-table{min-width:600px}.profile-agent-column{width:38%}.profile-action-column{width:18%}.profile-check-column{width:16%}.profile-sync-column{width:28%}.profile-data-table th,.profile-data-table td{min-width:0;border-right:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);padding:12px 14px;text-align:left;vertical-align:middle}.profile-data-table th:last-child,.profile-data-table td:last-child{border-right:0}.profile-data-table tbody tr:last-child td{border-bottom:0}.profile-data-table th{padding-block:10px;background:var(--panel-soft);color:#858585;font-size:11px;font-weight:560}.profile-data-table strong,.profile-data-table span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-data-table strong{color:#f6f6f6;font-size:13px;font-weight:550}.profile-skill-list{border:0;border-radius:0;background:transparent}.profile-skill-heading-actions{display:inline-flex;align-items:center;gap:10px}.profile-skill-table{min-width:820px}.profile-skill-name-column{width:23%}.profile-skill-trigger-column{width:29%}.profile-skill-status-column{width:10%}.profile-skill-source-column{width:22%}.profile-skill-actions-column{width:16%}.profile-skill-description{overflow:hidden;color:#a9a9a9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.profile-skill-source{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-skill-actions{display:inline-flex;align-items:center;gap:8px;min-width:0}.profile-agent-table .profile-schedule-actions{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.profile-schedule-expression{flex:1 1 auto;min-width:0;color:#a9a9a9;font-size:12px;text-align:right}.profile-agent-table .profile-schedule-controls{display:inline-flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;gap:6px;min-width:max-content;white-space:nowrap}.profile-schedule-button{width:28px;height:28px;flex:0 0 auto}.profile-agent-list-note{padding:8px 16px 12px}.profile-agent-identity{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.profile-agent-identity>div{display:grid;gap:3px;min-width:0}.profile-agent-action{min-width:0}.profile-agent-action span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a9a9a9;font-size:12px}.profile-status-text{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#bdbdbd;font-size:12px;white-space:nowrap}.profile-status-text:before{content:"";width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:currentColor;opacity:.85}.profile-status-text.ready{color:#8ddfa8}.profile-status-text.warning{color:#ffd38a}.profile-status-text.loading{color:#77bdff}.profile-status-text.disabled{color:#858585}@container profile-view (max-width: 840px){.profile-control-toolbar{align-items:flex-start;flex-direction:column}.profile-local-status{max-width:100%;text-align:left}}.settings-footnote{display:flex;justify-content:space-between;gap:18px;min-width:0;max-width:100%;padding:12px 16px}.settings-footnote.warning{border-color:#ff7a2f3d}.settings-footnote strong{min-width:0;overflow-wrap:anywhere;white-space:normal;word-break:break-word;color:#d9d9d9;font-size:12px;font-weight:500}.account-build-footnote{align-items:center}.account-build-details{display:grid;gap:4px;min-width:0}.account-build-version,.account-build-actions{display:flex;align-items:center;gap:8px}.account-build-context{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;padding:0 7px;background:#ffffff14;color:#bdbdbd;font-size:11px;font-weight:500}.account-build-context.development{background:#3aa3ff21;color:#8fc8ff}.account-build-actions{flex:0 0 auto;justify-content:flex-end}.account-build-actions .settings-primary,.account-build-actions .settings-secondary{margin:0}.account-build-actions .settings-primary.compact{height:28px;border-radius:8px;padding:0 9px;font-size:12px}.account-error-footnote{align-items:flex-start}.account-error-footnote strong{flex:1 1 420px;max-width:min(620px,75%);color:#ffbd96;line-height:1.45;text-align:right}.diagnostics-log-panel{overflow:hidden}.diagnostics-log-actions{justify-content:flex-end;flex-wrap:wrap}.diagnostics-error-list{display:grid;align-content:start;max-height:min(34vh,340px);overflow:auto;scrollbar-color:#424242 transparent}.diagnostics-error-entry{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.06);color:#ffb0a4;content-visibility:auto;contain-intrinsic-size:86px}.diagnostics-error-entry:first-child{border-top:0}.diagnostics-error-entry svg{margin-top:2px;color:#ff8f7d}.diagnostics-error-body{display:grid;gap:6px;min-width:0}.diagnostics-error-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0}.diagnostics-error-title strong{min-width:0;color:#f4f4f4;font-size:13px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.diagnostics-error-title time,.diagnostics-error-meta{color:#9b9b9b;font-size:12px}.diagnostics-error-meta{display:flex;flex-wrap:wrap;gap:6px}.diagnostics-error-meta span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagnostics-error-detail{min-width:0}.diagnostics-error-detail summary{width:fit-content;cursor:pointer;color:#d8d8d8;font-size:12px}.diagnostics-error-detail pre{max-height:180px;margin:8px 0 0;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0f0f0f;color:#dcdcdc;padding:9px 10px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.diagnostics-error-empty{display:grid;place-items:center;min-height:120px;color:#8f8f8f;font-size:13px}.diagnostics-log-viewer{display:grid;align-content:start;max-height:min(46vh,420px);min-height:260px;overflow:auto;background:#0f0f0f;scrollbar-color:#424242 transparent}.diagnostics-log-entry{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;min-width:max-content;padding:5px 12px;border-bottom:1px solid rgba(255,255,255,.045);content-visibility:auto;contain-intrinsic-size:26px}.diagnostics-log-source{color:#8f8f8f;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:nowrap}.diagnostics-log-entry code{color:#dcdcdc;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre}.diagnostics-log-empty{display:grid;place-items:center;min-height:260px;color:#8f8f8f;font-size:13px}.diagnostics-log-dir{display:flex;justify-content:space-between;gap:18px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.06)}.diagnostics-log-dir span{color:#9b9b9b;font-size:12px}.diagnostics-log-dir strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d9d9d9;font-size:12px;font-weight:500}.remote-access-summary{align-items:flex-start}.remote-access-summary .account-summary-actions{flex-wrap:wrap}.remote-access-icon,.remote-access-peer-dot{display:grid;place-items:center;width:34px;height:34px;border-radius:17px;background:#ffffff12;color:#9d9d9d}.remote-access-icon.configured{background:#3aa3ff21;color:#77bdff}.remote-access-icon.online{background:#50c87821;color:#8ddfa8}.remote-access-link-heading{align-items:center}.remote-access-link-heading>div{display:grid;gap:3px;min-width:0}.remote-access-link-heading span,.remote-access-link-heading small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remote-access-value-row{align-items:flex-start}.remote-access-value-row div{gap:6px}.remote-access-value-row strong.flash{animation:remote-access-title-flash 1.5s ease-out}.remote-access-value-row code{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dcdcdc;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.remote-access-peer-row{grid-template-columns:38px minmax(0,1fr) auto auto}.remote-access-environment{display:grid}.remote-access-environment-row{display:grid;min-height:62px;border-bottom:1px solid rgba(255,255,255,.06)}.remote-access-environment-row:last-child{border-bottom:0}.remote-access-environment-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.remote-access-environment-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.remote-access-environment-cell{display:grid;align-content:center;gap:5px;min-width:0;padding:12px 16px;border-right:1px solid rgba(255,255,255,.06)}.remote-access-environment-cell:last-child{border-right:0}.remote-access-environment-cell strong,.remote-access-environment-cell span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remote-access-environment-cell strong{color:#f6f6f6;font-size:13px;font-weight:550}.remote-access-environment-cell span{color:#9b9b9b;font-size:12px}.remote-access-peer-dot{width:11px;height:11px;justify-self:center;border-radius:999px;background:#555}.remote-access-peer-dot.online{background:#58d68d;box-shadow:0 0 0 4px #58d68d1f}.remote-access-config{overflow:hidden;border:1px solid var(--border);border-radius:16px;background:#181818}.remote-access-config pre{max-height:260px;margin:0;overflow:auto;background:#0f0f0f;color:#dcdcdc;padding:14px 16px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre}@keyframes remote-access-title-flash{0%,to{color:#f6f6f6;text-shadow:none}18%,55%{color:#ffbc8f;text-shadow:0 0 12px rgba(255,156,86,.35)}}@media(max-width:720px){.remote-access-environment-row.three,.remote-access-environment-row.two{grid-template-columns:1fr}.remote-access-environment-cell{min-height:56px;border-right:0;border-bottom:1px solid rgba(255,255,255,.06)}.remote-access-environment-cell:last-child{border-bottom:0}}.compute-settings{gap:16px}.compute-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.compute-title-row h1{margin:0}.dataset-storage-intro{max-width:680px;margin:7px 0 0;color:#999;font-size:13px;line-height:1.5}.dataset-storage-list{min-width:0}.dataset-storage-row small.dataset-storage-error{color:#df8e8e}.compute-summary-main{grid-template-columns:minmax(0,1fr)}.compute-section-heading{padding:4px 2px 0;border:0}.compute-device-default{padding-top:0}.model-storage-picker{display:grid;gap:6px;max-width:640px;padding:14px 16px 16px}.model-storage-label{color:#9b9b9b;font-size:12px;white-space:nowrap}.model-storage-control-row{display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:8px}.model-storage-select{width:100%;min-width:0;height:36px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;appearance:none;background:linear-gradient(45deg,transparent 50%,#9b9b9b 50%) calc(100% - 16px) 50% / 5px 5px no-repeat,linear-gradient(135deg,#9b9b9b 50%,transparent 50%) calc(100% - 11px) 50% / 5px 5px no-repeat,#101010;color:var(--text);padding:0 32px 0 10px;font-size:13px}.model-storage-select:focus{border-color:#06b6d480}.model-storage-add{width:36px;height:36px}.model-storage-dialog{width:min(520px,calc(100vw - 34px))}.model-storage-dialog-note{border:1px solid rgba(143,200,255,.16);border-radius:9px;background:#8fc8ff12;color:#b4cae0;padding:9px 10px;font-size:12px;line-height:1.45}.compute-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 16px;border-top:1px solid var(--border)}.compute-row:first-of-type{border-top:0}.compute-row>div{display:grid;gap:4px;min-width:0}.compute-row strong{color:#f1f1f1;font-size:13px;font-weight:570}.compute-row small{overflow-wrap:anywhere;color:#9b9b9b;font-size:12px}.compute-row>span{flex:0 0 auto;color:#b7b7b7;font-size:12px}.compute-diagnostics{border:1px solid var(--border);border-radius:12px;color:#b7b7b7;padding:12px 14px;font-size:12px}.compute-diagnostics summary{color:#dedede;cursor:pointer}.compute-diagnostics ul{margin:10px 0 0;padding-left:18px}.compute-heading-actions{display:flex;align-items:center;gap:8px}.compute-download-row{display:grid;gap:10px;padding:13px 16px;border-top:1px solid var(--border)}.compute-download-row>div{display:grid;gap:4px}.compute-download-row strong{color:#f1f1f1;font-size:13px}.compute-download-row small{overflow-wrap:anywhere;color:#9b9b9b;font-size:12px}.compute-download-row progress{width:100%;height:5px;accent-color:var(--cyan)}@media(max-width:720px){.compute-row{align-items:flex-start;flex-direction:column;gap:7px}}.notification-settings-card{overflow:hidden}.notification-mode-list{display:grid}.notification-mode-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:11px;min-height:66px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06);background:transparent;cursor:pointer}.notification-mode-option:last-child{border-bottom:0}.notification-mode-option:hover{background:#ffffff09}.notification-mode-option.selected{background:#3aa3ff13}.notification-mode-option input{width:15px;height:15px;margin:2px 0 0;accent-color:#3aa3ff}.notification-mode-option>span,.notification-thread-copy{display:grid;min-width:0;gap:4px}.notification-mode-option strong,.notification-thread-copy strong{color:#f4f4f4;font-size:13px;font-weight:560}.notification-mode-option small,.notification-thread-copy small{color:#9b9b9b;font-size:12px;line-height:1.4}.notification-thread-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.notification-thread-row:last-of-type{border-bottom:0}.notification-thread-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#3aa3ff1c;color:#8fc8ff}.notification-thread-icon.muted{background:#ffffff0f;color:#929292}.notification-settings-error{padding:11px 16px;border-top:1px solid rgba(255,98,98,.2);background:#ff626212;color:#ffb0b0;font-size:12px}@media(max-width:760px){.notification-thread-row{grid-template-columns:32px minmax(0,1fr)}.notification-thread-row>.settings-secondary{grid-column:2;justify-self:start}}.harness-history-settings{width:min(1080px,100%);max-width:none;margin-inline:auto}.harness-history-settings .account-settings-title>div{display:grid;gap:7px}.harness-history-settings .account-settings-title p,.harness-section-heading p{margin:0;color:#999;font-size:12px;line-height:1.5}.harness-page-title{align-items:flex-start}.harness-page-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.harness-page-header-actions .settings-primary,.harness-page-header-actions .settings-secondary{margin:0}.harness-page-toggle{display:flex;align-items:center;gap:8px;min-height:30px;color:#a8a8a8;font-size:11px;cursor:pointer}.harness-page-sections{display:grid;gap:28px}.harness-history-card time,.harness-route-card time,.harness-history-card footer,.harness-route-card small{color:#8f8f8f;font-size:11px}.harness-release-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.harness-release-row:last-child{border-bottom:0}.harness-release-row>div{display:grid;gap:4px;min-width:0}.harness-release-row strong{color:#f2f2f2;font-size:13px;font-weight:600}.harness-release-row span{color:#929292;font-size:11px}.harness-inline-actions,.harness-review-actions,.harness-history-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.harness-current-pill,.harness-status,.harness-validation-status{display:inline-flex;align-items:center;width:max-content;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:#ffffff0a;color:#bdbdbd;padding:3px 7px;font-size:10px;font-weight:650}.harness-current-pill,.harness-status-advanced,.harness-validation-status.passed{border-color:#70b98b40;background:#70b98b1a;color:#9ed3b1}.harness-status-conflict,.harness-validation-status.failed,.harness-validation-status.blocked{border-color:#da707040;background:#da70701a;color:#e8a0a0}.harness-history-section{display:grid;gap:10px}.harness-section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.harness-section-heading>div{display:grid;gap:5px}.harness-section-heading h2{margin:0;color:#f3f3f3;font-size:15px;font-weight:600}.harness-section-heading>span{color:#888;font-size:12px}.harness-section-heading>.harness-section-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.harness-section-actions .settings-primary,.harness-section-actions .settings-secondary{height:28px;margin:0;border-radius:8px;padding:0 9px;font-size:12px}.harness-history-card,.harness-route-card,.harness-empty{border:1px solid var(--border);border-radius:14px;background:#181818;padding:15px 16px}.harness-history-card{display:grid;gap:13px}.harness-history-card>header{display:flex;align-items:start;justify-content:space-between;gap:18px}.harness-history-card>header>div{display:grid;gap:7px;min-width:0}.harness-history-card h2{margin:0;color:#f1f1f1;font-size:14px;font-weight:600;line-height:1.4}.harness-history-card>p,.harness-route-card p{margin:0;color:#b5b5b5;font-size:12px;line-height:1.5}.harness-history-kicker{display:flex;align-items:center;gap:8px;color:#999;font-size:11px;text-transform:capitalize}.harness-history-release-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#878787;font-size:11px}.harness-history-release-flow code{color:#c8c8c8;font-size:11px}.harness-history-card footer{display:flex;justify-content:space-between;gap:12px;padding-top:2px}.harness-history-card footer code{color:#aaa;font-size:10px}.harness-review-metrics{display:flex;flex-wrap:wrap;gap:8px 16px;color:#929292;font-size:11px}.harness-review-metrics strong{color:#d4d4d4;font-weight:600}.harness-review-lineage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid rgba(255,255,255,.06);border-radius:10px}.harness-review-lineage>div{display:grid;gap:4px;padding:10px 11px;border-right:1px solid rgba(255,255,255,.06)}.harness-review-lineage>div:last-child{border-right:0}.harness-review-lineage span{color:#888;font-size:10px}.harness-review-lineage code{color:#bdbdbd;font-size:10px}.harness-review-lineage .linked code{color:#9ed3b1}.harness-qualification-card small{line-height:1.5}.harness-history-details{border-top:1px solid rgba(255,255,255,.06);padding-top:10px}.harness-history-details summary{cursor:pointer;color:#cfcfcf;font-size:12px}.harness-edit-list{display:grid;gap:9px;margin-top:10px}.harness-edit{overflow:hidden;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#111}.harness-edit>div{display:grid;gap:3px;padding:9px 11px}.harness-edit strong{color:#e7e7e7;font-size:11px;font-weight:600}.harness-edit span{color:#929292;font-size:11px}.harness-edit pre{max-height:340px;overflow:auto;margin:0;border-top:1px solid rgba(255,255,255,.06);padding:11px;color:#c9c9c9;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap}.harness-edit>p{margin:0;padding:10px 11px;color:#999;font-size:11px}.harness-validation-list{display:grid;gap:6px}.harness-validation-list>div{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;color:#999;font-size:11px}.harness-validation-list strong{color:#c8c8c8;font-size:11px;font-weight:600;text-transform:capitalize}.harness-route-card{display:grid;gap:8px}.harness-route-card>div{display:flex;align-items:center;gap:9px}.harness-route-card strong{color:#e7e7e7;font-size:12px;text-transform:capitalize}.harness-route-card time{margin-left:auto}.harness-empty{color:#989898;font-size:12px;line-height:1.5}.harness-empty.compact{border-radius:11px;padding:12px 14px}.harness-activity-list,.harness-disclosure-list{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:#181818}.harness-activity-list>article{display:grid;grid-template-columns:116px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:58px;border-bottom:1px solid rgba(255,255,255,.06);padding:10px 14px}.harness-activity-list>article:last-child,.harness-disclosure-row:last-child{border-bottom:0}.harness-disclosure-list>.harness-empty{border:0;border-radius:0;background:transparent}.harness-activity-list>article>span,.harness-activity-list time{color:#8e8e8e;font-size:11px}.harness-activity-list>article>div{display:grid;gap:3px;min-width:0}.harness-activity-list strong{overflow:hidden;color:#e4e4e4;font-size:12px;font-weight:580;text-overflow:ellipsis;white-space:nowrap}.harness-activity-list small{color:#8f8f8f;font-size:10px;text-transform:capitalize}.harness-disclosure-row{border-bottom:1px solid rgba(255,255,255,.06)}.harness-disclosure-row>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:58px;padding:10px 14px;cursor:pointer;list-style:none}.harness-disclosure-row>summary::-webkit-details-marker{display:none}.harness-disclosure-row>summary:hover{background:#ffffff09}.harness-disclosure-row>summary:after{content:"›";grid-column:5;color:#777;font-size:17px;transition:transform .12s ease}.harness-disclosure-row[open]>summary:after{transform:rotate(90deg)}.harness-disclosure-row>summary strong{overflow:hidden;color:#e6e6e6;font-size:12px;font-weight:580;text-overflow:ellipsis;white-space:nowrap}.harness-disclosure-row>summary small,.harness-disclosure-row>summary time,.harness-disclosure-body>small{color:#8d8d8d;font-size:10px}.harness-disclosure-body{display:grid;gap:12px;border-top:1px solid rgba(255,255,255,.05);padding:14px}.harness-disclosure-body>p{margin:0;color:#b2b2b2;font-size:12px;line-height:1.5}.harness-compact-metadata{display:flex;flex-wrap:wrap;gap:12px 26px;margin:0}.harness-compact-metadata>div{display:grid;gap:3px}.harness-compact-metadata dt{color:#818181;font-size:10px}.harness-compact-metadata dd{margin:0;color:#c3c3c3;font-size:11px}.harness-evidence-list{display:grid;gap:6px;margin:10px 0 0;padding:0;list-style:none}.harness-evidence-list li{display:grid;grid-template-columns:minmax(100px,1fr) auto auto;gap:12px;color:#999;font-size:10px}.harness-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:14px;background:#181818}.harness-table{width:100%;border-collapse:collapse;font-size:11px}.harness-table th{border-bottom:1px solid rgba(255,255,255,.08);color:#888;padding:9px 12px;text-align:left;font-weight:550}.harness-table td{border-bottom:1px solid rgba(255,255,255,.055);color:#aaa;padding:10px 12px;vertical-align:middle}.harness-table tbody tr:last-child td{border-bottom:0}.harness-table td code{color:#c7c7c7;font-size:10px}.harness-release-identity{display:grid;gap:3px}.harness-release-identity strong{color:#dfdfdf;font-size:11px;font-weight:600}.harness-release-table th:nth-child(4),.harness-release-table td:nth-child(4){text-align:right}.harness-release-table td:nth-child(4)>span{margin-left:auto}.harness-release-table td:last-child{width:1%;white-space:nowrap}.harness-refiner-table td:nth-child(2) strong{color:#e5e5e5;font-size:11px;font-weight:600}.harness-refiner-table td:last-child{width:1%;white-space:nowrap}.harness-table-icon-action{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:transparent;color:#999}.harness-table-icon-action:hover:not(:disabled),.harness-table-icon-action:focus-visible{border-color:#ffffff2b;background:#ffffff0e;color:#e1e1e1}.harness-table-icon-action:disabled{opacity:.45;cursor:not-allowed}.harness-route-table td:nth-child(1),.harness-route-table td:nth-child(2){max-width:360px;line-height:1.45}.harness-route-table td p{margin:0}.harness-route-table td:nth-child(1) p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5}.harness-route-table th:last-child,.harness-route-table td:last-child{width:1%;white-space:nowrap}.harness-review-status-table td{white-space:nowrap}.harness-details-dialog-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#000000a6;padding:24px}.harness-details-dialog{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(720px,100%);max-height:min(760px,calc(100vh - 48px));overflow:hidden;border:1px solid var(--border);border-radius:16px;background:#181818;box-shadow:0 24px 80px #0000007a}.harness-details-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid rgba(255,255,255,.07);padding:16px 18px}.harness-details-dialog>header>div{display:grid;gap:7px}.harness-details-dialog h2,.harness-details-dialog h3,.harness-details-dialog p{margin:0}.harness-details-dialog h2{color:#eee;font-size:15px;font-weight:600;line-height:1.4}.harness-details-dialog h3{color:#ddd;font-size:12px;font-weight:600}.harness-details-dialog>header p{color:#999;font-size:11px;line-height:1.5}.harness-details-dialog>header>button{display:grid;flex:0 0 auto;place-items:center;width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:#999}.harness-details-dialog>header>button:hover{background:#ffffff0f;color:#eee}.harness-details-dialog-body{display:grid;gap:20px;overflow:auto;padding:18px}.harness-details-dialog-body>section{display:grid;gap:10px}.harness-details-dialog-body .harness-edit-list{margin-top:0}.harness-release-diff-sidebar{z-index:3;grid-template-rows:41px 42px minmax(0,1fr)}.harness-release-diff-sidebar .workspace-diff-topbar{border-bottom:1px solid var(--border)}.harness-release-diff-meta{justify-content:space-between;gap:12px;padding:0 12px;color:#9b9b9b;font-size:11px}.harness-release-diff-meta>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.harness-release-diff-meta code{flex:0 0 auto;color:#c6c6c6;font-size:10px}.harness-release-diff-body{min-width:0;min-height:0;overflow:hidden}.harness-release-diff-body>.workspace-file-preview,.harness-release-diff-body>.workspace-diff-preview{height:100%}.harness-release-diff-files{height:100%;overflow:auto}.harness-release-diff-summary{display:flex;align-items:center;gap:9px;min-height:38px;border-bottom:1px solid rgba(255,255,255,.06);padding:0 14px;color:#a8a8a8;font-size:11px}.harness-release-diff-summary>span:first-child{margin-right:auto}.harness-release-diff-file{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;align-items:center;gap:9px;width:100%;min-height:38px;border:0;border-bottom:1px solid rgba(255,255,255,.055);background:transparent;color:#d1d1d1;padding:0 14px;text-align:left;font-size:11px}.harness-release-diff-file:hover,.harness-release-diff-file:focus-visible{background:#ffffff0e}.harness-release-diff-file>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.harness-release-diff-file small{font-size:10px}.harness-release-diff-status{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#ffffff0f;color:#aaa;font-size:10px;font-weight:700}.harness-release-diff-status.added{color:#9ed3b1}.harness-release-diff-status.deleted{color:#e8a0a0}.harness-release-diff-status.modified{color:#d8c18c}@media(max-width:640px){.harness-page-title{gap:16px}.harness-page-header-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.harness-history-card>header,.harness-section-heading{align-items:start;flex-direction:column}.harness-section-actions{width:100%}.harness-validation-list>div{grid-template-columns:auto minmax(0,1fr)}.harness-validation-list>div>span:last-child{grid-column:1 / -1}.harness-review-lineage{grid-template-columns:minmax(0,1fr)}.harness-review-lineage>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.06)}.harness-review-lineage>div:last-child{border-bottom:0}.harness-activity-list>article{grid-template-columns:minmax(0,1fr) auto}.harness-activity-list>article>span{grid-column:1 / -1}.harness-disclosure-row>summary{grid-template-columns:auto minmax(0,1fr) auto}.harness-disclosure-row>summary small{grid-column:2}.harness-disclosure-row>summary time{display:none}.harness-disclosure-row>summary:after{grid-column:3;grid-row:1}}@media(max-width:980px){.settings-shell.harness-diff-open>.workspace-diff-panel{position:fixed;inset:0;z-index:10;display:grid;width:100%;border-left:0}}.profile-view.profile-page{width:min(1120px,calc(100% - 56px));gap:0;padding:20px 0 56px}.profile-page .account-settings{gap:20px;max-width:none}.profile-page .profile-selector-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px}.profile-page .profile-selector-control{position:relative;display:inline-grid;align-items:center;min-width:220px}.profile-page .profile-selector-control select{width:100%;height:32px;appearance:none;border:1px solid var(--border);border-radius:7px;outline:0;background:var(--panel);color:var(--text);padding:0 34px 0 11px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.profile-page .profile-selector-control select:focus-visible{border-color:color-mix(in srgb,var(--text) 32%,var(--border));box-shadow:0 0 0 2px #ffffff12}.profile-page .profile-selector-control select:disabled{cursor:default;opacity:.55}.profile-page .profile-selector-control>svg{position:absolute;right:10px;color:var(--muted);pointer-events:none}.profile-page .profile-selector-actions{display:flex;align-items:center;gap:6px}.profile-page .profile-settings-menu-root{position:relative}.profile-page .profile-settings-menu-trigger{width:30px;height:30px;border-radius:7px}.profile-page .profile-settings-menu{position:absolute;z-index:20;top:calc(100% + 6px);right:0;display:grid;width:194px;padding:5px;border:0;border-radius:8px;background:var(--panel);box-shadow:0 14px 36px #00000052}.profile-page .profile-settings-menu>button{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:32px;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--muted-strong);font:inherit;font-size:11px;text-align:left;cursor:pointer}.profile-page .profile-settings-menu>button:hover:not(:disabled),.profile-page .profile-settings-menu>button:focus-visible{outline:0;background:var(--hover);color:var(--text)}.profile-page .profile-settings-menu>button:disabled{cursor:default;opacity:.5}.profile-page .profile-settings-menu>button>span{display:grid;gap:1px;min-width:0}.profile-page .profile-settings-menu>button strong{font-weight:500}.profile-page .profile-settings-menu>button small{overflow:hidden;color:var(--muted);font-size:9px;font-weight:450;text-overflow:ellipsis;white-space:nowrap}.profile-page .profile-settings-menu-separator{height:1px;margin:4px 6px;background:var(--border)}.profile-page .account-list-heading{gap:12px;color:var(--text);font-size:12px;font-weight:600}.profile-page .account-list-heading small{font-size:10px;font-weight:450}.profile-page .profile-agent-list-heading{padding-bottom:8px}.profile-page .profile-catalog-row{min-height:48px;gap:10px;padding:9px 12px}.profile-page .profile-agent-identity{grid-template-columns:18px minmax(0,1fr);gap:9px}.profile-page .profile-agent-identity>svg{width:16px;height:16px}.profile-page .profile-agent-identity>div{gap:2px}.profile-page .profile-catalog-row strong,.profile-page .profile-data-table strong{font-size:12px;font-weight:560}.profile-page .profile-catalog-row .profile-agent-identity span,.profile-page .profile-catalog-source,.profile-page .profile-catalog-summary,.profile-page .profile-agent-action span,.profile-page .profile-schedule-expression,.profile-page .profile-skill-description,.profile-page .profile-status-text{font-size:11px}.profile-page .settings-secondary{height:30px;gap:6px;border-radius:7px;padding:0 10px;font-size:11px}.profile-page .settings-secondary.compact{height:26px;border-radius:6px;padding:0 8px;font-size:10px}.profile-page .profile-control-panel,.profile-page .profile-control-toolbar{gap:8px}.profile-page .profile-control-actions{gap:6px}.profile-page .profile-hosted-status{min-height:30px;padding-left:10px}.profile-page .profile-hosted-status>span,.profile-page .profile-local-status{font-size:10px}.profile-page .profile-hosted-status>strong{font-size:11px}.profile-page .settings-help{max-width:760px;margin:0 0 8px;color:var(--muted);font-size:11px;line-height:1.5}.profile-page .profile-data-table th,.profile-page .profile-data-table td{padding:9px 11px;font-size:11px}.profile-page .profile-data-table th{padding-block:8px;font-size:10px}.profile-page .profile-schedule-button{width:26px;height:26px}.profile-page .profile-agent-table .profile-schedule-actions{grid-template-columns:max-content max-content;justify-content:start}.profile-page .profile-schedule-expression{text-align:left}.profile-page .profile-agent-table .profile-schedule-controls{justify-content:flex-start}@media(max-width:760px){.profile-view.profile-page{width:min(100% - 28px,1120px);padding-top:16px}.profile-page .profile-selector-bar{align-items:stretch;flex-direction:column}.profile-page .profile-selector-control{width:100%}.profile-page .profile-selector-actions{justify-content:flex-end}}.profile-workflows{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.profile-workflows-header h3{margin:0;color:var(--text);font-size:13px}.profile-workflows-header p,.profile-workflows-row p,.profile-workflows-row small{margin:4px 0 0;color:var(--muted);font-size:11px}.profile-workflows-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:8px}.profile-workflows-row strong{color:var(--text);font-size:12px}.profile-workflows button{padding:6px 10px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);cursor:pointer}.profile-workflows button:disabled{cursor:default;opacity:.55}.profile-workflows-form{display:grid;gap:8px}.profile-workflows-form textarea,.profile-workflows-form pre{box-sizing:border-box;width:100%;min-height:90px;margin:0;padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--background);color:var(--text);font:11px/1.5 monospace}.profile-workflows-form pre{min-height:0;max-height:160px;overflow:auto}.profile-evaluations{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.profile-evaluations-suites{display:flex;flex-wrap:wrap;gap:8px}.profile-evaluations-suite,.profile-evaluations-row,.profile-evaluations-detail{border:1px solid var(--border);border-radius:8px;padding:12px}.profile-evaluations-suite,.profile-evaluations-row>div,.profile-evaluations-history li{display:grid;gap:4px}.profile-evaluations-suite strong,.profile-evaluations-row strong,.profile-evaluations-detail strong{color:var(--text);font-size:12px}.profile-evaluations-suite-run summary{color:var(--text);cursor:pointer;font-size:11px}.profile-evaluations-suite-run ul{display:grid;gap:5px;margin:6px 0 0;padding-left:18px}.profile-evaluations-suite-run li{display:grid;gap:2px;color:var(--muted);font-size:11px}.profile-evaluations-suite span,.profile-evaluations-row p,.profile-evaluations-row small,.profile-evaluations-detail p,.profile-evaluations-detail small,.profile-evaluations-cases span{margin:0;color:var(--muted);font-size:11px}.profile-evaluations-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-evaluations button{flex:none;padding:6px 10px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);cursor:pointer}.profile-evaluations-detail,.profile-evaluations-cases,.profile-evaluations-history{display:grid;gap:8px}.profile-evaluations-detail h4{margin:0;color:var(--text);font-size:12px}.profile-evaluations-detail ul{display:grid;gap:5px;margin:0;padding-left:18px;overflow-wrap:anywhere;font-size:11px}.profile-evaluations-comparison-runs{display:grid;gap:6px;max-height:320px;overflow:auto}.profile-evaluations-run-form,.profile-evaluations-run-plan{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:7px}.profile-evaluations-run-form label,.profile-evaluations-run-plan strong{color:var(--text);font-size:12px;font-weight:600}.profile-evaluations-run-form select{max-width:100%;padding:7px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text)}.profile-evaluations-run-plan small{overflow-wrap:anywhere}.profile-evaluations-comparison-runs label{display:flex;align-items:flex-start;gap:8px;padding:8px;border:1px solid var(--border);border-radius:7px;cursor:pointer}.profile-evaluations-comparison-runs label span{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}.profile-evaluations button:disabled{cursor:default;opacity:.5}.profile-catalog-list{border:0;border-radius:0;background:transparent}.profile-catalog-row{display:grid;grid-template-columns:minmax(180px,1.35fr) minmax(68px,.4fr) minmax(90px,.5fr) minmax(180px,1fr) auto;width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.06);background:transparent;color:inherit;text-align:left;cursor:pointer}.profile-catalog-row:hover,.profile-catalog-row:focus-visible,.profile-catalog-row.selected{outline:0;background:#ffffff0b}.profile-catalog-row[aria-disabled=true]{cursor:wait;opacity:.6}.profile-catalog-source,.profile-catalog-summary{color:var(--muted);font-size:12px}.profile-remove-button{display:inline-flex;align-items:center;gap:6px}.profile-catalog-actions{display:inline-flex;align-items:center;gap:6px;overflow:visible}.profile-publication-dialog{width:min(720px,calc(100vw - 32px));max-height:min(880px,calc(100vh - 32px));overflow-y:auto}.profile-publication-fieldset{display:grid;gap:6px;margin:0;border:1px solid var(--border);border-radius:9px;padding:10px 12px 12px}.profile-publication-fieldset legend{padding:0 5px;color:var(--muted);font-size:12px;font-weight:600}.profile-publication-provider,.profile-publication-selection{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:9px;padding:6px;border-radius:7px}.profile-publication-selection{grid-template-columns:auto 1fr}.profile-publication-provider:hover,.profile-publication-selection:hover{background:#ffffff0a}.profile-publication-provider span,.profile-publication-selection span{display:grid;gap:2px;min-width:0}.profile-publication-provider small,.profile-publication-selection small,.profile-publication-empty{color:var(--muted);font-size:12px}.profile-publication-target-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.profile-add-source-options{display:flex;flex-wrap:wrap;gap:8px 16px}.profile-add-source-options label{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.profile-publication-preview{display:grid;gap:9px}.profile-publication-warning{border-radius:7px;background:#ffc65817;color:#ffd38a;padding:8px 10px;font-size:12px}.profile-publication-file-list{display:grid;max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:8px}.profile-publication-file-list>div{display:flex;justify-content:space-between;gap:14px;padding:7px 9px;border-bottom:1px solid rgba(255,255,255,.055);font-family:var(--font-mono);font-size:11px}.profile-publication-file-list>div:last-child{border-bottom:0}.profile-publication-file-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-publication-file-list small{flex:0 0 auto;color:var(--muted)}.profile-publication-preview details code{display:block;padding:3px 0;color:var(--muted);font-size:11px}@container profile-view (max-width: 840px){.profile-catalog-row{grid-template-columns:1fr auto}.profile-catalog-source,.profile-catalog-summary{display:none}.profile-catalog-actions{grid-column:1 / -1;flex-wrap:wrap}}.skills-settings{max-width:980px}.skills-settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.skills-settings-header h1{margin-bottom:8px}.skills-settings-header p{max-width:680px;margin:0;color:var(--muted);font-size:13px;line-height:1.55}.github-extensions-heading{align-items:center}.github-extensions-heading-actions,.github-extension-row-actions{display:flex;align-items:center;gap:8px}.github-extension-add{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.75fr) minmax(150px,.55fr) auto;align-items:end;gap:12px;padding:16px;border-bottom:1px solid rgba(255,255,255,.06)}.github-extension-add-copy,.github-extension-add label,.github-extension-preview>div{display:grid;gap:5px}.github-extension-add-copy strong,.github-extension-preview strong{font-size:13px}.github-extension-add-copy span,.github-extension-add label>span,.github-extension-preview span{color:var(--muted);font-size:11px;line-height:1.45}.github-extension-add input{width:100%;height:34px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:#0000002e;color:var(--text);padding:0 10px;outline:none}.github-extension-add input:focus{border-color:#22d3ee73}.github-extension-message{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px}.github-extension-message.error{color:#fca5a5;background:#f871710f}.github-extension-preview{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(240px,1fr) auto;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06);background:#22d3ee09}.github-extension-preview-skills{display:flex!important;flex-direction:row;flex-wrap:wrap;gap:6px!important}.github-extension-preview-skills>span{border-radius:999px;background:#ffffff0f;padding:4px 7px}.github-extension-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:76px;border-bottom:1px solid rgba(255,255,255,.06)}.github-extension-row:last-child{border-bottom:0}.github-extension-open{display:grid;grid-template-columns:34px minmax(220px,1.2fr) minmax(180px,.8fr) auto 16px;align-items:center;gap:12px;min-width:0;min-height:76px;border:0;background:transparent;color:var(--text);padding:12px 0 12px 16px;text-align:left}.github-extension-open:hover,.github-extension-open:focus-visible{background:#ffffff0b}.github-extension-open:focus-visible{outline:1px solid rgba(34,211,238,.46);outline-offset:-1px}.github-extension-open:disabled{cursor:default;opacity:.64}.github-extension-row-actions{padding-right:16px}.github-extension-row-actions .danger:hover:not(:disabled){color:#fca5a5;background:#f8717117}.native-skills-list{border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff05}.personal-skill-row{cursor:default}.personal-skill-row:hover{background:transparent}.skills-settings-empty{padding:18px 16px;color:var(--muted);font-size:12px}.native-skill-row{display:grid;grid-template-columns:34px minmax(220px,1.2fr) minmax(180px,.8fr) auto 16px;align-items:center;gap:12px;width:100%;min-height:72px;border:0;border-bottom:1px solid rgba(255,255,255,.06);background:transparent;color:var(--text);padding:12px 16px;text-align:left}.native-skill-row:last-child{border-bottom:0}.native-skill-row:hover,.native-skill-row:focus-visible{background:#ffffff0b}.native-skill-row:focus-visible{outline:1px solid rgba(34,211,238,.46);outline-offset:-1px}.native-skill-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#22d3ee17;color:#67e8f9}.native-skill-identity,.native-skill-provider{display:grid;gap:4px;min-width:0}.native-skill-identity strong,.native-skill-provider strong,.native-skill-identity span,.native-skill-provider span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.native-skill-identity strong{font-size:13px;font-weight:620}.native-skill-identity span,.native-skill-provider span{color:var(--muted);font-size:11px}.native-skill-provider strong{color:#d8d8d8;font-size:12px;font-weight:560}.native-skill-provider span{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)}.native-skill-status{border-radius:999px;background:#4ade8017;color:#86efac;padding:5px 8px;font-size:10px;font-weight:650;white-space:nowrap}.native-skill-status.invalid{background:#f8717117;color:#fca5a5}.native-skill-row>svg{color:#737373}@media(max-width:760px){.skills-settings-header{flex-direction:column;gap:12px}.native-skill-row{grid-template-columns:34px minmax(0,1fr) 16px}.github-extension-add{grid-template-columns:1fr;align-items:stretch}.github-extension-preview{grid-template-columns:1fr}.github-extension-row{grid-template-columns:minmax(0,1fr) auto}.github-extension-open{grid-template-columns:34px minmax(0,1fr) 16px}.github-extension-open .native-skill-provider,.github-extension-open .native-skill-status,.native-skill-provider,.native-skill-status{display:none}}