@nextclaw/ui 0.27.2 → 0.27.4

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 (105) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/.vite/manifest.json +424 -424
  3. package/dist/assets/{account-panel-svU9I6E6.js → account-panel-Cfx3ocPY.js} +1 -1
  4. package/dist/assets/{agents-CtI89gpb.js → agents-BdeFtIOV.js} +1 -1
  5. package/dist/assets/agents-p_wcGhC3.js +1 -0
  6. package/dist/assets/{api-CI6_8Qt1.js → api-CXWxExzS.js} +2 -2
  7. package/dist/assets/app-presenter-provider-BB3Xl8b0.js +28 -0
  8. package/dist/assets/{appearance-settings-page-BhedtMx9.js → appearance-settings-page-DiSRSDN3.js} +1 -1
  9. package/dist/assets/apps-CKFrWb00.js +1 -0
  10. package/dist/assets/{book-open-i_BjUBqL.js → book-open-B3Ac0voD.js} +1 -1
  11. package/dist/assets/{card-DokH7OBp.js → card-eFBmxYiI.js} +1 -1
  12. package/dist/assets/{channels-list-page-B7G9lHUm.js → channels-list-page-lQOINLW8.js} +1 -1
  13. package/dist/assets/{circle-dashed-Cx8CIEbg.js → circle-dashed-KGwElDWV.js} +1 -1
  14. package/dist/assets/{client-CUJUci3r.js → client-BDS360Kz.js} +1 -1
  15. package/dist/assets/{config-split-page-hY1xug28.js → config-split-page-BaHtm9OW.js} +1 -1
  16. package/dist/assets/{confirm-dialog-B-ejV666.js → confirm-dialog-jz2cQKId.js} +1 -1
  17. package/dist/assets/{context-menu-dGVv8klA.js → context-menu-C0qywo73.js} +71 -72
  18. package/dist/assets/{createLucideIcon-reFMl-W-.js → createLucideIcon-C3LSyx-e.js} +1 -1
  19. package/dist/assets/cron-UqsFT41c.js +1 -0
  20. package/dist/assets/{desktop-capabilities-page-CYJTQ3nC.js → desktop-capabilities-page-CKq2Miye.js} +1 -1
  21. package/dist/assets/{desktop-update-config-guKAozXO.js → desktop-update-config-C_SBtjA1.js} +1 -1
  22. package/dist/assets/{dialog-DLOwdjT1.js → dialog-DMKYZDFu.js} +1 -1
  23. package/dist/assets/dist-D9h2cWk3.js +41 -0
  24. package/dist/assets/doc-browser-2VjSkax1.js +1 -0
  25. package/dist/assets/{doc-browser-context-CTmOmuqa.js → doc-browser-context-CoVMIiU8.js} +1 -1
  26. package/dist/assets/{download-DovI3Yvf.js → download-C2gYe8n1.js} +1 -1
  27. package/dist/assets/{extensions-BZ3qrM8M.js → extensions-DXDFcRVC.js} +1 -1
  28. package/dist/assets/{external-link-DUD3AbsF.js → external-link-DZzwHRHW.js} +1 -1
  29. package/dist/assets/{form-actions-B8VniHts.js → form-actions-CZxcWXSm.js} +1 -1
  30. package/dist/assets/{i18n-IGQbjBqS.js → i18n-ByVUrt9w.js} +2 -2
  31. package/dist/assets/{inbox-ClAG7SI_.js → inbox-CI8ATevA.js} +1 -1
  32. package/dist/assets/inbox-D62apR2j.js +1 -0
  33. package/dist/assets/{keyboard-shortcuts-settings-page-B5oxyPS2.js → keyboard-shortcuts-settings-page-BFBXVf20.js} +1 -1
  34. package/dist/assets/{login-page-DYaozpzz.js → login-page--Njgbmpm.js} +1 -1
  35. package/dist/assets/login-page-CzvxaAU8.js +1 -0
  36. package/dist/assets/{main-gFUvLF57.js → main-Bp1iozNB.js} +2 -2
  37. package/dist/assets/main-i18n-catalog.config-_4gMZaNz.js +1 -0
  38. package/dist/assets/main-kp_0b1bg.css +1 -0
  39. package/dist/assets/marketplace-BTDWnHP7.js +1 -0
  40. package/dist/assets/mcp-marketplace-page-oHCbBkS-.js +1 -0
  41. package/dist/assets/{model-config-page-Cduyz2Hy.js → model-config-page-CeVvZ29o.js} +1 -1
  42. package/dist/assets/{navigation-link-D-JSWFxj.js → navigation-link-O9Wm0epj.js} +1 -1
  43. package/dist/assets/panel-app-i18n-catalog.config-B9c87s2X.js +1 -0
  44. package/dist/assets/panel-apps-CniMi7QW.js +1 -0
  45. package/dist/assets/{panelStandalone-oHxbXvYt.js → panelStandalone-DomappXm.js} +2 -2
  46. package/dist/assets/plus-C42o6xrD.js +1 -0
  47. package/dist/assets/{privacy-settings-page-DG9E8N-F.js → privacy-settings-page-CHDv9ppI.js} +1 -1
  48. package/dist/assets/{projects-DvHyoKIF.js → projects-fPTOn2Wz.js} +1 -1
  49. package/dist/assets/{provider-models-COzjYl29.js → provider-models-D8WOdsdu.js} +1 -1
  50. package/dist/assets/{provider-scoped-model-input-Cvy74uj8.js → provider-scoped-model-input-BOPkUOtD.js} +1 -1
  51. package/dist/assets/{providers-config-page-7rCwVnhh.js → providers-config-page-BilPL0kF.js} +1 -1
  52. package/dist/assets/{puzzle-C5Wfpjk_.js → puzzle-DmKVREoh.js} +1 -1
  53. package/dist/assets/{pwa-CAg_9zFs.js → pwa-Cp7pPvsZ.js} +1 -1
  54. package/dist/assets/{refresh-cw-OhwaPDn1.js → refresh-cw-DOg2pWGu.js} +1 -1
  55. package/dist/assets/remote-CsJMF8OR.js +1 -0
  56. package/dist/assets/{rotate-cw-aBponvp7.js → rotate-cw-CWFIat29.js} +1 -1
  57. package/dist/assets/{runtime-config-page-FI2pk3HH.js → runtime-config-page-P5RUq3YK.js} +1 -1
  58. package/dist/assets/{save-394QCMXn.js → save-C1G0ZU-G.js} +1 -1
  59. package/dist/assets/{search-BG2qAlNZ.js → search-Dpgv--de.js} +1 -1
  60. package/dist/assets/{search-config-page-D4LeiB9y.js → search-config-page-DevSv1ZK.js} +1 -1
  61. package/dist/assets/{secrets-config-page-BzGcr5Vw.js → secrets-config-page-B4jWTV6V.js} +1 -1
  62. package/dist/assets/security-config-BGEs0SHi.js +1 -0
  63. package/dist/assets/{select-xUXYV0Gr.js → select-BJ-EjmCz.js} +1 -1
  64. package/dist/assets/{service-apps-panel-BTqXn0pg.js → service-apps-panel-BReYr_ni.js} +1 -1
  65. package/dist/assets/{settings-2-CWOGRRaA.js → settings-2-D3-m8a3v.js} +1 -1
  66. package/dist/assets/{status-dot-CYifnSnt.js → status-dot-DlELD18e.js} +1 -1
  67. package/dist/assets/{tag-chip-CjM6lyeh.js → tag-chip-DFzDSvcF.js} +1 -1
  68. package/dist/assets/{theme-provider-BToFZGZG.js → theme-provider-BsJ6HxeX.js} +1 -1
  69. package/dist/assets/{trash-2-DvJ6duOW.js → trash-2-BVQs-0ji.js} +1 -1
  70. package/dist/assets/{use-config-COusaY5p.js → use-config-M1L4xn8c.js} +1 -1
  71. package/dist/assets/{use-desktop-capabilities-B-u6ojjW.js → use-desktop-capabilities-BO_2CXgu.js} +1 -1
  72. package/dist/assets/{use-viewport-layout-IKKGpjzF.js → use-viewport-layout-Bnm5W5Qz.js} +1 -1
  73. package/dist/assets/{x-E9VB4HQx.js → x-waP-WLuT.js} +1 -1
  74. package/dist/index.html +37 -37
  75. package/dist/panel-standalone.html +14 -14
  76. package/package.json +8 -8
  77. package/src/features/chat/features/conversation/components/__tests__/session-conversation-input-top-slot.test.tsx +71 -0
  78. package/src/features/chat/features/conversation/components/__tests__/session-user-questions.test.tsx +98 -0
  79. package/src/features/chat/features/conversation/components/session-conversation-area.tsx +14 -3
  80. package/src/features/chat/features/conversation/components/session-conversation-input-top-slot.tsx +6 -7
  81. package/src/features/chat/features/conversation/components/session-user-questions.tsx +177 -0
  82. package/src/features/chat/features/conversation/hooks/use-session-user-questions.ts +100 -0
  83. package/src/features/chat/features/message/components/chat-message-list.container.tsx +7 -0
  84. package/src/features/chat/features/message/utils/__tests__/chat-message.utils.test.ts +45 -0
  85. package/src/features/chat/features/message/utils/chat-message-part.utils.ts +12 -0
  86. package/src/features/chat/features/message/utils/chat-message.utils.ts +55 -9
  87. package/src/shared/lib/i18n/locales/en-US/chat.json +16 -1
  88. package/src/shared/lib/i18n/locales/zh-CN/chat.json +16 -1
  89. package/dist/assets/agents-DWygCmAK.js +0 -1
  90. package/dist/assets/app-presenter-provider-_UK6sArj.js +0 -28
  91. package/dist/assets/apps-C4c4NXqB.js +0 -1
  92. package/dist/assets/cron-DkYSmE-f.js +0 -1
  93. package/dist/assets/dist-ZaFFmAGl.js +0 -41
  94. package/dist/assets/doc-browser-B0zg0EXA.js +0 -1
  95. package/dist/assets/inbox-CJBCLB1X.js +0 -1
  96. package/dist/assets/login-page-BxSMwUsc.js +0 -1
  97. package/dist/assets/main-D_zmSVS1.css +0 -1
  98. package/dist/assets/main-i18n-catalog.config-itg3Gvzp.js +0 -1
  99. package/dist/assets/marketplace-DsAf_rnt.js +0 -1
  100. package/dist/assets/mcp-marketplace-page-BqUz09cj.js +0 -1
  101. package/dist/assets/panel-app-i18n-catalog.config-BfLHr1tc.js +0 -1
  102. package/dist/assets/panel-apps-Bg5Fzm3T.js +0 -1
  103. package/dist/assets/plus-DUdl68Eo.js +0 -1
  104. package/dist/assets/remote-Dhr4K1oK.js +0 -1
  105. package/dist/assets/security-config-vD_V0BQF.js +0 -1
@@ -1 +1 @@
1
- import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,Wt as n,Yt as r,ur as i,xr as a}from"./api-CI6_8Qt1.js";import{I as o,Qt as s,c,pt as l,r as u}from"./app-presenter-provider-_UK6sArj.js";import{t as d}from"./createLucideIcon-reFMl-W-.js";import{i as f}from"./use-viewport-layout-IKKGpjzF.js";import{n as p,s as m}from"./i18n-IGQbjBqS.js";import{a as h,n as g,o as _,r as v,t as y}from"./dialog-DLOwdjT1.js";var b=d(`LogOut`,[[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}],[`polyline`,{points:`16 17 21 12 16 7`,key:`1gabdz`}],[`line`,{x1:`21`,x2:`9`,y1:`12`,y2:`12`,key:`1uyos4`}]]),x=e(a(),1),S=i();function C({label:e,value:t}){return(0,S.jsxs)(`div`,{className:`flex items-start justify-between gap-4 py-2 text-sm`,children:[(0,S.jsx)(`span`,{className:`text-gray-500`,children:e}),(0,S.jsx)(`span`,{className:`text-right text-gray-900`,children:t?.trim()||`-`})]})}function w(e){let{email:i,username:a,role:o,canSubmitUsername:c,savingUsername:u,usernameDraft:d,onUsernameDraftChange:f,onSubmitUsername:p,onOpenDeviceList:h,onLogout:g}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(l,{tone:`success`,title:m(`accountPanelSignedInTitle`),description:m(`accountPanelSignedInDescription`)}),(0,S.jsxs)(l,{tone:`neutral`,children:[(0,S.jsx)(C,{label:m(`remoteAccountEmail`),value:i}),(0,S.jsx)(C,{label:m(`remoteAccountUsername`),value:a}),(0,S.jsx)(C,{label:m(`remoteAccountRole`),value:o})]}),a?(0,S.jsx)(`p`,{className:`text-xs text-gray-500`,children:m(`remoteAccountUsernameLockedHelp`)}):(0,S.jsxs)(l,{tone:`warning`,title:m(`remoteAccountUsernameRequiredTitle`),description:m(`remoteAccountUsernameRequiredDescription`),children:[(0,S.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,S.jsx)(n,{htmlFor:`account-panel-username`,children:m(`remoteAccountUsername`)}),(0,S.jsx)(t,{id:`account-panel-username`,value:d,onChange:e=>f(e.target.value),placeholder:m(`remoteAccountUsernamePlaceholder`),autoCapitalize:`none`,autoCorrect:`off`,spellCheck:!1})]}),(0,S.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-3`,children:(0,S.jsx)(r,{disabled:!c,onClick:()=>void p(),children:m(u?`remoteAccountUsernameSaving`:`remoteAccountUsernameSave`)})})]}),(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsxs)(r,{onClick:()=>void h(),children:[(0,S.jsx)(s,{className:`mr-2 h-4 w-4`}),m(`remoteOpenDeviceList`)]}),(0,S.jsxs)(r,{variant:`outline`,onClick:()=>void g(),children:[(0,S.jsx)(b,{className:`mr-2 h-4 w-4`}),m(`remoteLogout`)]})]})]})}function T(e){let{authSessionId:t,authExpiresAt:n,authStatusMessage:i,authVerificationUri:a,onStartBrowserSignIn:o,onResumeBrowserSignIn:s}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(l,{tone:`neutral`,title:m(`accountPanelSignedOutTitle`),description:m(`accountPanelSignedOutDescription`),children:t?(0,S.jsxs)(`div`,{className:`mt-3 border-t border-white/80 pt-3`,children:[(0,S.jsx)(C,{label:m(`remoteBrowserAuthSession`),value:t}),(0,S.jsx)(C,{label:m(`remoteBrowserAuthExpiresAt`),value:n?p(n):`-`})]}):null}),i?(0,S.jsx)(`p`,{className:`text-sm text-gray-600`,children:i}):null,(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsx)(r,{onClick:()=>void o(),children:m(t?`remoteBrowserAuthActionRetry`:`remoteBrowserAuthAction`)}),a?(0,S.jsx)(r,{variant:`outline`,onClick:()=>void s(),children:m(`remoteBrowserAuthResume`)}):null]})]})}function E(){let e=u(),t=o(),n=c(e=>e.panelOpen),r=c(e=>e.authSessionId),i=c(e=>e.authVerificationUri),a=c(e=>e.authExpiresAt),s=c(e=>e.authStatusMessage),l=t.data,[d,p]=(0,x.useState)(``),[b,C]=(0,x.useState)(!1);(0,x.useEffect)(()=>{e.accountManager.syncRemoteStatus(l)},[e,l]);let E=!b&&d.trim().length>0&&!l?.account.username;return(0,S.jsx)(y,{open:n,onOpenChange:t=>t?e.accountManager.openAccountPanel():e.accountManager.closeAccountPanel(),children:(0,S.jsxs)(g,{className:`max-w-xl`,children:[(0,S.jsxs)(h,{children:[(0,S.jsxs)(_,{className:`flex items-center gap-2`,children:[(0,S.jsx)(f,{className:`h-5 w-5 text-primary`}),m(`accountPanelTitle`)]}),(0,S.jsx)(v,{children:m(`accountPanelDescription`)})]}),l?.account.loggedIn?(0,S.jsx)(w,{email:l.account.email,username:l.account.username,role:l.account.role,canSubmitUsername:E,savingUsername:b,usernameDraft:d,onUsernameDraftChange:p,onSubmitUsername:async()=>{C(!0);try{await e.accountManager.updateUsername(d)}finally{C(!1)}},onOpenDeviceList:()=>e.accountManager.openNextClawWeb(`/account`),onLogout:()=>e.accountManager.logout()}):(0,S.jsx)(T,{authSessionId:r,authExpiresAt:a,authStatusMessage:s,authVerificationUri:i,onStartBrowserSignIn:()=>e.accountManager.startBrowserSignIn(),onResumeBrowserSignIn:()=>e.accountManager.resumeBrowserSignIn()})]})})}export{E as AccountPanel};
1
+ import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,Wt as n,Yt as r,ur as i,xr as a}from"./api-CXWxExzS.js";import{I as o,Qt as s,c,ft as l,r as u}from"./app-presenter-provider-BB3Xl8b0.js";import{t as d}from"./createLucideIcon-C3LSyx-e.js";import{i as f}from"./use-viewport-layout-Bnm5W5Qz.js";import{n as p,s as m}from"./i18n-ByVUrt9w.js";import{a as h,n as g,o as _,r as v,t as y}from"./dialog-DMKYZDFu.js";var b=d(`LogOut`,[[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}],[`polyline`,{points:`16 17 21 12 16 7`,key:`1gabdz`}],[`line`,{x1:`21`,x2:`9`,y1:`12`,y2:`12`,key:`1uyos4`}]]),x=e(a(),1),S=i();function C({label:e,value:t}){return(0,S.jsxs)(`div`,{className:`flex items-start justify-between gap-4 py-2 text-sm`,children:[(0,S.jsx)(`span`,{className:`text-gray-500`,children:e}),(0,S.jsx)(`span`,{className:`text-right text-gray-900`,children:t?.trim()||`-`})]})}function w(e){let{email:i,username:a,role:o,canSubmitUsername:c,savingUsername:u,usernameDraft:d,onUsernameDraftChange:f,onSubmitUsername:p,onOpenDeviceList:h,onLogout:g}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(l,{tone:`success`,title:m(`accountPanelSignedInTitle`),description:m(`accountPanelSignedInDescription`)}),(0,S.jsxs)(l,{tone:`neutral`,children:[(0,S.jsx)(C,{label:m(`remoteAccountEmail`),value:i}),(0,S.jsx)(C,{label:m(`remoteAccountUsername`),value:a}),(0,S.jsx)(C,{label:m(`remoteAccountRole`),value:o})]}),a?(0,S.jsx)(`p`,{className:`text-xs text-gray-500`,children:m(`remoteAccountUsernameLockedHelp`)}):(0,S.jsxs)(l,{tone:`warning`,title:m(`remoteAccountUsernameRequiredTitle`),description:m(`remoteAccountUsernameRequiredDescription`),children:[(0,S.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,S.jsx)(n,{htmlFor:`account-panel-username`,children:m(`remoteAccountUsername`)}),(0,S.jsx)(t,{id:`account-panel-username`,value:d,onChange:e=>f(e.target.value),placeholder:m(`remoteAccountUsernamePlaceholder`),autoCapitalize:`none`,autoCorrect:`off`,spellCheck:!1})]}),(0,S.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-3`,children:(0,S.jsx)(r,{disabled:!c,onClick:()=>void p(),children:m(u?`remoteAccountUsernameSaving`:`remoteAccountUsernameSave`)})})]}),(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsxs)(r,{onClick:()=>void h(),children:[(0,S.jsx)(s,{className:`mr-2 h-4 w-4`}),m(`remoteOpenDeviceList`)]}),(0,S.jsxs)(r,{variant:`outline`,onClick:()=>void g(),children:[(0,S.jsx)(b,{className:`mr-2 h-4 w-4`}),m(`remoteLogout`)]})]})]})}function T(e){let{authSessionId:t,authExpiresAt:n,authStatusMessage:i,authVerificationUri:a,onStartBrowserSignIn:o,onResumeBrowserSignIn:s}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(l,{tone:`neutral`,title:m(`accountPanelSignedOutTitle`),description:m(`accountPanelSignedOutDescription`),children:t?(0,S.jsxs)(`div`,{className:`mt-3 border-t border-white/80 pt-3`,children:[(0,S.jsx)(C,{label:m(`remoteBrowserAuthSession`),value:t}),(0,S.jsx)(C,{label:m(`remoteBrowserAuthExpiresAt`),value:n?p(n):`-`})]}):null}),i?(0,S.jsx)(`p`,{className:`text-sm text-gray-600`,children:i}):null,(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsx)(r,{onClick:()=>void o(),children:m(t?`remoteBrowserAuthActionRetry`:`remoteBrowserAuthAction`)}),a?(0,S.jsx)(r,{variant:`outline`,onClick:()=>void s(),children:m(`remoteBrowserAuthResume`)}):null]})]})}function E(){let e=u(),t=o(),n=c(e=>e.panelOpen),r=c(e=>e.authSessionId),i=c(e=>e.authVerificationUri),a=c(e=>e.authExpiresAt),s=c(e=>e.authStatusMessage),l=t.data,[d,p]=(0,x.useState)(``),[b,C]=(0,x.useState)(!1);(0,x.useEffect)(()=>{e.accountManager.syncRemoteStatus(l)},[e,l]);let E=!b&&d.trim().length>0&&!l?.account.username;return(0,S.jsx)(y,{open:n,onOpenChange:t=>t?e.accountManager.openAccountPanel():e.accountManager.closeAccountPanel(),children:(0,S.jsxs)(g,{className:`max-w-xl`,children:[(0,S.jsxs)(h,{children:[(0,S.jsxs)(_,{className:`flex items-center gap-2`,children:[(0,S.jsx)(f,{className:`h-5 w-5 text-primary`}),m(`accountPanelTitle`)]}),(0,S.jsx)(v,{children:m(`accountPanelDescription`)})]}),l?.account.loggedIn?(0,S.jsx)(w,{email:l.account.email,username:l.account.username,role:l.account.role,canSubmitUsername:E,savingUsername:b,usernameDraft:d,onUsernameDraftChange:p,onSubmitUsername:async()=>{C(!0);try{await e.accountManager.updateUsername(d)}finally{C(!1)}},onOpenDeviceList:()=>e.accountManager.openNextClawWeb(`/account`),onLogout:()=>e.accountManager.logout()}):(0,S.jsx)(T,{authSessionId:r,authExpiresAt:a,authStatusMessage:s,authVerificationUri:i,onStartBrowserSignIn:()=>e.accountManager.startBrowserSignIn(),onResumeBrowserSignIn:()=>e.accountManager.resumeBrowserSignIn()})]})})}export{E as AccountPanel};
@@ -1 +1 @@
1
- import{i as e}from"./chunk-DF37yw5_.js";import{$t as t,Gt as n,Qt as r,Xn as i,Yt as a,_n as o,ur as s,xr as c}from"./api-CI6_8Qt1.js";import{d as l}from"./navigation-link-D-JSWFxj.js";import{$t as u,Bt as d,Gt as f,Ht as p,Kt as m,Vt as h,Wt as g,Yt as _,d as v,f as y,m as b,mt as x,n as ee,nn as S,pt as te,qt as C,tn as w,v as ne,zt as re}from"./app-presenter-provider-_UK6sArj.js";import{t as T}from"./createLucideIcon-reFMl-W-.js";import{Z as E,_t as D,g as O,h as k,lt as A,q as j,vt as M}from"./context-menu-dGVv8klA.js";import{z as N}from"./dist-ZaFFmAGl.js";import{t as P}from"./provider-scoped-model-input-Cvy74uj8.js";import{n as F}from"./inbox-ClAG7SI_.js";import{t as ie}from"./plus-DUdl68Eo.js";import{t as I}from"./settings-2-CWOGRRaA.js";import{t as L}from"./trash-2-DvJ6duOW.js";import{s as R}from"./i18n-IGQbjBqS.js";import{a as z,i as B,n as V,o as H,r as U,t as W}from"./dialog-DLOwdjT1.js";import{g as ae,h as oe,n as se,p as ce}from"./provider-models-COzjYl29.js";import{t as le}from"./tag-chip-CjM6lyeh.js";import{a as ue,i as de,n as fe,r as pe,t as me}from"./select-xUXYV0Gr.js";import{n as G,t as K}from"./card-DokH7OBp.js";import{f as he,p as ge,t as _e}from"./use-config-COusaY5p.js";var ve=T(`Gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),q=s(),J=new Intl.NumberFormat;function ye({embedded:e=!1,onChat:t,agent:n,defaults:r,runtimeOptions:i,defaultRuntime:o,defaultRuntimeLabel:s,onOpenChange:c,onEdit:l}){if(!n)return null;let u=Y(n.model,r?.model),d=xe({agent:n,defaults:r,runtimeOptions:i,defaultRuntime:o,defaultRuntimeLabel:s}),f=be(n.contextTokens,r?.contextTokens??2e5),m=be(n.reservedContextTokens,r?.reservedContextTokens),h=Y(n.thinkingDefault,r?.thinkingDefault??`off`),g=Ce(n.runtimeConfig??n.engineConfig,r?.engineConfig),_=Ce(n.models,r?.models),v=(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`shrink-0 px-5 pb-3 pt-5`,children:(0,q.jsx)(z,{showClose:!e,className:`items-center`,actions:(0,q.jsx)(y,{page:b(`agent`,n.id,n.displayName||n.id)}),children:(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,q.jsx)(p,{agentId:n.id,displayName:n.displayName,avatarUrl:n.avatarUrl,className:`h-10 w-10 shrink-0`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(H,{className:`truncate text-base`,children:n.displayName?.trim()||n.id}),(0,q.jsxs)(U,{className:`truncate text-xs`,children:[`@`,n.id]})]})]})})}),(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto overscroll-contain px-5 py-3`,children:[(0,q.jsxs)(X,{icon:M,title:R(`agentsDetailsIdentitySection`),children:[(0,q.jsx)(Z,{label:R(`agentsDetailsFieldDisplayName`),value:n.displayName?.trim()||n.id}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldId`),value:n.id,mono:!0}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldDescription`),value:n.description?.trim()||R(`agentsDetailsEmptyValue`)}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldWorkspace`),value:n.workspace??R(`agentsDetailsUnsetValue`),mono:!0})]}),(0,q.jsxs)(X,{icon:j,title:R(`agentsDetailsRuntimeSection`),children:[(0,q.jsx)(Z,{label:R(`agentsDetailsFieldModel`),value:u.value,source:u.source}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldRuntime`),value:d.value,source:d.source}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldRuntimeConfig`),value:g.value,source:g.source,mono:!0,prewrap:!0})]}),(0,q.jsxs)(X,{icon:ve,title:R(`agentsDetailsContextSection`),children:[(0,q.jsx)(Z,{label:R(`agentsDetailsFieldContextTokens`),value:f.value,source:f.source}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldReservedContextTokens`),value:m.value,source:m.source})]}),(0,q.jsxs)(X,{icon:D,title:R(`agentsDetailsBehaviorSection`),children:[(0,q.jsx)(Z,{label:R(`agentsDetailsFieldThinkingDefault`),value:h.value,source:h.source}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldModelOverrides`),value:_.value,source:_.source,mono:!0,prewrap:!0}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldAvatar`),value:n.avatar??R(`agentsDetailsUnsetValue`),mono:!0})]})]}),(0,q.jsxs)(B,{className:`shrink-0 px-5 pb-4 pt-2`,children:[!e&&(0,q.jsx)(a,{type:`button`,variant:`ghost`,onClick:()=>c(!1),children:R(`cancel`)}),t&&(0,q.jsx)(a,{onClick:()=>t(n),children:R(`agentsCardStartChat`)}),(0,q.jsxs)(a,{type:`button`,variant:`primary`,className:`px-4`,onClick:()=>l(n),children:[(0,q.jsx)(E,{className:`mr-2 h-4 w-4`}),R(`agentsDetailsEditAction`)]})]})]});return(0,q.jsx)(W,{open:!e&&n!==null,onOpenChange:c,children:e?(0,q.jsx)(`div`,{className:`flex h-full min-h-0 flex-col`,"data-testid":`agent-detail`,children:v}):(0,q.jsx)(V,{className:`flex max-h-[calc(100vh-2rem)] flex-col overflow-hidden border-none bg-popover p-0 sm:max-h-[720px] sm:max-w-2xl`,children:v})})}function Y(e,t){let n=e?.trim();return n?{value:n,source:`override`}:{value:t?.trim()||R(`agentsDetailsUnsetValue`),source:`default`}}function be(e,t){return typeof e==`number`?{value:J.format(e),source:`override`}:{value:typeof t==`number`?J.format(t):R(`agentsDetailsUnsetValue`),source:`default`}}function xe(e){let{agent:t,defaults:n,runtimeOptions:r,defaultRuntime:i,defaultRuntimeLabel:a}=e,o=t.runtime?.trim()||t.engine?.trim();if(o)return{value:Se(o,r,a),source:`override`};let s=n?.engine?.trim()||i;return{value:s?Se(s,r,a):a,source:`default`}}function Se(e,t,n){let r=f(e);return r?t.find(e=>e.value===r)?.label??C(r):n}function Ce(e,t){return we(e)?{value:JSON.stringify(e,null,2),source:`override`}:{value:we(t)?JSON.stringify(t,null,2):R(`agentsDetailsUnsetValue`),source:`default`}}function we(e){return!!(e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length>0)}function X(e){let{icon:t,title:n,children:r}=e;return(0,q.jsxs)(`section`,{className:`space-y-2 border-t border-border/60 pt-3 first:border-t-0 first:pt-0`,children:[(0,q.jsxs)(`h3`,{className:`flex items-center gap-1.5 text-xs font-semibold leading-5 text-foreground`,children:[(0,q.jsx)(t,{className:`h-3.5 w-3.5 text-muted-foreground`}),n]}),(0,q.jsx)(`dl`,{className:`grid min-w-0 gap-y-2.5 pl-5`,children:r})]})}function Z(e){let{label:t,value:n,source:r,mono:i=!1,prewrap:a=!1}=e,s=a&&n.trim().startsWith(`{`),c=i&&(!a||s);return(0,q.jsxs)(`div`,{className:o(`grid min-w-0 grid-cols-[minmax(0,30%)_minmax(0,1fr)] items-baseline gap-x-3 gap-y-1`),children:[(0,q.jsx)(`dt`,{className:`flex min-w-0 items-baseline leading-5`,children:(0,q.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:t})}),(0,q.jsxs)(`dd`,{className:o(`min-w-0 break-words text-xs leading-5 text-foreground`,s?`max-h-28 overflow-auto whitespace-pre-wrap rounded bg-muted/50 px-2 py-1.5 text-left`:``),children:[(0,q.jsx)(`span`,{className:c?`font-mono`:void 0,children:n}),r?(0,q.jsx)(Te,{source:r}):null]})]})}function Te({source:e}){return(0,q.jsxs)(`span`,{className:o(`ml-1 whitespace-nowrap text-xs font-normal leading-5`,e===`override`?`text-blue-500`:`text-muted-foreground`),children:[`(`,R(e===`override`?`agentsDetailsAgentOverride`:`agentsDetailsInheritedDefault`),`)`]})}function Ee({form:e,disabled:t=!1,onChange:n}){return(0,q.jsxs)(`details`,{className:`group rounded-2xl border border-border bg-card`,children:[(0,q.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center justify-between gap-3 px-4 py-3 text-sm font-semibold text-foreground [&::-webkit-details-marker]:hidden`,children:[(0,q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(I,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(`span`,{className:`truncate`,children:R(`agentsAdvancedConfigToggle`)})]}),(0,q.jsx)(N,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180`})]}),(0,q.jsxs)(`div`,{className:`space-y-4 border-t border-border/60 px-4 py-4`,children:[(0,q.jsx)(`p`,{className:`text-xs leading-5 text-muted-foreground`,children:R(`agentsAdvancedConfigDescription`)}),(0,q.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:(0,q.jsx)(De,{label:R(`agentsAdvancedContextTokensLabel`),value:e.contextTokens,min:1e3,step:1e3,disabled:t,onChange:e=>n({contextTokens:e})})})]})]})}function De(e){let{label:t,value:r,min:i,step:a,disabled:o,onChange:s}=e;return(0,q.jsxs)(`label`,{className:`space-y-2 text-sm font-medium text-foreground`,children:[(0,q.jsx)(`span`,{children:t}),(0,q.jsx)(n,{type:`number`,min:i,step:a,value:r,disabled:o,placeholder:R(`agentsAdvancedInheritPlaceholder`),"aria-label":t,onChange:e=>s(e.target.value)})]})}function Oe(e){return{displayName:e.displayName??``,description:e.description??``,avatar:e.avatar??``,model:e.model??``,runtime:e.runtime??e.engine??``,contextTokens:ke(e.contextTokens)}}function ke(e){return typeof e==`number`?String(e):``}var Q=e(c(),1);function Ae(e){let{runtimeOptions:t,currentRuntime:n}=e,r=n.trim();if(!r)return t;let i=f(r);return t.some(e=>e.value===i)?t:[...t,{value:i,label:C(i),icon:null,ready:!1,reason:`unavailable`,reasonMessage:null,supportedModels:void 0,recommendedModel:null,cta:null}].sort((e,t)=>e.value===`native`?-1:t.value===`native`?1:e.value.localeCompare(t.value))}function je({value:e,disabled:t=!1,runtimeOptions:n,defaultRuntime:r,onChange:i}){let a=e.trim()?f(e):``,o=Ae({runtimeOptions:n,currentRuntime:e}),s=o.find(e=>e.value===a)??null,c=s?.reasonMessage?.trim()||(s?.ready===!1?R(`agentsRuntimeUnavailableHelp`):``);return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(me,{value:a||r,onValueChange:e=>i(e===r?``:e),disabled:t,children:[(0,q.jsx)(de,{"aria-label":R(`agentsCardRuntimeLabel`),className:`rounded-xl`,children:(0,q.jsx)(ue,{placeholder:R(`agentsRuntimeSelectPlaceholder`)})}),(0,q.jsx)(fe,{className:`rounded-xl`,children:o.map(e=>(0,q.jsx)(pe,{value:e.value,disabled:e.ready===!1&&e.value!==a,className:`rounded-lg`,children:e.label},e.value))})]}),c?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:c}):null]})}function Me({agent:e,pending:t,providerCatalog:n,runtimeOptions:r,defaultRuntime:i,onOpenChange:a,onSubmit:o}){return(0,q.jsx)(W,{open:e!==null,onOpenChange:a,children:e?(0,q.jsx)(Ne,{agent:e,pending:t,providerCatalog:n,runtimeOptions:r,defaultRuntime:i,onOpenChange:a,onSubmit:o},e.id):null})}function Ne(e){let{agent:t,pending:r,providerCatalog:i,runtimeOptions:o,defaultRuntime:s,onOpenChange:c,onSubmit:l}=e,[u,d]=(0,Q.useState)(Oe(t));return(0,q.jsxs)(V,{className:`flex max-h-[calc(100vh-2rem)] flex-col overflow-hidden border-none bg-popover p-0 sm:max-h-[760px] sm:max-w-xl`,children:[(0,q.jsx)(`div`,{className:`shrink-0 border-b border-border px-6 py-6`,children:(0,q.jsxs)(z,{className:`text-left`,children:[(0,q.jsx)(H,{children:R(`agentsEditDialogTitle`)}),(0,q.jsx)(U,{children:R(`agentsEditDialogDescription`)})]})}),(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-6 py-6`,children:(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsx)(te,{tone:`warning`,title:R(`agentsEditHomeReadonly`),description:R(`agentsEditHomeReadonlyHint`),children:(0,q.jsx)(`div`,{className:`break-all text-sm text-amber-950`,children:t.workspace??`-`})}),(0,q.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,q.jsx)(n,{value:u.displayName,onChange:e=>d(t=>({...t,displayName:e.target.value})),placeholder:R(`agentsFormNamePlaceholder`)}),(0,q.jsx)(x,{value:u.description,onChange:e=>d(t=>({...t,description:e.target.value})),placeholder:R(`agentsFormDescriptionPlaceholder`),rows:4,className:`md:col-span-2`}),(0,q.jsx)(n,{value:u.avatar,onChange:e=>d(t=>({...t,avatar:e.target.value})),placeholder:R(`agentsFormAvatarPlaceholder`)}),(0,q.jsx)(P,{value:u.model,onChange:e=>d(t=>({...t,model:e})),providerCatalog:i,disabled:r,className:`md:col-span-2`}),(0,q.jsx)(je,{value:u.runtime,onChange:e=>d(t=>({...t,runtime:e})),runtimeOptions:o,defaultRuntime:s,disabled:r})]}),(0,q.jsx)(Ee,{form:u,disabled:r,onChange:e=>d(t=>({...t,...e}))})]})}),(0,q.jsxs)(B,{className:`shrink-0 border-t border-border px-6 py-5`,children:[(0,q.jsx)(a,{type:`button`,variant:`ghost`,onClick:()=>c(!1),disabled:r,children:R(`cancel`)}),(0,q.jsxs)(a,{type:`button`,variant:`primary`,className:`rounded-2xl px-5`,onClick:()=>l(t.id,u),disabled:r,children:[(0,q.jsx)(E,{className:`mr-2 h-4 w-4`}),R(`agentsEditSaveAction`)]})]})]})}var Pe=`请直接创建一个默认示例 Agent,不要问我问题。创建完成后,简单告诉我它能做什么。`;function Fe(e){let t=e.trim();if(!t)return null;let n=Number(t);if(!Number.isFinite(n))throw Error(R(`agentsAdvancedInvalidNumberError`));return Math.trunc(n)}function Ie(e){return{displayName:e.displayName,description:e.description,avatar:e.avatar,model:e.model,...e.runtime.trim()?{runtime:e.runtime.trim()}:{runtime:``},contextTokens:Fe(e.contextTokens)}}function $(e){let{icon:t,label:n,disabled:r=!1,destructive:i=!1,onClick:a}=e;return(0,q.jsxs)(`button`,{type:`button`,className:o(O,i?k.destructive:`text-foreground ${k.item}`),onClick:a,disabled:r,children:[(0,q.jsx)(t,{className:`h-4 w-4 shrink-0`}),(0,q.jsx)(`span`,{children:n})]})}function Le(e){let{agent:t,runtimeOptions:n,defaultRuntimeLabel:r,updatePending:i,deletePending:o,onStartChat:s,onView:c,onEdit:l,onDelete:d}=e,[m,h]=(0,Q.useState)(!1),g=t.runtime?.trim()||t.engine?.trim()||``,_=g?n.find(e=>e.value===f(g))?.label??C(g):r;return(0,q.jsx)(K,{className:`group overflow-hidden border border-border bg-card shadow-none transition-colors duration-200 hover:border-border/80`,children:(0,q.jsxs)(G,{className:`relative flex h-full flex-col gap-3 px-3.5 py-3.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2.5 pr-16`,children:[(0,q.jsx)(p,{agentId:t.id,displayName:t.displayName,avatarUrl:t.avatarUrl,className:`h-9 w-9 shrink-0`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:t.displayName?.trim()||t.id}),t.builtIn?(0,q.jsxs)(le,{tone:`warning`,className:`h-5 gap-1 border-amber-200 bg-amber-50 px-1.5 text-[10px] text-amber-700`,children:[(0,q.jsx)(u,{className:`h-3 w-3`}),R(`agentsCardBuiltInTag`)]}):null]}),(0,q.jsxs)(`div`,{className:`truncate text-xs text-muted-foreground`,children:[`@`,t.id]})]})]}),(0,q.jsxs)(`div`,{className:`absolute right-2.5 top-2.5 flex items-center gap-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100`,children:[(0,q.jsx)(a,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-lg text-muted-foreground hover:text-foreground`,"aria-label":R(`agentsCardStartChat`),title:R(`agentsCardStartChat`),onClick:s,children:(0,q.jsx)(w,{className:`h-4 w-4`})}),(0,q.jsxs)(ce,{open:m,onOpenChange:h,children:[(0,q.jsx)(ae,{asChild:!0,children:(0,q.jsx)(a,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-lg text-muted-foreground hover:text-foreground`,"aria-label":R(`chatSessionMoreActions`),title:R(`chatSessionMoreActions`),children:(0,q.jsx)(A,{className:`h-4 w-4`})})}),(0,q.jsxs)(oe,{align:`end`,variant:`menu`,children:[(0,q.jsx)($,{icon:F,label:R(`agentsViewDetailsAction`),onClick:()=>{h(!1),c()}}),(0,q.jsx)($,{icon:E,label:R(`agentsEditAction`),onClick:()=>{h(!1),l()},disabled:i}),t.builtIn?null:(0,q.jsx)($,{icon:L,label:R(`agentsRemoveAction`),onClick:()=>{h(!1),d()},disabled:o,destructive:!0}),(0,q.jsx)(`div`,{className:`my-1 h-px bg-border`}),(0,q.jsx)(v,{page:b(`agent`,t.id,t.displayName||t.id),onSelect:()=>h(!1)})]})]})]}),(0,q.jsx)(`p`,{className:`line-clamp-2 min-h-10 text-sm leading-5 text-muted-foreground`,children:t.description?.trim()||(t.builtIn?R(`agentsCardBuiltInSummary`):R(`agentsCardCustomSummary`))}),(0,q.jsxs)(`div`,{className:`mt-auto grid gap-2 border-t border-border/60 pt-2 text-xs text-muted-foreground`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(j,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground/60`}),(0,q.jsx)(`span`,{className:`truncate`,children:_})]}),(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(S,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground/60`}),(0,q.jsx)(`span`,{className:`truncate`,children:t.workspace??`-`})]})]})]})})}function Re({resourceId:e}={}){let n=ee(),o=l(),s=_(),c=re(),u=_e(),p=ge(),v=he(),y=ne(),x=h(),S=d(),[te,w]=(0,Q.useState)(null),T=(0,Q.useMemo)(()=>c.data?.agents??[],[c.data?.agents]),E=(0,Q.useMemo)(()=>[...T].sort((e,t)=>Number(!!t.builtIn)-Number(!!e.builtIn)||e.id.localeCompare(t.id)),[T]),D=(0,Q.useMemo)(()=>se({config:u.data,providersView:p.data,templatesView:v.data,onlyConfigured:!0}),[u.data,p.data,v.data]),O=(0,Q.useMemo)(()=>g(y.data?.options??[]),[y.data?.options]),k=(0,Q.useMemo)(()=>f(y.data?.defaultType??`native`),[y.data?.defaultType]),A=(0,Q.useMemo)(()=>O.find(e=>e.value===k)?.label??C(k),[k,O]),j=u.data?.agents.defaults,N=e=>{n.pageResourceManager.open(b(`agent`,e.id,e.displayName||e.id),`default`,o)},P=e=>{w(e)},F=async(e,t)=>{let n;try{n=Ie(t)}catch(e){i.error(e instanceof Error?e.message:R(`agentsAdvancedParseFailed`));return}await x.mutateAsync({agentId:e,data:n}),w(null)},I=e=>{s.chatSessionListManager.startAgentDraftChat(e.id,m(e,k))},L=()=>{s.chatSessionListManager.startAgentDraftChat(`main`,k,Pe)},z=(0,q.jsx)(Me,{agent:te,pending:x.isPending,providerCatalog:D,runtimeOptions:O,defaultRuntime:k,onOpenChange:e=>{!e&&!x.isPending&&w(null)},onSubmit:F});if(e){let t=T.find(t=>t.id===e)??null;return c.isPending?(0,q.jsx)(`p`,{role:`status`,className:`p-4`,children:R(`loading`)}):c.isError?(0,q.jsxs)(`div`,{className:`p-4`,children:[(0,q.jsx)(`p`,{role:`alert`,children:R(`resourceLoadFailed`)}),(0,q.jsx)(`button`,{onClick:()=>void c.refetch(),children:R(`resourceRetry`)})]}):t?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ye,{embedded:!0,agent:t,defaults:j,runtimeOptions:O,defaultRuntime:k,defaultRuntimeLabel:A,onOpenChange:()=>{},onEdit:P,onChat:I}),z]}):(0,q.jsx)(`p`,{role:`alert`,className:`p-4`,children:R(c.isError?`resourceLoadFailed`:`resourceNotFound`)})}return(0,q.jsxs)(t,{className:`space-y-6`,children:[(0,q.jsx)(r,{mobileTitleInShell:!0,headingLevel:1,title:R(`agentsHeroEyebrow`),description:R(`agentsHeroDescription`),actions:(0,q.jsxs)(a,{type:`button`,variant:`primary`,className:`h-9 shrink-0 rounded-xl px-4 text-sm font-semibold`,onClick:L,children:[(0,q.jsx)(ie,{className:`mr-2 h-4 w-4`}),R(`agentsCreateButton`)]})}),(0,q.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2 xl:grid-cols-3`,children:c.isLoading?(0,q.jsx)(K,{className:`md:col-span-2 xl:col-span-3 border-dashed border-border bg-card/70`,children:(0,q.jsx)(G,{className:`py-14 text-center text-sm text-muted-foreground`,children:R(`agentsLoading`)})}):E.length===0?(0,q.jsx)(K,{className:`md:col-span-2 xl:col-span-3 overflow-hidden border-dashed border-border bg-gradient-subtle`,children:(0,q.jsxs)(G,{className:`flex min-h-[240px] flex-col items-center justify-center px-6 py-14 text-center`,children:[(0,q.jsx)(`div`,{className:`mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-card/80 shadow-[0_18px_44px_rgba(0,0,0,0.08)]`,children:(0,q.jsx)(M,{className:`h-8 w-8 text-warning`})}),(0,q.jsx)(`div`,{className:`text-lg font-semibold text-foreground`,children:R(`agentsEmpty`)}),(0,q.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-muted-foreground`,children:R(`agentsEmptyDescription`)}),(0,q.jsxs)(a,{type:`button`,variant:`primary`,className:`mt-5 rounded-2xl px-5`,onClick:L,children:[(0,q.jsx)(ie,{className:`mr-2 h-4 w-4`}),R(`agentsCreateButton`)]})]})}):E.map(e=>(0,q.jsx)(Le,{agent:e,runtimeOptions:O,defaultRuntimeLabel:A,updatePending:x.isPending,deletePending:S.isPending,onStartChat:()=>I(e),onView:()=>N(e),onEdit:()=>P(e),onDelete:()=>S.mutate({agentId:e.id})},e.id))}),z]})}export{Re as t};
1
+ import{i as e}from"./chunk-DF37yw5_.js";import{$t as t,Gt as n,Qt as r,Xn as i,Yt as a,_n as o,ur as s,xr as c}from"./api-CXWxExzS.js";import{d as l}from"./navigation-link-O9Wm0epj.js";import{$t as u,Bt as d,Gt as f,Ht as p,Kt as m,Vt as h,Wt as g,Yt as _,d as v,f as y,ft as b,m as x,n as ee,nn as S,pt as C,qt as w,tn as T,v as te,zt as ne}from"./app-presenter-provider-BB3Xl8b0.js";import{t as E}from"./createLucideIcon-C3LSyx-e.js";import{Z as D,g as O,h as k,q as A,ut as j,vt as M,yt as N}from"./context-menu-C0qywo73.js";import{z as P}from"./dist-D9h2cWk3.js";import{t as F}from"./provider-scoped-model-input-BOPkUOtD.js";import{n as re}from"./inbox-CI8ATevA.js";import{t as ie}from"./plus-C42o6xrD.js";import{t as I}from"./settings-2-D3-m8a3v.js";import{t as L}from"./trash-2-BVQs-0ji.js";import{s as R}from"./i18n-ByVUrt9w.js";import{a as z,i as B,n as V,o as H,r as U,t as W}from"./dialog-DMKYZDFu.js";import{g as ae,h as oe,n as se,p as ce}from"./provider-models-D8WOdsdu.js";import{t as le}from"./tag-chip-DFzDSvcF.js";import{a as ue,i as de,n as fe,r as pe,t as me}from"./select-BJ-EjmCz.js";import{n as G,t as K}from"./card-eFBmxYiI.js";import{f as he,p as ge,t as _e}from"./use-config-M1L4xn8c.js";var ve=E(`Gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),q=s(),J=new Intl.NumberFormat;function ye({embedded:e=!1,onChat:t,agent:n,defaults:r,runtimeOptions:i,defaultRuntime:o,defaultRuntimeLabel:s,onOpenChange:c,onEdit:l}){if(!n)return null;let u=Y(n.model,r?.model),d=xe({agent:n,defaults:r,runtimeOptions:i,defaultRuntime:o,defaultRuntimeLabel:s}),f=be(n.contextTokens,r?.contextTokens??2e5),m=be(n.reservedContextTokens,r?.reservedContextTokens),h=Y(n.thinkingDefault,r?.thinkingDefault??`off`),g=Ce(n.runtimeConfig??n.engineConfig,r?.engineConfig),_=Ce(n.models,r?.models),v=(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`shrink-0 px-5 pb-3 pt-5`,children:(0,q.jsx)(z,{showClose:!e,className:`items-center`,actions:(0,q.jsx)(y,{page:x(`agent`,n.id,n.displayName||n.id)}),children:(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,q.jsx)(p,{agentId:n.id,displayName:n.displayName,avatarUrl:n.avatarUrl,className:`h-10 w-10 shrink-0`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(H,{className:`truncate text-base`,children:n.displayName?.trim()||n.id}),(0,q.jsxs)(U,{className:`truncate text-xs`,children:[`@`,n.id]})]})]})})}),(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto overscroll-contain px-5 py-3`,children:[(0,q.jsxs)(X,{icon:N,title:R(`agentsDetailsIdentitySection`),children:[(0,q.jsx)(Z,{label:R(`agentsDetailsFieldDisplayName`),value:n.displayName?.trim()||n.id}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldId`),value:n.id,mono:!0}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldDescription`),value:n.description?.trim()||R(`agentsDetailsEmptyValue`)}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldWorkspace`),value:n.workspace??R(`agentsDetailsUnsetValue`),mono:!0})]}),(0,q.jsxs)(X,{icon:A,title:R(`agentsDetailsRuntimeSection`),children:[(0,q.jsx)(Z,{label:R(`agentsDetailsFieldModel`),value:u.value,source:u.source}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldRuntime`),value:d.value,source:d.source}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldRuntimeConfig`),value:g.value,source:g.source,mono:!0,prewrap:!0})]}),(0,q.jsxs)(X,{icon:ve,title:R(`agentsDetailsContextSection`),children:[(0,q.jsx)(Z,{label:R(`agentsDetailsFieldContextTokens`),value:f.value,source:f.source}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldReservedContextTokens`),value:m.value,source:m.source})]}),(0,q.jsxs)(X,{icon:M,title:R(`agentsDetailsBehaviorSection`),children:[(0,q.jsx)(Z,{label:R(`agentsDetailsFieldThinkingDefault`),value:h.value,source:h.source}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldModelOverrides`),value:_.value,source:_.source,mono:!0,prewrap:!0}),(0,q.jsx)(Z,{label:R(`agentsDetailsFieldAvatar`),value:n.avatar??R(`agentsDetailsUnsetValue`),mono:!0})]})]}),(0,q.jsxs)(B,{className:`shrink-0 px-5 pb-4 pt-2`,children:[!e&&(0,q.jsx)(a,{type:`button`,variant:`ghost`,onClick:()=>c(!1),children:R(`cancel`)}),t&&(0,q.jsx)(a,{onClick:()=>t(n),children:R(`agentsCardStartChat`)}),(0,q.jsxs)(a,{type:`button`,variant:`primary`,className:`px-4`,onClick:()=>l(n),children:[(0,q.jsx)(D,{className:`mr-2 h-4 w-4`}),R(`agentsDetailsEditAction`)]})]})]});return(0,q.jsx)(W,{open:!e&&n!==null,onOpenChange:c,children:e?(0,q.jsx)(`div`,{className:`flex h-full min-h-0 flex-col`,"data-testid":`agent-detail`,children:v}):(0,q.jsx)(V,{className:`flex max-h-[calc(100vh-2rem)] flex-col overflow-hidden border-none bg-popover p-0 sm:max-h-[720px] sm:max-w-2xl`,children:v})})}function Y(e,t){let n=e?.trim();return n?{value:n,source:`override`}:{value:t?.trim()||R(`agentsDetailsUnsetValue`),source:`default`}}function be(e,t){return typeof e==`number`?{value:J.format(e),source:`override`}:{value:typeof t==`number`?J.format(t):R(`agentsDetailsUnsetValue`),source:`default`}}function xe(e){let{agent:t,defaults:n,runtimeOptions:r,defaultRuntime:i,defaultRuntimeLabel:a}=e,o=t.runtime?.trim()||t.engine?.trim();if(o)return{value:Se(o,r,a),source:`override`};let s=n?.engine?.trim()||i;return{value:s?Se(s,r,a):a,source:`default`}}function Se(e,t,n){let r=f(e);return r?t.find(e=>e.value===r)?.label??w(r):n}function Ce(e,t){return we(e)?{value:JSON.stringify(e,null,2),source:`override`}:{value:we(t)?JSON.stringify(t,null,2):R(`agentsDetailsUnsetValue`),source:`default`}}function we(e){return!!(e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length>0)}function X(e){let{icon:t,title:n,children:r}=e;return(0,q.jsxs)(`section`,{className:`space-y-2 border-t border-border/60 pt-3 first:border-t-0 first:pt-0`,children:[(0,q.jsxs)(`h3`,{className:`flex items-center gap-1.5 text-xs font-semibold leading-5 text-foreground`,children:[(0,q.jsx)(t,{className:`h-3.5 w-3.5 text-muted-foreground`}),n]}),(0,q.jsx)(`dl`,{className:`grid min-w-0 gap-y-2.5 pl-5`,children:r})]})}function Z(e){let{label:t,value:n,source:r,mono:i=!1,prewrap:a=!1}=e,s=a&&n.trim().startsWith(`{`),c=i&&(!a||s);return(0,q.jsxs)(`div`,{className:o(`grid min-w-0 grid-cols-[minmax(0,30%)_minmax(0,1fr)] items-baseline gap-x-3 gap-y-1`),children:[(0,q.jsx)(`dt`,{className:`flex min-w-0 items-baseline leading-5`,children:(0,q.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:t})}),(0,q.jsxs)(`dd`,{className:o(`min-w-0 break-words text-xs leading-5 text-foreground`,s?`max-h-28 overflow-auto whitespace-pre-wrap rounded bg-muted/50 px-2 py-1.5 text-left`:``),children:[(0,q.jsx)(`span`,{className:c?`font-mono`:void 0,children:n}),r?(0,q.jsx)(Te,{source:r}):null]})]})}function Te({source:e}){return(0,q.jsxs)(`span`,{className:o(`ml-1 whitespace-nowrap text-xs font-normal leading-5`,e===`override`?`text-blue-500`:`text-muted-foreground`),children:[`(`,R(e===`override`?`agentsDetailsAgentOverride`:`agentsDetailsInheritedDefault`),`)`]})}function Ee({form:e,disabled:t=!1,onChange:n}){return(0,q.jsxs)(`details`,{className:`group rounded-2xl border border-border bg-card`,children:[(0,q.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center justify-between gap-3 px-4 py-3 text-sm font-semibold text-foreground [&::-webkit-details-marker]:hidden`,children:[(0,q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(I,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(`span`,{className:`truncate`,children:R(`agentsAdvancedConfigToggle`)})]}),(0,q.jsx)(P,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180`})]}),(0,q.jsxs)(`div`,{className:`space-y-4 border-t border-border/60 px-4 py-4`,children:[(0,q.jsx)(`p`,{className:`text-xs leading-5 text-muted-foreground`,children:R(`agentsAdvancedConfigDescription`)}),(0,q.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:(0,q.jsx)(De,{label:R(`agentsAdvancedContextTokensLabel`),value:e.contextTokens,min:1e3,step:1e3,disabled:t,onChange:e=>n({contextTokens:e})})})]})]})}function De(e){let{label:t,value:r,min:i,step:a,disabled:o,onChange:s}=e;return(0,q.jsxs)(`label`,{className:`space-y-2 text-sm font-medium text-foreground`,children:[(0,q.jsx)(`span`,{children:t}),(0,q.jsx)(n,{type:`number`,min:i,step:a,value:r,disabled:o,placeholder:R(`agentsAdvancedInheritPlaceholder`),"aria-label":t,onChange:e=>s(e.target.value)})]})}function Oe(e){return{displayName:e.displayName??``,description:e.description??``,avatar:e.avatar??``,model:e.model??``,runtime:e.runtime??e.engine??``,contextTokens:ke(e.contextTokens)}}function ke(e){return typeof e==`number`?String(e):``}var Q=e(c(),1);function Ae(e){let{runtimeOptions:t,currentRuntime:n}=e,r=n.trim();if(!r)return t;let i=f(r);return t.some(e=>e.value===i)?t:[...t,{value:i,label:w(i),icon:null,ready:!1,reason:`unavailable`,reasonMessage:null,supportedModels:void 0,recommendedModel:null,cta:null}].sort((e,t)=>e.value===`native`?-1:t.value===`native`?1:e.value.localeCompare(t.value))}function je({value:e,disabled:t=!1,runtimeOptions:n,defaultRuntime:r,onChange:i}){let a=e.trim()?f(e):``,o=Ae({runtimeOptions:n,currentRuntime:e}),s=o.find(e=>e.value===a)??null,c=s?.reasonMessage?.trim()||(s?.ready===!1?R(`agentsRuntimeUnavailableHelp`):``);return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(me,{value:a||r,onValueChange:e=>i(e===r?``:e),disabled:t,children:[(0,q.jsx)(de,{"aria-label":R(`agentsCardRuntimeLabel`),className:`rounded-xl`,children:(0,q.jsx)(ue,{placeholder:R(`agentsRuntimeSelectPlaceholder`)})}),(0,q.jsx)(fe,{className:`rounded-xl`,children:o.map(e=>(0,q.jsx)(pe,{value:e.value,disabled:e.ready===!1&&e.value!==a,className:`rounded-lg`,children:e.label},e.value))})]}),c?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:c}):null]})}function Me({agent:e,pending:t,providerCatalog:n,runtimeOptions:r,defaultRuntime:i,onOpenChange:a,onSubmit:o}){return(0,q.jsx)(W,{open:e!==null,onOpenChange:a,children:e?(0,q.jsx)(Ne,{agent:e,pending:t,providerCatalog:n,runtimeOptions:r,defaultRuntime:i,onOpenChange:a,onSubmit:o},e.id):null})}function Ne(e){let{agent:t,pending:r,providerCatalog:i,runtimeOptions:o,defaultRuntime:s,onOpenChange:c,onSubmit:l}=e,[u,d]=(0,Q.useState)(Oe(t));return(0,q.jsxs)(V,{className:`flex max-h-[calc(100vh-2rem)] flex-col overflow-hidden border-none bg-popover p-0 sm:max-h-[760px] sm:max-w-xl`,children:[(0,q.jsx)(`div`,{className:`shrink-0 border-b border-border px-6 py-6`,children:(0,q.jsxs)(z,{className:`text-left`,children:[(0,q.jsx)(H,{children:R(`agentsEditDialogTitle`)}),(0,q.jsx)(U,{children:R(`agentsEditDialogDescription`)})]})}),(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-6 py-6`,children:(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsx)(b,{tone:`warning`,title:R(`agentsEditHomeReadonly`),description:R(`agentsEditHomeReadonlyHint`),children:(0,q.jsx)(`div`,{className:`break-all text-sm text-amber-950`,children:t.workspace??`-`})}),(0,q.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,q.jsx)(n,{value:u.displayName,onChange:e=>d(t=>({...t,displayName:e.target.value})),placeholder:R(`agentsFormNamePlaceholder`)}),(0,q.jsx)(C,{value:u.description,onChange:e=>d(t=>({...t,description:e.target.value})),placeholder:R(`agentsFormDescriptionPlaceholder`),rows:4,className:`md:col-span-2`}),(0,q.jsx)(n,{value:u.avatar,onChange:e=>d(t=>({...t,avatar:e.target.value})),placeholder:R(`agentsFormAvatarPlaceholder`)}),(0,q.jsx)(F,{value:u.model,onChange:e=>d(t=>({...t,model:e})),providerCatalog:i,disabled:r,className:`md:col-span-2`}),(0,q.jsx)(je,{value:u.runtime,onChange:e=>d(t=>({...t,runtime:e})),runtimeOptions:o,defaultRuntime:s,disabled:r})]}),(0,q.jsx)(Ee,{form:u,disabled:r,onChange:e=>d(t=>({...t,...e}))})]})}),(0,q.jsxs)(B,{className:`shrink-0 border-t border-border px-6 py-5`,children:[(0,q.jsx)(a,{type:`button`,variant:`ghost`,onClick:()=>c(!1),disabled:r,children:R(`cancel`)}),(0,q.jsxs)(a,{type:`button`,variant:`primary`,className:`rounded-2xl px-5`,onClick:()=>l(t.id,u),disabled:r,children:[(0,q.jsx)(D,{className:`mr-2 h-4 w-4`}),R(`agentsEditSaveAction`)]})]})]})}var Pe=`请直接创建一个默认示例 Agent,不要问我问题。创建完成后,简单告诉我它能做什么。`;function Fe(e){let t=e.trim();if(!t)return null;let n=Number(t);if(!Number.isFinite(n))throw Error(R(`agentsAdvancedInvalidNumberError`));return Math.trunc(n)}function Ie(e){return{displayName:e.displayName,description:e.description,avatar:e.avatar,model:e.model,...e.runtime.trim()?{runtime:e.runtime.trim()}:{runtime:``},contextTokens:Fe(e.contextTokens)}}function $(e){let{icon:t,label:n,disabled:r=!1,destructive:i=!1,onClick:a}=e;return(0,q.jsxs)(`button`,{type:`button`,className:o(O,i?k.destructive:`text-foreground ${k.item}`),onClick:a,disabled:r,children:[(0,q.jsx)(t,{className:`h-4 w-4 shrink-0`}),(0,q.jsx)(`span`,{children:n})]})}function Le(e){let{agent:t,runtimeOptions:n,defaultRuntimeLabel:r,updatePending:i,deletePending:o,onStartChat:s,onView:c,onEdit:l,onDelete:d}=e,[m,h]=(0,Q.useState)(!1),g=t.runtime?.trim()||t.engine?.trim()||``,_=g?n.find(e=>e.value===f(g))?.label??w(g):r;return(0,q.jsx)(K,{className:`group overflow-hidden border border-border bg-card shadow-none transition-colors duration-200 hover:border-border/80`,children:(0,q.jsxs)(G,{className:`relative flex h-full flex-col gap-3 px-3.5 py-3.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2.5 pr-16`,children:[(0,q.jsx)(p,{agentId:t.id,displayName:t.displayName,avatarUrl:t.avatarUrl,className:`h-9 w-9 shrink-0`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:t.displayName?.trim()||t.id}),t.builtIn?(0,q.jsxs)(le,{tone:`warning`,className:`h-5 gap-1 border-amber-200 bg-amber-50 px-1.5 text-[10px] text-amber-700`,children:[(0,q.jsx)(u,{className:`h-3 w-3`}),R(`agentsCardBuiltInTag`)]}):null]}),(0,q.jsxs)(`div`,{className:`truncate text-xs text-muted-foreground`,children:[`@`,t.id]})]})]}),(0,q.jsxs)(`div`,{className:`absolute right-2.5 top-2.5 flex items-center gap-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100`,children:[(0,q.jsx)(a,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-lg text-muted-foreground hover:text-foreground`,"aria-label":R(`agentsCardStartChat`),title:R(`agentsCardStartChat`),onClick:s,children:(0,q.jsx)(T,{className:`h-4 w-4`})}),(0,q.jsxs)(ce,{open:m,onOpenChange:h,children:[(0,q.jsx)(ae,{asChild:!0,children:(0,q.jsx)(a,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-lg text-muted-foreground hover:text-foreground`,"aria-label":R(`chatSessionMoreActions`),title:R(`chatSessionMoreActions`),children:(0,q.jsx)(j,{className:`h-4 w-4`})})}),(0,q.jsxs)(oe,{align:`end`,variant:`menu`,children:[(0,q.jsx)($,{icon:re,label:R(`agentsViewDetailsAction`),onClick:()=>{h(!1),c()}}),(0,q.jsx)($,{icon:D,label:R(`agentsEditAction`),onClick:()=>{h(!1),l()},disabled:i}),t.builtIn?null:(0,q.jsx)($,{icon:L,label:R(`agentsRemoveAction`),onClick:()=>{h(!1),d()},disabled:o,destructive:!0}),(0,q.jsx)(`div`,{className:`my-1 h-px bg-border`}),(0,q.jsx)(v,{page:x(`agent`,t.id,t.displayName||t.id),onSelect:()=>h(!1)})]})]})]}),(0,q.jsx)(`p`,{className:`line-clamp-2 min-h-10 text-sm leading-5 text-muted-foreground`,children:t.description?.trim()||(t.builtIn?R(`agentsCardBuiltInSummary`):R(`agentsCardCustomSummary`))}),(0,q.jsxs)(`div`,{className:`mt-auto grid gap-2 border-t border-border/60 pt-2 text-xs text-muted-foreground`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(A,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground/60`}),(0,q.jsx)(`span`,{className:`truncate`,children:_})]}),(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(S,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground/60`}),(0,q.jsx)(`span`,{className:`truncate`,children:t.workspace??`-`})]})]})]})})}function Re({resourceId:e}={}){let n=ee(),o=l(),s=_(),c=ne(),u=_e(),p=ge(),v=he(),y=te(),b=h(),S=d(),[C,T]=(0,Q.useState)(null),E=(0,Q.useMemo)(()=>c.data?.agents??[],[c.data?.agents]),D=(0,Q.useMemo)(()=>[...E].sort((e,t)=>Number(!!t.builtIn)-Number(!!e.builtIn)||e.id.localeCompare(t.id)),[E]),O=(0,Q.useMemo)(()=>se({config:u.data,providersView:p.data,templatesView:v.data,onlyConfigured:!0}),[u.data,p.data,v.data]),k=(0,Q.useMemo)(()=>g(y.data?.options??[]),[y.data?.options]),A=(0,Q.useMemo)(()=>f(y.data?.defaultType??`native`),[y.data?.defaultType]),j=(0,Q.useMemo)(()=>k.find(e=>e.value===A)?.label??w(A),[A,k]),M=u.data?.agents.defaults,P=e=>{n.pageResourceManager.open(x(`agent`,e.id,e.displayName||e.id),`default`,o)},F=e=>{T(e)},re=async(e,t)=>{let n;try{n=Ie(t)}catch(e){i.error(e instanceof Error?e.message:R(`agentsAdvancedParseFailed`));return}await b.mutateAsync({agentId:e,data:n}),T(null)},I=e=>{s.chatSessionListManager.startAgentDraftChat(e.id,m(e,A))},L=()=>{s.chatSessionListManager.startAgentDraftChat(`main`,A,Pe)},z=(0,q.jsx)(Me,{agent:C,pending:b.isPending,providerCatalog:O,runtimeOptions:k,defaultRuntime:A,onOpenChange:e=>{!e&&!b.isPending&&T(null)},onSubmit:re});if(e){let t=E.find(t=>t.id===e)??null;return c.isPending?(0,q.jsx)(`p`,{role:`status`,className:`p-4`,children:R(`loading`)}):c.isError?(0,q.jsxs)(`div`,{className:`p-4`,children:[(0,q.jsx)(`p`,{role:`alert`,children:R(`resourceLoadFailed`)}),(0,q.jsx)(`button`,{onClick:()=>void c.refetch(),children:R(`resourceRetry`)})]}):t?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ye,{embedded:!0,agent:t,defaults:M,runtimeOptions:k,defaultRuntime:A,defaultRuntimeLabel:j,onOpenChange:()=>{},onEdit:F,onChat:I}),z]}):(0,q.jsx)(`p`,{role:`alert`,className:`p-4`,children:R(c.isError?`resourceLoadFailed`:`resourceNotFound`)})}return(0,q.jsxs)(t,{className:`space-y-6`,children:[(0,q.jsx)(r,{mobileTitleInShell:!0,headingLevel:1,title:R(`agentsHeroEyebrow`),description:R(`agentsHeroDescription`),actions:(0,q.jsxs)(a,{type:`button`,variant:`primary`,className:`h-9 shrink-0 rounded-xl px-4 text-sm font-semibold`,onClick:L,children:[(0,q.jsx)(ie,{className:`mr-2 h-4 w-4`}),R(`agentsCreateButton`)]})}),(0,q.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2 xl:grid-cols-3`,children:c.isLoading?(0,q.jsx)(K,{className:`md:col-span-2 xl:col-span-3 border-dashed border-border bg-card/70`,children:(0,q.jsx)(G,{className:`py-14 text-center text-sm text-muted-foreground`,children:R(`agentsLoading`)})}):D.length===0?(0,q.jsx)(K,{className:`md:col-span-2 xl:col-span-3 overflow-hidden border-dashed border-border bg-gradient-subtle`,children:(0,q.jsxs)(G,{className:`flex min-h-[240px] flex-col items-center justify-center px-6 py-14 text-center`,children:[(0,q.jsx)(`div`,{className:`mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-card/80 shadow-[0_18px_44px_rgba(0,0,0,0.08)]`,children:(0,q.jsx)(N,{className:`h-8 w-8 text-warning`})}),(0,q.jsx)(`div`,{className:`text-lg font-semibold text-foreground`,children:R(`agentsEmpty`)}),(0,q.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-muted-foreground`,children:R(`agentsEmptyDescription`)}),(0,q.jsxs)(a,{type:`button`,variant:`primary`,className:`mt-5 rounded-2xl px-5`,onClick:L,children:[(0,q.jsx)(ie,{className:`mr-2 h-4 w-4`}),R(`agentsCreateButton`)]})]})}):D.map(e=>(0,q.jsx)(Le,{agent:e,runtimeOptions:k,defaultRuntimeLabel:j,updatePending:b.isPending,deletePending:S.isPending,onStartChat:()=>I(e),onView:()=>P(e),onEdit:()=>F(e),onDelete:()=>S.mutate({agentId:e.id})},e.id))}),z]})}export{Re as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./agents-BdeFtIOV.js";export{e as AgentsPage};
@@ -1,4 +1,4 @@
1
- import{i as e,t}from"./chunk-DF37yw5_.js";import{l as n,s as r}from"./i18n-IGQbjBqS.js";var i=t((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray,S=Object.prototype.hasOwnProperty,C={current:null},w={key:!0,ref:!0,__self:!0,__source:!0};function T(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)S.call(n,i)&&!w.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)a[i]===void 0&&(a[i]=c[i]);return{$$typeof:t,type:e,key:o,ref:s,props:a,_owner:C.current}}function ee(e,n){return{$$typeof:t,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function te(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function E(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ne=/\/+/g;function re(e,t){return typeof e==`object`&&e&&e.key!=null?E(``+e.key):t.toString(36)}function ie(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0}}if(c)return c=e,o=o(c),e=a===``?`.`+re(c,0):a,x(o)?(i=``,e!=null&&(i=e.replace(ne,`$&/`)+`/`),ie(o,r,i,``,function(e){return e})):o!=null&&(te(o)&&(o=ee(o,i+(!o.key||c&&c.key===o.key?``:(``+o.key).replace(ne,`$&/`)+`/`)+e)),r.push(o)),1;if(c=0,a=a===``?`.`:a+`:`,x(e))for(var l=0;l<e.length;l++){s=e[l];var u=a+re(s,l);c+=ie(s,r,i,u,o)}else if(u=p(e),typeof u==`function`)for(e=u.call(e),l=0;!(s=e.next()).done;)s=s.value,u=a+re(s,l++),c+=ie(s,r,i,u,o);else if(s===`object`)throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`);return c}function D(e,t,n){if(e==null)return e;var r=[],i=0;return ie(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function O(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var k={current:null},A={transition:null},ae={ReactCurrentDispatcher:k,ReactCurrentBatchConfig:A,ReactCurrentOwner:C};function j(){throw Error(`act(...) is not supported in production builds of React.`)}e.Children={map:D,forEach:function(e,t,n){D(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return D(e,function(){t++}),t},toArray:function(e){return D(e,function(e){return e})||[]},only:function(e){if(!te(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}},e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ae,e.act=j,e.cloneElement=function(e,n,r){if(e==null)throw Error(`React.cloneElement(...): The argument must be a React element, but you passed `+e+`.`);var i=h({},e.props),a=e.key,o=e.ref,s=e._owner;if(n!=null){if(n.ref!==void 0&&(o=n.ref,s=C.current),n.key!==void 0&&(a=``+n.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in n)S.call(n,l)&&!w.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}return{$$typeof:t,type:e.type,key:a,ref:o,props:i,_owner:s}},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:o,_context:e},e.Consumer=e},e.createElement=T,e.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=te,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:O}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=A.transition;A.transition={};try{e()}finally{A.transition=t}},e.unstable_act=j,e.useCallback=function(e,t){return k.current.useCallback(e,t)},e.useContext=function(e){return k.current.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e){return k.current.useDeferredValue(e)},e.useEffect=function(e,t){return k.current.useEffect(e,t)},e.useId=function(){return k.current.useId()},e.useImperativeHandle=function(e,t,n){return k.current.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return k.current.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return k.current.useLayoutEffect(e,t)},e.useMemo=function(e,t){return k.current.useMemo(e,t)},e.useReducer=function(e,t,n){return k.current.useReducer(e,t,n)},e.useRef=function(e){return k.current.useRef(e)},e.useState=function(e){return k.current.useState(e)},e.useSyncExternalStore=function(e,t,n){return k.current.useSyncExternalStore(e,t,n)},e.useTransition=function(){return k.current.useTransition()},e.version=`18.3.1`})),a=t(((e,t)=>{t.exports=i()})),o=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;typeof navigator<`u`&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m)if(n(c)!==null)m=!0,D(x);else{var t=n(l);t!==null&&O(b,t.startTime-e)}}function x(t,i){m=!1,h&&(h=!1,_(w),w=-1),p=!0;var a=f;try{for(y(i),d=n(c);d!==null&&(!(d.expirationTime>i)||t&&!te());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=i);i=e.unstable_now(),typeof s==`function`?d.callback=s:d===n(c)&&r(c),y(i)}else r(c);d=n(c)}if(d!==null)var u=!0;else{var g=n(l);g!==null&&O(b,g.startTime-i),u=!1}return u}finally{d=null,f=a,p=!1}}var S=!1,C=null,w=-1,T=5,ee=-1;function te(){return!(e.unstable_now()-ee<T)}function E(){if(C!==null){var t=e.unstable_now();ee=t;var n=!0;try{n=C(!0,t)}finally{n?ne():(S=!1,C=null)}}else S=!1}var ne;if(typeof v==`function`)ne=function(){v(E)};else if(typeof MessageChannel<`u`){var re=new MessageChannel,ie=re.port2;re.port1.onmessage=E,ne=function(){ie.postMessage(null)}}else ne=function(){g(E,0)};function D(e){C=e,S||(S=!0,ne())}function O(t,n){w=g(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){m||p||(m=!0,D(x))},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):T=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(w),w=-1):h=!0,O(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,D(x))),r},e.unstable_shouldYield=te,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),s=t(((e,t)=>{t.exports=o()})),c=t((e=>{var t=a(),n=s();function r(e){for(var t=`https://reactjs.org/docs/error-decoder.html?invariant=`+e,n=1;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n]);return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}var i=new Set,o={};function c(e,t){l(e,t),l(e+`Capture`,t)}function l(e,t){for(o[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function h(e){return d.call(m,e)?!0:d.call(p,e)?!1:f.test(e)?m[e]=!0:(p[e]=!0,!1)}function g(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case`function`:case`symbol`:return!0;case`boolean`:return r?!1:n===null?(e=e.toLowerCase().slice(0,5),e!==`data-`&&e!==`aria-`):!n.acceptsBooleans;default:return!1}}function _(e,t,n,r){if(t==null||g(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function v(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var y={};`children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style`.split(` `).forEach(function(e){y[e]=new v(e,0,!1,e,null,!1,!1)}),[[`acceptCharset`,`accept-charset`],[`className`,`class`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`]].forEach(function(e){var t=e[0];y[t]=new v(t,1,!1,e[1],null,!1,!1)}),[`contentEditable`,`draggable`,`spellCheck`,`value`].forEach(function(e){y[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)}),[`autoReverse`,`externalResourcesRequired`,`focusable`,`preserveAlpha`].forEach(function(e){y[e]=new v(e,2,!1,e,null,!1,!1)}),`allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope`.split(` `).forEach(function(e){y[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)}),[`checked`,`multiple`,`muted`,`selected`].forEach(function(e){y[e]=new v(e,3,!0,e,null,!1,!1)}),[`capture`,`download`].forEach(function(e){y[e]=new v(e,4,!1,e,null,!1,!1)}),[`cols`,`rows`,`size`,`span`].forEach(function(e){y[e]=new v(e,6,!1,e,null,!1,!1)}),[`rowSpan`,`start`].forEach(function(e){y[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function x(e){return e[1].toUpperCase()}`accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,null,!1,!1)}),`xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/1999/xlink`,!1,!1)}),[`xml:base`,`xml:lang`,`xml:space`].forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/XML/1998/namespace`,!1,!1)}),[`tabIndex`,`crossOrigin`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)}),y.xlinkHref=new v(`xlinkHref`,1,!1,`xlink:href`,`http://www.w3.org/1999/xlink`,!0,!1),[`src`,`href`,`action`,`formAction`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)});function S(e,t,n,r){var i=y.hasOwnProperty(t)?y[t]:null;(i===null?r||!(2<t.length)||t[0]!==`o`&&t[0]!==`O`||t[1]!==`n`&&t[1]!==`N`:i.type!==0)&&(_(t,n,i,r)&&(n=null),r||i===null?h(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,``+n)):i.mustUseProperty?e[i.propertyName]=n===null?i.type===3?!1:``:n:(t=i.attributeName,r=i.attributeNamespace,n===null?e.removeAttribute(t):(i=i.type,n=i===3||i===4&&!0===n?``:``+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var C=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for(`react.element`),T=Symbol.for(`react.portal`),ee=Symbol.for(`react.fragment`),te=Symbol.for(`react.strict_mode`),E=Symbol.for(`react.profiler`),ne=Symbol.for(`react.provider`),re=Symbol.for(`react.context`),ie=Symbol.for(`react.forward_ref`),D=Symbol.for(`react.suspense`),O=Symbol.for(`react.suspense_list`),k=Symbol.for(`react.memo`),A=Symbol.for(`react.lazy`),ae=Symbol.for(`react.offscreen`),j=Symbol.iterator;function oe(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var M=Object.assign,se;function ce(e){if(se===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);se=t&&t[1]||``}return`
1
+ import{i as e,t}from"./chunk-DF37yw5_.js";import{l as n,s as r}from"./i18n-ByVUrt9w.js";var i=t((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray,S=Object.prototype.hasOwnProperty,C={current:null},w={key:!0,ref:!0,__self:!0,__source:!0};function T(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)S.call(n,i)&&!w.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)a[i]===void 0&&(a[i]=c[i]);return{$$typeof:t,type:e,key:o,ref:s,props:a,_owner:C.current}}function ee(e,n){return{$$typeof:t,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function te(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function E(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ne=/\/+/g;function re(e,t){return typeof e==`object`&&e&&e.key!=null?E(``+e.key):t.toString(36)}function ie(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0}}if(c)return c=e,o=o(c),e=a===``?`.`+re(c,0):a,x(o)?(i=``,e!=null&&(i=e.replace(ne,`$&/`)+`/`),ie(o,r,i,``,function(e){return e})):o!=null&&(te(o)&&(o=ee(o,i+(!o.key||c&&c.key===o.key?``:(``+o.key).replace(ne,`$&/`)+`/`)+e)),r.push(o)),1;if(c=0,a=a===``?`.`:a+`:`,x(e))for(var l=0;l<e.length;l++){s=e[l];var u=a+re(s,l);c+=ie(s,r,i,u,o)}else if(u=p(e),typeof u==`function`)for(e=u.call(e),l=0;!(s=e.next()).done;)s=s.value,u=a+re(s,l++),c+=ie(s,r,i,u,o);else if(s===`object`)throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`);return c}function D(e,t,n){if(e==null)return e;var r=[],i=0;return ie(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function O(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var k={current:null},A={transition:null},ae={ReactCurrentDispatcher:k,ReactCurrentBatchConfig:A,ReactCurrentOwner:C};function j(){throw Error(`act(...) is not supported in production builds of React.`)}e.Children={map:D,forEach:function(e,t,n){D(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return D(e,function(){t++}),t},toArray:function(e){return D(e,function(e){return e})||[]},only:function(e){if(!te(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}},e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ae,e.act=j,e.cloneElement=function(e,n,r){if(e==null)throw Error(`React.cloneElement(...): The argument must be a React element, but you passed `+e+`.`);var i=h({},e.props),a=e.key,o=e.ref,s=e._owner;if(n!=null){if(n.ref!==void 0&&(o=n.ref,s=C.current),n.key!==void 0&&(a=``+n.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in n)S.call(n,l)&&!w.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}return{$$typeof:t,type:e.type,key:a,ref:o,props:i,_owner:s}},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:o,_context:e},e.Consumer=e},e.createElement=T,e.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=te,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:O}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=A.transition;A.transition={};try{e()}finally{A.transition=t}},e.unstable_act=j,e.useCallback=function(e,t){return k.current.useCallback(e,t)},e.useContext=function(e){return k.current.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e){return k.current.useDeferredValue(e)},e.useEffect=function(e,t){return k.current.useEffect(e,t)},e.useId=function(){return k.current.useId()},e.useImperativeHandle=function(e,t,n){return k.current.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return k.current.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return k.current.useLayoutEffect(e,t)},e.useMemo=function(e,t){return k.current.useMemo(e,t)},e.useReducer=function(e,t,n){return k.current.useReducer(e,t,n)},e.useRef=function(e){return k.current.useRef(e)},e.useState=function(e){return k.current.useState(e)},e.useSyncExternalStore=function(e,t,n){return k.current.useSyncExternalStore(e,t,n)},e.useTransition=function(){return k.current.useTransition()},e.version=`18.3.1`})),a=t(((e,t)=>{t.exports=i()})),o=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;typeof navigator<`u`&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m)if(n(c)!==null)m=!0,D(x);else{var t=n(l);t!==null&&O(b,t.startTime-e)}}function x(t,i){m=!1,h&&(h=!1,_(w),w=-1),p=!0;var a=f;try{for(y(i),d=n(c);d!==null&&(!(d.expirationTime>i)||t&&!te());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=i);i=e.unstable_now(),typeof s==`function`?d.callback=s:d===n(c)&&r(c),y(i)}else r(c);d=n(c)}if(d!==null)var u=!0;else{var g=n(l);g!==null&&O(b,g.startTime-i),u=!1}return u}finally{d=null,f=a,p=!1}}var S=!1,C=null,w=-1,T=5,ee=-1;function te(){return!(e.unstable_now()-ee<T)}function E(){if(C!==null){var t=e.unstable_now();ee=t;var n=!0;try{n=C(!0,t)}finally{n?ne():(S=!1,C=null)}}else S=!1}var ne;if(typeof v==`function`)ne=function(){v(E)};else if(typeof MessageChannel<`u`){var re=new MessageChannel,ie=re.port2;re.port1.onmessage=E,ne=function(){ie.postMessage(null)}}else ne=function(){g(E,0)};function D(e){C=e,S||(S=!0,ne())}function O(t,n){w=g(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){m||p||(m=!0,D(x))},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):T=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(w),w=-1):h=!0,O(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,D(x))),r},e.unstable_shouldYield=te,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),s=t(((e,t)=>{t.exports=o()})),c=t((e=>{var t=a(),n=s();function r(e){for(var t=`https://reactjs.org/docs/error-decoder.html?invariant=`+e,n=1;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n]);return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}var i=new Set,o={};function c(e,t){l(e,t),l(e+`Capture`,t)}function l(e,t){for(o[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function h(e){return d.call(m,e)?!0:d.call(p,e)?!1:f.test(e)?m[e]=!0:(p[e]=!0,!1)}function g(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case`function`:case`symbol`:return!0;case`boolean`:return r?!1:n===null?(e=e.toLowerCase().slice(0,5),e!==`data-`&&e!==`aria-`):!n.acceptsBooleans;default:return!1}}function _(e,t,n,r){if(t==null||g(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function v(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var y={};`children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style`.split(` `).forEach(function(e){y[e]=new v(e,0,!1,e,null,!1,!1)}),[[`acceptCharset`,`accept-charset`],[`className`,`class`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`]].forEach(function(e){var t=e[0];y[t]=new v(t,1,!1,e[1],null,!1,!1)}),[`contentEditable`,`draggable`,`spellCheck`,`value`].forEach(function(e){y[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)}),[`autoReverse`,`externalResourcesRequired`,`focusable`,`preserveAlpha`].forEach(function(e){y[e]=new v(e,2,!1,e,null,!1,!1)}),`allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope`.split(` `).forEach(function(e){y[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)}),[`checked`,`multiple`,`muted`,`selected`].forEach(function(e){y[e]=new v(e,3,!0,e,null,!1,!1)}),[`capture`,`download`].forEach(function(e){y[e]=new v(e,4,!1,e,null,!1,!1)}),[`cols`,`rows`,`size`,`span`].forEach(function(e){y[e]=new v(e,6,!1,e,null,!1,!1)}),[`rowSpan`,`start`].forEach(function(e){y[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function x(e){return e[1].toUpperCase()}`accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,null,!1,!1)}),`xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/1999/xlink`,!1,!1)}),[`xml:base`,`xml:lang`,`xml:space`].forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/XML/1998/namespace`,!1,!1)}),[`tabIndex`,`crossOrigin`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)}),y.xlinkHref=new v(`xlinkHref`,1,!1,`xlink:href`,`http://www.w3.org/1999/xlink`,!0,!1),[`src`,`href`,`action`,`formAction`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)});function S(e,t,n,r){var i=y.hasOwnProperty(t)?y[t]:null;(i===null?r||!(2<t.length)||t[0]!==`o`&&t[0]!==`O`||t[1]!==`n`&&t[1]!==`N`:i.type!==0)&&(_(t,n,i,r)&&(n=null),r||i===null?h(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,``+n)):i.mustUseProperty?e[i.propertyName]=n===null?i.type===3?!1:``:n:(t=i.attributeName,r=i.attributeNamespace,n===null?e.removeAttribute(t):(i=i.type,n=i===3||i===4&&!0===n?``:``+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var C=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for(`react.element`),T=Symbol.for(`react.portal`),ee=Symbol.for(`react.fragment`),te=Symbol.for(`react.strict_mode`),E=Symbol.for(`react.profiler`),ne=Symbol.for(`react.provider`),re=Symbol.for(`react.context`),ie=Symbol.for(`react.forward_ref`),D=Symbol.for(`react.suspense`),O=Symbol.for(`react.suspense_list`),k=Symbol.for(`react.memo`),A=Symbol.for(`react.lazy`),ae=Symbol.for(`react.offscreen`),j=Symbol.iterator;function oe(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var M=Object.assign,se;function ce(e){if(se===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);se=t&&t[1]||``}return`
2
2
  `+se+e}var le=!1;function ue(e,t){if(!e||le)return``;le=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,`props`,{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&typeof t.stack==`string`){for(var i=t.stack.split(`
3
3
  `),a=r.stack.split(`
4
4
  `),o=i.length-1,s=a.length-1;1<=o&&0<=s&&i[o]!==a[s];)s--;for(;1<=o&&0<=s;o--,s--)if(i[o]!==a[s]){if(o!==1||s!==1)do if(o--,s--,0>s||i[o]!==a[s]){var c=`
@@ -11,7 +11,7 @@ Error generating stack: `+e.message+`
11
11
  `,`
12
12
  `).split(`
13
13
 
14
- `),r=n.pop()??``;for(let e of n){let n=Mr(e);if(n?.event!==`ncp-event`)continue;let r=Nr(n.data);r&&t(r)}return r}},Fr=class{constructor(e,t){this.requestService=e,this.baseUrl=t}list=async()=>(await this.requestService.get(`/api/agents`)).agents;create=async e=>await this.requestService.post(`/api/agents`,e);update=async(e,t)=>await this.requestService.put(`/api/agents/${encodeURIComponent(e)}`,t);delete=async e=>await this.requestService.delete(`/api/agents/${encodeURIComponent(e)}`);resolveAvatarUrl=e=>Or(this.baseUrl,`/api/agents/${encodeURIComponent(e)}/avatar`)},Ir=class{constructor(e){this.requestService=e}fetchMeta=async()=>await this.requestService.get(`/api/app/meta`);fetchBootstrapStatus=async(e={})=>await this.requestService.get(`/api/runtime/bootstrap-status`,e)},Lr=class{constructor(e){this.requestService=e}list=async(e={})=>await this.requestService.get(e.includeStorageUsage===!1?`/api/app-packages?includeStorageUsage=false`:`/api/app-packages`);get=async e=>await this.requestService.get(`/api/app-packages/${encodeURIComponent(e)}`);inspectDocumentAccess=async e=>await this.requestService.get(`/api/app-packages/${encodeURIComponent(e)}/document-access`);grantDocumentAccess=async(e,t)=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/document-access/grant`,t);revokeDocumentAccess=async(e,t)=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/document-access/revoke`,{scopeId:t});listOperations=async()=>await this.requestService.get(`/api/app-package-operations`);startInstall=async e=>await this.requestService.post(`/api/app-package-operations/install`,e);startUpdate=async(e,t={})=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/update`,t);startRollback=async(e,t)=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/rollback`,{version:t});startUninstall=async(e,t=!1)=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/uninstall`,{purgeData:t});install=async e=>await this.requestService.post(`/api/app-packages/install`,e);enable=async e=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/enable`);disable=async e=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/disable`);update=async(e,t={})=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/update`,t);rollback=async(e,t)=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/rollback`,{version:t});uninstall=async(e,t=!1)=>await this.requestService.request(`/api/app-packages/${encodeURIComponent(e)}`,{method:`DELETE`,body:{purgeData:t}})},Rr=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/app-data`);deleteRetained=async(e,t)=>await this.requestService.request(`/api/app-data/${encodeURIComponent(e)}`,{method:`DELETE`,body:{confirmAppId:t}})},zr=class{constructor(e){this.requestService=e}fetchStatus=async(e={})=>await this.requestService.get(`/api/auth/status`,{...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}});setup=async e=>await this.requestService.post(`/api/auth/setup`,e);login=async e=>await this.requestService.post(`/api/auth/login`,e);logout=async()=>await this.requestService.post(`/api/auth/logout`,{});updatePassword=async e=>await this.requestService.put(`/api/auth/password`,e);updateEnabled=async e=>await this.requestService.put(`/api/auth/enabled`,e)},Br=class{constructor(e){this.requestService=e}start=async(e,t={})=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/start`,t);poll=async(e,t)=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/poll`,t);connect=async(e,t)=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/connect`,t)},Vr=class{constructor(e){this.requestService=e}listDesktopGrants=async()=>await this.requestService.get(`/api/capability-grants?resourceType=desktop.application`);grantDesktopAccess=async e=>await this.requestService.post(`/api/capability-grants`,e);revokeDesktopAccess=async e=>await this.requestService.request(`/api/capability-grants`,{method:`DELETE`,body:{subject:e.subject,resourceType:e.resource.type,target:e.resource.target,access:e.access}});getDesktopStatus=async()=>await this.requestService.get(`/api/desktop-host/status`);requestDesktopPermissions=async()=>await this.requestService.post(`/api/desktop-host/permissions/request`,{});openDesktopPermissionSettings=async()=>await this.requestService.post(`/api/desktop-host/permissions/open-settings`,{})},Hr=class{constructor(e){this.requestService=e}get=async()=>await this.requestService.get(`/api/feature-controls`)},Ur=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/config`);fetchMeta=async()=>await this.requestService.get(`/api/config/meta`);fetchSchema=async()=>await this.requestService.get(`/api/config/schema`);updateModel=async e=>await this.requestService.put(`/api/config/model`,e);updateSearch=async e=>await this.requestService.put(`/api/config/search`,e);updateChannel=async(e,t)=>await this.requestService.put(`/api/config/channels/${encodeURIComponent(e)}`,t);updateRuntime=async e=>await this.requestService.put(`/api/config/runtime`,e);updateSecrets=async e=>await this.requestService.put(`/api/config/secrets`,e);updateProductAnalytics=async e=>await this.requestService.put(`/api/config/product-analytics`,e);fetchProductAnalyticsStatus=async()=>await this.requestService.get(`/api/config/product-analytics/status`);executeAction=async(e,t={})=>await this.requestService.post(`/api/config/actions/${encodeURIComponent(e)}/execute`,t);fetchChatSessionTypes=async()=>await this.requestService.get(`/api/ncp/session-types`);fetchCronJobs=async(e={})=>await this.requestService.get(`/api/cron`,{query:{all:e.all?`1`:void 0,limit:e.limit,offset:e.offset,query:e.query,status:e.status}});deleteCronJob=async e=>await this.requestService.delete(`/api/cron/${encodeURIComponent(e)}`);setCronJobEnabled=async(e,t)=>await this.requestService.put(`/api/cron/${encodeURIComponent(e)}/enable`,t);runCronJob=async(e,t={})=>await this.requestService.post(`/api/cron/${encodeURIComponent(e)}/run`,t)},Wr=class{constructor(e){this.requestService=e}fetchItems=async e=>await this.requestService.get(`${Gr(e.type)}/items`,{query:Kr(e)});fetchItem=async(e,t)=>await this.requestService.get(`${Gr(t)}/items/${encodeURIComponent(e)}`);fetchSkillContent=async e=>await this.requestService.get(`/api/marketplace/skills/items/${encodeURIComponent(e)}/content`);fetchRecommendations=async(e,t={})=>await this.requestService.get(`${Gr(e)}/recommendations`,{query:{...t.scene?.trim()?{scene:t.scene.trim()}:{},...typeof t.limit==`number`&&Number.isFinite(t.limit)?{limit:Math.max(1,Math.trunc(t.limit))}:{}}});fetchSkillScenes=async()=>await this.requestService.get(`/api/marketplace/skills/scenes`);install=async e=>await this.requestService.post(`${Gr(qr(e.type))}/install`,e);fetchInstalled=async e=>await this.requestService.get(`${Gr(e)}/installed`);manage=async e=>await this.requestService.post(`${Gr(qr(e.type))}/manage`,e)};function Gr(e){return e===`skill`?`/api/marketplace/skills`:`/api/marketplace/mcp`}function Kr(e){let{page:t,pageSize:n,q:r,scene:i,sort:a,tag:o}=e,s={};return r?.trim()&&(s.q=r.trim()),o?.trim()&&(s.tag=o.trim()),i?.trim()&&(s.scene=i.trim()),a&&(s.sort=a),typeof t==`number`&&Number.isFinite(t)&&(s.page=Math.max(1,Math.trunc(t))),typeof n==`number`&&Number.isFinite(n)&&(s.pageSize=Math.max(1,Math.trunc(n))),Object.keys(s).length>0?s:void 0}function qr(e){if(!e)throw Error(`Marketplace request type is required.`);return e}var Jr=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/inbox/deliveries`);get=async e=>await this.requestService.get(this.deliveryPath(e));updateState=async(e,t)=>await this.requestService.request(this.deliveryPath(e),{method:`PATCH`,body:{action:t}});delete=async e=>(await this.requestService.delete(this.deliveryPath(e))).deleted;deliveryPath=e=>`/api/inbox/deliveries/${encodeURIComponent(e)}`},Yr=class{constructor(e){this.requestService=e}fetchItems=async(e={})=>await this.requestService.get(`/api/marketplace/mcp/items`,{query:Xr(e)});fetchInstalled=async()=>await this.requestService.get(`/api/marketplace/mcp/installed`);fetchItem=async e=>await this.requestService.get(`/api/marketplace/mcp/items/${encodeURIComponent(e)}`);fetchContent=async e=>await this.requestService.get(`/api/marketplace/mcp/items/${encodeURIComponent(e)}/content`);fetchRecommendations=async(e={})=>await this.requestService.get(`/api/marketplace/mcp/recommendations`,{query:{...e.scene?.trim()?{scene:e.scene.trim()}:{},...typeof e.limit==`number`&&Number.isFinite(e.limit)?{limit:Math.max(1,Math.trunc(e.limit))}:{}}});install=async e=>await this.requestService.post(`/api/marketplace/mcp/install`,e);manage=async e=>await this.requestService.post(`/api/marketplace/mcp/manage`,e);doctor=async e=>await this.requestService.post(`/api/marketplace/mcp/doctor`,{name:e})};function Xr(e){let{page:t,pageSize:n,q:r,sort:i,tag:a}=e,o={};return r?.trim()&&(o.q=r.trim()),a?.trim()&&(o.tag=a.trim()),i&&(o.sort=i),typeof t==`number`&&Number.isFinite(t)&&(o.page=Math.max(1,Math.trunc(t))),typeof n==`number`&&Number.isFinite(n)&&(o.pageSize=Math.max(1,Math.trunc(n))),Object.keys(o).length>0?o:void 0}var Zr=class{constructor(e){this.requestService=e}testConnection=async e=>await this.requestService.post(`/api/mcp/servers/test`,e);createConnection=async e=>await this.requestService.post(`/api/mcp/servers`,e)},Qr=`x-nextclaw-panel-bridge-session`;function $r(e){return e?{[Qr]:e}:void 0}var ei=class{constructor(e){this.requestService=e}listPanelApps=async()=>await this.requestService.get(`/api/panel-apps`);getPanelApp=async e=>await this.requestService.get(`/api/panel-apps/${encodeURIComponent(e)}`);updatePanelAppPreferences=async(e,t)=>await this.requestService.request(`/api/panel-apps/${encodeURIComponent(e)}/preferences`,{method:`PATCH`,body:t});recordPanelAppOpened=async e=>await this.requestService.post(`/api/panel-apps/${encodeURIComponent(e)}/open`);deletePanelApp=async e=>await this.requestService.delete(`/api/panel-apps/${encodeURIComponent(e)}`);createBridgeSession=async e=>await this.requestService.post(`/api/panel-app-bridge-sessions`,e);deleteBridgeSession=async e=>await this.requestService.delete(`/api/panel-app-bridge-sessions/${encodeURIComponent(e)}`);grantClient=async e=>await this.requestService.post(`/api/panel-app-client-grants/${encodeURIComponent(e)}`,{});revokeClient=async e=>await this.requestService.delete(`/api/panel-app-client-grants/${encodeURIComponent(e)}`);sendAgentMessage=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent/send`,e,{headers:$r(t.bridgeSessionToken)});generateAgentObject=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent/generate-object`,e,{headers:$r(t.bridgeSessionToken)});grantAgentCapability=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent-capabilities/${encodeURIComponent(e)}/grant`,{},{headers:$r(t.bridgeSessionToken)})},ti=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/providers`);listTemplates=async()=>await this.requestService.get(`/api/provider-templates`);listModelCatalog=async()=>await this.requestService.get(`/api/provider-model-catalog`);update=async(e,t)=>await this.requestService.put(`/api/providers/${encodeURIComponent(e)}`,t);create=async(e={})=>await this.requestService.post(`/api/providers`,e);delete=async e=>await this.requestService.delete(`/api/providers/${encodeURIComponent(e)}`);testConnection=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/test`,t);discoverModels=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/models/discover`,t);startAuth=async(e,t={})=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/start`,t);pollAuth=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/poll`,t);importAuthFromCli=async e=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/import-cli`,{})},ni=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/projects`);getAgreement=async e=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/agreement`);listProjectSkills=async e=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/skills`);create=async e=>await this.requestService.post(`/api/projects`,e);addExisting=async e=>await this.requestService.post(`/api/projects/existing`,e);remove=async(e,t)=>await this.requestService.request(`/api/projects/${encodeURIComponent(e)}`,{method:`DELETE`,body:{confirmProjectId:t}});listWork=async(e,t={})=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/work`,{query:t});listRecentWorkArtifacts=async(e,t={})=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/work/artifacts`,{query:t});getWorkSummary=async e=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/work/summary`);getWorkItem=async(e,t)=>await this.requestService.get(ri(e,t));createWorkItem=async(e,t)=>await this.requestService.post(`/api/projects/${encodeURIComponent(e)}/work/items`,t);updateWorkItem=async(e,t,n)=>await this.requestService.patch(ri(e,t),n);deleteWorkItem=async(e,t)=>await this.requestService.delete(ri(e,t));restoreWorkItem=async(e,t)=>await this.requestService.post(`${ri(e,t)}/restore`);listWorkItemActivities=async(e,t,n={})=>await this.requestService.get(`${ri(e,t)}/activities`,{query:n});linkWorkItemArtifact=async(e,t,n)=>await this.requestService.post(`${ri(e,t)}/artifacts`,n);unlinkWorkItemArtifact=async(e,t,n)=>await this.requestService.delete(`${ri(e,t)}/artifacts/${encodeURIComponent(n)}`);listWorkStates=async e=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/work/states`);createWorkState=async(e,t)=>await this.requestService.post(`/api/projects/${encodeURIComponent(e)}/work/states`,t);updateWorkState=async(e,t,n)=>await this.requestService.patch(ii(e,t),n);deleteWorkState=async(e,t,n)=>await this.requestService.request(ii(e,t),{method:`DELETE`,body:{migrateToStateId:n??null}})};function ri(e,t){return`/api/projects/${encodeURIComponent(e)}/work/items/${encodeURIComponent(t)}`}function ii(e,t){return`/api/projects/${encodeURIComponent(e)}/work/states/${encodeURIComponent(t)}`}var ai=class{baseUrl;transport;webSocketFactory;constructor(e){this.options=e,this.baseUrl=e.baseUrl,this.transport=e.transport,this.webSocketFactory=e.webSocketFactory}subscribe=(e,t={})=>{if(this.transport?.subscribe){let t=this.transport.subscribe(e);return{close:()=>{t()}}}let n=null,r=null,i=!1,a=Math.max(200,t.reconnectDelayMs??1e3),o=()=>{r!==null&&(clearTimeout(r),r=null)},s=t=>{e(t)},c=()=>{try{n=this.createSocket(Ar(this.baseUrl,`/ws`))}catch(e){t.onError?.(e),i||(r=setTimeout(c,a));return}n.onopen=()=>{s({type:`connection.open`})},n.onmessage=e=>{let t=this.parseEvent(e.data);t&&s(t)},n.onerror=e=>{t.onError?.(e),s({type:`connection.error`,payload:{message:`WebSocket error`}})},n.onclose=()=>{s({type:`connection.close`}),n=null,i||(o(),r=setTimeout(c,a))}};return c(),{close:()=>{i=!0,o(),n?.close(),n=null}}};createSocket=e=>{if(this.webSocketFactory)return this.webSocketFactory(e);if(typeof globalThis.WebSocket!=`function`)throw Error(`WebSocket is unavailable. Provide webSocketFactory when creating the client.`);return new globalThis.WebSocket(e)};parseEvent=e=>{if(typeof e!=`string`)return null;try{let t=JSON.parse(e);return t&&typeof t==`object`&&`type`in t?t:null}catch{return null}}},oi=class{constructor(e){this.requestService=e}fetchStatus=async()=>await this.requestService.get(`/api/remote/status`);fetchDoctor=async()=>await this.requestService.get(`/api/remote/doctor`);login=async e=>await this.requestService.post(`/api/remote/login`,e);startBrowserAuth=async(e={})=>await this.requestService.post(`/api/remote/auth/start`,e);pollBrowserAuth=async e=>await this.requestService.post(`/api/remote/auth/poll`,e);logout=async()=>await this.requestService.post(`/api/remote/logout`,{});updateAccountProfile=async e=>await this.requestService.put(`/api/remote/account/profile`,e);updateSettings=async e=>await this.requestService.put(`/api/remote/settings`,e);controlService=async e=>await this.requestService.post(`/api/remote/service/${e}`,{})},si=class extends Error{status;code;details;constructor(e){let{code:t,details:n,message:r,status:i}=e;super(r),this.name=`NextClawClientError`,this.status=i,this.code=t,this.details=n}};function V(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function ci(e,t){return V(e)?e[t]:void 0}var li=class{baseUrl;fetchImpl;requestTimeoutMs;defaultHeaders;transport;constructor(e){this.options=e;let{baseUrl:t,fetchImpl:n,headers:r,requestTimeoutMs:i,token:a}=e;this.baseUrl=t,this.fetchImpl=jr(n),this.requestTimeoutMs=Math.max(1e3,i??15e3),this.transport=e.transport,this.defaultHeaders={Accept:`application/json`,...r??{},...a?{Authorization:`Bearer ${a}`}:{}}}request=async(e,t={})=>{let{body:n,headers:r,method:i,query:a,signal:o,timeoutMs:s}=t;if(this.transport)return await this.requestWithTransport(e,t);let c=new AbortController,l=Math.max(1e3,s??this.requestTimeoutMs),u=this.bindAbortSignal(c,o),d=setTimeout(()=>c.abort(),l),f={...this.defaultHeaders,...r??{}},p=this.normalizeRequestBody(n,f);try{let t=await this.fetchImpl(Or(this.baseUrl,kr(e,this.serializeQuery(a))),{method:i??`GET`,headers:f,body:p,signal:c.signal}),n=await t.json();if(!t.ok){let e=this.extractApiError(n);throw new si({message:e.message,status:t.status,code:e.code,details:e.details})}if(!this.isApiResponse(n))throw new si({message:`Unexpected NextClaw API response shape.`,status:t.status});if(!n.ok)throw new si({message:n.error.message,status:t.status,code:n.error.code,details:n.error.details});return n.data}catch(e){throw e instanceof si?e:e instanceof Error&&e.name===`AbortError`?new si({message:`NextClaw API request timed out after ${l}ms.`}):new si({message:e instanceof Error?e.message:`NextClaw API request failed.`})}finally{o?.removeEventListener(`abort`,u),clearTimeout(d)}};bindAbortSignal=(e,t)=>{let n=()=>e.abort(t?.reason);return t?t.aborted?(e.abort(t.reason),n):(t.addEventListener(`abort`,n,{once:!0}),n):n};requestWithTransport=async(e,t)=>{let{body:n,headers:r,method:i,query:a,signal:o,timeoutMs:s}=t,{transport:c}=this;if(!c)throw new si({message:`NextClaw transport is not configured.`});try{return await c.request({method:i??`GET`,path:e,...n===void 0?{}:{body:n},...a?{query:a}:{},...r?{headers:r}:{},...o?{signal:o}:{},...s===void 0?{}:{timeoutMs:s}})}catch(e){if(e instanceof si)throw e;let t=ci(e,`code`),n=ci(e,`details`),r=ci(e,`status`);throw new si({message:e instanceof Error?e.message:`NextClaw API request failed.`,code:typeof t==`string`?t:void 0,details:V(n)?n:void 0,status:typeof r==`number`?r:void 0})}};get=async(e,t={})=>await this.request(e,{...t,method:`GET`});post=async(e,t,n={})=>await this.request(e,{...n,method:`POST`,...t===void 0?{}:{body:t}});put=async(e,t,n={})=>await this.request(e,{...n,method:`PUT`,...t===void 0?{}:{body:t}});patch=async(e,t,n={})=>await this.request(e,{...n,method:`PATCH`,...t===void 0?{}:{body:t}});delete=async(e,t={})=>await this.request(e,{...t,method:`DELETE`});upload=async(e,t,n={})=>{let{headers:r,signal:i,timeoutMs:a}=n;if(this.transport?.upload)return await this.transport.upload({path:e,formData:t,...r?{headers:r}:{},...i?{signal:i}:{},...a===void 0?{}:{timeoutMs:a}});let o=new AbortController,s=Math.max(1e3,a??this.requestTimeoutMs),c=()=>o.abort(i?.reason);i&&(i.aborted?o.abort(i.reason):i.addEventListener(`abort`,c,{once:!0}));let l=setTimeout(()=>o.abort(),s);try{let n=await this.fetchImpl(Or(this.baseUrl,e),{method:`POST`,headers:{Accept:`application/json`,...ui(this.options.token)??{},...this.options.headers??{},...r??{}},body:t,signal:o.signal}),i=await n.json();if(!n.ok){let e=this.extractApiError(i);throw new si({message:e.message,status:n.status,code:e.code,details:e.details})}if(!this.isApiResponse(i)||!i.ok)throw new si({message:`Unexpected NextClaw upload response shape.`,status:n.status});return i.data}catch(e){throw e instanceof si?e:e instanceof Error&&e.name===`AbortError`?new si({message:`NextClaw API upload timed out after ${s}ms.`}):new si({message:e instanceof Error?e.message:`NextClaw API upload failed.`})}finally{i?.removeEventListener(`abort`,c),clearTimeout(l)}};isApiResponse=e=>typeof e==`object`&&!!e&&`ok`in e;extractApiError=e=>{if(this.isApiResponse(e)&&!e.ok)return e.error;if(typeof e==`object`&&e&&`message`in e){let t=e;return{code:typeof t.code==`string`?t.code:`HTTP_ERROR`,message:typeof t.message==`string`?t.message:`NextClaw API request failed.`,details:t.details!==null&&typeof t.details==`object`?t.details:void 0}}return{code:`HTTP_ERROR`,message:`NextClaw API request failed.`}};normalizeRequestBody=(e,t)=>{if(e!==void 0)return e instanceof FormData||e instanceof URLSearchParams||e instanceof Blob||e instanceof ArrayBuffer?e:typeof e==`string`?(!(`Content-Type`in t)&&!(`content-type`in t)&&(t[`Content-Type`]=`application/json`),e):(!(`Content-Type`in t)&&!(`content-type`in t)&&(t[`Content-Type`]=`application/json`),JSON.stringify(e))};serializeQuery=e=>{if(!e)return;if(e instanceof URLSearchParams)return e;let t=new URLSearchParams;for(let[n,r]of Object.entries(e)){let e=Array.isArray(r)?r:[r];for(let r of e)r!=null&&t.append(n,String(r))}return t}};function ui(e){return e?{Authorization:`Bearer ${e}`}:null}var di=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/runtime/control`);startService=async()=>await this.requestService.post(`/api/runtime/control/start-service`,{});restartService=async()=>await this.requestService.post(`/api/runtime/control/restart-service`,{});stopService=async()=>await this.requestService.post(`/api/runtime/control/stop-service`,{})},fi=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/runtime/update`);check=async()=>await this.requestService.post(`/api/runtime/update/check`,{});download=async()=>await this.requestService.post(`/api/runtime/update/download`,{});apply=async()=>await this.requestService.post(`/api/runtime/update/apply`,{});updateChannel=async e=>await this.requestService.put(`/api/runtime/update/channel`,{channel:e})},pi=class{constructor(e){this.requestService=e}browse=async e=>{let{basePath:t,includeFiles:n,path:r}=e??{},i=typeof r==`string`?r.trim():``,a=typeof t==`string`?t.trim():``;return await this.requestService.get(`/api/server-paths/browse`,{query:{...i?{path:i}:{},...a?{basePath:a}:{},...n?{includeFiles:`1`}:{}}})};watch=async e=>await this.requestService.post(`/api/server-paths/watch`,e);unwatch=async e=>{await this.requestService.delete(`/api/server-paths/watch`,{query:{subscriptionId:e.trim()}})};createDirectory=async e=>await this.requestService.post(`/api/server-paths/directory`,e);createFile=async e=>await this.requestService.post(`/api/server-paths/file`,e);renameEntry=async e=>await this.requestService.request(`/api/server-paths/entry`,{method:`PATCH`,body:e});deleteEntry=async e=>await this.requestService.delete(`/api/server-paths/entry`,{query:{basePath:e.basePath.trim(),path:e.path.trim()}});uploadFiles=async e=>{let{basePath:t,files:n,overwrite:r,targetPath:i}=e,a=new FormData;return a.append(`basePath`,t.trim()),a.append(`targetPath`,i.trim()),a.append(`overwrite`,r?`true`:`false`),n.forEach(e=>a.append(`files`,e)),await this.requestService.upload(`/api/server-paths/files`,a,{timeoutMs:12e4})};read=async e=>{let{basePath:t,line:n,path:r}=e,i=r.trim(),a=typeof t==`string`?t.trim():``,o=Number.isSafeInteger(n)&&(n??0)>0?n:null;return await this.requestService.get(`/api/server-paths/read`,{query:{path:i,...a?{basePath:a}:{},...o?{line:String(o)}:{}}})};search=async e=>{let{basePath:t,limit:n,query:r}=e,i=t.trim(),a=r?.trim()??``,o=Number.isSafeInteger(n)&&(n??0)>0?n:null;return await this.requestService.get(`/api/server-paths/search`,{query:{basePath:i,...a?{query:a}:{},...o?{limit:String(o)}:{}}})}},mi=`x-nextclaw-panel-bridge-session`;function hi(e){return e?{[mi]:e}:void 0}var gi=class{constructor(e){this.requestService=e}listServiceApps=async()=>await this.requestService.get(`/api/service-apps`);getServiceApp=async e=>await this.requestService.get(`/api/service-apps/${encodeURIComponent(e)}`);restartServiceApp=async e=>await this.requestService.post(`/api/service-apps/${encodeURIComponent(e)}/restart`);deleteServiceApp=async(e,t=!1)=>await this.requestService.request(`/api/service-apps/${encodeURIComponent(e)}`,{method:`DELETE`,body:{purgeData:t}});listServiceActions=async(e={})=>{let t=e.appId?`?${new URLSearchParams({appId:e.appId}).toString()}`:``;return await this.requestService.get(`/api/service-actions${t}`,{headers:hi(e.bridgeSessionToken)})};listVerificationRecords=async(e={})=>{let t=new URLSearchParams;e.acceptanceId&&t.set(`acceptanceId`,e.acceptanceId),e.appId&&t.set(`appId`,e.appId),e.limit!==void 0&&t.set(`limit`,String(e.limit));let n=t.size>0?`?${t.toString()}`:``;return await this.requestService.get(`/api/runtime-verification-records${n}`,{headers:hi(e.bridgeSessionToken)})};getPortableRuntimeAcceptanceContract=async(e={})=>{let t=e.locale?`?${new URLSearchParams({locale:e.locale})}`:``;return await this.requestService.get(`/api/portable-runtime/acceptance/contract${t}`,{headers:hi(e.bridgeSessionToken)})};getPortableRuntimeAcceptanceStatus=async(e={})=>{let t=new URLSearchParams;e.appId&&t.set(`appId`,e.appId),e.locale&&t.set(`locale`,e.locale);let n=t.size>0?`?${t.toString()}`:``;return await this.requestService.get(`/api/portable-runtime/acceptance/status${n}`,{headers:hi(e.bridgeSessionToken)})};exportPortableRuntimeAcceptance=async(e={})=>{let t=new URLSearchParams;e.appId&&t.set(`appId`,e.appId),e.locale&&t.set(`locale`,e.locale);let n=t.size>0?`?${t.toString()}`:``;return await this.requestService.get(`/api/portable-runtime/acceptance/export${n}`,{headers:hi(e.bridgeSessionToken)})};discoverServiceAppActions=async e=>await this.requestService.post(`/api/service-apps/${encodeURIComponent(e)}/actions/discover`,{});invokeServiceAction=async(e,t,n={})=>await this.requestService.post(`/api/service-actions/${encodeURIComponent(e)}/invoke`,{input:t??{}},{headers:hi(n.bridgeSessionToken)});grantServiceAction=async(e,t={})=>await this.requestService.post(`/api/service-actions/${encodeURIComponent(e)}/grant`,{},{headers:hi(t.bridgeSessionToken)});grantServiceActions=async(e,t={})=>await this.requestService.post(`/api/service-action-grants`,{actionIds:e},{headers:hi(t.bridgeSessionToken)});grantAgentServiceActions=async(e,t)=>await this.requestService.post(`/api/agents/${encodeURIComponent(e)}/service-action-grants`,{actionIds:t});listServiceActionGrants=async()=>await this.requestService.get(`/api/service-action-grants`);revokeServiceAction=async(e,t={})=>await this.requestService.delete(`/api/service-actions/${encodeURIComponent(e)}/grant`,{headers:hi(t.bridgeSessionToken)});revokeServiceActionGrant=async e=>{let{actionId:t,caller:n}=e,r=new URLSearchParams({surface:n.surface,callerId:n.surface===`panel-app`?n.appId:n.agentId});return await this.requestService.delete(`/api/service-action-grants/${encodeURIComponent(t)}?${r.toString()}`)}},_i=class{constructor(e,t){this.requestService=e,this.eventBus=t}list=async e=>{let{limit:t,page:n,pageSize:r,query:i,peerId:a}=e??{},o=new URLSearchParams;typeof t==`number`&&Number.isFinite(t)&&o.set(`limit`,String(Math.max(1,Math.trunc(t)))),typeof n==`number`&&Number.isFinite(n)&&o.set(`page`,String(Math.max(1,Math.trunc(n)))),typeof r==`number`&&Number.isFinite(r)&&o.set(`pageSize`,String(Math.max(1,Math.trunc(r)))),i?.trim()&&o.set(`query`,i.trim());let s=a?.trim();return s&&o.set(`peerId`,s),await this.requestService.get(`/api/ncp/sessions`,{...o.size>0?{query:o}:{}})};get=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}`);listMessages=async(e,t={})=>{let n=typeof t==`number`?{limit:t}:t,r=new URLSearchParams;return typeof n.limit==`number`&&Number.isFinite(n.limit)&&r.set(`limit`,String(Math.max(1,Math.trunc(n.limit)))),n.cursor?.trim()&&r.set(`cursor`,n.cursor.trim()),n.toolPayload===`summary`&&r.set(`toolPayload`,`summary`),n.initialPayload===`compact`&&r.set(`initialPayload`,`compact`),await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/messages`,{...r.size>0?{query:r}:{},...n.signal?{signal:n.signal}:{}})};getUsage=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/usage`);listSkills=async(e,t)=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/skills`,{query:t?.projectRoot?.trim()?{projectRoot:t.projectRoot.trim()}:void 0});listQueuedInputs=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs`);deleteQueuedInput=async(e,t)=>await this.requestService.delete(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs/${encodeURIComponent(t)}`);listPendingInputs=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/pending-inputs`);steerQueuedInput=async(e,t)=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs/${encodeURIComponent(t)}/steer`);update=async(e,t)=>await this.requestService.put(`/api/ncp/sessions/${encodeURIComponent(e)}`,t);compactContext=async e=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/context/compact`);delete=async e=>await this.requestService.delete(`/api/ncp/sessions/${encodeURIComponent(e)}`);uploadAssets=async e=>{let t=new FormData;for(let n of e)t.append(`files`,n);return await this.requestService.upload(`/api/ncp/assets`,t)};subscribe=(e,t={})=>({close:this.eventBus.subscribeAll(t=>{e(t)})})},vi=class{constructor(e){this.requestService=e}list=async(e={})=>await this.requestService.get(`/api/system-object-references`,{query:e});resolve=async e=>await this.requestService.post(`/api/system-object-references/resolve`,{uri:e})},yi=class{baseUrl;agentRuns;app;appPackages;appData;agents;auth;channelAuth;capabilityAccess;featureControls;config;eventBus;marketplace;inboxDeliveries;mcpMarketplace;mcp;panelApps;providers;projects;realtime;remote;runtimeControl;runtimeUpdate;serverPaths;serviceApps;sessions;systemObjectReferences;constructor(e){this.baseUrl=Dr(e.baseUrl);let t={...e,baseUrl:this.baseUrl},n=new li(t);this.realtime=new ai(t);let r=null;this.eventBus=new zt({onFirstSubscriber:()=>{r??=this.realtime.subscribe(e=>{this.eventBus.emitEnvelope({type:e.type,payload:`payload`in e?e.payload:void 0,emittedAt:`emittedAt`in e?e.emittedAt:new Date().toISOString(),source:`source`in e?e.source:`realtime`})})},onNoSubscribers:()=>{r?.close(),r=null}}),this.agentRuns=new Pr(n,t),this.app=new Ir(n),this.appPackages=new Lr(n),this.appData=new Rr(n),this.agents=new Fr(n,this.baseUrl),this.auth=new zr(n),this.channelAuth=new Br(n),this.capabilityAccess=new Vr(n),this.featureControls=new Hr(n),this.config=new Ur(n),this.marketplace=new Wr(n),this.inboxDeliveries=new Jr(n),this.mcpMarketplace=new Yr(n),this.mcp=new Zr(n),this.panelApps=new ei(n),this.providers=new ti(n),this.projects=new ni(n),this.remote=new oi(n),this.runtimeControl=new di(n),this.runtimeUpdate=new fi(n),this.serverPaths=new pi(n),this.serviceApps=new gi(n),this.sessions=new _i(n,this.eventBus),this.systemObjectReferences=new vi(n)}},bi=`http://127.0.0.1:55667`,xi=(()=>{let e=(void 0)?.trim();return e?e.replace(/\/$/,``):typeof window<`u`&&window.location?.origin?window.location.origin:bi})(),Si={"Use this page to manage the local NextClaw service. Closing the browser does not stop the service.":`runtimeControlManagedLocalMessage`,"This page is served by the running local service. Closing the browser does not stop it.":`runtimeControlManagedLocalHint`,"This page is served by the running local service.":`runtimeControlManagedLocalHintShort`,"This page is already hosted by the running local service.":`runtimeControlStartUnavailableHosted`,"App restart is only available in the desktop shell.":`runtimeControlRestartAppDesktopOnly`,"The local service is not running.":`runtimeControlServiceNotRunning`,"The local service is already stopped.":`runtimeControlServiceAlreadyStopped`,"Managed service started.":`runtimeControlManagedServiceStarted`,"Managed service start scheduled.":`runtimeControlManagedServiceStartScheduled`,"Restart scheduled. This page may disconnect for a few seconds.":`runtimeControlRestartScheduled`,"Stop scheduled. This page will disconnect shortly.":`runtimeControlStopScheduled`,"runtime healthy":`runtimeControlHealthy`};function Ci(e){return e.activeSystemAction?`service-transitioning`:e.lifecyclePhase}function wi(e){return e===`ready`?`connected`:e===`startup-failed`||e===`stalled`?`disconnected`:`connecting`}function Ti(e){let t=Ci(e);return{...e,phase:t,connectionStatus:wi(t)}}function Ei(e){return e===`start-service`?`starting-service`:e===`stop-service`?`stopping-service`:e===`restart-service`?`restarting-service`:`restarting-app`}function Di(e){return e===`start-service`?`starting`:e===`stop-service`?`stopping`:e===`restart-service`?`restarting`:null}function Oi(e){if(!e)return null;let t=Si[e.trim()];return t?r(t):e}function ki(e){let{action:t,message:n}=e;return{action:t,lifecycle:Ei(t),serviceState:Di(t),message:n}}function Ai(e){if(e.runtimeControlError)return{tone:`inactive`,title:r(`runtimeControlLoadFailed`),description:e.runtimeControlError,reasonLines:[],actionLabel:null,isBusy:!1};if(!e.runtimeControlView)return{tone:`inactive`,title:r(`runtimeStatusLoadingTitle`),description:r(`runtimeStatusLoadingDescription`),reasonLines:[],actionLabel:null,isBusy:!!e.activeSystemAction};if(e.activeSystemAction)return{tone:`attention`,title:r(`runtimeControlTitle`),description:Oi(e.activeSystemAction.message)||Oi(e.runtimeControlView.message)||r(`runtimeControlDescription`),reasonLines:[],actionLabel:null,isBusy:!0};let t=e.runtimeControlView;return t.pendingRestart?{tone:`attention`,title:r(`runtimeStatusPendingRestartTitle`),description:r(`runtimeStatusPendingRestartDescription`),reasonLines:t.pendingRestart.changedPaths.length>0?t.pendingRestart.changedPaths.map(e=>r(`runtimeStatusPendingRestartReasonItem`).replace(`{path}`,e)):[t.pendingRestart.message],actionLabel:t.canRestartService.available?r(`runtimeStatusRestartAction`):null,isBusy:!1}:{tone:t.lifecycle===`healthy`?`healthy`:`inactive`,title:r(`runtimeStatusHealthyTitle`),description:r(`runtimeStatusHealthyDescription`),reasonLines:[],actionLabel:null,isBusy:!1}}function ji(e){let t=e.activeSystemAction,n=e.runtimeControlView;return{controlView:n,visibleLifecycle:t?.lifecycle??n?.lifecycle??`healthy`,visibleServiceState:t?.serviceState??n?.serviceState??`unknown`,visibleMessage:Oi(t?.message)||Oi(e.lastSystemActionError)||Oi(n?.message)||r(`runtimeControlDescription`),busyAction:t?.action??null,busy:!!t,pendingRestart:n?.pendingRestart??null,errorMessage:Oi(e.lastSystemActionError)||Oi(e.runtimeControlError)||null}}var Mi=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},Ni=(e=>e?Mi(e):Mi),Pi=e=>e;function Fi(e,t=Pi){let n=P.useSyncExternalStore(e.subscribe,P.useCallback(()=>t(e.getState()),[e,t]),P.useCallback(()=>t(e.getInitialState()),[e,t]));return P.useDebugValue(n),n}var Ii=e=>{let t=Ni(e),n=e=>Fi(t,e);return Object.assign(n,t),n},Li=(e=>e?Ii(e):Ii),Ri={lifecyclePhase:`cold-starting`,hasReachedReady:!1,lastReadyAt:null,recoveryStartedAt:null,bootstrapStatus:null,lastError:null,lastTransportError:null,runtimeControlView:null,runtimeControlError:null,activeSystemAction:null,lastSystemActionError:null},zi=Li(e=>({state:Ri,patchState:t=>e(e=>({state:{...e.state,...t}}))}));function Bi(e){if(e.length===0)throw Error(`AdaptiveCadence requires at least one stage.`);for(let t of e)if(t.delaysMs.length===0)throw Error(`AdaptiveCadence stage requires at least one delay.`)}var Vi=class{constructor(e){this.options=e,this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.lastSuccessAt=null,this.manualTriggerPending=!1,this.completed=!1,this.recordFailure=()=>{let e=this.clock();this.completed=!1,this.manualTriggerPending=!1,this.startedAt=this.startedAt??e,this.lastFailureAt=e,this.attempt+=1},this.recordSuccess=()=>{this.lastSuccessAt=this.clock(),this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.manualTriggerPending=!1,this.completed=!0},this.reset=()=>{this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.lastSuccessAt=null,this.manualTriggerPending=!1,this.completed=!1},this.requestManualTrigger=()=>{this.completed=!1,this.manualTriggerPending=!0},this.hasManualTrigger=()=>this.manualTriggerPending,this.getNextDelay=(e={})=>{if(this.manualTriggerPending)return e.consumeManualTrigger&&(this.manualTriggerPending=!1),this.options.manualTriggerDelayMs;if(this.completed)return this.options.successDelayMs;if(this.startedAt===null)return this.options.idleDelayMs;let t=this.resolveStage(this.clock()-this.startedAt);return t.delaysMs[Math.min(this.attempt-1,t.delaysMs.length-1)]},this.getSnapshot=()=>({attempt:this.attempt,startedAt:this.startedAt,lastFailureAt:this.lastFailureAt,lastSuccessAt:this.lastSuccessAt,manualTriggerPending:this.manualTriggerPending,completed:this.completed}),this.resolveStage=e=>this.options.stages.find(t=>t.untilElapsedMs===void 0||e<t.untilElapsedMs)??this.options.stages[this.options.stages.length-1],Bi(e.stages),this.clock=e.clock??(()=>Date.now())}},Hi=3e4,Ui={idleDelayMs:1e3,manualTriggerDelayMs:0,successDelayMs:!1,stages:[{untilElapsedMs:3e4,delaysMs:[500,1e3,2e3,4e3,5e3]},{untilElapsedMs:5*6e4,delaysMs:[1e4,15e3,3e4]},{delaysMs:[6e4]}]};function Wi(e){return e instanceof Error?e.message:String(e??``)}function Gi(e){return e&&(e.ncpAgent.error?.trim()||e.lastError?.trim())||null}function Ki(e){return r(e===`start-service`?`runtimeControlStartingServiceHelp`:e===`restart-service`?`runtimeControlRestartingServiceHelp`:e===`stop-service`?`runtimeControlStoppingServiceHelp`:`runtimeControlRestartingAppHelp`)}var H=new class{constructor(){this.recoveryTimeoutId=null,this.runtimeBootstrapProbeCadence=new Vi(Ui),this.getRuntimeBootstrapPollInterval=e=>{let{lifecyclePhase:t,activeSystemAction:n}=this.getState(),r=t===`recovering`||t===`stalled`||n?.lifecycle===`recovering`;return this.runtimeBootstrapProbeCadence.hasManualTrigger()?this.runtimeBootstrapProbeCadence.getNextDelay({consumeManualTrigger:!0}):!r&&e?.ncpAgent.state===`ready`?!1:this.runtimeBootstrapProbeCadence.getNextDelay({consumeManualTrigger:!0})},this.getRuntimeControl=async()=>this.decorateForCurrentEnvironment(await fc()),this.reportBootstrapStatus=e=>{let t=this.getState(),n=Gi(e);if(e.ncpAgent.state===`ready`){this.transitionToReady(e);return}if(!t.hasReachedReady){if(e.ncpAgent.state===`error`||e.phase===`error`){this.transitionToStartupFailed(n,e);return}this.transitionToColdStarting(e);return}this.transitionToRecovering(n,e)},this.reportBootstrapQueryError=e=>{let t=Wi(e).trim();if(t&&!this.reportTransportFailure(t)){if(this.getState().hasReachedReady){this.transitionToRecovering(t);return}this.transitionToStartupFailed(t)}},this.reportTransportFailure=e=>{let t=Wi(e).trim();return _o(t)?this.getState().hasReachedReady?(this.transitionToRecovering(t),!0):(this.runtimeBootstrapProbeCadence.recordFailure(),this.patchState({lastTransportError:t}),!0):!1},this.handleConnectionInterrupted=e=>{let t=this.getState(),n=e?.trim()||null;if(!t.hasReachedReady){this.runtimeBootstrapProbeCadence.recordFailure(),n&&this.patchState({lastTransportError:n});return}this.transitionToRecovering(n)},this.handleConnectionRestored=()=>{let e=this.getState();e.bootstrapStatus?.ncpAgent.state===`ready`&&this.transitionToReady(e.bootstrapStatus)},this.reportRuntimeControlView=e=>{this.patchState({runtimeControlView:e,runtimeControlError:null})},this.reportRuntimeControlError=e=>{let t=Wi(e).trim();t&&this.patchState({runtimeControlError:t})},this.runRuntimeControlAction=async e=>{this.patchState({activeSystemAction:ki({action:e,message:Ki(e)}),lastSystemActionError:null});try{let t=await this.executeRuntimeControlAction(e);if(e===`restart-app`)return t;if(e===`stop-service`)return await this.refreshRuntimeControlView(),this.clearActiveSystemAction(),t;this.patchState({activeSystemAction:{action:e,lifecycle:`recovering`,serviceState:null,message:r(`runtimeControlRecoveringHelp`)}}),this.runtimeBootstrapProbeCadence.requestManualTrigger();let n=await this.waitForRecovery();return this.syncRuntimeControlQueryCache(n),this.reportRuntimeControlView(n),this.clearActiveSystemAction(),t}catch(t){let n=t instanceof Error?t.message:r(`runtimeControlActionFailed`);throw this.patchState({activeSystemAction:{action:e,lifecycle:`failed`,serviceState:e===`stop-service`?`running`:e===`restart-app`?null:`unknown`,message:n},lastSystemActionError:n}),t}},this.getStatusView=()=>Ti(this.getState()),this.requestRuntimeBootstrapProbeNow=()=>{this.runtimeBootstrapProbeCadence.requestManualTrigger(),It.refetchQueries({queryKey:[`runtime-bootstrap-status`]})},this.resetForTests=()=>{this.clearRecoveryTimeout(),this.runtimeBootstrapProbeCadence.reset(),zi.setState({state:Ri})},this.getState=()=>zi.getState().state,this.patchState=e=>{zi.getState().patchState(e)},this.transitionToColdStarting=e=>{this.runtimeBootstrapProbeCadence.recordFailure(),this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`cold-starting`,recoveryStartedAt:null,bootstrapStatus:e,lastError:null})},this.transitionToStartupFailed=(e,t)=>{this.runtimeBootstrapProbeCadence.recordFailure(),this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`startup-failed`,recoveryStartedAt:null,bootstrapStatus:t??this.getState().bootstrapStatus,lastError:e})},this.transitionToRecovering=(e,t)=>{this.runtimeBootstrapProbeCadence.recordFailure();let n=this.getState();if(!n.hasReachedReady){this.patchState({lastTransportError:e?.trim()||n.lastTransportError});return}n.lifecyclePhase!==`recovering`&&n.lifecyclePhase!==`stalled`&&(this.clearRecoveryTimeout(),this.recoveryTimeoutId=window.setTimeout(()=>{this.recoveryTimeoutId=null,this.getState().lifecyclePhase===`recovering`&&this.patchState({lifecyclePhase:`stalled`})},Hi)),this.patchState({lifecyclePhase:n.lifecyclePhase===`stalled`?`stalled`:`recovering`,recoveryStartedAt:n.recoveryStartedAt??Date.now(),bootstrapStatus:t??n.bootstrapStatus,lastError:e?.trim()||n.lastError,lastTransportError:e?.trim()||n.lastTransportError})},this.transitionToReady=e=>{this.runtimeBootstrapProbeCadence.recordSuccess();let t=this.getState(),n=t.lifecyclePhase===`recovering`||t.lifecyclePhase===`stalled`;this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`ready`,hasReachedReady:!0,lastReadyAt:Date.now(),recoveryStartedAt:null,bootstrapStatus:e,lastError:null,lastTransportError:null}),n&&It.refetchQueries({type:`active`})},this.executeRuntimeControlAction=async e=>{let t=this.getDesktopBridge();if(e===`restart-service`&&t&&typeof t.restartService==`function`){let e=await t.restartService();return{accepted:e.accepted,action:`restart-service`,lifecycle:e.lifecycle,message:e.message}}if(e===`start-service`)return await pc();if(e===`stop-service`)return await mc();if(e===`restart-app`){if(!t||typeof t.restartApp!=`function`)throw Error(r(`runtimeRestartAppUnavailable`));let e=await t.restartApp();return{accepted:e.accepted,action:`restart-app`,lifecycle:e.lifecycle,message:e.message}}return await X()},this.waitForRecovery=async()=>{let e=Date.now()+25e3,t=null;for(;Date.now()<e;)try{return await this.getRuntimeControl()}catch(e){t=e,await new Promise(e=>{window.setTimeout(e,1500)})}throw t instanceof Error?t:Error(r(`runtimeRecoveryTimedOut`))},this.refreshRuntimeControlView=async()=>{try{let e=await this.getRuntimeControl();this.syncRuntimeControlQueryCache(e),this.reportRuntimeControlView(e)}catch(e){this.reportRuntimeControlError(e)}},this.syncRuntimeControlQueryCache=e=>{It.setQueryData([`runtime-control`],e)},this.clearActiveSystemAction=()=>{this.patchState({activeSystemAction:null,lastSystemActionError:null})},this.clearRecoveryTimeout=()=>{this.recoveryTimeoutId!==null&&(window.clearTimeout(this.recoveryTimeoutId),this.recoveryTimeoutId=null)},this.decorateForCurrentEnvironment=e=>{let t=this.getDesktopBridge();return!t||typeof t.restartApp!=`function`?e:{...e,environment:`desktop-embedded`,serviceState:`running`,canStartService:{available:!1,requiresConfirmation:!1,impact:`none`},canStopService:{available:!1,requiresConfirmation:!0,impact:`brief-ui-disconnect`},canRestartApp:{available:!0,requiresConfirmation:!0,impact:`full-app-relaunch`},ownerLabel:r(`runtimeControlEnvironmentDesktop`),managementHint:r(`runtimeControlDesktopServiceHint`)}},this.getDesktopBridge=()=>typeof window>`u`?null:window.nextclawDesktop??null}};function U(){let e=it({queryKey:[`runtime-bootstrap-status`],queryFn:()=>Fo({timeoutMs:5e3}),refetchInterval:e=>H.getRuntimeBootstrapPollInterval(e.state.data),retry:!1}),t=it({queryKey:[`runtime-control`],queryFn:async()=>await H.getRuntimeControl(),staleTime:5e3});(0,P.useEffect)(()=>{e.data&&H.reportBootstrapStatus(e.data)},[e.data]),(0,P.useEffect)(()=>{e.error&&H.reportBootstrapQueryError(e.error)},[e.error]),(0,P.useEffect)(()=>{t.data&&H.reportRuntimeControlView(t.data)},[t.data]),(0,P.useEffect)(()=>{t.error&&H.reportRuntimeControlError(t.error)},[t.error])}function qi(){return Ti(zi(e=>e.state))}function Ji(){return Ai(zi(e=>e.state))}function Yi(){return ji(zi(e=>e.state))}var W=Li(()=>({supported:!1,initialized:!1,busyAction:null,snapshot:null})),Xi=class{constructor(e){this.desktopApi=e,this.kind=`desktop-bridge`,this.subscribe=e=>this.desktopApi.onUpdateStateChanged(e),this.getState=async()=>await this.desktopApi.getUpdateState(),this.checkForUpdates=async()=>await this.desktopApi.checkForUpdates(),this.downloadUpdate=async()=>await this.desktopApi.downloadUpdate(),this.applyDownloadedUpdate=async()=>await this.desktopApi.applyDownloadedUpdate(),this.updateChannel=async e=>await this.desktopApi.updateChannel(e)}},Zi=class{constructor(){this.kind=`runtime-host`,this.getState=async()=>await gc(),this.checkForUpdates=async()=>await _c(),this.downloadUpdate=async()=>await vc(),this.applyDownloadedUpdate=async()=>await yc(),this.updateChannel=async e=>await bc(e)}},Qi=new class{constructor(){this.unsubscribe=null,this.subscriptionCount=0,this.source=null,this.start=async()=>{this.subscriptionCount+=1;let e=this.resolveSource();if(this.source=e,!e){W.setState({supported:!1,initialized:!0,snapshot:null});return}e.kind===`desktop-bridge`&&!this.unsubscribe&&(this.unsubscribe=e.subscribe(e=>{W.setState({supported:!0,initialized:!0,snapshot:e})})),W.setState({supported:!0,initialized:!1});try{let t=await e.getState();W.setState({supported:!0,initialized:!0,snapshot:t})}catch(t){if(e.kind===`runtime-host`&&this.isUnsupportedError(t)){W.setState({supported:!1,initialized:!0,snapshot:null});return}W.setState({supported:!0,initialized:!0}),I.error(`${r(`runtimeUpdatesLoadFailed`)}: ${this.getErrorMessage(t)}`)}},this.stop=()=>{this.subscriptionCount=Math.max(0,this.subscriptionCount-1),!(this.subscriptionCount>0)&&(this.unsubscribe?.(),this.unsubscribe=null,this.source=null)},this.reportSnapshot=e=>{this.source?.kind!==`desktop-bridge`&&W.setState({supported:!0,initialized:!0,snapshot:e})},this.refreshAfterRealtimeReconnect=async()=>{this.source?.kind===`runtime-host`&&await this.refreshSnapshot()},this.checkForUpdates=async()=>{let e;try{e=await this.runSnapshotCommand(`checking`,r(`runtimeUpdatesCheckFailed`),async e=>await e.checkForUpdates())}catch{return}if(e.status===`up-to-date`){I.success(r(`runtimeUpdatesAlreadyLatest`));return}if(e.status===`update-available`){I.success(r(`runtimeUpdatesAvailable`).replace(`{version}`,e.availableVersion??r(`runtimeUpdatesUnknownVersion`)));return}e.status===`downloaded`&&I.success(r(`runtimeUpdatesReadyToApply`))},this.downloadUpdate=async()=>{try{await this.runSnapshotCommand(`downloading`,r(`runtimeUpdatesDownloadFailed`),async e=>await e.downloadUpdate())}catch{return}},this.applyDownloadedUpdate=async()=>{try{await this.runSnapshotCommand(`applying`,r(`runtimeUpdatesApplyFailed`),async e=>await e.applyDownloadedUpdate())}catch{return}},this.updateNow=async()=>{let e=W.getState().snapshot;if(!(e?.status!==`update-available`&&e?.status!==`downloaded`))try{await this.runSnapshotCommand(`updating`,r(`runtimeUpdatesUpdateFailed`),async t=>{let n=e.status===`downloaded`?e:await t.downloadUpdate();return W.setState({snapshot:n}),n.status===`downloaded`?await t.applyDownloadedUpdate():n})}catch{return}},this.updateChannel=async e=>{if(W.getState().snapshot?.channel===e)return;let t;try{t=await this.runSnapshotCommand(`switching-channel`,r(`runtimeUpdatesChannelChangeFailed`),async t=>await t.updateChannel(e))}catch{return}if(t.status===`update-available`&&t.availableVersion){I.success(r(`runtimeUpdatesChannelChangedWithUpdate`).replace(`{channel}`,this.getChannelLabel(e)).replace(`{version}`,t.availableVersion));return}I.success(r(`runtimeUpdatesChannelChanged`).replace(`{channel}`,this.getChannelLabel(e)))},this.refreshSnapshot=async()=>{if(!(!this.source||this.source.kind!==`runtime-host`))try{let e=await this.source.getState();W.setState({supported:!0,initialized:!0,snapshot:e})}catch{}},this.runSnapshotCommand=async(e,t,n)=>{let i=this.source??this.resolveSource();if(!i)throw Error(r(`runtimeUpdatesUnavailableDescription`));this.source=i,W.setState({busyAction:e});try{let e=await n(i);return W.setState({snapshot:e}),e}catch(e){throw I.error(`${t}: ${this.getErrorMessage(e)}`),e}finally{W.setState({busyAction:null})}},this.resolveSource=()=>{let e=this.getDesktopApi();return e?new Xi(e):new Zi},this.getDesktopApi=()=>typeof window>`u`?null:window.nextclawDesktop??null,this.isUnsupportedError=e=>{let t=this.getErrorMessage(e).toLowerCase();return t.includes(`404`)||t.includes(`not found`)||t.includes(`endpoint not found`)},this.getErrorMessage=e=>e instanceof Error?e.message:r(`error`),this.getChannelLabel=e=>r(e===`beta`?`desktopUpdatesChannelBeta`:`desktopUpdatesChannelStable`)}},$i=`https://docs.nextclaw.io/`;function ea(e,t){let n=t===`zh-CN`?`en-US`:`zh-CN`;return e?.[t]?.trim()||e?.[n]?.trim()||null}function ta(e){let t=e.releaseNotesUrl?.trim(),n=(e.availableVersion??e.downloadedVersion)?.trim();return t?na(n,t):null}function na(e,t=$i){let n=e?.trim();if(!n||!/^[0-9A-Za-z.-]+$/.test(n))return null;try{return new URL(`/release-notes/nextclaw-v${n}.json`,t).toString()}catch{return null}}function ra(e,t){return ea(e?.links?.html,t)}function ia(e){let t=e.releaseNotesUrl?.trim(),n=(e.downloadedVersion??e.availableVersion)?.trim();return!t||!n?null:{url:t,versionLabel:`v${n}`}}function aa(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function oa(e){return aa(e)?typeof e[`zh-CN`]==`string`||typeof e[`en-US`]==`string`:!1}function sa(e){return!aa(e)||!oa(e.title)?!1:e.body===void 0||oa(e.body)}function ca(e){return aa(e)&&typeof e.kind==`string`&&Array.isArray(e.items)&&e.items.every(sa)&&(e.title===void 0||oa(e.title))}function la(e){return aa(e)&&(e.html===void 0||oa(e.html))}function ua(e){return aa(e)&&Array.isArray(e.sections)&&e.sections.every(ca)&&(e.title===void 0||oa(e.title))&&(e.summary===void 0||oa(e.summary))&&(e.links===void 0||la(e.links))}async function da(e){let t=await fetch(e,{cache:`no-store`,headers:{accept:`application/json`}});if(!t.ok)throw Error(`Release notes request failed with HTTP ${t.status}.`);let n=await t.json();if(!ua(n))throw Error(`Release notes payload has an unsupported shape.`);return n}function fa(){return n()===`zh`?`zh-CN`:`en-US`}function pa(e){let t=na(e),n=fa(),r=ra(it({queryKey:[`current-release-notes`,t],queryFn:async()=>await da(t??``),enabled:!!t,retry:!1,staleTime:300*1e3}).data,n),i=e?.trim();return r&&i?{url:r,versionLabel:`v${i}`}:null}function ma({children:e,fullHeight:t=!1,className:n}){return(0,F.jsx)(`div`,{className:Cr(`animate-fade-in`,t?`h-[calc(100vh-80px)] w-full flex flex-col`:`pb-16`,n),children:e})}function ha({title:e,description:t,actions:n,headingLevel:r=2,mobileTitleInShell:i=!1,className:a}){let o=r===1?`h1`:`h2`;return(0,F.jsxs)(`header`,{"data-theme-surface":`header`,className:Cr(`flex shrink-0 flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,a),children:[(0,F.jsxs)(`div`,{className:Cr(`min-w-0`,i&&!t&&`hidden md:block`),children:[(0,F.jsx)(o,{className:Cr(`text-xl font-semibold tracking-tight text-foreground`,i&&`hidden md:block`),children:e}),t&&(0,F.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm leading-6 text-muted-foreground`,children:t})]}),n&&(0,F.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:n})]})}function ga({actions:e,children:t,className:n,description:r,layout:i=`standard`,title:a}){return(0,F.jsxs)(ma,{className:Cr(`w-full space-y-6`,i===`split`&&`pb-0 md:flex md:h-full md:min-h-0 md:flex-col`,n),children:[(0,F.jsx)(ha,{title:a,description:r,actions:e,mobileTitleInShell:!0}),t]})}var _a=Er(`inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-colors duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:pointer-events-none disabled:opacity-50`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-[hsl(var(--primary-hover))] active:bg-[hsl(var(--primary-active))] shadow-sm`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-border bg-card text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,secondary:`bg-muted text-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,ghost:`text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`,primary:`bg-primary text-primary-foreground hover:bg-[hsl(var(--primary-hover))] active:bg-[hsl(var(--primary-active))] shadow-sm`,subtle:`bg-muted text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,"primary-outline":`border border-primary/30 text-primary hover:bg-primary hover:text-primary-foreground`},size:{default:`h-9 px-4 py-2`,sm:`h-8 px-3 text-xs`,lg:`h-11 px-5 text-[14px]`,xl:`h-12 px-6 text-[15px]`,icon:`h-9 w-9`}},defaultVariants:{variant:`default`,size:`default`}}),va=P.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,F.jsx)(`button`,{className:Cr(_a({variant:t,size:n,className:e}),n!==`icon`&&`max-md:min-h-[var(--control-touch-size)]`),ref:i,...r}));va.displayName=`Button`;var ya=Er(`grid min-h-16 grid-cols-1 gap-3 px-4 py-3.5 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center sm:gap-6`,{variants:{tone:{default:``,muted:`bg-muted/55`},layout:{responsive:``,stacked:`sm:grid-cols-1 sm:items-start sm:gap-3`}},defaultVariants:{tone:`default`,layout:`responsive`}}),ba=P.forwardRef(({actions:e,children:t,className:n,description:r,title:i,...a},o)=>(0,F.jsxs)(`section`,{ref:o,className:Cr(`space-y-2.5`,n),...a,children:[i||r||e?(0,F.jsxs)(`div`,{className:`flex items-end justify-between gap-4 px-1`,children:[(0,F.jsxs)(`div`,{className:`min-w-0`,children:[i?(0,F.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:i}):null,r?(0,F.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-muted-foreground`,children:r}):null]}),e?(0,F.jsx)(`div`,{className:`shrink-0`,children:e}):null]}):null,t]}));ba.displayName=`SettingsSection`;var xa=P.forwardRef(({className:e,...t},n)=>(0,F.jsx)(`div`,{ref:n,className:Cr(`divide-y divide-border/55 overflow-hidden rounded-2xl bg-muted/45 text-foreground`,e),...t}));xa.displayName=`SettingsGroup`;var Sa=P.forwardRef(({className:e,layout:t,tone:n,title:r,description:i,control:a,children:o,...s},c)=>(0,F.jsxs)(`div`,{ref:c,className:Cr(ya({layout:t,tone:n}),e),...s,children:[(0,F.jsxs)(`div`,{className:`min-w-0`,children:[(0,F.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:r}),i?(0,F.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-muted-foreground`,children:i}):null,o?(0,F.jsx)(`div`,{className:`mt-3`,children:o}):null]}),a?(0,F.jsx)(`div`,{className:`min-w-0 sm:shrink-0`,children:a}):null]}));Sa.displayName=`SettingRow`;var G=P.forwardRef(({className:e,density:t=`default`,type:n,...r},i)=>(0,F.jsx)(`input`,{type:n,className:Cr(`flex h-9 w-full rounded-xl border border-border/75 bg-card px-3.5 py-2 text-sm text-foreground file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/55 placeholder:font-normal transition-colors focus:outline-none focus:ring-0 disabled:cursor-not-allowed disabled:opacity-50`,t===`default`?`max-md:min-h-[var(--control-touch-size)] max-md:text-base`:`text-[13px] max-md:min-h-0 max-md:text-[13px]`,e),ref:i,...r}));G.displayName=`Input`;var K=P.forwardRef(({className:e,...t},n)=>(0,F.jsx)(`label`,{ref:n,className:Cr(`text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,e),...t}));K.displayName=`Label`;var Ca=P.forwardRef(({className:e,checked:t=!1,onCheckedChange:n,thumbClassName:r,...i},a)=>(0,F.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":t,"data-state":t?`checked`:`unchecked`,ref:a,className:Cr(`switch-track peer inline-flex h-[22px] w-10 shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:cursor-not-allowed disabled:opacity-50`,t?`border-primary/70 bg-primary`:`border-border/60 bg-muted hover:bg-[var(--interaction-hover)]`,e),onClick:()=>n?.(!t),...i,children:(0,F.jsx)(`span`,{"data-state":t?`checked`:`unchecked`,className:Cr(`switch-thumb pointer-events-none block h-5 w-5 rounded-full bg-card shadow-md ring-1 ring-border/50 transition-transform duration-fast`,t?`translate-x-5`:`translate-x-0`,r)})}));Ca.displayName=`Switch`;var wa={maxRetries:8,startupTimeoutMs:2e3,settledTimeoutMs:5e3,retryBaseDelayMs:500,retryMaxDelayMs:3e3};function Ta(e){return e instanceof Error&&_o(e.message)}function Ea(e,t){return e<wa.maxRetries&&Ta(t)}function Da(e){return Math.min(wa.retryMaxDelayMs,wa.retryBaseDelayMs*2**Math.max(0,e-1))}function Oa(){let e=(0,P.useRef)(!1);return it({queryKey:[`auth-status`],queryFn:async()=>{let t=await Oo({timeoutMs:e.current?wa.settledTimeoutMs:wa.startupTimeoutMs});return e.current=!0,t},staleTime:5e3,retry:Ea,retryDelay:Da})}function ka(e){return Promise.all([e.invalidateQueries({queryKey:[`auth-status`]}),e.invalidateQueries({queryKey:[`app-meta`]}),e.invalidateQueries({queryKey:[`config`]}),e.invalidateQueries({queryKey:[`config-meta`]}),e.invalidateQueries({queryKey:[`config-schema`]}),e.invalidateQueries({queryKey:[`sessions`]}),e.invalidateQueries({queryKey:[`session-history`]}),e.invalidateQueries({queryKey:[`chat-runs`]}),e.invalidateQueries({queryKey:[`cron-jobs`]})])}function Aa(){let e=Ue();return at({mutationFn:ko,onSuccess:async()=>{await ka(e),I.success(r(`authSetupSuccess`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}function ja(){let e=Ue();return at({mutationFn:Ao,onSuccess:async()=>{await ka(e),I.success(r(`authLoginSuccess`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}function Ma(){let e=Ue();return at({mutationFn:jo,onSuccess:async()=>{await ka(e),I.success(r(`authLogoutSuccess`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}function Na(){let e=Ue();return at({mutationFn:Mo,onSuccess:async()=>{await ka(e),I.success(r(`authPasswordUpdated`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}function Pa(){let e=Ue();return at({mutationFn:No,onSuccess:async(t,n)=>{await ka(e),I.success(n.enabled?r(`authEnabledSuccess`):r(`authDisabledSuccess`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}var Fa=8;function Ia(e){return e.trim().length>=Fa}function La(e,t){return e===t?!0:(I.error(r(`authPasswordMismatch`)),!1)}function Ra({children:e,contentClassName:t=`space-y-6`}){return(0,F.jsx)(xa,{children:(0,F.jsx)(`div`,{className:`${t} p-4`,children:e})})}function za({canSubmitSetup:e,isPending:t,onSubmit:n,setSetupConfirmPassword:i,setSetupPassword:a,setSetupUsername:o,setupConfirmPassword:s,setupPassword:c,setupUsername:l}){return(0,F.jsxs)(Ra,{contentClassName:`space-y-5`,children:[(0,F.jsxs)(`div`,{className:`rounded-xl bg-background/65 p-4`,children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:r(`authSetupTitle`)}),(0,F.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:r(`authSetupDescription`)})]}),(0,F.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-setup-username`,children:r(`authUsername`)}),(0,F.jsx)(G,{id:`auth-setup-username`,value:l,onChange:e=>o(e.target.value),placeholder:r(`authUsernamePlaceholder`)})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-setup-password`,children:r(`authPassword`)}),(0,F.jsx)(G,{id:`auth-setup-password`,type:`password`,value:c,onChange:e=>a(e.target.value),placeholder:r(`authPasswordPlaceholder`)})]})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-setup-confirm`,children:r(`authConfirmPassword`)}),(0,F.jsx)(G,{id:`auth-setup-confirm`,type:`password`,value:s,onChange:e=>i(e.target.value),placeholder:r(`authConfirmPasswordPlaceholder`)}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`authPasswordMinLengthHint`)})]}),(0,F.jsx)(va,{type:`button`,disabled:!e,onClick:()=>void n(),children:r(t?`authSettingUp`:`authSetupAction`)})]})}function Ba({authenticated:e,canUpdatePassword:t,enabled:n,isLoggingOut:i,isUpdatingEnabled:a,isUpdatingPassword:o,nextConfirmPassword:s,nextPassword:c,onEnabledChange:l,onLogout:u,onPasswordUpdate:d,setNextConfirmPassword:f,setNextPassword:p,username:m}){return(0,F.jsxs)(Ra,{children:[(0,F.jsxs)(`div`,{className:`rounded-xl bg-background/65 p-4`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col gap-4 md:flex-row md:items-start md:justify-between`,children:[(0,F.jsxs)(`div`,{className:`space-y-1`,children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:r(`authStatusLabel`)}),(0,F.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`authStatusConfiguredUser`).replace(`{username}`,m??``)}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`authUsernameFixedHelp`)})]}),(0,F.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-muted px-3 py-1 text-xs font-medium text-foreground`,children:r(n?`enabled`:`disabled`)})]}),(0,F.jsxs)(`div`,{className:`mt-4 flex flex-col gap-4 border-t border-border/55 pt-4 md:flex-row md:items-center md:justify-between`,children:[(0,F.jsxs)(`div`,{className:`space-y-1`,children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:r(`authEnableLabel`)}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(n?`authEnableOnHelp`:`authEnableOffHelp`)})]}),(0,F.jsx)(Ca,{checked:n,disabled:a,onCheckedChange:e=>{l(e)}})]})]}),(0,F.jsxs)(`div`,{className:`space-y-4 rounded-xl bg-background/65 p-4`,children:[(0,F.jsxs)(`div`,{className:`space-y-1`,children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:r(`authPasswordSectionTitle`)}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`authPasswordSectionDescription`)})]}),(0,F.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-password-next`,children:r(`authPassword`)}),(0,F.jsx)(G,{id:`auth-password-next`,type:`password`,value:c,onChange:e=>p(e.target.value),placeholder:r(`authPasswordPlaceholder`)})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-password-confirm`,children:r(`authConfirmPassword`)}),(0,F.jsx)(G,{id:`auth-password-confirm`,type:`password`,value:s,onChange:e=>f(e.target.value),placeholder:r(`authConfirmPasswordPlaceholder`)})]})]}),(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,F.jsx)(va,{type:`button`,disabled:!t,onClick:()=>void d(),children:r(o?`authPasswordUpdating`:`authPasswordAction`)}),n&&e?(0,F.jsx)(va,{type:`button`,variant:`outline`,disabled:i,onClick:()=>void u(),children:r(i?`authLoggingOut`:`authLogoutAction`)}):null]}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`authSessionMemoryNotice`)})]})]})}function Va(){let e=Oa(),t=Aa(),n=Pa(),i=Na(),a=Ma(),[o,s]=(0,P.useState)(``),[c,l]=(0,P.useState)(``),[u,d]=(0,P.useState)(``),[f,p]=(0,P.useState)(``),[m,h]=(0,P.useState)(``),g=e.data,_=o.trim().length>0&&Ia(c)&&c===u&&!t.isPending,v=Ia(f)&&f===m&&!i.isPending;return e.isLoading&&!g?(0,F.jsx)(Ra,{contentClassName:`text-sm text-gray-500`,children:r(`loading`)}):e.isError||!g?(0,F.jsxs)(Ra,{contentClassName:`space-y-4`,children:[(0,F.jsx)(`p`,{className:`text-sm text-gray-500`,children:r(`authStatusLoadFailed`)}),(0,F.jsx)(va,{variant:`outline`,onClick:()=>void e.refetch(),children:r(`authRetryStatus`)})]}):g.configured?(0,F.jsx)(Ba,{authenticated:g.authenticated,enabled:g.enabled,username:g.username,nextPassword:f,setNextPassword:p,nextConfirmPassword:m,setNextConfirmPassword:h,canUpdatePassword:v,isUpdatingEnabled:n.isPending,isUpdatingPassword:i.isPending,isLoggingOut:a.isPending,onEnabledChange:async e=>{try{await n.mutateAsync({enabled:e})}catch{}},onPasswordUpdate:async()=>{if(La(f,m))try{await i.mutateAsync({password:f}),p(``),h(``)}catch{}},onLogout:async()=>{try{await a.mutateAsync()}catch{}}}):(0,F.jsx)(za,{setupUsername:o,setSetupUsername:s,setupPassword:c,setSetupPassword:l,setupConfirmPassword:u,setSetupConfirmPassword:d,canSubmitSetup:_,isPending:t.isPending,onSubmit:async()=>{if(La(c,u))try{await t.mutateAsync({username:o.trim(),password:c}),l(``),d(``)}catch{}}})}function Ha(){return(0,F.jsx)(ga,{title:r(`authSecurityTitle`),description:r(`authSecurityDescription`),children:(0,F.jsx)(Va,{})})}var Ua=250,Wa=class{constructor(e){this.requestRecovery=e,this.started=!1,this.recoveryCooldownId=null,this.start=()=>{this.started||(this.started=!0,document.addEventListener(`visibilitychange`,this.handleVisibilityChange),window.addEventListener(`online`,this.handleOnline),window.addEventListener(`pageshow`,this.handlePageShow),window.addEventListener(`focus`,this.handleForegroundSignal))},this.stop=()=>{this.started&&(this.started=!1,document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),window.removeEventListener(`online`,this.handleOnline),window.removeEventListener(`pageshow`,this.handlePageShow),window.removeEventListener(`focus`,this.handleForegroundSignal),this.recoveryCooldownId!==null&&(window.clearTimeout(this.recoveryCooldownId),this.recoveryCooldownId=null))},this.handleVisibilityChange=()=>{this.requestRecoveryIfVisible()},this.handleOnline=()=>{this.requestRecoveryIfVisible()},this.handleForegroundSignal=()=>{this.requestRecoveryIfVisible()},this.handlePageShow=e=>{e.persisted&&this.requestRecoveryIfVisible()},this.requestRecoveryIfVisible=()=>{document.visibilityState!==`visible`||this.recoveryCooldownId!==null||(this.requestRecovery(),this.recoveryCooldownId=window.setTimeout(()=>{this.recoveryCooldownId=null},Ua))}}};function Ga(e){return e.replace(/\s+/g,` `).trim().slice(0,200)}function Ka(e,t){if(t===404&&e.startsWith(`/api/providers/`)&&e.endsWith(`/test`))return`Provider test endpoint is missing. This usually means nextclaw runtime version is outdated.`;if(t===401||t===403)return`Authentication failed. Check apiKey and custom headers.`;if(t===429)return`Rate limited by upstream provider. Retry later or switch model/provider.`;if(t>=500)return`Upstream service error. Retry later and inspect server logs if it persists.`}function qa(e){if(e instanceof Error){let t=e.name?.trim()||`Error`,n=e.message?.trim()||`Unknown error`;return{summary:`${t}: ${n}`,details:{errorName:t,errorMessage:n,...e.stack?.trim()?{errorStack:e.stack.trim()}:{}}}}return{summary:String(e??`Unknown error`),details:{errorName:`NonError`,errorMessage:String(e??`Unknown error`)}}}async function Ja(e,t,n={}){let r=`${e}${t}`,i=(n.method||`GET`).toUpperCase(),a;try{let e=new Headers(n.headers);!(n.body instanceof FormData)&&!e.has(`Content-Type`)&&e.set(`Content-Type`,`application/json`),a=await fetch(r,{credentials:`include`,headers:e,...n})}catch(e){let n=qa(e);return H.reportTransportFailure(n.summary),{ok:!1,error:{code:`NETWORK_ERROR`,message:`Fetch failed on ${i} ${t} | ${n.summary}`,details:{method:i,endpoint:t,url:r,...n.details}}}}let o=await a.text(),s=null;if(o)try{s=JSON.parse(o)}catch{}if(!s){let e=o?Ga(o):``,n=Ka(t,a.status),s=[`Non-JSON response (${a.status} ${a.statusText}) on ${i} ${t}`];return e&&s.push(`body=${e}`),n&&s.push(`hint=${n}`),{ok:!1,error:{code:`INVALID_RESPONSE`,message:s.join(` | `),details:{status:a.status,statusText:a.statusText,method:i,endpoint:t,url:r,bodySnippet:e||void 0,hint:n}}}}return a.ok,s}function Ya(e){let t=e.split(`
14
+ `),r=n.pop()??``;for(let e of n){let n=Mr(e);if(n?.event!==`ncp-event`)continue;let r=Nr(n.data);r&&t(r)}return r}},Fr=class{constructor(e,t){this.requestService=e,this.baseUrl=t}list=async()=>(await this.requestService.get(`/api/agents`)).agents;create=async e=>await this.requestService.post(`/api/agents`,e);update=async(e,t)=>await this.requestService.put(`/api/agents/${encodeURIComponent(e)}`,t);delete=async e=>await this.requestService.delete(`/api/agents/${encodeURIComponent(e)}`);resolveAvatarUrl=e=>Or(this.baseUrl,`/api/agents/${encodeURIComponent(e)}/avatar`)},Ir=class{constructor(e){this.requestService=e}fetchMeta=async()=>await this.requestService.get(`/api/app/meta`);fetchBootstrapStatus=async(e={})=>await this.requestService.get(`/api/runtime/bootstrap-status`,e)},Lr=class{constructor(e){this.requestService=e}list=async(e={})=>await this.requestService.get(e.includeStorageUsage===!1?`/api/app-packages?includeStorageUsage=false`:`/api/app-packages`);get=async e=>await this.requestService.get(`/api/app-packages/${encodeURIComponent(e)}`);inspectDocumentAccess=async e=>await this.requestService.get(`/api/app-packages/${encodeURIComponent(e)}/document-access`);grantDocumentAccess=async(e,t)=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/document-access/grant`,t);revokeDocumentAccess=async(e,t)=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/document-access/revoke`,{scopeId:t});listOperations=async()=>await this.requestService.get(`/api/app-package-operations`);startInstall=async e=>await this.requestService.post(`/api/app-package-operations/install`,e);startUpdate=async(e,t={})=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/update`,t);startRollback=async(e,t)=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/rollback`,{version:t});startUninstall=async(e,t=!1)=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/uninstall`,{purgeData:t});install=async e=>await this.requestService.post(`/api/app-packages/install`,e);enable=async e=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/enable`);disable=async e=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/disable`);update=async(e,t={})=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/update`,t);rollback=async(e,t)=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/rollback`,{version:t});uninstall=async(e,t=!1)=>await this.requestService.request(`/api/app-packages/${encodeURIComponent(e)}`,{method:`DELETE`,body:{purgeData:t}})},Rr=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/app-data`);deleteRetained=async(e,t)=>await this.requestService.request(`/api/app-data/${encodeURIComponent(e)}`,{method:`DELETE`,body:{confirmAppId:t}})},zr=class{constructor(e){this.requestService=e}fetchStatus=async(e={})=>await this.requestService.get(`/api/auth/status`,{...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}});setup=async e=>await this.requestService.post(`/api/auth/setup`,e);login=async e=>await this.requestService.post(`/api/auth/login`,e);logout=async()=>await this.requestService.post(`/api/auth/logout`,{});updatePassword=async e=>await this.requestService.put(`/api/auth/password`,e);updateEnabled=async e=>await this.requestService.put(`/api/auth/enabled`,e)},Br=class{constructor(e){this.requestService=e}start=async(e,t={})=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/start`,t);poll=async(e,t)=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/poll`,t);connect=async(e,t)=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/connect`,t)},Vr=class{constructor(e){this.requestService=e}listDesktopGrants=async()=>await this.requestService.get(`/api/capability-grants?resourceType=desktop.application`);grantDesktopAccess=async e=>await this.requestService.post(`/api/capability-grants`,e);revokeDesktopAccess=async e=>await this.requestService.request(`/api/capability-grants`,{method:`DELETE`,body:{subject:e.subject,resourceType:e.resource.type,target:e.resource.target,access:e.access}});getDesktopStatus=async()=>await this.requestService.get(`/api/desktop-host/status`);requestDesktopPermissions=async()=>await this.requestService.post(`/api/desktop-host/permissions/request`,{});openDesktopPermissionSettings=async()=>await this.requestService.post(`/api/desktop-host/permissions/open-settings`,{})},Hr=class{constructor(e){this.requestService=e}get=async()=>await this.requestService.get(`/api/feature-controls`)},Ur=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/config`);fetchMeta=async()=>await this.requestService.get(`/api/config/meta`);fetchSchema=async()=>await this.requestService.get(`/api/config/schema`);updateModel=async e=>await this.requestService.put(`/api/config/model`,e);updateSearch=async e=>await this.requestService.put(`/api/config/search`,e);updateChannel=async(e,t)=>await this.requestService.put(`/api/config/channels/${encodeURIComponent(e)}`,t);updateRuntime=async e=>await this.requestService.put(`/api/config/runtime`,e);updateSecrets=async e=>await this.requestService.put(`/api/config/secrets`,e);updateProductAnalytics=async e=>await this.requestService.put(`/api/config/product-analytics`,e);fetchProductAnalyticsStatus=async()=>await this.requestService.get(`/api/config/product-analytics/status`);executeAction=async(e,t={})=>await this.requestService.post(`/api/config/actions/${encodeURIComponent(e)}/execute`,t);fetchChatSessionTypes=async()=>await this.requestService.get(`/api/ncp/session-types`);fetchCronJobs=async(e={})=>await this.requestService.get(`/api/cron`,{query:{all:e.all?`1`:void 0,limit:e.limit,offset:e.offset,query:e.query,status:e.status}});deleteCronJob=async e=>await this.requestService.delete(`/api/cron/${encodeURIComponent(e)}`);setCronJobEnabled=async(e,t)=>await this.requestService.put(`/api/cron/${encodeURIComponent(e)}/enable`,t);runCronJob=async(e,t={})=>await this.requestService.post(`/api/cron/${encodeURIComponent(e)}/run`,t)},Wr=class{constructor(e){this.requestService=e}fetchItems=async e=>await this.requestService.get(`${Gr(e.type)}/items`,{query:Kr(e)});fetchItem=async(e,t)=>await this.requestService.get(`${Gr(t)}/items/${encodeURIComponent(e)}`);fetchSkillContent=async e=>await this.requestService.get(`/api/marketplace/skills/items/${encodeURIComponent(e)}/content`);fetchRecommendations=async(e,t={})=>await this.requestService.get(`${Gr(e)}/recommendations`,{query:{...t.scene?.trim()?{scene:t.scene.trim()}:{},...typeof t.limit==`number`&&Number.isFinite(t.limit)?{limit:Math.max(1,Math.trunc(t.limit))}:{}}});fetchSkillScenes=async()=>await this.requestService.get(`/api/marketplace/skills/scenes`);install=async e=>await this.requestService.post(`${Gr(qr(e.type))}/install`,e);fetchInstalled=async e=>await this.requestService.get(`${Gr(e)}/installed`);manage=async e=>await this.requestService.post(`${Gr(qr(e.type))}/manage`,e)};function Gr(e){return e===`skill`?`/api/marketplace/skills`:`/api/marketplace/mcp`}function Kr(e){let{page:t,pageSize:n,q:r,scene:i,sort:a,tag:o}=e,s={};return r?.trim()&&(s.q=r.trim()),o?.trim()&&(s.tag=o.trim()),i?.trim()&&(s.scene=i.trim()),a&&(s.sort=a),typeof t==`number`&&Number.isFinite(t)&&(s.page=Math.max(1,Math.trunc(t))),typeof n==`number`&&Number.isFinite(n)&&(s.pageSize=Math.max(1,Math.trunc(n))),Object.keys(s).length>0?s:void 0}function qr(e){if(!e)throw Error(`Marketplace request type is required.`);return e}var Jr=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/inbox/deliveries`);get=async e=>await this.requestService.get(this.deliveryPath(e));updateState=async(e,t)=>await this.requestService.request(this.deliveryPath(e),{method:`PATCH`,body:{action:t}});delete=async e=>(await this.requestService.delete(this.deliveryPath(e))).deleted;deliveryPath=e=>`/api/inbox/deliveries/${encodeURIComponent(e)}`},Yr=class{constructor(e){this.requestService=e}fetchItems=async(e={})=>await this.requestService.get(`/api/marketplace/mcp/items`,{query:Xr(e)});fetchInstalled=async()=>await this.requestService.get(`/api/marketplace/mcp/installed`);fetchItem=async e=>await this.requestService.get(`/api/marketplace/mcp/items/${encodeURIComponent(e)}`);fetchContent=async e=>await this.requestService.get(`/api/marketplace/mcp/items/${encodeURIComponent(e)}/content`);fetchRecommendations=async(e={})=>await this.requestService.get(`/api/marketplace/mcp/recommendations`,{query:{...e.scene?.trim()?{scene:e.scene.trim()}:{},...typeof e.limit==`number`&&Number.isFinite(e.limit)?{limit:Math.max(1,Math.trunc(e.limit))}:{}}});install=async e=>await this.requestService.post(`/api/marketplace/mcp/install`,e);manage=async e=>await this.requestService.post(`/api/marketplace/mcp/manage`,e);doctor=async e=>await this.requestService.post(`/api/marketplace/mcp/doctor`,{name:e})};function Xr(e){let{page:t,pageSize:n,q:r,sort:i,tag:a}=e,o={};return r?.trim()&&(o.q=r.trim()),a?.trim()&&(o.tag=a.trim()),i&&(o.sort=i),typeof t==`number`&&Number.isFinite(t)&&(o.page=Math.max(1,Math.trunc(t))),typeof n==`number`&&Number.isFinite(n)&&(o.pageSize=Math.max(1,Math.trunc(n))),Object.keys(o).length>0?o:void 0}var Zr=class{constructor(e){this.requestService=e}testConnection=async e=>await this.requestService.post(`/api/mcp/servers/test`,e);createConnection=async e=>await this.requestService.post(`/api/mcp/servers`,e)},Qr=`x-nextclaw-panel-bridge-session`;function $r(e){return e?{[Qr]:e}:void 0}var ei=class{constructor(e){this.requestService=e}listPanelApps=async()=>await this.requestService.get(`/api/panel-apps`);getPanelApp=async e=>await this.requestService.get(`/api/panel-apps/${encodeURIComponent(e)}`);updatePanelAppPreferences=async(e,t)=>await this.requestService.request(`/api/panel-apps/${encodeURIComponent(e)}/preferences`,{method:`PATCH`,body:t});recordPanelAppOpened=async e=>await this.requestService.post(`/api/panel-apps/${encodeURIComponent(e)}/open`);deletePanelApp=async e=>await this.requestService.delete(`/api/panel-apps/${encodeURIComponent(e)}`);createBridgeSession=async e=>await this.requestService.post(`/api/panel-app-bridge-sessions`,e);deleteBridgeSession=async e=>await this.requestService.delete(`/api/panel-app-bridge-sessions/${encodeURIComponent(e)}`);grantClient=async e=>await this.requestService.post(`/api/panel-app-client-grants/${encodeURIComponent(e)}`,{});revokeClient=async e=>await this.requestService.delete(`/api/panel-app-client-grants/${encodeURIComponent(e)}`);sendAgentMessage=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent/send`,e,{headers:$r(t.bridgeSessionToken)});generateAgentObject=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent/generate-object`,e,{headers:$r(t.bridgeSessionToken)});grantAgentCapability=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent-capabilities/${encodeURIComponent(e)}/grant`,{},{headers:$r(t.bridgeSessionToken)})},ti=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/providers`);listTemplates=async()=>await this.requestService.get(`/api/provider-templates`);listModelCatalog=async()=>await this.requestService.get(`/api/provider-model-catalog`);update=async(e,t)=>await this.requestService.put(`/api/providers/${encodeURIComponent(e)}`,t);create=async(e={})=>await this.requestService.post(`/api/providers`,e);delete=async e=>await this.requestService.delete(`/api/providers/${encodeURIComponent(e)}`);testConnection=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/test`,t);discoverModels=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/models/discover`,t);startAuth=async(e,t={})=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/start`,t);pollAuth=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/poll`,t);importAuthFromCli=async e=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/import-cli`,{})},ni=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/projects`);getAgreement=async e=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/agreement`);listProjectSkills=async e=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/skills`);create=async e=>await this.requestService.post(`/api/projects`,e);addExisting=async e=>await this.requestService.post(`/api/projects/existing`,e);remove=async(e,t)=>await this.requestService.request(`/api/projects/${encodeURIComponent(e)}`,{method:`DELETE`,body:{confirmProjectId:t}});listWork=async(e,t={})=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/work`,{query:t});listRecentWorkArtifacts=async(e,t={})=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/work/artifacts`,{query:t});getWorkSummary=async e=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/work/summary`);getWorkItem=async(e,t)=>await this.requestService.get(ri(e,t));createWorkItem=async(e,t)=>await this.requestService.post(`/api/projects/${encodeURIComponent(e)}/work/items`,t);updateWorkItem=async(e,t,n)=>await this.requestService.patch(ri(e,t),n);deleteWorkItem=async(e,t)=>await this.requestService.delete(ri(e,t));restoreWorkItem=async(e,t)=>await this.requestService.post(`${ri(e,t)}/restore`);listWorkItemActivities=async(e,t,n={})=>await this.requestService.get(`${ri(e,t)}/activities`,{query:n});linkWorkItemArtifact=async(e,t,n)=>await this.requestService.post(`${ri(e,t)}/artifacts`,n);unlinkWorkItemArtifact=async(e,t,n)=>await this.requestService.delete(`${ri(e,t)}/artifacts/${encodeURIComponent(n)}`);listWorkStates=async e=>await this.requestService.get(`/api/projects/${encodeURIComponent(e)}/work/states`);createWorkState=async(e,t)=>await this.requestService.post(`/api/projects/${encodeURIComponent(e)}/work/states`,t);updateWorkState=async(e,t,n)=>await this.requestService.patch(ii(e,t),n);deleteWorkState=async(e,t,n)=>await this.requestService.request(ii(e,t),{method:`DELETE`,body:{migrateToStateId:n??null}})};function ri(e,t){return`/api/projects/${encodeURIComponent(e)}/work/items/${encodeURIComponent(t)}`}function ii(e,t){return`/api/projects/${encodeURIComponent(e)}/work/states/${encodeURIComponent(t)}`}var ai=class{baseUrl;transport;webSocketFactory;constructor(e){this.options=e,this.baseUrl=e.baseUrl,this.transport=e.transport,this.webSocketFactory=e.webSocketFactory}subscribe=(e,t={})=>{if(this.transport?.subscribe){let t=this.transport.subscribe(e);return{close:()=>{t()}}}let n=null,r=null,i=!1,a=Math.max(200,t.reconnectDelayMs??1e3),o=()=>{r!==null&&(clearTimeout(r),r=null)},s=t=>{e(t)},c=()=>{try{n=this.createSocket(Ar(this.baseUrl,`/ws`))}catch(e){t.onError?.(e),i||(r=setTimeout(c,a));return}n.onopen=()=>{s({type:`connection.open`})},n.onmessage=e=>{let t=this.parseEvent(e.data);t&&s(t)},n.onerror=e=>{t.onError?.(e),s({type:`connection.error`,payload:{message:`WebSocket error`}})},n.onclose=()=>{s({type:`connection.close`}),n=null,i||(o(),r=setTimeout(c,a))}};return c(),{close:()=>{i=!0,o(),n?.close(),n=null}}};createSocket=e=>{if(this.webSocketFactory)return this.webSocketFactory(e);if(typeof globalThis.WebSocket!=`function`)throw Error(`WebSocket is unavailable. Provide webSocketFactory when creating the client.`);return new globalThis.WebSocket(e)};parseEvent=e=>{if(typeof e!=`string`)return null;try{let t=JSON.parse(e);return t&&typeof t==`object`&&`type`in t?t:null}catch{return null}}},oi=class{constructor(e){this.requestService=e}fetchStatus=async()=>await this.requestService.get(`/api/remote/status`);fetchDoctor=async()=>await this.requestService.get(`/api/remote/doctor`);login=async e=>await this.requestService.post(`/api/remote/login`,e);startBrowserAuth=async(e={})=>await this.requestService.post(`/api/remote/auth/start`,e);pollBrowserAuth=async e=>await this.requestService.post(`/api/remote/auth/poll`,e);logout=async()=>await this.requestService.post(`/api/remote/logout`,{});updateAccountProfile=async e=>await this.requestService.put(`/api/remote/account/profile`,e);updateSettings=async e=>await this.requestService.put(`/api/remote/settings`,e);controlService=async e=>await this.requestService.post(`/api/remote/service/${e}`,{})},si=class extends Error{status;code;details;constructor(e){let{code:t,details:n,message:r,status:i}=e;super(r),this.name=`NextClawClientError`,this.status=i,this.code=t,this.details=n}};function V(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function ci(e,t){return V(e)?e[t]:void 0}var li=class{baseUrl;fetchImpl;requestTimeoutMs;defaultHeaders;transport;constructor(e){this.options=e;let{baseUrl:t,fetchImpl:n,headers:r,requestTimeoutMs:i,token:a}=e;this.baseUrl=t,this.fetchImpl=jr(n),this.requestTimeoutMs=Math.max(1e3,i??15e3),this.transport=e.transport,this.defaultHeaders={Accept:`application/json`,...r??{},...a?{Authorization:`Bearer ${a}`}:{}}}request=async(e,t={})=>{let{body:n,headers:r,method:i,query:a,signal:o,timeoutMs:s}=t;if(this.transport)return await this.requestWithTransport(e,t);let c=new AbortController,l=Math.max(1e3,s??this.requestTimeoutMs),u=this.bindAbortSignal(c,o),d=setTimeout(()=>c.abort(),l),f={...this.defaultHeaders,...r??{}},p=this.normalizeRequestBody(n,f);try{let t=await this.fetchImpl(Or(this.baseUrl,kr(e,this.serializeQuery(a))),{method:i??`GET`,headers:f,body:p,signal:c.signal}),n=await t.json();if(!t.ok){let e=this.extractApiError(n);throw new si({message:e.message,status:t.status,code:e.code,details:e.details})}if(!this.isApiResponse(n))throw new si({message:`Unexpected NextClaw API response shape.`,status:t.status});if(!n.ok)throw new si({message:n.error.message,status:t.status,code:n.error.code,details:n.error.details});return n.data}catch(e){throw e instanceof si?e:e instanceof Error&&e.name===`AbortError`?new si({message:`NextClaw API request timed out after ${l}ms.`}):new si({message:e instanceof Error?e.message:`NextClaw API request failed.`})}finally{o?.removeEventListener(`abort`,u),clearTimeout(d)}};bindAbortSignal=(e,t)=>{let n=()=>e.abort(t?.reason);return t?t.aborted?(e.abort(t.reason),n):(t.addEventListener(`abort`,n,{once:!0}),n):n};requestWithTransport=async(e,t)=>{let{body:n,headers:r,method:i,query:a,signal:o,timeoutMs:s}=t,{transport:c}=this;if(!c)throw new si({message:`NextClaw transport is not configured.`});try{return await c.request({method:i??`GET`,path:e,...n===void 0?{}:{body:n},...a?{query:a}:{},...r?{headers:r}:{},...o?{signal:o}:{},...s===void 0?{}:{timeoutMs:s}})}catch(e){if(e instanceof si)throw e;let t=ci(e,`code`),n=ci(e,`details`),r=ci(e,`status`);throw new si({message:e instanceof Error?e.message:`NextClaw API request failed.`,code:typeof t==`string`?t:void 0,details:V(n)?n:void 0,status:typeof r==`number`?r:void 0})}};get=async(e,t={})=>await this.request(e,{...t,method:`GET`});post=async(e,t,n={})=>await this.request(e,{...n,method:`POST`,...t===void 0?{}:{body:t}});put=async(e,t,n={})=>await this.request(e,{...n,method:`PUT`,...t===void 0?{}:{body:t}});patch=async(e,t,n={})=>await this.request(e,{...n,method:`PATCH`,...t===void 0?{}:{body:t}});delete=async(e,t={})=>await this.request(e,{...t,method:`DELETE`});upload=async(e,t,n={})=>{let{headers:r,signal:i,timeoutMs:a}=n;if(this.transport?.upload)return await this.transport.upload({path:e,formData:t,...r?{headers:r}:{},...i?{signal:i}:{},...a===void 0?{}:{timeoutMs:a}});let o=new AbortController,s=Math.max(1e3,a??this.requestTimeoutMs),c=()=>o.abort(i?.reason);i&&(i.aborted?o.abort(i.reason):i.addEventListener(`abort`,c,{once:!0}));let l=setTimeout(()=>o.abort(),s);try{let n=await this.fetchImpl(Or(this.baseUrl,e),{method:`POST`,headers:{Accept:`application/json`,...ui(this.options.token)??{},...this.options.headers??{},...r??{}},body:t,signal:o.signal}),i=await n.json();if(!n.ok){let e=this.extractApiError(i);throw new si({message:e.message,status:n.status,code:e.code,details:e.details})}if(!this.isApiResponse(i)||!i.ok)throw new si({message:`Unexpected NextClaw upload response shape.`,status:n.status});return i.data}catch(e){throw e instanceof si?e:e instanceof Error&&e.name===`AbortError`?new si({message:`NextClaw API upload timed out after ${s}ms.`}):new si({message:e instanceof Error?e.message:`NextClaw API upload failed.`})}finally{i?.removeEventListener(`abort`,c),clearTimeout(l)}};isApiResponse=e=>typeof e==`object`&&!!e&&`ok`in e;extractApiError=e=>{if(this.isApiResponse(e)&&!e.ok)return e.error;if(typeof e==`object`&&e&&`message`in e){let t=e;return{code:typeof t.code==`string`?t.code:`HTTP_ERROR`,message:typeof t.message==`string`?t.message:`NextClaw API request failed.`,details:t.details!==null&&typeof t.details==`object`?t.details:void 0}}return{code:`HTTP_ERROR`,message:`NextClaw API request failed.`}};normalizeRequestBody=(e,t)=>{if(e!==void 0)return e instanceof FormData||e instanceof URLSearchParams||e instanceof Blob||e instanceof ArrayBuffer?e:typeof e==`string`?(!(`Content-Type`in t)&&!(`content-type`in t)&&(t[`Content-Type`]=`application/json`),e):(!(`Content-Type`in t)&&!(`content-type`in t)&&(t[`Content-Type`]=`application/json`),JSON.stringify(e))};serializeQuery=e=>{if(!e)return;if(e instanceof URLSearchParams)return e;let t=new URLSearchParams;for(let[n,r]of Object.entries(e)){let e=Array.isArray(r)?r:[r];for(let r of e)r!=null&&t.append(n,String(r))}return t}};function ui(e){return e?{Authorization:`Bearer ${e}`}:null}var di=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/runtime/control`);startService=async()=>await this.requestService.post(`/api/runtime/control/start-service`,{});restartService=async()=>await this.requestService.post(`/api/runtime/control/restart-service`,{});stopService=async()=>await this.requestService.post(`/api/runtime/control/stop-service`,{})},fi=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/runtime/update`);check=async()=>await this.requestService.post(`/api/runtime/update/check`,{});download=async()=>await this.requestService.post(`/api/runtime/update/download`,{});apply=async()=>await this.requestService.post(`/api/runtime/update/apply`,{});updateChannel=async e=>await this.requestService.put(`/api/runtime/update/channel`,{channel:e})},pi=class{constructor(e){this.requestService=e}browse=async e=>{let{basePath:t,includeFiles:n,path:r}=e??{},i=typeof r==`string`?r.trim():``,a=typeof t==`string`?t.trim():``;return await this.requestService.get(`/api/server-paths/browse`,{query:{...i?{path:i}:{},...a?{basePath:a}:{},...n?{includeFiles:`1`}:{}}})};watch=async e=>await this.requestService.post(`/api/server-paths/watch`,e);unwatch=async e=>{await this.requestService.delete(`/api/server-paths/watch`,{query:{subscriptionId:e.trim()}})};createDirectory=async e=>await this.requestService.post(`/api/server-paths/directory`,e);createFile=async e=>await this.requestService.post(`/api/server-paths/file`,e);renameEntry=async e=>await this.requestService.request(`/api/server-paths/entry`,{method:`PATCH`,body:e});deleteEntry=async e=>await this.requestService.delete(`/api/server-paths/entry`,{query:{basePath:e.basePath.trim(),path:e.path.trim()}});uploadFiles=async e=>{let{basePath:t,files:n,overwrite:r,targetPath:i}=e,a=new FormData;return a.append(`basePath`,t.trim()),a.append(`targetPath`,i.trim()),a.append(`overwrite`,r?`true`:`false`),n.forEach(e=>a.append(`files`,e)),await this.requestService.upload(`/api/server-paths/files`,a,{timeoutMs:12e4})};read=async e=>{let{basePath:t,line:n,path:r}=e,i=r.trim(),a=typeof t==`string`?t.trim():``,o=Number.isSafeInteger(n)&&(n??0)>0?n:null;return await this.requestService.get(`/api/server-paths/read`,{query:{path:i,...a?{basePath:a}:{},...o?{line:String(o)}:{}}})};search=async e=>{let{basePath:t,limit:n,query:r}=e,i=t.trim(),a=r?.trim()??``,o=Number.isSafeInteger(n)&&(n??0)>0?n:null;return await this.requestService.get(`/api/server-paths/search`,{query:{basePath:i,...a?{query:a}:{},...o?{limit:String(o)}:{}}})}},mi=`x-nextclaw-panel-bridge-session`;function hi(e){return e?{[mi]:e}:void 0}var gi=class{constructor(e){this.requestService=e}listServiceApps=async()=>await this.requestService.get(`/api/service-apps`);getServiceApp=async e=>await this.requestService.get(`/api/service-apps/${encodeURIComponent(e)}`);restartServiceApp=async e=>await this.requestService.post(`/api/service-apps/${encodeURIComponent(e)}/restart`);deleteServiceApp=async(e,t=!1)=>await this.requestService.request(`/api/service-apps/${encodeURIComponent(e)}`,{method:`DELETE`,body:{purgeData:t}});listServiceActions=async(e={})=>{let t=e.appId?`?${new URLSearchParams({appId:e.appId}).toString()}`:``;return await this.requestService.get(`/api/service-actions${t}`,{headers:hi(e.bridgeSessionToken)})};listVerificationRecords=async(e={})=>{let t=new URLSearchParams;e.acceptanceId&&t.set(`acceptanceId`,e.acceptanceId),e.appId&&t.set(`appId`,e.appId),e.limit!==void 0&&t.set(`limit`,String(e.limit));let n=t.size>0?`?${t.toString()}`:``;return await this.requestService.get(`/api/runtime-verification-records${n}`,{headers:hi(e.bridgeSessionToken)})};getPortableRuntimeAcceptanceContract=async(e={})=>{let t=e.locale?`?${new URLSearchParams({locale:e.locale})}`:``;return await this.requestService.get(`/api/portable-runtime/acceptance/contract${t}`,{headers:hi(e.bridgeSessionToken)})};getPortableRuntimeAcceptanceStatus=async(e={})=>{let t=new URLSearchParams;e.appId&&t.set(`appId`,e.appId),e.locale&&t.set(`locale`,e.locale);let n=t.size>0?`?${t.toString()}`:``;return await this.requestService.get(`/api/portable-runtime/acceptance/status${n}`,{headers:hi(e.bridgeSessionToken)})};exportPortableRuntimeAcceptance=async(e={})=>{let t=new URLSearchParams;e.appId&&t.set(`appId`,e.appId),e.locale&&t.set(`locale`,e.locale);let n=t.size>0?`?${t.toString()}`:``;return await this.requestService.get(`/api/portable-runtime/acceptance/export${n}`,{headers:hi(e.bridgeSessionToken)})};discoverServiceAppActions=async e=>await this.requestService.post(`/api/service-apps/${encodeURIComponent(e)}/actions/discover`,{});invokeServiceAction=async(e,t,n={})=>await this.requestService.post(`/api/service-actions/${encodeURIComponent(e)}/invoke`,{input:t??{}},{headers:hi(n.bridgeSessionToken)});grantServiceAction=async(e,t={})=>await this.requestService.post(`/api/service-actions/${encodeURIComponent(e)}/grant`,{},{headers:hi(t.bridgeSessionToken)});grantServiceActions=async(e,t={})=>await this.requestService.post(`/api/service-action-grants`,{actionIds:e},{headers:hi(t.bridgeSessionToken)});grantAgentServiceActions=async(e,t)=>await this.requestService.post(`/api/agents/${encodeURIComponent(e)}/service-action-grants`,{actionIds:t});listServiceActionGrants=async()=>await this.requestService.get(`/api/service-action-grants`);revokeServiceAction=async(e,t={})=>await this.requestService.delete(`/api/service-actions/${encodeURIComponent(e)}/grant`,{headers:hi(t.bridgeSessionToken)});revokeServiceActionGrant=async e=>{let{actionId:t,caller:n}=e,r=new URLSearchParams({surface:n.surface,callerId:n.surface===`panel-app`?n.appId:n.agentId});return await this.requestService.delete(`/api/service-action-grants/${encodeURIComponent(t)}?${r.toString()}`)}},_i=class{constructor(e,t){this.requestService=e,this.eventBus=t}list=async e=>{let{limit:t,page:n,pageSize:r,query:i,peerId:a}=e??{},o=new URLSearchParams;typeof t==`number`&&Number.isFinite(t)&&o.set(`limit`,String(Math.max(1,Math.trunc(t)))),typeof n==`number`&&Number.isFinite(n)&&o.set(`page`,String(Math.max(1,Math.trunc(n)))),typeof r==`number`&&Number.isFinite(r)&&o.set(`pageSize`,String(Math.max(1,Math.trunc(r)))),i?.trim()&&o.set(`query`,i.trim());let s=a?.trim();return s&&o.set(`peerId`,s),await this.requestService.get(`/api/ncp/sessions`,{...o.size>0?{query:o}:{}})};get=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}`);listMessages=async(e,t={})=>{let n=typeof t==`number`?{limit:t}:t,r=new URLSearchParams;return typeof n.limit==`number`&&Number.isFinite(n.limit)&&r.set(`limit`,String(Math.max(1,Math.trunc(n.limit)))),n.cursor?.trim()&&r.set(`cursor`,n.cursor.trim()),n.toolPayload===`summary`&&r.set(`toolPayload`,`summary`),n.initialPayload===`compact`&&r.set(`initialPayload`,`compact`),await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/messages`,{...r.size>0?{query:r}:{},...n.signal?{signal:n.signal}:{}})};getUsage=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/usage`);listSkills=async(e,t)=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/skills`,{query:t?.projectRoot?.trim()?{projectRoot:t.projectRoot.trim()}:void 0});listQueuedInputs=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs`);deleteQueuedInput=async(e,t)=>await this.requestService.delete(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs/${encodeURIComponent(t)}`);listPendingInputs=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/pending-inputs`);listUserQuestions=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/user-questions`);resolveUserQuestion=async(e,t,n)=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/user-questions/${encodeURIComponent(t)}/resolve`,n);steerQueuedInput=async(e,t)=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs/${encodeURIComponent(t)}/steer`);update=async(e,t)=>await this.requestService.put(`/api/ncp/sessions/${encodeURIComponent(e)}`,t);compactContext=async e=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/context/compact`);delete=async e=>await this.requestService.delete(`/api/ncp/sessions/${encodeURIComponent(e)}`);uploadAssets=async e=>{let t=new FormData;for(let n of e)t.append(`files`,n);return await this.requestService.upload(`/api/ncp/assets`,t)};subscribe=(e,t={})=>({close:this.eventBus.subscribeAll(t=>{e(t)})})},vi=class{constructor(e){this.requestService=e}list=async(e={})=>await this.requestService.get(`/api/system-object-references`,{query:e});resolve=async e=>await this.requestService.post(`/api/system-object-references/resolve`,{uri:e})},yi=class{baseUrl;agentRuns;app;appPackages;appData;agents;auth;channelAuth;capabilityAccess;featureControls;config;eventBus;marketplace;inboxDeliveries;mcpMarketplace;mcp;panelApps;providers;projects;realtime;remote;runtimeControl;runtimeUpdate;serverPaths;serviceApps;sessions;systemObjectReferences;constructor(e){this.baseUrl=Dr(e.baseUrl);let t={...e,baseUrl:this.baseUrl},n=new li(t);this.realtime=new ai(t);let r=null;this.eventBus=new zt({onFirstSubscriber:()=>{r??=this.realtime.subscribe(e=>{this.eventBus.emitEnvelope({type:e.type,payload:`payload`in e?e.payload:void 0,emittedAt:`emittedAt`in e?e.emittedAt:new Date().toISOString(),source:`source`in e?e.source:`realtime`})})},onNoSubscribers:()=>{r?.close(),r=null}}),this.agentRuns=new Pr(n,t),this.app=new Ir(n),this.appPackages=new Lr(n),this.appData=new Rr(n),this.agents=new Fr(n,this.baseUrl),this.auth=new zr(n),this.channelAuth=new Br(n),this.capabilityAccess=new Vr(n),this.featureControls=new Hr(n),this.config=new Ur(n),this.marketplace=new Wr(n),this.inboxDeliveries=new Jr(n),this.mcpMarketplace=new Yr(n),this.mcp=new Zr(n),this.panelApps=new ei(n),this.providers=new ti(n),this.projects=new ni(n),this.remote=new oi(n),this.runtimeControl=new di(n),this.runtimeUpdate=new fi(n),this.serverPaths=new pi(n),this.serviceApps=new gi(n),this.sessions=new _i(n,this.eventBus),this.systemObjectReferences=new vi(n)}},bi=`http://127.0.0.1:55667`,xi=(()=>{let e=(void 0)?.trim();return e?e.replace(/\/$/,``):typeof window<`u`&&window.location?.origin?window.location.origin:bi})(),Si={"Use this page to manage the local NextClaw service. Closing the browser does not stop the service.":`runtimeControlManagedLocalMessage`,"This page is served by the running local service. Closing the browser does not stop it.":`runtimeControlManagedLocalHint`,"This page is served by the running local service.":`runtimeControlManagedLocalHintShort`,"This page is already hosted by the running local service.":`runtimeControlStartUnavailableHosted`,"App restart is only available in the desktop shell.":`runtimeControlRestartAppDesktopOnly`,"The local service is not running.":`runtimeControlServiceNotRunning`,"The local service is already stopped.":`runtimeControlServiceAlreadyStopped`,"Managed service started.":`runtimeControlManagedServiceStarted`,"Managed service start scheduled.":`runtimeControlManagedServiceStartScheduled`,"Restart scheduled. This page may disconnect for a few seconds.":`runtimeControlRestartScheduled`,"Stop scheduled. This page will disconnect shortly.":`runtimeControlStopScheduled`,"runtime healthy":`runtimeControlHealthy`};function Ci(e){return e.activeSystemAction?`service-transitioning`:e.lifecyclePhase}function wi(e){return e===`ready`?`connected`:e===`startup-failed`||e===`stalled`?`disconnected`:`connecting`}function Ti(e){let t=Ci(e);return{...e,phase:t,connectionStatus:wi(t)}}function Ei(e){return e===`start-service`?`starting-service`:e===`stop-service`?`stopping-service`:e===`restart-service`?`restarting-service`:`restarting-app`}function Di(e){return e===`start-service`?`starting`:e===`stop-service`?`stopping`:e===`restart-service`?`restarting`:null}function Oi(e){if(!e)return null;let t=Si[e.trim()];return t?r(t):e}function ki(e){let{action:t,message:n}=e;return{action:t,lifecycle:Ei(t),serviceState:Di(t),message:n}}function Ai(e){if(e.runtimeControlError)return{tone:`inactive`,title:r(`runtimeControlLoadFailed`),description:e.runtimeControlError,reasonLines:[],actionLabel:null,isBusy:!1};if(!e.runtimeControlView)return{tone:`inactive`,title:r(`runtimeStatusLoadingTitle`),description:r(`runtimeStatusLoadingDescription`),reasonLines:[],actionLabel:null,isBusy:!!e.activeSystemAction};if(e.activeSystemAction)return{tone:`attention`,title:r(`runtimeControlTitle`),description:Oi(e.activeSystemAction.message)||Oi(e.runtimeControlView.message)||r(`runtimeControlDescription`),reasonLines:[],actionLabel:null,isBusy:!0};let t=e.runtimeControlView;return t.pendingRestart?{tone:`attention`,title:r(`runtimeStatusPendingRestartTitle`),description:r(`runtimeStatusPendingRestartDescription`),reasonLines:t.pendingRestart.changedPaths.length>0?t.pendingRestart.changedPaths.map(e=>r(`runtimeStatusPendingRestartReasonItem`).replace(`{path}`,e)):[t.pendingRestart.message],actionLabel:t.canRestartService.available?r(`runtimeStatusRestartAction`):null,isBusy:!1}:{tone:t.lifecycle===`healthy`?`healthy`:`inactive`,title:r(`runtimeStatusHealthyTitle`),description:r(`runtimeStatusHealthyDescription`),reasonLines:[],actionLabel:null,isBusy:!1}}function ji(e){let t=e.activeSystemAction,n=e.runtimeControlView;return{controlView:n,visibleLifecycle:t?.lifecycle??n?.lifecycle??`healthy`,visibleServiceState:t?.serviceState??n?.serviceState??`unknown`,visibleMessage:Oi(t?.message)||Oi(e.lastSystemActionError)||Oi(n?.message)||r(`runtimeControlDescription`),busyAction:t?.action??null,busy:!!t,pendingRestart:n?.pendingRestart??null,errorMessage:Oi(e.lastSystemActionError)||Oi(e.runtimeControlError)||null}}var Mi=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},Ni=(e=>e?Mi(e):Mi),Pi=e=>e;function Fi(e,t=Pi){let n=P.useSyncExternalStore(e.subscribe,P.useCallback(()=>t(e.getState()),[e,t]),P.useCallback(()=>t(e.getInitialState()),[e,t]));return P.useDebugValue(n),n}var Ii=e=>{let t=Ni(e),n=e=>Fi(t,e);return Object.assign(n,t),n},Li=(e=>e?Ii(e):Ii),Ri={lifecyclePhase:`cold-starting`,hasReachedReady:!1,lastReadyAt:null,recoveryStartedAt:null,bootstrapStatus:null,lastError:null,lastTransportError:null,runtimeControlView:null,runtimeControlError:null,activeSystemAction:null,lastSystemActionError:null},zi=Li(e=>({state:Ri,patchState:t=>e(e=>({state:{...e.state,...t}}))}));function Bi(e){if(e.length===0)throw Error(`AdaptiveCadence requires at least one stage.`);for(let t of e)if(t.delaysMs.length===0)throw Error(`AdaptiveCadence stage requires at least one delay.`)}var Vi=class{constructor(e){this.options=e,this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.lastSuccessAt=null,this.manualTriggerPending=!1,this.completed=!1,this.recordFailure=()=>{let e=this.clock();this.completed=!1,this.manualTriggerPending=!1,this.startedAt=this.startedAt??e,this.lastFailureAt=e,this.attempt+=1},this.recordSuccess=()=>{this.lastSuccessAt=this.clock(),this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.manualTriggerPending=!1,this.completed=!0},this.reset=()=>{this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.lastSuccessAt=null,this.manualTriggerPending=!1,this.completed=!1},this.requestManualTrigger=()=>{this.completed=!1,this.manualTriggerPending=!0},this.hasManualTrigger=()=>this.manualTriggerPending,this.getNextDelay=(e={})=>{if(this.manualTriggerPending)return e.consumeManualTrigger&&(this.manualTriggerPending=!1),this.options.manualTriggerDelayMs;if(this.completed)return this.options.successDelayMs;if(this.startedAt===null)return this.options.idleDelayMs;let t=this.resolveStage(this.clock()-this.startedAt);return t.delaysMs[Math.min(this.attempt-1,t.delaysMs.length-1)]},this.getSnapshot=()=>({attempt:this.attempt,startedAt:this.startedAt,lastFailureAt:this.lastFailureAt,lastSuccessAt:this.lastSuccessAt,manualTriggerPending:this.manualTriggerPending,completed:this.completed}),this.resolveStage=e=>this.options.stages.find(t=>t.untilElapsedMs===void 0||e<t.untilElapsedMs)??this.options.stages[this.options.stages.length-1],Bi(e.stages),this.clock=e.clock??(()=>Date.now())}},Hi=3e4,Ui={idleDelayMs:1e3,manualTriggerDelayMs:0,successDelayMs:!1,stages:[{untilElapsedMs:3e4,delaysMs:[500,1e3,2e3,4e3,5e3]},{untilElapsedMs:5*6e4,delaysMs:[1e4,15e3,3e4]},{delaysMs:[6e4]}]};function Wi(e){return e instanceof Error?e.message:String(e??``)}function Gi(e){return e&&(e.ncpAgent.error?.trim()||e.lastError?.trim())||null}function Ki(e){return r(e===`start-service`?`runtimeControlStartingServiceHelp`:e===`restart-service`?`runtimeControlRestartingServiceHelp`:e===`stop-service`?`runtimeControlStoppingServiceHelp`:`runtimeControlRestartingAppHelp`)}var H=new class{constructor(){this.recoveryTimeoutId=null,this.runtimeBootstrapProbeCadence=new Vi(Ui),this.getRuntimeBootstrapPollInterval=e=>{let{lifecyclePhase:t,activeSystemAction:n}=this.getState(),r=t===`recovering`||t===`stalled`||n?.lifecycle===`recovering`;return this.runtimeBootstrapProbeCadence.hasManualTrigger()?this.runtimeBootstrapProbeCadence.getNextDelay({consumeManualTrigger:!0}):!r&&e?.ncpAgent.state===`ready`?!1:this.runtimeBootstrapProbeCadence.getNextDelay({consumeManualTrigger:!0})},this.getRuntimeControl=async()=>this.decorateForCurrentEnvironment(await fc()),this.reportBootstrapStatus=e=>{let t=this.getState(),n=Gi(e);if(e.ncpAgent.state===`ready`){this.transitionToReady(e);return}if(!t.hasReachedReady){if(e.ncpAgent.state===`error`||e.phase===`error`){this.transitionToStartupFailed(n,e);return}this.transitionToColdStarting(e);return}this.transitionToRecovering(n,e)},this.reportBootstrapQueryError=e=>{let t=Wi(e).trim();if(t&&!this.reportTransportFailure(t)){if(this.getState().hasReachedReady){this.transitionToRecovering(t);return}this.transitionToStartupFailed(t)}},this.reportTransportFailure=e=>{let t=Wi(e).trim();return _o(t)?this.getState().hasReachedReady?(this.transitionToRecovering(t),!0):(this.runtimeBootstrapProbeCadence.recordFailure(),this.patchState({lastTransportError:t}),!0):!1},this.handleConnectionInterrupted=e=>{let t=this.getState(),n=e?.trim()||null;if(!t.hasReachedReady){this.runtimeBootstrapProbeCadence.recordFailure(),n&&this.patchState({lastTransportError:n});return}this.transitionToRecovering(n)},this.handleConnectionRestored=()=>{let e=this.getState();e.bootstrapStatus?.ncpAgent.state===`ready`&&this.transitionToReady(e.bootstrapStatus)},this.reportRuntimeControlView=e=>{this.patchState({runtimeControlView:e,runtimeControlError:null})},this.reportRuntimeControlError=e=>{let t=Wi(e).trim();t&&this.patchState({runtimeControlError:t})},this.runRuntimeControlAction=async e=>{this.patchState({activeSystemAction:ki({action:e,message:Ki(e)}),lastSystemActionError:null});try{let t=await this.executeRuntimeControlAction(e);if(e===`restart-app`)return t;if(e===`stop-service`)return await this.refreshRuntimeControlView(),this.clearActiveSystemAction(),t;this.patchState({activeSystemAction:{action:e,lifecycle:`recovering`,serviceState:null,message:r(`runtimeControlRecoveringHelp`)}}),this.runtimeBootstrapProbeCadence.requestManualTrigger();let n=await this.waitForRecovery();return this.syncRuntimeControlQueryCache(n),this.reportRuntimeControlView(n),this.clearActiveSystemAction(),t}catch(t){let n=t instanceof Error?t.message:r(`runtimeControlActionFailed`);throw this.patchState({activeSystemAction:{action:e,lifecycle:`failed`,serviceState:e===`stop-service`?`running`:e===`restart-app`?null:`unknown`,message:n},lastSystemActionError:n}),t}},this.getStatusView=()=>Ti(this.getState()),this.requestRuntimeBootstrapProbeNow=()=>{this.runtimeBootstrapProbeCadence.requestManualTrigger(),It.refetchQueries({queryKey:[`runtime-bootstrap-status`]})},this.resetForTests=()=>{this.clearRecoveryTimeout(),this.runtimeBootstrapProbeCadence.reset(),zi.setState({state:Ri})},this.getState=()=>zi.getState().state,this.patchState=e=>{zi.getState().patchState(e)},this.transitionToColdStarting=e=>{this.runtimeBootstrapProbeCadence.recordFailure(),this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`cold-starting`,recoveryStartedAt:null,bootstrapStatus:e,lastError:null})},this.transitionToStartupFailed=(e,t)=>{this.runtimeBootstrapProbeCadence.recordFailure(),this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`startup-failed`,recoveryStartedAt:null,bootstrapStatus:t??this.getState().bootstrapStatus,lastError:e})},this.transitionToRecovering=(e,t)=>{this.runtimeBootstrapProbeCadence.recordFailure();let n=this.getState();if(!n.hasReachedReady){this.patchState({lastTransportError:e?.trim()||n.lastTransportError});return}n.lifecyclePhase!==`recovering`&&n.lifecyclePhase!==`stalled`&&(this.clearRecoveryTimeout(),this.recoveryTimeoutId=window.setTimeout(()=>{this.recoveryTimeoutId=null,this.getState().lifecyclePhase===`recovering`&&this.patchState({lifecyclePhase:`stalled`})},Hi)),this.patchState({lifecyclePhase:n.lifecyclePhase===`stalled`?`stalled`:`recovering`,recoveryStartedAt:n.recoveryStartedAt??Date.now(),bootstrapStatus:t??n.bootstrapStatus,lastError:e?.trim()||n.lastError,lastTransportError:e?.trim()||n.lastTransportError})},this.transitionToReady=e=>{this.runtimeBootstrapProbeCadence.recordSuccess();let t=this.getState(),n=t.lifecyclePhase===`recovering`||t.lifecyclePhase===`stalled`;this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`ready`,hasReachedReady:!0,lastReadyAt:Date.now(),recoveryStartedAt:null,bootstrapStatus:e,lastError:null,lastTransportError:null}),n&&It.refetchQueries({type:`active`})},this.executeRuntimeControlAction=async e=>{let t=this.getDesktopBridge();if(e===`restart-service`&&t&&typeof t.restartService==`function`){let e=await t.restartService();return{accepted:e.accepted,action:`restart-service`,lifecycle:e.lifecycle,message:e.message}}if(e===`start-service`)return await pc();if(e===`stop-service`)return await mc();if(e===`restart-app`){if(!t||typeof t.restartApp!=`function`)throw Error(r(`runtimeRestartAppUnavailable`));let e=await t.restartApp();return{accepted:e.accepted,action:`restart-app`,lifecycle:e.lifecycle,message:e.message}}return await X()},this.waitForRecovery=async()=>{let e=Date.now()+25e3,t=null;for(;Date.now()<e;)try{return await this.getRuntimeControl()}catch(e){t=e,await new Promise(e=>{window.setTimeout(e,1500)})}throw t instanceof Error?t:Error(r(`runtimeRecoveryTimedOut`))},this.refreshRuntimeControlView=async()=>{try{let e=await this.getRuntimeControl();this.syncRuntimeControlQueryCache(e),this.reportRuntimeControlView(e)}catch(e){this.reportRuntimeControlError(e)}},this.syncRuntimeControlQueryCache=e=>{It.setQueryData([`runtime-control`],e)},this.clearActiveSystemAction=()=>{this.patchState({activeSystemAction:null,lastSystemActionError:null})},this.clearRecoveryTimeout=()=>{this.recoveryTimeoutId!==null&&(window.clearTimeout(this.recoveryTimeoutId),this.recoveryTimeoutId=null)},this.decorateForCurrentEnvironment=e=>{let t=this.getDesktopBridge();return!t||typeof t.restartApp!=`function`?e:{...e,environment:`desktop-embedded`,serviceState:`running`,canStartService:{available:!1,requiresConfirmation:!1,impact:`none`},canStopService:{available:!1,requiresConfirmation:!0,impact:`brief-ui-disconnect`},canRestartApp:{available:!0,requiresConfirmation:!0,impact:`full-app-relaunch`},ownerLabel:r(`runtimeControlEnvironmentDesktop`),managementHint:r(`runtimeControlDesktopServiceHint`)}},this.getDesktopBridge=()=>typeof window>`u`?null:window.nextclawDesktop??null}};function U(){let e=it({queryKey:[`runtime-bootstrap-status`],queryFn:()=>Fo({timeoutMs:5e3}),refetchInterval:e=>H.getRuntimeBootstrapPollInterval(e.state.data),retry:!1}),t=it({queryKey:[`runtime-control`],queryFn:async()=>await H.getRuntimeControl(),staleTime:5e3});(0,P.useEffect)(()=>{e.data&&H.reportBootstrapStatus(e.data)},[e.data]),(0,P.useEffect)(()=>{e.error&&H.reportBootstrapQueryError(e.error)},[e.error]),(0,P.useEffect)(()=>{t.data&&H.reportRuntimeControlView(t.data)},[t.data]),(0,P.useEffect)(()=>{t.error&&H.reportRuntimeControlError(t.error)},[t.error])}function qi(){return Ti(zi(e=>e.state))}function Ji(){return Ai(zi(e=>e.state))}function Yi(){return ji(zi(e=>e.state))}var W=Li(()=>({supported:!1,initialized:!1,busyAction:null,snapshot:null})),Xi=class{constructor(e){this.desktopApi=e,this.kind=`desktop-bridge`,this.subscribe=e=>this.desktopApi.onUpdateStateChanged(e),this.getState=async()=>await this.desktopApi.getUpdateState(),this.checkForUpdates=async()=>await this.desktopApi.checkForUpdates(),this.downloadUpdate=async()=>await this.desktopApi.downloadUpdate(),this.applyDownloadedUpdate=async()=>await this.desktopApi.applyDownloadedUpdate(),this.updateChannel=async e=>await this.desktopApi.updateChannel(e)}},Zi=class{constructor(){this.kind=`runtime-host`,this.getState=async()=>await gc(),this.checkForUpdates=async()=>await _c(),this.downloadUpdate=async()=>await vc(),this.applyDownloadedUpdate=async()=>await yc(),this.updateChannel=async e=>await bc(e)}},Qi=new class{constructor(){this.unsubscribe=null,this.subscriptionCount=0,this.source=null,this.start=async()=>{this.subscriptionCount+=1;let e=this.resolveSource();if(this.source=e,!e){W.setState({supported:!1,initialized:!0,snapshot:null});return}e.kind===`desktop-bridge`&&!this.unsubscribe&&(this.unsubscribe=e.subscribe(e=>{W.setState({supported:!0,initialized:!0,snapshot:e})})),W.setState({supported:!0,initialized:!1});try{let t=await e.getState();W.setState({supported:!0,initialized:!0,snapshot:t})}catch(t){if(e.kind===`runtime-host`&&this.isUnsupportedError(t)){W.setState({supported:!1,initialized:!0,snapshot:null});return}W.setState({supported:!0,initialized:!0}),I.error(`${r(`runtimeUpdatesLoadFailed`)}: ${this.getErrorMessage(t)}`)}},this.stop=()=>{this.subscriptionCount=Math.max(0,this.subscriptionCount-1),!(this.subscriptionCount>0)&&(this.unsubscribe?.(),this.unsubscribe=null,this.source=null)},this.reportSnapshot=e=>{this.source?.kind!==`desktop-bridge`&&W.setState({supported:!0,initialized:!0,snapshot:e})},this.refreshAfterRealtimeReconnect=async()=>{this.source?.kind===`runtime-host`&&await this.refreshSnapshot()},this.checkForUpdates=async()=>{let e;try{e=await this.runSnapshotCommand(`checking`,r(`runtimeUpdatesCheckFailed`),async e=>await e.checkForUpdates())}catch{return}if(e.status===`up-to-date`){I.success(r(`runtimeUpdatesAlreadyLatest`));return}if(e.status===`update-available`){I.success(r(`runtimeUpdatesAvailable`).replace(`{version}`,e.availableVersion??r(`runtimeUpdatesUnknownVersion`)));return}e.status===`downloaded`&&I.success(r(`runtimeUpdatesReadyToApply`))},this.downloadUpdate=async()=>{try{await this.runSnapshotCommand(`downloading`,r(`runtimeUpdatesDownloadFailed`),async e=>await e.downloadUpdate())}catch{return}},this.applyDownloadedUpdate=async()=>{try{await this.runSnapshotCommand(`applying`,r(`runtimeUpdatesApplyFailed`),async e=>await e.applyDownloadedUpdate())}catch{return}},this.updateNow=async()=>{let e=W.getState().snapshot;if(!(e?.status!==`update-available`&&e?.status!==`downloaded`))try{await this.runSnapshotCommand(`updating`,r(`runtimeUpdatesUpdateFailed`),async t=>{let n=e.status===`downloaded`?e:await t.downloadUpdate();return W.setState({snapshot:n}),n.status===`downloaded`?await t.applyDownloadedUpdate():n})}catch{return}},this.updateChannel=async e=>{if(W.getState().snapshot?.channel===e)return;let t;try{t=await this.runSnapshotCommand(`switching-channel`,r(`runtimeUpdatesChannelChangeFailed`),async t=>await t.updateChannel(e))}catch{return}if(t.status===`update-available`&&t.availableVersion){I.success(r(`runtimeUpdatesChannelChangedWithUpdate`).replace(`{channel}`,this.getChannelLabel(e)).replace(`{version}`,t.availableVersion));return}I.success(r(`runtimeUpdatesChannelChanged`).replace(`{channel}`,this.getChannelLabel(e)))},this.refreshSnapshot=async()=>{if(!(!this.source||this.source.kind!==`runtime-host`))try{let e=await this.source.getState();W.setState({supported:!0,initialized:!0,snapshot:e})}catch{}},this.runSnapshotCommand=async(e,t,n)=>{let i=this.source??this.resolveSource();if(!i)throw Error(r(`runtimeUpdatesUnavailableDescription`));this.source=i,W.setState({busyAction:e});try{let e=await n(i);return W.setState({snapshot:e}),e}catch(e){throw I.error(`${t}: ${this.getErrorMessage(e)}`),e}finally{W.setState({busyAction:null})}},this.resolveSource=()=>{let e=this.getDesktopApi();return e?new Xi(e):new Zi},this.getDesktopApi=()=>typeof window>`u`?null:window.nextclawDesktop??null,this.isUnsupportedError=e=>{let t=this.getErrorMessage(e).toLowerCase();return t.includes(`404`)||t.includes(`not found`)||t.includes(`endpoint not found`)},this.getErrorMessage=e=>e instanceof Error?e.message:r(`error`),this.getChannelLabel=e=>r(e===`beta`?`desktopUpdatesChannelBeta`:`desktopUpdatesChannelStable`)}},$i=`https://docs.nextclaw.io/`;function ea(e,t){let n=t===`zh-CN`?`en-US`:`zh-CN`;return e?.[t]?.trim()||e?.[n]?.trim()||null}function ta(e){let t=e.releaseNotesUrl?.trim(),n=(e.availableVersion??e.downloadedVersion)?.trim();return t?na(n,t):null}function na(e,t=$i){let n=e?.trim();if(!n||!/^[0-9A-Za-z.-]+$/.test(n))return null;try{return new URL(`/release-notes/nextclaw-v${n}.json`,t).toString()}catch{return null}}function ra(e,t){return ea(e?.links?.html,t)}function ia(e){let t=e.releaseNotesUrl?.trim(),n=(e.downloadedVersion??e.availableVersion)?.trim();return!t||!n?null:{url:t,versionLabel:`v${n}`}}function aa(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function oa(e){return aa(e)?typeof e[`zh-CN`]==`string`||typeof e[`en-US`]==`string`:!1}function sa(e){return!aa(e)||!oa(e.title)?!1:e.body===void 0||oa(e.body)}function ca(e){return aa(e)&&typeof e.kind==`string`&&Array.isArray(e.items)&&e.items.every(sa)&&(e.title===void 0||oa(e.title))}function la(e){return aa(e)&&(e.html===void 0||oa(e.html))}function ua(e){return aa(e)&&Array.isArray(e.sections)&&e.sections.every(ca)&&(e.title===void 0||oa(e.title))&&(e.summary===void 0||oa(e.summary))&&(e.links===void 0||la(e.links))}async function da(e){let t=await fetch(e,{cache:`no-store`,headers:{accept:`application/json`}});if(!t.ok)throw Error(`Release notes request failed with HTTP ${t.status}.`);let n=await t.json();if(!ua(n))throw Error(`Release notes payload has an unsupported shape.`);return n}function fa(){return n()===`zh`?`zh-CN`:`en-US`}function pa(e){let t=na(e),n=fa(),r=ra(it({queryKey:[`current-release-notes`,t],queryFn:async()=>await da(t??``),enabled:!!t,retry:!1,staleTime:300*1e3}).data,n),i=e?.trim();return r&&i?{url:r,versionLabel:`v${i}`}:null}function ma({children:e,fullHeight:t=!1,className:n}){return(0,F.jsx)(`div`,{className:Cr(`animate-fade-in`,t?`h-[calc(100vh-80px)] w-full flex flex-col`:`pb-16`,n),children:e})}function ha({title:e,description:t,actions:n,headingLevel:r=2,mobileTitleInShell:i=!1,className:a}){let o=r===1?`h1`:`h2`;return(0,F.jsxs)(`header`,{"data-theme-surface":`header`,className:Cr(`flex shrink-0 flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,a),children:[(0,F.jsxs)(`div`,{className:Cr(`min-w-0`,i&&!t&&`hidden md:block`),children:[(0,F.jsx)(o,{className:Cr(`text-xl font-semibold tracking-tight text-foreground`,i&&`hidden md:block`),children:e}),t&&(0,F.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm leading-6 text-muted-foreground`,children:t})]}),n&&(0,F.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:n})]})}function ga({actions:e,children:t,className:n,description:r,layout:i=`standard`,title:a}){return(0,F.jsxs)(ma,{className:Cr(`w-full space-y-6`,i===`split`&&`pb-0 md:flex md:h-full md:min-h-0 md:flex-col`,n),children:[(0,F.jsx)(ha,{title:a,description:r,actions:e,mobileTitleInShell:!0}),t]})}var _a=Er(`inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-colors duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:pointer-events-none disabled:opacity-50`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-[hsl(var(--primary-hover))] active:bg-[hsl(var(--primary-active))] shadow-sm`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-border bg-card text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,secondary:`bg-muted text-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,ghost:`text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`,primary:`bg-primary text-primary-foreground hover:bg-[hsl(var(--primary-hover))] active:bg-[hsl(var(--primary-active))] shadow-sm`,subtle:`bg-muted text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,"primary-outline":`border border-primary/30 text-primary hover:bg-primary hover:text-primary-foreground`},size:{default:`h-9 px-4 py-2`,sm:`h-8 px-3 text-xs`,lg:`h-11 px-5 text-[14px]`,xl:`h-12 px-6 text-[15px]`,icon:`h-9 w-9`}},defaultVariants:{variant:`default`,size:`default`}}),va=P.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,F.jsx)(`button`,{className:Cr(_a({variant:t,size:n,className:e}),n!==`icon`&&`max-md:min-h-[var(--control-touch-size)]`),ref:i,...r}));va.displayName=`Button`;var ya=Er(`grid min-h-16 grid-cols-1 gap-3 px-4 py-3.5 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center sm:gap-6`,{variants:{tone:{default:``,muted:`bg-muted/55`},layout:{responsive:``,stacked:`sm:grid-cols-1 sm:items-start sm:gap-3`}},defaultVariants:{tone:`default`,layout:`responsive`}}),ba=P.forwardRef(({actions:e,children:t,className:n,description:r,title:i,...a},o)=>(0,F.jsxs)(`section`,{ref:o,className:Cr(`space-y-2.5`,n),...a,children:[i||r||e?(0,F.jsxs)(`div`,{className:`flex items-end justify-between gap-4 px-1`,children:[(0,F.jsxs)(`div`,{className:`min-w-0`,children:[i?(0,F.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:i}):null,r?(0,F.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-muted-foreground`,children:r}):null]}),e?(0,F.jsx)(`div`,{className:`shrink-0`,children:e}):null]}):null,t]}));ba.displayName=`SettingsSection`;var xa=P.forwardRef(({className:e,...t},n)=>(0,F.jsx)(`div`,{ref:n,className:Cr(`divide-y divide-border/55 overflow-hidden rounded-2xl bg-muted/45 text-foreground`,e),...t}));xa.displayName=`SettingsGroup`;var Sa=P.forwardRef(({className:e,layout:t,tone:n,title:r,description:i,control:a,children:o,...s},c)=>(0,F.jsxs)(`div`,{ref:c,className:Cr(ya({layout:t,tone:n}),e),...s,children:[(0,F.jsxs)(`div`,{className:`min-w-0`,children:[(0,F.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:r}),i?(0,F.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-muted-foreground`,children:i}):null,o?(0,F.jsx)(`div`,{className:`mt-3`,children:o}):null]}),a?(0,F.jsx)(`div`,{className:`min-w-0 sm:shrink-0`,children:a}):null]}));Sa.displayName=`SettingRow`;var G=P.forwardRef(({className:e,density:t=`default`,type:n,...r},i)=>(0,F.jsx)(`input`,{type:n,className:Cr(`flex h-9 w-full rounded-xl border border-border/75 bg-card px-3.5 py-2 text-sm text-foreground file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/55 placeholder:font-normal transition-colors focus:outline-none focus:ring-0 disabled:cursor-not-allowed disabled:opacity-50`,t===`default`?`max-md:min-h-[var(--control-touch-size)] max-md:text-base`:`text-[13px] max-md:min-h-0 max-md:text-[13px]`,e),ref:i,...r}));G.displayName=`Input`;var K=P.forwardRef(({className:e,...t},n)=>(0,F.jsx)(`label`,{ref:n,className:Cr(`text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,e),...t}));K.displayName=`Label`;var Ca=P.forwardRef(({className:e,checked:t=!1,onCheckedChange:n,thumbClassName:r,...i},a)=>(0,F.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":t,"data-state":t?`checked`:`unchecked`,ref:a,className:Cr(`switch-track peer inline-flex h-[22px] w-10 shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:cursor-not-allowed disabled:opacity-50`,t?`border-primary/70 bg-primary`:`border-border/60 bg-muted hover:bg-[var(--interaction-hover)]`,e),onClick:()=>n?.(!t),...i,children:(0,F.jsx)(`span`,{"data-state":t?`checked`:`unchecked`,className:Cr(`switch-thumb pointer-events-none block h-5 w-5 rounded-full bg-card shadow-md ring-1 ring-border/50 transition-transform duration-fast`,t?`translate-x-5`:`translate-x-0`,r)})}));Ca.displayName=`Switch`;var wa={maxRetries:8,startupTimeoutMs:2e3,settledTimeoutMs:5e3,retryBaseDelayMs:500,retryMaxDelayMs:3e3};function Ta(e){return e instanceof Error&&_o(e.message)}function Ea(e,t){return e<wa.maxRetries&&Ta(t)}function Da(e){return Math.min(wa.retryMaxDelayMs,wa.retryBaseDelayMs*2**Math.max(0,e-1))}function Oa(){let e=(0,P.useRef)(!1);return it({queryKey:[`auth-status`],queryFn:async()=>{let t=await Oo({timeoutMs:e.current?wa.settledTimeoutMs:wa.startupTimeoutMs});return e.current=!0,t},staleTime:5e3,retry:Ea,retryDelay:Da})}function ka(e){return Promise.all([e.invalidateQueries({queryKey:[`auth-status`]}),e.invalidateQueries({queryKey:[`app-meta`]}),e.invalidateQueries({queryKey:[`config`]}),e.invalidateQueries({queryKey:[`config-meta`]}),e.invalidateQueries({queryKey:[`config-schema`]}),e.invalidateQueries({queryKey:[`sessions`]}),e.invalidateQueries({queryKey:[`session-history`]}),e.invalidateQueries({queryKey:[`chat-runs`]}),e.invalidateQueries({queryKey:[`cron-jobs`]})])}function Aa(){let e=Ue();return at({mutationFn:ko,onSuccess:async()=>{await ka(e),I.success(r(`authSetupSuccess`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}function ja(){let e=Ue();return at({mutationFn:Ao,onSuccess:async()=>{await ka(e),I.success(r(`authLoginSuccess`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}function Ma(){let e=Ue();return at({mutationFn:jo,onSuccess:async()=>{await ka(e),I.success(r(`authLogoutSuccess`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}function Na(){let e=Ue();return at({mutationFn:Mo,onSuccess:async()=>{await ka(e),I.success(r(`authPasswordUpdated`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}function Pa(){let e=Ue();return at({mutationFn:No,onSuccess:async(t,n)=>{await ka(e),I.success(n.enabled?r(`authEnabledSuccess`):r(`authDisabledSuccess`))},onError:e=>{I.error(`${r(`authActionFailed`)}: ${e.message}`)}})}var Fa=8;function Ia(e){return e.trim().length>=Fa}function La(e,t){return e===t?!0:(I.error(r(`authPasswordMismatch`)),!1)}function Ra({children:e,contentClassName:t=`space-y-6`}){return(0,F.jsx)(xa,{children:(0,F.jsx)(`div`,{className:`${t} p-4`,children:e})})}function za({canSubmitSetup:e,isPending:t,onSubmit:n,setSetupConfirmPassword:i,setSetupPassword:a,setSetupUsername:o,setupConfirmPassword:s,setupPassword:c,setupUsername:l}){return(0,F.jsxs)(Ra,{contentClassName:`space-y-5`,children:[(0,F.jsxs)(`div`,{className:`rounded-xl bg-background/65 p-4`,children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:r(`authSetupTitle`)}),(0,F.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:r(`authSetupDescription`)})]}),(0,F.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-setup-username`,children:r(`authUsername`)}),(0,F.jsx)(G,{id:`auth-setup-username`,value:l,onChange:e=>o(e.target.value),placeholder:r(`authUsernamePlaceholder`)})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-setup-password`,children:r(`authPassword`)}),(0,F.jsx)(G,{id:`auth-setup-password`,type:`password`,value:c,onChange:e=>a(e.target.value),placeholder:r(`authPasswordPlaceholder`)})]})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-setup-confirm`,children:r(`authConfirmPassword`)}),(0,F.jsx)(G,{id:`auth-setup-confirm`,type:`password`,value:s,onChange:e=>i(e.target.value),placeholder:r(`authConfirmPasswordPlaceholder`)}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`authPasswordMinLengthHint`)})]}),(0,F.jsx)(va,{type:`button`,disabled:!e,onClick:()=>void n(),children:r(t?`authSettingUp`:`authSetupAction`)})]})}function Ba({authenticated:e,canUpdatePassword:t,enabled:n,isLoggingOut:i,isUpdatingEnabled:a,isUpdatingPassword:o,nextConfirmPassword:s,nextPassword:c,onEnabledChange:l,onLogout:u,onPasswordUpdate:d,setNextConfirmPassword:f,setNextPassword:p,username:m}){return(0,F.jsxs)(Ra,{children:[(0,F.jsxs)(`div`,{className:`rounded-xl bg-background/65 p-4`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col gap-4 md:flex-row md:items-start md:justify-between`,children:[(0,F.jsxs)(`div`,{className:`space-y-1`,children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:r(`authStatusLabel`)}),(0,F.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`authStatusConfiguredUser`).replace(`{username}`,m??``)}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`authUsernameFixedHelp`)})]}),(0,F.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-muted px-3 py-1 text-xs font-medium text-foreground`,children:r(n?`enabled`:`disabled`)})]}),(0,F.jsxs)(`div`,{className:`mt-4 flex flex-col gap-4 border-t border-border/55 pt-4 md:flex-row md:items-center md:justify-between`,children:[(0,F.jsxs)(`div`,{className:`space-y-1`,children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:r(`authEnableLabel`)}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(n?`authEnableOnHelp`:`authEnableOffHelp`)})]}),(0,F.jsx)(Ca,{checked:n,disabled:a,onCheckedChange:e=>{l(e)}})]})]}),(0,F.jsxs)(`div`,{className:`space-y-4 rounded-xl bg-background/65 p-4`,children:[(0,F.jsxs)(`div`,{className:`space-y-1`,children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:r(`authPasswordSectionTitle`)}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`authPasswordSectionDescription`)})]}),(0,F.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-password-next`,children:r(`authPassword`)}),(0,F.jsx)(G,{id:`auth-password-next`,type:`password`,value:c,onChange:e=>p(e.target.value),placeholder:r(`authPasswordPlaceholder`)})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(K,{htmlFor:`auth-password-confirm`,children:r(`authConfirmPassword`)}),(0,F.jsx)(G,{id:`auth-password-confirm`,type:`password`,value:s,onChange:e=>f(e.target.value),placeholder:r(`authConfirmPasswordPlaceholder`)})]})]}),(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,F.jsx)(va,{type:`button`,disabled:!t,onClick:()=>void d(),children:r(o?`authPasswordUpdating`:`authPasswordAction`)}),n&&e?(0,F.jsx)(va,{type:`button`,variant:`outline`,disabled:i,onClick:()=>void u(),children:r(i?`authLoggingOut`:`authLogoutAction`)}):null]}),(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`authSessionMemoryNotice`)})]})]})}function Va(){let e=Oa(),t=Aa(),n=Pa(),i=Na(),a=Ma(),[o,s]=(0,P.useState)(``),[c,l]=(0,P.useState)(``),[u,d]=(0,P.useState)(``),[f,p]=(0,P.useState)(``),[m,h]=(0,P.useState)(``),g=e.data,_=o.trim().length>0&&Ia(c)&&c===u&&!t.isPending,v=Ia(f)&&f===m&&!i.isPending;return e.isLoading&&!g?(0,F.jsx)(Ra,{contentClassName:`text-sm text-gray-500`,children:r(`loading`)}):e.isError||!g?(0,F.jsxs)(Ra,{contentClassName:`space-y-4`,children:[(0,F.jsx)(`p`,{className:`text-sm text-gray-500`,children:r(`authStatusLoadFailed`)}),(0,F.jsx)(va,{variant:`outline`,onClick:()=>void e.refetch(),children:r(`authRetryStatus`)})]}):g.configured?(0,F.jsx)(Ba,{authenticated:g.authenticated,enabled:g.enabled,username:g.username,nextPassword:f,setNextPassword:p,nextConfirmPassword:m,setNextConfirmPassword:h,canUpdatePassword:v,isUpdatingEnabled:n.isPending,isUpdatingPassword:i.isPending,isLoggingOut:a.isPending,onEnabledChange:async e=>{try{await n.mutateAsync({enabled:e})}catch{}},onPasswordUpdate:async()=>{if(La(f,m))try{await i.mutateAsync({password:f}),p(``),h(``)}catch{}},onLogout:async()=>{try{await a.mutateAsync()}catch{}}}):(0,F.jsx)(za,{setupUsername:o,setSetupUsername:s,setupPassword:c,setSetupPassword:l,setupConfirmPassword:u,setSetupConfirmPassword:d,canSubmitSetup:_,isPending:t.isPending,onSubmit:async()=>{if(La(c,u))try{await t.mutateAsync({username:o.trim(),password:c}),l(``),d(``)}catch{}}})}function Ha(){return(0,F.jsx)(ga,{title:r(`authSecurityTitle`),description:r(`authSecurityDescription`),children:(0,F.jsx)(Va,{})})}var Ua=250,Wa=class{constructor(e){this.requestRecovery=e,this.started=!1,this.recoveryCooldownId=null,this.start=()=>{this.started||(this.started=!0,document.addEventListener(`visibilitychange`,this.handleVisibilityChange),window.addEventListener(`online`,this.handleOnline),window.addEventListener(`pageshow`,this.handlePageShow),window.addEventListener(`focus`,this.handleForegroundSignal))},this.stop=()=>{this.started&&(this.started=!1,document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),window.removeEventListener(`online`,this.handleOnline),window.removeEventListener(`pageshow`,this.handlePageShow),window.removeEventListener(`focus`,this.handleForegroundSignal),this.recoveryCooldownId!==null&&(window.clearTimeout(this.recoveryCooldownId),this.recoveryCooldownId=null))},this.handleVisibilityChange=()=>{this.requestRecoveryIfVisible()},this.handleOnline=()=>{this.requestRecoveryIfVisible()},this.handleForegroundSignal=()=>{this.requestRecoveryIfVisible()},this.handlePageShow=e=>{e.persisted&&this.requestRecoveryIfVisible()},this.requestRecoveryIfVisible=()=>{document.visibilityState!==`visible`||this.recoveryCooldownId!==null||(this.requestRecovery(),this.recoveryCooldownId=window.setTimeout(()=>{this.recoveryCooldownId=null},Ua))}}};function Ga(e){return e.replace(/\s+/g,` `).trim().slice(0,200)}function Ka(e,t){if(t===404&&e.startsWith(`/api/providers/`)&&e.endsWith(`/test`))return`Provider test endpoint is missing. This usually means nextclaw runtime version is outdated.`;if(t===401||t===403)return`Authentication failed. Check apiKey and custom headers.`;if(t===429)return`Rate limited by upstream provider. Retry later or switch model/provider.`;if(t>=500)return`Upstream service error. Retry later and inspect server logs if it persists.`}function qa(e){if(e instanceof Error){let t=e.name?.trim()||`Error`,n=e.message?.trim()||`Unknown error`;return{summary:`${t}: ${n}`,details:{errorName:t,errorMessage:n,...e.stack?.trim()?{errorStack:e.stack.trim()}:{}}}}return{summary:String(e??`Unknown error`),details:{errorName:`NonError`,errorMessage:String(e??`Unknown error`)}}}async function Ja(e,t,n={}){let r=`${e}${t}`,i=(n.method||`GET`).toUpperCase(),a;try{let e=new Headers(n.headers);!(n.body instanceof FormData)&&!e.has(`Content-Type`)&&e.set(`Content-Type`,`application/json`),a=await fetch(r,{credentials:`include`,headers:e,...n})}catch(e){let n=qa(e);return H.reportTransportFailure(n.summary),{ok:!1,error:{code:`NETWORK_ERROR`,message:`Fetch failed on ${i} ${t} | ${n.summary}`,details:{method:i,endpoint:t,url:r,...n.details}}}}let o=await a.text(),s=null;if(o)try{s=JSON.parse(o)}catch{}if(!s){let e=o?Ga(o):``,n=Ka(t,a.status),s=[`Non-JSON response (${a.status} ${a.statusText}) on ${i} ${t}`];return e&&s.push(`body=${e}`),n&&s.push(`hint=${n}`),{ok:!1,error:{code:`INVALID_RESPONSE`,message:s.join(` | `),details:{status:a.status,statusText:a.statusText,method:i,endpoint:t,url:r,bodySnippet:e||void 0,hint:n}}}}return a.ok,s}function Ya(e){let t=e.split(`
15
15
  `),n=``,r=[];for(let e of t){let t=e.trimEnd();if(!(!t||t.startsWith(`:`))){if(t.startsWith(`event:`)){n=t.slice(6).trim();continue}t.startsWith(`data:`)&&r.push(t.slice(5).trimStart())}}if(!n)return null;let i,a=r.join(`
16
16
  `);if(a)try{i=JSON.parse(a)}catch{i=a}return{name:n,payload:i}}function Xa(e,t,n){let r=Ya(e);r&&(r.name===`final`&&n(r.payload),t(r))}function Za(e,t,n){let r=e,i=r.indexOf(`
17
17