@cats-inc/cats-platform 0.1.10 → 0.1.21

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 (163) hide show
  1. package/.env.example +7 -10
  2. package/build/desktop/bootstrapPage.d.ts.map +1 -1
  3. package/build/desktop/bootstrapPage.js +162 -55
  4. package/build/desktop/bootstrapPage.js.map +1 -1
  5. package/build/desktop/cliInventoryProbe.d.ts +18 -0
  6. package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
  7. package/build/desktop/cliInventoryProbe.js +42 -0
  8. package/build/desktop/cliInventoryProbe.js.map +1 -1
  9. package/build/desktop/contracts.d.ts +9 -0
  10. package/build/desktop/contracts.d.ts.map +1 -1
  11. package/build/desktop/main.js +101 -20
  12. package/build/desktop/main.js.map +1 -1
  13. package/build/desktop/readiness.d.ts.map +1 -1
  14. package/build/desktop/readiness.js +35 -2
  15. package/build/desktop/readiness.js.map +1 -1
  16. package/build/desktop/tray.d.ts +1 -1
  17. package/build/desktop/tray.d.ts.map +1 -1
  18. package/build/desktop/tray.js +2 -7
  19. package/build/desktop/tray.js.map +1 -1
  20. package/build/desktop/trayMenu.d.ts +23 -2
  21. package/build/desktop/trayMenu.d.ts.map +1 -1
  22. package/build/desktop/trayMenu.js +24 -30
  23. package/build/desktop/trayMenu.js.map +1 -1
  24. package/build/desktop/updateDialog.d.ts +40 -0
  25. package/build/desktop/updateDialog.d.ts.map +1 -0
  26. package/build/desktop/updateDialog.js +178 -0
  27. package/build/desktop/updateDialog.js.map +1 -0
  28. package/build/desktop/updateNotifications.js +2 -2
  29. package/build/desktop/updateNotifications.js.map +1 -1
  30. package/build/desktop/updaterAdapter.d.ts +1 -0
  31. package/build/desktop/updaterAdapter.d.ts.map +1 -1
  32. package/build/desktop/updaterAdapter.js +13 -1
  33. package/build/desktop/updaterAdapter.js.map +1 -1
  34. package/build/renderer/assets/{ActiveSessionPermissionChip-Dl2UOFgh.js → ActiveSessionPermissionChip-DImsuR9T.js} +1 -1
  35. package/build/renderer/assets/{App-CPqGDXVi.js → App-BfOvMP2m.js} +1 -1
  36. package/build/renderer/assets/{App-ChvP0G9X.js → App-DKOSn0o_.js} +1 -1
  37. package/build/renderer/assets/{App-C57f4p8k.js → App-DWd7I3Z2.js} +1 -1
  38. package/build/renderer/assets/{WorkspaceAppRoutes-DYg2vnjz.js → WorkspaceAppRoutes-CrbTA9En.js} +1 -1
  39. package/build/renderer/assets/app-BTww3Hl4.js +43 -0
  40. package/build/renderer/assets/{app-XnXwkcD2.css → app-CPxWQwLA.css} +1 -1
  41. package/build/renderer/assets/conversationSidebarRecentEntries-QuaOPxCb.js +6 -0
  42. package/build/renderer/assets/{useDraftSessionChips-By3XXabI.js → useDraftSessionChips-DCIId0eY.js} +1 -1
  43. package/build/renderer/index.html +2 -2
  44. package/build/server/app/renderer/auth/api.d.ts +28 -2
  45. package/build/server/app/renderer/auth/api.d.ts.map +1 -1
  46. package/build/server/app/renderer/auth/api.js +29 -4
  47. package/build/server/app/renderer/auth/api.js.map +1 -1
  48. package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts +11 -4
  49. package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts.map +1 -1
  50. package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js +25 -5
  51. package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js.map +1 -1
  52. package/build/server/app/server/authGatePolicy.js +1 -2
  53. package/build/server/app/server/authGatePolicy.js.map +1 -1
  54. package/build/server/app/server/authRoutes.d.ts +14 -1
  55. package/build/server/app/server/authRoutes.d.ts.map +1 -1
  56. package/build/server/app/server/authRoutes.js +395 -76
  57. package/build/server/app/server/authRoutes.js.map +1 -1
  58. package/build/server/app/server/contracts.d.ts +4 -1
  59. package/build/server/app/server/contracts.d.ts.map +1 -1
  60. package/build/server/app/server/dependencies.d.ts.map +1 -1
  61. package/build/server/app/server/dependencies.js +6 -1
  62. package/build/server/app/server/dependencies.js.map +1 -1
  63. package/build/server/app/server/platformSetupRoutes.d.ts +2 -1
  64. package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
  65. package/build/server/app/server/platformSetupRoutes.js +129 -64
  66. package/build/server/app/server/platformSetupRoutes.js.map +1 -1
  67. package/build/server/app/server/requestRouter.d.ts.map +1 -1
  68. package/build/server/app/server/requestRouter.js +3 -0
  69. package/build/server/app/server/requestRouter.js.map +1 -1
  70. package/build/server/app/server/runtimeSurfaceProxy.d.ts.map +1 -1
  71. package/build/server/app/server/runtimeSurfaceProxy.js +12 -17
  72. package/build/server/app/server/runtimeSurfaceProxy.js.map +1 -1
  73. package/build/server/config.d.ts +1 -3
  74. package/build/server/config.d.ts.map +1 -1
  75. package/build/server/config.js +2 -13
  76. package/build/server/config.js.map +1 -1
  77. package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
  78. package/build/server/design/components/providerModelFieldsSupport.js +4 -1
  79. package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
  80. package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
  81. package/build/server/design/components/useProviderTargetReconciliation.js +3 -1
  82. package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
  83. package/build/server/platform/auth/actionGrant.d.ts +61 -0
  84. package/build/server/platform/auth/actionGrant.d.ts.map +1 -0
  85. package/build/server/platform/auth/actionGrant.js +108 -0
  86. package/build/server/platform/auth/actionGrant.js.map +1 -0
  87. package/build/server/platform/auth/adminCredentials.d.ts +37 -0
  88. package/build/server/platform/auth/adminCredentials.d.ts.map +1 -0
  89. package/build/server/platform/auth/adminCredentials.js +63 -0
  90. package/build/server/platform/auth/adminCredentials.js.map +1 -0
  91. package/build/server/platform/auth/bootstrap.d.ts +14 -0
  92. package/build/server/platform/auth/bootstrap.d.ts.map +1 -1
  93. package/build/server/platform/auth/bootstrap.js +29 -4
  94. package/build/server/platform/auth/bootstrap.js.map +1 -1
  95. package/build/server/platform/auth/config.d.ts.map +1 -1
  96. package/build/server/platform/auth/config.js +1 -1
  97. package/build/server/platform/auth/config.js.map +1 -1
  98. package/build/server/platform/auth/errorCodes.d.ts +2 -0
  99. package/build/server/platform/auth/errorCodes.d.ts.map +1 -1
  100. package/build/server/platform/auth/errorCodes.js +2 -0
  101. package/build/server/platform/auth/errorCodes.js.map +1 -1
  102. package/build/server/platform/auth/googleAccount.d.ts +40 -13
  103. package/build/server/platform/auth/googleAccount.d.ts.map +1 -1
  104. package/build/server/platform/auth/googleAccount.js +89 -70
  105. package/build/server/platform/auth/googleAccount.js.map +1 -1
  106. package/build/server/platform/auth/index.d.ts +4 -0
  107. package/build/server/platform/auth/index.d.ts.map +1 -1
  108. package/build/server/platform/auth/index.js +4 -0
  109. package/build/server/platform/auth/index.js.map +1 -1
  110. package/build/server/platform/auth/localLogin.d.ts +10 -0
  111. package/build/server/platform/auth/localLogin.d.ts.map +1 -1
  112. package/build/server/platform/auth/localLogin.js +17 -0
  113. package/build/server/platform/auth/localLogin.js.map +1 -1
  114. package/build/server/platform/auth/loginMethods.d.ts +18 -0
  115. package/build/server/platform/auth/loginMethods.d.ts.map +1 -0
  116. package/build/server/platform/auth/loginMethods.js +19 -0
  117. package/build/server/platform/auth/loginMethods.js.map +1 -0
  118. package/build/server/platform/auth/securityEvents.d.ts +31 -0
  119. package/build/server/platform/auth/securityEvents.d.ts.map +1 -0
  120. package/build/server/platform/auth/securityEvents.js +45 -0
  121. package/build/server/platform/auth/securityEvents.js.map +1 -0
  122. package/build/server/products/chat/api/contracts.d.ts +0 -8
  123. package/build/server/products/chat/api/contracts.d.ts.map +1 -1
  124. package/build/server/products/chat/api/setupRoutes.d.ts.map +1 -1
  125. package/build/server/products/chat/api/setupRoutes.js +2 -84
  126. package/build/server/products/chat/api/setupRoutes.js.map +1 -1
  127. package/build/server/products/shared/api/workspaceContracts.d.ts +0 -8
  128. package/build/server/products/shared/api/workspaceContracts.d.ts.map +1 -1
  129. package/build/server/runtime/client.d.ts +11 -0
  130. package/build/server/runtime/client.d.ts.map +1 -1
  131. package/build/server/runtime/client.js +23 -1
  132. package/build/server/runtime/client.js.map +1 -1
  133. package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
  134. package/build/server/shared/i18n/catalogs/en.js +40 -0
  135. package/build/server/shared/i18n/catalogs/en.js.map +1 -1
  136. package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
  137. package/build/server/shared/i18n/catalogs/zh-TW.js +39 -0
  138. package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
  139. package/build/server/shared/i18n/index.d.ts +39 -0
  140. package/build/server/shared/i18n/index.d.ts.map +1 -1
  141. package/build/server/shared/i18n/messageKeys.d.ts +39 -0
  142. package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
  143. package/build/server/shared/i18n/messageKeys.js +39 -0
  144. package/build/server/shared/i18n/messageKeys.js.map +1 -1
  145. package/build/server/shared/providerCatalog.d.ts +3 -2
  146. package/build/server/shared/providerCatalog.d.ts.map +1 -1
  147. package/build/server/shared/providerCatalog.js +9 -1
  148. package/build/server/shared/providerCatalog.js.map +1 -1
  149. package/build/server/shared/providerCatalogData.d.ts +11 -1
  150. package/build/server/shared/providerCatalogData.d.ts.map +1 -1
  151. package/build/server/shared/providerCatalogData.js +9 -0
  152. package/build/server/shared/providerCatalogData.js.map +1 -1
  153. package/build/server/shared/providerCatalogInstances.d.ts.map +1 -1
  154. package/build/server/shared/providerCatalogInstances.js +3 -0
  155. package/build/server/shared/providerCatalogInstances.js.map +1 -1
  156. package/package.json +1 -1
  157. package/scripts/README.md +30 -0
  158. package/scripts/linux/node-cli-common.sh +2 -75
  159. package/scripts/macos/node-cli-common.sh +2 -75
  160. package/scripts/windows/Check-WindowsSetupReadiness.ps1 +14 -443
  161. package/scripts/windows/Remove-MergedBranches.ps1 +229 -0
  162. package/build/renderer/assets/app-DVN9Ghrk.js +0 -43
  163. package/build/renderer/assets/conversationSidebarRecentEntries-XZVCnMLw.js +0 -6
@@ -0,0 +1,43 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/App-DKOSn0o_.js","assets/client-BdGHAUoK.js","assets/conversationSidebarRecentEntries-QuaOPxCb.js","assets/ActiveSessionPermissionChip-DImsuR9T.js","assets/useDraftSessionChips-DCIId0eY.js","assets/App-BXCQs2gk.css","assets/App-DWd7I3Z2.js","assets/WorkspaceAppRoutes-CrbTA9En.js","assets/App-DGwkRFZl.css","assets/App-BfOvMP2m.js","assets/App-DKequja8.css"])))=>i.map(i=>d[i]);
2
+ import{r as d,a as Sd,j as r,R as Bi,b as Ld}from"./client-BdGHAUoK.js";var Ho=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,Fi=/^[\\/]{2}/;function Rd(e,t){return t+e.replace(/\\/g,"/")}var Un="popstate";function Hn(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function Pd(e={}){function t(o,n){let s=n.state?.masked,{pathname:l,search:c,hash:u}=s||o.location;return lo("",{pathname:l,search:c,hash:u},n.state&&n.state.usr||null,n.state&&n.state.key||"default",s?{pathname:o.location.pathname,search:o.location.search,hash:o.location.hash}:void 0)}function a(o,n){return typeof n=="string"?n:pa(n)}return xd(t,a,null,e)}function he(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ge(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Ad(){return Math.random().toString(36).substring(2,10)}function Gn(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function lo(e,t,a=null,o,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?$t(t):t,state:a,key:t&&t.key||o||Ad(),mask:n}}function pa({pathname:e="/",search:t="",hash:a=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),a&&a!=="#"&&(e+=a.charAt(0)==="#"?a:"#"+a),e}function $t(e){let t={};if(e){let a=e.indexOf("#");a>=0&&(t.hash=e.substring(a),e=e.substring(0,a));let o=e.indexOf("?");o>=0&&(t.search=e.substring(o),e=e.substring(0,o)),e&&(t.pathname=e)}return t}function xd(e,t,a,o={}){let{window:n=document.defaultView,v5Compat:s=!1}=o,l=n.history,c="POP",u=null,p=g();p==null&&(p=0,l.replaceState({...l.state,idx:p},""));function g(){return(l.state||{idx:null}).idx}function h(){c="POP";let m=g(),C=m==null?null:m-p;p=m,u&&u({action:c,location:b.location,delta:C})}function k(m,C){c="PUSH";let v=Hn(m)?m:lo(b.location,m,C);p=g()+1;let y=Gn(v,p),L=b.createHref(v.mask||v);try{l.pushState(y,"",L)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;n.location.assign(L)}s&&u&&u({action:c,location:b.location,delta:1})}function f(m,C){c="REPLACE";let v=Hn(m)?m:lo(b.location,m,C);p=g();let y=Gn(v,p),L=b.createHref(v.mask||v);l.replaceState(y,"",L),s&&u&&u({action:c,location:b.location,delta:0})}function w(m){return Td(n,m)}let b={get action(){return c},get location(){return e(n,l)},listen(m){if(u)throw new Error("A history only accepts one active listener");return n.addEventListener(Un,h),u=m,()=>{n.removeEventListener(Un,h),u=null}},createHref(m){return t(n,m)},createURL:w,encodeLocation(m){let C=w(m);return{pathname:C.pathname,search:C.search,hash:C.hash}},push:k,replace:f,go(m){return l.go(m)}};return b}function Td(e,t,a=!1){let o="http://localhost";e&&(o=e.location.origin!=="null"?e.location.origin:e.location.href),he(o,"No window.location.(origin|href) available to create URL");let n=typeof t=="string"?t:pa(t);return n=n.replace(/ $/,"%20"),!a&&Fi.test(n)&&(n=o+n),new URL(n,o)}function Oi(e,t,a="/"){return Dd(e,t,a,!1)}function Dd(e,t,a,o,n){let s=typeof t=="string"?$t(t):t,l=mt(s.pathname||"/",a);if(l==null)return null;let c=Nd(e),u=null,p=_i(l);for(let g=0;u==null&&g<c.length;++g)u=Hd(c[g],p,o);return u}function Nd(e){let t=Wi(e);return jd(t),t}function Wi(e,t=[],a=[],o="",n=!1){let s=(l,c,u=n,p)=>{let g={relativePath:p===void 0?l.path||"":p,caseSensitive:l.caseSensitive===!0,childrenIndex:c,route:l};if(g.relativePath.startsWith("/")){if(!g.relativePath.startsWith(o)&&u)return;he(g.relativePath.startsWith(o),`Absolute route path "${g.relativePath}" nested under path "${o}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),g.relativePath=g.relativePath.slice(o.length)}let h=Je([o,g.relativePath]),k=a.concat(g);l.children&&l.children.length>0&&(he(l.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${h}".`),Wi(l.children,t,k,h,u)),!(l.path==null&&!l.index)&&t.push({path:h,score:Wd(h,l.index),routesMeta:k.map((f,w)=>{let[b,m]=Gi(f.relativePath,f.caseSensitive,w===k.length-1);return{...f,matcher:b,compiledParams:m}})})};return e.forEach((l,c)=>{if(l.path===""||!l.path?.includes("?"))s(l,c);else for(let u of Ui(l.path))s(l,c,!0,u)}),t}function Ui(e){let t=e.split("/");if(t.length===0)return[];let[a,...o]=t,n=a.endsWith("?"),s=a.replace(/\?$/,"");if(o.length===0)return n?[s,""]:[s];let l=Ui(o.join("/")),c=[];return c.push(...l.map(u=>u===""?s:[s,u].join("/"))),n&&c.push(...l),c.map(u=>e.startsWith("/")&&u===""?"/":u)}function jd(e){e.sort((t,a)=>t.score!==a.score?a.score-t.score:Ud(t.routesMeta.map(o=>o.childrenIndex),a.routesMeta.map(o=>o.childrenIndex)))}var Md=/^:[\w-]+$/,Ed=3,Id=2,Bd=1,Fd=10,Od=-2,_n=e=>e==="*";function Wd(e,t){let a=e.split("/"),o=a.length;return a.some(_n)&&(o+=Od),t&&(o+=Id),a.filter(n=>!_n(n)).reduce((n,s)=>n+(Md.test(s)?Ed:s===""?Bd:Fd),o)}function Ud(e,t){return e.length===t.length&&e.slice(0,-1).every((o,n)=>o===t[n])?e[e.length-1]-t[t.length-1]:0}function Hd(e,t,a=!1){let{routesMeta:o}=e,n={},s="/",l=[];for(let c=0;c<o.length;++c){let u=o[c],p=c===o.length-1,g=s==="/"?t:t.slice(s.length)||"/",h={path:u.relativePath,caseSensitive:u.caseSensitive,end:p},k=u.matcher&&u.compiledParams?Hi(h,g,u.matcher,u.compiledParams):ha(h,g),f=u.route;if(!k&&p&&a&&!o[o.length-1].route.index&&(k=ha({path:u.relativePath,caseSensitive:u.caseSensitive,end:!1},g)),!k)return null;Object.assign(n,k.params),l.push({params:n,pathname:Je([s,k.pathname]),pathnameBase:Kd(Je([s,k.pathnameBase])),route:f}),k.pathnameBase!=="/"&&(s=Je([s,k.pathnameBase]))}return l}function ha(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[a,o]=Gi(e.path,e.caseSensitive,e.end);return Hi(e,t,a,o)}function Hi(e,t,a,o){let n=t.match(a);if(!n)return null;let s=n[0],l=s.replace(/(.)\/+$/,"$1"),c=n.slice(1);return{params:o.reduce((p,{paramName:g,isOptional:h},k)=>{if(g==="*"){let w=c[k]||"";l=s.slice(0,s.length-w.length).replace(/(.)\/+$/,"$1")}const f=c[k];return h&&!f?p[g]=void 0:p[g]=(f||"").replace(/%2F/g,"/"),p},{}),pathname:s,pathnameBase:l,pattern:e}}function Gi(e,t=!1,a=!0){Ge(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let o=[],n="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(l,c,u,p,g)=>{if(o.push({paramName:c,isOptional:u!=null}),u){let h=g.charAt(p+l.length);return h&&h!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(o.push({paramName:"*"}),n+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?n+="\\/*$":e!==""&&e!=="/"&&(n+="(?:(?=\\/|$))"),[new RegExp(n,t?void 0:"i"),o]}function _i(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ge(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function mt(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let a=t.endsWith("/")?t.length-1:t.length,o=e.charAt(a);return o&&o!=="/"?null:e.slice(a)||"/"}function Gd(e,t="/"){let{pathname:a,search:o="",hash:n=""}=typeof e=="string"?$t(e):e,s;return a?(a=Ki(a),a.startsWith("/")?s=Kn(a.substring(1),"/"):s=Kn(a,t)):s=t,{pathname:s,search:qd(o),hash:$d(n)}}function Kn(e,t){let a=Va(t).split("/");return e.split("/").forEach(n=>{n===".."?a.length>1&&a.pop():n!=="."&&a.push(n)}),a.length>1?a.join("/"):"/"}function Mr(e,t,a,o){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(o)}]. Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function _d(e){return e.filter((t,a)=>a===0||t.route.path&&t.route.path.length>0)}function Go(e){let t=_d(e);return t.map((a,o)=>o===t.length-1?a.pathname:a.pathnameBase)}function lr(e,t,a,o=!1){let n;typeof e=="string"?n=$t(e):(n={...e},he(!n.pathname||!n.pathname.includes("?"),Mr("?","pathname","search",n)),he(!n.pathname||!n.pathname.includes("#"),Mr("#","pathname","hash",n)),he(!n.search||!n.search.includes("#"),Mr("#","search","hash",n)));let s=e===""||n.pathname==="",l=s?"/":n.pathname,c;if(l==null)c=a;else{let h=t.length-1;if(!o&&l.startsWith("..")){let k=l.split("/");for(;k[0]==="..";)k.shift(),h-=1;n.pathname=k.join("/")}c=h>=0?t[h]:"/"}let u=Gd(n,c),p=l&&l!=="/"&&l.endsWith("/"),g=(s||l===".")&&a.endsWith("/");return!u.pathname.endsWith("/")&&(p||g)&&(u.pathname+="/"),u}var Ki=e=>e.replace(/[\\/]{2,}/g,"/"),Je=e=>Ki(e.join("/")),Va=e=>e.replace(/\/+$/,""),Kd=e=>Va(e).replace(/^\/*/,"/"),qd=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,$d=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,zd=class{constructor(e,t,a,o=!1){this.status=e,this.statusText=t||"",this.internal=o,a instanceof Error?(this.data=a.toString(),this.error=a):this.data=a}};function Vd(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Yd(e){let t=e.map(a=>a.route.path).filter(Boolean);return Je(t)||"/"}var qi=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function $i(e,t){let a=e;if(typeof a!="string"||!Ho.test(a))return{absoluteURL:void 0,isExternal:!1,to:a};let o=a,n=!1;if(qi)try{let s=new URL(window.location.href),l=Fi.test(a)?new URL(Rd(a,s.protocol)):new URL(a),c=mt(l.pathname,t);l.origin===s.origin&&c!=null?a=c+l.search+l.hash:n=!0}catch{Ge(!1,`<Link to="${a}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:o,isExternal:n,to:a}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var zi=["POST","PUT","PATCH","DELETE"];new Set(zi);var Qd=["GET",...zi];new Set(Qd);var Jd=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function Xd(e){try{return Jd.includes(new URL(e).protocol)}catch{return!1}}var zt=d.createContext(null);zt.displayName="DataRouter";var cr=d.createContext(null);cr.displayName="DataRouterState";var Vi=d.createContext(!1);function Zd(){return d.useContext(Vi)}var Yi=d.createContext({isTransitioning:!1});Yi.displayName="ViewTransition";var eu=d.createContext(new Map);eu.displayName="Fetchers";var tu=d.createContext(null);tu.displayName="Await";var He=d.createContext(null);He.displayName="Navigation";var Pa=d.createContext(null);Pa.displayName="Location";var _e=d.createContext({outlet:null,matches:[],isDataRoute:!1});_e.displayName="Route";var _o=d.createContext(null);_o.displayName="RouteError";var Qi="REACT_ROUTER_ERROR",au="REDIRECT",ru="ROUTE_ERROR_RESPONSE";function ou(e){if(e.startsWith(`${Qi}:${au}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function nu(e){if(e.startsWith(`${Qi}:${ru}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new zd(t.status,t.statusText,t.data)}catch{}}function su(e,{relative:t}={}){he(Et(),"useHref() may be used only in the context of a <Router> component.");let{basename:a,navigator:o}=d.useContext(He),{hash:n,pathname:s,search:l}=Aa(e,{relative:t}),c=s;return a!=="/"&&(c=s==="/"?a:Je([a,s])),o.createHref({pathname:c,search:l,hash:n})}function Et(){return d.useContext(Pa)!=null}function ve(){return he(Et(),"useLocation() may be used only in the context of a <Router> component."),d.useContext(Pa).location}function iu(e){he(Et(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:t}=ve();return d.useMemo(()=>ha(e,_i(t)),[t,e])}var Ji="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Xi(e){d.useContext(He).static||d.useLayoutEffect(e)}function je(){let{isDataRoute:e}=d.useContext(_e);return e?Cu():lu()}function lu(){he(Et(),"useNavigate() may be used only in the context of a <Router> component.");let e=d.useContext(zt),{basename:t,navigator:a}=d.useContext(He),{matches:o}=d.useContext(_e),{pathname:n}=ve(),s=JSON.stringify(Go(o)),l=d.useRef(!1);return Xi(()=>{l.current=!0}),d.useCallback((u,p={})=>{if(Ge(l.current,Ji),!l.current)return;if(typeof u=="number"){a.go(u);return}let g=lr(u,JSON.parse(s),n,p.relative==="path");e==null&&t!=="/"&&(g.pathname=g.pathname==="/"?t:Je([t,g.pathname])),(p.replace?a.replace:a.push)(g,p.state,p)},[t,a,s,n,e])}var Zi=d.createContext(null);function cu(){return d.useContext(Zi)}function du(e){let t=d.useContext(_e).outlet;return d.useMemo(()=>t&&d.createElement(Zi.Provider,{value:e},t),[t,e])}function dr(){let{matches:e}=d.useContext(_e);return e[e.length-1]?.params??{}}function Aa(e,{relative:t}={}){let{matches:a}=d.useContext(_e),{pathname:o}=ve(),n=JSON.stringify(Go(a));return d.useMemo(()=>lr(e,JSON.parse(n),o,t==="path"),[e,n,o,t])}function uu(e,t){return el(e,t)}function el(e,t,a){he(Et(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=d.useContext(He),{matches:n}=d.useContext(_e),s=n[n.length-1],l=s?s.params:{},c=s?s.pathname:"/",u=s?s.pathnameBase:"/",p=s&&s.route;{let m=p&&p.path||"";al(c,!p||m.endsWith("*")||m.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${c}" (under <Route path="${m}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
3
+
4
+ Please change the parent <Route path="${m}"> to <Route path="${m==="/"?"*":`${m}/*`}">.`)}let g=ve(),h;if(t){let m=typeof t=="string"?$t(t):t;he(u==="/"||m.pathname?.startsWith(u),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${m.pathname}" was given in the \`location\` prop.`),h=m}else h=g;let k=h.pathname||"/",f=k;if(u!=="/"){let m=u.replace(/^\//,"").split("/");f="/"+k.replace(/^\//,"").split("/").slice(m.length).join("/")}let w=a&&a.state.matches.length?a.state.matches.map(m=>Object.assign(m,{route:a.manifest[m.route.id]||m.route})):Oi(e,{pathname:f});Ge(p||w!=null,`No routes matched location "${h.pathname}${h.search}${h.hash}" `),Ge(w==null||w[w.length-1].route.element!==void 0||w[w.length-1].route.Component!==void 0||w[w.length-1].route.lazy!==void 0,`Matched leaf route at location "${h.pathname}${h.search}${h.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let b=fu(w&&w.map(m=>Object.assign({},m,{params:Object.assign({},l,m.params),pathname:Je([u,o.encodeLocation?o.encodeLocation(m.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:m.pathname]),pathnameBase:m.pathnameBase==="/"?u:Je([u,o.encodeLocation?o.encodeLocation(m.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:m.pathnameBase])})),n,a);return t&&b?d.createElement(Pa.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...h},navigationType:"POP"}},b):b}function pu(){let e=vu(),t=Vd(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,o="rgba(200,200,200, 0.5)",n={padding:"0.5rem",backgroundColor:o},s={padding:"2px 4px",backgroundColor:o},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=d.createElement(d.Fragment,null,d.createElement("p",null,"💿 Hey developer 👋"),d.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",d.createElement("code",{style:s},"ErrorBoundary")," or"," ",d.createElement("code",{style:s},"errorElement")," prop on your route.")),d.createElement(d.Fragment,null,d.createElement("h2",null,"Unexpected Application Error!"),d.createElement("h3",{style:{fontStyle:"italic"}},t),a?d.createElement("pre",{style:n},a):null,l)}var hu=d.createElement(pu,null),tl=class extends d.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const a=nu(e.digest);a&&(e=a)}let t=e!==void 0?d.createElement(_e.Provider,{value:this.props.routeContext},d.createElement(_o.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?d.createElement(mu,{error:e},t):t}};tl.contextType=Vi;var Er=new WeakMap;function mu({children:e,error:t}){let{basename:a}=d.useContext(He);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let o=ou(t.digest);if(o){let n=Er.get(t);if(n)throw n;let s=$i(o.location,a),l=s.absoluteURL||s.to;if(Xd(l))throw new Error("Invalid redirect location");if(qi&&!Er.get(t))if(s.isExternal||o.reloadDocument)window.location.href=l;else{const c=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(s.to,{replace:o.replace}));throw Er.set(t,c),c}return d.createElement("meta",{httpEquiv:"refresh",content:`0;url=${l}`})}}return e}function gu({routeContext:e,match:t,children:a}){let o=d.useContext(zt);return o&&o.static&&o.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=t.route.id),d.createElement(_e.Provider,{value:e},a)}function fu(e,t=[],a){let o=a?.state;if(e==null){if(!o)return null;if(o.errors)e=o.matches;else if(t.length===0&&!o.initialized&&o.matches.length>0)e=o.matches;else return null}let n=e,s=o?.errors;if(s!=null){let g=n.findIndex(h=>h.route.id&&s?.[h.route.id]!==void 0);he(g>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),n=n.slice(0,Math.min(n.length,g+1))}let l=!1,c=-1;if(a&&o){l=o.renderFallback;for(let g=0;g<n.length;g++){let h=n[g];if((h.route.HydrateFallback||h.route.hydrateFallbackElement)&&(c=g),h.route.id){let{loaderData:k,errors:f}=o,w=h.route.loader&&!k.hasOwnProperty(h.route.id)&&(!f||f[h.route.id]===void 0);if(h.route.lazy||w){a.isStatic&&(l=!0),c>=0?n=n.slice(0,c+1):n=[n[0]];break}}}}let u=a?.onError,p=o&&u?(g,h)=>{u(g,{location:o.location,params:o.matches?.[0]?.params??{},pattern:Yd(o.matches),errorInfo:h})}:void 0;return n.reduceRight((g,h,k)=>{let f,w=!1,b=null,m=null;o&&(f=s&&h.route.id?s[h.route.id]:void 0,b=h.route.errorElement||hu,l&&(c<0&&k===0?(al("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),w=!0,m=null):c===k&&(w=!0,m=h.route.hydrateFallbackElement||null)));let C=t.concat(n.slice(0,k+1)),v=()=>{let y;return f?y=b:w?y=m:h.route.Component?y=d.createElement(h.route.Component,null):h.route.element?y=h.route.element:y=g,d.createElement(gu,{match:h,routeContext:{outlet:g,matches:C,isDataRoute:o!=null},children:y})};return o&&(h.route.ErrorBoundary||h.route.errorElement||k===0)?d.createElement(tl,{location:o.location,revalidation:o.revalidation,component:b,error:f,children:v(),routeContext:{outlet:null,matches:C,isDataRoute:!0},onError:p}):v()},null)}function Ko(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function wu(e){let t=d.useContext(zt);return he(t,Ko(e)),t}function ku(e){let t=d.useContext(cr);return he(t,Ko(e)),t}function bu(e){let t=d.useContext(_e);return he(t,Ko(e)),t}function qo(e){let t=bu(e),a=t.matches[t.matches.length-1];return he(a.route.id,`${e} can only be used on routes that contain a unique "id"`),a.route.id}function yu(){return qo("useRouteId")}function vu(){let e=d.useContext(_o),t=ku("useRouteError"),a=qo("useRouteError");return e!==void 0?e:t.errors?.[a]}function Cu(){let{router:e}=wu("useNavigate"),t=qo("useNavigate"),a=d.useRef(!1);return Xi(()=>{a.current=!0}),d.useCallback(async(n,s={})=>{Ge(a.current,Ji),a.current&&(typeof n=="number"?await e.navigate(n):await e.navigate(n,{fromRouteId:t,...s}))},[e,t])}var qn={};function al(e,t,a){!t&&!qn[e]&&(qn[e]=!0,Ge(!1,a))}d.memo(Su);function Su({routes:e,manifest:t,future:a,state:o,isStatic:n,onError:s}){return el(e,void 0,{manifest:t,state:o,isStatic:n,onError:s})}function ft({to:e,replace:t,state:a,relative:o}){he(Et(),"<Navigate> may be used only in the context of a <Router> component.");let{static:n}=d.useContext(He);Ge(!n,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:s}=d.useContext(_e),{pathname:l}=ve(),c=je(),u=lr(e,Go(s),l,o==="path"),p=JSON.stringify(u);return d.useEffect(()=>{c(JSON.parse(p),{replace:t,state:a,relative:o})},[c,p,o,t,a]),null}function rl(e){return du(e.context)}function Z(e){he(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function Lu({basename:e="/",children:t=null,location:a,navigationType:o="POP",navigator:n,static:s=!1,useTransitions:l}){he(!Et(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let c=e.replace(/^\/*/,"/"),u=d.useMemo(()=>({basename:c,navigator:n,static:s,useTransitions:l,future:{}}),[c,n,s,l]);typeof a=="string"&&(a=$t(a));let{pathname:p="/",search:g="",hash:h="",state:k=null,key:f="default",mask:w}=a,b=d.useMemo(()=>{let m=mt(p,c);return m==null?null:{location:{pathname:m,search:g,hash:h,state:k,key:f,mask:w},navigationType:o}},[c,p,g,h,k,f,o,w]);return Ge(b!=null,`<Router basename="${c}"> is not able to match the URL "${p}${g}${h}" because it does not start with the basename, so the <Router> won't render anything.`),b==null?null:d.createElement(He.Provider,{value:u},d.createElement(Pa.Provider,{children:t,value:b}))}function sa({children:e,location:t}){return uu(co(e),t)}function co(e,t=[]){let a=[];return d.Children.forEach(e,(o,n)=>{if(!d.isValidElement(o))return;let s=[...t,n];if(o.type===d.Fragment){a.push.apply(a,co(o.props.children,s));return}he(o.type===Z,`[${typeof o.type=="string"?o.type:o.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),he(!o.props.index||!o.props.children,"An index route cannot have child routes.");let l={id:o.props.id||s.join("-"),caseSensitive:o.props.caseSensitive,element:o.props.element,Component:o.props.Component,index:o.props.index,path:o.props.path,middleware:o.props.middleware,loader:o.props.loader,action:o.props.action,hydrateFallbackElement:o.props.hydrateFallbackElement,HydrateFallback:o.props.HydrateFallback,errorElement:o.props.errorElement,ErrorBoundary:o.props.ErrorBoundary,hasErrorBoundary:o.props.hasErrorBoundary===!0||o.props.ErrorBoundary!=null||o.props.errorElement!=null,shouldRevalidate:o.props.shouldRevalidate,handle:o.props.handle,lazy:o.props.lazy};o.props.children&&(l.children=co(o.props.children,s)),a.push(l)}),a}var _a="get",Ka="application/x-www-form-urlencoded";function ur(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function Ru(e){return ur(e)&&e.tagName.toLowerCase()==="button"}function Pu(e){return ur(e)&&e.tagName.toLowerCase()==="form"}function Au(e){return ur(e)&&e.tagName.toLowerCase()==="input"}function xu(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Tu(e,t){return e.button===0&&(!t||t==="_self")&&!xu(e)}function uo(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,a)=>{let o=e[a];return t.concat(Array.isArray(o)?o.map(n=>[a,n]):[[a,o]])},[]))}function Du(e,t){let a=uo(e);return t&&t.forEach((o,n)=>{a.has(n)||t.getAll(n).forEach(s=>{a.append(n,s)})}),a}var Ea=null;function Nu(){if(Ea===null)try{new FormData(document.createElement("form"),0),Ea=!1}catch{Ea=!0}return Ea}var ju=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Ir(e){return e!=null&&!ju.has(e)?(Ge(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ka}"`),null):e}function Mu(e,t){let a,o,n,s,l;if(Pu(e)){let c=e.getAttribute("action");o=c?mt(c,t):null,a=e.getAttribute("method")||_a,n=Ir(e.getAttribute("enctype"))||Ka,s=new FormData(e)}else if(Ru(e)||Au(e)&&(e.type==="submit"||e.type==="image")){let c=e.form;if(c==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let u=e.getAttribute("formaction")||c.getAttribute("action");if(o=u?mt(u,t):null,a=e.getAttribute("formmethod")||c.getAttribute("method")||_a,n=Ir(e.getAttribute("formenctype"))||Ir(c.getAttribute("enctype"))||Ka,s=new FormData(c,e),!Nu()){let{name:p,type:g,value:h}=e;if(g==="image"){let k=p?`${p}.`:"";s.append(`${k}x`,"0"),s.append(`${k}y`,"0")}else p&&s.append(p,h)}}else{if(ur(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');a=_a,o=null,n=Ka,l=e}return s&&n==="text/plain"&&(l=s,s=void 0),{action:o,method:a.toLowerCase(),encType:n,formData:s,body:l}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function $o(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function ol(e,t,a,o){let n=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return a?n.pathname.endsWith("/")?n.pathname=`${n.pathname}_.${o}`:n.pathname=`${n.pathname}.${o}`:n.pathname==="/"?n.pathname=`_root.${o}`:t&&mt(n.pathname,t)==="/"?n.pathname=`${Va(t)}/_root.${o}`:n.pathname=`${Va(n.pathname)}.${o}`,n}async function Eu(e,t){if(e.id in t)return t[e.id];try{let a=await import(e.module);return t[e.id]=a,a}catch(a){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(a),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Iu(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Bu(e,t,a){let o=await Promise.all(e.map(async n=>{let s=t.routes[n.route.id];if(s){let l=await Eu(s,a);return l.links?l.links():[]}return[]}));return Uu(o.flat(1).filter(Iu).filter(n=>n.rel==="stylesheet"||n.rel==="preload").map(n=>n.rel==="stylesheet"?{...n,rel:"prefetch",as:"style"}:{...n,rel:"prefetch"}))}function $n(e,t,a,o,n,s){let l=(u,p)=>a[p]?u.route.id!==a[p].route.id:!0,c=(u,p)=>a[p].pathname!==u.pathname||a[p].route.path?.endsWith("*")&&a[p].params["*"]!==u.params["*"];return s==="assets"?t.filter((u,p)=>l(u,p)||c(u,p)):s==="data"?t.filter((u,p)=>{let g=o.routes[u.route.id];if(!g||!g.hasLoader)return!1;if(l(u,p)||c(u,p))return!0;if(u.route.shouldRevalidate){let h=u.route.shouldRevalidate({currentUrl:new URL(n.pathname+n.search+n.hash,window.origin),currentParams:a[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:u.params,defaultShouldRevalidate:!0});if(typeof h=="boolean")return h}return!0}):[]}function Fu(e,t,{includeHydrateFallback:a}={}){return Ou(e.map(o=>{let n=t.routes[o.route.id];if(!n)return[];let s=[n.module];return n.clientActionModule&&(s=s.concat(n.clientActionModule)),n.clientLoaderModule&&(s=s.concat(n.clientLoaderModule)),a&&n.hydrateFallbackModule&&(s=s.concat(n.hydrateFallbackModule)),n.imports&&(s=s.concat(n.imports)),s}).flat(1))}function Ou(e){return[...new Set(e)]}function Wu(e){let t={},a=Object.keys(e).sort();for(let o of a)t[o]=e[o];return t}function Uu(e,t){let a=new Set;return new Set(t),e.reduce((o,n)=>{let s=JSON.stringify(Wu(n));return a.has(s)||(a.add(s),o.push({key:s,link:n})),o},[])}function zo(){let e=d.useContext(zt);return $o(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Hu(){let e=d.useContext(cr);return $o(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Vo=d.createContext(void 0);Vo.displayName="FrameworkContext";function pr(){let e=d.useContext(Vo);return $o(e,"You must render this element inside a <HydratedRouter> element"),e}function Gu(e,t){let a=d.useContext(Vo),[o,n]=d.useState(!1),[s,l]=d.useState(!1),{onFocus:c,onBlur:u,onMouseEnter:p,onMouseLeave:g,onTouchStart:h}=t,k=d.useRef(null);d.useEffect(()=>{if(e==="render"&&l(!0),e==="viewport"){let b=C=>{C.forEach(v=>{l(v.isIntersecting)})},m=new IntersectionObserver(b,{threshold:.5});return k.current&&m.observe(k.current),()=>{m.disconnect()}}},[e]),d.useEffect(()=>{if(o){let b=setTimeout(()=>{l(!0)},100);return()=>{clearTimeout(b)}}},[o]);let f=()=>{n(!0)},w=()=>{n(!1),l(!1)};return a?e!=="intent"?[s,k,{}]:[s,k,{onFocus:ea(c,f),onBlur:ea(u,w),onMouseEnter:ea(p,f),onMouseLeave:ea(g,w),onTouchStart:ea(h,f)}]:[!1,k,{}]}function ea(e,t){return a=>{e&&e(a),a.defaultPrevented||t(a)}}function _u({page:e,...t}){let a=Zd(),{nonce:o}=pr(),{router:n}=zo(),s=d.useMemo(()=>Oi(n.routes,e,n.basename),[n.routes,e,n.basename]);return s?(t.nonce==null&&o&&(t={...t,nonce:o}),a?d.createElement(qu,{page:e,matches:s,...t}):d.createElement($u,{page:e,matches:s,...t})):null}function Ku(e){let{manifest:t,routeModules:a}=pr(),[o,n]=d.useState([]);return d.useEffect(()=>{let s=!1;return Bu(e,t,a).then(l=>{s||n(l)}),()=>{s=!0}},[e,t,a]),o}function qu({page:e,matches:t,...a}){let o=ve(),{future:n}=pr(),{basename:s}=zo(),l=d.useMemo(()=>{if(e===o.pathname+o.search+o.hash)return[];let c=ol(e,s,n.v8_trailingSlashAwareDataRequests,"rsc"),u=!1,p=[];for(let g of t)typeof g.route.shouldRevalidate=="function"?u=!0:p.push(g.route.id);return u&&p.length>0&&c.searchParams.set("_routes",p.join(",")),[c.pathname+c.search]},[s,n.v8_trailingSlashAwareDataRequests,e,o,t]);return d.createElement(d.Fragment,null,l.map(c=>d.createElement("link",{key:c,rel:"prefetch",as:"fetch",href:c,...a})))}function $u({page:e,matches:t,...a}){let o=ve(),{future:n,manifest:s,routeModules:l}=pr(),{basename:c}=zo(),{loaderData:u,matches:p}=Hu(),g=d.useMemo(()=>$n(e,t,p,s,o,"data"),[e,t,p,s,o]),h=d.useMemo(()=>$n(e,t,p,s,o,"assets"),[e,t,p,s,o]),k=d.useMemo(()=>{if(e===o.pathname+o.search+o.hash)return[];let b=new Set,m=!1;if(t.forEach(v=>{let y=s.routes[v.route.id];!y||!y.hasLoader||(!g.some(L=>L.route.id===v.route.id)&&v.route.id in u&&l[v.route.id]?.shouldRevalidate||y.hasClientLoader?m=!0:b.add(v.route.id))}),b.size===0)return[];let C=ol(e,c,n.v8_trailingSlashAwareDataRequests,"data");return m&&b.size>0&&C.searchParams.set("_routes",t.filter(v=>b.has(v.route.id)).map(v=>v.route.id).join(",")),[C.pathname+C.search]},[c,n.v8_trailingSlashAwareDataRequests,u,o,s,g,t,e,l]),f=d.useMemo(()=>Fu(h,s),[h,s]),w=Ku(h);return d.createElement(d.Fragment,null,k.map(b=>d.createElement("link",{key:b,rel:"prefetch",as:"fetch",href:b,...a})),f.map(b=>d.createElement("link",{key:b,rel:"modulepreload",href:b,...a})),w.map(({key:b,link:m})=>d.createElement("link",{key:b,nonce:a.nonce,...m,crossOrigin:m.crossOrigin??a.crossOrigin})))}function zu(...e){return t=>{e.forEach(a=>{typeof a=="function"?a(t):a!=null&&(a.current=t)})}}var Vu=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Vu&&(window.__reactRouterVersion="7.18.1")}catch{}function Yu({basename:e,children:t,useTransitions:a,window:o}){let n=d.useRef();n.current==null&&(n.current=Pd({window:o,v5Compat:!0}));let s=n.current,[l,c]=d.useState({action:s.action,location:s.location}),u=d.useCallback(p=>{a===!1?c(p):d.startTransition(()=>c(p))},[a]);return d.useLayoutEffect(()=>s.listen(u),[s,u]),d.createElement(Lu,{basename:e,children:t,location:l.location,navigationType:l.action,navigator:s,useTransitions:a})}var jt=d.forwardRef(function({onClick:t,discover:a="render",prefetch:o="none",relative:n,reloadDocument:s,replace:l,mask:c,state:u,target:p,to:g,preventScrollReset:h,viewTransition:k,defaultShouldRevalidate:f,...w},b){let{basename:m,navigator:C,useTransitions:v}=d.useContext(He),y=typeof g=="string"&&Ho.test(g),L=$i(g,m);g=L.to;let x=su(g,{relative:n}),T=ve(),N=null;if(c){let _=lr(c,[],T.mask?T.mask.pathname:"/",!0);m!=="/"&&(_.pathname=_.pathname==="/"?m:Je([m,_.pathname])),N=C.createHref(_)}let[A,R,P]=Gu(o,w),I=Zu(g,{replace:l,mask:c,state:u,target:p,preventScrollReset:h,relative:n,viewTransition:k,defaultShouldRevalidate:f,useTransitions:v});function O(_){t&&t(_),_.defaultPrevented||I(_)}let E=!(L.isExternal||s),$=d.createElement("a",{...w,...P,href:(E?N:void 0)||L.absoluteURL||x,onClick:E?O:t,ref:zu(b,R),target:p,"data-discover":!y&&a==="render"?"true":void 0});return A&&!y?d.createElement(d.Fragment,null,$,d.createElement(_u,{page:x})):$});jt.displayName="Link";var Qu=d.forwardRef(function({"aria-current":t="page",caseSensitive:a=!1,className:o="",end:n=!1,style:s,to:l,viewTransition:c,children:u,...p},g){let h=Aa(l,{relative:p.relative}),k=ve(),f=d.useContext(cr),{navigator:w,basename:b}=d.useContext(He),m=f!=null&&op(h)&&c===!0,C=w.encodeLocation?w.encodeLocation(h).pathname:h.pathname,v=k.pathname,y=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;a||(v=v.toLowerCase(),y=y?y.toLowerCase():null,C=C.toLowerCase()),y&&b&&(y=mt(y,b)||y);const L=C!=="/"&&C.endsWith("/")?C.length-1:C.length;let x=v===C||!n&&v.startsWith(C)&&v.charAt(L)==="/",T=y!=null&&(y===C||!n&&y.startsWith(C)&&y.charAt(C.length)==="/"),N={isActive:x,isPending:T,isTransitioning:m},A=x?t:void 0,R;typeof o=="function"?R=o(N):R=[o,x?"active":null,T?"pending":null,m?"transitioning":null].filter(Boolean).join(" ");let P=typeof s=="function"?s(N):s;return d.createElement(jt,{...p,"aria-current":A,className:R,ref:g,style:P,to:l,viewTransition:c},typeof u=="function"?u(N):u)});Qu.displayName="NavLink";var Ju=d.forwardRef(({discover:e="render",fetcherKey:t,navigate:a,reloadDocument:o,replace:n,state:s,method:l=_a,action:c,onSubmit:u,relative:p,preventScrollReset:g,viewTransition:h,defaultShouldRevalidate:k,...f},w)=>{let{useTransitions:b}=d.useContext(He),m=ap(),C=rp(c,{relative:p}),v=l.toLowerCase()==="get"?"get":"post",y=typeof c=="string"&&Ho.test(c),L=x=>{if(u&&u(x),x.defaultPrevented)return;x.preventDefault();let T=x.nativeEvent.submitter,N=T?.getAttribute("formmethod")||l,A=()=>m(T||x.currentTarget,{fetcherKey:t,method:N,navigate:a,replace:n,state:s,relative:p,preventScrollReset:g,viewTransition:h,defaultShouldRevalidate:k});b&&a!==!1?d.startTransition(()=>A()):A()};return d.createElement("form",{ref:w,method:v,action:C,onSubmit:o?u:L,...f,"data-discover":!y&&e==="render"?"true":void 0})});Ju.displayName="Form";function Xu(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function nl(e){let t=d.useContext(zt);return he(t,Xu(e)),t}function Zu(e,{target:t,replace:a,mask:o,state:n,preventScrollReset:s,relative:l,viewTransition:c,defaultShouldRevalidate:u,useTransitions:p}={}){let g=je(),h=ve(),k=Aa(e,{relative:l});return d.useCallback(f=>{if(Tu(f,t)){f.preventDefault();let w=a!==void 0?a:pa(h)===pa(k),b=()=>g(e,{replace:w,mask:o,state:n,preventScrollReset:s,relative:l,viewTransition:c,defaultShouldRevalidate:u});p?d.startTransition(()=>b()):b()}},[h,g,k,a,o,n,t,e,s,l,c,u,p])}function BS(e){Ge(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=d.useRef(uo(e)),a=d.useRef(!1),o=ve(),n=d.useMemo(()=>Du(o.search,a.current?null:t.current),[o.search]),s=je(),l=d.useCallback((c,u)=>{const p=uo(typeof c=="function"?c(new URLSearchParams(n)):c);a.current=!0,s("?"+p,u)},[s,n]);return[n,l]}var ep=0,tp=()=>`__${String(++ep)}__`;function ap(){let{router:e}=nl("useSubmit"),{basename:t}=d.useContext(He),a=yu(),o=e.fetch,n=e.navigate;return d.useCallback(async(s,l={})=>{let{action:c,method:u,encType:p,formData:g,body:h}=Mu(s,t);if(l.navigate===!1){let k=l.fetcherKey||tp();await o(k,a,l.action||c,{defaultShouldRevalidate:l.defaultShouldRevalidate,preventScrollReset:l.preventScrollReset,formData:g,body:h,formMethod:l.method||u,formEncType:l.encType||p,flushSync:l.flushSync})}else await n(l.action||c,{defaultShouldRevalidate:l.defaultShouldRevalidate,preventScrollReset:l.preventScrollReset,formData:g,body:h,formMethod:l.method||u,formEncType:l.encType||p,replace:l.replace,state:l.state,fromRouteId:a,flushSync:l.flushSync,viewTransition:l.viewTransition})},[o,n,t,a])}function rp(e,{relative:t}={}){let{basename:a}=d.useContext(He),o=d.useContext(_e);he(o,"useFormAction must be used inside a RouteContext");let[n]=o.matches.slice(-1),s={...Aa(e||".",{relative:t})},l=ve();if(e==null){s.search=l.search;let c=new URLSearchParams(s.search),u=c.getAll("index");if(u.some(g=>g==="")){c.delete("index"),u.filter(h=>h).forEach(h=>c.append("index",h));let g=c.toString();s.search=g?`?${g}`:""}}return(!e||e===".")&&n.route.index&&(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index"),a!=="/"&&(s.pathname=s.pathname==="/"?a:Je([a,s.pathname])),pa(s)}function op(e,{relative:t}={}){let a=d.useContext(Yi);he(a!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:o}=nl("useViewTransitionState"),n=Aa(e,{relative:t});if(!a.isTransitioning)return!1;let s=mt(a.currentLocation.pathname,o)||a.currentLocation.pathname,l=mt(a.nextLocation.pathname,o)||a.nextLocation.pathname;return ha(n.pathname,l)!=null||ha(n.pathname,s)!=null}var Ut=Sd(),hr=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},np=class extends hr{#e;#t;#a;constructor(){super(),this.#a=e=>{if(typeof window<"u"&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#a=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},sl=new np,sp={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},ip=class{#e=sp;#t=!1;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}},po=new ip;function lp(e){setTimeout(e,0)}var cp=typeof window>"u"||"Deno"in globalThis;function Ye(){}function dp(e,t){return typeof e=="function"?e(t):e}function up(e){return typeof e=="number"&&e>=0&&e!==1/0}function pp(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ho(e,t){return typeof e=="function"?e(t):e}function hp(e,t){return typeof e=="function"?e(t):e}function zn(e,t){const{type:a="all",exact:o,fetchStatus:n,predicate:s,queryKey:l,stale:c}=e;if(l){if(o){if(t.queryHash!==Yo(l,t.options))return!1}else if(!ga(t.queryKey,l))return!1}if(a!=="all"){const u=t.isActive();if(a==="active"&&!u||a==="inactive"&&u)return!1}return!(typeof c=="boolean"&&t.isStale()!==c||n&&n!==t.state.fetchStatus||s&&!s(t))}function Vn(e,t){const{exact:a,status:o,predicate:n,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(a){if(ma(t.options.mutationKey)!==ma(s))return!1}else if(!ga(t.options.mutationKey,s))return!1}return!(o&&t.state.status!==o||n&&!n(t))}function Yo(e,t){return(t?.queryKeyHashFn||ma)(e)}function ma(e){return JSON.stringify(e,(t,a)=>mo(a)?Object.keys(a).sort().reduce((o,n)=>(o[n]=a[n],o),{}):a)}function ga(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(a=>ga(e[a],t[a])):!1}var mp=Object.prototype.hasOwnProperty;function il(e,t,a=0){if(e===t)return e;if(a>500)return t;const o=Yn(e)&&Yn(t);if(!o&&!(mo(e)&&mo(t)))return t;const s=(o?e:Object.keys(e)).length,l=o?t:Object.keys(t),c=l.length,u=o?new Array(c):{};let p=0;for(let g=0;g<c;g++){const h=o?g:l[g],k=e[h],f=t[h];if(k===f){u[h]=k,(o?g<s:mp.call(e,h))&&p++;continue}if(k===null||f===null||typeof k!="object"||typeof f!="object"){u[h]=f;continue}const w=il(k,f,a+1);u[h]=w,w===k&&p++}return s===c&&p===s?e:u}function FS(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const a in e)if(e[a]!==t[a])return!1;return!0}function Yn(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function mo(e){if(!Qn(e))return!1;const t=e.constructor;if(t===void 0)return!0;const a=t.prototype;return!(!Qn(a)||!a.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Qn(e){return Object.prototype.toString.call(e)==="[object Object]"}function gp(e){return new Promise(t=>{po.setTimeout(t,e)})}function fp(e,t,a){return typeof a.structuralSharing=="function"?a.structuralSharing(e,t):a.structuralSharing!==!1?il(e,t):t}function wp(e,t,a=0){const o=[...e,t];return a&&o.length>a?o.slice(1):o}function kp(e,t,a=0){const o=[t,...e];return a&&o.length>a?o.slice(0,-1):o}var Qo=Symbol();function ll(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===Qo?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function OS(e,t){return typeof e=="function"?e(...t):!!e}function bp(e,t,a){let o=!1,n;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(n??=t(),o||(o=!0,n.aborted?a():n.addEventListener("abort",a,{once:!0})),n)}),e}var cl=(()=>{let e=()=>cp;return{isServer(){return e()},setIsServer(t){e=t}}})();function yp(){let e,t;const a=new Promise((n,s)=>{e=n,t=s});a.status="pending",a.catch(()=>{});function o(n){Object.assign(a,n),delete a.resolve,delete a.reject}return a.resolve=n=>{o({status:"fulfilled",value:n}),e(n)},a.reject=n=>{o({status:"rejected",reason:n}),t(n)},a}var vp=lp;function Cp(){let e=[],t=0,a=c=>{c()},o=c=>{c()},n=vp;const s=c=>{t?e.push(c):n(()=>{a(c)})},l=()=>{const c=e;e=[],c.length&&n(()=>{o(()=>{c.forEach(u=>{a(u)})})})};return{batch:c=>{let u;t++;try{u=c()}finally{t--,t||l()}return u},batchCalls:c=>(...u)=>{s(()=>{c(...u)})},schedule:s,setNotifyFunction:c=>{a=c},setBatchNotifyFunction:c=>{o=c},setScheduler:c=>{n=c}}}var Ee=Cp(),Sp=class extends hr{#e=!0;#t;#a;constructor(){super(),this.#a=e=>{if(typeof window<"u"&&window.addEventListener){const t=()=>e(!0),a=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",a,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",a)}}}}onSubscribe(){this.#t||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#a=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(a=>{a(e)}))}isOnline(){return this.#e}},Ya=new Sp;function Lp(e){return Math.min(1e3*2**e,3e4)}function dl(e){return(e??"online")==="online"?Ya.isOnline():!0}var go=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function ul(e){let t=!1,a=0,o;const n=yp(),s=()=>n.status!=="pending",l=b=>{if(!s()){const m=new go(b);k(m),e.onCancel?.(m)}},c=()=>{t=!0},u=()=>{t=!1},p=()=>sl.isFocused()&&(e.networkMode==="always"||Ya.isOnline())&&e.canRun(),g=()=>dl(e.networkMode)&&e.canRun(),h=b=>{s()||(o?.(),n.resolve(b))},k=b=>{s()||(o?.(),n.reject(b))},f=()=>new Promise(b=>{o=m=>{(s()||p())&&b(m)},e.onPause?.()}).then(()=>{o=void 0,s()||e.onContinue?.()}),w=()=>{if(s())return;let b;const m=a===0?e.initialPromise:void 0;try{b=m??e.fn()}catch(C){b=Promise.reject(C)}Promise.resolve(b).then(h).catch(C=>{if(s())return;const v=e.retry??(cl.isServer()?0:3),y=e.retryDelay??Lp,L=typeof y=="function"?y(a,C):y,x=v===!0||typeof v=="number"&&a<v||typeof v=="function"&&v(a,C);if(t||!x){k(C);return}a++,e.onFail?.(a,C),gp(L).then(()=>p()?void 0:f()).then(()=>{t?k(C):w()})})};return{promise:n,status:()=>n.status,cancel:l,continue:()=>(o?.(),n),cancelRetry:c,continueRetry:u,canStart:g,start:()=>(g()?w():f().then(w),n)}}var pl=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),up(this.gcTime)&&(this.#e=po.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(cl.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(po.clearTimeout(this.#e),this.#e=void 0)}};function Rp(e){return{onFetch:(t,a)=>{const o=t.options,n=t.fetchOptions?.meta?.fetchMore?.direction,s=t.state.data?.pages||[],l=t.state.data?.pageParams||[];let c={pages:[],pageParams:[]},u=0;const p=async()=>{let g=!1;const h=w=>{bp(w,()=>t.signal,()=>g=!0)},k=ll(t.options,t.fetchOptions),f=async(w,b,m)=>{if(g)return Promise.reject(t.signal.reason);if(b==null&&w.pages.length)return Promise.resolve(w);const v=(()=>{const T={client:t.client,queryKey:t.queryKey,pageParam:b,direction:m?"backward":"forward",meta:t.options.meta};return h(T),T})(),y=await k(v),{maxPages:L}=t.options,x=m?kp:wp;return{pages:x(w.pages,y,L),pageParams:x(w.pageParams,b,L)}};if(n&&s.length){const w=n==="backward",b=w?Pp:Jn,m={pages:s,pageParams:l},C=b(o,m);c=await f(m,C,w)}else{const w=e??s.length;do{const b=u===0?l[0]??o.initialPageParam:Jn(o,c);if(u>0&&b==null)break;c=await f(c,b),u++}while(u<w)}return c};t.options.persister?t.fetchFn=()=>t.options.persister?.(p,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},a):t.fetchFn=p}}}function Jn(e,{pages:t,pageParams:a}){const o=t.length-1;return t.length>0?e.getNextPageParam(t[o],t,a[o],a):void 0}function Pp(e,{pages:t,pageParams:a}){return t.length>0?e.getPreviousPageParam?.(t[0],t,a[0],a):void 0}var Ap=class extends pl{#e;#t;#a;#o;#n;#r;#l;#s;constructor(e){super(),this.#s=!1,this.#l=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#n=e.client,this.#o=this.#n.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Zn(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#r?.promise}setOptions(e){if(this.options={...this.#l,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const t=Zn(this.options);t.data!==void 0&&(this.setState(Xn(t.data,t.dataUpdatedAt)),this.#t=t)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#o.remove(this)}setData(e,t){const a=fp(this.state.data,e,this.options);return this.#i({data:a,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),a}setState(e){this.#i({type:"setState",state:e})}cancel(e){const t=this.#r?.promise;return this.#r?.cancel(e),t?t.then(Ye).catch(Ye):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>hp(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Qo||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>ho(e.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e==="static"?!1:this.state.isInvalidated?!0:!pp(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#r?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#r?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#o.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#r&&(this.#s||this.#c()?this.#r.cancel({revert:!0}):this.#r.cancelRetry()),this.scheduleGc()),this.#o.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"}invalidate(){this.state.isInvalidated||this.#i({type:"invalidate"})}async fetch(e,t){if(this.state.fetchStatus!=="idle"&&this.#r?.status()!=="rejected"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#r)return this.#r.continueRetry(),this.#r.promise}if(e&&this.setOptions(e),!this.options.queryFn){const u=this.observers.find(p=>p.options.queryFn);u&&this.setOptions(u.options)}const a=new AbortController,o=u=>{Object.defineProperty(u,"signal",{enumerable:!0,get:()=>(this.#s=!0,a.signal)})},n=()=>{const u=ll(this.options,t),g=(()=>{const h={client:this.#n,queryKey:this.queryKey,meta:this.meta};return o(h),h})();return this.#s=!1,this.options.persister?this.options.persister(u,g,this):u(g)},l=(()=>{const u={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#n,state:this.state,fetchFn:n};return o(u),u})();(this.#e==="infinite"?Rp(this.options.pages):this.options.behavior)?.onFetch(l,this),this.#a=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==l.fetchOptions?.meta)&&this.#i({type:"fetch",meta:l.fetchOptions?.meta}),this.#r=ul({initialPromise:t?.initialPromise,fn:l.fetchFn,onCancel:u=>{u instanceof go&&u.revert&&this.setState({...this.#a,fetchStatus:"idle"}),a.abort()},onFail:(u,p)=>{this.#i({type:"failed",failureCount:u,error:p})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0});try{const u=await this.#r.start();if(u===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(u),this.#o.config.onSuccess?.(u,this),this.#o.config.onSettled?.(u,this.state.error,this),u}catch(u){if(u instanceof go){if(u.silent)return this.#r.promise;if(u.revert){if(this.state.data===void 0)throw u;return this.state.data}}throw this.#i({type:"error",error:u}),this.#o.config.onError?.(u,this),this.#o.config.onSettled?.(this.state.data,u,this),u}finally{this.scheduleGc()}}#i(e){const t=a=>{switch(e.type){case"failed":return{...a,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...a,fetchStatus:"paused"};case"continue":return{...a,fetchStatus:"fetching"};case"fetch":return{...a,...xp(a.data,this.options),fetchMeta:e.meta??null};case"success":const o={...a,...Xn(e.data,e.dataUpdatedAt),dataUpdateCount:a.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#a=e.manual?o:void 0,o;case"error":const n=e.error;return{...a,error:n,errorUpdateCount:a.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:a.fetchFailureCount+1,fetchFailureReason:n,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...a,isInvalidated:!0};case"setState":return{...a,...e.state}}};this.state=t(this.state),Ee.batch(()=>{this.observers.forEach(a=>{a.onQueryUpdate()}),this.#o.notify({query:this,type:"updated",action:e})})}};function xp(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:dl(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Xn(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Zn(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,a=t!==void 0,o=a?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:a?o??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:a?"success":"pending",fetchStatus:"idle"}}var Tp=class extends pl{#e;#t;#a;#o;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#a=e.mutationCache,this.#t=[],this.state=e.state||Dp(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#a.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#a.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#a.remove(this))}continue(){return this.#o?.continue()??this.execute(this.state.variables)}async execute(e){const t=()=>{this.#n({type:"continue"})},a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#o=ul({fn:()=>this.options.mutationFn?this.options.mutationFn(e,a):Promise.reject(new Error("No mutationFn found")),onFail:(s,l)=>{this.#n({type:"failed",failureCount:s,error:l})},onPause:()=>{this.#n({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#a.canRun(this)});const o=this.state.status==="pending",n=!this.#o.canStart();try{if(o)t();else{this.#n({type:"pending",variables:e,isPaused:n}),this.#a.config.onMutate&&await this.#a.config.onMutate(e,this,a);const l=await this.options.onMutate?.(e,a);l!==this.state.context&&this.#n({type:"pending",context:l,variables:e,isPaused:n})}const s=await this.#o.start();return await this.#a.config.onSuccess?.(s,e,this.state.context,this,a),await this.options.onSuccess?.(s,e,this.state.context,a),await this.#a.config.onSettled?.(s,null,this.state.variables,this.state.context,this,a),await this.options.onSettled?.(s,null,e,this.state.context,a),this.#n({type:"success",data:s}),s}catch(s){try{await this.#a.config.onError?.(s,e,this.state.context,this,a)}catch(l){Promise.reject(l)}try{await this.options.onError?.(s,e,this.state.context,a)}catch(l){Promise.reject(l)}try{await this.#a.config.onSettled?.(void 0,s,this.state.variables,this.state.context,this,a)}catch(l){Promise.reject(l)}try{await this.options.onSettled?.(void 0,s,e,this.state.context,a)}catch(l){Promise.reject(l)}throw this.#n({type:"error",error:s}),s}finally{this.#a.runNext(this)}}#n(e){const t=a=>{switch(e.type){case"failed":return{...a,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...a,isPaused:!0};case"continue":return{...a,isPaused:!1};case"pending":return{...a,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...a,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...a,data:void 0,error:e.error,failureCount:a.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),Ee.batch(()=>{this.#t.forEach(a=>{a.onMutationUpdate(e)}),this.#a.notify({mutation:this,type:"updated",action:e})})}};function Dp(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Np=class extends hr{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#a=0}#e;#t;#a;build(e,t,a){const o=new Tp({client:e,mutationCache:this,mutationId:++this.#a,options:e.defaultMutationOptions(t),state:a});return this.add(o),o}add(e){this.#e.add(e);const t=Ia(e);if(typeof t=="string"){const a=this.#t.get(t);a?a.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){const t=Ia(e);if(typeof t=="string"){const a=this.#t.get(t);if(a)if(a.length>1){const o=a.indexOf(e);o!==-1&&a.splice(o,1)}else a[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){const t=Ia(e);if(typeof t=="string"){const o=this.#t.get(t)?.find(n=>n.state.status==="pending");return!o||o===e}else return!0}runNext(e){const t=Ia(e);return typeof t=="string"?this.#t.get(t)?.find(o=>o!==e&&o.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){Ee.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){const t={exact:!0,...e};return this.getAll().find(a=>Vn(t,a))}findAll(e={}){return this.getAll().filter(t=>Vn(e,t))}notify(e){Ee.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){const e=this.getAll().filter(t=>t.state.isPaused);return Ee.batch(()=>Promise.all(e.map(t=>t.continue().catch(Ye))))}};function Ia(e){return e.options.scope?.id}var jp=class extends hr{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,a){const o=t.queryKey,n=t.queryHash??Yo(o,t);let s=this.get(n);return s||(s=new Ap({client:e,queryKey:o,queryHash:n,options:e.defaultQueryOptions(t),state:a,defaultOptions:e.getQueryDefaults(o)}),this.add(s)),s}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){Ee.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){const t={exact:!0,...e};return this.getAll().find(a=>zn(t,a))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter(a=>zn(e,a)):t}notify(e){Ee.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){Ee.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){Ee.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Mp=class{#e;#t;#a;#o;#n;#r;#l;#s;constructor(e={}){this.#e=e.queryCache||new jp,this.#t=e.mutationCache||new Np,this.#a=e.defaultOptions||{},this.#o=new Map,this.#n=new Map,this.#r=0}mount(){this.#r++,this.#r===1&&(this.#l=sl.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Ya.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#r--,this.#r===0&&(this.#l?.(),this.#l=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),a=this.#e.build(this,t),o=a.state.data;return o===void 0?this.fetchQuery(e):(e.revalidateIfStale&&a.isStaleByTime(ho(t.staleTime,a))&&this.prefetchQuery(t),Promise.resolve(o))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:a})=>{const o=a.data;return[t,o]})}setQueryData(e,t,a){const o=this.defaultQueryOptions({queryKey:e}),s=this.#e.get(o.queryHash)?.state.data,l=dp(t,s);if(l!==void 0)return this.#e.build(this,o).setData(l,{...a,manual:!0})}setQueriesData(e,t,a){return Ee.batch(()=>this.#e.findAll(e).map(({queryKey:o})=>[o,this.setQueryData(o,t,a)]))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){const t=this.#e;Ee.batch(()=>{t.findAll(e).forEach(a=>{t.remove(a)})})}resetQueries(e,t){const a=this.#e;return Ee.batch(()=>(a.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const a={revert:!0,...t},o=Ee.batch(()=>this.#e.findAll(e).map(n=>n.cancel(a)));return Promise.all(o).then(Ye).catch(Ye)}invalidateQueries(e,t={}){return Ee.batch(()=>(this.#e.findAll(e).forEach(a=>{a.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t)))}refetchQueries(e,t={}){const a={...t,cancelRefetch:t.cancelRefetch??!0},o=Ee.batch(()=>this.#e.findAll(e).filter(n=>!n.isDisabled()&&!n.isStatic()).map(n=>{let s=n.fetch(void 0,a);return a.throwOnError||(s=s.catch(Ye)),n.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(o).then(Ye)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const a=this.#e.build(this,t);return a.isStaleByTime(ho(t.staleTime,a))?a.fetch(t):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Ye).catch(Ye)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Ye).catch(Ye)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Ya.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#a}setDefaultOptions(e){this.#a=e}setQueryDefaults(e,t){this.#o.set(ma(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#o.values()],a={};return t.forEach(o=>{ga(e,o.queryKey)&&Object.assign(a,o.defaultOptions)}),a}setMutationDefaults(e,t){this.#n.set(ma(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#n.values()],a={};return t.forEach(o=>{ga(e,o.mutationKey)&&Object.assign(a,o.defaultOptions)}),a}defaultQueryOptions(e){if(e._defaulted)return e;const t={...this.#a.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Yo(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Qo&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#a.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},hl=d.createContext(void 0),WS=e=>{const t=d.useContext(hl);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},Ep=({client:e,children:t})=>(d.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),r.jsx(hl.Provider,{value:e,children:t}));const Jo=[{id:"chat",surface:"chat",routePrefix:"/chat",productName:"Cats Chat",subtitle:"Conversations with companions and personal agents",group:"home",installPolicy:"required",installState:"installed",maturity:"active",setup:{selectable:!0},settings:[{id:"chat",label:"Chat",path:"/settings/chat"}]},{id:"code",surface:"code",routePrefix:"/code",productName:"Cats Code",subtitle:"Repos, runs, and codespaces",group:"office",installPolicy:"required",installState:"installed",maturity:"preview",setup:{selectable:!0},settings:[{id:"code",label:"Code",path:"/settings/code"}]},{id:"work",surface:"work",routePrefix:"/work",productName:"Cats Work",subtitle:"Projects, approvals, and operator workflow",group:"office",installPolicy:"required",installState:"installed",maturity:"preview",setup:{selectable:!0},settings:[{id:"work",label:"Work",path:"/settings/work"}]}];new Map(Jo.map(e=>[e.id,e]));const ml=new Map(Jo.filter(e=>e.surface!==null).map(e=>[e.surface,e]));function Ip(e){return{...e,setup:{...e.setup},settings:e.settings?.map(t=>({...t}))}}function Bp(){return Jo.map(Ip)}function Fp(e){return ml.get(e)?.routePrefix??"/chat"}function Op(e){return ml.get(e)?.productName??"Cats Chat"}const Xo=Bp().filter(e=>e.surface!==null).map(e=>({id:e.surface,routePrefix:e.routePrefix,productName:e.productName,subtitle:e.subtitle}));new Map(Xo.map(e=>[e.id,e]));const Wp={chat:"Chat",work:"Work",code:"Code"};function Up(){return Xo}function Hp(e){return Xo.find(a=>e===a.routePrefix||e.startsWith(`${a.routePrefix}/`))?.id??"chat"}function US(e){return Op(e)}function Gp(e){return Wp[e]??"Chat"}function mr(e){return Fp(e)}const i={appBrandName:"app.brandName",appLoadingWithSurface:"app.loadingWithSurface",appLoadingEllipsis:"app.loadingEllipsis",appErrorTitle:"app.errorTitle",appErrorEyebrow:"app.errorEyebrow",appTitle:"app.title",appLoadErrorMessage:"app.loadErrorMessage",appLoadStateFailedWithStatus:"app.loadStateFailedWithStatus",setupWizardAdminCredentialsHint:"setupWizard.adminCredentialsHint",setupWizardAdminIdentifierLabel:"setupWizard.adminIdentifierLabel",setupWizardAdminIdentifierPlaceholder:"setupWizard.adminIdentifierPlaceholder",setupWizardAdminPasswordLabel:"setupWizard.adminPasswordLabel",setupWizardAdminPasswordPlaceholder:"setupWizard.adminPasswordPlaceholder",authLoginTitle:"auth.login.title",authLoginSubtitle:"auth.login.subtitle",authLoginIdentifierLabel:"auth.login.identifierLabel",authLoginIdentifierPlaceholder:"auth.login.identifierPlaceholder",authLoginPasswordLabel:"auth.login.passwordLabel",authLoginPasswordPlaceholder:"auth.login.passwordPlaceholder",authLoginSubmit:"auth.login.submit",authLoginSubmitting:"auth.login.submitting",authLoginInvalidCredentials:"auth.login.invalidCredentials",authLoginForbidden:"auth.login.forbidden",authLoginCsrfMismatch:"auth.login.csrfMismatch",authLoginFailed:"auth.login.failed",authLoginFailedWithStatus:"auth.login.failedWithStatus",authLoginGoogleOriginHint:"auth.login.googleOriginHint",authLoginGoogleUnavailable:"auth.login.googleUnavailable",authRepairTitle:"auth.repair.title",authRepairSubtitle:"auth.repair.subtitle",authRepairDisplayNameLabel:"auth.repair.displayNameLabel",authRepairDisplayNamePlaceholder:"auth.repair.displayNamePlaceholder",authRepairIdentifierLabel:"auth.repair.identifierLabel",authRepairIdentifierPlaceholder:"auth.repair.identifierPlaceholder",authRepairPasswordLabel:"auth.repair.passwordLabel",authRepairPasswordPlaceholder:"auth.repair.passwordPlaceholder",authRepairRecoveryTokenLabel:"auth.repair.recoveryTokenLabel",authRepairRecoveryTokenPlaceholder:"auth.repair.recoveryTokenPlaceholder",authRepairRecoveryTokenHint:"auth.repair.recoveryTokenHint",authRepairSubmit:"auth.repair.submit",authRepairSubmitting:"auth.repair.submitting",authRepairForbidden:"auth.repair.forbidden",authRepairFailed:"auth.repair.failed",authRepairFailedWithStatus:"auth.repair.failedWithStatus",appHostLabel:"appHost.label",appHostNotInstalledTitle:"appHost.notInstalledTitle",appHostBackToLobby:"appHost.backToLobby",appHostSubtitleRendererPending:"appHost.subtitleRendererPending",appHostSubtitleDisabled:"appHost.subtitleDisabled",appHostSectionPackage:"appHost.sectionPackage",appHostSectionStatus:"appHost.sectionStatus",appHostSectionPublisher:"appHost.sectionPublisher",sharedProductRendererErrorEyebrow:"shared.productRenderer.errorEyebrow",sharedProductRendererChatUnavailableTitle:"shared.productRenderer.chatUnavailableTitle",sharedProductRendererUnknownError:"shared.productRenderer.unknownError",sharedProductBootLoadingAria:"shared.product.bootLoadingAria",platformProductChatName:"platform.product.chat.name",platformProductChatSubtitle:"platform.product.chat.subtitle",platformProductChatSettingsLabel:"platform.product.chat.settingsLabel",platformProductCodeName:"platform.product.code.name",platformProductCodeSubtitle:"platform.product.code.subtitle",platformProductCodeSettingsLabel:"platform.product.code.settingsLabel",platformProductWorkName:"platform.product.work.name",platformProductWorkSubtitle:"platform.product.work.subtitle",platformProductWorkSettingsLabel:"platform.product.work.settingsLabel",lobbyAccountSettingsAriaLabel:"lobby.accountSettingsAriaLabel",lobbyOpenAccountSettings:"lobby.openAccountSettings",lobbyRuntimeStatusLabel:"lobby.runtimeStatusLabel",lobbyProductsSectionTitle:"lobby.productsSectionTitle",lobbyAppsSectionTitle:"lobby.appsSectionTitle",lobbyContinueText:"lobby.continueText",lobbyOpenEntry:"lobby.openEntry",lobbyGreetingChooseSurface:"lobby.greeting.chooseSurface",lobbyGreetingHomeReady:"lobby.greeting.homeReady",lobbyGreetingPickProduct:"lobby.greeting.pickProduct",lobbyGreetingEverythingStaged:"lobby.greeting.everythingStaged",lobbyGreetingOpenSurface:"lobby.greeting.openSurface",lobbyGreetingAwake:"lobby.greeting.awake",lobbyGreetingContinue:"lobby.greeting.continue",sharedRuntimeStatusTooltipReady:"shared.runtimeStatus.tooltip.ready",sharedRuntimeStatusTooltipDegraded:"shared.runtimeStatus.tooltip.degraded",sharedRuntimeStatusTooltipUnavailable:"shared.runtimeStatus.tooltip.unavailable",sharedRuntimeStatusTooltipUnknown:"shared.runtimeStatus.tooltip.unknown",sharedRuntimeStatusChipReady:"shared.runtimeStatus.chip.ready",sharedRuntimeStatusChipDegraded:"shared.runtimeStatus.chip.degraded",sharedRuntimeStatusChipUnavailable:"shared.runtimeStatus.chip.unavailable",settingsGeneralProfileTitle:"settings.general.profileTitle",settingsGeneralProfileDescription:"settings.general.profileDescription",settingsGeneralAvatarLabel:"settings.general.avatarLabel",settingsGeneralAvatarChangeLabel:"settings.general.avatarChangeLabel",settingsGeneralAvatarUploadLabel:"settings.general.avatarUploadLabel",settingsGeneralAvatarRemoveLabel:"settings.general.avatarRemoveLabel",settingsGeneralNameLabel:"settings.general.nameLabel",settingsGeneralAccountTitle:"settings.general.accountTitle",settingsGeneralAccountDescription:"settings.general.accountDescription",settingsGeneralSignOutButton:"settings.general.signOutButton",settingsGeneralSigningOutButton:"settings.general.signingOutButton",settingsGeneralSignOutFailed:"settings.general.signOutFailed",settingsGeneralSignOutFailedWithStatus:"settings.general.signOutFailedWithStatus",settingsGeneralSignOutCsrfError:"settings.general.signOutCsrfError",settingsGeneralSignOutForbiddenError:"settings.general.signOutForbiddenError",settingsGeneralSignOutUnauthenticated:"settings.general.signOutUnauthenticated",settingsAccountSignedInAs:"settings.account.signedInAs",settingsAccountLoginMethodsTitle:"settings.account.loginMethodsTitle",settingsAccountLocalPasswordLabel:"settings.account.localPasswordLabel",settingsAccountLocalPasswordDescription:"settings.account.localPasswordDescription",settingsAccountLocalPasswordLinked:"settings.account.localPasswordLinked",settingsAccountLocalPasswordMissing:"settings.account.localPasswordMissing",settingsAccountGoogleLabel:"settings.account.googleLabel",settingsAccountGoogleDescription:"settings.account.googleDescription",settingsAccountGoogleLinkedStatus:"settings.account.googleLinkedStatus",settingsAccountGoogleNotLinkedStatus:"settings.account.googleNotLinkedStatus",settingsAccountGoogleUnavailableStatus:"settings.account.googleUnavailableStatus",settingsAccountGoogleUnavailableHint:"settings.account.googleUnavailableHint",settingsAccountGoogleLinkButton:"settings.account.googleLinkButton",settingsAccountGoogleUnlinkButton:"settings.account.googleUnlinkButton",settingsAccountGoogleLinkingLabel:"settings.account.googleLinkingLabel",settingsAccountGoogleUnlinkingLabel:"settings.account.googleUnlinkingLabel",settingsAccountReauthTitle:"settings.account.reauthTitle",settingsAccountReauthLinkDescription:"settings.account.reauthLinkDescription",settingsAccountReauthUnlinkDescription:"settings.account.reauthUnlinkDescription",settingsAccountReauthPasswordLabel:"settings.account.reauthPasswordLabel",settingsAccountReauthPasswordPlaceholder:"settings.account.reauthPasswordPlaceholder",settingsAccountReauthSubmit:"settings.account.reauthSubmit",settingsAccountReauthSubmitting:"settings.account.reauthSubmitting",settingsAccountReauthCancel:"settings.account.reauthCancel",settingsAccountGoogleContinueTitle:"settings.account.googleContinueTitle",settingsAccountGoogleContinueDescription:"settings.account.googleContinueDescription",settingsAccountUnlinkWarning:"settings.account.unlinkWarning",settingsAccountReauthFailed:"settings.account.reauthFailed",settingsAccountReauthFailedWithStatus:"settings.account.reauthFailedWithStatus",settingsAccountReauthInvalidPassword:"settings.account.reauthInvalidPassword",settingsAccountReauthRequired:"settings.account.reauthRequired",settingsAccountLinkFailed:"settings.account.linkFailed",settingsAccountLinkFailedWithStatus:"settings.account.linkFailedWithStatus",settingsAccountLinkConflict:"settings.account.linkConflict",settingsAccountUnlinkFailed:"settings.account.unlinkFailed",settingsAccountUnlinkFailedWithStatus:"settings.account.unlinkFailedWithStatus",settingsAccountUnlinkConflict:"settings.account.unlinkConflict",settingsAccountGoogleUnavailableError:"settings.account.googleUnavailableError",settingsGeneralLanguageTitle:"settings.general.languageTitle",settingsGeneralLanguageDescription:"settings.general.languageDescription",settingsGeneralAssistantLanguagePreferenceLabel:"settings.general.assistantLanguagePreferenceLabel",settingsGeneralAssistantLanguagePreferenceDescription:"settings.general.assistantLanguagePreferenceDescription",settingsGeneralAssistantLanguageSelectAriaLabel:"settings.general.assistantLanguageSelectAriaLabel",settingsGeneralAssistantLanguageUnspecifiedOption:"settings.general.assistantLanguageUnspecifiedOption",settingsGeneralLanguagePreferenceLabel:"settings.general.languagePreferenceLabel",settingsGeneralLanguagePreferenceDescription:"settings.general.languagePreferenceDescription",settingsGeneralLanguageSelectAriaLabel:"settings.general.languageSelectAriaLabel",settingsGeneralLanguageAutoOption:"settings.general.languageAutoOption",settingsGeneralLanguageEnglishOption:"settings.general.languageEnglishOption",settingsGeneralLanguageTraditionalChineseOption:"settings.general.languageTraditionalChineseOption",settingsGeneralLobbyMotionTitle:"settings.general.lobbyMotionTitle",settingsGeneralLobbyMotionDescription:"settings.general.lobbyMotionDescription",settingsGeneralLobbyMotionOffLabel:"settings.general.lobbyMotionOffLabel",settingsGeneralLobbyMotionOffDescription:"settings.general.lobbyMotionOffDescription",settingsGeneralLobbyMotionReducedLabel:"settings.general.lobbyMotionReducedLabel",settingsGeneralLobbyMotionReducedDescription:"settings.general.lobbyMotionReducedDescription",settingsGeneralLobbyMotionFullLabel:"settings.general.lobbyMotionFullLabel",settingsGeneralLobbyMotionFullDescription:"settings.general.lobbyMotionFullDescription",settingsGeneralGuideCatAssistTitle:"settings.general.guideCatAssistTitle",settingsGeneralGuideCatAssistDisabledDescription:"settings.general.guideCatAssistDisabledDescription",settingsGeneralGuideCatAssistEnabledDescription:"settings.general.guideCatAssistEnabledDescription",settingsGeneralOpenAssistantsButton:"settings.general.openAssistantsButton",settingsGeneralGuideCatAutoLabel:"settings.general.guideCatAutoLabel",settingsGeneralGuideCatAutoDescription:"settings.general.guideCatAutoDescription",settingsGeneralGuideCatSidePanelLabel:"settings.general.guideCatSidePanelLabel",settingsGeneralGuideCatSidePanelDescription:"settings.general.guideCatSidePanelDescription",settingsGeneralGuideCatBubbleLabel:"settings.general.guideCatBubbleLabel",settingsGeneralGuideCatBubbleDescription:"settings.general.guideCatBubbleDescription",settingsGeneralUpdateNameError:"settings.general.updateNameError",settingsGeneralUpdateAssistantLanguageError:"settings.general.updateAssistantLanguageError",settingsGeneralUpdateLanguageError:"settings.general.updateLanguageError",settingsGeneralUpdateLobbyAnimationError:"settings.general.updateLobbyAnimationError",settingsGeneralUpdateGuideCatModeError:"settings.general.updateGuideCatModeError",settingsGeneralRemoveAvatarError:"settings.general.removeAvatarError",settingsGeneralSaveAvatarError:"settings.general.saveAvatarError",settingsShellHeading:"settings.shell.heading",settingsShellSectionGeneral:"settings.shell.sectionGeneral",settingsShellSectionCats:"settings.shell.sectionCats",settingsShellSubsectionMyCats:"settings.shell.subsectionMyCats",settingsShellSubsectionAssistants:"settings.shell.subsectionAssistants",settingsShellSectionApps:"settings.shell.sectionApps",settingsShellSectionDesktop:"settings.shell.sectionDesktop",settingsShellSectionRuntime:"settings.shell.sectionRuntime",settingsShellSectionData:"settings.shell.sectionData",settingsShellCloseButtonLabel:"settings.shell.closeButtonLabel",settingsChatBossToolProfileTitle:"settings.chat.bossToolProfileTitle",settingsChatBossToolProfileUpdateFailure:"settings.chat.bossToolProfileUpdateFailure",settingsChatAdvancedControlsFailure:"settings.chat.advancedControlsFailure",settingsConversationProductLabelChat:"settings.conversation.productLabelChat",settingsConversationProductLabelCode:"settings.conversation.productLabelCode",settingsConversationProductLabelWork:"settings.conversation.productLabelWork",settingsConversationBehaviorTitle:"settings.conversation.behaviorTitle",settingsConversationBehaviorDescription:"settings.conversation.behaviorDescription",settingsConversationShowVerboseLabel:"settings.conversation.showVerboseLabel",settingsConversationShowVerboseDescription:"settings.conversation.showVerboseDescription",settingsConversationShowLiveProgressLabel:"settings.conversation.showLiveProgressLabel",settingsConversationShowLiveProgressDescription:"settings.conversation.showLiveProgressDescription",settingsConversationUpdateFailure:"settings.conversation.updateFailure",settingsConversationConcurrentLayoutLabel:"settings.conversation.concurrentLayoutLabel",settingsConversationConcurrentLayoutDescription:"settings.conversation.concurrentLayoutDescription",settingsConversationLayoutInlineStack:"settings.conversation.layoutInlineStack",settingsConversationLayoutCompareCards:"settings.conversation.layoutCompareCards",settingsConversationLayoutFocusRail:"settings.conversation.layoutFocusRail",settingsConversationLayoutAdaptive:"settings.conversation.layoutAdaptive",settingsAdvancedDraftControlsTitle:"settings.advancedDraftControls.title",settingsAdvancedDraftControlsDescription:"settings.advancedDraftControls.description",settingsAdvancedDraftControlsEnableLabel:"settings.advancedDraftControls.enableLabel",settingsAdvancedDraftControlsToggleDescription:"settings.advancedDraftControls.toggleDescription",settingsRuntimeStatusChipRuntimeUnavailable:"settings.runtime.statusChip.runtimeUnavailable",settingsRuntimeStatusChipRuntimeDegraded:"settings.runtime.statusChip.runtimeDegraded",settingsRuntimeStatusChipRuntimeReady:"settings.runtime.statusChip.runtimeReady",settingsRuntimeStatusChipSetupReadyToApply:"settings.runtime.statusChip.setupReadyToApply",settingsRuntimeStatusChipSetupNeedsRemediation:"settings.runtime.statusChip.setupNeedsRemediation",settingsRuntimeStatusChipProviderScanRequired:"settings.runtime.statusChip.providerScanRequired",settingsRuntimeStatusChipSetupUnavailable:"settings.runtime.statusChip.setupUnavailable",settingsRuntimeStatusTitle:"settings.runtime.statusTitle",settingsRuntimeStatusDescription:"settings.runtime.statusDescription",settingsRuntimeMetricReadyProviders:"settings.runtime.metricReadyProviders",settingsRuntimeMetricProvidersScanned:"settings.runtime.metricProvidersScanned",settingsRuntimeMetricNeedAttention:"settings.runtime.metricNeedAttention",settingsRuntimeNeedAttentionTitle:"settings.runtime.needAttentionTitle",settingsRuntimeNeedAttentionDescription:"settings.runtime.needAttentionDescription",settingsRuntimeProviderHelpersTitle:"settings.runtime.providerHelpersTitle",settingsRuntimeProviderHelpersDescription:"settings.runtime.providerHelpersDescription",settingsRuntimeNoProviderHelpers:"settings.runtime.noProviderHelpers",settingsRuntimeLoadingHelpers:"settings.runtime.loadingHelpers",settingsRuntimeWorkingState:"settings.runtime.workingState",settingsRuntimeActionCheckLabel:"settings.runtime.actions.check",settingsRuntimeActionInstallLabel:"settings.runtime.actions.install",settingsRuntimeActionUpgradeLabel:"settings.runtime.actions.upgrade",settingsRuntimeActionRepairLabel:"settings.runtime.actions.repair",settingsRuntimeActionUninstallLabel:"settings.runtime.actions.uninstall",settingsRuntimeUninstallButtonLabel:"settings.runtime.uninstallButtonLabel",settingsRuntimeModelCatalogsTitle:"settings.runtime.modelCatalogsTitle",settingsRuntimeModelCatalogsDescription:"settings.runtime.modelCatalogsDescription",settingsRuntimeRefreshingState:"settings.runtime.refreshingState",settingsRuntimeRefreshCatalogsButton:"settings.runtime.refreshCatalogsButton",settingsRuntimeStandaloneSetupTitle:"settings.runtime.standaloneSetupTitle",settingsRuntimeStandaloneSetupDescription:"settings.runtime.standaloneSetupDescription",settingsRuntimeOpenStandaloneSetup:"settings.runtime.openStandaloneSetup",settingsRuntimeBrowserHandoffError:"settings.runtime.browserHandoffError",settingsRuntimeCancelActionLabel:"settings.runtime.cancelActionLabel",settingsRuntimeCancelActionFallbackLabel:"settings.runtime.cancelActionFallbackLabel",settingsRuntimeRefreshFailure:"settings.runtime.refreshFailure",settingsRuntimeRefreshFailureWithStatus:"settings.runtime.refreshFailureWithStatus",settingsRuntimeRefreshSummary:"settings.runtime.refreshSummary",settingsRuntimeRefreshSummaryWithFailures:"settings.runtime.refreshSummaryWithFailures",settingsRuntimeUninstallTitle:"settings.runtime.uninstallTitle",settingsRuntimeUninstallHelperLabel:"settings.runtime.uninstallHelperLabel",settingsRuntimeUninstallScriptLabel:"settings.runtime.uninstallScriptLabel",settingsRuntimeComputingPlannedRemovals:"settings.runtime.computingPlannedRemovals",settingsRuntimePreviewUnavailable:"settings.runtime.previewUnavailable",settingsRuntimeNothingToRemove:"settings.runtime.nothingToRemove",settingsRuntimeSystemInstallDetected:"settings.runtime.systemInstallDetected",settingsRuntimeWillRemoveItems:"settings.runtime.willRemoveItems",settingsRuntimeSystemInstallCannotRemove:"settings.runtime.systemInstallCannotRemove",settingsRuntimeUninstallDescriptionPrefix:"settings.runtime.uninstallDescriptionPrefix",settingsRuntimeUninstallDescriptionSuffix:"settings.runtime.uninstallDescriptionSuffix",settingsRuntimeActionNoResult:"settings.runtime.actionNoResult",settingsRuntimeActionSuccessComplete:"settings.runtime.actionSuccessComplete",settingsRuntimeActionSuccessNothingToRemove:"settings.runtime.actionSuccessNothingToRemove",settingsRuntimeActionPartialWithDetail:"settings.runtime.actionPartialWithDetail",settingsRuntimeActionPartial:"settings.runtime.actionPartial",settingsRuntimeActionFailedWithDetail:"settings.runtime.actionFailedWithDetail",settingsRuntimeActionFailed:"settings.runtime.actionFailed",settingsRuntimeHostBridgeUnavailableClient:"settings.runtime.hostBridgeUnavailableClient",settingsRuntimeHostBridgeUnavailable:"settings.runtime.hostBridgeUnavailable",settingsRuntimePreviewMissingResult:"settings.runtime.previewMissingResult",settingsRuntimePreviewFailed:"settings.runtime.previewFailed",settingsRuntimeFixStepCount:"settings.runtime.fixStepCount",settingsRuntimeHelperLabelWindowsCliReadiness:"settings.runtime.helperLabel.windowsCliReadiness",settingsRuntimeHelperLabelWindowsVcRedist:"settings.runtime.helperLabel.windowsVcRedist",settingsRuntimeHelperLabelNodeHostInstaller:"settings.runtime.helperLabel.nodeHostInstaller",settingsRuntimeHelperLabelGithubCliHostInstaller:"settings.runtime.helperLabel.githubCliHostInstaller",settingsRuntimeHelperLabelNpmPrefixHelper:"settings.runtime.helperLabel.npmPrefixHelper",settingsRuntimeHelperLabelSetupReadinessAudit:"settings.runtime.helperLabel.setupReadinessAudit",settingsRuntimeHelperLabelPackagedBackgroundProcessHelper:"settings.runtime.helperLabel.packagedBackgroundProcessHelper",settingsRuntimeHelperLabelPackagedProviderUninstallHelper:"settings.runtime.helperLabel.packagedProviderUninstallHelper",settingsRuntimeHelperLabelPackagedNpmGlobalCliInstallerHelper:"settings.runtime.helperLabel.packagedNpmGlobalCliInstallerHelper",settingsRuntimeHelperLabelNativeProviderInstaller:"settings.runtime.helperLabel.nativeProviderInstaller",settingsRuntimeHelperLabelProviderInstaller:"settings.runtime.helperLabel.providerInstaller",settingsRuntimeHelperLabelLocalModelInstaller:"settings.runtime.helperLabel.localModelInstaller",settingsRuntimeHelperUnavailableReason:"settings.runtime.helperUnavailableReason",settingsRuntimeHelperUnsupportedPlatformReason:"settings.runtime.helperUnsupportedPlatformReason",settingsRuntimePlatformSupportAllDesktop:"settings.runtime.platformSupport.allDesktop",settingsRuntimePlatformSupportWindows:"settings.runtime.platformSupport.windows",settingsRuntimePlatformSupportWindowsWsl:"settings.runtime.platformSupport.windowsWsl",settingsRuntimePlatformSupportMacos:"settings.runtime.platformSupport.macos",settingsRuntimePlatformSupportLinux:"settings.runtime.platformSupport.linux",settingsRuntimeHelperUnsupportedActionReason:"settings.runtime.helperUnsupportedActionReason",settingsRuntimeLifecycleStatusAuthRequired:"settings.runtime.lifecycleStatus.authRequired",settingsRuntimeLifecycleStatusBlocked:"settings.runtime.lifecycleStatus.blocked",settingsRuntimeLifecycleStatusChangesRequired:"settings.runtime.lifecycleStatus.changesRequired",settingsRuntimeLifecycleStatusFailed:"settings.runtime.lifecycleStatus.failed",settingsRuntimeLifecycleStatusNotInstalled:"settings.runtime.lifecycleStatus.notInstalled",settingsRuntimeLifecycleStatusPreview:"settings.runtime.lifecycleStatus.preview",settingsRuntimeLifecycleStatusReady:"settings.runtime.lifecycleStatus.ready",settingsRuntimeLifecycleStatusRestartRequired:"settings.runtime.lifecycleStatus.restartRequired",settingsRuntimeLifecycleStatusUninstalled:"settings.runtime.lifecycleStatus.uninstalled",settingsRuntimeLifecycleDetailLaunchWslFirstBoot:"settings.runtime.lifecycleDetail.launchWslFirstBoot",settingsRuntimeLifecycleDetailStartDockerWarmUp:"settings.runtime.lifecycleDetail.startDockerWarmUp",settingsRuntimeLifecycleDetailRunMissingHostSubstrate:"settings.runtime.lifecycleDetail.runMissingHostSubstrate",settingsRuntimeLifecycleDetailRestartThenRerunMode:"settings.runtime.lifecycleDetail.restartThenRerunMode",settingsRuntimeLifecycleDetailRestartThenRerun:"settings.runtime.lifecycleDetail.restartThenRerun",settingsRuntimeLifecycleDetailRelaunchThenVerify:"settings.runtime.lifecycleDetail.relaunchThenVerify",settingsRuntimeLifecycleDetailElevationRequired:"settings.runtime.lifecycleDetail.elevationRequired",settingsRuntimeLifecycleDetailAuthThenRerunMode:"settings.runtime.lifecycleDetail.authThenRerunMode",settingsRuntimeLifecycleDetailRetryAfterFailure:"settings.runtime.lifecycleDetail.retryAfterFailure",settingsRuntimeLifecycleDetailRunMissingRequirement:"settings.runtime.lifecycleDetail.runMissingRequirement",settingsRuntimeLifecycleDetailFinishManualFollowThrough:"settings.runtime.lifecycleDetail.finishManualFollowThrough",settingsRuntimeLifecycleDetailRunApplyRemainingChanges:"settings.runtime.lifecycleDetail.runApplyRemainingChanges",settingsRuntimeLifecycleDetailRerunCheckToVerify:"settings.runtime.lifecycleDetail.rerunCheckToVerify",settingsRuntimeLifecycleDetailFinishedWithStatus:"settings.runtime.lifecycleDetail.finishedWithStatus",settingsRuntimeLifecycleModeApply:"settings.runtime.lifecycleMode.apply",settingsRuntimeLifecycleModeCheck:"settings.runtime.lifecycleMode.check",settingsRuntimeLifecycleModeForce:"settings.runtime.lifecycleMode.force",settingsRuntimeLifecycleModeUninstall:"settings.runtime.lifecycleMode.uninstall",settingsRuntimeLifecycleModeUpgrade:"settings.runtime.lifecycleMode.upgrade",settingsRouteTitleAssistants:"settings.route.title.assistants",settingsRouteTitleMyCats:"settings.route.title.myCats",settingsRouteTitleChat:"settings.route.title.chat",settingsRouteTitleWork:"settings.route.title.work",settingsRouteTitleCode:"settings.route.title.code",settingsRouteTitleApps:"settings.route.title.apps",settingsRouteTitleDesktop:"settings.route.title.desktop",settingsRouteTitleRuntime:"settings.route.title.runtime",settingsRouteTitleData:"settings.route.title.data",settingsRouteTitleGeneral:"settings.route.title.general",settingsRouteTitleNotFound:"settings.route.title.notFound",settingsRouteNotFoundDescription:"settings.route.notFound.description",settingsRouteNotFoundOpenGeneral:"settings.route.notFound.openGeneral",settingsCanvasLoadingLabel:"settings.canvas.loadingLabel",settingsCanvasLoadErrorTitle:"settings.canvas.loadErrorTitle",settingsCanvasLoadErrorBody:"settings.canvas.loadErrorBody",settingsAppsSectionTitle:"settings.apps.sectionTitle",settingsAppsSectionDescription:"settings.apps.sectionDescription",settingsAppsInstalledPackagesLabel:"settings.apps.installedPackagesLabel",settingsAppsInstalledPackagesDescription:"settings.apps.installedPackagesDescription",settingsAppsNoInstalledAppsLabel:"settings.apps.noInstalledAppsLabel",settingsAppsNoInstalledAppsDescription:"settings.apps.noInstalledAppsDescription",settingsAppsEmptyStateChipLabel:"settings.apps.emptyStateChipLabel",settingsAppsLocalInstallTitle:"settings.apps.localInstallTitle",settingsAppsLocalInstallDescription:"settings.apps.localInstallDescription",settingsAppsPackagePathLabel:"settings.apps.packagePathLabel",settingsAppsPackagePathPlaceholder:"settings.apps.packagePathPlaceholder",settingsAppsReviewButton:"settings.apps.reviewButton",settingsAppsReadyStatusChip:"settings.apps.readyStatusChip",settingsAppsNeedsReviewStatusChip:"settings.apps.needsReviewStatusChip",settingsAppsNoLobbyRoute:"settings.apps.noLobbyRoute",settingsAppsInstallButton:"settings.apps.installButton",settingsAppsEnableAction:"settings.apps.enableAction",settingsAppsDisableAction:"settings.apps.disableAction",settingsAppsUninstallAction:"settings.apps.uninstallAction",settingsAppsOpenAction:"settings.apps.openAction",settingsAppsSettingsAction:"settings.apps.settingsAction",settingsAppsUninstallTitle:"settings.apps.uninstallTitle",settingsAppsEnableTitle:"settings.apps.enableTitle",settingsAppsDisableTitle:"settings.apps.disableTitle",settingsAppsUninstallMessage:"settings.apps.uninstallMessage",settingsAppsEnableMessage:"settings.apps.enableMessage",settingsAppsDisableMessage:"settings.apps.disableMessage",settingsAppsInstallTitle:"settings.apps.installTitle",settingsAppsInstallMessage:"settings.apps.installMessage",settingsAppsLocalInstallReady:"settings.apps.localInstallReady",settingsAppsLocalInstallNeedsReview:"settings.apps.localInstallNeedsReview",settingsAppsCategoryConnector:"settings.apps.category.connector",settingsAppsCategoryProductModule:"settings.apps.category.productModule",settingsAppsCategoryUserApp:"settings.apps.category.userApp",settingsAppsInstallStateEnabled:"settings.apps.installState.enabled",settingsAppsInstallStateInstalled:"settings.apps.installState.installed",settingsAppsInstallStateDisabled:"settings.apps.installState.disabled",settingsAppsInstallStateError:"settings.apps.installState.error",settingsAppsInstallStateUpgradePending:"settings.apps.installState.upgradePending",settingsAppsInstallStateUninstalled:"settings.apps.installState.uninstalled",settingsAppsTrustTierLocalUser:"settings.apps.trustTier.localUser",settingsAppsTrustTierSystem:"settings.apps.trustTier.system",settingsAppsTrustTierThirdParty:"settings.apps.trustTier.thirdParty",settingsAppsPermissionCount:"settings.apps.permissionCount",settingsAppsToolCount:"settings.apps.toolCount",settingsAppsCapabilitySingular:"settings.apps.capabilitySingular",settingsAppsCapabilityPlural:"settings.apps.capabilityPlural",settingsAppsConnectorCountSingle:"settings.apps.connectorCountSingle",settingsAppsConnectorCountMany:"settings.apps.connectorCountMany",settingsAppsAuthLabel:"settings.apps.authLabel",settingsAppsConfirmMutationFailed:"settings.apps.confirmMutationFailed",settingsAppsConfirmMutationFailedFallback:"settings.apps.confirmMutationFailedFallback",settingsAppsMutationFailed:"settings.apps.mutationFailed",settingsAppsMutationFailedFallback:"settings.apps.mutationFailedFallback",settingsAppsPackagePathRequired:"settings.apps.packagePathRequired",settingsAppsValidationFailed:"settings.apps.validationFailed",settingsAppsErrorNotInstalled:"settings.apps.error.notInstalled",settingsAppsErrorNotEnabled:"settings.apps.error.notEnabled",settingsAppsErrorPackagePathNotFound:"settings.apps.error.packagePathNotFound",settingsAppsErrorInvalidManifestJson:"settings.apps.error.invalidManifestJson",settingsAppsErrorCannotReadManifest:"settings.apps.error.cannotReadManifest",settingsAppsErrorReservedAppId:"settings.apps.error.reservedAppId",settingsAppsErrorDuplicateAppId:"settings.apps.error.duplicateAppId",settingsAppsErrorManifestInvalid:"settings.apps.error.manifestInvalid",settingsAppsErrorValidationIssueWithPath:"settings.apps.error.validationIssueWithPath",settingsAppsErrorValidationIssue:"settings.apps.error.validationIssue",settingsAppsOpenPairingUrl:"settings.apps.openPairingUrl",settingsDataResetAllDataTitle:"settings.data.resetAllDataTitle",settingsDataResetAllDataDescription:"settings.data.resetAllDataDescription",settingsDataResetButtonResetting:"settings.data.resetButtonResetting",settingsDataResetButtonLabel:"settings.data.resetButtonLabel",settingsDataResetFailure:"settings.data.resetFailure",settingsConversationPreferenceUpdateFailure:"settings.conversation.preferenceUpdateFailure",settingsDesktopMobilePairingTitle:"settings.desktop.mobilePairingTitle",settingsDesktopMobilePairingDescription:"settings.desktop.mobilePairingDescription",settingsDesktopMobilePairingStatusDisabled:"settings.desktop.mobilePairingStatusDisabled",settingsDesktopMobilePairingStatusLoopbackOnly:"settings.desktop.mobilePairingStatusLoopbackOnly",settingsDesktopMobilePairingStatusNoLanAddress:"settings.desktop.mobilePairingStatusNoLanAddress",settingsDesktopMobilePairingStatusReady:"settings.desktop.mobilePairingStatusReady",settingsDesktopMobilePairingStatusValidationPending:"settings.desktop.mobilePairingStatusValidationPending",settingsDesktopMobilePairingEnableLabel:"settings.desktop.mobilePairingEnableLabel",settingsDesktopMobilePairingEnableDescription:"settings.desktop.mobilePairingEnableDescription",settingsDesktopMobilePairingEnableButton:"settings.desktop.mobilePairingEnableButton",settingsDesktopMobilePairingApplyingButton:"settings.desktop.mobilePairingApplyingButton",settingsDesktopMobilePairingBindLabel:"settings.desktop.mobilePairingBindLabel",settingsDesktopMobilePairingReachabilityLabel:"settings.desktop.mobilePairingReachabilityLabel",settingsDesktopMobilePairingLanAddressLabel:"settings.desktop.mobilePairingLanAddressLabel",settingsDesktopMobilePairingNoneLabel:"settings.desktop.mobilePairingNoneLabel",settingsDesktopMobilePairingReachabilityLoopback:"settings.desktop.mobilePairingReachabilityLoopback",settingsDesktopMobilePairingReachabilityLan:"settings.desktop.mobilePairingReachabilityLan",settingsDesktopMobilePairingReachabilityAllInterfaces:"settings.desktop.mobilePairingReachabilityAllInterfaces",settingsDesktopMobilePairingReachabilityOtherInterface:"settings.desktop.mobilePairingReachabilityOtherInterface",settingsDesktopMobilePairingAllowLanLabel:"settings.desktop.mobilePairingAllowLanLabel",settingsDesktopMobilePairingAllowLanDescription:"settings.desktop.mobilePairingAllowLanDescription",settingsDesktopMobilePairingApplyAndRestartButton:"settings.desktop.mobilePairingApplyAndRestartButton",settingsDesktopMobilePairingNoLanAddressNote:"settings.desktop.mobilePairingNoLanAddressNote",settingsDesktopMobilePairingHostMismatchNote:"settings.desktop.mobilePairingHostMismatchNote",settingsDesktopMobilePairingDiagnosticLabel:"settings.desktop.mobilePairingDiagnosticLabel",settingsDesktopMobilePairingDiagnosticCopyButton:"settings.desktop.mobilePairingDiagnosticCopyButton",settingsDesktopMobilePairingDiagnosticCopiedMessage:"settings.desktop.mobilePairingDiagnosticCopiedMessage",settingsDesktopMobilePairingExpoUrlLabel:"settings.desktop.mobilePairingExpoUrlLabel",settingsDesktopMobilePairingExpoUrlCopiedMessage:"settings.desktop.mobilePairingExpoUrlCopiedMessage",settingsDesktopMobilePairingCopyUrlButton:"settings.desktop.mobilePairingCopyUrlButton",settingsDesktopMobilePairingQrUrlTooLong:"settings.desktop.mobilePairingQrUrlTooLong",settingsDesktopMobilePairingQrCodeLabel:"settings.desktop.mobilePairingQrCodeLabel",settingsDesktopMobilePairingNoPairingUrlStatus:"settings.desktop.mobilePairingNoPairingUrlStatus",settingsDesktopMobilePairingOpenPairingUrlLabel:"settings.desktop.mobilePairingOpenPairingUrlLabel",settingsDesktopMobilePairingCopyEnvValuesSuccess:"settings.desktop.mobilePairingCopyEnvValuesSuccess",settingsDesktopMobilePairingConfirmRestart:"settings.desktop.mobilePairingConfirmRestart",settingsDesktopMobilePairingDesktopUpdateSuccess:"settings.desktop.mobilePairingDesktopUpdateSuccess",settingsDesktopMobilePairingDesktopUpdateFailure:"settings.desktop.mobilePairingDesktopUpdateFailure",settingsDesktopStartupTitle:"settings.desktop.startupTitle",settingsDesktopStartupDescription:"settings.desktop.startupDescription",settingsDesktopStartupSignInLabel:"settings.desktop.startupSignInLabel",settingsDesktopStartupSignInDescription:"settings.desktop.startupSignInDescription",settingsDesktopStartupTrayLabel:"settings.desktop.startupTrayLabel",settingsDesktopStartupTrayDescription:"settings.desktop.startupTrayDescription",settingsDesktopStartupOpenWindowLabel:"settings.desktop.startupOpenWindowLabel",settingsDesktopStartupOpenWindowDescription:"settings.desktop.startupOpenWindowDescription",settingsDesktopUpdatesTitle:"settings.desktop.updatesTitle",settingsDesktopUpdatesDescription:"settings.desktop.updatesDescription",settingsDesktopUpdatesCurrentVersionLabel:"settings.desktop.updatesCurrentVersionLabel",settingsDesktopUpdatesChannelLabel:"settings.desktop.updatesChannelLabel",settingsDesktopUpdatesLastCheckedLabel:"settings.desktop.updatesLastCheckedLabel",settingsDesktopUpdatesLastCheckedNever:"settings.desktop.updatesLastCheckedNever",settingsDesktopUpdatesAvailableVersionLabel:"settings.desktop.updatesAvailableVersionLabel",settingsDesktopUpdatesStatusUnavailable:"settings.desktop.updatesStatusUnavailable",settingsDesktopUpdatesStatusIdle:"settings.desktop.updatesStatusIdle",settingsDesktopUpdatesStatusChecking:"settings.desktop.updatesStatusChecking",settingsDesktopUpdatesStatusUpToDate:"settings.desktop.updatesStatusUpToDate",settingsDesktopUpdatesStatusAvailable:"settings.desktop.updatesStatusAvailable",settingsDesktopUpdatesStatusDownloading:"settings.desktop.updatesStatusDownloading",settingsDesktopUpdatesStatusDownloaded:"settings.desktop.updatesStatusDownloaded",settingsDesktopUpdatesStatusInstalling:"settings.desktop.updatesStatusInstalling",settingsDesktopUpdatesStatusFailed:"settings.desktop.updatesStatusFailed",settingsDesktopUpdatesActionCheck:"settings.desktop.updatesActionCheck",settingsDesktopUpdatesActionChecking:"settings.desktop.updatesActionChecking",settingsDesktopUpdatesActionDownload:"settings.desktop.updatesActionDownload",settingsDesktopUpdatesActionDownloading:"settings.desktop.updatesActionDownloading",settingsDesktopUpdatesActionRestartInstall:"settings.desktop.updatesActionRestartInstall",settingsDesktopUpdatesActionInstalling:"settings.desktop.updatesActionInstalling",settingsDesktopUpdatesToastUpToDate:"settings.desktop.updatesToastUpToDate",settingsDesktopUpdatesWindowsInstallerNotice:"settings.desktop.updatesWindowsInstallerNotice",settingsDesktopUpdatesLinuxInstallerNotice:"settings.desktop.updatesLinuxInstallerNotice",settingsDesktopUpdatesPreviewNotice:"settings.desktop.updatesPreviewNotice",settingsDesktopUpdatesErrorOffline:"settings.desktop.updatesErrorOffline",settingsDesktopUpdatesErrorTimeout:"settings.desktop.updatesErrorTimeout",settingsDesktopUpdatesErrorProviderRejected:"settings.desktop.updatesErrorProviderRejected",settingsDesktopUpdatesErrorMetadataInvalid:"settings.desktop.updatesErrorMetadataInvalid",settingsDesktopUpdatesErrorChecksumMismatch:"settings.desktop.updatesErrorChecksumMismatch",settingsDesktopUpdatesErrorSignatureRejected:"settings.desktop.updatesErrorSignatureRejected",settingsDesktopUpdatesErrorUnsupportedPackage:"settings.desktop.updatesErrorUnsupportedPackage",settingsDesktopUpdatesErrorDownloadCancelled:"settings.desktop.updatesErrorDownloadCancelled",settingsDesktopUpdatesErrorInstallHandoffFailed:"settings.desktop.updatesErrorInstallHandoffFailed",settingsDesktopUpdatesErrorUnknown:"settings.desktop.updatesErrorUnknown",workNewChatDraftStartProjectChipLabel:"work.newChatDraft.startProjectChipLabel",workNewChatDraftStartProjectPrompt:"work.newChatDraft.startProjectPrompt",workNewChatDraftAddTaskChipLabel:"work.newChatDraft.addTaskChipLabel",workNewChatDraftAddTaskPrompt:"work.newChatDraft.addTaskPrompt",workNewChatDraftPlanSprintChipLabel:"work.newChatDraft.planSprintChipLabel",workNewChatDraftPlanSprintPrompt:"work.newChatDraft.planSprintPrompt",workNewChatDraftScheduleReviewChipLabel:"work.newChatDraft.scheduleReviewChipLabel",workNewChatDraftScheduleReviewPrompt:"work.newChatDraft.scheduleReviewPrompt",workNewChatDraftTriageBacklogChipLabel:"work.newChatDraft.triageBacklogChipLabel",workNewChatDraftTriageBacklogPrompt:"work.newChatDraft.triageBacklogPrompt",workItemsListTitle:"work.items.listTitle",workItemsListNewAction:"work.items.newAction",workItemsListImportExternalIssueAction:"work.items.importExternalIssueAction",workItemsListImportExternalIssueAriaLabel:"work.items.importExternalIssueAriaLabel",workItemsListCreateNewWorkItem:"work.items.createNewWorkItem",workItemsListCreateNewWorkItemAriaLabel:"work.items.createNewWorkItemAriaLabel",workItemsListLoading:"work.items.loading",workItemsListLoadError:"work.items.loadError",workItemsListEmptyIntro:"work.items.emptyIntro",workItemsListEmptyActionLabel:"work.items.emptyActionLabel",workItemsListEmptySuffix:"work.items.emptySuffix",workItemsListProjectPrefix:"work.items.projectPrefix",workItemsListProjectOrphan:"work.items.projectOrphan",workItemsListDecisionPill:"work.items.pill.decision",workItemsListBlockedPill:"work.items.pill.blocked",workItemsListTasksLabel:"work.items.tasksLabel",workItemsListOpenWorkItemAria:"work.items.openWorkItemAriaLabel",workItemsListParentWorkItemTooltip:"work.items.parentWorkItemTooltip",workSidebarNewWorkLabel:"work.sidebar.newWorkLabel",workSidebarTeamWorkLabel:"work.sidebar.teamWorkLabel",workSidebarParallelWorkLabel:"work.sidebar.parallelWorkLabel",workSidebarPortfolioLabel:"work.sidebar.portfolioLabel",workSidebarProjectsLabel:"work.sidebar.projectsLabel",workSidebarManagedWorkLabel:"work.sidebar.managedWorkLabel",workSidebarWorkItemsLabel:"work.sidebar.workItemsLabel",workSidebarTasksLabel:"work.sidebar.tasksLabel",workSidebarRunsLabel:"work.sidebar.runsLabel",workSidebarMissionsLabel:"work.sidebar.missionsLabel",workSidebarSchedulesLabel:"work.sidebar.schedulesLabel",workSidebarExecutionLabel:"work.sidebar.executionLabel",workSidebarSystemMapLabel:"work.sidebar.systemMapLabel",workSidebarCockpitLabel:"work.sidebar.cockpitLabel",workSidebarBrokenLinksLabel:"work.sidebar.brokenLinksLabel",workSidebarWarRoomLabel:"work.sidebar.warRoomLabel",workSidebarWorkTopDownSurfacesLabel:"work.sidebar.workTopDownSurfacesLabel",workSidebarUnpinProjectLabel:"work.sidebar.unpinProjectLabel",workSidebarDeleteProjectLabel:"work.sidebar.deleteProjectLabel",workSidebarNoWorkYetLabel:"work.sidebar.noWorkYetLabel",workQueryHttpError:"work.query.httpError",workQueryHttpErrorWithStatusText:"work.query.httpErrorWithStatusText",workGraphLoadErrorFallback:"work.graph.loadErrorFallback",workMissionsListTitle:"work.missions.listTitle",workMissionsListLede:"work.missions.lede",workMissionsListLoading:"work.missions.loading",workMissionsListLoadError:"work.missions.loadError",workMissionsListEmpty:"work.missions.emptyLabel",workMissionsListOpenMissionAria:"work.missions.openMissionAriaLabel",workMissionBackLabel:"work.mission.backLabel",workMissionBackArrowLabel:"work.mission.backArrowLabel",workMissionCancelConfirmation:"work.mission.cancelConfirmation",workMissionCancelBlocked:"work.mission.cancelBlocked",workMissionCancelBlockedNoDetails:"work.mission.cancelBlockedNoDetails",workMissionCancelError:"work.mission.cancelError",workMissionCancelRouteFailed:"work.mission.cancelRouteFailed",workMissionCancelLabel:"work.mission.cancelLabel",workMissionCancelLabelBusy:"work.mission.cancelLabelBusy",workCancellationBlockerRunNotStoppable:"work.cancellation.blocker.runNotStoppable",workCancellationBlockerNoRuntimeSession:"work.cancellation.blocker.noRuntimeSession",workCancellationBlockerRuntimeClientUnavailable:"work.cancellation.blocker.runtimeClientUnavailable",workCancellationBlockerRuntimeCancellationFailed:"work.cancellation.blocker.runtimeCancellationFailed",workMissionSummaryTitle:"work.mission.summaryTitle",workMissionStatusLabel:"work.mission.statusLabel",workMissionAssignedAgentLabel:"work.mission.assignedAgentLabel",workMissionUpdatedAtLabel:"work.mission.updatedAtLabel",workMissionWorkItemLabel:"work.mission.workItemLabel",workMissionConversationLabel:"work.mission.conversationLabel",workMissionTasksHeading:"work.mission.tasksHeading",workMissionNoLinkedWorkItemForTasks:"work.mission.noLinkedWorkItemForTasks",workMissionNoLinkedWorkItemForRuns:"work.mission.noLinkedWorkItemForRuns",workMissionNoTasks:"work.mission.noTasks",workMissionRunsHeading:"work.mission.runsHeading",workMissionNoTransitiveRuns:"work.mission.noTransitiveRuns",workMissionLoadingLabel:"work.mission.loadingLabel",workMissionNotFound:"work.mission.notFound",workMissionNoMissionId:"work.mission.noMissionId",workProjectsListTitle:"work.projects.listTitle",workProjectsNewAction:"work.projects.newAction",workProjectsCreateNewProjectAriaLabel:"work.projects.createNewProjectAriaLabel",workProjectsListLoading:"work.projects.loading",workProjectsListLoadError:"work.projects.loadError",workProjectsListEmptyIntro:"work.projects.emptyIntro",workProjectsListEmptySuffix:"work.projects.emptySuffix",workProjectsOpenProjectAriaLabel:"work.projects.openProjectAriaLabel",workProjectsDecisionPill:"work.projects.decisionPill",workProjectsBlockedPill:"work.projects.blockedPill",workProjectsWorkItemsAbbrev:"work.projects.workItemsAbbrev",workProjectsTasksLabel:"work.projects.tasksLabel",workProjectBackLabel:"work.project.backLabel",workProjectBackArrowLabel:"work.project.backArrowLabel",workProjectUpdatedAtPrefix:"work.project.updatedAtPrefix",workProjectDeleteLabel:"work.project.deleteLabel",workProjectDeleteLabelBusy:"work.project.deleteLabelBusy",workProjectDeleteConfirmation:"work.project.deleteConfirmation",workProjectDeleteError:"work.project.deleteError",workProjectOverviewTitle:"work.project.overviewTitle",workProjectSummaryLabel:"work.project.summaryLabel",workProjectOwnerLabel:"work.project.ownerLabel",workProjectConversationLabel:"work.project.conversationLabel",workProjectWorkItemsTitle:"work.project.workItemsTitle",workProjectNoWorkItems:"work.project.noWorkItems",workProjectTasksTitle:"work.project.tasksTitle",workProjectNoTasks:"work.project.noTasks",workProjectActivityTitle:"work.project.activityTitle",workProjectNoActivity:"work.project.noActivity",workProjectLoadingLabel:"work.project.loadingLabel",workProjectNotFoundTitle:"work.project.notFoundTitle",workProjectMissingIdLabel:"work.project.missingIdLabel",workProjectNotFoundPrefix:"work.project.notFoundPrefix",workProjectNotFoundSuffix:"work.project.notFoundSuffix",workRunsListTitle:"work.runs.listTitle",workRunsListLede:"work.runs.lede",workRunsListLoading:"work.runs.loading",workRunsListLoadError:"work.runs.loadError",workRunsListNoRunsIntro:"work.runs.noRunsIntro",workRunOpenAriaLabel:"work.run.openAriaLabel",workRunOpenSubRunAriaLabel:"work.run.openSubRunAriaLabel",workRunSubRunChip:"work.run.subRunChip",workRunStopErrorWithError:"work.run.stopErrorWithError",workRunStopErrorFallback:"work.run.stopErrorFallback",workRunStopNotStoppable:"work.run.stopNotStoppable",workRunStopNotStoppableGeneric:"work.run.stopNotStoppableGeneric",workRunStopConfirmation:"work.run.stopConfirmation",workRunStopError:"work.run.stopError",workRunStopRouteFailed:"work.run.stopRouteFailed",workRunBackArrowLabel:"work.run.backArrowLabel",workRunBackLabel:"work.run.backLabel",workRunStopLabel:"work.run.stopLabel",workRunStopLabelBusy:"work.run.stopLabelBusy",workRunSummaryBlockedBeforeRuntimeLaunch:"work.run.summary.blockedBeforeRuntimeLaunch",workRunSummaryBlockedBeforeScheduledRuntimeLaunch:"work.run.summary.blockedBeforeScheduledRuntimeLaunch",workRunSummaryLaunchingScheduledMission:"work.run.summary.launchingScheduledMission",workRunSummaryProviderAgentRuntimeMessageCompleted:"work.run.summary.providerAgentRuntimeMessageCompleted",workRunSummaryQueuedSupervisedWorkRun:"work.run.summary.queuedSupervisedWorkRun",workRunSummaryRelayFanOutDispatch:"work.run.summary.relayFanOutDispatch",workRunSummaryStartedSupervisedCodeTaskExecution:"work.run.summary.startedSupervisedCodeTaskExecution",workRunSummaryTitle:"work.run.summaryTitle",workRunStatusLabel:"work.run.statusLabel",workRunUpdatedLabel:"work.run.updatedLabel",workRunDurationLabel:"work.run.durationLabel",workRunParentRunLabel:"work.run.parentRunLabel",workRunConversationLabel:"work.run.conversationLabel",workRunSubRunsTitle:"work.run.subRunsTitle",workRunNoSubRuns:"work.run.noSubRuns",workRunTraceTitle:"work.run.traceTitle",workRunTraceLoading:"work.run.traceLoading",workRunTraceLoadFallback:"work.run.traceLoadFallback",workRunTraceLoadError:"work.run.traceLoadError",workRunTraceEmptyQueued:"work.run.traceEmptyQueued",workRunTraceEmptyRunning:"work.run.traceEmptyRunning",workRunTraceEmptyBlocked:"work.run.traceEmptyBlocked",workRunTraceEmptyCompleted:"work.run.traceEmptyCompleted",workRunTraceEmptyFailed:"work.run.traceEmptyFailed",workRunTraceEmptyCancelled:"work.run.traceEmptyCancelled",workRunTraceEmptyDefault:"work.run.traceEmptyDefault",workRunTraceNoActorRecorded:"work.run.traceNoActorRecorded",workRunTraceKindUnknown:"work.run.traceKindUnknown",workRunArtifactStatusDraft:"work.run.artifactStatus.draft",workRunArtifactStatusReady:"work.run.artifactStatus.ready",workRunArtifactStatusPublished:"work.run.artifactStatus.published",workRunArtifactStatusArchived:"work.run.artifactStatus.archived",workRunActivitiesTitle:"work.run.activitiesTitle",workRunOutcomesTitle:"work.run.outcomesTitle",workRunArtifactsTitle:"work.run.artifactsTitle",workRunLoadingLabel:"work.run.loadingLabel",workRunNotFound:"work.run.notFound",workRunNoRunId:"work.run.noRunId",workSchedulesListTitle:"work.schedules.listTitle",workSchedulesListLede:"work.schedules.lede",workSchedulesListLoadErrorFallback:"work.schedules.loadErrorFallback",workSchedulesExportAction:"work.schedules.exportAction",workSchedulesListLoading:"work.schedules.loading",workSchedulesListEmpty:"work.schedules.empty",workScheduleOpenAriaLabel:"work.schedule.openAriaLabel",workScheduleNextFireChip:"work.schedule.nextFireChip",workScheduleReceiptChip:"work.schedule.receiptChip",workScheduleEnabledStatus:"work.schedule.enabledStatus",workScheduleDisabledStatus:"work.schedule.disabledStatus",workScheduleSummaryOnceAt:"work.schedule.summary.onceAt",workScheduleSummaryDailyAt:"work.schedule.summary.dailyAt",workScheduleDateNone:"work.schedule.dateNone",workScheduleReceiptStatusClaimed:"work.schedule.receiptStatus.claimed",workScheduleReceiptStatusAdmitted:"work.schedule.receiptStatus.admitted",workScheduleReceiptStatusDuplicate:"work.schedule.receiptStatus.duplicate",workScheduleReceiptStatusSkipped:"work.schedule.receiptStatus.skipped",workScheduleReceiptStatusFailed:"work.schedule.receiptStatus.failed",workScheduleTriggerReasonDue:"work.schedule.triggerReason.due",workScheduleTriggerReasonManualTest:"work.schedule.triggerReason.manualTest",workScheduleTriggerReasonStartupMisfire:"work.schedule.triggerReason.startupMisfire",workScheduleTriggerReasonRetry:"work.schedule.triggerReason.retry",workScheduleMissionPolicyPerFire:"work.schedule.missionPolicy.perFire",workScheduleConcurrencyPolicySkip:"work.schedule.concurrencyPolicy.skip",workScheduleConcurrencyPolicyQueue:"work.schedule.concurrencyPolicy.queue",workScheduleConcurrencyPolicyReplace:"work.schedule.concurrencyPolicy.replace",workScheduleMisfirePolicySkip:"work.schedule.misfirePolicy.skip",workScheduleMisfirePolicyFireOnce:"work.schedule.misfirePolicy.fireOnce",workScheduleMisfirePolicyFireAll:"work.schedule.misfirePolicy.fireAll",workScheduleRetryBackoffNone:"work.schedule.retryBackoff.none",workScheduleRetryBackoffFixed:"work.schedule.retryBackoff.fixed",workScheduleRetryBackoffExponential:"work.schedule.retryBackoff.exponential",workScheduleRuleNotLoadedError:"work.schedule.ruleNotLoadedError",workScheduleCreateFailed:"work.schedule.createFailed",workScheduleUpdateFailed:"work.schedule.updateFailed",workScheduleTestFireFailed:"work.schedule.testFireFailed",workScheduleDeleteFailed:"work.schedule.deleteFailed",workScheduleDeleteConfirmation:"work.schedule.deleteConfirmation",workScheduleActionFailed:"work.schedule.actionFailed",workScheduleLoadingTitle:"work.schedule.loadingTitle",workScheduleLoadingLabel:"work.schedule.loadingLabel",workScheduleLoadFailed:"work.schedule.loadFailed",workScheduleOverviewTitle:"work.schedule.overviewTitle",workScheduleScheduleLabel:"work.schedule.scheduleLabel",workScheduleTimezoneLabel:"work.schedule.timezoneLabel",workScheduleRevisionLabel:"work.schedule.revisionLabel",workScheduleTargetLabel:"work.schedule.targetLabel",workScheduleTargetKindCat:"work.schedule.targetKind.cat",workScheduleTargetKindAgent:"work.schedule.targetKind.agent",workScheduleOriginLabel:"work.schedule.originLabel",workScheduleOriginSchedule:"work.schedule.origin.schedule",workScheduleMissionPolicyLabel:"work.schedule.missionPolicyLabel",workScheduleConcurrencyLabel:"work.schedule.concurrencyLabel",workScheduleMisfireLabel:"work.schedule.misfireLabel",workScheduleRetryLabel:"work.schedule.retryLabel",workScheduleRetryNone:"work.schedule.retryNone",workScheduleRetryPolicyValue:"work.schedule.retryPolicyValue",workScheduleDiagnosticsTitle:"work.schedule.diagnosticsTitle",workScheduleNextFireLabel:"work.schedule.nextFireLabel",workScheduleLastScheduledFireLabel:"work.schedule.lastScheduledFireLabel",workScheduleLastRunLabel:"work.schedule.lastRunLabel",workScheduleConsecutiveFailuresLabel:"work.schedule.consecutiveFailuresLabel",workScheduleDisabledDiagnosticFallback:"work.schedule.disabledDiagnosticFallback",workScheduleRetryStatePill:"work.schedule.retryStatePill",workScheduleLastFailurePill:"work.schedule.lastFailurePill",workScheduleRecentTriggersTitle:"work.schedule.recentTriggersTitle",workScheduleNoTriggerReceipts:"work.schedule.noTriggerReceipts",workScheduleRetryAttemptSuffix:"work.schedule.retryAttemptSuffix",workScheduleBackArrowLabel:"work.schedule.backArrowLabel",workScheduleBackLabel:"work.schedule.backLabel",workScheduleTestFireBusyLabel:"work.schedule.testFireBusyLabel",workScheduleTestFireLabel:"work.schedule.testFireLabel",workScheduleUpdatingLabel:"work.schedule.updatingLabel",workScheduleDisableLabel:"work.schedule.disableLabel",workScheduleEnableLabel:"work.schedule.enableLabel",workScheduleDeleteAriaLabel:"work.schedule.deleteAriaLabel",workScheduleDeleteBusyLabel:"work.schedule.deleteBusyLabel",workScheduleDeleteLabel:"work.schedule.deleteLabel",workScheduleMissingIdLabel:"work.schedule.missingIdLabel",workScheduleNotFoundTitle:"work.schedule.notFoundTitle",workScheduleNotFoundPrefix:"work.schedule.notFoundPrefix",workScheduleNotFoundSuffix:"work.schedule.notFoundSuffix",workItemBackLabel:"work.item.backLabel",workItemBackArrowLabel:"work.item.backArrowLabel",workItemUpdatedAtPrefix:"work.item.updatedAtPrefix",workItemDeleteLabel:"work.item.deleteLabel",workItemDeleteLabelBusy:"work.item.deleteLabelBusy",workItemDeleteConfirmation:"work.item.deleteConfirmation",workItemDeleteConfirmationDetail:"work.item.deleteConfirmationDetail",workItemDeleteError:"work.item.deleteError",workItemOverviewTitle:"work.item.overviewTitle",workItemSummaryLabel:"work.item.summaryLabel",workItemProjectLabel:"work.item.projectLabel",workItemParentLabel:"work.item.parentLabel",workItemOwnerLabel:"work.item.ownerLabel",workItemConversationLabel:"work.item.conversationLabel",workItemOrphanSummaryFallback:"work.item.orphanSummaryFallback",workItemNoTasksLabel:"work.item.noTasksLabel",workItemTasksTitle:"work.item.tasksTitle",workItemMissionsTitle:"work.item.missionsTitle",workItemSubWorkItemsTitle:"work.item.subWorkItemsTitle",workItemNoSubWorkItems:"work.item.noSubWorkItems",workItemNoMissions:"work.item.noMissions",workItemSubWorkItemsCountLabel:"work.item.subWorkItemsCountLabel",workItemNoActivity:"work.item.noActivity",workItemActivityTitle:"work.item.activityTitle",workItemLoadingLabel:"work.item.loadingLabel",workItemNotFoundTitle:"work.item.notFoundTitle",workItemNotFoundText:"work.item.notFoundText",workItemNotInProjectionText:"work.item.notInProjectionText",workItemMissedTitle:"work.item.missedTitle",workItemNoTasksYetLabel:"work.item.noTasksYetLabel",workItemNotFoundCodeLabel:"work.item.notFoundCodeLabel",workExternalEmpty:"work.external.empty",workExternalLinkIssueAction:"work.external.linkIssueAction",workExternalLinkTrackerAction:"work.external.linkTrackerAction",workExternalLinkDialogTitle:"work.external.dialogTitle",workExternalLinkCloseLabel:"work.external.closeLabel",workExternalProviderLabel:"work.external.providerLabel",workExternalProviderGithub:"work.external.provider.github",workExternalProviderGitlab:"work.external.provider.gitlab",workExternalProviderGitea:"work.external.provider.gitea",workExternalProviderRedmine:"work.external.provider.redmine",workExternalProviderBugzilla:"work.external.provider.bugzilla",workExternalTypeLabel:"work.external.typeLabel",workExternalTypeIssue:"work.external.type.issue",workExternalTypeTicket:"work.external.type.ticket",workExternalTypeProject:"work.external.type.project",workExternalIdLabel:"work.external.idLabel",workExternalIdPlaceholder:"work.external.idPlaceholder",workExternalUrlLabel:"work.external.urlLabel",workExternalUrlPlaceholder:"work.external.urlPlaceholder",workExternalSyncDirectionLabel:"work.external.syncDirectionLabel",workExternalSyncPull:"work.external.sync.pull",workExternalSyncPush:"work.external.sync.push",workExternalSyncBidirectional:"work.external.sync.bidirectional",workExternalCancelButton:"work.external.cancelButton",workExternalSubmitLabel:"work.external.submitLabel",workExternalSubmitBusyLabel:"work.external.submitBusyLabel",workExternalLinkError:"work.external.linkError",workExternalUnlinkAction:"work.external.unlinkAction",workExternalUnlinkAriaLabel:"work.external.unlinkAriaLabel",workExternalUnlinkConfirmation:"work.external.unlinkConfirmation",workExternalUnlinkError:"work.external.unlinkError",workExternalImportDialogTitle:"work.external.import.dialogTitle",workExternalImportProviderLabel:"work.external.import.providerLabel",workExternalImportUrlLabel:"work.external.import.urlLabel",workExternalImportUrlPlaceholder:"work.external.import.urlPlaceholder",workExternalImportCancelButton:"work.external.import.cancelButton",workExternalImportSubmitLabel:"work.external.import.submitLabel",workExternalImportSubmitBusyLabel:"work.external.import.submitBusyLabel",workExternalImportError:"work.external.import.error",workExternalImportExternalIssueLabel:"work.external.import.externalIssueLabel",workExternalImportProviderGithub:"work.external.import.provider.github",workExternalImportProviderRedmine:"work.external.import.provider.redmine",workExternalImportProviderBugzilla:"work.external.import.provider.bugzilla",workExternalImportTypeIssue:"work.external.import.type.issue",workExternalImportTypeTicket:"work.external.import.type.ticket",workExternalImportResultImported:"work.external.import.result.imported",workExternalImportResultLinked:"work.external.import.result.linked",workExternalImportResultAlreadyImported:"work.external.import.result.alreadyImported",workExternalImportFailureBody:"work.external.import.failure.body",workExternalImportFailureBodyUnknown:"work.external.import.failure.bodyUnknown",workExternalImportFailureReasonInvalidTarget:"work.external.import.failure.reason.invalidTarget",workExternalImportFailureReasonStoreUnavailable:"work.external.import.failure.reason.storeUnavailable",workExternalImportFailureReasonUnsupportedOwnerMessage:"work.external.import.failure.reason.unsupportedOwnerMessage",workExternalImportFailureReasonSchemaInvalid:"work.external.import.failure.reason.schemaInvalid",workExternalImportFailureReasonIssueMismatch:"work.external.import.failure.reason.issueMismatch",workExternalImportFailureReasonProviderMismatch:"work.external.import.failure.reason.providerMismatch",workExternalImportFailureReasonPendingApproval:"work.external.import.failure.reason.pendingApproval",workExternalImportFailureReasonUnsupportedSource:"work.external.import.failure.reason.unsupportedSource",workExternalImportFailureReasonFetchFailed:"work.external.import.failure.reason.fetchFailed",workExternalImportFailureReasonPullRequestUnsupported:"work.external.import.failure.reason.pullRequestUnsupported",workExternalImportFailureReasonUnexpected:"work.external.import.failure.reason.unexpected",workTasksListTitle:"work.tasks.listTitle",workTasksListNewAction:"work.tasks.newAction",workTasksListCreateNewTaskAriaLabel:"work.tasks.createNewTaskAriaLabel",workTasksListLoading:"work.tasks.loading",workTasksListLoadError:"work.tasks.loadError",workTasksListEmptyIntro:"work.tasks.emptyIntro",workTasksListEmptyActionLabel:"work.tasks.emptyActionLabel",workTasksListEmptySuffix:"work.tasks.emptySuffix",workTasksListOpenTaskAria:"work.tasks.openTaskAriaLabel",workTaskStatusPendingApproval:"work.task.status.pendingApproval",workTaskStatusApproved:"work.task.status.approved",workTaskStatusArchived:"work.task.status.archived",workTaskPriorityUrgent:"work.task.priority.urgent",workTaskPriorityHigh:"work.task.priority.high",workTaskPriorityMedium:"work.task.priority.medium",workTaskPriorityLow:"work.task.priority.low",workTaskPriorityLabelWithValue:"work.task.priority.labelWithValue",workTaskBackLabel:"work.task.backLabel",workTaskBackArrowLabel:"work.task.backArrowLabel",workTaskUpdatedAtPrefix:"work.task.updatedAtPrefix",workTaskDeleteLabel:"work.task.deleteLabel",workTaskDeleteLabelBusy:"work.task.deleteLabelBusy",workTaskDeleteConfirmation:"work.task.deleteConfirmation",workTaskDeleteError:"work.task.deleteError",workTaskApproveLabel:"work.task.approveLabel",workTaskApproveBusyLabel:"work.task.approveBusyLabel",workTaskRejectLabel:"work.task.rejectLabel",workTaskRejectBusyLabel:"work.task.rejectBusyLabel",workTaskApprovalDecisionError:"work.task.approvalDecisionError",workTaskPriorityTooltip:"work.task.priorityTooltip",workTaskOverviewTitle:"work.task.overviewTitle",workTaskSummaryLabel:"work.task.summaryLabel",workTaskProjectLabel:"work.task.projectLabel",workTaskOrphanProjectFallback:"work.task.orphanProjectFallback",workTaskWorkItemLabel:"work.task.workItemLabel",workTaskNoWorkItemFallback:"work.task.noWorkItemFallback",workTaskParentTaskLabel:"work.task.parentTaskLabel",workTaskOwnerLabel:"work.task.ownerLabel",workTaskAssigneeLabel:"work.task.assigneeLabel",workTaskNoAssigneeFallback:"work.task.noAssigneeFallback",workTaskAssignedActorsLabel:"work.task.assignedActorsLabel",workTaskNoActorsAssignedFallback:"work.task.noActorsAssignedFallback",workTaskAcceptanceCriteriaLabel:"work.task.acceptanceCriteriaLabel",workTaskConversationLabel:"work.task.conversationLabel",workTaskNoActivity:"work.task.noActivity",workTaskActivityTitle:"work.task.activityTitle",workTaskSubTasksTitle:"work.task.subTasksTitle",workTaskNoSubTasksLabel:"work.task.noSubTasksLabel",workTaskRunsTitle:"work.task.runsTitle",workTaskNoRunsIntro:"work.task.noRunsIntro",workTaskNoRunsActionLabel:"work.task.noRunsActionLabel",workTaskNoRunsSuffix:"work.task.noRunsSuffix",workTaskStartRunBusyLabel:"work.task.startRunBusyLabel",workTaskStartRunError:"work.task.startRunError",workTaskLoadingLabel:"work.task.loadingLabel",workTaskNotFoundTitle:"work.task.notFoundTitle",workTaskNotFoundText:"work.task.notFoundText",workTaskNotFoundCodeLabel:"work.task.notFoundCodeLabel",workObjectKindAgent:"work.object.kind.agent",workObjectKindContainer:"work.object.kind.container",workObjectKindConversation:"work.object.kind.conversation",workObjectKindTurn:"work.object.kind.turn",workObjectKindLane:"work.object.kind.lane",workObjectKindProject:"work.object.kind.project",workObjectKindWorkItem:"work.object.kind.workItem",workObjectKindTask:"work.object.kind.task",workObjectKindMission:"work.object.kind.mission",workObjectKindRun:"work.object.kind.run",workObjectKindArtifact:"work.object.kind.artifact",workObjectKindActivity:"work.object.kind.activity",workObjectKindOutcome:"work.object.kind.outcome",workObjectKindApprovalBinding:"work.object.kind.approvalBinding",workObjectKindUnknown:"work.object.kind.unknown",workObjectAttentionUnknown:"work.object.attention.unknown",workObjectAttentionDecisionNeeded:"work.object.attention.decisionNeeded",workObjectAttentionBlocked:"work.object.attention.blocked",workObjectAttentionFailed:"work.object.attention.failed",workObjectAttentionReadyToReview:"work.object.attention.readyToReview",workObjectAttentionRecentlyShipped:"work.object.attention.recentlyShipped",workObjectStatusDraft:"work.object.status.draft",workObjectStatusPlanned:"work.object.status.planned",workObjectStatusActive:"work.object.status.active",workObjectStatusPaused:"work.object.status.paused",workObjectStatusArchived:"work.object.status.archived",workObjectStatusReady:"work.object.status.ready",workObjectStatusInProgress:"work.object.status.inProgress",workObjectStatusBlocked:"work.object.status.blocked",workObjectStatusCompleted:"work.object.status.completed",workObjectStatusCancelled:"work.object.status.cancelled",workObjectStatusRunning:"work.object.status.running",workObjectStatusQueued:"work.object.status.queued",workObjectStatusUnknown:"work.object.status.unknown",workActorRoleAssistant:"work.actorRole.assistant",workActorRoleBoss:"work.actorRole.boss",workActorRoleCoder:"work.actorRole.coder",workActorRoleCoordinator:"work.actorRole.coordinator",workActorRoleCritic:"work.actorRole.critic",workActorRoleDrafter:"work.actorRole.drafter",workActorRoleMainCoder:"work.actorRole.mainCoder",workActorRoleOrchestrator:"work.actorRole.orchestrator",workActorRoleOwner:"work.actorRole.owner",workActorRolePlanner:"work.actorRole.planner",workActorRoleReviewer:"work.actorRole.reviewer",workActorRoleSummarizer:"work.actorRole.summarizer",workObjectGateStateNotRequested:"work.object.gateState.notRequested",workObjectGateStatePending:"work.object.gateState.pending",workObjectGateStateApproved:"work.object.gateState.approved",workObjectGateStateRejected:"work.object.gateState.rejected",workObjectGateStateUnknown:"work.object.gateState.unknown",workTopdownParentTaskOwningLabel:"work.topdown.parentTaskOwningLabel",workTopdownParentTaskLabel:"work.topdown.parentTaskLabel",workTopdownParentWorkItemLabel:"work.topdown.parentWorkItemLabel",workTopdownCrossCuttingLayer:"work.topdown.crossCuttingLayer",workTopdownCockpitEyebrow:"work.topdown.cockpitEyebrow",workTopdownCockpitTitle:"work.topdown.cockpitTitle",workTopdownCockpitLede:"work.topdown.cockpitLede",workTopdownCockpitMetricDecisions:"work.topdown.cockpitMetricDecisions",workTopdownCockpitMetricBlocked:"work.topdown.cockpitMetricBlocked",workTopdownCockpitMetricShipped:"work.topdown.cockpitMetricShipped",workTopdownCockpitTabsAriaLabel:"work.topdown.cockpitTabsAriaLabel",workTopdownCockpitTabCommandLabel:"work.topdown.cockpitTabCommandLabel",workTopdownCockpitTabCommandSub:"work.topdown.cockpitTabCommandSub",workTopdownCockpitTabNeedsDecisionLabel:"work.topdown.cockpitTabNeedsDecisionLabel",workTopdownCockpitTabNeedsDecisionSub:"work.topdown.cockpitTabNeedsDecisionSub",workTopdownCockpitTabActiveLabel:"work.topdown.cockpitTabActiveLabel",workTopdownCockpitTabActiveSub:"work.topdown.cockpitTabActiveSub",workTopdownCockpitTabActiveRunsLabel:"work.topdown.cockpitTabActiveRunsLabel",workTopdownCockpitTabActiveRunsSub:"work.topdown.cockpitTabActiveRunsSub",workTopdownCockpitTabBlockedLabel:"work.topdown.cockpitTabBlockedLabel",workTopdownCockpitTabBlockedSub:"work.topdown.cockpitTabBlockedSub",workTopdownCockpitTabShippedLabel:"work.topdown.cockpitTabShippedLabel",workTopdownCockpitTabShippedSub:"work.topdown.cockpitTabShippedSub",workTopdownCockpitTabTeamsLabel:"work.topdown.cockpitTabTeamsLabel",workTopdownCockpitTabTeamsSub:"work.topdown.cockpitTabTeamsSub",workTopdownCockpitOpen:"work.topdown.cockpitOpen",workTopdownCockpitNoBucketItems:"work.topdown.cockpitNoBucketItems",workTopdownCockpitRecentActivityAriaLabel:"work.topdown.cockpitRecentActivityAriaLabel",workTopdownCockpitRecentActivityTitle:"work.topdown.cockpitRecentActivityTitle",workTopdownCockpitRecentActivitySummary:"work.topdown.cockpitRecentActivitySummary",workTopdownCockpitRecentActivityEmpty:"work.topdown.cockpitRecentActivityEmpty",workTopdownCockpitNoActorRoles:"work.topdown.cockpitNoActorRoles",workTopdownLinkageTitle:"work.topdown.linkageTitle",workTopdownLinkageAddAction:"work.topdown.linkageAddAction",workTopdownLinkageNoLinksYetPrefix:"work.topdown.linkageNoLinksYetPrefix",workTopdownLinkageNoLinksYetSuffix:"work.topdown.linkageNoLinksYetSuffix",workTopdownLinkageViewKindBlocksLabel:"work.topdown.linkageViewKindBlocksLabel",workTopdownLinkageViewKindBlockedByLabel:"work.topdown.linkageViewKindBlockedByLabel",workTopdownLinkageViewKindRelatedToLabel:"work.topdown.linkageViewKindRelatedToLabel",workTopdownLinkageViewKindDuplicateOfLabel:"work.topdown.linkageViewKindDuplicateOfLabel",workTopdownLinkageViewKindFollowsLabel:"work.topdown.linkageViewKindFollowsLabel",workTopdownLinkageViewKindBlocksEmpty:"work.topdown.linkageViewKindBlocksEmpty",workTopdownLinkageViewKindBlockedByEmpty:"work.topdown.linkageViewKindBlockedByEmpty",workTopdownLinkageViewKindRelatedToEmpty:"work.topdown.linkageViewKindRelatedToEmpty",workTopdownLinkageViewKindDuplicateOfEmpty:"work.topdown.linkageViewKindDuplicateOfEmpty",workTopdownLinkageViewKindFollowsEmpty:"work.topdown.linkageViewKindFollowsEmpty",workTopdownLinkKindBlocksHelp:"work.topdown.linkKindBlocksHelp",workTopdownLinkKindBlockedByHelp:"work.topdown.linkKindBlockedByHelp",workTopdownLinkKindRelatedToHelp:"work.topdown.linkKindRelatedToHelp",workTopdownLinkKindDuplicateOfHelp:"work.topdown.linkKindDuplicateOfHelp",workTopdownLinkKindFollowsHelp:"work.topdown.linkKindFollowsHelp",workTopdownNewLinkDialogTitle:"work.topdown.newLinkDialogTitle",workTopdownNewLinkClose:"work.topdown.newLinkClose",workTopdownNewLinkSourcePrefix:"work.topdown.newLinkSourcePrefix",workTopdownNewLinkRelationLabel:"work.topdown.newLinkRelationLabel",workTopdownNewLinkTargetLabel:"work.topdown.newLinkTargetLabel",workTopdownNewLinkTargetSearchPlaceholder:"work.topdown.newLinkTargetSearchPlaceholder",workTopdownNewLinkNoMatches:"work.topdown.newLinkNoMatches",workTopdownNewLinkNoteLabel:"work.topdown.newLinkNoteLabel",workTopdownNewLinkNotePlaceholder:"work.topdown.newLinkNotePlaceholder",workTopdownNewLinkCancel:"work.topdown.newLinkCancel",workTopdownNewLinkSaving:"work.topdown.newLinkSaving",workTopdownNewLinkErrorInvalidTarget:"work.topdown.newLinkErrorInvalidTarget",workTopdownNewLinkErrorSelfLink:"work.topdown.newLinkErrorSelfLink",workTopdownNewLinkErrorNoteTooLong:"work.topdown.newLinkErrorNoteTooLong",workTopdownNewLinkErrorFailed:"work.topdown.newLinkErrorFailed",workTopdownUpstreamBlockersAriaLabel:"work.topdown.upstreamBlockersAriaLabel",workTopdownBlockersTitle:"work.topdown.blockersTitle",workTopdownUpstreamBlocksLine:"work.topdown.upstreamBlocksLine",workTopdownNoUpstreamBlockers:"work.topdown.noUpstreamBlockers",workTopdownBrokenLinksEyebrow:"work.topdown.brokenLinksEyebrow",workTopdownBrokenLinksTitle:"work.topdown.brokenLinksTitle",workTopdownBrokenLinksLede:"work.topdown.brokenLinksLede",workTopdownBrokenLinksErrorMetricSuffix:"work.topdown.brokenLinksErrorMetricSuffix",workTopdownBrokenLinksWarningMetricSuffix:"work.topdown.brokenLinksWarningMetricSuffix",workTopdownBrokenLinksInfoMetricSuffix:"work.topdown.brokenLinksInfoMetricSuffix",workTopdownBrokenLinksSeverityFiltersAriaLabel:"work.topdown.brokenLinksSeverityFiltersAriaLabel",workTopdownBrokenLinksSeverityAllLabel:"work.topdown.brokenLinksSeverityAllLabel",workTopdownBrokenLinksSeverityErrorLabel:"work.topdown.brokenLinksSeverityErrorLabel",workTopdownBrokenLinksSeverityWarningLabel:"work.topdown.brokenLinksSeverityWarningLabel",workTopdownBrokenLinksSeverityInfoLabel:"work.topdown.brokenLinksSeverityInfoLabel",workTopdownBrokenLinksNoDiagnostics:"work.topdown.brokenLinksNoDiagnostics",workTopdownBrokenLinksOn:"work.topdown.brokenLinksOn",workTopdownBrokenLinksOpenInDrawer:"work.topdown.brokenLinksOpenInDrawer",workTopdownBrokenLinksObjectNotInProjection:"work.topdown.brokenLinksObjectNotInProjection",workTopdownBrokenLinksNoSpecificObject:"work.topdown.brokenLinksNoSpecificObject",workTopdownBrokenLinksRemoveTooltipRemovable:"work.topdown.brokenLinksRemoveTooltipRemovable",workTopdownBrokenLinksRemoveTooltipDemoSeed:"work.topdown.brokenLinksRemoveTooltipDemoSeed",workTopdownBrokenLinksRemoveAction:"work.topdown.brokenLinksRemoveAction",workTopdownBrokenLinksRemoveUnknownError:"work.topdown.brokenLinksRemoveUnknownError",workTopdownBrokenLinksRemovingInProgress:"work.topdown.brokenLinksRemovingInProgress",workTopdownBrokenLinksRemovableOnlyDemo:"work.topdown.brokenLinksRemovableOnlyDemo",workTopdownBrokenLinksCycleRemovableRows:"work.topdown.brokenLinksCycleRemovableRows",workTopdownBrokenLinksDeletedLabel:"work.topdown.brokenLinksDeletedLabel",workTopdownDiagnosticKindBrokenFk:"work.topdown.diagnosticKind.brokenFk",workTopdownDiagnosticKindMissingProjectAnchor:"work.topdown.diagnosticKind.missingProjectAnchor",workTopdownDiagnosticKindMissingPlanningExecutionBridge:"work.topdown.diagnosticKind.missingPlanningExecutionBridge",workTopdownDiagnosticKindUnanchoredRun:"work.topdown.diagnosticKind.unanchoredRun",workTopdownDiagnosticKindUnanchoredEvidence:"work.topdown.diagnosticKind.unanchoredEvidence",workTopdownDiagnosticKindMissingGateSubject:"work.topdown.diagnosticKind.missingGateSubject",workTopdownDiagnosticKindOrphanLink:"work.topdown.diagnosticKind.orphanLink",workTopdownDiagnosticKindLinkCycle:"work.topdown.diagnosticKind.linkCycle",workTopdownTaskProductBindingTitle:"work.topdown.taskProductBindingTitle",workTopdownTaskProductBindingUnbound:"work.topdown.taskProductBindingUnbound",workTopdownParentTaskTooltip:"work.topdown.parentTaskTooltip",workTopdownSelectionLost:"work.topdown.selectionLost",workTopdownObjectNotInProjectionTitle:"work.topdown.objectNotInProjectionTitle",workTopdownObjectNotInProjectionMessage:"work.topdown.objectNotInProjectionMessage",workTopdownIdentityTitle:"work.topdown.identityTitle",workTopdownIdentityKind:"work.topdown.identityKind",workTopdownIdentityStatus:"work.topdown.identityStatus",workTopdownIdentityLayer:"work.topdown.identityLayer",workTopdownIdentityOwnerRole:"work.topdown.identityOwnerRole",workTopdownIdentityNextAction:"work.topdown.identityNextAction",workTopdownIdentityUpdated:"work.topdown.identityUpdated",workTopdownIdentitySummary:"work.topdown.identitySummary",workTopdownExternalTitle:"work.topdown.externalTitle",workTopdownExternalBindingTooltip:"work.topdown.externalBindingTooltip",workTopdownExternalSyncLabel:"work.topdown.externalSyncLabel",workTopdownExternalUpdatedLabel:"work.topdown.externalUpdatedLabel",workTopdownAnchorsTitle:"work.topdown.anchorsTitle",workTopdownEvidenceTitle:"work.topdown.evidenceTitle",workTopdownEvidenceEmpty:"work.topdown.evidenceEmpty",workTopdownMissingSuffix:"work.topdown.missingSuffix",workTopdownGatesTitle:"work.topdown.gatesTitle",workTopdownGatesEmpty:"work.topdown.gatesEmpty",workTopdownDiagnosticsTitle:"work.topdown.diagnosticsTitle",workTopdownRelativeJustNow:"work.topdown.relativeJustNow",workTopdownRelativeMinutesAgo:"work.topdown.relativeMinutesAgo",workTopdownRelativeHoursAgo:"work.topdown.relativeHoursAgo",workTopdownRelativeDaysAgo:"work.topdown.relativeDaysAgo",workTopdownAnchorProject:"work.topdown.anchorProject",workTopdownAnchorWorkItem:"work.topdown.anchorWorkItem",workTopdownAnchorTask:"work.topdown.anchorTask",workTopdownAnchorRun:"work.topdown.anchorRun",workTopdownAnchorConversation:"work.topdown.anchorConversation",workTopdownAnchorsEmpty:"work.topdown.anchorsEmpty",workTopdownSystemMapEyebrow:"work.topdown.systemMapEyebrow",workTopdownSystemMapTitle:"work.topdown.systemMapTitle",workTopdownSystemMapLede:"work.topdown.systemMapLede",workTopdownSystemMapStructuralLabel:"work.topdown.systemMapStructuralLabel",workTopdownSystemMapTotalLabel:"work.topdown.systemMapTotalLabel",workTopdownSystemMapDiagnosticsLabel:"work.topdown.systemMapDiagnosticsLabel",workTopdownSystemMapLayerAriaLabel:"work.topdown.systemMapLayerAriaLabel",workTopdownSystemMapLayerInteractionLabel:"work.topdown.systemMapLayerInteractionLabel",workTopdownSystemMapLayerPlanningLabel:"work.topdown.systemMapLayerPlanningLabel",workTopdownSystemMapLayerExecutionLabel:"work.topdown.systemMapLayerExecutionLabel",workTopdownSystemMapLayerInteractionDescription:"work.topdown.systemMapLayerInteractionDescription",workTopdownSystemMapLayerPlanningDescription:"work.topdown.systemMapLayerPlanningDescription",workTopdownSystemMapLayerExecutionDescription:"work.topdown.systemMapLayerExecutionDescription",workTopdownSystemMapLayerEmpty:"work.topdown.systemMapLayerEmpty",workWarRoomAttentionAttention:"work.warRoom.attentionAttention",workWarRoomAttentionError:"work.warRoom.attentionError",workWarRoomAttentionFallback:"work.warRoom.attentionFallback",workWarRoomAttentionMuted:"work.warRoom.attentionMuted",workWarRoomAttentionProgress:"work.warRoom.attentionProgress",workWarRoomAttentionSuccess:"work.warRoom.attentionSuccess",workWarRoomControlPlane:"work.warRoom.controlPlane",workWarRoomControlPlaneBlockedBy:"work.warRoom.controlPlaneBlockedBy",workWarRoomControlPlaneEmptyBadge:"work.warRoom.controlPlaneEmptyBadge",workWarRoomControlPlaneEmptyBody:"work.warRoom.controlPlaneEmptyBody",workWarRoomControlPlaneEmptyTitle:"work.warRoom.controlPlaneEmptyTitle",workWarRoomControlPlaneNoTargets:"work.warRoom.controlPlaneNoTargets",workWarRoomControlPlaneTargets:"work.warRoom.controlPlaneTargets",workWarRoomCountSummary:"work.warRoom.countSummary",workWarRoomGovernanceEyebrow:"work.warRoom.governanceEyebrow",workWarRoomActionBusy:"work.warRoom.actionBusy",workWarRoomActionError:"work.warRoom.actionError",workWarRoomLoadError:"work.warRoom.loadError",workWarRoomLoadingBadge:"work.warRoom.loadingBadge",workWarRoomLoadingBody:"work.warRoom.loadingBody",workWarRoomLoadingEyebrow:"work.warRoom.loadingEyebrow",workWarRoomLoadingSummary:"work.warRoom.loadingSummary",workWarRoomLoadingTitle:"work.warRoom.loadingTitle",workWarRoomManagedWorkEyebrow:"work.warRoom.managedWorkEyebrow",workWarRoomMetaLabelActions:"work.warRoom.metaLabelActions",workWarRoomMetaLabelActors:"work.warRoom.metaLabelActors",workWarRoomMetaLabelApproval:"work.warRoom.metaLabelApproval",workWarRoomMetaLabelBlocked:"work.warRoom.metaLabelBlocked",workWarRoomMetaLabelConversation:"work.warRoom.metaLabelConversation",workWarRoomMetaLabelDelivery:"work.warRoom.metaLabelDelivery",workWarRoomMetaLabelLatest:"work.warRoom.metaLabelLatest",workWarRoomMetaLabelLatestSource:"work.warRoom.metaLabelLatestSource",workWarRoomMetaLabelNext:"work.warRoom.metaLabelNext",workWarRoomMetaLabelOwner:"work.warRoom.metaLabelOwner",workWarRoomMetaLabelProduct:"work.warRoom.metaLabelProduct",workWarRoomMetaLabelProject:"work.warRoom.metaLabelProject",workWarRoomMetaLabelReasons:"work.warRoom.metaLabelReasons",workWarRoomMetaLabelReplay:"work.warRoom.metaLabelReplay",workWarRoomMetaLabelRepo:"work.warRoom.metaLabelRepo",workWarRoomMetaLabelRetryAvailable:"work.warRoom.metaLabelRetryAvailable",workWarRoomMetaLabelStrategy:"work.warRoom.metaLabelStrategy",workWarRoomMetaLabelTask:"work.warRoom.metaLabelTask",workWarRoomMetaLabelTasks:"work.warRoom.metaLabelTasks",workWarRoomMetaLabelWatch:"work.warRoom.metaLabelWatch",workWarRoomMetaLabelWorkflow:"work.warRoom.metaLabelWorkflow",workWarRoomMetaLabelWorkItem:"work.warRoom.metaLabelWorkItem",workWarRoomMetaLabelWorkItems:"work.warRoom.metaLabelWorkItems",workWarRoomMetaValueNo:"work.warRoom.metaValueNo",workWarRoomMetaValueNoReplayBlock:"work.warRoom.metaValueNoReplayBlock",workWarRoomMetaValueNoTimelineItem:"work.warRoom.metaValueNoTimelineItem",workWarRoomMetaValueNotBound:"work.warRoom.metaValueNotBound",workWarRoomMetaValueNotRecorded:"work.warRoom.metaValueNotRecorded",workWarRoomMetaValueNotSpecified:"work.warRoom.metaValueNotSpecified",workWarRoomMetaValueUnassigned:"work.warRoom.metaValueUnassigned",workWarRoomMetaValueNoRuntimeBridge:"work.warRoom.metaValueNoRuntimeBridge",workWarRoomMetaValueNone:"work.warRoom.metaValueNone",workWarRoomNoLinkedConversation:"work.warRoom.noLinkedConversation",workWarRoomNoLinkedProject:"work.warRoom.noLinkedProject",workWarRoomNoLinkedTask:"work.warRoom.noLinkedTask",workWarRoomNoLinkedWorkItem:"work.warRoom.noLinkedWorkItem",workWarRoomNoPrimaryConversation:"work.warRoom.noPrimaryConversation",workWarRoomNoProjectSummary:"work.warRoom.noProjectSummary",workWarRoomNoStatus:"work.warRoom.noStatus",workWarRoomNoTaskSummary:"work.warRoom.noTaskSummary",workWarRoomNoWorkItemSummary:"work.warRoom.noWorkItemSummary",workWarRoomNone:"work.warRoom.none",workWarRoomNotRecorded:"work.warRoom.notRecorded",workWarRoomOpenActor:"work.warRoom.openActor",workWarRoomOpenBriefingThread:"work.warRoom.openBriefingThread",workWarRoomOpenProject:"work.warRoom.openProject",workWarRoomOpenTask:"work.warRoom.openTask",workWarRoomOpenWorkItem:"work.warRoom.openWorkItem",workWarRoomOperateEyebrow:"work.warRoom.operateEyebrow",workWarRoomOperatorInbox:"work.warRoom.operatorInbox",workWarRoomOperatorInboxEmptyBadge:"work.warRoom.operatorInboxEmptyBadge",workWarRoomOperatorInboxEmptyBody:"work.warRoom.operatorInboxEmptyBody",workWarRoomOperatorInboxEmptyTitle:"work.warRoom.operatorInboxEmptyTitle",workWarRoomPageEyebrow:"work.warRoom.pageEyebrow",workWarRoomPageTitle:"work.warRoom.pageTitle",workWarRoomPortfolioEyebrow:"work.warRoom.portfolioEyebrow",workWarRoomProjects:"work.warRoom.projects",workWarRoomProjectsEmptyBadge:"work.warRoom.projectsEmptyBadge",workWarRoomProjectsEmptyBody:"work.warRoom.projectsEmptyBody",workWarRoomProjectsEmptyTitle:"work.warRoom.projectsEmptyTitle",workWarRoomRecovery:"work.warRoom.recovery",workWarRoomRecoveryEmptyBadge:"work.warRoom.recoveryEmptyBadge",workWarRoomRecoveryEmptyBody:"work.warRoom.recoveryEmptyBody",workWarRoomRecoveryEmptyTitle:"work.warRoom.recoveryEmptyTitle",workWarRoomRecoveryEyebrow:"work.warRoom.recoveryEyebrow",workWarRoomRecoveryNoRecoveryNote:"work.warRoom.recoveryNoRecoveryNote",workWarRoomSnapshotEyebrow:"work.warRoom.snapshotEyebrow",workWarRoomSnapshotSummary:"work.warRoom.snapshotSummary",workWarRoomSnapshotTitle:"work.warRoom.snapshotTitle",workWarRoomStatusFallback:"work.warRoom.statusFallback",workWarRoomSummaryAttention:"work.warRoom.summaryAttention",workWarRoomSummaryInProgressBlocked:"work.warRoom.summaryInProgressBlocked",workWarRoomSummaryLabelAttention:"work.warRoom.summaryLabelAttention",workWarRoomSummaryLabelProjects:"work.warRoom.summaryLabelProjects",workWarRoomSummaryLabelRecovery:"work.warRoom.summaryLabelRecovery",workWarRoomSummaryLabelTasks:"work.warRoom.summaryLabelTasks",workWarRoomSummaryRecovery:"work.warRoom.summaryRecovery",workWarRoomWorkItems:"work.warRoom.workItems",workWarRoomWorkItemsEmptyBadge:"work.warRoom.workItemsEmptyBadge",workWarRoomWorkItemsEmptyBody:"work.warRoom.workItemsEmptyBody",workWarRoomWorkItemsEmptyTitle:"work.warRoom.workItemsEmptyTitle",workTimelineEvidenceProviderAgentRunLoop:"work.timeline.evidence.providerAgentRunLoop",workTimelineEvidenceSupervision:"work.timeline.evidence.supervision",workTimelineTitleApprovalBinding:"work.timeline.title.approvalBinding",workTimelineTitleApprovalDecided:"work.timeline.title.approvalDecided",workTimelineTitleApprovalRequested:"work.timeline.title.approvalRequested",workTimelineTitleArtifactRecorded:"work.timeline.title.artifactRecorded",workTimelineTitleCheckpoint:"work.timeline.title.checkpoint",workTimelineTitleCheckpointRecorded:"work.timeline.title.checkpointRecorded",workTimelineTitleEvidence:"work.timeline.title.evidence",workTimelineTitleNote:"work.timeline.title.note",workTimelineTitleOperatorAction:"work.timeline.title.operatorAction",workTimelineTitleProviderAgentPlan:"work.timeline.title.providerAgentPlan",workTimelineTitleStatusChanged:"work.timeline.title.statusChanged",workTimelineTitleTrace:"work.timeline.title.trace",workTimelineTitleWorkItemUpdated:"work.timeline.title.workItemUpdated",workExecutionActionAcknowledge:"work.execution.action.acknowledge",workExecutionActionApprove:"work.execution.action.approve",workExecutionActionComplete:"work.execution.action.complete",workExecutionActionCreateCommit:"work.execution.action.createCommit",workExecutionActionDispatch:"work.execution.action.dispatch",workExecutionActionOpenPullRequest:"work.execution.action.openPullRequest",workExecutionActionPublishPreview:"work.execution.action.publishPreview",workExecutionActionReject:"work.execution.action.reject",workExecutionActionRequestReview:"work.execution.action.requestReview",workExecutionActionReroute:"work.execution.action.reroute",workExecutionActionRetry:"work.execution.action.retry",workExecutionActionWait:"work.execution.action.wait",workExecutionActionWaitForChecks:"work.execution.action.waitForChecks",workExecutionApprovalStatusApproved:"work.execution.approvalStatus.approved",workExecutionApprovalStatusNotRequested:"work.execution.approvalStatus.notRequested",workExecutionApprovalStatusPending:"work.execution.approvalStatus.pending",workExecutionApprovalStatusRejected:"work.execution.approvalStatus.rejected",workExecutionDeliveryModeArtifactOnly:"work.execution.deliveryMode.artifactOnly",workExecutionDeliveryModeCommitOnly:"work.execution.deliveryMode.commitOnly",workExecutionDeliveryModeDeployPreview:"work.execution.deliveryMode.deployPreview",workExecutionDeliveryModePrWithChecks:"work.execution.deliveryMode.prWithChecks",workExecutionDeliveryModePushBranch:"work.execution.deliveryMode.pushBranch",workExecutionStrategyPdca:"work.execution.strategy.pdca",workExecutionStrategyPlanAndExecute:"work.execution.strategy.planAndExecute",workExecutionStrategyReact:"work.execution.strategy.react",workExecutionStrategyReflexion:"work.execution.strategy.reflexion",workExecutionReasonApprovalPending:"work.execution.reason.approvalPending",workExecutionReasonChildTasksInProgress:"work.execution.reason.childTasksInProgress",workExecutionReasonMaxDispatches:"work.execution.reason.maxDispatches",workExecutionReasonNoValidTargets:"work.execution.reason.noValidTargets",workExecutionReasonRetryAvailable:"work.execution.reason.retryAvailable",workExecutionReasonRunBlocked:"work.execution.reason.runBlocked",workExecutionReasonRunFailed:"work.execution.reason.runFailed",workExecutionReasonUserCancelled:"work.execution.reason.userCancelled",workExecutionReasonWorkflowReviewRequired:"work.execution.reason.workflowReviewRequired",workExecutionReplaySourceOrchestratorReplay:"work.execution.replaySource.orchestratorReplay",workExecutionReplaySourceOrchestratorStartupRecovery:"work.execution.replaySource.orchestratorStartupRecovery",workExecutionReplaySourceWorkflowContinuationReplay:"work.execution.replaySource.workflowContinuationReplay",workExecutionReplayStateFailed:"work.execution.replayState.failed",workExecutionReplayStateInProgress:"work.execution.replayState.inProgress",workExecutionReplayStatePending:"work.execution.replayState.pending",workExecutionReplayStateReady:"work.execution.replayState.ready",workNewWorkItemTitle:"work.newWorkItem.title",workNewWorkItemTitleLabel:"work.newWorkItem.titleLabel",workNewWorkItemSummaryLabel:"work.newWorkItem.summaryLabel",workNewWorkItemProjectLabel:"work.newWorkItem.projectLabel",workNewWorkItemStatusLabel:"work.newWorkItem.statusLabel",workNewWorkItemProjectOrphan:"work.newWorkItem.projectOrphan",workNewWorkItemTitlePlaceholder:"work.newWorkItem.titlePlaceholder",workNewWorkItemSummaryPlaceholder:"work.newWorkItem.summaryPlaceholder",workNewWorkItemCancelButton:"work.newWorkItem.cancelButton",workNewWorkItemCloseLabel:"work.newWorkItem.closeLabel",workNewWorkItemSubmitLabel:"work.newWorkItem.submitLabel",workNewWorkItemSubmitBusyLabel:"work.newWorkItem.submitBusyLabel",workNewWorkItemCreateError:"work.newWorkItem.createError",workNewWorkItemStatusDraft:"work.newWorkItem.status.draft",workNewWorkItemStatusPlanned:"work.newWorkItem.status.planned",workNewWorkItemStatusReady:"work.newWorkItem.status.ready",workNewWorkItemStatusInProgress:"work.newWorkItem.status.inProgress",workNewWorkItemStatusBlocked:"work.newWorkItem.status.blocked",workNewWorkItemStatusCompleted:"work.newWorkItem.status.completed",workNewWorkItemStatusCancelled:"work.newWorkItem.status.cancelled",workNewTaskTitle:"work.newTask.title",workNewTaskTitleLabel:"work.newTask.titleLabel",workNewTaskSummaryLabel:"work.newTask.summaryLabel",workNewTaskStatusLabel:"work.newTask.statusLabel",workNewTaskParentTaskLabel:"work.newTask.parentTaskLabel",workNewTaskNoParentTask:"work.newTask.noParentTask",workNewTaskAssigneeLabel:"work.newTask.assigneeLabel",workNewTaskAssigneePlaceholder:"work.newTask.assigneePlaceholder",workNewTaskPriorityLabel:"work.newTask.priorityLabel",workNewTaskNoPriority:"work.newTask.noPriority",workNewTaskAcceptanceCriteriaLabel:"work.newTask.acceptanceCriteriaLabel",workNewTaskAcceptanceCriteriaPlaceholder:"work.newTask.acceptanceCriteriaPlaceholder",workNewTaskTitlePlaceholder:"work.newTask.titlePlaceholder",workNewTaskSummaryPlaceholder:"work.newTask.summaryPlaceholder",workNewTaskCancelButton:"work.newTask.cancelButton",workNewTaskCloseLabel:"work.newTask.closeLabel",workNewTaskSubmitLabel:"work.newTask.submitLabel",workNewTaskSubmittingLabel:"work.newTask.submittingLabel",workNewTaskCreateError:"work.newTask.createError",workNewTaskStatusDraft:"work.newTask.status.draft",workNewTaskStatusPendingApproval:"work.newTask.status.pendingApproval",workNewTaskStatusInProgress:"work.newTask.status.inProgress",workNewTaskStatusBlocked:"work.newTask.status.blocked",workNewTaskStatusCompleted:"work.newTask.status.completed",workNewTaskStatusApproved:"work.newTask.status.approved",workNewTaskPriorityUrgent:"work.newTask.priority.urgent",workNewTaskPriorityHigh:"work.newTask.priority.high",workNewTaskPriorityMedium:"work.newTask.priority.medium",workNewTaskPriorityLow:"work.newTask.priority.low",workNewProjectTitle:"work.newProject.title",workNewProjectTitleLabel:"work.newProject.titleLabel",workNewProjectSummaryLabel:"work.newProject.summaryLabel",workNewProjectStatusLabel:"work.newProject.statusLabel",workNewProjectTitlePlaceholder:"work.newProject.titlePlaceholder",workNewProjectSummaryPlaceholder:"work.newProject.summaryPlaceholder",workNewProjectCancelButton:"work.newProject.cancelButton",workNewProjectCloseLabel:"work.newProject.closeLabel",workNewProjectSubmitLabel:"work.newProject.submitLabel",workNewProjectSubmitBusyLabel:"work.newProject.submitBusyLabel",workNewProjectCreateError:"work.newProject.createError",workCrudErrorTitleRequired:"work.crud.error.titleRequired",workCrudErrorInvalidInput:"work.crud.error.invalidInput",workCrudErrorProjectIdRequired:"work.crud.error.projectIdRequired",workCrudErrorWorkItemIdRequired:"work.crud.error.workItemIdRequired",workCrudErrorTaskIdRequired:"work.crud.error.taskIdRequired",workCrudErrorProjectNotFound:"work.crud.error.projectNotFound",workCrudErrorWorkItemNotFound:"work.crud.error.workItemNotFound",workCrudErrorTaskNotFound:"work.crud.error.taskNotFound",workCrudErrorMustBeStringWhenProvided:"work.crud.error.mustBeStringWhenProvided",workCrudErrorMetadataObjectRequired:"work.crud.error.metadataObjectRequired",workCrudErrorFieldStringOrNull:"work.crud.error.fieldStringOrNull",workCrudErrorFieldStringArray:"work.crud.error.fieldStringArray",workCrudErrorMustBeOneOf:"work.crud.error.mustBeOneOf",workItemLoadingTitle:"work.item.loadingTitle",workItemRelatedWorkItemTitle:"work.item.relatedWorkItemTitle",chatNewChatDraftSidePanelTitle:"chat.newChatDraft.sidePanelTitle",chatNewChatDraftGeneratedTitle:"chat.newChatDraft.generatedTitle",chatNewChatDraftGeneratedTitleWithIndex:"chat.newChatDraft.generatedTitleWithIndex",chatComposerErrorChooseTwoParallelChats:"chat.composer.error.chooseTwoParallelChats",chatComposerErrorNoActiveParallelThread:"chat.composer.error.noActiveParallelThread",chatComposerErrorNoParallelChatForSending:"chat.composer.error.noParallelChatForSending",chatComposerErrorNoChatForSending:"chat.composer.error.noChatForSending",chatComposerErrorRelayFailedForChannel:"chat.composer.error.relayFailedForChannel",chatComposerErrorRelayCompareFailed:"chat.composer.error.relayCompareFailed",chatParallelRelayCommandCheckLabel:"chat.parallelRelay.command.check.label",chatParallelRelayCommandCheckShortLabel:"chat.parallelRelay.command.check.shortLabel",chatParallelRelayCommandCheckDescription:"chat.parallelRelay.command.check.description",chatParallelRelayCommandAdoptLabel:"chat.parallelRelay.command.adopt.label",chatParallelRelayCommandAdoptShortLabel:"chat.parallelRelay.command.adopt.shortLabel",chatParallelRelayCommandAdoptDescription:"chat.parallelRelay.command.adopt.description",chatParallelRelayCommandDebateLabel:"chat.parallelRelay.command.debate.label",chatParallelRelayCommandDebateShortLabel:"chat.parallelRelay.command.debate.shortLabel",chatParallelRelayCommandDebateDescription:"chat.parallelRelay.command.debate.description",chatParallelRelayCommandImproveLabel:"chat.parallelRelay.command.improve.label",chatParallelRelayCommandImproveShortLabel:"chat.parallelRelay.command.improve.shortLabel",chatParallelRelayCommandImproveDescription:"chat.parallelRelay.command.improve.description",chatParallelRelayCommandCounterLabel:"chat.parallelRelay.command.counter.label",chatParallelRelayCommandCounterShortLabel:"chat.parallelRelay.command.counter.shortLabel",chatParallelRelayCommandCounterDescription:"chat.parallelRelay.command.counter.description",chatParallelRelayCommandSynthesizeLabel:"chat.parallelRelay.command.synthesize.label",chatParallelRelayCommandSynthesizeShortLabel:"chat.parallelRelay.command.synthesize.shortLabel",chatParallelRelayCommandSynthesizeDescription:"chat.parallelRelay.command.synthesize.description",chatParallelRelayTargetNoChats:"chat.parallelRelay.target.noChats",chatParallelRelayTargetPair:"chat.parallelRelay.target.pair",chatParallelRelayTargetMany:"chat.parallelRelay.target.many",chatParallelRelayOutgoingNote:"chat.parallelRelay.note.outgoing",chatParallelRelayIncomingNote:"chat.parallelRelay.note.incoming",chatParallelRelayPromptHeader:"chat.parallelRelay.prompt.header",chatParallelRelayPromptSourceHeader:"chat.parallelRelay.prompt.sourceHeader",chatParallelRelayPromptSourceLabel:"chat.parallelRelay.prompt.sourceLabel",chatParallelRelayPromptCheckInstructionOne:"chat.parallelRelay.prompt.check.instructionOne",chatParallelRelayPromptCheckInstructionTwo:"chat.parallelRelay.prompt.check.instructionTwo",chatParallelRelayPromptAdoptInstructionOne:"chat.parallelRelay.prompt.adopt.instructionOne",chatParallelRelayPromptAdoptInstructionTwo:"chat.parallelRelay.prompt.adopt.instructionTwo",chatParallelRelayPromptDebateInstructionOne:"chat.parallelRelay.prompt.debate.instructionOne",chatParallelRelayPromptDebateInstructionTwo:"chat.parallelRelay.prompt.debate.instructionTwo",chatParallelRelayPromptImproveInstructionOne:"chat.parallelRelay.prompt.improve.instructionOne",chatParallelRelayPromptImproveInstructionTwo:"chat.parallelRelay.prompt.improve.instructionTwo",chatParallelRelayPromptCounterInstructionOne:"chat.parallelRelay.prompt.counter.instructionOne",chatParallelRelayPromptCounterInstructionTwo:"chat.parallelRelay.prompt.counter.instructionTwo",chatParallelRelayPromptSynthesizeInstructionOne:"chat.parallelRelay.prompt.synthesize.instructionOne",chatParallelRelayPromptSynthesizeInstructionTwo:"chat.parallelRelay.prompt.synthesize.instructionTwo",chatComposerErrorSendFailed:"chat.composer.error.sendFailed",chatComposerErrorRetryFailed:"chat.composer.error.retryFailed",chatComposerErrorStopFailed:"chat.composer.error.stopFailed",chatComposerErrorActiveChatNotInParallelGroup:"chat.composer.error.activeChatNotInParallelGroup",chatComposerErrorSourceChatNotInParallelGroup:"chat.composer.error.sourceChatNotInParallelGroup",chatComposerErrorParallelBranchOutsideGroup:"chat.composer.error.parallelBranchOutsideGroup",chatComposerErrorNoParallelRelayTargets:"chat.composer.error.noParallelRelayTargets",chatComposerErrorMessageNotFound:"chat.composer.error.messageNotFound",chatComposerErrorRetryInvalidSender:"chat.composer.error.retryInvalidSender",chatComposerErrorRetryInProgress:"chat.composer.error.retryInProgress",chatComposerErrorRetryNotLatest:"chat.composer.error.retryNotLatest",chatComposerErrorRetryNotAvailable:"chat.composer.error.retryNotAvailable",chatGovernanceErrorUpdateApproval:"chat.governance.error.updateApproval",chatGovernanceErrorSubmitChoiceResponse:"chat.governance.error.submitChoiceResponse",chatGovernanceErrorRecordOperatorAction:"chat.governance.error.recordOperatorAction",chatParticipantsErrorUpdateParticipant:"chat.participants.error.updateParticipant",chatParticipantsErrorNoFields:"chat.participants.error.noFields",chatParticipantsErrorNotFound:"chat.participants.error.notFound",chatParticipantsErrorTemporaryOnly:"chat.participants.error.temporaryOnly",chatParticipantsErrorNameRequired:"chat.participants.error.nameRequired",chatCatAssignmentCreatedAssignHint:"chat.catAssignment.createdAssignHint",chatCatAssignmentErrorCreateCat:"chat.catAssignment.error.createCat",chatCatAssignmentErrorAssignCat:"chat.catAssignment.error.assignCat",chatCatAssignmentErrorRemoveCat:"chat.catAssignment.error.removeCat",chatCatAssignmentErrorChannelNotFound:"chat.catAssignment.error.channelNotFound",chatCatAssignmentErrorAssignmentNotFound:"chat.catAssignment.error.assignmentNotFound",chatCatAssignmentErrorDirectRecipientOnly:"chat.catAssignment.error.directRecipientOnly",chatCatAssignmentErrorParticipantLimitReached:"chat.catAssignment.error.participantLimitReached",chatCompanionTabStatus:"chat.companion.tab.status",chatCompanionTabSources:"chat.companion.tab.sources",chatCompanionTabMemory:"chat.companion.tab.memory",chatCompanionTabBehavior:"chat.companion.tab.behavior",chatCompanionTabInspector:"chat.companion.tab.inspector",chatCompanionWorkspaceLoadError:"chat.companion.workspace.loadError",sharedExecutionTargetSaveNewChatDefaultsError:"shared.executionTarget.saveNewChatDefaultsError",sharedExecutionTargetSaveChatReplySettingsError:"shared.executionTarget.saveChatReplySettingsError",sharedChannelContinuityStartFreshError:"shared.channelContinuity.startFreshError",sharedSettingsCatsMemorySaveError:"shared.settingsCatsMemory.saveError",sharedSettingsCatsMemoryDeleteError:"shared.settingsCatsMemory.deleteError",sharedSettingsCatsMemoryContentRequired:"shared.settingsCatsMemory.contentRequired",sharedSettingsCatsMemoryInvalidCategory:"shared.settingsCatsMemory.invalidCategory",sharedSettingsCatsMemoryNotFound:"shared.settingsCatsMemory.notFound",sharedOperatorLoopLoadError:"shared.operatorLoop.loadError",sharedFolderBrowserLoadError:"shared.folderBrowser.loadError",sharedOrchestratorFallbackName:"shared.orchestrator.fallbackName",sharedDraftHeaderChangeCoverPhoto:"shared.draftHeader.changeCoverPhoto",sharedDraftHeaderAddCoverPhoto:"shared.draftHeader.addCoverPhoto",sharedDraftHeaderChangeAvatar:"shared.draftHeader.changeAvatar",sharedDraftHeaderAddAvatar:"shared.draftHeader.addAvatar",chatParticipantChipCountOne:"chat.participantChip.countOne",chatParticipantChipCountMany:"chat.participantChip.countMany",chatParticipantChipDefault:"chat.participantChip.default",chatDraftParticipantCapabilityStrongAgent:"chat.draftParticipant.capability.strongAgent",chatDraftParticipantCapabilityConservativeAgent:"chat.draftParticipant.capability.conservativeAgent",chatDraftParticipantReviewReasonBroadWrite:"chat.draftParticipant.reviewReason.broadWrite",chatDraftParticipantReviewReasonOutcomeDelegation:"chat.draftParticipant.reviewReason.outcomeDelegation",chatDraftParticipantReviewReasonHighApproval:"chat.draftParticipant.reviewReason.highApproval",chatDraftParticipantAutonomyNone:"chat.draftParticipant.autonomy.none",chatDraftParticipantAutonomySingleStep:"chat.draftParticipant.autonomy.singleStep",chatDraftParticipantAutonomyMilestonePlan:"chat.draftParticipant.autonomy.milestonePlan",chatDraftParticipantAutonomyOutcomeDelegation:"chat.draftParticipant.autonomy.outcomeDelegation",chatDraftParticipantToolScopeNone:"chat.draftParticipant.toolScope.none",chatDraftParticipantToolScopeReadOnly:"chat.draftParticipant.toolScope.readOnly",chatDraftParticipantToolScopeNarrowWrite:"chat.draftParticipant.toolScope.narrowWrite",chatDraftParticipantToolScopeBroadWrite:"chat.draftParticipant.toolScope.broadWrite",chatDraftParticipantApprovalThresholdLow:"chat.draftParticipant.approvalThreshold.low",chatDraftParticipantApprovalThresholdMedium:"chat.draftParticipant.approvalThreshold.medium",chatDraftParticipantApprovalThresholdHigh:"chat.draftParticipant.approvalThreshold.high",chatDraftParticipantPolicySummary:"chat.draftParticipant.policySummary",chatDraftParticipantToolGrantSummary:"chat.draftParticipant.toolGrantSummary",chatSidebarPrimaryActionNewChat:"chat.sidebar.primaryAction.newChat",chatSidebarPrimaryActionGroupChat:"chat.sidebar.primaryAction.groupChat",chatSidebarPrimaryActionParallelChat:"chat.sidebar.primaryAction.parallelChat",chatSidebarMyCatsEmptyStateLabel:"chat.sidebar.myCatsEmptyStateLabel",chatConcurrentClusterDismissActionLabel:"chat.concurrentCluster.dismissActionLabel",chatConcurrentClusterDismissActionTitle:"chat.concurrentCluster.dismissActionTitle",chatConcurrentToolLabel:"chat.concurrent.toolLabel",chatConcurrentProgressFinalizing:"chat.concurrent.progress.finalizing",chatConcurrentProgressFinishing:"chat.concurrent.progress.finishing",chatConcurrentErrorRuntimeStreamUnavailable:"chat.concurrent.error.runtimeStreamUnavailable",chatConcurrentErrorProxy:"chat.concurrent.error.proxy",chatConcurrentCopyLabeledResponseLabel:"chat.concurrent.copyLabeledResponseLabel",chatConcurrentCopyUnnamedResponseLabel:"chat.concurrent.copyUnnamedResponseLabel",chatFocusRailUnnamedResponseLabel:"chat.focusRail.unnamedResponseLabel",chatFocusRailExpandAnonymousResponseLabel:"chat.focusRail.expandAnonymousResponseLabel",chatFocusRailCollapseAnonymousResponseLabel:"chat.focusRail.collapseAnonymousResponseLabel",chatFocusRailExpandLabeledResponseLabel:"chat.focusRail.expandLabeledResponseLabel",chatFocusRailCollapseLabeledResponseLabel:"chat.focusRail.collapseLabeledResponseLabel",chatActivityFeedEyebrow:"chat.activityFeed.eyebrow",chatActivityFeedLatestUpdatesTitle:"chat.activityFeed.latestUpdatesTitle",chatActivityFeedEmptyState:"chat.activityFeed.emptyState",chatActivityFeedByActorLabel:"chat.activityFeed.byActorLabel",chatMessageChoicesCustomButton:"chat.messageChoices.customButton",chatMessageChoicesCustomPlaceholder:"chat.messageChoices.customPlaceholder",chatMessageChoicesOwnerSkippedState:"chat.messageChoices.ownerSkippedState",chatMessageChoicesOwnerRecordedState:"chat.messageChoices.ownerRecordedState",chatMessageChoicesConfirmButton:"chat.messageChoices.confirmButton",chatMessageChoicesSkipButton:"chat.messageChoices.skipButton",chatParallelFooterNavigationAriaLabel:"chat.parallelFooter.navigationAriaLabel",chatParallelFooterPrevAriaLabel:"chat.parallelFooter.prevAriaLabel",chatParallelFooterNextAriaLabel:"chat.parallelFooter.nextAriaLabel",chatParallelFooterTabsAriaLabel:"chat.parallelFooter.tabsAriaLabel",chatParallelFooterThreadLabel:"chat.parallelFooter.threadLabel",chatParallelFooterDefaultModelLabel:"chat.parallelFooter.defaultModelLabel",chatCompareCardsPrevCardAriaLabel:"chat.compareCards.prevCardAriaLabel",chatCompareCardsNextCardAriaLabel:"chat.compareCards.nextCardAriaLabel",chatCompareCardsPaginationItemAriaLabel:"chat.compareCards.paginationItemAriaLabel",chatTopBarToggleSidePanelAriaLabel:"chat.topBar.toggleSidePanelAriaLabel",chatBootLoadingAria:"chat.boot.loadingAria",chatNewChatDraftSidePanelParticipantsCatsTitle:"chat.newChatDraft.participants.catsTitle",chatNewChatDraftSidePanelParticipantsGroupTitle:"chat.newChatDraft.participants.groupTitle",chatNewChatDraftSidePanelParticipantsEmptyState:"chat.newChatDraft.participants.emptyState",chatNewChatDraftPlanMyDayChipLabel:"chat.newChatDraft.planMyDayChipLabel",chatNewChatDraftPlanMyDayPrompt:"chat.newChatDraft.planMyDayPrompt",chatNewChatDraftBrainstormNameChipLabel:"chat.newChatDraft.brainstormNameChipLabel",chatNewChatDraftBrainstormNamePrompt:"chat.newChatDraft.brainstormNamePrompt",chatNewChatDraftSummarizeLinkChipLabel:"chat.newChatDraft.summarizeLinkChipLabel",chatNewChatDraftSummarizeLinkPrompt:"chat.newChatDraft.summarizeLinkPrompt",chatNewChatDraftPomodoroChipLabel:"chat.newChatDraft.pomodoroChipLabel",chatNewChatDraftPomodoroPrompt:"chat.newChatDraft.pomodoroPrompt",chatNewChatDraftStartProjectChipLabel:"chat.newChatDraft.startProjectChipLabel",chatNewChatDraftStartProjectPrompt:"chat.newChatDraft.startProjectPrompt",chatNewChatDraftSidePanelExecutionTitle:"chat.newChatDraft.execution.title",chatNewChatDraftSidePanelExecutionActionLabel:"chat.newChatDraft.execution.actionLabel",chatNewChatDraftSidePanelExecutionEmptyState:"chat.newChatDraft.execution.emptyState",chatNewChatDraftSidePanelFolderTitle:"chat.newChatDraft.folder.title",chatNewChatDraftSidePanelFolderEmptyState:"chat.newChatDraft.folder.emptyState",chatNewChatDraftDefaultGreeting:"chat.newChatDraft.defaultGreeting",chatNewChatDraftGreetingNap:"chat.newChatDraft.greeting.nap",chatNewChatDraftGreetingKeyboard:"chat.newChatDraft.greeting.keyboard",chatNewChatDraftGreetingLetsGo:"chat.newChatDraft.greeting.letsGo",chatNewChatDraftGreetingStandby:"chat.newChatDraft.greeting.standby",chatNewChatDraftGreetingTaskReady:"chat.newChatDraft.greeting.taskReady",chatNewChatDraftGreetingOnDuty:"chat.newChatDraft.greeting.onDuty",chatNewChatDraftComposerPlaceholder:"chat.newChatDraft.composerPlaceholder",chatNewChatDraftFolderActionLabel:"chat.newChatDraft.folderActionLabel",chatNewChatDraftChooseCodespaceActionLabel:"chat.newChatDraft.chooseCodespaceActionLabel",chatNewChatDraftGroupDraftSelectionLabelSingle:"chat.newChatDraft.groupDraftSelectionLabelSingle",chatNewChatDraftGroupDraftSelectionLabelCount:"chat.newChatDraft.groupDraftSelectionLabelCount",chatNewChatDraftGroupDraftSelectionLabelWithCatsOrAssistants:"chat.newChatDraft.groupDraftSelectionLabelWithCatsOrAssistants",chatNewChatDraftGroupDraftSelectionLabelWithSettings:"chat.newChatDraft.groupDraftSelectionLabelWithSettings",chatNewChatDraftAssistantPresetAdd:"chat.newChatDraft.assistantPresetAdd",chatNewChatDraftAssistantPresetReview:"chat.newChatDraft.assistantPresetReview",chatNewChatDraftAssistantPresetAdded:"chat.newChatDraft.assistantPresetAdded",chatNewChatDraftTemporaryParticipantCancel:"chat.newChatDraft.temporaryParticipantCancel",chatNewChatDraftTemporaryParticipantNameLabel:"chat.newChatDraft.temporaryParticipantNameLabel",chatNewChatDraftTemporaryParticipantNamePlaceholder:"chat.newChatDraft.temporaryParticipantNamePlaceholder",chatNewChatDraftTemporaryParticipantNameHint:"chat.newChatDraft.temporaryParticipantNameHint",chatNewChatDraftTemporaryParticipantSaveName:"chat.newChatDraft.temporaryParticipantSaveName",chatNewChatDraftTemporaryParticipantRename:"chat.newChatDraft.temporaryParticipantRename",chatNewChatDraftTemporaryParticipantRemove:"chat.newChatDraft.temporaryParticipantRemove",chatNewChatDraftTemporaryParticipantRoleHintLabel:"chat.newChatDraft.temporaryParticipantRoleHintLabel",chatNewChatDraftTemporaryParticipantRoleHintPlaceholder:"chat.newChatDraft.temporaryParticipantRoleHintPlaceholder",chatNewChatDraftTemporaryParticipantSubmit:"chat.newChatDraft.temporaryParticipantSubmit",chatNewChatDraftTemporaryParticipantOpenForm:"chat.newChatDraft.temporaryParticipantOpenForm",chatSidePanelTemporaryParticipantLabel:"chat.sidePanel.temporaryParticipantLabel",chatSidePanelRoleLabel:"chat.sidePanel.roleLabel",chatSidePanelAiServiceLabel:"chat.sidePanel.aiServiceLabel",chatSidePanelConnectionLabel:"chat.sidePanel.connectionLabel",chatApprovalQueueEyebrow:"chat.approvalQueue.eyebrow",chatApprovalQueuePendingTitle:"chat.approvalQueue.pendingTitle",chatApprovalQueueEmptyState:"chat.approvalQueue.emptyState",chatApprovalQueueDefaultRequester:"chat.approvalQueue.defaultRequester",chatApprovalQueueDefaultSummary:"chat.approvalQueue.defaultSummary",chatApprovalQueueRequestedByPrefix:"chat.approvalQueue.requestedByPrefix",chatSidePanelStartFresh:"chat.sidePanel.startFresh",chatSidePanelStartingFreshBusy:"chat.sidePanel.startingFreshBusy",chatSidePanelStartFreshHint:"chat.sidePanel.startFreshHint",chatSidePanelRunStatusTitle:"chat.sidePanel.runStatusTitle",chatSidePanelRunStatusUnavailableTitle:"chat.sidePanel.runStatusUnavailableTitle",chatSidePanelLoadingTitle:"chat.sidePanel.loadingTitle",chatSidePanelOperatorLoadingState:"chat.sidePanel.operatorLoadingState",chatCatStatusCompactActiveLabel:"chat.catStatus.compact.activeLabel",chatCatStatusCompactNeedAttentionLabel:"chat.catStatus.compact.needAttentionLabel",chatCatStatusCompactSleepingLabel:"chat.catStatus.compact.sleepingLabel",chatCatStatusActiveLabel:"chat.catStatus.activeLabel",chatCatStatusBlockedLabel:"chat.catStatus.blockedLabel",chatCatStatusWaitingForReviewLabel:"chat.catStatus.waitingForReviewLabel",chatCatStatusErrorLabel:"chat.catStatus.errorLabel",chatCatStatusWakingUpLabel:"chat.catStatus.wakingUpLabel",chatCatStatusSleepingLabel:"chat.catStatus.sleepingLabel",chatCatStatusIdleLabel:"chat.catStatus.idleLabel",chatLifecycleAwakeLabel:"chat.lifecycle.awakeLabel",chatLifecycleWakingUpLabel:"chat.lifecycle.wakingUpLabel",chatLifecycleNeedsAttentionLabel:"chat.lifecycle.needsAttentionLabel",chatLifecycleSleepingLabel:"chat.lifecycle.sleepingLabel",chatCompanionWorkspaceRetryLabel:"chat.companionWorkspace.retryLabel",chatCompanionWorkspaceNoSelectionState:"chat.companionWorkspace.noSelectionState",chatCompanionWorkspaceSubscriptionDisabledTooltip:"chat.companionWorkspace.subscriptionDisabledTooltip",chatCompanionWorkspaceSubscriptionLabel:"chat.companionWorkspace.subscriptionLabel",chatCompanionWorkspaceShareDisabledTooltip:"chat.companionWorkspace.shareDisabledTooltip",chatCompanionWorkspaceShareLabel:"chat.companionWorkspace.shareLabel",chatCompanionWorkspaceSidePanelTitle:"chat.companionWorkspace.sidePanelTitle",chatCompanionFeedTabPosts:"chat.companionFeedTabPosts",chatCompanionFeedTabPhotos:"chat.companionFeedTabPhotos",chatCompanionFeedTabVideos:"chat.companionFeedTabVideos",chatCompanionFeedTabMusic:"chat.companionFeedTabMusic",chatCompanionFeedTabFiles:"chat.companionFeedTabFiles",chatCompanionFeedTabActivity:"chat.companionFeedTabActivity",chatCompanionFeedNavAriaLabel:"chat.companionFeedNavAriaLabel",chatCompanionFeedPostEmptyState:"chat.companionFeedPostEmptyState",chatCompanionFeedMediaEmptyState:"chat.companionFeedMediaEmptyState",chatCompanionFeedMediaItemDefaultLabel:"chat.companionFeedMediaItemDefaultLabel",chatCompanionFeedMediaItemsLabel:"chat.companionFeedMediaItemsLabel",chatCompanionFeedSurfacePhotoLabel:"chat.companionFeedSurfacePhotoLabel",chatCompanionFeedSurfaceVideoLabel:"chat.companionFeedSurfaceVideoLabel",chatCompanionFeedSurfaceMusicLabel:"chat.companionFeedSurfaceMusicLabel",chatCompanionFeedSurfaceFileLabel:"chat.companionFeedSurfaceFileLabel",chatCompanionFeedActivityEmptyState:"chat.companionFeedActivityEmptyState",chatCompanionFeedActivityHiddenState:"chat.companionFeedActivityHiddenState",chatCompanionMessageReferenceListAria:"chat.companionMessageReferenceListAria",chatCompanionMessageReferenceUnsupportedVersionLabel:"chat.companionMessageReferenceUnsupportedVersionLabel",chatCompanionMessageReferenceMalformedLabel:"chat.companionMessageReferenceMalformedLabel",chatCompanionMessageReferenceInvalidWrongScheme:"chat.companionMessageReference.invalidWrongScheme",chatCompanionMessageReferenceInvalidWrongHost:"chat.companionMessageReference.invalidWrongHost",chatCompanionMessageReferenceInvalidMalformedPercentEncoding:"chat.companionMessageReference.invalidMalformedPercentEncoding",chatCompanionMessageReferenceInvalidBadSegmentCount:"chat.companionMessageReference.invalidBadSegmentCount",chatCompanionMessageReferenceInvalidEmptyPathSegment:"chat.companionMessageReference.invalidEmptyPathSegment",chatCompanionMessageReferenceInvalidUnknownTargetType:"chat.companionMessageReference.invalidUnknownTargetType",chatCompanionMessageReferenceLoadingLabel:"chat.companionMessageReferenceLoadingLabel",chatCompanionMessageReferenceUnavailableLabel:"chat.companionMessageReferenceUnavailableLabel",chatCompanionMessageReferenceOpenInCompanionAction:"chat.companionMessageReferenceOpenInCompanionAction",chatCompanionModeToggleDirectLaneAriaLabel:"chat.companionModeToggleDirectLaneAriaLabel",chatCompanionModeToggleChatViewAriaLabel:"chat.companionModeToggleChatViewAriaLabel",chatCompanionModeToggleCompanionViewAriaLabel:"chat.companionModeToggleCompanionViewAriaLabel",chatCompanionResourcesLoadingState:"chat.companionResourcesLoadingState",chatCompanionResourcesSectionTitle:"chat.companionResourcesSectionTitle",chatCompanionResourcesActionShowForm:"chat.companionResourcesActionShowForm",chatCompanionResourcesActionCancel:"chat.companionResourcesActionCancel",chatCompanionResourcesActionAddResource:"chat.companionResourcesActionAddResource",chatCompanionResourcesActionBusy:"chat.companionResourcesActionBusy",chatCompanionResourcesFormTitlePlaceholder:"chat.companionResourcesFormTitlePlaceholder",chatCompanionResourcesFormNotePlaceholder:"chat.companionResourcesFormNotePlaceholder",chatCompanionResourcesFormContentPlaceholder:"chat.companionResourcesFormContentPlaceholder",chatCompanionResourcesEmptyState:"chat.companionResourcesEmptyState",chatCompanionResourcesSourceKindNote:"chat.companionResourcesSourceKindNote",chatCompanionResourcesSourceKindConversationLog:"chat.companionResourcesSourceKindConversationLog",chatCompanionResourcesSourceKindArticle:"chat.companionResourcesSourceKindArticle",chatCompanionResourcesSourceKindImage:"chat.companionResourcesSourceKindImage",chatCompanionResourcesSourceKindVideo:"chat.companionResourcesSourceKindVideo",chatCompanionResourcesSourceKindAudio:"chat.companionResourcesSourceKindAudio",chatCompanionResourcesSourceKindPath:"chat.companionResourcesSourceKindPath",chatCompanionResourcesSourceKindUnknown:"chat.companionResourcesSourceKindUnknown",chatCompanionResourcesUntitledSource:"chat.companionResourcesUntitledSource",chatCompanionResourcesActionRemove:"chat.companionResourcesActionRemove",chatCompanionSettingsLoadingState:"chat.companionSettingsLoadingState",chatCompanionSettingsResponseProfileTitle:"chat.companionSettingsResponseProfileTitle",chatCompanionSettingsExpressionModeLabel:"chat.companionSettingsExpressionModeLabel",chatCompanionSettingsExpressionModeAnimalistic:"chat.companionSettingsExpressionModeAnimalistic",chatCompanionSettingsExpressionModeAnthropomorphic:"chat.companionSettingsExpressionModeAnthropomorphic",chatCompanionSettingsExpressionModeMixed:"chat.companionSettingsExpressionModeMixed",chatCompanionSettingsOutputModeLabel:"chat.companionSettingsOutputModeLabel",chatCompanionSettingsOutputModeText:"chat.companionSettingsOutputModeText",chatCompanionSettingsOutputModeAudioClip:"chat.companionSettingsOutputModeAudioClip",chatCompanionSettingsOutputModeTts:"chat.companionSettingsOutputModeTts",chatCompanionSettingsOutputModeMixed:"chat.companionSettingsOutputModeMixed",chatCompanionSettingsResponseNotesLabel:"chat.companionSettingsResponseNotesLabel",chatCompanionSettingsResponseNotesPlaceholder:"chat.companionSettingsResponseNotesPlaceholder",chatCompanionSettingsResponseNotesSave:"chat.companionSettingsResponseNotesSave",chatCompanionSettingsResponseNotesSaving:"chat.companionSettingsResponseNotesSaving",chatCompanionSettingsTelegramBindingTitle:"chat.companionSettingsTelegramBindingTitle",chatCompanionSettingsTelegramBindingBotLabel:"chat.companionSettingsTelegramBindingBotLabel",chatCompanionSettingsTelegramBindingModeLabel:"chat.companionSettingsTelegramBindingModeLabel",chatCompanionSettingsTelegramBindingConnected:"chat.companionSettingsTelegramBindingConnected",chatCompanionSettingsTelegramBindingDefaultMode:"chat.companionSettingsTelegramBindingDefaultMode",chatCompanionSettingsTelegramBindingManageHint:"chat.companionSettingsTelegramBindingManageHint",chatCompanionSettingsTelegramBindingSettingsLabel:"chat.companionSettingsTelegramBindingSettingsLabel",chatCompanionSettingsTelegramBindingSuffix:"chat.companionSettingsTelegramBindingSuffix",chatCompanionSettingsNoTelegramBindingState:"chat.companionSettingsNoTelegramBindingState",chatCompanionOverviewLoadingState:"chat.companionOverviewLoadingState",chatCompanionOverviewPresenceTitle:"chat.companionOverviewPresenceTitle",chatCompanionOverviewPresenceWakeButton:"chat.companionOverviewPresenceWakeButton",chatCompanionOverviewPresenceSleepButton:"chat.companionOverviewPresenceSleepButton",chatCompanionOverviewSummaryTitle:"chat.companionOverviewSummaryTitle",chatCompanionOverviewSummaryResourceLabel:"chat.companionOverviewSummaryResourceLabel",chatCompanionOverviewSummaryCreationLabel:"chat.companionOverviewSummaryCreationLabel",chatCompanionOverviewSummaryMemoryLabel:"chat.companionOverviewSummaryMemoryLabel",chatCompanionOverviewRecentMemoriesTitle:"chat.companionOverviewRecentMemoriesTitle",chatCompanionOverviewEmptyState:"chat.companionOverviewEmptyState",chatCompanionMemoryLoadingState:"chat.companionMemoryLoadingState",chatCompanionMemorySectionTitle:"chat.companionMemorySectionTitle",chatCompanionMemoryActionAdd:"chat.companionMemoryActionAdd",chatCompanionMemoryActionCancel:"chat.companionMemoryActionCancel",chatCompanionMemoryFormPlaceholder:"chat.companionMemoryFormPlaceholder",chatCompanionMemoryActionBusy:"chat.companionMemoryActionBusy",chatCompanionMemoryActionAddSubmit:"chat.companionMemoryActionAddSubmit",chatCompanionMemoryFilterAll:"chat.companionMemoryFilterAll",chatCompanionMemoryCategoryIdentity:"chat.companionMemoryCategoryIdentity",chatCompanionMemoryCategoryPreference:"chat.companionMemoryCategoryPreference",chatCompanionMemoryCategoryRelationship:"chat.companionMemoryCategoryRelationship",chatCompanionMemoryCategoryFact:"chat.companionMemoryCategoryFact",chatCompanionMemoryCategoryEvent:"chat.companionMemoryCategoryEvent",chatCompanionMemoryCategoryOwnerNote:"chat.companionMemoryCategoryOwnerNote",chatCompanionMemoryEmptyState:"chat.companionMemoryEmptyState",chatCompanionMemoryEmptyFilterState:"chat.companionMemoryEmptyFilterState",chatCompanionMemoryActionRemove:"chat.companionMemoryActionRemove",chatCompanionMessageReferenceAvailabilityLivePreview:"chat.companionMessageReferenceAvailabilityLivePreview",chatCompanionMessageReferenceAvailabilityMissing:"chat.companionMessageReferenceAvailabilityMissing",chatCompanionMessageReferenceAvailabilityDeleted:"chat.companionMessageReferenceAvailabilityDeleted",chatCompanionMessageReferenceAvailabilityInaccessible:"chat.companionMessageReferenceAvailabilityInaccessible",chatCompanionMessageReferenceMissingFallbackTitle:"chat.companionMessageReferenceMissingFallbackTitle",chatCompanionMessageReferenceDeletedFallbackTitle:"chat.companionMessageReferenceDeletedFallbackTitle",chatCompanionMessageReferenceInaccessibleFallbackTitle:"chat.companionMessageReferenceInaccessibleFallbackTitle",chatCompanionMessageReferenceInaccessibleFallbackDescription:"chat.companionMessageReferenceInaccessibleFallbackDescription",chatCompanionMessageReferenceUnknownCompanionLabel:"chat.companionMessageReferenceUnknownCompanionLabel",chatCompanionMessageReferenceUntitledPostTitle:"chat.companionMessageReferenceUntitledPostTitle",chatCompanionMessageReferenceUntitledSourceTitle:"chat.companionMessageReferenceUntitledSourceTitle",chatNewChatDraftBranchPolicyWorkspaceWorktree:"chat.newChatDraft.branchPolicyWorkspaceWorktree",chatNewChatDraftBranchPolicyWorkspaceSource:"chat.newChatDraft.branchPolicyWorkspaceSource",chatNewChatDraftBranchPolicyWorkspaceSandbox:"chat.newChatDraft.branchPolicyWorkspaceSandbox",chatNewChatDraftBranchPolicyAccessReadOnly:"chat.newChatDraft.branchPolicyAccessReadOnly",chatNewChatDraftBranchPolicyAccessFull:"chat.newChatDraft.branchPolicyAccessFull",chatNewChatDraftBranchPolicyRelinkAria:"chat.newChatDraft.branchPolicyRelinkAria",chatNewChatDraftBranchPolicyDetachAria:"chat.newChatDraft.branchPolicyDetachAria",chatNewChatDraftBranchPolicyFollowsLeadLabel:"chat.newChatDraft.branchPolicyFollowsLeadLabel",chatNewChatDraftBranchFolderRelinkAria:"chat.newChatDraft.branchFolderRelinkAria",chatNewChatDraftBranchFolderChooseAria:"chat.newChatDraft.branchFolderChooseAria",chatNewChatDraftBranchFollowsLeadLabel:"chat.newChatDraft.branchFollowsLeadLabel",chatNewChatDraftBranchPromptJumpToLeadTitle:"chat.newChatDraft.branchPromptJumpToLeadTitle",chatNewChatDraftBranchPromptJumpToLeadAria:"chat.newChatDraft.branchPromptJumpToLeadAria",chatNewChatDraftBranchAttachAria:"chat.newChatDraft.branchAttachAria",chatNewChatDraftBranchCollaborateAria:"chat.newChatDraft.branchCollaborateAria",chatNewChatDraftBranchRemoveAria:"chat.newChatDraft.branchRemoveAria",chatNewChatDraftBranchAddParallelAria:"chat.newChatDraft.branchAddParallelAria",chatNewChatDraftBranchAddCompareHint:"chat.newChatDraft.branchAddCompareHint",chatNewChatDraftBranchAttachmentOverrideError:"chat.newChatDraft.branchAttachmentOverrideError",chatNewChatDraftCollaborateAria:"chat.newChatDraft.collaborateAria",chatNewChatDraftCollaborateHint:"chat.newChatDraft.collaborateHint",chatNewChatDraftRemoveFolderAria:"chat.newChatDraft.removeFolderAria",chatNewChatDraftAttachmentRemoveAria:"chat.newChatDraft.attachmentRemoveAria",chatNewChatDraftAddPhotosAndFiles:"chat.newChatDraft.addPhotosAndFiles",chatNewChatDraftTakeScreenshot:"chat.newChatDraft.takeScreenshot",sharedScreenshotCaptureTooltipDesktopRegion:"shared.screenshotCapture.tooltipDesktopRegion",sharedScreenshotCaptureTooltipWebPicker:"shared.screenshotCapture.tooltipWebPicker",sharedScreenshotCaptureTooltipUnavailable:"shared.screenshotCapture.tooltipUnavailable",sharedScreenshotCapturePermissionRequired:"shared.screenshotCapture.permissionRequired",sharedScreenshotCapturePermissionStatusUnknown:"shared.screenshotCapture.permissionStatusUnknown",sharedScreenshotCaptureFailed:"shared.screenshotCapture.failed",sharedScreenshotCaptureFrameLoadFailed:"shared.screenshotCapture.frameLoadFailed",sharedScreenshotCaptureFrameEmpty:"shared.screenshotCapture.frameEmpty",sharedScreenshotCaptureCanvasPrepareFailed:"shared.screenshotCapture.canvasPrepareFailed",sharedScreenshotCaptureEncodeFailed:"shared.screenshotCapture.encodeFailed",sharedScreenshotCaptureDownscaleFailed:"shared.screenshotCapture.downscaleFailed",sharedScreenshotCaptureDisplayUnavailable:"shared.screenshotCapture.displayUnavailable",sharedScreenshotCaptureRegionUnsupported:"shared.screenshotCapture.regionUnsupported",sharedScreenshotCaptureNoDisplays:"shared.screenshotCapture.noDisplays",sharedScreenshotCaptureWlrootsSessionUnsupported:"shared.screenshotCapture.wlrootsSessionUnsupported",sharedScreenshotCaptureWlrootsToolsRequired:"shared.screenshotCapture.wlrootsToolsRequired",sharedScreenshotCaptureWlrootsSelectionParseFailed:"shared.screenshotCapture.wlrootsSelectionParseFailed",sharedArtifactCanvasTitle:"shared.artifactCanvas.title",sharedArtifactCanvasLoading:"shared.artifactCanvas.loading",sharedArtifactCanvasLoadFailed:"shared.artifactCanvas.loadFailed",sharedArtifactCanvasInvalidRoute:"shared.artifactCanvas.invalidRoute",sharedArtifactCanvasClose:"shared.artifactCanvas.close",sharedArtifactCanvasCollapse:"shared.artifactCanvas.collapse",sharedArtifactCanvasExpand:"shared.artifactCanvas.expand",sharedArtifactCanvasRefresh:"shared.artifactCanvas.refresh",sharedArtifactCanvasOpenExternal:"shared.artifactCanvas.openExternal",sharedArtifactCanvasResizePane:"shared.artifactCanvas.resizePane",sharedArtifactCanvasUnsupportedTitle:"shared.artifactCanvas.unsupportedTitle",sharedArtifactCanvasUnsupportedBody:"shared.artifactCanvas.unsupportedBody",sharedArtifactCanvasPolicyVersion:"shared.artifactCanvas.policyVersion",chatNewChatDraftCancelSendAria:"chat.newChatDraft.cancelSendAria",chatNewChatDraftSendAria:"chat.newChatDraft.sendAria",chatNewChatDraftSendAllChatsAria:"chat.newChatDraft.sendAllChatsAria",chatNewChatDraftStartVoiceInputAria:"chat.newChatDraft.startVoiceInputAria",chatNewChatDraftStopVoiceInputAria:"chat.newChatDraft.stopVoiceInputAria",chatAudienceRemoveParticipantAria:"chat.audience.removeParticipantAria",chatAudienceRemoveParticipantFromAudienceAria:"chat.audience.removeParticipantFromAudienceAria",sharedVoiceInputErrorNotAllowed:"shared.voiceInput.error.notAllowed",sharedVoiceInputErrorServiceNotAllowed:"shared.voiceInput.error.serviceNotAllowed",sharedVoiceInputErrorAudioCapture:"shared.voiceInput.error.audioCapture",sharedVoiceInputErrorNetwork:"shared.voiceInput.error.network",sharedVoiceInputErrorLanguageNotSupported:"shared.voiceInput.error.languageNotSupported",sharedVoiceInputErrorPermissionDenied:"shared.voiceInput.error.permissionDenied",sharedVoiceInputErrorPermissionNotDetermined:"shared.voiceInput.error.permissionNotDetermined",sharedVoiceInputErrorMicUnavailable:"shared.voiceInput.error.micUnavailable",sharedVoiceInputErrorEngineUnavailable:"shared.voiceInput.error.engineUnavailable",sharedVoiceInputErrorHelperCrashed:"shared.voiceInput.error.helperCrashed",sharedVoiceInputFailedWithKind:"shared.voiceInput.failedWithKind",sharedVoiceInputPrivacyUnknown:"shared.voiceInput.privacyUnknown",sharedVoiceInputPrivacyCloud:"shared.voiceInput.privacyCloud",chatDraftCompareCarouselAriaLabel:"chat.draftCompareCarousel.ariaLabel",chatDraftCompareCarouselPreviousBranchAria:"chat.draftCompareCarousel.previousBranchAria",chatDraftCompareCarouselNextBranchAria:"chat.draftCompareCarousel.nextBranchAria",chatDraftCompareCarouselSelectBranchAria:"chat.draftCompareCarousel.selectBranchAria",chatDraftCompareCarouselGoToBranchAria:"chat.draftCompareCarousel.goToBranchAria",chatComposerAreaAttachAria:"chat.composerArea.attachAria",chatComposerAreaPlaceholderParallelWaiting:"chat.composerArea.placeholderParallelWaiting",chatComposerAreaPlaceholderReply:"chat.composerArea.placeholderReply",chatComposerAreaScrollToLatestAria:"chat.composerArea.scrollToLatestAria",chatComposerAreaStopButtonLabel:"chat.composerArea.stopButtonLabel",chatComposerAreaSwitchSendModeLabel:"chat.composerArea.switchSendModeLabel",chatComposerAreaSendToThisChatAria:"chat.composerArea.sendToThisChatAria",chatActivityEyebrow:"chat.activityEyebrow",chatActivityLatestUpdatesHeading:"chat.activityLatestUpdatesHeading",chatActivityEmptyState:"chat.activityEmptyState",chatActivityByActor:"chat.activityByActor",chatParticipantsSectionNameLabel:"chat.participantsSectionNameLabel",chatParticipantsSectionSaveNameButton:"chat.participantsSectionSaveNameButton",chatParticipantsSectionCancelButton:"chat.participantsSectionCancelButton",chatParticipantsSectionRenameButton:"chat.participantsSectionRenameButton",chatParticipantsSectionNoParticipants:"chat.participantsSectionNoParticipants",chatParticipantsSectionChooseCatsButton:"chat.participantsSectionChooseCatsButton",chatTranscriptMessageCheckWithOthersLabel:"chat.transcriptMessageCheckWithOthersLabel",chatTranscriptMessageSynthesizeWithOthersLabel:"chat.transcriptMessageSynthesizeWithOthersLabel",chatTranscriptMessageImproveWithOthersLabel:"chat.transcriptMessageImproveWithOthersLabel",chatTranscriptMessageAdoptWithOthersLabel:"chat.transcriptMessageAdoptWithOthersLabel",chatTranscriptMessageCounterWithOthersLabel:"chat.transcriptMessageCounterWithOthersLabel",chatTranscriptMessageDebateWithOthersLabel:"chat.transcriptMessageDebateWithOthersLabel",chatTranscriptMessageCopyLabel:"chat.transcriptMessageCopyLabel",chatTranscriptMessageRetryResponseLabel:"chat.transcriptMessageRetryResponseLabel",chatTranscriptMessageRelayToOthersLabel:"chat.transcriptMessageRelayToOthersLabel",chatTranscriptMessageFailedStatusLabel:"chat.transcriptMessageFailedStatusLabel",chatProductIntentAckUnsupportedDirectAudience:"chat.productIntent.ack.unsupportedDirectAudience",chatProductIntentAckUnsupportedContext:"chat.productIntent.ack.unsupportedContext",chatProductIntentAckChatActive:"chat.productIntent.ack.chatActive",chatProductIntentAckWorkHumanGate:"chat.productIntent.ack.workHumanGate",chatProductIntentAckWorkStrongAnchor:"chat.productIntent.ack.workStrongAnchor",chatProductIntentAckWorkClarify:"chat.productIntent.ack.workClarify",chatProductIntentAckCodeHumanGate:"chat.productIntent.ack.codeHumanGate",chatProductIntentAckCodeStrongAnchor:"chat.productIntent.ack.codeStrongAnchor",chatProductIntentAckCodeClarify:"chat.productIntent.ack.codeClarify",chatProductIntentHumanGateDraftSummaryFallback:"chat.productIntent.humanGate.draftSummaryFallback",chatProductIntentHumanGateContinueClarifying:"chat.productIntent.humanGate.continueClarifying",chatProductIntentHumanGateOpenWorkItems:"chat.productIntent.humanGate.openWorkItems",chatProductIntentHumanGateSwitchCat:"chat.productIntent.humanGate.switchCat",chatProductIntentHumanGateQuestion:"chat.productIntent.humanGate.question",chatProductIntentDraftTitleWork:"chat.productIntent.draft.title.work",chatProductIntentDraftTitleCode:"chat.productIntent.draft.title.code",chatProductIntentDraftSummary:"chat.productIntent.draft.summary",chatProductIntentDraftGoalFallback:"chat.productIntent.draft.goalFallback",chatProductIntentDraftSuccessCriteria:"chat.productIntent.draft.successCriteria",chatProductIntentDraftOutOfScope:"chat.productIntent.draft.outOfScope",chatProductIntentDraftOpenQuestion:"chat.productIntent.draft.openQuestion",chatImplicitProductIntentSuggestionWork:"chat.implicitProductIntent.suggestion.work",chatImplicitProductIntentSuggestionCode:"chat.implicitProductIntent.suggestion.code",chatImplicitProductIntentQuestion:"chat.implicitProductIntent.question",chatImplicitProductIntentConfirmWork:"chat.implicitProductIntent.confirm.work",chatImplicitProductIntentConfirmCode:"chat.implicitProductIntent.confirm.code",chatImplicitProductIntentDecline:"chat.implicitProductIntent.decline",chatImplicitProductIntentConfirmedWork:"chat.implicitProductIntent.confirmed.work",chatImplicitProductIntentConfirmedCode:"chat.implicitProductIntent.confirmed.code",chatImplicitProductIntentDeclined:"chat.implicitProductIntent.declined",chatImplicitProductIntentExpired:"chat.implicitProductIntent.expired",sharedAddCatPanelTitle:"shared.addCatPanelTitle",sharedAddCatPanelClose:"shared.addCatPanelClose",sharedAddCatPanelChooseExisting:"shared.addCatPanelChooseExisting",sharedAddCatPanelCreateNew:"shared.addCatPanelCreateNew",sharedAddCatPanelAdding:"shared.addCatPanelAdding",sharedAddCatPanelRemoving:"shared.addCatPanelRemoving",sharedAddCatPanelRemove:"shared.addCatPanelRemove",sharedAddCatPanelAdd:"shared.addCatPanelAdd",sharedAddCatPanelNoOtherCats:"shared.addCatPanelNoOtherCats",sharedAddCatPanelAllCatsInChat:"shared.addCatPanelAllCatsInChat",sharedAddCatPanelNameLabel:"shared.addCatPanelNameLabel",sharedAddCatPanelNamePlaceholder:"shared.addCatPanelNamePlaceholder",sharedAddCatPanelSaving:"shared.addCatPanelSaving",sharedAddCatPanelCreateAndAdd:"shared.addCatPanelCreateAndAdd",sharedAddCatPanelCreateAndAddToChat:"shared.addCatPanelCreateAndAddToChat",telegramCommandStartDescription:"telegram.command.start.description",telegramCommandHelpDescription:"telegram.command.help.description",telegramCommandCommandsDescription:"telegram.command.commands.description",telegramCommandStatusDescription:"telegram.command.status.description",telegramCommandOpenDescription:"telegram.command.open.description",telegramCommandModeDescription:"telegram.command.mode.description",telegramCommandChatDescription:"telegram.command.chat.description",telegramCommandWorkDescription:"telegram.command.work.description",telegramCommandCodeDescription:"telegram.command.code.description",telegramCommandHelpText:"telegram.command.help.text",telegramCommandModeCompanion:"telegram.command.mode.companion",telegramCommandModeAgent:"telegram.command.mode.agent",telegramCommandStartGreetingBound:"telegram.command.start.greetingBound",telegramCommandStartGreetingUnbound:"telegram.command.start.greetingUnbound",telegramCommandStatusBotLine:"telegram.command.status.botLine",telegramCommandStatusLinkedCatLine:"telegram.command.status.linkedCatLine",telegramCommandStatusModeLine:"telegram.command.status.modeLine",telegramCommandStatusInboundLine:"telegram.command.status.inboundLine",telegramCommandStatusChatLine:"telegram.command.status.chatLine",telegramCommandStatusConnectedLine:"telegram.command.status.connectedLine",telegramCommandOpenReply:"telegram.command.open.reply",telegramCommandModeNotConfigurable:"telegram.command.mode.notConfigurable",telegramCommandModeCurrent:"telegram.command.mode.current",telegramCommandModeUnknown:"telegram.command.mode.unknown",telegramCommandModeSwitchUnavailable:"telegram.command.mode.switchUnavailable",telegramCommandModeSwitched:"telegram.command.mode.switched",telegramCommandUnknownCommand:"telegram.command.unknownCommand",sharedOperatorNoTimestamp:"shared.operator.noTimestamp",sharedOperatorRunStatusRunning:"shared.operator.runStatus.running",sharedOperatorRunStatusBlocked:"shared.operator.runStatus.blocked",sharedOperatorRunStatusCompleted:"shared.operator.runStatus.completed",sharedOperatorRunStatusFailed:"shared.operator.runStatus.failed",sharedOperatorRunStatusCancelled:"shared.operator.runStatus.cancelled",sharedOperatorRunStatusQueued:"shared.operator.runStatus.queued",sharedOperatorBranchStatusPending:"shared.operator.branchStatus.pending",sharedOperatorBranchStatusRunning:"shared.operator.branchStatus.running",sharedOperatorBranchStatusCompleted:"shared.operator.branchStatus.completed",sharedOperatorBranchStatusFailed:"shared.operator.branchStatus.failed",sharedOperatorBranchStatusBlocked:"shared.operator.branchStatus.blocked",sharedOperatorBranchStatusCancelled:"shared.operator.branchStatus.cancelled",sharedOperatorBranchStatusWaitingForConverge:"shared.operator.branchStatus.waitingForConverge",sharedOperatorCheckpointStatusCompleted:"shared.operator.checkpointStatus.completed",sharedOperatorCheckpointStatusCancelled:"shared.operator.checkpointStatus.cancelled",sharedOperatorCheckpointStatusOpen:"shared.operator.checkpointStatus.open",sharedOperatorOutcomeStatusSucceeded:"shared.operator.outcomeStatus.succeeded",sharedOperatorOutcomeStatusBlocked:"shared.operator.outcomeStatus.blocked",sharedOperatorOutcomeStatusFailed:"shared.operator.outcomeStatus.failed",sharedOperatorOutcomeStatusCancelled:"shared.operator.outcomeStatus.cancelled",sharedOperatorTraceKindApproval:"shared.operator.traceKind.approval",sharedOperatorTraceKindCheckpoint:"shared.operator.traceKind.checkpoint",sharedOperatorTraceKindDispatch:"shared.operator.traceKind.dispatch",sharedOperatorTraceKindError:"shared.operator.traceKind.error",sharedOperatorTraceKindOutcome:"shared.operator.traceKind.outcome",sharedOperatorTraceKindStatus:"shared.operator.traceKind.status",sharedOperatorTraceKindNote:"shared.operator.traceKind.note",sharedOperatorActivityLabelRecovery:"shared.operator.activity.label.recovery",sharedOperatorActivityLabelReplay:"shared.operator.activity.label.replay",sharedOperatorActivityLabelDecision:"shared.operator.activity.label.decision",sharedOperatorActivityLabelAction:"shared.operator.activity.label.action",sharedOperatorActivityLabelArtifact:"shared.operator.activity.label.artifact",sharedOperatorActivityLabelUpdate:"shared.operator.activity.label.update",sharedOperatorActivityLabelTrace:"shared.operator.activity.label.trace",sharedOperatorEyebrowInspector:"shared.operator.eyebrow.inspector",sharedOperatorRunInspectorTitle:"shared.operator.runInspector.title",sharedOperatorRunInspectorNoHistory:"shared.operator.runInspector.noHistory",sharedOperatorRunInspectorSummaryFallback:"shared.operator.runInspector.summaryFallback",sharedOperatorMetaStarted:"shared.operator.meta.started",sharedOperatorMetaUpdated:"shared.operator.meta.updated",sharedOperatorMetaStage:"shared.operator.meta.stage",sharedOperatorWorkflowStageBlocked:"shared.operator.workflowStage.blocked",sharedOperatorWorkflowStageConcurrentFanOut:"shared.operator.workflowStage.concurrentFanOut",sharedOperatorWorkflowStageContinuationHandoff:"shared.operator.workflowStage.continuationHandoff",sharedOperatorWorkflowStageConvergeReview:"shared.operator.workflowStage.convergeReview",sharedOperatorWorkflowStageDispatch:"shared.operator.workflowStage.dispatch",sharedOperatorWorkflowStageInitialDispatch:"shared.operator.workflowStage.initialDispatch",sharedOperatorWorkflowStageRuntimeError:"shared.operator.workflowStage.runtimeError",sharedOperatorWorkflowStageStartupRecovery:"shared.operator.workflowStage.startupRecovery",sharedOperatorWorkflowStageTurnCompleted:"shared.operator.workflowStage.turnCompleted",sharedOperatorMetaShape:"shared.operator.meta.shape",sharedOperatorMetaReviewRequired:"shared.operator.meta.reviewRequired",sharedOperatorMetaGuardrail:"shared.operator.meta.guardrail",sharedOperatorMetaCooldown:"shared.operator.meta.cooldown",sharedOperatorGuardMaxContinuations:"shared.operator.guard.maxContinuations",sharedOperatorGuardMaxDispatches:"shared.operator.guard.maxDispatches",sharedOperatorGuardMaxTargetVisits:"shared.operator.guard.maxTargetVisits",sharedOperatorGuardAntiPingPong:"shared.operator.guard.antiPingPong",sharedOperatorCooldownActive:"shared.operator.cooldown.active",sharedOperatorSectionTrace:"shared.operator.section.trace",sharedOperatorSectionCheckpoints:"shared.operator.section.checkpoints",sharedOperatorNoCheckpointsRecorded:"shared.operator.noCheckpointsRecorded",sharedOperatorCheckpointSummaryFallback:"shared.operator.checkpointSummaryFallback",sharedOperatorSectionBranches:"shared.operator.section.branches",sharedOperatorNoBranchesRecorded:"shared.operator.noBranchesRecorded",sharedOperatorBranchHandoff:"shared.operator.branch.handoff",sharedOperatorBranchStrategy:"shared.operator.branch.strategy",sharedOperatorBranchStrategyForkIfPossible:"shared.operator.branchStrategy.forkIfPossible",sharedOperatorBranchStrategyFreshNoParent:"shared.operator.branchStrategy.freshNoParent",sharedOperatorBranchStrategySingleTargetReview:"shared.operator.branchStrategy.singleTargetReview",sharedOperatorBranchStrategyTransplantContext:"shared.operator.branchStrategy.transplantContext",sharedOperatorBranchHandoffExplicitMention:"shared.operator.branchHandoff.explicitMention",sharedOperatorBranchHandoffOperatorReroute:"shared.operator.branchHandoff.operatorReroute",sharedOperatorBranchHandoffRoomDefault:"shared.operator.branchHandoff.roomDefault",sharedOperatorBranchHandoffRoomEntry:"shared.operator.branchHandoff.roomEntry",sharedOperatorBranchHandoffRuntimeRetry:"shared.operator.branchHandoff.runtimeRetry",sharedOperatorBranchHandoffWorkflowContinuation:"shared.operator.branchHandoff.workflowContinuation",sharedOperatorBranchFromCheckpoint:"shared.operator.branch.fromCheckpoint",sharedOperatorBranchNoLineage:"shared.operator.branch.noLineage",sharedOperatorSectionOutcomes:"shared.operator.section.outcomes",sharedOperatorNoOutcomesRecorded:"shared.operator.noOutcomesRecorded",sharedOperatorOutcomeSummaryFallback:"shared.operator.outcomeSummaryFallback",sharedOperatorEyebrowProgress:"shared.operator.eyebrow.progress",sharedOperatorRunStatusTitle:"shared.operator.runStatus.title",sharedOperatorNoActiveRun:"shared.operator.noActiveRun",sharedOperatorProgressSummaryFallback:"shared.operator.progressSummaryFallback",sharedOperatorMetricDispatches:"shared.operator.metric.dispatches",sharedOperatorMetricContinuations:"shared.operator.metric.continuations",sharedOperatorMetricTargets:"shared.operator.metric.targets",sharedOperatorApprovalPendingSingular:"shared.operator.approvalPending.singular",sharedOperatorApprovalPendingPlural:"shared.operator.approvalPending.plural",sharedOperatorDeliveryLabel:"shared.operator.meta.delivery",sharedOperatorGatesLabel:"shared.operator.meta.gates",sharedOperatorBudgetLabel:"shared.operator.meta.budget",sharedOperatorDeliveryModeArtifactOnly:"shared.operator.deliveryMode.artifactOnly",sharedOperatorDeliveryModeCommitOnly:"shared.operator.deliveryMode.commitOnly",sharedOperatorDeliveryModeDeployPreview:"shared.operator.deliveryMode.deployPreview",sharedOperatorDeliveryModePrWithChecks:"shared.operator.deliveryMode.prWithChecks",sharedOperatorDeliveryModePushBranch:"shared.operator.deliveryMode.pushBranch",sharedOperatorGateManualReviewRequired:"shared.operator.deliveryGate.manualReviewRequired",sharedOperatorGateOwnerApprovalRequired:"shared.operator.deliveryGate.ownerApprovalRequired",sharedOperatorGatePublishArtifactRequired:"shared.operator.deliveryGate.publishArtifactRequired",sharedOperatorBudgetLevelNormal:"shared.operator.budgetLevel.normal",sharedOperatorBudgetLevelWarning:"shared.operator.budgetLevel.warning",sharedOperatorBudgetLevelBlocked:"shared.operator.budgetLevel.blocked",sharedOperatorWorkflowShapeSequential:"shared.operator.workflowShape.sequential",sharedOperatorWorkflowShapeConcurrent:"shared.operator.workflowShape.concurrent",sharedOperatorWorkflowShapeConverge:"shared.operator.workflowShape.converge",sharedOperatorInspectRunButton:"shared.operator.inspectRunButton",sharedOperatorNoTraceRecords:"shared.operator.noTraceRecords",sharedOperatorActionRequestRetry:"shared.operator.action.requestRetry",sharedOperatorActionRetryAgain:"shared.operator.action.retryAgain",sharedOperatorActionRetrying:"shared.operator.action.retrying",sharedOperatorActionRetryRequested:"shared.operator.action.retryRequested",sharedOperatorActionAcknowledge:"shared.operator.action.acknowledge",sharedOperatorActionAcknowledged:"shared.operator.action.acknowledged",sharedOperatorActionRetryDescription:"shared.operator.action.retryDescription",sharedOperatorActionReplayStoredDispatchDescription:"shared.operator.action.replayStoredDispatchDescription",sharedOperatorActionRetryTaskDescription:"shared.operator.action.retryTaskDescription",sharedOperatorActionRetryFailedDescription:"shared.operator.action.retryFailedDescription",sharedOperatorActionAcknowledgeDescription:"shared.operator.action.acknowledgeDescription",sharedOperatorActionAcknowledgeBlockedDescription:"shared.operator.action.acknowledgeBlockedDescription",sharedOperatorActionStatusRetryInProgress:"shared.operator.action.status.retryInProgress",sharedOperatorActionStatusRetryFailed:"shared.operator.action.status.retryFailed",sharedOperatorActionStatusRetryFailedWithError:"shared.operator.action.status.retryFailedWithError",sharedOperatorActionStatusRetryDispatched:"shared.operator.action.status.retryDispatched",sharedOperatorActionStatusRetryRequested:"shared.operator.action.status.retryRequested",sharedOperatorActionStatusAcknowledged:"shared.operator.action.status.acknowledged",sharedAudiencePopoverHeader:"shared.audience.popoverHeader",sharedAudienceSelectAudienceLabel:"shared.audience.selectAudienceLabel",sharedAudienceWorkflowSequential:"shared.audience.workflowSequential",sharedAudienceWorkflowConcurrent:"shared.audience.workflowConcurrent",sharedAudienceSwitchToSequentialModeLabel:"shared.audience.switchToSequentialModeLabel",sharedAudienceSwitchToConcurrentModeLabel:"shared.audience.switchToConcurrentModeLabel",sharedWorkspaceModeCurrentLabel:"shared.workspaceMode.currentLabel",sharedWorkspaceModeWorktreeLabel:"shared.workspaceMode.worktreeLabel",sharedWorkspaceModeCurrentTooltip:"shared.workspaceMode.currentTooltip",sharedWorkspaceModeWorktreeTooltip:"shared.workspaceMode.worktreeTooltip",sharedTelegramConnectDialogTitle:"shared.telegramConnectDialog.title",sharedTelegramConnectBotUsernameLabel:"shared.telegramConnectDialog.botUsernameLabel",sharedTelegramConnectBotUsernamePlaceholder:"shared.telegramConnectDialog.botUsernamePlaceholder",sharedTelegramConnectBotTokenLabel:"shared.telegramConnectDialog.botTokenLabel",sharedTelegramConnectBotTokenPlaceholder:"shared.telegramConnectDialog.botTokenPlaceholder",sharedTelegramConnectModeLabel:"shared.telegramConnectDialog.modeLabel",sharedTelegramConnectModePolling:"shared.telegramConnectDialog.modePolling",sharedTelegramConnectModeWebhook:"shared.telegramConnectDialog.modeWebhook",sharedTelegramConnectWebhookSecretLabel:"shared.telegramConnectDialog.webhookSecretLabel",sharedTelegramConnectWebhookSecretPlaceholder:"shared.telegramConnectDialog.webhookSecretPlaceholder",sharedTelegramConnectCancel:"shared.telegramConnectDialog.cancel",sharedTelegramConnectConnecting:"shared.telegramConnectDialog.connecting",sharedTelegramConnectConnect:"shared.telegramConnectDialog.connect",sharedCatsCreateCreateSection:"shared.catsCreateCreateSection",sharedCatsCreateNewCat:"shared.catsCreateNewCat",sharedCatsCreateCatLimitReached:"shared.catsCreateCatLimitReached",sharedCatsCreateAddNewCatHint:"shared.catsCreateAddNewCatHint",sharedCatsCreateCatNamePlaceholder:"shared.catsCreateCatNamePlaceholder",sharedCatsCreateCancel:"shared.catsCreateCancel",sharedCatsCreateSaving:"shared.catsCreateSaving",sharedCatsCreateSaveCat:"shared.catsCreateSaveCat",sharedPermissionModeFullAccess:"shared.permissionMode.fullAccess",sharedPermissionModeReadOnly:"shared.permissionMode.readOnly",sharedComposerSurfaceLabelChat:"shared.composerSurface.label.chat",sharedComposerSurfaceLabelWork:"shared.composerSurface.label.work",sharedComposerSurfaceLabelCode:"shared.composerSurface.label.code",sharedComposerSurfaceClearAria:"shared.composerSurface.clearAria",sharedProviderModelSupportAdvanced:"shared.providerModel.support.advanced",sharedProviderModelSupportReadOnly:"shared.providerModel.support.readOnly",sharedDeleteParallelChatGroupTitle:"shared.delete.parallelChatGroup.title",sharedDeleteParallelChatGroupMessage:"shared.delete.parallelChatGroup.message",sharedDeleteParallelChatGroupConfirm:"shared.delete.parallelChatGroup.confirm",sharedDeleteParallelChatGroupFallback:"shared.delete.parallelChatGroup.fallback",sharedDeleteCatTitle:"shared.delete.cat.title",sharedDeleteCatMessage:"shared.delete.cat.message",sharedDeleteCatConfirm:"shared.delete.cat.confirm",sharedDeleteCatFallback:"shared.delete.cat.fallback",sharedTranscriptDeletedCat:"shared.transcript.deletedCat",sharedCommonApply:"shared.common.apply",sharedCommonCancel:"shared.common.cancel",sharedCommonClose:"shared.common.close",sharedCommonDelete:"shared.common.delete",sharedCommonRetry:"shared.common.retry",sharedGuideCatPanelGreeting:"shared.guideCat.panelGreeting",sharedGuideCatWelcomeGreeting:"shared.guideCat.welcomeGreeting",sharedGuideCatWelcomeStartChat:"shared.guideCat.welcomeStartChat",sharedGuideCatWelcomeMeetCats:"shared.guideCat.welcomeMeetCats",sharedGuideCatWelcomeExploreProducts:"shared.guideCat.welcomeExploreProducts",sharedGuideCatWelcomeHideNow:"shared.guideCat.welcomeHideNow",sharedGuideCatPillOpenLabel:"shared.guideCat.pillOpenLabel",sharedGuideCatPillDisableLabel:"shared.guideCat.pillDisableLabel",sharedGuideCatDockUndockLabel:"shared.guideCat.dockUndockLabel",sharedGuideCatDialogDisableTitle:"shared.guideCat.dialog.disableTitle",sharedGuideCatDialogDisableMessage:"shared.guideCat.dialog.disableMessage",sharedGuideCatDialogDisableConfirm:"shared.guideCat.dialog.disableConfirm",sharedGuideCatDialogKeepEnabled:"shared.guideCat.dialog.keepEnabled",sharedGuideCatDialogDockNow:"shared.guideCat.dialog.dockNow",sharedImageUploadClickHint:"shared.imageUpload.clickHint",sharedImageUploadDragHint:"shared.imageUpload.dragHint",sharedWorkspaceNavigationDeleteChannelRuntimeCleanupFeedbackOne:"shared.workspaceNavigation.deleteChannelRuntimeCleanupFeedbackOne",sharedWorkspaceNavigationDeleteChannelRuntimeCleanupFeedbackMany:"shared.workspaceNavigation.deleteChannelRuntimeCleanupFeedbackMany",sharedWorkspaceNavigationRenameChatError:"shared.workspaceNavigation.renameChatError",sharedWorkspaceNavigationDeleteChatError:"shared.workspaceNavigation.deleteChatError",sharedWorkspaceNavigationRenameParallelChatError:"shared.workspaceNavigation.renameParallelChatError",sharedWorkspaceNavigationUngroupParallelChatError:"shared.workspaceNavigation.ungroupParallelChatError",sharedWorkspaceNavigationDeleteParallelChatGroupError:"shared.workspaceNavigation.deleteParallelChatGroupError",sharedWorkspaceNavigationParallelChatFallbackName:"shared.workspaceNavigation.parallelChatFallbackName",sharedWorkspaceNavigationErrorChatNotFound:"shared.workspaceNavigation.error.chatNotFound",sharedWorkspaceNavigationErrorChannelNotFound:"shared.workspaceNavigation.error.channelNotFound",sharedWorkspaceNavigationErrorParallelChatGroupNotFound:"shared.workspaceNavigation.error.parallelChatGroupNotFound",sharedWorkspaceNavigationErrorTitleRequired:"shared.workspaceNavigation.error.titleRequired",sharedWorkspaceNavigationErrorParallelChatTitleRequired:"shared.workspaceNavigation.error.parallelChatTitleRequired",sharedSettingsCatsRegistrySectionLabel:"shared.settingsCatsRegistry.sectionLabel",sharedSettingsCatsRegistrySavedCatsLabel:"shared.settingsCatsRegistry.savedCatsLabel",sharedSettingsCatsRegistryNoCatsYetLabel:"shared.settingsCatsRegistry.noCatsYetLabel",sharedSettingsCatsRegistryShowArchivedLabel:"shared.settingsCatsRegistry.showArchivedLabel",sharedSettingsCatsRegistryBossCatLabel:"shared.settingsCatsRegistry.bossCatLabel",sharedSettingsCatsRegistryRecoverLabel:"shared.settingsCatsRegistry.recoverLabel",sharedSettingsCatsRegistryRecoverTooltip:"shared.settingsCatsRegistry.recoverTooltip",sharedSettingsCatsRegistryDeleteTooltip:"shared.settingsCatsRegistry.deleteTooltip",sharedSettingsCatsRegistryArchiveTooltip:"shared.settingsCatsRegistry.archiveTooltip",sharedSettingsCatsRegistryDefaultSkillProfileLabel:"shared.settingsCatsRegistry.defaultSkillProfileLabel",sharedSettingsCatsRegistryMemorySavedLabel:"shared.settingsCatsRegistry.memorySavedLabel",sharedSettingsCatsRegistryNoMemoryYetLabel:"shared.settingsCatsRegistry.noMemoryYetLabel",sharedSettingsCatsRegistryBotBindingCount:"shared.settingsCatsRegistry.botBindingCount",sharedSettingsCatsRegistryEmptyStateHint:"shared.settingsCatsRegistry.emptyStateHint",sharedSettingsCatsSelectCatAria:"shared.settingsCats.selectCatAriaLabel",sharedSettingsCatsAddNewCatLabel:"shared.settingsCats.addNewCatLabel",sharedSettingsCatsShowArchivedLabel:"shared.settingsCats.showArchivedLabel",sharedSettingsCatsArchiveLabel:"shared.settingsCats.archiveLabel",sharedSettingsCatsRenameLabel:"shared.settingsCats.renameLabel",sharedSettingsCatsDeleteLabel:"shared.settingsCats.deleteLabel",sharedSettingsCatsChannelLabel:"shared.settingsCats.channelLabel",sharedSettingsCatsMemoryLabel:"shared.settingsCats.memoryLabel",sharedSettingsCatsSave:"shared.settingsCats.save",sharedSettingsCatsSaving:"shared.settingsCats.saving",sharedSettingsCatsBossCatLabel:"shared.settingsCats.bossCatLabel",sharedSettingsCatsChangeBossCatTitle:"shared.settingsCats.changeBossCatTitle",sharedSettingsCatsChangeBossCatMessage:"shared.settingsCats.changeBossCatMessage",sharedSettingsCatsConfirm:"shared.settingsCats.confirm",sharedSettingsCatsSetting:"shared.settingsCats.setting",sharedSettingsCatsSaveSuccess:"shared.settingsCats.saveSuccess",sharedSettingsCatsSaveError:"shared.settingsCats.saveError",sharedSettingsCatsRenameSuccess:"shared.settingsCats.renameSuccess",sharedSettingsCatsRenameError:"shared.settingsCats.renameError",sharedSettingsCatsDeleteSuccess:"shared.settingsCats.deleteSuccess",sharedSettingsCatsDeleteError:"shared.settingsCats.deleteError",sharedSettingsCatsBossUpdated:"shared.settingsCats.bossUpdated",sharedSettingsCatsStatusActive:"shared.settingsCats.status.active",sharedSettingsCatsStatusArchived:"shared.settingsCats.status.archived",sharedSettingsCatsMakeBossCatLabel:"shared.settingsCats.makeBossCatLabel",sharedSettingsCatsSetBossCatError:"shared.settingsCats.setBossCatError",sharedSettingsCatsSkillUpdateError:"shared.settingsCats.skillUpdateError",sharedSettingsCatsSkillProfileLabel:"shared.settingsCats.skillProfileLabel",sharedSettingsCatsMcpProfileLabel:"shared.settingsCats.mcpProfileLabel",sharedSettingsCatsMcpProfileChatMemoryLabel:"shared.settingsCats.mcpProfileChatMemoryLabel",sharedSettingsCatsMcpProfileWorkMemoryLabel:"shared.settingsCats.mcpProfileWorkMemoryLabel",sharedSettingsCatsChangeMcpProfileError:"shared.settingsCats.changeMcpProfileError",sharedSettingsCatsDisconnectTelegramAria:"shared.settingsCats.disconnectTelegramAria",sharedSettingsCatsDisconnectTelegram:"shared.settingsCats.disconnectTelegram",sharedSettingsCatsBindingActive:"shared.settingsCats.bindingActive",sharedSettingsCatsBindingDisabled:"shared.settingsCats.bindingDisabled",sharedSettingsCatsBindingPollingMode:"shared.settingsCats.bindingPollingMode",sharedSettingsCatsBindingWebhookMode:"shared.settingsCats.bindingWebhookMode",sharedSettingsCatsTelegramBindingCreated:"shared.settingsCats.telegramBindingCreated",sharedSettingsCatsTelegramBindingCreateError:"shared.settingsCats.telegramBindingCreateError",sharedSettingsCatsTelegramBindingRemoved:"shared.settingsCats.telegramBindingRemoved",sharedSettingsCatsTelegramBindingRemoveError:"shared.settingsCats.telegramBindingRemoveError",sharedSettingsCatsTelegramDiagnosticsLoadError:"shared.settingsCats.telegramDiagnosticsLoadError",sharedSettingsCatsCoverPhotoLabel:"shared.settingsCats.coverPhotoLabel",sharedSettingsCatsChangeCoverPhotoLabel:"shared.settingsCats.changeCoverPhotoLabel",sharedSettingsCatsUploadCoverPhotoLabel:"shared.settingsCats.uploadCoverPhotoLabel",sharedSettingsCatsChangeCoverLabel:"shared.settingsCats.changeCoverLabel",sharedSettingsCatsUploadCoverLabel:"shared.settingsCats.uploadCoverLabel",sharedSettingsCatsRemoveCoverLabel:"shared.settingsCats.removeCoverLabel",sharedSettingsCatsChangeSkillProfileError:"shared.settingsCats.changeSkillProfileError",sharedSettingsCatsUpdateBrainError:"shared.settingsCats.updateBrainError",sharedSettingsCatsLastInboundLabel:"shared.settingsCats.lastInboundLabel",sharedSettingsCatsConnectTelegramLabel:"shared.settingsCats.connectTelegramLabel",sharedSettingsCatsUnavailableHint:"shared.settingsCats.unavailableHint",sharedSettingsCatsSetBossCatLabel:"shared.settingsCats.setBossCatLabel",sharedSettingsCatsAddMemoryLabel:"shared.settingsCats.addMemoryLabel",sharedSettingsCatsDeleteMemoryAria:"shared.settingsCats.deleteMemoryAria",sharedSettingsCatsSkillProfileDefaultLabel:"shared.settingsCats.skillProfileDefaultLabel",sharedSettingsCatsSkillProfileCompanionLabel:"shared.settingsCats.skillProfileCompanionLabel",sharedSettingsCatsMemoryCategoryPreferenceLabel:"shared.settingsCats.memoryCategoryPreferenceLabel",sharedSettingsCatsMemoryCategoryFactLabel:"shared.settingsCats.memoryCategoryFactLabel",sharedSettingsCatsMemoryCategoryPolicyLabel:"shared.settingsCats.memoryCategoryPolicyLabel",sharedSettingsCatsMemoryCategoryStyleLabel:"shared.settingsCats.memoryCategoryStyleLabel",sharedSettingsCatsMemoryCategoryRelationshipLabel:"shared.settingsCats.memoryCategoryRelationshipLabel",sharedSettingsCatsMemoryCategoryLessonLabel:"shared.settingsCats.memoryCategoryLessonLabel",sharedSettingsCatsFallbackCatName:"shared.settingsCats.fallbackCatName",sharedSettingsCatsArchiveConfirmTitle:"shared.settingsCats.archiveConfirmTitle",sharedSettingsCatsArchiveConfirmMessage:"shared.settingsCats.archiveConfirmMessage",sharedSettingsCatsArchiveWithTelegramConfirmMessage:"shared.settingsCats.archiveWithTelegramConfirmMessage",sharedSettingsCatsArchiveSuccess:"shared.settingsCats.archiveSuccess",sharedSettingsCatsArchiveError:"shared.settingsCats.archiveError",sharedSettingsCatsRecoverConfirmTitle:"shared.settingsCats.recoverConfirmTitle",sharedSettingsCatsRecoverConfirmMessage:"shared.settingsCats.recoverConfirmMessage",sharedSettingsCatsRecoverConfirmLabel:"shared.settingsCats.recoverConfirmLabel",sharedSettingsCatsRecoverSuccess:"shared.settingsCats.recoverSuccess",sharedSettingsCatsRecoverError:"shared.settingsCats.recoverError",sharedSettingsCatsErrorNameRequired:"shared.settingsCats.error.nameRequired",sharedSettingsCatsErrorProviderRequired:"shared.settingsCats.error.providerRequired",sharedSettingsCatsErrorNameEmpty:"shared.settingsCats.error.nameEmpty",sharedSettingsCatsErrorAlreadyArchived:"shared.settingsCats.error.alreadyArchived",sharedSettingsCatsErrorAlreadyActive:"shared.settingsCats.error.alreadyActive",sharedSettingsCatsErrorArchiveRecoverConflict:"shared.settingsCats.error.archiveRecoverConflict",sharedSettingsCatsErrorNoProducts:"shared.settingsCats.error.noProducts",sharedSettingsCatsErrorBotTokenDuplicate:"shared.settingsCats.error.botTokenDuplicate",sharedSettingsCatsErrorNameDuplicate:"shared.settingsCats.error.nameDuplicate",sharedSettingsCatsErrorLimitReached:"shared.settingsCats.error.limitReached",sharedSettingsCatsErrorNotFound:"shared.settingsCats.error.notFound",sharedSettingsCatsErrorNotActive:"shared.settingsCats.error.notActive",sharedSettingsCatsErrorNotAvailableInChat:"shared.settingsCats.error.notAvailableInChat",sharedSettingsCatsErrorBotBindingNotFound:"shared.settingsCats.error.botBindingNotFound",sharedPlatformSurfaceSwitcherMenuLabel:"shared.platformSurfaceSwitcher.menuLabel",sharedPlatformSurfaceSwitcherOpenLobby:"shared.platformSurfaceSwitcher.openLobby",sharedPlatformSurfaceSwitcherAriaLabel:"shared.platformSurfaceSwitcher.ariaLabel",sharedProviderModelBrainCardTitle:"shared.providerModelBrainCard.title",sharedProviderModelControlDefault:"shared.providerModel.controls.default",sharedProviderModelControlEnabled:"shared.providerModel.controls.enabled",sharedProviderModelControlDisabled:"shared.providerModel.controls.disabled",sharedProviderModelControlOptionalPlaceholder:"shared.providerModel.controls.optionalPlaceholder",sharedProviderModelFieldProviderLabel:"shared.providerModel.field.providerLabel",sharedProviderModelFieldLoadingProviders:"shared.providerModel.field.loadingProviders",sharedProviderModelFieldSelectProviderHint:"shared.providerModel.field.selectProviderHint",sharedProviderModelFieldProviderLoadFailed:"shared.providerModel.field.providerLoadFailed",sharedProviderModelFieldNoProviders:"shared.providerModel.field.noProviders",sharedProviderModelFieldRegistryCheckingHint:"shared.providerModel.field.registryCheckingHint",sharedProviderModelFieldRegistryUsingProductCatalogHint:"shared.providerModel.field.registryUsingProductCatalogHint",sharedProviderModelFieldRegistryStaleHint:"shared.providerModel.field.registryStaleHint",sharedProviderModelFieldRegistryCachedRefreshFailedHint:"shared.providerModel.field.registryCachedRefreshFailedHint",sharedProviderModelFieldRegistryLoadFailedHint:"shared.providerModel.field.registryLoadFailedHint",sharedProviderModelFieldRegistryEmptyHint:"shared.providerModel.field.registryEmptyHint",sharedProviderModelFieldProviderInstanceLabel:"shared.providerModel.field.providerInstanceLabel",sharedProviderModelFieldModelLabel:"shared.providerModel.field.modelLabel",sharedProviderModelFieldRetryProvidersFirst:"shared.providerModel.field.retryProvidersFirst",sharedProviderModelFieldSelectProviderFirst:"shared.providerModel.field.selectProviderFirst",sharedProviderModelFieldWaitingProviders:"shared.providerModel.field.waitingProviders",sharedProviderModelFieldLoadingModels:"shared.providerModel.field.loadingModels",sharedProviderModelFieldSelectModel:"shared.providerModel.field.selectModel",sharedProviderModelFieldNoModels:"shared.providerModel.field.noModels",sharedProviderModelFieldCustomLegacyModelLabel:"shared.providerModel.field.customLegacyModelLabel",sharedProviderModelFieldLegacyModelIdLabel:"shared.providerModel.field.legacyModelIdLabel",sharedProviderModelFieldLegacyModelIdPlaceholder:"shared.providerModel.field.legacyModelIdPlaceholder",sharedProviderModelFieldLegacyModelIdHint:"shared.providerModel.field.legacyModelIdHint",sharedProviderModelFieldModeLabel:"shared.providerModel.field.modeLabel",sharedProviderModelFieldModeStandardLabel:"shared.providerModel.field.modeStandardLabel",sharedProviderModelFieldModeStandardOnlyLabel:"shared.providerModel.field.modeStandardOnlyLabel",sharedProviderModelFieldPresetPreviewSuffix:"shared.providerModel.field.presetPreviewSuffix",sharedProviderModelFieldPresetUnavailableSuffix:"shared.providerModel.field.presetUnavailableSuffix",sharedProviderModelFieldPresetTuningDescriptionFallback:"shared.providerModel.field.presetTuningDescriptionFallback",sharedProviderModelFieldModeOnlyBaseHint:"shared.providerModel.field.modeOnlyBaseHint",sharedProviderModelFieldRequestScopedWarning:"shared.providerModel.field.requestScopedWarning",sharedProviderModelFieldOpenRuntimeSetupLabel:"shared.providerModel.field.openRuntimeSetupLabel",sharedProviderModelFieldAdvancedCatalogUnavailable:"shared.providerModel.field.advancedCatalogUnavailable",sharedProviderModelFieldCatalogKindModel:"shared.providerModel.field.catalogKindModel",sharedProviderModelFieldCatalogKindAdvancedModel:"shared.providerModel.field.catalogKindAdvancedModel",sharedProviderModelFieldRuntimeCatalogUnavailable:"shared.providerModel.field.runtimeCatalogUnavailable",sharedProviderModelFieldRuntimeCatalogUnavailableWarning:"shared.providerModel.field.runtimeCatalogUnavailableWarning",sharedMemoryEditorDialogTitle:"shared.memoryEditorDialog.title",sharedMemoryEditorDialogCategoryLabel:"shared.memoryEditorDialog.categoryLabel",sharedMemoryEditorDialogContentLabel:"shared.memoryEditorDialog.contentLabel",sharedMemoryEditorDialogMemoryPlaceholder:"shared.memoryEditorDialog.memoryPlaceholder",sharedMemoryEditorDialogCancel:"shared.memoryEditorDialog.cancel",sharedMemoryEditorDialogSaving:"shared.memoryEditorDialog.saving",sharedMemoryEditorDialogAdd:"shared.memoryEditorDialog.add",sharedApprovalEyebrow:"shared.approvalEyebrow",sharedApprovalPendingTitle:"shared.approvalPendingTitle",sharedApprovalEmptyState:"shared.approvalEmptyState",sharedApprovalRequester:"shared.approvalRequester",sharedApprovalSummaryFallback:"shared.approvalSummaryFallback",sharedApprovalRequestedBy:"shared.approvalRequestedBy",sharedApprovalActionApprove:"shared.approval.action.approve",sharedApprovalActionReroute:"shared.approval.action.reroute",sharedApprovalActionReject:"shared.approval.action.reject",sharedApprovalActionApproveDescription:"shared.approval.action.approveDescription",sharedApprovalActionRerouteDescription:"shared.approval.action.rerouteDescription",sharedApprovalActionRejectDescription:"shared.approval.action.rejectDescription",sharedCatInspectTitle:"shared.catInspectTitle",sharedCatInspectClose:"shared.catInspectClose",sharedCatInspectBossLabel:"shared.catInspectBossLabel",sharedCatInspectProviderLabel:"shared.catInspectProviderLabel",sharedCatInspectInstanceLabel:"shared.catInspectInstanceLabel",sharedCatInspectModelLabel:"shared.catInspectModelLabel",sharedCatInspectSkillProfileLabel:"shared.catInspectSkillProfileLabel",sharedCatInspectSharedPresetDescription:"shared.catInspectSharedPresetDescription",sharedMessageChoicesCustom:"shared.messageChoicesCustom",sharedMessageChoicesAddCustomPlaceholder:"shared.messageChoicesAddCustomPlaceholder",sharedMessageChoicesSkipped:"shared.messageChoicesSkipped",sharedMessageChoicesRecorded:"shared.messageChoicesRecorded",sharedMessageChoicesConfirm:"shared.messageChoicesConfirm",sharedMessageChoicesSkip:"shared.messageChoicesSkip",sharedFolderBrowserEnterPath:"shared.folderBrowserEnterPath",sharedFolderBrowserGo:"shared.folderBrowserGo",sharedFolderBrowserUpOneLevel:"shared.folderBrowserUpOneLevel",sharedFolderBrowserRefresh:"shared.folderBrowserRefresh",sharedFolderBrowserLoading:"shared.folderBrowserLoading",sharedFolderBrowserNoSubdirectories:"shared.folderBrowserNoSubdirectories",sharedFolderBrowserUseThisFolder:"shared.folderBrowserUseThisFolder",sharedCommonSaving:"shared.common.saving",sharedCommonDismiss:"shared.common.dismiss",setupWizardWelcomeTitle:"setup.wizard.welcomeTitle",setupWizardWelcomeIntro:"setup.wizard.welcomeIntro",setupWizardOwnerNameLabel:"setup.wizard.ownerNameLabel",setupWizardOwnerNamePlaceholder:"setup.wizard.ownerNamePlaceholder",setupWizardGetStartedButton:"setup.wizard.getStartedButton",setupWizardStepIndicator:"setup.wizard.stepIndicator",setupWizardEnableGuideTitle:"setup.wizard.enableGuideTitle",setupWizardEnableGuideSubtitle:"setup.wizard.enableGuideSubtitle",setupWizardEnableGuideLabel:"setup.wizard.enableGuideLabel",setupWizardSkipGuideMessage:"setup.wizard.skipGuideMessage",setupWizardBackButton:"setup.wizard.backButton",setupWizardOpeningCatsAction:"setup.wizard.openingCatsAction",setupWizardOpenCatsAction:"setup.wizard.openCatsAction",setupWizardFailedMessage:"setup.wizard.failedMessage",setupWizardFailedWithStatus:"setup.wizard.failedWithStatus",setupWizardAlreadyCompleteError:"setup.wizard.alreadyCompleteError",setupWizardInvalidRequestError:"setup.wizard.invalidRequestError",setupWizardServerError:"setup.wizard.serverError",setupWizardRecordOpenFailedWithStatus:"setup.wizard.recordOpenFailedWithStatus",setupGuideCatRuntimeUnavailable:"setup.guideCat.runtimeUnavailable",setupGuideCatNoUsableTargets:"setup.guideCat.noUsableTargets",setupGuideCatRuntimeConnected:"setup.guideCat.runtimeConnected",setupGuideCatRuntimeNotDetected:"setup.guideCat.runtimeNotDetected",setupGuideCatNameLabel:"setup.guideCat.nameLabel",setupGuideCatNameHint:"setup.guideCat.nameHint",setupGuideCatOpenRuntimeSetup:"setup.guideCat.openRuntimeSetup",setupGuideCatUnavailableNote:"setup.guideCat.unavailableNote",setupGuideCatNoUsableTargetsNote:"setup.guideCat.noUsableTargetsNote",settingsAssistantsDefaultName:"settings.assistants.defaultName",settingsAssistantsStatusFailed:"settings.assistants.statusFailed",settingsAssistantsSaveFailed:"settings.assistants.saveFailed",settingsAssistantsStatusUpdateFailed:"settings.assistants.statusUpdateFailed",settingsAssistantsGuideCatUpdateFailed:"settings.assistants.guideCatUpdateFailed",settingsAssistantsGuideCatSaveFailed:"settings.assistants.guideCatSaveFailed",settingsAssistantsSaveFailedWithError:"settings.assistants.saveFailedWithError",settingsAssistantsRemoveTitle:"settings.assistants.removeTitle",settingsAssistantsRemoveMessage:"settings.assistants.removeMessage",settingsAssistantsRemoveButton:"settings.assistants.removeButton",settingsAssistantsRemoveFailed:"settings.assistants.removeFailed",settingsAssistantsEnableButton:"settings.assistants.enableButton",settingsAssistantsEnableBusyButton:"settings.assistants.enableBusyButton",settingsAssistantsDisableButton:"settings.assistants.disableButton",settingsAssistantsAvatarLabel:"settings.assistants.avatarLabel",settingsAssistantsNameLabel:"settings.assistants.nameLabel",settingsAssistantsSelectAriaLabel:"settings.assistants.selectAriaLabel",settingsAssistantsAddNewLabel:"settings.assistants.addNewLabel",settingsAssistantsNewAssistantTitle:"settings.assistants.newAssistantTitle",settingsAssistantsCancelButton:"settings.assistants.cancelButton",settingsAssistantsCreateButton:"settings.assistants.createButton",settingsAssistantsDeleteButton:"settings.assistants.deleteButton",settingsAssistantsRoleHintTitle:"settings.assistants.roleHintTitle",settingsAssistantsNamePlaceholder:"settings.assistants.namePlaceholder",settingsAssistantsRoleHintPlaceholder:"settings.assistants.roleHintPlaceholder",settingsAssistantsRenameFailed:"settings.assistants.renameFailed",settingsAssistantsRoleHintUpdateFailed:"settings.assistants.roleHintUpdateFailed",settingsAssistantsBrainUpdateFailed:"settings.assistants.brainUpdateFailed",settingsAssistantsCreateFailed:"settings.assistants.createFailed",settingsAssistantsApiInvalidRequestBody:"settings.assistants.api.invalidRequestBody",settingsAssistantsApiAssistantNameRequired:"settings.assistants.api.assistantNameRequired",settingsAssistantsApiAssistantProviderRequired:"settings.assistants.api.assistantProviderRequired",settingsAssistantsApiAssistantModelRequired:"settings.assistants.api.assistantModelRequired",settingsAssistantsApiAssistantNotFound:"settings.assistants.api.assistantNotFound",settingsAssistantsApiGuideCatNameManaged:"settings.assistants.api.guideCatNameManaged",settingsAssistantsApiGuideCatStatusInvalid:"settings.assistants.api.guideCatStatusInvalid",settingsAssistantsApiGuideCatNotFound:"settings.assistants.api.guideCatNotFound",conversationSidebarChatsLabel:"conversationSidebar.chatsLabel",conversationSidebarRecentsLabel:"conversationSidebar.recentsLabel",conversationSidebarNoChatsLabel:"conversationSidebar.noChatsLabel",conversationSidebarPrimaryAriaLabel:"conversationSidebar.primaryAriaLabel",conversationSidebarOpenSidebarLabel:"conversationSidebar.openSidebarLabel",conversationSidebarCloseSidebarLabel:"conversationSidebar.closeSidebarLabel",conversationSidebarRenameLabel:"conversationSidebar.renameLabel",conversationSidebarRenamingLabel:"conversationSidebar.renamingLabel",conversationSidebarDeleteLabel:"conversationSidebar.deleteLabel",conversationSidebarDeletingLabel:"conversationSidebar.deletingLabel",conversationSidebarUngroupLabel:"conversationSidebar.ungroupLabel",conversationSidebarUngroupingLabel:"conversationSidebar.ungroupingLabel",conversationSidebarDeleteAllLabel:"conversationSidebar.deleteAllLabel",conversationSidebarOpenAccountSettingsLabel:"conversationSidebar.openAccountSettingsLabel",conversationSidebarRuntimeStatusAriaLabel:"conversationSidebar.runtimeStatusAriaLabel",conversationSidebarDirectMessagesLabel:"conversationSidebar.directMessagesLabel",conversationSidebarTelegramBoundTooltip:"conversationSidebar.telegramBoundTooltip",conversationSidebarArchiveButton:"conversationSidebar.archiveButton",conversationSidebarDirectMessageButton:"conversationSidebar.directMessageButton",conversationSidebarClearButton:"conversationSidebar.clearButton",conversationSidebarClearConfirmMessage:"conversationSidebar.clearConfirmMessage",chatNewChatDraftViewCatProfileAction:"chatNewChatDraft.viewCatProfileAction",chatTopBarOpenCatProfileAriaLabel:"chatTopBar.openCatProfileAriaLabel",codeActiveComposerDetachedBranch:"code.activeComposer.detachedBranch",codeNewDraftGreeting:"code.newDraft.greeting",codeNewDraftGreetingOpenRepo:"code.newDraft.greeting.openRepo",codeNewDraftGreetingBuildFixRefactor:"code.newDraft.greeting.buildFixRefactor",codeNewDraftGreetingShipImprovement:"code.newDraft.greeting.shipImprovement",codeNewDraftGreetingSmallestChange:"code.newDraft.greeting.smallestChange",codeNewDraftComposerPlaceholder:"code.newDraft.composer.placeholder",codeNewDraftSetupTitle:"code.newDraft.setupTitle",codeNewDraftParticipantsTitle:"code.newDraft.participants.title",codeNewDraftParticipantsEmpty:"code.newDraft.participants.empty",codeNewDraftExecutionTitle:"code.newDraft.execution.title",codeNewDraftExecutionAction:"code.newDraft.execution.action",codeNewDraftExecutionEmpty:"code.newDraft.execution.empty",codeNewDraftFolderTitle:"code.newDraft.folder.title",codeNewDraftFolderAction:"code.newDraft.folder.action",codeNewDraftFolderEmpty:"code.newDraft.folder.empty",codeNewDraftSessionProfileTitle:"code.newDraft.sessionProfile.title",codeNewDraftSessionProfileDescription:"code.newDraft.sessionProfile.description",codeNewDraftWorkspaceIndependentWorktree:"code.newDraft.workspace.independentWorktree",codeNewDraftWorkspaceCurrentFolder:"code.newDraft.workspace.currentFolder",codeNewDraftWorkspaceSandbox:"code.newDraft.workspace.sandbox",codeNewDraftPermissionReadOnly:"code.newDraft.permission.readOnly",codeNewDraftPermissionFullAccess:"code.newDraft.permission.fullAccess",codeNewDraftStarterPomodoroLabel:"code.newDraft.starter.pomodoro.label",codeNewDraftStarterPomodoroPrompt:"code.newDraft.starter.pomodoro.prompt",codeNewDraftStarterFixBugLabel:"code.newDraft.starter.fixBug.label",codeNewDraftStarterFixBugPrompt:"code.newDraft.starter.fixBug.prompt",codeNewDraftStarterRefactorLabel:"code.newDraft.starter.refactor.label",codeNewDraftStarterRefactorPrompt:"code.newDraft.starter.refactor.prompt",codeNewDraftStarterWriteTestsLabel:"code.newDraft.starter.writeTests.label",codeNewDraftStarterWriteTestsPrompt:"code.newDraft.starter.writeTests.prompt",codeNewDraftStarterStartProjectLabel:"code.newDraft.starter.startProject.label",codeNewDraftStarterStartProjectPrompt:"code.newDraft.starter.startProject.prompt",codeTaskPillsAriaLabel:"code.taskPills.ariaLabel",codeTaskPillsMockAuthMiddleware:"code.taskPills.mock.authMiddleware",codeTaskPillsMockKiroSessionDelete:"code.taskPills.mock.kiroSessionDelete",codeTaskPillsMockArtifactGallery:"code.taskPills.mock.artifactGallery",codeTaskPillsNamePlaceholder:"code.taskPills.namePlaceholder",codeTaskPillsEditAria:"code.taskPills.editAria",codeTaskPillsTitleCurrent:"code.taskPills.title.current",codeTaskPillsTitleFocus:"code.taskPills.title.focus",codeTaskPillsHideAria:"code.taskPills.hideAria",codeTaskPillsFallbackTask:"code.taskPills.fallbackTask",codeTaskPillsAddAria:"code.taskPills.addAria",codeTaskPillsButtonTask:"code.taskPills.buttonTask",codeArtifactAnchorSourceLabel:"code.workspace.source.artifactAnchor",codeArtifactBuildLabel:"code.artifact.kind.build",codeArtifactDatasetLabel:"code.artifact.kind.dataset",codeArtifactDetailArtifactUnavailable:"code.artifactDetail.artifactUnavailable",codeArtifactDetailBackToBuild:"code.artifactDetail.backToBuild",codeArtifactDetailArtifactOutput:"code.artifactDetail.artifactOutput",codeArtifactDetailConversationLabel:"code.artifactDetail.conversationLabel",codeArtifactDetailContextEyebrow:"code.artifactDetail.contextEyebrow",codeArtifactDetailContextTitle:"code.artifactDetail.contextTitle",codeArtifactDetailLoadFailed:"code.artifactDetail.loadFailed",codeArtifactDetailLoadingBody:"code.artifactDetail.loadingBody",codeArtifactDetailLoadingTitle:"code.artifactDetail.loadingTitle",codeArtifactDetailMissingId:"code.artifactDetail.missingId",codeArtifactDetailNoArtifactSummary:"code.artifactDetail.noArtifactSummary",codeArtifactDetailNoInlinePreview:"code.artifactDetail.noInlinePreview",codeArtifactDetailNotInlineSafe:"code.artifactDetail.notInlineSafe",codeArtifactDetailPreviewOutput:"code.artifactDetail.previewOutput",codeArtifactDetailPreviewActionOpenArtifact:"code.artifactDetail.previewActionOpenArtifact",codeArtifactDetailPreviewActionOpenPreview:"code.artifactDetail.previewActionOpenPreview",codeArtifactDetailProjectLabel:"code.artifactDetail.projectLabel",codeArtifactDetailProjectMeta:"code.artifactDetail.projectMeta",codeArtifactDetailRelatedEmpty:"code.artifactDetail.relatedEmpty",codeArtifactDetailRelatedEyebrow:"code.artifactDetail.relatedEyebrow",codeArtifactDetailRelatedTitle:"code.artifactDetail.relatedTitle",codeArtifactDetailOpenConversationAction:"code.artifactDetail.openConversationAction",codeArtifactDetailOpenProjectAction:"code.artifactDetail.openProjectAction",codeArtifactDetailOpenTaskAction:"code.artifactDetail.openTaskAction",codeArtifactDetailOpenWorkItemAction:"code.artifactDetail.openWorkItemAction",codeArtifactDetailTaskLabel:"code.artifactDetail.taskLabel",codeArtifactDetailTitle:"code.artifactDetail.title",codeArtifactDetailViewArtifact:"code.artifactDetail.viewArtifact",codeArtifactDetailWorkItemLinkedLabel:"code.artifactDetail.workItemLinkedLabel",codeArtifactDetailWorkItemMissingLabel:"code.artifactDetail.workItemMissingLabel",codeArtifactKindAttachmentLabel:"code.artifactKind.attachment",codeArtifactKindDocumentLabel:"code.artifactKind.document",codeArtifactKindPreviewLabel:"code.artifactKind.preview",codeArtifactKindReportLabel:"code.artifactKind.report",codeArtifactKindTranscriptLabel:"code.artifactKind.transcript",codeArtifactKindUnknownLabel:"code.artifactKind.unknown",codeArtifactKindBuildLabel:"code.artifactKind.build",codeArtifactStatusArchived:"code.artifactStatus.archived",codeArtifactStatusDraft:"code.artifactStatus.draft",codeArtifactStatusPublished:"code.artifactStatus.published",codeArtifactStatusReady:"code.artifactStatus.ready",codeArtifactStatusUnknown:"code.artifactStatus.unknown",codeArtifactListArtifact:"code.artifactList.artifact",codeArtifactListAllFilter:"code.artifactList.filter.all",codeArtifactListAriaOpen:"code.artifactList.ariaOpenArtifact",codeArtifactListEmpty:"code.artifactList.empty",codeArtifactListHeader:"code.artifactList.header",codeArtifactListLoading:"code.artifactList.loading",codeArtifactListError:"code.artifactList.error",codeArtifactListLoadFailed:"code.artifactList.loadFailed",codeArtifactListCandidateHint:"code.artifactList.candidateHint",codeArtifactListCandidateLabel:"code.artifactList.candidateLabel",codeArtifactListProvenanceRun:"code.artifactList.provenance.run",codeArtifactListProvenanceTask:"code.artifactList.provenance.task",codeArtifactListStatusFilterLabel:"code.artifactList.statusFilterLabel",codeArtifactMetaContract:"code.artifactMeta.contract",codeArtifactMetaMode:"code.artifactMeta.mode",codeArtifactMetaDecision:"code.artifactMeta.decision",codeArtifactMetaKind:"code.artifactMeta.kind",codeArtifactMetaPath:"code.artifactMeta.path",codeArtifactMetaStatus:"code.artifactMeta.status",codeArtifactMetaUpdated:"code.artifactMeta.updated",codeArtifactMetaViewArtifact:"code.artifactMeta.viewArtifact",codeArtifactPreview:"code.artifactPreview",codeArtifactUnknown:"code.artifact.unknown",codeConversationKindChatChannel:"code.conversationKind.chatChannel",codeConversationKindChatRoot:"code.conversationKind.chatRoot",codeConversationKindCodeThread:"code.conversationKind.codeThread",codeConversationKindDirectMessage:"code.conversationKind.directMessage",codeConversationKindParallelGroup:"code.conversationKind.parallelGroup",codeConversationKindUnknown:"code.conversationKind.unknown",codeConversationKindWorkThread:"code.conversationKind.workThread",codeRecordStatusArchived:"code.recordStatus.archived",codeRecordStatusBlocked:"code.recordStatus.blocked",codeRecordStatusCancelled:"code.recordStatus.cancelled",codeRecordStatusCompleted:"code.recordStatus.completed",codeRecordStatusDraft:"code.recordStatus.draft",codeRecordStatusFailed:"code.recordStatus.failed",codeRecordStatusInProgress:"code.recordStatus.inProgress",codeRecordStatusOpen:"code.recordStatus.open",codeRecordStatusPending:"code.recordStatus.pending",codeRecordStatusPendingApproval:"code.recordStatus.pendingApproval",codeRecordStatusReady:"code.recordStatus.ready",codeRecordStatusRunning:"code.recordStatus.running",codeRecordStatusUnknown:"code.recordStatus.unknown",codeBuilderCodespaceHeader:"code.builder.codespaceHeader",codeBuilderCodeOutputLabel:"code.builder.codeOutputLabel",codeBuilderBack:"code.builder.back",codeBuilderContinue:"code.builder.continue",codeBuilderContinueBuild:"code.builder.continueBuild",codeBuilderContinueBuildBusy:"code.builder.continueBuildBusy",codeBuilderContinueTaskBusy:"code.builder.continueTaskBusy",codeBuilderCreateArtifact:"code.builder.createArtifact",codeBuilderCreateLabel:"code.builder.createLabel",codeBuilderCreatingTask:"code.builder.creatingTask",codeBuilderDefineTaskHeader:"code.builder.defineTaskHeader",codeBuilderDetailPlaceholder:"code.builder.detailsPlaceholder",codeBuilderDetailsLabel:"code.builder.detailsLabel",codeBuilderErrorCodespaceResolve:"code.builder.errorCodespaceResolve",codeBuilderErrorCodespacePathInvalid:"code.builder.errorCodespacePathInvalid",codeBuilderErrorCodespaceNoPath:"code.builder.errorCodespaceNoPath",codeBuilderErrorTaskCreate:"code.builder.errorTaskCreate",codeBuilderErrorTaskCreateMissingId:"code.builder.errorTaskCreateMissingId",codeBuilderErrorTaskExecution:"code.builder.errorTaskExecution",codeBuilderErrorTaskDetailLoad:"code.builder.errorTaskDetailLoad",codeBuilderErrorTaskResume:"code.builder.errorTaskResume",codeBuilderErrorTaskResumeInput:"code.builder.errorTaskResumeInput",codeBuilderErrorTaskTitle:"code.builder.errorTaskTitle",codeBuilderRuntimeObservationFailed:"code.builder.runtimeObservationFailed",codeBuilderExecutionDoneBanner:"code.builder.executionDoneBanner",codeBuilderExistingTask:"code.builder.existingTask",codeBuilderFeedbackResumeReady:"code.builder.feedbackResumeReady",codeBuilderFeedbackResumeTask:"code.builder.feedbackResumeTask",codeBuilderFeedbackResumeNoWorkspace:"code.builder.feedbackResumeNoWorkspace",codeBuilderFeedbackResumeWorkspaceNeeded:"code.builder.feedbackResumeWorkspaceNeeded",codeBuilderFilterCodespace:"code.builder.filter.codespace",codeBuilderHeaderCodespace:"code.builder.header.codespace",codeBuilderHeaderNewTask:"code.builder.header.newTask",codeBuilderHeaderProjectFolder:"code.builder.header.projectFolder",codeBuilderHeaderTaskStep:"code.builder.header.taskStep",codeBuilderModelLabel:"code.builder.modelLabel",codeBuilderModelPlaceholder:"code.builder.modelPlaceholder",codeBuilderNewTaskButton:"code.builder.newTaskButton",codeBuilderProviderLabel:"code.builder.providerLabel",codeBuilderProviderTaskLabel:"code.builder.providerTaskLabel",codeBuilderRepoPathLabel:"code.builder.repoPathLabel",codeBuilderResumeLabel:"code.builder.resumeLabel",codeBuilderResumePrompt:"code.builder.resumePrompt",codeBuilderRetryPrompt:"code.builder.retryPrompt",codeBuilderStepLabel:"code.builder.stepLabel",codeBuilderSuccessTaskReadyWithCurrentChat:"code.builder.successTaskReadyWithCurrentChat",codeBuilderTaskIdRequired:"code.builder.taskIdRequired",codeBuilderTaskIdReady:"code.builder.taskIdReady",codeBuilderTaskIdReadyNoWorkspace:"code.builder.taskIdReadyNoWorkspace",codeBuilderTaskLabel:"code.builder.taskLabel",codeBuilderTaskSummaryPlaceholder:"code.builder.taskSummaryPlaceholder",codeBuilderTitle:"code.builder.title",codeBuilderWorkspaceActiveNotice:"code.builder.workspaceActiveNotice",codeBuilderWorkspaceFallbackBound:"code.builder.workspaceFallbackBound",codeBuilderWorkspaceFallbackBoundFallback:"code.builder.workspaceFallbackBoundFallback",codeBuilderWorkspaceFallbackChatRepo:"code.builder.workspaceFallbackChatRepo",codeBuilderWorkspaceFallbackRoom:"code.builder.workspaceFallbackRoom",codeBuilderWorkspaceFooterLabel:"code.builder.workspaceFooterLabel",codeBuilderWorkspacePathPlaceholder:"code.builder.workspacePathPlaceholder",codeBuilderWorkspaceResumeHelp:"code.builder.workspaceResumeHelp",codeBuilderWorkspaceSampleTaskId:"code.builder.sampleTaskId",codeBuilderWorkspaceSummaryLabel:"code.builder.workspaceSummaryLabel",codeBuilderWorkspaceSummaryNotice:"code.builder.workspaceSummaryNotice",codeBuilderStartingTaskBusy:"code.builder.startingTaskBusy",codeBuilderTaskQuestion:"code.builder.taskQuestion",codeLivePreviewCommandProfile:"code.livePreview.commandProfile",codeLivePreviewDescription:"code.livePreview.description",codeLivePreviewDiagnostic:"code.livePreview.diagnostic",codeLivePreviewErrorLoad:"code.livePreview.error.load",codeLivePreviewErrorLogs:"code.livePreview.error.logs",codeLivePreviewErrorStop:"code.livePreview.error.stop",codeLivePreviewExpiresAt:"code.livePreview.expiresAt",codeLivePreviewHideLogs:"code.livePreview.hideLogs",codeLivePreviewLogs:"code.livePreview.logs",codeLivePreviewLogsEmpty:"code.livePreview.logsEmpty",codeLivePreviewLogsLoading:"code.livePreview.logsLoading",codeLivePreviewOpen:"code.livePreview.open",codeLivePreviewRetry:"code.livePreview.retry",codeLivePreviewRetryUnavailable:"code.livePreview.retryUnavailable",codeLivePreviewStatusExpired:"code.livePreview.status.expired",codeLivePreviewStatusFailed:"code.livePreview.status.failed",codeLivePreviewStatusReady:"code.livePreview.status.ready",codeLivePreviewStatusStarting:"code.livePreview.status.starting",codeLivePreviewStatusStopped:"code.livePreview.status.stopped",codeLivePreviewStatusStopping:"code.livePreview.status.stopping",codeLivePreviewStop:"code.livePreview.stop",codeLivePreviewStopRequested:"code.livePreview.stopRequested",codeLivePreviewStopping:"code.livePreview.stopping",codeLivePreviewTitle:"code.livePreview.title",codeLivePreviewWorkspace:"code.livePreview.workspace",codeExecutionExecutionHeader:"code.execution.header",codeExecutionMetaNoTask:"code.execution.meta.noTask",codeExecutionMetaRuntimeSession:"code.execution.meta.runtimeSession",codeExecutionMetaWorkingTreeClean:"code.execution.meta.workingTreeClean",codeExecutionMetaWorkingTreeDirty:"code.execution.meta.workingTreeDirty",codeExecutionNoActiveSession:"code.execution.noActiveSession",codeExecutionNoTask:"code.execution.noTask",codeExecutionNotStarted:"code.execution.notStarted",codeExecutionOwnerDecisionRequired:"code.execution.ownerDecisionRequired",codeExecutionPanelTitle:"code.execution.panelTitle",codeExecutionRuntimeHeader:"code.execution.runtimeHeader",codeExecutionRuntimeIdle:"code.execution.runtimeIdle",codeExecutionRuntimeModeDelivery:"code.execution.modeDelivery",codeExecutionRuntimeTargetLabel:"code.execution.targetLabel",codeExecutionRuntimeTargets:"code.execution.targets",codeExecutionRuntimeTitle:"code.execution.runtimeTitle",codeExecutionSectionBlocked:"code.execution.sectionBlocked",codeExecutionTaskHeader:"code.execution.taskHeader",codeExecutionTaskStatus:"code.execution.taskStatus",codeExecutionTaskTitle:"code.execution.taskTitle",codeExecutionNotActiveYet:"code.execution.notActiveYet",codeExecutionPaused:"code.execution.paused",codeExecutionProvider:"code.execution.provider",codeExecutionModel:"code.execution.model",codeExecutionDefaultModel:"code.execution.defaultModel",codeExecutionSession:"code.execution.session",codeExecutionTaskId:"code.execution.taskId",codeExecutionStatusBlocked:"code.execution.status.blocked",codeExecutionStatusDone:"code.execution.status.done",codeExecutionStatusPending:"code.execution.status.pending",codeExecutionStatusRunning:"code.execution.status.running",codeExecutionStatusUnknown:"code.execution.status.unknown",codeExecutionTaskRuntimeHeader:"code.execution.taskRuntimeHeader",codeExecutionTaskStrategy:"code.execution.taskStrategy",codeExecutionStrategyPdca:"code.execution.strategy.pdca",codeExecutionStrategyReact:"code.execution.strategy.react",codeExecutionStrategyReflexion:"code.execution.strategy.reflexion",codeExecutionDeliveryModeArtifactOnly:"code.execution.deliveryMode.artifactOnly",codeExecutionDeliveryModeCommitOnly:"code.execution.deliveryMode.commitOnly",codeExecutionDeliveryModeDeployPreview:"code.execution.deliveryMode.deployPreview",codeExecutionDeliveryModePrWithChecks:"code.execution.deliveryMode.prWithChecks",codeExecutionDeliveryModePushBranch:"code.execution.deliveryMode.pushBranch",codeExecutionBlockedReasonAntiPingPong:"code.execution.blockedReason.antiPingPong",codeExecutionBlockedReasonApprovalPending:"code.execution.blockedReason.approvalPending",codeExecutionBlockedReasonMaxDispatches:"code.execution.blockedReason.maxDispatches",codeExecutionBlockedReasonNoValidTargets:"code.execution.blockedReason.noValidTargets",codeExecutionBlockedReasonStartupRecovery:"code.execution.blockedReason.startupRecovery",codeExecutionBlockedReasonUserCancelled:"code.execution.blockedReason.userCancelled",codeExecutionUnknownDeliveryMode:"code.execution.unknownDeliveryMode",codeExecutionUnknownValue:"code.execution.unknownValue",codeExecutionUnknownValueUnknown:"code.execution.unknownValueUnknown",codeExecutionControlHeader:"code.execution.controlHeader",codeExecutionControlMode:"code.execution.controlMode",codeExecutionControlDelivery:"code.execution.controlDelivery",codeExecutionControlBlocked:"code.execution.controlBlocked",codeExecutionControlApprovalPending:"code.execution.controlApprovalPending",codeExecutionControlBlockedBy:"code.execution.controlBlockedBy",codeExecutionControlTargets:"code.execution.controlTargets",codeExecutionControlReplable:"code.execution.controlTargets",codeExecutionStatusActiveLabel:"code.execution.statusActiveLabel",codeExecutionStatusIdleLabel:"code.execution.statusIdleLabel",codeExecutionStatusBlockedLabel:"code.execution.statusBlockedLabel",codeExecutionStatusRunningLabel:"code.execution.statusRunningLabel",codeExecutionStatusDoneLabel:"code.execution.statusDoneLabel",codeExecutionStatusPendingLabel:"code.execution.statusPendingLabel","codeDelivery.blocked":"code.delivery.blocked",codeDeliveryPreviewHeader:"code.delivery.previewHeader",codeDeliveryBlockerLabel:"code.delivery.blockerLabel",codeDeliveryContractLabel:"code.delivery.contractLabel",codeDeliveryErrorRepoStatusUnavailable:"code.delivery.error.repoStatusUnavailable",codeDeliveryWarningsLabel:"code.delivery.warningsLabel",codeDeliveryWarningsTitle:"code.delivery.warningsTitle",codeDeliveryHeader:"code.delivery.header",codeDeliveryLabel:"code.delivery.label",codeDeliveryLabelPreview:"code.delivery.labelPreview",codeDeliveryMetaBranch:"code.delivery.metaBranch",codeDeliveryMetaAhead:"code.delivery.metaAhead",codeDeliveryMetaBehind:"code.delivery.metaBehind",codeDeliveryMetaStaged:"code.delivery.metaStaged",codeDeliveryMetaUnstaged:"code.delivery.metaUnstaged",codeDeliveryMetaUntracked:"code.delivery.metaUntracked",codeDeliveryMetaRemote:"code.delivery.metaRemote",codeDeliveryMetaMode:"code.delivery.metaMode",codeDeliveryMetaDecision:"code.delivery.metaDecision",codeDeliveryNoCodespace:"code.delivery.noCodespace",codeDeliveryNoRepoStatus:"code.delivery.noRepoStatus",codeDeliveryNoInlinePreview:"code.delivery.noInlinePreview",codeDeliveryNoWorkspace:"code.delivery.noWorkspace",codeDeliveryPanelSubtitle:"code.delivery.panelSubtitle",codeDeliveryPanelTitle:"code.delivery.panelTitle",codeDeliveryPreviewHintUnsafe:"code.delivery.previewHintUnsafe",codeDeliveryRepoClean:"code.delivery.repoClean",codeDeliveryRepoDirty:"code.delivery.repoDirty",codeDeliveryRepoStatusHeader:"code.delivery.repoStatusHeader",codeDeliveryActionsCommitHeader:"code.delivery.actions.commitHeader",codeDeliveryActionsPushHeader:"code.delivery.actions.pushHeader",codeDeliveryActionsExportHeader:"code.delivery.actions.exportHeader",codeDeliveryActionRefresh:"code.delivery.action.refresh",codeDeliveryActionPreview:"code.delivery.action.preview",codeDeliveryActionCommit:"code.delivery.action.commit",codeDeliveryActionPush:"code.delivery.action.push",codeDeliveryActionPushPreview:"code.delivery.action.pushPreview",codeDeliveryActionPushConfirm:"code.delivery.action.pushConfirm",codeDeliveryActionPushCancel:"code.delivery.action.pushCancel",codeDeliveryActionExport:"code.delivery.action.export",codeDeliveryActionCommitPlaceholder:"code.delivery.action.commitPlaceholder",codeDeliveryConfirmationPush:"code.delivery.confirmation.push",codeDeliveryConfirmationPushHint:"code.delivery.confirmation.pushHint",codeDeliveryCommitFailed:"code.delivery.error.commitFailed",codeDeliveryPushFailed:"code.delivery.error.pushFailed",codeDeliveryExportFailed:"code.delivery.error.exportFailed",codeDeliveryStatusReady:"code.delivery.status.ready",codeDeliveryStatusBlocked:"code.delivery.status.blocked",codeDeliveryStatusUnknown:"code.delivery.status.unknown",codeDeliveryDecisionApprove:"code.delivery.decision.approve",codeDeliveryDecisionComplete:"code.delivery.decision.complete",codeDeliveryDecisionReject:"code.delivery.decision.reject",codeDeliveryDecisionReroute:"code.delivery.decision.reroute",codeDeliveryDecisionWait:"code.delivery.decision.wait",codeDeliveryUnknownBlocker:"code.delivery.unknownBlocker",codeDeliveryWarningFallback:"code.delivery.warningFallback",codePlanHeader:"code.plan.header",codePlanPanelTitle:"code.plan.panelTitle",codePlanEmpty:"code.plan.empty",codePlanReplan:"code.plan.replan",codePlanStatusBlocked:"code.plan.status.blocked",codePlanStatusDone:"code.plan.status.done",codePlanStatusPending:"code.plan.status.pending",codePlanStatusRunning:"code.plan.status.running",codePlanTitle:"code.plan.title",codePlanReplannedSuffix:"code.plan.replannedSuffix",codePlanLoadError:"code.plan.error.load",codePlanUpdateError:"code.plan.error.update",codePlanStepUpdateError:"code.plan.error.stepUpdate",codePreviewArtifactCountMany:"code.preview.artifactCountMany",codePreviewArtifactCountOne:"code.preview.artifactCountOne",codePreviewBlocked:"code.preview.blocked",codePreviewDetails:"code.preview.details",codePreviewHeader:"code.preview.header",codePreviewIframeTitle:"code.preview.iframeTitle",codePreviewNoPreview:"code.preview.noPreview",codePreviewNotInlineSafe:"code.preview.notInlineSafe",codePreviewOpenArtifact:"code.preview.openArtifact",codePreviewOpenLatestArtifact:"code.preview.openLatestArtifact",codePreviewOpenLatestPreview:"code.preview.openLatestPreview",codePreviewOpenPreview:"code.preview.openPreview",codePreviewTitle:"code.preview.title",codeRelayActionCreateRelayThread:"code.relay.action.createThread",codeRelayActionDispatching:"code.relay.action.dispatching",codeRelayActionFanOut:"code.relay.action.fanOut",codeRelayActionRefresh:"code.relay.action.refresh",codeRelayActionFanOutSelected:"code.relay.action.fanOutSelected",codeRelayAuthorKindAgent:"code.relay.authorKind.agent",codeRelayAuthorKindSystem:"code.relay.authorKind.system",codeRelayAuthorKindUnknown:"code.relay.authorKind.unknown",codeRelayAuthorKindUser:"code.relay.authorKind.user",codeRelayAvailabilityInstanceUnavailable:"code.relay.availability.instanceUnavailable",codeRelayAvailabilityProviderPathMissing:"code.relay.availability.providerPathMissing",codeRelayAvailabilityProviderPathReady:"code.relay.availability.providerPathReady",codeRelayAvailabilityRuntimeConfigUnavailable:"code.relay.availability.runtimeConfigUnavailable",codeRelayAvailabilityRuntimeReadyVia:"code.relay.availability.runtimeReadyVia",codeRelayErrorAgentRequired:"code.relay.error.agentRequired",codeRelayErrorFanOutPromptRequired:"code.relay.error.fanOutPromptRequired",codeRelayErrorThreadRequired:"code.relay.error.threadRequired",codeRelayErrorThreadTitleRequired:"code.relay.error.threadTitleRequired",codeRelayErrorMissingPayload:"code.relay.error.missingPayload",codeRelayErrorNoPayload:"code.relay.error.noPayload",codeRelayErrorRelayFailed:"code.relay.error.relayFailed",codeRelayErrorRosterUpdateFailed:"code.relay.error.rosterUpdateFailed",codeRelayErrorThreadLoadFailed:"code.relay.error.threadLoadFailed",codeRelayErrorThreadRefreshFailed:"code.relay.error.threadRefreshFailed",codeRelayErrorThreadCreateFailed:"code.relay.error.threadCreateFailed",codeRelayHeaderCodeRelay:"code.relay.header.codeRelay",codeRelayLabelContract:"code.relay.label.contract",codeRelayLabelContractLoading:"code.relay.label.contractLoading",codeRelayLabelActiveThread:"code.relay.label.activeThread",codeRelayLabelDefault:"code.relay.label.default",codeRelayLabelEnabled:"code.relay.label.enabled",codeRelayLabelEnded:"code.relay.label.ended",codeRelayLabelModel:"code.relay.label.model",codeRelayLabelNoObjective:"code.relay.label.noObjective",codeRelayLabelNoRounds:"code.relay.label.noRounds",codeRelayLabelNoThreads:"code.relay.label.noThreads",codeRelayLabelNoneYet:"code.relay.label.noneYet",codeRelayLabelObjective:"code.relay.label.objective",codeRelayLabelProven:"code.relay.label.proven",codeRelayLabelRepoPath:"code.relay.label.repoPath",codeRelayLabelRelayThreadTitle:"code.relay.label.relayThreadTitle",codeRelayLabelRepoNoBound:"code.relay.label.repoNoBound",codeRelayLabelUpdated:"code.relay.label.updated",codeRelayLabelMode:"code.relay.label.mode",codeRelayLabelOpen:"code.relay.label.open",codeRelayLabelQuotaNote:"code.relay.label.quotaNote",codeRelayLabelRoster:"code.relay.label.roster",codeRelayLabelRoundObjective:"code.relay.label.roundObjective",codeRelayLabelRoundPrompt:"code.relay.label.roundPrompt",codeRelayLabelRoundTimeline:"code.relay.label.roundTimeline",codeRelayLabelRounds:"code.relay.label.rounds",codeRelayLabelRole:"code.relay.label.role",codeRelayLabelStarted:"code.relay.label.started",codeRelayLabelStatusWaiting:"code.relay.label.statusWaiting",codeRelayStatusActive:"code.relay.status.active",codeRelayStatusAvailable:"code.relay.status.available",codeRelayStatusCompleted:"code.relay.status.completed",codeRelayStatusFailed:"code.relay.status.failed",codeRelayStatusRequested:"code.relay.status.requested",codeRelayStatusRunning:"code.relay.status.running",codeRelayStatusUnavailable:"code.relay.status.unavailable",codeRelayStatusUnknown:"code.relay.status.unknown",codeRelayStatusWaitingForAgents:"code.relay.status.waitingForAgents",codeRelayStatusWaitingForUser:"code.relay.status.waitingForUser",codeRelayModeBuild:"code.relay.mode.build",codeRelayModeDiscover:"code.relay.mode.discover",codeRelayModeDocument:"code.relay.mode.document",codeRelayModeFit:"code.relay.mode.fit",codeRelayModeHumanVerify:"code.relay.mode.humanVerify",codeRelayModeRepair:"code.relay.mode.repair",codeRelayModeReview:"code.relay.mode.review",codeRelayModeShape:"code.relay.mode.shape",codeRelayRoleCritic:"code.relay.role.critic",codeRelayRoleDrafter:"code.relay.role.drafter",codeRelayRoleIdle:"code.relay.role.idle",codeRelayRoleMainCoder:"code.relay.role.mainCoder",codeRelayRoleReviewer:"code.relay.role.reviewer",codeRelayRoleSummarizer:"code.relay.role.summarizer",codeRelayLabelThreadShell:"code.relay.label.threadShell",codeRelayLabelThreadTitle:"code.relay.label.threadTitle",codeRelayLabelPhase0:"code.relay.phase.phase0",codeRelayLabelPhase1:"code.relay.phase.phase1",codeRelayLabelPhase2:"code.relay.phase.phase2",codeRelayLabelPhaseFanOut:"code.relay.phase.fanOut",codeRelayLabelPhaseRoster:"code.relay.phase.roster",codeRelayLabelPhaseProject:"code.relay.phase.project",codeRelayLabelProjectThread:"code.relay.projectThread",codeRelayLabelProjectThreadSummary:"code.relay.projectThreadSummary",codeRelayLabelRuntimeProviderSurface:"code.relay.runtimeProviderSurface",codeRelayLabelRuntimeSurface:"code.relay.runtimeSurface",codeRelayLabelThreadProject:"code.relay.threadProject",codeRelayLabelThreadShellTitle:"code.relay.threadShellTitle",codeRelayModeParallelPrompt:"code.relay.mode.parallelPrompt",codeRelayNoObjective:"code.relay.noObjective",codeRelayNotRecorded:"code.relay.notRecorded",codeRelayOpenDiscoveryRound:"code.relay.openDiscoveryRound",codeRelayPlaceholderObjective:"code.relay.placeholder.objective",codeRelayPlaceholderOptionalRepo:"code.relay.placeholder.optionalRepo",codeRelayPlaceholderFanOutPrompt:"code.relay.placeholder.fanOutPrompt",codeRelayPlaceholderQuotaNote:"code.relay.placeholder.quotaNote",codeRelayLabelCurrentChat:"code.relay.currentChat",codeRelayLabelCreate:"code.relay.create",codeRelayDefaultThreadTitle:"code.relay.defaultThreadTitle",codeRelayLabelLoading:"code.relay.loading",codeRelayLabelProjectThreadHeader:"code.relay.projectThreadHeader",codeRelayLabelRelayToOthers:"code.relay.relayToOthers",codeRelayLabelTargetAgent:"code.relay.targetAgent",codeRelayLabelThreadLabel:"code.relay.threadLabel",codeRelayTitle:"code.relay.title",codeRelayTitleConnectorContract:"code.relay.titleConnectorContract",codeRelayTitleProjectThread:"code.relay.titleProjectThread",codeRelayTitleTimeline:"code.relay.titleTimeline",codeRelayTransportUnknown:"code.relay.transportUnknown",codeRelayTransportUnknownWithValue:"code.relay.transportUnknownWithValue",codeRelayTransportRuntimeSessionBridge:"code.relay.transportRuntimeSessionBridge",codeSidebarCodespaceLabel:"code.sidebar.codespace",codeSidebarCodeBuilderTitle:"code.sidebar.codeBuilderTitle",codeSidebarCodespacesLabel:"code.sidebar.codespaces",codeSidebarSourceCodeTask:"code.workspaceSource.codeTask",codeSidebarSourceConversationRepo:"code.workspaceSource.conversationRepo",codeSidebarSourceRuntimeCwd:"code.workspaceSource.runtimeCwd",codeRelayTitleProjectThreadSection:"code.relay.titleProjectThreadSection",codeSidebarTeamCodeLabel:"code.sidebar.teamCode",codeSidebarPeerCodeLabel:"code.sidebar.peerCode",codeSidebarNewCodeLabel:"code.sidebar.newCode",codeSidebarNoCodesYetLabel:"code.sidebar.noCodesYet",codeSidebarNoConversationsSummary:"code.sidebar.noConversationsSummary",codeRelayNoRoundsHint:"code.relay.noRoundsHint",codeSidebarLabelArtifacts:"code.sidebar.artifacts",codeSidebarLabelBuild:"code.sidebar.build",codeSidebarLabelRelay:"code.sidebar.relay",codeWorkspaceSectionCodeOutput:"code.workspace.sectionCodeOutput",codeWorkspaceSummaryBinding:"code.workspace.summary.binding",codeWorkspaceSummaryCodespace:"code.workspace.summary.codespace",codeWorkspaceSummaryKind:"code.workspace.summary.kind",codeWorkspaceSummaryOwnership:"code.workspace.summary.ownership",codeWorkspaceSummaryNoticeConversation:"code.workspace.summary.chatContext",codeWorkspaceSummaryNoBindingChat:"code.workspace.summary.noChatContext",codeWorkspaceSummaryNoChat:"code.workspace.summary.noChat",codeWorkspaceSummaryBindingConversationRepo:"code.workspace.summary.binding.conversationRepo",codeWorkspaceSummaryBindingManagedRoom:"code.workspace.summary.binding.managedRoom",codeWorkspaceSummaryBindingUserSelected:"code.workspace.summary.binding.userSelected",codeWorkspaceKindConversationRepo:"code.workspace.kind.conversationRepo",codeWorkspaceKindManagedRoom:"code.workspace.kind.managedRoom",codeWorkspaceKindUserSelected:"code.workspace.kind.userSelected",codeWorkspaceOwnershipConversationBound:"code.workspace.ownership.conversationBound",codeWorkspaceOwnershipRoomOwned:"code.workspace.ownership.roomOwned",codeWorkspaceOwnershipOwnerSelected:"code.workspace.ownership.ownerSelected",codeWorkspaceSourceTask:"code.workspace.source.task",codeWorkspaceSourceConversationRepo:"code.workspace.source.conversationRepo",codeWorkspaceSourceRuntimeCwd:"code.workspace.source.runtimeCwd",codeWorkspacesListHeader:"code.workspaces.listHeader",codeWorkspacesListNoCodespaces:"code.workspaces.listNoCodespaces",codeWorkspacesListLoading:"code.workspaces.loading",codeWorkspacesListError:"code.workspaces.error",codeWorkspacesLoadError:"code.workspaces.loadError",codeWorkspacesListSourceCodes:"code.workspaces.sourceCodes",codeWorkspacesListSourceRepo:"code.workspaces.sourceRepo",codeWorkspacesListSourceRuntime:"code.workspaces.sourceRuntime",codeWorkspacesListSourceArtifact:"code.workspaces.sourceArtifact",codeWorkspacesListAriaOpen:"code.workspaces.ariaOpen",codeWorkspaceStatusActive:"code.workspaceStatus.active",codeWorkspaceStatusArchived:"code.workspaceStatus.archived",codeWorkspaceStatusDraft:"code.workspaceStatus.draft",codeWorkspaceStatusReady:"code.workspaceStatus.ready",codeWorkspaceStatusUnknown:"code.workspaceStatus.unknown",codeWorkspaceDetailError:"code.workspaceDetail.error",codeWorkspaceDetailLoading:"code.workspaceDetail.loading",codeWorkspaceDetailTitle:"code.workspaceDetail.title",codeWorkspaceDetailNotFound:"code.workspaceDetail.notFound",codeWorkspaceDetailMissingId:"code.workspaceDetail.missingId",codeWorkspaceDetailBackToList:"code.workspaceDetail.backToList",codeWorkspaceDetailOverviewTitle:"code.workspaceDetail.overviewTitle",codeWorkspaceDetailArtifactSection:"code.workspaceDetail.artifactSection",codeWorkspaceDetailConversationsSection:"code.workspaceDetail.conversationsSection",codeWorkspaceDetailTasksSection:"code.workspaceDetail.tasksSection",codeWorkspaceDetailNoArtifacts:"code.workspaceDetail.noArtifacts",codeWorkspaceDetailNoArtifactsDesc:"code.workspaceDetail.noArtifactsDesc",codeWorkspaceDetailNoConversations:"code.workspaceDetail.noConversations",codeWorkspaceDetailNoTasks:"code.workspaceDetail.noTasks",codeWorkspaceDetailOverviewPath:"code.workspaceDetail.overviewPath",codeWorkspaceDetailOverviewSource:"code.workspaceDetail.overviewSource",codeWorkspaceDetailOverviewStatus:"code.workspaceDetail.overviewStatus",codeWorkspaceDetailOverviewLastActive:"code.workspaceDetail.overviewLastActive",codeWorkspaceDetailOverviewSummary:"code.workspaceDetail.overviewSummary",codeWorkspaceDetailNoSummary:"code.workspaceDetail.noSummary",codeWorkspaceDetailMetricConversations:"code.workspaceDetail.metric.conversations",codeWorkspaceDetailMetricTasks:"code.workspaceDetail.metric.tasks",codeWorkspaceDetailMetricArtifacts:"code.workspaceDetail.metric.artifacts",codeWorkspaceDetailMetricId:"code.workspaceDetail.metric.id",codeWorkspaceDetailOverviewNoArtifactYet:"code.workspaceDetail.overviewNoArtifacts",codeWorkspaceDetailConversationsEmpty:"code.workspaceDetail.conversationsEmpty",codeWorkspaceDetailTasksEmpty:"code.workspaceDetail.tasksEmpty",codeWorkspaceDetailTaskLabel:"code.workspaceDetail.taskLabel",codeWorkspaceDetailArtifactsHeader:"code.workspaceDetail.artifactsHeader",codeWorkspaceDetailSourceUnknown:"code.workspace.source.unknown",designSidePanelCloseLabel:"design.sidePanel.closeLabel",designAccountIdentityMenuLabel:"design.accountIdentityMenu.label",designAccountIdentityMenuMenuLabel:"design.accountIdentityMenu.menuLabel",designAccountIdentityMenuSettingsLabel:"design.accountIdentityMenu.settingsLabel",designAccountIdentityMenuEnvironmentLabel:"design.accountIdentityMenu.environmentLabel",designNotificationDismissLabel:"design.notification.dismissLabel",entityComingSoonBackToLobby:"entity.comingSoon.backToLobby",entityDetailBreadcrumbLobby:"entity.detail.breadcrumb.lobby",clowdersListTitle:"clowdersList.title",clowdersListEyebrow:"clowdersList.eyebrow",clowdersListEmptyState:"clowdersList.emptyState",catteriesListTitle:"catteriesList.title",catteriesListEyebrow:"catteriesList.eyebrow",catteriesListEmptyState:"catteriesList.emptyState",clowdersCanvasAriaLabel:"clowdersCanvas.ariaLabel",catteriesCanvasAriaLabel:"catteriesCanvas.ariaLabel",entityCanvasTotalLabel:"entityCanvas.totalLabel",entityCanvasCatsLabel:"entityCanvas.catsLabel",entityCanvasMembersLabel:"entityCanvas.membersLabel",entityCanvasClowdersLabel:"entityCanvas.clowdersLabel",entityCanvasIdLabel:"entityCanvas.idLabel",entityCanvasCreatedLabel:"entityCanvas.createdLabel",entityCanvasSelectedClowderLabel:"entityCanvas.selectedClowderLabel",entityCanvasSelectedCatteryLabel:"entityCanvas.selectedCatteryLabel",entityCanvasOrganizationLabel:"entityCanvas.organizationLabel",entityCanvasParentCatteryLabel:"entityCanvas.parentCatteryLabel",entityCanvasFormalClowderLabel:"entityCanvas.formalClowderLabel",entityCanvasNoOrganizationLabel:"entityCanvas.noOrganizationLabel",entityCanvasNoFormalClowdersLabel:"entityCanvas.noFormalClowdersLabel",entityCanvasOpenClowderAction:"entityCanvas.openClowderAction",entityCanvasOpenCatteryAction:"entityCanvas.openCatteryAction",entityCanvasCatterySubtitle:"entityCanvas.catterySubtitle",catProfileNotFoundTitle:"catProfile.notFound.title",catProfileNotFoundBody:"catProfile.notFound.body",entitiesSidebarSectionCats:"entitiesSidebar.section.cats",entitiesSidebarSectionClowders:"entitiesSidebar.section.clowders",entitiesSidebarSectionCatteries:"entitiesSidebar.section.catteries",entitiesSidebarNewCat:"entitiesSidebar.newCat",entitiesSidebarNewClowder:"entitiesSidebar.newClowder",entitiesSidebarNewCattery:"entitiesSidebar.newCattery",entityIndexEyebrow:"entityIndex.eyebrow",entityIndexTitle:"entityIndex.title",entityIndexColumnHeaderCats:"entityIndex.columnHeader.cats",entityIndexColumnHeaderClowders:"entityIndex.columnHeader.clowders",entityIndexColumnHeaderCatteries:"entityIndex.columnHeader.catteries",entityIndexCardTotal:"entityIndex.card.total",entityIndexCardOpenCanvasAriaLabel:"entityIndex.card.openCanvasAriaLabel",entitiesShellAriaLabel:"entitiesShell.ariaLabel",entitiesShellSurfaceLabel:"entitiesShell.surfaceLabel",entitiesShellBrandLabel:"entitiesShell.brandLabel",entitiesShellExitButtonAriaLabel:"entitiesShell.exitButtonAriaLabel",clowderHomeAriaLabel:"clowderHome.ariaLabel",clowderHomeChipPartOf:"clowderHome.chip.partOf",clowderHomeChipCrossUnit:"clowderHome.chip.crossUnit",clowderHomeTabCats:"clowderHome.tab.cats",clowderHomeTabSettings:"clowderHome.tab.settings",clowderHomeEmptyCats:"clowderHome.empty.cats",clowderHomeSettingsBody:"clowderHome.settings.body",clowderHomeNotFoundTitle:"clowderHome.notFound.title",clowderHomeNotFoundBody:"clowderHome.notFound.body",catteryHomeAriaLabel:"catteryHome.ariaLabel",catteryHomeTabMembers:"catteryHome.tab.members",catteryHomeTabClowders:"catteryHome.tab.clowders",catteryHomeTabCats:"catteryHome.tab.cats",catteryHomeTabSettings:"catteryHome.tab.settings",catteryHomeEmptyMembers:"catteryHome.empty.members",catteryHomeEmptyClowders:"catteryHome.empty.clowders",catteryHomeEmptyCats:"catteryHome.empty.cats",catteryHomeSettingsBody:"catteryHome.settings.body",catteryHomeNotFoundTitle:"catteryHome.notFound.title",catteryHomeNotFoundBody:"catteryHome.notFound.body"},_p={"app.brandName":"CATS INC","app.loadingWithSurface":"Loading {surface}","app.loadingEllipsis":"Loading …","app.errorTitle":"Could not start Cats","app.errorEyebrow":"Error","app.loadErrorMessage":"Failed to load","app.loadStateFailedWithStatus":"Failed to load app state ({status})","app.title":"Cats","setupWizard.adminCredentialsHint":"Use these credentials to sign in after setup. They are separate from your display profile.","setupWizard.adminIdentifierLabel":"Admin login email","setupWizard.adminIdentifierPlaceholder":"you@example.com","setupWizard.adminPasswordLabel":"Admin password","setupWizard.adminPasswordPlaceholder":"Create a password","auth.login.title":"Sign in to Cats","auth.login.subtitle":"Use the local admin credentials created during setup.","auth.login.identifierLabel":"Email","auth.login.identifierPlaceholder":"you@example.com","auth.login.passwordLabel":"Password","auth.login.passwordPlaceholder":"Enter your password","auth.login.submit":"Sign in","auth.login.submitting":"Signing in…","auth.login.invalidCredentials":"The email or password is incorrect.","auth.login.forbidden":"Sign-in is temporarily blocked or not allowed.","auth.login.csrfMismatch":"Security token mismatch. Refresh and try again.","auth.login.failed":"Sign-in failed.","auth.login.failedWithStatus":"Sign-in failed ({status}).","auth.login.googleOriginHint":"Google sign-in only works on authorized Google JavaScript origins. If this LAN/IP origin is not authorized, use local admin credentials.","auth.login.googleUnavailable":"Google sign-in is unavailable on this origin. Use local admin credentials or open Cats from an authorized origin.","auth.repair.title":"Repair Cats authentication","auth.repair.subtitle":"Cats found setup-complete state but cannot read a usable auth state file. Recreate the first local Admin account to unlock this workspace.","auth.repair.displayNameLabel":"Owner display name","auth.repair.displayNamePlaceholder":"Owner","auth.repair.identifierLabel":"Admin login email","auth.repair.identifierPlaceholder":"you@example.com","auth.repair.passwordLabel":"Admin password","auth.repair.passwordPlaceholder":"Create a replacement password","auth.repair.recoveryTokenLabel":"Recovery token","auth.repair.recoveryTokenPlaceholder":"Required recovery token","auth.repair.recoveryTokenHint":"Required for every repair. Read it from the local auth-recovery-token file printed at startup.","auth.repair.submit":"Repair and sign in","auth.repair.submitting":"Repairing…","auth.repair.forbidden":"Repair requires the one-time recovery token.","auth.repair.failed":"Repair failed.","auth.repair.failedWithStatus":"Repair failed ({status}).","appHost.label":"App","appHost.notInstalledTitle":"App not installed","appHost.backToLobby":"Back to Lobby","appHost.subtitleRendererPending":"App renderer pending","appHost.subtitleDisabled":"App disabled","appHost.sectionPackage":"Package","appHost.sectionStatus":"Status","appHost.sectionPublisher":"Publisher","shared.productRenderer.errorEyebrow":"Renderer Error","shared.productRenderer.chatUnavailableTitle":"Chat unavailable","shared.productRenderer.unknownError":"Unknown renderer error.","shared.product.bootLoadingAria":"Loading Cats {productName}","platform.product.chat.name":"Cats Chat","platform.product.chat.subtitle":"Conversations with companions and personal agents","platform.product.chat.settingsLabel":"Chat","platform.product.code.name":"Cats Code","platform.product.code.subtitle":"Repos, runs, and codespaces","platform.product.code.settingsLabel":"Code","platform.product.work.name":"Cats Work","platform.product.work.subtitle":"Projects, approvals, and operator workflow","platform.product.work.settingsLabel":"Work","lobby.accountSettingsAriaLabel":"Account settings","lobby.openAccountSettings":"Open account settings","lobby.runtimeStatusLabel":"Runtime status: {runtimeStatus}","lobby.productsSectionTitle":"Products","lobby.appsSectionTitle":"Apps","lobby.continueText":"Continue","lobby.openEntry":"Open {entryTitle}","lobby.greeting.chooseSurface":"Choose a surface and get moving.","lobby.greeting.homeReady":"Home base is ready.","lobby.greeting.pickProduct":"Chat, Work, or Code. Your call.","lobby.greeting.everythingStaged":"Everything is staged. Pick a lane.","lobby.greeting.openSurface":"Open the surface that fits the task.","lobby.greeting.awake":"Cats Inc is awake.","lobby.greeting.continue":"Continue where the work makes sense.","shared.runtimeStatus.tooltip.ready":"Cats Runtime is connected","shared.runtimeStatus.tooltip.degraded":"Cats Runtime is starting up","shared.runtimeStatus.tooltip.unavailable":"Cats Runtime is offline","shared.runtimeStatus.tooltip.unknown":"Checking Cats Runtime status…","shared.runtimeStatus.chip.ready":"Runtime connected","shared.runtimeStatus.chip.degraded":"Runtime degraded","shared.runtimeStatus.chip.unavailable":"Runtime unavailable","settings.general.profileTitle":"Profile","settings.general.profileDescription":"This is your platform-wide profile across Chat, Code, Work, and Lobby.","settings.general.avatarLabel":"Avatar","settings.general.avatarChangeLabel":"Change avatar","settings.general.avatarUploadLabel":"Upload avatar","settings.general.avatarRemoveLabel":"Remove avatar","settings.general.nameLabel":"Name","settings.general.accountTitle":"Account","settings.general.accountDescription":"End the current browser session on this device.","settings.general.signOutButton":"Sign out","settings.general.signingOutButton":"Signing out…","settings.general.signOutFailed":"Sign-out failed.","settings.general.signOutFailedWithStatus":"Sign-out failed ({status}).","settings.general.signOutCsrfError":"Security token mismatch. Refresh and try again.","settings.general.signOutForbiddenError":"Sign-out is not allowed right now.","settings.general.signOutUnauthenticated":"You are already signed out.","settings.account.signedInAs":"Signed in as {name}","settings.account.loginMethodsTitle":"Sign-in methods","settings.account.localPasswordLabel":"Local password","settings.account.localPasswordDescription":"Works offline and on a local network address, so it stays available when Google cannot be used.","settings.account.localPasswordLinked":"Set up","settings.account.localPasswordMissing":"Not set up","settings.account.googleLabel":"Google","settings.account.googleDescription":"Sign in with a linked Google account. Linking asks for your password first.","settings.account.googleLinkedStatus":"Linked · {email}","settings.account.googleNotLinkedStatus":"Not linked","settings.account.googleUnavailableStatus":"Unavailable","settings.account.googleUnavailableHint":"Google sign-in is not configured for this address. Open Cats from an authorized origin to link an account.","settings.account.googleLinkButton":"Link Google account","settings.account.googleUnlinkButton":"Unlink Google account","settings.account.googleLinkingLabel":"Linking…","settings.account.googleUnlinkingLabel":"Unlinking…","settings.account.reauthTitle":"Confirm your password","settings.account.reauthLinkDescription":"Enter your local password to link a Google account.","settings.account.reauthUnlinkDescription":"Enter your local password to unlink your Google account.","settings.account.reauthPasswordLabel":"Password","settings.account.reauthPasswordPlaceholder":"Your local password","settings.account.reauthSubmit":"Confirm","settings.account.reauthSubmitting":"Confirming…","settings.account.reauthCancel":"Cancel","settings.account.googleContinueTitle":"Continue with Google","settings.account.googleContinueDescription":"Choose the Google account to link. It must use the same email as this Cats account.","settings.account.unlinkWarning":"Unlinking signs out your other browsers and mobile devices. This device stays signed in.","settings.account.reauthFailed":"Could not confirm your password.","settings.account.reauthFailedWithStatus":"Could not confirm your password ({status}).","settings.account.reauthInvalidPassword":"That password is incorrect.","settings.account.reauthRequired":"Password confirmation expired. Try again.","settings.account.linkFailed":"Could not link the Google account.","settings.account.linkFailedWithStatus":"Could not link the Google account ({status}).","settings.account.linkConflict":"That Google account cannot be linked. Check that its email matches this account.","settings.account.unlinkFailed":"Could not unlink the Google account.","settings.account.unlinkFailedWithStatus":"Could not unlink the Google account ({status}).","settings.account.unlinkConflict":"Google cannot be unlinked because no other sign-in method would remain.","settings.account.googleUnavailableError":"Google sign-in is unavailable right now.","settings.general.languageTitle":"Language","settings.general.languageDescription":"Choose how assistants answer and how Cats displays its interface.","settings.general.assistantLanguagePreferenceLabel":"Assistant response language","settings.general.assistantLanguagePreferenceDescription":"Sets the default language instruction for assistant replies. User requests in a turn still take priority.","settings.general.assistantLanguageSelectAriaLabel":"Assistant response language","settings.general.assistantLanguageUnspecifiedOption":"Unspecified","settings.general.languagePreferenceLabel":"Display language","settings.general.languagePreferenceDescription":"Auto-detect follows your browser or desktop language. Named languages are shown in their own language.","settings.general.languageSelectAriaLabel":"Display language","settings.general.languageAutoOption":"Auto-detect","settings.general.languageEnglishOption":"English","settings.general.languageTraditionalChineseOption":"Traditional Chinese","settings.general.lobbyMotionTitle":"Lobby motion","settings.general.lobbyMotionDescription":"Choose how lively the Lobby background should feel. Reduced is the default.","settings.general.lobbyMotionOffLabel":"Off","settings.general.lobbyMotionOffDescription":"Keep the Lobby still and remove the bouncing cats background.","settings.general.lobbyMotionReducedLabel":"Reduced","settings.general.lobbyMotionReducedDescription":"Keep the background alive, but soft and slow.","settings.general.lobbyMotionFullLabel":"Full","settings.general.lobbyMotionFullDescription":"Let the cats bounce at full speed in the Lobby background.","settings.general.guideCatAssistTitle":"Guide Cat assist","settings.general.guideCatAssistDisabledDescription":"{guideCatName} is disabled. Enable it again from Settings > Assistants when you want {guideCatName} help back.","settings.general.guideCatAssistEnabledDescription":"Choose how {guideCatName} appears when you click the floating avatar.","settings.general.openAssistantsButton":"Open Assistants","settings.general.guideCatAutoLabel":"Auto","settings.general.guideCatAutoDescription":"First time shows a speech bubble, then switches to a full side panel.","settings.general.guideCatSidePanelLabel":"Side panel","settings.general.guideCatSidePanelDescription":"Always open a full side panel when you click the guide cat avatar.","settings.general.guideCatBubbleLabel":"Speech bubble","settings.general.guideCatBubbleDescription":"Always show a compact speech bubble with quick actions.","settings.general.updateNameError":"Failed to update name","settings.general.updateAssistantLanguageError":"Failed to update assistant language","settings.general.updateLanguageError":"Failed to update language","settings.general.updateLobbyAnimationError":"Failed to update Lobby motion","settings.general.updateGuideCatModeError":"Failed to update Guide Cat mode","settings.general.removeAvatarError":"Failed to remove avatar","settings.general.saveAvatarError":"Failed to save avatar","settings.shell.heading":"Settings","settings.shell.sectionGeneral":"General","settings.shell.sectionCats":"Cats","settings.shell.subsectionMyCats":"My Cats","settings.shell.subsectionAssistants":"Assistants","settings.shell.sectionApps":"Apps","settings.shell.sectionDesktop":"Desktop","settings.shell.sectionRuntime":"Runtime","settings.shell.sectionData":"Data","settings.shell.closeButtonLabel":"Close settings","settings.chat.bossToolProfileTitle":"Boss Cat tool profile","settings.chat.bossToolProfileUpdateFailure":"Failed to update Boss Cat tool profile","settings.chat.advancedControlsFailure":"Failed to update chat advanced controls","settings.conversation.productLabelChat":"Cats Chat","settings.conversation.productLabelCode":"Cats Code","settings.conversation.productLabelWork":"Cats Work","settings.conversation.behaviorTitle":"Conversation behavior","settings.conversation.behaviorDescription":"These settings affect {product} only.","settings.conversation.showVerboseLabel":"Show verbose messages","settings.conversation.showVerboseDescription":"Keep system-level room and orchestration messages visible in chat.","settings.conversation.showLiveProgressLabel":"Show live progress details","settings.conversation.showLiveProgressDescription":"Show more granular progress updates while a response is still running.","settings.conversation.updateFailure":"Failed to update conversation behavior","settings.conversation.concurrentLayoutLabel":"Concurrent response layout","settings.conversation.concurrentLayoutDescription":"Choose how multi-model replies are arranged in {product}.","settings.conversation.layoutInlineStack":"Inline stack","settings.conversation.layoutCompareCards":"Compare cards","settings.conversation.layoutFocusRail":"Focus rail","settings.conversation.layoutAdaptive":"Adaptive","settings.advancedDraftControls.title":"Draft builder","settings.advancedDraftControls.description":"Let any {surface} draft add collaborators or compare against other models.","settings.advancedDraftControls.enableLabel":"Enable advanced draft controls","settings.advancedDraftControls.toggleDescription":"Shows whichever +collaborate or +compare button each draft entry hides by default.","settings.runtime.statusChip.runtimeUnavailable":"Runtime unavailable","settings.runtime.statusChip.runtimeDegraded":"Runtime degraded","settings.runtime.statusChip.runtimeReady":"Runtime ready","settings.runtime.statusChip.setupReadyToApply":"Setup ready to apply","settings.runtime.statusChip.setupNeedsRemediation":"Setup needs remediation","settings.runtime.statusChip.providerScanRequired":"Provider scan required","settings.runtime.statusChip.setupUnavailable":"Setup unavailable","settings.runtime.statusTitle":"Runtime status","settings.runtime.statusDescription":"Whether cats-runtime is reachable and your provider setup is complete. The breakdown below shows how many providers are currently usable.","settings.runtime.metricReadyProviders":"ready providers","settings.runtime.metricProvidersScanned":"providers scanned","settings.runtime.metricNeedAttention":"need attention","settings.runtime.needAttentionTitle":"Need attention","settings.runtime.needAttentionDescription":"Providers the scan flagged for remediation before they can join the runtime.","settings.runtime.providerHelpersTitle":"Provider helpers","settings.runtime.providerHelpersDescription":"Run packaged installers to check, install, upgrade, repair, or uninstall each local CLI provider. Actions stream through the desktop host bridge; the renderer never executes scripts directly.","settings.runtime.loadingHelpers":"Loading helpers…","settings.runtime.noProviderHelpers":"No provider helpers are bundled with this host build.","settings.runtime.workingState":"Working…","settings.runtime.actions.check":"Check","settings.runtime.actions.install":"Install","settings.runtime.actions.upgrade":"Upgrade","settings.runtime.actions.repair":"Repair","settings.runtime.actions.uninstall":"Uninstall","settings.runtime.uninstallButtonLabel":"Uninstall","settings.runtime.modelCatalogsTitle":"Model catalogs","settings.runtime.modelCatalogsDescription":"Ask cats-runtime to refresh every provider's model list now, so newly released models show up in the Brain picker without waiting for the background caches to expire.","settings.runtime.refreshingState":"Refreshing","settings.runtime.refreshCatalogsButton":"Refresh model catalogs","settings.runtime.standaloneSetupTitle":"Standalone setup","settings.runtime.standaloneSetupDescription":"Open the standalone runtime setup when you need provider remediation or a deeper scan.","settings.runtime.openStandaloneSetup":"Open Cats Runtime setup","settings.runtime.browserHandoffError":"Cats could not open Runtime setup in your browser. Please try again.","settings.runtime.cancelActionLabel":"Cancel","settings.runtime.cancelActionFallbackLabel":"Close","settings.runtime.refreshFailure":"Refresh failed.","settings.runtime.refreshFailureWithStatus":"Refresh failed ({status}).","settings.runtime.refreshSummary":"Refreshed {refreshed} target{pluralSuffix}","settings.runtime.refreshSummaryWithFailures":"Refreshed {refreshed} · {failed} failed","settings.runtime.uninstallTitle":"Uninstall {label}","settings.runtime.uninstallDescriptionPrefix":"This will remove user-owned files for","settings.runtime.uninstallDescriptionSuffix":"Auth files, API keys, and external configuration are left in place. Active sessions using this provider may fail until another provider is configured.","settings.runtime.uninstallHelperLabel":"Helper: {helperId}","settings.runtime.uninstallScriptLabel":"Script: {scriptPath}","settings.runtime.computingPlannedRemovals":"Computing planned removals…","settings.runtime.previewUnavailable":"Preview unavailable; the uninstall will still report planned actions.","settings.runtime.nothingToRemove":"Nothing to remove — the helper reports this provider is not installed.","settings.runtime.systemInstallDetected":"Note: a system install was detected at {installPath} but it cannot be removed by this helper.","settings.runtime.willRemoveItems":"Will remove {itemCount} item{pluralSuffix}:","settings.runtime.systemInstallCannotRemove":"Note: a system install at {installPath} cannot be removed by this helper.","settings.runtime.actionNoResult":"{helperLabel}: host did not report a result for {actionLabel}.","settings.runtime.actionSuccessComplete":"{helperLabel}: {actionLabel} complete.","settings.runtime.actionSuccessNothingToRemove":"{helperLabel}: {actionLabel} reported nothing to remove.","settings.runtime.actionPartialWithDetail":"{helperLabel}: {actionLabel} {status} - {detail}","settings.runtime.actionPartial":"{helperLabel}: {actionLabel} {status}.","settings.runtime.actionFailedWithDetail":"{helperLabel}: {actionLabel} failed - {detail}.","settings.runtime.actionFailed":"{helperLabel}: {actionLabel} failed.","settings.runtime.hostBridgeUnavailableClient":"Desktop host bridge is not available in this client.","settings.runtime.hostBridgeUnavailable":"Desktop host bridge is not available.","settings.runtime.previewMissingResult":"Host did not return a preview result.","settings.runtime.previewFailed":"Preview failed.","settings.runtime.fixStepCount":"{count} fix step{pluralSuffix}","settings.runtime.helperLabel.windowsCliReadiness":"Windows PowerShell + PATH readiness helper","settings.runtime.helperLabel.windowsVcRedist":"Windows Microsoft Visual C++ 2015-2022 Redistributable (x64)","settings.runtime.helperLabel.nodeHostInstaller":"{platform} Node.js LTS host installer","settings.runtime.helperLabel.githubCliHostInstaller":"{platform} GitHub CLI host installer","settings.runtime.helperLabel.npmPrefixHelper":"{platform} npm prefix and PATH prerequisite helper","settings.runtime.helperLabel.setupReadinessAudit":"{platform} setup readiness audit","settings.runtime.helperLabel.packagedBackgroundProcessHelper":"{platform} packaged setup background process helper","settings.runtime.helperLabel.packagedProviderUninstallHelper":"{platform} packaged provider uninstall helper","settings.runtime.helperLabel.packagedNpmGlobalCliInstallerHelper":"{platform} packaged npm-global CLI installer helper","settings.runtime.helperLabel.nativeProviderInstaller":"{platform} native {providerLabel} installer","settings.runtime.helperLabel.providerInstaller":"{platform} {providerLabel} installer","settings.runtime.helperLabel.localModelInstaller":"{platform} {providerLabel} local-model installer","settings.runtime.helperUnavailableReason":"{helperLabel} is not currently bundled with this host build.","settings.runtime.helperUnsupportedPlatformReason":"{helperLabel} is currently only supported on {platformSupport}.","settings.runtime.platformSupport.allDesktop":"Windows, macOS, or Linux hosts","settings.runtime.platformSupport.windows":"Windows hosts","settings.runtime.platformSupport.windowsWsl":"Windows hosts with WSL support","settings.runtime.platformSupport.macos":"macOS hosts","settings.runtime.platformSupport.linux":"Linux hosts","settings.runtime.helperUnsupportedActionReason":"{helperLabel} does not support {actionLabel}.","settings.runtime.lifecycleStatus.authRequired":"authentication required","settings.runtime.lifecycleStatus.blocked":"blocked","settings.runtime.lifecycleStatus.changesRequired":"changes required","settings.runtime.lifecycleStatus.failed":"failed","settings.runtime.lifecycleStatus.notInstalled":"not installed","settings.runtime.lifecycleStatus.preview":"preview","settings.runtime.lifecycleStatus.ready":"ready","settings.runtime.lifecycleStatus.restartRequired":"restart required","settings.runtime.lifecycleStatus.uninstalled":"uninstalled","settings.runtime.lifecycleDetail.launchWslFirstBoot":"Launch the target WSL distro once to finish first-user setup, then rerun the packaged setup check.","settings.runtime.lifecycleDetail.startDockerWarmUp":"Start Docker Desktop and wait for the engine to become ready, then rerun the packaged setup check.","settings.runtime.lifecycleDetail.runMissingHostSubstrate":"Run {helperLabel} to install the missing host substrate flagged by the readiness audit.","settings.runtime.lifecycleDetail.restartThenRerunMode":"Restart the host or Windows session, then rerun {helperLabel} in {mode} mode.","settings.runtime.lifecycleDetail.restartThenRerun":"Restart Windows or the current session, then rerun {helperLabel}.","settings.runtime.lifecycleDetail.relaunchThenVerify":"Relaunch Cats Desktop Host, then rerun {helperLabel} to verify the updated packaged setup state.","settings.runtime.lifecycleDetail.elevationRequired":"{helperLabel} requires an elevated host step before it can continue.","settings.runtime.lifecycleDetail.authThenRerunMode":"Complete the required sign-in flow, then rerun {helperLabel} in {mode} mode.","settings.runtime.lifecycleDetail.retryAfterFailure":"Retry {helperLabel} after addressing the last failure.","settings.runtime.lifecycleDetail.runMissingRequirement":"Run {helperLabel} to install the missing packaged setup requirement.","settings.runtime.lifecycleDetail.finishManualFollowThrough":"Finish the manual follow-through for {helperLabel}, then rerun a verification step.","settings.runtime.lifecycleDetail.runApplyRemainingChanges":"Run {helperLabel} again to apply the remaining packaged setup changes.","settings.runtime.lifecycleDetail.rerunCheckToVerify":"Rerun {helperLabel} in check mode if you want to verify the packaged setup state again.","settings.runtime.lifecycleDetail.finishedWithStatus":"{helperLabel} {mode} finished with {status}.","settings.runtime.lifecycleMode.apply":"apply","settings.runtime.lifecycleMode.check":"check","settings.runtime.lifecycleMode.force":"force","settings.runtime.lifecycleMode.uninstall":"uninstall","settings.runtime.lifecycleMode.upgrade":"upgrade","settings.route.title.assistants":"Assistants","settings.route.title.myCats":"My Cats","settings.route.title.chat":"Chat","settings.route.title.work":"Work","settings.route.title.code":"Code","settings.route.title.apps":"Apps","settings.route.title.desktop":"Desktop","settings.route.title.runtime":"Runtime","settings.route.title.data":"Data","settings.route.title.general":"General","settings.route.title.notFound":"Settings page not found","settings.route.notFound.description":"This settings page is not registered in the current Cats build.","settings.route.notFound.openGeneral":"Open General settings","settings.canvas.loadingLabel":"Loading settings…","settings.canvas.loadErrorTitle":"Couldn’t load settings","settings.canvas.loadErrorBody":"The platform service didn’t respond. Check that the runtime is up and try again.","settings.apps.sectionTitle":"Apps","settings.apps.sectionDescription":"Installed Cats apps, connector packages, and system modules.","settings.apps.installedPackagesLabel":"Installed packages","settings.apps.installedPackagesDescription":"{count} connector package{pluralSuffix}","settings.apps.noInstalledAppsLabel":"Installed apps","settings.apps.noInstalledAppsDescription":"No installed apps are registered yet.","settings.apps.emptyStateChipLabel":"Empty","settings.apps.localInstallTitle":"Local install","settings.apps.localInstallDescription":"Review a local Cats app package before adding it to Cats.","settings.apps.packagePathLabel":"Package path","settings.apps.packagePathPlaceholder":"/path/to/cats-app-package","settings.apps.reviewButton":"Review","settings.apps.readyStatusChip":"Ready","settings.apps.needsReviewStatusChip":"Needs review","settings.apps.noLobbyRoute":"No Lobby route","settings.apps.installButton":"Install","settings.apps.enableAction":"Enable","settings.apps.disableAction":"Disable","settings.apps.uninstallAction":"Uninstall","settings.apps.openAction":"Open","settings.apps.settingsAction":"Settings","settings.apps.uninstallTitle":"Uninstall app","settings.apps.enableTitle":"Enable app","settings.apps.disableTitle":"Disable app","settings.apps.uninstallMessage":'Uninstall "{appDisplayName}"? It will be removed from Cats without deleting package files.',"settings.apps.enableMessage":'Enable "{appDisplayName}"? It can appear in Cats wherever its permissions allow.',"settings.apps.disableMessage":'Disable "{appDisplayName}"? It will stop appearing in Lobby and scoped app routes.',"settings.apps.installTitle":"Install app","settings.apps.installMessage":'Install "{appDisplayName}"? It will be enabled after install.',"settings.apps.localInstallReady":"Ready","settings.apps.localInstallNeedsReview":"Needs review","settings.apps.category.connector":"Connector","settings.apps.category.productModule":"Product module","settings.apps.category.userApp":"User app","settings.apps.installState.enabled":"Enabled","settings.apps.installState.installed":"Installed","settings.apps.installState.disabled":"Disabled","settings.apps.installState.error":"Error","settings.apps.installState.upgradePending":"Upgrade pending","settings.apps.installState.uninstalled":"Uninstalled","settings.apps.trustTier.localUser":"Local user","settings.apps.trustTier.system":"System","settings.apps.trustTier.thirdParty":"Third party","settings.apps.permissionCount":"{count} permission{pluralSuffix}","settings.apps.toolCount":"{count} tool{pluralSuffix}","settings.apps.capabilitySingular":"capability","settings.apps.capabilityPlural":"capabilities","settings.apps.connectorCountSingle":"{connector}: {count} {capabilityLabel}","settings.apps.connectorCountMany":"{connectorCount} connectors, {count} {capabilityLabel}","settings.apps.authLabel":"Auth","settings.apps.confirmMutationFailed":"Could not confirm the action. Please retry.","settings.apps.confirmMutationFailedFallback":"Action confirmation failed before execution.","settings.apps.mutationFailed":"{action} failed.","settings.apps.mutationFailedFallback":"The action failed.","settings.apps.packagePathRequired":"Package path is required.","settings.apps.validationFailed":"Package validation failed.","settings.apps.error.notInstalled":'Cats app "{appId}" is not installed.',"settings.apps.error.notEnabled":'Cats app "{appId}" is not enabled.',"settings.apps.error.packagePathNotFound":"Package path does not exist: {path}.","settings.apps.error.invalidManifestJson":"cats.app.json is not valid JSON.","settings.apps.error.cannotReadManifest":"Cannot read cats.app.json.","settings.apps.error.reservedAppId":'Cats app id "{appId}" is reserved.',"settings.apps.error.duplicateAppId":'Cats app id "{appId}" is already installed.',"settings.apps.error.manifestInvalid":"Cats app manifest must be an object.","settings.apps.error.validationIssueWithPath":"Package validation failed at {path}: {code}.","settings.apps.error.validationIssue":"Package validation failed: {code}.","settings.apps.openPairingUrl":"Open pairing URL","settings.data.resetAllDataTitle":"Reset all data","settings.data.resetAllDataDescription":"This will erase all chats, cats, platform preferences, and setup state. You will be returned to the setup wizard.","settings.data.resetButtonResetting":"Resetting...","settings.data.resetButtonLabel":"Reset all data","settings.data.resetFailure":"Failed to reset setup.","settings.conversation.preferenceUpdateFailure":"Failed to update preference.","settings.desktop.mobilePairingTitle":"Mobile pairing","settings.desktop.mobilePairingDescription":"LAN readiness for the bundled Expo Go mobile shell.","settings.desktop.mobilePairingStatusDisabled":"Disabled","settings.desktop.mobilePairingStatusLoopbackOnly":"Loopback only","settings.desktop.mobilePairingStatusNoLanAddress":"No LAN address","settings.desktop.mobilePairingStatusReady":"Ready","settings.desktop.mobilePairingStatusValidationPending":"Manifest validation pending","settings.desktop.mobilePairingEnableLabel":"Enable mobile pairing","settings.desktop.mobilePairingEnableDescription":"Writes the desktop .env values needed for LAN access. Restart Cats Desktop after applying.","settings.desktop.mobilePairingEnableButton":"Enable","settings.desktop.mobilePairingApplyingButton":"Applying...","settings.desktop.mobilePairingBindLabel":"Bind","settings.desktop.mobilePairingReachabilityLabel":"Reachability","settings.desktop.mobilePairingLanAddressLabel":"LAN address","settings.desktop.mobilePairingNoneLabel":"None","settings.desktop.mobilePairingReachabilityLoopback":"Loopback","settings.desktop.mobilePairingReachabilityLan":"LAN address","settings.desktop.mobilePairingReachabilityAllInterfaces":"All interfaces","settings.desktop.mobilePairingReachabilityOtherInterface":"Interface mismatch","settings.desktop.mobilePairingAllowLanLabel":"Allow LAN access","settings.desktop.mobilePairingAllowLanDescription":"Cats is bound to loopback. Restart with {bindOverrideEnv} before scanning from a phone.","settings.desktop.mobilePairingApplyAndRestartButton":"Apply and restart","settings.desktop.mobilePairingNoLanAddressNote":"No non-loopback LAN IPv4 address was detected.","settings.desktop.mobilePairingHostMismatchNote":"The current bind host does not match a LAN IPv4 address.","settings.desktop.mobilePairingDiagnosticLabel":"Diagnostic manifest","settings.desktop.mobilePairingDiagnosticCopyButton":"Copy URL","settings.desktop.mobilePairingDiagnosticCopiedMessage":"Copied diagnostic manifest URL.","settings.desktop.mobilePairingExpoUrlLabel":"Expo Go URL","settings.desktop.mobilePairingExpoUrlCopiedMessage":"Copied Expo Go URL.","settings.desktop.mobilePairingCopyUrlButton":"Copy URL","settings.desktop.mobilePairingQrUrlTooLong":"URL too long","settings.desktop.mobilePairingQrCodeLabel":"Mobile pairing QR code","settings.desktop.mobilePairingNoPairingUrlStatus":"QR pending","settings.desktop.mobilePairingOpenPairingUrlLabel":"Open pairing URL","settings.desktop.mobilePairingCopyEnvValuesSuccess":"Copied mobile pairing env values.","settings.desktop.mobilePairingConfirmRestart":"Apply 0.0.0.0 binding and restart Cats Desktop now? Unsaved changes will be lost.","settings.desktop.mobilePairingDesktopUpdateSuccess":"Updated {envPath}. Restarting Cats Desktop…","settings.desktop.mobilePairingDesktopUpdateFailure":"Failed to update desktop env.","settings.desktop.updatesTitle":"App updates","settings.desktop.updatesDescription":"Check for and install Cats desktop updates. Downloads never start on their own.","settings.desktop.updatesCurrentVersionLabel":"Installed version","settings.desktop.updatesChannelLabel":"Release channel","settings.desktop.updatesLastCheckedLabel":"Last checked","settings.desktop.updatesLastCheckedNever":"Not checked yet","settings.desktop.updatesAvailableVersionLabel":"Available version","settings.desktop.updatesStatusUnavailable":"Updates unavailable","settings.desktop.updatesStatusIdle":"Ready to check","settings.desktop.updatesStatusChecking":"Checking","settings.desktop.updatesStatusUpToDate":"Up to date","settings.desktop.updatesStatusAvailable":"Update available","settings.desktop.updatesStatusDownloading":"Downloading","settings.desktop.updatesStatusDownloaded":"Ready to install","settings.desktop.updatesStatusInstalling":"Installing","settings.desktop.updatesStatusFailed":"Update failed","settings.desktop.updatesActionCheck":"Check for Updates","settings.desktop.updatesActionChecking":"Checking…","settings.desktop.updatesActionDownload":"Download Update","settings.desktop.updatesActionDownloading":"Downloading…","settings.desktop.updatesActionRestartInstall":"Restart and Install","settings.desktop.updatesActionInstalling":"Installing…","settings.desktop.updatesToastUpToDate":"Cats is already up to date.","settings.desktop.updatesWindowsInstallerNotice":"Cats will close and the Windows installer will open. You may be asked to confirm the installation folder.","settings.desktop.updatesLinuxInstallerNotice":"Cats will close and the update will be installed with dpkg, which asks for your password.","settings.desktop.updatesPreviewNotice":"This is an unsigned preview build. Updates are for testing the release flow and are not a supported installation.","settings.desktop.updatesErrorOffline":"Cats could not reach the update service.","settings.desktop.updatesErrorTimeout":"The update service did not respond in time.","settings.desktop.updatesErrorProviderRejected":"The update service rejected the request.","settings.desktop.updatesErrorMetadataInvalid":"The update information could not be read.","settings.desktop.updatesErrorChecksumMismatch":"The downloaded update failed its integrity check.","settings.desktop.updatesErrorSignatureRejected":"The downloaded update failed its signature check.","settings.desktop.updatesErrorUnsupportedPackage":"This installation cannot update itself.","settings.desktop.updatesErrorDownloadCancelled":"The update download was cancelled.","settings.desktop.updatesErrorInstallHandoffFailed":"Cats could not open the installer.","settings.desktop.updatesErrorUnknown":"The update could not be completed.","settings.desktop.startupTitle":"Startup behavior","settings.desktop.startupDescription":"Control whether Cats Desktop starts when you sign in, whether it opens the main window automatically after sign-in startup, and whether closing the window keeps Cats available in the system tray.","settings.desktop.startupSignInLabel":"Start Cats Desktop when you sign in to your computer","settings.desktop.startupSignInDescription":"Keep Cats Desktop ready in the background as soon as you sign in.","settings.desktop.startupTrayLabel":"Keep Cats in the system tray when you close the window","settings.desktop.startupTrayDescription":"When enabled, closing the window hides Cats and keeps it running. When disabled, closing the window quits Cats.","settings.desktop.startupOpenWindowLabel":"Open Cats after sign-in startup","settings.desktop.startupOpenWindowDescription":"When disabled, Cats can start in the background after you sign in without opening the main window automatically. Opening Cats yourself still shows the app.","work.newChatDraft.startProjectChipLabel":"Start a project","work.newChatDraft.startProjectPrompt":"Spin up a new project workspace and outline its milestones.","work.newChatDraft.addTaskChipLabel":"Add a task","work.newChatDraft.addTaskPrompt":"Capture a new task with owner, deadline, and priority.","work.newChatDraft.planSprintChipLabel":"Plan a sprint","work.newChatDraft.planSprintPrompt":"Plan the next sprint with goals and a delivery cadence.","work.newChatDraft.scheduleReviewChipLabel":"Schedule a review","work.newChatDraft.scheduleReviewPrompt":"Schedule a project review with the right cats invited.","work.newChatDraft.triageBacklogChipLabel":"Triage backlog","work.newChatDraft.triageBacklogPrompt":"Walk the backlog with me and triage what to ship next.","work.items.listTitle":"Work items","work.items.newAction":"New work item","work.items.importExternalIssueAction":"Import issue","work.items.importExternalIssueAriaLabel":"Import external issue","work.items.createNewWorkItem":"New work item","work.items.createNewWorkItemAriaLabel":"Create new work item","work.items.loading":"Loading work items…","work.items.loadError":"Failed to load work items: {errorMessage}","work.items.emptyIntro":"No work items yet. Click","work.items.emptyActionLabel":"New work item","work.items.emptySuffix":"to create one.","work.items.projectPrefix":"in {projectTitle}","work.items.projectOrphan":"orphan","work.items.pill.decision":"decision","work.items.pill.blocked":"blocked","work.items.tasksLabel":"tasks","work.items.openWorkItemAriaLabel":"Open work item {title}","work.items.parentWorkItemTooltip":"Parent work item: {parentTitle}","work.item.backLabel":"Work items","work.item.backArrowLabel":"← Work items","work.item.updatedAtPrefix":"updated {updatedAt}","work.item.deleteLabel":"Delete work item","work.item.deleteLabelBusy":"Deleting…","work.item.deleteConfirmation":`Delete work item "{title}"?
5
+
6
+ This cannot be undone. Linked tasks, runs, and missions are not removed.`,"work.item.deleteConfirmationDetail":"This change is permanent and will remove the selected work item from the current projection.","work.item.deleteError":"Failed to delete work item.","work.item.overviewTitle":"Overview","work.item.summaryLabel":"Summary","work.item.projectLabel":"Project","work.item.parentLabel":"Parent work item","work.item.ownerLabel":"Owner","work.item.conversationLabel":"Conversation","work.item.orphanSummaryFallback":"(orphan — no project linked)","work.item.noTasksLabel":"No tasks under this work item yet.","work.item.tasksTitle":"Tasks","work.item.missionsTitle":"Missions","work.item.subWorkItemsTitle":"Sub-work-items","work.item.noSubWorkItems":"No sub-work-items.","work.item.noMissions":"No missions for this work item.","work.item.subWorkItemsCountLabel":"Sub-work-items","work.item.noActivity":"No activity recorded for this work item.","work.item.activityTitle":"Activity","work.item.loadingLabel":"Loading work item…","work.item.notFoundTitle":"Not found","work.item.notFoundText":'Work item "{workItemId}" is not in the current projection.',"work.item.notInProjectionText":"is not in the current projection.","work.item.missedTitle":"Not in projection","work.item.noTasksYetLabel":"No tasks","work.item.notFoundCodeLabel":"Missing id","work.external.empty":"No external tracker links yet.","work.external.linkIssueAction":"Link issue","work.external.linkTrackerAction":"Link tracker","work.external.dialogTitle":"Link external tracker","work.external.closeLabel":"Close external tracker dialog","work.external.providerLabel":"Provider","work.external.provider.github":"GitHub","work.external.provider.gitlab":"GitLab","work.external.provider.gitea":"Gitea","work.external.provider.redmine":"Redmine","work.external.provider.bugzilla":"Bugzilla","work.external.typeLabel":"Type","work.external.type.issue":"Issue","work.external.type.ticket":"Ticket","work.external.type.project":"Project","work.external.idLabel":"External ID","work.external.idPlaceholder":"123 or BUG-42","work.external.urlLabel":"URL","work.external.urlPlaceholder":"https://github.com/org/repo/issues/123","work.external.syncDirectionLabel":"Sync intent","work.external.sync.pull":"Pull only","work.external.sync.push":"Push later","work.external.sync.bidirectional":"Bidirectional later","work.external.cancelButton":"Cancel","work.external.submitLabel":"Link tracker","work.external.submitBusyLabel":"Linking…","work.external.linkError":"Failed to link external tracker.","work.external.unlinkAction":"Unlink","work.external.unlinkAriaLabel":"Unlink {label}","work.external.unlinkConfirmation":"Unlink {label} from Cats Work?","work.external.unlinkError":"Failed to unlink external tracker.","work.external.import.dialogTitle":"Import external issue","work.external.import.providerLabel":"Provider","work.external.import.urlLabel":"Issue URL","work.external.import.urlPlaceholder":"https://github.com/org/repo/issues/123","work.external.import.cancelButton":"Cancel","work.external.import.submitLabel":"Import issue","work.external.import.submitBusyLabel":"Importing…","work.external.import.error":"Failed to import external issue.","work.external.import.externalIssueLabel":"external issue","work.external.import.provider.github":"GitHub","work.external.import.provider.redmine":"Redmine","work.external.import.provider.bugzilla":"Bugzilla","work.external.import.type.issue":"issue","work.external.import.type.ticket":"ticket","work.external.import.result.imported":"Imported {providerLabel} {typeLabel} {externalId} as Work Item {workItemId}.","work.external.import.result.linked":"Linked imported {providerLabel} {typeLabel} {externalId} to Work Item {workItemId}.","work.external.import.result.alreadyImported":"{providerLabel} {typeLabel} {externalId} was already imported as Work Item {workItemId}.","work.external.import.failure.body":"Unable to import {providerLabel} {typeLabel} {externalId}: {reason}.","work.external.import.failure.bodyUnknown":"Unable to import {externalLabel}: {reason}.","work.external.import.failure.reason.invalidTarget":"the model requested an invalid Work tool target","work.external.import.failure.reason.storeUnavailable":"the Work store is unavailable","work.external.import.failure.reason.unsupportedOwnerMessage":"the owner message did not contain a supported importable issue URL","work.external.import.failure.reason.schemaInvalid":"the requested tool input did not match the Work import schema","work.external.import.failure.reason.issueMismatch":"the requested issue did not match the owner message","work.external.import.failure.reason.providerMismatch":"the requested provider did not match the owner message","work.external.import.failure.reason.pendingApproval":"the import is waiting for approval","work.external.import.failure.reason.unsupportedSource":"the issue tracker URL is unsupported","work.external.import.failure.reason.fetchFailed":"the issue tracker fetch failed","work.external.import.failure.reason.pullRequestUnsupported":"GitHub pull request rows are not supported by this import path","work.external.import.failure.reason.unexpected":"the import failed unexpectedly","work.sidebar.newWorkLabel":"New Work","work.sidebar.teamWorkLabel":"Team Work","work.sidebar.parallelWorkLabel":"Parallel Work","work.sidebar.portfolioLabel":"Portfolio","work.sidebar.projectsLabel":"Projects","work.sidebar.managedWorkLabel":"Managed Work","work.sidebar.workItemsLabel":"Work Items","work.sidebar.tasksLabel":"Tasks","work.sidebar.runsLabel":"Runs","work.sidebar.missionsLabel":"Missions","work.sidebar.schedulesLabel":"Schedules","work.sidebar.executionLabel":"Execution","work.sidebar.systemMapLabel":"System Map","work.sidebar.cockpitLabel":"Cockpit","work.sidebar.brokenLinksLabel":"Broken Links","work.sidebar.warRoomLabel":"War Room","work.sidebar.workTopDownSurfacesLabel":"Work top-down surfaces","work.sidebar.unpinProjectLabel":"Unpin","work.sidebar.deleteProjectLabel":"Delete","work.sidebar.noWorkYetLabel":"No work yet","work.query.httpError":"Request failed with status {status}.","work.query.httpErrorWithStatusText":"Request failed with status {status} {statusText}.","work.graph.loadErrorFallback":"Failed to load work graph.","work.missions.listTitle":"Missions","work.missions.lede":"Agent missions — distinct from tasks. Anchored to a Work Item when planned, or fully internal when spawned by an agent.","work.missions.loading":"Loading missions…","work.missions.loadError":"Failed to load missions: {errorMessage}","work.missions.emptyLabel":"No missions yet.","work.missions.openMissionAriaLabel":"Open mission {title}","work.mission.backLabel":"Missions","work.mission.backArrowLabel":"Back to missions","work.mission.cancelConfirmation":`Cancel mission "{missionTitle}"?
7
+
8
+ Active runs will be stopped through supervised runtime cancellation. Linked Tasks and Work Items are not changed.`,"work.mission.cancelBlocked":"Mission cancel blocked. {detail}","work.mission.cancelBlockedNoDetails":"See per-run results.","work.mission.cancelError":"Mission cancel failed.","work.mission.cancelRouteFailed":"Mission cancel failed. HTTP {statusCode}.","work.mission.cancelLabel":"Cancel","work.mission.cancelLabelBusy":"Cancelling…","work.cancellation.blocker.runNotStoppable":"Run is not stoppable.","work.cancellation.blocker.noRuntimeSession":"No supervised runtime session is bridged.","work.cancellation.blocker.runtimeClientUnavailable":"Runtime client is unavailable.","work.cancellation.blocker.runtimeCancellationFailed":"Runtime cancellation failed: {error}","work.mission.summaryTitle":"Mission summary","work.mission.statusLabel":"Status","work.mission.assignedAgentLabel":"Assigned agent","work.mission.updatedAtLabel":"Updated","work.mission.workItemLabel":"Work item","work.mission.conversationLabel":"Conversation","work.mission.tasksHeading":"Tasks under this work item ({count})","work.mission.noLinkedWorkItemForTasks":"Mission is ad-hoc — no work item to scope tasks against.","work.mission.noLinkedWorkItemForRuns":"Mission is ad-hoc — no transitive runs.","work.mission.noTasks":"The linked work item has no tasks yet.","work.mission.runsHeading":"Runs from those tasks ({count})","work.mission.noTransitiveRuns":"No runs dispatched from these tasks yet.","work.mission.loadingLabel":"Loading mission…","work.mission.notFound":'Mission "{missionId}" not found.',"work.mission.noMissionId":"No mission id provided.","work.projects.listTitle":"Projects","work.projects.newAction":"New project","work.projects.createNewProjectAriaLabel":"Create new project","work.projects.loading":"Loading projects…","work.projects.loadError":"Failed to load projects: {errorMessage}","work.projects.emptyIntro":"No projects yet. Click","work.projects.emptySuffix":"to start one.","work.projects.openProjectAriaLabel":"Open project {projectTitle}","work.projects.decisionPill":"{count} decision{pluralSuffix}","work.projects.blockedPill":"{count} blocked","work.projects.workItemsAbbrev":"WI","work.projects.tasksLabel":"tasks","work.project.backLabel":"Projects","work.project.backArrowLabel":"Back to projects","work.project.updatedAtPrefix":"updated {updatedAt}","work.project.deleteLabel":"Delete","work.project.deleteLabelBusy":"Deleting…","work.project.deleteConfirmation":`Delete project "{projectTitle}"?
9
+
10
+ This cannot be undone. Linked work items, tasks, and runs are not removed.`,"work.project.deleteError":"Failed to delete project.","work.project.overviewTitle":"Overview","work.project.summaryLabel":"Summary","work.project.ownerLabel":"Owner","work.project.conversationLabel":"Conversation","work.project.workItemsTitle":"Work items","work.project.noWorkItems":"No work items in this project yet.","work.project.tasksTitle":"Tasks","work.project.noTasks":"No tasks in this project yet.","work.project.activityTitle":"Activity","work.project.noActivity":"No activity recorded for this project.","work.project.loadingLabel":"Loading project…","work.project.notFoundTitle":"Not found","work.project.missingIdLabel":"(missing id)","work.project.notFoundPrefix":"Project","work.project.notFoundSuffix":"is not in the current projection.","work.runs.listTitle":"Runs","work.runs.lede":"Every Core run, flat. Click into a run to inspect its trace and sub-runs. Runs are created by orchestrator dispatch, not from this page.","work.runs.loading":"Loading runs…","work.runs.loadError":"Failed to load runs: {errorMessage}","work.runs.noRunsIntro":"No runs yet. Runs are created when an orchestrator dispatches a task or a sub-run.","work.run.openAriaLabel":"Open run {runTitle}","work.run.openSubRunAriaLabel":"Open sub-run {runTitle}","work.run.subRunChip":"sub-run","work.run.stopErrorWithError":"Runtime cancellation failed: {error}","work.run.stopErrorFallback":"Runtime cancellation failed. Run was not marked cancelled.","work.run.stopNotStoppable":"Run is not stoppable: no supervised runtime session is bridged.","work.run.stopNotStoppableGeneric":"Run is not stoppable.","work.run.stopConfirmation":`Stop run "{runTitle}"?
11
+
12
+ Cats requests runtime cancellation through the supervised session before marking the run cancelled. External side effects already sent are not rolled back.`,"work.run.stopError":"Run stop failed.","work.run.stopRouteFailed":"Run stop failed. HTTP {statusCode}.","work.run.backArrowLabel":"Back to tasks","work.run.backLabel":"Tasks","work.run.stopLabel":"Stop","work.run.stopLabelBusy":"Stopping…","work.run.summary.blockedBeforeRuntimeLaunch":"Blocked before runtime launch completed.","work.run.summary.blockedBeforeScheduledRuntimeLaunch":"Blocked before scheduled runtime launch completed.","work.run.summary.launchingScheduledMission":"Launching scheduled mission through supervised runtime boundary.","work.run.summary.providerAgentRuntimeMessageCompleted":"Provider-agent runtime message completed.","work.run.summary.queuedSupervisedWorkRun":"Queued supervised Work run.","work.run.summary.relayFanOutDispatch":"Relay fan-out dispatch for {agentLabel}.","work.run.summary.startedSupervisedCodeTaskExecution":"Started supervised Code task execution.","work.run.summaryTitle":"Run summary","work.run.statusLabel":"Status","work.run.updatedLabel":"Updated","work.run.durationLabel":"Duration","work.run.parentRunLabel":"Parent run","work.run.conversationLabel":"Conversation","work.run.subRunsTitle":"Sub-runs {count}","work.run.noSubRuns":"No sub-runs.","work.run.traceTitle":"Trace {count}","work.run.traceLoading":"Loading trace…","work.run.traceLoadFallback":"Failed to load run trace.","work.run.traceLoadError":"Failed to load trace: {errorMessage}","work.run.traceEmptyQueued":"Run is queued; trace records appear once the orchestrator dispatches.","work.run.traceEmptyRunning":"Run is executing but has not emitted any trace records yet.","work.run.traceEmptyBlocked":"Run is blocked and emitted no trace before stalling.","work.run.traceEmptyCompleted":"Run completed without emitting trace records.","work.run.traceEmptyFailed":"Run failed before emitting any trace.","work.run.traceEmptyCancelled":"Run was cancelled before emitting any trace.","work.run.traceEmptyDefault":"No trace records.","work.run.traceNoActorRecorded":"no actor recorded","work.run.traceKindUnknown":"Unknown trace ({kind})","work.run.artifactStatus.draft":"Draft","work.run.artifactStatus.ready":"Ready","work.run.artifactStatus.published":"Published","work.run.artifactStatus.archived":"Archived","work.run.activitiesTitle":"Activities {count}","work.run.outcomesTitle":"Outcomes {count}","work.run.artifactsTitle":"Artifacts {count}","work.run.loadingLabel":"Loading run…","work.run.notFound":"Run {runId} not found.","work.run.noRunId":"No run id provided.","work.schedules.listTitle":"Schedules","work.schedules.lede":"Scheduled execution fires only while Cats is running in v1.","work.schedules.loadErrorFallback":"Failed to load schedules.","work.schedules.exportAction":"Export","work.schedules.loading":"Loading schedules…","work.schedules.empty":"No schedules yet. Product surfaces create schedule rules from their own workflows; this page audits and operates existing rules.","work.schedule.openAriaLabel":"Open schedule {scheduleTitle}","work.schedule.nextFireChip":"next {dateTime}","work.schedule.receiptChip":"{status} · {relativeTime}","work.schedule.enabledStatus":"enabled","work.schedule.disabledStatus":"disabled","work.schedule.summary.onceAt":"Once at {dateTime}","work.schedule.summary.dailyAt":"Daily at {time} {timezone}","work.schedule.dateNone":"None","work.schedule.receiptStatus.claimed":"Claimed","work.schedule.receiptStatus.admitted":"Admitted","work.schedule.receiptStatus.duplicate":"Duplicate","work.schedule.receiptStatus.skipped":"Skipped","work.schedule.receiptStatus.failed":"Failed","work.schedule.triggerReason.due":"Due","work.schedule.triggerReason.manualTest":"Manual test","work.schedule.triggerReason.startupMisfire":"Startup misfire","work.schedule.triggerReason.retry":"Retry","work.schedule.missionPolicy.perFire":"Per fire","work.schedule.concurrencyPolicy.skip":"Skip","work.schedule.concurrencyPolicy.queue":"Queue","work.schedule.concurrencyPolicy.replace":"Replace","work.schedule.misfirePolicy.skip":"Skip","work.schedule.misfirePolicy.fireOnce":"Fire once","work.schedule.misfirePolicy.fireAll":"Fire all","work.schedule.retryBackoff.none":"None","work.schedule.retryBackoff.fixed":"Fixed","work.schedule.retryBackoff.exponential":"Exponential","work.schedule.ruleNotLoadedError":"Schedule rule not loaded.","work.schedule.createFailed":"Failed to create schedule.","work.schedule.updateFailed":"Failed to update schedule.","work.schedule.testFireFailed":"Failed to test-fire schedule.","work.schedule.deleteFailed":"Failed to delete schedule.","work.schedule.deleteConfirmation":`Delete schedule "{scheduleTitle}"?
13
+
14
+ This cannot be undone. Future fires stop and the rule's trigger history is removed; admitted Mission/Run records remain.`,"work.schedule.actionFailed":"Schedule action failed.","work.schedule.loadingTitle":"Loading…","work.schedule.loadingLabel":"Loading schedule…","work.schedule.loadFailed":"Failed to load schedule.","work.schedule.overviewTitle":"Overview","work.schedule.scheduleLabel":"Schedule","work.schedule.timezoneLabel":"Timezone","work.schedule.revisionLabel":"Revision","work.schedule.targetLabel":"Target","work.schedule.targetKind.cat":"cat","work.schedule.targetKind.agent":"agent","work.schedule.originLabel":"Origin","work.schedule.origin.schedule":"Schedule","work.schedule.missionPolicyLabel":"Mission policy","work.schedule.concurrencyLabel":"Concurrency","work.schedule.misfireLabel":"Misfire","work.schedule.retryLabel":"Retry","work.schedule.retryNone":"none","work.schedule.retryPolicyValue":"{maxAttempts}x {backoff}","work.schedule.diagnosticsTitle":"Diagnostics","work.schedule.nextFireLabel":"Next fire","work.schedule.lastScheduledFireLabel":"Last scheduled fire","work.schedule.lastRunLabel":"Last run","work.schedule.consecutiveFailuresLabel":"Consecutive failures","work.schedule.disabledDiagnosticFallback":"Disabled: no future fires will be evaluated.","work.schedule.retryStatePill":"Retry {attempt}/{maxAttempts} at {dateTime}","work.schedule.lastFailurePill":"Last failure: {failure}","work.schedule.recentTriggersTitle":"Recent triggers {count}","work.schedule.noTriggerReceipts":"No trigger receipts yet.","work.schedule.retryAttemptSuffix":" #{attempt}","work.schedule.backArrowLabel":"Back to schedules","work.schedule.backLabel":"Schedules","work.schedule.testFireBusyLabel":"Firing…","work.schedule.testFireLabel":"Test fire","work.schedule.updatingLabel":"Updating…","work.schedule.disableLabel":"Disable","work.schedule.enableLabel":"Enable","work.schedule.deleteAriaLabel":"Delete schedule","work.schedule.deleteBusyLabel":"Deleting…","work.schedule.deleteLabel":"Delete","work.schedule.missingIdLabel":"(missing id)","work.schedule.notFoundTitle":"Not found","work.schedule.notFoundPrefix":"Schedule","work.schedule.notFoundSuffix":"is not in the current state.","work.tasks.listTitle":"Tasks","work.tasks.newAction":"New task","work.tasks.createNewTaskAriaLabel":"Create new task","work.tasks.loading":"Loading tasks…","work.tasks.loadError":"Failed to load tasks: {errorMessage}","work.tasks.emptyIntro":"No tasks yet. Click","work.tasks.emptyActionLabel":"New task","work.tasks.emptySuffix":"to create one.","work.tasks.openTaskAriaLabel":"Open task {title}","work.task.status.pendingApproval":"Pending approval","work.task.status.approved":"Approved","work.task.status.archived":"Archived","work.task.priority.urgent":"Urgent","work.task.priority.high":"High","work.task.priority.medium":"Medium","work.task.priority.low":"Low","work.task.priority.labelWithValue":"Priority: {priorityLabel}","work.task.backLabel":"Back to tasks","work.task.backArrowLabel":"← Tasks","work.task.updatedAtPrefix":"updated {updatedAt}","work.task.deleteLabel":"Delete task","work.task.deleteLabelBusy":"Deleting…","work.task.deleteConfirmation":`Delete task "{taskTitle}"?
15
+
16
+ This cannot be undone. Linked runs are not removed.`,"work.task.deleteError":"Failed to delete task.","work.task.approveLabel":"Approve","work.task.approveBusyLabel":"Approving…","work.task.rejectLabel":"Reject","work.task.rejectBusyLabel":"Rejecting…","work.task.approvalDecisionError":"Failed to update task approval.","work.task.priorityTooltip":"Priority: {priorityLabel}","work.task.overviewTitle":"Overview","work.task.summaryLabel":"Summary","work.task.projectLabel":"Project","work.task.orphanProjectFallback":"(orphan — no project linked)","work.task.workItemLabel":"Work item","work.task.noWorkItemFallback":"(no work item linked)","work.task.parentTaskLabel":"Parent task","work.task.ownerLabel":"Owner","work.task.assigneeLabel":"Assignee","work.task.noAssigneeFallback":"(unassigned)","work.task.assignedActorsLabel":"Assigned actors","work.task.noActorsAssignedFallback":"(no Core actors assigned)","work.task.acceptanceCriteriaLabel":"Acceptance criteria","work.task.conversationLabel":"Conversation","work.task.activityTitle":"Activity","work.task.noActivity":"No activity recorded for this task.","work.task.subTasksTitle":"Sub-tasks","work.task.noSubTasksLabel":"No sub-tasks yet.","work.task.runsTitle":"Runs","work.task.noRunsIntro":"No runs dispatched. Use","work.task.noRunsActionLabel":"Start supervised run","work.task.noRunsSuffix":"to dispatch.","work.task.startRunBusyLabel":"Starting…","work.task.startRunError":"Failed to start supervised run.","work.task.loadingLabel":"Loading task…","work.task.notFoundTitle":"Not found","work.task.notFoundText":'Task "{taskId}" is not in the current projection.',"work.task.notFoundCodeLabel":"Missing id","work.object.kind.agent":"Agent","work.object.kind.container":"Container","work.object.kind.conversation":"Conversation","work.object.kind.turn":"Turn","work.object.kind.lane":"Lane","work.object.kind.project":"Project","work.object.kind.workItem":"Work item","work.object.kind.task":"Task","work.object.kind.mission":"Mission","work.object.kind.run":"Run","work.object.kind.artifact":"Artifact","work.object.kind.activity":"Activity","work.object.kind.outcome":"Outcome","work.object.kind.approvalBinding":"Approval","work.object.kind.unknown":"Unknown ({kind})","work.object.attention.decisionNeeded":"Decision","work.object.attention.blocked":"Blocked","work.object.attention.failed":"Failed","work.object.attention.readyToReview":"Review","work.object.attention.recentlyShipped":"Shipped","work.object.attention.unknown":"Unknown ({attention})","work.object.status.draft":"Draft","work.object.status.planned":"Planned","work.object.status.active":"Active","work.object.status.paused":"Paused","work.object.status.archived":"Archived","work.object.status.ready":"Ready","work.object.status.inProgress":"In progress","work.object.status.blocked":"Blocked","work.object.status.completed":"Completed","work.object.status.cancelled":"Cancelled","work.object.status.running":"Running","work.object.status.queued":"Queued","work.object.status.unknown":"Unknown ({status})","work.actorRole.assistant":"Assistant","work.actorRole.boss":"Boss","work.actorRole.coder":"Coder","work.actorRole.coordinator":"Coordinator","work.actorRole.critic":"Critic","work.actorRole.drafter":"Drafter","work.actorRole.mainCoder":"Main coder","work.actorRole.orchestrator":"Orchestrator","work.actorRole.owner":"Owner","work.actorRole.planner":"Planner","work.actorRole.reviewer":"Reviewer","work.actorRole.summarizer":"Summarizer","work.object.gateState.notRequested":"Not requested","work.object.gateState.pending":"Pending","work.object.gateState.approved":"Approved","work.object.gateState.rejected":"Rejected","work.object.gateState.unknown":"Unknown ({state})","work.topdown.parentTaskOwningLabel":"Owning task","work.topdown.parentTaskLabel":"Parent task","work.topdown.parentWorkItemLabel":"Parent work item: {parentWorkItemTitle}","work.topdown.taskProductBindingTitle":"Product binding: {productBinding}","work.topdown.taskProductBindingUnbound":"Unbound","work.topdown.parentTaskTooltip":"Related task: {linkedTaskTitle} ({linkType})","work.topdown.crossCuttingLayer":"Cross-cutting","work.topdown.cockpitEyebrow":"Top-down","work.topdown.cockpitTitle":"Cockpit","work.topdown.cockpitLede":"Monitor key execution states, unblockers, and recent activity.","work.topdown.cockpitMetricDecisions":"decisions","work.topdown.cockpitMetricBlocked":"blocked","work.topdown.cockpitMetricShipped":"shipped","work.topdown.cockpitTabsAriaLabel":"Cockpit views","work.topdown.cockpitTabCommandLabel":"Command","work.topdown.cockpitTabCommandSub":"Portfolio overview","work.topdown.cockpitTabNeedsDecisionLabel":"Needs decision","work.topdown.cockpitTabNeedsDecisionSub":"Work waiting for a decision","work.topdown.cockpitTabActiveLabel":"Active","work.topdown.cockpitTabActiveSub":"Ready and in-progress","work.topdown.cockpitTabActiveRunsLabel":"Active runs","work.topdown.cockpitTabActiveRunsSub":"Currently running","work.topdown.cockpitTabBlockedLabel":"Blocked","work.topdown.cockpitTabBlockedSub":"Blocked or failed","work.topdown.cockpitTabShippedLabel":"Shipped","work.topdown.cockpitTabShippedSub":"Completed recently","work.topdown.cockpitTabTeamsLabel":"Teams","work.topdown.cockpitTabTeamsSub":"Owner-role lanes","work.topdown.cockpitOpen":"Open","work.topdown.cockpitNoBucketItems":"No items.","work.topdown.cockpitRecentActivityAriaLabel":"Recent activity rail","work.topdown.cockpitRecentActivityTitle":"Recent activity","work.topdown.cockpitRecentActivitySummary":"{count} item(s)","work.topdown.cockpitRecentActivityEmpty":"No recent activity.","work.topdown.cockpitNoActorRoles":"No owner roles found.","work.topdown.linkageTitle":"Linkage","work.topdown.linkageAddAction":"Add link","work.topdown.linkageNoLinksYetPrefix":"No links yet — use","work.topdown.linkageNoLinksYetSuffix":"to connect this to a Project, Work Item, or Task.","work.topdown.linkageViewKindBlocksLabel":"Blocking","work.topdown.linkageViewKindBlockedByLabel":"Blocked by","work.topdown.linkageViewKindRelatedToLabel":"Related","work.topdown.linkageViewKindDuplicateOfLabel":"Duplicate of","work.topdown.linkageViewKindFollowsLabel":"Follows","work.topdown.linkageViewKindBlocksEmpty":"Nothing is waiting on this yet.","work.topdown.linkageViewKindBlockedByEmpty":"No upstream blockers.","work.topdown.linkageViewKindRelatedToEmpty":"No related projects, work items, or tasks linked.","work.topdown.linkageViewKindDuplicateOfEmpty":"Not marked as a duplicate of anything.","work.topdown.linkageViewKindFollowsEmpty":"Does not supersede an earlier item.","work.topdown.linkKindBlocksHelp":"This blocks the target.","work.topdown.linkKindBlockedByHelp":"The target blocks this.","work.topdown.linkKindRelatedToHelp":"Related but no containment.","work.topdown.linkKindDuplicateOfHelp":"This is a duplicate of the target.","work.topdown.linkKindFollowsHelp":"This supersedes the target.","work.topdown.newLinkDialogTitle":"Add link","work.topdown.newLinkClose":"Close","work.topdown.newLinkSourcePrefix":"From","work.topdown.newLinkRelationLabel":"Relation","work.topdown.newLinkTargetLabel":"Target","work.topdown.newLinkTargetSearchPlaceholder":"Search {project} / {workItem} / {task}","work.topdown.newLinkNoMatches":"No matches.","work.topdown.newLinkNoteLabel":"Note (optional)","work.topdown.newLinkNotePlaceholder":"Why is this relation worth recording?","work.topdown.newLinkCancel":"Cancel","work.topdown.newLinkSaving":"Saving…","work.topdown.newLinkErrorInvalidTarget":"Target must be a Project, Work Item, or Task.","work.topdown.newLinkErrorSelfLink":"A link cannot point to itself.","work.topdown.newLinkErrorNoteTooLong":"Note must be {max} characters or fewer.","work.topdown.newLinkErrorFailed":"Failed to create link.","work.topdown.upstreamBlockersAriaLabel":"Upstream blockers","work.topdown.blockersTitle":"Blockers","work.topdown.upstreamBlocksLine":"Upstream blocks chain (depth ≤ {maxDepth}) per row.","work.topdown.noUpstreamBlockers":"Nothing in this list has upstream blockers.","work.topdown.brokenLinksEyebrow":"Top-down · conformance","work.topdown.brokenLinksTitle":"Broken Links","work.topdown.brokenLinksLede":"Diagnostics from the projection layer when producer writes don't satisfy SPEC-083 §Minimum Anchor Sets or SPEC-090 link integrity.","work.topdown.brokenLinksErrorMetricSuffix":"errors","work.topdown.brokenLinksWarningMetricSuffix":"warnings","work.topdown.brokenLinksInfoMetricSuffix":"info","work.topdown.brokenLinksSeverityFiltersAriaLabel":"Severity filters","work.topdown.brokenLinksSeverityAllLabel":"All","work.topdown.brokenLinksSeverityErrorLabel":"Error","work.topdown.brokenLinksSeverityWarningLabel":"Warning","work.topdown.brokenLinksSeverityInfoLabel":"Info","work.topdown.brokenLinksNoDiagnostics":"No diagnostics under the active filter.","work.topdown.brokenLinksOn":"on","work.topdown.brokenLinksOpenInDrawer":"Open in drawer","work.topdown.brokenLinksObjectNotInProjection":"object id {objectId} not in projection","work.topdown.brokenLinksNoSpecificObject":"systemic — no specific object","work.topdown.brokenLinksRemoveTooltipRemovable":"Remove this link via the producer pipeline.","work.topdown.brokenLinksRemoveTooltipDemoSeed":"Demo seed — restart the renderer to clear, or write through the producer pipeline first.","work.topdown.brokenLinksRemoveAction":"Remove this link","work.topdown.brokenLinksRemoveUnknownError":"Failed to remove link.","work.topdown.brokenLinksRemovingInProgress":"Removing…","work.topdown.brokenLinksRemovableOnlyDemo":"Demo fixture — only producer-stored links can be removed via API.","work.topdown.brokenLinksCycleRemovableRows":"Removable rows ({count}):","work.topdown.brokenLinksDeletedLabel":"(deleted)","work.topdown.diagnosticKind.brokenFk":"Broken reference","work.topdown.diagnosticKind.missingProjectAnchor":"Missing project anchor","work.topdown.diagnosticKind.missingPlanningExecutionBridge":"Missing planning/execution bridge","work.topdown.diagnosticKind.unanchoredRun":"Unanchored run","work.topdown.diagnosticKind.unanchoredEvidence":"Unanchored evidence","work.topdown.diagnosticKind.missingGateSubject":"Missing gate subject","work.topdown.diagnosticKind.orphanLink":"Orphan link","work.topdown.diagnosticKind.linkCycle":"Link cycle","work.topdown.selectionLost":"Selection lost","work.topdown.objectNotInProjectionTitle":"Object not in projection","work.topdown.objectNotInProjectionMessage":"Selected id {selectedId} is not in the current projection.","work.topdown.identityTitle":"Identity","work.topdown.identityKind":"Kind","work.topdown.identityStatus":"Status","work.topdown.identityLayer":"Layer","work.topdown.identityOwnerRole":"Owner role","work.topdown.identityNextAction":"Next action","work.topdown.identityUpdated":"Updated","work.topdown.identitySummary":"Summary","work.topdown.externalTitle":"External","work.topdown.externalBindingTooltip":"External tracker: {externalBinding}","work.topdown.externalSyncLabel":"sync: {syncDirection}","work.topdown.externalUpdatedLabel":"updated {updatedAt}","work.topdown.anchorsTitle":"Anchors","work.topdown.evidenceTitle":"Evidence","work.topdown.evidenceEmpty":"No evidence attached.","work.topdown.missingSuffix":"(missing)","work.topdown.gatesTitle":"Gates","work.topdown.gatesEmpty":"No approval gates.","work.topdown.diagnosticsTitle":"Diagnostics","work.topdown.anchorProject":"Project","work.topdown.anchorWorkItem":"Work item","work.topdown.anchorTask":"Task","work.topdown.anchorRun":"Run","work.topdown.anchorConversation":"Conversation","work.topdown.anchorsEmpty":"No structural anchors.","work.topdown.relativeJustNow":"just now","work.topdown.relativeMinutesAgo":"{count}m ago","work.topdown.relativeHoursAgo":"{count}h ago","work.topdown.relativeDaysAgo":"{count}d ago","work.topdown.systemMapEyebrow":"Top-down · structural","work.topdown.systemMapTitle":"System Map","work.topdown.systemMapLede":"Three canonical layers from ADR-081 as cohabiting cards — see what exists in the taxonomy, not what is urgent.","work.topdown.systemMapStructuralLabel":"structural","work.topdown.systemMapTotalLabel":"total","work.topdown.systemMapDiagnosticsLabel":"diagnostics","work.topdown.systemMapLayerAriaLabel":"{layerLabel} layer","work.topdown.systemMapLayerInteractionLabel":"Interaction","work.topdown.systemMapLayerPlanningLabel":"Planning","work.topdown.systemMapLayerExecutionLabel":"Execution","work.topdown.systemMapLayerInteractionDescription":"Who interacts, through which channel, in what shape.","work.topdown.systemMapLayerPlanningDescription":"What the operator wants done — Project / Work Item.","work.topdown.systemMapLayerExecutionDescription":"How work runs — Task / Mission / Run.","work.topdown.systemMapLayerEmpty":"No objects in this layer.","work.warRoom.attentionAttention":"Attention","work.warRoom.attentionError":"Error","work.warRoom.attentionFallback":"Attention ({severity})","work.warRoom.attentionMuted":"Muted","work.warRoom.attentionProgress":"In progress","work.warRoom.attentionSuccess":"On track","work.warRoom.controlPlane":"Control Plane","work.warRoom.controlPlaneBlockedBy":"Blocked by {reason} — check required conditions.","work.warRoom.controlPlaneEmptyBadge":"No items","work.warRoom.controlPlaneEmptyBody":"No active control-plane governance tasks.","work.warRoom.controlPlaneEmptyTitle":"No control-plane items","work.warRoom.controlPlaneNoTargets":"No target tasks selected","work.warRoom.controlPlaneTargets":"Targets: {targets}","work.warRoom.countSummary":"Showing {count}/{total}","work.warRoom.governanceEyebrow":"Governance","work.warRoom.actionBusy":"Applying...","work.warRoom.actionError":"Unable to apply Work action.","work.warRoom.loadError":"Failed to load work dashboard","work.warRoom.loadingBadge":"Loading","work.warRoom.loadingBody":"Building the latest War Room snapshot.","work.warRoom.loadingEyebrow":"Loading","work.warRoom.loadingSummary":"Loading","work.warRoom.loadingTitle":"Loading work state","work.warRoom.managedWorkEyebrow":"Work Items","work.warRoom.metaLabelActions":"Actions","work.warRoom.metaLabelActors":"Actors","work.warRoom.metaLabelApproval":"Approval","work.warRoom.metaLabelBlocked":"Blocked","work.warRoom.metaLabelConversation":"Conversation","work.warRoom.metaLabelDelivery":"Delivery","work.warRoom.metaLabelLatest":"Latest","work.warRoom.metaLabelLatestSource":"Latest source","work.warRoom.metaLabelNext":"Next","work.warRoom.metaLabelOwner":"Owner","work.warRoom.metaLabelProduct":"Product","work.warRoom.metaLabelProject":"Project","work.warRoom.metaLabelReasons":"Reasons","work.warRoom.metaLabelReplay":"Replay","work.warRoom.metaLabelRepo":"Repository","work.warRoom.metaLabelRetryAvailable":"Retry available","work.warRoom.metaLabelStrategy":"Strategy","work.warRoom.metaLabelTask":"Task","work.warRoom.metaLabelTasks":"Tasks","work.warRoom.metaLabelWatch":"Watch","work.warRoom.metaLabelWorkflow":"Workflow","work.warRoom.metaLabelWorkItem":"Work Item","work.warRoom.metaLabelWorkItems":"Work Items","work.warRoom.metaValueNo":"No","work.warRoom.metaValueNoReplayBlock":"No replay block","work.warRoom.metaValueNoTimelineItem":"No timeline item","work.warRoom.metaValueNotBound":"Not bound","work.warRoom.metaValueNotRecorded":"Not recorded","work.warRoom.metaValueNotSpecified":"Not specified","work.warRoom.metaValueUnassigned":"Unassigned","work.warRoom.metaValueNoRuntimeBridge":"No runtime bridge","work.warRoom.metaValueNone":"None","work.warRoom.noLinkedConversation":"No linked conversation","work.warRoom.noLinkedProject":"No linked project","work.warRoom.noLinkedTask":"No linked task","work.warRoom.noLinkedWorkItem":"No linked work item","work.warRoom.noPrimaryConversation":"No primary conversation","work.warRoom.noProjectSummary":"No project summary.","work.warRoom.noStatus":"No status","work.warRoom.noTaskSummary":"No task summary.","work.warRoom.noWorkItemSummary":"No work item summary.","work.warRoom.none":"None","work.warRoom.notRecorded":"Not recorded","work.warRoom.openActor":"Open {actorName}","work.warRoom.openBriefingThread":"Open briefing thread","work.warRoom.openProject":"Open project","work.warRoom.openTask":"Open task","work.warRoom.openWorkItem":"Open work item","work.warRoom.operateEyebrow":"Operations","work.warRoom.operatorInbox":"Operator inbox","work.warRoom.operatorInboxEmptyBadge":"Empty","work.warRoom.operatorInboxEmptyBody":"No operator actions need attention right now.","work.warRoom.operatorInboxEmptyTitle":"No operator inbox items","work.warRoom.pageEyebrow":"Work command center","work.warRoom.pageTitle":"Work War Room","work.warRoom.portfolioEyebrow":"Portfolio","work.warRoom.projects":"Projects","work.warRoom.projectsEmptyBadge":"Empty","work.warRoom.projectsEmptyBody":"No projects match current filters.","work.warRoom.projectsEmptyTitle":"No projects found","work.warRoom.recovery":"Recovery","work.warRoom.recoveryEmptyBadge":"Healthy","work.warRoom.recoveryEmptyBody":"No recoveries are currently needed.","work.warRoom.recoveryEmptyTitle":"No recovery items","work.warRoom.recoveryEyebrow":"Recovery","work.warRoom.recoveryNoRecoveryNote":"No recovery note available.","work.warRoom.snapshotEyebrow":"Snapshot","work.warRoom.snapshotSummary":"Owner: {ownerActorId}","work.warRoom.snapshotTitle":"Live snapshot","work.warRoom.statusFallback":"Status: {status}","work.warRoom.summaryAttention":"{count} items in attention","work.warRoom.summaryInProgressBlocked":"{inProgress} in progress · {blocked} blocked","work.warRoom.summaryLabelAttention":"Attention","work.warRoom.summaryLabelProjects":"Projects","work.warRoom.summaryLabelRecovery":"Recovery","work.warRoom.summaryLabelTasks":"Tasks","work.warRoom.summaryRecovery":"{count} recovery opportunities","work.warRoom.workItems":"Work items","work.warRoom.workItemsEmptyBadge":"Empty","work.warRoom.workItemsEmptyBody":"No work items match current filters.","work.warRoom.workItemsEmptyTitle":"No work items found","work.timeline.evidence.providerAgentRunLoop":"provider-agent run loop","work.timeline.evidence.supervision":"supervision evidence","work.timeline.title.approvalBinding":"Approval binding ({kind})","work.timeline.title.approvalDecided":"Approval decided","work.timeline.title.approvalRequested":"Approval requested","work.timeline.title.artifactRecorded":"Artifact recorded","work.timeline.title.checkpoint":"Checkpoint: {label}","work.timeline.title.checkpointRecorded":"Checkpoint recorded","work.timeline.title.evidence":"Evidence: {source}","work.timeline.title.note":"Note","work.timeline.title.operatorAction":"Operator action","work.timeline.title.providerAgentPlan":"Provider-agent plan: {planId}","work.timeline.title.statusChanged":"Status changed","work.timeline.title.trace":"Trace ({kind})","work.timeline.title.workItemUpdated":"Work item updated","work.execution.action.acknowledge":"Acknowledge","work.execution.action.approve":"Approve","work.execution.action.complete":"Complete","work.execution.action.createCommit":"Create commit","work.execution.action.dispatch":"Dispatch","work.execution.action.openPullRequest":"Open pull request","work.execution.action.publishPreview":"Publish preview","work.execution.action.reject":"Reject","work.execution.action.requestReview":"Request review","work.execution.action.reroute":"Reroute","work.execution.action.retry":"Retry","work.execution.action.wait":"Wait","work.execution.action.waitForChecks":"Wait for checks","work.execution.approvalStatus.approved":"Approved","work.execution.approvalStatus.notRequested":"Not requested","work.execution.approvalStatus.pending":"Pending approval","work.execution.approvalStatus.rejected":"Rejected","work.execution.deliveryMode.artifactOnly":"Artifact only","work.execution.deliveryMode.commitOnly":"Commit only","work.execution.deliveryMode.deployPreview":"Deploy preview","work.execution.deliveryMode.prWithChecks":"Pull request with checks","work.execution.deliveryMode.pushBranch":"Push branch","work.execution.reason.approvalPending":"Approval pending","work.execution.reason.childTasksInProgress":"Child tasks in progress","work.execution.reason.maxDispatches":"Max dispatches reached","work.execution.reason.noValidTargets":"No valid targets","work.execution.reason.retryAvailable":"Retry available","work.execution.reason.runBlocked":"Run blocked","work.execution.reason.runFailed":"Run failed","work.execution.reason.userCancelled":"User cancelled","work.execution.reason.workflowReviewRequired":"Workflow review required","work.execution.replaySource.orchestratorReplay":"Orchestrator replay","work.execution.replaySource.orchestratorStartupRecovery":"Orchestrator startup recovery","work.execution.replaySource.workflowContinuationReplay":"Workflow continuation replay","work.execution.replayState.failed":"Failed","work.execution.replayState.inProgress":"In progress","work.execution.replayState.pending":"Pending","work.execution.replayState.ready":"Ready","work.execution.strategy.pdca":"PDCA","work.execution.strategy.planAndExecute":"Plan-and-execute","work.execution.strategy.react":"ReAct","work.execution.strategy.reflexion":"Reflexion","work.newWorkItem.title":"New work item","work.newWorkItem.titleLabel":"Title","work.newWorkItem.summaryLabel":"Summary","work.newWorkItem.projectLabel":"Project","work.newWorkItem.statusLabel":"Status","work.newWorkItem.projectOrphan":"— Orphan (no project) —","work.newWorkItem.titlePlaceholder":"What needs to ship?","work.newWorkItem.summaryPlaceholder":"Define the scope in one or two lines.","work.newWorkItem.cancelButton":"Cancel","work.newWorkItem.closeLabel":"Close","work.newWorkItem.submitLabel":"Create work item","work.newWorkItem.submitBusyLabel":"Creating…","work.newWorkItem.createError":"Failed to create work item.","work.newWorkItem.status.draft":"Draft","work.newWorkItem.status.planned":"Planned","work.newWorkItem.status.ready":"Ready","work.newWorkItem.status.inProgress":"In progress","work.newWorkItem.status.blocked":"Blocked","work.newWorkItem.status.completed":"Completed","work.newWorkItem.status.cancelled":"Cancelled","work.newTask.title":"New task","work.newTask.titleLabel":"Title","work.newTask.summaryLabel":"Summary","work.newTask.parentTaskLabel":"Parent task","work.newTask.noParentTask":"— No parent task —","work.newTask.statusLabel":"Status","work.newTask.assigneeLabel":"Assignee","work.newTask.assigneePlaceholder":"Who picks this up?","work.newTask.priorityLabel":"Priority","work.newTask.noPriority":"— No priority —","work.newTask.acceptanceCriteriaLabel":"Acceptance criteria","work.newTask.acceptanceCriteriaPlaceholder":'How do we know this is "done"?',"work.newTask.titlePlaceholder":"What concrete action needs to happen?","work.newTask.summaryPlaceholder":"Describe scope or context in one or two lines.","work.newTask.cancelButton":"Cancel","work.newTask.closeLabel":"Close","work.newTask.submitLabel":"Create task","work.newTask.submittingLabel":"Creating…","work.newTask.createError":"Failed to create task.","work.newTask.status.draft":"Draft","work.newTask.status.pendingApproval":"Pending approval","work.newTask.status.approved":"Approved","work.newTask.status.inProgress":"In progress","work.newTask.status.blocked":"Blocked","work.newTask.status.completed":"Completed","work.newTask.priority.urgent":"Urgent","work.newTask.priority.high":"High","work.newTask.priority.medium":"Medium","work.newTask.priority.low":"Low","work.newProject.title":"New project","work.newProject.titleLabel":"Title","work.newProject.summaryLabel":"Summary","work.newProject.statusLabel":"Status","work.newProject.titlePlaceholder":"What is this project?","work.newProject.summaryPlaceholder":"Why does it exist? Who is it for?","work.newProject.cancelButton":"Cancel","work.newProject.closeLabel":"Close","work.newProject.submitLabel":"Create project","work.newProject.submitBusyLabel":"Creating…","work.newProject.createError":"Failed to create project.","work.crud.error.titleRequired":"Title is required.","work.crud.error.invalidInput":"Invalid input.","work.crud.error.projectIdRequired":"Project id is required.","work.crud.error.workItemIdRequired":"Work item id is required.","work.crud.error.taskIdRequired":"Task id is required.","work.crud.error.projectNotFound":"No project with id {id}.","work.crud.error.workItemNotFound":"No work item with id {id}.","work.crud.error.taskNotFound":"No task with id {id}.","work.crud.error.mustBeStringWhenProvided":"Value must be a string when provided.","work.crud.error.metadataObjectRequired":"Metadata must be an object when provided.","work.crud.error.fieldStringOrNull":"{fieldName} must be a string or null.","work.crud.error.fieldStringArray":"{fieldName} must be a string array.","work.crud.error.mustBeOneOf":"Value must be one of: {values}.","work.item.loadingTitle":"Loading work item","work.item.relatedWorkItemTitle":"Related work item","chat.newChatDraft.sidePanelTitle":"New Chat Setup","chat.newChatDraft.generatedTitle":"New chat","chat.newChatDraft.generatedTitleWithIndex":"New chat {index}","chat.composer.error.chooseTwoParallelChats":"Choose at least two parallel chats before sending.","chat.composer.error.noActiveParallelThread":"Parallel chat was created without an active thread.","chat.composer.error.noParallelChatForSending":"No parallel chat is available for sending messages.","chat.composer.error.noChatForSending":"No chat is available for sending messages.","chat.composer.error.relayFailedForChannel":"Relay failed for {channelId}.","chat.composer.error.relayCompareFailed":"Failed to relay compare message.","chat.parallelRelay.command.check.label":"Check this","chat.parallelRelay.command.check.shortLabel":"Check","chat.parallelRelay.command.check.description":"Stress-test another reply for gaps, risks, and wrong assumptions.","chat.parallelRelay.command.adopt.label":"Adopt this","chat.parallelRelay.command.adopt.shortLabel":"Adopt","chat.parallelRelay.command.adopt.description":"Use another reply as the new working direction and improve it.","chat.parallelRelay.command.debate.label":"Debate this","chat.parallelRelay.command.debate.shortLabel":"Debate","chat.parallelRelay.command.debate.description":"Take the strongest reasonable counter-position to another reply.","chat.parallelRelay.command.improve.label":"Improve this","chat.parallelRelay.command.improve.shortLabel":"Improve","chat.parallelRelay.command.improve.description":"Refine, expand, or strengthen another reply.","chat.parallelRelay.command.counter.label":"Counter this","chat.parallelRelay.command.counter.shortLabel":"Counter","chat.parallelRelay.command.counter.description":"Provide a strong counter-argument or alternative approach.","chat.parallelRelay.command.synthesize.label":"Synthesize this","chat.parallelRelay.command.synthesize.shortLabel":"Synthesize","chat.parallelRelay.command.synthesize.description":"Combine this with your own analysis - where do they align or diverge?","chat.parallelRelay.target.noChats":"no chats","chat.parallelRelay.target.pair":"{first} and {second}","chat.parallelRelay.target.many":"{allButLast}, and {last}","chat.parallelRelay.note.outgoing":"Shared reply #{replyId} via {commandLabel} to {targets}.","chat.parallelRelay.note.incoming":"Received {commandLabel} from {sourceMemberLabel} for reply #{replyId}.","chat.parallelRelay.prompt.header":"[Parallel relay - {commandLabel}]","chat.parallelRelay.prompt.sourceHeader":"[Reply to review]","chat.parallelRelay.prompt.sourceLabel":"Source: {sourceMemberLabel}","chat.parallelRelay.prompt.check.instructionOne":"Review the quoted reply for correctness, risks, blind spots, and unsupported assumptions.","chat.parallelRelay.prompt.check.instructionTwo":"State what is solid, what is weak, and what you would change.","chat.parallelRelay.prompt.adopt.instructionOne":"Treat the quoted reply as the new draft to continue from.","chat.parallelRelay.prompt.adopt.instructionTwo":"Keep what is strong, fix what is weak, and answer in your own words.","chat.parallelRelay.prompt.debate.instructionOne":"Take the strongest reasonable counter-position to the quoted reply.","chat.parallelRelay.prompt.debate.instructionTwo":"Challenge assumptions, point out weak spots, and state where you disagree.","chat.parallelRelay.prompt.improve.instructionOne":"Refine, expand, or strengthen the quoted reply.","chat.parallelRelay.prompt.improve.instructionTwo":"Fix weaknesses, add missing depth, and produce a better version.","chat.parallelRelay.prompt.counter.instructionOne":"Provide a strong counter-argument or alternative approach to the quoted reply.","chat.parallelRelay.prompt.counter.instructionTwo":"Argue from the opposite perspective with concrete reasoning.","chat.parallelRelay.prompt.synthesize.instructionOne":"Based on our conversation so far, synthesize the quoted reply with your own analysis.","chat.parallelRelay.prompt.synthesize.instructionTwo":"Identify where you align, where you diverge, and what a combined view would look like.","chat.composer.error.sendFailed":"Failed to send message.","chat.composer.error.retryFailed":"Failed to retry response.","chat.composer.error.stopFailed":"Failed to stop response.","chat.composer.error.activeChatNotInParallelGroup":"The active chat is not part of this parallel chat group.","chat.composer.error.sourceChatNotInParallelGroup":"The source chat is not part of this parallel chat group.","chat.composer.error.parallelBranchOutsideGroup":"One or more parallel branches target a chat outside this parallel chat group.","chat.composer.error.noParallelRelayTargets":"Select at least one parallel chat target for this relay.","chat.composer.error.messageNotFound":"Message not found.","chat.composer.error.retryInvalidSender":"Only your messages can be retried.","chat.composer.error.retryInProgress":"Wait for the active response to finish before retrying.","chat.composer.error.retryNotLatest":"Only the latest acknowledged message can be retried.","chat.composer.error.retryNotAvailable":"Retry is available only for the latest failed acknowledged message.","chat.governance.error.updateApproval":"Failed to update approval.","chat.governance.error.submitChoiceResponse":"Failed to submit choice response.","chat.governance.error.recordOperatorAction":"Failed to record operator action.","chat.participants.error.updateParticipant":"Failed to update participant.","chat.participants.error.noFields":"Update at least one participant field.","chat.participants.error.notFound":"Participant not found in this chat.","chat.participants.error.temporaryOnly":"Only temporary participants can be renamed here.","chat.participants.error.nameRequired":"Participant name is required.","chat.catAssignment.createdAssignHint":'Cat created. Open "Choose existing" to assign it.',"chat.catAssignment.error.createCat":"Failed to create cat.","chat.catAssignment.error.assignCat":"Failed to assign cat.","chat.catAssignment.error.removeCat":"Failed to remove cat.","chat.catAssignment.error.channelNotFound":"This chat channel was not found.","chat.catAssignment.error.assignmentNotFound":"This cat is not assigned to the selected chat.","chat.catAssignment.error.directRecipientOnly":"Direct messages can only keep their direct recipient Cat.","chat.catAssignment.error.participantLimitReached":"This chat already has the maximum {maxParticipants} participants.","chat.companion.tab.status":"Status","chat.companion.tab.sources":"Sources","chat.companion.tab.memory":"Memory","chat.companion.tab.behavior":"Behavior","chat.companion.tab.inspector":"Inspector","chat.companion.workspace.loadError":"Failed to load companion data","shared.executionTarget.saveNewChatDefaultsError":"Failed to save new chat model defaults.","shared.executionTarget.saveChatReplySettingsError":"Failed to save this chat AI reply settings.","shared.channelContinuity.startFreshError":"Failed to start a fresh chat continuity branch.","shared.settingsCatsMemory.saveError":"Failed to save memory.","shared.settingsCatsMemory.deleteError":"Failed to delete memory.","shared.settingsCatsMemory.contentRequired":"Memory content is required.","shared.settingsCatsMemory.invalidCategory":"Memory category is invalid.","shared.settingsCatsMemory.notFound":"Memory not found.","shared.operatorLoop.loadError":"Failed to load operator loop.","shared.folderBrowser.loadError":"Failed to load folders.","shared.orchestrator.fallbackName":"Orchestrator","shared.draftHeader.changeCoverPhoto":"Change cover photo","shared.draftHeader.addCoverPhoto":"Add cover photo","shared.draftHeader.changeAvatar":"Change avatar","shared.draftHeader.addAvatar":"Add avatar","chat.participantChip.countOne":"{count} participant","chat.participantChip.countMany":"{count} participants","chat.participantChip.default":"Participants","chat.draftParticipant.capability.strongAgent":"Strong agent","chat.draftParticipant.capability.conservativeAgent":"Conservative agent","chat.draftParticipant.reviewReason.broadWrite":"broad-write tool grants","chat.draftParticipant.reviewReason.outcomeDelegation":"outcome delegation","chat.draftParticipant.reviewReason.highApproval":"high approval threshold","chat.draftParticipant.autonomy.none":"no autonomy","chat.draftParticipant.autonomy.singleStep":"single step","chat.draftParticipant.autonomy.milestonePlan":"milestone plan","chat.draftParticipant.autonomy.outcomeDelegation":"outcome delegation","chat.draftParticipant.toolScope.none":"no tools","chat.draftParticipant.toolScope.readOnly":"read-only","chat.draftParticipant.toolScope.narrowWrite":"narrow-write","chat.draftParticipant.toolScope.broadWrite":"broad-write","chat.draftParticipant.approvalThreshold.low":"low","chat.draftParticipant.approvalThreshold.medium":"medium","chat.draftParticipant.approvalThreshold.high":"high","chat.draftParticipant.policySummary":"{autonomy}; {approvalThreshold} approval","chat.draftParticipant.toolGrantSummary":"{toolScope} tools","chat.sidebar.primaryAction.newChat":"New Chat","chat.sidebar.primaryAction.groupChat":"Group Chat","chat.sidebar.primaryAction.parallelChat":"Parallel Chat","chat.sidebar.myCatsEmptyStateLabel":"New cat","chat.concurrentCluster.dismissActionLabel":"Dismiss","chat.concurrentCluster.dismissActionTitle":"Dismiss layout","chat.concurrent.toolLabel":"tool","chat.concurrent.progress.finalizing":"Finalizing...","chat.concurrent.progress.finishing":"Finishing...","chat.concurrent.error.runtimeStreamUnavailable":"Runtime stream unavailable","chat.concurrent.error.proxy":"Proxy error","chat.concurrent.copyLabeledResponseLabel":"Copy message from {speakerName}","chat.concurrent.copyUnnamedResponseLabel":"Copy unnamed response","chat.focusRail.unnamedResponseLabel":"unnamed response","chat.focusRail.expandAnonymousResponseLabel":"Expand unnamed response","chat.focusRail.collapseAnonymousResponseLabel":"Collapse unnamed response","chat.focusRail.expandLabeledResponseLabel":"Expand response from {speakerName}","chat.focusRail.collapseLabeledResponseLabel":"Collapse response from {speakerName}","chat.activityFeed.eyebrow":"Activity","chat.activityFeed.latestUpdatesTitle":"Latest updates","chat.activityFeed.emptyState":"Activity appears here when the room starts moving.","chat.activityFeed.byActorLabel":"By {actorName}","chat.messageChoices.customButton":"Custom","chat.messageChoices.customPlaceholder":"Add your own answer","chat.messageChoices.ownerSkippedState":"Owner skipped these choices.","chat.messageChoices.ownerRecordedState":"Owner response recorded.","chat.messageChoices.confirmButton":"Confirm","chat.messageChoices.skipButton":"Skip","chat.parallelFooter.navigationAriaLabel":"Parallel chat navigation","chat.parallelFooter.prevAriaLabel":"Previous parallel chat","chat.parallelFooter.nextAriaLabel":"Next parallel chat","chat.parallelFooter.tabsAriaLabel":"Parallel chats","chat.parallelFooter.threadLabel":"Thread {threadIndex}","chat.parallelFooter.defaultModelLabel":"Model","chat.compareCards.prevCardAriaLabel":"Previous card","chat.compareCards.nextCardAriaLabel":"Next card","chat.compareCards.paginationItemAriaLabel":"Card {cardIndex}","chat.topBar.toggleSidePanelAriaLabel":"Toggle inspector panel","chat.boot.loadingAria":"Loading Cats Chat","chat.newChatDraft.participants.catsTitle":"Cats","chat.newChatDraft.participants.groupTitle":"Participants","chat.newChatDraft.participants.emptyState":"No cats are available yet.","chat.newChatDraft.execution.title":"AI Reply","chat.newChatDraft.execution.actionLabel":"Choose AI reply","chat.newChatDraft.execution.emptyState":"No AI reply setup yet.","chat.newChatDraft.planMyDayChipLabel":"Plan my day","chat.newChatDraft.planMyDayPrompt":"Help me plan today’s priorities.","chat.newChatDraft.brainstormNameChipLabel":"Brainstorm a name","chat.newChatDraft.brainstormNamePrompt":"Brainstorm a few name options for a new side project.","chat.newChatDraft.summarizeLinkChipLabel":"Summarize a link","chat.newChatDraft.summarizeLinkPrompt":"Summarize the key points of a link I’ll paste below.","chat.newChatDraft.pomodoroChipLabel":"Build a pomodoro app","chat.newChatDraft.pomodoroPrompt":"Write a small pomodoro timer app.","chat.newChatDraft.startProjectChipLabel":"Start a project","chat.newChatDraft.startProjectPrompt":"Start a small project to track milestones.","chat.newChatDraft.chooseCodespaceActionLabel":"Choose codespace","chat.newChatDraft.folder.title":"Folder","chat.newChatDraft.folder.emptyState":"No folder selected yet.","chat.newChatDraft.defaultGreeting":"Meow. Ready when you are.","chat.newChatDraft.greeting.nap":"Your cat hasn't napped yet.","chat.newChatDraft.greeting.keyboard":"Cats on the keyboard.","chat.newChatDraft.greeting.letsGo":"Tail up, let's go.","chat.newChatDraft.greeting.standby":"Purring in standby.","chat.newChatDraft.greeting.taskReady":"Claws sharpened. What's the task?","chat.newChatDraft.greeting.onDuty":"This cat doesn't sleep on the job.","chat.sidePanel.temporaryParticipantLabel":"Temporary","chat.sidePanel.roleLabel":"Role","chat.sidePanel.aiServiceLabel":"AI Service","chat.sidePanel.connectionLabel":"Connection","chat.sidePanel.startFresh":"Start fresh","chat.sidePanel.startingFreshBusy":"Starting fresh...","chat.sidePanel.startFreshHint":"Keep this chat open, but reset default continuity so the next turn starts a new branch.","chat.sidePanel.runStatusTitle":"Run Status","chat.sidePanel.runStatusUnavailableTitle":"Status unavailable","chat.sidePanel.loadingTitle":"Loading","chat.sidePanel.operatorLoadingState":"Loading approvals, activity, and run details.","chat.approvalQueue.eyebrow":"Approval","chat.approvalQueue.pendingTitle":"Pending approvals","chat.approvalQueue.emptyState":"The room can keep moving until a plan asks for an owner decision.","chat.approvalQueue.defaultRequester":"Orchestrator","chat.approvalQueue.defaultSummary":"Review this dispatch before Cats continue.","chat.approvalQueue.requestedByPrefix":"Requested by {requestedBy}","chat.catStatus.compact.activeLabel":"active","chat.catStatus.compact.needAttentionLabel":"need attention","chat.catStatus.compact.sleepingLabel":"sleeping","chat.catStatus.activeLabel":"Active","chat.catStatus.blockedLabel":"Blocked","chat.catStatus.waitingForReviewLabel":"Waiting for review","chat.catStatus.errorLabel":"Error","chat.catStatus.wakingUpLabel":"Waking up","chat.catStatus.sleepingLabel":"Sleeping","chat.catStatus.idleLabel":"Idle","chat.lifecycle.awakeLabel":"Awake","chat.lifecycle.wakingUpLabel":"Waking up","chat.lifecycle.needsAttentionLabel":"Needs attention","chat.lifecycle.sleepingLabel":"Sleeping","chat.companionWorkspace.retryLabel":"Retry","chat.companionWorkspace.noSelectionState":"No selection.","chat.companionWorkspace.subscriptionDisabledTooltip":"Companion subscriptions are not available yet.","chat.companionWorkspace.subscriptionLabel":"Subscribe","chat.companionWorkspace.shareDisabledTooltip":"Select a post, photo, video, music track, or file before sharing.","chat.companionWorkspace.shareLabel":"Share","chat.companionWorkspace.sidePanelTitle":"Companion","chat.companionFeedTabPosts":"Posts","chat.companionFeedTabPhotos":"Photos","chat.companionFeedTabVideos":"Videos","chat.companionFeedTabMusic":"Music","chat.companionFeedTabFiles":"Files","chat.companionFeedTabActivity":"Activity","chat.companionFeedNavAriaLabel":"Companion feed","chat.companionFeedPostEmptyState":"{catName} hasn't posted anything yet.","chat.companionFeedMediaEmptyState":"No {type} yet.","chat.companionFeedMediaItemDefaultLabel":"media items","chat.companionFeedMediaItemsLabel":"{count} {surface}","chat.companionFeedSurfacePhotoLabel":"photos","chat.companionFeedSurfaceVideoLabel":"videos","chat.companionFeedSurfaceMusicLabel":"music","chat.companionFeedSurfaceFileLabel":"files","chat.companionFeedActivityEmptyState":"Nothing recent.","chat.companionFeedActivityHiddenState":"Older activity is hidden.","chat.companionMessageReferenceListAria":"Companion content references","chat.companionMessageReferenceUnsupportedVersionLabel":"Unsupported reference version","chat.companionMessageReferenceMalformedLabel":"Malformed reference","chat.companionMessageReference.invalidWrongScheme":"Reference must use cats://.","chat.companionMessageReference.invalidWrongHost":"Reference must point to companion.","chat.companionMessageReference.invalidMalformedPercentEncoding":"Reference contains malformed percent encoding.","chat.companionMessageReference.invalidBadSegmentCount":"Reference has the wrong number of path segments.","chat.companionMessageReference.invalidEmptyPathSegment":"Reference contains an empty path segment.","chat.companionMessageReference.invalidUnknownTargetType":"Reference target type is unknown.","chat.companionMessageReferenceLoadingLabel":"Loading reference preview","chat.companionMessageReferenceUnavailableLabel":"Companion reference unavailable","chat.companionMessageReferenceOpenInCompanionAction":"Open in companion","chat.companionModeToggleDirectLaneAriaLabel":"Direct lane view","chat.companionModeToggleChatViewAriaLabel":"Chat view","chat.companionModeToggleCompanionViewAriaLabel":"Companion view","chat.companionResourcesLoadingState":"Loading...","chat.companionResourcesSectionTitle":"Resources","chat.companionResourcesActionShowForm":"+ Add","chat.companionResourcesActionCancel":"Cancel","chat.companionResourcesActionAddResource":"Add resource","chat.companionResourcesActionBusy":"Adding...","chat.companionResourcesFormTitlePlaceholder":"Title","chat.companionResourcesFormNotePlaceholder":"Note (optional)","chat.companionResourcesFormContentPlaceholder":"Content","chat.companionResourcesEmptyState":"No resources yet. Add materials to help your companion.","chat.companionResourcesSourceKindNote":"Note","chat.companionResourcesSourceKindConversationLog":"Log","chat.companionResourcesSourceKindArticle":"Article","chat.companionResourcesSourceKindImage":"Image","chat.companionResourcesSourceKindVideo":"Video","chat.companionResourcesSourceKindAudio":"Audio","chat.companionResourcesSourceKindPath":"Path","chat.companionResourcesSourceKindUnknown":"Unknown","chat.companionResourcesUntitledSource":"Untitled","chat.companionResourcesActionRemove":"Remove","chat.companionSettingsLoadingState":"Loading...","chat.companionSettingsResponseProfileTitle":"Response Profile","chat.companionSettingsExpressionModeLabel":"Expression Mode","chat.companionSettingsExpressionModeAnimalistic":"Animalistic","chat.companionSettingsExpressionModeAnthropomorphic":"Anthropomorphic","chat.companionSettingsExpressionModeMixed":"Mixed","chat.companionSettingsOutputModeLabel":"Output Mode","chat.companionSettingsOutputModeText":"Text","chat.companionSettingsOutputModeAudioClip":"Audio Clip","chat.companionSettingsOutputModeTts":"TTS","chat.companionSettingsOutputModeMixed":"Mixed","chat.companionSettingsResponseNotesLabel":"Response Notes","chat.companionSettingsResponseNotesPlaceholder":"Custom instructions for how your companion should respond...","chat.companionSettingsResponseNotesSave":"Save Notes","chat.companionSettingsResponseNotesSaving":"Saving...","chat.companionSettingsTelegramBindingTitle":"Telegram Binding","chat.companionSettingsTelegramBindingBotLabel":"Bot:","chat.companionSettingsTelegramBindingModeLabel":"Mode:","chat.companionSettingsTelegramBindingConnected":"Connected","chat.companionSettingsTelegramBindingDefaultMode":"Default","chat.companionSettingsTelegramBindingManageHint":"Manage Telegram binding in ","chat.companionSettingsTelegramBindingSettingsLabel":"Settings > My Cats","chat.companionSettingsTelegramBindingSuffix":".","chat.companionSettingsNoTelegramBindingState":"No Telegram binding. Configure one in ","chat.companionOverviewLoadingState":"Loading...","chat.companionOverviewPresenceTitle":"Presence","chat.companionOverviewPresenceWakeButton":"Wake","chat.companionOverviewPresenceSleepButton":"Sleep","chat.companionOverviewSummaryTitle":"Summary","chat.companionOverviewSummaryResourceLabel":"resources","chat.companionOverviewSummaryCreationLabel":"creations","chat.companionOverviewSummaryMemoryLabel":"memories","chat.companionOverviewRecentMemoriesTitle":"Recent Memories","chat.companionOverviewEmptyState":"No memories yet.","chat.companionMemoryLoadingState":"Loading...","chat.companionMemorySectionTitle":"Memory","chat.companionMemoryActionAdd":"+ Add","chat.companionMemoryActionCancel":"Cancel","chat.companionMemoryFormPlaceholder":"What should your companion remember?","chat.companionMemoryActionBusy":"Adding...","chat.companionMemoryActionAddSubmit":"Add Memory","chat.companionMemoryFilterAll":"All","chat.companionMemoryCategoryIdentity":"Identity","chat.companionMemoryCategoryPreference":"Preference","chat.companionMemoryCategoryRelationship":"Relationship","chat.companionMemoryCategoryFact":"Fact","chat.companionMemoryCategoryEvent":"Event","chat.companionMemoryCategoryOwnerNote":"Owner Note","chat.companionMemoryEmptyState":"No memories yet. Your companion learns from conversations and resources.","chat.companionMemoryEmptyFilterState":"No memories match the selected filter.","chat.companionMemoryActionRemove":"Remove","chat.companionMessageReferenceAvailabilityLivePreview":"Live preview","chat.companionMessageReferenceAvailabilityMissing":"Missing","chat.companionMessageReferenceAvailabilityDeleted":"Deleted","chat.companionMessageReferenceAvailabilityInaccessible":"Inaccessible from this workspace","chat.companionMessageReferenceMissingFallbackTitle":"Companion content unavailable","chat.companionMessageReferenceDeletedFallbackTitle":"Companion content deleted","chat.companionMessageReferenceInaccessibleFallbackTitle":"Companion content from another workspace","chat.companionMessageReferenceInaccessibleFallbackDescription":"This companion content comes from a different platform-host scope and cannot be opened here.","chat.companionMessageReferenceUnknownCompanionLabel":"Companion","chat.companionMessageReferenceUntitledPostTitle":"Untitled post","chat.companionMessageReferenceUntitledSourceTitle":"Untitled companion source","chat.newChatDraft.composerPlaceholder":"How can I help you today?","chat.newChatDraft.folderActionLabel":"Choose folder","chat.newChatDraft.groupDraftSelectionLabelSingle":"1 participant selected so far. Add more or send when ready.","chat.newChatDraft.groupDraftSelectionLabelCount":"{count} participants selected for this shared chat.","chat.newChatDraft.groupDraftSelectionLabelWithCatsOrAssistants":"Choose Cats, reuse saved Assistants, or add temporary participants for this shared chat.","chat.newChatDraft.groupDraftSelectionLabelWithSettings":"Add temporary participants here, or create Cats and Assistants in Settings before starting a shared chat.","chat.newChatDraft.assistantPresetAdd":"Add","chat.newChatDraft.assistantPresetReview":"Review","chat.newChatDraft.assistantPresetAdded":"Added","chat.newChatDraft.temporaryParticipantCancel":"Cancel","chat.newChatDraft.temporaryParticipantNameLabel":"Name","chat.newChatDraft.temporaryParticipantNamePlaceholder":"Participant name","chat.newChatDraft.temporaryParticipantNameHint":"Name will be assigned automatically from the provider. You can rename it after adding.","chat.newChatDraft.temporaryParticipantSaveName":"Save name","chat.newChatDraft.temporaryParticipantRename":"Rename","chat.newChatDraft.temporaryParticipantRemove":"Remove","chat.newChatDraft.temporaryParticipantRoleHintLabel":"Role Hint","chat.newChatDraft.temporaryParticipantRoleHintPlaceholder":"Optional one-line role","chat.newChatDraft.temporaryParticipantSubmit":"Add participant","chat.newChatDraft.temporaryParticipantOpenForm":"Add temporary participant","chat.newChatDraft.branchPolicyWorkspaceWorktree":"Worktree","chat.newChatDraft.branchPolicyWorkspaceSource":"Current folder","chat.newChatDraft.branchPolicyWorkspaceSandbox":"Sandbox","chat.newChatDraft.branchPolicyAccessReadOnly":"Read only","chat.newChatDraft.branchPolicyAccessFull":"Full access","chat.newChatDraft.branchPolicyRelinkAria":"Re-link branch session policy to lead","chat.newChatDraft.branchPolicyDetachAria":"Detach branch session policy","chat.newChatDraft.branchPolicyFollowsLeadLabel":"Policy follows lead","chat.newChatDraft.branchFolderRelinkAria":"Re-link branch folder to lead","chat.newChatDraft.branchFolderChooseAria":"Choose branch folder","chat.newChatDraft.branchFollowsLeadLabel":"Follows lead","chat.newChatDraft.branchPromptJumpToLeadTitle":"Click to edit on lead branch","chat.newChatDraft.branchPromptJumpToLeadAria":"Jump to lead branch to edit prompt","chat.newChatDraft.branchAttachAria":"Attach","chat.newChatDraft.branchCollaborateAria":"Add another model to collaborate","chat.newChatDraft.branchRemoveAria":"Remove branch {branchIndex}","chat.newChatDraft.branchAddParallelAria":"Add parallel chat","chat.newChatDraft.branchAddCompareHint":"Add another model to compare","chat.newChatDraft.branchAttachmentOverrideError":"Branch {branchIndex}: attachments are not yet per-branch; remove the override.","chat.newChatDraft.collaborateAria":"Add another model to collaborate","chat.newChatDraft.collaborateHint":"Add another model to collaborate","chat.newChatDraft.removeFolderAria":"Remove folder","chat.newChatDraft.attachmentRemoveAria":"Remove {fileName}","chat.newChatDraft.addPhotosAndFiles":"Add photos and files","chat.newChatDraft.takeScreenshot":"Take screenshot","shared.screenshotCapture.tooltipDesktopRegion":"Capture a region of your screen","shared.screenshotCapture.tooltipWebPicker":"Capture a screen, window, or tab","shared.screenshotCapture.tooltipUnavailable":"Screen capture is unavailable in this environment","shared.screenshotCapture.permissionRequired":"Screen Recording permission is required to capture a screenshot. Grant Cats screen access in macOS System Settings, then restart Cats.","shared.screenshotCapture.permissionStatusUnknown":"Screen Recording permission status is unknown: {status}","shared.screenshotCapture.failed":"Failed to capture screenshot.","shared.screenshotCapture.frameLoadFailed":"Failed to load captured screen frame.","shared.screenshotCapture.frameEmpty":"Captured screen frame is empty.","shared.screenshotCapture.canvasPrepareFailed":"Could not prepare screenshot canvas.","shared.screenshotCapture.encodeFailed":"Could not encode screenshot.","shared.screenshotCapture.downscaleFailed":"Could not downscale screenshot.","shared.screenshotCapture.displayUnavailable":"Screenshot failed: the selected display is no longer available.","shared.screenshotCapture.regionUnsupported":"Region screenshot capture is unavailable on this desktop environment.","shared.screenshotCapture.noDisplays":"No displays are available for screenshot capture.","shared.screenshotCapture.wlrootsSessionUnsupported":"Native wlroots screenshot capture is not available in this session.","shared.screenshotCapture.wlrootsToolsRequired":"Native wlroots screenshot capture requires grim and slurp.","shared.screenshotCapture.wlrootsSelectionParseFailed":"Could not parse wlroots screenshot selection geometry.","shared.artifactCanvas.title":"Artifact Canvas","shared.artifactCanvas.loading":"Loading Artifact Canvas…","shared.artifactCanvas.loadFailed":"Artifact Canvas could not be loaded.","shared.artifactCanvas.invalidRoute":"Artifact Canvas route is missing an artifact id.","shared.artifactCanvas.close":"Close","shared.artifactCanvas.collapse":"Collapse","shared.artifactCanvas.expand":"Expand","shared.artifactCanvas.refresh":"Refresh","shared.artifactCanvas.openExternal":"Open external","shared.artifactCanvas.resizePane":"Resize Artifact Canvas pane","shared.artifactCanvas.unsupportedTitle":"No inline view available","shared.artifactCanvas.unsupportedBody":"This artifact does not have a safe inline presentation yet.","shared.artifactCanvas.policyVersion":"Policy version","chat.newChatDraft.cancelSendAria":"Cancel send","chat.newChatDraft.sendAria":"Send","chat.newChatDraft.sendAllChatsAria":"Send to all chats","chat.newChatDraft.startVoiceInputAria":"Start voice input","chat.newChatDraft.stopVoiceInputAria":"Stop voice input{privacyMessageSuffix}","chat.audience.removeParticipantAria":"Remove {name}","chat.audience.removeParticipantFromAudienceAria":"Remove {name} from audience","shared.voiceInput.error.notAllowed":"Microphone access was denied. Check your system and browser permissions.","shared.voiceInput.error.serviceNotAllowed":"Voice input is not available in this environment.","shared.voiceInput.error.audioCapture":"No microphone was detected.","shared.voiceInput.error.network":"Voice input could not reach the recognition service.","shared.voiceInput.error.languageNotSupported":"Voice input does not support the current language.","shared.voiceInput.error.permissionDenied":"Microphone access was denied. Check your system voice permissions.","shared.voiceInput.error.permissionNotDetermined":"Voice input needs system microphone and speech permissions.","shared.voiceInput.error.micUnavailable":"No microphone was detected.","shared.voiceInput.error.engineUnavailable":"Voice input is not available on this device.","shared.voiceInput.error.helperCrashed":"Voice input stopped unexpectedly.","shared.voiceInput.failedWithKind":"Voice input failed ({kind}).","shared.voiceInput.privacyUnknown":"Voice input may use Microsoft online speech depending on Windows privacy settings.","shared.voiceInput.privacyCloud":"Voice input is using an online speech service.","chat.draftCompareCarousel.ariaLabel":"Compare branch carousel","chat.draftCompareCarousel.previousBranchAria":"Previous branch","chat.draftCompareCarousel.nextBranchAria":"Next branch","chat.draftCompareCarousel.selectBranchAria":"Select branch","chat.draftCompareCarousel.goToBranchAria":"Go to branch {branchIndex}","chat.composerArea.attachAria":"Attach","chat.composerArea.placeholderParallelWaiting":"Waiting for parallel replies...","chat.composerArea.placeholderReply":"Reply...","chat.composerArea.scrollToLatestAria":"Scroll to latest","chat.composerArea.stopButtonLabel":"Stop","chat.composerArea.switchSendModeLabel":"Switch send mode","chat.composerArea.sendToThisChatAria":"Send to this chat","chat.activityEyebrow":"Activity","chat.activityLatestUpdatesHeading":"Latest updates","chat.activityEmptyState":"Activity appears here when the room starts moving.","chat.activityByActor":"By {actorName}","chat.participantsSectionNameLabel":"Participant name","chat.participantsSectionSaveNameButton":"Save name","chat.participantsSectionCancelButton":"Cancel","chat.participantsSectionRenameButton":"Rename","chat.participantsSectionNoParticipants":"No participants are in this chat yet.","chat.participantsSectionChooseCatsButton":"Choose cats","chat.transcriptMessageCheckWithOthersLabel":"Check with others","chat.transcriptMessageSynthesizeWithOthersLabel":"Synthesize with others","chat.transcriptMessageImproveWithOthersLabel":"Improve with others","chat.transcriptMessageAdoptWithOthersLabel":"Adopt with others","chat.transcriptMessageCounterWithOthersLabel":"Counter with others","chat.transcriptMessageDebateWithOthersLabel":"Debate with others","chat.transcriptMessageCopyLabel":"Copy message","chat.transcriptMessageRetryResponseLabel":"Retry response","chat.transcriptMessageRelayToOthersLabel":"Relay to others","chat.transcriptMessageFailedStatusLabel":"Response failed","chat.productIntent.ack.unsupportedDirectAudience":"Product mode commands need exactly one direct audience Cat for this MVP.","chat.productIntent.ack.unsupportedContext":"Product mode commands are available in direct messages for this MVP.","chat.productIntent.ack.chatActive":"Chat mode is active.","chat.productIntent.ack.workHumanGate":"Work mode is active. I can help clarify here, but a human must create or confirm the Work Item in Work or switch to a Cat that can own durable work.","chat.productIntent.ack.workStrongAnchor":"Work mode is active. Draft Work Item anchor created for clarification.","chat.productIntent.ack.workClarify":"Work mode is active. I will clarify the work before creating an item.","chat.productIntent.ack.codeHumanGate":"Code mode is active. I can help clarify here, but a human must create or confirm the Work Item in Work before Code execution can start.","chat.productIntent.ack.codeStrongAnchor":"Code mode is active. Draft Work Item anchor created with Code target.","chat.productIntent.ack.codeClarify":"Code mode is active. I will clarify the coding work before creating an item.","chat.productIntent.humanGate.draftSummaryFallback":"Clarify this {targetProduct} request before creating work.","chat.productIntent.humanGate.continueClarifying":"Continue clarifying in this direct chat","chat.productIntent.humanGate.openWorkItems":"Create or confirm a Work Item in Work","chat.productIntent.humanGate.switchCat":"Switch to a Cat that can own durable work","chat.productIntent.humanGate.question":"Choose the next step for this work intake.","chat.productIntent.draft.title.work":"Direct work intake","chat.productIntent.draft.title.code":"Direct code intake","chat.productIntent.draft.summary":"Draft {targetProduct} intake created from direct chat for clarification.","chat.productIntent.draft.goalFallback":"Clarify this {targetProduct} request from the direct conversation.","chat.productIntent.draft.successCriteria":"Clarify measurable success criteria with the owner.","chat.productIntent.draft.outOfScope":"Unconfirmed until the owner and Cat finish clarification.","chat.productIntent.draft.openQuestion":"What outcome should this work produce?","chat.implicitProductIntent.suggestion.work":"This looks like Work. Confirm before Cats creates durable work.","chat.implicitProductIntent.suggestion.code":"This looks like Code. Confirm before Cats creates durable code work.","chat.implicitProductIntent.question":"Turn this message into {targetProduct} intake?","chat.implicitProductIntent.confirm.work":"Turn into Work","chat.implicitProductIntent.confirm.code":"Turn into Code","chat.implicitProductIntent.decline":"Keep as chat","chat.implicitProductIntent.confirmed.work":"Confirmed Work intake.","chat.implicitProductIntent.confirmed.code":"Confirmed Code intake.","chat.implicitProductIntent.declined":"Kept as chat.","chat.implicitProductIntent.expired":"Suggestion expired.","shared.addCatPanelTitle":"Add cat to chat","shared.addCatPanelClose":"Close","shared.addCatPanelChooseExisting":"Choose existing","shared.addCatPanelCreateNew":"Create new","shared.addCatPanelAdding":"Adding…","shared.addCatPanelRemoving":"Removing…","shared.addCatPanelRemove":"Remove","shared.addCatPanelAdd":"Add","shared.addCatPanelNoOtherCats":"No other cats yet. Create one first.","shared.addCatPanelAllCatsInChat":"All cats are already in this chat.","shared.addCatPanelNameLabel":"Name","shared.addCatPanelNamePlaceholder":"Cat name","shared.addCatPanelSaving":"Saving…","shared.addCatPanelCreateAndAdd":"Create & Add","shared.addCatPanelCreateAndAddToChat":"Create & Add to Chat","shared.audience.popoverHeader":"Audience","shared.audience.selectAudienceLabel":"Select audience","shared.audience.workflowSequential":"Sequential","shared.audience.workflowConcurrent":"Concurrent","shared.audience.switchToSequentialModeLabel":"Switch to sequential mode","shared.audience.switchToConcurrentModeLabel":"Switch to concurrent mode","shared.workspaceMode.currentLabel":"Current folder","shared.workspaceMode.worktreeLabel":"Independent worktree","shared.workspaceMode.currentTooltip":"Edits files in the selected folder directly.","shared.workspaceMode.worktreeTooltip":"Creates a parallel working directory for this repo. Requires a git repository.","shared.telegramConnectDialog.title":"Connect Telegram","shared.telegramConnectDialog.botUsernameLabel":"Bot username","shared.telegramConnectDialog.botUsernamePlaceholder":"my_cat_bot","shared.telegramConnectDialog.botTokenLabel":"Bot token","shared.telegramConnectDialog.botTokenPlaceholder":"Paste from @BotFather","shared.telegramConnectDialog.modeLabel":"Mode","shared.telegramConnectDialog.modePolling":"Polling","shared.telegramConnectDialog.modeWebhook":"Webhook","shared.telegramConnectDialog.webhookSecretLabel":"Webhook secret","shared.telegramConnectDialog.webhookSecretPlaceholder":"Optional","shared.telegramConnectDialog.cancel":"Cancel","shared.telegramConnectDialog.connecting":"Connecting...","shared.telegramConnectDialog.connect":"Connect","shared.catsCreateCreateSection":"Create","shared.catsCreateNewCat":"New cat","shared.catsCreateCatLimitReached":"Cat limit reached","shared.catsCreateAddNewCatHint":"Add a new cat to your roster","shared.catsCreateCatNamePlaceholder":"Cat name","shared.catsCreateCancel":"Cancel","shared.catsCreateSaving":"Saving...","shared.catsCreateSaveCat":"Save Cat","shared.permissionMode.fullAccess":"Full access","shared.permissionMode.readOnly":"Read only","shared.composerSurface.label.chat":"Chat","shared.composerSurface.label.work":"Work","shared.composerSurface.label.code":"Code","shared.composerSurface.clearAria":"Clear {surfaceLabel} surface","shared.providerModel.support.advanced":"Advanced","shared.providerModel.support.readOnly":"Read-only","shared.delete.parallelChatGroup.title":"Delete all conversations","shared.delete.parallelChatGroup.message":'Delete all conversations in "{groupTitle}"? This removes each conversation and cleans up linked runtime sessions. This cannot be undone.',"shared.delete.parallelChatGroup.confirm":"Delete all","shared.delete.parallelChatGroup.fallback":"this parallel chat","shared.delete.cat.title":"Delete cat","shared.delete.cat.message":'Delete "{catName}"? This removes the Cat and cleans up linked runtime sessions. This cannot be undone.',"shared.delete.cat.confirm":"Delete","shared.delete.cat.fallback":"this cat","shared.transcript.deletedCat":"Deleted Cat","telegram.command.start.description":"Start a conversation","telegram.command.help.description":"Show available commands","telegram.command.commands.description":"List all commands","telegram.command.status.description":"Show connection status","telegram.command.open.description":"Open a new chat room","telegram.command.mode.description":"Show or switch companion and agent mode","telegram.command.chat.description":"Use ordinary chat mode","telegram.command.work.description":"Clarify and create a Work Item","telegram.command.code.description":"Clarify coding work","telegram.command.help.text":["Available commands:","/start - Show the bound Cat and how this bot works","/help - Show this help message","/commands - List all commands","/status - Show bot, binding, and mode status","/open - Open or continue the bound Cat lane","/mode - Show the current mode","/mode companion - Switch to companion behavior","/mode agent - Switch to agent behavior","/chat - Use ordinary chat mode","/work - Clarify and create a Work Item","/code - Clarify coding work"].join(`
17
+ `),"telegram.command.mode.companion":"Companion","telegram.command.mode.agent":"Agent","telegram.command.start.greetingBound":"Hello! I'm {catName} (via {botName}). Current mode: {mode}. Send a normal message to chat, or /mode to switch behavior.","telegram.command.start.greetingUnbound":"Hello! I'm {botName}. How can I help you?","telegram.command.status.botLine":"Bot: {botName}","telegram.command.status.linkedCatLine":"Linked Cat: {catName}","telegram.command.status.modeLine":"Mode: {mode}","telegram.command.status.inboundLine":"Inbound: {inboundMode}","telegram.command.status.chatLine":"Chat: {chatId}","telegram.command.status.connectedLine":"Status: Connected","telegram.command.open.reply":"Open the private lane with {name} in Cats, or just send a normal message here to continue chatting.","telegram.command.mode.notConfigurable":"This bot is not currently bound to a configurable Cat.","telegram.command.mode.current":`Current mode: {mode}
18
+ Use /mode companion or /mode agent to switch.`,"telegram.command.mode.unknown":`Unknown mode: {mode}
19
+ Use /mode companion or /mode agent.`,"telegram.command.mode.switchUnavailable":"Mode switching is unavailable for this bot binding right now.","telegram.command.mode.switched":`Switched {name} to {mode} mode.
20
+ Future normal messages in this chat will use that mode.`,"telegram.command.unknownCommand":`Unknown command: /{command}
21
+ Type /help to see available commands.`,"shared.operator.noTimestamp":"No timestamp","shared.operator.runStatus.running":"Running","shared.operator.runStatus.blocked":"Blocked","shared.operator.runStatus.completed":"Completed","shared.operator.runStatus.failed":"Failed","shared.operator.runStatus.cancelled":"Cancelled","shared.operator.runStatus.queued":"Queued","shared.operator.runStatus.title":"Run status","shared.operator.branchStatus.pending":"Pending","shared.operator.branchStatus.running":"Running","shared.operator.branchStatus.completed":"Completed","shared.operator.branchStatus.failed":"Failed","shared.operator.branchStatus.blocked":"Blocked","shared.operator.branchStatus.cancelled":"Cancelled","shared.operator.branchStatus.waitingForConverge":"Waiting for converge","shared.operator.checkpointStatus.completed":"Completed","shared.operator.checkpointStatus.cancelled":"Cancelled","shared.operator.checkpointStatus.open":"Open","shared.operator.outcomeStatus.succeeded":"Succeeded","shared.operator.outcomeStatus.blocked":"Blocked","shared.operator.outcomeStatus.failed":"Failed","shared.operator.outcomeStatus.cancelled":"Cancelled","shared.operator.traceKind.approval":"Approval","shared.operator.traceKind.checkpoint":"Checkpoint","shared.operator.traceKind.dispatch":"Dispatch","shared.operator.traceKind.error":"Error","shared.operator.traceKind.outcome":"Outcome","shared.operator.traceKind.status":"Status","shared.operator.traceKind.note":"Note","shared.operator.activity.label.recovery":"Recovery","shared.operator.activity.label.replay":"Replay","shared.operator.activity.label.decision":"Decision","shared.operator.activity.label.action":"Action","shared.operator.activity.label.artifact":"Artifact","shared.operator.activity.label.update":"Update","shared.operator.activity.label.trace":"Trace","shared.operator.eyebrow.inspector":"Inspector","shared.operator.runInspector.title":"Run inspector","shared.operator.runInspector.noHistory":"Select a room with workflow history to inspect traces and checkpoints.","shared.operator.runInspector.summaryFallback":"Inspect trace, checkpoint, and outcome records for this run.","shared.operator.meta.started":"Started {time}","shared.operator.meta.updated":"Updated {time}","shared.operator.meta.stage":"Stage: {stage}","shared.operator.workflowStage.blocked":"Blocked","shared.operator.workflowStage.concurrentFanOut":"Concurrent fan-out","shared.operator.workflowStage.continuationHandoff":"Continuation handoff","shared.operator.workflowStage.convergeReview":"Converge review","shared.operator.workflowStage.dispatch":"Dispatch","shared.operator.workflowStage.initialDispatch":"Initial dispatch","shared.operator.workflowStage.runtimeError":"Runtime error","shared.operator.workflowStage.startupRecovery":"Startup recovery","shared.operator.workflowStage.turnCompleted":"Turn completed","shared.operator.meta.shape":"Shape: {shape}","shared.operator.meta.reviewRequired":"Review required","shared.operator.meta.guardrail":"Guardrail: {guardrail}","shared.operator.meta.cooldown":"Cooldown: {cooldown}","shared.operator.guard.maxContinuations":"Max continuations","shared.operator.guard.maxDispatches":"Max dispatches","shared.operator.guard.maxTargetVisits":"Max target visits","shared.operator.guard.antiPingPong":"Anti ping-pong","shared.operator.cooldown.active":"Cooldown active","shared.operator.section.trace":"Trace","shared.operator.section.checkpoints":"Checkpoints","shared.operator.noCheckpointsRecorded":"No checkpoints recorded for this run.","shared.operator.checkpointSummaryFallback":"Checkpoint recorded.","shared.operator.section.branches":"Branches","shared.operator.noBranchesRecorded":"No branch or handoff lineage recorded for this run.","shared.operator.branch.handoff":"Handoff: {handoffReason}","shared.operator.branch.strategy":"Strategy: {strategy}","shared.operator.branchStrategy.forkIfPossible":"Fork if possible","shared.operator.branchStrategy.freshNoParent":"Fresh branch without parent","shared.operator.branchStrategy.singleTargetReview":"Single-target review","shared.operator.branchStrategy.transplantContext":"Transplant context","shared.operator.branchHandoff.explicitMention":"Explicit mention","shared.operator.branchHandoff.operatorReroute":"Operator reroute","shared.operator.branchHandoff.roomDefault":"Room default","shared.operator.branchHandoff.roomEntry":"Room entry","shared.operator.branchHandoff.runtimeRetry":"Runtime retry","shared.operator.branchHandoff.workflowContinuation":"Workflow continuation","shared.operator.branch.fromCheckpoint":"From {checkpointId}.","shared.operator.branch.noLineage":"No checkpoint lineage recorded.","shared.operator.section.outcomes":"Outcomes","shared.operator.noOutcomesRecorded":"No outcomes recorded for this run.","shared.operator.outcomeSummaryFallback":"Outcome recorded.","shared.operator.eyebrow.progress":"Progress","shared.operator.noActiveRun":"No active room run yet. Start or continue the chat to inspect dispatch state.","shared.operator.progressSummaryFallback":"Room orchestration state is available for inspection.","shared.operator.metric.dispatches":"Dispatches","shared.operator.metric.continuations":"Continuations","shared.operator.metric.targets":"Targets","shared.operator.approvalPending.singular":"{count} approval pending","shared.operator.approvalPending.plural":"{count} approvals pending","shared.operator.meta.delivery":"Delivery: {deliveryMode}","shared.operator.meta.gates":"Gates: {gates}","shared.operator.meta.budget":"Budget: {budgetLevel}","shared.operator.deliveryMode.artifactOnly":"Artifact only","shared.operator.deliveryMode.commitOnly":"Commit only","shared.operator.deliveryMode.deployPreview":"Deploy preview","shared.operator.deliveryMode.prWithChecks":"Pull request with checks","shared.operator.deliveryMode.pushBranch":"Push branch","shared.operator.deliveryGate.manualReviewRequired":"Manual review required","shared.operator.deliveryGate.ownerApprovalRequired":"Owner approval required","shared.operator.deliveryGate.publishArtifactRequired":"Publish artifact required","shared.operator.budgetLevel.normal":"Normal","shared.operator.budgetLevel.warning":"Warning","shared.operator.budgetLevel.blocked":"Blocked","shared.operator.workflowShape.sequential":"Sequential","shared.operator.workflowShape.concurrent":"Concurrent","shared.operator.workflowShape.converge":"Converge","shared.operator.inspectRunButton":"Inspect run","shared.operator.noTraceRecords":"No trace records yet for this run.","shared.operator.action.requestRetry":"Request Retry","shared.operator.action.retryAgain":"Retry Again","shared.operator.action.retrying":"Retrying","shared.operator.action.retryRequested":"Retry Requested","shared.operator.action.acknowledge":"Acknowledge","shared.operator.action.acknowledged":"Acknowledged","shared.operator.action.retryDescription":"Record that the operator wants this blocked or failed run retried.","shared.operator.action.replayStoredDispatchDescription":"Replay the stored dispatch or workflow continuation through the existing operator seam.","shared.operator.action.retryTaskDescription":"Record that the operator wants this blocked or failed task retried.","shared.operator.action.retryFailedDescription":"Retry failed. Operators can request another replay of the stored dispatch.","shared.operator.action.acknowledgeDescription":"Record that the operator has seen the current guardrail or incident state.","shared.operator.action.acknowledgeBlockedDescription":"Record that the operator has seen the current blocked or failed state.","shared.operator.action.status.retryInProgress":"Retry in progress","shared.operator.action.status.retryFailed":"Retry failed","shared.operator.action.status.retryFailedWithError":"Retry failed: {error}","shared.operator.action.status.retryDispatched":"Retry dispatched","shared.operator.action.status.retryRequested":"Retry requested","shared.operator.action.status.acknowledged":"Acknowledged","shared.common.apply":"Apply","shared.common.cancel":"Cancel","shared.common.close":"Close","shared.common.delete":"Delete","shared.common.retry":"Retry","shared.guideCat.panelGreeting":"Hi {ownerDisplayName}, I'm {guideCatName} — your guide cat. Pick any of these to get started, or close this panel and explore on your own.","shared.guideCat.welcomeGreeting":"Welcome, {ownerDisplayName}. I'm your guide cat. Here are some things to get you started.","shared.guideCat.welcomeStartChat":"Start first chat","shared.guideCat.welcomeMeetCats":"Meet your cats","shared.guideCat.welcomeExploreProducts":"Explore products","shared.guideCat.welcomeHideNow":"Hide for now","shared.guideCat.pillOpenLabel":"Open guide: {guideCatName}","shared.guideCat.pillDisableLabel":"Disable guide cat","shared.guideCat.dockUndockLabel":"Undock {guideCatName}","shared.guideCat.dialog.disableTitle":"Disable {guideCatName}?","shared.guideCat.dialog.disableMessage":"This turns off {guideCatName} help in Cats. If you just want it out of the way, you can dock it now instead. You can enable it again from Settings > Assistants.","shared.guideCat.dialog.disableConfirm":"Disable","shared.guideCat.dialog.keepEnabled":"Keep enabled","shared.guideCat.dialog.dockNow":"Dock now","shared.imageUpload.clickHint":"Click to choose image","shared.imageUpload.dragHint":"Drag to reposition, scroll to zoom","shared.workspaceNavigation.deleteChannelRuntimeCleanupFeedbackOne":"Conversation deleted. Cats Runtime retained {count} linked runtime session; open runtime diagnostics if disk cleanup matters.","shared.workspaceNavigation.deleteChannelRuntimeCleanupFeedbackMany":"Conversation deleted. Cats Runtime retained {count} linked runtime sessions; open runtime diagnostics if disk cleanup matters.","shared.workspaceNavigation.renameChatError":"Failed to rename chat.","shared.workspaceNavigation.deleteChatError":"Failed to delete chat.","shared.workspaceNavigation.renameParallelChatError":"Failed to rename parallel chat.","shared.workspaceNavigation.ungroupParallelChatError":"Failed to ungroup parallel chat.","shared.workspaceNavigation.deleteParallelChatGroupError":"Failed to delete all chats.","shared.workspaceNavigation.parallelChatFallbackName":"this parallel chat","shared.workspaceNavigation.error.chatNotFound":"This chat workspace was not found.","shared.workspaceNavigation.error.channelNotFound":"This chat channel was not found.","shared.workspaceNavigation.error.parallelChatGroupNotFound":"This parallel chat group was not found.","shared.workspaceNavigation.error.titleRequired":"Chat title cannot be empty.","shared.workspaceNavigation.error.parallelChatTitleRequired":"Parallel chat title cannot be empty.","shared.settingsCatsRegistry.sectionLabel":"Registry","shared.settingsCatsRegistry.savedCatsLabel":"Saved cats","shared.settingsCatsRegistry.noCatsYetLabel":"No cats yet","shared.settingsCatsRegistry.showArchivedLabel":"Show archived ({count})","shared.settingsCatsRegistry.bossCatLabel":"Boss Cat","shared.settingsCatsRegistry.recoverLabel":"Recover","shared.settingsCatsRegistry.recoverTooltip":"Recover {name}","shared.settingsCatsRegistry.deleteTooltip":"Delete {name}","shared.settingsCatsRegistry.archiveTooltip":"Archive {name}","shared.settingsCatsRegistry.defaultSkillProfileLabel":"Default","shared.settingsCatsRegistry.memorySavedLabel":"Memory saved","shared.settingsCatsRegistry.noMemoryYetLabel":"No memory yet","shared.settingsCatsRegistry.botBindingCount":"{count} bot{pluralSuffix}","shared.settingsCatsRegistry.emptyStateHint":"Create your first cat from the panel on the right.","shared.settingsCats.selectCatAriaLabel":"Select a cat","shared.settingsCats.addNewCatLabel":"Add new cat","shared.settingsCats.showArchivedLabel":"Show archived ({count})","shared.settingsCats.archiveLabel":"Archive","shared.settingsCats.deleteLabel":"Delete","shared.settingsCats.channelLabel":"Channel","shared.settingsCats.memoryLabel":"Memory","shared.settingsCats.renameLabel":"Rename","shared.settingsCats.save":"Save","shared.settingsCats.saving":"Saving...","shared.settingsCats.bossCatLabel":"Boss Cat","shared.settingsCats.changeBossCatTitle":"Change Boss Cat","shared.settingsCats.changeBossCatMessage":"Make {name} the Boss Cat? This will change the default recipient for new chats.","shared.settingsCats.confirm":"Confirm","shared.settingsCats.setting":"Setting...","shared.settingsCats.saveSuccess":"Cat saved.","shared.settingsCats.saveError":"Failed to save cat.","shared.settingsCats.renameSuccess":"Cat renamed.","shared.settingsCats.renameError":"Failed to rename cat.","shared.settingsCats.deleteSuccess":"{catName} deleted.","shared.settingsCats.deleteError":"Failed to delete cat.","shared.settingsCats.bossUpdated":"Boss Cat updated.","shared.settingsCats.status.active":"Active","shared.settingsCats.status.archived":"Archived","shared.settingsCats.makeBossCatLabel":"Make {name} the Boss Cat","shared.settingsCats.setBossCatLabel":"Set as Boss Cat","shared.settingsCats.setBossCatError":"Failed to set Boss Cat.","shared.settingsCats.skillUpdateError":"Failed to update skill.","shared.settingsCats.skillProfileLabel":"Skill Profile","shared.settingsCats.mcpProfileLabel":"Tool Profile","shared.settingsCats.mcpProfileChatMemoryLabel":"Chat memory","shared.settingsCats.mcpProfileWorkMemoryLabel":"Work memory","shared.settingsCats.changeMcpProfileError":"Failed to change tool profile.","shared.settingsCats.coverPhotoLabel":"Cover photo","shared.settingsCats.changeCoverPhotoLabel":"Change cover photo","shared.settingsCats.uploadCoverPhotoLabel":"Upload cover photo","shared.settingsCats.changeCoverLabel":"Change cover","shared.settingsCats.uploadCoverLabel":"Upload cover","shared.settingsCats.removeCoverLabel":"Remove cover","shared.settingsCats.changeSkillProfileError":"Failed to change skill profile.","shared.settingsCats.updateBrainError":"Failed to update Brain.","shared.settingsCats.disconnectTelegramAria":"Disconnect Telegram","shared.settingsCats.disconnectTelegram":"Disconnect","shared.settingsCats.bindingActive":"Active","shared.settingsCats.bindingDisabled":"Disabled","shared.settingsCats.bindingPollingMode":"Polling","shared.settingsCats.bindingWebhookMode":"Webhook","shared.settingsCats.telegramBindingCreated":"Telegram bot binding created.","shared.settingsCats.telegramBindingCreateError":"Failed to create binding.","shared.settingsCats.telegramBindingRemoved":"Binding removed.","shared.settingsCats.telegramBindingRemoveError":"Failed to remove binding.","shared.settingsCats.telegramDiagnosticsLoadError":"Failed to load Telegram diagnostics.","shared.settingsCats.lastInboundLabel":"Last inbound {time}","shared.settingsCats.connectTelegramLabel":"Connect Telegram","shared.settingsCats.unavailableHint":"Unavailable for archived or non-chat cats.","shared.settingsCats.addMemoryLabel":"Add memory","shared.settingsCats.deleteMemoryAria":"Delete memory","shared.settingsCats.skillProfileDefaultLabel":"Default","shared.settingsCats.skillProfileCompanionLabel":"Companion","shared.settingsCats.memoryCategoryPreferenceLabel":"Preference","shared.settingsCats.memoryCategoryFactLabel":"Fact","shared.settingsCats.memoryCategoryPolicyLabel":"Policy","shared.settingsCats.memoryCategoryStyleLabel":"Style","shared.settingsCats.memoryCategoryRelationshipLabel":"Relationship","shared.settingsCats.memoryCategoryLessonLabel":"Lesson","shared.settingsCats.fallbackCatName":"this cat","shared.settingsCats.archiveConfirmTitle":"Archive cat","shared.settingsCats.archiveConfirmMessage":'Archive "{catName}"? You can recover this cat later from Settings.',"shared.settingsCats.archiveWithTelegramConfirmMessage":'Archive "{catName}"? Telegram bot bindings will be removed, but you can still recover the cat later from Settings.',"shared.settingsCats.archiveSuccess":"{catName} archived.","shared.settingsCats.archiveError":"Failed to archive cat.","shared.settingsCats.recoverConfirmTitle":"Recover cat","shared.settingsCats.recoverConfirmMessage":'Recover "{catName}" from archive?',"shared.settingsCats.recoverConfirmLabel":"Recover","shared.settingsCats.recoverSuccess":"{catName} recovered.","shared.settingsCats.recoverError":"Failed to recover cat.","shared.settingsCats.error.nameRequired":"Cat name is required.","shared.settingsCats.error.providerRequired":"Cat provider is required.","shared.settingsCats.error.nameEmpty":"Cat name cannot be empty.","shared.settingsCats.error.alreadyArchived":"This cat is already archived.","shared.settingsCats.error.alreadyActive":"This cat is already active.","shared.settingsCats.error.archiveRecoverConflict":"A cat cannot be archived and recovered at the same time.","shared.settingsCats.error.noProducts":"Select at least one product for this cat.","shared.settingsCats.error.botTokenDuplicate":"This bot token is already used by another binding.","shared.settingsCats.error.nameDuplicate":'A cat named "{name}" already exists.',"shared.settingsCats.error.limitReached":"Cat limit reached (max {maxCats}).","shared.settingsCats.error.notFound":"Cat not found.","shared.settingsCats.error.notActive":"This cat is not active.","shared.settingsCats.error.notAvailableInChat":"This cat is not available in Cats Chat.","shared.settingsCats.error.botBindingNotFound":"Bot binding not found.","shared.platformSurfaceSwitcher.menuLabel":"Switch product","shared.platformSurfaceSwitcher.openLobby":"Open Lobby","shared.platformSurfaceSwitcher.ariaLabel":"Switch product. Current product is {productName}.","shared.providerModelBrainCard.title":"Brain","shared.providerModel.controls.default":"Default","shared.providerModel.controls.enabled":"Enabled","shared.providerModel.controls.disabled":"Disabled","shared.providerModel.controls.optionalPlaceholder":"Optional","shared.providerModel.field.providerLabel":"Provider","shared.providerModel.field.loadingProviders":"Loading available providers...","shared.providerModel.field.selectProviderHint":"Select an available provider","shared.providerModel.field.providerLoadFailed":"Could not load runtime-backed providers","shared.providerModel.field.noProviders":"No runtime-backed providers available","shared.providerModel.field.registryCheckingHint":"Checking cats-runtime for usable provider targets.","shared.providerModel.field.registryUsingProductCatalogHint":"Using the product provider catalog while cats-runtime provider targets are checked.","shared.providerModel.field.registryStaleHint":"Showing last known provider targets while cats-runtime reconnects.","shared.providerModel.field.registryCachedRefreshFailedHint":"Showing cached provider targets because refresh failed: {message}","shared.providerModel.field.registryLoadFailedHint":"Could not load currently usable provider targets from cats-runtime.","shared.providerModel.field.registryEmptyHint":"cats-runtime is connected, but it did not report any currently usable provider targets.","shared.providerModel.field.providerInstanceLabel":"Provider instance","shared.providerModel.field.modelLabel":"Model","shared.providerModel.field.retryProvidersFirst":"Retry loading providers first","shared.providerModel.field.selectProviderFirst":"Select an available provider first","shared.providerModel.field.waitingProviders":"Waiting for available providers...","shared.providerModel.field.loadingModels":"Loading available models...","shared.providerModel.field.selectModel":"Select a model","shared.providerModel.field.noModels":"No runtime-backed models available","shared.providerModel.field.customLegacyModelLabel":"Custom legacy model...","shared.providerModel.field.legacyModelIdLabel":"Legacy model ID","shared.providerModel.field.legacyModelIdPlaceholder":"e.g. claude-sonnet-4-6","shared.providerModel.field.legacyModelIdHint":"Manual model id passthrough. Runtime resolves this as the legacy `model` field, not a structured entry/preset selection.","shared.providerModel.field.modeLabel":"Mode","shared.providerModel.field.modeStandardLabel":"Standard","shared.providerModel.field.modeStandardOnlyLabel":"Standard only","shared.providerModel.field.presetPreviewSuffix":" (preview)","shared.providerModel.field.presetUnavailableSuffix":" (unavailable)","shared.providerModel.field.presetTuningDescriptionFallback":"Extra tuning for this model.","shared.providerModel.field.modeOnlyBaseHint":"This provider target exposes only the base catalog entry for persisted chat/session settings.","shared.providerModel.field.requestScopedWarning":"Request-only runtime overrides are hidden here because this selector persists chat/session defaults.","shared.providerModel.field.openRuntimeSetupLabel":"Open Cats Runtime setup","shared.providerModel.field.advancedCatalogUnavailable":"Runtime advanced model catalog unavailable.","shared.providerModel.field.catalogKindModel":"model","shared.providerModel.field.catalogKindAdvancedModel":"advanced model","shared.providerModel.field.runtimeCatalogUnavailable":"Runtime {catalogKind} catalog unavailable.","shared.providerModel.field.runtimeCatalogUnavailableWarning":"Using the product {catalogKind} catalog while cats-runtime refreshes: {message}","shared.memoryEditorDialog.title":"Add memory","shared.memoryEditorDialog.categoryLabel":"Category","shared.memoryEditorDialog.contentLabel":"Content","shared.memoryEditorDialog.memoryPlaceholder":"What should this cat remember?","shared.memoryEditorDialog.cancel":"Cancel","shared.memoryEditorDialog.saving":"Saving...","shared.memoryEditorDialog.add":"Add","shared.approvalEyebrow":"Approval","shared.approvalPendingTitle":"Pending approvals","shared.approvalEmptyState":"The room can keep moving until a plan asks for an owner decision.","shared.approvalRequester":"Orchestrator","shared.approvalSummaryFallback":"Review this dispatch before Cats continue.","shared.approvalRequestedBy":"Requested by {requestedBy}","shared.approval.action.approve":"Approve","shared.approval.action.reroute":"Reroute","shared.approval.action.reject":"Reject","shared.approval.action.approveDescription":"Allow the orchestrator plan to proceed.","shared.approval.action.rerouteDescription":"Send the plan back for a different handoff or dispatch path.","shared.approval.action.rejectDescription":"Do not allow the plan to proceed.","shared.catInspectTitle":"Cat Preset","shared.catInspectClose":"Close","shared.catInspectBossLabel":"Boss","shared.catInspectProviderLabel":"Provider","shared.catInspectInstanceLabel":"Instance","shared.catInspectModelLabel":"Model","shared.catInspectSkillProfileLabel":"Skill Profile","shared.catInspectSharedPresetDescription":"This is a shared Cat preset. Changes here would affect all threads using this Cat.","shared.messageChoicesCustom":"Custom","shared.messageChoicesAddCustomPlaceholder":"Add your own answer","shared.messageChoicesSkipped":"Owner skipped these choices.","shared.messageChoicesRecorded":"Owner response recorded.","shared.messageChoicesConfirm":"Confirm","shared.messageChoicesSkip":"Skip","shared.folderBrowserEnterPath":"Enter a path","shared.folderBrowserGo":"Go","shared.folderBrowserUpOneLevel":"Up one level","shared.folderBrowserRefresh":"Refresh","shared.folderBrowserLoading":"Loading...","shared.folderBrowserNoSubdirectories":"No subdirectories in this folder.","shared.folderBrowserUseThisFolder":"Use this folder","shared.common.saving":"Saving...","shared.common.dismiss":"Dismiss","setup.wizard.welcomeTitle":"Welcome to Cats","setup.wizard.welcomeIntro":"Your personal AI workspace. Let's get you set up; it only takes a moment.","setup.wizard.ownerNameLabel":"Your name","setup.wizard.ownerNamePlaceholder":"Your display name","setup.wizard.getStartedButton":"Get started","setup.wizard.stepIndicator":"Step {step} of {total}","setup.wizard.enableGuideTitle":"Enable your {guideCatName}","setup.wizard.enableGuideSubtitle":"This optional helper can support you across Chat, Work, and Code.","setup.wizard.enableGuideLabel":"Enable {guideCatName}","setup.wizard.skipGuideMessage":"You can skip this for now and enable {guideCatName} later from Settings > Assistants.","setup.wizard.backButton":"Back","setup.wizard.openingCatsAction":"Opening Cats...","setup.wizard.openCatsAction":"Open Cats","setup.wizard.failedMessage":"Setup failed.","setup.wizard.failedWithStatus":"Setup failed ({status})","setup.wizard.alreadyCompleteError":"Setup has already been completed.","setup.wizard.invalidRequestError":"Setup request is invalid.","setup.wizard.serverError":"Setup could not be completed. Please try again.","setup.wizard.recordOpenFailedWithStatus":"Failed to record setup open ({status})","setup.guideCat.runtimeUnavailable":"Provider registry unavailable","setup.guideCat.noUsableTargets":"No usable providers found","setup.guideCat.runtimeConnected":"Cats Runtime connected","setup.guideCat.runtimeNotDetected":"Cats Runtime not detected","setup.guideCat.nameLabel":"Guide Cat name","setup.guideCat.nameHint":"Cats keeps this name fixed. It can vary by app language later.","setup.guideCat.openRuntimeSetup":"Open Cats Runtime setup","setup.guideCat.unavailableNote":"Cats can still open without the Guide Cat. Retry here, or open Cats Runtime setup if the provider registry keeps timing out.","setup.guideCat.noUsableTargetsNote":"Cats Runtime is reachable, but it did not report any usable provider targets for the Guide Cat.","settings.assistants.defaultName":"Assistant","settings.assistants.statusFailed":"Status update failed ({status})","settings.assistants.saveFailed":"Failed to save.","settings.assistants.statusUpdateFailed":"Status update failed ({status})","settings.assistants.guideCatUpdateFailed":"Failed to update Guide Cat.","settings.assistants.guideCatSaveFailed":"Failed to save Guide Cat.","settings.assistants.saveFailedWithError":"Save failed ({status})","settings.assistants.removeTitle":"Remove assistant","settings.assistants.removeMessage":`Remove "{title}"? This can't be undone.`,"settings.assistants.removeButton":"Remove","settings.assistants.removeFailed":"Failed to remove assistant.","settings.assistants.enableButton":"Enable","settings.assistants.enableBusyButton":"Saving...","settings.assistants.disableButton":"Disable","settings.assistants.avatarLabel":"Avatar","settings.assistants.nameLabel":"Name","settings.assistants.selectAriaLabel":"Select an assistant","settings.assistants.addNewLabel":"Add new assistant","settings.assistants.newAssistantTitle":"New assistant","settings.assistants.cancelButton":"Cancel","settings.assistants.createButton":"Save","settings.assistants.deleteButton":"Delete","settings.assistants.roleHintTitle":"Role hint","settings.assistants.namePlaceholder":"Assistant","settings.assistants.roleHintPlaceholder":"Reviewer, debugger, copy editor, API specialist...","settings.assistants.renameFailed":"Failed to rename assistant.","settings.assistants.roleHintUpdateFailed":"Failed to update role hint.","settings.assistants.brainUpdateFailed":"Failed to update Brain.","settings.assistants.createFailed":"Failed to save assistant.","settings.assistants.api.invalidRequestBody":"Request body is invalid.","settings.assistants.api.assistantNameRequired":"Assistant name is required.","settings.assistants.api.assistantProviderRequired":"Assistant provider is required.","settings.assistants.api.assistantModelRequired":"Assistant model is required.","settings.assistants.api.assistantNotFound":"Assistant not found.","settings.assistants.api.guideCatNameManaged":"Guide Cat name is managed by Cats.","settings.assistants.api.guideCatStatusInvalid":"Guide Cat status must be active or dismissed.","settings.assistants.api.guideCatNotFound":"Guide Cat does not exist yet.","conversationSidebar.chatsLabel":"Chats","conversationSidebar.recentsLabel":"Recents","conversationSidebar.noChatsLabel":"No chats yet","conversationSidebar.primaryAriaLabel":"Primary","conversationSidebar.openSidebarLabel":"Open sidebar","conversationSidebar.closeSidebarLabel":"Close sidebar","conversationSidebar.renameLabel":"Rename","conversationSidebar.renamingLabel":"Renaming...","conversationSidebar.deleteLabel":"Delete","conversationSidebar.deletingLabel":"Deleting...","conversationSidebar.ungroupLabel":"Ungroup","conversationSidebar.ungroupingLabel":"Ungrouping...","conversationSidebar.deleteAllLabel":"Delete All","conversationSidebar.openAccountSettingsLabel":"Open account settings","conversationSidebar.runtimeStatusAriaLabel":"Runtime status: {status}","conversationSidebar.directMessagesLabel":"Direct Messages","conversationSidebar.telegramBoundTooltip":"Telegram bot bound","conversationSidebar.archiveButton":"Archive","conversationSidebar.directMessageButton":"Direct message","conversationSidebar.clearButton":"Clear","conversationSidebar.clearConfirmMessage":"Clear conversation history with {catName}? This cannot be undone.","chatNewChatDraft.viewCatProfileAction":"View cat profile","chatTopBar.openCatProfileAriaLabel":"View cat profile","design.sidePanel.closeLabel":"Close","design.accountIdentityMenu.label":"Account menu","design.accountIdentityMenu.menuLabel":"Account menu","design.accountIdentityMenu.settingsLabel":"Settings","design.accountIdentityMenu.environmentLabel":"Environment","design.notification.dismissLabel":"Dismiss","entity.comingSoon.backToLobby":"Back to Lobby","entity.detail.breadcrumb.lobby":"Lobby","clowdersList.title":"My Clowders","clowdersList.eyebrow":"Clowders","clowdersList.emptyState":"No clowders yet. Formal task forces appear here once the Clowder registry is connected.","catteriesList.title":"My Catteries","catteriesList.eyebrow":"Catteries","catteriesList.emptyState":"No catteries yet. Organizations appear here once the Cattery registry is connected.","clowdersCanvas.ariaLabel":"Clowders canvas","catteriesCanvas.ariaLabel":"Catteries canvas","entityCanvas.totalLabel":"Total","entityCanvas.catsLabel":"Cats","entityCanvas.membersLabel":"Members","entityCanvas.clowdersLabel":"Clowders","entityCanvas.idLabel":"ID","entityCanvas.createdLabel":"Created","entityCanvas.selectedClowderLabel":"Selected Clowder","entityCanvas.selectedCatteryLabel":"Selected Cattery","entityCanvas.organizationLabel":"Organization","entityCanvas.parentCatteryLabel":"Parent Cattery","entityCanvas.formalClowderLabel":"Formal Clowder","entityCanvas.noOrganizationLabel":"No organization link","entityCanvas.noFormalClowdersLabel":"No formal Clowders","entityCanvas.openClowderAction":"Open Clowder","entityCanvas.openCatteryAction":"Open Cattery","entityCanvas.catterySubtitle":"{clowderCount} Clowders · {memberCount} members","catProfile.notFound.title":"Cat not found","catProfile.notFound.body":'No Cat with id "{catId}" exists in this workspace. It may have been removed, or the link is stale.',"entitiesSidebar.section.cats":"My Cats","entitiesSidebar.section.clowders":"My Clowders","entitiesSidebar.section.catteries":"My Catteries","entitiesSidebar.newCat":"New cat","entitiesSidebar.newClowder":"New clowder","entitiesSidebar.newCattery":"New cattery","entityIndex.eyebrow":"Directory","entityIndex.title":"Cats Directory","entityIndex.columnHeader.cats":"Cats","entityIndex.columnHeader.clowders":"Clowders","entityIndex.columnHeader.catteries":"Catteries","entityIndex.card.total":"{count} total","entityIndex.card.openCanvasAriaLabel":"Open {label}","entitiesShell.ariaLabel":"Cats Directory workspace","entitiesShell.surfaceLabel":"Cats Directory","entitiesShell.brandLabel":"Directory","entitiesShell.exitButtonAriaLabel":"Leave Cats Directory","clowderHome.ariaLabel":"Clowder home","clowderHome.chip.partOf":"Part of {catteryName}","clowderHome.chip.crossUnit":"Cross-unit task force","clowderHome.tab.cats":"Cats","clowderHome.tab.settings":"Settings","clowderHome.empty.cats":"No cats in this Clowder yet. Add the first one once Phase 6 membership management lands.","clowderHome.settings.body":"Clowder settings (rename, archive, transfer) ship with PLAN-091 phase 6 membership management.","clowderHome.notFound.title":"Clowder not found","clowderHome.notFound.body":'No Clowder with id "{clowderId}" exists in this workspace. It may have been removed, or the link is stale.',"catteryHome.ariaLabel":"Cattery home","catteryHome.tab.members":"Members","catteryHome.tab.clowders":"Clowders","catteryHome.tab.cats":"Cats","catteryHome.tab.settings":"Settings","catteryHome.empty.members":"No members yet. Add the first one once Phase 6 membership management lands.","catteryHome.empty.clowders":"No clowders in this Cattery yet. Formal Clowders appear here once Phase 6 lands.","catteryHome.empty.cats":"No cats reachable through this Cattery yet. The aggregate (direct members + via formal Clowders) populates once Phase 6 ships membership data.","catteryHome.settings.body":"Cattery settings (profile, transfer ownership, archive) ship with PLAN-091 phase 6 membership management.","catteryHome.notFound.title":"Cattery not found","catteryHome.notFound.body":'No Cattery with id "{catteryId}" exists in this workspace. It may have been removed, or the link is stale.',"code.activeComposer.detachedBranch":"Detached branch","code.newDraft.greeting":"Ready to code.","code.newDraft.greeting.openRepo":"Open the repo and start small.","code.newDraft.greeting.buildFixRefactor":"Build, fix, or refactor something real.","code.newDraft.greeting.shipImprovement":"Ship one clear improvement.","code.newDraft.greeting.smallestChange":"Start with the smallest useful change.","code.newDraft.composer.placeholder":"What should this code session build, fix, or investigate?","code.newDraft.setupTitle":"New Code Setup","code.newDraft.participants.title":"Participants","code.newDraft.participants.empty":"No participants available yet.","code.newDraft.execution.title":"Execution","code.newDraft.execution.action":"Choose execution target","code.newDraft.execution.empty":"No execution target set yet.","code.newDraft.folder.title":"Codespace","code.newDraft.folder.action":"Choose codespace","code.newDraft.folder.empty":"No codespace selected yet.","code.newDraft.sessionProfile.title":"Session Profile","code.newDraft.sessionProfile.description":"This code session starts with {workspace} and {permission}.","code.newDraft.workspace.independentWorktree":"Independent worktree","code.newDraft.workspace.currentFolder":"Current folder","code.newDraft.workspace.sandbox":"Sandbox","code.newDraft.permission.readOnly":"Read only","code.newDraft.permission.fullAccess":"Full access","code.newDraft.starter.pomodoro.label":"Build a pomodoro app","code.newDraft.starter.pomodoro.prompt":"Write a small pomodoro timer app.","code.newDraft.starter.fixBug.label":"Fix a bug","code.newDraft.starter.fixBug.prompt":"Find and fix a bug in this codebase.","code.newDraft.starter.refactor.label":"Refactor code","code.newDraft.starter.refactor.prompt":"Refactor this code without changing behavior.","code.newDraft.starter.writeTests.label":"Write tests","code.newDraft.starter.writeTests.prompt":"Add tests for the code we last touched.","code.newDraft.starter.startProject.label":"Start a project","code.newDraft.starter.startProject.prompt":"Start a small project to track milestones.","code.taskPills.ariaLabel":"Task reminders","code.taskPills.mock.authMiddleware":"Refactor auth middleware","code.taskPills.mock.kiroSessionDelete":"Fix Kiro session delete","code.taskPills.mock.artifactGallery":"Draft artifact gallery","code.taskPills.namePlaceholder":"Name this task","code.taskPills.editAria":"Edit task name","code.taskPills.title.current":"Current task: {taskLabel} — double-click to rename","code.taskPills.title.focus":"Focus on {taskLabel} (double-click to rename)","code.taskPills.hideAria":"Hide {taskLabel}","code.taskPills.fallbackTask":"task","code.taskPills.addAria":"Add task reminder","code.taskPills.buttonTask":"Task","code.workspace.source.artifactAnchor":"Artifact anchor","code.artifact.kind.build":"Build","code.artifact.kind.dataset":"Dataset","code.artifactDetail.artifactUnavailable":"Artifact detail unavailable","code.artifactDetail.backToBuild":"Back to Build","code.artifactDetail.artifactOutput":"Artifact output","code.artifactDetail.conversationLabel":"Conversation","code.artifactDetail.contextEyebrow":"Context","code.artifactDetail.contextTitle":"Linked Records","code.artifactDetail.loadFailed":"Artifact detail could not be loaded.","code.artifactDetail.loadingBody":"Fetching artifact metadata and related context.","code.artifactDetail.loadingTitle":"Loading artifact detail","code.artifactDetail.missingId":"Artifact id is required.","code.artifactDetail.noArtifactSummary":"No artifact summary recorded.","code.artifactDetail.noInlinePreview":"No inline preview is available for this artifact yet.","code.artifactDetail.notInlineSafe":"This artifact is available, but it is not inline-safe in the current Code surface.","code.artifactDetail.previewOutput":"Preview output","code.artifactDetail.previewActionOpenArtifact":"Open artifact","code.artifactDetail.previewActionOpenPreview":"Open preview","code.artifactDetail.projectLabel":"Project","code.artifactDetail.projectMeta":"Project: {projectTitle}","code.artifactDetail.relatedEmpty":"No related artifacts were recorded for this task or work item.","code.artifactDetail.relatedEyebrow":"Related","code.artifactDetail.relatedTitle":"Neighboring Artifacts","code.artifactDetail.openConversationAction":"Open conversation","code.artifactDetail.openProjectAction":"Open project","code.artifactDetail.openTaskAction":"Open task","code.artifactDetail.openWorkItemAction":"Open work item","code.artifactDetail.taskLabel":"Task","code.artifactDetail.title":"Artifact","code.artifactDetail.viewArtifact":"View artifact","code.artifactDetail.workItemLinkedLabel":"Work Item","code.artifactDetail.workItemMissingLabel":"No linked work item","code.artifactKind.attachment":"Attachment","code.artifactKind.document":"Document","code.artifactKind.preview":"Preview","code.artifactKind.report":"Report","code.artifactKind.transcript":"Transcript","code.artifactKind.unknown":"Unknown","code.artifactKind.build":"Build","code.artifactStatus.archived":"Archived","code.artifactStatus.draft":"Draft","code.artifactStatus.published":"Published","code.artifactStatus.ready":"Ready","code.artifactStatus.unknown":"Unknown","code.artifactList.artifact":"Artifact","code.artifactList.filter.all":"All","code.artifactList.ariaOpenArtifact":"Open artifact {title}","code.artifactList.empty":"No artifacts match this filter yet. Builds, previews, reports, attachments, and transcript exports will land here.","code.artifactList.header":"Artifacts","code.artifactList.loading":"Loading artifacts...","code.artifactList.error":"Artifacts could not be loaded: {error}","code.artifactList.loadFailed":"Artifact list request failed.","code.artifactList.candidateHint":"Candidate artifacts have not yet been promoted to a durable record.","code.artifactList.candidateLabel":"Candidate","code.artifactList.provenance.run":"run","code.artifactList.statusFilterLabel":"Status:","code.artifactList.provenance.task":"task","code.artifactMeta.contract":"Contract","code.artifactMeta.mode":"Mode: {mode}","code.artifactMeta.decision":"Decision: {decision}","code.artifactMeta.kind":"Kind: {kind}","code.artifactMeta.path":"Path: {path}","code.artifactMeta.status":"Status: {status}","code.artifactMeta.updated":"Updated: {updatedAt}","code.artifactMeta.viewArtifact":"View artifact","code.artifactPreview":"Artifact preview","code.artifact.unknown":"Unknown","code.conversationKind.chatChannel":"Chat channel","code.conversationKind.chatRoot":"Chat root","code.conversationKind.codeThread":"Code thread","code.conversationKind.directMessage":"Direct message","code.conversationKind.parallelGroup":"Parallel group","code.conversationKind.unknown":"Conversation","code.conversationKind.workThread":"Work thread","code.recordStatus.archived":"Archived","code.recordStatus.blocked":"Blocked","code.recordStatus.cancelled":"Cancelled","code.recordStatus.completed":"Completed","code.recordStatus.draft":"Draft","code.recordStatus.failed":"Failed","code.recordStatus.inProgress":"In progress","code.recordStatus.open":"Open","code.recordStatus.pending":"Pending","code.recordStatus.pendingApproval":"Pending approval","code.recordStatus.ready":"Ready","code.recordStatus.running":"Running","code.recordStatus.unknown":"Unknown","code.builder.codespaceHeader":"Codespace","code.builder.codeOutputLabel":"Output","code.builder.back":"Back","code.builder.continue":"Continue","code.builder.continueBuild":"Continue Build","code.builder.continueBuildBusy":"Continuing...","code.builder.continueTaskBusy":"Continuing...","code.builder.createArtifact":"Create Artifact","code.builder.createLabel":"Build","code.builder.creatingTask":"Creating...","code.builder.defineTaskHeader":"Define Task","code.builder.detailsPlaceholder":"Describe what done looks like...","code.builder.detailsLabel":"Details / acceptance criteria (optional)","code.builder.errorCodespaceResolve":"Could not resolve that codespace.","code.builder.errorCodespacePathInvalid":"Selected path does not exist or is not a directory: {path}","code.builder.errorCodespaceNoPath":"No valid codespace path found. Choose a folder or make sure the room workspace exists.","code.builder.errorTaskCreate":"Could not create the Code task.","code.builder.errorTaskCreateMissingId":"Task creation response did not include a task id.","code.builder.errorTaskExecution":"Could not start the Code task.","code.builder.errorTaskDetailLoad":"Could not load that Code task.","code.builder.errorTaskResume":"Could not resume that Code task.","code.builder.errorTaskResumeInput":"Enter a task ID to resume.","code.builder.errorTaskTitle":"Enter what you want to build.","code.builder.runtimeObservationFailed":"Could not refresh the runtime session.","code.builder.executionDoneBanner":"Task completed. Review the results above and use delivery actions to commit or push.","code.builder.existingTask":"Existing task","code.builder.feedbackResumeReady":"Task is ready to continue.","code.builder.feedbackResumeTask":"Resumed task {taskId}.","code.builder.feedbackResumeNoWorkspace":"Resumed task {taskId}; choose a codespace before continuing.","code.builder.feedbackResumeWorkspaceNeeded":"Choose a codespace before continuing this task.","code.builder.filter.codespace":"Codespace","code.builder.header.codespace":"Codespace","code.builder.header.newTask":"New task","code.builder.header.projectFolder":"Project folder","code.builder.header.taskStep":"Task","code.builder.modelLabel":"Model (optional)","code.builder.modelPlaceholder":"default","code.builder.newTaskButton":"New task","code.builder.providerLabel":"Provider","code.builder.providerTaskLabel":"Provider","code.builder.repoPathLabel":"Repository path","code.builder.resumeLabel":"Existing task ID (optional)","code.builder.resumePrompt":"Resume task","code.builder.retryPrompt":"Retry","code.builder.stepLabel":"Step {step}","code.builder.successTaskReadyWithCurrentChat":"{workspaceFallback} from {title}.","code.builder.taskIdRequired":"Enter a task ID.","code.builder.taskIdReady":"Task {taskId} is ready to continue.","code.builder.taskIdReadyNoWorkspace":"Task {taskId} is ready; choose a codespace before continuing.","code.builder.taskLabel":"Task","code.builder.taskSummaryPlaceholder":"e.g. Add user authentication","code.builder.title":"Code Builder","code.builder.workspaceActiveNotice":"This will be the active builder codespace for the next task step.","code.builder.workspaceFallbackBound":"Bound workspace","code.builder.workspaceFallbackBoundFallback":"Enter a project folder or resume an existing task.","code.builder.workspaceFallbackChatRepo":"Current chat repository","code.builder.workspaceFallbackRoom":"Current room folder","code.builder.workspaceFooterLabel":"Workspace","code.builder.workspacePathPlaceholder":"/path/to/project","code.builder.workspaceResumeHelp":"Resume is for a draft, blocked, or failed Code task you want to continue.","code.builder.sampleTaskId":"task-...","code.builder.workspaceSummaryLabel":"Codespace","code.builder.workspaceSummaryNotice":"Active builder codespace.","code.builder.startingTaskBusy":"Starting...","code.builder.taskQuestion":"What do you want to build?","code.livePreview.commandProfile":"Profile: {profile}","code.livePreview.description":"Inspect the supervised local preview attached to this Cats Code surface.","code.livePreview.diagnostic":"Diagnostic: {message}","code.livePreview.error.load":"Could not load live preview status.","code.livePreview.error.logs":"Could not load live preview logs.","code.livePreview.error.stop":"Could not stop the live preview.","code.livePreview.expiresAt":"Expires: {time}","code.livePreview.hideLogs":"Hide logs","code.livePreview.logs":"Logs","code.livePreview.logsEmpty":"No logs recorded for this preview.","code.livePreview.logsLoading":"Loading logs...","code.livePreview.open":"Open preview","code.livePreview.retry":"Retry","code.livePreview.retryUnavailable":"Retry becomes available after live-preview start is approved.","code.livePreview.status.expired":"Expired","code.livePreview.status.failed":"Failed","code.livePreview.status.ready":"Ready","code.livePreview.status.starting":"Starting","code.livePreview.status.stopped":"Stopped","code.livePreview.status.stopping":"Stopping","code.livePreview.stop":"Stop","code.livePreview.stopRequested":"Stop requested.","code.livePreview.stopping":"Stopping...","code.livePreview.title":"Live Preview","code.livePreview.workspace":"Workspace: {workspace}","code.execution.header":"Execution","code.execution.meta.noTask":"No task bound","code.execution.meta.runtimeSession":"Runtime session: {sessionId}","code.execution.meta.workingTreeClean":"Working tree clean","code.execution.meta.workingTreeDirty":"Working tree has changes","code.execution.noActiveSession":"No active session","code.execution.noTask":"No task bound yet","code.execution.notStarted":"not started","code.execution.ownerDecisionRequired":"Owner decision required","code.execution.panelTitle":"Task Run","code.execution.runtimeHeader":"Runtime","code.execution.runtimeIdle":"idle","code.execution.modeDelivery":"Delivery mode: {deliveryMode}","code.execution.targetLabel":"Target: {target}","code.execution.targets":"Targets: {targets}","code.execution.runtimeTitle":"Runtime","code.execution.sectionBlocked":"Blocked","code.execution.taskHeader":"Task","code.execution.taskStatus":"Status: {status}","code.execution.taskTitle":"Task","code.execution.notActiveYet":"Not active yet","code.execution.paused":"Paused","code.execution.provider":"Provider: {provider}","code.execution.model":"Model: {model}","code.execution.defaultModel":"default","code.execution.session":"Session: {sessionId}","code.execution.taskId":"ID: {taskId}","code.execution.status.blocked":"Blocked","code.execution.status.done":"Done","code.execution.status.pending":"Pending","code.execution.status.running":"Running","code.execution.status.unknown":"Unknown","code.execution.taskRuntimeHeader":"Runtime","code.execution.taskStrategy":"Strategy: {strategy}","code.execution.strategy.pdca":"PDCA","code.execution.strategy.react":"ReAct","code.execution.strategy.reflexion":"Reflexion","code.execution.deliveryMode.artifactOnly":"artifact only","code.execution.deliveryMode.commitOnly":"commit only","code.execution.deliveryMode.deployPreview":"deploy preview","code.execution.deliveryMode.prWithChecks":"pull request with checks","code.execution.deliveryMode.pushBranch":"push branch","code.execution.blockedReason.antiPingPong":"loop guard","code.execution.blockedReason.approvalPending":"approval pending","code.execution.blockedReason.maxDispatches":"max dispatches reached","code.execution.blockedReason.noValidTargets":"no valid targets","code.execution.blockedReason.startupRecovery":"startup recovery","code.execution.blockedReason.userCancelled":"user cancelled","code.execution.unknownDeliveryMode":"Unknown delivery mode","code.execution.unknownValue":"Unknown","code.execution.unknownValueUnknown":"unknown","code.execution.controlHeader":"Control","code.execution.controlMode":"Mode: {mode}","code.execution.controlDelivery":"Delivery: {deliveryMode}","code.execution.controlBlocked":"blocked","code.execution.controlApprovalPending":"Approval pending","code.execution.controlBlockedBy":"Continuation blocked by {reason}.","code.execution.controlTargets":"Targets: {targets}","code.execution.statusActiveLabel":"active","code.execution.statusIdleLabel":"idle","code.execution.statusBlockedLabel":"blocked","code.execution.statusRunningLabel":"running","code.execution.statusDoneLabel":"done","code.execution.statusPendingLabel":"pending","code.delivery.previewHeader":"Preview","code.delivery.blockerLabel":"Blocked","code.delivery.contractLabel":"Contract","code.delivery.error.repoStatusUnavailable":"Repo status is unavailable.","code.delivery.warningsLabel":"Warnings","code.delivery.warningsTitle":"Warnings","code.delivery.header":"Delivery","code.delivery.label":"Delivery","code.delivery.labelPreview":"{label} Preview","code.delivery.metaBranch":"Branch: {branch}","code.delivery.metaAhead":"Ahead: {count}","code.delivery.metaBehind":"Behind: {count}","code.delivery.metaStaged":"Staged: {count}","code.delivery.metaUnstaged":"Unstaged: {count}","code.delivery.metaUntracked":"Untracked: {count}","code.delivery.metaRemote":"Remote: {remote}","code.delivery.metaMode":"Mode: {mode}","code.delivery.metaDecision":"Decision: {decision}","code.delivery.noCodespace":"No codespace bound. Resolve a codespace to see repo actions.","code.delivery.noRepoStatus":"No repo status loaded.","code.delivery.noInlinePreview":"No inline preview is available.","code.delivery.noWorkspace":"No workspace selected.","code.delivery.panelSubtitle":"Commit, push, or export outputs from the active codespace.","code.delivery.panelTitle":"Repo Actions","code.delivery.previewHintUnsafe":"This preview is available, but it is safer to open outside the inline frame.","code.delivery.repoClean":"Clean","code.delivery.repoDirty":"Dirty","code.delivery.repoStatusHeader":"Repo Status","code.delivery.actions.commitHeader":"Commit","code.delivery.actions.pushHeader":"Push","code.delivery.actions.exportHeader":"Export","code.delivery.action.refresh":"Refresh","code.delivery.action.preview":"Preview","code.delivery.action.commit":"Commit","code.delivery.action.push":"Push...","code.delivery.action.pushPreview":"Preview Push","code.delivery.action.pushConfirm":"Confirm Push","code.delivery.action.pushCancel":"Cancel","code.delivery.action.export":"Export Artifacts","code.delivery.action.commitPlaceholder":"Commit message...","code.delivery.confirmation.push":"Push to remote? This is externally visible.","code.delivery.confirmation.pushHint":"This action publishes local commits to the configured remote.","code.delivery.error.commitFailed":"Commit action failed.","code.delivery.error.pushFailed":"Push action failed.","code.delivery.error.exportFailed":"Artifact export failed.","code.delivery.status.ready":"ready","code.delivery.status.blocked":"blocked","code.delivery.status.unknown":"unknown","code.delivery.decision.approve":"approve","code.delivery.decision.complete":"complete","code.delivery.decision.reject":"reject","code.delivery.decision.reroute":"reroute","code.delivery.decision.wait":"wait","code.delivery.unknownBlocker":"Unknown blocker","code.delivery.warningFallback":"Warning","code.plan.header":"Plan","code.plan.panelTitle":"Code Plan","code.plan.empty":"No plan steps have been created for this task yet.","code.plan.replan":"Re-plan","code.plan.status.blocked":"Blocked","code.plan.status.done":"Done","code.plan.status.pending":"Pending","code.plan.status.running":"Running","code.plan.title":"Plan","code.plan.replannedSuffix":" (re-planned {count}x)","code.plan.error.load":"Plan could not be loaded.","code.plan.error.update":"Plan could not be updated.","code.plan.error.stepUpdate":"Plan step could not be updated.","code.preview.artifactCountMany":"{count} artifacts","code.preview.artifactCountOne":"{count} artifact","code.preview.blocked":"Preview blocked","code.preview.details":"Details","code.preview.header":"Output","code.preview.iframeTitle":"Live preview","code.preview.noPreview":"No build or preview artifacts have been produced yet.","code.preview.notInlineSafe":"Latest preview is available, but this output is safer to open outside the inline frame.","code.preview.openArtifact":"Open artifact","code.preview.openLatestArtifact":"Open latest artifact","code.preview.openLatestPreview":"Open latest preview","code.preview.openPreview":"Open preview","code.preview.title":"Build & Preview","code.relay.action.createThread":"Create relay thread","code.relay.action.dispatching":"Dispatching...","code.relay.action.fanOut":"Fan out","code.relay.action.refresh":"Refresh","code.relay.action.fanOutSelected":"Fan out to selected agents","code.relay.authorKind.agent":"Agent","code.relay.authorKind.system":"System","code.relay.authorKind.unknown":"Unknown","code.relay.authorKind.user":"User","code.relay.availability.instanceUnavailable":'{providerLabel} instance "{instance}" is not available in cats-runtime.',"code.relay.availability.providerPathMissing":"Runtime does not report a configured {providerLabel} provider path.","code.relay.availability.providerPathReady":"Runtime provider path ready for {providerLabel}.","code.relay.availability.runtimeConfigUnavailable":"Runtime provider config unavailable.","code.relay.availability.runtimeReadyVia":"Runtime ready via {target}.","code.relay.error.agentRequired":"Select at least one agent.","code.relay.error.fanOutPromptRequired":"Fan out prompt is required.","code.relay.error.threadRequired":"Create or select a relay thread first.","code.relay.error.threadTitleRequired":"Thread title is required.","code.relay.error.missingPayload":"Relay request is missing required payload.","code.relay.error.noPayload":"Relay response did not include a payload.","code.relay.error.relayFailed":"Failed to run relay fan-out.","code.relay.error.rosterUpdateFailed":"Failed to update relay roster.","code.relay.error.threadLoadFailed":"Failed to load relay threads.","code.relay.error.threadRefreshFailed":"Failed to refresh relay threads.","code.relay.error.threadCreateFailed":"Failed to create relay thread.","code.relay.header.codeRelay":"Code Relay","code.relay.label.contract":"Contract","code.relay.label.contractLoading":"Loading connector contract...","code.relay.label.activeThread":"Active thread","code.relay.label.default":"default","code.relay.label.enabled":"Enabled","code.relay.label.ended":"Ended: {endedAt}","code.relay.label.model":"Model: {model}","code.relay.label.noObjective":"No objective recorded yet.","code.relay.label.noRounds":"No rounds yet","code.relay.label.noThreads":"No relay threads yet","code.relay.label.noneYet":"none yet","code.relay.label.objective":"Objective","code.relay.label.proven":"Proven: {providers}","code.relay.label.repoPath":"Repo: {repoPath}","code.relay.label.relayThreadTitle":"Relay thread title","code.relay.label.repoNoBound":"Not bound","code.relay.label.updated":"Updated: {updatedAt}","code.relay.label.mode":"Mode: {mode}","code.relay.label.open":"Open","code.relay.label.quotaNote":"Quota note","code.relay.label.roster":"Agent Roster","code.relay.label.roundObjective":"Round objective","code.relay.label.roundPrompt":"Fan out prompt","code.relay.label.roundTimeline":"Timeline","code.relay.label.rounds":"Rounds","code.relay.label.role":"Role: {role}","code.relay.label.started":"Started: {startedAt}","code.relay.label.statusWaiting":"waiting","code.relay.status.active":"Active","code.relay.status.available":"Available","code.relay.status.completed":"Completed","code.relay.status.failed":"Failed","code.relay.status.requested":"Requested","code.relay.status.running":"Running","code.relay.status.unavailable":"Unavailable","code.relay.status.unknown":"Unknown","code.relay.status.waitingForAgents":"Waiting for agents","code.relay.status.waitingForUser":"Waiting for user","code.relay.mode.build":"Build","code.relay.mode.discover":"Discover","code.relay.mode.document":"Document","code.relay.mode.fit":"Fit","code.relay.mode.humanVerify":"Human verify","code.relay.mode.repair":"Repair","code.relay.mode.review":"Review","code.relay.mode.shape":"Shape","code.relay.role.critic":"Critic","code.relay.role.drafter":"Drafter","code.relay.role.idle":"Idle","code.relay.role.mainCoder":"Main coder","code.relay.role.reviewer":"Reviewer","code.relay.role.summarizer":"Summarizer","code.relay.label.threadShell":"Thread Shell","code.relay.label.threadTitle":"Thread title","code.relay.phase.phase0":"Phase 0","code.relay.phase.phase1":"Phase 1","code.relay.phase.phase2":"Phase 2","code.relay.phase.fanOut":"Fan-Out","code.relay.phase.roster":"Roster","code.relay.phase.project":"Project","code.relay.projectThread":"Project Thread","code.relay.projectThreadSummary":"Project thread summary","code.relay.runtimeProviderSurface":"Runtime provider surface","code.relay.runtimeSurface":"Runtime surface","code.relay.threadProject":"Project thread","code.relay.threadShellTitle":"Thread Shell","code.relay.mode.parallelPrompt":"Parallel Prompt","code.relay.noObjective":"No objective recorded yet.","code.relay.notRecorded":"Not recorded","code.relay.openDiscoveryRound":"Open discovery round","code.relay.placeholder.objective":"What are we trying to decide or build?","code.relay.placeholder.optionalRepo":"Optional local repo binding","code.relay.placeholder.fanOutPrompt":"Ask the same requirement question to multiple coding agents.","code.relay.placeholder.quotaNote":"Optional advisory note","code.relay.currentChat":"Current chat: {title}","code.relay.create":"Creating...","code.relay.defaultThreadTitle":"New relay thread","code.relay.loading":"Loading relay codespace...","code.relay.projectThreadHeader":"Project Thread","code.relay.relayToOthers":"Relay to others (Phase 2)","code.relay.targetAgent":"Target agent","code.relay.threadLabel":"Thread","code.relay.title":"Code Relay","code.relay.titleConnectorContract":"Connector Contract","code.relay.titleProjectThread":"Project Thread","code.relay.titleTimeline":"Timeline","code.relay.transportUnknown":"Unknown transport","code.relay.transportUnknownWithValue":"Unknown transport ({transport})","code.relay.transportRuntimeSessionBridge":"Runtime session bridge","code.sidebar.codespace":"Codespace","code.sidebar.codeBuilderTitle":"Code Builder","code.sidebar.codespaces":"Codespaces","code.workspaceSource.codeTask":"Code task","code.workspaceSource.conversationRepo":"Conversation repo","code.workspaceSource.runtimeCwd":"Runtime cwd","code.relay.titleProjectThreadSection":"Project Thread","code.sidebar.teamCode":"Team Code","code.sidebar.peerCode":"Peer Code","code.sidebar.newCode":"New Code","code.sidebar.noCodesYet":"No codes yet","code.sidebar.noConversationsSummary":"No code conversations yet","code.relay.noRoundsHint":"Use the fan-out form above to open the first discovery round.","code.sidebar.artifacts":"Artifacts","code.sidebar.build":"Build","code.sidebar.relay":"Relay","code.workspace.sectionCodeOutput":"Code output","code.workspace.summary.binding":"Binding","code.workspace.summary.codespace":"Codespace","code.workspace.summary.kind":"Kind: {kind}","code.workspace.summary.ownership":"Ownership: {ownership}","code.workspace.summary.chatContext":"Chat context: {title}","code.workspace.summary.noChatContext":"No chat context","code.workspace.summary.noChat":"No chat","code.workspace.summary.binding.conversationRepo":"Builder loop is bound to the selected chat repo.","code.workspace.summary.binding.managedRoom":"Builder loop is bound to the selected room-managed codespace.","code.workspace.summary.binding.userSelected":"Builder loop is bound to the owner-selected local folder.","code.workspace.kind.conversationRepo":"Current chat repo","code.workspace.kind.managedRoom":"Managed room workspace","code.workspace.kind.userSelected":"Owner-selected folder","code.workspace.ownership.conversationBound":"Conversation-owned","code.workspace.ownership.roomOwned":"Room-owned","code.workspace.ownership.ownerSelected":"Owner-selected","code.workspace.source.task":"Code task","code.workspace.source.conversationRepo":"Conversation repo","code.workspace.source.runtimeCwd":"Runtime cwd","code.workspaces.listHeader":"Codespaces","code.workspaces.listNoCodespaces":"No codespaces yet. Start a code session that names a repo, folder, worktree, or managed room and it will land here.","code.workspaces.loading":"Loading codespaces...","code.workspaces.error":"Codespaces could not be loaded: {error}","code.workspaces.loadError":"Failed to load codespaces.","code.workspaces.sourceCodes":"Code task","code.workspaces.sourceRepo":"Conversation repo","code.workspaces.sourceRuntime":"Runtime cwd","code.workspaces.sourceArtifact":"Artifact anchor","code.workspaces.ariaOpen":"Open codespace {title}","code.workspaceStatus.active":"Active","code.workspaceStatus.archived":"Archived","code.workspaceStatus.draft":"Draft","code.workspaceStatus.ready":"Ready","code.workspaceStatus.unknown":"Unknown","code.workspaceDetail.error":"Failed to load codespace.","code.workspaceDetail.loading":"Loading codespace...","code.workspaceDetail.title":"Codespace","code.workspaceDetail.notFound":"Codespace not found. It may have been removed or the URL changed.","code.workspaceDetail.missingId":"Codespace id is required.","code.workspaceDetail.backToList":"Back to all codespaces →","code.workspaceDetail.overviewTitle":"Overview","code.workspaceDetail.artifactSection":"Artifacts","code.workspaceDetail.conversationsSection":"Conversations","code.workspaceDetail.tasksSection":"Tasks","code.workspaceDetail.noArtifacts":"No artifacts","code.workspaceDetail.noArtifactsDesc":"No artifacts linked yet. Builds, previews, or documents produced from this codespace will appear here.","code.workspaceDetail.noConversations":"No conversations are currently linked to this codespace.","code.workspaceDetail.noTasks":"No Code tasks are currently linked to this codespace.","code.workspaceDetail.overviewPath":"Path","code.workspaceDetail.overviewSource":"Source","code.workspaceDetail.overviewStatus":"Status","code.workspaceDetail.overviewLastActive":"Last active","code.workspaceDetail.overviewSummary":"Summary","code.workspaceDetail.noSummary":"No summary yet.","code.workspaceDetail.metric.conversations":"Conversations","code.workspaceDetail.metric.tasks":"Tasks","code.workspaceDetail.metric.artifacts":"Artifacts","code.workspaceDetail.metric.id":"ID","code.workspaceDetail.overviewNoArtifacts":"No artifacts yet","code.workspaceDetail.conversationsEmpty":"No linked conversations","code.workspaceDetail.tasksEmpty":"No linked tasks","code.workspaceDetail.taskLabel":"Task","code.workspaceDetail.artifactsHeader":"Artifacts in this codespace","code.workspace.source.unknown":"Unknown source","code.delivery.blocked":"Delivery blocked"},Kp={"app.brandName":"CATS INC","app.loadingWithSurface":"載入 {surface}","app.loadingEllipsis":"載入中…","app.errorTitle":"無法啟動 Cats","app.errorEyebrow":"錯誤","app.loadErrorMessage":"載入失敗","app.loadStateFailedWithStatus":"載入應用程式狀態失敗({status})","app.title":"Cats","setupWizard.adminCredentialsHint":"這組登入資料會在設定完成後用來登入,和你的顯示個人檔案分開。","setupWizard.adminIdentifierLabel":"Admin 登入信箱","setupWizard.adminIdentifierPlaceholder":"you@example.com","setupWizard.adminPasswordLabel":"Admin 密碼","setupWizard.adminPasswordPlaceholder":"建立密碼","auth.login.title":"登入 Cats","auth.login.subtitle":"使用設定時建立的本機 Admin 登入資料。","auth.login.identifierLabel":"信箱","auth.login.identifierPlaceholder":"you@example.com","auth.login.passwordLabel":"密碼","auth.login.passwordPlaceholder":"輸入密碼","auth.login.submit":"登入","auth.login.submitting":"登入中…","auth.login.invalidCredentials":"信箱或密碼不正確。","auth.login.forbidden":"登入暫時被封鎖或不被允許。","auth.login.csrfMismatch":"安全權杖不一致,請重新整理後再試。","auth.login.failed":"登入失敗。","auth.login.failedWithStatus":"登入失敗({status})。","auth.login.googleOriginHint":"Google 登入只會在已授權的 Google JavaScript origin 上運作。如果目前的 LAN/IP origin 未授權,請使用本機 Admin 登入資料。","auth.login.googleUnavailable":"此 origin 無法使用 Google 登入。請使用本機 Admin 登入資料,或從已授權的 origin 開啟 Cats。","auth.repair.title":"修復 Cats 驗證","auth.repair.subtitle":"Cats 偵測到設定已完成,但無法讀取可用的驗證狀態檔。請重新建立第一個本機 Admin 帳號來解鎖此工作區。","auth.repair.displayNameLabel":"Owner 顯示名稱","auth.repair.displayNamePlaceholder":"Owner","auth.repair.identifierLabel":"Admin 登入 Email","auth.repair.identifierPlaceholder":"you@example.com","auth.repair.passwordLabel":"Admin 密碼","auth.repair.passwordPlaceholder":"建立替代密碼","auth.repair.recoveryTokenLabel":"修復權杖","auth.repair.recoveryTokenPlaceholder":"必填的一次性修復權杖","auth.repair.recoveryTokenHint":"所有修復都必須提供。請從啟動時列出的本機 auth-recovery-token 檔案讀取。","auth.repair.submit":"修復並登入","auth.repair.submitting":"修復中…","auth.repair.forbidden":"修復需要一次性修復權杖。","auth.repair.failed":"修復失敗。","auth.repair.failedWithStatus":"修復失敗({status})。","appHost.label":"應用程式","appHost.notInstalledTitle":"此應用程式未安裝","appHost.backToLobby":"返回大廳","appHost.subtitleRendererPending":"應用程式元件尚未準備好","appHost.subtitleDisabled":"應用程式已停用","appHost.sectionPackage":"套件","appHost.sectionStatus":"狀態","appHost.sectionPublisher":"提供者","shared.productRenderer.errorEyebrow":"渲染器錯誤","shared.productRenderer.chatUnavailableTitle":"聊天無法使用","shared.productRenderer.unknownError":"未知的渲染器錯誤。","shared.product.bootLoadingAria":"正在載入 Cats {productName}","platform.product.chat.name":"Cats Chat","platform.product.chat.subtitle":"與陪伴者和個人代理人對話","platform.product.chat.settingsLabel":"聊天","platform.product.code.name":"Cats Code","platform.product.code.subtitle":"程式碼庫、執行與程式工作區","platform.product.code.settingsLabel":"程式碼","platform.product.work.name":"Cats Work","platform.product.work.subtitle":"專案、核准與操作流程","platform.product.work.settingsLabel":"工作","lobby.accountSettingsAriaLabel":"帳號設定","lobby.openAccountSettings":"開啟帳號設定","lobby.runtimeStatusLabel":"執行階段狀態:{runtimeStatus}","lobby.productsSectionTitle":"產品","lobby.appsSectionTitle":"應用程式","lobby.continueText":"繼續","lobby.openEntry":"開啟 {entryTitle}","lobby.greeting.chooseSurface":"選擇一個產品開始。","lobby.greeting.homeReady":"主頁已準備好。","lobby.greeting.pickProduct":"聊天、工作或程式碼,由你決定。","lobby.greeting.everythingStaged":"一切已就緒,選擇入口開始。","lobby.greeting.openSurface":"開啟適合這項任務的產品。","lobby.greeting.awake":"Cats Inc 已就緒。","lobby.greeting.continue":"回到最適合推進工作的地方。","shared.runtimeStatus.tooltip.ready":"Cats 執行階段已連線","shared.runtimeStatus.tooltip.degraded":"Cats 執行階段正在啟動","shared.runtimeStatus.tooltip.unavailable":"Cats 執行階段離線","shared.runtimeStatus.tooltip.unknown":"正在檢查 Cats 執行階段狀態…","shared.runtimeStatus.chip.ready":"執行階段已連線","shared.runtimeStatus.chip.degraded":"執行階段降級","shared.runtimeStatus.chip.unavailable":"執行階段無法使用","settings.general.profileTitle":"個人檔案","settings.general.profileDescription":"這是跨聊天、程式碼、工作與大廳的平台統一個人檔案。","settings.general.avatarLabel":"頭像","settings.general.avatarChangeLabel":"更改頭像","settings.general.avatarUploadLabel":"上傳頭像","settings.general.avatarRemoveLabel":"移除頭像","settings.general.nameLabel":"名字","settings.general.accountTitle":"帳號","settings.general.accountDescription":"結束這台裝置目前的瀏覽器 session。","settings.general.signOutButton":"登出","settings.general.signingOutButton":"登出中…","settings.general.signOutFailed":"登出失敗。","settings.general.signOutFailedWithStatus":"登出失敗({status})。","settings.general.signOutCsrfError":"安全權杖不一致,請重新整理後再試。","settings.general.signOutForbiddenError":"目前不允許登出。","settings.general.signOutUnauthenticated":"你已經登出。","settings.account.signedInAs":"目前登入身分:{name}","settings.account.loginMethodsTitle":"登入方式","settings.account.localPasswordLabel":"本機密碼","settings.account.localPasswordDescription":"可在離線或區域網路位址下使用,因此在無法使用 Google 時仍然有效。","settings.account.localPasswordLinked":"已設定","settings.account.localPasswordMissing":"尚未設定","settings.account.googleLabel":"Google","settings.account.googleDescription":"使用已綁定的 Google 帳號登入。綁定前會先要求輸入密碼。","settings.account.googleLinkedStatus":"已綁定 · {email}","settings.account.googleNotLinkedStatus":"未綁定","settings.account.googleUnavailableStatus":"無法使用","settings.account.googleUnavailableHint":"這個位址未設定 Google 登入。請從已授權的來源開啟 Cats 才能綁定帳號。","settings.account.googleLinkButton":"綁定 Google 帳號","settings.account.googleUnlinkButton":"解除綁定 Google 帳號","settings.account.googleLinkingLabel":"綁定中…","settings.account.googleUnlinkingLabel":"解除綁定中…","settings.account.reauthTitle":"確認你的密碼","settings.account.reauthLinkDescription":"請輸入本機密碼以綁定 Google 帳號。","settings.account.reauthUnlinkDescription":"請輸入本機密碼以解除綁定 Google 帳號。","settings.account.reauthPasswordLabel":"密碼","settings.account.reauthPasswordPlaceholder":"你的本機密碼","settings.account.reauthSubmit":"確認","settings.account.reauthSubmitting":"確認中…","settings.account.reauthCancel":"取消","settings.account.googleContinueTitle":"繼續使用 Google","settings.account.googleContinueDescription":"請選擇要綁定的 Google 帳號,它必須與這個 Cats 帳號使用相同的電子郵件。","settings.account.unlinkWarning":"解除綁定會將你其他的瀏覽器與行動裝置登出,這台裝置會保持登入。","settings.account.reauthFailed":"無法確認你的密碼。","settings.account.reauthFailedWithStatus":"無法確認你的密碼({status})。","settings.account.reauthInvalidPassword":"密碼不正確。","settings.account.reauthRequired":"密碼確認已逾期,請再試一次。","settings.account.linkFailed":"無法綁定 Google 帳號。","settings.account.linkFailedWithStatus":"無法綁定 Google 帳號({status})。","settings.account.linkConflict":"無法綁定該 Google 帳號,請確認其電子郵件與這個帳號相同。","settings.account.unlinkFailed":"無法解除綁定 Google 帳號。","settings.account.unlinkFailedWithStatus":"無法解除綁定 Google 帳號({status})。","settings.account.unlinkConflict":"無法解除綁定 Google,因為這樣就沒有其他可用的登入方式了。","settings.account.googleUnavailableError":"目前無法使用 Google 登入。","settings.general.languageTitle":"語言","settings.general.languageDescription":"選擇助理回覆語言,以及 Cats 介面的顯示語言。","settings.general.assistantLanguagePreferenceLabel":"助理回覆語言","settings.general.assistantLanguagePreferenceDescription":"設定助理回覆時預設使用的語言指令。單次對話中使用者明確要求的語言仍會優先。","settings.general.assistantLanguageSelectAriaLabel":"助理回覆語言","settings.general.assistantLanguageUnspecifiedOption":"不指定","settings.general.languagePreferenceLabel":"顯示語言","settings.general.languagePreferenceDescription":"自動偵測會跟隨瀏覽器或桌面語言。語言名稱會以該語言自身顯示。","settings.general.languageSelectAriaLabel":"顯示語言","settings.general.languageAutoOption":"自動偵測","settings.general.languageEnglishOption":"英文","settings.general.languageTraditionalChineseOption":"繁體中文","settings.general.lobbyMotionTitle":"大廳動畫","settings.general.lobbyMotionDescription":"選擇大廳背景的動態感。預設使用較為平緩版本。","settings.general.lobbyMotionOffLabel":"關閉","settings.general.lobbyMotionOffDescription":"背景保持靜止,移除彈跳的貓咪效果。","settings.general.lobbyMotionReducedLabel":"減弱","settings.general.lobbyMotionReducedDescription":"保持背景活躍,但速度較為平緩。","settings.general.lobbyMotionFullLabel":"完整","settings.general.lobbyMotionFullDescription":"讓貓咪背景以全速彈跳。","settings.general.guideCatAssistTitle":"導覽貓助理","settings.general.guideCatAssistDisabledDescription":"{guideCatName} 已停用。若想再使用 {guideCatName} 協助,請到「設定 > 助手」啟用。","settings.general.guideCatAssistEnabledDescription":"當你點擊左下導覽按鈕時,選擇 {guideCatName} 顯示方式。","settings.general.openAssistantsButton":"開啟助手","settings.general.guideCatAutoLabel":"自動","settings.general.guideCatAutoDescription":"第一次顯示對話泡泡,之後切換為完整側欄。","settings.general.guideCatSidePanelLabel":"側欄","settings.general.guideCatSidePanelDescription":"每次點擊導覽貓圖示時,直接顯示完整側欄。","settings.general.guideCatBubbleLabel":"對話泡泡","settings.general.guideCatBubbleDescription":"固定顯示精簡對話泡泡並提供快速操作按鈕。","settings.general.updateNameError":"無法更新名字","settings.general.updateAssistantLanguageError":"無法更新助理語言","settings.general.updateLanguageError":"無法更新語言","settings.general.updateLobbyAnimationError":"無法更新大廳動畫","settings.general.updateGuideCatModeError":"無法更新導覽貓模式","settings.general.removeAvatarError":"無法移除頭像","settings.general.saveAvatarError":"無法儲存頭像","settings.shell.heading":"設定","settings.shell.sectionGeneral":"一般","settings.shell.sectionCats":"貓咪","settings.shell.subsectionMyCats":"我的貓咪","settings.shell.subsectionAssistants":"助理","settings.shell.sectionApps":"應用程式","settings.shell.sectionDesktop":"桌面","settings.shell.sectionRuntime":"執行階段","settings.shell.sectionData":"資料","settings.shell.closeButtonLabel":"關閉設定","settings.chat.bossToolProfileTitle":"Boss Cat 工具檔案","settings.chat.bossToolProfileUpdateFailure":"無法更新 Boss Cat 工具檔案","settings.chat.advancedControlsFailure":"更新聊天室進階草稿控制失敗","settings.conversation.productLabelChat":"Cats Chat","settings.conversation.productLabelCode":"Cats Code","settings.conversation.productLabelWork":"Cats Work","settings.conversation.behaviorTitle":"對話行為","settings.conversation.behaviorDescription":"這些設定僅影響 {product}。","settings.conversation.showVerboseLabel":"顯示冗長訊息","settings.conversation.showVerboseDescription":"保留系統層級的會話與調度者訊息,始終在聊天室中顯示。","settings.conversation.showLiveProgressLabel":"顯示即時進度細節","settings.conversation.showLiveProgressDescription":"回應進行中時,顯示更細緻的進度更新。","settings.conversation.updateFailure":"更新對話行為失敗","settings.conversation.concurrentLayoutLabel":"並行回覆版面","settings.conversation.concurrentLayoutDescription":"選擇在 {product} 中多模型回覆的排列方式。","settings.conversation.layoutInlineStack":"串列排列","settings.conversation.layoutCompareCards":"並排比較卡片","settings.conversation.layoutFocusRail":"重點欄","settings.conversation.layoutAdaptive":"自適應","settings.advancedDraftControls.title":"草稿工具","settings.advancedDraftControls.description":"讓任何 {surface} 草稿都能加入協作者或與其他模型進行比較。","settings.advancedDraftControls.enableLabel":"啟用進階草稿控制","settings.advancedDraftControls.toggleDescription":"顯示每則草稿預設隱藏的 +collaborate 或 +compare 按鈕。","settings.runtime.statusChip.runtimeUnavailable":"執行階段無法使用","settings.runtime.statusChip.runtimeDegraded":"執行階段不穩定","settings.runtime.statusChip.runtimeReady":"執行階段已就緒","settings.runtime.statusChip.setupReadyToApply":"設定可套用","settings.runtime.statusChip.setupNeedsRemediation":"需修復","settings.runtime.statusChip.providerScanRequired":"需重新掃描供應器","settings.runtime.statusChip.setupUnavailable":"無法存取設定","settings.runtime.statusTitle":"執行階段狀態","settings.runtime.statusDescription":"檢查 cats-runtime 是否可連線,以及供應器設定是否完成。下方提供目前可用供應器的分類。","settings.runtime.metricReadyProviders":"已可用供應器","settings.runtime.metricProvidersScanned":"已掃描供應器","settings.runtime.metricNeedAttention":"需注意","settings.runtime.needAttentionTitle":"需注意","settings.runtime.needAttentionDescription":"掃描後標示出在可加入執行階段前需修復的供應器。","settings.runtime.providerHelpersTitle":"供應器輔助工具","settings.runtime.providerHelpersDescription":"執行本機 CLI 供應器的套件安裝、安裝、升級、修復或解除安裝。執行動作會透過桌面主機橋接;渲染端不會直接執行腳本。","settings.runtime.loadingHelpers":"載入輔助工具…","settings.runtime.noProviderHelpers":"目前主機版未內建供應器輔助工具。","settings.runtime.workingState":"執行中…","settings.runtime.actions.check":"檢查","settings.runtime.actions.install":"安裝","settings.runtime.actions.upgrade":"升級","settings.runtime.actions.repair":"修復","settings.runtime.actions.uninstall":"解除安裝","settings.runtime.uninstallButtonLabel":"解除安裝","settings.runtime.modelCatalogsTitle":"模型目錄","settings.runtime.modelCatalogsDescription":"立即要求 cats-runtime 重新整理每個供應器的模型清單,讓新版本模型可在大腦選單中即時使用,而不必等背景快取過期。","settings.runtime.refreshingState":"重新整理中","settings.runtime.refreshCatalogsButton":"重新整理模型目錄","settings.runtime.standaloneSetupTitle":"單機設定","settings.runtime.standaloneSetupDescription":"當需要供應器修復或進行更深入掃描時,請開啟獨立執行階段設定頁。","settings.runtime.openStandaloneSetup":"開啟 Cats 執行階段設定","settings.runtime.browserHandoffError":"Cats 無法在瀏覽器中開啟執行階段設定,請再試一次。","settings.runtime.cancelActionLabel":"取消","settings.runtime.cancelActionFallbackLabel":"關閉","settings.runtime.refreshFailure":"重新整理失敗。","settings.runtime.refreshFailureWithStatus":"重新整理失敗({status})。","settings.runtime.refreshSummary":"已重新整理 {refreshed} 個目標{pluralSuffix}","settings.runtime.refreshSummaryWithFailures":"已重新整理 {refreshed} · {failed} 失敗","settings.runtime.uninstallTitle":"解除安裝 {label}","settings.runtime.uninstallDescriptionPrefix":"這將移除使用者擁有的檔案","settings.runtime.uninstallDescriptionSuffix":"驗證檔案、API 金鑰與外部設定不受影響。正在使用該供應器的工作階段將持續失敗,直到您切換到其他供應器。","settings.runtime.uninstallHelperLabel":"輔助工具:{helperId}","settings.runtime.uninstallScriptLabel":"腳本:{scriptPath}","settings.runtime.computingPlannedRemovals":"正在計算預期移除項目…","settings.runtime.previewUnavailable":"無法預覽;解除安裝仍會回報預期操作。","settings.runtime.nothingToRemove":"沒有可移除的項目 — 該輔助工具回報此供應器尚未安裝。","settings.runtime.systemInstallDetected":"注意:已偵測到系統層安裝於 {installPath},但此輔助工具無法移除。","settings.runtime.willRemoveItems":"將移除 {itemCount} 個項目{pluralSuffix}:","settings.runtime.systemInstallCannotRemove":"注意:位於 {installPath} 的系統安裝不能被此輔助工具移除。","settings.runtime.actionNoResult":"{helperLabel}:主機未回報 {actionLabel} 結果。","settings.runtime.actionSuccessComplete":"{helperLabel}:{actionLabel} 完成。","settings.runtime.actionSuccessNothingToRemove":"{helperLabel}:{actionLabel} 回報沒有可移除項目。","settings.runtime.actionPartialWithDetail":"{helperLabel}:{actionLabel} {status} - {detail}","settings.runtime.actionPartial":"{helperLabel}:{actionLabel} {status}。","settings.runtime.actionFailedWithDetail":"{helperLabel}:{actionLabel} 失敗 - {detail}。","settings.runtime.actionFailed":"{helperLabel}:{actionLabel} 失敗。","settings.runtime.hostBridgeUnavailableClient":"此用戶端無法使用桌面主機橋接。","settings.runtime.hostBridgeUnavailable":"無法使用桌面主機橋接。","settings.runtime.previewMissingResult":"主機未回傳預覽結果。","settings.runtime.previewFailed":"預覽失敗。","settings.runtime.fixStepCount":"{count} 個步驟{pluralSuffix}","settings.runtime.helperLabel.windowsCliReadiness":"Windows PowerShell + PATH 就緒檢查輔助工具","settings.runtime.helperLabel.windowsVcRedist":"Windows Microsoft Visual C++ 2015-2022 可轉散發套件 (x64)","settings.runtime.helperLabel.nodeHostInstaller":"{platform} Node.js LTS 主機安裝器","settings.runtime.helperLabel.githubCliHostInstaller":"{platform} GitHub CLI 主機安裝器","settings.runtime.helperLabel.npmPrefixHelper":"{platform} npm prefix 與 PATH 先決條件輔助工具","settings.runtime.helperLabel.setupReadinessAudit":"{platform} 設定就緒稽核","settings.runtime.helperLabel.packagedBackgroundProcessHelper":"{platform} 套裝設定背景程序輔助工具","settings.runtime.helperLabel.packagedProviderUninstallHelper":"{platform} 套裝供應器解除安裝輔助工具","settings.runtime.helperLabel.packagedNpmGlobalCliInstallerHelper":"{platform} 套裝 npm-global CLI 安裝器輔助工具","settings.runtime.helperLabel.nativeProviderInstaller":"{platform} 原生 {providerLabel} 安裝器","settings.runtime.helperLabel.providerInstaller":"{platform} {providerLabel} 安裝器","settings.runtime.helperLabel.localModelInstaller":"{platform} {providerLabel} 本機模型安裝器","settings.runtime.helperUnavailableReason":"{helperLabel} 目前未內建於這個主機版本。","settings.runtime.helperUnsupportedPlatformReason":"{helperLabel} 目前只支援 {platformSupport}。","settings.runtime.platformSupport.allDesktop":"Windows、macOS 或 Linux 主機","settings.runtime.platformSupport.windows":"Windows 主機","settings.runtime.platformSupport.windowsWsl":"支援 WSL 的 Windows 主機","settings.runtime.platformSupport.macos":"macOS 主機","settings.runtime.platformSupport.linux":"Linux 主機","settings.runtime.helperUnsupportedActionReason":"{helperLabel} 不支援{actionLabel}。","settings.runtime.lifecycleStatus.authRequired":"需要驗證","settings.runtime.lifecycleStatus.blocked":"已封鎖","settings.runtime.lifecycleStatus.changesRequired":"需要變更","settings.runtime.lifecycleStatus.failed":"失敗","settings.runtime.lifecycleStatus.notInstalled":"尚未安裝","settings.runtime.lifecycleStatus.preview":"預覽","settings.runtime.lifecycleStatus.ready":"就緒","settings.runtime.lifecycleStatus.restartRequired":"需要重新啟動","settings.runtime.lifecycleStatus.uninstalled":"已解除安裝","settings.runtime.lifecycleDetail.launchWslFirstBoot":"請先啟動目標 WSL distro 一次以完成首次使用者設定,然後重新執行套裝設定檢查。","settings.runtime.lifecycleDetail.startDockerWarmUp":"請啟動 Docker Desktop,等待引擎就緒後重新執行套裝設定檢查。","settings.runtime.lifecycleDetail.runMissingHostSubstrate":"請執行 {helperLabel},安裝就緒稽核標記缺少的主機基礎元件。","settings.runtime.lifecycleDetail.restartThenRerunMode":"請重新啟動主機或 Windows 工作階段,然後以{mode}模式重新執行 {helperLabel}。","settings.runtime.lifecycleDetail.restartThenRerun":"請重新啟動 Windows 或目前工作階段,然後重新執行 {helperLabel}。","settings.runtime.lifecycleDetail.relaunchThenVerify":"請重新啟動 Cats 桌面主機,然後重新執行 {helperLabel} 以驗證更新後的套裝設定狀態。","settings.runtime.lifecycleDetail.elevationRequired":"{helperLabel} 需要提升權限的主機步驟後才能繼續。","settings.runtime.lifecycleDetail.authThenRerunMode":"完成必要登入流程後,請以{mode}模式重新執行 {helperLabel}。","settings.runtime.lifecycleDetail.retryAfterFailure":"處理上一次失敗後,請重試 {helperLabel}。","settings.runtime.lifecycleDetail.runMissingRequirement":"請執行 {helperLabel},安裝缺少的套裝設定需求。","settings.runtime.lifecycleDetail.finishManualFollowThrough":"完成 {helperLabel} 的手動後續步驟,然後重新執行驗證步驟。","settings.runtime.lifecycleDetail.runApplyRemainingChanges":"請再次執行 {helperLabel},套用剩餘的套裝設定變更。","settings.runtime.lifecycleDetail.rerunCheckToVerify":"如需再次驗證套裝設定狀態,請以檢查模式重新執行 {helperLabel}。","settings.runtime.lifecycleDetail.finishedWithStatus":"{helperLabel} 的{mode}已完成,狀態為{status}。","settings.runtime.lifecycleMode.apply":"套用","settings.runtime.lifecycleMode.check":"檢查","settings.runtime.lifecycleMode.force":"強制執行","settings.runtime.lifecycleMode.uninstall":"解除安裝","settings.runtime.lifecycleMode.upgrade":"升級","settings.route.title.assistants":"助理","settings.route.title.myCats":"我的貓咪","settings.route.title.chat":"Chat","settings.route.title.work":"Work","settings.route.title.code":"Code","settings.route.title.apps":"應用程式","settings.route.title.desktop":"桌面","settings.route.title.runtime":"執行階段","settings.route.title.data":"資料","settings.route.title.general":"一般","settings.route.title.notFound":"找不到這個設定頁","settings.route.notFound.description":"目前 Cats 版本沒有註冊這個設定頁。","settings.route.notFound.openGeneral":"開啟一般設定","settings.canvas.loadingLabel":"載入設定中…","settings.canvas.loadErrorTitle":"無法載入設定","settings.canvas.loadErrorBody":"平台服務沒有回應。請確認 runtime 已啟動再重試。","settings.apps.sectionTitle":"應用程式","settings.apps.sectionDescription":"已安裝的 Cats 應用程式、連接器套件與系統模組。","settings.apps.installedPackagesLabel":"已安裝套件","settings.apps.installedPackagesDescription":"{count} 個連接器套件","settings.apps.noInstalledAppsLabel":"已安裝應用程式","settings.apps.noInstalledAppsDescription":"尚未註冊任何應用程式。","settings.apps.emptyStateChipLabel":"空","settings.apps.localInstallTitle":"本機安裝","settings.apps.localInstallDescription":"先預覽本機 Cats 應用程式套件,確認後再加入 Cats。","settings.apps.packagePathLabel":"套件路徑","settings.apps.packagePathPlaceholder":"/path/to/cats-app-package","settings.apps.reviewButton":"預覽","settings.apps.readyStatusChip":"就緒","settings.apps.needsReviewStatusChip":"待審核","settings.apps.noLobbyRoute":"沒有大廳路由","settings.apps.installButton":"安裝","settings.apps.enableAction":"啟用","settings.apps.disableAction":"停用","settings.apps.uninstallAction":"解除安裝","settings.apps.openAction":"開啟","settings.apps.settingsAction":"設定","settings.apps.uninstallTitle":"解除安裝應用程式","settings.apps.enableTitle":"啟用應用程式","settings.apps.disableTitle":"停用應用程式","settings.apps.uninstallMessage":"解除安裝「{appDisplayName}」?應用程式會從 Cats 中移除,但不會刪除套件檔。","settings.apps.enableMessage":"啟用「{appDisplayName}」?只要其權限允許,就會在 Cats 顯示。","settings.apps.disableMessage":"停用「{appDisplayName}」?其在大廳與應用程式專屬路由將不再顯示。","settings.apps.installTitle":"安裝應用程式","settings.apps.installMessage":"安裝「{appDisplayName}」?安裝後將自動啟用。","settings.apps.localInstallReady":"可安裝","settings.apps.localInstallNeedsReview":"待預覽","settings.apps.category.connector":"連接器","settings.apps.category.productModule":"產品模組","settings.apps.category.userApp":"使用者應用程式","settings.apps.installState.enabled":"已啟用","settings.apps.installState.installed":"已安裝","settings.apps.installState.disabled":"已停用","settings.apps.installState.error":"錯誤","settings.apps.installState.upgradePending":"待升級","settings.apps.installState.uninstalled":"已解除安裝","settings.apps.trustTier.localUser":"本機使用者","settings.apps.trustTier.system":"系統","settings.apps.trustTier.thirdParty":"第三方","settings.apps.permissionCount":"{count} 權限","settings.apps.toolCount":"{count} 工具","settings.apps.capabilitySingular":"能力","settings.apps.capabilityPlural":"能力","settings.apps.connectorCountSingle":"{connector}: {count} 個{capabilityLabel}","settings.apps.connectorCountMany":"{connectorCount} 個連接器,{count} 個{capabilityLabel}","settings.apps.authLabel":"認證","settings.apps.confirmMutationFailed":"確認對話無法顯示,請稍後再試。","settings.apps.confirmMutationFailedFallback":"請求執行前確認失敗。","settings.apps.mutationFailed":"{action} 失敗。","settings.apps.mutationFailedFallback":"操作失敗。","settings.apps.packagePathRequired":"請填寫套件路徑。","settings.apps.validationFailed":"套件驗證失敗。","settings.apps.error.notInstalled":"Cats app「{appId}」尚未安裝。","settings.apps.error.notEnabled":"Cats app「{appId}」尚未啟用。","settings.apps.error.packagePathNotFound":"找不到套件路徑:{path}。","settings.apps.error.invalidManifestJson":"cats.app.json 不是有效的 JSON。","settings.apps.error.cannotReadManifest":"無法讀取 cats.app.json。","settings.apps.error.reservedAppId":"Cats app id「{appId}」已被保留。","settings.apps.error.duplicateAppId":"Cats app id「{appId}」已安裝。","settings.apps.error.manifestInvalid":"Cats app manifest 必須是物件。","settings.apps.error.validationIssueWithPath":"套件驗證失敗({path}):{code}。","settings.apps.error.validationIssue":"套件驗證失敗:{code}。","settings.apps.openPairingUrl":"開啟配對網址","settings.data.resetAllDataTitle":"重設所有資料","settings.data.resetAllDataDescription":"這將清除聊天、貓咪、平台偏好與設定狀態,並返回初始設定精靈。","settings.data.resetButtonResetting":"重設中…","settings.data.resetButtonLabel":"重設所有資料","settings.data.resetFailure":"重設安裝失敗。","settings.conversation.preferenceUpdateFailure":"更新偏好失敗。","settings.desktop.mobilePairingTitle":"手機配對","settings.desktop.mobilePairingDescription":"為內建 Expo Go 手機版本檢查 LAN 準備狀態。","settings.desktop.mobilePairingStatusDisabled":"停用","settings.desktop.mobilePairingStatusLoopbackOnly":"僅回送位址","settings.desktop.mobilePairingStatusNoLanAddress":"缺少 LAN 位址","settings.desktop.mobilePairingStatusReady":"就緒","settings.desktop.mobilePairingStatusValidationPending":"等待資訊清單驗證","settings.desktop.mobilePairingEnableLabel":"啟用手機配對","settings.desktop.mobilePairingEnableDescription":"將寫入桌面端需要的環境變數值以開啟 LAN 存取。套用後請重新啟動 Cats 桌面版。","settings.desktop.mobilePairingEnableButton":"啟用","settings.desktop.mobilePairingApplyingButton":"套用中…","settings.desktop.mobilePairingBindLabel":"繫結位址","settings.desktop.mobilePairingReachabilityLabel":"可連線性","settings.desktop.mobilePairingLanAddressLabel":"LAN 位址","settings.desktop.mobilePairingNoneLabel":"無","settings.desktop.mobilePairingReachabilityLoopback":"僅回送位址","settings.desktop.mobilePairingReachabilityLan":"LAN 介面","settings.desktop.mobilePairingReachabilityAllInterfaces":"全部介面","settings.desktop.mobilePairingReachabilityOtherInterface":"介面不一致","settings.desktop.mobilePairingAllowLanLabel":"允許 LAN 存取","settings.desktop.mobilePairingAllowLanDescription":"目前綁定到回送位址。請先用 {bindOverrideEnv} 重新啟動後,再用手機掃描。","settings.desktop.mobilePairingApplyAndRestartButton":"套用並重新啟動","settings.desktop.mobilePairingNoLanAddressNote":"未偵測到可用的非回送 IPv4 LAN 位址。","settings.desktop.mobilePairingHostMismatchNote":"目前綁定位址與可用 LAN IPv4 位址不符合。","settings.desktop.mobilePairingDiagnosticLabel":"診斷資訊","settings.desktop.mobilePairingDiagnosticCopyButton":"複製網址","settings.desktop.mobilePairingDiagnosticCopiedMessage":"已複製診斷資訊清單網址。","settings.desktop.mobilePairingExpoUrlLabel":"Expo Go URL","settings.desktop.mobilePairingExpoUrlCopiedMessage":"已複製 Expo Go 網址。","settings.desktop.mobilePairingCopyUrlButton":"複製網址","settings.desktop.mobilePairingQrUrlTooLong":"網址過長","settings.desktop.mobilePairingQrCodeLabel":"手機配對 QR 碼","settings.desktop.mobilePairingNoPairingUrlStatus":"QR 尚未準備","settings.desktop.mobilePairingOpenPairingUrlLabel":"開啟配對網址","settings.desktop.mobilePairingCopyEnvValuesSuccess":"已複製手機配對環境變數值。","settings.desktop.mobilePairingConfirmRestart":"套用 0.0.0.0 綁定並重新啟動 Cats 桌面版?未儲存的變更將遺失。","settings.desktop.mobilePairingDesktopUpdateSuccess":"已更新 {envPath},正在重新啟動 Cats 桌面版…","settings.desktop.mobilePairingDesktopUpdateFailure":"更新桌面環境設定失敗。","settings.desktop.updatesTitle":"應用程式更新","settings.desktop.updatesDescription":"檢查並安裝 Cats 桌面更新。下載一律不會自動開始。","settings.desktop.updatesCurrentVersionLabel":"已安裝版本","settings.desktop.updatesChannelLabel":"發布頻道","settings.desktop.updatesLastCheckedLabel":"上次檢查","settings.desktop.updatesLastCheckedNever":"尚未檢查","settings.desktop.updatesAvailableVersionLabel":"可用版本","settings.desktop.updatesStatusUnavailable":"無法使用更新","settings.desktop.updatesStatusIdle":"可以檢查","settings.desktop.updatesStatusChecking":"檢查中","settings.desktop.updatesStatusUpToDate":"已是最新版本","settings.desktop.updatesStatusAvailable":"有可用更新","settings.desktop.updatesStatusDownloading":"下載中","settings.desktop.updatesStatusDownloaded":"可以安裝","settings.desktop.updatesStatusInstalling":"安裝中","settings.desktop.updatesStatusFailed":"更新失敗","settings.desktop.updatesActionCheck":"檢查更新","settings.desktop.updatesActionChecking":"正在檢查…","settings.desktop.updatesActionDownload":"下載更新","settings.desktop.updatesActionDownloading":"正在下載…","settings.desktop.updatesActionRestartInstall":"重新啟動並安裝","settings.desktop.updatesActionInstalling":"正在安裝…","settings.desktop.updatesToastUpToDate":"Cats 已是最新版本。","settings.desktop.updatesWindowsInstallerNotice":"Cats 將會關閉並開啟 Windows 安裝程式。過程中可能需要你確認安裝資料夾。","settings.desktop.updatesLinuxInstallerNotice":"Cats 將會關閉,更新會透過 dpkg 安裝,過程中需要輸入你的密碼。","settings.desktop.updatesPreviewNotice":"這是未簽章的預覽組建。更新功能僅供測試發布流程,並非受支援的安裝方式。","settings.desktop.updatesErrorOffline":"Cats 無法連線到更新服務。","settings.desktop.updatesErrorTimeout":"更新服務未在時限內回應。","settings.desktop.updatesErrorProviderRejected":"更新服務拒絕了這次請求。","settings.desktop.updatesErrorMetadataInvalid":"無法讀取更新資訊。","settings.desktop.updatesErrorChecksumMismatch":"下載的更新未通過完整性檢查。","settings.desktop.updatesErrorSignatureRejected":"下載的更新未通過簽章檢查。","settings.desktop.updatesErrorUnsupportedPackage":"這個安裝方式無法自我更新。","settings.desktop.updatesErrorDownloadCancelled":"更新下載已取消。","settings.desktop.updatesErrorInstallHandoffFailed":"Cats 無法開啟安裝程式。","settings.desktop.updatesErrorUnknown":"更新無法完成。","settings.desktop.startupTitle":"啟動行為","settings.desktop.startupDescription":"控制是否在登入時啟動 Cats 桌面版、是否自動打開主視窗,以及關閉視窗時是否保留在系統列。","settings.desktop.startupSignInLabel":"登入電腦時啟動 Cats 桌面版","settings.desktop.startupSignInDescription":"登入後讓 Cats 桌面版在背景準備就緒。","settings.desktop.startupTrayLabel":"關閉視窗時保留在系統匣","settings.desktop.startupTrayDescription":"啟用時,關閉視窗只會隱藏應用程式並持續運行;停用則直接退出。","settings.desktop.startupOpenWindowLabel":"登入後自動開啟主視窗","settings.desktop.startupOpenWindowDescription":"停用時,Cats 可在登入後背景啟動,但不會自動開啟主視窗;之後手動開啟仍可進入。","work.newChatDraft.startProjectChipLabel":"開始專案","work.newChatDraft.startProjectPrompt":"建立一個新的專案工作區,並列出里程碑。","work.newChatDraft.addTaskChipLabel":"新增任務","work.newChatDraft.addTaskPrompt":"新增一個任務,包含負責人、期限和優先順序。","work.newChatDraft.planSprintChipLabel":"規劃衝刺","work.newChatDraft.planSprintPrompt":"規劃下一個衝刺,包含目標和交付節奏。","work.newChatDraft.scheduleReviewChipLabel":"安排檢視","work.newChatDraft.scheduleReviewPrompt":"安排一次專案檢視,並邀請合適的貓咪參與。","work.newChatDraft.triageBacklogChipLabel":"整理待辦","work.newChatDraft.triageBacklogPrompt":"和我一起檢視待辦清單,整理下一步要交付的項目。","work.items.listTitle":"工作項目","work.items.newAction":"新增工作項目","work.items.importExternalIssueAction":"匯入 issue","work.items.importExternalIssueAriaLabel":"匯入外部 issue","work.items.createNewWorkItem":"新增工作項目","work.items.createNewWorkItemAriaLabel":"建立新的工作項目","work.items.loading":"載入工作項目中…","work.items.loadError":"載入工作項目失敗:{errorMessage}","work.items.emptyIntro":"還沒有工作項目,點擊","work.items.emptyActionLabel":"新增工作項目","work.items.emptySuffix":"來建立第一筆。","work.items.projectPrefix":"於 {projectTitle}","work.items.projectOrphan":"無關聯專案","work.items.pill.decision":"待決","work.items.pill.blocked":"阻塞","work.items.tasksLabel":"任務","work.items.openWorkItemAriaLabel":"開啟工作項目 {title}","work.items.parentWorkItemTooltip":"上層工作項目:{parentTitle}","work.item.backLabel":"工作項目","work.item.backArrowLabel":"← 工作項目","work.item.updatedAtPrefix":"更新於 {updatedAt}","work.item.deleteLabel":"刪除工作項目","work.item.deleteLabelBusy":"刪除中…","work.item.deleteConfirmation":`要刪除工作項目「{title}」嗎?
22
+
23
+ 此動作無法復原,且關聯的任務、執行與任務群不會同步刪除。`,"work.item.deleteConfirmationDetail":"此變更將從目前投影移除所選的工作項目,且無法復原。","work.item.deleteError":"無法刪除工作項目。","work.item.overviewTitle":"概覽","work.item.summaryLabel":"摘要","work.item.projectLabel":"專案","work.item.parentLabel":"上層工作項目","work.item.ownerLabel":"擁有者","work.item.conversationLabel":"對話","work.item.orphanSummaryFallback":"(無關聯專案)","work.item.noTasksLabel":"目前還沒有任務。","work.item.tasksTitle":"任務","work.item.missionsTitle":"任務群","work.item.subWorkItemsTitle":"子工作項目","work.item.noSubWorkItems":"尚未有子工作項目。","work.item.noMissions":"此工作項目尚無任務群。","work.item.subWorkItemsCountLabel":"子工作項目","work.item.noActivity":"此工作項目還沒有活動紀錄。","work.item.activityTitle":"活動","work.item.loadingLabel":"載入工作項目…","work.item.notFoundTitle":"找不到","work.item.notFoundText":"工作項目「{workItemId}」不在目前的投影範圍內。","work.item.notInProjectionText":"不在目前的投影範圍內。","work.item.missedTitle":"不在投影中","work.item.noTasksYetLabel":"尚無任務","work.item.notFoundCodeLabel":"缺少 id","work.external.empty":"尚未連結外部追蹤項目。","work.external.linkIssueAction":"連結 issue","work.external.linkTrackerAction":"連結追蹤","work.external.dialogTitle":"連結外部追蹤","work.external.closeLabel":"關閉外部追蹤連結對話框","work.external.providerLabel":"提供者","work.external.provider.github":"GitHub","work.external.provider.gitlab":"GitLab","work.external.provider.gitea":"Gitea","work.external.provider.redmine":"Redmine","work.external.provider.bugzilla":"Bugzilla","work.external.typeLabel":"類型","work.external.type.issue":"Issue","work.external.type.ticket":"Ticket","work.external.type.project":"Project","work.external.idLabel":"外部 ID","work.external.idPlaceholder":"123 或 BUG-42","work.external.urlLabel":"網址","work.external.urlPlaceholder":"https://github.com/org/repo/issues/123","work.external.syncDirectionLabel":"同步意圖","work.external.sync.pull":"僅拉取","work.external.sync.push":"稍後推送","work.external.sync.bidirectional":"稍後雙向","work.external.cancelButton":"取消","work.external.submitLabel":"連結追蹤項目","work.external.submitBusyLabel":"連結中…","work.external.linkError":"無法連結外部追蹤。","work.external.unlinkAction":"解除連結","work.external.unlinkAriaLabel":"解除連結 {label}","work.external.unlinkConfirmation":"要從 Cats Work 解除連結 {label} 嗎?","work.external.unlinkError":"無法解除外部追蹤連結。","work.external.import.dialogTitle":"匯入外部 issue","work.external.import.providerLabel":"提供者","work.external.import.urlLabel":"Issue 網址","work.external.import.urlPlaceholder":"https://github.com/org/repo/issues/123","work.external.import.cancelButton":"取消","work.external.import.submitLabel":"匯入 issue","work.external.import.submitBusyLabel":"匯入中…","work.external.import.error":"無法匯入外部 issue。","work.external.import.externalIssueLabel":"外部 issue","work.external.import.provider.github":"GitHub","work.external.import.provider.redmine":"Redmine","work.external.import.provider.bugzilla":"Bugzilla","work.external.import.type.issue":"議題","work.external.import.type.ticket":"工單","work.external.import.result.imported":"已將 {providerLabel} {typeLabel} {externalId} 匯入為 Work Item {workItemId}。","work.external.import.result.linked":"已將 {providerLabel} {typeLabel} {externalId} 連結到 Work Item {workItemId}。","work.external.import.result.alreadyImported":"{providerLabel} {typeLabel} {externalId} 已匯入為 Work Item {workItemId}。","work.external.import.failure.body":"無法匯入 {providerLabel} {typeLabel} {externalId}:{reason}。","work.external.import.failure.bodyUnknown":"無法匯入 {externalLabel}:{reason}。","work.external.import.failure.reason.invalidTarget":"模型要求了無效的 Work tool 目標","work.external.import.failure.reason.storeUnavailable":"Work 儲存目前無法使用","work.external.import.failure.reason.unsupportedOwnerMessage":"你的訊息沒有包含支援匯入的 issue 網址","work.external.import.failure.reason.schemaInvalid":"模型提供的 tool input 不符合 Work 匯入格式","work.external.import.failure.reason.issueMismatch":"模型要求的 issue 和你的訊息不一致","work.external.import.failure.reason.providerMismatch":"模型要求的提供者和你的訊息不一致","work.external.import.failure.reason.pendingApproval":"匯入仍在等待核准","work.external.import.failure.reason.unsupportedSource":"不支援這個 issue tracker 網址","work.external.import.failure.reason.fetchFailed":"無法讀取 issue tracker","work.external.import.failure.reason.pullRequestUnsupported":"這個匯入路徑不支援 GitHub pull request","work.external.import.failure.reason.unexpected":"匯入發生未預期錯誤","work.sidebar.newWorkLabel":"新增工作","work.sidebar.teamWorkLabel":"團隊工作","work.sidebar.parallelWorkLabel":"平行工作","work.sidebar.portfolioLabel":"作品集","work.sidebar.projectsLabel":"專案","work.sidebar.managedWorkLabel":"管理中","work.sidebar.workItemsLabel":"工作項目","work.sidebar.tasksLabel":"任務","work.sidebar.runsLabel":"執行","work.sidebar.missionsLabel":"任務","work.sidebar.schedulesLabel":"排程","work.sidebar.executionLabel":"執行","work.sidebar.systemMapLabel":"系統地圖","work.sidebar.cockpitLabel":"指揮台","work.sidebar.brokenLinksLabel":"斷裂連結","work.sidebar.warRoomLabel":"作戰室","work.sidebar.workTopDownSurfacesLabel":"自上而下工作面板","work.sidebar.unpinProjectLabel":"取消釘選","work.sidebar.deleteProjectLabel":"刪除","work.sidebar.noWorkYetLabel":"尚未有工作","work.query.httpError":"請求失敗,狀態碼 {status}。","work.query.httpErrorWithStatusText":"請求失敗,狀態碼 {status} {statusText}。","work.graph.loadErrorFallback":"載入工作圖譜失敗。","work.missions.listTitle":"任務群","work.missions.lede":"任務群不同於一般任務。當任務已排程時會綁定到工作項目,否則則由代理人於內部啟動。","work.missions.loading":"載入任務中…","work.missions.loadError":"載入任務失敗:{errorMessage}","work.missions.emptyLabel":"尚未有任務。","work.missions.openMissionAriaLabel":"開啟任務 {title}","work.mission.backLabel":"任務群","work.mission.backArrowLabel":"返回任務群","work.mission.cancelConfirmation":`要取消任務「{missionTitle}」嗎?
24
+
25
+ 系統將透過監督式執行環境停止對應的執行程序,已連結的任務/工作項目不會被改變。`,"work.mission.cancelBlocked":"任務取消遭阻擋。{detail}","work.mission.cancelBlockedNoDetails":"請參考各執行單位回報。","work.mission.cancelError":"取消任務失敗。","work.mission.cancelRouteFailed":"取消任務失敗。HTTP {statusCode}。","work.mission.cancelLabel":"取消","work.mission.cancelLabelBusy":"取消中…","work.cancellation.blocker.runNotStoppable":"此執行無法停止。","work.cancellation.blocker.noRuntimeSession":"此執行沒有橋接監督式執行階段工作階段。","work.cancellation.blocker.runtimeClientUnavailable":"執行階段用戶端無法使用。","work.cancellation.blocker.runtimeCancellationFailed":"取消執行階段失敗:{error}","work.mission.summaryTitle":"任務群概覽","work.mission.statusLabel":"狀態","work.mission.assignedAgentLabel":"指派代理人","work.mission.updatedAtLabel":"更新於","work.mission.workItemLabel":"工作項目","work.mission.conversationLabel":"對話","work.mission.tasksHeading":"此工作項目下任務({count})","work.mission.noLinkedWorkItemForTasks":"該任務群為臨時型,沒有指定對應工作項目,無法對應任務清單。","work.mission.noLinkedWorkItemForRuns":"該任務群為臨時型,沒有對應工作項目,因此沒有關聯執行可派發。","work.mission.noTasks":"對應的工作項目目前還沒有任務。","work.mission.runsHeading":"關聯任務派發的執行({count})","work.mission.noTransitiveRuns":"目前尚未從這些任務派發執行。","work.mission.loadingLabel":"載入任務中…","work.mission.notFound":"找不到任務「{missionId}」。","work.mission.noMissionId":"沒有提供任務 id。","work.projects.listTitle":"專案","work.projects.newAction":"新增專案","work.projects.createNewProjectAriaLabel":"建立新專案","work.projects.loading":"載入專案中…","work.projects.loadError":"載入專案失敗:{errorMessage}","work.projects.emptyIntro":"目前尚無專案,點擊","work.projects.emptySuffix":"開始建立。","work.projects.openProjectAriaLabel":"開啟專案 {projectTitle}","work.projects.decisionPill":"{count} 個待決","work.projects.blockedPill":"{count} 個阻塞","work.projects.workItemsAbbrev":"工作項目","work.projects.tasksLabel":"任務","work.project.backLabel":"專案","work.project.backArrowLabel":"返回專案","work.project.updatedAtPrefix":"更新於 {updatedAt}","work.project.deleteLabel":"刪除","work.project.deleteLabelBusy":"刪除中…","work.project.deleteConfirmation":`要刪除專案「{projectTitle}」嗎?
26
+
27
+ 此動作無法復原。已連結的工作項目、任務與執行不會被移除。`,"work.project.deleteError":"刪除專案失敗。","work.project.overviewTitle":"概覽","work.project.summaryLabel":"摘要","work.project.ownerLabel":"擁有者","work.project.conversationLabel":"對話","work.project.workItemsTitle":"工作項目","work.project.noWorkItems":"此專案尚無工作項目。","work.project.tasksTitle":"任務","work.project.noTasks":"此專案尚無任務。","work.project.activityTitle":"活動","work.project.noActivity":"此專案尚無活動紀錄。","work.project.loadingLabel":"載入專案中…","work.project.notFoundTitle":"找不到","work.project.missingIdLabel":"(缺少 id)","work.project.notFoundPrefix":"專案","work.project.notFoundSuffix":"不在目前投影中。","work.runs.listTitle":"執行","work.runs.lede":"所有核心執行的平面清單。點入執行可檢視追蹤與子執行。執行由協調器派發建立,不在此頁建立。","work.runs.loading":"載入執行中…","work.runs.loadError":"載入執行失敗:{errorMessage}","work.runs.noRunsIntro":"目前尚無執行。協調器派發任務或子執行時會建立執行紀錄。","work.run.openAriaLabel":"開啟執行 {runTitle}","work.run.openSubRunAriaLabel":"開啟子執行 {runTitle}","work.run.subRunChip":"子執行","work.run.stopErrorWithError":"執行階段取消失敗:{error}","work.run.stopErrorFallback":"執行階段取消失敗,執行未標記為已取消。","work.run.stopNotStoppable":"此執行無法停止:沒有橋接監督式執行階段工作階段。","work.run.stopNotStoppableGeneric":"此執行無法停止。","work.run.stopConfirmation":`要停止執行「{runTitle}」嗎?
28
+
29
+ Cats 會先透過監督式執行階段工作階段要求執行階段取消,再將執行標記為已取消。已送出的外部副作用不會回復。`,"work.run.stopError":"停止執行失敗。","work.run.stopRouteFailed":"停止執行失敗。HTTP {statusCode}。","work.run.backArrowLabel":"返回任務","work.run.backLabel":"任務","work.run.stopLabel":"停止","work.run.stopLabelBusy":"停止中…","work.run.summary.blockedBeforeRuntimeLaunch":"執行階段啟動完成前已阻擋。","work.run.summary.blockedBeforeScheduledRuntimeLaunch":"排程執行階段啟動完成前已阻擋。","work.run.summary.launchingScheduledMission":"正在透過監督式執行階段邊界啟動排程任務。","work.run.summary.providerAgentRuntimeMessageCompleted":"供應器代理人執行階段訊息已完成。","work.run.summary.queuedSupervisedWorkRun":"已排入監督式工作執行。","work.run.summary.relayFanOutDispatch":"已為 {agentLabel} 建立分派執行。","work.run.summary.startedSupervisedCodeTaskExecution":"已啟動監督式程式任務執行。","work.run.summaryTitle":"執行摘要","work.run.statusLabel":"狀態","work.run.updatedLabel":"更新於","work.run.durationLabel":"耗時","work.run.parentRunLabel":"上層執行","work.run.conversationLabel":"對話","work.run.subRunsTitle":"子執行 {count}","work.run.noSubRuns":"沒有子執行。","work.run.traceTitle":"追蹤 {count}","work.run.traceLoading":"載入追蹤中…","work.run.traceLoadFallback":"載入執行追蹤失敗。","work.run.traceLoadError":"載入追蹤失敗:{errorMessage}","work.run.traceEmptyQueued":"執行正在排隊;協調器派發後會出現追蹤紀錄。","work.run.traceEmptyRunning":"執行正在進行,但尚未送出追蹤紀錄。","work.run.traceEmptyBlocked":"執行已阻塞,停滯前未送出追蹤。","work.run.traceEmptyCompleted":"執行已完成,但沒有追蹤紀錄。","work.run.traceEmptyFailed":"執行在送出追蹤前失敗。","work.run.traceEmptyCancelled":"執行在送出追蹤前已取消。","work.run.traceEmptyDefault":"沒有追蹤紀錄。","work.run.traceNoActorRecorded":"未紀錄執行者","work.run.traceKindUnknown":"未知追蹤({kind})","work.run.artifactStatus.draft":"草稿","work.run.artifactStatus.ready":"就緒","work.run.artifactStatus.published":"已發佈","work.run.artifactStatus.archived":"已封存","work.run.activitiesTitle":"活動 {count}","work.run.outcomesTitle":"成果 {count}","work.run.artifactsTitle":"證據物件 {count}","work.run.loadingLabel":"載入執行中…","work.run.notFound":"找不到執行 {runId}。","work.run.noRunId":"沒有提供執行 id。","work.schedules.listTitle":"排程","work.schedules.lede":"目前版本中,排程執行只會在 Cats 運行時觸發。","work.schedules.loadErrorFallback":"載入排程失敗。","work.schedules.exportAction":"匯出","work.schedules.loading":"載入排程中…","work.schedules.empty":"目前尚無排程。產品介面會從各自工作流程建立排程規則;此頁用於稽核與操作既有規則。","work.schedule.openAriaLabel":"開啟排程 {scheduleTitle}","work.schedule.nextFireChip":"下次 {dateTime}","work.schedule.receiptChip":"{status} · {relativeTime}","work.schedule.enabledStatus":"已啟用","work.schedule.disabledStatus":"已停用","work.schedule.summary.onceAt":"單次於 {dateTime}","work.schedule.summary.dailyAt":"每日 {time} {timezone}","work.schedule.dateNone":"無","work.schedule.receiptStatus.claimed":"已認領","work.schedule.receiptStatus.admitted":"已准入","work.schedule.receiptStatus.duplicate":"重複","work.schedule.receiptStatus.skipped":"已略過","work.schedule.receiptStatus.failed":"失敗","work.schedule.triggerReason.due":"到期","work.schedule.triggerReason.manualTest":"手動測試","work.schedule.triggerReason.startupMisfire":"啟動補觸發","work.schedule.triggerReason.retry":"重試","work.schedule.missionPolicy.perFire":"每次觸發","work.schedule.concurrencyPolicy.skip":"略過","work.schedule.concurrencyPolicy.queue":"排隊","work.schedule.concurrencyPolicy.replace":"取代","work.schedule.misfirePolicy.skip":"略過","work.schedule.misfirePolicy.fireOnce":"觸發一次","work.schedule.misfirePolicy.fireAll":"全部觸發","work.schedule.retryBackoff.none":"無","work.schedule.retryBackoff.fixed":"固定","work.schedule.retryBackoff.exponential":"指數退避","work.schedule.ruleNotLoadedError":"排程規則尚未載入。","work.schedule.createFailed":"建立排程失敗。","work.schedule.updateFailed":"更新排程失敗。","work.schedule.testFireFailed":"測試觸發排程失敗。","work.schedule.deleteFailed":"刪除排程失敗。","work.schedule.deleteConfirmation":`要刪除排程「{scheduleTitle}」嗎?
30
+
31
+ 此動作無法復原。未來觸發會停止,規則的觸發歷史會移除;已准入的任務群/執行仍會保留。`,"work.schedule.actionFailed":"排程操作失敗。","work.schedule.loadingTitle":"載入中…","work.schedule.loadingLabel":"載入排程中…","work.schedule.loadFailed":"載入排程失敗。","work.schedule.overviewTitle":"概覽","work.schedule.scheduleLabel":"排程","work.schedule.timezoneLabel":"時區","work.schedule.revisionLabel":"版次","work.schedule.targetLabel":"目標","work.schedule.targetKind.cat":"貓咪","work.schedule.targetKind.agent":"代理人","work.schedule.originLabel":"來源","work.schedule.origin.schedule":"排程","work.schedule.missionPolicyLabel":"任務群政策","work.schedule.concurrencyLabel":"並行策略","work.schedule.misfireLabel":"漏觸發策略","work.schedule.retryLabel":"重試","work.schedule.retryNone":"無","work.schedule.retryPolicyValue":"{maxAttempts}x {backoff}","work.schedule.diagnosticsTitle":"診斷","work.schedule.nextFireLabel":"下次觸發","work.schedule.lastScheduledFireLabel":"上次排程觸發","work.schedule.lastRunLabel":"上次執行","work.schedule.consecutiveFailuresLabel":"連續失敗","work.schedule.disabledDiagnosticFallback":"已停用:未來不再評估觸發。","work.schedule.retryStatePill":"重試 {attempt}/{maxAttempts} 於 {dateTime}","work.schedule.lastFailurePill":"上次失敗:{failure}","work.schedule.recentTriggersTitle":"最近觸發 {count}","work.schedule.noTriggerReceipts":"尚無觸發回條。","work.schedule.retryAttemptSuffix":" #{attempt}","work.schedule.backArrowLabel":"返回排程","work.schedule.backLabel":"排程","work.schedule.testFireBusyLabel":"觸發中…","work.schedule.testFireLabel":"測試觸發","work.schedule.updatingLabel":"更新中…","work.schedule.disableLabel":"停用","work.schedule.enableLabel":"啟用","work.schedule.deleteAriaLabel":"刪除排程","work.schedule.deleteBusyLabel":"刪除中…","work.schedule.deleteLabel":"刪除","work.schedule.missingIdLabel":"(缺少 id)","work.schedule.notFoundTitle":"找不到","work.schedule.notFoundPrefix":"排程","work.schedule.notFoundSuffix":"不在目前狀態中。","work.tasks.listTitle":"任務","work.tasks.newAction":"新增任務","work.tasks.createNewTaskAriaLabel":"建立新任務","work.tasks.loading":"載入任務中…","work.tasks.loadError":"載入任務失敗:{errorMessage}","work.tasks.emptyIntro":"尚未有任務,點擊","work.tasks.emptyActionLabel":"新增任務","work.tasks.emptySuffix":"來建立第一筆。","work.tasks.openTaskAriaLabel":"開啟任務 {title}","work.task.status.pendingApproval":"待核准","work.task.status.approved":"已核准","work.task.status.archived":"已封存","work.task.priority.urgent":"緊急","work.task.priority.high":"高","work.task.priority.medium":"中","work.task.priority.low":"低","work.task.priority.labelWithValue":"優先順序:{priorityLabel}","work.task.backLabel":"返回任務","work.task.backArrowLabel":"← 任務","work.task.updatedAtPrefix":"更新於 {updatedAt}","work.task.deleteLabel":"刪除任務","work.task.deleteLabelBusy":"刪除中…","work.task.deleteConfirmation":`要刪除任務「{taskTitle}」嗎?
32
+
33
+ 此操作無法復原。已連結的執行不會被移除。`,"work.task.deleteError":"無法刪除任務。","work.task.approveLabel":"核准","work.task.approveBusyLabel":"核准中…","work.task.rejectLabel":"拒絕","work.task.rejectBusyLabel":"拒絕中…","work.task.approvalDecisionError":"無法更新任務核准狀態。","work.task.priorityTooltip":"優先順序:{priorityLabel}","work.task.overviewTitle":"概覽","work.task.summaryLabel":"摘要","work.task.projectLabel":"專案","work.task.orphanProjectFallback":"(無關聯專案)","work.task.workItemLabel":"工作項目","work.task.noWorkItemFallback":"(未關聯工作項目)","work.task.parentTaskLabel":"上層任務","work.task.ownerLabel":"擁有者","work.task.assigneeLabel":"執行者","work.task.noAssigneeFallback":"(尚未指派)","work.task.assignedActorsLabel":"已指派對象","work.task.noActorsAssignedFallback":"(未指派核心對象)","work.task.acceptanceCriteriaLabel":"驗收條件","work.task.conversationLabel":"對話","work.task.activityTitle":"活動","work.task.noActivity":"此任務尚無活動紀錄。","work.task.subTasksTitle":"子任務","work.task.noSubTasksLabel":"尚未有子任務。","work.task.runsTitle":"執行","work.task.noRunsIntro":"尚未派發執行。使用","work.task.noRunsActionLabel":"啟動監督執行","work.task.noRunsSuffix":"來派發。","work.task.startRunBusyLabel":"啟動中…","work.task.startRunError":"無法啟動監督執行。","work.task.loadingLabel":"載入任務中…","work.task.notFoundTitle":"找不到","work.task.notFoundText":"任務「{taskId}」不在目前的投影範圍內。","work.task.notFoundCodeLabel":"缺少 id","work.object.kind.agent":"代理人","work.object.kind.container":"容器","work.object.kind.conversation":"對話","work.object.kind.turn":"回合","work.object.kind.lane":"流程","work.object.kind.project":"專案","work.object.kind.workItem":"工作項目","work.object.kind.task":"任務","work.object.kind.mission":"任務群","work.object.kind.run":"執行","work.object.kind.artifact":"證據物件","work.object.kind.activity":"活動","work.object.kind.outcome":"成果","work.object.kind.approvalBinding":"審核","work.object.kind.unknown":"未知({kind})","work.object.attention.decisionNeeded":"待決","work.object.attention.blocked":"阻塞","work.object.attention.failed":"失敗","work.object.attention.readyToReview":"待審核","work.object.attention.recentlyShipped":"已完成","work.object.attention.unknown":"未知({attention})","work.object.status.draft":"草稿","work.object.status.planned":"待排程","work.object.status.active":"進行中","work.object.status.paused":"已暫停","work.object.status.archived":"已封存","work.object.status.ready":"待辦","work.object.status.inProgress":"進行中","work.object.status.blocked":"阻塞","work.object.status.completed":"已完成","work.object.status.cancelled":"已取消","work.object.status.running":"執行中","work.object.status.queued":"排隊中","work.object.status.unknown":"未知({status})","work.actorRole.assistant":"助理","work.actorRole.boss":"老闆","work.actorRole.coder":"程式撰寫者","work.actorRole.coordinator":"協調者","work.actorRole.critic":"評論者","work.actorRole.drafter":"草稿撰寫者","work.actorRole.mainCoder":"主程式撰寫者","work.actorRole.orchestrator":"協調核心","work.actorRole.owner":"擁有者","work.actorRole.planner":"規劃者","work.actorRole.reviewer":"審核者","work.actorRole.summarizer":"摘要者","work.object.gateState.notRequested":"未提出","work.object.gateState.pending":"待審核","work.object.gateState.approved":"已核可","work.object.gateState.rejected":"已拒絕","work.object.gateState.unknown":"未知({state})","work.topdown.parentTaskOwningLabel":"負責任務","work.topdown.parentTaskLabel":"上層任務","work.topdown.parentWorkItemLabel":"上層工作項目:{parentWorkItemTitle}","work.topdown.taskProductBindingTitle":"產品綁定:{productBinding}","work.topdown.taskProductBindingUnbound":"未綁定","work.topdown.parentTaskTooltip":"關聯任務:{linkedTaskTitle}({linkType})","work.topdown.crossCuttingLayer":"跨層次","work.topdown.cockpitEyebrow":"由上而下","work.topdown.cockpitTitle":"作業台","work.topdown.cockpitLede":"即時監控關鍵執行情況、阻塞來源與最近活動。","work.topdown.cockpitMetricDecisions":"待決","work.topdown.cockpitMetricBlocked":"阻塞","work.topdown.cockpitMetricShipped":"已完成","work.topdown.cockpitTabsAriaLabel":"作業台檢視","work.topdown.cockpitTabCommandLabel":"指令","work.topdown.cockpitTabCommandSub":"策略總覽","work.topdown.cockpitTabNeedsDecisionLabel":"待決","work.topdown.cockpitTabNeedsDecisionSub":"等待決策","work.topdown.cockpitTabActiveLabel":"進行中","work.topdown.cockpitTabActiveSub":"準備中與進行中","work.topdown.cockpitTabActiveRunsLabel":"執行中","work.topdown.cockpitTabActiveRunsSub":"目前正在執行","work.topdown.cockpitTabBlockedLabel":"阻塞","work.topdown.cockpitTabBlockedSub":"受阻或失敗","work.topdown.cockpitTabShippedLabel":"已完成","work.topdown.cockpitTabShippedSub":"近期交付","work.topdown.cockpitTabTeamsLabel":"團隊","work.topdown.cockpitTabTeamsSub":"責任角色航道","work.topdown.cockpitOpen":"開啟","work.topdown.cockpitNoBucketItems":"尚無項目。","work.topdown.cockpitRecentActivityAriaLabel":"最近活動","work.topdown.cockpitRecentActivityTitle":"最近活動","work.topdown.cockpitRecentActivitySummary":"{count} 筆項目","work.topdown.cockpitRecentActivityEmpty":"沒有近期活動。","work.topdown.cockpitNoActorRoles":"尚無擁有者角色。","work.topdown.linkageTitle":"連結關係","work.topdown.linkageAddAction":"新增連結","work.topdown.linkageNoLinksYetPrefix":"目前尚無連結,請使用","work.topdown.linkageNoLinksYetSuffix":"以將此項目連結到專案、工作項目或任務。","work.topdown.linkageViewKindBlocksLabel":"阻擋","work.topdown.linkageViewKindBlockedByLabel":"被阻擋","work.topdown.linkageViewKindRelatedToLabel":"關聯","work.topdown.linkageViewKindDuplicateOfLabel":"重複於","work.topdown.linkageViewKindFollowsLabel":"取代","work.topdown.linkageViewKindBlocksEmpty":"目前無待辦。","work.topdown.linkageViewKindBlockedByEmpty":"沒有上游阻塞。","work.topdown.linkageViewKindRelatedToEmpty":"尚未關聯專案、工作項目或任務。","work.topdown.linkageViewKindDuplicateOfEmpty":"尚未標記為重複項。","work.topdown.linkageViewKindFollowsEmpty":"未有取代任何較早項目。","work.topdown.linkKindBlocksHelp":"這個會阻擋目標。","work.topdown.linkKindBlockedByHelp":"目標會阻擋此項。","work.topdown.linkKindRelatedToHelp":"有關聯但不建立層級關係。","work.topdown.linkKindDuplicateOfHelp":"此項是目標的複本。","work.topdown.linkKindFollowsHelp":"此項取代目標項目。","work.topdown.newLinkDialogTitle":"新增連結","work.topdown.newLinkClose":"關閉","work.topdown.newLinkSourcePrefix":"來源","work.topdown.newLinkRelationLabel":"關係","work.topdown.newLinkTargetLabel":"目標","work.topdown.newLinkTargetSearchPlaceholder":"搜尋 {project} / {workItem} / {task}","work.topdown.newLinkNoMatches":"沒有符合結果。","work.topdown.newLinkNoteLabel":"備註(選填)","work.topdown.newLinkNotePlaceholder":"為何這個關係值得紀錄?","work.topdown.newLinkCancel":"取消","work.topdown.newLinkSaving":"儲存中…","work.topdown.newLinkErrorInvalidTarget":"目標必須是專案、工作項目或任務。","work.topdown.newLinkErrorSelfLink":"連結不能指向自己。","work.topdown.newLinkErrorNoteTooLong":"備註長度不能超過 {max} 個字元。","work.topdown.newLinkErrorFailed":"建立連結失敗。","work.topdown.upstreamBlockersAriaLabel":"上游阻塞","work.topdown.blockersTitle":"阻塞","work.topdown.upstreamBlocksLine":"每列項目的上游阻擋鏈(深度 ≤ {maxDepth})","work.topdown.noUpstreamBlockers":"此列表中沒有上游阻塞。","work.topdown.brokenLinksEyebrow":"由上而下 · 合規","work.topdown.brokenLinksTitle":"斷裂連結","work.topdown.brokenLinksLede":"當產生器寫入未符合 SPEC-083《最小錨點集合》或 SPEC-090 連結完整性的連結時,在投影層顯示的診斷結果。","work.topdown.brokenLinksErrorMetricSuffix":"錯誤","work.topdown.brokenLinksWarningMetricSuffix":"警告","work.topdown.brokenLinksInfoMetricSuffix":"資訊","work.topdown.brokenLinksSeverityFiltersAriaLabel":"嚴重性篩選","work.topdown.brokenLinksSeverityAllLabel":"全部","work.topdown.brokenLinksSeverityErrorLabel":"錯誤","work.topdown.brokenLinksSeverityWarningLabel":"警告","work.topdown.brokenLinksSeverityInfoLabel":"資訊","work.topdown.brokenLinksNoDiagnostics":"目前篩選條件下無診斷結果。","work.topdown.brokenLinksOn":"位於","work.topdown.brokenLinksOpenInDrawer":"在抽屜中開啟","work.topdown.brokenLinksObjectNotInProjection":"物件 ID {objectId} 不在投影中","work.topdown.brokenLinksNoSpecificObject":"系統問題 — 未指定特定物件","work.topdown.brokenLinksRemoveTooltipRemovable":"請透過產生器管線移除此連結。","work.topdown.brokenLinksRemoveTooltipDemoSeed":"示範資料 — 請重新啟動使用者介面清理,或先透過產生器管線寫回。","work.topdown.brokenLinksRemoveAction":"移除此連結","work.topdown.brokenLinksRemoveUnknownError":"移除連結失敗。","work.topdown.brokenLinksRemovingInProgress":"移除中…","work.topdown.brokenLinksRemovableOnlyDemo":"示範資料 — 僅可透過產生器 API 移除產生器寫入的連結。","work.topdown.brokenLinksCycleRemovableRows":"可移除列 ({count}):","work.topdown.brokenLinksDeletedLabel":"(已刪除)","work.topdown.diagnosticKind.brokenFk":"斷裂參照","work.topdown.diagnosticKind.missingProjectAnchor":"缺少專案錨點","work.topdown.diagnosticKind.missingPlanningExecutionBridge":"缺少規劃/執行橋接","work.topdown.diagnosticKind.unanchoredRun":"未錨定的執行","work.topdown.diagnosticKind.unanchoredEvidence":"未錨定的證據","work.topdown.diagnosticKind.missingGateSubject":"缺少閘門對象","work.topdown.diagnosticKind.orphanLink":"孤立連結","work.topdown.diagnosticKind.linkCycle":"連結循環","work.topdown.selectionLost":"選取遺失","work.topdown.objectNotInProjectionTitle":"物件不在投影中","work.topdown.objectNotInProjectionMessage":"所選 ID {selectedId} 不在目前的投影中。","work.topdown.identityTitle":"身分","work.topdown.identityKind":"類型","work.topdown.identityStatus":"狀態","work.topdown.identityLayer":"階層","work.topdown.identityOwnerRole":"擁有者角色","work.topdown.identityNextAction":"後續動作","work.topdown.identityUpdated":"更新時間","work.topdown.identitySummary":"摘要","work.topdown.externalTitle":"外部","work.topdown.externalBindingTooltip":"外部追蹤:{externalBinding}","work.topdown.externalSyncLabel":"同步:{syncDirection}","work.topdown.externalUpdatedLabel":"更新 {updatedAt}","work.topdown.anchorsTitle":"關聯錨點","work.topdown.evidenceTitle":"證據","work.topdown.evidenceEmpty":"沒有附加證據。","work.topdown.missingSuffix":"(缺少)","work.topdown.gatesTitle":"閘門","work.topdown.gatesEmpty":"沒有核准閘門。","work.topdown.diagnosticsTitle":"診斷","work.topdown.anchorProject":"專案","work.topdown.anchorWorkItem":"工作項目","work.topdown.anchorTask":"任務","work.topdown.anchorRun":"執行","work.topdown.anchorConversation":"對話","work.topdown.anchorsEmpty":"沒有結構化錨點。","work.topdown.relativeJustNow":"剛剛","work.topdown.relativeMinutesAgo":"{count} 分鐘前","work.topdown.relativeHoursAgo":"{count} 小時前","work.topdown.relativeDaysAgo":"{count} 天前","work.topdown.systemMapEyebrow":"由上而下 · 結構","work.topdown.systemMapTitle":"系統地圖","work.topdown.systemMapLede":"來自 ADR-081 的三個結構層作為共居卡片,聚焦在分類體系中存在的內容,而非緊急程度。","work.topdown.systemMapStructuralLabel":"結構","work.topdown.systemMapTotalLabel":"總數","work.topdown.systemMapDiagnosticsLabel":"診斷","work.topdown.systemMapLayerAriaLabel":"{layerLabel} 層","work.topdown.systemMapLayerInteractionLabel":"互動","work.topdown.systemMapLayerPlanningLabel":"規劃","work.topdown.systemMapLayerExecutionLabel":"執行","work.topdown.systemMapLayerInteractionDescription":"誰在與誰互動、透過什麼通道、以什麼型態呈現。","work.topdown.systemMapLayerPlanningDescription":"產品方想要完成的目標——專案/工作項目。","work.topdown.systemMapLayerExecutionDescription":"工作如何執行——任務 / 任務群 / 執行。","work.topdown.systemMapLayerEmpty":"此層沒有物件。","work.warRoom.attentionAttention":"注意","work.warRoom.attentionError":"錯誤","work.warRoom.attentionFallback":"未分類({severity})","work.warRoom.attentionMuted":"靜音","work.warRoom.attentionProgress":"進行中","work.warRoom.attentionSuccess":"正常","work.warRoom.controlPlane":"控管面板","work.warRoom.controlPlaneBlockedBy":"被 {reason} 阻擋,請確認對應前置條件。","work.warRoom.controlPlaneEmptyBadge":"空","work.warRoom.controlPlaneEmptyBody":"目前沒有活躍的控管任務。","work.warRoom.controlPlaneEmptyTitle":"沒有控管項目","work.warRoom.controlPlaneNoTargets":"未選擇目標任務","work.warRoom.controlPlaneTargets":"目標:{targets}","work.warRoom.countSummary":"顯示 {count}/{total}","work.warRoom.governanceEyebrow":"治理","work.warRoom.actionBusy":"套用中...","work.warRoom.actionError":"無法套用工作動作。","work.warRoom.loadError":"讀取工作儀表板失敗","work.warRoom.loadingBadge":"載入中","work.warRoom.loadingBody":"正在更新最新戰情室快照。","work.warRoom.loadingEyebrow":"載入中","work.warRoom.loadingSummary":"載入中","work.warRoom.loadingTitle":"載入工作狀態","work.warRoom.managedWorkEyebrow":"工作項目","work.warRoom.metaLabelActions":"待辦動作","work.warRoom.metaLabelActors":"參與者","work.warRoom.metaLabelApproval":"核准","work.warRoom.metaLabelBlocked":"已阻塞","work.warRoom.metaLabelConversation":"對話","work.warRoom.metaLabelDelivery":"交付","work.warRoom.metaLabelLatest":"最近","work.warRoom.metaLabelLatestSource":"最近來源","work.warRoom.metaLabelNext":"後續","work.warRoom.metaLabelOwner":"負責人","work.warRoom.metaLabelProduct":"產品","work.warRoom.metaLabelProject":"專案","work.warRoom.metaLabelReasons":"原因","work.warRoom.metaLabelReplay":"重放","work.warRoom.metaLabelRepo":"來源倉庫","work.warRoom.metaLabelRetryAvailable":"可重試","work.warRoom.metaLabelStrategy":"策略","work.warRoom.metaLabelTask":"任務","work.warRoom.metaLabelTasks":"任務","work.warRoom.metaLabelWatch":"觀察","work.warRoom.metaLabelWorkflow":"流程","work.warRoom.metaLabelWorkItem":"工作項目","work.warRoom.metaLabelWorkItems":"工作項目","work.warRoom.metaValueNo":"否","work.warRoom.metaValueNoReplayBlock":"沒有重放阻塞","work.warRoom.metaValueNoTimelineItem":"沒有時間軸項目","work.warRoom.metaValueNotBound":"未綁定","work.warRoom.metaValueNotRecorded":"未紀錄","work.warRoom.metaValueNotSpecified":"未指定","work.warRoom.metaValueUnassigned":"未指派","work.warRoom.metaValueNoRuntimeBridge":"未連接執行階段橋接","work.warRoom.metaValueNone":"無","work.warRoom.noLinkedConversation":"未關聯對話","work.warRoom.noLinkedProject":"未關聯專案","work.warRoom.noLinkedTask":"未關聯任務","work.warRoom.noLinkedWorkItem":"未關聯工作項目","work.warRoom.noPrimaryConversation":"未關聯主要對話","work.warRoom.noProjectSummary":"沒有專案摘要。","work.warRoom.noStatus":"無狀態","work.warRoom.noTaskSummary":"沒有任務摘要。","work.warRoom.noWorkItemSummary":"沒有工作項目摘要。","work.warRoom.none":"無","work.warRoom.notRecorded":"未紀錄","work.warRoom.openActor":"開啟 {actorName}","work.warRoom.openBriefingThread":"開啟簡報對話","work.warRoom.openProject":"開啟專案","work.warRoom.openTask":"開啟任務","work.warRoom.openWorkItem":"開啟工作項目","work.warRoom.operateEyebrow":"執行","work.warRoom.operatorInbox":"指揮台信箱","work.warRoom.operatorInboxEmptyBadge":"空","work.warRoom.operatorInboxEmptyBody":"目前沒有需要立即處理的指揮項目。","work.warRoom.operatorInboxEmptyTitle":"無待辦指揮項目","work.warRoom.pageEyebrow":"工作控制台","work.warRoom.pageTitle":"工作作戰室","work.warRoom.portfolioEyebrow":"組合","work.warRoom.projects":"專案","work.warRoom.projectsEmptyBadge":"空","work.warRoom.projectsEmptyBody":"目前沒有符合條件的專案。","work.warRoom.projectsEmptyTitle":"沒有找到專案","work.warRoom.recovery":"修復","work.warRoom.recoveryEmptyBadge":"健康","work.warRoom.recoveryEmptyBody":"目前不需要修復處理。","work.warRoom.recoveryEmptyTitle":"無修復項目","work.warRoom.recoveryEyebrow":"修復","work.warRoom.recoveryNoRecoveryNote":"未提供修復備註。","work.warRoom.snapshotEyebrow":"快照","work.warRoom.snapshotSummary":"負責人:{ownerActorId}","work.warRoom.snapshotTitle":"即時快照","work.warRoom.statusFallback":"狀態:{status}","work.warRoom.summaryAttention":"{count} 筆高關注項目","work.warRoom.summaryInProgressBlocked":"{inProgress} 筆進行中 · {blocked} 筆阻塞","work.warRoom.summaryLabelAttention":"關注","work.warRoom.summaryLabelProjects":"專案","work.warRoom.summaryLabelRecovery":"修復","work.warRoom.summaryLabelTasks":"任務","work.warRoom.summaryRecovery":"{count} 個修復機會","work.warRoom.workItems":"工作項目","work.warRoom.workItemsEmptyBadge":"空","work.warRoom.workItemsEmptyBody":"目前沒有符合條件的工作項目。","work.warRoom.workItemsEmptyTitle":"沒有找到工作項目","work.timeline.evidence.providerAgentRunLoop":"供應器代理人執行迴圈","work.timeline.evidence.supervision":"監督證據","work.timeline.title.approvalBinding":"核准綁定({kind})","work.timeline.title.approvalDecided":"核准已決定","work.timeline.title.approvalRequested":"已要求核准","work.timeline.title.artifactRecorded":"已紀錄成果物","work.timeline.title.checkpoint":"檢查點:{label}","work.timeline.title.checkpointRecorded":"已紀錄檢查點","work.timeline.title.evidence":"證據:{source}","work.timeline.title.note":"備註","work.timeline.title.operatorAction":"操作員動作","work.timeline.title.providerAgentPlan":"供應器代理人計畫:{planId}","work.timeline.title.statusChanged":"狀態已變更","work.timeline.title.trace":"追蹤({kind})","work.timeline.title.workItemUpdated":"工作項目已更新","work.execution.action.acknowledge":"確認已知悉","work.execution.action.approve":"核准","work.execution.action.complete":"完成","work.execution.action.createCommit":"建立提交","work.execution.action.dispatch":"派工","work.execution.action.openPullRequest":"開啟 Pull Request","work.execution.action.publishPreview":"發布預覽","work.execution.action.reject":"拒絕","work.execution.action.requestReview":"要求審查","work.execution.action.reroute":"改派路徑","work.execution.action.retry":"重試","work.execution.action.wait":"等待","work.execution.action.waitForChecks":"等待檢查","work.execution.approvalStatus.approved":"已核准","work.execution.approvalStatus.notRequested":"未要求核准","work.execution.approvalStatus.pending":"等待核准","work.execution.approvalStatus.rejected":"已拒絕","work.execution.deliveryMode.artifactOnly":"僅成果物","work.execution.deliveryMode.commitOnly":"僅提交","work.execution.deliveryMode.deployPreview":"部署預覽","work.execution.deliveryMode.prWithChecks":"含檢查的 Pull Request","work.execution.deliveryMode.pushBranch":"推送分支","work.execution.reason.approvalPending":"等待核准","work.execution.reason.childTasksInProgress":"子任務進行中","work.execution.reason.maxDispatches":"已達分派上限","work.execution.reason.noValidTargets":"沒有有效目標","work.execution.reason.retryAvailable":"可重試","work.execution.reason.runBlocked":"執行已阻塞","work.execution.reason.runFailed":"執行失敗","work.execution.reason.userCancelled":"使用者已取消","work.execution.reason.workflowReviewRequired":"需要工作流程審查","work.execution.replaySource.orchestratorReplay":"協調器重放","work.execution.replaySource.orchestratorStartupRecovery":"Orchestrator 啟動修復","work.execution.replaySource.workflowContinuationReplay":"工作流程延續重放","work.execution.replayState.failed":"失敗","work.execution.replayState.inProgress":"進行中","work.execution.replayState.pending":"等待中","work.execution.replayState.ready":"準備好","work.execution.strategy.pdca":"PDCA","work.execution.strategy.planAndExecute":"計畫後執行","work.execution.strategy.react":"ReAct","work.execution.strategy.reflexion":"Reflexion","work.newWorkItem.title":"新增工作項目","work.newWorkItem.titleLabel":"標題","work.newWorkItem.summaryLabel":"摘要","work.newWorkItem.projectLabel":"專案","work.newWorkItem.statusLabel":"狀態","work.newWorkItem.projectOrphan":"— 無專案關聯 —","work.newWorkItem.titlePlaceholder":"這個工作要交付什麼?","work.newWorkItem.summaryPlaceholder":"用一到兩句話定義範圍。","work.newWorkItem.cancelButton":"取消","work.newWorkItem.closeLabel":"關閉","work.newWorkItem.submitLabel":"建立工作項目","work.newWorkItem.submitBusyLabel":"建立中…","work.newWorkItem.createError":"建立工作項目失敗。","work.newWorkItem.status.draft":"草稿","work.newWorkItem.status.planned":"待排程","work.newWorkItem.status.ready":"準備好","work.newWorkItem.status.inProgress":"進行中","work.newWorkItem.status.blocked":"阻塞","work.newWorkItem.status.completed":"已完成","work.newWorkItem.status.cancelled":"已取消","work.newTask.title":"新增任務","work.newTask.titleLabel":"標題","work.newTask.summaryLabel":"摘要","work.newTask.parentTaskLabel":"上層任務","work.newTask.noParentTask":"— 無上層任務 —","work.newTask.statusLabel":"狀態","work.newTask.assigneeLabel":"執行者","work.newTask.assigneePlaceholder":"誰會接手?","work.newTask.priorityLabel":"優先順序","work.newTask.noPriority":"— 無優先順序 —","work.newTask.acceptanceCriteriaLabel":"驗收條件","work.newTask.acceptanceCriteriaPlaceholder":"如何判斷此任務已完成?","work.newTask.titlePlaceholder":"需要完成什麼具體行動?","work.newTask.summaryPlaceholder":"用一到兩句話說明範圍或背景。","work.newTask.cancelButton":"取消","work.newTask.closeLabel":"關閉","work.newTask.submitLabel":"建立任務","work.newTask.submittingLabel":"建立中…","work.newTask.createError":"建立任務失敗。","work.newTask.status.draft":"草稿","work.newTask.status.pendingApproval":"待核准","work.newTask.status.approved":"已核准","work.newTask.status.inProgress":"進行中","work.newTask.status.blocked":"阻塞","work.newTask.status.completed":"已完成","work.newTask.priority.urgent":"緊急","work.newTask.priority.high":"高","work.newTask.priority.medium":"中","work.newTask.priority.low":"低","work.newProject.title":"新增專案","work.newProject.titleLabel":"標題","work.newProject.summaryLabel":"摘要","work.newProject.statusLabel":"狀態","work.newProject.titlePlaceholder":"這是什麼專案?","work.newProject.summaryPlaceholder":"它為何存在?服務誰?","work.newProject.cancelButton":"取消","work.newProject.closeLabel":"關閉","work.newProject.submitLabel":"建立專案","work.newProject.submitBusyLabel":"建立中…","work.newProject.createError":"建立專案失敗。","work.crud.error.titleRequired":"標題為必填。","work.crud.error.invalidInput":"輸入內容無效。","work.crud.error.projectIdRequired":"專案 id 為必填。","work.crud.error.workItemIdRequired":"工作項目 id 為必填。","work.crud.error.taskIdRequired":"任務 id 為必填。","work.crud.error.projectNotFound":"找不到 id 為 {id} 的專案。","work.crud.error.workItemNotFound":"找不到 id 為 {id} 的工作項目。","work.crud.error.taskNotFound":"找不到 id 為 {id} 的任務。","work.crud.error.mustBeStringWhenProvided":"提供時,值必須是字串。","work.crud.error.metadataObjectRequired":"提供 metadata 時,必須是物件。","work.crud.error.fieldStringOrNull":"欄位 {fieldName} 必須是字串或 null。","work.crud.error.fieldStringArray":"欄位 {fieldName} 必須是字串陣列。","work.crud.error.mustBeOneOf":"值必須是以下其中一個:{values}。","work.item.loadingTitle":"載入工作項目","work.item.relatedWorkItemTitle":"關聯工作項目","chat.newChatDraft.sidePanelTitle":"新增聊天室設定","chat.newChatDraft.generatedTitle":"新增對話","chat.newChatDraft.generatedTitleWithIndex":"新增對話 {index}","chat.composer.error.chooseTwoParallelChats":"送出前請至少選擇兩個平行聊天室。","chat.composer.error.noActiveParallelThread":"已建立平行聊天室,但沒有作用中的討論串。","chat.composer.error.noParallelChatForSending":"目前沒有可送出訊息的平行聊天室。","chat.composer.error.noChatForSending":"目前沒有可送出訊息的聊天室。","chat.composer.error.relayFailedForChannel":"轉送到 {channelId} 失敗。","chat.composer.error.relayCompareFailed":"轉送比較訊息失敗。","chat.parallelRelay.command.check.label":"檢查這則","chat.parallelRelay.command.check.shortLabel":"檢查","chat.parallelRelay.command.check.description":"針對另一則回覆壓力測試缺口、風險與錯誤假設。","chat.parallelRelay.command.adopt.label":"採用這則","chat.parallelRelay.command.adopt.shortLabel":"採用","chat.parallelRelay.command.adopt.description":"以另一則回覆作為新的工作方向並加以改善。","chat.parallelRelay.command.debate.label":"辯論這則","chat.parallelRelay.command.debate.shortLabel":"辯論","chat.parallelRelay.command.debate.description":"針對另一則回覆採取最強的合理反方立場。","chat.parallelRelay.command.improve.label":"改善這則","chat.parallelRelay.command.improve.shortLabel":"改善","chat.parallelRelay.command.improve.description":"潤飾、擴充或強化另一則回覆。","chat.parallelRelay.command.counter.label":"反駁這則","chat.parallelRelay.command.counter.shortLabel":"反駁","chat.parallelRelay.command.counter.description":"提出有力反駁或替代作法。","chat.parallelRelay.command.synthesize.label":"綜合這則","chat.parallelRelay.command.synthesize.shortLabel":"綜合","chat.parallelRelay.command.synthesize.description":"結合這則與自己的分析,看出一致與分歧之處。","chat.parallelRelay.target.noChats":"沒有聊天室","chat.parallelRelay.target.pair":"{first} 和 {second}","chat.parallelRelay.target.many":"{allButLast} 和 {last}","chat.parallelRelay.note.outgoing":"已透過「{commandLabel}」將回覆 #{replyId} 分享給 {targets}。","chat.parallelRelay.note.incoming":"已收到 {sourceMemberLabel} 針對回覆 #{replyId} 傳來的「{commandLabel}」。","chat.parallelRelay.prompt.header":"[平行轉送 - {commandLabel}]","chat.parallelRelay.prompt.sourceHeader":"[要審閱的回覆]","chat.parallelRelay.prompt.sourceLabel":"來源:{sourceMemberLabel}","chat.parallelRelay.prompt.check.instructionOne":"審閱引用回覆的正確性、風險、盲點與未被支持的假設。","chat.parallelRelay.prompt.check.instructionTwo":"說明哪些部分可靠、哪些薄弱,以及你會如何修改。","chat.parallelRelay.prompt.adopt.instructionOne":"將引用的回覆視為新的草稿,從它繼續推進。","chat.parallelRelay.prompt.adopt.instructionTwo":"保留強項、修補弱點,並用你自己的說法回答。","chat.parallelRelay.prompt.debate.instructionOne":"針對引用的回覆採取最強的合理反方立場。","chat.parallelRelay.prompt.debate.instructionTwo":"挑戰假設、指出弱點,並說明你不同意的地方。","chat.parallelRelay.prompt.improve.instructionOne":"潤飾、擴充或強化引用的回覆。","chat.parallelRelay.prompt.improve.instructionTwo":"修補弱點、補足深度,產出更好的版本。","chat.parallelRelay.prompt.counter.instructionOne":"針對引用的回覆提出有力反駁或替代作法。","chat.parallelRelay.prompt.counter.instructionTwo":"從相反觀點出發,用具體推理提出論證。","chat.parallelRelay.prompt.synthesize.instructionOne":"根據目前對話,將引用的回覆與你自己的分析綜合起來。","chat.parallelRelay.prompt.synthesize.instructionTwo":"指出一致之處、分歧之處,以及整合後的觀點。","chat.composer.error.sendFailed":"送出訊息失敗。","chat.composer.error.retryFailed":"重試回應失敗。","chat.composer.error.stopFailed":"停止回應失敗。","chat.composer.error.activeChatNotInParallelGroup":"目前聊天不屬於這個平行聊天群組。","chat.composer.error.sourceChatNotInParallelGroup":"來源聊天不屬於這個平行聊天群組。","chat.composer.error.parallelBranchOutsideGroup":"一個或多個平行分支指向這個平行聊天群組以外的聊天。","chat.composer.error.noParallelRelayTargets":"請至少選擇一個平行聊天轉送目標。","chat.composer.error.messageNotFound":"找不到這則訊息。","chat.composer.error.retryInvalidSender":"只能重試你送出的訊息。","chat.composer.error.retryInProgress":"請等目前回應結束後再重試。","chat.composer.error.retryNotLatest":"只能重試最新一則已確認的訊息。","chat.composer.error.retryNotAvailable":"只有最新一則已確認且失敗的訊息可以重試。","chat.governance.error.updateApproval":"更新核准狀態失敗。","chat.governance.error.submitChoiceResponse":"送出選項回覆失敗。","chat.governance.error.recordOperatorAction":"記錄操作員動作失敗。","chat.participants.error.updateParticipant":"更新參與者失敗。","chat.participants.error.noFields":"請至少更新一個參與者欄位。","chat.participants.error.notFound":"在這個聊天室中找不到該參與者。","chat.participants.error.temporaryOnly":"只能在這裡重新命名臨時參與者。","chat.participants.error.nameRequired":"請輸入參與者名稱。","chat.catAssignment.createdAssignHint":"已建立貓。請開啟「選擇既有」來指派。","chat.catAssignment.error.createCat":"建立貓失敗。","chat.catAssignment.error.assignCat":"指派貓失敗。","chat.catAssignment.error.removeCat":"移除貓失敗。","chat.catAssignment.error.channelNotFound":"找不到這個聊天室。","chat.catAssignment.error.assignmentNotFound":"這隻貓咪尚未指派到選取的聊天室。","chat.catAssignment.error.directRecipientOnly":"直接對話只能保留該對話的主要貓咪。","chat.catAssignment.error.participantLimitReached":"這個聊天室已達參與者上限(最多 {maxParticipants} 位)。","chat.companion.tab.status":"狀態","chat.companion.tab.sources":"來源","chat.companion.tab.memory":"記憶","chat.companion.tab.behavior":"行為","chat.companion.tab.inspector":"檢視器","chat.companion.workspace.loadError":"載入陪伴者資料失敗","shared.executionTarget.saveNewChatDefaultsError":"儲存新增聊天室模型預設值失敗。","shared.executionTarget.saveChatReplySettingsError":"儲存這個聊天室的 AI 回覆設定失敗。","shared.channelContinuity.startFreshError":"開始新的聊天連續性分支失敗。","shared.settingsCatsMemory.saveError":"儲存記憶失敗。","shared.settingsCatsMemory.deleteError":"刪除記憶失敗。","shared.settingsCatsMemory.contentRequired":"請輸入記憶內容。","shared.settingsCatsMemory.invalidCategory":"記憶分類無效。","shared.settingsCatsMemory.notFound":"找不到這筆記憶。","shared.operatorLoop.loadError":"載入操作員迴圈失敗。","shared.folderBrowser.loadError":"載入資料夾失敗。","shared.orchestrator.fallbackName":"調度者","shared.draftHeader.changeCoverPhoto":"更換封面照片","shared.draftHeader.addCoverPhoto":"新增封面照片","shared.draftHeader.changeAvatar":"更換頭像","shared.draftHeader.addAvatar":"新增頭像","chat.participantChip.countOne":"{count} 位參與者","chat.participantChip.countMany":"{count} 位參與者","chat.participantChip.default":"參與者","chat.draftParticipant.capability.strongAgent":"強代理","chat.draftParticipant.capability.conservativeAgent":"保守代理","chat.draftParticipant.reviewReason.broadWrite":"廣泛寫入工具授權","chat.draftParticipant.reviewReason.outcomeDelegation":"結果委派","chat.draftParticipant.reviewReason.highApproval":"高核准門檻","chat.draftParticipant.autonomy.none":"無自主性","chat.draftParticipant.autonomy.singleStep":"單步執行","chat.draftParticipant.autonomy.milestonePlan":"里程碑規劃","chat.draftParticipant.autonomy.outcomeDelegation":"結果委派","chat.draftParticipant.toolScope.none":"無工具","chat.draftParticipant.toolScope.readOnly":"唯讀","chat.draftParticipant.toolScope.narrowWrite":"有限寫入","chat.draftParticipant.toolScope.broadWrite":"廣泛寫入","chat.draftParticipant.approvalThreshold.low":"低","chat.draftParticipant.approvalThreshold.medium":"中","chat.draftParticipant.approvalThreshold.high":"高","chat.draftParticipant.policySummary":"{autonomy};{approvalThreshold}核准門檻","chat.draftParticipant.toolGrantSummary":"{toolScope}工具","chat.sidebar.primaryAction.newChat":"新增聊天","chat.sidebar.primaryAction.groupChat":"新增群組聊天","chat.sidebar.primaryAction.parallelChat":"新增平行聊天","chat.sidebar.myCatsEmptyStateLabel":"新增貓咪","chat.concurrentCluster.dismissActionLabel":"關閉","chat.concurrentCluster.dismissActionTitle":"關閉佈局","chat.concurrent.toolLabel":"工具","chat.concurrent.progress.finalizing":"正在完成…","chat.concurrent.progress.finishing":"即將完成…","chat.concurrent.error.runtimeStreamUnavailable":"執行階段串流無法使用","chat.concurrent.error.proxy":"代理串流發生錯誤","chat.concurrent.copyLabeledResponseLabel":"複製來自 {speakerName} 的訊息","chat.concurrent.copyUnnamedResponseLabel":"複製未命名回應","chat.focusRail.unnamedResponseLabel":"未命名回應","chat.focusRail.expandAnonymousResponseLabel":"展開未命名回應","chat.focusRail.collapseAnonymousResponseLabel":"收合未命名回應","chat.focusRail.expandLabeledResponseLabel":"展開來自 {speakerName} 的回應","chat.focusRail.collapseLabeledResponseLabel":"收合來自 {speakerName} 的回應","chat.activityFeed.eyebrow":"活動","chat.activityFeed.latestUpdatesTitle":"最新更新","chat.activityFeed.emptyState":"聊天室有活動時,會在此顯示。","chat.activityFeed.byActorLabel":"由 {actorName}","chat.messageChoices.customButton":"自訂","chat.messageChoices.customPlaceholder":"輸入自訂答案","chat.messageChoices.ownerSkippedState":"擁有者已略過這些選項。","chat.messageChoices.ownerRecordedState":"已記錄擁有者回應。","chat.messageChoices.confirmButton":"確認","chat.messageChoices.skipButton":"略過","chat.parallelFooter.navigationAriaLabel":"平行聊天導覽","chat.parallelFooter.prevAriaLabel":"前一個平行聊天室","chat.parallelFooter.nextAriaLabel":"下一個平行聊天室","chat.parallelFooter.tabsAriaLabel":"平行聊天室","chat.parallelFooter.threadLabel":"討論串 {threadIndex}","chat.parallelFooter.defaultModelLabel":"模型","chat.compareCards.prevCardAriaLabel":"上一張卡片","chat.compareCards.nextCardAriaLabel":"下一張卡片","chat.compareCards.paginationItemAriaLabel":"第 {cardIndex} 張卡片","chat.topBar.toggleSidePanelAriaLabel":"切換側邊欄","chat.boot.loadingAria":"正在載入 Cats Chat","chat.newChatDraft.participants.catsTitle":"貓咪","chat.newChatDraft.participants.groupTitle":"參與者","chat.newChatDraft.participants.emptyState":"尚未有可用的貓咪。","chat.newChatDraft.execution.title":"AI 回覆","chat.newChatDraft.execution.actionLabel":"選擇 AI 回覆","chat.newChatDraft.execution.emptyState":"尚未設定 AI 回覆。","chat.newChatDraft.planMyDayChipLabel":"規劃今天","chat.newChatDraft.planMyDayPrompt":"幫我規劃今天的優先事項。","chat.newChatDraft.brainstormNameChipLabel":"想個名字","chat.newChatDraft.brainstormNamePrompt":"幫我發想一個新側案的名稱選項。","chat.newChatDraft.summarizeLinkChipLabel":"摘要一個連結","chat.newChatDraft.summarizeLinkPrompt":"幫我摘要等下貼上來的連結重點。","chat.newChatDraft.pomodoroChipLabel":"做一個番茄鐘","chat.newChatDraft.pomodoroPrompt":"幫我寫一個簡單的番茄鐘應用程式。","chat.newChatDraft.startProjectChipLabel":"開個專案","chat.newChatDraft.startProjectPrompt":"開一個小專案來追蹤里程碑。","chat.newChatDraft.chooseCodespaceActionLabel":"選擇程式工作區","chat.newChatDraft.folder.title":"資料夾","chat.newChatDraft.folder.emptyState":"尚未選擇資料夾。","chat.newChatDraft.defaultGreeting":"準備好了就開始吧。","chat.newChatDraft.greeting.nap":"還沒休息,現在可以開始。","chat.newChatDraft.greeting.keyboard":"鍵盤已就位。","chat.newChatDraft.greeting.letsGo":"準備出發。","chat.newChatDraft.greeting.standby":"待命中。","chat.newChatDraft.greeting.taskReady":"任務是什麼?","chat.newChatDraft.greeting.onDuty":"保持在線,準備接手。","chat.sidePanel.temporaryParticipantLabel":"臨時","chat.sidePanel.roleLabel":"角色","chat.sidePanel.aiServiceLabel":"AI 服務","chat.sidePanel.connectionLabel":"連線","chat.sidePanel.startFresh":"重新開始","chat.sidePanel.startingFreshBusy":"重新開始中…","chat.sidePanel.startFreshHint":"保留此聊天室開啟,但重置單人連續對話,讓下一回合從新分支開始。","chat.sidePanel.runStatusTitle":"執行狀態","chat.sidePanel.runStatusUnavailableTitle":"狀態無法取得","chat.sidePanel.loadingTitle":"載入中","chat.sidePanel.operatorLoadingState":"正在載入審批、活動與執行詳情。","chat.approvalQueue.eyebrow":"待審核","chat.approvalQueue.pendingTitle":"待審核項目","chat.approvalQueue.emptyState":"房間可持續運行,直到計劃需要擁有者做出決策。","chat.approvalQueue.defaultRequester":"調度者","chat.approvalQueue.defaultSummary":"請先審核此派發,才能繼續下一步。","chat.approvalQueue.requestedByPrefix":"由 {requestedBy} 提出","chat.catStatus.compact.activeLabel":"運作中","chat.catStatus.compact.needAttentionLabel":"需要注意","chat.catStatus.compact.sleepingLabel":"睡眠中","chat.catStatus.activeLabel":"運作中","chat.catStatus.blockedLabel":"受阻","chat.catStatus.waitingForReviewLabel":"等待審核","chat.catStatus.errorLabel":"錯誤","chat.catStatus.wakingUpLabel":"喚醒中","chat.catStatus.sleepingLabel":"睡眠中","chat.catStatus.idleLabel":"閒置","chat.lifecycle.awakeLabel":"醒著","chat.lifecycle.wakingUpLabel":"喚醒中","chat.lifecycle.needsAttentionLabel":"需要注意","chat.lifecycle.sleepingLabel":"睡眠中","chat.companionWorkspace.retryLabel":"重試","chat.companionWorkspace.noSelectionState":"尚未選取。","chat.companionWorkspace.subscriptionDisabledTooltip":"目前尚未開放 Companion 訂閱。","chat.companionWorkspace.subscriptionLabel":"訂閱","chat.companionWorkspace.shareDisabledTooltip":"先選一則貼文、圖片、影片、音樂或檔案後才能分享。","chat.companionWorkspace.shareLabel":"分享","chat.companionWorkspace.sidePanelTitle":"陪伴者","chat.companionFeedTabPosts":"貼文","chat.companionFeedTabPhotos":"圖片","chat.companionFeedTabVideos":"影片","chat.companionFeedTabMusic":"音樂","chat.companionFeedTabFiles":"檔案","chat.companionFeedTabActivity":"動態","chat.companionFeedNavAriaLabel":"陪伴者動態","chat.companionFeedPostEmptyState":"{catName} 尚未發佈任何貼文。","chat.companionFeedMediaEmptyState":"尚無{type}。","chat.companionFeedMediaItemDefaultLabel":"媒體","chat.companionFeedMediaItemsLabel":"{count} 個{surface}","chat.companionFeedSurfacePhotoLabel":"圖片","chat.companionFeedSurfaceVideoLabel":"影片","chat.companionFeedSurfaceMusicLabel":"音樂","chat.companionFeedSurfaceFileLabel":"檔案","chat.companionFeedActivityEmptyState":"最近還沒有活動。","chat.companionFeedActivityHiddenState":"較早的活動已隱藏。","chat.companionMessageReferenceListAria":"陪伴者內容參考","chat.companionMessageReferenceUnsupportedVersionLabel":"不支援的參考版本","chat.companionMessageReferenceMalformedLabel":"參考格式錯誤","chat.companionMessageReference.invalidWrongScheme":"參考必須使用 cats://。","chat.companionMessageReference.invalidWrongHost":"參考必須指向 companion。","chat.companionMessageReference.invalidMalformedPercentEncoding":"參考包含錯誤的百分比編碼。","chat.companionMessageReference.invalidBadSegmentCount":"參考路徑段數不正確。","chat.companionMessageReference.invalidEmptyPathSegment":"參考包含空白路徑段。","chat.companionMessageReference.invalidUnknownTargetType":"參考目標類型未知。","chat.companionMessageReferenceLoadingLabel":"正在載入參考預覽","chat.companionMessageReferenceUnavailableLabel":"無法取得參考內容","chat.companionMessageReferenceOpenInCompanionAction":"在陪伴者中開啟","chat.companionModeToggleDirectLaneAriaLabel":"直接對話模式","chat.companionModeToggleChatViewAriaLabel":"聊天視角","chat.companionModeToggleCompanionViewAriaLabel":"陪伴者視角","chat.companionResourcesLoadingState":"載入中…","chat.companionResourcesSectionTitle":"資源","chat.companionResourcesActionShowForm":"新增","chat.companionResourcesActionCancel":"取消","chat.companionResourcesActionAddResource":"新增資源","chat.companionResourcesActionBusy":"新增中…","chat.companionResourcesFormTitlePlaceholder":"標題","chat.companionResourcesFormNotePlaceholder":"備註(選填)","chat.companionResourcesFormContentPlaceholder":"內容","chat.companionResourcesEmptyState":"目前尚未新增任何資源,可加入對陪伴者有幫助的素材。","chat.companionResourcesSourceKindNote":"筆記","chat.companionResourcesSourceKindConversationLog":"記錄","chat.companionResourcesSourceKindArticle":"文章","chat.companionResourcesSourceKindImage":"圖片","chat.companionResourcesSourceKindVideo":"影片","chat.companionResourcesSourceKindAudio":"音訊","chat.companionResourcesSourceKindPath":"檔案路徑","chat.companionResourcesSourceKindUnknown":"未知","chat.companionResourcesUntitledSource":"未命名","chat.companionResourcesActionRemove":"移除","chat.companionSettingsLoadingState":"載入中…","chat.companionSettingsResponseProfileTitle":"回應設定","chat.companionSettingsExpressionModeLabel":"表情模式","chat.companionSettingsExpressionModeAnimalistic":"擬真動作","chat.companionSettingsExpressionModeAnthropomorphic":"擬人化","chat.companionSettingsExpressionModeMixed":"混合","chat.companionSettingsOutputModeLabel":"輸出模式","chat.companionSettingsOutputModeText":"文字","chat.companionSettingsOutputModeAudioClip":"音訊片段","chat.companionSettingsOutputModeTts":"TTS","chat.companionSettingsOutputModeMixed":"混合","chat.companionSettingsResponseNotesLabel":"回應備註","chat.companionSettingsResponseNotesPlaceholder":"定義你想讓陪伴者如何回應的自訂指令…","chat.companionSettingsResponseNotesSave":"儲存備註","chat.companionSettingsResponseNotesSaving":"儲存中…","chat.companionSettingsTelegramBindingTitle":"Telegram 綁定","chat.companionSettingsTelegramBindingBotLabel":"機器人:","chat.companionSettingsTelegramBindingModeLabel":"模式:","chat.companionSettingsTelegramBindingConnected":"已連線","chat.companionSettingsTelegramBindingDefaultMode":"預設","chat.companionSettingsTelegramBindingManageHint":"請到","chat.companionSettingsTelegramBindingSettingsLabel":"設定 > 我的貓咪","chat.companionSettingsTelegramBindingSuffix":"內進行管理。","chat.companionSettingsNoTelegramBindingState":"尚未設定 Telegram 綁定,請到","chat.companionOverviewLoadingState":"載入中…","chat.companionOverviewPresenceTitle":"狀態","chat.companionOverviewPresenceWakeButton":"喚醒","chat.companionOverviewPresenceSleepButton":"關閉","chat.companionOverviewSummaryTitle":"摘要","chat.companionOverviewSummaryResourceLabel":"資源","chat.companionOverviewSummaryCreationLabel":"創作","chat.companionOverviewSummaryMemoryLabel":"記憶","chat.companionOverviewRecentMemoriesTitle":"最近記憶","chat.companionOverviewEmptyState":"尚無最近記錄。","chat.companionMemoryLoadingState":"載入中…","chat.companionMemorySectionTitle":"記憶","chat.companionMemoryActionAdd":"新增","chat.companionMemoryActionCancel":"取消","chat.companionMemoryFormPlaceholder":"你希望陪伴者記住什麼?","chat.companionMemoryActionBusy":"新增中…","chat.companionMemoryActionAddSubmit":"新增記憶","chat.companionMemoryFilterAll":"全部","chat.companionMemoryCategoryIdentity":"身份","chat.companionMemoryCategoryPreference":"偏好","chat.companionMemoryCategoryRelationship":"關係","chat.companionMemoryCategoryFact":"事實","chat.companionMemoryCategoryEvent":"事件","chat.companionMemoryCategoryOwnerNote":"管理者備註","chat.companionMemoryEmptyState":"目前還沒有記憶。你的陪伴者會從對話與資源中學習。","chat.companionMemoryEmptyFilterState":"目前沒有符合篩選條件的記憶。","chat.companionMemoryActionRemove":"移除","chat.companionMessageReferenceAvailabilityLivePreview":"即時預覽","chat.companionMessageReferenceAvailabilityMissing":"缺少","chat.companionMessageReferenceAvailabilityDeleted":"已刪除","chat.companionMessageReferenceAvailabilityInaccessible":"目前工作區不可存取","chat.companionMessageReferenceMissingFallbackTitle":"陪伴者內容無法取得","chat.companionMessageReferenceDeletedFallbackTitle":"陪伴者內容已刪除","chat.companionMessageReferenceInaccessibleFallbackTitle":"陪伴者內容來自其他工作區","chat.companionMessageReferenceInaccessibleFallbackDescription":"此陪伴者內容位於不同的平台主機範圍,無法在此開啟。","chat.companionMessageReferenceUnknownCompanionLabel":"陪伴者","chat.companionMessageReferenceUntitledPostTitle":"未命名貼文","chat.companionMessageReferenceUntitledSourceTitle":"未命名陪伴者來源","chat.newChatDraft.composerPlaceholder":"我可以怎麼幫你?","chat.newChatDraft.folderActionLabel":"選擇資料夾","chat.newChatDraft.groupDraftSelectionLabelSingle":"目前已選 1 位參與者,請再新增或準備好後開始發送。","chat.newChatDraft.groupDraftSelectionLabelCount":"目前已選 {count} 位參與者。","chat.newChatDraft.groupDraftSelectionLabelWithCatsOrAssistants":"選擇貓咪、重複使用已儲存的助理,或新增臨時參與者到此群組聊天室。","chat.newChatDraft.groupDraftSelectionLabelWithSettings":"請先在這裡新增臨時參與者,或先至設定建立貓咪與助理後再開始群組聊天。","chat.newChatDraft.assistantPresetAdd":"加入","chat.newChatDraft.assistantPresetReview":"查看","chat.newChatDraft.assistantPresetAdded":"已加入","chat.newChatDraft.temporaryParticipantCancel":"取消","chat.newChatDraft.temporaryParticipantNameLabel":"名稱","chat.newChatDraft.temporaryParticipantNamePlaceholder":"參與者名稱","chat.newChatDraft.temporaryParticipantNameHint":"參與者名稱將從 provider 自動帶入,新增後可再次修改。","chat.newChatDraft.temporaryParticipantSaveName":"儲存名稱","chat.newChatDraft.temporaryParticipantRename":"重新命名","chat.newChatDraft.temporaryParticipantRemove":"移除","chat.newChatDraft.temporaryParticipantRoleHintLabel":"角色提示","chat.newChatDraft.temporaryParticipantRoleHintPlaceholder":"選填:一行式角色描述","chat.newChatDraft.temporaryParticipantSubmit":"加入參與者","chat.newChatDraft.temporaryParticipantOpenForm":"新增臨時參與者","chat.newChatDraft.branchPolicyWorkspaceWorktree":"工作區分支","chat.newChatDraft.branchPolicyWorkspaceSource":"當前資料夾","chat.newChatDraft.branchPolicyWorkspaceSandbox":"沙盒","chat.newChatDraft.branchPolicyAccessReadOnly":"唯讀","chat.newChatDraft.branchPolicyAccessFull":"完全存取","chat.newChatDraft.branchPolicyRelinkAria":"重連到主流程工作階段策略","chat.newChatDraft.branchPolicyDetachAria":"分離分支工作階段策略","chat.newChatDraft.branchPolicyFollowsLeadLabel":"與主流程工作階段策略同步","chat.newChatDraft.branchFolderRelinkAria":"重連分支資料夾到主流程","chat.newChatDraft.branchFolderChooseAria":"選擇分支資料夾","chat.newChatDraft.branchFollowsLeadLabel":"與主流程同步","chat.newChatDraft.branchPromptJumpToLeadTitle":"點擊回到主分支編輯","chat.newChatDraft.branchPromptJumpToLeadAria":"跳到主分支編輯提示詞","chat.newChatDraft.branchAttachAria":"附加","chat.newChatDraft.branchCollaborateAria":"新增另一個模型共同推理","chat.newChatDraft.branchRemoveAria":"移除第 {branchIndex} 分支","chat.newChatDraft.branchAddParallelAria":"新增平行聊天室","chat.newChatDraft.branchAddCompareHint":"新增另一個模型來比較","chat.newChatDraft.branchAttachmentOverrideError":"第 {branchIndex} 分支:附件尚未支援逐分支設定;請移除覆寫。","chat.newChatDraft.collaborateAria":"新增另一個模型共同推理","chat.newChatDraft.collaborateHint":"新增另一個模型共同推理","chat.newChatDraft.removeFolderAria":"移除資料夾","chat.newChatDraft.attachmentRemoveAria":"移除 {fileName}","chat.newChatDraft.addPhotosAndFiles":"新增照片和檔案","chat.newChatDraft.takeScreenshot":"拍攝畫面截圖","shared.screenshotCapture.tooltipDesktopRegion":"擷取螢幕區域","shared.screenshotCapture.tooltipWebPicker":"擷取螢幕、視窗或分頁","shared.screenshotCapture.tooltipUnavailable":"此環境無法使用螢幕擷取","shared.screenshotCapture.permissionRequired":"需要螢幕錄製權限才能擷取截圖。請在 macOS「系統設定」授予 Cats 螢幕存取權,然後重新啟動 Cats。","shared.screenshotCapture.permissionStatusUnknown":"螢幕錄製權限狀態未知:{status}","shared.screenshotCapture.failed":"擷取截圖失敗。","shared.screenshotCapture.frameLoadFailed":"讀取擷取畫面失敗。","shared.screenshotCapture.frameEmpty":"擷取畫面是空的。","shared.screenshotCapture.canvasPrepareFailed":"無法準備截圖畫布。","shared.screenshotCapture.encodeFailed":"無法編碼截圖。","shared.screenshotCapture.downscaleFailed":"無法縮小截圖。","shared.screenshotCapture.displayUnavailable":"截圖失敗:選取的顯示器已無法使用。","shared.screenshotCapture.regionUnsupported":"此桌面環境無法使用區域截圖。","shared.screenshotCapture.noDisplays":"沒有可用於截圖的顯示器。","shared.screenshotCapture.wlrootsSessionUnsupported":"目前工作階段無法使用原生 wlroots 截圖。","shared.screenshotCapture.wlrootsToolsRequired":"原生 wlroots 截圖需要 grim 和 slurp。","shared.screenshotCapture.wlrootsSelectionParseFailed":"無法解析 wlroots 截圖選取範圍。","shared.artifactCanvas.title":"Artifact Canvas","shared.artifactCanvas.loading":"正在載入 Artifact Canvas…","shared.artifactCanvas.loadFailed":"無法載入 Artifact Canvas。","shared.artifactCanvas.invalidRoute":"Artifact Canvas 路由缺少成品 ID。","shared.artifactCanvas.close":"關閉","shared.artifactCanvas.collapse":"收合","shared.artifactCanvas.expand":"展開","shared.artifactCanvas.refresh":"重新整理","shared.artifactCanvas.openExternal":"外部開啟","shared.artifactCanvas.resizePane":"調整 Artifact Canvas 窗格寬度","shared.artifactCanvas.unsupportedTitle":"目前無法內嵌顯示","shared.artifactCanvas.unsupportedBody":"此成品尚未提供安全的內嵌呈現。","shared.artifactCanvas.policyVersion":"Policy version","chat.newChatDraft.cancelSendAria":"取消發送","chat.newChatDraft.sendAria":"送出","chat.newChatDraft.sendAllChatsAria":"送出給全部聊天室","chat.newChatDraft.startVoiceInputAria":"開始語音輸入","chat.newChatDraft.stopVoiceInputAria":"停止語音輸入{privacyMessageSuffix}","chat.audience.removeParticipantAria":"移除 {name}","chat.audience.removeParticipantFromAudienceAria":"從受眾移除 {name}","shared.voiceInput.error.notAllowed":"麥克風存取遭拒。請檢查系統與瀏覽器權限。","shared.voiceInput.error.serviceNotAllowed":"此環境無法使用語音輸入。","shared.voiceInput.error.audioCapture":"未偵測到麥克風。","shared.voiceInput.error.network":"語音輸入無法連線到辨識服務。","shared.voiceInput.error.languageNotSupported":"語音輸入不支援目前語言。","shared.voiceInput.error.permissionDenied":"麥克風存取遭拒。請檢查系統語音權限。","shared.voiceInput.error.permissionNotDetermined":"語音輸入需要系統麥克風與語音權限。","shared.voiceInput.error.micUnavailable":"未偵測到麥克風。","shared.voiceInput.error.engineUnavailable":"此裝置無法使用語音輸入。","shared.voiceInput.error.helperCrashed":"語音輸入意外停止。","shared.voiceInput.failedWithKind":"語音輸入失敗({kind})。","shared.voiceInput.privacyUnknown":"語音輸入可能依 Windows 隱私設定使用 Microsoft 線上語音服務。","shared.voiceInput.privacyCloud":"語音輸入正在使用線上語音服務。","chat.draftCompareCarousel.ariaLabel":"比較分支輪播","chat.draftCompareCarousel.previousBranchAria":"上一個分支","chat.draftCompareCarousel.nextBranchAria":"下一個分支","chat.draftCompareCarousel.selectBranchAria":"選擇分支","chat.draftCompareCarousel.goToBranchAria":"前往第 {branchIndex} 分支","chat.composerArea.attachAria":"附加檔案","chat.composerArea.placeholderParallelWaiting":"等待其他平行回覆…","chat.composerArea.placeholderReply":"回覆…","chat.composerArea.scrollToLatestAria":"捲動到最新","chat.composerArea.stopButtonLabel":"停止","chat.composerArea.switchSendModeLabel":"切換傳送模式","chat.composerArea.sendToThisChatAria":"傳送到目前聊天室","chat.activityEyebrow":"活動","chat.activityLatestUpdatesHeading":"最新更新","chat.activityEmptyState":"當聊天室開始運作時,活動將會顯示在這裡。","chat.activityByActor":"由 {actorName}","chat.participantsSectionNameLabel":"參與者名稱","chat.participantsSectionSaveNameButton":"儲存名稱","chat.participantsSectionCancelButton":"取消","chat.participantsSectionRenameButton":"重新命名","chat.participantsSectionNoParticipants":"聊天室裡目前沒有參與者。","chat.participantsSectionChooseCatsButton":"選擇貓","chat.transcriptMessageCheckWithOthersLabel":"與其他人討論","chat.transcriptMessageSynthesizeWithOthersLabel":"與其他人綜合","chat.transcriptMessageImproveWithOthersLabel":"與其他人改進","chat.transcriptMessageAdoptWithOthersLabel":"與其他人採用","chat.transcriptMessageCounterWithOthersLabel":"與其他人反駁","chat.transcriptMessageDebateWithOthersLabel":"與其他人辯論","chat.transcriptMessageCopyLabel":"複製訊息","chat.transcriptMessageRetryResponseLabel":"重試回覆","chat.transcriptMessageRelayToOthersLabel":"轉發給其他人","chat.transcriptMessageFailedStatusLabel":"回覆失敗","chat.productIntent.ack.unsupportedDirectAudience":"產品模式指令在此 MVP 需要剛好一隻直接對話的 Cat。","chat.productIntent.ack.unsupportedContext":"產品模式指令在此 MVP 只支援直接訊息。","chat.productIntent.ack.chatActive":"Chat 模式已啟用。","chat.productIntent.ack.workHumanGate":"Work 模式已啟用。我可以先在這裡協助釐清,但需要人類在 Work 建立或確認 Work Item,或改切換到能承接耐久工作的 Cat。","chat.productIntent.ack.workStrongAnchor":"Work 模式已啟用。已建立用於釐清的 Work Item 草稿錨點。","chat.productIntent.ack.workClarify":"Work 模式已啟用。我會先釐清工作再建立項目。","chat.productIntent.ack.codeHumanGate":"Code 模式已啟用。我可以先在這裡協助釐清,但需要人類在 Work 建立或確認 Work Item,才能開始 Code 執行。","chat.productIntent.ack.codeStrongAnchor":"Code 模式已啟用。已建立以 Code 為目標的 Work Item 草稿錨點。","chat.productIntent.ack.codeClarify":"Code 模式已啟用。我會先釐清程式工作再建立項目。","chat.productIntent.humanGate.draftSummaryFallback":"先釐清這個 {targetProduct} 請求,再建立工作。","chat.productIntent.humanGate.continueClarifying":"在這個直接對話中繼續釐清","chat.productIntent.humanGate.openWorkItems":"在 Work 建立或確認 Work Item","chat.productIntent.humanGate.switchCat":"切換到能承接耐久工作的 Cat","chat.productIntent.humanGate.question":"選擇這次工作 intake 的下一步。","chat.productIntent.draft.title.work":"直接 Work intake","chat.productIntent.draft.title.code":"直接 Code intake","chat.productIntent.draft.summary":"從直接對話建立的 {targetProduct} intake 草稿,用於釐清需求。","chat.productIntent.draft.goalFallback":"釐清直接對話中的這個 {targetProduct} 請求。","chat.productIntent.draft.successCriteria":"與 owner 釐清可衡量的成功條件。","chat.productIntent.draft.outOfScope":"尚未確認,需等 owner 與 Cat 完成釐清。","chat.productIntent.draft.openQuestion":"這項工作要產生什麼成果?","chat.implicitProductIntent.suggestion.work":"這看起來像 Work。確認後 Cats 才會建立耐久工作。","chat.implicitProductIntent.suggestion.code":"這看起來像 Code。確認後 Cats 才會建立耐久程式工作。","chat.implicitProductIntent.question":"要把這則訊息轉成 {targetProduct} intake 嗎?","chat.implicitProductIntent.confirm.work":"轉成 Work","chat.implicitProductIntent.confirm.code":"轉成 Code","chat.implicitProductIntent.decline":"保留為 chat","chat.implicitProductIntent.confirmed.work":"已確認 Work intake。","chat.implicitProductIntent.confirmed.code":"已確認 Code intake。","chat.implicitProductIntent.declined":"已保留為 chat。","chat.implicitProductIntent.expired":"建議已過期。","shared.addCatPanelTitle":"新增貓到聊天室","shared.addCatPanelClose":"關閉","shared.addCatPanelChooseExisting":"選擇既有","shared.addCatPanelCreateNew":"建立新貓","shared.addCatPanelAdding":"加入中…","shared.addCatPanelRemoving":"移除中…","shared.addCatPanelRemove":"移除","shared.addCatPanelAdd":"加入","shared.addCatPanelNoOtherCats":"目前沒有其他貓,請先建立一隻。","shared.addCatPanelAllCatsInChat":"所有貓都已加入此聊天室。","shared.addCatPanelNameLabel":"名稱","shared.addCatPanelNamePlaceholder":"貓咪名稱","shared.addCatPanelSaving":"儲存中…","shared.addCatPanelCreateAndAdd":"建立並加入","shared.addCatPanelCreateAndAddToChat":"建立並加入聊天室","shared.audience.popoverHeader":"觀眾","shared.audience.selectAudienceLabel":"選擇參與者","shared.audience.workflowSequential":"順序","shared.audience.workflowConcurrent":"同時","shared.audience.switchToSequentialModeLabel":"切換到順序模式","shared.audience.switchToConcurrentModeLabel":"切換到同時模式","shared.workspaceMode.currentLabel":"目前資料夾","shared.workspaceMode.worktreeLabel":"獨立工作區","shared.workspaceMode.currentTooltip":"直接修改所選資料夾中的檔案。","shared.workspaceMode.worktreeTooltip":"為此儲存庫建立平行的工作目錄。需要 Git 儲存庫。","shared.telegramConnectDialog.title":"連線 Telegram","shared.telegramConnectDialog.botUsernameLabel":"機器人使用者名稱","shared.telegramConnectDialog.botUsernamePlaceholder":"my_cat_bot","shared.telegramConnectDialog.botTokenLabel":"機器人權杖","shared.telegramConnectDialog.botTokenPlaceholder":"從 @BotFather 取得","shared.telegramConnectDialog.modeLabel":"模式","shared.telegramConnectDialog.modePolling":"輪詢","shared.telegramConnectDialog.modeWebhook":"Webhook","shared.telegramConnectDialog.webhookSecretLabel":"Webhook 密鑰","shared.telegramConnectDialog.webhookSecretPlaceholder":"選填","shared.telegramConnectDialog.cancel":"取消","shared.telegramConnectDialog.connecting":"連線中…","shared.telegramConnectDialog.connect":"連線","shared.catsCreateCreateSection":"建立","shared.catsCreateNewCat":"新增貓咪","shared.catsCreateCatLimitReached":"已達到貓咪上限","shared.catsCreateAddNewCatHint":"新增一隻貓咪到你的名單","shared.catsCreateCatNamePlaceholder":"貓咪名稱","shared.catsCreateCancel":"取消","shared.catsCreateSaving":"儲存中…","shared.catsCreateSaveCat":"儲存貓咪","shared.permissionMode.fullAccess":"完整存取","shared.permissionMode.readOnly":"唯讀","shared.composerSurface.label.chat":"Chat","shared.composerSurface.label.work":"Work","shared.composerSurface.label.code":"Code","shared.composerSurface.clearAria":"清除 {surfaceLabel} 介面標籤","shared.providerModel.support.advanced":"進階","shared.providerModel.support.readOnly":"唯讀","shared.delete.parallelChatGroup.title":"刪除所有對話","shared.delete.parallelChatGroup.message":"要刪除「{groupTitle}」中的所有對話嗎?這會移除每個對話並清理連結的執行階段工作階段。此動作無法復原。","shared.delete.parallelChatGroup.confirm":"全部刪除","shared.delete.parallelChatGroup.fallback":"這個平行聊天","shared.delete.cat.title":"刪除貓咪","shared.delete.cat.message":"要刪除「{catName}」嗎?這會移除這隻貓咪並清理連結的執行階段工作階段。此動作無法復原。","shared.delete.cat.confirm":"刪除","shared.delete.cat.fallback":"這隻貓","shared.transcript.deletedCat":"已刪除的貓","telegram.command.start.description":"開始對話","telegram.command.help.description":"顯示可用指令","telegram.command.commands.description":"列出所有指令","telegram.command.status.description":"顯示連線狀態","telegram.command.open.description":"開啟新的聊天室","telegram.command.mode.description":"查看或切換陪伴與代理模式","telegram.command.chat.description":"使用一般聊天模式","telegram.command.work.description":"釐清並建立 Work Item","telegram.command.code.description":"釐清 Code 工作","telegram.command.help.text":["可用指令:","/start - 顯示已綁定的貓咪以及這個 bot 的使用方式","/help - 顯示這則說明","/commands - 列出所有指令","/status - 顯示 bot、綁定與模式狀態","/open - 開啟或繼續已綁定貓咪的對話","/mode - 顯示目前模式","/mode companion - 切換到陪伴行為","/mode agent - 切換到代理行為","/chat - 使用一般聊天模式","/work - 釐清並建立 Work Item","/code - 釐清 Code 工作"].join(`
34
+ `),"telegram.command.mode.companion":"陪伴","telegram.command.mode.agent":"代理","telegram.command.start.greetingBound":"你好!我是 {catName}(透過 {botName})。目前模式:{mode}。直接傳一般訊息即可聊天,或使用 /mode 切換行為。","telegram.command.start.greetingUnbound":"你好!我是 {botName}。有什麼我可以幫忙的嗎?","telegram.command.status.botLine":"Bot:{botName}","telegram.command.status.linkedCatLine":"已綁定貓咪:{catName}","telegram.command.status.modeLine":"模式:{mode}","telegram.command.status.inboundLine":"輸入通道:{inboundMode}","telegram.command.status.chatLine":"聊天:{chatId}","telegram.command.status.connectedLine":"狀態:已連線","telegram.command.open.reply":"請在 Cats 中開啟與 {name} 的私人對話,或直接在這裡傳一般訊息繼續聊天。","telegram.command.mode.notConfigurable":"這個 bot 目前沒有綁定可設定的貓咪。","telegram.command.mode.current":`目前模式:{mode}
35
+ 使用 /mode companion 或 /mode agent 來切換。`,"telegram.command.mode.unknown":`未知模式:{mode}
36
+ 請使用 /mode companion 或 /mode agent。`,"telegram.command.mode.switchUnavailable":"這個 bot 綁定目前無法切換模式。","telegram.command.mode.switched":`已將 {name} 切換為{mode}模式。
37
+ 之後此聊天中的一般訊息會使用該模式。`,"telegram.command.unknownCommand":`未知指令:/{command}
38
+ 輸入 /help 查看可用指令。`,"shared.operator.noTimestamp":"沒有時間","shared.operator.runStatus.running":"進行中","shared.operator.runStatus.blocked":"受阻","shared.operator.runStatus.completed":"已完成","shared.operator.runStatus.failed":"失敗","shared.operator.runStatus.cancelled":"已取消","shared.operator.runStatus.queued":"排隊中","shared.operator.runStatus.title":"執行狀態","shared.operator.branchStatus.pending":"等待中","shared.operator.branchStatus.running":"執行中","shared.operator.branchStatus.completed":"已完成","shared.operator.branchStatus.failed":"失敗","shared.operator.branchStatus.blocked":"受阻","shared.operator.branchStatus.cancelled":"已取消","shared.operator.branchStatus.waitingForConverge":"等待匯合","shared.operator.checkpointStatus.completed":"完成","shared.operator.checkpointStatus.cancelled":"已取消","shared.operator.checkpointStatus.open":"進行中","shared.operator.outcomeStatus.succeeded":"成功","shared.operator.outcomeStatus.blocked":"受阻","shared.operator.outcomeStatus.failed":"失敗","shared.operator.outcomeStatus.cancelled":"已取消","shared.operator.traceKind.approval":"批准","shared.operator.traceKind.checkpoint":"檢查點","shared.operator.traceKind.dispatch":"派工","shared.operator.traceKind.error":"錯誤","shared.operator.traceKind.outcome":"結果","shared.operator.traceKind.status":"狀態","shared.operator.traceKind.note":"附註","shared.operator.activity.label.recovery":"復原","shared.operator.activity.label.replay":"重放","shared.operator.activity.label.decision":"決策","shared.operator.activity.label.action":"動作","shared.operator.activity.label.artifact":"成果物","shared.operator.activity.label.update":"更新","shared.operator.activity.label.trace":"軌跡","shared.operator.eyebrow.inspector":"檢視器","shared.operator.runInspector.title":"執行檢視","shared.operator.runInspector.noHistory":"請選擇一個有歷史紀錄的房間,以查看軌跡與檢查點。","shared.operator.runInspector.summaryFallback":"這裡會顯示本次執行的軌跡、檢查點與結果紀錄。","shared.operator.meta.started":"開始於 {time}","shared.operator.meta.updated":"更新於 {time}","shared.operator.meta.stage":"階段:{stage}","shared.operator.workflowStage.blocked":"受阻","shared.operator.workflowStage.concurrentFanOut":"並行展開","shared.operator.workflowStage.continuationHandoff":"續接交接","shared.operator.workflowStage.convergeReview":"匯合檢閱","shared.operator.workflowStage.dispatch":"派工","shared.operator.workflowStage.initialDispatch":"初始派工","shared.operator.workflowStage.runtimeError":"執行階段錯誤","shared.operator.workflowStage.startupRecovery":"啟動復原","shared.operator.workflowStage.turnCompleted":"回合完成","shared.operator.meta.shape":"形態:{shape}","shared.operator.meta.reviewRequired":"需要檢閱","shared.operator.meta.guardrail":"保護條件:{guardrail}","shared.operator.meta.cooldown":"冷卻:{cooldown}","shared.operator.guard.maxContinuations":"達到最大續接次數","shared.operator.guard.maxDispatches":"達到最大派工次數","shared.operator.guard.maxTargetVisits":"達到單一目標最大造訪次數","shared.operator.guard.antiPingPong":"防止來回轉派","shared.operator.cooldown.active":"冷卻中","shared.operator.section.trace":"軌跡","shared.operator.section.checkpoints":"檢查點","shared.operator.noCheckpointsRecorded":"本次執行尚無檢查點紀錄。","shared.operator.checkpointSummaryFallback":"已紀錄檢查點。","shared.operator.section.branches":"分支","shared.operator.noBranchesRecorded":"本次執行尚無分支或交接紀錄。","shared.operator.branch.handoff":"交接:{handoffReason}","shared.operator.branch.strategy":"策略:{strategy}","shared.operator.branchStrategy.forkIfPossible":"可行時分支","shared.operator.branchStrategy.freshNoParent":"新分支無父層","shared.operator.branchStrategy.singleTargetReview":"單一目標檢閱","shared.operator.branchStrategy.transplantContext":"沿用上下文","shared.operator.branchHandoff.explicitMention":"明確提及","shared.operator.branchHandoff.operatorReroute":"操作員改派","shared.operator.branchHandoff.roomDefault":"房間預設","shared.operator.branchHandoff.roomEntry":"進入房間","shared.operator.branchHandoff.runtimeRetry":"執行階段重試","shared.operator.branchHandoff.workflowContinuation":"工作流程續接","shared.operator.branch.fromCheckpoint":"來源檢查點:{checkpointId}。","shared.operator.branch.noLineage":"尚未錄到檢查點血緣。","shared.operator.section.outcomes":"結果","shared.operator.noOutcomesRecorded":"本次執行尚無結果紀錄。","shared.operator.outcomeSummaryFallback":"已紀錄結果。","shared.operator.eyebrow.progress":"進度","shared.operator.noActiveRun":"目前沒有啟動中的 room 執行。請先開始或繼續對話以查看派工狀態。","shared.operator.progressSummaryFallback":"目前可檢視 room 的編排狀態。","shared.operator.metric.dispatches":"派工次數","shared.operator.metric.continuations":"續接次數","shared.operator.metric.targets":"目標數","shared.operator.approvalPending.singular":"{count} 項待處理同意","shared.operator.approvalPending.plural":"{count} 項待處理同意","shared.operator.meta.delivery":"交付:{deliveryMode}","shared.operator.meta.gates":"門檻:{gates}","shared.operator.meta.budget":"預算:{budgetLevel}","shared.operator.deliveryMode.artifactOnly":"僅成果物","shared.operator.deliveryMode.commitOnly":"僅提交","shared.operator.deliveryMode.deployPreview":"部署預覽","shared.operator.deliveryMode.prWithChecks":"含檢查的 Pull Request","shared.operator.deliveryMode.pushBranch":"推送分支","shared.operator.deliveryGate.manualReviewRequired":"需要人工檢閱","shared.operator.deliveryGate.ownerApprovalRequired":"需要擁有者核准","shared.operator.deliveryGate.publishArtifactRequired":"需要發布成果物","shared.operator.budgetLevel.normal":"正常","shared.operator.budgetLevel.warning":"警告","shared.operator.budgetLevel.blocked":"受阻","shared.operator.workflowShape.sequential":"依序","shared.operator.workflowShape.concurrent":"並行","shared.operator.workflowShape.converge":"匯合","shared.operator.inspectRunButton":"檢視執行","shared.operator.noTraceRecords":"本次執行尚無軌跡紀錄。","shared.operator.action.requestRetry":"要求重試","shared.operator.action.retryAgain":"再次重試","shared.operator.action.retrying":"重試中","shared.operator.action.retryRequested":"已要求重試","shared.operator.action.acknowledge":"標記已知悉","shared.operator.action.acknowledged":"已知悉","shared.operator.action.retryDescription":"記錄操作員希望重試這個受阻或失敗的執行。","shared.operator.action.replayStoredDispatchDescription":"透過既有操作員路徑重放已儲存的派工或工作流程延續。","shared.operator.action.retryTaskDescription":"記錄操作員希望重試這個受阻或失敗的任務。","shared.operator.action.retryFailedDescription":"重試失敗。操作員可以再次重放已儲存的派工。","shared.operator.action.acknowledgeDescription":"記錄操作員已查看目前的保護條件或事件狀態。","shared.operator.action.acknowledgeBlockedDescription":"記錄操作員已查看目前受阻或失敗的狀態。","shared.operator.action.status.retryInProgress":"重試進行中","shared.operator.action.status.retryFailed":"重試失敗","shared.operator.action.status.retryFailedWithError":"重試失敗:{error}","shared.operator.action.status.retryDispatched":"已派送重試","shared.operator.action.status.retryRequested":"已要求重試","shared.operator.action.status.acknowledged":"已知悉","shared.common.apply":"套用","shared.common.cancel":"取消","shared.common.close":"關閉","shared.common.delete":"刪除","shared.common.retry":"重試","shared.guideCat.panelGreeting":"嗨 {ownerDisplayName},我是 {guideCatName},你的導覽貓。可以點這些項目開始,或關閉面板自己探索吧。","shared.guideCat.welcomeGreeting":"歡迎,{ownerDisplayName}。我是你的導覽貓。這裡有一些你可以先嘗試的功能。","shared.guideCat.welcomeStartChat":"先開始一則聊天","shared.guideCat.welcomeMeetCats":"認識你的貓","shared.guideCat.welcomeExploreProducts":"探索產品","shared.guideCat.welcomeHideNow":"先隱藏","shared.guideCat.pillOpenLabel":"開啟導覽:{guideCatName}","shared.guideCat.pillDisableLabel":"停用導覽貓","shared.guideCat.dockUndockLabel":"取消停駐 {guideCatName}","shared.guideCat.dialog.disableTitle":"停用 {guideCatName}?","shared.guideCat.dialog.disableMessage":"這會關閉 {guideCatName} 的導覽幫助。若只是想先藏起來,可先將其收進側欄。你隨時可以回到「設定」>「助手」重新開啟。","shared.guideCat.dialog.disableConfirm":"停用","shared.guideCat.dialog.keepEnabled":"保留啟用","shared.guideCat.dialog.dockNow":"立即收合","shared.imageUpload.clickHint":"點擊以選擇圖片","shared.imageUpload.dragHint":"拖曳來移動畫面,滾動可縮放","shared.workspaceNavigation.deleteChannelRuntimeCleanupFeedbackOne":"對話已刪除;Cats 執行階段保留了 {count} 個連結的執行階段工作階段。如需清理磁碟,請開啟執行階段診斷。","shared.workspaceNavigation.deleteChannelRuntimeCleanupFeedbackMany":"對話已刪除;Cats 執行階段保留了 {count} 個連結的執行階段工作階段。如需清理磁碟,請開啟執行階段診斷。","shared.workspaceNavigation.renameChatError":"重新命名聊天失敗。","shared.workspaceNavigation.deleteChatError":"刪除聊天失敗。","shared.workspaceNavigation.renameParallelChatError":"重新命名平行聊天失敗。","shared.workspaceNavigation.ungroupParallelChatError":"取消群組平行聊天失敗。","shared.workspaceNavigation.deleteParallelChatGroupError":"刪除所有聊天失敗。","shared.workspaceNavigation.parallelChatFallbackName":"這個平行聊天","shared.workspaceNavigation.error.chatNotFound":"找不到這個聊天工作區。","shared.workspaceNavigation.error.channelNotFound":"找不到這個聊天室。","shared.workspaceNavigation.error.parallelChatGroupNotFound":"找不到這個平行聊天群組。","shared.workspaceNavigation.error.titleRequired":"聊天標題不可空白。","shared.workspaceNavigation.error.parallelChatTitleRequired":"平行聊天標題不可空白。","shared.settingsCatsRegistry.sectionLabel":"註冊表","shared.settingsCatsRegistry.savedCatsLabel":"已儲存貓咪","shared.settingsCatsRegistry.noCatsYetLabel":"尚未有貓咪","shared.settingsCatsRegistry.showArchivedLabel":"顯示封存({count})","shared.settingsCatsRegistry.bossCatLabel":"主控貓","shared.settingsCatsRegistry.recoverLabel":"恢復","shared.settingsCatsRegistry.recoverTooltip":"恢復 {name}","shared.settingsCatsRegistry.deleteTooltip":"刪除 {name}","shared.settingsCatsRegistry.archiveTooltip":"封存 {name}","shared.settingsCatsRegistry.defaultSkillProfileLabel":"預設","shared.settingsCatsRegistry.memorySavedLabel":"已記憶","shared.settingsCatsRegistry.noMemoryYetLabel":"尚未有記憶","shared.settingsCatsRegistry.botBindingCount":"{count} 個機器人","shared.settingsCatsRegistry.emptyStateHint":"從右側面板新增第一隻貓咪。","shared.settingsCats.selectCatAriaLabel":"選擇貓咪","shared.settingsCats.addNewCatLabel":"新增貓咪","shared.settingsCats.showArchivedLabel":"顯示封存({count})","shared.settingsCats.archiveLabel":"封存","shared.settingsCats.deleteLabel":"刪除","shared.settingsCats.channelLabel":"通道","shared.settingsCats.memoryLabel":"記憶","shared.settingsCats.renameLabel":"重新命名","shared.settingsCats.save":"儲存","shared.settingsCats.saving":"儲存中…","shared.settingsCats.bossCatLabel":"主控貓","shared.settingsCats.changeBossCatTitle":"更改主控貓","shared.settingsCats.changeBossCatMessage":"將 {name} 設為主控貓?這將更改新對話的預設接收對象。","shared.settingsCats.confirm":"確認","shared.settingsCats.setting":"設定中…","shared.settingsCats.saveSuccess":"貓咪已儲存。","shared.settingsCats.saveError":"儲存貓咪失敗。","shared.settingsCats.renameSuccess":"貓咪已重新命名。","shared.settingsCats.renameError":"重新命名貓咪失敗。","shared.settingsCats.deleteSuccess":"{catName} 已刪除。","shared.settingsCats.deleteError":"刪除貓咪失敗。","shared.settingsCats.bossUpdated":"主控貓已更新。","shared.settingsCats.status.active":"啟用","shared.settingsCats.status.archived":"已封存","shared.settingsCats.makeBossCatLabel":"將 {name} 設為主控貓","shared.settingsCats.setBossCatLabel":"設為主控貓","shared.settingsCats.setBossCatError":"無法將其設為主控貓。","shared.settingsCats.skillUpdateError":"更新技能失敗。","shared.settingsCats.skillProfileLabel":"技能檔案","shared.settingsCats.mcpProfileLabel":"工具檔案","shared.settingsCats.mcpProfileChatMemoryLabel":"聊天記憶","shared.settingsCats.mcpProfileWorkMemoryLabel":"工作記憶","shared.settingsCats.changeMcpProfileError":"無法變更工具檔案。","shared.settingsCats.coverPhotoLabel":"封面圖片","shared.settingsCats.changeCoverPhotoLabel":"更換封面圖片","shared.settingsCats.uploadCoverPhotoLabel":"上傳封面圖片","shared.settingsCats.changeCoverLabel":"更換封面","shared.settingsCats.uploadCoverLabel":"上傳封面","shared.settingsCats.removeCoverLabel":"移除封面","shared.settingsCats.changeSkillProfileError":"無法變更技能檔案。","shared.settingsCats.updateBrainError":"更新大腦設定失敗。","shared.settingsCats.disconnectTelegramAria":"中斷 Telegram 連線","shared.settingsCats.disconnectTelegram":"中斷連線","shared.settingsCats.bindingActive":"啟用","shared.settingsCats.bindingDisabled":"停用","shared.settingsCats.bindingPollingMode":"輪詢","shared.settingsCats.bindingWebhookMode":"Webhook","shared.settingsCats.telegramBindingCreated":"Telegram 機器人綁定已建立。","shared.settingsCats.telegramBindingCreateError":"建立綁定失敗。","shared.settingsCats.telegramBindingRemoved":"綁定已移除。","shared.settingsCats.telegramBindingRemoveError":"移除綁定失敗。","shared.settingsCats.telegramDiagnosticsLoadError":"載入 Telegram 診斷資訊失敗。","shared.settingsCats.lastInboundLabel":"最後入站 {time}","shared.settingsCats.connectTelegramLabel":"連線 Telegram","shared.settingsCats.unavailableHint":"已封存或非聊天貓無法使用。","shared.settingsCats.addMemoryLabel":"新增記憶","shared.settingsCats.deleteMemoryAria":"刪除記憶","shared.settingsCats.skillProfileDefaultLabel":"預設","shared.settingsCats.skillProfileCompanionLabel":"助手","shared.settingsCats.memoryCategoryPreferenceLabel":"偏好","shared.settingsCats.memoryCategoryFactLabel":"事實","shared.settingsCats.memoryCategoryPolicyLabel":"規範","shared.settingsCats.memoryCategoryStyleLabel":"風格","shared.settingsCats.memoryCategoryRelationshipLabel":"關係","shared.settingsCats.memoryCategoryLessonLabel":"學習","shared.settingsCats.fallbackCatName":"這隻貓咪","shared.settingsCats.archiveConfirmTitle":"封存貓咪","shared.settingsCats.archiveConfirmMessage":"要封存「{catName}」嗎?之後仍可從設定復原。","shared.settingsCats.archiveWithTelegramConfirmMessage":"要封存「{catName}」嗎?Telegram 機器人綁定會被移除,但之後仍可從設定復原。","shared.settingsCats.archiveSuccess":"{catName} 已封存。","shared.settingsCats.archiveError":"封存貓咪失敗。","shared.settingsCats.recoverConfirmTitle":"復原貓咪","shared.settingsCats.recoverConfirmMessage":"要從封存復原「{catName}」嗎?","shared.settingsCats.recoverConfirmLabel":"復原","shared.settingsCats.recoverSuccess":"{catName} 已復原。","shared.settingsCats.recoverError":"復原貓咪失敗。","shared.settingsCats.error.nameRequired":"請輸入貓咪名稱。","shared.settingsCats.error.providerRequired":"請選擇貓咪供應器。","shared.settingsCats.error.nameEmpty":"貓咪名稱不可空白。","shared.settingsCats.error.alreadyArchived":"這隻貓咪已封存。","shared.settingsCats.error.alreadyActive":"這隻貓咪已啟用。","shared.settingsCats.error.archiveRecoverConflict":"貓咪不可同時封存與復原。","shared.settingsCats.error.noProducts":"請至少為這隻貓咪選擇一個產品。","shared.settingsCats.error.botTokenDuplicate":"這個 bot token 已被另一個綁定使用。","shared.settingsCats.error.nameDuplicate":"已存在名為「{name}」的貓咪。","shared.settingsCats.error.limitReached":"已達貓咪數量上限(最多 {maxCats} 隻)。","shared.settingsCats.error.notFound":"找不到這隻貓咪。","shared.settingsCats.error.notActive":"這隻貓咪尚未啟用。","shared.settingsCats.error.notAvailableInChat":"這隻貓咪無法在 Cats Chat 使用。","shared.settingsCats.error.botBindingNotFound":"找不到 bot 綁定。","shared.platformSurfaceSwitcher.menuLabel":"切換產品","shared.platformSurfaceSwitcher.openLobby":"開啟大廳","shared.platformSurfaceSwitcher.ariaLabel":"切換產品。目前產品為 {productName}。","shared.providerModelBrainCard.title":"大腦","shared.providerModel.controls.default":"預設","shared.providerModel.controls.enabled":"啟用","shared.providerModel.controls.disabled":"停用","shared.providerModel.controls.optionalPlaceholder":"選填","shared.providerModel.field.providerLabel":"供應器","shared.providerModel.field.loadingProviders":"正在載入可用的供應器…","shared.providerModel.field.selectProviderHint":"請選擇可用的供應器","shared.providerModel.field.providerLoadFailed":"無法載入執行階段支援的供應器","shared.providerModel.field.noProviders":"沒有執行階段支援的供應器可用","shared.providerModel.field.registryCheckingHint":"正在檢查 cats-runtime 可用的供應器目標。","shared.providerModel.field.registryUsingProductCatalogHint":"檢查 cats-runtime 供應器目標時,先使用產品內建供應器目錄。","shared.providerModel.field.registryStaleHint":"cats-runtime 重新連線時,先顯示上次可用的供應器目標。","shared.providerModel.field.registryCachedRefreshFailedHint":"重新整理失敗,先顯示快取的供應器目標:{message}","shared.providerModel.field.registryLoadFailedHint":"無法從 cats-runtime 載入目前可用的供應器目標。","shared.providerModel.field.registryEmptyHint":"cats-runtime 已連線,但沒有回報任何目前可用的供應器目標。","shared.providerModel.field.providerInstanceLabel":"供應器實例","shared.providerModel.field.modelLabel":"模型","shared.providerModel.field.retryProvidersFirst":"請先重新載入供應器","shared.providerModel.field.selectProviderFirst":"請先選擇可用的供應器","shared.providerModel.field.waitingProviders":"正在等待可用的供應器…","shared.providerModel.field.loadingModels":"正在載入可用模型…","shared.providerModel.field.selectModel":"選擇模型","shared.providerModel.field.noModels":"沒有執行階段支援的模型可用","shared.providerModel.field.customLegacyModelLabel":"自訂舊版模型…","shared.providerModel.field.legacyModelIdLabel":"舊版模型 ID","shared.providerModel.field.legacyModelIdPlaceholder":"例如 claude-sonnet-4-6","shared.providerModel.field.legacyModelIdHint":"手動輸入模型 ID 會直接傳遞。執行階段會把它視為舊版 `model` 欄位,而不是結構化項目/預設選擇。","shared.providerModel.field.modeLabel":"模式","shared.providerModel.field.modeStandardLabel":"標準","shared.providerModel.field.modeStandardOnlyLabel":"僅標準","shared.providerModel.field.presetPreviewSuffix":"(預覽)","shared.providerModel.field.presetUnavailableSuffix":"(不可用)","shared.providerModel.field.presetTuningDescriptionFallback":"這個模型的額外參數。","shared.providerModel.field.modeOnlyBaseHint":"此供應器目標只會對持久化的聊天/會話設定曝光基礎模型。","shared.providerModel.field.requestScopedWarning":"這裡隱藏了只可套用於個別請求的覆寫,因為這組選擇器會寫回聊天/會話預設。","shared.providerModel.field.openRuntimeSetupLabel":"開啟 Cats 執行階段設定","shared.providerModel.field.advancedCatalogUnavailable":"執行階段進階模型目錄無法使用。","shared.providerModel.field.catalogKindModel":"模型","shared.providerModel.field.catalogKindAdvancedModel":"進階模型","shared.providerModel.field.runtimeCatalogUnavailable":"執行階段{catalogKind}目錄無法使用。","shared.providerModel.field.runtimeCatalogUnavailableWarning":"cats-runtime 重新整理時,先使用產品內建的{catalogKind}目錄:{message}","shared.memoryEditorDialog.title":"新增記憶","shared.memoryEditorDialog.categoryLabel":"分類","shared.memoryEditorDialog.contentLabel":"內容","shared.memoryEditorDialog.memoryPlaceholder":"這隻貓咪需要記住些什麼?","shared.memoryEditorDialog.cancel":"取消","shared.memoryEditorDialog.saving":"儲存中…","shared.memoryEditorDialog.add":"新增","shared.approvalEyebrow":"核准","shared.approvalPendingTitle":"待核准項目","shared.approvalEmptyState":"在此由指揮面板保持運轉,直到任務需要由負責人做判斷決定。","shared.approvalRequester":"指揮者","shared.approvalSummaryFallback":"請先確認此次派工,再讓 Cats 繼續。","shared.approvalRequestedBy":"提交者:{requestedBy}","shared.approval.action.approve":"核准","shared.approval.action.reroute":"改派路徑","shared.approval.action.reject":"拒絕","shared.approval.action.approveDescription":"允許編排計畫繼續。","shared.approval.action.rerouteDescription":"將計畫退回,改用其他交接或派工路徑。","shared.approval.action.rejectDescription":"不允許計畫繼續。","shared.catInspectTitle":"貓咪預設","shared.catInspectClose":"關閉","shared.catInspectBossLabel":"主控","shared.catInspectProviderLabel":"供應器","shared.catInspectInstanceLabel":"實例","shared.catInspectModelLabel":"模型","shared.catInspectSkillProfileLabel":"技能檔案","shared.catInspectSharedPresetDescription":"這是共用的貓咪預設。這裡的變更會影響所有使用此貓咪的對話。","shared.messageChoicesCustom":"自訂","shared.messageChoicesAddCustomPlaceholder":"輸入你的答案","shared.messageChoicesSkipped":"發起者已略過這些選項。","shared.messageChoicesRecorded":"發起者回應已記錄。","shared.messageChoicesConfirm":"確認","shared.messageChoicesSkip":"跳過","shared.folderBrowserEnterPath":"輸入路徑","shared.folderBrowserGo":"前往","shared.folderBrowserUpOneLevel":"回上一層","shared.folderBrowserRefresh":"重新整理","shared.folderBrowserLoading":"載入中…","shared.folderBrowserNoSubdirectories":"此資料夾中沒有子資料夾。","shared.folderBrowserUseThisFolder":"使用此資料夾","shared.common.saving":"儲存中…","shared.common.dismiss":"關閉","setup.wizard.welcomeTitle":"歡迎使用 Cats","setup.wizard.welcomeIntro":"你的個人 AI 工作空間。讓我們快速完成設定。","setup.wizard.ownerNameLabel":"您的名字","setup.wizard.ownerNamePlaceholder":"顯示名稱","setup.wizard.getStartedButton":"開始","setup.wizard.stepIndicator":"第 {step} 步,共 {total} 步","setup.wizard.enableGuideTitle":"啟用 {guideCatName}","setup.wizard.enableGuideSubtitle":"這位可選助理可在聊天、工作與程式碼場景中提供協助。","setup.wizard.enableGuideLabel":"啟用 {guideCatName}","setup.wizard.skipGuideMessage":"你可以先略過此步驟,稍後再從「設定 > 助理」啟用 {guideCatName}。","setup.wizard.backButton":"返回","setup.wizard.openingCatsAction":"正在開啟 Cats…","setup.wizard.openCatsAction":"開啟 Cats","setup.wizard.failedMessage":"設定失敗。","setup.wizard.failedWithStatus":"設定失敗({status})","setup.wizard.alreadyCompleteError":"設定已完成。","setup.wizard.invalidRequestError":"設定請求無效。","setup.wizard.serverError":"無法完成設定,請稍後再試。","setup.wizard.recordOpenFailedWithStatus":"記錄設定開啟狀態失敗({status})","setup.guideCat.runtimeUnavailable":"供應器目錄無法使用","setup.guideCat.noUsableTargets":"找不到可用供應器","setup.guideCat.runtimeConnected":"Cats 執行階段已連線","setup.guideCat.runtimeNotDetected":"未偵測到 Cats 執行階段","setup.guideCat.nameLabel":"導覽貓名稱","setup.guideCat.nameHint":"Cats 會保留這個名稱,後續可依語系調整。","setup.guideCat.openRuntimeSetup":"開啟 Cats 執行階段設定","setup.guideCat.unavailableNote":"即使導覽貓未啟用也能使用。若遇到連線逾時,請在此重試,或前往 Cats 執行階段設定頁。","setup.guideCat.noUsableTargetsNote":"Cats 執行階段已可連線,但目前沒有回報任何可用的導覽貓供應器設定。","settings.assistants.defaultName":"助理","settings.assistants.statusFailed":"狀態更新失敗({status})","settings.assistants.saveFailed":"儲存失敗。","settings.assistants.statusUpdateFailed":"狀態更新失敗({status})","settings.assistants.guideCatUpdateFailed":"無法更新導覽貓。","settings.assistants.guideCatSaveFailed":"無法儲存導覽貓。","settings.assistants.saveFailedWithError":"儲存失敗({status})","settings.assistants.removeTitle":"移除助理","settings.assistants.removeMessage":"移除「{title}」?將無法復原。","settings.assistants.removeButton":"移除","settings.assistants.removeFailed":"無法移除助理。","settings.assistants.enableButton":"啟用","settings.assistants.enableBusyButton":"儲存中…","settings.assistants.disableButton":"停用","settings.assistants.avatarLabel":"頭像","settings.assistants.nameLabel":"名稱","settings.assistants.selectAriaLabel":"選取助理","settings.assistants.addNewLabel":"新增助理","settings.assistants.newAssistantTitle":"新增助理","settings.assistants.cancelButton":"取消","settings.assistants.createButton":"儲存","settings.assistants.deleteButton":"刪除","settings.assistants.roleHintTitle":"角色提示","settings.assistants.namePlaceholder":"助理","settings.assistants.roleHintPlaceholder":"檢閱者、除錯人員、文字編修者、API 專家…","settings.assistants.renameFailed":"無法重新命名助理。","settings.assistants.roleHintUpdateFailed":"無法更新角色提示。","settings.assistants.brainUpdateFailed":"無法更新大腦設定。","settings.assistants.createFailed":"無法儲存助理。","settings.assistants.api.invalidRequestBody":"請求內容無效。","settings.assistants.api.assistantNameRequired":"請輸入助理名稱。","settings.assistants.api.assistantProviderRequired":"請選擇助理供應器。","settings.assistants.api.assistantModelRequired":"請選擇助理模型。","settings.assistants.api.assistantNotFound":"找不到助理。","settings.assistants.api.guideCatNameManaged":"導覽貓名稱由 Cats 管理。","settings.assistants.api.guideCatStatusInvalid":"導覽貓狀態必須是啟用或已停用。","settings.assistants.api.guideCatNotFound":"尚未建立導覽貓。","conversationSidebar.chatsLabel":"聊天","conversationSidebar.recentsLabel":"最近","conversationSidebar.noChatsLabel":"尚無聊天","conversationSidebar.primaryAriaLabel":"主要","conversationSidebar.openSidebarLabel":"展開側邊欄","conversationSidebar.closeSidebarLabel":"收合側邊欄","conversationSidebar.renameLabel":"重新命名","conversationSidebar.renamingLabel":"重新命名中…","conversationSidebar.deleteLabel":"刪除","conversationSidebar.deletingLabel":"刪除中…","conversationSidebar.ungroupLabel":"取消群組","conversationSidebar.ungroupingLabel":"取消群組中…","conversationSidebar.deleteAllLabel":"刪除全部","conversationSidebar.openAccountSettingsLabel":"開啟帳號設定","conversationSidebar.runtimeStatusAriaLabel":"執行階段狀態:{status}","conversationSidebar.directMessagesLabel":"直接訊息","conversationSidebar.telegramBoundTooltip":"已綁定 Telegram 機器人","conversationSidebar.archiveButton":"封存","conversationSidebar.directMessageButton":"直接訊息","conversationSidebar.clearButton":"清除","conversationSidebar.clearConfirmMessage":"清除與 {catName} 的對話歷史?此操作無法復原。","chatNewChatDraft.viewCatProfileAction":"查看貓咪個人檔案","chatTopBar.openCatProfileAriaLabel":"查看貓咪個人檔案","design.sidePanel.closeLabel":"關閉","design.accountIdentityMenu.label":"帳號選單","design.accountIdentityMenu.menuLabel":"帳號選單","design.accountIdentityMenu.settingsLabel":"設定","design.accountIdentityMenu.environmentLabel":"環境","design.notification.dismissLabel":"關閉","entity.comingSoon.backToLobby":"返回大廳","entity.detail.breadcrumb.lobby":"大廳","clowdersList.title":"我的貓群","clowdersList.eyebrow":"貓群","clowdersList.emptyState":"尚未有貓群。接上貓群 registry 後,正式任務群組會在這裡列出。","catteriesList.title":"我的貓窩","catteriesList.eyebrow":"貓窩","catteriesList.emptyState":"尚未有貓窩。接上貓窩 registry 後,組織會在這裡列出。","clowdersCanvas.ariaLabel":"貓群畫布","catteriesCanvas.ariaLabel":"貓窩畫布","entityCanvas.totalLabel":"總數","entityCanvas.catsLabel":"貓咪","entityCanvas.membersLabel":"成員","entityCanvas.clowdersLabel":"貓群","entityCanvas.idLabel":"識別碼","entityCanvas.createdLabel":"建立時間","entityCanvas.selectedClowderLabel":"選取的貓群","entityCanvas.selectedCatteryLabel":"選取的貓窩","entityCanvas.organizationLabel":"組織","entityCanvas.parentCatteryLabel":"上層貓窩","entityCanvas.formalClowderLabel":"正式貓群","entityCanvas.noOrganizationLabel":"沒有組織連結","entityCanvas.noFormalClowdersLabel":"沒有正式貓群","entityCanvas.openClowderAction":"開啟貓群","entityCanvas.openCatteryAction":"開啟貓窩","entityCanvas.catterySubtitle":"{clowderCount} 個貓群 · {memberCount} 位成員","catProfile.notFound.title":"找不到這隻貓","catProfile.notFound.body":"此工作區中沒有 id 為「{catId}」的貓。可能已被移除,或連結已失效。","entitiesSidebar.section.cats":"我的貓咪","entitiesSidebar.section.clowders":"我的貓群","entitiesSidebar.section.catteries":"我的貓窩","entitiesSidebar.newCat":"新增貓咪","entitiesSidebar.newClowder":"新增貓群","entitiesSidebar.newCattery":"新增貓窩","entityIndex.eyebrow":"目錄","entityIndex.title":"Cats 目錄","entityIndex.columnHeader.cats":"貓咪","entityIndex.columnHeader.clowders":"貓群","entityIndex.columnHeader.catteries":"貓窩","entityIndex.card.total":"共 {count} 個","entityIndex.card.openCanvasAriaLabel":"開啟{label}","entitiesShell.ariaLabel":"Cats 目錄 工作區","entitiesShell.surfaceLabel":"Cats 目錄","entitiesShell.brandLabel":"目錄","entitiesShell.exitButtonAriaLabel":"離開 Cats 目錄","clowderHome.ariaLabel":"貓群主頁","clowderHome.chip.partOf":"隸屬於 {catteryName}","clowderHome.chip.crossUnit":"跨單位任務小組","clowderHome.tab.cats":"貓咪","clowderHome.tab.settings":"設定","clowderHome.empty.cats":"此貓群尚未有貓咪。Phase 6 成員管理上線後即可加入第一隻。","clowderHome.settings.body":"貓群設定(重新命名、封存、轉移)會在 PLAN-091 phase 6 成員管理上線時提供。","clowderHome.notFound.title":"找不到這個貓群","clowderHome.notFound.body":"此工作區中沒有 id 為「{clowderId}」的貓群。可能已被移除,或連結已失效。","catteryHome.ariaLabel":"貓窩主頁","catteryHome.tab.members":"成員","catteryHome.tab.clowders":"貓群","catteryHome.tab.cats":"貓咪","catteryHome.tab.settings":"設定","catteryHome.empty.members":"尚未有成員。Phase 6 成員管理上線後即可加入第一位。","catteryHome.empty.clowders":"此貓窩尚未有貓群。Phase 6 上線後正式編制的貓群會在這裡列出。","catteryHome.empty.cats":"尚未能透過此貓窩取得貓咪。Phase 6 成員資料上線後會把直接成員與透過正式貓群間接到的成員彙總在這裡。","catteryHome.settings.body":"貓窩設定(個資、轉移所有權、封存)會在 PLAN-091 phase 6 成員管理上線時提供。","catteryHome.notFound.title":"找不到這個貓窩","catteryHome.notFound.body":"此工作區中沒有 id 為「{catteryId}」的貓窩。可能已被移除,或連結已失效。","code.activeComposer.detachedBranch":"分離分支","code.newDraft.greeting":"準備開始寫程式。","code.newDraft.greeting.openRepo":"開啟 repo,從小處開始。","code.newDraft.greeting.buildFixRefactor":"建置、修復或重構真實的東西。","code.newDraft.greeting.shipImprovement":"交付一個清楚的改善。","code.newDraft.greeting.smallestChange":"從最小但有用的變更開始。","code.newDraft.composer.placeholder":"這次程式工作階段要建置、修復或調查什麼?","code.newDraft.setupTitle":"新程式設定","code.newDraft.participants.title":"參與者","code.newDraft.participants.empty":"目前沒有可用的參與者。","code.newDraft.execution.title":"執行","code.newDraft.execution.action":"選擇執行目標","code.newDraft.execution.empty":"尚未設定執行目標。","code.newDraft.folder.title":"程式工作區","code.newDraft.folder.action":"選擇程式工作區","code.newDraft.folder.empty":"尚未選擇程式工作區。","code.newDraft.sessionProfile.title":"工作階段設定","code.newDraft.sessionProfile.description":"此程式工作階段會以 {workspace} 與 {permission} 開始。","code.newDraft.workspace.independentWorktree":"獨立工作樹","code.newDraft.workspace.currentFolder":"目前資料夾","code.newDraft.workspace.sandbox":"沙盒","code.newDraft.permission.readOnly":"唯讀","code.newDraft.permission.fullAccess":"完整存取","code.newDraft.starter.pomodoro.label":"建置番茄鐘應用程式","code.newDraft.starter.pomodoro.prompt":"寫一個小型番茄鐘計時器應用程式。","code.newDraft.starter.fixBug.label":"修復錯誤","code.newDraft.starter.fixBug.prompt":"找出並修復這個程式碼庫中的錯誤。","code.newDraft.starter.refactor.label":"重構程式碼","code.newDraft.starter.refactor.prompt":"在不改變行為的前提下重構這段程式碼。","code.newDraft.starter.writeTests.label":"撰寫測試","code.newDraft.starter.writeTests.prompt":"為我們上次碰過的程式碼新增測試。","code.newDraft.starter.startProject.label":"開始專案","code.newDraft.starter.startProject.prompt":"開始一個小專案來追蹤里程碑。","code.taskPills.ariaLabel":"任務提醒","code.taskPills.mock.authMiddleware":"重構驗證中介層","code.taskPills.mock.kiroSessionDelete":"修復 Kiro 工作階段刪除","code.taskPills.mock.artifactGallery":"草擬成品圖庫","code.taskPills.namePlaceholder":"命名此任務","code.taskPills.editAria":"編輯任務名稱","code.taskPills.title.current":"目前任務:{taskLabel} — 雙擊可重新命名","code.taskPills.title.focus":"聚焦 {taskLabel}(雙擊可重新命名)","code.taskPills.hideAria":"隱藏 {taskLabel}","code.taskPills.fallbackTask":"任務","code.taskPills.addAria":"新增任務提醒","code.taskPills.buttonTask":"任務","code.workspace.source.artifactAnchor":"成品錨點","code.artifact.kind.build":"建置","code.artifact.kind.dataset":"資料集","code.artifactDetail.artifactUnavailable":"成品詳細資料不可用","code.artifactDetail.backToBuild":"返回建置","code.artifactDetail.artifactOutput":"成品輸出","code.artifactDetail.conversationLabel":"對話","code.artifactDetail.contextEyebrow":"脈絡","code.artifactDetail.contextTitle":"已連結記錄","code.artifactDetail.loadFailed":"無法載入成品詳細資料。","code.artifactDetail.loadingBody":"正在取得成品中繼資料與相關脈絡。","code.artifactDetail.loadingTitle":"正在載入成品詳細資料","code.artifactDetail.missingId":"成品 ID 為必填。","code.artifactDetail.noArtifactSummary":"尚未記錄成品摘要。","code.artifactDetail.noInlinePreview":"這個成品目前沒有可用的內嵌預覽。","code.artifactDetail.notInlineSafe":"此成品已可用,但目前 Code 介面不適合內嵌顯示。","code.artifactDetail.previewOutput":"預覽輸出","code.artifactDetail.previewActionOpenArtifact":"開啟成品","code.artifactDetail.previewActionOpenPreview":"開啟預覽","code.artifactDetail.projectLabel":"專案","code.artifactDetail.projectMeta":"專案:{projectTitle}","code.artifactDetail.relatedEmpty":"這個任務或工作項目尚未記錄相關成品。","code.artifactDetail.relatedEyebrow":"相關","code.artifactDetail.relatedTitle":"鄰近成品","code.artifactDetail.openConversationAction":"開啟對話","code.artifactDetail.openProjectAction":"開啟專案","code.artifactDetail.openTaskAction":"開啟任務","code.artifactDetail.openWorkItemAction":"開啟工作項目","code.artifactDetail.taskLabel":"任務","code.artifactDetail.title":"成品","code.artifactDetail.viewArtifact":"查看成品","code.artifactDetail.workItemLinkedLabel":"工作項目","code.artifactDetail.workItemMissingLabel":"沒有連結的工作項目","code.artifactKind.attachment":"附件","code.artifactKind.document":"文件","code.artifactKind.preview":"預覽","code.artifactKind.report":"報告","code.artifactKind.transcript":"對話紀錄","code.artifactKind.unknown":"未知","code.artifactKind.build":"建置","code.artifactStatus.archived":"已封存","code.artifactStatus.draft":"草稿","code.artifactStatus.published":"已發佈","code.artifactStatus.ready":"就緒","code.artifactStatus.unknown":"未知","code.artifactList.artifact":"成品","code.artifactList.filter.all":"全部","code.artifactList.ariaOpenArtifact":"開啟成品 {title}","code.artifactList.empty":"目前沒有符合此篩選的成品。建置、預覽、報告、附件與對話匯出會出現在這裡。","code.artifactList.header":"成品","code.artifactList.loading":"正在載入成品…","code.artifactList.error":"無法載入成品:{error}","code.artifactList.loadFailed":"成品清單請求失敗。","code.artifactList.candidateHint":"候選成品尚未升級為持久記錄。","code.artifactList.candidateLabel":"候選","code.artifactList.provenance.run":"執行","code.artifactList.statusFilterLabel":"狀態:","code.artifactList.provenance.task":"任務","code.artifactMeta.contract":"契約","code.artifactMeta.mode":"模式:{mode}","code.artifactMeta.decision":"決策:{decision}","code.artifactMeta.kind":"類型:{kind}","code.artifactMeta.path":"路徑:{path}","code.artifactMeta.status":"狀態:{status}","code.artifactMeta.updated":"更新時間:{updatedAt}","code.artifactMeta.viewArtifact":"查看成品","code.artifactPreview":"成品預覽","code.artifact.unknown":"未知","code.conversationKind.chatChannel":"聊天頻道","code.conversationKind.chatRoot":"聊天根目錄","code.conversationKind.codeThread":"程式討論串","code.conversationKind.directMessage":"直接訊息","code.conversationKind.parallelGroup":"平行群組","code.conversationKind.unknown":"對話","code.conversationKind.workThread":"工作討論串","code.recordStatus.archived":"已封存","code.recordStatus.blocked":"已阻擋","code.recordStatus.cancelled":"已取消","code.recordStatus.completed":"已完成","code.recordStatus.draft":"草稿","code.recordStatus.failed":"失敗","code.recordStatus.inProgress":"進行中","code.recordStatus.open":"開啟","code.recordStatus.pending":"待處理","code.recordStatus.pendingApproval":"等待核准","code.recordStatus.ready":"就緒","code.recordStatus.running":"執行中","code.recordStatus.unknown":"未知","code.builder.codespaceHeader":"程式工作區","code.builder.codeOutputLabel":"輸出","code.builder.back":"返回","code.builder.continue":"繼續","code.builder.continueBuild":"繼續建置","code.builder.continueBuildBusy":"正在繼續…","code.builder.continueTaskBusy":"正在繼續…","code.builder.createArtifact":"建立成品","code.builder.createLabel":"建置","code.builder.creatingTask":"正在建立…","code.builder.defineTaskHeader":"定義任務","code.builder.detailsPlaceholder":"描述完成狀態與驗收條件…","code.builder.detailsLabel":"細節 / 驗收條件(選填)","code.builder.errorCodespaceResolve":"無法解析這個程式工作區。","code.builder.errorCodespacePathInvalid":"選取的路徑不存在或不是資料夾:{path}","code.builder.errorCodespaceNoPath":"找不到有效的程式工作區路徑。請選擇資料夾,或確認房間工作區存在。","code.builder.errorTaskCreate":"無法建立程式碼任務。","code.builder.errorTaskCreateMissingId":"建立任務的回應缺少 task id。","code.builder.errorTaskExecution":"無法啟動程式碼任務。","code.builder.errorTaskDetailLoad":"無法載入這個程式碼任務。","code.builder.errorTaskResume":"無法接續這個程式碼任務。","code.builder.errorTaskResumeInput":"請輸入要接續的任務 ID。","code.builder.errorTaskTitle":"請輸入你想建置的內容。","code.builder.runtimeObservationFailed":"無法重新整理執行階段工作階段。","code.builder.executionDoneBanner":"任務已完成。請檢查上方結果,並使用交付操作提交或推送。","code.builder.existingTask":"既有任務","code.builder.feedbackResumeReady":"任務已可繼續。","code.builder.feedbackResumeTask":"已接續任務 {taskId}。","code.builder.feedbackResumeNoWorkspace":"已接續任務 {taskId};繼續前請先選擇程式工作區。","code.builder.feedbackResumeWorkspaceNeeded":"繼續此任務前請先選擇程式工作區。","code.builder.filter.codespace":"程式工作區","code.builder.header.codespace":"程式工作區","code.builder.header.newTask":"新任務","code.builder.header.projectFolder":"專案資料夾","code.builder.header.taskStep":"任務","code.builder.modelLabel":"模型(選填)","code.builder.modelPlaceholder":"預設","code.builder.newTaskButton":"新任務","code.builder.providerLabel":"供應器","code.builder.providerTaskLabel":"供應器","code.builder.repoPathLabel":"儲存庫路徑","code.builder.resumeLabel":"既有任務 ID(選填)","code.builder.resumePrompt":"接續任務","code.builder.retryPrompt":"重試","code.builder.stepLabel":"步驟 {step}","code.builder.successTaskReadyWithCurrentChat":"{workspaceFallback},來源:{title}。","code.builder.taskIdRequired":"請輸入任務 ID。","code.builder.taskIdReady":"任務 {taskId} 已可繼續。","code.builder.taskIdReadyNoWorkspace":"任務 {taskId} 已可繼續;繼續前請先選擇程式工作區。","code.builder.taskLabel":"任務","code.builder.taskSummaryPlaceholder":"例如:加入使用者登入功能","code.builder.title":"程式建置器","code.builder.workspaceActiveNotice":"這會成為下一個任務步驟使用的建置程式工作區。","code.builder.workspaceFallbackBound":"已綁定工作區","code.builder.workspaceFallbackBoundFallback":"請輸入專案資料夾,或接續既有任務。","code.builder.workspaceFallbackChatRepo":"目前聊天室儲存庫","code.builder.workspaceFallbackRoom":"目前房間資料夾","code.builder.workspaceFooterLabel":"工作區","code.builder.workspacePathPlaceholder":"/path/to/project","code.builder.workspaceResumeHelp":"接續功能適用於你想繼續處理的草稿、已阻擋或失敗程式碼任務。","code.builder.sampleTaskId":"task-...","code.builder.workspaceSummaryLabel":"程式工作區","code.builder.workspaceSummaryNotice":"目前的建置程式工作區。","code.builder.startingTaskBusy":"正在啟動…","code.builder.taskQuestion":"你想建置什麼?","code.livePreview.commandProfile":"設定檔:{profile}","code.livePreview.description":"檢視連到此 Cats Code 介面的受監管本機即時預覽。","code.livePreview.diagnostic":"診斷:{message}","code.livePreview.error.load":"無法載入即時預覽狀態。","code.livePreview.error.logs":"無法載入即時預覽記錄。","code.livePreview.error.stop":"無法停止即時預覽。","code.livePreview.expiresAt":"到期:{time}","code.livePreview.hideLogs":"隱藏記錄","code.livePreview.logs":"記錄","code.livePreview.logsEmpty":"此預覽尚未記錄內容。","code.livePreview.logsLoading":"正在載入記錄…","code.livePreview.open":"開啟預覽","code.livePreview.retry":"重試","code.livePreview.retryUnavailable":"重試會在即時預覽啟動流程核准後開放。","code.livePreview.status.expired":"已到期","code.livePreview.status.failed":"失敗","code.livePreview.status.ready":"就緒","code.livePreview.status.starting":"啟動中","code.livePreview.status.stopped":"已停止","code.livePreview.status.stopping":"停止中","code.livePreview.stop":"停止","code.livePreview.stopRequested":"已送出停止要求。","code.livePreview.stopping":"正在停止…","code.livePreview.title":"即時預覽","code.livePreview.workspace":"工作區:{workspace}","code.execution.header":"執行","code.execution.meta.noTask":"尚未綁定任務","code.execution.meta.runtimeSession":"執行階段工作階段:{sessionId}","code.execution.meta.workingTreeClean":"工作樹乾淨","code.execution.meta.workingTreeDirty":"工作樹有變更","code.execution.noActiveSession":"沒有作用中的工作階段","code.execution.noTask":"尚未綁定任務","code.execution.notStarted":"尚未開始","code.execution.ownerDecisionRequired":"需要使用者決策","code.execution.panelTitle":"任務執行","code.execution.runtimeHeader":"執行階段","code.execution.runtimeIdle":"閒置","code.execution.modeDelivery":"交付模式:{deliveryMode}","code.execution.targetLabel":"目標:{target}","code.execution.targets":"目標:{targets}","code.execution.runtimeTitle":"執行階段","code.execution.sectionBlocked":"已阻擋","code.execution.taskHeader":"任務","code.execution.taskStatus":"狀態:{status}","code.execution.taskTitle":"任務","code.execution.notActiveYet":"尚未啟用","code.execution.paused":"已暫停","code.execution.provider":"供應器:{provider}","code.execution.model":"模型:{model}","code.execution.defaultModel":"預設","code.execution.session":"工作階段:{sessionId}","code.execution.taskId":"ID:{taskId}","code.execution.status.blocked":"已阻擋","code.execution.status.done":"完成","code.execution.status.pending":"待處理","code.execution.status.running":"執行中","code.execution.status.unknown":"未知","code.execution.taskRuntimeHeader":"執行階段","code.execution.taskStrategy":"策略:{strategy}","code.execution.strategy.pdca":"PDCA","code.execution.strategy.react":"ReAct","code.execution.strategy.reflexion":"Reflexion","code.execution.deliveryMode.artifactOnly":"僅成品","code.execution.deliveryMode.commitOnly":"僅提交","code.execution.deliveryMode.deployPreview":"部署預覽","code.execution.deliveryMode.prWithChecks":"含檢查的 Pull Request","code.execution.deliveryMode.pushBranch":"推送分支","code.execution.blockedReason.antiPingPong":"防迴圈保護","code.execution.blockedReason.approvalPending":"等待核准","code.execution.blockedReason.maxDispatches":"已達分派上限","code.execution.blockedReason.noValidTargets":"沒有有效目標","code.execution.blockedReason.startupRecovery":"啟動修復","code.execution.blockedReason.userCancelled":"使用者已取消","code.execution.unknownDeliveryMode":"未知交付模式","code.execution.unknownValue":"未知","code.execution.unknownValueUnknown":"未知","code.execution.controlHeader":"控制","code.execution.controlMode":"模式:{mode}","code.execution.controlDelivery":"交付:{deliveryMode}","code.execution.controlBlocked":"已阻擋","code.execution.controlApprovalPending":"等待核准","code.execution.controlBlockedBy":"接續流程被 {reason} 阻擋。","code.execution.controlTargets":"目標:{targets}","code.execution.statusActiveLabel":"作用中","code.execution.statusIdleLabel":"閒置","code.execution.statusBlockedLabel":"已阻擋","code.execution.statusRunningLabel":"執行中","code.execution.statusDoneLabel":"完成","code.execution.statusPendingLabel":"待處理","code.delivery.previewHeader":"預覽","code.delivery.blockerLabel":"已阻擋","code.delivery.contractLabel":"契約","code.delivery.error.repoStatusUnavailable":"無法取得儲存庫狀態。","code.delivery.warningsLabel":"警告","code.delivery.warningsTitle":"警告","code.delivery.header":"交付","code.delivery.label":"交付","code.delivery.labelPreview":"{label} 預覽","code.delivery.metaBranch":"分支:{branch}","code.delivery.metaAhead":"領先:{count}","code.delivery.metaBehind":"落後:{count}","code.delivery.metaStaged":"已暫存:{count}","code.delivery.metaUnstaged":"未暫存:{count}","code.delivery.metaUntracked":"未追蹤:{count}","code.delivery.metaRemote":"遠端:{remote}","code.delivery.metaMode":"模式:{mode}","code.delivery.metaDecision":"決策:{decision}","code.delivery.noCodespace":"尚未綁定程式工作區。請先解析程式工作區才能查看儲存庫操作。","code.delivery.noRepoStatus":"尚未載入儲存庫狀態。","code.delivery.noInlinePreview":"目前沒有可用的內嵌預覽。","code.delivery.noWorkspace":"尚未選擇工作區。","code.delivery.panelSubtitle":"從目前程式工作區提交、推送或匯出輸出。","code.delivery.panelTitle":"儲存庫操作","code.delivery.previewHintUnsafe":"此預覽已可用,但較適合在內嵌框架外開啟。","code.delivery.repoClean":"乾淨","code.delivery.repoDirty":"有變更","code.delivery.repoStatusHeader":"儲存庫狀態","code.delivery.actions.commitHeader":"提交","code.delivery.actions.pushHeader":"推送","code.delivery.actions.exportHeader":"匯出","code.delivery.action.refresh":"重新整理","code.delivery.action.preview":"預覽","code.delivery.action.commit":"提交","code.delivery.action.push":"推送…","code.delivery.action.pushPreview":"預覽推送","code.delivery.action.pushConfirm":"確認推送","code.delivery.action.pushCancel":"取消","code.delivery.action.export":"匯出成品","code.delivery.action.commitPlaceholder":"提交訊息…","code.delivery.confirmation.push":"要推送到遠端嗎?這會對外可見。","code.delivery.confirmation.pushHint":"此操作會將本機提交發佈到設定的遠端。","code.delivery.error.commitFailed":"提交操作失敗。","code.delivery.error.pushFailed":"推送操作失敗。","code.delivery.error.exportFailed":"成品匯出失敗。","code.delivery.status.ready":"就緒","code.delivery.status.blocked":"已阻擋","code.delivery.status.unknown":"未知","code.delivery.decision.approve":"核准","code.delivery.decision.complete":"完成","code.delivery.decision.reject":"拒絕","code.delivery.decision.reroute":"重新指派","code.delivery.decision.wait":"等待","code.delivery.unknownBlocker":"未知阻擋原因","code.delivery.warningFallback":"警告","code.plan.header":"計畫","code.plan.panelTitle":"程式計畫","code.plan.empty":"這個任務尚未建立計畫步驟。","code.plan.replan":"重新規劃","code.plan.status.blocked":"已阻擋","code.plan.status.done":"完成","code.plan.status.pending":"待處理","code.plan.status.running":"執行中","code.plan.title":"計畫","code.plan.replannedSuffix":"(已重新規劃 {count} 次)","code.plan.error.load":"無法載入計畫。","code.plan.error.update":"無法更新計畫。","code.plan.error.stepUpdate":"無法更新計畫步驟。","code.preview.artifactCountMany":"{count} 個成品","code.preview.artifactCountOne":"{count} 個成品","code.preview.blocked":"預覽已阻擋","code.preview.details":"詳細資料","code.preview.header":"輸出","code.preview.iframeTitle":"即時預覽","code.preview.noPreview":"尚未產生建置或預覽成品。","code.preview.notInlineSafe":"最新預覽已可用,但此輸出較適合在內嵌框架外開啟。","code.preview.openArtifact":"開啟成品","code.preview.openLatestArtifact":"開啟最新成品","code.preview.openLatestPreview":"開啟最新預覽","code.preview.openPreview":"開啟預覽","code.preview.title":"建置與預覽","code.relay.action.createThread":"建立分派討論串","code.relay.action.dispatching":"正在分派…","code.relay.action.fanOut":"分派","code.relay.action.refresh":"重新整理","code.relay.action.fanOutSelected":"分派給已選代理人","code.relay.authorKind.agent":"代理人","code.relay.authorKind.system":"系統","code.relay.authorKind.unknown":"未知","code.relay.authorKind.user":"使用者","code.relay.availability.instanceUnavailable":"{providerLabel} 執行個體「{instance}」無法在 cats-runtime 中使用。","code.relay.availability.providerPathMissing":"執行階段沒有回報已設定的 {providerLabel} 供應器路徑。","code.relay.availability.providerPathReady":"{providerLabel} 的執行階段供應器路徑已就緒。","code.relay.availability.runtimeConfigUnavailable":"執行階段供應器設定無法使用。","code.relay.availability.runtimeReadyVia":"執行階段已透過 {target} 就緒。","code.relay.error.agentRequired":"請至少選擇一個代理人。","code.relay.error.fanOutPromptRequired":"分派提示為必填。","code.relay.error.threadRequired":"請先建立或選擇分派討論串。","code.relay.error.threadTitleRequired":"討論串標題為必填。","code.relay.error.missingPayload":"分派請求缺少必要酬載。","code.relay.error.noPayload":"分派回應沒有包含酬載。","code.relay.error.relayFailed":"分派執行失敗。","code.relay.error.rosterUpdateFailed":"更新分派名單失敗。","code.relay.error.threadLoadFailed":"載入分派討論串失敗。","code.relay.error.threadRefreshFailed":"重新整理分派討論串失敗。","code.relay.error.threadCreateFailed":"建立分派討論串失敗。","code.relay.header.codeRelay":"程式分派","code.relay.label.contract":"契約","code.relay.label.contractLoading":"正在載入連接器契約…","code.relay.label.activeThread":"作用中討論串","code.relay.label.default":"預設","code.relay.label.enabled":"啟用","code.relay.label.ended":"結束:{endedAt}","code.relay.label.model":"模型:{model}","code.relay.label.noObjective":"尚未記錄目標。","code.relay.label.noRounds":"尚無回合","code.relay.label.noThreads":"尚無分派討論串","code.relay.label.noneYet":"尚無","code.relay.label.objective":"目標","code.relay.label.proven":"已驗證:{providers}","code.relay.label.repoPath":"儲存庫:{repoPath}","code.relay.label.relayThreadTitle":"分派討論串標題","code.relay.label.repoNoBound":"未綁定","code.relay.label.updated":"更新:{updatedAt}","code.relay.label.mode":"模式:{mode}","code.relay.label.open":"開啟","code.relay.label.quotaNote":"額度備註","code.relay.label.roster":"代理人名單","code.relay.label.roundObjective":"回合目標","code.relay.label.roundPrompt":"分派提示","code.relay.label.roundTimeline":"時間軸","code.relay.label.rounds":"回合","code.relay.label.role":"角色:{role}","code.relay.label.started":"開始:{startedAt}","code.relay.label.statusWaiting":"等待中","code.relay.status.active":"作用中","code.relay.status.available":"可用","code.relay.status.completed":"已完成","code.relay.status.failed":"失敗","code.relay.status.requested":"已請求","code.relay.status.running":"執行中","code.relay.status.unavailable":"不可用","code.relay.status.unknown":"未知","code.relay.status.waitingForAgents":"等待代理人","code.relay.status.waitingForUser":"等待使用者","code.relay.mode.build":"建置","code.relay.mode.discover":"探索","code.relay.mode.document":"文件化","code.relay.mode.fit":"整合","code.relay.mode.humanVerify":"人工驗證","code.relay.mode.repair":"修復","code.relay.mode.review":"審查","code.relay.mode.shape":"塑形","code.relay.role.critic":"評論者","code.relay.role.drafter":"草稿手","code.relay.role.idle":"閒置","code.relay.role.mainCoder":"主要程式代理人","code.relay.role.reviewer":"審查者","code.relay.role.summarizer":"摘要者","code.relay.label.threadShell":"討論串外殼","code.relay.label.threadTitle":"討論串標題","code.relay.phase.phase0":"階段 0","code.relay.phase.phase1":"階段 1","code.relay.phase.phase2":"階段 2","code.relay.phase.fanOut":"分派","code.relay.phase.roster":"名單","code.relay.phase.project":"專案","code.relay.projectThread":"專案討論串","code.relay.projectThreadSummary":"專案討論串摘要","code.relay.runtimeProviderSurface":"執行階段供應器介面","code.relay.runtimeSurface":"執行階段介面","code.relay.threadProject":"專案討論串","code.relay.threadShellTitle":"討論串外殼","code.relay.mode.parallelPrompt":"平行提示","code.relay.noObjective":"尚未記錄目標。","code.relay.notRecorded":"未記錄","code.relay.openDiscoveryRound":"開啟探索回合","code.relay.placeholder.objective":"我們要決定或建置什麼?","code.relay.placeholder.optionalRepo":"選填的本機儲存庫綁定","code.relay.placeholder.fanOutPrompt":"把同一個需求問題發給多個程式代理人。","code.relay.placeholder.quotaNote":"選填的建議備註","code.relay.currentChat":"目前對話:{title}","code.relay.create":"正在建立…","code.relay.defaultThreadTitle":"新的分派討論串","code.relay.loading":"正在載入分派程式工作區…","code.relay.projectThreadHeader":"專案討論串","code.relay.relayToOthers":"分派給其他人(階段 2)","code.relay.targetAgent":"目標代理人","code.relay.threadLabel":"討論串","code.relay.title":"程式分派","code.relay.titleConnectorContract":"連接器契約","code.relay.titleProjectThread":"專案討論串","code.relay.titleTimeline":"時間軸","code.relay.transportUnknown":"未知傳輸","code.relay.transportUnknownWithValue":"未知傳輸({transport})","code.relay.transportRuntimeSessionBridge":"執行階段工作階段橋接","code.sidebar.codespace":"程式工作區","code.sidebar.codeBuilderTitle":"程式建置器","code.sidebar.codespaces":"程式工作區","code.workspaceSource.codeTask":"程式碼任務","code.workspaceSource.conversationRepo":"對話儲存庫","code.workspaceSource.runtimeCwd":"執行階段工作目錄","code.relay.titleProjectThreadSection":"專案討論串","code.sidebar.teamCode":"團隊程式","code.sidebar.peerCode":"同儕程式","code.sidebar.newCode":"新增程式","code.sidebar.noCodesYet":"目前沒有程式對話","code.sidebar.noConversationsSummary":"目前沒有程式對話","code.relay.noRoundsHint":"使用上方分派表單開啟第一個探索回合。","code.sidebar.artifacts":"成品","code.sidebar.build":"建置","code.sidebar.relay":"分派","code.workspace.sectionCodeOutput":"程式輸出","code.workspace.summary.binding":"綁定","code.workspace.summary.codespace":"程式工作區","code.workspace.summary.kind":"類型:{kind}","code.workspace.summary.ownership":"歸屬:{ownership}","code.workspace.summary.chatContext":"對話脈絡:{title}","code.workspace.summary.noChatContext":"沒有對話脈絡","code.workspace.summary.noChat":"沒有對話","code.workspace.summary.binding.conversationRepo":"建置流程已綁定到選取的對話儲存庫。","code.workspace.summary.binding.managedRoom":"建置流程已綁定到這個房間管理的程式工作區。","code.workspace.summary.binding.userSelected":"建置流程已綁定到使用者選取的本機資料夾。","code.workspace.kind.conversationRepo":"目前對話儲存庫","code.workspace.kind.managedRoom":"房間管理的工作區","code.workspace.kind.userSelected":"使用者選取的資料夾","code.workspace.ownership.conversationBound":"對話擁有","code.workspace.ownership.roomOwned":"房間擁有","code.workspace.ownership.ownerSelected":"使用者選取","code.workspace.source.task":"程式碼任務","code.workspace.source.conversationRepo":"對話儲存庫","code.workspace.source.runtimeCwd":"執行階段工作目錄","code.workspaces.listHeader":"程式工作區","code.workspaces.listNoCodespaces":"目前沒有程式工作區。啟動一個指定儲存庫、資料夾、工作樹或受管理房間的程式工作階段後,會出現在這裡。","code.workspaces.loading":"正在載入程式工作區…","code.workspaces.error":"無法載入程式工作區:{error}","code.workspaces.loadError":"載入程式工作區失敗。","code.workspaces.sourceCodes":"程式碼任務","code.workspaces.sourceRepo":"對話儲存庫","code.workspaces.sourceRuntime":"執行階段工作目錄","code.workspaces.sourceArtifact":"成品錨點","code.workspaces.ariaOpen":"開啟程式工作區 {title}","code.workspaceStatus.active":"作用中","code.workspaceStatus.archived":"已封存","code.workspaceStatus.draft":"草稿","code.workspaceStatus.ready":"就緒","code.workspaceStatus.unknown":"未知","code.workspaceDetail.error":"無法載入程式工作區。","code.workspaceDetail.loading":"正在載入程式工作區…","code.workspaceDetail.title":"程式工作區","code.workspaceDetail.notFound":"找不到程式工作區。它可能已被移除,或 URL 已變更。","code.workspaceDetail.missingId":"程式工作區 ID 為必填。","code.workspaceDetail.backToList":"返回所有程式工作區 →","code.workspaceDetail.overviewTitle":"總覽","code.workspaceDetail.artifactSection":"成品","code.workspaceDetail.conversationsSection":"對話","code.workspaceDetail.tasksSection":"任務","code.workspaceDetail.noArtifacts":"沒有成品","code.workspaceDetail.noArtifactsDesc":"尚未連結成品。這個程式工作區產生的建置、預覽或文件會出現在這裡。","code.workspaceDetail.noConversations":"目前沒有對話連結到這個程式工作區。","code.workspaceDetail.noTasks":"目前沒有程式碼任務連結到這個程式工作區。","code.workspaceDetail.overviewPath":"路徑","code.workspaceDetail.overviewSource":"來源","code.workspaceDetail.overviewStatus":"狀態","code.workspaceDetail.overviewLastActive":"最後活動","code.workspaceDetail.overviewSummary":"摘要","code.workspaceDetail.noSummary":"尚無摘要。","code.workspaceDetail.metric.conversations":"對話","code.workspaceDetail.metric.tasks":"任務","code.workspaceDetail.metric.artifacts":"成品","code.workspaceDetail.metric.id":"識別碼","code.workspaceDetail.overviewNoArtifacts":"尚無成品","code.workspaceDetail.conversationsEmpty":"沒有連結的對話","code.workspaceDetail.tasksEmpty":"沒有連結的任務","code.workspaceDetail.taskLabel":"任務","code.workspaceDetail.artifactsHeader":"此程式工作區的成品","code.workspace.source.unknown":"未知來源","code.delivery.blocked":"交付已阻擋"},es={en:_p,"zh-TW":Kp},qp=["zh","zh-tw","zh-hant","zh-hk","zh-mo","chinese","traditional","traditional chinese","mandarin","中文","繁體中文","繁体中文","繁體","繁体","國語","国语","華語","华语"],$p=["zh-cn","zh-hans","zh-sg","zh-my","simplified","simplified chinese","簡體中文","简体中文","簡體","简体"],zp=["zh-tw-","zh-hant-","zh-hk-","zh-mo-"],Vp=["zh-cn-","zh-hans-","zh-sg-","zh-my-"],Yp=new Set(qp),Qp=new Set($p);function gl(e){if(!e)return null;for(const t of Jp(e)){const a=eh(t);if(a)return a}return null}function Jp(e){return e.split(",").map((t,a)=>{const[o,...n]=t.trim().split(";"),s=Xp(o),l=Zp(n);return{token:s,quality:l,index:a}}).filter(t=>t.token.length>0&&t.quality>0).sort((t,a)=>a.quality-t.quality||t.index-a.index).map(t=>t.token)}function Xp(e){return(e??"").trim().replace(/_/gu,"-").toLowerCase()}function Zp(e){const t=e.find(s=>/^q\s*=/iu.test(s.trim()));if(!t)return 1;const a=/^q\s*=\s*(?<quality>.*)$/iu.exec(t.trim());if(!a?.groups)return 1;const o=a.groups.quality.trim();if(!/^\d+(?:\.\d+)?$/u.test(o))return 1;const n=Number.parseFloat(o);return Math.min(Math.max(n,0),1)}function eh(e){return e==="en"||e.startsWith("en-")?"en":ts(e,Yp,zp)?"zh-TW":(ts(e,Qp,Vp),null)}function ts(e,t,a){return t.has(e)?!0:a.some(o=>e.startsWith(o))}function th(e){return gl(e)??"en"}function ah(e,t){return t?e.replace(/\{([^{}]+)\}/g,(a,o)=>{const n=t[o];return n===void 0?a:String(n)}):e}function Oe(e){return function(a,o){const n=a in i?i[a]:a;return ah(es[e][n]??es.en[n],o)}}const Vt=Oe("en"),Yt=Oe("en"),rh={chat:{nameKey:i.platformProductChatName,subtitleKey:i.platformProductChatSubtitle,settingsLabelKey:i.platformProductChatSettingsLabel},code:{nameKey:i.platformProductCodeName,subtitleKey:i.platformProductCodeSubtitle,settingsLabelKey:i.platformProductCodeSettingsLabel},work:{nameKey:i.platformProductWorkName,subtitleKey:i.platformProductWorkSubtitle,settingsLabelKey:i.platformProductWorkSettingsLabel}};function Zo(e){return rh[e]??null}function oh(e,t=Yt){return sh(e.id,e.productName,t)}function nh(e,t=Yt){return ih(e.id,e.subtitle,t)}function sh(e,t,a=Yt){const o=Zo(e);return o?a(o.nameKey):t}function ih(e,t,a=Yt){const o=Zo(e);return o?a(o.subtitleKey):t}function fl(e,t,a=Yt){const o=Zo(e);return o?a(o.settingsLabelKey):t}function lh(e,t,a=Yt){return t.id===e?fl(e,t.label,a):t.label}const as="en",wl="auto",kl=()=>{},bl=d.createContext({locale:as,languagePreference:wl,setLanguagePreference:kl,t:Oe(as)});function Wt({children:e,languagePreference:t=wl,locale:a,setLanguagePreference:o=kl}){const n=d.useMemo(()=>({locale:a,languagePreference:t,setLanguagePreference:o,t:Oe(a)}),[t,a,o]);return r.jsx(bl.Provider,{value:n,children:e})}const fo=["chat","work","code"],ch=["chat","work","code"],dh=["chat"];function yl(e){return fo.includes(e)}function ia(e,t=null){return typeof e=="string"&&yl(e)?e:t}function Br(e,t){const a=new Set(t),o=[];for(const n of e)!yl(n)||!a.has(n)||o.includes(n)||o.push(n);return o}function uh(e,t={}){const a=Br(t.allowed??fo,fo),o=Br(Array.isArray(e)?e.filter(s=>typeof s=="string"):[],a);if(o.length>0)return o;const n=t.fallback??null;return!n||n.length===0?[]:Br(n,a)}function en(e,t,a={}){return uh(e,a).includes(t)}function ph(e){return ch.includes(e)}function gr(){return[...dh]}const hh=null,mh="/api/work",gh="/api/code",fh={chat:hh,work:mh,code:gh};function wh(e){return fh[e]??null}const rs="/settings";function xa(e){return e===rs||e.startsWith(`${rs}/`)}const kh="/setup",os="/lobby",ns="/products",bh="/entities",yh=[bh];function vl(e){return e===kh}function fa(e){return e===os||e.startsWith(`${os}/`)}function Cl(e){return e===ns||e.startsWith(`${ns}/`)}function Sl(e){return yh.some(t=>e===t||e.startsWith(`${t}/`))}function vh(e){return vl(e)||fa(e)||Cl(e)||Sl(e)||xa(e)}const Fr=Object.fromEntries(Up().map(e=>[e.id,{surface:e.id,routePrefix:e.routePrefix,apiBase:wh(e.id),placeholder:!ph(e.id)}]));function Ch(e){return Hp(e)}function Sh(e,t,a,o="chat"){const n=ia(e);if(n)return n;const s=ia(t);if(s)return s;const l=ia(a);if(l)return l;const c=ia(o);return c||"chat"}function W(){return d.useContext(bl)}function It(){const[e,t]=d.useState(null),a=d.useCallback(s=>new Promise(l=>{t({options:s,resolve:l})}),[]),o=d.useCallback(async s=>await a(s)==="confirm",[a]),n=d.useCallback(s=>{e&&(e.resolve(Lh(s)),t(null))},[e]);return{dialog:e,confirm:o,choose:a,handleClose:n}}function Bt({dialog:e,onClose:t}){const{t:a}=W(),o=d.useRef(null);if(d.useEffect(()=>{e&&o.current?.focus()},[e]),d.useEffect(()=>{if(!e)return;function s(l){l.key==="Escape"&&t("cancel")}return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),!e)return null;const n=e.options.defaultAction??"confirm";return r.jsx("div",{className:"confirmOverlay",onClick:()=>t("cancel"),children:r.jsxs("div",{className:"confirmDialog",onClick:s=>s.stopPropagation(),children:[r.jsx("p",{className:"confirmTitle",children:e.options.title}),r.jsx("p",{className:"confirmMessage",children:e.options.message}),r.jsxs("div",{className:"confirmActions",children:[r.jsx("button",{ref:n==="cancel"?o:null,className:"confirmCancelButton",type:"button",onClick:()=>t("cancel"),children:e.options.cancelLabel??a(i.sharedCommonCancel)}),e.options.auxiliaryLabel?r.jsx("button",{ref:n==="auxiliary"?o:null,className:"confirmAuxiliaryButton",type:"button",onClick:()=>t("auxiliary"),children:e.options.auxiliaryLabel}):null,r.jsx("button",{ref:n==="confirm"?o:null,className:"confirmDestructiveButton",type:"button",onClick:()=>t("confirm"),children:e.options.confirmLabel??a(i.sharedCommonDelete)})]})]})})}function Lh(e){return typeof e=="boolean"?e?"confirm":"cancel":e}function Rh({id:e,title:t,badge:a,isOpen:o,onToggle:n,children:s}){return r.jsxs("div",{className:"accordionSection",children:[r.jsxs("button",{type:"button",className:"accordionHeader",onClick:()=>n(e),"aria-expanded":o,children:[r.jsx("span",{className:"accordionHeaderTitle",children:t}),a!=null&&a>0?r.jsx("span",{className:"accordionBadge",children:a}):null,r.jsx("svg",{className:o?"accordionChevron accordionChevronOpen":"accordionChevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M4.5 2.5 8 6 4.5 9.5"})})]}),o?r.jsx("div",{className:"accordionBody",children:s}):null]})}const wo="cats:side-panel-layout-change";function Ph({title:e,activeSection:t,onSectionToggle:a,onClose:o,sections:n,className:s="",position:l="side"}){const c=d.useRef(null),{t:u}=W(),p=["sidePanel",l==="bottom"?"sidePanelBottom":"",s].filter(Boolean).join(" ");d.useEffect(()=>{function h(f){if(c.current&&!c.current.contains(f.target)){if(f.target.closest(".sidePanelToggle"))return;o()}}function k(f){f.key==="Escape"&&o()}return document.addEventListener("mousedown",h),document.addEventListener("keydown",k),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",k)}},[o]);const g=l==="bottom"?"bottom":"side";return d.useEffect(()=>(ss(),()=>{ss()}),[p,g]),r.jsxs("aside",{className:p,ref:c,"data-side-panel-position":g,children:[r.jsxs("div",{className:"sidePanelHeader",children:[r.jsx("strong",{children:e}),r.jsx("button",{type:"button",className:"chromeButton",onClick:o,"aria-label":u(i.designSidePanelCloseLabel),children:"×"})]}),r.jsx("div",{className:"sidePanelBody",children:n.map(h=>r.jsx(Rh,{id:h.id,title:h.title,badge:h.badge,isOpen:t===h.id,onToggle:a,children:h.children},h.id))})]})}function ss(){typeof window>"u"||window.dispatchEvent(new Event(wo))}let it=null,Pt=null,ca=null;function Ll(){return it||(it=document.createElement("div"),it.className="tooltipPortal",document.body.appendChild(it)),it}function tn(){ca&&(clearTimeout(ca),ca=null)}function Ah(e){const t=e.getAttribute("data-tooltip-delay");if(!t)return 0;const a=Number(t);return Number.isFinite(a)&&a>0?a:0}function xh(e){if(!e.isConnected)return!1;try{return e.matches(":hover")}catch{return!0}}function is(e,t){const a=Ll();a.textContent=t,a.classList.add("tooltipVisible");const o=e.getBoundingClientRect(),n=6;a.style.left=`${o.left+o.width/2}px`,a.style.top=`${o.top-n}px`,a.style.transform="translate(-50%, -100%)";const s=a.getBoundingClientRect();s.top<4&&(a.style.top=`${o.bottom+n}px`,a.style.transform="translate(-50%, 0)"),a.getBoundingClientRect().right>window.innerWidth-4&&(a.style.left=`${window.innerWidth-4}px`,a.style.transform=s.top<4?"translate(-100%, 0)":"translate(-100%, -100%)")}function Th(e){const t=e.getAttribute("data-tooltip");if(!t)return;Pt&&(clearTimeout(Pt),Pt=null),tn();const a=Ah(e);if(a>0){ca=setTimeout(()=>{ca=null;const o=e.getAttribute("data-tooltip");o&&xh(e)&&is(e,o)},a);return}is(e,t)}function Dh(){tn(),Pt=setTimeout(()=>{Ll().classList.remove("tooltipVisible")},50)}function ko(){tn(),Pt&&(clearTimeout(Pt),Pt=null),it&&it.classList.remove("tooltipVisible")}function Nh(){ko()}function jh(){function e(o){const n=o.target.closest?.("[data-tooltip]");n&&Th(n)}function t(o){o.target.closest?.("[data-tooltip]")&&Dh()}function a(){ko()}return document.addEventListener("mouseover",e,!0),document.addEventListener("mouseout",t,!0),document.addEventListener("click",a,!0),()=>{document.removeEventListener("mouseover",e,!0),document.removeEventListener("mouseout",t,!0),document.removeEventListener("click",a,!0),ko(),it&&(it.remove(),it=null)}}function Or(e,t={}){const a=t.pinnedOnly?'[data-side-panel-position="side"][data-side-panel-pinned="true"]':'[data-side-panel-position="side"]',n=Array.from(e.querySelectorAll(a)).filter(s=>Mh(s)).map(s=>s.getBoundingClientRect()).filter(s=>s.width>0&&s.height>0).reduce((s,l)=>s==null?l.left:Math.min(s,l.left),null);return n==null?null:Math.round(n)}function Mh(e){const t=e.checkVisibility;if(typeof t=="function")try{return t.call(e,{checkOpacity:!0,checkVisibilityCSS:!0,contentVisibilityAuto:!0})}catch{}if(typeof window>"u"||typeof window.getComputedStyle!="function")return!0;const a=window.getComputedStyle(e);if(a.display==="none"||a.visibility==="hidden")return!1;const o=Number(a.opacity);return!(Number.isFinite(o)&&o===0)}function Eh(e,t=!1){return e==="bubble"||t&&e==="auto"?"welcome-peek":"open"}function Ih(){return"collapsed"}function Bh(e){return e==="drawer"?"open":"welcome-peek"}function Fh(e,t){return t<=e.lastQueuedToken?e:{lastQueuedToken:t,pendingToken:t}}function Oh(e,t){return t||e.pendingToken==null?{queue:e,shouldOpen:!1}:{queue:{...e,pendingToken:null},shouldOpen:!0}}function Wh(e){const t=Fh(e.queue,e.token),a=Oh(t,e.isHiddenRoute);return a.shouldOpen?{queue:a.queue,commit:{innerState:Bh(e.mode),proactive:!0}}:{queue:a.queue,commit:null}}function Uh(e,t,a=!1){return e==="collapsed"?{nextState:Eh(t,a),persistSeen:!1}:e==="welcome-peek"?t==="bubble"||a&&t==="auto"?{nextState:"collapsed",persistSeen:!0}:{nextState:"open",persistSeen:!0}:{nextState:"collapsed",persistSeen:!1}}function Hh(e){return{nextState:"collapsed",persistSeen:e==="welcome-peek"}}function ls(){return Ih()}function Gh(e,t,a=0,o="floating"){const n=ve(),[s,l]=d.useState(()=>ls()),[c,u]=d.useState(!1),p=d.useRef({lastQueuedToken:0,pendingToken:null}),g=d.useRef(e);g.current=e;const h=n.pathname==="/setup",k=xa(n.pathname),f=h||k&&o!=="docked",w=k&&o==="docked";d.useEffect(()=>{f&&(u(!1),l(y=>{const L=ls();return y===L?y:L}))},[f]),d.useEffect(()=>{const y=Wh({queue:p.current,token:a,isHiddenRoute:f,mode:g.current});if(p.current=y.queue,!y.commit)return;const{innerState:L,proactive:x}=y.commit;u(x),l(T=>T===L?T:L)},[f,a]);const b=f?"hidden":s,m=d.useCallback(()=>{u(!1),l(y=>{const L=Uh(y,e,w);return L.persistSeen&&t(),L.nextState})},[e,t,w]),C=d.useCallback(()=>{u(!1),l(y=>{const L=Hh(y);return L.persistSeen&&t(),L.nextState})},[t]),v=d.useCallback(()=>{u(!1),l("collapsed"),t()},[t]);return{viewState:b,proactive:c,toggle:m,collapse:C,dismissWelcome:v}}const Rl={x:.03,y:.5};function Pl(e,t="floating"){return vl(e)?"hidden":xa(e)?t==="docked"?"workspace":"hidden":fa(e)?"lobby":"workspace"}const ot=16,_h=28,Ba=_h/2,Fa=24,Kh=24,qh=4;function cs(e){const t=e.currentX-e.startX,a=e.currentY-e.startY;return Math.hypot(t,a)>=qh}function $h(e){const{surface:t,viewport:a,topChromeBottom:o,sidebarRight:n,rightBlockedLeft:s=null}=e,l=t==="workspace"&&n!=null?Math.max(ot,n+ot):ot,c=t==="lobby"&&o!=null?Math.max(ot,o+ot):ot,u=t==="workspace"&&s!=null?Math.min(a.width-ot,s-ot):a.width-ot,p=l+Ba,g=c+Ba,h=Math.max(p+1,u-Ba),k=Math.max(g+1,a.height-ot-Ba);return{left:p,top:g,right:h,bottom:k}}function Al(e){const{anchor:t,viewport:a,safeArea:o}=e,n=t.x*a.width,s=t.y*a.height;return{x:Math.min(o.right,Math.max(o.left,n)),y:Math.min(o.bottom,Math.max(o.top,s))}}function bo(e){const{pointerX:t,pointerY:a,viewport:o}=e;return o.width<=0||o.height<=0?{...Rl}:{x:Math.min(1,Math.max(0,t/o.width)),y:Math.min(1,Math.max(0,a/o.height))}}function xl(e){return e??{...Rl}}function zh(e){const t=bo({pointerX:e.pointerX,pointerY:e.pointerY,viewport:e.viewport}),a=xl(t),o=Al({anchor:a,viewport:e.viewport,safeArea:e.safeArea}),n=bo({pointerX:o.x,pointerY:o.y,viewport:e.viewport});return e.undock?{placement:"floating",floatingAnchor:n}:{floatingAnchor:n}}function Vh(e){const{pointerX:t,pointerY:a,slotRect:o}=e;return o?t>=o.left-Fa&&t<=o.right+Fa&&a>=o.top-Fa&&a<=o.bottom+Fa:!1}function yo(e){return e==="lobby"?"lobby":e==="workspace"?"workspace":null}function Yh(e){const{placement:t,anchor:a,surface:o,viewport:n,safeArea:s}=e;if(o==="hidden")return{kind:"hidden"};if(t==="docked"){const h=yo(o);return h?{kind:"docked",slot:h}:{kind:"hidden"}}const l=xl(a),{x:c,y:u}=Al({anchor:l,viewport:n,safeArea:s}),p=bo({pointerX:c,pointerY:u,viewport:n}),g=Math.abs(p.x-l.x)>.001||Math.abs(p.y-l.y)>.001?"collision_reflow":null;return{kind:"floating",x:c,y:u,overrideReason:g}}const Tl=d.createContext(null);function Qh({guideCat:e,placement:t,floatingAnchor:a,sidecarMode:o,proactiveGreetingToken:n=0,onPersistSeen:s,onCommit:l,children:c}){const u=Gh(o,s,n,t),p=ve(),g=Pl(p.pathname,t),[h,k]=d.useState(()=>ds()),[f,w]=d.useState(null),[b,m]=d.useState(null),[C,v]=d.useState(null),y=d.useRef({lobby:null,workspace:null}),L=d.useRef({lobby:null,workspace:null}),x=d.useRef(null),T=d.useRef(!1),N=d.useRef(null),[A,R]=d.useState(null),P=d.useCallback(M=>{N.current=M,R(M)},[]);d.useEffect(()=>{if(typeof window>"u")return;const M=()=>k(ds());return window.addEventListener("resize",M),()=>window.removeEventListener("resize",M)},[]),d.useEffect(()=>{if(!(typeof document>"u"))return hs({document,selector:".lobbyTopBar",readValue:M=>M?Math.round(M.getBoundingClientRect().bottom):null,onChange:M=>{w(H=>H===M?H:M)}})},[p.pathname]),d.useEffect(()=>{if(!(typeof document>"u"))return hs({document,selector:"aside.sidebar",readValue:M=>M?Math.round(M.getBoundingClientRect().right):null,onChange:M=>{m(H=>H===M?H:M)}})},[p.pathname]),d.useEffect(()=>{if(typeof document>"u"||typeof window>"u")return;const M=()=>{const H=g==="workspace"?Or(document):null;v(V=>V===H?V:H)};return M(),window.addEventListener("resize",M),window.addEventListener(wo,M),()=>{window.removeEventListener("resize",M),window.removeEventListener(wo,M)}},[g,p.pathname]);const I=d.useMemo(()=>$h({surface:g,viewport:h,topChromeBottom:f,sidebarRight:b,rightBlockedLeft:C}),[g,h,f,b,C]),O=d.useMemo(()=>Yh({placement:t,anchor:a,surface:g,viewport:h,safeArea:I}),[t,a,g,h,I]),E=d.useMemo(()=>{if(!A||!A.activated)return O;const M=A.currentX-A.startX,H=A.currentY-A.startY;return A.mode==="floating"?{kind:"floating",x:Oa(A.basePillX+M,h.width),y:Oa(A.basePillY+H,h.height),overrideReason:null}:A.mode==="docked"&&!A.escaped?O:A.mode==="docked"&&A.escaped?{kind:"floating",x:Oa(A.basePillX+M,h.width),y:Oa(A.basePillY+H,h.height),overrideReason:null}:O},[O,A,h]),$=d.useMemo(()=>{const M=yo(g),H=t==="docked"&&M!=null,V=A?.mode==="floating"&&A.activated?A.overSlot:null;return{lobby:{active:H&&M==="lobby",preview:V==="lobby"},workspace:{active:H&&M==="workspace",preview:V==="workspace"}}},[t,g,A]),_=d.useCallback((M,H)=>{y.current[M]=H,L.current[M]=H?Ur(H):null},[]),ee=d.useCallback(()=>{Object.keys(y.current).forEach(M=>{const H=y.current[M];L.current[M]=H?Ur(H):null})},[]),B=d.useCallback(M=>{const H=y.current[M];return H?Ur(H):null},[]),q=d.useCallback((M,H,V=!1)=>zh({pointerX:M,pointerY:H,viewport:h,safeArea:I,undock:V}),[I,h]),F=d.useCallback(M=>{l({placement:"docked"})},[l]),Q=d.useCallback(M=>{const H=cs({startX:M.startX,startY:M.startY,currentX:M.currentX,currentY:M.currentY}),V=M.basePillX+(M.currentX-M.startX),Se=M.basePillY+(M.currentY-M.startY);M.mode==="floating"&&M.overSlot?(F(M.overSlot),T.current=!0):M.mode==="floating"&&H?(l(q(V,Se)),T.current=!0):M.mode==="docked"&&M.escaped&&(l(q(V,Se,!0)),T.current=!0),P(null)},[F,l,q]),me=d.useCallback(M=>{const H=N.current;if(!H||M.pointerId!==H.pointerId)return;const V={...H,currentX:M.clientX,currentY:M.clientY};if(!H.activated){if(!cs({startX:H.startX,startY:H.startY,currentX:M.clientX,currentY:M.clientY})){P(V);return}V.activated=!0,typeof document<"u"&&document.body.classList.add(Wr),us(),u.collapse(),ee()}if(H.mode==="floating"){const Se=yo(g);if(Se){const z=L.current[Se];Vh({pointerX:M.clientX,pointerY:M.clientY,slotRect:z})?V.overSlot=Se:V.overSlot=null}else V.overSlot=null}else if(H.mode==="docked"){const Se=M.clientX-H.startX,z=M.clientY-H.startY;!H.escaped&&Math.hypot(Se,z)>=Kh&&(V.escaped=!0)}P(V)},[u,ee,P,g]),U=d.useCallback(M=>{const H=N.current;if(!H||M.pointerId!==H.pointerId)return;const V={...H,currentX:M.clientX,currentY:M.clientY};Q(V)},[Q]);d.useEffect(()=>{if(!A)return;const M=H=>{const V=N.current;!V||H.pointerId!==V.pointerId||P(null)};return window.addEventListener("pointermove",me),window.addEventListener("pointerup",U),window.addEventListener("pointercancel",M),()=>{window.removeEventListener("pointermove",me),window.removeEventListener("pointerup",U),window.removeEventListener("pointercancel",M)}},[A,me,U,P]);const j=!!A?.activated,G=d.useMemo(()=>g==="workspace"&&b!=null?Math.max(0,Math.round(b)):0,[g,b]);d.useEffect(()=>{if(!(typeof document>"u")&&j)return document.body.classList.add(Wr),()=>{document.body.classList.remove(Wr),us()}},[j]);const J=d.useCallback(M=>{if(M.button!==0&&M.pointerType==="mouse")return;M.preventDefault(),M.stopPropagation(),T.current=!1,ps(),v(Or(document,{pinnedOnly:!0}));const H=M.currentTarget,V=H.getBoundingClientRect(),Se=V.left+V.width/2,z=V.top+V.height/2;try{H.setPointerCapture(M.pointerId)}catch{}P({mode:"floating",pointerId:M.pointerId,startX:M.clientX,startY:M.clientY,currentX:M.clientX,currentY:M.clientY,basePillX:Se,basePillY:z,activated:!1,overSlot:null,escaped:!1})},[]),X=d.useCallback(M=>{if(M.button!==0&&M.pointerType==="mouse")return;M.preventDefault(),M.stopPropagation(),T.current=!1,ps(),v(Or(document,{pinnedOnly:!0}));const H=M.currentTarget,V=H.getBoundingClientRect(),Se=V.left+V.width/2,z=V.top+V.height/2;try{H.setPointerCapture(M.pointerId)}catch{}P({mode:"docked",pointerId:M.pointerId,startX:M.clientX,startY:M.clientY,currentX:M.clientX,currentY:M.clientY,basePillX:Se,basePillY:z,activated:!1,overSlot:null,escaped:!1})},[]),oe=d.useCallback(()=>{const M=T.current;return T.current=!1,M},[]),we=d.useCallback(()=>{T.current=!1},[]),Ie=d.useCallback(()=>{if(E.kind!=="docked")return;const M=B(E.slot);if(!M)return;const H=(M.left+M.right)/2,V=(M.top+M.bottom)/2;l(q(H,V,!0))},[E,l,q,B]),xe=d.useMemo(()=>({guideCat:e,projection:E,dockSlotState:$,pillRef:x,registerSlotRef:_,onFloatingPointerDown:J,onDockedPointerDown:X,consumePillClickSuppression:oe,clearPillClickSuppression:we,presentation:u,dragActive:j,panelOriginX:G,getDockSlotRect:B,undock:Ie}),[e,E,$,_,J,X,oe,we,u,j,G,B,Ie]);return r.jsx(Tl.Provider,{value:xe,children:c})}function an(){const e=d.useContext(Tl);if(!e)throw new Error("useGuideCatPlacement requires GuideCatPlacementProvider");return e}function Jh(e){const{registerSlotRef:t}=an();return d.useCallback(a=>{t(e,a)},[t,e])}function ds(){return typeof window>"u"?{width:0,height:0}:{width:window.innerWidth,height:window.innerHeight}}function Oa(e,t){return t<=0?e:Math.min(t,Math.max(0,e))}function us(){Nh()}const Dl=Symbol.for("cats.guideCat.dismissTransientChrome");function Xh(e){return!!e[Dl]}function ps(){if(typeof document>"u"||typeof MouseEvent>"u")return;const e=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:typeof window<"u"?window:void 0,button:0});e[Dl]=!0,document.body.dispatchEvent(e)}const Wr="guideCatDragging";function Ur(e){const t=e.getBoundingClientRect();return{left:t.left,top:t.top,right:t.right,bottom:t.bottom}}function hs(e){const{document:t,selector:a,readValue:o,onChange:n}=e,s=globalThis.ResizeObserver,l=globalThis.MutationObserver,c=t.body??t.documentElement;if(!c)return n(o(t.querySelector(a))),()=>{};let u=null,p=null,g=null;const h=()=>{p?.disconnect(),g?.disconnect(),p=null,g=null},k=()=>{n(o(u))},f=()=>{u&&typeof s=="function"&&(p=new s(k),p.observe(u)),u&&typeof l=="function"&&(g=new l(k),g.observe(u,{attributes:!0,attributeFilter:["class","style"]}))},w=()=>{const m=t.querySelector(a);return m===u?!1:(h(),u=m,f(),k(),!0)};let b=null;return typeof l=="function"&&(b=new l(()=>{u!=null&&(u.isConnected??!0)||w()}),b.observe(c,{childList:!0,subtree:!0})),w()||k(),()=>{h(),b?.disconnect()}}const fr="cats.guide-cat-ui-prefs",Nl=1,Gt={sidecarSeen:!1,sidecarMode:"auto",placement:"floating",floatingAnchor:null},ms=new Set;function wa(){const e=globalThis;return typeof e.addEventListener!="function"||typeof e.removeEventListener!="function"?null:e}function Zh(e,t){(wa()===null?d.useEffect:d.useLayoutEffect)(e,t)}function em(e){if(typeof e!="object"||e===null)return null;const t=e,a=t.x,o=t.y;return typeof a!="number"||typeof o!="number"||!Number.isFinite(a)||!Number.isFinite(o)?null:{x:Math.min(1,Math.max(0,a)),y:Math.min(1,Math.max(0,o))}}function tm(e){return e==="auto"||e==="drawer"||e==="bubble"?e:Gt.sidecarMode}function am(e){return e==="floating"||e==="docked"?e:Gt.placement}function rm(e,t){return{sidecarSeen:t.sidecarSeen??e.sidecarSeen,sidecarMode:t.sidecarMode??e.sidecarMode,placement:t.placement??e.placement,floatingAnchor:t.floatingAnchor!==void 0?t.floatingAnchor:e.floatingAnchor}}function rn(e){if(!e)return null;try{const t=JSON.parse(e);if(typeof t!="object"||t===null)return null;const a=t;return a.version===Nl?{sidecarSeen:a.sidecarSeen===!0,sidecarMode:tm(a.sidecarMode),placement:am(a.placement),floatingAnchor:em(a.floatingAnchor)}:null}catch{return null}}function jl(e){ms.has(e)||(ms.add(e),globalThis.console?.warn?.(`[guide-cat-ui-prefs] Ignoring unsupported or malformed stored prefs during ${e}.`))}function om(e){const t={version:Nl,sidecarSeen:e.sidecarSeen,sidecarMode:e.sidecarMode,placement:e.placement,floatingAnchor:e.floatingAnchor?{...e.floatingAnchor}:null};return JSON.stringify(t)}function nm(e){if(!e)return null;try{return rn(e.getItem(fr))}catch{return null}}function sm(e){if(!e)return null;try{return e.getItem(fr)}catch{return null}}function Ml(e,t){if(!e)return{persisted:!1,prefs:t};try{e.setItem(fr,om(t));const a=nm(e);if(a)return{persisted:!0,prefs:a}}catch{}return{persisted:!1,prefs:t}}function im(e){const{storage:t}=e,a=sm(t),o=rn(a);if(o)return{prefs:o,source:"local",persisted:!0};if(a!==null)return jl("bootstrap"),{prefs:{...Gt},source:"defaults",persisted:!1};const n={...Gt},s=Ml(t,n).persisted;return{prefs:n,source:"defaults",persisted:s}}function Hr(e,t){return e.sidecarSeen===t.sidecarSeen&&e.sidecarMode===t.sidecarMode&&e.placement===t.placement&&e.floatingAnchor?.x===t.floatingAnchor?.x&&e.floatingAnchor?.y===t.floatingAnchor?.y}class lm{constructor(t){this.storage=t}prefs={...Gt};hydrated=!1;listeners=new Set;storageListening=!1;getSnapshot=()=>this.prefs;isHydrated(){return this.hydrated}subscribe=t=>(this.listeners.add(t),this.ensureStorageListener(),()=>{this.listeners.delete(t),this.listeners.size===0&&this.teardownStorageListener()});ensureHydrated(){if(this.hydrated)return;const t=im({storage:this.storage});this.prefs=t.prefs,this.hydrated=!0}update(t){this.hydrated||this.ensureHydrated();const a=rm(this.prefs,t);if(Hr(this.prefs,a))return;const o=Ml(this.storage,a).prefs;this.prefs=o,this.hydrated=!0,this.emit()}emit(){this.listeners.forEach(t=>t())}ensureStorageListener(){const t=wa();!t||this.storageListening||(t.addEventListener?.("storage",this.handleStorageEvent),this.storageListening=!0)}teardownStorageListener(){const t=wa();!t||!this.storageListening||(t.removeEventListener?.("storage",this.handleStorageEvent),this.storageListening=!1)}handleStorageEvent=t=>{if(t.key!==fr)return;if(t.newValue===null){const o={...Gt};if(Hr(this.prefs,o))return;this.prefs=o,this.hydrated=!0,this.emit();return}const a=rn(t.newValue);if(!a){jl("storage-event");return}Hr(this.prefs,a)||(this.prefs=a,this.hydrated=!0,this.emit())}}function El(e){return new lm(e)}let Gr=null;function cm(){return Gr||(Gr=El(wa()?.localStorage??null)),Gr}function on(e={}){const{hydrate:t=!0}=e,a=d.useMemo(()=>wa()===null?El(null):cm(),[]),[,o]=d.useState(0);Zh(()=>{!t||a.isHydrated()||(a.ensureHydrated(),o(l=>l+1))},[t,a]);const n=d.useSyncExternalStore(a.subscribe,a.getSnapshot,a.getSnapshot),s=d.useCallback(l=>{a.update(l)},[a]);return{prefs:n,hydrated:t&&a.isHydrated(),update:s}}const Qa=["claude","codex","antigravity","grok","cline","devin","cursor","copilot","opencode","kilo","goose","pi","auggie","junie","kiro","ollama","openclaw"],dm={openclaw:[{value:"openclaw-coder",label:"openclaw-coder (default)",default:!0}],claude:[{value:"opus",label:"Opus 4.7 with 1M context",default:!0},{value:"sonnet",label:"Sonnet 4.6"},{value:"haiku",label:"Haiku 4.5"}],codex:[{value:"gpt-5.4",label:"gpt-5.4",default:!0},{value:"gpt-5.4-mini",label:"gpt-5.4-mini"},{value:"gpt-5.3-codex",label:"gpt-5.3-codex"},{value:"gpt-5.3-codex-spark",label:"gpt-5.3-codex-spark"},{value:"gpt-5.2-codex",label:"gpt-5.2-codex"},{value:"gpt-5.2",label:"gpt-5.2"},{value:"gpt-5.1-codex-max",label:"gpt-5.1-codex-max"},{value:"gpt-5.1-codex-mini",label:"gpt-5.1-codex-mini"}],antigravity:[{value:"antigravity-default",label:"Antigravity default",default:!0}],grok:[{value:"grok-4.5",label:"grok-4.5 (default)",default:!0}],cline:[{value:"cline-default",label:"Cline default",default:!0}],devin:[{value:"devin-default",label:"Devin default",default:!0}],copilot:[{value:"gpt-5.4",label:"gpt-5.4 (default)",default:!0},{value:"claude-opus-4-6",label:"claude-opus-4-6"},{value:"gemini-3-pro-preview",label:"gemini-3-pro-preview"}],opencode:[{value:"opencode-go/glm-5",label:"glm-5 (default)",default:!0},{value:"opencode-go/kimi-k2.5",label:"kimi k2.5"},{value:"opencode-go/minimax-m2.5",label:"minimax m2.5"}],kilo:[{value:"kilo/openai/gpt-5.4",label:"gpt-5.4 (default)",default:!0},{value:"kilo/openai/gpt-5.4-mini",label:"gpt-5.4-mini"},{value:"kilo/anthropic/claude-opus-4.6",label:"claude-opus-4.6"},{value:"kilo/anthropic/claude-sonnet-4.6",label:"claude-sonnet-4.6"},{value:"kilo/google/gemini-3.1-pro-preview",label:"gemini-3.1-pro-preview"},{value:"kilo/z-ai/glm-5",label:"glm-5"}],auggie:[{value:"gpt-5.4",label:"gpt-5.4 (default)",default:!0},{value:"claude opus 4.6",label:"claude opus 4.6"},{value:"sonnet 4.6",label:"sonnet 4.6"}],pi:[{value:"openai-codex/gpt-5.4",label:"openai-codex gpt-5.4 (default)",default:!0}],junie:[{value:"Gemini 3 Flash",label:"Gemini 3 Flash (default)",default:!0},{value:"Claude Opus 4.6",label:"Claude Opus 4.6"},{value:"Claude Opus 4.7",label:"Claude Opus 4.7"},{value:"Claude Sonnet 4.6",label:"Claude Sonnet 4.6"},{value:"Gemini 3.1 Flash Lite",label:"Gemini 3.1 Flash Lite"},{value:"Gemini 3.1 Pro Preview",label:"Gemini 3.1 Pro Preview"},{value:"GPT-5",label:"GPT-5"},{value:"GPT-5.2",label:"GPT-5.2"},{value:"GPT-5.3-codex",label:"GPT-5.3-codex"},{value:"GPT-5.4",label:"GPT-5.4"},{value:"Grok 4.1 Fast Reasoning",label:"Grok 4.1 Fast Reasoning"}],cursor:[{value:"auto",label:"auto"},{value:"composer-2-fast",label:"Composer 2 Fast (default)",default:!0},{value:"gpt-5.4",label:"gpt-5.4"},{value:"claude-opus-4-6",label:"claude 4.6 opus"},{value:"gemini-3.1-pro",label:"gemini 3.1 pro"}],kiro:[{value:"claude-sonnet-4.5",label:"claude-sonnet-4.5 (default)",default:!0},{value:"deepseek-3.2",label:"deepseek-3.2"},{value:"minimax-m2.1",label:"minimax-m2.1"}],goose:[{value:"openai/gpt-5-codex",label:"openai/gpt-5-codex (default)",default:!0},{value:"openai/gpt-5",label:"openai/gpt-5"}],ollama:[{value:"qwen2.5-coder:7b",label:"qwen2.5-coder:7b (default)",default:!0}]},um={antigravity:"antigravity-default",cline:"cline-default",devin:"devin-default"},pm={claude:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0},{id:"sdk",label:"agent/sdk",target:"agent/sdk",backend:"agent"},{id:"sonnet",label:"api/sonnet",target:"api/sonnet",backend:"api"}],codex:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0},{id:"main",label:"api/main",target:"api/main",backend:"api"}],antigravity:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],grok:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],cline:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],devin:[{id:"acp",label:"agent/acp",target:"agent/acp",backend:"agent",default:!0}],cursor:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],copilot:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],opencode:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],kilo:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],goose:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],pi:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],auggie:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],junie:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],kiro:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",default:!0}],ollama:[{id:"local",label:"local/local",target:"local/local",backend:"local",default:!0}],openclaw:[{id:"gateway",label:"agent/gateway",target:"agent/gateway",backend:"agent",default:!0}]},hm=Object.fromEntries(Object.entries(dm).map(([e,t])=>[e,t.map(a=>({...a}))]));function ue(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Il(e){const t=ue(e);return t?ue(t.catalog)??t:null}function ae(e){return typeof e=="string"&&e.trim().length>0?e:null}function ta(e){return e==="none"||e==="derived"||e==="native"||e==="unknown"?e:"unknown"}function mm(e){return e==="none"||e==="final"||e==="chunk"||e==="line"||e==="token"||e==="unknown"?e:"unknown"}function gm(e){return e==="final_message"||e==="event_tape"||e==="content_blocks"||e==="unknown"?e:"unknown"}function fm(e){const t=ue(e);if(!t)return null;const a=ue(t.normalizedStream),o=ue(a?.text),n=ue(t.transcript),s=ue(t.presentation),l=ue(t.validation),c=ue(l?.observed);return{normalizedStream:{text:{mode:mm(o?.mode),stepwise:o?.stepwise===!0},toolUse:ta(a?.toolUse),toolResult:ta(a?.toolResult),progress:ta(a?.progress),reasoning:ta(a?.reasoning)},transcript:{contentBlocks:ta(n?.contentBlocks)},presentation:{recommended:gm(s?.recommended)},notes:Ne(t.notes),...l?{validation:{artifactId:typeof l.artifactId=="string"?l.artifactId:"",capturedAt:typeof l.capturedAt=="string"?l.capturedAt:"",transport:typeof l.transport=="string"?l.transport:"",...typeof l.runtimeMode=="string"?{runtimeMode:l.runtimeMode}:{},executionStatus:l.executionStatus==="failed"?"failed":"completed",observed:{incrementalText:c?.incrementalText===!0,toolUse:c?.toolUse===!0,toolResult:c?.toolResult===!0,progress:c?.progress===!0,finalResult:c?.finalResult===!0}}}:{}}}function vo(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Ne(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Wa(e){const t=ue(e);if(!t)return;const a=Object.entries(t).filter(([,o])=>vo(o));return a.length>0?Object.fromEntries(a):void 0}function gs(e){return e==="supported"||e==="unavailable"||e==="available"||e==="preview"||e==="deprecated"?e:void 0}function wm(e){return e==="boolean"||e==="enum"||e==="number"||e==="string"?e:"string"}function km(e){return e==="session_default"||e==="request"||e==="both"?e:"session_default"}function bm(e){return e==="auto"||e==="explicit"?e:"explicit"}function fs(e){if(!Array.isArray(e))return;const t=e.flatMap(a=>{if(vo(a))return[{value:a,label:String(a)}];const o=ue(a);return!o||!vo(o.value)?[]:[{value:o.value,label:ae(o.label)??String(o.value),...ae(o.description)?{description:ae(o.description)}:{},...Ne(o.applicableEntryIds).length>0?{applicableEntryIds:Ne(o.applicableEntryIds)}:{}}]});return t.length>0?t:void 0}function ym(e){return Qa.includes(e)}function yt(e){const t=e?.trim().toLowerCase();if(!t)return null;if(Qa.includes(t))return t;if(t.endsWith("-cli")){const a=t.slice(0,-4);if(Qa.includes(a))return a}return null}function Bl(e){const t=yt(e)??e.trim();return t==="openclaw"?"OpenClaw":t.charAt(0).toUpperCase()+t.slice(1)}function nn(e){const t=yt(e);return t?hm[t]??[]:[]}function Fl(e,t){const a=yt(e);return a?um[a]===t?.trim():!1}function sn(e,t){const a=t?.trim();if(!a)return null;if((yt(e)??e)==="claude"){const n=a.toLowerCase();if(n==="claude-opus-4-6"||n==="claude-opus-4.6"||n==="opus")return"opus";if(n==="claude-sonnet-4-6"||n==="claude-sonnet-4.6"||n==="sonnet")return"sonnet";if(n==="claude-haiku-4-5"||n==="claude-haiku-4.5"||n==="haiku")return"haiku"}return a}function Ol(e){const t=nn(e);return t.find(a=>a.default)?.value??t[0]?.value??""}function wr(e){const t=yt(e);return t?pm[t]??[]:[]}function ln(e){const t=wr(e);return t.find(a=>a.default)?.id??t[0]?.id??null}function Wl(e){const t=wr(e);return t.find(a=>a.default)?.backend??t[0]?.backend??null}function vm(){return Qa.map(e=>({id:e,label:Bl(e),defaultModel:Ol(e)||null,defaultInstance:ln(e),defaultBackend:Wl(e),instances:wr(e),modelsPath:`/api/providers/${e}/models`}))}function cn(e){return e.defaultModel||e.models.find(t=>t.default)?.id||e.models[0]?.id||""}function Ul(e,t={}){return{provider:e,backend:null,instance:t.instance??null,defaultModel:Ol(e)||null,source:"static",cache:null,models:nn(e).map(a=>({id:a.value,label:a.label,default:a.default})),warnings:t.warnings??[]}}function Cm(e,t={}){const a=Ul(e,t),o=cn(a)||null;return{provider:a.provider,backend:a.backend,instance:a.instance,defaultModel:o,source:a.source,cache:a.cache,entries:a.models.map(n=>({...n})),presets:[],controls:[],defaultSelection:o?{entryId:o,entryMode:"explicit"}:null,support:{tier:"entry_only",notes:[]},warnings:[...a.warnings]}}function Sm(e){const t=cn(e)||null;return{provider:e.provider,backend:e.backend,instance:e.instance,defaultModel:t,source:e.source,cache:e.cache,entries:e.models.map(a=>({...a})),presets:[],controls:[],defaultSelection:t?{entryId:t,entryMode:"explicit"}:null,support:{tier:"entry_only",notes:[]},warnings:[...e.warnings]}}function Lm(e,t){const a=Il(e)??{},o=a.source,n=o==="dynamic"||o==="config"||o==="static"?o:"static",s=ue(a.cache),l=Array.isArray(a.models)?a.models:[];return{provider:ae(a.provider)??t,backend:ae(a.backend),instance:ae(a.instance),defaultModel:ae(a.defaultModel),source:n,cache:s?{servedFromCache:!!s.servedFromCache,cachedAt:ae(s.cachedAt),ttlSec:typeof s.ttlSec=="number"?s.ttlSec:null}:null,models:l.map(c=>ue(c)).filter(c=>c!==null).map(c=>({id:ae(c.id)??"",label:ae(c.label)??ae(c.id)??"",default:!!c.default,status:ae(c.status)??void 0})).filter(c=>c.id.length>0),warnings:Array.isArray(a.warnings)?a.warnings.filter(c=>typeof c=="string"):[]}}function Rm(e,t){const a=Il(e)??{},o=a.source,n=o==="dynamic"||o==="config"||o==="static"?o:"static",s=ue(a.cache),l=Array.isArray(a.entries)?a.entries:[],c=Array.isArray(a.presets)?a.presets:[],u=Array.isArray(a.controls)?a.controls:[],p=ue(a.support),g=ue(a.defaultSelection);return{provider:ae(a.provider)??t,backend:ae(a.backend),instance:ae(a.instance),defaultModel:ae(a.defaultModel),source:n,cache:s?{servedFromCache:!!s.servedFromCache,cachedAt:ae(s.cachedAt),ttlSec:typeof s.ttlSec=="number"?s.ttlSec:null}:null,entries:l.map(h=>ue(h)).filter(h=>h!==null).map(h=>({id:ae(h.id)??"",label:ae(h.label)??ae(h.id)??"",default:!!h.default,...ae(h.status)?{status:ae(h.status)}:{},...Ne(h.capabilityTags).length>0?{capabilityTags:Ne(h.capabilityTags)}:{},...ue(h.limits)?{limits:{...typeof ue(h.limits)?.contextWindowTokens=="number"?{contextWindowTokens:Number(ue(h.limits)?.contextWindowTokens)}:typeof ue(h.limits)?.contextWindow=="number"?{contextWindowTokens:Number(ue(h.limits)?.contextWindow)}:{},...typeof ue(h.limits)?.maxOutputTokens=="number"?{maxOutputTokens:Number(ue(h.limits)?.maxOutputTokens)}:{}}}:{},...Ne(h.notes).length>0?{notes:Ne(h.notes)}:{}})).filter(h=>h.id.length>0),presets:c.map(h=>ue(h)).filter(h=>h!==null).map(h=>({id:ae(h.id)??"",label:ae(h.label)??ae(h.id)??"",...ae(h.description)?{description:ae(h.description)}:{},...gs(h.availability)?{availability:gs(h.availability)}:{},...Ne(h.applicableEntryIds).length>0?{applicableEntryIds:Ne(h.applicableEntryIds)}:{},...ae(h.preferredEntryId)?{preferredEntryId:ae(h.preferredEntryId)}:{},...Wa(h.controlDefaults)?{controlDefaults:Wa(h.controlDefaults)}:{},...Ne(h.warnings).length>0?{warnings:Ne(h.warnings)}:{}})).filter(h=>h.id.length>0),controls:u.map(h=>ue(h)).filter(h=>h!==null).map(h=>({key:ae(h.key)??"",label:ae(h.label)??ae(h.key)??"",...ae(h.description)?{description:ae(h.description)}:{},kind:wm(h.kind),scope:km(h.scope),...fs(h.values)?{values:fs(h.values)}:{},...typeof h.minimum=="number"?{minimum:h.minimum}:{},...typeof h.maximum=="number"?{maximum:h.maximum}:{},...typeof h.step=="number"?{step:h.step}:{},...Ne(h.applicableEntryIds).length>0?{applicableEntryIds:Ne(h.applicableEntryIds)}:{},...Ne(h.semanticTags).length>0?{semanticTags:Ne(h.semanticTags)}:{}})).filter(h=>h.key.length>0),defaultSelection:g?{...ae(g.entryId)?{entryId:ae(g.entryId)}:{},entryMode:bm(g.entryMode),...ae(g.presetId)?{presetId:ae(g.presetId)}:{},...Wa(g.controls)?{controls:Wa(g.controls)}:{}}:null,support:{tier:p?.tier==="full"||p?.tier==="entry_only"||p?.tier==="read_only"?p.tier:"entry_only",notes:Ne(p?.notes)},warnings:Array.isArray(a.warnings)?a.warnings.filter(h=>typeof h=="string"):[]}}const dn=new Map;function Pm(e){const t=e.trim().toLowerCase();if(t.endsWith("-cli")){const o=t.slice(0,-4);if(ym(o))return{provider:o,backendSuffix:"-CLI"}}return{provider:yt(t)??e.trim(),backendSuffix:null}}function kr(e){return e.replace(/\s*\((?:default|recommended)\)\s*/giu," ").trim()}function ws(e){const t=e?.toLowerCase();return t==="cli"?"-CLI":t==="agent"?"-AGENT":t==="api"?"-API":t==="local"?"-LOCAL":""}function Am(e,t){if(!t)return"";const a=t.toLowerCase();if(a.startsWith("cli/")||a==="cli")return"-CLI";if(a.startsWith("agent/")||a==="agent")return"-AGENT";if(a.startsWith("api/")||a==="api")return"-API";if(a.startsWith("local/")||a==="local")return"-LOCAL";if(a==="default")return ws(Wl(e));const o=wr(e).find(l=>l.id===t),n=ws(o?.backend);if(n)return n;const s=o?.target?.toLowerCase();return s?.startsWith("cli/")?"-CLI":s?.startsWith("agent/")?"-AGENT":s?.startsWith("api/")?"-API":s?.startsWith("local/")?"-LOCAL":""}function xm(e,t){if(!t)return null;const a=sn(e,t)??t,o=nn(e).find(s=>s.value===a)?.label,n=e==="claude"&&(a==="opus"||a==="sonnet"||a==="haiku")?a.charAt(0).toUpperCase()+a.slice(1):a;return kr(o??n)}function Tm(e){const t=e?.trim();return t?kr(t):null}function Hl(e){const t=e?.trim();return t?kr(t):null}function Dm(e){return JSON.stringify([typeof e,e])}function Nm(e){if(!e)return"";const t=Object.entries(e).filter(([,a])=>a!==""&&a!==!1).sort(([a],[o])=>a.localeCompare(o)).map(([a,o])=>[a,Dm(o)]);return t.length>0?JSON.stringify(t):""}function Gl(e){const t=yt(e.provider)??e.provider.trim().toLowerCase(),a=(e.instance?.trim()||ln(e.provider)||"").toLowerCase(),o=(sn(e.provider,e.model)??e.model?.trim()??"").toLowerCase();return JSON.stringify([t,a,o,Nm(e.controls)])}function jm(){dn.clear()}function Mm(e){return Kl(e)}function _l(e){const t=Hl(e.executionLabel);return t?(dn.set(Gl({provider:e.provider,instance:e.instance,model:e.model,controls:e.modelSelection?.controls??null}),t),t):null}function Kl(e){return dn.get(Gl({provider:e.provider,instance:e.instance,model:e.model,controls:e.modelSelection?.controls??null}))??null}const Em={max:"Max",xhigh:"xHigh",high:"High",medium:"Medium",low:"Low",none:"None"};function Im(e){return typeof e=="boolean"?e?"On":"Off":typeof e=="number"?String(e):Em[e]??e.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function ql(e,t){if(!e)return[];const a=new Map((t??[]).map(o=>[o.key,o]));return Object.entries(e).filter(([,o])=>o!==""&&o!==!1).map(([o,n])=>{const l=a.get(o)?.values?.find(c=>c.value===n);return kr(l?.label??Im(n))}).filter(o=>o.length>0)}function un(e,t,a,o,n,s){const l=Pm(e),c=o?.trim()||Bl(l.provider),u=t?.trim()||ln(l.provider),p=l.backendSuffix??Am(l.provider,u),g=Tm(s)??xm(l.provider,a),h=n&&n.length>0?` · ${n.join(" · ")}`:"";return c+p+(g?` · ${g}`:"")+h}function br(e){const t=_l({provider:e.provider,instance:e.instance,model:e.model,modelSelection:e.modelSelection??null,executionLabel:e.executionLabel??null});if(t)return t;const a=Kl({provider:e.provider,instance:e.instance,model:e.model,modelSelection:e.modelSelection??null});if(a)return a;const o=e.controlLabels??ql(e.modelSelection?.controls,e.catalogControls);return un(e.provider,e.instance,e.model,e.providerLabel,o,e.modelLabelOverride)}function Bm(e){const t=e.defaultExecutionTarget;return br({provider:t.provider,instance:t.instance??null,model:t.model??null,modelSelection:e.defaultModelSelection??null,executionLabel:e.executionLabel??null})}function HS(e){const t=e.execution?.target;return t?.provider?br({provider:t.provider,instance:t.instance??null,model:t.model??null,modelSelection:e.execution?.modelSelection??null,executionLabel:e.executionLabel??null}):Hl(e.executionLabel)}function $l(e,t){return t?`${e} · ${t}`:e}const Fm="Catlas",Om=[];function ks(e){return e.trim().toLowerCase()}function Wm(e){return Array.isArray(e)?e.map(t=>ks(t)).filter(t=>t.length>0):typeof e!="string"?[]:e.split(",").map(t=>ks(t.split(";",1)[0]??"")).filter(t=>t.length>0)}function Um(){const e=typeof globalThis=="object"&&globalThis!==null&&"navigator"in globalThis?globalThis.navigator:void 0;return e?Array.isArray(e.languages)&&e.languages.length>0?e.languages:typeof e.language=="string"?e.language:null:null}function Hm(e){const t=Wm(e);for(const a of t){const o=Om.find(n=>n.prefixes.some(s=>a===s||a.startsWith(`${s}-`)));if(o)return o.name}return Fm}function ct(){return Hm(Um())}function ka(e){return e==null||e==="active"}const Ja=new URL("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20120%20120'%20width='100%25'%20height='100%25'%3e%3cdefs%3e%3cclipPath%20id='circle-clip'%3e%3ccircle%20cx='60'%20cy='60'%20r='60'%20/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23circle-clip)'%3e%3c!--%20Background%20--%3e%3crect%20width='120'%20height='120'%20fill='%238B7E74'%20/%3e%3c!--%20Ears%20--%3e%3cpolygon%20points='25,25%2045,50%2025,60'%20fill='%23F2994A'%20/%3e%3cpolygon%20points='95,25%2075,50%2095,60'%20fill='%23F2994A'%20/%3e%3cpolygon%20points='28,32%2040,50%2030,55'%20fill='%23FDE1D3'%20/%3e%3cpolygon%20points='92,32%2080,50%2090,55'%20fill='%23FDE1D3'%20/%3e%3c!--%20Head%20--%3e%3cellipse%20cx='60'%20cy='65'%20rx='45'%20ry='35'%20fill='%23F2994A'%20/%3e%3c!--%20Face%20marking%20(white%20area)%20--%3e%3cpath%20d='M%2060,65%20Q%2020,65%2025,85%20Q%2060,110%2095,85%20Q%20100,65%2060,65%20Z'%20fill='%23FFFFFF'%20/%3e%3c!--%20Eyes%20--%3e%3ccircle%20cx='42'%20cy='60'%20r='6'%20fill='%23333333'%20/%3e%3ccircle%20cx='78'%20cy='60'%20r='6'%20fill='%23333333'%20/%3e%3c!--%20Catchlights%20--%3e%3ccircle%20cx='44'%20cy='58'%20r='2'%20fill='%23FFFFFF'%20/%3e%3ccircle%20cx='80'%20cy='58'%20r='2'%20fill='%23FFFFFF'%20/%3e%3c!--%20Nose%20--%3e%3cpolygon%20points='56,72%2064,72%2060,77'%20fill='%23EB5757'%20/%3e%3c!--%20Mouth%20--%3e%3cpath%20d='M%2052,80%20Q%2060,85%2068,80'%20fill='none'%20stroke='%23333333'%20stroke-width='2'%20stroke-linecap='round'%20/%3e%3c!--%20Whiskers%20--%3e%3cline%20x1='15'%20y1='65'%20x2='30'%20y2='68'%20stroke='%23333333'%20stroke-width='1.5'%20stroke-linecap='round'%20opacity='0.5'%20/%3e%3cline%20x1='12'%20y1='72'%20x2='28'%20y2='72'%20stroke='%23333333'%20stroke-width='1.5'%20stroke-linecap='round'%20opacity='0.5'%20/%3e%3cline%20x1='105'%20y1='65'%20x2='90'%20y2='68'%20stroke='%23333333'%20stroke-width='1.5'%20stroke-linecap='round'%20opacity='0.5'%20/%3e%3cline%20x1='108'%20y1='72'%20x2='92'%20y2='72'%20stroke='%23333333'%20stroke-width='1.5'%20stroke-linecap='round'%20opacity='0.5'%20/%3e%3c!--%20Guide%20Scarf/Bandana%20--%3e%3cpath%20d='M%2020,85%20Q%2060,105%20100,85%20L%20110,120%20L%2010,120%20Z'%20fill='%232D9CDB'%20/%3e%3cpath%20d='M%2060,100%20L%2075,120%20L%2045,120%20Z'%20fill='%232285C2'%20/%3e%3ccircle%20cx='60'%20cy='95'%20r='7'%20fill='%23F2C94C'%20/%3e%3c/g%3e%3c/svg%3e",import.meta.url).href,bs=14,Gm=36,_m=20,Km=20;function qm(e,t="floating"){const a=Pl(e,t);return a==="workspace"?"product":a}function ys({name:e,tooltip:t,unreadCount:a,onClick:o,onDismissClick:n,onPointerDown:s,style:l,className:c,dragging:u}){const{t:p}=W(),g=ct();return r.jsxs("div",{className:c??"guideCatPillWrap","data-dragging":u?"true":"false",style:l,children:[r.jsxs("button",{type:"button",className:"guideCatPill",onPointerDown:s,onClick:o,"aria-label":p(i.sharedGuideCatPillOpenLabel,{guideCatName:g}),"data-tooltip":t,"data-tooltip-delay":"1000",children:[r.jsx(zl,{className:"guideCatPillAvatar"}),a>0?r.jsx("span",{className:"guideCatPillBadge",children:a}):null]}),n&&!u?r.jsx("button",{type:"button",className:"guideCatPillDismiss",onClick:h=>{h.stopPropagation(),n()},"aria-label":p(i.sharedGuideCatPillDisableLabel),children:"✕"}):null]})}function $m({ownerDisplayName:e,onAction:t,onDismiss:a,style:o,anchor:n="anchor-left"}){const{t:s}=W();return r.jsxs("div",{className:`guideCatPeek guideCatPeek--${n}`,style:o,children:[r.jsx("p",{className:"guideCatPeekGreeting",children:s(i.sharedGuideCatWelcomeGreeting,{ownerDisplayName:e})}),r.jsxs("div",{className:"guideCatPeekActions",children:[r.jsx(Ht,{route:"/chat/new",onAction:t,labelKey:i.sharedGuideCatWelcomeStartChat}),r.jsx(Ht,{route:"/settings/cats",onAction:t,labelKey:i.sharedGuideCatWelcomeMeetCats}),r.jsx(Ht,{route:"/lobby",onAction:t,labelKey:i.sharedGuideCatWelcomeExploreProducts})]}),a?r.jsx("button",{type:"button",className:"guideCatPeekDismiss",onClick:a,children:s(i.sharedGuideCatWelcomeHideNow)}):null]})}function Ht({route:e,onAction:t,labelKey:a,className:o="guideCatPeekAction"}){const{t:n}=W();return r.jsx("button",{type:"button",className:o,onClick:()=>t(e),children:n(a)})}function zm({name:e,tooltip:t,ownerDisplayName:a,onAction:o,onClose:n,style:s,surfaceMode:l}){const{t:c}=W(),u=ct();return r.jsxs("div",{className:l==="lobby"?"guideCatPanel guideCatPanel--lobby":"guideCatPanel guideCatPanel--product",style:s,children:[r.jsxs("div",{className:"guideCatPanelHeader","data-tooltip":t,"data-tooltip-delay":"1000",children:[r.jsx(zl,{className:"guideCatPanelAvatar"}),r.jsx("span",{className:"guideCatPanelName",children:u}),r.jsx("button",{type:"button",className:"guideCatPanelClose",onClick:n,"aria-label":c(i.sharedCommonClose),children:"✕"})]}),r.jsxs("div",{className:"guideCatPanelBody",children:[r.jsx("p",{className:"guideCatPanelGreeting",children:c(i.sharedGuideCatPanelGreeting,{ownerDisplayName:a,guideCatName:u})}),r.jsxs("div",{className:"guideCatPanelActions",children:[r.jsx(Ht,{route:"/chat/new",onAction:o,labelKey:i.sharedGuideCatWelcomeStartChat,className:"guideCatPanelAction"}),r.jsx(Ht,{route:"/settings/cats",onAction:o,labelKey:i.sharedGuideCatWelcomeMeetCats,className:"guideCatPanelAction"}),r.jsx(Ht,{route:"/lobby",onAction:o,labelKey:i.sharedGuideCatWelcomeExploreProducts,className:"guideCatPanelAction"})]})]})]})}function zl({className:e}){return r.jsx("img",{className:e,src:Ja,alt:"","aria-hidden":"true"})}function Vm({viewState:e,guideCat:t,ownerDisplayName:a,unreadCount:o,onToggle:n,onAction:s,onCollapse:l,onDismissWelcome:c,onDismissClick:u,onPillPointerDown:p,dragging:g,pillStyle:h,peekStyle:k,panelStyle:f,surfaceMode:w,dialog:b,onDialogClose:m,rootRef:C,pillHostedExternally:v,peekAnchor:y="anchor-left"}){if(e==="hidden"||v&&e==="collapsed")return null;const L=Ym(t);let x;return e==="collapsed"?x=r.jsx(ys,{name:t.name,tooltip:L,unreadCount:o,onClick:n,onDismissClick:u,onPointerDown:p,style:h,dragging:g}):e==="welcome-peek"?x=r.jsxs("div",{ref:C,children:[v?null:r.jsx(ys,{name:t.name,tooltip:L,unreadCount:0,onClick:n,onDismissClick:u,onPointerDown:p,style:h,dragging:g}),r.jsx($m,{ownerDisplayName:a,onAction:s,onDismiss:c,style:k,anchor:y})]}):x=r.jsx("div",{ref:C,children:r.jsx(zm,{name:t.name,tooltip:L,ownerDisplayName:a,onAction:s,onClose:l,style:f,surfaceMode:w})}),r.jsxs(r.Fragment,{children:[x,r.jsx(Bt,{dialog:b,onClose:m})]})}function Ym(e){const t=ct(),a=br({provider:e.executionTarget.provider,instance:e.executionTarget.instance,model:e.executionTarget.model,modelSelection:e.modelSelection??null});return $l(t,a)}function Qm({viewState:e,guideCat:t,ownerDisplayName:a,unreadCount:o,proactive:n,toggle:s,collapse:l,dismissWelcome:c,onDismissed:u,onPillPointerDown:p,consumePillClickSuppression:g,pillStyle:h,peekStyle:k,panelStyle:f,surfaceMode:w,dragActive:b,pillHostedExternally:m,peekAnchor:C}){const v=je(),y=d.useRef(null),L=on(),{dialog:x,choose:T,handleClose:N}=It(),A=ct(),{t:R}=W(),P=d.useCallback(E=>{l(),v(E)},[l,v]),I=d.useCallback(async()=>{const E=await T({title:R(i.sharedGuideCatDialogDisableTitle,{guideCatName:A}),message:R(i.sharedGuideCatDialogDisableMessage,{guideCatName:A}),confirmLabel:R(i.sharedGuideCatDialogDisableConfirm),cancelLabel:R(i.sharedGuideCatDialogKeepEnabled),auxiliaryLabel:R(i.sharedGuideCatDialogDockNow),defaultAction:"auxiliary"});if(E==="auxiliary"){L.update({placement:"docked"}),l();return}if(E==="confirm")try{(await fetch("/api/platform/guide-cat",{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({status:"dismissed"})})).ok&&u()}catch{}},[T,l,A,L,u]);d.useEffect(()=>{if(e!=="open"&&e!=="welcome-peek"||e==="welcome-peek"&&n||b)return;function E(_){if(Xh(_))return;const ee=_.target;ee?.closest?.(".guideCatDockSlot")||ee?.closest?.(".guideCatPillWrap")||y.current&&!y.current.contains(_.target)&&l()}function $(_){_.key==="Escape"&&l()}return document.addEventListener("mousedown",E),document.addEventListener("keydown",$),()=>{document.removeEventListener("mousedown",E),document.removeEventListener("keydown",$)}},[e,l,n,b]);const O=d.useCallback(()=>{g()||s()},[g,s]);return r.jsx(Vm,{viewState:e,guideCat:t,ownerDisplayName:a,unreadCount:o,onToggle:O,onAction:P,onCollapse:l,onDismissWelcome:n?c:void 0,onDismissClick:I,onPillPointerDown:p,dragging:b,pillStyle:h,peekStyle:k,panelStyle:f,surfaceMode:w,dialog:x,onDialogClose:N,rootRef:y,pillHostedExternally:m,peekAnchor:C})}function Jm({guideCat:e,ownerDisplayName:t,unreadCount:a,onDismissed:o}){const n=ve(),{projection:s,presentation:l,onFloatingPointerDown:c,consumePillClickSuppression:u,dragActive:p,panelOriginX:g,getDockSlotRect:h}=an();if(s.kind==="hidden")return null;const k=s.kind==="docked";if(k&&l.viewState==="collapsed")return null;const f=s.kind==="floating"?s:null,w=f?{left:`${f.x-bs}px`,top:`${f.y-bs}px`,transform:"none"}:{},b=!f&&s.kind==="docked"?Xm(s.slot,h(s.slot)):null,m=f?{left:`${f.x+Gm}px`,top:`${f.y}px`,transform:"translateY(-50%)"}:b?.style??{},C=b?.anchor??"anchor-left",v={left:`${g}px`},y=qm(n.pathname,s.kind==="docked"?"docked":"floating");return Ut.createPortal(r.jsx(Qm,{viewState:l.viewState,guideCat:e,ownerDisplayName:t,unreadCount:a,proactive:l.proactive,toggle:l.toggle,collapse:l.collapse,dismissWelcome:l.dismissWelcome,onDismissed:o,onPillPointerDown:k?void 0:c,consumePillClickSuppression:u,pillStyle:w,peekStyle:m,panelStyle:v,surfaceMode:y,dragActive:p,pillHostedExternally:k,peekAnchor:C}),document.body)}function Xm(e,t){return t?e==="workspace"?{style:{left:`${t.right+_m}px`,top:`${t.bottom}px`,transform:"translateY(-100%)"},anchor:"anchor-bottom-left"}:{style:{left:`${(t.left+t.right)/2}px`,top:`${t.bottom+Km}px`,transform:"translateX(-50%)"},anchor:"anchor-top"}:null}function Zm(e,t){return e===t||e.startsWith(`${t}/`)}function eg({envelope:e}){const{t}=W(),a=je(),o=ve(),{appId:n=""}=dr(),s=e.installedApps.find(g=>g.id===n),l=s?.lobbyEntries.find(g=>Zm(o.pathname,g.routePath))??s?.lobbyEntries[0]??null;if(!s)return r.jsx("div",{className:"screen screenCentered appHostScreen",children:r.jsxs("section",{className:"appHostPanel",children:[r.jsx("p",{className:"eyebrow",children:t("appHostLabel")}),r.jsx("h1",{children:t("appHostNotInstalledTitle")}),r.jsx("button",{type:"button",className:"secondaryButton appHostBackButton",onClick:()=>a("/lobby"),children:t("appHostBackToLobby")})]})});const c=s.enabled&&s.installState==="enabled",u=l?.title??s.displayName,p=l?.subtitle??t(c?"appHostSubtitleRendererPending":"appHostSubtitleDisabled");return r.jsx("div",{className:"screen screenCentered appHostScreen",children:r.jsxs("section",{className:"appHostPanel",children:[r.jsxs("div",{className:"appHostHeader",children:[r.jsxs("div",{children:[r.jsx("p",{className:"eyebrow",children:t("appHostLabel")}),r.jsx("h1",{children:u})]}),r.jsx("button",{type:"button",className:"secondaryButton appHostBackButton",onClick:()=>a("/lobby"),children:t("appHostBackToLobby")})]}),r.jsx("p",{className:"appHostSubtext",children:p}),r.jsxs("dl",{className:"appHostMeta",children:[r.jsxs("div",{children:[r.jsx("dt",{children:t("appHostSectionPackage")}),r.jsx("dd",{children:s.id})]}),r.jsxs("div",{children:[r.jsx("dt",{children:t("appHostSectionStatus")}),r.jsx("dd",{children:s.installState})]}),r.jsxs("div",{children:[r.jsx("dt",{children:t("appHostSectionPublisher")}),r.jsx("dd",{children:s.publisher})]})]})]})})}function tg(e){return e.roomMode==="direct_message"?"direct_message":"chat_channel"}function pn(e){const t=tg({roomMode:e.roomMode,participants:e.participants});return e.channelKind==="direct_message"||t==="direct_message"?"direct_message":"chat_channel"}function ag(e){return e.assignedCats&&e.assignedCats.length>0?e.assignedCats:e.catAssignments??[]}function rg(e){return pn({channelKind:e.channelKind,roomMode:e.roomRouting?.mode==="direct_message"?"direct_message":"chat_channel",participants:ag(e)})}function og(e){return rg(e)==="direct_message"}function vs(e){return pn({channelKind:e.channelKind,roomMode:e.roomMode==="direct_message"?"direct_message":"chat_channel",participants:[]})==="direct_message"}const ng=["chat","code","work"];function Vl(){return{chat:!1,code:!1,work:!1}}function sg(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function yr(e){const t=Vl(),a=sg(e);return a?ng.reduce((o,n)=>({...o,[n]:a[n]===!0}),t):t}function hn(e,t){return yr(e)[t]===!0}const ig=["inline_stack","compare_cards","focus_rail","adaptive"],Yl=["chat","work","code"];function Xa(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function qa(){return{showVerboseMessages:!1,showLiveProgressDetails:!1,concurrentPresentationMode:"inline_stack"}}function lg(){return{chat:qa(),work:qa(),code:qa()}}function Ql(e){return typeof e=="string"&&ig.includes(e)?e:"inline_stack"}function cg(e){const t=qa(),a=Xa(e);return{showVerboseMessages:a?.showVerboseMessages===!0,showLiveProgressDetails:a?.showLiveProgressDetails===!0,concurrentPresentationMode:Ql(a?.concurrentPresentationMode??t.concurrentPresentationMode)}}function mn(e){const t=lg(),a=Xa(e);return Yl.reduce((o,n)=>(o[n]=cg(a?.[n]),o),t)}function dg(e,t){const a=mn(e),o=Xa(t);if(!o)return a;for(const n of Yl){const s=Xa(o[n]);s&&(typeof s.showVerboseMessages=="boolean"&&(a[n].showVerboseMessages=s.showVerboseMessages),typeof s.showLiveProgressDetails=="boolean"&&(a[n].showLiveProgressDetails=s.showLiveProgressDetails),s.concurrentPresentationMode!==void 0&&(a[n].concurrentPresentationMode=Ql(s.concurrentPresentationMode)))}return a}function ug(e,t){return mn(e)[t]}const pg=["chat","work","code"];function kt(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function hg(e){return typeof e=="string"&&pg.includes(e)}function Jl(){return{bySurface:{},chatDirectLaneByCatId:{}}}function Xl(e){const t=Jl();if(typeof e!="object"||e===null)return t;const a=e,o=typeof a.bySurface=="object"&&a.bySurface!==null?a.bySurface:{},n=typeof a.chatDirectLaneByCatId=="object"&&a.chatDirectLaneByCatId!==null?a.chatDirectLaneByCatId:{},s={};for(const[c,u]of Object.entries(o)){const p=hg(c)?c:null,g=kt(typeof u=="string"?u:null);p&&g&&(s[p]=g)}const l={};for(const[c,u]of Object.entries(n)){const p=kt(c),g=kt(typeof u=="string"?u:null);p&&g&&(l[p]=g)}return{bySurface:s,chatDirectLaneByCatId:l}}function GS(e,t){const a=Xl(e),o=kt(t.directLaneCatId);return t.surface==="chat"&&o?a.chatDirectLaneByCatId[o]??null:a.bySurface[t.surface]??null}function _S(e,t,a){const o=Xl(e),n=kt(a),s=kt(t.directLaneCatId);if(t.surface==="chat"&&s){const c={...o.chatDirectLaneByCatId};return n?c[s]=n:delete c[s],{bySurface:{...o.bySurface},chatDirectLaneByCatId:c}}const l={...o.bySurface};return n?l[t.surface]=n:delete l[t.surface],{bySurface:l,chatDirectLaneByCatId:{...o.chatDirectLaneByCatId}}}async function KS(e){const t=kt(e.requestedPath),a=kt(e.rememberedPath),o=t??a,n=await e.browse(o??void 0);return!n.error||!a||t?n:e.browse(void 0)}function pe(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function le(e,t=""){return typeof e=="string"?e:t}function ie(e){return typeof e=="string"&&e.trim().length>0?e:null}function _r(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Kr(e,t){return typeof e=="boolean"?e:t}function mg(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function gg(e){const t=pe(e.desktop)??{};e.desktop=t;const a=pe(t.mobilePairing)??{};t.mobilePairing={enabled:Kr(a.enabled,!1),bindHost:le(a.bindHost,"127.0.0.1"),bindPort:mg(a.bindPort,0),bindReachability:a.bindReachability==="lan"||a.bindReachability==="all_interfaces"||a.bindReachability==="other_interface"?a.bindReachability:"loopback",canReachFromLan:Kr(a.canReachFromLan,!1),selectedLanIp:ie(a.selectedLanIp),selectedLanUrl:ie(a.selectedLanUrl),diagnosticManifestUrl:ie(a.diagnosticManifestUrl),noLanCandidateReason:a.noLanCandidateReason==="loopback_bound"||a.noLanCandidateReason==="no_lan_candidate"||a.noLanCandidateReason==="bind_host_not_lan_candidate"?a.noLanCandidateReason:Kr(a.enabled,!1)?null:"feature_disabled",bindOverrideEnv:ie(a.bindOverrideEnv),pairingUrlStatus:a.pairingUrlStatus==="ready"?"ready":"phase1_pending",pairingUrl:ie(a.pairingUrl)}}function Cs(e,t){const a=Array.isArray(e.catAssignments)?e.catAssignments:[],o=Array.isArray(e.assignedCats)?e.assignedCats:[],n=(a.length>0?a:o).map(s=>{const l=pe(s)??{};return{catId:le(l.catId),status:le(l.status,"active")==="removed"?"removed":"active"}});e.channelKind=pn({channelKind:e.channelKind==="chat_channel"||e.channelKind==="direct_message"||e.channelKind==="chat_channel"?e.channelKind:null,roomMode:t,participants:n})}function Zl(e){const t=structuredClone(e);gg(t);const a=pe(t.chat)??{};t.chat=a;const o=pe(a.globalOrchestrator);o&&!pe(o.executionTarget)&&(o.executionTarget={provider:le(o.provider,"claude"),instance:ie(o.instance),model:ie(o.model)});const n=pe(o?.executionTarget);n&&n.instance===void 0&&(n.instance=ie(o?.instance)),o&&!pe(o.memory)&&(o.memory={summary:null,facts:[],openLoops:[],updatedAt:null});const s=pe(a.selectedChannel);if(s&&!pe(s.orchestratorLease)){const u=pe(o?.executionTarget);s.orchestratorLease={sessionId:null,status:"not_started",cwd:null,lastError:null,provider:ie(u?.provider)??"claude",instance:ie(u?.instance),model:ie(u?.model),startedAt:null,lastUsedAt:null}}Array.isArray(a.cats)||(a.cats=[]);const l=a.cats.map(u=>{const p=pe(u)??{};pe(p.defaultExecutionTarget)||(p.defaultExecutionTarget={provider:le(p.provider,"claude"),instance:ie(p.instance),model:ie(p.model)});const g=pe(p.defaultExecutionTarget);return g&&g.instance===void 0&&(g.instance=ie(p.instance)),pe(p.memory)||(p.memory={summary:null,facts:[],openLoops:[],updatedAt:null}),Array.isArray(p.roles)||(p.roles=_r(p.roles)),p}),c=new Map(l.map(u=>[le(u.id),u]));if(s){const u=pe(s.roomRouting);Cs(s,le(u?.mode,"chat_channel")==="direct_message"?"direct_message":"chat_channel"),Array.isArray(s.catAssignments)||(s.catAssignments=[]);const p=Array.isArray(s.catAssignments)?s.catAssignments:[];Array.isArray(s.participantAssignments)||(s.participantAssignments=p.map(h=>{const k=pe(h)??{},f=c.get(le(k.catId))??{};return{participantId:le(k.participantId,le(k.catId)),sourceKind:le(k.sourceKind,"cat")==="cat"?"cat":"adhoc",sourceRefId:ie(k.sourceRefId)??ie(k.catId),name:le(k.name,le(f.name,"Participant")),status:le(k.status,"active"),roles:Array.isArray(k.roles)?k.roles:[],roleHint:ie(k.roleHint),joinedAt:le(k.joinedAt),leftAt:ie(k.leftAt),execution:k.execution}})),(p.length>0||!Array.isArray(s.assignedCats))&&(s.assignedCats=p.map(h=>{const k=pe(h)??{},f=c.get(le(k.catId))??{};return{participantId:le(k.participantId,le(k.catId)),sourceKind:"cat",sourceRefId:le(k.sourceRefId,le(k.catId)),catId:le(k.catId),name:le(f.name,"Cat"),roles:Array.isArray(k.roles)?k.roles:_r(f.roles),roleHint:ie(k.roleHint),skillProfile:ie(f.skillProfile),mcpProfile:ie(f.mcpProfile),status:le(k.status,"active"),joinedAt:le(k.joinedAt),leftAt:ie(k.leftAt),avatarColor:ie(f.avatarColor),avatarUrl:ie(f.avatarUrl),execution:k.execution,memory:pe(f.memory)??{summary:null,facts:[],openLoops:[],updatedAt:null}}}));const g=Array.isArray(s.participantAssignments)?s.participantAssignments:[];(g.length>0||!Array.isArray(s.assignedParticipants))&&(s.assignedParticipants=g.map(h=>{const k=pe(h)??{},f=ie(k.sourceRefId),w=f?c.get(f)??null:null;return{participantId:le(k.participantId),sourceKind:le(k.sourceKind,"adhoc")==="cat"?"cat":"adhoc",sourceRefId:f,name:le(k.name,le(w?.name,"Participant")),roles:Array.isArray(k.roles)?k.roles:_r(w?.roles),roleHint:ie(k.roleHint),skillProfile:ie(w?.skillProfile),mcpProfile:ie(w?.mcpProfile),status:le(k.status,"active"),joinedAt:le(k.joinedAt),leftAt:ie(k.leftAt),avatarColor:ie(w?.avatarColor),avatarUrl:ie(w?.avatarUrl),execution:k.execution,memory:pe(w?.memory)??{summary:null,facts:[],openLoops:[],updatedAt:null}}}))}return a.cats=Array.from(c.values()),t.setupCompleteAt===void 0&&(t.setupCompleteAt=null),t.ownerDisplayName||(t.ownerDisplayName="Owner"),t.ownerAvatarColor===void 0&&(t.ownerAvatarColor=null),a.bossCatId===void 0&&(a.bossCatId=null),a.conversationBehavior=mn(a.conversationBehavior),pe(a.advancedDraftControls)||(a.advancedDraftControls=Vl()),pe(a.folderBrowsePreferences)||(a.folderBrowsePreferences=Jl()),pe(a.newChatDefaults)||(a.newChatDefaults={provider:le(n?.provider,"claude"),instance:ie(n?.instance),model:ie(n?.model),modelSelection:null}),Array.isArray(a.channels)&&(a.channels=a.channels.map(u=>{const p=pe(u)??{};return Cs(p,le(p.roomMode,"chat_channel")==="direct_message"?"direct_message":"chat_channel"),p.catCount===void 0&&(p.catCount=0),p.activeCatCount===void 0&&(p.activeCatCount=0),p})),Array.isArray(a.parallelChatGroups)||(a.parallelChatGroups=[]),t}async function gn(e,t){try{const a=await e.json();return typeof a.error=="string"?a.error||t:a.error&&typeof a.error=="object"&&typeof a.error.message=="string"&&a.error.message||t}catch{return t}}async function de(e,t){if(!e.ok)throw new Error(await gn(e,t));return await e.json()}const fg=15e3,ec="provider_catalog.model.load_failed",tc="provider_catalog.model.incomplete_response",ac="provider_catalog.advanced.load_failed",rc="provider_catalog.advanced.incomplete_response",Za={entries:new Map,inflight:new Map},er={entries:new Map,inflight:new Map};function wg(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ta(e){const t=e?.trim();return t||null}function fn(e,t){return`${e.trim()}\0${Ta(t)??""}`}function oc(e){const t=new URLSearchParams,a=Ta(e.instance);a&&t.set("instance",a);const o=`/api/providers/${encodeURIComponent(e.provider)}/models${e.advanced?"/advanced":""}`,n=t.toString();return n?`${o}?${n}`:o}async function nc(e,t){try{const a=await e.json();if(typeof a.error?.message=="string")return a.error.message}catch{}return t}async function sc(e,t){const a=await e.json();if(!wg(a)?.catalog)throw new Error(t);return a}async function ic(e){const t=Date.now();if(!e.force){const o=e.cache.entries.get(e.cacheKey);if(o&&o.freshUntilMs>t)return o.value;const n=e.cache.inflight.get(e.cacheKey);if(n)return n}const a=e.load().then(o=>(e.cache.entries.set(e.cacheKey,{value:o,freshUntilMs:Date.now()+fg}),o)).finally(()=>{e.cache.inflight.delete(e.cacheKey)});return e.cache.inflight.set(e.cacheKey,a),a}function kg(){Za.entries.clear(),Za.inflight.clear(),er.entries.clear(),er.inflight.clear()}function lc(e,t,a){const o=t.trim();if(!o)return null;const n=fn(o,Ta(a)),s=e.entries.get(n);return s&&s.freshUntilMs>Date.now()?s.value:null}function bg(e){return lc(Za,e.provider,e.instance)}function yg(e){return lc(er,e.provider,e.instance)}async function wn(e){const t=e.provider.trim(),a=Ta(e.instance),o=fn(t,a);return ic({cache:Za,cacheKey:o,force:e.force,load:async()=>{const n=await(e.fetchImpl??fetch)(oc({provider:t,instance:a}));if(!n.ok)throw new Error(await nc(n,ec));return Lm(await sc(n,tc),t)}})}async function kn(e){const t=e.provider.trim(),a=Ta(e.instance),o=fn(t,a);return ic({cache:er,cacheKey:o,force:e.force,load:async()=>{const n=await(e.fetchImpl??fetch)(oc({provider:t,instance:a,advanced:!0}));if(!n.ok)throw new Error(await nc(n,ac));return Rm(await sc(n,rc),t)}})}function vg(e){return Promise.allSettled([wn(e),kn(e)]).then(()=>{})}function Cg(e,t={}){return Promise.allSettled(e.providers.map(a=>{const o=a.defaultInstance??a.instances.find(n=>n.default)?.id??a.instances[0]?.id??null;return vg({provider:a.id,instance:o,fetchImpl:t.fetchImpl})})).then(()=>{})}const cc="provider_registry.product_catalog_checking",Sg="provider_registry.last_saved_targets",tr="provider_registry.load_failed",dc="provider_registry.refresh_failed",Co="provider_registry.cached_refresh_failed:";function Lg(e){return`${Co}${e}`}function Rg(e){return e.startsWith(Co)?e.slice(Co.length):null}const Pg=15e3,Ag=10*6e4,Pe={value:null,freshUntilMs:0,staleIfErrorUntilMs:0,inflight:null};async function xg(e,t){try{const a=await e.json();if(typeof a.error?.message=="string")return a.error.message}catch{}return t}function Tg(e){const t=Array.isArray(e.providers)?e.providers:[];return{state:e.state??(t.length>0?"ready":"no_usable_targets"),providers:t.map(a=>({id:a.id,label:a.label,defaultModel:a.defaultModel??null,defaultInstance:a.defaultInstance??null,defaultBackend:a.defaultBackend??null,instances:Array.isArray(a.instances)?a.instances.map(o=>({id:o.id,label:o.label,target:o.target??null,backend:o.backend??null,default:!!o.default,eventCapabilities:fm(o.eventCapabilities)})):[],modelsPath:a.modelsPath})),recovery:e.recovery,warnings:Array.isArray(e.warnings)?e.warnings:[]}}function Ss(e){return{state:"runtime_unreachable",providers:[],recovery:{retryable:!0},warnings:[e]}}function Dg(e){return e.state!=="runtime_unreachable"}function Ng(e,t){const a=Array.isArray(e.warnings)?e.warnings:[];return{...e,warnings:a.includes(t)?a:[...a,t]}}function jg(e){return e.warnings?.[0]??dc}function Mg(e){const t=Date.now();Pe.value=e,Pe.freshUntilMs=t+Pg,Pe.staleIfErrorUntilMs=t+Ag}function Eg(){Pe.value=null,Pe.freshUntilMs=0,Pe.staleIfErrorUntilMs=0}async function Ig(e,t={}){try{const a=t.force?"/api/providers?force=1":"/api/providers",o=await e(a);if(!o.ok)return Ss(await xg(o,tr));const n=await o.json();return Tg(n)}catch(a){return Ss(a instanceof Error?a.message:tr)}}function Bg(){const e=Date.now();return Pe.value&&Pe.freshUntilMs>e?Pe.value:null}async function vr(e={}){const t=Date.now();if(!e.force&&Pe.value&&Pe.freshUntilMs>t)return Pe.value;if(!e.force&&Pe.inflight)return Pe.inflight;const a=Ig(e.fetchImpl??fetch,{force:e.force}).then(o=>{if(Dg(o))return Mg(o),o;const n=Pe.value;return n&&Pe.staleIfErrorUntilMs>Date.now()?Ng(n,Lg(jg(o))):(Eg(),o)}).finally(()=>{Pe.inflight=null});return Pe.inflight=a,a}function Fg(e={}){return vr(e).then(()=>{})}async function At(e){return vr(e)}async function xt(e,t){return wn({provider:e,instance:t})}async function Tt(e,t){return kn({provider:e,instance:t})}const So="provider_catalog.refresh_failed_status:";function Ls(e){return`${So}${e}`}function Og(e){if(!e.startsWith(So))return null;const t=Number(e.slice(So.length));return Number.isInteger(t)?t:null}async function Wg(){const e=await fetch("/api/providers/models/refresh",{method:"POST",headers:{Accept:"application/json"}});if(!e.ok){let a=Ls(e.status);try{const o=await e.json();o.error?.code==="provider_catalog_refresh_failed"?a=Ls(e.status):typeof o.error?.message=="string"&&(a=o.error.message)}catch{}throw new Error(a)}const t=await e.json();return kg(),t}async function Ze(e){const t=await fetch("/api/app-shell",{headers:{Accept:"application/json"},signal:e});return Zl(await de(t,`cats app shell returned ${t.status}`))}async function vt(e,t,a){if(!e.ok)throw new Error(await gn(e,t));try{return await Ze(a)}catch{return Ze()}}async function qS(e,t){const a=await fetch("/api/preferences",{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({selectedChannelId:e}),signal:t});return vt(a,`cats chat selection returned ${a.status}`,t)}async function bn(e,t,a){const o=await fetch("/api/preferences",{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({conversationBehavior:{[e]:t}}),signal:a});return vt(o,`cats conversation behavior update returned ${o.status}`,a)}async function yn(e,t){const a=await fetch("/api/preferences",{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({advancedDraftControls:e}),signal:t});return vt(a,`cats advanced draft controls update returned ${a.status}`,t)}async function $S(e,t){const a=await fetch("/api/preferences",{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({newChatDefaults:e}),signal:t});return vt(a,`cats new chat defaults update returned ${a.status}`,t)}async function zS(e,t){const a=await fetch("/api/preferences",{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({folderBrowsePreference:{surface:e.surface,directLaneCatId:e.directLaneCatId??null,path:e.path}}),signal:t});return de(a,`cats folder browse preference update returned ${a.status}`)}async function VS(e,t,a){const o=await fetch(`/api/channels/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return vt(o,`cats channel update returned ${o.status}`,a)}async function YS(e,t){const a=await fetch(`/api/channels/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({resetContinuity:!0}),signal:t});return vt(a,`cats channel continuity reset returned ${a.status}`,t)}async function Ug(e,t){const a=await fetch("/api/orchestrator",{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(e),signal:t});return vt(a,`cats orchestrator update returned ${a.status}`,t)}async function tt(e,t,a){return vt(e,t,a)}const Hg=6,Gg=12,_g=2;function Kg(){return{activeTurn:null,turnHistory:[],eventHistory:[],lastCheckpointEvent:null,lastOutcomeEvent:null}}function qg(e={}){return{mode:e.mode??"chat_channel",defaultRecipientId:e.defaultRecipientId??null,maxContinuations:Hg,maxDispatchesPerTurn:Gg,maxTargetVisitsPerTurn:_g,lastOutcome:null,lastCheckpoint:null,lastWakeRequest:null,wakeHistory:[],workflow:Kg()}}function $g(e){return e?structuredClone(e):qg()}function Rs(e){switch(e){case"ready":return"awake";case"initializing":return"waking_up";case"error":return"error";default:return"sleeping"}}function uc(e){return e?{...e,roomRouting:$g(e.roomRouting)}:null}function QS(e){if(!e)return null;if(og(e)&&e.roomRouting.defaultRecipientId){const t=e.assignedCats.find(a=>a.status==="active"&&a.catId===e.roomRouting.defaultRecipientId);return t?Rs(t?.execution.lease.status):null}return Rs(e.orchestratorLease.status)}function JS(e){return!e.routeChannelId||!e.routeChannelExists?!1:e.selectedChannelId!==e.routeChannelId||e.selectedChannelViewId!==e.routeChannelId}const Ft="/api/parallel-chat-groups";function zg(e){if(!e||typeof e!="object"||Array.isArray(e))return{attemptedSessionCount:0,retainedSessionCount:0,retainedSessions:[]};const t=e,a=Array.isArray(t.retainedSessions)?t.retainedSessions.flatMap(n=>{if(!n||typeof n!="object"||Array.isArray(n))return[];const s=n,l=typeof s.sessionId=="string"?s.sessionId.trim():"";return l?[{sessionId:l,reason:typeof s.reason=="string"&&s.reason.trim()?s.reason.trim():null}]:[]}):[];return{attemptedSessionCount:typeof t.attemptedSessionCount=="number"&&Number.isFinite(t.attemptedSessionCount)&&t.attemptedSessionCount>0?Math.floor(t.attemptedSessionCount):0,retainedSessionCount:a.length,retainedSessions:a}}function pc(e){const a=[];for(let o=0;o<e.length;o+=32768){const n=e.subarray(o,o+32768);a.push(String.fromCharCode(...n))}return btoa(a.join(""))}async function Vg(e,t){const a=await fetch(`/api/cats/${encodeURIComponent(e)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:t});return tt(a,`cats cat deletion returned ${a.status}`,t)}async function XS(e,t){const a=await fetch("/api/channels",{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(e),signal:t}),{channel:o}=await de(a,`cats chat creation returned ${a.status}`),n=uc(o);if(!n)throw new Error("Created channel payload was invalid.");return n}async function ZS(e,t,a){const o=await fetch(`/api/channels/${e}`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({title:t}),signal:a});return tt(o,`cats chat rename returned ${o.status}`,a)}async function eL(e,t){const a=await fetch(`/api/channels/${e}`,{method:"DELETE",headers:{Accept:"application/json"},signal:t});if(!a.ok)throw new Error(await gn(a,`cats chat deletion returned ${a.status}`));const o=await a.json();let n;try{n=await Ze(t)}catch{n=await Ze()}return{payload:n,runtimeCleanup:zg(o.runtimeCleanup)}}async function Yg(e,t){const a=await fetch("/api/cats",{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(e),signal:t});return tt(a,`cats chat cat creation returned ${a.status}`,t)}async function tL(e,t,a){const{catId:o,...n}=t,s=await fetch(`/api/channels/${e}/cats/${o}`,{method:"PUT",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(n),signal:a});return tt(s,`cats channel cat assignment returned ${s.status}`,a)}async function aL(e,t,a){const o=await fetch(`/api/channels/${e}/cats/${t}`,{method:"DELETE",headers:{Accept:"application/json"},signal:a});return tt(o,`cats channel cat removal returned ${o.status}`,a)}async function rL(e,t,a,o){const n=await fetch(`/api/channels/${encodeURIComponent(e)}/participants/${encodeURIComponent(t)}`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(a),signal:o});return tt(n,`cats channel participant update returned ${n.status}`,o)}async function oL(e,t){const a=await fetch(`/api/channels/${e}/activations`,{method:"POST",headers:{Accept:"application/json"},signal:t}),{activation:o}=await de(a,`cats channel activation returned ${a.status}`);let n;try{n=await Ze(t)}catch{n=await Ze()}return{appShell:n,results:o.results}}async function nL(e,t,a){const o=await Promise.all(t.map(async l=>{const c=await l.arrayBuffer(),u=new Uint8Array(c);return{name:l.name,data:pc(u)}})),n=await fetch(`/api/channels/${e}/attachments`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({files:o}),signal:a});return(await de(n,`attachment upload returned ${n.status}`)).attachments}async function sL(e){return Promise.all(e.map(async t=>{const a=await t.arrayBuffer(),o=new Uint8Array(a);return{name:t.name,data:pc(o)}}))}async function iL(e,t){const a=await fetch(Ft,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(e),signal:t});return de(a,`parallel chat creation returned ${a.status}`)}async function lL(e,t,a){const o=await fetch(`${Ft}/${encodeURIComponent(e)}/messages`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return de(o,`parallel chat dispatch returned ${o.status}`)}async function cL(e,t,a){const o=await fetch(`${Ft}/${encodeURIComponent(e)}/relay`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return de(o,`parallel chat relay returned ${o.status}`)}async function dL(e,t,a){const o=await fetch(`${Ft}/${encodeURIComponent(e)}/cancel`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return de(o,`parallel chat cancel returned ${o.status}`)}async function uL(e,t,a){const o=await fetch(`${Ft}/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return tt(o,`parallel chat rename returned ${o.status}`,a)}async function pL(e,t){const a=await fetch(`${Ft}/${encodeURIComponent(e)}/ungroup`,{method:"POST",headers:{Accept:"application/json"},signal:t});return tt(a,`parallel chat ungroup returned ${a.status}`,t)}async function hL(e,t){const a=await fetch(`${Ft}/${encodeURIComponent(e)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:t});return tt(a,`parallel chat deletion returned ${a.status}`,t)}async function mL(e,t){const a=await fetch(`/api/channels/${e}/cancel`,{method:"POST",headers:{Accept:"application/json"},signal:t});return de(a,`cats channel cancel returned ${a.status}`)}async function gL(e,t,a){const o=await fetch(`/api/channels/${encodeURIComponent(e)}/messages/${encodeURIComponent(t)}/retry`,{method:"POST",headers:{Accept:"application/json"},signal:a});return de(o,`channel message retry returned ${o.status}`)}async function fL(e,t,a){const o=await fetch(`/api/channels/${e}/messages`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return de(o,`cats channel messaging returned ${o.status}`)}async function Re(e,t,a){const o=await fetch(`/api/cats/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return tt(o,`cat profile update returned ${o.status}`,a)}function Qg(e){async function t(a){const o=await fetch("/api/setup/reset",{method:"POST",headers:{Accept:"application/json"},signal:a});return e(await de(o,`setup reset returned ${o.status}`))}return{resetSetup:t}}const Jg=Qg(Zl),Xg=Jg.resetSetup;function Zg(e){async function t(n,s){const l=await fetch("/api/bot-bindings",{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({platform:"telegram",...n}),signal:s});return e.refetchAfterMutation(l,`bot binding create returned ${l.status}`,s)}async function a(n,s){const l=await fetch(`/api/bot-bindings/${encodeURIComponent(n)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:s});return e.refetchAfterMutation(l,`bot binding delete returned ${l.status}`,s)}async function o(n,s,l){const c=await fetch(`/api/bot-bindings/${n}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(s),signal:l});return de(c,`update bot binding returned ${c.status}`)}return{createBotBindingApi:t,deleteBotBindingApi:a,updateBotBindingApi:o}}async function Ps(e){const t=await fetch("/api/transports/telegram",{headers:{Accept:"application/json"},signal:e});return(await de(t,`telegram transport status returned ${t.status}`)).telegram}async function As(e){const t=await fetch("/api/transports/telegram/diagnostics",{headers:{Accept:"application/json"},signal:e});return(await de(t,`telegram transport diagnostics returned ${t.status}`)).telegram}const hc=Zg({refetchAfterMutation:tt}),ef=hc.createBotBindingApi,tf=hc.deleteBotBindingApi;async function af(e,t){const a=await fetch(`/api/cats/${encodeURIComponent(e)}/memory`,{headers:{Accept:"application/json"},signal:t});return(await de(a,`cat memory list returned ${a.status}`)).records??[]}async function rf(e,t,a){const o=await fetch(`/api/cats/${encodeURIComponent(e)}/memory`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return(await de(o,`cat memory create returned ${o.status}`)).memory}async function of(e,t,a){const o=await fetch(`/api/cats/${encodeURIComponent(e)}/memory/${encodeURIComponent(t)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:a});await de(o,`cat memory delete returned ${o.status}`)}const wL="current",kL="full",mc={read_only:["default"],read_write:["skip","whitelist"]};function nf(e,t){return mc[e].includes(t)}function gc(e){return mc[e][0]}function sf(e){return typeof e=="string"&&e.trim().length>0}function Lo(e,t){if(!t)return{...e};const a={...e};for(const o of Object.keys(e)){const n=t[o];n!==void 0&&(a[o]=n)}return a}function vn(){const e="read_write";return{workspaceKind:"sandbox",workspaceAccess:e,permissionMode:gc(e)}}function Cn(e){const{workspaceKind:t,workspaceAccess:a}=e,o=nf(a,e.permissionMode)?e.permissionMode:gc(a);return a==="read_only"?{workspaceKind:t,workspaceAccess:a,permissionMode:o}:{workspaceKind:t,workspaceAccess:a,permissionMode:o}}function bL(){return Cn(vn())}function lf(e){return e.workspaceAccess==="read_only"?{runtimeWorkspaceKind:e.workspaceKind,runtimeWorkspaceAccess:e.workspaceAccess,runtimePermissionMode:e.permissionMode}:{runtimeWorkspaceKind:e.workspaceKind,runtimeWorkspaceAccess:e.workspaceAccess,runtimePermissionMode:e.permissionMode}}function yL(e){return Cn(Lo(vn(),e))}function cf(e){const t=Lo(vn(),{workspaceKind:sf(e.repoPath)?"source":void 0});return Cn(Lo(t,e.policy))}function vL(e){return e==="worktree"?"worktree":"current"}function CL(e){return e.hasCwd?e.isRepo&&e.workspaceMode==="worktree"?"worktree":"source":"sandbox"}function SL(e){return e==="read_only"?"read_only":"full"}function LL(e){return e==="read_only"?{workspaceAccess:"read_only",permissionMode:"default"}:{workspaceAccess:"read_write",permissionMode:"skip"}}function Sn(e){const t=e?.trim();return t==="Chat"||t==="Orchestrator"}function xs(e){const t=e?.trim();return!t||Sn(t)?null:t}function df(e){return xs(e.displayName)??xs(e.executionLabel)??(e.provider?un(e.provider,e.instance??null,null):null)}const et="chat-memory",fc="work-memory",ba=new Map;function RL(e,t){const a=ba.get(e)??null;a&&a!==t&&console.warn("Replacing pending optimistic send for channel.",{feature:"chat_optimistic_message_replaced_in_flight",channelId:e,previousMessageId:a,nextMessageId:t}),ba.set(e,t)}function uf(e,t){const a=ba.get(e)??null;a&&(t&&a!==t||ba.delete(e))}function PL(){return[...ba.entries()].map(([e,t])=>({channelId:e,optimisticMessageId:t}))}function fe(e){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}const Da=Oe("en");function Ts(e){return yt(e)??e.trim()}function Ds(){return{name:"",provider:"claude",instance:"",model:"",modelSelection:null,makeBoss:!1,products:gr(),skillProfile:"chat-default",mcpProfile:et}}function pf(e){return en(e.products,"chat",{fallback:gr()})}function wc(e){return Bm(e)}function hf(e){return Array.isArray(e)?new Set(e.filter(t=>!!t)):e?new Set([e]):new Set}function mf(e,t,a={}){const o=hf(a.bossCatIds);if(a.archivedLast){const c=e.status==="archived"?1:0,u=t.status==="archived"?1:0;if(c!==u)return c-u}const n=o.has(e.id)?0:1,s=o.has(t.id)?0:1;if(n!==s)return n-s;const l=e.createdAt.localeCompare(t.createdAt);return l!==0?l:e.id.localeCompare(t.id)}function _t(e,t={}){return[...e].sort((a,o)=>mf(a,o,t))}function gf(e){const t=e.metadata?.executionLabelSnapshot;return typeof t=="string"&&t.trim()?t.trim():null}function ff(e){const t=e?.trim();return!t||Sn(t)?null:t}function AL(e,t,a=Da){if(e.senderKind==="user"||e.senderKind==="system")return{kind:"none",label:null,cat:null};const o=e.metadata?.targetKind==="cat"||e.metadata?.targetKind==="orchestrator"?e.metadata.targetKind:null,n=typeof e.metadata?.targetId=="string"&&e.metadata.targetId?e.metadata.targetId:null,s=e.senderName?.trim()??"",l=ff(e.senderName),c=gf(e),u=Sn(s);if(o==="cat"&&n){const g=t.find(h=>h.id===n)??null;return g?{kind:"cat",label:g.name,cat:g}:{kind:"deleted_cat",label:a(i.sharedTranscriptDeletedCat),cat:null}}const p=l&&l!=="Orchestrator"?t.find(g=>g.name===l)??null:null;return p?{kind:"cat",label:p.name,cat:p}:(c||e.executionProvider)&&(o==="orchestrator"||u)?{kind:"provider",label:df({displayName:e.senderName,executionLabel:c,provider:e.executionProvider,instance:e.executionInstance}),cat:null}:l?{kind:"name",label:l,cat:null}:{kind:"none",label:null,cat:null}}function wf(e,t,a=Da){const o=e.replace(/\s+/g," ").trim();return o?o.slice(0,48):t>0?a(i.chatNewChatDraftGeneratedTitleWithIndex,{index:t+1}):a(i.chatNewChatDraftGeneratedTitle)}function kf(e){return e.replace(/\s+/g," ").trim().slice(0,120)}function xL(e,t){return t.length===0?e:`[Attached files in working directory:]
39
+ ${t.map(o=>`- ${o.relativePath}`).join(`
40
+ `)}
41
+
42
+ ${e}`}function TL(e){const{body:t,existingCount:a,originSurface:o,entryKind:n,repoPath:s,draftSessionPolicy:l,defaultRecipientCatId:c,participantCatIds:u=[],temporaryParticipants:p=[],draftExecutionTarget:g,assistantResponseLanguage:h,t:k}=e,f=c?.trim()||null,w=u.filter(y=>y!==f),b=n??(f||w.length>0?"group":"default"),m=f??w[0]??null,C=cf({repoPath:s,policy:l}),v={title:wf(t,a,k),topic:kf(t),originSurface:o,entryKind:b,skipBossCatGreeting:!0,repoPath:s??void 0,responseLanguage:h,...lf(C),temporaryParticipants:p.length>0?p.map(y=>({participantId:y.participantId,name:y.name,provider:Ts(y.provider),instance:y.instance??void 0,model:y.model??void 0,modelSelection:y.modelSelection??null,roleHint:y.roleHint??void 0})):void 0};return b==="direct"&&m?{...v,roomMode:"direct_message",defaultRecipientId:m,participantCatIds:[m,...w.filter(y=>y!==m)]}:f?{...v,defaultRecipientId:f,participantCatIds:[f,...w]}:w.length>0?{...v,participantCatIds:w}:{...v,pendingProvider:g?Ts(g.provider):void 0,pendingModel:g?.model??void 0,pendingInstance:g?.instance??void 0,pendingModelSelection:g?.modelSelection??void 0}}function DL(e){switch(e){case"user":return"transcriptMessage transcriptMessageUser";case"orchestrator":return"transcriptMessage transcriptMessageOrchestrator";case"agent":return"transcriptMessage transcriptMessageAgent";default:return"transcriptMessage transcriptMessageSystem"}}function bf(e,t=Da){return e.trim()==="Untitled chat"?t(i.chatNewChatDraftGeneratedTitle):e}function NL(e,t=20){const a=e.replace(/\\/g,"/").split("/").filter(Boolean).pop()??e;return a.length<=t?a:a.slice(0,t-3)+"..."}const yf=[i.chatNewChatDraftDefaultGreeting,i.chatNewChatDraftGreetingNap,i.chatNewChatDraftGreetingKeyboard,i.chatNewChatDraftGreetingLetsGo,i.chatNewChatDraftGreetingStandby,i.chatNewChatDraftGreetingTaskReady,i.chatNewChatDraftGreetingOnDuty];function jL(e=Da){const t=yf.map(a=>e(a));return t[Math.floor(Math.random()*t.length)]}function ML(e){return e.chat.bossCatId?e.chat.cats.find(t=>t.id===e.chat.bossCatId)?.name??null:null}function vf(e,t,a,o){return{id:crypto.randomUUID(),channelId:e,senderKind:"user",senderName:a.trim()||"User",body:t,mentions:[],metadata:{optimistic:!0},usage:null,createdAt:o}}function EL(e,t,a){const o=new Date().toISOString(),n=structuredClone(e),s=n.chat.selectedChannel,l=n.chat.channels.find(u=>u.id===t);if(!s||s.id!==t||!l)throw new Error("No chat is available for optimistic updates.");const c=vf(t,a,n.ownerDisplayName,o);return s.messages.push(c),s.updatedAt=o,s.lastMessageAt=o,s.unreadCount=0,l.lastMessageAt=o,l.unreadCount=0,n.chat.selectedChannelId=t,n.metadata.generatedAt=o,{payload:n,optimisticMessageId:c.id}}function IL(e,t,a){const o=structuredClone(e),n=o.chat.selectedChannel,s=o.chat.channels.find(l=>l.id===t);if(!n||n.id!==t||!s)throw new Error("No chat is available for optimistic execution target updates.");return n.pendingProvider=a.pendingProvider,n.pendingModel=a.pendingModel,n.pendingInstance=a.pendingInstance,n.pendingModelSelection=a.pendingModelSelection,s.pendingProvider=a.pendingProvider,s.pendingModel=a.pendingModel,s.pendingModelSelection=a.pendingModelSelection,o}function BL(e,t){const a=uc(t);if(!a)throw new Error("Created channel payload was invalid.");const o=structuredClone(e),n=a.roomRouting.defaultRecipientId??null,s=a.roomRouting.workflow.activeTurn?.status??a.roomRouting.workflow.lastOutcomeEvent?.status??null,l=s==="pending"?"running":s==="failed"?"error":s,c=a.roomRouting.workflow.activeTurn?.updatedAt??a.roomRouting.workflow.lastOutcomeEvent?.createdAt??a.roomRouting.lastOutcome?.completedAt??a.roomRouting.lastCheckpoint?.createdAt??null,u=Array.isArray(a.assignedParticipants)?a.assignedParticipants:a.assignedCats,p=u.length,g=u.filter(k=>k.status==="active").length,h={id:a.id,containerId:a.containerId,conversationId:a.conversationId,title:a.title,topic:a.topic,originSurface:a.originSurface,channelKind:a.channelKind,status:a.status,unreadCount:a.unreadCount,participantCount:p,activeParticipantCount:g,catCount:a.assignedCats.length,activeCatCount:a.assignedCats.filter(k=>k.status==="active").length,repoPath:a.repoPath,chatCwd:a.chatCwd,runtimeWorkspaceKind:a.runtimeWorkspaceKind??null,runtimeWorkspaceAccess:a.runtimeWorkspaceAccess??null,runtimePermissionMode:a.runtimePermissionMode??null,lastMessageAt:a.lastMessageAt,lastActivatedAt:a.lastActivatedAt,pendingProvider:a.pendingProvider,pendingModel:a.pendingModel,pendingModelSelection:a.pendingModelSelection??null,defaultRecipientCatId:n,roomMode:a.roomRouting.mode,routingStatus:l??void 0,lastRoutingAt:c};return o.chat.channels=[h,...o.chat.channels.filter(k=>k.id!==a.id)],o.chat.selectedChannelId=a.id,o.chat.selectedChannel=a,o.metadata.generatedAt=a.updatedAt,o}function FL(e,t,a,o){const n=e.chat.selectedChannel,s=n?.id===a?n.messages.find(g=>g.id===o&&g.senderKind==="user"&&g.metadata?.optimistic)??null:null;if(!s)return t;const l=structuredClone(t),c=l.chat.selectedChannel,u=l.chat.channels.find(g=>g.id===a);if(!c||c.id!==a||!u)return console.warn("Pending optimistic message channel disappeared during refresh.",{feature:"chat_optimistic_message_orphaned_channel",channelId:a,optimisticMessageId:s.id}),uf(a,s.id),t;const p=c.messages.find(g=>g.id===s.id);if(p){const g=p.senderKind===s.senderKind&&p.senderName===s.senderName&&p.metadata?.clientMessageId===s.id,h=p.senderKind===s.senderKind&&p.senderName===s.senderName&&p.body.trim()===s.body.trim();return!g&&!h&&console.warn("Skipped preserving optimistic message because refreshed row owns the id.",{feature:"chat_optimistic_message_preserve",reason:"id_collision",channelId:a,optimisticMessageId:s.id,existingSenderKind:p.senderKind}),t}return c.messages.push(structuredClone(s)),c.updatedAt=s.createdAt,c.lastMessageAt=s.createdAt,c.unreadCount=0,u.lastMessageAt=s.createdAt,u.unreadCount=0,l.chat.selectedChannelId=a,l.metadata.generatedAt=s.createdAt,l}function OL(e,t=Da){return r.jsx("div",{className:"screen bootShell","aria-label":t(i.sharedProductBootLoadingAria,{productName:e}),children:r.jsx("div",{className:"bootSpinner","aria-hidden":"true"})})}const Cf=Oe("en");function WL(e){return pf(e)}function Sf(e){return e?e.skillProfile==="companion"||e.roles.includes("companion"):!1}function UL(e,t){return bf(e,t)}const Lf=[i.chatNewChatDraftDefaultGreeting,i.chatNewChatDraftGreetingNap,i.chatNewChatDraftGreetingKeyboard,i.chatNewChatDraftGreetingLetsGo,i.chatNewChatDraftGreetingStandby,i.chatNewChatDraftGreetingTaskReady,i.chatNewChatDraftGreetingOnDuty];Lf.map(e=>Cf(e));function HL(){const{t:e}=W();return r.jsx("div",{className:"screen bootShell","aria-label":e(i.chatBootLoadingAria),children:r.jsx("div",{className:"bootSpinner","aria-hidden":"true"})})}const kc="cat",Ln="preset",bc="group",yc="parallel",Rf="/setup";function Cr(e){const t=e?.trim();return t||null}function Qt(e){return`${e}/new`}function Pf(e){return`${e}/dm`}function GL(e,t){return t?Qt(e):Rf}function Af(e,t){const a=Cr(t),o=Qt(e);if(!a)return o;const n=new URLSearchParams([[kc,a]]);return`${o}?${n.toString()}`}function _L(e){const t=new URLSearchParams([[Ln,bc]]);return`${Qt(e)}?${t.toString()}`}function KL(e){const t=new URLSearchParams([[Ln,yc]]);return`${Qt(e)}?${t.toString()}`}function qL(e,t){const a=Cr(t),o=Pf(e);return a?`${o}/${encodeURIComponent(a)}`:o}function $L(e){const t=new URLSearchParams(e);return Cr(t.get(kc))}function zL(e){const t=new URLSearchParams(e),a=Cr(t.get(Ln));return a===yc?"parallel":a===bc?"group":"default"}function Ns(e,t){return`${e}/chats/${encodeURIComponent(t)}`}function VL(e){return(e?.trim()??"").startsWith("draft-")}function YL(e,t,a,o){const n=o?t.filter(u=>u.originSurface===o):t,s=a?.trim()??"",l=n.find(u=>u.id===s&&!vs(u));if(l)return Ns(e,l.id);const c=n.find(u=>!vs(u));return c?Ns(e,c.id):Qt(e)}function QL(e,t){return t===Qt(e)}const js="direct_message";function vc(e){return e.channelKind===js||e.roomMode===js}function xf(e,t){return e.find(a=>vc(a)&&a.defaultRecipientCatId===t)??null}function JL(e,t){const a=new Map;for(const o of t){if(!vc(o))continue;const n=o.defaultRecipientCatId;if(!n)continue;const s=o.lastActivatedAt??o.lastMessageAt??"",l=a.get(n);(!l||l.localeCompare(s)<0)&&a.set(n,s)}return[...e].sort((o,n)=>{const s=a.get(o.id)??o.createdAt;return(a.get(n.id)??n.createdAt).localeCompare(s)})}function Tf(e){const t=e?.trim();return t||null}function Rn(e,t){const a=Tf(t),o=`${e}/dm`;return a?`${o}/${encodeURIComponent(a)}`:o}function XL(e,t){return xf(e,t)}function ZL(e){switch(e){case"ready":return"awake";case"initializing":return"waking_up";case"error":return"error";case"not_started":case"closed":case"removed":return"sleeping";default:return"no_dot"}}function eR(e){switch(e){case"awake":return"myCatDot myCatDotAwake";case"waking_up":return"myCatDot myCatDotWaking";case"sleeping":return"myCatDot myCatDotSleeping";case"error":return"myCatDot myCatDotError";default:return""}}function tR(e){switch(e){case"awake":return i.chatLifecycleAwakeLabel;case"waking_up":return i.chatLifecycleWakingUpLabel;case"sleeping":return i.chatLifecycleSleepingLabel;case"error":return i.chatCatStatusErrorLabel;default:return null}}function aR(e,t,a){return{kind:"direct_message",path:Rn(e,a)}}const Df=Oe("en");function Nf(e,t=Df){switch(e){case"overview":return t(i.chatCompanionTabStatus);case"resources":return t(i.chatCompanionTabSources);case"memory":return t(i.chatCompanionTabMemory);case"settings":return t(i.chatCompanionTabBehavior);case"inspector":return t(i.chatCompanionTabInspector)}}const qr=["overview","resources","memory","settings","inspector"],Le=256;function Ro(e,t){const a=e.img.naturalWidth*e.scale,o=e.img.naturalHeight*e.scale,n=t-a,s=t-o;return{x:Math.min(0,Math.max(n,e.x)),y:Math.min(0,Math.max(s,e.y))}}function Ms(e,t,a){e.clearRect(0,0,a,a);const o=t.img.naturalWidth*t.scale,n=t.img.naturalHeight*t.scale,s=Ro(t,a);e.drawImage(t.img,s.x,s.y,o,n)}function $r(e,t){const a=Math.min(e.naturalWidth,e.naturalHeight);return t/a}function Jt({onSave:e,onClose:t,initialDataUrl:a}){const o=d.useRef(null),n=d.useRef(null),s=d.useRef(null),[l,c]=d.useState(null),u=d.useRef(null),{t:p}=W(),g=d.useCallback(()=>{const w=o.current?.getContext("2d");!w||!l||Ms(w,l,Le)},[l]);d.useEffect(()=>{g()},[g]),d.useEffect(()=>{if(!a)return;let w=!1;const b=new Image;return b.crossOrigin="anonymous",b.onload=()=>{if(w)return;const m=$r(b,Le),C=b.naturalWidth*m,v=b.naturalHeight*m;c({img:b,x:(Le-C)/2,y:(Le-v)/2,scale:m})},b.src=a,()=>{w=!0}},[a]);function h(w){if(!w.type.startsWith("image/"))return;const b=new Image;b.onload=()=>{const m=$r(b,Le),C=b.naturalWidth*m,v=b.naturalHeight*m;c({img:b,x:(Le-C)/2,y:(Le-v)/2,scale:m})},b.src=URL.createObjectURL(w)}function k(w){if(!l)return;w.preventDefault(),u.current={startX:w.clientX,startY:w.clientY,origX:l.x,origY:l.y};function b(C){if(!u.current)return;const{startX:v,startY:y,origX:L,origY:x}=u.current,T=C.clientX-v,N=C.clientY-y;c(A=>{if(!A)return A;const R={...A,x:L+T,y:x+N},P=Ro(R,Le);return{...R,...P}})}function m(){u.current=null,document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",m)}document.addEventListener("mousemove",b),document.addEventListener("mouseup",m)}d.useEffect(()=>{const w=n.current;if(!w)return;function b(m){m.preventDefault();const C=m.deltaY>0?.95:1.05;c(v=>{if(!v)return v;const y=$r(v.img,Le),L=Math.max(y,Math.min(v.scale*C,y*5)),x=Le/2,T=Le/2,N=x-(x-v.x)*(L/v.scale),A=T-(T-v.y)*(L/v.scale),R={...v,scale:L,x:N,y:A},P=Ro(R,Le);return{...R,...P}})}return w.addEventListener("wheel",b,{passive:!1}),()=>w.removeEventListener("wheel",b)},[l==null]);function f(){if(!o.current||!l)return;const b=document.createElement("canvas");b.width=Le,b.height=Le;const m=b.getContext("2d");m.beginPath(),m.arc(Le/2,Le/2,Le/2,0,Math.PI*2),m.clip(),Ms(m,l,Le),e(b.toDataURL("image/png"))}return d.useEffect(()=>{function w(b){b.key==="Escape"&&t()}return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[t]),r.jsx("div",{className:"avatarCropOverlay",onClick:t,children:r.jsxs("div",{className:"avatarCropDialog",onClick:w=>w.stopPropagation(),children:[r.jsx("p",{className:"avatarCropTitle",children:p(i.settingsGeneralAvatarUploadLabel)}),l?r.jsxs(r.Fragment,{children:[r.jsx("div",{ref:n,className:"avatarCropCanvasWrap",onMouseDown:k,children:r.jsx("canvas",{ref:o,className:"avatarCropCanvas",width:Le,height:Le})}),r.jsx("p",{className:"avatarCropHint",children:p(i.sharedImageUploadDragHint)})]}):r.jsx("div",{className:"avatarCropUploadArea",onClick:()=>s.current?.click(),children:p(i.sharedImageUploadClickHint)}),r.jsx("input",{ref:s,type:"file",accept:"image/*",style:{display:"none"},onChange:w=>{const b=w.target.files?.[0];b&&h(b),w.target.value=""}}),r.jsxs("div",{className:"avatarCropActions",children:[r.jsx("button",{className:"confirmCancelButton",type:"button",onClick:t,children:p(i.sharedCommonCancel)}),l?r.jsx("button",{className:"primaryButton",type:"button",onClick:f,children:p(i.sharedCommonApply)}):null]})]})})}const zr=960,Es=360,Ve=480,nt=180;function Po(e,t,a){const o=e.img.naturalWidth*e.scale,n=e.img.naturalHeight*e.scale;return{x:Math.min(0,Math.max(t-o,e.x)),y:Math.min(0,Math.max(a-n,e.y))}}function Is(e,t,a,o){e.clearRect(0,0,a,o);const n=t.img.naturalWidth*t.scale,s=t.img.naturalHeight*t.scale,l=Po(t,a,o);e.drawImage(t.img,l.x,l.y,n,s)}function Vr(e,t,a){return Math.max(t/e.naturalWidth,a/e.naturalHeight)}function Pn({onSave:e,onClose:t,title:a,initialDataUrl:o}){const n=d.useRef(null),s=d.useRef(null),l=d.useRef(null),[c,u]=d.useState(null),p=d.useRef(null),{t:g}=W(),h=a??g(i.sharedSettingsCatsUploadCoverPhotoLabel),k=d.useCallback(()=>{const m=n.current?.getContext("2d");!m||!c||Is(m,c,Ve,nt)},[c]);d.useEffect(()=>{k()},[k]),d.useEffect(()=>{if(!o)return;let m=!1;const C=new Image;return C.crossOrigin="anonymous",C.onload=()=>{if(m)return;const v=Vr(C,Ve,nt),y=C.naturalWidth*v,L=C.naturalHeight*v;u({img:C,x:(Ve-y)/2,y:(nt-L)/2,scale:v})},C.src=o,()=>{m=!0}},[o]);function f(m){if(!m.type.startsWith("image/"))return;const C=new Image;C.onload=()=>{const v=Vr(C,Ve,nt),y=C.naturalWidth*v,L=C.naturalHeight*v;u({img:C,x:(Ve-y)/2,y:(nt-L)/2,scale:v})},C.src=URL.createObjectURL(m)}function w(m){if(!c)return;m.preventDefault(),p.current={startX:m.clientX,startY:m.clientY,origX:c.x,origY:c.y};function C(y){if(!p.current)return;const{startX:L,startY:x,origX:T,origY:N}=p.current,A=y.clientX-L,R=y.clientY-x;u(P=>{if(!P)return P;const I={...P,x:T+A,y:N+R},O=Po(I,Ve,nt);return{...I,...O}})}function v(){p.current=null,document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",v)}document.addEventListener("mousemove",C),document.addEventListener("mouseup",v)}d.useEffect(()=>{const m=s.current;if(!m)return;function C(v){v.preventDefault();const y=v.deltaY>0?.95:1.05;u(L=>{if(!L)return L;const x=Vr(L.img,Ve,nt),T=Math.max(x,Math.min(L.scale*y,x*5)),N=Ve/2,A=nt/2,R=N-(N-L.x)*(T/L.scale),P=A-(A-L.y)*(T/L.scale),I={...L,scale:T,x:R,y:P},O=Po(I,Ve,nt);return{...I,...O}})}return m.addEventListener("wheel",C,{passive:!1}),()=>m.removeEventListener("wheel",C)},[c==null]);function b(){if(!c)return;const m=document.createElement("canvas");m.width=zr,m.height=Es;const C=m.getContext("2d"),v=zr/Ve,y={img:c.img,x:c.x*v,y:c.y*v,scale:c.scale*v};Is(C,y,zr,Es),e(m.toDataURL("image/jpeg",.85))}return d.useEffect(()=>{function m(C){C.key==="Escape"&&t()}return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[t]),r.jsx("div",{className:"avatarCropOverlay",onClick:t,children:r.jsxs("div",{className:"avatarCropDialog coverCropDialog",onClick:m=>m.stopPropagation(),children:[r.jsx("p",{className:"avatarCropTitle",children:h}),c?r.jsxs(r.Fragment,{children:[r.jsx("div",{ref:s,className:"avatarCropCanvasWrap coverCropCanvasWrap",onMouseDown:w,children:r.jsx("canvas",{ref:n,className:"avatarCropCanvas coverCropCanvas",width:Ve,height:nt})}),r.jsx("p",{className:"avatarCropHint",children:g(i.sharedImageUploadDragHint)})]}):r.jsx("div",{className:"avatarCropUploadArea coverCropUploadArea",onClick:()=>l.current?.click(),children:g(i.sharedImageUploadClickHint)}),r.jsx("input",{ref:l,type:"file",accept:"image/*",style:{display:"none"},onChange:m=>{const C=m.target.files?.[0];C&&f(C),m.target.value=""}}),r.jsxs("div",{className:"avatarCropActions",children:[r.jsx("button",{className:"confirmCancelButton",type:"button",onClick:t,children:g(i.sharedCommonCancel)}),c?r.jsx("button",{className:"primaryButton",type:"button",onClick:b,children:g(i.sharedCommonApply)}):null]})]})})}const jf="cats:draft-header:cover:",Ao="cats:cat-cover-updated";function ar(e){return jf+e}function ya(e){if(!e)return null;try{return window.localStorage.getItem(ar(e))}catch{return null}}function Dt(e,t){try{t==null?window.localStorage.removeItem(ar(e)):window.localStorage.setItem(ar(e),t)}catch{}window.dispatchEvent(new CustomEvent(Ao,{detail:{catId:e}}))}function An(e,t){if(!e)return()=>{};const a=e;function o(s){s.detail?.catId===a&&t(ya(a))}function n(s){s.key===ar(a)&&t(ya(a))}return window.addEventListener(Ao,o),window.addEventListener("storage",n),()=>{window.removeEventListener(Ao,o),window.removeEventListener("storage",n)}}function Bs(e){if(e.avatarUrl)return{backgroundImage:`url(${e.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"};if(e.avatarColor)return{background:e.avatarColor}}function Fs(){return r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}function Mf({variant:e="intro",eyebrow:t,title:a,description:o,supportingContent:n,actions:s,avatarName:l,avatarUrl:c,avatarColor:u,coverStorageKey:p,onAvatarSave:g,alwaysEditable:h=!1,readOnlyVisuals:k=!1}){const f=e==="profile"&&!!l,w=e==="profile"&&!!p,[b,m]=d.useState(null),[C,v]=d.useState(!1),[y,L]=d.useState(!1),{t:x}=W();d.useEffect(()=>{if(!w||!p){m(null);return}return m(ya(p)),An(p,m)},[p,w]);function T($){v(!1),p&&Dt(p,$)}function N($){L(!1),g?.($)}const A=(()=>{const $={};return b&&($.backgroundImage=`url(${b})`),u&&($["--cat-avatar-color"]=u),Object.keys($).length>0?$:void 0})(),R=["draftHeader",e==="profile"?"draftHeaderProfile":"draftHeaderIntro",w?"draftHeaderWithCover":null].filter(Boolean).join(" "),P=f&&!k&&typeof g=="function"&&(h||!c),I=w&&!k&&(h||!b),O=x(b?i.sharedDraftHeaderChangeCoverPhoto:i.sharedDraftHeaderAddCoverPhoto),E=x(c?i.sharedDraftHeaderChangeAvatar:i.sharedDraftHeaderAddAvatar);return r.jsxs("div",{className:R,children:[w?r.jsx("div",{className:`draftHeaderCover${b?" draftHeaderCoverLoaded":""}`,style:A,children:I?r.jsxs("button",{type:"button",className:"draftHeaderCoverAddButton",onClick:()=>v(!0),"aria-label":O,children:[r.jsx(Fs,{}),r.jsx("span",{children:O})]}):null}):null,f?r.jsx("div",{className:"draftHeaderVisual",children:P?r.jsxs("button",{type:"button",className:"draftHeaderAvatar draftHeaderAvatarEditable",style:Bs({avatarUrl:c,avatarColor:u}),onClick:()=>L(!0),"aria-label":E,children:[c?null:r.jsx("span",{className:"draftHeaderAvatarInitials","aria-hidden":"true",children:fe(l??"")}),r.jsx("span",{className:"draftHeaderAvatarCameraBadge","aria-hidden":"true",children:r.jsx(Fs,{})})]}):r.jsx("div",{className:"draftHeaderAvatar",style:Bs({avatarUrl:c,avatarColor:u}),"aria-hidden":"true",children:c?null:fe(l??"")})}):null,r.jsxs("div",{className:"draftHeaderBody",children:[t?r.jsx("p",{className:"eyebrow",children:t}):null,r.jsxs("div",{className:"draftHeaderTitleRow",children:[r.jsx("h1",{className:"draftHeaderTitle",children:a}),s?r.jsx("div",{className:"draftHeaderActions",children:s}):null]}),o?r.jsx("p",{className:"heroNote",children:o}):null,n?r.jsx("div",{className:"draftHeaderSupportingContent",children:n}):null]}),C?r.jsx(Pn,{onSave:T,onClose:()=>v(!1),initialDataUrl:b}):null,y?r.jsx(Jt,{onSave:N,onClose:()=>L(!1),initialDataUrl:c}):null]})}function Ke(e){return`/api/cats/${encodeURIComponent(e)}/companion-box`}async function Ef(e,t){const a=await fetch(Ke(e),{headers:{Accept:"application/json"},signal:t});return de(a,`companion box summary returned ${a.status}`)}async function If(e,t){const a=await fetch(`${Ke(e)}/sources`,{headers:{Accept:"application/json"},signal:t});return(await de(a,`companion sources list returned ${a.status}`)).sources??[]}async function Bf(e,t,a){const o=await fetch(`${Ke(e)}/sources`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return de(o,`companion source create returned ${o.status}`)}async function Ff(e,t,a,o){const n=await fetch(`${Ke(e)}/sources/${encodeURIComponent(t)}`,{method:"PUT",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(a),signal:o});return de(n,`companion source update returned ${n.status}`)}async function Of(e,t,a){const o=await fetch(`${Ke(e)}/sources/${encodeURIComponent(t)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:a});return de(o,`companion source delete returned ${o.status}`)}async function Wf(e,t){const a=await fetch(`${Ke(e)}/profile`,{headers:{Accept:"application/json"},signal:t});return(await de(a,`companion profile read-model returned ${a.status}`)).profile}async function Uf(e,t){const a=await fetch(`${Ke(e)}/activity`,{headers:{Accept:"application/json"},signal:t});return(await de(a,`companion activity returned ${a.status}`)).activity}async function Os(e,t){const a=await fetch(`${Ke(e)}/memory`,{headers:{Accept:"application/json"},signal:t});return(await de(a,`companion memory list returned ${a.status}`)).memory??[]}async function Hf(e,t,a){const o=await fetch(`${Ke(e)}/memory`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return de(o,`companion memory create returned ${o.status}`)}async function Gf(e,t,a){const o=await fetch(`${Ke(e)}/memory/${encodeURIComponent(t)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:a});if(!o.ok)throw new Error(`companion memory delete returned ${o.status}`)}async function _f(e,t){const a=await fetch(`${Ke(e)}/response-profile`,{headers:{Accept:"application/json"},signal:t});return de(a,`companion response profile returned ${a.status}`)}async function Kf(e,t,a){const o=await fetch(`${Ke(e)}/response-profile`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return de(o,`companion response profile update returned ${o.status}`)}const qf={entries:[],olderHidden:!1};function $f(e){const[t,a]=d.useState(null),[o,n]=d.useState(!1),[s,l]=d.useState(null),[c,u]=d.useState(0),p=d.useRef(null);return d.useEffect(()=>{if(!e.enabled){a(null),n(!1),l(null);return}p.current?.abort();const g=new AbortController;return p.current=g,n(!0),l(null),Uf(e.catId,g.signal).then(h=>{g.signal.aborted||(a(h),n(!1))}).catch(h=>{g.signal.aborted||(l(h instanceof Error?h.message:String(h)),n(!1))}),()=>{g.abort()}},[e.catId,e.enabled,c]),{projection:e.enabled?t??qf:null,loading:o,error:s,refresh:()=>u(g=>g+1)}}const zf=Oe("en");function Vf(e){switch(e){case"ready":return"awake";case"initializing":return"waking_up";case"error":return"error";default:return"sleeping"}}function Yf(e){switch(e){case"awake":return i.chatLifecycleAwakeLabel;case"waking_up":return i.chatLifecycleWakingUpLabel;case"error":return i.chatLifecycleNeedsAttentionLabel;default:return i.chatLifecycleSleepingLabel}}function Ws(e,t=zf){return t(Yf(e))}function Qf(e){switch(e){case"awake":return"isAwake";case"waking_up":return"isWaking";case"error":return"isErrored";default:return"isSleeping"}}function Jf(e,t){const{t:a}=W();return d.useMemo(()=>{const o=t.chat.channels.find(l=>l.channelKind==="direct_message"&&l.defaultRecipientCatId===e);if(!o)return{presence:"sleeping",label:Ws("sleeping",a),className:"isSleeping",canWake:!0,canSleep:!1};const n=o.defaultRecipientLeaseStatus??null,s=Vf(n);return{presence:s,label:Ws(s,a),className:Qf(s),canWake:s==="sleeping"||s==="error",canSleep:s==="awake"}},[e,t.chat.channels,a])}const Xf={posts:[],photos:[],videos:[],music:[],files:[]};function Zf(e){const[t,a]=d.useState(null),[o,n]=d.useState(!1),[s,l]=d.useState(null),[c,u]=d.useState(0),p=d.useRef(null);return d.useEffect(()=>{if(!e.enabled){a(null),n(!1),l(null);return}p.current?.abort();const g=new AbortController;return p.current=g,n(!0),l(null),Wf(e.catId,g.signal).then(h=>{g.signal.aborted||(a(h),n(!1))}).catch(h=>{g.signal.aborted||(l(h instanceof Error?h.message:String(h)),n(!1))}),()=>{g.abort()}},[e.catId,e.enabled,c]),{profile:e.enabled?t??Xf:null,loading:o,error:s,refresh:()=>u(g=>g+1)}}function ew(e,t){const[a,o]=d.useState(null),[n,s]=d.useState([]),[l,c]=d.useState([]),[u,p]=d.useState(null),[g,h]=d.useState(!1),[k,f]=d.useState(null),w=d.useRef(null),b=d.useRef(0),{t:m}=W(),C=d.useCallback(async R=>{w.current?.abort();const P=new AbortController;w.current=P;const I=P.signal;h(!0),f(null);try{switch(R){case"overview":{const[O,E]=await Promise.all([Ef(e,I),Os(e,I)]);I.aborted||(o(O),c(E));break}case"resources":{const O=await If(e,I);I.aborted||s(O);break}case"memory":{const O=await Os(e,I);I.aborted||c(O);break}case"settings":{const O=await _f(e,I);I.aborted||p(O);break}}}catch(O){I.aborted||f(O instanceof Error?O.message:m(i.chatCompanionWorkspaceLoadError))}finally{I.aborted||h(!1)}},[e,m]);d.useEffect(()=>(C(t),()=>{w.current?.abort()}),[t,e,C]);const v=d.useCallback(()=>{b.current+=1,C(t)},[t,C]),y=d.useCallback(async R=>{await Bf(e,R),v()},[e,v]),L=d.useCallback(async(R,P)=>{await Ff(e,R,P),v()},[e,v]),x=d.useCallback(async R=>{await Of(e,R),v()},[e,v]),T=d.useCallback(async R=>{await Hf(e,R),v()},[e,v]),N=d.useCallback(async R=>{await Gf(e,R),v()},[e,v]),A=d.useCallback(async R=>{const P=await Kf(e,R);p(P)},[e]);return{summary:a,sources:n,memory:l,responseProfile:u,loading:g,error:k,refreshTab:v,addSource:y,editSource:L,removeSource:x,addMemory:T,removeMemory:N,editResponseProfile:A}}const Us=[{id:"posts",labelKey:i.chatCompanionFeedTabPosts},{id:"photos",labelKey:i.chatCompanionFeedTabPhotos},{id:"videos",labelKey:i.chatCompanionFeedTabVideos},{id:"music",labelKey:i.chatCompanionFeedTabMusic},{id:"files",labelKey:i.chatCompanionFeedTabFiles},{id:"activity",labelKey:i.chatCompanionFeedTabActivity}],Ua={photo:i.chatCompanionFeedSurfacePhotoLabel,video:i.chatCompanionFeedSurfaceVideoLabel,music:i.chatCompanionFeedSurfaceMusicLabel,file:i.chatCompanionFeedSurfaceFileLabel};function tw({catName:e,translate:t}){return r.jsx("div",{className:"companionEmptyState",children:r.jsx("p",{children:t(i.chatCompanionFeedPostEmptyState,{catName:e})})})}function Cc({surfaceLabel:e,translate:t}){return r.jsx("div",{className:"companionEmptyState",children:r.jsx("p",{children:t(i.chatCompanionFeedMediaEmptyState,{type:e})})})}function aw({translate:e}){return r.jsx("div",{className:"companionEmptyState",children:r.jsx("p",{children:e(i.chatCompanionFeedActivityEmptyState)})})}function rw(e){try{return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return e}}function ow(e,t){const a=e?.entries??[];return a.length===0?r.jsx(aw,{translate:t}):r.jsxs("div",{className:"companionActivityList",children:[r.jsx("ul",{children:a.map(o=>r.jsxs("li",{className:"companionActivityEntry","data-group":o.group,children:[r.jsx("time",{className:"companionActivityTimestamp",dateTime:o.occurredAt,children:rw(o.occurredAt)}),r.jsx("span",{className:"companionActivitySummary",children:o.summary}),o.count>1?r.jsxs("span",{className:"companionActivityCount",children:["×",o.count]}):null]},o.id))}),e?.olderHidden?r.jsx("p",{className:"companionActivityHidden",children:t(i.chatCompanionFeedActivityHiddenState)}):null]})}function nw(e,t,a,o){const s=(e?.posts??[]).filter(l=>l.status==="active");return s.length===0?r.jsx(tw,{catName:t,translate:a}):r.jsx("div",{className:"companionProfilePostList",children:s.map(l=>r.jsxs("article",{className:"companionProfilePostCard",children:[r.jsxs("header",{className:"companionProfilePostHeader",children:[r.jsx("h3",{className:"companionProfilePostTitle",children:l.title}),r.jsx("time",{className:"companionProfilePostTimestamp",dateTime:l.publishedAt,children:l.publishedAt})]}),l.body?r.jsx("p",{className:"companionProfilePostBody",children:l.body}):null,l.tags.length>0?r.jsx("ul",{className:"companionProfilePostTags",children:l.tags.map(c=>r.jsx("li",{children:c},c))}):null,l.mediaRefs.length>0?r.jsx("div",{className:"companionProfilePostMediaGrid","aria-label":o(l.mediaRefs.length),children:l.mediaRefs.map(c=>r.jsx("span",{className:"companionProfilePostMediaTile","data-kind":c.kind,"data-id":c.id},`${c.kind}:${c.id}`))}):null]},l.id))})}function Yr(e,t,a,o,n){const s=e??[];return s.length===0?r.jsx(Cc,{surfaceLabel:a,translate:o}):r.jsx("ul",{className:`companionProfileMediaList companionProfileMediaList--${t}`,"aria-label":n,children:s.map(l=>r.jsxs("li",{className:"companionProfileMediaTile",children:[r.jsx("span",{className:"companionProfileMediaTitle",children:l.title}),l.mimeType?r.jsx("span",{className:"companionProfileMediaMime",children:l.mimeType}):null]},l.id))})}function sw(e,t,a,o){const n=e??[];return n.length===0?r.jsx(Cc,{surfaceLabel:t,translate:a}):r.jsx("ul",{className:"companionProfileFileList","aria-label":o,children:n.map(s=>r.jsxs("li",{className:"companionProfileFileRow",children:[r.jsx("span",{className:"companionProfileFileTitle",children:s.title}),s.mimeType?r.jsx("span",{className:"companionProfileFileMime",children:s.mimeType}):null]},s.id))})}function iw({cat:e,profile:t=null,activity:a=null}){const[o,n]=d.useState("posts"),{t:s}=W(),l={photo:s(Ua.photo),video:s(Ua.video),music:s(Ua.music),file:s(Ua.file)},c=(p,g)=>s(i.chatCompanionFeedMediaItemsLabel,{count:p,surface:g});d.useEffect(()=>{Us.some(p=>p.id===o)||n("posts")},[o]);let u;switch(o){case"posts":u=nw(t,e.name,s,p=>c(p,s(i.chatCompanionFeedMediaItemDefaultLabel)));break;case"photos":u=Yr(t?.photos,"photo",l.photo,s,c(t?.photos?.length??0,l.photo));break;case"videos":u=Yr(t?.videos,"video",l.video,s,c(t?.videos?.length??0,l.video));break;case"music":u=Yr(t?.music,"music",l.music,s,c(t?.music?.length??0,l.music));break;case"files":u=sw(t?.files,l.file,s,c(t?.files?.length??0,l.file));break;case"activity":u=ow(a,s);break}return r.jsxs("div",{className:"companionFeed",children:[r.jsx("nav",{className:"companionFeedTabs",role:"tablist","aria-label":s(i.chatCompanionFeedNavAriaLabel),children:Us.map(p=>r.jsx("button",{type:"button",role:"tab","aria-selected":o===p.id,className:o===p.id?"companionFeedTab companionFeedTabActive":"companionFeedTab",onClick:()=>n(p.id),children:s(p.labelKey)},p.id))}),r.jsx("div",{className:"companionFeedContent",children:u})]})}function lw({companionMode:e,onToggle:t}){const{t:a}=W();return r.jsxs("div",{className:"companionModeToggle",role:"group","aria-label":a(i.chatCompanionModeToggleDirectLaneAriaLabel),children:[r.jsx("button",{type:"button",className:"channelActionIconButton companionModeToggleSegment","aria-pressed":!e,"aria-label":a(i.chatCompanionModeToggleChatViewAriaLabel),"data-tooltip":a(i.chatCompanionModeToggleChatViewAriaLabel),onClick:()=>{e&&t()},children:r.jsx("svg",{className:"channelActionIconGlyph",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r.jsx("path",{d:"M2.5 4.5a1.5 1.5 0 0 1 1.5-1.5h8a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-1.5 1.5H7l-3 2.5V11H4a1.5 1.5 0 0 1-1.5-1.5z"})})}),r.jsx("button",{type:"button",className:"channelActionIconButton companionModeToggleSegment","aria-pressed":e,"aria-label":a(i.chatCompanionModeToggleCompanionViewAriaLabel),"data-tooltip":a(i.chatCompanionModeToggleCompanionViewAriaLabel),onClick:()=>{e||t()},children:r.jsxs("svg",{className:"channelActionIconGlyph",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("circle",{cx:"8",cy:"6",r:"2.75"}),r.jsx("path",{d:"M2.75 13.25a5.25 5.25 0 0 1 10.5 0"})]})})]})}function cw(e){try{return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return e}}function dw({summary:e,recentMemory:t,presence:a,onWake:o,onSleep:n,loading:s}){const{t:l}=W(),c={identity:l(i.chatCompanionMemoryCategoryIdentity),preference:l(i.chatCompanionMemoryCategoryPreference),relationship:l(i.chatCompanionMemoryCategoryRelationship),fact:l(i.chatCompanionMemoryCategoryFact),event:l(i.chatCompanionMemoryCategoryEvent),owner_note:l(i.chatCompanionMemoryCategoryOwnerNote),all:l(i.chatCompanionMemoryFilterAll)};if(s&&!e)return r.jsx("div",{className:"companionSection companionLoading",children:l(i.chatCompanionOverviewLoadingState)});const u=t.slice(0,5);return r.jsxs("div",{className:"companionSection companionOverview",children:[r.jsxs("div",{className:"companionCard companionPresenceCard",children:[r.jsx("div",{className:"companionCardHeader",children:l(i.chatCompanionOverviewPresenceTitle)}),r.jsxs("div",{className:"companionPresenceRow",children:[r.jsxs("span",{className:`companionPresenceLarge ${a.className}`,children:[r.jsx("span",{className:"companionPresenceDot"}),a.label]}),a.canWake&&r.jsx("button",{type:"button",className:"companionActionButton",onClick:o,children:l(i.chatCompanionOverviewPresenceWakeButton)}),a.canSleep&&r.jsx("button",{type:"button",className:"companionActionButton companionActionSecondary",onClick:n,children:l(i.chatCompanionOverviewPresenceSleepButton)})]})]}),e&&r.jsxs("div",{className:"companionCard companionStatsCard",children:[r.jsx("div",{className:"companionCardHeader",children:l(i.chatCompanionOverviewSummaryTitle)}),r.jsxs("ul",{className:"companionStatsList",children:[r.jsxs("li",{children:[r.jsx("strong",{children:e.sourceCount})," ",l(i.chatCompanionOverviewSummaryResourceLabel)]}),r.jsxs("li",{children:[r.jsx("strong",{children:e.derivedCount})," ",l(i.chatCompanionOverviewSummaryCreationLabel)]}),r.jsxs("li",{children:[r.jsx("strong",{children:e.memoryCount})," ",l(i.chatCompanionOverviewSummaryMemoryLabel)]})]})]}),r.jsxs("div",{className:"companionCard companionRecentMemoryCard",children:[r.jsx("div",{className:"companionCardHeader",children:l(i.chatCompanionOverviewRecentMemoriesTitle)}),u.length===0?r.jsx("p",{className:"companionEmpty",children:l(i.chatCompanionOverviewEmptyState)}):r.jsx("ul",{className:"companionMemoryList",children:u.map(p=>r.jsxs("li",{className:"companionMemoryItem",children:[r.jsx("span",{className:"companionMemoryCategory",children:c[p.category]??p.category}),r.jsx("span",{className:"companionMemoryContent",children:p.content}),r.jsx("span",{className:"companionMemoryDate",children:cw(p.updatedAt)})]},p.id))})]})]})}function uw(e){try{return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return e}}function pw(e){switch(e){case"note":return"note";case"conversation_log":return"conversation_log";case"article":return"article";case"image":return"image";case"video":return"video";case"audio":return"audio";case"path_ref":return"path_ref";default:return"unknown"}}function hw({sources:e,loading:t,onAddSource:a,onDeleteSource:o}){const[n,s]=d.useState(!1),[l,c]=d.useState(""),[u,p]=d.useState(""),[g,h]=d.useState(""),[k,f]=d.useState(!1),{t:w}=W(),b={note:w(i.chatCompanionResourcesSourceKindNote),conversation_log:w(i.chatCompanionResourcesSourceKindConversationLog),article:w(i.chatCompanionResourcesSourceKindArticle),image:w(i.chatCompanionResourcesSourceKindImage),video:w(i.chatCompanionResourcesSourceKindVideo),audio:w(i.chatCompanionResourcesSourceKindAudio),path_ref:w(i.chatCompanionResourcesSourceKindPath),unknown:w(i.chatCompanionResourcesSourceKindUnknown)};async function m(C){if(C.preventDefault(),!(!l.trim()&&!u.trim()&&!g.trim())){f(!0);try{await a({kind:"note",storageMode:"imported_copy",title:l.trim()||void 0,ownerNote:u.trim()||void 0,textContent:g.trim()||void 0}),c(""),p(""),h(""),s(!1)}finally{f(!1)}}}return t&&e.length===0?r.jsx("div",{className:"companionSection companionLoading",children:w(i.chatCompanionResourcesLoadingState)}):r.jsxs("div",{className:"companionSection companionResources",children:[r.jsxs("div",{className:"companionSectionHeader",children:[r.jsx("span",{children:w(i.chatCompanionResourcesSectionTitle)}),r.jsx("button",{type:"button",className:"companionActionButton",onClick:()=>s(!n),children:w(n?i.chatCompanionResourcesActionCancel:i.chatCompanionResourcesActionShowForm)})]}),n&&r.jsxs("form",{className:"companionCard companionForm",onSubmit:m,children:[r.jsx("input",{type:"text",className:"companionInput",placeholder:w(i.chatCompanionResourcesFormTitlePlaceholder),value:l,onChange:C=>c(C.target.value)}),r.jsx("input",{type:"text",className:"companionInput",placeholder:w(i.chatCompanionResourcesFormNotePlaceholder),value:u,onChange:C=>p(C.target.value)}),r.jsx("textarea",{className:"companionTextarea",placeholder:w(i.chatCompanionResourcesFormContentPlaceholder),value:g,onChange:C=>h(C.target.value),rows:4}),r.jsx("button",{type:"submit",className:"companionActionButton",disabled:k||!l.trim()&&!u.trim()&&!g.trim(),children:w(k?i.chatCompanionResourcesActionBusy:i.chatCompanionResourcesActionAddResource)})]}),e.length===0?r.jsx("p",{className:"companionEmpty",children:w(i.chatCompanionResourcesEmptyState)}):r.jsx("ul",{className:"companionSourceList",children:e.map(C=>r.jsxs("li",{className:"companionCard companionSourceCard",children:[r.jsxs("div",{className:"companionSourceHeader",children:[r.jsx("span",{className:"companionSourceKind",children:b[pw(C.kind)]}),r.jsx("span",{className:"companionSourceTitle",children:C.title||C.originalFileName||w(i.chatCompanionResourcesUntitledSource)}),r.jsx("span",{className:"companionSourceDate",children:uw(C.updatedAt)})]}),C.ownerNote&&r.jsx("p",{className:"companionSourceNote",children:C.ownerNote}),C.linkedPath&&r.jsx("span",{className:"companionSourcePath",children:C.linkedPath}),r.jsx("div",{className:"companionSourceActions",children:r.jsx("button",{type:"button",className:"companionDangerButton",onClick:()=>o(C.id),children:w(i.chatCompanionResourcesActionRemove)})})]},C.id))})]})}const Hs=["identity","preference","relationship","fact","event","owner_note"];function mw(e){try{return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return e}}function gw({memory:e,loading:t,onAddMemory:a,onDeleteMemory:o}){const[n,s]=d.useState(null),[l,c]=d.useState(!1),[u,p]=d.useState("fact"),[g,h]=d.useState(""),[k,f]=d.useState(!1),{t:w}=W(),b={identity:w(i.chatCompanionMemoryCategoryIdentity),preference:w(i.chatCompanionMemoryCategoryPreference),relationship:w(i.chatCompanionMemoryCategoryRelationship),fact:w(i.chatCompanionMemoryCategoryFact),event:w(i.chatCompanionMemoryCategoryEvent),owner_note:w(i.chatCompanionMemoryCategoryOwnerNote),all:w(i.chatCompanionMemoryFilterAll)},m=n?e.filter(v=>v.category===n):e;async function C(v){if(v.preventDefault(),!!g.trim()){f(!0);try{await a({category:u,content:g.trim(),summary:null,sourceIds:[],metadata:{}}),h(""),c(!1)}finally{f(!1)}}}return t&&e.length===0?r.jsx("div",{className:"companionSection companionLoading",children:w(i.chatCompanionMemoryLoadingState)}):r.jsxs("div",{className:"companionSection companionMemory",children:[r.jsxs("div",{className:"companionSectionHeader",children:[r.jsx("span",{children:w(i.chatCompanionMemorySectionTitle)}),r.jsx("button",{type:"button",className:"companionActionButton",onClick:()=>c(!l),children:w(l?i.chatCompanionMemoryActionCancel:i.chatCompanionMemoryActionAdd)})]}),l&&r.jsxs("form",{className:"companionCard companionForm",onSubmit:C,children:[r.jsx("select",{className:"companionSelect",value:u,onChange:v=>p(v.target.value),children:Hs.map(v=>r.jsx("option",{value:v,children:b[v]},v))}),r.jsx("textarea",{className:"companionTextarea",placeholder:w(i.chatCompanionMemoryFormPlaceholder),value:g,onChange:v=>h(v.target.value),rows:3}),r.jsx("button",{type:"submit",className:"companionActionButton",disabled:k||!g.trim(),children:w(k?i.chatCompanionMemoryActionBusy:i.chatCompanionMemoryActionAddSubmit)})]}),r.jsxs("div",{className:"companionFilterBar",children:[r.jsxs("button",{type:"button",className:`companionFilterPill ${n?"":"isActive"}`,onClick:()=>s(null),children:[b.all," (",e.length,")"]}),Hs.map(v=>{const y=e.filter(L=>L.category===v).length;return y===0?null:r.jsxs("button",{type:"button",className:`companionFilterPill ${n===v?"isActive":""}`,onClick:()=>s(n===v?null:v),children:[b[v]," (",y,")"]},v)})]}),m.length===0?r.jsx("p",{className:"companionEmpty",children:e.length===0?w(i.chatCompanionMemoryEmptyState):w(i.chatCompanionMemoryEmptyFilterState)}):r.jsx("ul",{className:"companionMemoryList companionMemoryListFull",children:m.map(v=>r.jsxs("li",{className:"companionCard companionMemoryCard",children:[r.jsxs("div",{className:"companionMemoryCardHeader",children:[r.jsx("span",{className:"companionMemoryCategory",children:b[v.category]??b.all}),r.jsx("span",{className:"companionMemoryDate",children:mw(v.updatedAt)})]}),r.jsx("p",{className:"companionMemoryContent",children:v.content}),v.summary&&r.jsx("p",{className:"companionMemorySummary",children:v.summary}),r.jsx("button",{type:"button",className:"companionDangerButton",onClick:()=>o(v.id),children:w(i.chatCompanionMemoryActionRemove)})]},v.id))})]})}const fw=[{value:"animalistic",label:"animalistic"},{value:"anthropomorphic",label:"anthropomorphic"},{value:"mixed",label:"mixed"}],ww=[{value:"text",label:"text"},{value:"audio_clip",label:"audio_clip"},{value:"tts",label:"tts"},{value:"mixed",label:"mixed"}];function kw({catId:e,responseProfile:t,payload:a,loading:o,onUpdateResponseProfile:n}){const[s,l]=d.useState(t?.notes??""),[c,u]=d.useState(!1),{t:p}=W(),g={animalistic:p(i.chatCompanionSettingsExpressionModeAnimalistic),anthropomorphic:p(i.chatCompanionSettingsExpressionModeAnthropomorphic),mixed:p(i.chatCompanionSettingsExpressionModeMixed)},h={text:p(i.chatCompanionSettingsOutputModeText),audio_clip:p(i.chatCompanionSettingsOutputModeAudioClip),tts:p(i.chatCompanionSettingsOutputModeTts),mixed:p(i.chatCompanionSettingsOutputModeMixed)},k={polling:p(i.sharedSettingsCatsBindingPollingMode),webhook:p(i.sharedSettingsCatsBindingWebhookMode)},f=p(i.chatCompanionSettingsTelegramBindingDefaultMode),w=a.chat.botBindings?.find(v=>v.catId===e);async function b(v){u(!0);try{await n({expressionMode:v})}finally{u(!1)}}async function m(v){u(!0);try{await n({outputMode:v})}finally{u(!1)}}async function C(){u(!0);try{await n({notes:s.trim()||null})}finally{u(!1)}}return o&&!t?r.jsx("div",{className:"companionSection companionLoading",children:p(i.chatCompanionSettingsLoadingState)}):r.jsxs("div",{className:"companionSection companionSettings",children:[r.jsxs("div",{className:"companionCard",children:[r.jsx("div",{className:"companionCardHeader",children:p(i.chatCompanionSettingsResponseProfileTitle)}),r.jsxs("div",{className:"companionFormRow",children:[r.jsx("label",{className:"companionLabel",children:p(i.chatCompanionSettingsExpressionModeLabel)}),r.jsx("div",{className:"companionPillGroup",children:fw.map(({value:v,label:y})=>r.jsx("button",{type:"button",className:`companionPill ${t?.expressionMode===v?"isActive":""}`,onClick:()=>b(v),disabled:c,children:g[y]},v))})]}),r.jsxs("div",{className:"companionFormRow",children:[r.jsx("label",{className:"companionLabel",children:p(i.chatCompanionSettingsOutputModeLabel)}),r.jsx("div",{className:"companionPillGroup",children:ww.map(({value:v,label:y})=>r.jsx("button",{type:"button",className:`companionPill ${t?.outputMode===v?"isActive":""}`,onClick:()=>m(v),disabled:c,children:h[y]},v))})]}),r.jsxs("div",{className:"companionFormRow",children:[r.jsx("label",{className:"companionLabel",children:p(i.chatCompanionSettingsResponseNotesLabel)}),r.jsx("textarea",{className:"companionTextarea",placeholder:p(i.chatCompanionSettingsResponseNotesPlaceholder),value:s,onChange:v=>l(v.target.value),rows:3}),r.jsx("button",{type:"button",className:"companionActionButton",onClick:C,disabled:c||s===(t?.notes??""),children:p(c?i.chatCompanionSettingsResponseNotesSaving:i.chatCompanionSettingsResponseNotesSave)})]})]}),r.jsxs("div",{className:"companionCard",children:[r.jsx("div",{className:"companionCardHeader",children:p(i.chatCompanionSettingsTelegramBindingTitle)}),w?r.jsxs("div",{className:"companionTelegramInfo",children:[r.jsxs("p",{children:[r.jsxs("strong",{children:[p(i.chatCompanionSettingsTelegramBindingBotLabel)," "]}),w.botName??p(i.chatCompanionSettingsTelegramBindingConnected)]}),r.jsxs("p",{children:[r.jsxs("strong",{children:[p(i.chatCompanionSettingsTelegramBindingModeLabel)," "]}),w.inboundMode?k[w.inboundMode]??w.inboundMode:f]}),r.jsxs("p",{className:"companionMuted",children:[p(i.chatCompanionSettingsTelegramBindingManageHint),r.jsx(jt,{to:"/settings/cats",children:p(i.chatCompanionSettingsTelegramBindingSettingsLabel)}),p(i.chatCompanionSettingsTelegramBindingSuffix)]})]}):r.jsxs("p",{className:"companionEmpty",children:[p(i.chatCompanionSettingsNoTelegramBindingState),r.jsx(jt,{to:"/settings/cats",children:p(i.chatCompanionSettingsTelegramBindingSettingsLabel)}),p(i.chatCompanionSettingsTelegramBindingSuffix)]})]})]})}function bw({payload:e,cat:t,onBackToChat:a,onWake:o,onSleep:n,onCatAvatarSave:s,onDirectMessage:l,onStartNewChatWithCat:c,hideFeed:u=!1,hideCompanionToggle:p=!1}){const[g,h]=d.useState(!1),[k,f]=d.useState("overview"),{t:w}=W(),b=Jf(t.id,e),m=ew(t.id,k??"overview"),C=Zf({catId:t.id,enabled:!0}),v=$f({catId:t.id,enabled:!0}),y=d.useCallback(()=>{o(t.id)},[t.id,o]),L=d.useCallback(()=>{n(t.id)},[t.id,n]),x=fe(t.name),T=t.avatarUrl?{backgroundImage:`url(${t.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:t.avatarColor?{background:t.avatarColor}:void 0;function N(I){return r.jsxs(r.Fragment,{children:[m.error?r.jsxs("div",{className:"companionError",children:[m.error,r.jsx("button",{type:"button",className:"companionActionButton",onClick:m.refreshTab,children:w(i.chatCompanionWorkspaceRetryLabel)})]}):null,I]})}const A={overview:N(r.jsx(dw,{summary:m.summary,recentMemory:m.memory,presence:b,onWake:y,onSleep:L,loading:m.loading})),resources:N(r.jsx(hw,{sources:m.sources,loading:m.loading,onAddSource:m.addSource,onDeleteSource:m.removeSource})),memory:N(r.jsx(gw,{memory:m.memory,loading:m.loading,onAddMemory:m.addMemory,onDeleteMemory:m.removeMemory})),settings:N(r.jsx(kw,{catId:t.id,responseProfile:m.responseProfile,payload:e,loading:m.loading,onUpdateResponseProfile:m.editResponseProfile})),inspector:N(r.jsx("div",{className:"companionEmptyState",children:r.jsx("p",{children:w(i.chatCompanionWorkspaceNoSelectionState)})}))},R=qr.map(I=>({id:I,title:Nf(I,w),children:A[I]}));d.useEffect(()=>{k!==null&&!qr.includes(k)&&f(qr[0]??null)},[k]);function P(I){f(O=>O===I?null:I)}return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"viewShell viewShellChannel","data-conversation-mode":"direct_message","data-layout-mode":"companion",children:[r.jsxs("header",{className:"channelTopBar",children:[r.jsx("div",{className:"channelTopBarStart",children:r.jsx("div",{className:"rosterAvatars rosterAvatarsExpanded",children:r.jsx("div",{className:"catAvatar","data-tooltip":t.name,style:T,children:t.avatarUrl?null:x})})}),r.jsx("div",{className:"channelTopBarCenter",children:r.jsx("span",{className:"channelTopBarTitle channelTopBarTitleDirectLane",children:t.name})}),r.jsxs("div",{className:"channelTopBarEnd",children:[p?null:r.jsx(lw,{companionMode:!0,onToggle:a}),r.jsx("button",{className:"sidePanelToggle",type:"button",onClick:()=>h(I=>!I),"aria-label":w(i.chatTopBarToggleSidePanelAriaLabel),"aria-pressed":g,children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M10 2v12"}),r.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2"})]})})]})]}),r.jsxs("div",{className:"companionContent",children:[r.jsx(Mf,{variant:"profile",title:t.name,avatarName:t.name,avatarUrl:t.avatarUrl,avatarColor:t.avatarColor,coverStorageKey:t.id,onAvatarSave:s?I=>s(t.id,I):void 0,alwaysEditable:!0,actions:r.jsxs(r.Fragment,{children:[r.jsxs("button",{type:"button",className:"companionHeaderAction companionHeaderActionPrimary",onClick:()=>l?.(t.id),disabled:!l,children:[r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})}),w(i.conversationSidebarDirectMessageButton)]}),r.jsx("button",{type:"button",className:"companionHeaderAction companionHeaderActionIconOnly",onClick:()=>c?.(t.id),disabled:!c,"aria-label":w(i.chatSidebarPrimaryActionNewChat),title:w(i.chatSidebarPrimaryActionNewChat),children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("path",{d:"M8 3v10"}),r.jsx("path",{d:"M3 8h10"})]})})]})}),u?null:r.jsx(iw,{cat:t,profile:C.profile,activity:v.projection})]})]}),g?r.jsx(Ph,{title:w(i.chatCompanionWorkspaceSidePanelTitle),activeSection:k,onSectionToggle:P,onClose:()=>h(!1),position:"side",className:"chatPaneSidePanel chatPaneSidePanelBelowBar",sections:R}):null]})}function yw({catId:e}){const{t}=W();return r.jsx("div",{className:"screen screenCentered entityComingSoonScreen",children:r.jsxs("section",{className:"entityComingSoonPanel",children:[r.jsx("h1",{children:t(i.catProfileNotFoundTitle)}),r.jsx("p",{className:"entityComingSoonBody",children:t(i.catProfileNotFoundBody,{catId:e})})]})})}function vw(){const{catId:e}=dr(),t=je(),[a,o]=d.useState(null);if(d.useEffect(()=>{let w=!1;return Ze().then(b=>{w||o(b)}).catch(()=>{}),()=>{w=!0}},[]),!a||!e)return r.jsx("div",{className:"catProfilePageBoot"});const n=a.chat.cats.find(w=>w.id===e);if(!n)return r.jsx(yw,{catId:e});const s=!Sf(n),l=()=>{Ze().then(w=>o(w)).catch(()=>{})},c=(w,b)=>{Re(w,{avatarUrl:b}).then(()=>l()).catch(()=>{})},u=()=>{},p=()=>{},g=()=>{t("/entities/cats")},h=mr("chat"),k=w=>{t(Rn(h,w))},f=w=>{t(Af(h,w))};return r.jsx(bw,{payload:a,cat:n,onBackToChat:g,onWake:u,onSleep:p,onCatAvatarSave:c,onDirectMessage:k,onStartNewChatWithCat:f,hideFeed:s,hideCompanionToggle:!0})}function Sc(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function bt(e){if(!e)return;const t=Object.entries(e).filter(([,a])=>Sc(a));if(t.length!==0)return Object.fromEntries(t)}function Cw(e,t,a){if(!e||!a)return bt(a);const o=e.controls.filter(l=>!l.applicableEntryIds||l.applicableEntryIds.length===0||l.applicableEntryIds.includes(t)),n=new Map(o.map(l=>[l.key,l])),s=Object.entries(a).filter(([l,c])=>{const u=n.get(l);return!u||!Sc(c)?!1:u.kind!=="enum"||typeof c!="string"||!u.values?.length?!0:u.values.some(p=>p.value===c&&(!p.applicableEntryIds||p.applicableEntryIds.length===0||p.applicableEntryIds.includes(t)))});return s.length>0?Object.fromEntries(s):void 0}function xo(e){const t=sn(e.provider,e.model)??"";return t?(e.provider==="claude"&&e.backend==="cli"&&e.catalog.models.some(a=>a.id==="opus"),t):null}function Sw(e){const t=e.advancedCatalog?.backend??e.catalog.backend,a=xo({provider:e.target.provider,backend:t,catalog:e.catalog,model:e.target.model}),o=rr(e.target.modelSelection);if(o?.entryId){const n=xo({provider:e.target.provider,backend:t,catalog:e.catalog,model:o.entryId});n&&(o.entryId=n)}return{...e.target,...a?{model:a}:{},...o?{modelSelection:o}:{}}}function Lw(e,t,a){return a?e.presets.some(o=>o.id===a&&(!o.applicableEntryIds||o.applicableEntryIds.length===0||o.applicableEntryIds.includes(t))):!1}function Gs(e,t,a){return!e||!a||!Lw(e,t,a)?null:e.presets.find(o=>o.id===a)??null}function rr(e){return e?{...e.entryId?{entryId:e.entryId}:{},entryMode:e.entryMode,...e.presetId?{presetId:e.presetId}:{},...bt(e.controls)?{controls:bt(e.controls)}:{}}:null}function Rw(e){return e?{entryId:e.entryId,model:e.model,entryMode:e.entryMode,...e.presetId?{presetId:e.presetId}:{},...bt(e.controls)?{controls:bt(e.controls)}:{},...e.supportTier?{supportTier:e.supportTier}:{},warnings:[...e.warnings]}:null}function Lc(e,t={}){const a=e?.trim();if(!a)return null;const o=bt(t.controls);return{entryId:a,entryMode:"explicit",...t.presetId?.trim()?{presetId:t.presetId.trim()}:{},...o?{controls:o}:{}}}function Pw(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const a=bt(e.controls),o=bt(t.controls);return e.entryMode===t.entryMode&&(e.entryId??null)===(t.entryId??null)&&(e.presetId??null)===(t.presetId??null)&&JSON.stringify(a??null)===JSON.stringify(o??null)}function xn(e,t){const a=t.trim();return a&&e.instances.some(o=>o.id===a)||a&&e.instances.length===0?a:(a&&e.instances.length>0&&console.warn(`Unknown provider instance "${a}" for ${e.id}, falling back to default`),e.defaultInstance??e.instances[0]?.id??"")}function Rc(e){const t=xo({provider:e.catalog.provider,backend:e.catalog.backend,catalog:e.catalog,model:e.model})??"";return!t||e.modelSelection?!1:!e.catalog.models.some(a=>a.id===t)}function Aw(e){const t=Sw({target:e.target,catalog:e.catalog,advancedCatalog:e.advancedCatalog}),a=(e.catalog.instance??t.instance)||"",o=t.model?.trim()||"",n=e.catalog.models.some(y=>y.id===t.model),s=Rc({catalog:e.catalog,model:t.model,modelSelection:t.modelSelection}),l=e.preserveCurrentModel&&n?t.model:e.preserveCurrentModel&&s?o:cn(e.catalog);if(s&&e.preserveCurrentModel)return{provider:t.provider,instance:a,model:o,modelSelection:null,modelResolution:null};const c=e.advancedCatalog??null,p=e.preserveCurrentSelection??e.preserveCurrentModel?rr(t.modelSelection):rr(c?.defaultSelection)??null,g=p?.entryId?.trim(),h=g&&e.catalog.models.some(y=>y.id===g)?g:l,k=Gs(c,h,p?.presetId),f=k?.preferredEntryId?.trim(),w=p?.entryMode==="auto"&&f&&e.catalog.models.some(y=>y.id===f)?f:h,b=Gs(c,w,k?.id),m=Cw(c,w,p?.controls),C=p?{entryId:w,entryMode:p.entryMode,...b?{presetId:b.id}:{},...m?{controls:m}:{}}:Lc(w,{presetId:void 0,controls:m}),v=c?.warnings.length?[...c.warnings]:[];return{provider:t.provider,instance:a,model:w,modelSelection:C,modelResolution:C?{entryId:w,model:w,entryMode:C.entryMode,...b?{presetId:b.id}:{},...m?{controls:m}:{},...c?{supportTier:c.support.tier}:{},warnings:v}:null}}function xw(e){switch(e){case"token":return"token text";case"chunk":return"chunk text";case"line":return"line text";case"final":return"final-only text";default:return null}}function aa(e,t){switch(t){case"native":return e;case"derived":return`derived ${e}`;default:return null}}function Tw(e){switch(e.presentation.recommended){case"event_tape":return"Recommended host view: event tape.";case"content_blocks":return"Recommended host view: content blocks.";case"final_message":return"Recommended host view: final message.";default:return null}}function Dw(e){if(!e)return null;const t=[xw(e.normalizedStream.text.mode),aa("tool use",e.normalizedStream.toolUse),aa("tool results",e.normalizedStream.toolResult),aa("progress",e.normalizedStream.progress),aa("reasoning",e.normalizedStream.reasoning),aa("transcript blocks",e.transcript.contentBlocks)].filter(n=>!!n),a=[];t.length>0&&a.push(`Runtime event surface: ${t.join(", ")}.`);const o=Tw(e);return o&&a.push(o),a.length===0&&e.notes[0]?e.notes[0]:a.length>0?a.join(" "):null}const Nw=3e4;function Qr(e,t,a){return{provider:e,backend:null,instance:t?.trim()||null,defaultModel:null,source:"config",cache:null,models:[],warnings:a?[a]:[]}}function $a(e,t,a){return{provider:e,backend:null,instance:t?.trim()||null,defaultModel:null,source:"config",cache:null,entries:[],presets:[],controls:[],defaultSelection:null,support:{tier:"entry_only",notes:[]},warnings:a?[a]:[]}}function jw(e=[]){return{state:"ready",providers:vm(),...e.length>0?{warnings:e}:{}}}function _s(e){return{state:e.state,providers:Array.isArray(e.providers)?e.providers:[],recovery:e.recovery,warnings:Array.isArray(e.warnings)?e.warnings:[]}}function Mw(e,t=Vt){return e.providersLoaded?(e.providerCount??0)>0?t(i.sharedProviderModelFieldSelectProviderHint):e.registryState==="runtime_unreachable"?t(i.sharedProviderModelFieldProviderLoadFailed):t(i.sharedProviderModelFieldNoProviders):t(i.sharedProviderModelFieldLoadingProviders)}function Ew(e,t=Vt){return e.providersLoaded?e.registry.providers.length>0?To(e.registry.warnings?.[0],t)??t(i.sharedProviderModelFieldRegistryStaleHint):e.registry.state==="runtime_unreachable"?To(e.registry.warnings?.[0],t)??t(i.sharedProviderModelFieldRegistryLoadFailedHint):t(i.sharedProviderModelFieldRegistryEmptyHint):t(i.sharedProviderModelFieldRegistryCheckingHint)}function To(e,t=Vt){if(!e)return null;const a=Rg(e);if(a!==null)return t(i.sharedProviderModelFieldRegistryCachedRefreshFailedHint,{message:To(a,t)??a});switch(e){case cc:return t(i.sharedProviderModelFieldRegistryUsingProductCatalogHint);case Sg:return t(i.sharedProviderModelFieldRegistryStaleHint);case tr:return t(i.sharedProviderModelFieldProviderLoadFailed);case dc:return t(i.sharedProviderModelFieldRegistryLoadFailedHint);default:return e}}function Pc(e){const t=e.recovery?.openRuntimeSetupPath?.trim();return t||null}function Iw(e){return Ac(e)===0}function Ac(e){if(!e.providersLoaded||e.providerCount>0&&e.registryState!=="runtime_unreachable"||e.registryState==="ready"||!e.retryable||!e.documentVisible||e.registryState!=="runtime_unreachable"&&!e.hasSetupHref)return null;const t=e.now-e.lastAutoRecheckAt;return Math.max(0,Nw-t)}function Bw(e,t){return!e.applicableEntryIds||e.applicableEntryIds.length===0||e.applicableEntryIds.includes(t)}function xc(e,t){return!e.applicableEntryIds||e.applicableEntryIds.length===0||e.applicableEntryIds.includes(t)}function Fw(e,t){return!e.applicableEntryIds||e.applicableEntryIds.length===0||e.applicableEntryIds.includes(t)}function Ow(e){return`${typeof e}:${String(e)}`}function Na(e,t){const a=[],o=new Map,n=[];for(const s of e.values??[]){const l=Ow(s.value);a.includes(l)||a.push(l),Fw(s,t)&&o.set(l,s)}for(const s of a){const l=o.get(s);l&&n.push(l)}return n}function Ww(e,t){return Na(e,t).some(a=>typeof a.label=="string"&&/\(default\)/iu.test(a.label))}function Uw(e,t,a){const o=Do(a);if(o)return o;const n=Na(e,t).find(s=>typeof s.label=="string"&&/\(default\)/iu.test(s.label));return n?String(n.value):""}function Hw(e,t){if(e.kind==="number"){const a=Number(t);return Number.isFinite(a)?a:0}return e.kind==="boolean"?t==="true":t}function Do(e){return typeof e=="boolean"?e?"true":"false":typeof e=="number"?String(e):typeof e=="string"?e:""}function Gw(e,t,a){return Lc(e,{presetId:t,controls:a})}const Tn="__custom_legacy_model__";function _w(e){return e==="full"?{labelKey:i.sharedProviderModelSupportAdvanced,tone:"advanced"}:e==="read_only"?{labelKey:i.sharedProviderModelSupportReadOnly,tone:"readOnly"}:null}function Kw(e){const t=e?.trim();if(!t)return"";const a=t.toLowerCase();return a==="available"||a==="supported"?"":a==="preview"||a==="deprecated"||a==="unavailable"?` (${a})`:` (${t})`}function qw(e){return`${e.label}${Kw(e.status)}`}function ja(e,t){return e.filter(a=>a.scope!=="request"&&xc(a,t)).map(a=>({...a,...a.kind==="enum"&&a.values?{values:Na(a,t)}:{}}))}function $w(e,t){return e.filter(a=>a.scope==="request"&&xc(a,t)).length}function Tc(e,t,a){if(!a)return;const o=ja(e,t),n=new Map(o.map(l=>[l.key,l])),s=Object.entries(a).filter(([l,c])=>{const u=n.get(l);return u?u.kind!=="enum"||!u.values?.length?!0:Na(u,t).some(p=>p.value===c):!1});return s.length>0?Object.fromEntries(s):void 0}function zw(e,t){return e.values?.find(o=>o.value===t)?.label??String(t)}function Vw(e){const t=e.modelSelection?.controls;if(!e.entryId||!t)return null;const a=ja(e.controls,e.entryId),o=new Map(a.map(s=>[s.key,s])),n=new Map(e.controls.map(s=>[s.key,s]));for(const[s,l]of Object.entries(t)){const c=o.get(s),u=n.get(s),p=c?.label??u?.label??s;if(!c)return`${p} is not supported by ${e.entryId}; Cats will use the model default instead.`;if(c.kind==="enum"&&c.values?.length&&!c.values.some(g=>g.value===l))return`${p} value ${zw(u??c,l)} is not supported by ${e.entryId}; Cats will use the model default instead.`}return null}function Yw(e){const{entryId:t,modelSelection:a,effectiveAdvancedCatalog:o}=e;if(!t)return;const n=ja(o.controls,t);if(n.length===0)return;const s={},l=o.defaultSelection?.entryId===t?o.defaultSelection.controls:void 0;for(const c of n){const u=a?.controls?.[c.key];if(u!==void 0){s[c.key]=u;continue}const p=l?.[c.key];p!==void 0&&(s[c.key]=p)}return Object.keys(s).length>0?s:void 0}function Qw(e){return Fl(e.catalog.provider,e.model)||e.catalog.source==="static"?!1:Rc(e)}function Jw(e){const t=rr(e.target.modelSelection);if(!t)return e.target;const a=Tc(e.controls,t.entryId??e.target.model,t.controls);return a?t.controls=a:delete t.controls,{...e.target,modelSelection:t,modelResolution:Rw(e.target.modelResolution)}}function Dc(e){const t=e.model?.trim()||"",o=(e.effectiveAdvancedCatalog.entries.length>0?e.effectiveAdvancedCatalog.entries:e.effectiveCatalog.models).find(u=>u.id===t)?.label??null,n=t?ja(e.effectiveAdvancedCatalog.controls,t):[],s=Yw({entryId:t,modelSelection:e.modelSelection??null,effectiveAdvancedCatalog:e.effectiveAdvancedCatalog}),l=ql(s,n),c=un(e.provider,e.instance,e.model,null,l,o);return _l({provider:e.provider,instance:e.instance,model:e.model,modelSelection:e.modelSelection??null,executionLabel:c}),c}function or(e){const t=e.target.model?.trim()??"";return t?{...e.target,executionLabel:Dc({provider:e.target.provider,instance:e.target.instance,model:t,modelSelection:e.target.modelSelection??null,effectiveCatalog:e.effectiveCatalog,effectiveAdvancedCatalog:e.effectiveAdvancedCatalog})}:{...e.target,executionLabel:null}}function Xw(e){return e.catalogSource==="static"&&e.advancedCatalogSource==="static"&&(!!e.model||!!e.modelSelection)}function Zw(e){return e.entryCount>0||e.isLegacyModelTarget}function Ks(e){return e?.trim()||""}function ek(e){return e.instanceOptions.length>1}function tk(e){return e.instanceOptions.find(t=>t.id===e.resolvedInstance)?.eventCapabilities??null}function qs(e){return e.catalogProvider===e.provider&&Ks(e.catalogInstance)===Ks(e.instance)}function ak(e){const{provider:t,instance:a,catalog:o,advancedCatalogResult:n,modelsResult:s,translate:l=Vt}=e;if(n.status==="fulfilled")return n.value;if(s.status==="fulfilled"){const c=Sm(o);return{...c,warnings:[...c.warnings,n.reason instanceof Error?n.reason.message:l(i.sharedProviderModelFieldAdvancedCatalogUnavailable)]}}return $a(t,a,n.reason instanceof Error?n.reason.message:l(i.sharedProviderModelFieldAdvancedCatalogUnavailable))}function rk(e,t,a){return a?[]:e.presets.filter(o=>Bw(o,t))}function ok(e){const{control:t,currentValues:a,rawValue:o}=e;if(o)return{...a,[t.key]:Hw(t,o)};const n=Object.entries(a).filter(([s])=>s!==t.key);return n.length>0?Object.fromEntries(n):void 0}function nk(e){const{selectedProvider:t,instance:a,model:o,modelSelection:n,catalogLoading:s,providersLoaded:l,providerRegistry:c,effectiveCatalog:u,effectiveAdvancedCatalog:p,isLegacyModelTarget:g,translate:h=Vt}=e,k=t?xn(t,a):"",f=p.entries.length>0?p.entries:u.models,w=Zw({entryCount:f.length,isLegacyModelTarget:g}),b=t?t.instances.some(Q=>Q.id===k)?t.instances:k?[{id:k,label:k,target:k,backend:null},...t.instances]:t.instances:[],m=ek({instanceOptions:b}),C=tk({resolvedInstance:k,instanceOptions:b}),v=Dw(C),y=f.some(Q=>Q.id===o)?o:f[0]?.id??"",L=g?Tn:y||"",x=rk(p,y,g),T=!g&&x.some(Q=>Q.id===n?.presetId)?n?.presetId??"":"",N=g?[]:ja(p.controls,y),A=g?null:Vw({controls:p.controls,entryId:y,modelSelection:n}),R=g?0:$w(p.controls,y),P=n?.controls??{},I=_w(p.support.tier),O=g?[]:f.find(Q=>Q.id===y)?.notes??[],E=p.warnings[0]??u.warnings[0]??null,$=Mw({providersLoaded:l,registryState:c.state,providerCount:c.providers.length},h),_=c.providers.length>0,ee=t?h(s?i.sharedProviderModelFieldLoadingModels:w?i.sharedProviderModelFieldSelectModel:i.sharedProviderModelFieldNoModels):l?c.state==="runtime_unreachable"&&!_?h(i.sharedProviderModelFieldRetryProvidersFirst):h(i.sharedProviderModelFieldSelectProviderFirst):h(i.sharedProviderModelFieldWaitingProviders),B=Ew({providersLoaded:l,registry:c},h),q=Pc(c),F=l&&c.providers.length===0&&c.recovery?.retryable!==!1;return{resolvedInstance:k,instanceOptions:b,showInstanceField:m,selectedInstanceCapabilitySummary:v,entryOptions:f,selectedCatalogEntryId:y,selectedEntryId:L,presetOptions:x,selectedPresetId:T,controlOptions:N,unsupportedSelectionWarning:A,requestScopedControlCount:R,controlValues:P,supportBadge:I,selectedEntryNotes:O,primaryCatalogWarning:E,providerPlaceholder:$,modelPlaceholder:ee,providerRegistryHint:B,providerRegistrySetupHref:q,canRetryProviderRegistry:F,allowLegacyManualModelEntry:w}}function sk(e){const{controlOptions:t,selectedCatalogEntryId:a,controlValues:o,onControlChange:n}=e,{t:s}=W();return t.map(l=>{const c=o[l.key];if(l.kind==="boolean")return r.jsxs("label",{className:"fieldLabel providerControlField",children:[r.jsx("span",{children:l.label}),r.jsxs("select",{className:"textInput",value:Do(c),onChange:u=>n(l,u.target.value),children:[r.jsx("option",{value:"",children:s(i.sharedProviderModelControlDefault)}),r.jsx("option",{value:"true",children:s(i.sharedProviderModelControlEnabled)}),r.jsx("option",{value:"false",children:s(i.sharedProviderModelControlDisabled)})]}),l.description?r.jsx("span",{className:"fieldHint",children:l.description}):null]},l.key);if(l.kind==="enum"&&l.values&&l.values.length>0){const u=Na(l,a),p=!Ww(l,a),g=Uw(l,a,c);return r.jsxs("label",{className:"fieldLabel providerControlField",children:[r.jsx("span",{children:l.label}),r.jsxs("select",{className:"textInput",value:g,onChange:h=>n(l,h.target.value),children:[p?r.jsx("option",{value:"",children:s(i.sharedProviderModelControlDefault)}):null,u.map((h,k)=>r.jsx("option",{value:String(h.value),children:h.label},`${l.key}-${String(h.value)}-${k}`))]}),l.description?r.jsx("span",{className:"fieldHint",children:l.description}):null]},l.key)}return r.jsxs("label",{className:"fieldLabel providerControlField",children:[r.jsx("span",{children:l.label}),r.jsx("input",{className:"textInput",type:l.kind==="number"?"number":"text",value:Do(c),min:l.kind==="number"?l.minimum:void 0,max:l.kind==="number"?l.maximum:void 0,step:l.kind==="number"?l.step??1:void 0,placeholder:s(i.sharedProviderModelControlOptionalPlaceholder),onChange:u=>n(l,u.target.value)}),l.description?r.jsx("span",{className:"fieldHint",children:l.description}):null]},l.key)})}function gt(){return globalThis.catsDesktopHost??null}function Dn(){return gt()!==null}function va({href:e,onClick:t,onOpenError:a,...o}){const n=s=>{t?.(s),!(s.defaultPrevented||!gt()?.openBrowserHandoff)&&(s.preventDefault(),ik(e).catch(c=>{if(a){a(c);return}globalThis.console?.error("Failed to open authenticated browser path.",c)}))};return r.jsx("a",{...o,href:e,onClick:n})}async function ik(e){const t=gt();if(!t?.openBrowserHandoff)throw new Error("Desktop browser handoff is unavailable.");const a=await fetch("/api/auth/browser-handoff",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({returnTo:e})});if(!a.ok)throw new Error(`Browser handoff request failed with HTTP ${a.status}.`);const o=await a.json();if(typeof o.launchPath!="string"||!o.launchPath.trim())throw new Error("Browser handoff response is invalid.");const n=o.launchMode==="handoff"&&typeof o.expiresAt=="string"&&!!o.expiresAt.trim(),s=o.launchMode==="direct"&&o.expiresAt===null;if(!n&&!s)throw new Error("Browser handoff response is invalid.");await t.openBrowserHandoff(o.launchPath)}function lk(e){const{t}=W(),[a,o]=Bi.useState(!1),{providerRegistryHint:n,canRetryProviderRegistry:s,providerRegistrySetupHref:l,forceReloadProviderRegistry:c,hideRetry:u=!1}=e,p=s&&!u;return r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"fieldHint",children:n}),p?r.jsxs("div",{className:"providerCatalogRecoveryActions",children:[r.jsx("button",{className:"secondaryButton",type:"button",onClick:()=>c(),children:t(i.sharedCommonRetry)}),l?r.jsx(va,{className:"secondaryButton",href:l,target:"_blank",rel:"noreferrer",onClick:()=>o(!1),onOpenError:()=>o(!0),children:t(i.sharedProviderModelFieldOpenRuntimeSetupLabel)}):null]}):l?r.jsx("div",{className:"providerCatalogRecoveryActions",children:r.jsx(va,{className:"secondaryButton",href:l,target:"_blank",rel:"noreferrer",onClick:()=>o(!1),onOpenError:()=>o(!0),children:t(i.sharedProviderModelFieldOpenRuntimeSetupLabel)})}):null,a?r.jsx("span",{className:"fieldHint",role:"alert",children:t(i.settingsRuntimeBrowserHandoffError)}):null]})}function Nc(e){return e===ec||e===tc||e===ac||e===rc}function ck(e,t){return e instanceof Error?Nc(e.message)?t:e.message:t}function dk(e,t){return e instanceof Error&&Nc(e.message)?new Error(t):e}function Jr(e,t,a){return Ul(e,{instance:t,...a?{warnings:[a]}:{}})}function Xr(e,t,a){return Cm(e,{instance:t,...a?{warnings:[a]}:{}})}function $s(e,t,a){const o=a(i.sharedProviderModelFieldRuntimeCatalogUnavailable,{catalogKind:t});return a(i.sharedProviderModelFieldRuntimeCatalogUnavailableWarning,{catalogKind:t,message:ck(e,o)})}function zs(e,t,a){if(!a||!e)return null;const o=t||null,n=bg({provider:e,instance:o}),s=yg({provider:e,instance:o});return n&&s?{models:n,advanced:s}:null}function uk(e){const t=e.translate??Vt,a=zs(e.provider,e.resolvedInstance,e.hasSelectedProvider),[o,n]=d.useState(!!e.provider&&!a),[s,l]=d.useState(()=>a?.models??(e.hasSelectedProvider&&e.provider?Jr(e.provider,e.resolvedInstance||null):Qr(e.provider,e.resolvedInstance||null))),[c,u]=d.useState(()=>a?.advanced??(e.hasSelectedProvider&&e.provider?Xr(e.provider,e.resolvedInstance||null):$a(e.provider,e.resolvedInstance||null)));d.useEffect(()=>{let f=!1;if(!e.hasSelectedProvider||!e.provider)return l(Qr(e.provider,e.resolvedInstance||null)),u($a(e.provider,e.resolvedInstance||null)),n(!1),()=>{f=!0};const w=zs(e.provider,e.resolvedInstance,e.hasSelectedProvider);return w?(l(w.models),u(w.advanced),n(!1)):(l(Jr(e.provider,e.resolvedInstance||null)),u(Xr(e.provider,e.resolvedInstance||null)),n(!0)),Promise.allSettled([e.fetchProviderModels(e.provider,e.resolvedInstance||null),e.fetchAdvancedProviderModels(e.provider,e.resolvedInstance||null)]).then(([b,m])=>{if(f)return;const C=b.status==="fulfilled"?b.value:Jr(e.provider,e.resolvedInstance||null,$s(b.reason,t(i.sharedProviderModelFieldCatalogKindModel),t));if(l(C),m.status==="fulfilled"||b.status==="fulfilled"){const v=t(i.sharedProviderModelFieldAdvancedCatalogUnavailable);u(ak({provider:e.provider,instance:e.resolvedInstance||null,catalog:C,advancedCatalogResult:m.status==="rejected"?{status:"rejected",reason:dk(m.reason,v)}:m,modelsResult:b,translate:t}))}else u(Xr(e.provider,e.resolvedInstance||null,$s(m.reason,t(i.sharedProviderModelFieldCatalogKindAdvancedModel),t)));n(!1)}),()=>{f=!0}},[e.fetchAdvancedProviderModels,e.fetchProviderModels,e.hasSelectedProvider,e.provider,e.resolvedInstance,t]);const p=Qr(e.provider,e.resolvedInstance||null),g=$a(e.provider,e.resolvedInstance||null),h=qs({catalogProvider:s.provider,catalogInstance:s.instance,provider:e.provider,instance:e.resolvedInstance})?s:p,k=qs({catalogProvider:c.provider,catalogInstance:c.instance,provider:e.provider,instance:e.resolvedInstance})?c:g;return{catalogLoading:o,effectiveCatalog:h,effectiveAdvancedCatalog:k}}function pk(e){const{providerOptions:t,provider:a,resolvedInstance:o,model:n,persistedLegacyModelTarget:s,selectedCatalogEntryId:l,selectedPresetId:c,presetOptions:u,controlValues:p,effectiveControls:g,effectiveCatalog:h,effectiveAdvancedCatalog:k,markManualSelection:f,markLegacyManualSelection:w,clearManualSelection:b,onTargetChange:m}=e,C=d.useCallback(R=>{const P=R.model??l,I=Tc(g,P,R.controls),O=R.presetId??null,E=Gw(P,O,I);f(),m(or({target:{provider:a,instance:R.instance??o,model:P,modelSelection:E},effectiveCatalog:h,effectiveAdvancedCatalog:k}))},[k,h,g,f,m,a,o,l]),v=d.useCallback((R,P)=>{w(),m(or({target:{provider:a,instance:P??o,model:R,modelSelection:null},effectiveCatalog:h,effectiveAdvancedCatalog:k}))},[k,h,w,m,a,o]),y=d.useCallback(R=>{const P=t.find(O=>O.id===R)??null;if(!P)return;const I=xn(P,"");b(),m({provider:P.id,instance:I,model:"",modelSelection:null})},[b,m,t]),L=d.useCallback(R=>{b(),m({provider:a,instance:R,model:"",modelSelection:null})},[b,m,a]),x=d.useCallback(R=>{if(R===Tn){v(s?n:"");return}C({model:R,presetId:null,controls:void 0})},[v,C,n,s]),T=d.useCallback(R=>{v(R)},[v]),N=d.useCallback(R=>{const P=u.find(I=>I.id===R)??null;C({presetId:P?.id??null,controls:P?.controlDefaults?{...P.controlDefaults}:void 0})},[C,u]),A=d.useCallback((R,P)=>{C({presetId:c||null,controls:ok({control:R,currentValues:p,rawValue:P})})},[p,C,c]);return{onProviderChange:y,onInstanceChange:L,onModelEntryChange:x,onLegacyModelChange:T,onPresetChange:N,onControlChange:A}}function hk(e){const{providersLoaded:t,providerCount:a,registryState:o,retryable:n,providerRegistrySetupHref:s,lastAutoProviderRegistryRecheckAt:l,reloadProviderRegistry:c}=e;d.useEffect(()=>{const u=globalThis,p=u.window,g=u.document;if(!p||!g)return;const h=p,k=g;function f(){const m=Date.now();Iw({providersLoaded:t,providerCount:a,registryState:o,retryable:n,hasSetupHref:!!s,documentVisible:k.visibilityState!=="hidden",lastAutoRecheckAt:l,now:m})&&c({markAutoRecheckAt:m})}const w=Ac({providersLoaded:t,providerCount:a,registryState:o,retryable:n,hasSetupHref:!!s,documentVisible:k.visibilityState!=="hidden",lastAutoRecheckAt:l,now:Date.now()}),b=w===null?null:setTimeout(f,w);return h.addEventListener("focus",f),k.addEventListener("visibilitychange",f),()=>{b!==null&&clearTimeout(b),h.removeEventListener("focus",f),k.removeEventListener("visibilitychange",f)}},[l,a,s,t,o,n,c])}function mk(e){const t=Bg(),a=t?_s(t):jw([cc]),[o,n]=d.useState(a.providers),[s,l]=d.useState(()=>a),[c,u]=d.useState(!0),[p,g]=d.useState(0),[h,k]=d.useState(0),f=d.useRef(e.onProviderRegistryChange),w=d.useRef(0),b=d.useRef(a.providers);d.useEffect(()=>{f.current=e.onProviderRegistryChange},[e.onProviderRegistryChange]);function m(L,x){if(L!==w.current)return;const T=_s(x),N=T.state==="runtime_unreachable"&&T.providers.length===0&&b.current.length>0?{...T,providers:b.current}:T;b.current=N.providers,n(N.providers),l(N),u(!0),f.current?.(N)}function C(L,x){if(L!==w.current)return;const T=x instanceof Error?x.message:tr;l(N=>{const A=(N.warnings??[]).filter(I=>I!==T),P={state:"runtime_unreachable",providers:N.providers.length>0?N.providers:[],recovery:{retryable:!0},warnings:[...A,T]};return b.current=P.providers,f.current?.(P),P}),u(!0)}d.useEffect(()=>{let L=!1;const x=++w.current;return e.fetchProviderRegistry().then(T=>{L||m(x,T)}).catch(T=>{L||C(x,T)}),()=>{L=!0}},[e.fetchProviderRegistry,p]);function v(L){L?.markAutoRecheckAt!==void 0&&k(L.markAutoRecheckAt),g(x=>x+1)}function y(L){L?.markAutoRecheckAt!==void 0&&k(L.markAutoRecheckAt);const x=++w.current;e.fetchProviderRegistry({force:!0}).then(T=>{m(x,T)}).catch(T=>{C(x,T)})}return{providers:o,providerRegistry:s,providersLoaded:c,lastAutoProviderRegistryRecheckAt:h,reloadProviderRegistry:v,forceReloadProviderRegistry:y}}function gk(e){const[t,a]=d.useState(null),o=d.useRef(null),n=d.useRef(""),s=d.useRef(e.onTargetChange);d.useEffect(()=>{s.current=e.onTargetChange},[e.onTargetChange]);const l=`${e.provider}::${e.resolvedInstance}`,c=!e.catalogLoading&&Qw({catalog:e.effectiveCatalog,model:e.model,modelSelection:e.modelSelection}),u=t===l||c,p=t===l&&(e.model?.trim()||"").length===0&&!e.modelSelection,g=o.current===l||!!e.modelSelection||u;d.useEffect(()=>{e.hasSelectedProvider&&(n.current!==l&&(n.current=l,o.current=null,a(null)),e.resolvedInstance&&e.resolvedInstance!==e.instance&&s.current(or({target:{provider:e.provider,instance:e.resolvedInstance,model:e.model,modelSelection:e.modelSelection},effectiveCatalog:e.effectiveCatalog,effectiveAdvancedCatalog:e.effectiveAdvancedCatalog})))},[e.effectiveAdvancedCatalog,e.effectiveCatalog,e.hasSelectedProvider,e.instance,e.model,e.modelSelection,e.provider,e.resolvedInstance,l]),d.useEffect(()=>{if(e.effectiveCatalog.models.length===0||p)return;const w=Fl(e.provider,e.model);if(Xw({catalogSource:e.effectiveCatalog.source,advancedCatalogSource:e.effectiveAdvancedCatalog.source,model:e.model,modelSelection:e.modelSelection})&&(e.catalogLoading||!w))return;const m=Aw({target:{provider:e.provider,instance:e.resolvedInstance,model:e.model,modelSelection:e.modelSelection},catalog:e.effectiveCatalog,advancedCatalog:e.effectiveAdvancedCatalog,preserveCurrentModel:g,preserveCurrentSelection:g}),C=Jw({target:m,controls:e.effectiveAdvancedCatalog.controls});(C.instance!==e.instance||C.model!==e.model||!Pw(C.modelSelection,e.modelSelection))&&s.current(or({target:C,effectiveCatalog:e.effectiveCatalog,effectiveAdvancedCatalog:e.effectiveAdvancedCatalog}))},[e.effectiveAdvancedCatalog,e.effectiveCatalog,e.instance,e.model,e.modelSelection,e.provider,e.resolvedInstance,g,l,p]);function h(){o.current=null,a(null)}function k(){o.current=l,a(null)}function f(){o.current=l,a(l)}return{persistedLegacyModelTarget:c,isLegacyModelTarget:u,clearManualSelection:h,markManualSelection:k,markLegacyManualSelection:f}}function jc({provider:e,instance:t,model:a,modelSelection:o,onTargetChange:n,fetchProviderRegistry:s,fetchProviderModels:l,fetchAdvancedProviderModels:c,onProviderRegistryChange:u,hideInlineRetry:p=!1,onRegistryRecoveryChange:g}){const{t:h}=W(),{providers:k,providerRegistry:f,providersLoaded:w,lastAutoProviderRegistryRecheckAt:b,reloadProviderRegistry:m,forceReloadProviderRegistry:C}=mk({fetchProviderRegistry:s,onProviderRegistryChange:u}),v=k,y=v.find(Y=>Y.id===e)??null,L=y?xn(y,t):"",{catalogLoading:x,effectiveCatalog:T,effectiveAdvancedCatalog:N}=uk({provider:e,resolvedInstance:L,hasSelectedProvider:!!y,fetchProviderModels:l,fetchAdvancedProviderModels:c,translate:h}),{persistedLegacyModelTarget:A,isLegacyModelTarget:R,clearManualSelection:P,markManualSelection:I,markLegacyManualSelection:O}=gk({provider:e,instance:t,model:a,modelSelection:o,resolvedInstance:L,hasSelectedProvider:!!y,catalogLoading:x,effectiveCatalog:T,effectiveAdvancedCatalog:N,onTargetChange:n}),{entryOptions:E,instanceOptions:$,showInstanceField:_,selectedInstanceCapabilitySummary:ee,selectedCatalogEntryId:B,selectedEntryId:q,presetOptions:F,selectedPresetId:Q,controlOptions:me,unsupportedSelectionWarning:U,requestScopedControlCount:j,controlValues:G,supportBadge:J,selectedEntryNotes:X,primaryCatalogWarning:oe,providerPlaceholder:we,modelPlaceholder:Ie,providerRegistryHint:xe,providerRegistrySetupHref:M,canRetryProviderRegistry:H,allowLegacyManualModelEntry:V}=nk({selectedProvider:y,instance:t,model:a,modelSelection:o,catalogLoading:x,providersLoaded:w,providerRegistry:{...f,providers:v},effectiveCatalog:T,effectiveAdvancedCatalog:N,isLegacyModelTarget:R,translate:h});hk({providersLoaded:w,providerCount:v.length,registryState:f.state,retryable:f.recovery?.retryable!==!1,providerRegistrySetupHref:M,lastAutoProviderRegistryRecheckAt:b,reloadProviderRegistry:m});const Se=d.useRef(C);Se.current=C;const z=d.useMemo(()=>()=>Se.current(),[]),qe=d.useRef(g);qe.current=g,d.useEffect(()=>{qe.current?.({canRetry:H,retry:z,setupHref:M})},[H,M,z]),d.useEffect(()=>()=>{qe.current?.(null)},[]);const{onProviderChange:dt,onInstanceChange:St,onModelEntryChange:Xt,onLegacyModelChange:D,onPresetChange:Lt,onControlChange:Zt}=pk({providerOptions:v,provider:e,resolvedInstance:L,model:a,persistedLegacyModelTarget:A,selectedCatalogEntryId:B,selectedPresetId:Q,presetOptions:F,controlValues:G,effectiveControls:N.controls,effectiveCatalog:T,effectiveAdvancedCatalog:N,markManualSelection:I,markLegacyManualSelection:O,clearManualSelection:P,onTargetChange:n});return d.useEffect(()=>{const Y=a.trim();if(!y||!Y)return;const ke=Mm({provider:e,instance:L,model:Y,modelSelection:o??null}),De=Dc({provider:e,instance:L,model:Y,modelSelection:o??null,effectiveCatalog:T,effectiveAdvancedCatalog:N});ke!==De&&n({provider:e,instance:L,model:Y,modelSelection:o??null,executionLabel:De})},[N,T,a,o,n,e,L,y]),r.jsxs(r.Fragment,{children:[r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:h(i.sharedProviderModelFieldProviderLabel)}),r.jsx("select",{className:"textInput",value:y?.id??"",disabled:v.length===0,onChange:Y=>dt(Y.target.value),children:v.length===0?r.jsx("option",{value:"",children:we}):r.jsxs(r.Fragment,{children:[y?null:r.jsx("option",{value:"",disabled:!0,children:h(i.sharedProviderModelFieldSelectProviderHint)}),v.map(Y=>r.jsx("option",{value:Y.id,children:Y.label},Y.id))]})}),v.length===0?r.jsx(lk,{providerRegistryHint:xe,canRetryProviderRegistry:H,providerRegistrySetupHref:M,forceReloadProviderRegistry:C,hideRetry:p}):null]}),_?r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:h(i.sharedProviderModelFieldProviderInstanceLabel)}),r.jsx("select",{className:"textInput",value:L,onChange:Y=>St(Y.target.value),children:$.map(Y=>r.jsx("option",{value:Y.id,children:Y.label},Y.id))})]}):null,ee?r.jsx("span",{className:"fieldHint providerCatalogHint",children:ee}):null,r.jsxs("label",{className:"fieldLabel",children:[r.jsxs("div",{className:"fieldLabelInline",children:[r.jsx("span",{children:h(i.sharedProviderModelFieldModelLabel)}),J?r.jsx("span",{className:`providerSupportBadge providerSupportBadge${J.tone}`,children:h(J.labelKey)}):null]}),r.jsxs("select",{className:"textInput",value:q,disabled:!R&&E.length===0,onChange:Y=>Xt(Y.target.value),children:[!R&&E.length===0?r.jsx("option",{value:"",disabled:!0,children:Ie}):null,E.map(Y=>r.jsx("option",{value:Y.id,children:qw(Y)},Y.id)),V?r.jsx("option",{value:Tn,children:h(i.sharedProviderModelFieldCustomLegacyModelLabel)}):null]}),X.length>0?r.jsx("span",{className:"fieldHint",children:X[0]}):oe?r.jsx("span",{className:"fieldHint",children:oe}):null]}),R?r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:h(i.sharedProviderModelFieldLegacyModelIdLabel)}),r.jsx("input",{className:"textInput",type:"text",value:a,placeholder:h(i.sharedProviderModelFieldLegacyModelIdPlaceholder),onChange:Y=>D(Y.target.value)}),r.jsx("span",{className:"fieldHint",children:h(i.sharedProviderModelFieldLegacyModelIdHint)})]}):r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:h(i.sharedProviderModelFieldModeLabel)}),r.jsxs("select",{className:"textInput",value:Q,disabled:F.length===0,onChange:Y=>Lt(Y.target.value),children:[r.jsx("option",{value:"",children:F.length>0?h(i.sharedProviderModelFieldModeStandardLabel):h(i.sharedProviderModelFieldModeStandardOnlyLabel)}),F.map(Y=>r.jsxs("option",{value:Y.id,disabled:Y.availability==="unavailable",children:[Y.label,Y.availability==="preview"?h(i.sharedProviderModelFieldPresetPreviewSuffix):"",Y.availability==="unavailable"?h(i.sharedProviderModelFieldPresetUnavailableSuffix):""]},Y.id))]}),Q?r.jsx("span",{className:"fieldHint",children:F.find(Y=>Y.id===Q)?.description??h(i.sharedProviderModelFieldPresetTuningDescriptionFallback)}):F.length===0?r.jsx("span",{className:"fieldHint",children:h(i.sharedProviderModelFieldModeOnlyBaseHint)}):null]}),r.jsx(sk,{controlOptions:me,selectedCatalogEntryId:B,controlValues:G,onControlChange:Zt}),U?r.jsx("span",{className:"fieldHint providerCatalogHint",children:U}):null,j>0?r.jsx("span",{className:"fieldHint providerCatalogHint",children:h(i.sharedProviderModelFieldRequestScopedWarning)}):null,N.warnings.length>0?r.jsx("span",{className:"fieldHint providerCatalogHint",children:N.warnings[0]}):null]})}function ye(e){const{children:t,className:a,variant:o="default",id:n}=e,s=["contentCard",o==="form"?"contentCardForm":null,"settings-section",a].filter(Boolean).join(" ");return r.jsxs("section",{className:s,"data-variant":o==="form"?"form":void 0,id:n,children:[e.headerless?null:e.header,t]})}function be(e){const{children:t,className:a,id:o}=e,n=["settings-sub-section",a].filter(Boolean).join(" ");return r.jsxs("section",{className:n,id:o,children:[e.headerless?null:e.header,t]})}function re({title:e,eyebrow:t,status:a,description:o,nested:n=!1}){const s=n?"h3":"h2",l=!!t,c=r.jsx(s,{className:"settings-section-header__title","data-nested":n?"true":void 0,children:e});return r.jsxs(r.Fragment,{children:[r.jsxs("header",{className:"contentCardHeader settings-section-header",children:[l?r.jsxs("div",{children:[r.jsx("p",{className:"settings-section-header__eyebrow",children:t}),c]}):c,a?r.jsx("span",{className:"settings-section-header__status",children:a}):null]}),o?r.jsx("p",{className:"settings-section-header__description",children:o}):null]})}function ne({label:e,description:t,control:a,layout:o="inline",asChoice:n=!1,className:s}){if(n){const c=["settingsCheckboxRow","settings-option-row",s].filter(Boolean).join(" ");return r.jsxs("label",{className:c,"data-layout":o,"data-choice":"true",children:[a,r.jsxs("span",{className:"settingsCheckboxMeta settings-option-row__meta",children:[r.jsx("span",{className:"settingsCheckboxLabel settings-option-row__label",children:e}),t?r.jsx("span",{className:"heroNote settings-option-row__description",children:t}):null]})]})}const l=["settings-option-row",s].filter(Boolean).join(" ");return o==="stack"?r.jsxs("div",{className:l,"data-layout":"stack",children:[r.jsx("span",{className:"settings-option-row__label",children:e}),t?r.jsx("span",{className:"settings-option-row__description",children:t}):null,r.jsx("div",{className:"settings-option-row__control",children:a})]}):r.jsxs("div",{className:l,"data-layout":"inline",children:[r.jsxs("div",{className:"settings-option-row__meta",children:[r.jsx("span",{className:"settings-option-row__label",children:e}),t?r.jsx("span",{className:"settings-option-row__description",children:t}):null]}),r.jsx("div",{className:"settings-option-row__control",children:a})]})}function Xe({children:e,tone:t="default",className:a}){const o=["settingsActionRow","settings-action-bar",a].filter(Boolean).join(" ");return r.jsx("div",{className:o,"data-tone":t==="danger"?"danger":void 0,children:e})}const fk={ready:"statusChipReady",warm:"statusChipWarm",muted:"statusChipMuted"};function ht({tone:e,children:t,className:a}){const o=["statusChip",fk[e],"settings-status-chip",a].filter(Boolean).join(" ");return r.jsx("span",{className:o,"data-tone":e,children:t})}function wk({title:e,description:t,children:a,className:o}){const n=["contentCard","settings-section","settings-danger-zone",o].filter(Boolean).join(" ");return r.jsxs("section",{className:n,children:[r.jsx("h2",{className:"settings-danger-zone__title",children:e}),t?r.jsx("p",{className:"settings-danger-zone__description",children:t}):null,a]})}function Nt({title:e,className:t="catsSubCard",...a}){const{t:o}=W(),[n,s]=d.useState(null),l=e??o(i.sharedProviderModelBrainCardTitle),c=n?.canRetry?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>n.retry(),children:o(i.sharedCommonRetry)}):null;return r.jsx(be,{className:t,header:r.jsx(re,{title:l,nested:!0,status:c}),children:r.jsx(jc,{...a,hideInlineRetry:!0,onRegistryRecoveryChange:s})})}const kk=3e3,bk=300;let yk=1;function at(){const[e,t]=d.useState([]),a=d.useRef(new Map),o=d.useCallback(n=>{if(!n)return;const s=yk++;t(c=>[...c,{id:s,message:n,fading:!1}]);const l=setTimeout(()=>{t(u=>u.map(p=>p.id===s?{...p,fading:!0}:p));const c=setTimeout(()=>{t(u=>u.filter(p=>p.id!==s)),a.current.delete(s)},bk);a.current.set(s,c)},kk);a.current.set(s,l)},[]);return d.useEffect(()=>()=>{for(const n of a.current.values())clearTimeout(n)},[]),{toasts:e,showToast:o}}function rt({toasts:e}){return e.length===0?null:r.jsx("div",{className:"toastContainer",children:e.map(t=>r.jsx("div",{className:t.fading?"toast toastFading":"toast",children:t.message},t.id))})}const Nn={kind:"idle"};function Ue(){return Nn}function vk(e){return!e||e.kind==="idle"}function rR(e){return!vk(e)}function oR(){return{kind:"draft"}}function nR(e){return{kind:"channel",channelId:e}}function sR(e,t){return{kind:"composer",phase:e,scope:t}}function iR(e){return{kind:"parallel-chat",phase:e}}function lR(e,t){if(e==="reset")return{kind:"channel",action:e};if(!t)throw new Error(`channelId is required for channel busy action "${e}"`);return{kind:"channel",action:e,channelId:t}}function cR(e){return{kind:"channel-participant",action:"update",participantId:e}}function dR(e,t){return{kind:"concurrent-group",action:e,groupId:t}}function wt(e,t){if(e==="create"||e==="create-assign")return{kind:"cat",action:e};if(!t)throw new Error(`catId is required for cat busy action "${e}"`);return{kind:"cat",action:e,catId:t}}function Ck(){return{kind:"setup",action:"reset"}}function uR(e,t){return{kind:"approval",taskId:e,action:t}}function pR(e,t){return{kind:"choice",sourceMessageId:e,status:t}}function hR(e,t){return{kind:"operator-action",action:e,busyKey:t}}function Vs(e,t){if(e==="create")return{kind:"bot",action:e};if(!t)throw new Error("bindingId is required for bot delete busy state");return{kind:"bot",action:e,bindingId:t}}function Ys(e,t){if(e==="create")return{kind:"memory",action:e};if(!t)throw new Error("recordId is required for memory delete busy state");return{kind:"memory",action:e,recordId:t}}function mR(e,t){return e?.kind==="parallel-chat"&&(t==null||e.phase===t)}function gR(e,t,a){return e?.kind!=="channel"||e.action!==t?!1:t==="reset"?!0:"channelId"in e&&e.channelId===a}function fR(e,t){return e?.kind==="channel-participant"&&(t==null||e.participantId===t)}function wR(e,t,a){return e?.kind==="concurrent-group"&&e.action===t&&(a==null||e.groupId===a)}function ce(e,t,a){return e?.kind!=="cat"||e.action!==t?!1:"catId"in e?a==null||e.catId===a:a==null}function Sk(e){return e?.kind==="setup"&&e.action==="reset"}function kR(e,t,a){return e?.kind==="approval"&&(t==null||e.taskId===t)&&a==null}function bR(e,t,a){return e?.kind==="choice"&&(t==null||e.sourceMessageId===t)&&(a==null||e.status===a)}function nr(e,t,a){return e?.kind!=="bot"||e.action!==t?!1:"bindingId"in e?a==null||e.bindingId===a:a==null}function Kt(e,t,a){return e?.kind!=="memory"||e.action!==t?!1:"recordId"in e?a==null||e.recordId===a:a==null}function yR(e){if(!e||e.kind==="idle")return"";switch(e.kind){case"composer":return e.scope.kind==="draft"?`composer:${e.phase}:draft`:`composer:${e.phase}:${e.scope.channelId}`;case"parallel-chat":return`parallel-chat:${e.phase}`;case"channel":return e.action==="reset"?`channel:${e.action}`:`channel:${e.action}:${"channelId"in e?e.channelId:""}`;case"channel-participant":return`channel-participant:${e.action}:${e.participantId}`;case"concurrent-group":return`concurrent-group:${e.action}:${e.groupId}`;case"cat":return"catId"in e?`cat:${e.action}:${e.catId}`:`cat:${e.action}`;case"setup":return`setup:${e.action}`;case"approval":return`approval:${e.taskId}:${e.action}`;case"choice":return`choice:${e.sourceMessageId}:${e.status}`;case"operator-action":return`operator-action:${e.action}:${e.busyKey}`;case"bot":return"bindingId"in e?`bot:${e.action}:${e.bindingId}`:`bot:${e.action}`;case"memory":return"recordId"in e?`memory:${e.action}:${e.recordId}`:`memory:${e.action}`}}const Lk=new Map([["Memory content is required.",i.sharedSettingsCatsMemoryContentRequired],["Memory content must be a non-empty string.",i.sharedSettingsCatsMemoryContentRequired],["Invalid memory category.",i.sharedSettingsCatsMemoryInvalidCategory]]),Rk=[/^cat memory create returned \d+$/u,/^cat memory delete returned \d+$/u];function Pk(e,t){const a=Lk.get(e);return a?t(a):e.startsWith("Cat memory not found:")?t(i.sharedSettingsCatsMemoryNotFound):e.startsWith("Cat not found:")?t(i.sharedSettingsCatsErrorNotFound):null}function Qs(e,t,a){if(!(e instanceof Error))return t;const o=Pk(e.message,a);return o||(Rk.some(n=>n.test(e.message))?t:e.message)}function Mc(e){const{t}=W(),[a,o]=d.useState({category:"fact",content:""}),[n,s]=d.useState([]),[l,c]=d.useState(!1);d.useEffect(()=>{if(!e.expandedCatId){s([]),c(!1);return}let g=!1;return c(!0),af(e.expandedCatId).then(h=>{g||s(h)}).catch(()=>{g||s([])}).finally(()=>{g||c(!1)}),()=>{g=!0}},[e.expandedCatId]);async function u(g){if(a.content.trim()){e.onBusy(Ys("create"));try{const h=await rf(g,{category:a.category,content:a.content.trim()});s(k=>[h,...k.filter(f=>f.id!==h.id)]),o({category:"fact",content:""})}catch(h){e.onFeedback(Qs(h,t(i.sharedSettingsCatsMemorySaveError),t))}finally{e.onBusy(Ue())}}}async function p(g,h){e.onBusy(Ys("delete",h));try{await of(g,h),s(k=>k.filter(f=>f.id!==h))}catch(k){e.onFeedback(Qs(k,t(i.sharedSettingsCatsMemoryDeleteError),t))}finally{e.onBusy(Ue())}}return{memoryForm:a,setMemoryForm:o,catMemory:n,memoryLoading:l,addMemory:u,deleteMemory:p}}const Ak=new Map([["Cat name is required",i.sharedSettingsCatsErrorNameRequired],["Cat provider is required",i.sharedSettingsCatsErrorProviderRequired],["Cat name cannot be empty",i.sharedSettingsCatsErrorNameEmpty],["Cat is already archived",i.sharedSettingsCatsErrorAlreadyArchived],["Cat is already active",i.sharedSettingsCatsErrorAlreadyActive],["Cat cannot be archived and recovered at the same time",i.sharedSettingsCatsErrorArchiveRecoverConflict],["Cat must be available in at least one product",i.sharedSettingsCatsErrorNoProducts],["Bot token is already used by another binding",i.sharedSettingsCatsErrorBotTokenDuplicate]]),xk=[/^cats chat cat creation returned \d+$/u,/^cat profile update returned \d+$/u,/^cats cat deletion returned \d+$/u,/^bot binding create returned \d+$/u,/^bot binding delete returned \d+$/u,/^update bot binding returned \d+$/u];function Tk(e,t){const a=Ak.get(e);if(a)return t(a);const o=e.match(/^A cat named "(.+)" already exists$/u);if(o)return t(i.sharedSettingsCatsErrorNameDuplicate,{name:o[1]});const n=e.match(/^Cat limit reached \(max (\d+)\)$/u);return n?t(i.sharedSettingsCatsErrorLimitReached,{maxCats:n[1]}):e.startsWith("Cat not found:")?t(i.sharedSettingsCatsErrorNotFound):e.startsWith("Cat is not active:")?t(i.sharedSettingsCatsErrorNotActive):e.startsWith("Cat is not available in Cats Chat:")?t(i.sharedSettingsCatsErrorNotAvailableInChat):e.startsWith("Bot binding not found:")?t(i.sharedSettingsCatsErrorBotBindingNotFound):null}function Fe(e,t,a){if(!(e instanceof Error))return t;const o=Tk(e.message,a);return o||(xk.some(n=>n.test(e.message))?t:e.message)}function Ec(){return{botName:"",botToken:"",webhookSecret:"",inboundMode:"polling"}}function Dk(e){const t=e.t??Oe("en");async function a(){e.onBusy(wt("create"));try{const h=await Yg({name:e.catForm.name,provider:e.catForm.provider,instance:e.catForm.instance||void 0,model:e.catForm.model||void 0,modelSelection:e.catForm.modelSelection,makeBoss:e.catForm.makeBoss||void 0,products:e.catForm.products.length>0?e.catForm.products:void 0,skillProfile:e.catForm.skillProfile||void 0,mcpProfile:e.catForm.mcpProfile&&e.catForm.mcpProfile!==et?e.catForm.mcpProfile:void 0});return e.onPayloadUpdate(h),e.setCatForm(e.emptyCatForm()),e.onFeedback(t(i.sharedSettingsCatsSaveSuccess)),h}catch(h){return e.onFeedback(Fe(h,t(i.sharedSettingsCatsSaveError),t)),null}finally{e.onBusy(Ue())}}async function o(h){return h.preventDefault(),a()}async function n(h){const k=e.renameValue.trim();if(k){e.onBusy(wt("rename",h));try{const f=await Re(h,{name:k});e.onPayloadUpdate(f),e.setRenameValue(""),e.onFeedback(t(i.sharedSettingsCatsRenameSuccess))}catch(f){e.onFeedback(Fe(f,t(i.sharedSettingsCatsRenameError),t))}finally{e.onBusy(Ue())}}}async function s(h,k){e.onBusy(wt("delete",h)),e.onFeedback("");try{const f=await Vg(h);e.onPayloadUpdate(f),e.onFeedback(t(i.sharedSettingsCatsDeleteSuccess,{catName:k})),e.expandedCatId===h&&e.setExpandedCatId(null)}catch(f){e.onFeedback(Fe(f,t(i.sharedSettingsCatsDeleteError),t))}finally{e.onBusy(Ue())}}async function l(h){e.onBusy(wt("makeBoss",h));try{const k=await Re(h,{makeBoss:!0});e.onPayloadUpdate(k),e.onFeedback(t(i.sharedSettingsCatsBossUpdated))}catch(k){e.onFeedback(Fe(k,t(i.sharedSettingsCatsSetBossCatError),t))}finally{e.onBusy(Ue())}}async function c(h,k){e.onBusy(wt("skill",h));try{const f=await Re(h,{skillProfile:k==="chat-default"?null:k});e.onPayloadUpdate(f)}catch(f){e.onFeedback(Fe(f,t(i.sharedSettingsCatsSkillUpdateError),t))}finally{e.onBusy(Ue())}}async function u(h,k){e.onBusy(wt("skill",h));try{const f=await Re(h,{mcpProfile:k});e.onPayloadUpdate(f)}catch(f){e.onFeedback(Fe(f,t(i.sharedSettingsCatsChangeMcpProfileError),t))}finally{e.onBusy(Ue())}}async function p(h){if(e.botForm.botName.trim()){e.onBusy(Vs("create"));try{const k=await ef({botName:e.botForm.botName.trim(),catId:h,inboundMode:e.botForm.inboundMode,botToken:e.botForm.botToken.trim()||void 0,webhookSecret:e.botForm.inboundMode==="webhook"&&e.botForm.webhookSecret.trim()||void 0});e.onPayloadUpdate(k),e.setBotForm(Ec()),e.onFeedback(t(i.sharedSettingsCatsTelegramBindingCreated))}catch(k){e.onFeedback(Fe(k,t(i.sharedSettingsCatsTelegramBindingCreateError),t))}finally{e.onBusy(Ue())}}}async function g(h){e.onBusy(Vs("delete",h));try{const k=await tf(h);e.onPayloadUpdate(k),e.onFeedback(t(i.sharedSettingsCatsTelegramBindingRemoved))}catch(k){e.onFeedback(Fe(k,t(i.sharedSettingsCatsTelegramBindingRemoveError),t))}finally{e.onBusy(Ue())}}return{onCreateBinding:p,onCreateCat:o,performCreateCat:a,onDeleteBinding:g,onDeleteCat:s,onMakeBossCat:l,onMcpProfileChange:u,onRenameCat:n,onSkillChange:c}}const Ic=Oe("en");function Bc(e,t){const a=e?.trim();return a||t}function vR(e,t=Ic){const a=Bc(e,t(i.sharedDeleteParallelChatGroupFallback));return{title:t(i.sharedDeleteParallelChatGroupTitle),message:t(i.sharedDeleteParallelChatGroupMessage,{groupTitle:a}),confirmLabel:t(i.sharedDeleteParallelChatGroupConfirm)}}function Nk(e,t=Ic){const a=Bc(e,t(i.sharedDeleteCatFallback));return{title:t(i.sharedDeleteCatTitle),message:t(i.sharedDeleteCatMessage,{catName:a}),confirmLabel:t(i.sharedDeleteCatConfirm)}}function Fc(e){const{expandedCatId:t,setExpandedCatId:a,onBusy:o,onFeedback:n,onPayloadUpdate:s,confirm:l}=e,{t:c}=W(),[u,p]=d.useState(Ds),[g,h]=d.useState(""),[k,f]=d.useState(Ec),w=d.useRef(!1),{onCreateBinding:b,performCreateCat:m,onDeleteBinding:C,onDeleteCat:v,onMakeBossCat:y,onMcpProfileChange:L,onRenameCat:x,onSkillChange:T}=Dk({expandedCatId:t,setExpandedCatId:a,onBusy:o,onFeedback:n,onPayloadUpdate:s,catForm:u,setCatForm:p,renameValue:g,setRenameValue:h,botForm:k,setBotForm:f,emptyCatForm:Ds,t:c});async function N(O,E){if(!l||await l({title:c(i.sharedSettingsCatsArchiveConfirmTitle),message:c(i.sharedSettingsCatsArchiveConfirmMessage,{catName:E}),confirmLabel:c(i.sharedSettingsCatsArchiveLabel)})){o(wt("archive",O)),n("");try{const _=await Re(O,{archive:!0});s(_),n(c(i.sharedSettingsCatsArchiveSuccess,{catName:E})),t===O&&a(null)}catch(_){n(Fe(_,c(i.sharedSettingsCatsArchiveError),c))}finally{o(Ue())}}}async function A(O,E){if(!l||await l({title:c(i.sharedSettingsCatsRecoverConfirmTitle),message:c(i.sharedSettingsCatsRecoverConfirmMessage,{catName:E}),confirmLabel:c(i.sharedSettingsCatsRecoverConfirmLabel)})){o(wt("unarchive",O)),n("");try{const _=await Re(O,{unarchive:!0});s(_),n(c(i.sharedSettingsCatsRecoverSuccess,{catName:E}))}catch(_){n(Fe(_,c(i.sharedSettingsCatsRecoverError),c))}finally{o(Ue())}}}async function R(O,E){(!l||await l(Nk(E,c)))&&await v(O,E)}async function P(){if(w.current)return null;w.current=!0;try{return await m()}finally{w.current=!1}}async function I(O){return O.preventDefault(),P()}return{botForm:k,catForm:u,renameValue:g,setBotForm:f,setCatForm:p,setRenameValue:h,onArchiveCat:N,onCreateBinding:b,onCreateCat:I,performCreateCat:P,onDeleteBinding:C,onDeleteCat:R,onMakeBossCat:y,onMcpProfileChange:L,onRenameCat:x,onSkillChange:T,onUnarchiveCat:A}}function jk(){return{started:!1,cancel:()=>{},promise:Promise.resolve()}}function Mk(e){const t=[...e.botBindings??[]].map(a=>`${a.id}:${a.status}:${a.updatedAt}`).sort().join("|");return`${e.bossCatId??"no-boss-cat"}::${t}`}async function Oc(e){const[t,a]=await Promise.all([e.fetchStatus(),e.fetchDiagnostics()]);return{status:t,diagnostics:a}}function Ek(e,t,a){let o=!1;a.onStart();const n=Oc(e).then(s=>{o||a.onSuccess(s)}).catch(s=>{o||a.onError(s instanceof Error?s.message:t)}).finally(()=>{o||a.onFinish()});return{started:!0,cancel:()=>{o=!0},promise:n}}function Ik(e){let t=null;return{loadForScope(a,o,n){return a===t?jk():(t=a,Ek(e,o,n))},resetScope(){t=null}}}function Bk(e,t,a,o){const n=e.loadForScope(t,a,o);return{...n,cancel(){n.cancel(),e.resetScope()}}}const Fk=[/^telegram transport status returned \d+$/u,/^telegram transport diagnostics returned \d+$/u,/^polling reconnect returned \d+$/u];function Js(e,t){if(!(e instanceof Error)&&typeof e!="string")return t;const a=e instanceof Error?e.message:e;return Fk.some(o=>o.test(a))?t:a}function Wc(e){const{t}=W(),a=e.chat.botBindings??[],o=Mk({bossCatId:e.chat.bossCatId,botBindings:a}),n=t(i.sharedSettingsCatsTelegramDiagnosticsLoadError),[s,l]=d.useState(null),[c,u]=d.useState(null),[p,g]=d.useState(!1),[h,k]=d.useState(""),[f]=d.useState(()=>Ik({fetchStatus:Ps,fetchDiagnostics:As}));d.useEffect(()=>Bk(f,o,n,{onStart(){g(!0),k("")},onSuccess(m){l(m.status),u(m.diagnostics)},onError(m){l(null),u(null),k(Js(m,n))},onFinish(){g(!1)}}).cancel,[f,n,o]);async function w(){g(!0),k("");try{const b=await Oc({fetchStatus:Ps,fetchDiagnostics:As});l(b.status),u(b.diagnostics)}catch(b){l(null),u(null),k(Js(b,n))}finally{g(!1)}}return{botBindings:a,telegramStatus:s,telegramDiagnostics:c,telegramLoading:p,telegramError:h,refreshTelegramDiagnostics:w}}const qt=[{value:"chat-default",label:i.sharedSettingsCatsSkillProfileDefaultLabel},{value:"companion",label:i.sharedSettingsCatsSkillProfileCompanionLabel}],Mt=[{value:et,label:i.sharedSettingsCatsMcpProfileChatMemoryLabel},{value:fc,label:i.sharedSettingsCatsMcpProfileWorkMemoryLabel}],jn=[{value:"preference",label:i.sharedSettingsCatsMemoryCategoryPreferenceLabel},{value:"fact",label:i.sharedSettingsCatsMemoryCategoryFactLabel},{value:"policy",label:i.sharedSettingsCatsMemoryCategoryPolicyLabel},{value:"style",label:i.sharedSettingsCatsMemoryCategoryStyleLabel},{value:"relationship",label:i.sharedSettingsCatsMemoryCategoryRelationshipLabel},{value:"lesson",label:i.sharedSettingsCatsMemoryCategoryLessonLabel}];function Uc(e){return e==="chat-default"?i.sharedSettingsCatsSkillProfileDefaultLabel:e==="companion"?i.sharedSettingsCatsSkillProfileCompanionLabel:null}function Hc(e){return!e||e===et?i.sharedSettingsCatsMcpProfileChatMemoryLabel:e===fc?i.sharedSettingsCatsMcpProfileWorkMemoryLabel:null}function Gc(e){const t=jn.find(a=>a.value===e);return t?t.label:null}function _c(e){return e==="active"?i.sharedSettingsCatsStatusActive:e==="archived"?i.sharedSettingsCatsStatusArchived:null}function Kc(e){return e==="chat"?i.platformProductChatSettingsLabel:e==="code"?i.platformProductCodeSettingsLabel:e==="work"?i.platformProductWorkSettingsLabel:null}function qc(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function Ok({memoryForm:e,setMemoryForm:t,busyCreating:a,onSubmit:o,onClose:n}){const{t:s}=W();d.useEffect(()=>{function c(u){u.key==="Escape"&&!a&&n()}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[a,n]);const l=!e.content.trim()||a;return r.jsx("div",{className:"catsDialogOverlay",onClick:()=>{a||n()},children:r.jsxs("form",{className:"catsDialog",onClick:c=>c.stopPropagation(),onSubmit:c=>{c.preventDefault(),!l&&o()},children:[r.jsx("p",{className:"catsDialogTitle",children:s(i.sharedMemoryEditorDialogTitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedMemoryEditorDialogCategoryLabel)}),r.jsx("select",{className:"textInput",value:e.category,onChange:c=>t({...e,category:c.target.value}),children:jn.map(c=>r.jsx("option",{value:c.value,children:s(c.label)},c.value))})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedMemoryEditorDialogContentLabel)}),r.jsx("textarea",{className:"textInput",rows:4,placeholder:s(i.sharedMemoryEditorDialogMemoryPlaceholder),value:e.content,onChange:c=>t({...e,content:c.target.value}),autoFocus:!0})]}),r.jsxs("div",{className:"catsDialogActions",children:[r.jsx("button",{className:"confirmCancelButton",type:"button",onClick:n,disabled:a,children:s(i.sharedMemoryEditorDialogCancel)}),r.jsx("button",{className:"primaryButton",type:"submit",disabled:l,children:s(a?i.sharedMemoryEditorDialogSaving:i.sharedMemoryEditorDialogAdd)})]})]})})}function Wk({botForm:e,setBotForm:t,busyCreating:a,onSubmit:o,onClose:n}){const{t:s}=W();d.useEffect(()=>{function c(u){u.key==="Escape"&&!a&&n()}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[a,n]);const l=!e.botName.trim()||!e.botToken.trim()||a;return r.jsx("div",{className:"catsDialogOverlay",onClick:()=>{a||n()},children:r.jsxs("form",{className:"catsDialog",onClick:c=>c.stopPropagation(),onSubmit:c=>{c.preventDefault(),!l&&o()},children:[r.jsx("p",{className:"catsDialogTitle",children:s(i.sharedTelegramConnectDialogTitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedTelegramConnectBotUsernameLabel)}),r.jsx("input",{className:"textInput",placeholder:s(i.sharedTelegramConnectBotUsernamePlaceholder),value:e.botName,onChange:c=>t({...e,botName:c.target.value}),autoFocus:!0})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedTelegramConnectBotTokenLabel)}),r.jsx("input",{className:"textInput",type:"password",placeholder:s(i.sharedTelegramConnectBotTokenPlaceholder),value:e.botToken,onChange:c=>t({...e,botToken:c.target.value})})]}),r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedTelegramConnectModeLabel)}),r.jsxs("div",{className:"skillPills",children:[r.jsx("button",{type:"button",className:e.inboundMode==="polling"?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>t({...e,inboundMode:"polling"}),children:s(i.sharedTelegramConnectModePolling)}),r.jsx("button",{type:"button",className:e.inboundMode==="webhook"?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>t({...e,inboundMode:"webhook"}),children:s(i.sharedTelegramConnectModeWebhook)})]})]}),e.inboundMode==="webhook"?r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedTelegramConnectWebhookSecretLabel)}),r.jsx("input",{className:"textInput",placeholder:s(i.sharedTelegramConnectWebhookSecretPlaceholder),value:e.webhookSecret,onChange:c=>t({...e,webhookSecret:c.target.value})})]}):null,r.jsxs("div",{className:"catsDialogActions",children:[r.jsx("button",{className:"confirmCancelButton",type:"button",onClick:n,disabled:a,children:s(i.sharedTelegramConnectCancel)}),r.jsx("button",{className:"primaryButton",type:"submit",disabled:l,children:s(a?i.sharedTelegramConnectConnecting:i.sharedTelegramConnectConnect)})]})]})})}function No({busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:s,telegramDiagnostics:l,confirm:c,sections:u}){const p=F=>u===void 0||u.includes(F),{botForm:g,renameValue:h,setBotForm:k,setRenameValue:f,onCreateBinding:w,onDeleteBinding:b,onMakeBossCat:m,onMcpProfileChange:C,onRenameCat:v,onSkillChange:y}=s,{memoryForm:L,setMemoryForm:x,catMemory:T,memoryLoading:N,addMemory:A,deleteMemory:R}=n,P=t.filter(F=>F.catId===a.id),I=l?.bindings.filter(F=>F.bindingId&&P.some(Q=>Q.id===F.bindingId))??[],O=a.status==="active"&&en(a.products,"chat",{fallback:gr()}),{t:E}=W(),[$,_]=d.useState(!1);d.useEffect(()=>{P.length>0&&_(!1)},[P.length]),d.useEffect(()=>{_(!1)},[a.id]);const[ee,B]=d.useState(!1),q=d.useRef(T.length);return d.useEffect(()=>{const F=q.current;ee&&T.length>F&&B(!1),q.current=T.length},[ee,T.length]),d.useEffect(()=>{B(!1)},[a.id]),r.jsxs(r.Fragment,{children:[p("rename")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:E(i.sharedSettingsCatsRenameLabel)}),r.jsxs("div",{style:{display:"flex",gap:8},children:[r.jsx("input",{className:"textInput",placeholder:a.name,value:h,onChange:F=>f(F.target.value),onFocus:()=>f(a.name)}),r.jsx("button",{className:"primaryButton",type:"button",disabled:!h.trim()||h.trim()===a.name||ce(e,"rename",a.id),onClick:()=>{v(a.id)},children:ce(e,"rename",a.id)?E(i.sharedSettingsCatsSaving):E(i.sharedSettingsCatsSave)})]})]}):null,p("makeBoss")&&!o?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:E(i.sharedSettingsCatsBossCatLabel)}),r.jsx("button",{className:"primaryButton",type:"button",disabled:ce(e,"makeBoss",a.id),onClick:async()=>{(!c||await c({title:E(i.sharedSettingsCatsChangeBossCatTitle),message:E(i.sharedSettingsCatsChangeBossCatMessage,{name:a.name}),confirmLabel:E(i.sharedSettingsCatsConfirm)}))&&m(a.id)},children:ce(e,"makeBoss",a.id)?E(i.sharedSettingsCatsSetting):E(i.sharedSettingsCatsMakeBossCatLabel,{name:a.name})})]}):null,p("skill")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:E(i.sharedSettingsCatsSkillProfileLabel)}),r.jsx("div",{className:"skillPills",children:qt.map(F=>r.jsx("button",{className:(a.skillProfile??"chat-default")===F.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",type:"button",disabled:ce(e,"skill",a.id),onClick:()=>{y(a.id,F.value)},children:E(F.label)},F.value))})]}):null,p("mcp")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:E(i.sharedSettingsCatsMcpProfileLabel)}),r.jsx("div",{className:"skillPills",children:Mt.map(F=>r.jsx("button",{className:(a.mcpProfile??et)===F.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",type:"button",disabled:ce(e,"skill",a.id),onClick:()=>{C(a.id,F.value)},children:E(F.label)},F.value))})]}):null,p("telegram")?P.length>0?r.jsx("div",{className:"catsTelegramConnected",children:P.map(F=>{const Q=I.find(me=>me.bindingId===F.id);return r.jsxs("div",{className:"catsTelegramBinding",children:[r.jsxs("div",{className:"catsTelegramBindingHeader",children:[r.jsx("span",{className:"catsTelegramBindingIcon","aria-hidden":"true",children:r.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:r.jsx("path",{d:"M20.66 3.88 2.92 10.9a.73.73 0 0 0 .04 1.38l4.45 1.4 1.72 5.52a.78.78 0 0 0 1.24.37l2.48-2.02 4.87 3.6a.78.78 0 0 0 1.2-.46L21.7 4.76c.17-.7-.52-1.27-1.04-0.88ZM10.1 14.6l-.44 3.15-1.34-4.3 9.38-6.2Z"})})}),r.jsxs("strong",{className:"catsTelegramBindingName","data-tooltip":`@${F.botName}`,children:["@",F.botName]}),r.jsx("button",{type:"button",className:"catsInlineDeleteButton catsTelegramBindingDisconnect",disabled:nr(e,"delete",F.id),onClick:()=>{b(F.id)},"aria-label":E(i.sharedSettingsCatsDisconnectTelegramAria),"data-tooltip":E(i.sharedSettingsCatsDisconnectTelegram),children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),r.jsxs("div",{className:"catsTelegramBindingMeta",children:[r.jsx("span",{className:`statusChip ${F.status==="active"?"statusChipReady":"statusChipMuted"}`,children:F.status==="active"?E(i.sharedSettingsCatsBindingActive):E(i.sharedSettingsCatsBindingDisabled)}),r.jsx("span",{className:"statusChip statusChipMuted",children:F.inboundMode==="polling"?E(i.sharedSettingsCatsBindingPollingMode):E(i.sharedSettingsCatsBindingWebhookMode)}),Q?.lastInboundAt?r.jsx("span",{className:"catsTelegramBindingLastInbound",children:E(i.sharedSettingsCatsLastInboundLabel,{time:qc(Q.lastInboundAt)})}):null]})]},F.id)})}):r.jsxs("div",{className:"catsTelegramEmpty",children:[r.jsx("button",{type:"button",className:"primaryButton",disabled:!O,onClick:()=>_(!0),children:E(i.sharedSettingsCatsConnectTelegramLabel)}),O?null:r.jsx("p",{className:"catsTelegramHint",children:E(i.sharedSettingsCatsUnavailableHint)})]}):null,$?r.jsx(Wk,{botForm:g,setBotForm:k,busyCreating:nr(e,"create"),onSubmit:()=>{w(a.id)},onClose:()=>_(!1)}):null,p("memory")?r.jsxs("div",{className:"catsMemorySection",children:[T.length>0?r.jsx("div",{className:"memoryList",children:T.map(F=>r.jsx(Uk,{busy:e,memoryRecord:F,onDelete:()=>{R(a.id,F.id)}},F.id))}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:Kt(e,"create"),onClick:()=>B(!0),children:E(i.sharedSettingsCatsAddMemoryLabel)})]}):null,ee?r.jsx(Ok,{memoryForm:L,setMemoryForm:x,busyCreating:Kt(e,"create"),onSubmit:()=>{A(a.id)},onClose:()=>B(!1)}):null]})}function Uk({busy:e,memoryRecord:t,onDelete:a}){const{t:o}=W(),n=Gc(t.category);return r.jsxs("div",{className:"memoryItem",children:[r.jsxs("div",{children:[r.jsx("span",{className:"statusChip statusChipMuted",children:n?o(n):t.category}),r.jsxs("span",{style:{marginLeft:8},children:[t.content.slice(0,100),t.content.length>100?"...":""]})]}),r.jsx("button",{className:"catsInlineDeleteButton",type:"button",disabled:Kt(e,"delete",t.id),onClick:a,"aria-label":o(i.sharedSettingsCatsDeleteMemoryAria),children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})}function Hk({busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:s,telegramDiagnostics:l,onPayloadUpdate:c,confirm:u}){const[p,g]=d.useState(!1),{t:h}=W();async function k(w){g(!1);try{const b=await Re(a.id,{avatarUrl:w});c?.(b)}catch{}}async function f(){try{const w=await Re(a.id,{avatarUrl:null});c?.(w)}catch{}}return r.jsxs("div",{className:"catDetailPanel",children:[r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:h(i.settingsGeneralAvatarLabel)}),r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[r.jsx("div",{className:"catAvatar",style:{width:40,height:40,fontSize:"0.85rem",cursor:"pointer",...a.avatarUrl?{backgroundImage:`url(${a.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:a.avatarColor?{background:a.avatarColor}:{}},onClick:()=>g(!0),role:"button",tabIndex:0,children:a.avatarUrl?"":fe(a.name)}),r.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[r.jsx("button",{type:"button",className:"primaryButton",onClick:()=>g(!0),children:a.avatarUrl?h(i.settingsGeneralAvatarChangeLabel):h(i.settingsGeneralAvatarUploadLabel)}),a.avatarUrl?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>{f()},children:h(i.settingsGeneralAvatarRemoveLabel)}):null]})]})]}),p?r.jsx(Jt,{onSave:w=>{k(w)},onClose:()=>g(!1)}):null,r.jsx(No,{busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:s,telegramDiagnostics:l,confirm:u})]})}function Gk({botBindings:e,busy:t,expandedCatId:a,memoryController:o,payload:n,registryController:s,setExpandedCatId:l,telegramDiagnostics:c,availableSurfaces:u,enabledSurfaces:p,onPayloadUpdate:g,confirm:h,CatsDetailPanelComponent:k}){const{t:f}=W(),[w,b]=d.useState(!1),m=n.chat.cats.filter(y=>y.status==="archived").length,C=w?n.chat.cats:n.chat.cats.filter(y=>y.status!=="archived"),v=_t(C,{bossCatIds:n.chat.bossCatId,archivedLast:!0});return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"contentCardHeader",children:[r.jsxs("div",{children:[r.jsx("p",{className:"sectionLabel",children:f(i.sharedSettingsCatsRegistrySectionLabel)}),r.jsx("h2",{children:n.chat.cats.length>0?f(i.sharedSettingsCatsRegistrySavedCatsLabel):f(i.sharedSettingsCatsRegistryNoCatsYetLabel)})]}),r.jsx("span",{className:"countBadge",children:C.length})]}),m>0?r.jsxs("label",{className:"fieldLabel fieldLabelInline",style:{marginBottom:4},children:[r.jsx("input",{type:"checkbox",checked:w,onChange:y=>b(y.target.checked)}),r.jsx("span",{children:f(i.sharedSettingsCatsRegistryShowArchivedLabel,{count:m})})]}):null,r.jsx("div",{className:"catList",children:v.length>0?v.map(y=>{const L=y.id===n.chat.bossCatId,x=a===y.id,T=e.filter(P=>P.catId===y.id),N=_c(y.status),A=y.skillProfile?Uc(y.skillProfile):i.sharedSettingsCatsRegistryDefaultSkillProfileLabel,R=Hc(y.mcpProfile);return r.jsxs("article",{className:"catCard",children:[r.jsxs("div",{className:"catCardTop",style:{cursor:"pointer"},onClick:()=>l(x?null:y.id),children:[r.jsxs("div",{children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[r.jsx("strong",{children:y.name}),L?r.jsx("span",{className:"statusChip statusChipAccent",children:f(i.sharedSettingsCatsRegistryBossCatLabel)}):null]}),r.jsx("p",{children:wc(y)}),y.products.length>0?r.jsx("div",{className:"chipRow",style:{marginTop:4},children:y.products.map(P=>{const I=Kc(P);return r.jsx("span",{className:"productBadge",children:I?f(I):P},P)})}):null]}),r.jsxs("div",{style:{display:"flex",alignSelf:"start",alignItems:"center",gap:8},children:[r.jsx("span",{className:y.status==="active"?"statusChip statusChipReady":"statusChip statusChipMuted",children:N?f(N):y.status}),y.status==="archived"?r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"chromeButton",type:"button",disabled:ce(t,"unarchive",y.id)||ce(t,"delete",y.id),onClick:P=>{P.stopPropagation(),s.onUnarchiveCat(y.id,y.name)},"data-tooltip":f(i.sharedSettingsCatsRegistryRecoverTooltip,{name:y.name}),children:r.jsx("span",{className:"srOnly",children:f(i.sharedSettingsCatsRegistryRecoverLabel)})}),r.jsx("button",{className:"chromeButton",type:"button",disabled:ce(t,"delete",y.id),onClick:P=>{P.stopPropagation(),s.onDeleteCat(y.id,y.name)},"data-tooltip":f(i.sharedSettingsCatsRegistryDeleteTooltip,{name:y.name}),children:"✕"})]}):r.jsx("button",{className:"chromeButton",type:"button",disabled:ce(t,"archive",y.id),onClick:P=>{P.stopPropagation(),s.onArchiveCat(y.id,y.name)},"data-tooltip":f(i.sharedSettingsCatsRegistryArchiveTooltip,{name:y.name}),children:"✕"})]})]}),r.jsxs("div",{className:"catMeta",children:[r.jsx("span",{children:A?f(A):y.skillProfile}),r.jsx("span",{children:R?f(R):y.mcpProfile}),r.jsx("span",{children:y.memory.updatedAt?f(i.sharedSettingsCatsRegistryMemorySavedLabel):f(i.sharedSettingsCatsRegistryNoMemoryYetLabel)}),T.length>0?r.jsx("span",{children:f(i.sharedSettingsCatsRegistryBotBindingCount,{count:T.length,pluralSuffix:T.length>1?"s":""})}):null]}),x?r.jsx(k,{busy:t,botBindings:e,cat:y,isBossCat:L,memoryController:o,registryController:s,telegramDiagnostics:c,availableSurfaces:u,enabledSurfaces:p,onPayloadUpdate:g,confirm:h}):null]},y.id)}):r.jsx("div",{className:"emptyStateCard",children:r.jsx("p",{children:f(i.sharedSettingsCatsRegistryEmptyStateHint)})})})]})}function _k(e){return r.jsx(Gk,{...e,CatsDetailPanelComponent:Hk})}function Kk(e,t){const a=new Set(e.map(o=>o.id));return t.find(o=>o.status==="active"&&!a.has(o.id))??null}function qk({payload:e,busy:t,onPayloadUpdate:a,onFeedback:o,onBusy:n,useSettingsCatsRegistryActionsHook:s}){const[l,c]=d.useState(null),{toasts:u,showToast:p}=at(),{dialog:g,confirm:h,handleClose:k}=It(),f=ve(),w=je(),b=f.pathname.endsWith("/cats/new"),{t:m}=W();d.useEffect(()=>{o("")},[]);const C=d.useCallback(S=>{S&&p(S)},[p]),v=s({expandedCatId:l,setExpandedCatId:c,onBusy:n,onFeedback:C,onPayloadUpdate:a,confirm:h}),{botForm:y,catForm:L,renameValue:x,setBotForm:T,setCatForm:N,setRenameValue:A,onCreateBinding:R,onCreateCat:P,performCreateCat:I,onDeleteBinding:O,onDeleteCat:E,onMakeBossCat:$,onMcpProfileChange:_,onArchiveCat:ee,onUnarchiveCat:B,onRenameCat:q,onSkillChange:F}=v,{botBindings:Q,telegramDiagnostics:me,telegramError:U}=Wc(e);d.useEffect(()=>{U&&C(U)},[U,C]);const j=Mc({expandedCatId:l,onBusy:n,onFeedback:C}),G=d.useMemo(()=>e.chat.cats.filter(S=>S.status==="active"),[e.chat.cats]),J=d.useMemo(()=>e.chat.cats.filter(S=>S.status==="archived"),[e.chat.cats]),X=G.length,oe=d.useMemo(()=>_t(G,{bossCatIds:e.chat.bossCatId}),[G,e.chat.bossCatId]),we=d.useMemo(()=>_t(J,{bossCatIds:null}),[J]),Ie=X>=e.chat.capabilities.maxCats,[xe,M]=d.useState(()=>e.chat.cats.filter(S=>S.status==="active").length===0&&e.chat.cats.some(S=>S.status==="archived")),[H,V]=d.useState(()=>oe[0]?.id??we[0]?.id??null),Se=X>0||we.length>0,z=b||!Se?"create":"view";d.useEffect(()=>{if(z!=="view")return;const S=H?e.chat.cats.find(te=>te.id===H)??null:null,K=S?.status==="archived"&&!xe;if(!S||K){const te=oe[0]??(xe?we[0]:null);te?V(te.id):(V(null),f.pathname.endsWith("/cats/new")||w("/settings/cats/new",{replace:!0}))}},[z,f.pathname,w,e.chat.cats,H,xe,oe,we]),d.useEffect(()=>{z==="view"&&H&&c(H)},[z,H]);const qe=d.useMemo(()=>({current:X}),[]),dt=d.useMemo(()=>({current:new Set(G.map(S=>S.id))}),[]);d.useEffect(()=>{if(X>qe.current){const S=dt.current,K=oe.find(te=>!S.has(te.id))??oe[oe.length-1];K&&V(K.id),f.pathname.endsWith("/cats/new")&&w("/settings/cats",{replace:!0})}qe.current=X,dt.current=new Set(G.map(S=>S.id))},[X,G,f.pathname,w,a,qe,dt,oe]);const St=S=>{V(S),f.pathname.endsWith("/cats/new")&&w("/settings/cats",{replace:!0})},Xt=()=>{Ie||w("/settings/cats/new")},D=d.useMemo(()=>H?e.chat.cats.find(S=>S.id===H)??null:null,[e.chat.cats,H]);d.useEffect(()=>{D?.status==="archived"&&M(!0)},[D]);const Lt=d.useRef(null);d.useEffect(()=>{if(z==="create"&&b){const S=Lt.current;S?.focus(),S?.select()}},[z,b]);const[Zt,Y]=d.useState(!1),[ke,De]=d.useState(null),[Ce,$e]=d.useState(null);d.useEffect(()=>{b||(De(null),$e(null))},[b]);const Pr=async S=>{if(Y(!1),z==="create"){De(S);return}if(D)try{const K=await Re(D.id,{avatarUrl:S});a(K)}catch{}},Ar=async()=>{if(z==="create"){De(null);return}if(D)try{const S=await Re(D.id,{avatarUrl:null});a(S)}catch{}},[Me,Rt]=d.useState(null),[xr,ut]=d.useState(!1);d.useEffect(()=>{if(!D){Rt(null);return}return Rt(ya(D.id)),An(D.id,Rt)},[D?.id]);const Tr=S=>{if(ut(!1),z==="create"){$e(S);return}D&&Dt(D.id,S)},Dr=()=>{if(z==="create"){$e(null);return}D&&Dt(D.id,null)},se=D?.status==="archived",ze=d.useCallback(async(S,K,te)=>{try{const We=await Re(S,K);return a(We),!0}catch(We){return C(Fe(We,te,m)),!1}},[a,m,C]),Nr=async()=>{const S=await I(),K=S?Kk(G,S.chat.cats):null;if(K){if(V(K.id),f.pathname.endsWith("/cats/new")&&w("/settings/cats",{replace:!0}),ke)try{const te=await Re(K.id,{avatarUrl:ke});a(te),De(null)}catch(te){De(null),C(Fe(te,m(i.settingsGeneralSaveAvatarError),m))}Ce&&(Dt(K.id,Ce),$e(null))}};return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"catsLayout catsLayoutSidePanel",children:[r.jsxs("nav",{className:"catsSelectorStrip",role:"tablist","aria-label":m(i.sharedSettingsCatsSelectCatAria),children:[oe.map(S=>{const K=z==="view"&&S.id===H,We=["catAvatar","catsSelectorAvatar",S.id===e.chat.bossCatId?"catsSelectorAvatarBoss":"",K?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":K,className:We,style:S.avatarUrl?{backgroundImage:`url(${S.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:S.avatarColor?{background:S.avatarColor}:void 0,onClick:()=>St(S.id),"data-tooltip":S.name,"aria-label":S.name,children:S.avatarUrl?null:fe(S.name)},S.id)}),r.jsx("button",{type:"button",className:["catAvatar","catsSelectorAvatar","catsSelectorNewAvatar",z==="create"?"catsSelectorAvatarActive":""].filter(Boolean).join(" "),onClick:Xt,disabled:Ie&&z!=="create","aria-label":m(i.sharedSettingsCatsAddNewCatLabel),"data-tooltip":m(Ie?i.sharedCatsCreateCatLimitReached:i.sharedSettingsCatsAddNewCatLabel),children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}),xe&&we.length>0?r.jsx("span",{className:"catsSelectorDivider","aria-hidden":"true"}):null,xe?we.map(S=>{const K=z==="view"&&S.id===H,te=["catAvatar","catsSelectorAvatar","catsSelectorAvatarArchived",K?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":K,className:te,style:S.avatarUrl?{backgroundImage:`url(${S.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:S.avatarColor?{background:S.avatarColor}:void 0,onClick:()=>St(S.id),"data-tooltip":`${S.name} (${m(i.workObjectStatusArchived)})`,"aria-label":`${S.name} (${m(i.workObjectStatusArchived)})`,children:S.avatarUrl?null:fe(S.name)},S.id)}):null,J.length>0?r.jsxs("label",{className:"catsSelectorArchiveToggle",children:[r.jsx("input",{type:"checkbox",checked:xe,onChange:S=>M(S.target.checked)}),r.jsx("span",{children:m(i.sharedSettingsCatsShowArchivedLabel,{count:J.length})})]}):null]}),r.jsx(ye,{className:"catsDetailCard",header:r.jsx(re,{title:z==="create"?m(i.sharedCatsCreateNewCat):D?r.jsxs(r.Fragment,{children:[D.name,D.id===e.chat.bossCatId?r.jsx("span",{className:"catsDetailBossTag",children:m(i.sharedCatInspectBossLabel)}):null,D.status==="archived"?r.jsx("span",{className:"catsDetailArchivedTag",children:m(i.workObjectStatusArchived)}):null]}):"",status:z==="view"&&D?r.jsx(Xe,{children:D.status==="active"?r.jsx("button",{type:"button",className:"secondaryButton",disabled:ce(t,"archive",D.id),onClick:()=>{ee(D.id,D.name)},children:m(i.sharedSettingsCatsArchiveLabel)}):r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:ce(t,"unarchive",D.id),onClick:()=>{B(D.id,D.name)},children:m(i.sharedSettingsCatsRegistryRecoverLabel)}),r.jsx("button",{type:"button",className:"dangerButton",disabled:ce(t,"delete",D.id),onClick:()=>{E(D.id,D.name)},children:m(i.sharedSettingsCatsDeleteLabel)})]})}):z==="create"?r.jsxs(Xe,{children:[X>0?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>w("/settings/cats",{replace:!0}),disabled:ce(t,"create"),children:m(i.sharedCatsCreateCancel)}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:!L.name.trim()||!L.provider.trim()||!L.model.trim()||Ie||ce(t,"create"),onClick:()=>{Nr()},children:ce(t,"create")?m(i.sharedSettingsCatsSaving):m(i.sharedCatsCreateSaveCat)})]}):null}),children:z==="create"?r.jsxs("div",{className:"catsDetailBody",children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsxs(be,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:m(i.settingsGeneralAvatarLabel)}),r.jsxs("div",{className:"catsIdentityAvatarRow",children:[r.jsxs("div",{className:"catsAvatarDock",children:[r.jsx("button",{type:"button",className:["catAvatar","catsIdentityAvatar",ke?"":"catsIdentityAvatarPlaceholder"].filter(Boolean).join(" "),style:ke?{backgroundImage:`url(${ke})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:void 0,onClick:()=>Y(!0),"aria-label":m(ke?i.settingsGeneralAvatarChangeLabel:i.settingsGeneralAvatarUploadLabel),"data-tooltip":m(ke?i.settingsGeneralAvatarChangeLabel:i.settingsGeneralAvatarUploadLabel),children:ke?"":L.name.trim()?fe(L.name):r.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),r.jsx("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),r.jsx("polyline",{points:"21 15 16 10 5 21"})]})}),r.jsx("span",{className:"catsAvatarCameraBadge","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),ke?r.jsx("button",{type:"button",className:"catsAvatarRemoveBadge",onClick:S=>{S.stopPropagation(),De(null)},"aria-label":m(i.settingsGeneralAvatarRemoveLabel),"data-tooltip":m(i.settingsGeneralAvatarRemoveLabel),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]}),r.jsxs("label",{className:"fieldLabelInline catsIdentityBossToggle",children:[r.jsx("input",{type:"checkbox",checked:L.makeBoss,onChange:async S=>{const K=S.target.checked;if(K&&e.chat.bossCatId){const te=e.chat.cats.find(jr=>jr.id===e.chat.bossCatId);if(!await h({title:m(i.sharedSettingsCatsChangeBossCatTitle),message:m(i.sharedSettingsCatsChangeBossCatMessage,{name:te?.name??(L.name.trim()||m(i.sharedCatsCreateNewCat))}),confirmLabel:m(i.sharedSettingsCatsConfirm)}))return}N({...L,makeBoss:K})}}),r.jsx("span",{children:m(i.sharedSettingsCatsMakeBossCatLabel,{name:L.name.trim()||m(i.sharedCatsCreateNewCat)})})]})]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:m(i.settingsGeneralNameLabel)}),r.jsx("input",{ref:Lt,className:"textInput",value:L.name,placeholder:m(i.sharedCatsCreateCatNamePlaceholder),onChange:S=>N({...L,name:S.target.value})})]}),r.jsxs("div",{className:"fieldLabel catsCoverField",children:[r.jsx("span",{children:m(i.sharedSettingsCatsCoverPhotoLabel)}),r.jsxs("div",{className:"catsCoverDock",children:[r.jsx("button",{type:"button",className:`catsCoverThumb${Ce?" catsCoverThumbLoaded":" catsCoverThumbPlaceholder"}`,style:Ce?{backgroundImage:`url(${Ce})`}:void 0,onClick:()=>ut(!0),"aria-label":m(Ce?i.sharedSettingsCatsChangeCoverPhotoLabel:i.sharedSettingsCatsUploadCoverPhotoLabel),"data-tooltip":m(Ce?i.sharedSettingsCatsChangeCoverLabel:i.sharedSettingsCatsUploadCoverLabel),children:Ce?null:r.jsxs("svg",{className:"catsCoverPlaceholderIcon",width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),r.jsx("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),r.jsx("polyline",{points:"21 15 16 10 5 21"})]})}),r.jsx("span",{className:"catsCoverCameraBadge","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),Ce?r.jsx("button",{type:"button",className:"catsCoverRemoveBadge",onClick:S=>{S.stopPropagation(),$e(null)},"aria-label":m(i.sharedSettingsCatsRemoveCoverLabel),"data-tooltip":m(i.sharedSettingsCatsRemoveCoverLabel),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]})]})]}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsSkillProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:qt.map(S=>r.jsx("button",{type:"button",className:(L.skillProfile||"chat-default")===S.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>N({...L,skillProfile:S.value}),children:m(S.label)},S.value))})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsMcpProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:Mt.map(S=>r.jsx("button",{type:"button",className:(L.mcpProfile||et)===S.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>N({...L,mcpProfile:S.value}),children:m(S.label)},S.value))})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Nt,{provider:L.provider,instance:L.instance,model:L.model,modelSelection:L.modelSelection,onTargetChange:S=>N({...L,provider:S.provider,instance:S.instance,model:S.model,modelSelection:S.modelSelection??null}),fetchProviderRegistry:At,fetchProviderModels:xt,fetchAdvancedProviderModels:Tt})})]}):D?r.jsxs("fieldset",{className:se?"catsDetailBody catsDetailBodyReadOnly":"catsDetailBody",disabled:se,children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsxs(be,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:m(i.settingsGeneralAvatarLabel)}),r.jsxs("div",{className:"catsIdentityAvatarRow",children:[r.jsxs("div",{className:"catsAvatarDock",children:[r.jsx("button",{type:"button",className:"catAvatar catsIdentityAvatar",style:D.avatarUrl?{backgroundImage:`url(${D.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:D.avatarColor?{background:D.avatarColor}:void 0,onClick:()=>{se||Y(!0)},disabled:se,"aria-label":D.avatarUrl?m(i.settingsGeneralAvatarChangeLabel):m(i.settingsGeneralAvatarUploadLabel),"data-tooltip":se?void 0:D.avatarUrl?m(i.settingsGeneralAvatarChangeLabel):m(i.settingsGeneralAvatarUploadLabel),children:D.avatarUrl?"":fe(D.name)}),se?null:r.jsx("span",{className:"catsAvatarCameraBadge","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),D.avatarUrl&&!se?r.jsx("button",{type:"button",className:"catsAvatarRemoveBadge",onClick:S=>{S.stopPropagation(),Ar()},"aria-label":m(i.settingsGeneralAvatarRemoveLabel),"data-tooltip":m(i.settingsGeneralAvatarRemoveLabel),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]}),!se&&D.id!==e.chat.bossCatId?r.jsxs("label",{className:"fieldLabelInline catsIdentityBossToggle",children:[r.jsx("input",{type:"checkbox",checked:!1,onChange:async S=>{S.target.checked&&(e.chat.bossCatId&&e.chat.bossCatId!==D.id&&(e.chat.cats.find(te=>te.id===e.chat.bossCatId),!await h({title:m(i.sharedSettingsCatsChangeBossCatTitle),message:m(i.sharedSettingsCatsChangeBossCatMessage,{name:D.name}),confirmLabel:m(i.sharedSettingsCatsConfirm)}))||await ze(D.id,{makeBoss:!0},m(i.sharedSettingsCatsSetBossCatError)))}}),r.jsx("span",{children:m(i.sharedSettingsCatsMakeBossCatLabel,{name:D.name})})]}):null]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:m(i.settingsGeneralNameLabel)}),r.jsx("input",{className:"textInput",defaultValue:D.name,placeholder:D.name,disabled:se,onBlur:async S=>{const K=S.currentTarget.value.trim();if(!K){S.currentTarget.value=D.name;return}if(K===D.name)return;await ze(D.id,{name:K},m(i.settingsGeneralUpdateNameError))||(S.currentTarget.value=D.name)}},D.id)]}),r.jsxs("div",{className:"fieldLabel catsCoverField",children:[r.jsx("span",{children:m(i.sharedSettingsCatsCoverPhotoLabel)}),r.jsxs("div",{className:"catsCoverDock",style:D.avatarColor?{"--cat-avatar-color":D.avatarColor}:void 0,children:[r.jsx("button",{type:"button",className:`catsCoverThumb${Me?" catsCoverThumbLoaded":""}`,style:Me?{backgroundImage:`url(${Me})`}:void 0,onClick:()=>{se||ut(!0)},disabled:se,"aria-label":m(Me?i.sharedSettingsCatsChangeCoverPhotoLabel:i.sharedSettingsCatsUploadCoverPhotoLabel),"data-tooltip":se?void 0:m(Me?i.sharedSettingsCatsChangeCoverLabel:i.sharedSettingsCatsUploadCoverLabel)}),se?null:r.jsx("span",{className:"catsCoverCameraBadge","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),Me&&!se?r.jsx("button",{type:"button",className:"catsCoverRemoveBadge",onClick:S=>{S.stopPropagation(),Dr()},"aria-label":m(i.sharedSettingsCatsRemoveCoverLabel),"data-tooltip":m(i.sharedSettingsCatsRemoveCoverLabel),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]})]})]}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsSkillProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:qt.map(S=>{const K=(D.skillProfile??"chat-default")===S.value;return r.jsx("button",{type:"button",className:K?"draftLeadPill draftLeadPillActive":"draftLeadPill",disabled:se||K,onClick:()=>{ze(D.id,{skillProfile:S.value},m(i.sharedSettingsCatsChangeSkillProfileError))},children:m(S.label)},S.value)})})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsMcpProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:Mt.map(S=>{const K=(D.mcpProfile??et)===S.value;return r.jsx("button",{type:"button",className:K?"draftLeadPill draftLeadPillActive":"draftLeadPill",disabled:se||K,onClick:()=>{ze(D.id,{mcpProfile:S.value},m(i.sharedSettingsCatsChangeMcpProfileError))},children:m(S.label)},S.value)})})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsChannelLabel),nested:!0}),children:r.jsx(No,{busy:t,botBindings:Q,cat:D,isBossCat:D.id===e.chat.bossCatId,memoryController:j,registryController:{botForm:y,renameValue:x,setBotForm:T,setRenameValue:A,onCreateBinding:R,onDeleteBinding:O,onMakeBossCat:$,onMcpProfileChange:_,onRenameCat:q,onSkillChange:F},telegramDiagnostics:me,confirm:h,sections:["telegram"]})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsMemoryLabel),nested:!0}),children:r.jsx(No,{busy:t,botBindings:Q,cat:D,isBossCat:D.id===e.chat.bossCatId,memoryController:j,registryController:{botForm:y,renameValue:x,setBotForm:T,setRenameValue:A,onCreateBinding:R,onDeleteBinding:O,onMakeBossCat:$,onMcpProfileChange:_,onRenameCat:q,onSkillChange:F},telegramDiagnostics:me,confirm:h,sections:["memory"]})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Nt,{provider:D.defaultExecutionTarget.provider??"",instance:D.defaultExecutionTarget.instance??"",model:D.defaultExecutionTarget.model??"",modelSelection:D.defaultModelSelection??null,onTargetChange:S=>{ze(D.id,{provider:S.provider,instance:S.instance||null,model:S.model||null,modelSelection:S.modelSelection??null},m(i.sharedSettingsCatsUpdateBrainError))},fetchProviderRegistry:At,fetchProviderModels:xt,fetchAdvancedProviderModels:Tt})})]}):null})]}),r.jsx(Bt,{dialog:g,onClose:k}),r.jsx(rt,{toasts:u}),Zt?r.jsx(Jt,{onSave:S=>{Pr(S)},onClose:()=>Y(!1),initialDataUrl:z==="create"?ke:D?.avatarUrl??null}):null,xr?r.jsx(Pn,{onSave:Tr,onClose:()=>ut(!1),initialDataUrl:z==="create"?Ce:Me}):null]})}function $k(e){return r.jsx(qk,{...e,useSettingsCatsRegistryActionsHook:Fc,CatsRegistryComponent:_k})}function zk(){const[e,t]=d.useState(null),[a,o]=d.useState(Nn),[,n]=d.useState("");return d.useEffect(()=>{let s=!1;return Ze().then(l=>{s||t(l)}).catch(()=>{}),()=>{s=!0}},[]),e?r.jsx($k,{payload:e,busy:a,onPayloadUpdate:t,onFeedback:n,onBusy:o}):r.jsx("div",{className:"catsCanvasPageBoot"})}function $c({ariaLabel:e,avatar:t,title:a,subtitle:o,actions:n,tabs:s,children:l}){return r.jsxs("div",{className:"entityDetailPane","aria-label":e,children:[r.jsxs("header",{className:"entityDetailHeader",children:[r.jsx("span",{className:"entityDetailAvatar",children:t}),r.jsxs("div",{className:"entityDetailHeading",children:[r.jsx("h1",{className:"entityDetailTitle",children:a}),o?r.jsx("p",{className:"entityDetailSubtitle",children:o}):null]}),n?r.jsx("div",{className:"entityDetailActions",children:n}):null]}),r.jsx("nav",{className:"entityDetailTabs","aria-label":e,children:s.map(c=>r.jsx(jt,{to:c.href,className:c.active?"entityDetailTab entityDetailTabActive":"entityDetailTab","aria-current":c.active?"page":void 0,children:c.label},c.key))}),r.jsx("section",{className:"entityDetailBody",children:l})]})}const zc=["members","clowders","cats","settings"],Vk={members:i.catteryHomeTabMembers,clowders:i.catteryHomeTabClowders,cats:i.catteryHomeTabCats,settings:i.catteryHomeTabSettings},Yk={members:i.catteryHomeEmptyMembers,clowders:i.catteryHomeEmptyClowders,cats:i.catteryHomeEmptyCats};function Qk(e){return typeof e=="string"&&zc.includes(e)}function Jk(e,t){return(e.lobby.catteries??[]).find(a=>a.id===t)??null}function Xk({cattery:e}){const t=e.avatarUrl?{backgroundImage:`url(${e.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0;return r.jsx("span",{className:"entityDetailAvatarBubble",style:t,children:e.avatarUrl?null:fe(e.name)})}function Zk({tab:e}){const{t}=W();return r.jsx("div",{className:"entityDetailLensStub",children:r.jsx("p",{children:t(Yk[e])})})}function eb(){const{t:e}=W();return r.jsx("div",{className:"entityDetailLensStub",children:r.jsx("p",{children:e(i.catteryHomeSettingsBody)})})}function tb({catteryId:e}){const{t}=W();return r.jsx("div",{className:"screen screenCentered entityComingSoonScreen",children:r.jsxs("section",{className:"entityComingSoonPanel",children:[r.jsx("h1",{children:t(i.catteryHomeNotFoundTitle)}),r.jsx("p",{className:"entityComingSoonBody",children:t(i.catteryHomeNotFoundBody,{catteryId:e})})]})})}function Xs({envelope:e}){const{t}=W(),a=dr(),o=a.catteryId??"",n=Jk(e,o),s=Qk(a.tab)?a.tab:"members";if(!n)return r.jsx(tb,{catteryId:o});const l=zc.map(c=>({key:c,label:t(Vk[c]),href:`/entities/catteries/${encodeURIComponent(n.id)}/${c}`,active:c===s}));return r.jsx($c,{ariaLabel:t(i.catteryHomeAriaLabel),avatar:r.jsx(Xk,{cattery:n}),title:n.name,tabs:l,children:s==="settings"?r.jsx(eb,{}):r.jsx(Zk,{tab:s})})}const Vc=["cats","settings"],ab={cats:i.clowderHomeTabCats,settings:i.clowderHomeTabSettings};function rb(e){return typeof e=="string"&&Vc.includes(e)}function ob(e,t){return(e.lobby.clowders??[]).find(a=>a.id===t)??null}function nb(e,t){return(e.lobby.catteries??[]).find(o=>o.id===t)?.name??null}function sb({clowder:e}){const t=e.avatarUrl?{backgroundImage:`url(${e.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0;return r.jsx("span",{className:"entityDetailAvatarBubble",style:t,children:e.avatarUrl?null:fe(e.name)})}function ib(){const{t:e}=W();return r.jsx("div",{className:"entityDetailLensStub",children:r.jsx("p",{children:e(i.clowderHomeEmptyCats)})})}function lb(){const{t:e}=W();return r.jsx("div",{className:"entityDetailLensStub",children:r.jsx("p",{children:e(i.clowderHomeSettingsBody)})})}function cb({clowderId:e}){const{t}=W();return r.jsx("div",{className:"screen screenCentered entityComingSoonScreen",children:r.jsxs("section",{className:"entityComingSoonPanel",children:[r.jsx("h1",{children:t(i.clowderHomeNotFoundTitle)}),r.jsx("p",{className:"entityComingSoonBody",children:t(i.clowderHomeNotFoundBody,{clowderId:e})})]})})}function Zs({envelope:e}){const{t}=W(),a=dr(),o=a.clowderId??"",n=ob(e,o),s=rb(a.tab)?a.tab:"cats";if(!n)return r.jsx(cb,{clowderId:o});const l=Vc.map(p=>({key:p,label:t(ab[p]),href:`/entities/clowders/${encodeURIComponent(n.id)}/${p}`,active:p===s})),c=n.parentCatteryId!==null?nb(e,n.parentCatteryId):null,u=n.parentCatteryId!==null?t(i.clowderHomeChipPartOf,{catteryName:c??n.parentCatteryId}):t(i.clowderHomeChipCrossUnit);return r.jsx($c,{ariaLabel:t(i.clowderHomeAriaLabel),avatar:r.jsx(sb,{clowder:n}),title:n.name,subtitle:u,tabs:l,children:s==="cats"?r.jsx(ib,{}):r.jsx(lb,{})})}function db({className:e,menuRef:t,style:a,onClick:o,children:n}){const s=r.jsx("div",{ref:t,className:e,style:a,onClick:o,children:n});return typeof document>"u"?s:Ut.createPortal(s,document.body)}function ub(e,t,a){const[o,n]=d.useState(void 0);if(d.useLayoutEffect(()=>{if(!a){n(void 0);return}function s(){const c=e.current;if(!c)return;const u=c.getBoundingClientRect(),p=t.current?.offsetWidth??136,g=t.current?.offsetHeight??0;let h=u.right+8;h+p>window.innerWidth-8&&(h=Math.max(8,u.left-p-8));let k=u.top-4;g>0&&k+g>window.innerHeight-8&&(k=Math.max(8,window.innerHeight-g-8)),n({position:"fixed",top:k,left:h})}s();const l=e.current?.closest(".sidebarScrollable");return window.addEventListener("resize",s),l?.addEventListener("scroll",s,{passive:!0}),()=>{window.removeEventListener("resize",s),l?.removeEventListener("scroll",s)}},[e,t,a]),!!a)return o??{position:"fixed",top:0,left:0,visibility:"hidden",pointerEvents:"none"}}function pb({cat:e,isBoss:t,isActive:a,hasTelegramBinding:o,dotClass:n,dotTitle:s,overflowOpen:l,catInitials:c,onDirectChat:u,onArchive:p,onOverflowToggle:g,onDirectMessage:h,terminalActionLabelKey:k,terminalActionDisabled:f}){const{t:w}=W(),b=d.useRef(null),m=d.useRef(null),C=ub(b,m,l);return r.jsxs("div",{className:["myCatRow",a?"myCatRowActive":"",l?"myCatRowOverflowOpen":""].filter(Boolean).join(" "),onClick:u,children:[r.jsxs("button",{className:a?"myCatItem myCatItemActive":"myCatItem",type:"button",onClick:v=>{v.stopPropagation(),u()},children:[r.jsxs("span",{className:t?"myCatAvatarWrap catAvatar catAvatarBoss":"myCatAvatarWrap catAvatar",style:e.avatarUrl?{backgroundImage:`url(${e.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:e.avatarColor?{background:e.avatarColor}:void 0,children:[e.avatarUrl?null:c(e.name),n?r.jsx("span",{className:n,"data-tooltip":s}):null]}),r.jsx("span",{className:"myCatName",children:e.name})]}),r.jsxs("span",{className:"myCatTrailing",children:[o?r.jsx("span",{className:"myCatTelegramIcon","data-tooltip":w(i.conversationSidebarTelegramBoundTooltip),"aria-label":w(i.conversationSidebarTelegramBoundTooltip),children:r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",children:r.jsx("path",{d:"M20.66 3.88 2.92 10.9a.73.73 0 0 0 .04 1.38l4.45 1.4 1.72 5.52a.78.78 0 0 0 1.24.37l2.48-2.02 4.87 3.6a.78.78 0 0 0 1.2-.46L21.7 4.76c.17-.7-.52-1.27-1.04-0.88ZM10.1 14.6l-.44 3.15-1.34-4.3 9.38-6.2Z"})})}):null,r.jsx("button",{ref:b,className:"myCatOverflowButton",type:"button",onClick:v=>{v.stopPropagation(),g()},children:"⋯"})]}),l?r.jsxs(db,{menuRef:m,className:"myCatOverflowMenu",style:C,onClick:v=>v.stopPropagation(),children:[h?r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",onClick:h,children:w(i.conversationSidebarDirectMessageButton)}),r.jsx("hr",{className:"myCatOverflowMenuDivider","aria-hidden":"true"})]}):null,r.jsx("button",{type:"button",disabled:f===!0,onClick:p,children:w(k??i.conversationSidebarArchiveButton)})]}):null]})}function Yc({iconKind:e}){const t={className:"myCatPlaceholderIcon",width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};return e==="groupPeople"?r.jsxs("svg",{...t,children:[r.jsx("circle",{cx:"6",cy:"10",r:"2.5"}),r.jsx("circle",{cx:"13",cy:"10",r:"2.5"}),r.jsx("path",{d:"M2 19v-1a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v1"}),r.jsx("line",{x1:"20",y1:"3",x2:"20",y2:"9"}),r.jsx("line",{x1:"23",y1:"6",x2:"17",y2:"6"})]}):e==="orgChart"?r.jsxs("svg",{...t,children:[r.jsx("rect",{x:"6",y:"9",width:"6",height:"4"}),r.jsx("rect",{x:"1",y:"18",width:"5",height:"4"}),r.jsx("rect",{x:"12",y:"18",width:"5",height:"4"}),r.jsx("line",{x1:"9",y1:"13",x2:"9",y2:"16"}),r.jsx("line",{x1:"3.5",y1:"16",x2:"14.5",y2:"16"}),r.jsx("line",{x1:"3.5",y1:"16",x2:"3.5",y2:"18"}),r.jsx("line",{x1:"14.5",y1:"16",x2:"14.5",y2:"18"}),r.jsx("line",{x1:"20",y1:"3",x2:"20",y2:"9"}),r.jsx("line",{x1:"23",y1:"6",x2:"17",y2:"6"})]}):r.jsxs("svg",{...t,children:[r.jsx("path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"}),r.jsx("circle",{cx:"9",cy:"7",r:"4"}),r.jsx("line",{x1:"19",y1:"8",x2:"19",y2:"14"}),r.jsx("line",{x1:"22",y1:"11",x2:"16",y2:"11"})]})}function hb({label:e,onClick:t,iconKind:a}){const o=typeof t=="function",n=()=>{o&&t?.()};return r.jsx("div",{className:["myCatRow","myCatRowPlaceholder",o?"":"myCatRowPlaceholderStatic"].filter(Boolean).join(" "),onClick:n,children:r.jsxs("button",{className:"myCatItem myCatItemPlaceholder",type:"button",onClick:s=>{s.stopPropagation(),n()},disabled:!o,children:[r.jsx("span",{className:"myCatAvatarWrap catAvatar catAvatarPlaceholder","aria-hidden":"true",children:r.jsx(Yc,{iconKind:a??"singlePerson"})}),r.jsx("span",{className:"myCatName myCatNamePlaceholder",children:e})]})})}function Zr({label:e,cats:t,bossCatId:a,payloadChannels:o,activeMyCatId:n,telegramBoundCatIds:s,helpers:l,overflowMenuOpenId:c,onOverflowMenuToggle:u,onDirectChatCat:p,onArchiveCat:g,emptyStatePlaceholder:h,onDirectMessageCat:k,terminalActionLabelKey:f,disableTerminalActionWhenDraft:w=!1,hideLabel:b=!1}){const{t:m}=W(),C=l.sortCatsForDisplay(t.filter(y=>y.status==="active"),{bossCatIds:a}),v=C.length===0&&h!=null;return r.jsxs("section",{className:b?"myCatsSection myCatsSectionHeaderless":"myCatsSection",children:[b?null:r.jsx("p",{className:"sectionLabel",children:e??m(i.conversationSidebarDirectMessagesLabel)}),r.jsxs("div",{className:"myCatsList",children:[v?r.jsx(hb,{label:h.label,onClick:h.onClick,iconKind:h.iconKind}):null,C.map(y=>{const L=y.id===a,x=n===y.id,T=s.has(y.id),N=l.findDirectLaneForCat(o,y.id),A=l.resolveMyCatStatusDot(N?.defaultRecipientLeaseStatus),R=l.statusDotClassName(A),P=l.statusDotLabel(A),I=P?m(P):"",O=`cat:${y.id}`,E=c===O,$=w&&!N;return r.jsx(pb,{cat:y,isBoss:L,isActive:x,hasTelegramBinding:T,dotClass:R,dotTitle:I,overflowOpen:E,catInitials:l.catInitials,onDirectChat:()=>p(y.id),onArchive:()=>{u(null),g(y.id)},onOverflowToggle:()=>u(E?null:O),onDirectMessage:k?()=>{u(null),k(y.id)}:void 0,terminalActionLabelKey:f,terminalActionDisabled:$},y.id)})]})]})}const st=3,eo=5;function ei(e){return{id:e.id,name:e.name,avatarUrl:e.avatarUrl,avatarColor:e.avatarColor,isBoss:e.isBoss}}function mb(e){return[...e].sort((t,a)=>{const o=t.isBoss?0:1,n=a.isBoss?0:1;return o!==n?o-n:t.createdAt.localeCompare(a.createdAt)})}function ti(e){return[...e].sort((t,a)=>{const o=t.createdAt.localeCompare(a.createdAt);if(o!==0)return o;const n=t.name.localeCompare(a.name);return n!==0?n:t.id.localeCompare(a.id)})}function ai(e){return{id:e.id,name:e.name,avatarUrl:e.avatarUrl,avatarColor:null,isBoss:!1}}function ri(e){return{id:e.id,name:e.name,avatarUrl:e.avatarUrl,avatarColor:null,isBoss:!1}}function gb({row:e}){const t=e.avatarUrl?{backgroundImage:`url(${e.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:e.avatarColor?{background:e.avatarColor}:void 0;return r.jsx("span",{className:e.isBoss?"entityIndexAvatar catAvatarBoss":"entityIndexAvatar",style:t,children:e.avatarUrl?null:fe(e.name)})}function fb(e){const t=mb(e.lobby.cats),a=ti(e.lobby.clowders??[]),o=ti(e.lobby.catteries??[]);return[{key:"cats",headerLabelKey:i.entityIndexColumnHeaderCats,rows:t.slice(0,st).map(ei),overflowAvatarRows:t.slice(st,st+eo).map(ei),totalCount:t.length,routePath:"/entities/cats",detailPathPrefix:"/entities/cats/",placeholderLabelKey:i.entitiesSidebarNewCat,placeholderIconKind:"singlePerson",placeholderTarget:"/settings/cats/new"},{key:"clowders",headerLabelKey:i.entityIndexColumnHeaderClowders,rows:a.slice(0,st).map(ai),overflowAvatarRows:a.slice(st,st+eo).map(ai),totalCount:a.length,routePath:"/entities/clowders",detailPathPrefix:"/entities/clowders/",placeholderLabelKey:i.entitiesSidebarNewClowder,placeholderIconKind:"groupPeople",placeholderTarget:null},{key:"catteries",headerLabelKey:i.entityIndexColumnHeaderCatteries,rows:o.slice(0,st).map(ri),overflowAvatarRows:o.slice(st,st+eo).map(ri),totalCount:o.length,routePath:"/entities/catteries",detailPathPrefix:"/entities/catteries/",placeholderLabelKey:i.entitiesSidebarNewCattery,placeholderIconKind:"orgChart",placeholderTarget:null}]}function Qc({envelope:e}){const{t}=W(),a=je(),o=fb(e);return r.jsx("div",{className:"entityIndexCards",children:o.map(n=>r.jsxs("div",{className:`entityIndexColumn entityIndexColumn--${n.key}`,children:[r.jsx("p",{className:"entityIndexColumnHeader",children:t(n.headerLabelKey)}),r.jsxs("div",{className:["contentCard","platformLobbyCard","platformLobbyCard--entity",`platformLobbyCard--entity-${n.key}`].join(" "),children:[r.jsx("button",{type:"button",className:"entityIndexCardLink","aria-label":t(i.entityIndexCardOpenCanvasAriaLabel,{label:t(n.headerLabelKey)}),onClick:()=>a(n.routePath)}),r.jsx("div",{className:"platformLobbyCardAccent"}),r.jsx("ul",{className:"entityIndexCardItems",children:Array.from({length:st},(s,l)=>{const c=n.rows[l];if(c)return r.jsx("li",{className:"entityIndexRow",children:r.jsxs("button",{type:"button",className:"entityIndexItem",onClick:()=>a(`${n.detailPathPrefix}${encodeURIComponent(c.id)}`),children:[r.jsx(gb,{row:c}),r.jsx("span",{className:"entityIndexName",children:c.name})]})},c.id);if(l===0&&n.totalCount===0){const u=n.placeholderTarget;return r.jsx("li",{className:"entityIndexRow entityIndexRowPlaceholder",children:r.jsxs("button",{type:"button",className:"entityIndexItem entityIndexItemPlaceholder",disabled:u===null,onClick:u===null?void 0:p=>{p.stopPropagation(),a(u)},children:[r.jsx("span",{className:"entityIndexAvatar entityIndexAvatarPlaceholder","aria-hidden":"true",children:r.jsx(Yc,{iconKind:n.placeholderIconKind})}),r.jsx("span",{className:"entityIndexName entityIndexNamePlaceholder",children:t(n.placeholderLabelKey)})]})},`${n.key}-placeholder`)}return r.jsx("li",{className:"entityIndexRow entityIndexRowEmpty","aria-hidden":"true"},`${n.key}-empty-${l}`)})}),n.totalCount>0?r.jsxs("div",{className:"entityIndexCardFooter",children:[n.overflowAvatarRows.length>0?r.jsx("div",{className:"entityIndexAvatarStack","aria-hidden":"true",children:n.overflowAvatarRows.map(s=>r.jsx("span",{className:"entityIndexAvatar entityIndexAvatarStacked",style:s.avatarUrl?{backgroundImage:`url(${s.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:s.avatarColor?{background:s.avatarColor}:void 0,children:s.avatarUrl?null:fe(s.name)},s.id))}):null,r.jsx("span",{className:"entityIndexCardTotal",children:t(i.entityIndexCardTotal,{count:n.totalCount})})]}):null]})]},n.key))})}function wb({envelope:e}){const{t}=W();return r.jsxs("div",{className:"entityCanvas entityCanvas--index","aria-label":t(i.entitiesShellAriaLabel),children:[r.jsx("header",{className:"entityCanvasHeader",children:r.jsxs("div",{children:[r.jsx("p",{className:"eyebrow",children:t(i.entityIndexEyebrow)}),r.jsx("h1",{className:"entityCanvasTitle",children:t(i.entityIndexTitle)})]})}),r.jsx(Qc,{envelope:e})]})}function kb(e,t){const a=e.createdAt.localeCompare(t.createdAt);if(a!==0)return a;const o=e.name.localeCompare(t.name);return o!==0?o:e.id.localeCompare(t.id)}function bb(e){return e.slice(0,10)||e}function oi({entry:e}){const t=e.avatarUrl?{backgroundImage:`url(${e.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0;return r.jsx("span",{className:"entityCanvasAvatar",style:t,children:e.avatarUrl?null:fe(e.name)})}function to({metrics:e,className:t}){return r.jsx("dl",{className:t,children:e.map(a=>r.jsxs("div",{children:[r.jsx("dt",{children:a.label}),r.jsx("dd",{children:a.value})]},a.key))})}function yb({relations:e,emptyLabel:t}){return e.length===0?r.jsx("p",{className:"entityCanvasDetailEmpty",children:t}):r.jsx("ul",{className:"entityCanvasRelationList",children:e.map(a=>r.jsxs("li",{children:[r.jsx("span",{children:a.label}),a.href?r.jsx(jt,{to:a.href,children:a.value}):r.jsx("strong",{children:a.value})]},a.key))})}function Jc({kind:e,entries:t,titleKey:a,eyebrowKey:o,emptyStateKey:n,ariaLabelKey:s,detailHeadingKey:l,relationHeadingKey:c,relationEmptyKey:u,openActionKey:p,totals:g}){const{t:h}=W(),k=d.useMemo(()=>[...t].sort(kb),[t]),[f,w]=d.useState(null),b=k.find(m=>m.id===f)??k[0]??null;return r.jsxs("div",{className:`entityCanvas entityCanvas--${e}`,"aria-label":h(s),children:[r.jsxs("header",{className:"entityCanvasHeader",children:[r.jsxs("div",{children:[r.jsx("p",{className:"eyebrow",children:h(o)}),r.jsx("h1",{className:"entityCanvasTitle",children:h(a)})]}),g.length>0?r.jsx(to,{metrics:g,className:"entityCanvasTotals"}):null]}),k.length===0?r.jsx("section",{className:"contentCard entityCanvasEmpty",children:r.jsx("p",{children:h(n)})}):r.jsxs("div",{className:"entityCanvasBody",children:[r.jsx("section",{className:"contentCard entityCanvasRegistry","aria-label":h(a),children:r.jsx("ul",{className:"entityCanvasRows",children:k.map(m=>r.jsx("li",{children:r.jsxs("button",{type:"button",className:b?.id===m.id?"entityCanvasRow entityCanvasRowActive":"entityCanvasRow",onClick:()=>w(m.id),"aria-current":b?.id===m.id?"page":void 0,children:[r.jsx(oi,{entry:m}),r.jsxs("span",{className:"entityCanvasRowText",children:[r.jsx("span",{className:"entityCanvasRowName",children:m.name}),r.jsx("span",{className:"entityCanvasRowSubtitle",children:m.subtitle})]}),r.jsx(to,{metrics:m.metrics,className:"entityCanvasRowMetrics"})]})},m.id))})}),b?r.jsxs("aside",{className:"contentCard entityCanvasDetail","aria-label":b.name,children:[r.jsxs("header",{className:"entityCanvasDetailHeader",children:[r.jsx(oi,{entry:b}),r.jsxs("div",{children:[r.jsx("p",{className:"eyebrow",children:h(l)}),r.jsx("h2",{children:b.name})]})]}),r.jsx(to,{metrics:[...b.detailMetrics,{key:"createdAt",label:h(i.entityCanvasCreatedLabel),value:bb(b.createdAt)},{key:"id",label:h(i.entityCanvasIdLabel),value:b.id}],className:"entityCanvasDetailMeta"}),r.jsxs("section",{className:"entityCanvasRelationSection",children:[r.jsx("h3",{children:h(c)}),r.jsx(yb,{relations:b.relations,emptyLabel:h(u)})]}),r.jsx(jt,{className:"secondaryButton entityCanvasOpenLink",to:b.routePath,children:h(p)})]}):null]})]})}function Xc(e){return e.filter(t=>Number(t.value)>0)}function vb({envelope:e}){const{t}=W(),a=new Map((e.lobby.catteries??[]).map(s=>[s.id,s])),o=e.lobby.clowders??[],n=o.map(s=>{const l=s.parentCatteryId?a.get(s.parentCatteryId)??null:null,c=l?.name??s.parentCatteryId;return{id:s.id,name:s.name,avatarUrl:s.avatarUrl,createdAt:s.createdAt,routePath:`/entities/clowders/${encodeURIComponent(s.id)}`,subtitle:c?t(i.clowderHomeChipPartOf,{catteryName:c}):t(i.clowderHomeChipCrossUnit),metrics:[{key:"cats",label:t(i.entityCanvasCatsLabel),value:s.catCount},{key:"members",label:t(i.entityCanvasMembersLabel),value:s.memberCount}],detailMetrics:[{key:"cats",label:t(i.entityCanvasCatsLabel),value:s.catCount},{key:"members",label:t(i.entityCanvasMembersLabel),value:s.memberCount}],relations:[c?{key:"parentCattery",label:t(i.entityCanvasParentCatteryLabel),value:c,href:l?`/entities/catteries/${encodeURIComponent(l.id)}`:void 0}:{key:"parentCattery",label:t(i.entityCanvasParentCatteryLabel),value:t(i.clowderHomeChipCrossUnit)}]}});return r.jsx(Jc,{kind:"clowders",entries:n,titleKey:i.clowdersListTitle,eyebrowKey:i.clowdersListEyebrow,emptyStateKey:i.clowdersListEmptyState,ariaLabelKey:i.clowdersCanvasAriaLabel,detailHeadingKey:i.entityCanvasSelectedClowderLabel,relationHeadingKey:i.entityCanvasOrganizationLabel,relationEmptyKey:i.entityCanvasNoOrganizationLabel,openActionKey:i.entityCanvasOpenClowderAction,totals:Xc([{key:"total",label:t(i.entityCanvasTotalLabel),value:o.length},{key:"cats",label:t(i.entityCanvasCatsLabel),value:o.reduce((s,l)=>s+l.catCount,0)},{key:"members",label:t(i.entityCanvasMembersLabel),value:o.reduce((s,l)=>s+l.memberCount,0)}])})}function Cb({envelope:e}){const{t}=W(),a=e.lobby.clowders??[],o=e.lobby.catteries??[],n=o.map(s=>{const l=a.filter(c=>c.parentCatteryId===s.id);return{id:s.id,name:s.name,avatarUrl:s.avatarUrl,createdAt:s.createdAt,routePath:`/entities/catteries/${encodeURIComponent(s.id)}`,subtitle:t(i.entityCanvasCatterySubtitle,{clowderCount:String(s.clowderCount),memberCount:String(s.memberCount)}),metrics:[{key:"members",label:t(i.entityCanvasMembersLabel),value:s.memberCount},{key:"clowders",label:t(i.entityCanvasClowdersLabel),value:s.clowderCount}],detailMetrics:[{key:"members",label:t(i.entityCanvasMembersLabel),value:s.memberCount},{key:"clowders",label:t(i.entityCanvasClowdersLabel),value:s.clowderCount},{key:"cats",label:t(i.entityCanvasCatsLabel),value:s.catCount}],relations:l.map(c=>({key:c.id,label:t(i.entityCanvasFormalClowderLabel),value:c.name,href:`/entities/clowders/${encodeURIComponent(c.id)}`}))}});return r.jsx(Jc,{kind:"catteries",entries:n,titleKey:i.catteriesListTitle,eyebrowKey:i.catteriesListEyebrow,emptyStateKey:i.catteriesListEmptyState,ariaLabelKey:i.catteriesCanvasAriaLabel,detailHeadingKey:i.entityCanvasSelectedCatteryLabel,relationHeadingKey:i.entityCanvasOrganizationLabel,relationEmptyKey:i.entityCanvasNoFormalClowdersLabel,openActionKey:i.entityCanvasOpenCatteryAction,totals:Xc([{key:"total",label:t(i.entityCanvasTotalLabel),value:o.length},{key:"members",label:t(i.entityCanvasMembersLabel),value:o.reduce((s,l)=>s+l.memberCount,0)},{key:"clowders",label:t(i.entityCanvasClowdersLabel),value:o.reduce((s,l)=>s+l.clowderCount,0)}])})}const Zc="cats.sidebar-open";function Sb(e){return e!=="collapsed"}function ed(e){if(!e)return!0;try{return Sb(e.getItem(Zc))}catch{return!0}}function td(e,t){if(e)try{e.setItem(Zc,t?"open":"collapsed")}catch{}}function Mn({slotKind:e}){const t=d.useRef(null),{guideCat:a,projection:o,dockSlotState:n,presentation:s,onDockedPointerDown:l,consumePillClickSuppression:c,clearPillClickSuppression:u,dragActive:p,undock:g}=an(),h=Jh(e),{t:k}=W(),f=d.useCallback(P=>{t.current=P,h(P)},[h]);if(!a)return null;const w=n[e],b=o.kind==="docked"&&o.slot===e,m=w.preview,C=ct(),v=k(i.sharedGuideCatPillOpenLabel,{guideCatName:C}),y=k(i.sharedGuideCatDockUndockLabel,{guideCatName:C}),L=Lb(a),x=P=>{l(P)},T=()=>{c()||s.toggle()},N=b?T:void 0,A=b?()=>{u()}:void 0,R=P=>{P.stopPropagation(),T()};return r.jsxs("div",{ref:f,className:`guideCatDockSlot guideCatDockSlot--${e}`,"data-active":b?"true":"false","data-preview":m?"true":"false","data-dragging":p?"true":"false",onClick:N,onPointerDown:A,children:[b?r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"guideCatPill guideCatPill--docked",onPointerDown:x,onClick:R,"aria-label":v,"data-tooltip":L,"data-tooltip-delay":"1000",children:r.jsx("img",{className:"guideCatPillAvatar",src:Ja,alt:"","aria-hidden":"true"})}),e==="workspace"?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"guideCatDockName",children:C}),r.jsx("button",{type:"button",className:"guideCatDockUndockSlot","aria-label":y,onClick:P=>{P.stopPropagation(),g()},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M4 4h8v8"}),r.jsx("path",{d:"M4 12 12 4"})]})})]}):null]}):null,m&&!b?r.jsx("div",{className:"guideCatDockSlotGhost","aria-hidden":"true",children:r.jsx("img",{className:"guideCatPillAvatar",src:Ja,alt:"","aria-hidden":"true"})}):null]})}function Lb(e){const t=ct(),a=br({provider:e.executionTarget.provider,instance:e.executionTarget.instance,model:e.executionTarget.model,modelSelection:e.modelSelection??null});return $l(t,a)}const Rb={setup:"/runtime/setup"},ad=Rb.setup,Pb=new Set(["ok","healthy","ready"]),Ab=new Set(["degraded","warming","starting"]),xb=new Set(["error","unavailable","failed"]);function Sr(e){if(!e||typeof e.reachable!="boolean")return"unknown";if(!e.reachable)return"unavailable";const t=typeof e.status=="string"?e.status.toLowerCase():"";return Pb.has(t)?"ready":Ab.has(t)?"degraded":xb.has(t)?"unavailable":e.reachable?"ready":"unknown"}function Tb(e){switch(e){case"ready":return"sharedRuntimeStatusTooltipReady";case"degraded":return"sharedRuntimeStatusTooltipDegraded";case"unavailable":return"sharedRuntimeStatusTooltipUnavailable";default:return"sharedRuntimeStatusTooltipUnknown"}}const Db={ready:"Cats Runtime is connected",degraded:"Cats Runtime is starting up",unavailable:"Cats Runtime is offline",unknown:"Checking Cats Runtime status…"};function En(e,t){return t?t(Tb(e)):Db[e]}function Nb(e){switch(e){case"ready":return"runtimeStatusDot isConnected";case"degraded":return"runtimeStatusDot isDegraded";case"unavailable":return"runtimeStatusDot isUnavailable";default:return"runtimeStatusDot isUnknown"}}function jb(e){switch(e){case"ready":return"lobbyIdentityDot lobbyIdentityDot--ok";case"unavailable":case"degraded":return"lobbyIdentityDot lobbyIdentityDot--warn";default:return"lobbyIdentityDot lobbyIdentityDot--warn"}}function rd({payload:e,accountMenuRef:t,runtimeFooterStatus:a,runtimeFooterLabel:o,onNavigateSettings:n,onNavigateRuntime:s,catInitials:l,accountMenuOpen:c,onAccountMenuToggle:u}){const{t:p}=W();return r.jsxs("div",{className:"sidebarFooter",ref:t,children:[r.jsxs("button",{type:"button",className:"sidebarFooterMainButton",onClick:n,"aria-label":p(i.conversationSidebarOpenAccountSettingsLabel),children:[r.jsx("div",{className:"profileBadge",style:e.ownerAvatarUrl?{backgroundImage:`url(${e.ownerAvatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0,children:e.ownerAvatarUrl?null:l(e.ownerDisplayName)}),r.jsx("div",{className:"sidebarFooterMeta",children:r.jsx("strong",{children:e.ownerDisplayName})})]}),r.jsxs("button",{type:"button",className:"sidebarFooterTrailing",onClick:s,"aria-label":p(i.conversationSidebarRuntimeStatusAriaLabel,{status:o}),"data-tooltip":o,children:[r.jsx("span",{className:Nb(a),"aria-hidden":"true"}),r.jsx("span",{className:"sidebarFooterRuntimeLink","aria-hidden":"true",children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M4 4h8v8"}),r.jsx("path",{d:"M4 12 12 4"})]})})]})]})}function Mb(e,t){d.useEffect(()=>{if(!e)return;function a(o){const n=o.target;if(!(n instanceof Element))return;const s=document.querySelector(".myCatOverflowMenu")??document.querySelector(".recentOverflowMenu"),l=n.closest(".myCatOverflowButton, .recentOverflowButton");s?.contains(n)||l||t(null)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[e,t])}function od(e){let t=null,a=!1,o=!1;return{record(n,s){const l=e.isInside(n);l?a||(t=o&&typeof s=="number"&&s>0?s-1:null):(o=!0,t=null),a=l},getExitDelta(n){return typeof n=="number"&&typeof t=="number"&&n>t?-(n-t):null},__resetForTests(){t=null,a=!1,o=!1}}}const nd=od({isInside:Sl});function Eb(e,t){nd.record(e,t)}function Ib(e){return nd.getExitDelta(e)}const Bb="no_dot",ao={catInitials:e=>fe(e),presentChannelTitle:e=>e,isVisibleCat:()=>!0,sortCatsForDisplay:(e,t)=>{const a=Array.isArray(t.bossCatIds)?t.bossCatIds[0]??null:t.bossCatIds??null;return[...e].sort((o,n)=>{const s=o.id===a?0:1,l=n.id===a?0:1;return s!==l?s-l:o.createdAt.localeCompare(n.createdAt)})},isDirectLaneSummary:()=>!1,findDirectLaneForCat:()=>null,resolveMyCatStatusDot:()=>Bb,statusDotClassName:()=>"",statusDotLabel:()=>null};function Fb(e){const t=e.lobby.cats.map(s=>({id:s.id,name:s.name,status:"active",avatarColor:s.avatarColor,avatarUrl:s.avatarUrl,createdAt:s.createdAt})),a=e.lobby.cats.find(s=>s.isBoss),o=a?a.id:null;return{payload:{ownerDisplayName:e.ownerDisplayName,ownerAvatarUrl:e.ownerAvatarUrl,runtime:e.runtime,runtimeSetup:e.runtimeSetup?{status:e.runtimeSetup.status}:null,chat:{bossCatId:o,cats:t,channels:[]}},cats:t,bossCatId:o}}function Ob({envelope:e,sidebarOpen:t,onToggleSidebar:a,onCollapsedSidebarClick:o,confirmDialog:n}){const{t:s}=W(),l=je(),c=d.useRef(null),[u,p]=d.useState(null);Mb(u,p);const h=iu("/entities/cats/:catId/*")?.params.catId??null,k=ve().pathname,f=k==="/entities/cats"||k.startsWith("/entities/cats/"),w=k==="/entities/clowders"||k.startsWith("/entities/clowders/"),b=k==="/entities/catteries"||k.startsWith("/entities/catteries/"),{payload:m,cats:C,bossCatId:v}=Fb(e),y=async _=>{const B=e.lobby.cats.find(F=>F.id===_)?.name??_;if(await n({title:s(i.sharedSettingsCatsArchiveConfirmTitle),message:s(i.sharedSettingsCatsArchiveWithTelegramConfirmMessage,{catName:B}),confirmLabel:s(i.sharedSettingsCatsArchiveLabel)})){try{await Re(_,{archive:!0})}catch(F){console.error("[EntitiesAppShellSidebar] archive failed",F);return}window.location.reload()}},L=Sr(m.runtime),x=En(L,s),N={platformShellSurface:e.lastProductSurface??"chat"},A=d.useCallback(()=>{const _=window.history.state,ee=Ib(_?.idx);ee!==null?l(ee):l("/lobby",{replace:!0})},[l]),R=r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"8",cy:"6",r:"2.5"}),r.jsx("path",{d:"M3 13.5a5 5 0 0 1 10 0"})]}),P=r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"5",cy:"6",r:"2"}),r.jsx("circle",{cx:"11",cy:"6",r:"2"}),r.jsx("path",{d:"M2 13a3 3 0 0 1 3-3h6a3 3 0 0 1 3 3"})]}),I=r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"6",y:"2",width:"4",height:"3",rx:"0.5"}),r.jsx("rect",{x:"1",y:"11",width:"4",height:"3",rx:"0.5"}),r.jsx("rect",{x:"11",y:"11",width:"4",height:"3",rx:"0.5"}),r.jsx("path",{d:"M8 5v3"}),r.jsx("path",{d:"M3 8h10"}),r.jsx("path",{d:"M3 8v3"}),r.jsx("path",{d:"M13 8v3"})]}),O={label:s(i.entitiesSidebarNewCat),onClick:()=>l("/settings/cats/new",{state:N}),iconKind:"singlePerson"},E={label:s(i.entitiesSidebarNewClowder),iconKind:"groupPeople"},$={label:s(i.entitiesSidebarNewCattery),iconKind:"orgChart"};return r.jsxs("aside",{className:t?"sidebar":"sidebar sidebarCollapsed","data-shell-surface":"entities",onClick:o,children:[r.jsxs("div",{className:"sidebarInner",children:[r.jsxs("div",{className:"brandRow",children:[r.jsxs("div",{className:"brandCopy entitiesBrandCopy",children:[r.jsx("button",{type:"button",className:"surfaceExitButton","aria-label":s(i.entitiesShellExitButtonAriaLabel),onClick:A,children:r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r.jsx("path",{d:"M10 3L5 8l5 5"})})}),r.jsx("span",{className:"brandLabel entitiesBrandLabel",children:s(i.entitiesShellBrandLabel)})]}),r.jsx("button",{className:"chromeButton",type:"button","aria-label":s(t?i.conversationSidebarCloseSidebarLabel:i.conversationSidebarOpenSidebarLabel),onClick:a,children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"1",y:"2",width:"14",height:"12",rx:"2"}),r.jsx("path",{d:"M6 2v12"})]})})]}),r.jsxs("div",{className:"sidebarScrollable",children:[r.jsxs("nav",{className:"navGroup","data-lens-kind":"cats",children:[r.jsxs("button",{type:"button",className:f?"navItem navItemActive":"navItem",onClick:()=>l("/entities/cats"),children:[r.jsx("span",{className:"navGlyph","aria-hidden":"true",children:R}),r.jsx("span",{className:"navLabel",children:s(i.entitiesSidebarSectionCats)})]}),r.jsx(Zr,{hideLabel:!0,cats:C,bossCatId:v,payloadChannels:[],activeMyCatId:h,telegramBoundCatIds:new Set,helpers:ao,overflowMenuOpenId:u,onOverflowMenuToggle:p,onDirectChatCat:_=>l(`/entities/cats/${encodeURIComponent(_)}`),onArchiveCat:_=>{y(_)},emptyStatePlaceholder:O,onDirectMessageCat:_=>l(Rn(mr("chat"),_))})]}),r.jsxs("nav",{className:"navGroup","data-lens-kind":"clowders",children:[r.jsxs("button",{type:"button",className:w?"navItem navItemActive":"navItem",onClick:()=>l("/entities/clowders"),children:[r.jsx("span",{className:"navGlyph","aria-hidden":"true",children:P}),r.jsx("span",{className:"navLabel",children:s(i.entitiesSidebarSectionClowders)})]}),r.jsx(Zr,{hideLabel:!0,cats:[],bossCatId:null,payloadChannels:[],activeMyCatId:null,telegramBoundCatIds:new Set,helpers:ao,overflowMenuOpenId:null,onOverflowMenuToggle:()=>{},onDirectChatCat:()=>{},onArchiveCat:()=>{},emptyStatePlaceholder:E})]}),r.jsxs("nav",{className:"navGroup","data-lens-kind":"catteries",children:[r.jsxs("button",{type:"button",className:b?"navItem navItemActive":"navItem",onClick:()=>l("/entities/catteries"),children:[r.jsx("span",{className:"navGlyph","aria-hidden":"true",children:I}),r.jsx("span",{className:"navLabel",children:s(i.entitiesSidebarSectionCatteries)})]}),r.jsx(Zr,{hideLabel:!0,cats:[],bossCatId:null,payloadChannels:[],activeMyCatId:null,telegramBoundCatIds:new Set,helpers:ao,overflowMenuOpenId:null,onOverflowMenuToggle:()=>{},onDirectChatCat:()=>{},onArchiveCat:()=>{},emptyStatePlaceholder:$})]})]})]}),r.jsx(Mn,{slotKind:"workspace"}),r.jsx(rd,{payload:m,accountMenuOpen:!1,accountMenuRef:c,runtimeFooterStatus:L,runtimeFooterLabel:x,onAccountMenuToggle:()=>{},onNavigateSettings:()=>l("/settings/general",{state:N}),onNavigateRuntime:()=>l("/settings/runtime",{state:N}),catInitials:fe})]})}function Wb({envelope:e}){const[t,a]=d.useState(()=>ed(typeof window>"u"?null:window.localStorage)),{dialog:o,confirm:n,handleClose:s}=It();d.useEffect(()=>{td(typeof window>"u"?null:window.localStorage,t)},[t]);const l=d.useCallback(()=>{a(u=>!u)},[]),c=d.useCallback(u=>{if(t)return;const p=u.target;p.closest('button, a, input, textarea, select, [role="button"]')||p.closest(".accountMenu")||a(!0)},[t]);return r.jsxs("div",{className:t?"screen claudeShell":"screen claudeShell claudeShellSidebarCollapsed",children:[r.jsx(Ob,{envelope:e,sidebarOpen:t,onToggleSidebar:l,onCollapsedSidebarClick:c,confirmDialog:n}),r.jsx("main",{className:"canvas",children:r.jsx(rl,{})}),r.jsx(Bt,{dialog:o,onClose:s})]})}function Ub(e,t){return e.filter(a=>a.installState!=="available"&&(a.settings?.length??0)>0).flatMap(a=>(a.settings??[]).map(o=>({...o,label:lh(a.id,o,t),productId:a.id})))}function Hb({title:e,children:t}){return r.jsxs("section",{className:"settingsContent",children:[r.jsx("header",{className:"settingsHeader",children:r.jsx("h1",{children:e})}),r.jsx("div",{className:"settingsBody",children:t})]})}const sd=od({isInside:xa});function Gb(e,t){sd.record(e,t)}function _b(e){return sd.getExitDelta(e)}function Kb(e){return{payload:{ownerDisplayName:e.ownerDisplayName,ownerAvatarUrl:e.ownerAvatarUrl,runtime:e.runtime,runtimeSetup:e.runtimeSetup?{status:e.runtimeSetup.status}:null,chat:{bossCatId:null,cats:[],channels:[]}}}}function qb({envelope:e,settingsPayload:t,sidebarOpen:a,onToggleSidebar:o,onCollapsedSidebarClick:n}){const{t:s}=W(),l=je(),c=d.useRef(null),u=Dn(),p=t??e,g=Ub(p.products,s),h=ve().pathname,k=d.useCallback(()=>{const L=window.history.state,x=_b(L?.idx);x!==null?l(x):l("/lobby",{replace:!0})},[l]),f=L=>h===L||h.startsWith(`${L}/`),w=h==="/settings/cats"||h==="/settings/cats/new",b=f("/settings/assistants"),{payload:m}=Kb(p),C=Sr(m.runtime),v=En(C,s),y=L=>L?"navItem navItemActive":"navItem";return r.jsxs("aside",{className:a?"sidebar":"sidebar sidebarCollapsed","data-shell-surface":"settings",onClick:n,children:[r.jsxs("div",{className:"sidebarInner",children:[r.jsxs("div",{className:"brandRow",children:[r.jsxs("div",{className:"brandCopy settingsBrandCopy",children:[r.jsx("button",{type:"button",className:"surfaceExitButton","aria-label":s(i.settingsShellCloseButtonLabel),onClick:k,children:r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r.jsx("path",{d:"M10 3L5 8l5 5"})})}),r.jsx("span",{className:"brandLabel settingsBrandLabel",children:s(i.settingsShellHeading)})]}),r.jsx("button",{className:"chromeButton",type:"button","aria-label":s(a?i.conversationSidebarCloseSidebarLabel:i.conversationSidebarOpenSidebarLabel),onClick:o,children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"1",y:"2",width:"14",height:"12",rx:"2"}),r.jsx("path",{d:"M6 2v12"})]})})]}),r.jsxs("div",{className:"sidebarScrollable",children:[r.jsx("nav",{className:"navGroup",children:r.jsx("button",{type:"button",className:y(f("/settings/general")),onClick:()=>l("/settings/general"),children:r.jsx("span",{className:"navLabel",children:s(i.settingsShellSectionGeneral)})})}),r.jsx("p",{className:"settingsSidebarGroupHeading",children:s(i.settingsShellSectionCats)}),r.jsxs("nav",{className:"navGroup settingsSidebarGroupNav",children:[r.jsx("button",{type:"button",className:y(w),onClick:()=>l("/settings/cats"),children:r.jsx("span",{className:"navLabel",children:s(i.settingsShellSubsectionMyCats)})}),r.jsx("button",{type:"button",className:y(b),onClick:()=>l("/settings/assistants"),children:r.jsx("span",{className:"navLabel",children:s(i.settingsShellSubsectionAssistants)})})]}),g.length>0?r.jsx("nav",{className:"navGroup",children:g.map(L=>r.jsx("button",{type:"button",className:y(f(L.path)),onClick:()=>l(L.path),children:r.jsx("span",{className:"navLabel",children:L.label})},`${L.productId}:${L.id}`))}):null,r.jsxs("nav",{className:"navGroup",children:[r.jsx("button",{type:"button",className:y(f("/settings/apps")),onClick:()=>l("/settings/apps"),children:r.jsx("span",{className:"navLabel",children:s(i.settingsShellSectionApps)})}),u?r.jsx("button",{type:"button",className:y(f("/settings/desktop")),onClick:()=>l("/settings/desktop"),children:r.jsx("span",{className:"navLabel",children:s(i.settingsShellSectionDesktop)})}):null,r.jsx("button",{type:"button",className:y(f("/settings/runtime")),onClick:()=>l("/settings/runtime"),children:r.jsx("span",{className:"navLabel",children:s(i.settingsShellSectionRuntime)})}),r.jsx("button",{type:"button",className:y(f("/settings/data")),onClick:()=>l("/settings/data"),children:r.jsx("span",{className:"navLabel",children:s(i.settingsShellSectionData)})})]})]})]}),r.jsx(Mn,{slotKind:"workspace"}),r.jsx(rd,{payload:m,accountMenuOpen:!1,accountMenuRef:c,runtimeFooterStatus:C,runtimeFooterLabel:v,onAccountMenuToggle:()=>{},onNavigateSettings:()=>{},onNavigateRuntime:()=>l("/settings/runtime"),catInitials:fe})]})}const $b=5e3;function zb(e,t){const a=Date.parse(e.metadata.generatedAt),o=Date.parse(t.metadata.generatedAt);return Number.isNaN(a)||Number.isNaN(o)?!0:o>=a}function Vb(e,t){return{...e,runtime:t.runtime,runtimeSetup:t.runtimeSetup,metadata:t.metadata,bootstrapAttemptId:t.bootstrapAttemptId}}function Yb({envelope:e}){const[t,a]=d.useState({status:"loading"}),[o,n]=d.useState(0),s=d.useRef(a);s.current=a;const[l,c]=d.useState(()=>ed(typeof window>"u"?null:window.localStorage));d.useEffect(()=>{td(typeof window>"u"?null:window.localStorage,l)},[l]);const u=d.useCallback(()=>{c(w=>!w)},[]);d.useEffect(()=>{const w=new AbortController;return a(b=>b.status==="ready"?b:{status:"loading"}),Ze(w.signal).then(b=>{w.signal.aborted||a({status:"ready",payload:b})}).catch(b=>{if(w.signal.aborted)return;const m=b instanceof Error?b.message:null;a({status:"error",message:m})}),()=>{w.abort()}},[o]);const p=t.status==="ready";d.useEffect(()=>{if(!p||typeof window>"u"||typeof document>"u")return;let w=null;const b=()=>{if(document.visibilityState==="hidden"||w)return;const y=new AbortController;w=y,Ze(y.signal).then(L=>{y.signal.aborted||s.current(x=>x.status!=="ready"||!zb(x.payload,L)?x:{status:"ready",payload:Vb(x.payload,L)})}).catch(()=>{}).finally(()=>{w===y&&(w=null)})},m=window.setInterval(b,$b),C=()=>b(),v=()=>{document.visibilityState==="visible"&&b()};return window.addEventListener("focus",C),document.addEventListener("visibilitychange",v),()=>{w&&w.abort(),window.clearInterval(m),window.removeEventListener("focus",C),document.removeEventListener("visibilitychange",v)}},[p]);const g=d.useCallback(w=>{a({status:"ready",payload:w})},[]),h=d.useCallback(()=>{n(w=>w+1)},[]),k=d.useCallback(w=>{if(l)return;const b=w.target;b.closest('button, a, input, textarea, select, [role="button"]')||b.closest(".accountMenu")||c(!0)},[l]),f=t.status==="ready"?t.payload:null;return r.jsxs("div",{className:l?"screen claudeShell":"screen claudeShell claudeShellSidebarCollapsed",children:[r.jsx(qb,{envelope:e,settingsPayload:f,sidebarOpen:l,onToggleSidebar:u,onCollapsedSidebarClick:k}),r.jsx("main",{className:"canvas",children:r.jsx(rl,{context:{loadState:t,onPayloadUpdate:g,onRetryLoad:h}})})]})}function Qb(){return window.catsDesktopHost??null}async function id(e){const t=Qb();t?.updatePlatformShell&&await t.updatePlatformShell(e)}async function Jb(e){await id({bootstrapAttemptId:e.bootstrapAttemptId??null,setupCompleteAt:e.setupCompleteAt??null,products:e.products})}function Xb({memoryForm:e,setMemoryForm:t,busyCreating:a,onSubmit:o,onClose:n}){const{t:s}=W();d.useEffect(()=>{function c(u){u.key==="Escape"&&!a&&n()}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[a,n]);const l=!e.content.trim()||a;return r.jsx("div",{className:"catsDialogOverlay",onClick:()=>{a||n()},children:r.jsxs("form",{className:"catsDialog",onClick:c=>c.stopPropagation(),onSubmit:c=>{c.preventDefault(),!l&&o()},children:[r.jsx("p",{className:"catsDialogTitle",children:s(i.sharedMemoryEditorDialogTitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedMemoryEditorDialogCategoryLabel)}),r.jsx("select",{className:"textInput",value:e.category,onChange:c=>t({...e,category:c.target.value}),children:jn.map(c=>r.jsx("option",{value:c.value,children:s(c.label)},c.value))})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedMemoryEditorDialogContentLabel)}),r.jsx("textarea",{className:"textInput",rows:4,placeholder:s(i.sharedMemoryEditorDialogMemoryPlaceholder),value:e.content,onChange:c=>t({...e,content:c.target.value}),autoFocus:!0})]}),r.jsxs("div",{className:"catsDialogActions",children:[r.jsx("button",{className:"confirmCancelButton",type:"button",onClick:n,disabled:a,children:s(i.sharedMemoryEditorDialogCancel)}),r.jsx("button",{className:"primaryButton",type:"submit",disabled:l,children:s(a?i.sharedMemoryEditorDialogSaving:i.sharedMemoryEditorDialogAdd)})]})]})})}function Zb({botForm:e,setBotForm:t,busyCreating:a,onSubmit:o,onClose:n}){const{t:s}=W();d.useEffect(()=>{function c(u){u.key==="Escape"&&!a&&n()}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[a,n]);const l=!e.botName.trim()||!e.botToken.trim()||a;return r.jsx("div",{className:"catsDialogOverlay",onClick:()=>{a||n()},children:r.jsxs("form",{className:"catsDialog",onClick:c=>c.stopPropagation(),onSubmit:c=>{c.preventDefault(),!l&&o()},children:[r.jsx("p",{className:"catsDialogTitle",children:s(i.sharedTelegramConnectDialogTitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedTelegramConnectBotUsernameLabel)}),r.jsx("input",{className:"textInput",placeholder:s(i.sharedTelegramConnectBotUsernamePlaceholder),value:e.botName,onChange:c=>t({...e,botName:c.target.value}),autoFocus:!0})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedTelegramConnectBotTokenLabel)}),r.jsx("input",{className:"textInput",type:"password",placeholder:s(i.sharedTelegramConnectBotTokenPlaceholder),value:e.botToken,onChange:c=>t({...e,botToken:c.target.value})})]}),r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedTelegramConnectModeLabel)}),r.jsxs("div",{className:"skillPills",children:[r.jsx("button",{type:"button",className:e.inboundMode==="polling"?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>t({...e,inboundMode:"polling"}),children:s(i.sharedTelegramConnectModePolling)}),r.jsx("button",{type:"button",className:e.inboundMode==="webhook"?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>t({...e,inboundMode:"webhook"}),children:s(i.sharedTelegramConnectModeWebhook)})]})]}),e.inboundMode==="webhook"?r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(i.sharedTelegramConnectWebhookSecretLabel)}),r.jsx("input",{className:"textInput",placeholder:s(i.sharedTelegramConnectWebhookSecretPlaceholder),value:e.webhookSecret,onChange:c=>t({...e,webhookSecret:c.target.value})})]}):null,r.jsxs("div",{className:"catsDialogActions",children:[r.jsx("button",{className:"confirmCancelButton",type:"button",onClick:n,disabled:a,children:s(i.sharedTelegramConnectCancel)}),r.jsx("button",{className:"primaryButton",type:"submit",disabled:l,children:s(a?i.sharedTelegramConnectConnecting:i.sharedTelegramConnectConnect)})]})]})})}function jo({busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:s,telegramDiagnostics:l,confirm:c,sections:u}){const p=F=>u===void 0||u.includes(F),{botForm:g,renameValue:h,setBotForm:k,setRenameValue:f,onCreateBinding:w,onDeleteBinding:b,onMakeBossCat:m,onMcpProfileChange:C,onRenameCat:v,onSkillChange:y}=s,{memoryForm:L,setMemoryForm:x,catMemory:T,memoryLoading:N,addMemory:A,deleteMemory:R}=n,P=t.filter(F=>F.catId===a.id),I=l?.bindings.filter(F=>F.bindingId&&P.some(Q=>Q.id===F.bindingId))??[],O=a.status==="active"&&en(a.products,"chat",{fallback:gr()}),{t:E}=W(),[$,_]=d.useState(!1);d.useEffect(()=>{P.length>0&&_(!1)},[P.length]),d.useEffect(()=>{_(!1)},[a.id]);const[ee,B]=d.useState(!1),q=d.useRef(T.length);return d.useEffect(()=>{const F=q.current;ee&&T.length>F&&B(!1),q.current=T.length},[ee,T.length]),d.useEffect(()=>{B(!1)},[a.id]),r.jsxs(r.Fragment,{children:[p("rename")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:E(i.sharedSettingsCatsRenameLabel)}),r.jsxs("div",{style:{display:"flex",gap:8},children:[r.jsx("input",{className:"textInput",placeholder:a.name,value:h,onChange:F=>f(F.target.value),onFocus:()=>f(a.name)}),r.jsx("button",{className:"primaryButton",type:"button",disabled:!h.trim()||h.trim()===a.name||ce(e,"rename",a.id),onClick:()=>{v(a.id)},children:ce(e,"rename",a.id)?E(i.sharedSettingsCatsSaving):E(i.sharedSettingsCatsSave)})]})]}):null,p("makeBoss")&&!o?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:E(i.sharedSettingsCatsBossCatLabel)}),r.jsx("button",{className:"primaryButton",type:"button",disabled:ce(e,"makeBoss",a.id),onClick:async()=>{(!c||await c({title:E(i.sharedSettingsCatsChangeBossCatTitle),message:E(i.sharedSettingsCatsChangeBossCatMessage,{name:a.name}),confirmLabel:E(i.sharedSettingsCatsConfirm)}))&&m(a.id)},children:ce(e,"makeBoss",a.id)?E(i.sharedSettingsCatsSetting):E(i.sharedSettingsCatsMakeBossCatLabel,{name:a.name})})]}):null,p("skill")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:E(i.sharedSettingsCatsSkillProfileLabel)}),r.jsx("div",{className:"skillPills",children:qt.map(F=>r.jsx("button",{className:(a.skillProfile??"chat-default")===F.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",type:"button",disabled:ce(e,"skill",a.id),onClick:()=>{y(a.id,F.value)},children:E(F.label)},F.value))})]}):null,p("mcp")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:E(i.sharedSettingsCatsMcpProfileLabel)}),r.jsx("div",{className:"skillPills",children:Mt.map(F=>r.jsx("button",{className:(a.mcpProfile??et)===F.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",type:"button",disabled:ce(e,"skill",a.id),onClick:()=>{C(a.id,F.value)},children:E(F.label)},F.value))})]}):null,p("telegram")?P.length>0?r.jsx("div",{className:"catsTelegramConnected",children:P.map(F=>{const Q=I.find(me=>me.bindingId===F.id);return r.jsxs("div",{className:"catsTelegramBinding",children:[r.jsxs("div",{className:"catsTelegramBindingHeader",children:[r.jsx("span",{className:"catsTelegramBindingIcon","aria-hidden":"true",children:r.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:r.jsx("path",{d:"M20.66 3.88 2.92 10.9a.73.73 0 0 0 .04 1.38l4.45 1.4 1.72 5.52a.78.78 0 0 0 1.24.37l2.48-2.02 4.87 3.6a.78.78 0 0 0 1.2-.46L21.7 4.76c.17-.7-.52-1.27-1.04-0.88ZM10.1 14.6l-.44 3.15-1.34-4.3 9.38-6.2Z"})})}),r.jsxs("strong",{className:"catsTelegramBindingName","data-tooltip":`@${F.botName}`,children:["@",F.botName]}),r.jsx("button",{type:"button",className:"catsInlineDeleteButton catsTelegramBindingDisconnect",disabled:nr(e,"delete",F.id),onClick:()=>{b(F.id)},"aria-label":E(i.sharedSettingsCatsDisconnectTelegramAria),"data-tooltip":E(i.sharedSettingsCatsDisconnectTelegram),children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),r.jsxs("div",{className:"catsTelegramBindingMeta",children:[r.jsx("span",{className:`statusChip ${F.status==="active"?"statusChipReady":"statusChipMuted"}`,children:F.status==="active"?E(i.sharedSettingsCatsBindingActive):E(i.sharedSettingsCatsBindingDisabled)}),r.jsx("span",{className:"statusChip statusChipMuted",children:F.inboundMode==="polling"?E(i.sharedSettingsCatsBindingPollingMode):E(i.sharedSettingsCatsBindingWebhookMode)}),Q?.lastInboundAt?r.jsx("span",{className:"catsTelegramBindingLastInbound",children:E(i.sharedSettingsCatsLastInboundLabel,{time:qc(Q.lastInboundAt)})}):null]})]},F.id)})}):r.jsxs("div",{className:"catsTelegramEmpty",children:[r.jsx("button",{type:"button",className:"primaryButton",disabled:!O,onClick:()=>_(!0),children:E(i.sharedSettingsCatsConnectTelegramLabel)}),O?null:r.jsx("p",{className:"catsTelegramHint",children:E(i.sharedSettingsCatsUnavailableHint)})]}):null,$?r.jsx(Zb,{botForm:g,setBotForm:k,busyCreating:nr(e,"create"),onSubmit:()=>{w(a.id)},onClose:()=>_(!1)}):null,p("memory")?r.jsxs("div",{className:"catsMemorySection",children:[T.length>0?r.jsx("div",{className:"memoryList",children:T.map(F=>r.jsx(ey,{busy:e,memoryRecord:F,onDelete:()=>{R(a.id,F.id)}},F.id))}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:Kt(e,"create"),onClick:()=>B(!0),children:E(i.sharedSettingsCatsAddMemoryLabel)})]}):null,ee?r.jsx(Xb,{memoryForm:L,setMemoryForm:x,busyCreating:Kt(e,"create"),onSubmit:()=>{A(a.id)},onClose:()=>B(!1)}):null]})}function ey({busy:e,memoryRecord:t,onDelete:a}){const{t:o}=W(),n=Gc(t.category);return r.jsxs("div",{className:"memoryItem",children:[r.jsxs("div",{children:[r.jsx("span",{className:"statusChip statusChipMuted",children:n?o(n):t.category}),r.jsxs("span",{style:{marginLeft:8},children:[t.content.slice(0,100),t.content.length>100?"...":""]})]}),r.jsx("button",{className:"catsInlineDeleteButton",type:"button",disabled:Kt(e,"delete",t.id),onClick:a,"aria-label":o(i.sharedSettingsCatsDeleteMemoryAria),children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})}function ty({busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:s,telegramDiagnostics:l,onPayloadUpdate:c,confirm:u}){const[p,g]=d.useState(!1),{t:h}=W();async function k(w){g(!1);try{const b=await Re(a.id,{avatarUrl:w});c?.(b)}catch{}}async function f(){try{const w=await Re(a.id,{avatarUrl:null});c?.(w)}catch{}}return r.jsxs("div",{className:"catDetailPanel",children:[r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:h(i.settingsGeneralAvatarLabel)}),r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[r.jsx("div",{className:"catAvatar",style:{width:40,height:40,fontSize:"0.85rem",cursor:"pointer",...a.avatarUrl?{backgroundImage:`url(${a.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:a.avatarColor?{background:a.avatarColor}:{}},onClick:()=>g(!0),role:"button",tabIndex:0,children:a.avatarUrl?"":fe(a.name)}),r.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[r.jsx("button",{type:"button",className:"primaryButton",onClick:()=>g(!0),children:a.avatarUrl?h(i.settingsGeneralAvatarChangeLabel):h(i.settingsGeneralAvatarUploadLabel)}),a.avatarUrl?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>{f()},children:h(i.settingsGeneralAvatarRemoveLabel)}):null]})]})]}),p?r.jsx(Jt,{onSave:w=>{k(w)},onClose:()=>g(!1)}):null,r.jsx(jo,{busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:s,telegramDiagnostics:l,confirm:u})]})}function ay({botBindings:e,busy:t,expandedCatId:a,memoryController:o,payload:n,registryController:s,setExpandedCatId:l,telegramDiagnostics:c,availableSurfaces:u,enabledSurfaces:p,onPayloadUpdate:g,confirm:h,SettingsCatsDetailPanelComponent:k}){const{t:f}=W(),[w,b]=d.useState(!1),m=n.chat.cats.filter(y=>y.status==="archived").length,C=w?n.chat.cats:n.chat.cats.filter(y=>y.status!=="archived"),v=_t(C,{bossCatIds:n.chat.bossCatId,archivedLast:!0});return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"contentCardHeader",children:[r.jsxs("div",{children:[r.jsx("p",{className:"sectionLabel",children:f(i.sharedSettingsCatsRegistrySectionLabel)}),r.jsx("h2",{children:n.chat.cats.length>0?f(i.sharedSettingsCatsRegistrySavedCatsLabel):f(i.sharedSettingsCatsRegistryNoCatsYetLabel)})]}),r.jsx("span",{className:"countBadge",children:C.length})]}),m>0?r.jsxs("label",{className:"fieldLabel fieldLabelInline",style:{marginBottom:4},children:[r.jsx("input",{type:"checkbox",checked:w,onChange:y=>b(y.target.checked)}),r.jsx("span",{children:f(i.sharedSettingsCatsRegistryShowArchivedLabel,{count:m})})]}):null,r.jsx("div",{className:"catList",children:v.length>0?v.map(y=>{const L=y.id===n.chat.bossCatId,x=a===y.id,T=e.filter(P=>P.catId===y.id),N=_c(y.status),A=y.skillProfile?Uc(y.skillProfile):i.sharedSettingsCatsRegistryDefaultSkillProfileLabel,R=Hc(y.mcpProfile);return r.jsxs("article",{className:"catCard",children:[r.jsxs("div",{className:"catCardTop",style:{cursor:"pointer"},onClick:()=>l(x?null:y.id),children:[r.jsxs("div",{children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[r.jsx("strong",{children:y.name}),L?r.jsx("span",{className:"statusChip statusChipAccent",children:f(i.sharedSettingsCatsRegistryBossCatLabel)}):null]}),r.jsx("p",{children:wc(y)}),y.products.length>0?r.jsx("div",{className:"chipRow",style:{marginTop:4},children:y.products.map(P=>{const I=Kc(P);return r.jsx("span",{className:"productBadge",children:I?f(I):P},P)})}):null]}),r.jsxs("div",{style:{display:"flex",alignSelf:"start",alignItems:"center",gap:8},children:[r.jsx("span",{className:y.status==="active"?"statusChip statusChipReady":"statusChip statusChipMuted",children:N?f(N):y.status}),y.status==="archived"?r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"chromeButton",type:"button",disabled:ce(t,"unarchive",y.id)||ce(t,"delete",y.id),onClick:P=>{P.stopPropagation(),s.onUnarchiveCat(y.id,y.name)},"data-tooltip":f(i.sharedSettingsCatsRegistryRecoverTooltip,{name:y.name}),children:r.jsx("span",{className:"srOnly",children:f(i.sharedSettingsCatsRegistryRecoverLabel)})}),r.jsx("button",{className:"chromeButton",type:"button",disabled:ce(t,"delete",y.id),onClick:P=>{P.stopPropagation(),s.onDeleteCat(y.id,y.name)},"data-tooltip":f(i.sharedSettingsCatsRegistryDeleteTooltip,{name:y.name}),children:"✕"})]}):r.jsx("button",{className:"chromeButton",type:"button",disabled:ce(t,"archive",y.id),onClick:P=>{P.stopPropagation(),s.onArchiveCat(y.id,y.name)},"data-tooltip":f(i.sharedSettingsCatsRegistryArchiveTooltip,{name:y.name}),children:"✕"})]})]}),r.jsxs("div",{className:"catMeta",children:[r.jsx("span",{children:A?f(A):y.skillProfile}),r.jsx("span",{children:R?f(R):y.mcpProfile}),r.jsx("span",{children:y.memory.updatedAt?f(i.sharedSettingsCatsRegistryMemorySavedLabel):f(i.sharedSettingsCatsRegistryNoMemoryYetLabel)}),T.length>0?r.jsx("span",{children:f(i.sharedSettingsCatsRegistryBotBindingCount,{count:T.length,pluralSuffix:T.length>1?"s":""})}):null]}),x?r.jsx(k,{busy:t,botBindings:e,cat:y,isBossCat:L,memoryController:o,registryController:s,telegramDiagnostics:c,availableSurfaces:u,enabledSurfaces:p,onPayloadUpdate:g,confirm:h}):null]},y.id)}):r.jsx("div",{className:"emptyStateCard",children:r.jsx("p",{children:f(i.sharedSettingsCatsRegistryEmptyStateHint)})})})]})}function ry(e){return r.jsx(ay,{...e,SettingsCatsDetailPanelComponent:ty})}function oy(e,t){const a=new Set(e.map(o=>o.id));return t.find(o=>o.status==="active"&&!a.has(o.id))??null}function ny({payload:e,busy:t,onPayloadUpdate:a,onFeedback:o,onBusy:n,useSettingsCatsRegistryActionsHook:s}){const[l,c]=d.useState(null),{toasts:u,showToast:p}=at(),{dialog:g,confirm:h,handleClose:k}=It(),f=ve(),w=je(),b=f.pathname.endsWith("/cats/new"),{t:m}=W();d.useEffect(()=>{o("")},[]);const C=d.useCallback(S=>{S&&p(S)},[p]),v=s({expandedCatId:l,setExpandedCatId:c,onBusy:n,onFeedback:C,onPayloadUpdate:a,confirm:h}),{botForm:y,catForm:L,renameValue:x,setBotForm:T,setCatForm:N,setRenameValue:A,onCreateBinding:R,onCreateCat:P,performCreateCat:I,onDeleteBinding:O,onDeleteCat:E,onMakeBossCat:$,onMcpProfileChange:_,onArchiveCat:ee,onUnarchiveCat:B,onRenameCat:q,onSkillChange:F}=v,{botBindings:Q,telegramDiagnostics:me,telegramError:U}=Wc(e);d.useEffect(()=>{U&&C(U)},[U,C]);const j=Mc({expandedCatId:l,onBusy:n,onFeedback:C}),G=d.useMemo(()=>e.chat.cats.filter(S=>S.status==="active"),[e.chat.cats]),J=d.useMemo(()=>e.chat.cats.filter(S=>S.status==="archived"),[e.chat.cats]),X=G.length,oe=d.useMemo(()=>_t(G,{bossCatIds:e.chat.bossCatId}),[G,e.chat.bossCatId]),we=d.useMemo(()=>_t(J,{bossCatIds:null}),[J]),Ie=X>=e.chat.capabilities.maxCats,[xe,M]=d.useState(()=>e.chat.cats.filter(S=>S.status==="active").length===0&&e.chat.cats.some(S=>S.status==="archived")),[H,V]=d.useState(()=>oe[0]?.id??we[0]?.id??null),Se=X>0||we.length>0,z=b||!Se?"create":"view";d.useEffect(()=>{if(z!=="view")return;const S=H?e.chat.cats.find(te=>te.id===H)??null:null,K=S?.status==="archived"&&!xe;if(!S||K){const te=oe[0]??(xe?we[0]:null);te?V(te.id):(V(null),f.pathname.endsWith("/cats/new")||w("/settings/cats/new",{replace:!0}))}},[z,f.pathname,w,e.chat.cats,H,xe,oe,we]),d.useEffect(()=>{z==="view"&&H&&c(H)},[z,H]);const qe=d.useMemo(()=>({current:X}),[]),dt=d.useMemo(()=>({current:new Set(G.map(S=>S.id))}),[]);d.useEffect(()=>{if(X>qe.current){const S=dt.current,K=oe.find(te=>!S.has(te.id))??oe[oe.length-1];K&&V(K.id),f.pathname.endsWith("/cats/new")&&w("/settings/cats",{replace:!0})}qe.current=X,dt.current=new Set(G.map(S=>S.id))},[X,G,f.pathname,w,a,qe,dt,oe]);const St=S=>{V(S),f.pathname.endsWith("/cats/new")&&w("/settings/cats",{replace:!0})},Xt=()=>{Ie||w("/settings/cats/new")},D=d.useMemo(()=>H?e.chat.cats.find(S=>S.id===H)??null:null,[e.chat.cats,H]);d.useEffect(()=>{D?.status==="archived"&&M(!0)},[D]);const Lt=d.useRef(null);d.useEffect(()=>{if(z==="create"&&b){const S=Lt.current;S?.focus(),S?.select()}},[z,b]);const[Zt,Y]=d.useState(!1),[ke,De]=d.useState(null),[Ce,$e]=d.useState(null);d.useEffect(()=>{b||(De(null),$e(null))},[b]);const Pr=async S=>{if(Y(!1),z==="create"){De(S);return}if(D)try{const K=await Re(D.id,{avatarUrl:S});a(K)}catch{}},Ar=async()=>{if(z==="create"){De(null);return}if(D)try{const S=await Re(D.id,{avatarUrl:null});a(S)}catch{}},[Me,Rt]=d.useState(null),[xr,ut]=d.useState(!1);d.useEffect(()=>{if(!D){Rt(null);return}return Rt(ya(D.id)),An(D.id,Rt)},[D?.id]);const Tr=S=>{if(ut(!1),z==="create"){$e(S);return}D&&Dt(D.id,S)},Dr=()=>{if(z==="create"){$e(null);return}D&&Dt(D.id,null)},se=D?.status==="archived",ze=d.useCallback(async(S,K,te)=>{try{const We=await Re(S,K);return a(We),!0}catch(We){return C(Fe(We,te,m)),!1}},[a,m,C]),Nr=async()=>{const S=await I(),K=S?oy(G,S.chat.cats):null;if(K){if(V(K.id),f.pathname.endsWith("/cats/new")&&w("/settings/cats",{replace:!0}),ke)try{const te=await Re(K.id,{avatarUrl:ke});a(te),De(null)}catch(te){De(null),C(Fe(te,m(i.settingsGeneralSaveAvatarError),m))}Ce&&(Dt(K.id,Ce),$e(null))}};return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"catsLayout catsLayoutSidePanel",children:[r.jsxs("nav",{className:"catsSelectorStrip",role:"tablist","aria-label":m(i.sharedSettingsCatsSelectCatAria),children:[oe.map(S=>{const K=z==="view"&&S.id===H,We=["catAvatar","catsSelectorAvatar",S.id===e.chat.bossCatId?"catsSelectorAvatarBoss":"",K?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":K,className:We,style:S.avatarUrl?{backgroundImage:`url(${S.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:S.avatarColor?{background:S.avatarColor}:void 0,onClick:()=>St(S.id),"data-tooltip":S.name,"aria-label":S.name,children:S.avatarUrl?null:fe(S.name)},S.id)}),r.jsx("button",{type:"button",className:["catAvatar","catsSelectorAvatar","catsSelectorNewAvatar",z==="create"?"catsSelectorAvatarActive":""].filter(Boolean).join(" "),onClick:Xt,disabled:Ie&&z!=="create","aria-label":m(i.sharedSettingsCatsAddNewCatLabel),"data-tooltip":m(Ie?i.sharedCatsCreateCatLimitReached:i.sharedSettingsCatsAddNewCatLabel),children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}),xe&&we.length>0?r.jsx("span",{className:"catsSelectorDivider","aria-hidden":"true"}):null,xe?we.map(S=>{const K=z==="view"&&S.id===H,te=["catAvatar","catsSelectorAvatar","catsSelectorAvatarArchived",K?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":K,className:te,style:S.avatarUrl?{backgroundImage:`url(${S.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:S.avatarColor?{background:S.avatarColor}:void 0,onClick:()=>St(S.id),"data-tooltip":`${S.name} (${m(i.workObjectStatusArchived)})`,"aria-label":`${S.name} (${m(i.workObjectStatusArchived)})`,children:S.avatarUrl?null:fe(S.name)},S.id)}):null,J.length>0?r.jsxs("label",{className:"catsSelectorArchiveToggle",children:[r.jsx("input",{type:"checkbox",checked:xe,onChange:S=>M(S.target.checked)}),r.jsx("span",{children:m(i.sharedSettingsCatsShowArchivedLabel,{count:J.length})})]}):null]}),r.jsx(ye,{className:"catsDetailCard",header:r.jsx(re,{title:z==="create"?m(i.sharedCatsCreateNewCat):D?r.jsxs(r.Fragment,{children:[D.name,D.id===e.chat.bossCatId?r.jsx("span",{className:"catsDetailBossTag",children:m(i.sharedCatInspectBossLabel)}):null,D.status==="archived"?r.jsx("span",{className:"catsDetailArchivedTag",children:m(i.workObjectStatusArchived)}):null]}):"",status:z==="view"&&D?r.jsx(Xe,{children:D.status==="active"?r.jsx("button",{type:"button",className:"secondaryButton",disabled:ce(t,"archive",D.id),onClick:()=>{ee(D.id,D.name)},children:m(i.sharedSettingsCatsArchiveLabel)}):r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:ce(t,"unarchive",D.id),onClick:()=>{B(D.id,D.name)},children:m(i.sharedSettingsCatsRegistryRecoverLabel)}),r.jsx("button",{type:"button",className:"dangerButton",disabled:ce(t,"delete",D.id),onClick:()=>{E(D.id,D.name)},children:m(i.sharedSettingsCatsDeleteLabel)})]})}):z==="create"?r.jsxs(Xe,{children:[X>0?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>w("/settings/cats",{replace:!0}),disabled:ce(t,"create"),children:m(i.sharedCatsCreateCancel)}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:!L.name.trim()||!L.provider.trim()||!L.model.trim()||Ie||ce(t,"create"),onClick:()=>{Nr()},children:ce(t,"create")?m(i.sharedSettingsCatsSaving):m(i.sharedCatsCreateSaveCat)})]}):null}),children:z==="create"?r.jsxs("div",{className:"catsDetailBody",children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsxs(be,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:m(i.settingsGeneralAvatarLabel)}),r.jsxs("div",{className:"catsIdentityAvatarRow",children:[r.jsxs("div",{className:"catsAvatarDock",children:[r.jsx("button",{type:"button",className:["catAvatar","catsIdentityAvatar",ke?"":"catsIdentityAvatarPlaceholder"].filter(Boolean).join(" "),style:ke?{backgroundImage:`url(${ke})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:void 0,onClick:()=>Y(!0),"aria-label":m(ke?i.settingsGeneralAvatarChangeLabel:i.settingsGeneralAvatarUploadLabel),"data-tooltip":m(ke?i.settingsGeneralAvatarChangeLabel:i.settingsGeneralAvatarUploadLabel),children:ke?"":L.name.trim()?fe(L.name):r.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),r.jsx("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),r.jsx("polyline",{points:"21 15 16 10 5 21"})]})}),r.jsx("span",{className:"catsAvatarCameraBadge","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),ke?r.jsx("button",{type:"button",className:"catsAvatarRemoveBadge",onClick:S=>{S.stopPropagation(),De(null)},"aria-label":m(i.settingsGeneralAvatarRemoveLabel),"data-tooltip":m(i.settingsGeneralAvatarRemoveLabel),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]}),r.jsxs("label",{className:"fieldLabelInline catsIdentityBossToggle",children:[r.jsx("input",{type:"checkbox",checked:L.makeBoss,onChange:async S=>{const K=S.target.checked;if(K&&e.chat.bossCatId){const te=e.chat.cats.find(jr=>jr.id===e.chat.bossCatId);if(!await h({title:m(i.sharedSettingsCatsChangeBossCatTitle),message:m(i.sharedSettingsCatsChangeBossCatMessage,{name:te?.name??(L.name.trim()||m(i.sharedCatsCreateNewCat))}),confirmLabel:m(i.sharedSettingsCatsConfirm)}))return}N({...L,makeBoss:K})}}),r.jsx("span",{children:m(i.sharedSettingsCatsMakeBossCatLabel,{name:L.name.trim()||m(i.sharedCatsCreateNewCat)})})]})]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:m(i.settingsGeneralNameLabel)}),r.jsx("input",{ref:Lt,className:"textInput",value:L.name,placeholder:m(i.sharedCatsCreateCatNamePlaceholder),onChange:S=>N({...L,name:S.target.value})})]}),r.jsxs("div",{className:"fieldLabel catsCoverField",children:[r.jsx("span",{children:m(i.sharedSettingsCatsCoverPhotoLabel)}),r.jsxs("div",{className:"catsCoverDock",children:[r.jsx("button",{type:"button",className:`catsCoverThumb${Ce?" catsCoverThumbLoaded":" catsCoverThumbPlaceholder"}`,style:Ce?{backgroundImage:`url(${Ce})`}:void 0,onClick:()=>ut(!0),"aria-label":m(Ce?i.sharedSettingsCatsChangeCoverPhotoLabel:i.sharedSettingsCatsUploadCoverPhotoLabel),"data-tooltip":m(Ce?i.sharedSettingsCatsChangeCoverLabel:i.sharedSettingsCatsUploadCoverLabel),children:Ce?null:r.jsxs("svg",{className:"catsCoverPlaceholderIcon",width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),r.jsx("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),r.jsx("polyline",{points:"21 15 16 10 5 21"})]})}),r.jsx("span",{className:"catsCoverCameraBadge","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),Ce?r.jsx("button",{type:"button",className:"catsCoverRemoveBadge",onClick:S=>{S.stopPropagation(),$e(null)},"aria-label":m(i.sharedSettingsCatsRemoveCoverLabel),"data-tooltip":m(i.sharedSettingsCatsRemoveCoverLabel),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]})]})]}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsSkillProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:qt.map(S=>r.jsx("button",{type:"button",className:(L.skillProfile||"chat-default")===S.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>N({...L,skillProfile:S.value}),children:m(S.label)},S.value))})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsMcpProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:Mt.map(S=>r.jsx("button",{type:"button",className:(L.mcpProfile||et)===S.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>N({...L,mcpProfile:S.value}),children:m(S.label)},S.value))})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Nt,{provider:L.provider,instance:L.instance,model:L.model,modelSelection:L.modelSelection,onTargetChange:S=>N({...L,provider:S.provider,instance:S.instance,model:S.model,modelSelection:S.modelSelection??null}),fetchProviderRegistry:At,fetchProviderModels:xt,fetchAdvancedProviderModels:Tt})})]}):D?r.jsxs("fieldset",{className:se?"catsDetailBody catsDetailBodyReadOnly":"catsDetailBody",disabled:se,children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsxs(be,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:m(i.settingsGeneralAvatarLabel)}),r.jsxs("div",{className:"catsIdentityAvatarRow",children:[r.jsxs("div",{className:"catsAvatarDock",children:[r.jsx("button",{type:"button",className:"catAvatar catsIdentityAvatar",style:D.avatarUrl?{backgroundImage:`url(${D.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:D.avatarColor?{background:D.avatarColor}:void 0,onClick:()=>{se||Y(!0)},disabled:se,"aria-label":D.avatarUrl?m(i.settingsGeneralAvatarChangeLabel):m(i.settingsGeneralAvatarUploadLabel),"data-tooltip":se?void 0:D.avatarUrl?m(i.settingsGeneralAvatarChangeLabel):m(i.settingsGeneralAvatarUploadLabel),children:D.avatarUrl?"":fe(D.name)}),se?null:r.jsx("span",{className:"catsAvatarCameraBadge","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),D.avatarUrl&&!se?r.jsx("button",{type:"button",className:"catsAvatarRemoveBadge",onClick:S=>{S.stopPropagation(),Ar()},"aria-label":m(i.settingsGeneralAvatarRemoveLabel),"data-tooltip":m(i.settingsGeneralAvatarRemoveLabel),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]}),!se&&D.id!==e.chat.bossCatId?r.jsxs("label",{className:"fieldLabelInline catsIdentityBossToggle",children:[r.jsx("input",{type:"checkbox",checked:!1,onChange:async S=>{S.target.checked&&(e.chat.bossCatId&&e.chat.bossCatId!==D.id&&(e.chat.cats.find(te=>te.id===e.chat.bossCatId),!await h({title:m(i.sharedSettingsCatsChangeBossCatTitle),message:m(i.sharedSettingsCatsChangeBossCatMessage,{name:D.name}),confirmLabel:m(i.sharedSettingsCatsConfirm)}))||await ze(D.id,{makeBoss:!0},m(i.sharedSettingsCatsSetBossCatError)))}}),r.jsx("span",{children:m(i.sharedSettingsCatsMakeBossCatLabel,{name:D.name})})]}):null]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:m(i.settingsGeneralNameLabel)}),r.jsx("input",{className:"textInput",defaultValue:D.name,placeholder:D.name,disabled:se,onBlur:async S=>{const K=S.currentTarget.value.trim();if(!K){S.currentTarget.value=D.name;return}if(K===D.name)return;await ze(D.id,{name:K},m(i.settingsGeneralUpdateNameError))||(S.currentTarget.value=D.name)}},D.id)]}),r.jsxs("div",{className:"fieldLabel catsCoverField",children:[r.jsx("span",{children:m(i.sharedSettingsCatsCoverPhotoLabel)}),r.jsxs("div",{className:"catsCoverDock",style:D.avatarColor?{"--cat-avatar-color":D.avatarColor}:void 0,children:[r.jsx("button",{type:"button",className:`catsCoverThumb${Me?" catsCoverThumbLoaded":""}`,style:Me?{backgroundImage:`url(${Me})`}:void 0,onClick:()=>{se||ut(!0)},disabled:se,"aria-label":m(Me?i.sharedSettingsCatsChangeCoverPhotoLabel:i.sharedSettingsCatsUploadCoverPhotoLabel),"data-tooltip":se?void 0:m(Me?i.sharedSettingsCatsChangeCoverLabel:i.sharedSettingsCatsUploadCoverLabel)}),se?null:r.jsx("span",{className:"catsCoverCameraBadge","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),Me&&!se?r.jsx("button",{type:"button",className:"catsCoverRemoveBadge",onClick:S=>{S.stopPropagation(),Dr()},"aria-label":m(i.sharedSettingsCatsRemoveCoverLabel),"data-tooltip":m(i.sharedSettingsCatsRemoveCoverLabel),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]})]})]}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsSkillProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:qt.map(S=>{const K=(D.skillProfile??"chat-default")===S.value;return r.jsx("button",{type:"button",className:K?"draftLeadPill draftLeadPillActive":"draftLeadPill",disabled:se||K,onClick:()=>{ze(D.id,{skillProfile:S.value},m(i.sharedSettingsCatsChangeSkillProfileError))},children:m(S.label)},S.value)})})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsMcpProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:Mt.map(S=>{const K=(D.mcpProfile??et)===S.value;return r.jsx("button",{type:"button",className:K?"draftLeadPill draftLeadPillActive":"draftLeadPill",disabled:se||K,onClick:()=>{ze(D.id,{mcpProfile:S.value},m(i.sharedSettingsCatsChangeMcpProfileError))},children:m(S.label)},S.value)})})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsChannelLabel),nested:!0}),children:r.jsx(jo,{busy:t,botBindings:Q,cat:D,isBossCat:D.id===e.chat.bossCatId,memoryController:j,registryController:{botForm:y,renameValue:x,setBotForm:T,setRenameValue:A,onCreateBinding:R,onDeleteBinding:O,onMakeBossCat:$,onMcpProfileChange:_,onRenameCat:q,onSkillChange:F},telegramDiagnostics:me,confirm:h,sections:["telegram"]})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:m(i.sharedSettingsCatsMemoryLabel),nested:!0}),children:r.jsx(jo,{busy:t,botBindings:Q,cat:D,isBossCat:D.id===e.chat.bossCatId,memoryController:j,registryController:{botForm:y,renameValue:x,setBotForm:T,setRenameValue:A,onCreateBinding:R,onDeleteBinding:O,onMakeBossCat:$,onMcpProfileChange:_,onRenameCat:q,onSkillChange:F},telegramDiagnostics:me,confirm:h,sections:["memory"]})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Nt,{provider:D.defaultExecutionTarget.provider??"",instance:D.defaultExecutionTarget.instance??"",model:D.defaultExecutionTarget.model??"",modelSelection:D.defaultModelSelection??null,onTargetChange:S=>{ze(D.id,{provider:S.provider,instance:S.instance||null,model:S.model||null,modelSelection:S.modelSelection??null},m(i.sharedSettingsCatsUpdateBrainError))},fetchProviderRegistry:At,fetchProviderModels:xt,fetchAdvancedProviderModels:Tt})})]}):null})]}),r.jsx(Bt,{dialog:g,onClose:k}),r.jsx(rt,{toasts:u}),Zt?r.jsx(Jt,{onSave:S=>{Pr(S)},onClose:()=>Y(!1),initialDataUrl:z==="create"?ke:D?.avatarUrl??null}):null,xr?r.jsx(Pn,{onSave:Tr,onClose:()=>ut(!1),initialDataUrl:z==="create"?Ce:Me}):null]})}function sy(e){return r.jsx(ny,{...e,useSettingsCatsRegistryActionsHook:Fc,SettingsCatsRegistryComponent:ry})}const Mo="cats:platform-envelope-refresh";function lt(){const e=globalThis;e.document===void 0||typeof e.dispatchEvent!="function"||typeof e.CustomEvent!="function"||e.dispatchEvent(new e.CustomEvent(Mo))}const iy=new Map([["Invalid request body",i.settingsAssistantsApiInvalidRequestBody],["Assistant name is required",i.settingsAssistantsApiAssistantNameRequired],["Assistant provider is required",i.settingsAssistantsApiAssistantProviderRequired],["Assistant model is required",i.settingsAssistantsApiAssistantModelRequired],["Assistant not found",i.settingsAssistantsApiAssistantNotFound],["Unexpected name field. Guide Cat name is system-managed.",i.settingsAssistantsApiGuideCatNameManaged],["status must be active or dismissed",i.settingsAssistantsApiGuideCatStatusInvalid],["No Guide Cat exists",i.settingsAssistantsApiGuideCatNotFound]]);function ni(e,t){const a=iy.get(e);return a?t(a):null}async function ra(e,t,a){try{const o=await e.json();if(typeof o.error=="string")return ni(o.error,t)??(o.error||a);if(o.error&&typeof o.error=="object"){const n=typeof o.error.code=="string"?o.error.code:"",s=typeof o.error.message=="string"?o.error.message:"",l=s?ni(s,t):null;return l||(n?a:s||a)}}catch{}return a}function ly(e){const t=e.trim();if(!t)return"?";const a=t.split(/\s+/);return a.length===1?a[0].slice(0,2).toUpperCase():`${a[0].charAt(0)}${a[a.length-1].charAt(0)}`.toUpperCase()}function cy({payload:e,onPayloadUpdate:t}){const a=e.guideCat??null,o=ct(),n=a?ka(a.status):!1,s=e.assistantPresets??[],{t:l}=W(),c=l(i.settingsAssistantsNamePlaceholder),u=d.useCallback(()=>({name:c,roleHint:"",provider:"claude",instance:"",model:"",modelSelection:null}),[c]),{toasts:p,showToast:g}=at(),{dialog:h,confirm:k,handleClose:f}=It(),[w,b]=d.useState(!1),[m,C]=d.useState(!1),[v,y]=d.useState(s[0]?.id??null),L=d.useMemo(()=>s.find(U=>U.id===v)??null,[s,v]),[x,T]=d.useState(()=>s.length===0),[N,A]=d.useState(u);d.useEffect(()=>{v&&!s.some(U=>U.id===v)&&y(s[0]?.id??null),s.length===0&&!x&&T(!0)},[s,x,v]);const R=d.useCallback(U=>{g(U)},[g]),P=d.useCallback(async U=>{b(!0);try{const j={provider:U.provider??a?.executionTarget.provider??"claude",instance:U.instance!==void 0?U.instance:a?.executionTarget.instance??null,model:U.model!==void 0?U.model:a?.executionTarget.model??null,modelSelection:U.modelSelection!==void 0?U.modelSelection:a?.modelSelection??null},G=await fetch("/api/platform/guide-cat",{method:"PUT",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(j)});if(!G.ok)throw new Error(await ra(G,l,l(i.settingsAssistantsSaveFailedWithError,{status:G.status})));const J=await G.json();return t({...e,guideCat:J.guideCat}),lt(),!0}catch(j){return R(j instanceof Error?j.message:l(i.settingsAssistantsGuideCatSaveFailed)),!1}finally{b(!1)}},[a,t,e,R,l]),I=d.useCallback(async U=>{b(!0);try{const j=await fetch("/api/platform/guide-cat",{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({status:U})});if(!j.ok)throw new Error(await ra(j,l,l(i.settingsAssistantsStatusUpdateFailed,{status:j.status})));const G=await j.json();return t({...e,guideCat:G.guideCat}),lt(),!0}catch(j){return R(j instanceof Error?j.message:l(i.settingsAssistantsGuideCatUpdateFailed)),!1}finally{b(!1)}},[t,e,R,l]),O=d.useCallback(async()=>{if(!a){await P({})&&await I("active");return}ka(a.status)||await I("active")},[P,a,I]),E=d.useCallback(()=>{a&&I("dismissed")},[a,I]),$=d.useCallback(async(U,j,G)=>{const J=s.find(X=>X.id===U);if(!J)return!1;C(!0);try{const X={name:j.name!==void 0?j.name:J.name,provider:j.provider!==void 0?j.provider:J.executionTarget.provider,instance:j.instance!==void 0?j.instance:J.executionTarget.instance??null,model:j.model!==void 0?j.model:J.executionTarget.model??null,modelSelection:j.modelSelection!==void 0?j.modelSelection:J.modelSelection,roleHint:j.roleHint!==void 0?j.roleHint:J.roleHint},oe=await fetch(`/api/platform/assistants/${U}`,{method:"PUT",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(X)});if(!oe.ok)throw new Error(await ra(oe,l,l(i.settingsAssistantsSaveFailedWithError,{status:oe.status})));const we=await oe.json();return t({...e,assistantPresets:we.assistants}),!0}catch(X){return R(X instanceof Error?X.message:G),!1}finally{C(!1)}},[s,t,e,R,l]),_=d.useCallback(async()=>{C(!0);try{const U=await fetch("/api/platform/assistants",{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({name:N.name.trim(),provider:N.provider,instance:N.instance||null,model:N.model||null,modelSelection:N.modelSelection,roleHint:N.roleHint.trim()||null})});if(!U.ok)throw new Error(await ra(U,l,l(i.settingsAssistantsSaveFailedWithError,{status:U.status})));const j=await U.json();t({...e,assistantPresets:j.assistants}),y(j.assistant.id),T(!1),A(u())}catch(U){R(U instanceof Error?U.message:l(i.settingsAssistantsCreateFailed))}finally{C(!1)}},[N,u,t,e,l,R]),ee=d.useCallback(async()=>{if(!(!L||!await k({title:l(i.settingsAssistantsRemoveTitle),message:l(i.settingsAssistantsRemoveMessage,{title:L.name}),confirmLabel:l(i.settingsAssistantsRemoveButton)}))){C(!0);try{const j=await fetch(`/api/platform/assistants/${L.id}`,{method:"DELETE",headers:{Accept:"application/json"}});if(!j.ok)throw new Error(await ra(j,l,l(i.settingsAssistantsStatusFailed,{status:j.status})));const G=await j.json();t({...e,assistantPresets:G.assistants}),y(G.assistants[0]?.id??null),G.assistants.length===0&&T(!0)}catch(j){R(j instanceof Error?j.message:l(i.settingsAssistantsRemoveFailed))}finally{C(!1)}}},[k,t,e,L,l,R]),B=d.useCallback(U=>{y(U),T(!1)},[]),q=d.useCallback(()=>{T(!0),A(u())},[u]),F=d.useCallback(()=>{s.length!==0&&(T(!1),v||y(s[0]?.id??null))},[s,v]),Q=N.name.trim().length>0&&N.provider.trim().length>0&&N.model.trim().length>0,me=x||!L;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"catsLayout catsLayoutSidePanel",children:[r.jsx(ye,{className:"catsDetailCard",header:r.jsx(re,{title:o,status:r.jsx(Xe,{children:n?r.jsx("button",{type:"button",className:"secondaryButton",disabled:w,onClick:()=>{E()},children:l(i.settingsAssistantsDisableButton)}):r.jsx("button",{type:"button",className:"primaryButton",disabled:w,onClick:()=>{O()},children:l(w?i.sharedCommonSaving:i.settingsAssistantsEnableButton)})})}),children:r.jsxs("div",{className:"catsDetailBody",children:[r.jsx("div",{className:"catsDetailColumn",children:r.jsxs(be,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:l(i.settingsAssistantsAvatarLabel)}),r.jsx("div",{className:"catsAvatarDock",children:r.jsx("div",{className:"catAvatar catsIdentityAvatar catsIdentityAvatarStatic","aria-label":o,children:r.jsx("img",{className:"catsIdentityAvatarImage",src:Ja,alt:"","aria-hidden":"true"})})})]}),r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:l(i.settingsAssistantsNameLabel)}),r.jsx("div",{className:"catsIdentityNameStatic",children:o})]})]})}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Nt,{provider:a?.executionTarget.provider??"claude",instance:a?.executionTarget.instance??"",model:a?.executionTarget.model??"",modelSelection:a?.modelSelection??null,onTargetChange:U=>{P({provider:U.provider,instance:U.instance||null,model:U.model||null,modelSelection:U.modelSelection??null})},fetchProviderRegistry:At,fetchProviderModels:xt,fetchAdvancedProviderModels:Tt})})]})}),r.jsxs("nav",{className:"catsSelectorStrip",role:"tablist","aria-label":l(i.settingsAssistantsSelectAriaLabel),children:[s.map(U=>{const j=!x&&U.id===v,G=["catAvatar","catsSelectorAvatar",j?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":j,className:G,onClick:()=>B(U.id),"data-tooltip":U.name,"aria-label":U.name,children:ly(U.name)},U.id)}),r.jsx("button",{type:"button",className:["catAvatar","catsSelectorAvatar","catsSelectorNewAvatar",x?"catsSelectorAvatarActive":""].filter(Boolean).join(" "),onClick:q,"aria-label":l(i.settingsAssistantsAddNewLabel),"data-tooltip":l(i.settingsAssistantsAddNewLabel),children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})})]}),r.jsx(ye,{className:"catsDetailCard",header:r.jsx(re,{title:me?l(i.settingsAssistantsNewAssistantTitle):L?.name??"",status:me?r.jsxs(Xe,{children:[s.length>0?r.jsx("button",{type:"button",className:"secondaryButton",disabled:m,onClick:F,children:l(i.settingsAssistantsCancelButton)}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:m||!Q,onClick:()=>{_()},children:l(m?i.sharedCommonSaving:i.settingsAssistantsCreateButton)})]}):r.jsx(Xe,{children:r.jsx("button",{type:"button",className:"dangerButton",disabled:m,onClick:()=>{ee()},children:l(i.settingsAssistantsDeleteButton)})})}),children:me?r.jsxs("div",{className:"catsDetailBody",children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsx(be,{headerless:!0,className:"catsSubCard catsIdentityCard",children:r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:l(i.settingsAssistantsNameLabel)}),r.jsx("input",{className:"textInput",value:N.name,placeholder:l(i.settingsAssistantsNamePlaceholder),onChange:U=>A(j=>({...j,name:U.target.value}))})]})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:l(i.settingsAssistantsRoleHintTitle),nested:!0}),children:r.jsx("textarea",{className:"textInput",rows:3,value:N.roleHint,placeholder:l(i.settingsAssistantsRoleHintPlaceholder),onChange:U=>A(j=>({...j,roleHint:U.target.value}))})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Nt,{provider:N.provider,instance:N.instance,model:N.model,modelSelection:N.modelSelection,onTargetChange:U=>A(j=>({...j,provider:U.provider,instance:U.instance,model:U.model,modelSelection:U.modelSelection??null})),fetchProviderRegistry:At,fetchProviderModels:xt,fetchAdvancedProviderModels:Tt})})]}):L?r.jsxs("div",{className:"catsDetailBody",children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsx(be,{headerless:!0,className:"catsSubCard catsIdentityCard",children:r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:l(i.settingsAssistantsNameLabel)}),r.jsx("input",{className:"textInput",defaultValue:L.name,placeholder:l(i.settingsAssistantsNamePlaceholder),onBlur:async U=>{const j=U.currentTarget.value.trim();if(!j){U.currentTarget.value=L.name;return}if(j===L.name)return;await $(L.id,{name:j},l(i.settingsAssistantsRenameFailed))||(U.currentTarget.value=L.name)}},L.id)]})}),r.jsx(be,{className:"catsSubCard",header:r.jsx(re,{title:l(i.settingsAssistantsRoleHintTitle),nested:!0}),children:r.jsx("textarea",{className:"textInput",rows:3,defaultValue:L.roleHint??"",placeholder:l(i.settingsAssistantsRoleHintPlaceholder),onBlur:async U=>{const j=U.currentTarget.value.trim(),G=j||null,J=L.roleHint??null;if(G===J)return;await $(L.id,{roleHint:G},l(i.settingsAssistantsRoleHintUpdateFailed))||(U.currentTarget.value=L.roleHint??"")}},L.id)})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Nt,{provider:L.executionTarget.provider,instance:L.executionTarget.instance??"",model:L.executionTarget.model??"",modelSelection:L.modelSelection,onTargetChange:U=>{$(L.id,{provider:U.provider,instance:U.instance||null,model:U.model||null,modelSelection:U.modelSelection??null},l(i.settingsAssistantsBrainUpdateFailed))},fetchProviderRegistry:At,fetchProviderModels:xt,fetchAdvancedProviderModels:Tt})})]}):null})]}),r.jsx(Bt,{dialog:h,onClose:f}),r.jsx(rt,{toasts:p})]})}function si(e,t){const a=e?.[t];return typeof a=="string"&&a.trim()?a:null}function dy(e,t){if(!e)return t(i.settingsAppsValidationFailed);if(e.message==="packagePath is required.")return t(i.settingsAppsPackagePathRequired);const a=e.message.match(/^Package path does not exist: (.+)\.$/u);return a?t(i.settingsAppsErrorPackagePathNotFound,{path:a[1]}):e.message==="Invalid cats.app.json JSON."?t(i.settingsAppsErrorInvalidManifestJson):e.message==="Cannot read cats.app.json."?t(i.settingsAppsErrorCannotReadManifest):e.message==="Cats app manifest must be an object."?t(i.settingsAppsErrorManifestInvalid):e.code==="reserved_cats_app_id"?t(i.settingsAppsErrorReservedAppId,{appId:si(e.details,"appId")??e.path??""}):e.code==="duplicate_cats_app_id"?t(i.settingsAppsErrorDuplicateAppId,{appId:si(e.details,"appId")??e.path??""}):t(e.path?i.settingsAppsErrorValidationIssueWithPath:i.settingsAppsErrorValidationIssue,{code:e.code,path:e.path??""})}function uy(e,t){const a=e.match(/^Cats app "(.+)" is not installed\.$/u);if(a)return t(i.settingsAppsErrorNotInstalled,{appId:a[1]});const o=e.match(/^Cats app "(.+)" is not enabled\.$/u);return o?t(i.settingsAppsErrorNotEnabled,{appId:o[1]}):null}function ro(e,t,a){return e instanceof Error?uy(e.message,a)??e.message:t}const ii={"capability-connector":"settingsAppsCategoryConnector","product-module":"settingsAppsCategoryProductModule","user-app":"settingsAppsCategoryUserApp"},py={enabled:"settingsAppsInstallStateEnabled",installed:"settingsAppsInstallStateInstalled",disabled:"settingsAppsInstallStateDisabled",error:"settingsAppsInstallStateError","upgrade-pending":"settingsAppsInstallStateUpgradePending",uninstalled:"settingsAppsInstallStateUninstalled"},li={"local-user":"settingsAppsTrustTierLocalUser",system:"settingsAppsTrustTierSystem","third-party":"settingsAppsTrustTierThirdParty"},hy={uninstall:"settingsAppsUninstallTitle",enable:"settingsAppsEnableTitle",disable:"settingsAppsDisableTitle"},my={uninstall:"settingsAppsUninstallMessage",enable:"settingsAppsEnableMessage",disable:"settingsAppsDisableMessage"};function In(e){return e===1?"":"s"}function ci(e,t){return t("settingsAppsPermissionCount",{count:e,pluralSuffix:In(e)})}function gy(e,t){return t("settingsAppsToolCount",{count:e,pluralSuffix:In(e)})}function fy(e,t){if(e.connectors.length===0)return null;const a=e.connectors.reduce((n,s)=>n+s.capabilities.length,0),o=t(a===1?"settingsAppsCapabilitySingular":"settingsAppsCapabilityPlural");return e.connectors.length===1?t("settingsAppsConnectorCountSingle",{connector:e.connectors[0].service,count:a,capabilityLabel:o}):t("settingsAppsConnectorCountMany",{connectorCount:e.connectors.length,count:a,capabilityLabel:o})}function wy(e,t){const a=Array.from(new Set(e.connectors.map(o=>o.auth?.kind??"none").filter(o=>o!=="none")));return a.length>0?`${t("settingsAppsAuthLabel")}: ${a.join(", ")}`:null}function ky(e){return e==="enabled"?"ready":e==="error"||e==="upgrade-pending"?"warm":"muted"}function di(e=[],t){return dy(e[0],t)}async function by(e,t){return(await e.json().catch(()=>null))?.error?.message??t}function ui(e,t){return e.findIndex(o=>o.id===t.id)<0?[...e,t]:e.map(o=>o.id===t.id?t:o)}function yy(e,t){return e.filter(a=>a.id!==t)}function pi(e){return!e.enabled||e.installState!=="enabled"?null:e.lobbyEntries[0]?.routePath??null}function vy(e){return e.connectors.find(t=>t.setupPath)?.setupPath??e.settings?.[0]?.path??null}function Cy({installedApps:e,onInstalledAppsUpdate:t}){const{t:a}=W(),o=je(),n=e.filter(A=>A.category==="capability-connector").length,{toasts:s,showToast:l}=at(),{dialog:c,confirm:u,handleClose:p}=It(),[g,h]=d.useState(null),[k,f]=d.useState(""),[w,b]=d.useState(null),[m,C]=d.useState(!1);async function v(A,R){if(!await u({title:a(hy[R]),message:a(my[R],{appDisplayName:A.displayName}),confirmLabel:a(R==="uninstall"?"settingsAppsUninstallAction":R==="enable"?"settingsAppsEnableAction":"settingsAppsDisableAction"),defaultAction:"cancel"}))return;const I=`${A.id}:${R}`;h(I);try{const O=await fetch(R==="uninstall"?`/api/apps/${encodeURIComponent(A.id)}`:`/api/apps/${encodeURIComponent(A.id)}/${R}`,{method:R==="uninstall"?"DELETE":"POST",headers:{Accept:"application/json"}});if(!O.ok)throw new Error(await by(O,a("settingsAppsMutationFailed",{action:a(R==="uninstall"?"settingsAppsUninstallAction":R==="enable"?"settingsAppsEnableAction":"settingsAppsDisableAction"),status:O.status})));const E=await O.json();R==="uninstall"?t?.(yy(e,E.appId??A.id)):E.app&&t?.(ui(e,E.app)),lt()}catch(O){l(ro(O,a("settingsAppsMutationFailedFallback"),a))}finally{h(null)}}async function y(){const A=k.trim();if(!A){l(a("settingsAppsPackagePathRequired"));return}C(!0);try{const R=await fetch("/api/apps/validate",{method:"POST",headers:{Accept:"application/json","content-type":"application/json"},body:JSON.stringify({packagePath:A})}),P=await R.json();if(!R.ok||!P.ok||!P.manifest)throw new Error(di(P.issues,a));b({packagePath:P.packagePath??A,manifestPath:P.manifestPath??null,manifest:P.manifest})}catch(R){b(null),l(ro(R,a("settingsAppsValidationFailed"),a))}finally{C(!1)}}async function L(){if(!(!w||!await u({title:a("settingsAppsInstallTitle"),message:a("settingsAppsInstallMessage",{appDisplayName:w.manifest.displayName}),confirmLabel:a("settingsAppsInstallButton"),defaultAction:"cancel"}))){C(!0);try{const R=await fetch("/api/apps/install",{method:"POST",headers:{Accept:"application/json","content-type":"application/json"},body:JSON.stringify({packagePath:w.packagePath,enable:!0})}),P=await R.json();if(!R.ok||!P.app)throw new Error(P.issues?di(P.issues,a):a("settingsAppsMutationFailed",{action:a("settingsAppsInstallButton"),status:R.status}));t?.(ui(e,P.app)),f(""),b(null),lt();const I=pi(P.app);I&&o(I)}catch(R){l(ro(R,a("settingsAppsMutationFailed",{action:a("settingsAppsInstallButton")}),a))}finally{C(!1)}}}const x=a("settingsAppsSectionTitle"),T=a("settingsAppsSectionDescription"),N=a("settingsAppsInstalledPackagesDescription",{count:n,pluralSuffix:In(n)});return r.jsxs(r.Fragment,{children:[r.jsx(ye,{header:r.jsx(re,{title:x,description:T}),children:r.jsxs("div",{className:"settings-sub-card settingsAppsList",children:[r.jsx(ne,{label:a("settingsAppsInstalledPackagesLabel"),description:N,control:r.jsx(ht,{tone:e.length>0?"ready":"muted",children:e.length})}),e.length>0?e.map(A=>{const R=pi(A),P=A.installState==="installed"||A.installState==="disabled",I=A.installState==="enabled",O=g?.startsWith(`${A.id}:`)??!1,E=fy(A,a),$=wy(A,a),_=vy(A);return r.jsx(ne,{label:A.displayName,description:r.jsxs("span",{className:"settingsAppsMeta",children:[r.jsx("span",{children:a(ii[A.category],{})}),r.jsx("span",{children:a(li[A.trustTier],{})}),r.jsx("span",{children:A.version}),r.jsx("span",{children:A.publisher}),r.jsx("span",{children:ci(A.permissions.length,a)}),E?r.jsx("span",{children:E}):null,$?r.jsx("span",{children:$}):null,A.tools.length>0?r.jsx("span",{children:gy(A.tools.length,a)}):null]}),control:r.jsxs(Xe,{children:[R?r.jsx("a",{className:"secondaryButton settingsInlineLink",href:R,children:a("settingsAppsOpenAction")}):null,_?r.jsx("a",{className:"secondaryButton settingsInlineLink",href:_,children:a("settingsAppsSettingsAction")}):null,P?r.jsx("button",{type:"button",className:"secondaryButton",disabled:O,onClick:()=>{v(A,"enable")},children:a("settingsAppsEnableAction")}):null,I?r.jsx("button",{type:"button",className:"secondaryButton",disabled:O,onClick:()=>{v(A,"disable")},children:a("settingsAppsDisableAction")}):null,r.jsx("button",{type:"button",className:"dangerButton",disabled:O,onClick:()=>{v(A,"uninstall")},children:a("settingsAppsUninstallAction")}),r.jsx(ht,{tone:ky(A.installState),children:a(py[A.installState],{})})]})},A.id)}):r.jsx(ne,{label:a("settingsAppsNoInstalledAppsLabel"),description:a("settingsAppsNoInstalledAppsDescription"),control:r.jsx(ht,{tone:"muted",children:a("settingsAppsEmptyStateChipLabel")})}),r.jsx(ne,{label:a("settingsAppsLocalInstallTitle"),description:a("settingsAppsLocalInstallDescription"),layout:"stack",control:r.jsxs("div",{className:"settingsAppsInstall",children:[r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:a("settingsAppsPackagePathLabel")}),r.jsx("input",{className:"textInput",value:k,placeholder:a("settingsAppsPackagePathPlaceholder"),disabled:m,onChange:A=>{f(A.target.value),b(null)}})]}),r.jsxs(Xe,{children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:m,onClick:()=>{y()},children:a("settingsAppsReviewButton")}),r.jsx(ht,{tone:w?"ready":"warm",children:a(w?"settingsAppsLocalInstallReady":"settingsAppsLocalInstallNeedsReview")})]}),w?r.jsxs("div",{className:"settingsAppsReview",children:[r.jsx("span",{children:w.manifest.displayName}),r.jsx("span",{children:w.manifest.id}),r.jsx("span",{children:w.manifest.contributions.lobbyApps?.[0]?.routePath??a("settingsAppsNoLobbyRoute")}),r.jsx("span",{children:a(ii[w.manifest.category],{})}),r.jsx("span",{children:a(li[w.manifest.trustTier],{})}),r.jsx("span",{children:ci(w.manifest.permissions.length,a)}),r.jsx(Xe,{children:r.jsx("button",{type:"button",className:"primaryButton",disabled:m,onClick:()=>{L()},children:a("settingsAppsInstallButton")})})]}):null]})})]})}),r.jsx(Bt,{dialog:c,onClose:p}),r.jsx(rt,{toasts:s})]})}const Sy={chat:{title:"settingsAdvancedDraftControlsTitle",description:"settingsAdvancedDraftControlsDescription",toggleDescription:"settingsAdvancedDraftControlsToggleDescription"},code:{title:"settingsAdvancedDraftControlsTitle",description:"settingsAdvancedDraftControlsDescription",toggleDescription:"settingsAdvancedDraftControlsToggleDescription"},work:{title:"settingsAdvancedDraftControlsTitle",description:"settingsAdvancedDraftControlsDescription",toggleDescription:"settingsAdvancedDraftControlsToggleDescription"}};function Bn({surface:e,enabled:t,disabled:a=!1,onToggle:o}){if(e!=="chat"&&e!=="code"&&e!=="work")return null;const{t:n}=W(),s=Sy[e];return r.jsx(ye,{header:r.jsx(re,{title:n(s.title),description:n(s.description,{surface:n(`settingsConversationProductLabel${e==="chat"?"Chat":e==="code"?"Code":"Work"}`)})}),children:r.jsx(ne,{label:n("settingsAdvancedDraftControlsEnableLabel"),description:n(s.toggleDescription,{surface:n(`settingsConversationProductLabel${e==="chat"?"Chat":e==="code"?"Code":"Work"}`)}),control:r.jsx("input",{type:"checkbox",checked:t,disabled:a,onChange:l=>o(l.target.checked)})})})}async function Ly(e,t){return bn("chat",e,t)}async function Ry(e,t){return bn("code",e,t)}async function Py(e,t){return bn("work",e,t)}const Ay={chat:Ly,code:Ry,work:Py};function xy(e,t,a){return Ay[e](t,a)}const Ty=[/^cats chat rename returned \d+$/u,/^cats chat deletion returned \d+$/u,/^parallel chat rename returned \d+$/u,/^parallel chat ungroup returned \d+$/u,/^parallel chat deletion returned \d+$/u];function ld(e,t){return e.startsWith("Chat not found:")?t(i.sharedWorkspaceNavigationErrorChatNotFound):e.startsWith("Channel not found:")||e==="Channel not found."?t(i.sharedWorkspaceNavigationErrorChannelNotFound):e.startsWith("Parallel chat group not found:")?t(i.sharedWorkspaceNavigationErrorParallelChatGroupNotFound):e==="Title must not be empty."?t(i.sharedWorkspaceNavigationErrorTitleRequired):e==="Parallel chat title must not be empty."?t(i.sharedWorkspaceNavigationErrorParallelChatTitleRequired):null}function CR(e,t,a){if(!(e instanceof Error))return t;const o=ld(e.message,a);return o||(Ty.some(n=>n.test(e.message))?t:e.message)}const Dy=[/^cats conversation behavior update returned \d+$/u,/^cats advanced draft controls update returned \d+$/u];function Ca(e,t,a){if(!(e instanceof Error))return t;const o=ld(e.message,a);return o||(Dy.some(n=>n.test(e.message))?t:e.message)}const Ny={chat:"settingsConversationProductLabelChat",code:"settingsConversationProductLabelCode",work:"settingsConversationProductLabelWork"};function jy(e,t,a){return{...e,chat:{...e.chat,conversationBehavior:dg(e.chat.conversationBehavior,{[t]:a})}}}function Fn({surface:e,payload:t,onPayloadUpdate:a,onError:o}){const{t:n}=W(),s=n(Ny[e]),l=ug(t.chat.conversationBehavior,e);async function c(u,p){a(jy(t,e,u));try{const g=await xy(e,u);d.startTransition(()=>a(g))}catch(g){a(t),o(Ca(g,p,n))}}return r.jsxs(ye,{header:r.jsx(re,{title:n("settingsConversationBehaviorTitle"),description:n("settingsConversationBehaviorDescription",{product:s})}),children:[r.jsx(ne,{label:n("settingsConversationShowVerboseLabel"),description:n("settingsConversationShowVerboseDescription"),control:r.jsx("input",{type:"checkbox",checked:l.showVerboseMessages,onChange:()=>{c({showVerboseMessages:!l.showVerboseMessages},n("settingsConversationUpdateFailure"))}})}),r.jsx(ne,{label:n("settingsConversationShowLiveProgressLabel"),description:n("settingsConversationShowLiveProgressDescription"),control:r.jsx("input",{type:"checkbox",checked:l.showLiveProgressDetails,onChange:()=>{c({showLiveProgressDetails:!l.showLiveProgressDetails},n("settingsConversationUpdateFailure"))}})}),r.jsx(ne,{label:n("settingsConversationConcurrentLayoutLabel"),description:n("settingsConversationConcurrentLayoutDescription",{product:s}),layout:"stack",control:r.jsxs("select",{className:"textInput",value:l.concurrentPresentationMode,onChange:u=>{c({concurrentPresentationMode:u.target.value},n("settingsConversationUpdateFailure"))},children:[r.jsx("option",{value:"inline_stack",children:n("settingsConversationLayoutInlineStack")}),r.jsx("option",{value:"compare_cards",children:n("settingsConversationLayoutCompareCards")}),r.jsx("option",{value:"focus_rail",children:n("settingsConversationLayoutFocusRail")}),r.jsx("option",{value:"adaptive",children:n("settingsConversationLayoutAdaptive")})]})})]})}function My({payload:e,onPayloadUpdate:t}){const{toasts:a,showToast:o}=at(),{t:n}=W();async function s(p){const g=e.chat.advancedDraftControls,h=yr(g);h.chat=p,t({...e,chat:{...e.chat,advancedDraftControls:h}});try{const k=await yn({chat:p});d.startTransition(()=>t(k))}catch(k){t({...e,chat:{...e.chat,advancedDraftControls:g}}),o(Ca(k,n("settingsChatAdvancedControlsFailure"),n))}}async function l(p){const g=e,h=e.chat.globalOrchestrator;t({...e,chat:{...e.chat,globalOrchestrator:{...h,mcpProfile:p}}});try{const k=await Ug({mcpProfile:p});d.startTransition(()=>t(k))}catch(k){t(g),o(Ca(k,n(i.settingsChatBossToolProfileUpdateFailure),n))}}const c=hn(e.chat.advancedDraftControls,"chat"),u=e.chat.globalOrchestrator.mcpProfile??et;return r.jsxs(r.Fragment,{children:[r.jsx(ye,{header:r.jsx(re,{title:n(i.settingsChatBossToolProfileTitle)}),children:r.jsx(ne,{label:n(i.sharedSettingsCatsMcpProfileLabel),layout:"stack",control:r.jsx("div",{className:"settingsSegmentedControl",role:"radiogroup","aria-label":n(i.sharedSettingsCatsMcpProfileLabel),children:Mt.map(p=>r.jsx("button",{type:"button",role:"radio","aria-checked":u===p.value,className:"settingsSegmentedOption","data-active":u===p.value?"true":"false",onClick:()=>{u!==p.value&&l(p.value)},children:n(p.label)},p.value))})})}),r.jsx(Fn,{surface:"chat",payload:e,onPayloadUpdate:t,onError:o}),r.jsx(Bn,{surface:"chat",enabled:c,onToggle:p=>{s(p)}}),r.jsx(rt,{toasts:a})]})}function Ey({payload:e,onPayloadUpdate:t}){const{toasts:a,showToast:o}=at(),{t:n}=W(),s=hn(e.chat.advancedDraftControls,"code");async function l(c){const u=e.chat.advancedDraftControls,p=yr(u);p.code=c,t({...e,chat:{...e.chat,advancedDraftControls:p}});try{const g=await yn({code:c});d.startTransition(()=>t(g))}catch(g){t({...e,chat:{...e.chat,advancedDraftControls:u}}),o(Ca(g,n("settingsConversationPreferenceUpdateFailure"),n))}}return r.jsxs(r.Fragment,{children:[r.jsx(Fn,{surface:"code",payload:e,onPayloadUpdate:t,onError:o}),r.jsx(Bn,{surface:"code",enabled:s,onToggle:c=>{l(c)}}),r.jsx(rt,{toasts:a})]})}const Iy=[/^setup reset returned \d+$/u];function By(e,t){return e instanceof Error?Iy.some(a=>a.test(e.message))?t:e.message:t}function Fy({busy:e,onResetSetup:t}){const a=Sk(e),{toasts:o,showToast:n}=at(),{t:s}=W();async function l(){try{await t()}catch(c){n(By(c,s("settingsDataResetFailure")))}}return r.jsxs(r.Fragment,{children:[r.jsx(wk,{title:s("settingsDataResetAllDataTitle"),description:s("settingsDataResetAllDataDescription"),children:r.jsx("button",{className:"dangerButton",type:"button",disabled:a,onClick:()=>{l()},children:s(a?"settingsDataResetButtonResetting":"settingsDataResetButtonLabel")})}),r.jsx(rt,{toasts:o})]})}const Oy=[{version:1,size:21,dataCodewords:19,errorCodewords:7,alignmentCenters:[]},{version:2,size:25,dataCodewords:34,errorCodewords:10,alignmentCenters:[6,18]},{version:3,size:29,dataCodewords:55,errorCodewords:15,alignmentCenters:[6,22]},{version:4,size:33,dataCodewords:80,errorCodewords:20,alignmentCenters:[6,26]},{version:5,size:37,dataCodewords:108,errorCodewords:26,alignmentCenters:[6,30]}],Wy=4,Uy=1,Hy=0,Gy=21522,_y=1335,hi=[236,17],da=new Array(512),Eo=new Array(256);let oa=1;for(let e=0;e<255;e+=1)da[e]=oa,Eo[oa]=e,oa<<=1,(oa&256)!==0&&(oa^=285);for(let e=255;e<da.length;e+=1)da[e]=da[e-255]??1;function Io(e,t){return e===0||t===0?0:da[(Eo[e]??0)+(Eo[t]??0)]??0}function Ky(e){const t=new Array(e).fill(0);t[e-1]=1;let a=1;for(let o=0;o<e;o+=1){for(let n=0;n<e;n+=1)t[n]=Io(t[n]??0,a),n+1<e&&(t[n]^=t[n+1]??0);a=Io(a,2)}return t}function qy(e,t){const a=new Array(t.length).fill(0);for(const o of e){const n=o^(a.shift()??0);a.push(0);for(let s=0;s<t.length;s+=1)a[s]=(a[s]??0)^Io(t[s]??0,n)}return a}function la(e,t,a){for(let o=a-1;o>=0;o-=1)e.push(t>>>o&1)}function $y(e){const t=[];for(let a=0;a<e.length;a+=8){let o=0;for(let n=0;n<8;n+=1)o=o<<1|(e[a+n]??0);t.push(o)}return t}function zy(e){return Oy.find(t=>12+e*8<=t.dataCodewords*8)??null}function Vy(e,t){const a=Array.from(new TextEncoder().encode(e)),o=[],n=t.dataCodewords*8;la(o,Wy,4),la(o,a.length,8);for(const c of a)la(o,c,8);for(la(o,0,Math.min(4,n-o.length));o.length%8!==0;)o.push(0);const s=$y(o);let l=0;for(;s.length<t.dataCodewords;)s.push(hi[l%hi.length]??236),l+=1;return s}function Yy(e){return{modules:Array.from({length:e},()=>new Array(e).fill(!1)),functionModules:Array.from({length:e},()=>new Array(e).fill(!1))}}function Te(e,t,a,o,n){o<0||o>=e.length||a<0||a>=e.length||(e[o][a]=n,t[o][a]=!0)}function oo(e,t,a,o){for(let n=-4;n<=4;n+=1)for(let s=-4;s<=4;s+=1){const l=Math.max(Math.abs(s),Math.abs(n));Te(e,t,a+s,o+n,l!==2&&l!==4)}}function Qy(e,t,a,o){for(let n=-2;n<=2;n+=1)for(let s=-2;s<=2;s+=1){const l=Math.max(Math.abs(s),Math.abs(n));Te(e,t,a+s,o+n,l!==1)}}function Jy(e,t){const a=e.length;for(let o=0;o<=8;o+=1)o!==6&&(Te(e,t,8,o,!1),Te(e,t,o,8,!1));for(let o=0;o<8;o+=1)Te(e,t,a-1-o,8,!1);for(let o=8;o<15;o+=1)Te(e,t,8,a-15+o,!1)}function Xy(e,t,a){const o=e.length;oo(e,t,3,3),oo(e,t,o-4,3),oo(e,t,3,o-4);for(const n of a.alignmentCenters)for(const s of a.alignmentCenters)t[n]?.[s]||Qy(e,t,s,n);for(let n=0;n<o;n+=1)t[6][n]||Te(e,t,n,6,n%2===0),t[n][6]||Te(e,t,6,n,n%2===0);Te(e,t,8,o-8,!0),Jy(e,t)}function Zy(e,t){return(e+t)%2===0}function ev(e,t,a){const o=e.length,n=[];for(const c of a)la(n,c,8);let s=0,l=!0;for(let c=o-1;c>=1;c-=2){c===6&&(c-=1);for(let u=0;u<o;u+=1){const p=l?o-1-u:u;for(let g=0;g<2;g+=1){const h=c-g;if(t[p][h])continue;const k=(n[s]??0)===1;e[p][h]=Zy(h,p)?!k:k,s+=1}}l=!l}}function tv(){const e=Uy<<3|Hy;let t=e<<10;for(let a=14;a>=10;a-=1)(t>>>a&1)!==0&&(t^=_y<<a-10);return(e<<10|t)^Gy}function av(e,t){const a=e.length,o=tv(),n=s=>(o>>>s&1)!==0;for(let s=0;s<=5;s+=1)Te(e,t,8,s,n(s));Te(e,t,8,7,n(6)),Te(e,t,8,8,n(7)),Te(e,t,7,8,n(8));for(let s=9;s<15;s+=1)Te(e,t,14-s,8,n(s));for(let s=0;s<8;s+=1)Te(e,t,a-1-s,8,n(s));for(let s=8;s<15;s+=1)Te(e,t,8,a-15+s,n(s));Te(e,t,8,a-8,!0)}function rv(e){const t=new TextEncoder().encode(e),a=zy(t.length);if(!a)return null;const o=Vy(e,a),n=qy(o,Ky(a.errorCodewords)),{modules:s,functionModules:l}=Yy(a.size);return Xy(s,l,a),ev(s,l,[...o,...n]),av(s,l),{size:a.size,cells:s}}const ov=new Set(["Desktop host is not initialized.","Invalid desktop startup preferences payload."]);function cd(e,t,a){return e instanceof Error?ov.has(e.message)?t:e.message:t}const dd={enabled:!1,bindHost:"127.0.0.1",bindPort:0,bindReachability:"loopback",canReachFromLan:!1,selectedLanIp:null,selectedLanUrl:null,diagnosticManifestUrl:null,noLanCandidateReason:"feature_disabled",bindOverrideEnv:"CATS_DESKTOP_APP_HOST=0.0.0.0",pairingUrlStatus:"phase1_pending",pairingUrl:null};function Bo(){return{startAtLogin:!0,openWindowOnStartup:!1,systemTrayEnabled:!0,mobilePairing:dd}}function nv(e,t){return e.noLanCandidateReason==="loopback_bound"?t("settingsDesktopMobilePairingReachabilityLoopback"):e.noLanCandidateReason==="no_lan_candidate"?t("settingsDesktopMobilePairingReachabilityLan"):e.noLanCandidateReason==="bind_host_not_lan_candidate"?t("settingsDesktopMobilePairingReachabilityOtherInterface"):t("settingsDesktopMobilePairingReachabilityAllInterfaces")}function sv(e,t){return e.enabled?e.noLanCandidateReason==="loopback_bound"?{tone:"warm",label:t("settingsDesktopMobilePairingStatusLoopbackOnly")}:e.noLanCandidateReason==="no_lan_candidate"||e.noLanCandidateReason==="bind_host_not_lan_candidate"?{tone:"warm",label:t("settingsDesktopMobilePairingStatusNoLanAddress")}:e.pairingUrlStatus==="ready"?{tone:"ready",label:t("settingsDesktopMobilePairingStatusReady")}:{tone:"warm",label:t("settingsDesktopMobilePairingStatusValidationPending")}:{tone:"muted",label:t("settingsDesktopMobilePairingStatusDisabled")}}function iv({t:e,url:t}){const a=rv(t);if(!a)return r.jsx("span",{children:e("settingsDesktopMobilePairingQrUrlTooLong")});const o=[];for(let n=0;n<a.size;n+=1)for(let s=0;s<a.size;s+=1)a.cells[n]?.[s]&&o.push(r.jsx("rect",{x:s,y:n,width:"1",height:"1"},`${s}:${n}`));return r.jsxs("svg",{className:"settingsMobilePairingQrCode",viewBox:`-4 -4 ${a.size+8} ${a.size+8}`,role:"img","aria-label":e("settingsDesktopMobilePairingQrCodeLabel"),shapeRendering:"crispEdges",children:[r.jsx("rect",{x:"-4",y:"-4",width:a.size+8,height:a.size+8,className:"qrLight"}),r.jsx("g",{className:"qrDark",children:o})]})}function lv({payload:e,showToast:t}){const{t:a}=W(),[o,n]=d.useState(!1),l=(e.desktop??Bo()).mobilePairing??dd,c=sv(l,a);async function u(g,h){try{await navigator.clipboard.writeText(g),t(h)}catch{t(a("settingsConversationPreferenceUpdateFailure"))}}async function p(){const g=`CATS_DESKTOP_MOBILE_PAIRING_ENABLED=true
43
+ CATS_DESKTOP_APP_HOST=0.0.0.0`,h=window.catsDesktopHost;if(!h?.enableMobilePairing){await u(g,a("settingsDesktopMobilePairingCopyEnvValuesSuccess"));return}if(window.confirm(a("settingsDesktopMobilePairingConfirmRestart"))){n(!0);try{const f=await h.enableMobilePairing();t(a("settingsDesktopMobilePairingDesktopUpdateSuccess",{envPath:f.envPath})),h.relaunch&&await h.relaunch()}catch(f){t(cd(f,a("settingsDesktopMobilePairingDesktopUpdateFailure"))),n(!1)}}}return r.jsx(ye,{className:"settingsMobilePairing",header:r.jsx(re,{title:a("settingsDesktopMobilePairingTitle"),description:a("settingsDesktopMobilePairingDescription"),status:r.jsx(ht,{tone:c.tone,children:c.label})}),children:l.enabled?r.jsxs("div",{className:"settingsMobilePairingGrid",children:[r.jsxs("div",{className:"settingsMobilePairingDetails",children:[r.jsxs("dl",{className:"settingsMobilePairingFacts",children:[r.jsxs("div",{children:[r.jsx("dt",{children:a("settingsDesktopMobilePairingBindLabel")}),r.jsxs("dd",{children:[l.bindHost,":",l.bindPort]})]}),r.jsxs("div",{children:[r.jsx("dt",{children:a("settingsDesktopMobilePairingReachabilityLabel")}),r.jsx("dd",{children:nv(l,a)})]}),r.jsxs("div",{children:[r.jsx("dt",{children:a("settingsDesktopMobilePairingLanAddressLabel")}),r.jsx("dd",{children:l.selectedLanIp??a("settingsDesktopMobilePairingNoneLabel")})]})]}),l.noLanCandidateReason==="loopback_bound"&&l.bindOverrideEnv?r.jsx(ne,{label:a("settingsDesktopMobilePairingAllowLanLabel"),description:a("settingsDesktopMobilePairingAllowLanDescription",{bindOverrideEnv:l.bindOverrideEnv}),control:r.jsx("button",{type:"button",className:"secondaryButton",disabled:o,onClick:()=>{p()},children:a(o?"settingsDesktopMobilePairingApplyingButton":"settingsDesktopMobilePairingApplyAndRestartButton")})}):null,l.noLanCandidateReason==="no_lan_candidate"?r.jsx("p",{className:"settingsMobilePairingNote",children:a("settingsDesktopMobilePairingNoLanAddressNote")}):null,l.noLanCandidateReason==="bind_host_not_lan_candidate"?r.jsx("p",{className:"settingsMobilePairingNote",children:a("settingsDesktopMobilePairingHostMismatchNote")}):null,l.diagnosticManifestUrl?r.jsx(ne,{label:a("settingsDesktopMobilePairingDiagnosticLabel"),description:l.diagnosticManifestUrl,control:r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>{u(l.diagnosticManifestUrl??"",a("settingsDesktopMobilePairingDiagnosticCopiedMessage"))},children:a("settingsDesktopMobilePairingDiagnosticCopyButton")}),layout:"stack"}):null,l.pairingUrlStatus==="ready"&&l.pairingUrl?r.jsx(ne,{label:a("settingsDesktopMobilePairingExpoUrlLabel"),description:l.pairingUrl,control:r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>{u(l.pairingUrl??"",a("settingsDesktopMobilePairingExpoUrlCopiedMessage"))},children:a("settingsDesktopMobilePairingCopyUrlButton")}),layout:"stack"}):null]}),r.jsx("div",{className:"settingsMobilePairingQr","data-state":l.pairingUrlStatus,children:l.pairingUrlStatus==="ready"&&l.pairingUrl?r.jsxs("div",{className:"settingsMobilePairingQrContent",children:[r.jsx(iv,{t:a,url:l.pairingUrl}),r.jsx("code",{className:"settingsMobilePairingQrUrl",children:l.pairingUrl})]}):r.jsx("span",{children:a("settingsDesktopMobilePairingNoPairingUrlStatus")})})]}):r.jsx(ne,{label:a("settingsDesktopMobilePairingEnableLabel"),description:a("settingsDesktopMobilePairingEnableDescription"),control:r.jsx("button",{type:"button",className:"secondaryButton",disabled:o,onClick:()=>{p()},children:a(o?"settingsDesktopMobilePairingApplyingButton":"settingsDesktopMobilePairingEnableButton")}),layout:"stack"})})}function cv({payload:e,onPayloadUpdate:t,showToast:a}){const{t:o}=W(),[n,s]=d.useState(!1),l=e.desktop??Bo();async function c(u){const p=e.desktop??Bo(),g=o("settingsConversationPreferenceUpdateFailure");t({...e,desktop:u}),s(!0);try{const h=window.catsDesktopHost;let k=u;if(h?.updateDesktopPreferences)k=await h.updateDesktopPreferences(u);else{const f=await fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(u)});if(!f.ok)throw new Error(g);const w=await f.json();k={...l,startAtLogin:w.startAtLogin!==!1,openWindowOnStartup:w.openWindowOnStartup===!0,systemTrayEnabled:w.systemTrayEnabled!==!1}}t({...e,desktop:k}),lt()}catch(h){t({...e,desktop:p}),a(cd(h,g))}finally{s(!1)}}return r.jsxs(ye,{header:r.jsx(re,{title:o("settingsDesktopStartupTitle"),description:o("settingsDesktopStartupDescription")}),children:[r.jsx(ne,{asChoice:!0,label:o("settingsDesktopStartupSignInLabel"),description:o("settingsDesktopStartupSignInDescription"),control:r.jsx("input",{type:"checkbox",checked:l.startAtLogin,disabled:n,onChange:()=>{c({...l,startAtLogin:!l.startAtLogin})}})}),r.jsx(ne,{asChoice:!0,label:o("settingsDesktopStartupTrayLabel"),description:o("settingsDesktopStartupTrayDescription"),control:r.jsx("input",{type:"checkbox",checked:l.systemTrayEnabled,disabled:n,onChange:()=>{c({...l,systemTrayEnabled:!l.systemTrayEnabled})}})}),r.jsx(ne,{asChoice:!0,label:o("settingsDesktopStartupOpenWindowLabel"),description:o("settingsDesktopStartupOpenWindowDescription"),control:r.jsx("input",{type:"checkbox",checked:l.openWindowOnStartup,disabled:n,onChange:()=>{c({...l,openWindowOnStartup:!l.openWindowOnStartup})}})})]})}const mi={unavailable:"settingsDesktopUpdatesStatusUnavailable",idle:"settingsDesktopUpdatesStatusIdle",checking:"settingsDesktopUpdatesStatusChecking",up_to_date:"settingsDesktopUpdatesStatusUpToDate",update_available:"settingsDesktopUpdatesStatusAvailable",downloading:"settingsDesktopUpdatesStatusDownloading",downloaded:"settingsDesktopUpdatesStatusDownloaded",installing:"settingsDesktopUpdatesStatusInstalling",failed:"settingsDesktopUpdatesStatusFailed"},dv={unavailable:"muted",idle:"muted",checking:"muted",up_to_date:"ready",update_available:"warm",downloading:"muted",downloaded:"ready",installing:"muted",failed:"warm"},gi={offline:"settingsDesktopUpdatesErrorOffline",timeout:"settingsDesktopUpdatesErrorTimeout",provider_rejected:"settingsDesktopUpdatesErrorProviderRejected",metadata_invalid:"settingsDesktopUpdatesErrorMetadataInvalid",checksum_mismatch:"settingsDesktopUpdatesErrorChecksumMismatch",signature_rejected:"settingsDesktopUpdatesErrorSignatureRejected",unsupported_package:"settingsDesktopUpdatesErrorUnsupportedPackage",download_cancelled:"settingsDesktopUpdatesErrorDownloadCancelled",install_handoff_failed:"settingsDesktopUpdatesErrorInstallHandoffFailed",unknown:"settingsDesktopUpdatesErrorUnknown"},uv={none:null,check:"settingsDesktopUpdatesActionCheck",download:"settingsDesktopUpdatesActionDownload",restart_install:"settingsDesktopUpdatesActionRestartInstall"},pv={checking:"settingsDesktopUpdatesActionChecking",downloading:"settingsDesktopUpdatesActionDownloading",installing:"settingsDesktopUpdatesActionInstalling"};function hv(e){return mi[e]??mi.unavailable}function mv(e){return dv[e]??"muted"}function gv(e){return gi[e]??gi.unknown}function fv(e){const t=pv[e.status];if(t)return{messageKey:t,action:"none",disabled:!0};const a=uv[e.nextAction];return a?{messageKey:a,action:e.nextAction,disabled:!1}:null}function wv(e){if(e.status!=="downloading"||e.progress===null)return null;const t=Math.round(e.progress.percent);return Math.min(100,Math.max(0,t))}function kv(e,t){if(e.status!=="downloaded")return null;const a=t.toLowerCase();return a.startsWith("win")?"settingsDesktopUpdatesWindowsInstallerNotice":a.startsWith("linux")?"settingsDesktopUpdatesLinuxInstallerNotice":null}function bv(e){return e.capability.distribution==="preview_packaged"}function yv({showToast:e,platform:t=typeof navigator>"u"?"":navigator.platform}){const{t:a}=W(),[o,n]=d.useState(null),[s,l]=d.useState(!1);d.useEffect(()=>{const k=gt();if(!k?.getUpdateSnapshot)return;let f=!0;k.getUpdateSnapshot().then(b=>{f&&n(b)}).catch(()=>{});const w=k.onUpdateSnapshot?.(b=>{f&&n(b)});return()=>{f=!1,w?.()}},[]);const c=d.useCallback(async k=>{const f=gt();if(f){l(!0);try{if(k==="restart_install"){await f.restartAndInstall?.();return}const w=k==="check"?await f.checkForUpdates?.():await f.downloadUpdate?.();if(!w)return;n(w),k==="check"&&w.status==="up_to_date"&&e(a("settingsDesktopUpdatesToastUpToDate")),w.error&&e(a(gv(w.error.code)))}finally{l(!1)}}},[e,a]);if(o===null)return null;const{capability:u}=o,p=fv(o),g=kv(o,t),h=wv(o);return r.jsxs(ye,{className:"settingsDesktopUpdates",header:r.jsx(re,{title:a("settingsDesktopUpdatesTitle"),description:a("settingsDesktopUpdatesDescription"),status:u.canCheck?r.jsx(ht,{tone:mv(o.status),children:a(hv(o.status))}):void 0}),children:[r.jsx(ne,{label:a("settingsDesktopUpdatesCurrentVersionLabel"),control:r.jsx("span",{className:"settingsFactValue",children:o.currentVersion})}),r.jsx(ne,{label:a("settingsDesktopUpdatesChannelLabel"),control:r.jsx("span",{className:"settingsFactValue",children:u.channel})}),bv(o)&&r.jsx(ne,{layout:"stack",label:a("settingsDesktopUpdatesPreviewNotice"),control:null}),u.canCheck&&r.jsxs(r.Fragment,{children:[r.jsx(ne,{label:a("settingsDesktopUpdatesLastCheckedLabel"),control:r.jsx("span",{className:"settingsFactValue",children:o.lastCheckedAt?new Date(o.lastCheckedAt).toLocaleString():a("settingsDesktopUpdatesLastCheckedNever")})}),o.availableVersion!==null&&r.jsx(ne,{label:a("settingsDesktopUpdatesAvailableVersionLabel"),description:o.releaseSummary??void 0,control:r.jsx("span",{className:"settingsFactValue",children:o.availableVersion})}),h!==null&&r.jsx(ne,{label:a("settingsDesktopUpdatesStatusDownloading"),control:r.jsxs("progress",{className:"settingsUpdateProgress",max:100,value:h,children:[h,"%"]})}),g!==null&&r.jsx(ne,{layout:"stack",label:a(g),control:null}),p!==null&&r.jsx(ne,{label:"",control:r.jsx("button",{type:"button",className:"settingsPrimaryAction",disabled:p.disabled||s,onClick:()=>{p.action!=="none"&&c(p.action)},children:a(p.messageKey)})})]})]})}function vv({payload:e,onPayloadUpdate:t}){const{toasts:a,showToast:o}=at();return r.jsxs(r.Fragment,{children:[r.jsx(yv,{showToast:o}),r.jsx(lv,{payload:e,showToast:o}),r.jsx(cv,{payload:e,onPayloadUpdate:t,showToast:o}),r.jsx(rt,{toasts:a})]})}const ud=["en","zh-TW","zh-CN","ja","ko","fr","de","es","pt-BR","it","nl","pl","tr","id","vi","th","hi","ar"];function fi(e){return e==="unspecified"||ud.includes(e)}const Cv=new Set(["POST","PUT","PATCH","DELETE"]),Fo="x-cats-csrf-token";let Lr=null,na=null,Qe=null,wi=!1;function Sv(e){const t=e?.trim();Lr=t||null}function Lv(){Lr=null}async function ki(){if(!Qe)return null;if(na)return na;na=(async()=>{try{const t=await Qe("/api/auth/status",{headers:{Accept:"application/json"},credentials:"same-origin"});if(!t.ok)return null;const o=(await t.json())?.csrfToken?.trim();return o||null}catch{return null}finally{na=null}})();const e=await na;return e&&(Lr=e),e}function Rv(e,t){return t?.method?t.method.toUpperCase():e instanceof Request?e.method.toUpperCase():"GET"}function Pv(e){return typeof e=="string"?e:e instanceof URL?e.href:e.url}function Av(e){try{const t=new URL(e,window.location.origin);return t.origin===window.location.origin&&t.pathname.startsWith("/api/")}catch{return!1}}function bi(e){if(!e)return[];if(e instanceof Headers){const t=[];return e.forEach((a,o)=>{t.push([o,a])}),t}return Array.isArray(e)?e.map(([t,a])=>[t,a]):Object.entries(e)}function xv(e,t){return e instanceof Request?bi(e.headers):bi(t?.headers)}function Tv(e,t){const a=t.toLowerCase();return e.some(([o])=>o.toLowerCase()===a)}function Dv(e){return e.some(([t,a])=>t.toLowerCase()==="authorization"&&/^bearer\s/i.test(a))}function yi(e,t,a){if(e instanceof Request){const n=new Headers(e.headers);return n.set(Fo,a),{input:new Request(e,{headers:n}),init:t}}const o=new Headers(t?.headers);return o.set(Fo,a),{input:e,init:{...t,headers:o}}}async function Nv(e){if(e.status!==403)return!1;try{return(await e.clone().json())?.error?.code==="E_CSRF_MISMATCH"}catch{return!1}}async function jv(e,t){if(!Qe)throw new Error("csrfAwareFetch invoked before installation");const a=Rv(e,t);if(!Cv.has(a))return Qe(e,t);const o=Pv(e);if(!Av(o))return Qe(e,t);const n=xv(e,t);if(Tv(n,Fo)||Dv(n))return Qe(e,t);let s=Lr??await ki();if(!s)return Qe(e,t);const l=yi(e,t,s),c=await Qe(l.input,l.init);if(!await Nv(c)||(Lv(),s=await ki(),!s))return c;const u=yi(e,t,s);return Qe(u.input,u.init)}function Mv(){wi||typeof window>"u"||(wi=!0,Qe=window.fetch.bind(window),window.fetch=((e,t)=>jv(e,t)))}class Rr extends Error{constructor(t,a,o){super(t),this.status=a,this.code=o,this.name="PlatformAuthApiError"}}function Ev(e,t){return e instanceof Rr&&e.code===t}async function pd(e,t){try{const a=await e.json(),o=Gv(a);if(typeof o?.code=="string"){const n=o.code,s=t.errorMessagesByCode?.[n];return s?{message:s,code:n}:{message:t.fallbackMessageForStatus(e.status),code:n}}if(typeof o?.message=="string")return{message:o.message,code:null}}catch{}return{message:t.fallbackMessageForStatus(e.status),code:null}}async function Sa(e){const t=await fetch("/api/auth/status",{headers:{Accept:"application/json"},signal:e.signal});return Ot(t,e)}async function Iv(e,t){const a=await fetch("/api/auth/login",{method:"POST",headers:{Accept:"application/json","content-type":"application/json"},body:JSON.stringify(e),signal:t.signal});return Ot(a,t)}async function Bv(e,t){const a=await fetch("/api/auth/google/login",{method:"POST",headers:{Accept:"application/json","content-type":"application/json"},body:JSON.stringify(e),signal:t.signal});return Ot(a,t)}async function Fv(e,t,a){const o=await fetch("/api/auth/reauth",{method:"POST",headers:{Accept:"application/json","content-type":"application/json","x-cats-csrf-token":t},body:JSON.stringify(e),signal:a.signal});if(!o.ok){const n=await pd(o,a);throw new Rr(n.message,o.status,n.code)}return await o.json()}async function Ov(e,t,a,o){const n=await fetch("/api/auth/google/link",{method:"POST",headers:{Accept:"application/json","content-type":"application/json","x-cats-csrf-token":t,"x-cats-auth-action":a},body:JSON.stringify(e),signal:o.signal});return Ot(n,o)}async function Wv(e,t,a){const o=await fetch("/api/auth/google/unlink",{method:"POST",headers:{Accept:"application/json","content-type":"application/json","x-cats-csrf-token":e,"x-cats-auth-action":t},body:JSON.stringify({}),signal:a.signal});return Ot(o,a)}async function Uv(e,t){const a=await fetch("/api/auth/repair/first-admin",{method:"POST",headers:{Accept:"application/json","content-type":"application/json"},body:JSON.stringify(e),signal:t.signal});return Ot(a,t)}async function Hv(e,t){const a=await fetch("/api/auth/logout",{method:"POST",headers:{Accept:"application/json","content-type":"application/json","x-cats-csrf-token":e},body:JSON.stringify({}),signal:t.signal});return Ot(a,t)}async function za(e,t){const a=await Sa(t),o=vi(a);try{return await e(o)}catch(s){if(!Ev(s,"E_CSRF_MISMATCH"))throw s}const n=await Sa(t);return e(vi(n))}async function Ot(e,t){if(!e.ok){const o=await pd(e,t);throw new Rr(o.message,e.status,o.code)}const a=await e.json();return Sv(a.csrfToken),a}function vi(e){const t=e.csrfToken?.trim();if(!t)throw new Rr("Authenticated session did not return a Cats CSRF token.",403,"E_CSRF_MISMATCH");return t}function Gv(e){if(typeof e!="object"||e===null||!("error"in e))return null;const t=e.error;return typeof t=="object"&&t!==null?t:null}const Ae={unauthenticated:"E_UNAUTHENTICATED",forbidden:"E_FORBIDDEN",csrfMismatch:"E_CSRF_MISMATCH",reauthRequired:"E_REAUTH_REQUIRED",identityConflict:"E_IDENTITY_CONFLICT"},Ci="https://accounts.google.com/gsi/client",_v="g_csrf_token";let Ha=null;function Kv(e=document,t=window){return t.google?.accounts?.id?Promise.resolve(t.google):Ha||(Ha=new Promise((a,o)=>{const n=e.querySelector(`script[src="${Ci}"]`),s=n??e.createElement("script");s.src=Ci,s.async=!0,s.defer=!0,s.onload=()=>{if(t.google?.accounts?.id){a(t.google);return}o(new Error("Google Identity Services did not initialize."))},s.onerror=()=>{o(new Error("Google Identity Services could not be loaded."))},n||e.head.appendChild(s)}),Ha)}function qv(){const e=new Uint8Array(24);globalThis.crypto.getRandomValues(e);let t="";for(const a of e)t+=String.fromCharCode(a);return btoa(t).replace(/\+/gu,"-").replace(/\//gu,"_").replace(/=+$/u,"")}function $v(e,t=document){const a=t.location.protocol==="https:"?"; Secure":"";t.cookie=`${_v}=${encodeURIComponent(e)}; Path=/; SameSite=Lax${a}`}function hd({clientId:e,disabled:t,onCredential:a,onError:o}){const n=d.useRef(null);return d.useEffect(()=>{if(t)return;let s=!1;const l=qv();return $v(l),Kv().then(c=>{s||!n.current||(c.accounts.id.initialize({client_id:e,callback:u=>{const p=u.credential?.trim();if(!p){o(new Error("Google did not return an ID token."));return}a({credential:p,csrfToken:l})}}),n.current.innerHTML="",c.accounts.id.renderButton(n.current,{type:"standard",theme:"outline",size:"large",text:"signin_with",shape:"rectangular",logo_alignment:"left",width:320}))}).catch(c=>{s||o(c instanceof Error?c:new Error("Google sign-in failed."))}),()=>{s=!0}},[e,t,a,o]),r.jsx("div",{className:"googleSignInButton",ref:n})}function zv({purpose:e,busy:t,onSubmit:a,onCancel:o}){const{t:n}=W(),[s,l]=d.useState(""),c=d.useRef(null),u=d.useRef(null),p=d.useRef(null);d.useEffect(()=>(p.current=document.activeElement,u.current?.focus(),()=>{p.current instanceof HTMLElement&&p.current.focus()}),[]);const g=d.useCallback(f=>{if(f.key==="Escape"&&!t){f.preventDefault(),o();return}if(f.key!=="Tab"||!c.current)return;const w=c.current.querySelectorAll('button:not([disabled]), input:not([disabled]), [href], select, textarea, [tabindex]:not([tabindex="-1"])');if(w.length===0)return;const b=w[0],m=w[w.length-1],C=document.activeElement;f.shiftKey&&C===b?(f.preventDefault(),m.focus()):!f.shiftKey&&C===m&&(f.preventDefault(),b.focus())},[t,o]);d.useEffect(()=>(document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)),[g]);function h(f){f.preventDefault(),!(t||!s)&&a(s)}const k=n(e==="link_google"?i.settingsAccountReauthLinkDescription:i.settingsAccountReauthUnlinkDescription);return r.jsx("div",{className:"settingsRuntimeConfirmOverlay",role:"dialog","aria-modal":"true","aria-labelledby":"cats-reauth-title",children:r.jsxs("div",{className:"settingsRuntimeConfirmCard",ref:c,children:[r.jsx("h3",{id:"cats-reauth-title",children:n(i.settingsAccountReauthTitle)}),r.jsx("p",{className:"heroNote",children:k}),e==="unlink_google"?r.jsx("p",{className:"heroNote",children:n(i.settingsAccountUnlinkWarning)}):null,r.jsxs("form",{className:"settingsAccountReauthForm",onSubmit:h,children:[r.jsxs("label",{className:"settingsAccountReauthField",children:[r.jsx("span",{className:"settings-option-row__label",children:n(i.settingsAccountReauthPasswordLabel)}),r.jsx("input",{ref:u,className:"textInput",type:"password",name:"password",autoComplete:"current-password",value:s,disabled:t,placeholder:n(i.settingsAccountReauthPasswordPlaceholder),onChange:f=>l(f.target.value)})]}),r.jsxs("div",{className:"setupActionGroup",children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:t,onClick:o,children:n(i.settingsAccountReauthCancel)}),r.jsx("button",{type:"submit",className:"primaryButton",disabled:t||!s,children:n(t?i.settingsAccountReauthSubmitting:i.settingsAccountReauthSubmit)})]})]})]})})}function Vv({showToast:e}){const{t}=W(),[a,o]=d.useState(null),[n,s]=d.useState({kind:"idle"}),l=d.useRef(null),c=d.useCallback((x,T)=>({fallbackMessageForStatus:N=>t(i[T],{status:N}),errorMessagesByCode:{[Ae.unauthenticated]:t(i[x]),[Ae.forbidden]:t(i[x]),[Ae.csrfMismatch]:t(i.settingsGeneralSignOutCsrfError),[Ae.reauthRequired]:t(i.settingsAccountReauthRequired)}}),[t]),u=d.useCallback(()=>({fallbackMessageForStatus:x=>t(i.settingsAccountLinkFailedWithStatus,{status:x})}),[t]);d.useEffect(()=>{let x=!0;return Sa(u()).then(T=>{x&&o(T)}).catch(()=>{}),()=>{x=!1,l.current=null}},[u]);const p=d.useCallback(async()=>{try{o(await Sa(u()))}catch{}},[u]),g=d.useCallback(()=>{l.current=null,s({kind:"idle"})},[]),h=d.useCallback(x=>{l.current=null,s({kind:"reauthenticating",purpose:x,busy:!1})},[]),k=d.useCallback(async x=>{s({kind:"submitting"});const T=c("settingsAccountUnlinkFailed","settingsAccountUnlinkFailedWithStatus");try{const N=await za(A=>Wv(A,x,{...T,errorMessagesByCode:{...T.errorMessagesByCode,[Ae.identityConflict]:t(i.settingsAccountUnlinkConflict)}}),T);o(N)}catch(N){e(N instanceof Error?N.message:t(i.settingsAccountUnlinkFailed)),await p()}finally{g()}},[c,g,p,e,t]),f=d.useCallback(async x=>{const T=l.current;if(!T){g(),e(t(i.settingsAccountReauthRequired));return}s({kind:"submitting"});const N=c("settingsAccountLinkFailed","settingsAccountLinkFailedWithStatus");try{const A=await za(R=>Ov({credential:x.credential,csrfToken:x.csrfToken},R,T,{...N,errorMessagesByCode:{...N.errorMessagesByCode,[Ae.identityConflict]:t(i.settingsAccountLinkConflict)}}),N);o(A)}catch(A){e(A instanceof Error?A.message:t(i.settingsAccountLinkFailed)),await p()}finally{g()}},[c,g,p,e,t]),w=d.useCallback(async(x,T)=>{s({kind:"reauthenticating",purpose:x,busy:!0});const N=c("settingsAccountReauthFailed","settingsAccountReauthFailedWithStatus"),A={...N,errorMessagesByCode:{...N.errorMessagesByCode,[Ae.unauthenticated]:t(i.settingsAccountReauthInvalidPassword)}};let R;try{const P=await za(I=>Fv({password:T,purpose:x},I,A),A);R=P.actionToken,l.current=P.actionToken}catch(P){g(),e(P instanceof Error?P.message:t(i.settingsAccountReauthFailed));return}if(x==="link_google"){s({kind:"awaitingGoogle"});return}await k(R)},[c,k,g,e,t]),b=d.useCallback(()=>{g(),e(t(i.settingsAccountGoogleUnavailableError))},[g,e,t]),m=a?.loginMethods??null,C=a?.providers.google.enabled&&a.providers.google.clientId?.trim()||null,v=m?.google.linked??!1,y=m?.localPassword.linked??!1,L=n.kind==="submitting";return r.jsxs(r.Fragment,{children:[a?.principal?r.jsx("p",{className:"heroNote",children:t(i.settingsAccountSignedInAs,{name:a.principal.email??a.principal.displayName})}):null,r.jsx(ne,{label:t(i.settingsAccountLocalPasswordLabel),description:t(i.settingsAccountLocalPasswordDescription),control:r.jsx(ht,{tone:y?"ready":"muted",children:t(y?i.settingsAccountLocalPasswordLinked:i.settingsAccountLocalPasswordMissing)})}),r.jsx(ne,{label:t(i.settingsAccountGoogleLabel),description:t(C?i.settingsAccountGoogleDescription:i.settingsAccountGoogleUnavailableHint),control:r.jsx(ht,{tone:v?"ready":C?"warm":"muted",children:v?t(i.settingsAccountGoogleLinkedStatus,{email:m?.google.email??""}):t(C?i.settingsAccountGoogleNotLinkedStatus:i.settingsAccountGoogleUnavailableStatus)})}),C&&m?r.jsx("div",{className:"setupActionGroup",children:v?r.jsx("button",{type:"button",className:"secondaryButton",disabled:n.kind!=="idle"||!y,onClick:()=>h("unlink_google"),children:t(L?i.settingsAccountGoogleUnlinkingLabel:i.settingsAccountGoogleUnlinkButton)}):r.jsx("button",{type:"button",className:"secondaryButton",disabled:n.kind!=="idle",onClick:()=>h("link_google"),children:t(L?i.settingsAccountGoogleLinkingLabel:i.settingsAccountGoogleLinkButton)})}):null,n.kind==="awaitingGoogle"&&C?r.jsxs("div",{className:"settingsAccountGoogleStep",children:[r.jsx("p",{className:"settings-option-row__label",children:t(i.settingsAccountGoogleContinueTitle)}),r.jsx("p",{className:"heroNote",children:t(i.settingsAccountGoogleContinueDescription)}),r.jsx(hd,{clientId:C,onCredential:x=>{f(x)},onError:b}),r.jsx("button",{type:"button",className:"secondaryButton",onClick:g,children:t(i.settingsAccountReauthCancel)})]}):null,n.kind==="reauthenticating"?r.jsx(zv,{purpose:n.purpose,busy:n.busy,onSubmit:x=>{w(n.purpose,x)},onCancel:g}):null]})}function Yv(e){return e==="auto"||e==="en"||e==="zh-TW"}function no(e,t){return{assistantResponseLanguage:e?.assistantResponseLanguage??"unspecified",uiLanguagePreference:e?.uiLanguagePreference??t}}function Qv(e,t){const a=e==="zh-TW"?"zh-Hant":e==="zh-CN"?"zh-Hans":e;try{return new Intl.DisplayNames([t],{type:"language"}).of(a)??e}catch{return e}}function Jv({payload:e,onPayloadUpdate:t}){const a=je(),{languagePreference:o,locale:n,setLanguagePreference:s,t:l}=W(),[c,u]=d.useState(!1),[p,g]=d.useState(!1),[h,k]=d.useState(!1),[f,w]=d.useState(!1),[b,m]=d.useState(!1),[C,v]=d.useState(e.ownerDisplayName),[y,L]=d.useState(!1),x=d.useRef(!1),T=on(),{toasts:N,showToast:A}=at();d.useEffect(()=>{v(e.ownerDisplayName)},[e.ownerDisplayName]);async function R(j,G){try{if(!(await fetch("/api/core/owner-profile",{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({avatarUrl:j})})).ok)throw new Error(G);t({...e,ownerAvatarUrl:j}),lt()}catch(J){A(J instanceof Error?J.message:G)}}async function P(){if(x.current){x.current=!1;return}const j=C.trim();if(!j){v(e.ownerDisplayName);return}if(j===e.ownerDisplayName){v(e.ownerDisplayName);return}L(!0);try{if(!(await fetch("/api/core/owner-profile",{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({displayName:j})})).ok)throw new Error(l("settingsGeneralUpdateNameError"));t({...e,ownerDisplayName:j}),lt()}catch(G){A(G instanceof Error?G.message:l("settingsGeneralUpdateNameError"))}finally{L(!1)}}async function I(j,G){const J=e.lobby;t({...e,lobby:{...e.lobby,animationMode:j}}),g(!0);try{const X=await fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({lobbyAnimationMode:j})});if(!X.ok)throw new Error(G);const oe=await X.json();t({...e,lobby:{...e.lobby,animationMode:oe.lobbyAnimationMode??j}}),lt()}catch(X){t({...e,lobby:J}),A(X instanceof Error?X.message:G)}finally{g(!1)}}async function O(j){if(j===o)return;const G=o,J=no(e.language,G);s(j),t({...e,language:{...J,uiLanguagePreference:j}}),k(!0);try{const X=await fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({uiLanguagePreference:j})});if(!X.ok)throw new Error(l("settingsGeneralUpdateLanguageError"));const oe=await X.json(),we=Yv(oe.uiLanguagePreference)?oe.uiLanguagePreference:j;s(we),t({...e,language:{...J,uiLanguagePreference:we}}),lt()}catch(X){s(G),t({...e,language:J}),A(X instanceof Error?X.message:l("settingsGeneralUpdateLanguageError"))}finally{k(!1)}}async function E(j){const G=no(e.language,o);if(j!==G.assistantResponseLanguage){t({...e,language:{...G,assistantResponseLanguage:j}}),w(!0);try{const J=await fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({assistantResponseLanguage:j})});if(!J.ok)throw new Error(l("settingsGeneralUpdateAssistantLanguageError"));const X=await J.json(),oe=fi(X.assistantResponseLanguage)?X.assistantResponseLanguage:j;t({...e,language:{...G,assistantResponseLanguage:oe}}),lt()}catch(J){t({...e,language:G}),A(J instanceof Error?J.message:l("settingsGeneralUpdateAssistantLanguageError"))}finally{w(!1)}}}async function $(j){try{T.update({sidecarMode:j})}catch(G){A(G instanceof Error?G.message:l("settingsGeneralUpdateGuideCatModeError"))}}async function _(){m(!0);try{const j={fallbackMessageForStatus:G=>l("settingsGeneralSignOutFailedWithStatus",{status:G}),errorMessagesByCode:{[Ae.csrfMismatch]:l("settingsGeneralSignOutCsrfError"),[Ae.forbidden]:l("settingsGeneralSignOutForbiddenError"),[Ae.unauthenticated]:l("settingsGeneralSignOutUnauthenticated")}};await za(G=>Hv(G,j),j),a("/login",{replace:!0})}catch(j){A(j instanceof Error?j.message:l("settingsGeneralSignOutFailed"))}finally{m(!1)}}const ee=e.ownerAvatarUrl,B=fe(C||e.ownerDisplayName),q=ct(),F=ka(e.guideCat?.status),Q=e.lobby??{animationMode:"reduced"},me=no(e.language,o).assistantResponseLanguage,U=d.useMemo(()=>ud.map(j=>({code:j,label:Qv(j,n)})),[n]);return r.jsxs(r.Fragment,{children:[r.jsx(ye,{header:r.jsx(re,{title:l("settingsGeneralProfileTitle"),description:l("settingsGeneralProfileDescription")}),children:r.jsxs("div",{className:"settings-sub-card",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:l("settingsGeneralAvatarLabel")}),r.jsxs("div",{className:"settingsOwnerAvatarDock",children:[r.jsx("button",{type:"button",className:"settingsOwnerAvatar",style:ee?{backgroundImage:`url(${ee})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:void 0,onClick:()=>u(!0),"aria-label":l(ee?"settingsGeneralAvatarChangeLabel":"settingsGeneralAvatarUploadLabel"),"data-tooltip":l(ee?"settingsGeneralAvatarChangeLabel":"settingsGeneralAvatarUploadLabel"),children:ee?"":B}),r.jsx("span",{className:"settingsOwnerAvatarCamera","aria-hidden":"true",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),r.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}),ee?r.jsx("button",{type:"button",className:"settingsOwnerAvatarRemove",onClick:j=>{j.stopPropagation(),R(null,l("settingsGeneralRemoveAvatarError"))},"aria-label":l("settingsGeneralAvatarRemoveLabel"),"data-tooltip":l("settingsGeneralAvatarRemoveLabel"),children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:l("settingsGeneralNameLabel")}),r.jsx("input",{className:"textInput",value:C,onChange:j=>v(j.target.value),onBlur:()=>{P()},onKeyDown:j=>{j.key==="Enter"?(j.preventDefault(),P()):j.key==="Escape"&&(j.preventDefault(),x.current=!0,v(e.ownerDisplayName),j.currentTarget.blur())},disabled:y,"aria-busy":y})]})]})}),r.jsxs(ye,{header:r.jsx(re,{title:l("settingsGeneralAccountTitle"),description:l("settingsGeneralAccountDescription")}),children:[r.jsx(Vv,{showToast:A}),r.jsx("div",{className:"setupActionGroup",children:r.jsx("button",{type:"button",className:"secondaryButton",disabled:b,onClick:()=>{_()},children:l(b?"settingsGeneralSigningOutButton":"settingsGeneralSignOutButton")})})]}),r.jsxs(ye,{header:r.jsx(re,{title:l("settingsGeneralLanguageTitle"),description:l("settingsGeneralLanguageDescription")}),children:[r.jsx(ne,{label:l("settingsGeneralLanguagePreferenceLabel"),description:l("settingsGeneralLanguagePreferenceDescription"),layout:"stack",control:r.jsxs("select",{className:"textInput",value:o,disabled:h,onChange:j=>{O(j.target.value)},"aria-label":l("settingsGeneralLanguageSelectAriaLabel"),children:[r.jsx("option",{value:"auto",children:l("settingsGeneralLanguageAutoOption")}),r.jsx("option",{value:"en",children:l("settingsGeneralLanguageEnglishOption")}),r.jsx("option",{value:"zh-TW",children:l("settingsGeneralLanguageTraditionalChineseOption")})]})}),r.jsx(ne,{label:l("settingsGeneralAssistantLanguagePreferenceLabel"),description:l("settingsGeneralAssistantLanguagePreferenceDescription"),layout:"stack",control:r.jsxs("select",{className:"textInput",value:me,disabled:f,onChange:j=>{const G=j.target.value;fi(G)&&E(G)},"aria-label":l("settingsGeneralAssistantLanguageSelectAriaLabel"),children:[r.jsx("option",{value:"unspecified",children:l("settingsGeneralAssistantLanguageUnspecifiedOption")}),U.map(j=>r.jsx("option",{value:j.code,children:j.label},j.code))]})})]}),r.jsxs(ye,{header:r.jsx(re,{title:l("settingsGeneralLobbyMotionTitle"),description:l("settingsGeneralLobbyMotionDescription")}),children:[r.jsx(ne,{asChoice:!0,label:l("settingsGeneralLobbyMotionOffLabel"),description:l("settingsGeneralLobbyMotionOffDescription"),control:r.jsx("input",{type:"radio",name:"lobby-animation-mode",checked:Q.animationMode==="off",disabled:p,onChange:()=>{I("off",l("settingsGeneralUpdateLobbyAnimationError"))}})}),r.jsx(ne,{asChoice:!0,label:l("settingsGeneralLobbyMotionReducedLabel"),description:l("settingsGeneralLobbyMotionReducedDescription"),control:r.jsx("input",{type:"radio",name:"lobby-animation-mode",checked:Q.animationMode==="reduced",disabled:p,onChange:()=>{I("reduced",l("settingsGeneralUpdateLobbyAnimationError"))}})}),r.jsx(ne,{asChoice:!0,label:l("settingsGeneralLobbyMotionFullLabel"),description:l("settingsGeneralLobbyMotionFullDescription"),control:r.jsx("input",{type:"radio",name:"lobby-animation-mode",checked:Q.animationMode==="full",disabled:p,onChange:()=>{I("full",l("settingsGeneralUpdateLobbyAnimationError"))}})})]}),e.guideCat?r.jsx(ye,{header:r.jsx(re,{title:l("settingsGeneralGuideCatAssistTitle"),description:F?l("settingsGeneralGuideCatAssistEnabledDescription",{guideCatName:q}):l("settingsGeneralGuideCatAssistDisabledDescription",{guideCatName:q})}),children:F?r.jsxs(r.Fragment,{children:[r.jsx(ne,{asChoice:!0,label:l("settingsGeneralGuideCatAutoLabel"),description:l("settingsGeneralGuideCatAutoDescription"),control:r.jsx("input",{type:"radio",name:"guide-cat-sidecar-mode",checked:T.prefs.sidecarMode==="auto",onChange:()=>{$("auto")}})}),r.jsx(ne,{asChoice:!0,label:l("settingsGeneralGuideCatSidePanelLabel"),description:l("settingsGeneralGuideCatSidePanelDescription"),control:r.jsx("input",{type:"radio",name:"guide-cat-sidecar-mode",checked:T.prefs.sidecarMode==="drawer",onChange:()=>{$("drawer")}})}),r.jsx(ne,{asChoice:!0,label:l("settingsGeneralGuideCatBubbleLabel"),description:l("settingsGeneralGuideCatBubbleDescription"),control:r.jsx("input",{type:"radio",name:"guide-cat-sidecar-mode",checked:T.prefs.sidecarMode==="bubble",onChange:()=>{$("bubble")}})})]}):r.jsx("div",{className:"setupActionGroup",children:r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>a("/settings/assistants"),children:l("settingsGeneralOpenAssistantsButton")})})}):null,c?r.jsx(Jt,{onSave:j=>{u(!1),R(j,l("settingsGeneralSaveAvatarError"))},onClose:()=>u(!1),initialDataUrl:ee??null}):null,r.jsx(rt,{toasts:N})]})}function Xv(){const e=je(),{t}=W();return r.jsx(ye,{header:r.jsx(re,{title:t(i.settingsRouteTitleNotFound),description:t(i.settingsRouteNotFoundDescription)}),children:r.jsx("div",{className:"settingsActionRow",children:r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>e("/settings/general"),children:t(i.settingsRouteNotFoundOpenGeneral)})})})}let md={inflight:!1};const Oo=new Set,Wo=new Set;let Ga=null;function Si(e){md=e;for(const t of Oo)t()}function Li(e){for(const t of Wo)t(e)}function Zv(e){return Oo.add(e),()=>{Oo.delete(e)}}function eC(e){return Wo.add(e),()=>{Wo.delete(e)}}function Ri(){return md}function gd(){if(Ga)return Ga;Si({inflight:!0});const e=Wg().then(t=>(Li({type:"success",value:t}),t),t=>{throw Li({type:"error",error:t}),t}).finally(()=>{Ga=null,Si({inflight:!1})});return Ga=e,e}const fd={check:"check",install:"apply",upgrade:"upgrade",repair:"force",uninstall:"uninstall"},Ct=Oe("en");function Pi(e,t){switch(t){case"check":return e.supportsCheckOnly;case"install":return e.supportsApply;case"upgrade":return e.supportsUpgrade;case"repair":return e.supportsForce;case"uninstall":return e.supportsUninstall}}function tC(e,t=Ct){const a=["check","install","upgrade","repair","uninstall"],o=Ma(e,t);return a.map(n=>({action:n,label:sr(n,t),available:e.supported&&e.available&&Pi(e,n),reason:e.supported?e.available?Pi(e,n)?null:t(i.settingsRuntimeHelperUnsupportedActionReason,{helperLabel:o,actionLabel:sr(n,t).toLowerCase()}):t(i.settingsRuntimeHelperUnavailableReason,{helperLabel:o}):rC(e.unsupportedReason,t)}))}function sr(e,t=Ct){switch(e){case"check":return t(i.settingsRuntimeActionCheckLabel);case"install":return t(i.settingsRuntimeActionInstallLabel);case"upgrade":return t(i.settingsRuntimeActionUpgradeLabel);case"repair":return t(i.settingsRuntimeActionRepairLabel);case"uninstall":return t(i.settingsRuntimeActionUninstallLabel)}}function Ma(e,t=Ct){return Be(e.label,t)}function aC(e,t){switch(e){case"Windows, macOS, or Linux hosts":return t(i.settingsRuntimePlatformSupportAllDesktop);case"Windows hosts":return t(i.settingsRuntimePlatformSupportWindows);case"Windows hosts with WSL support":return t(i.settingsRuntimePlatformSupportWindowsWsl);case"macOS hosts":return t(i.settingsRuntimePlatformSupportMacos);case"Linux hosts":return t(i.settingsRuntimePlatformSupportLinux);default:return e}}function rC(e,t=Ct){const a=String(e??"").trim();if(!a)return null;const o=a.match(/^(.+) is currently only supported on (.+)\.$/u);return o?t(i.settingsRuntimeHelperUnsupportedPlatformReason,{helperLabel:Be(o[1],t),platformSupport:aC(o[2],t)}):a}function ir(e,t=Ct){switch(e){case"auth_required":return t(i.settingsRuntimeLifecycleStatusAuthRequired);case"blocked":return t(i.settingsRuntimeLifecycleStatusBlocked);case"changes_required":return t(i.settingsRuntimeLifecycleStatusChangesRequired);case"failed":return t(i.settingsRuntimeLifecycleStatusFailed);case"not_installed":return t(i.settingsRuntimeLifecycleStatusNotInstalled);case"preview":return t(i.settingsRuntimeLifecycleStatusPreview);case"ready":return t(i.settingsRuntimeLifecycleStatusReady);case"restart_required":return t(i.settingsRuntimeLifecycleStatusRestartRequired);case"uninstalled":return t(i.settingsRuntimeLifecycleStatusUninstalled);default:return String(e??"")}}function so(e,t){switch(e){case"apply":return t(i.settingsRuntimeLifecycleModeApply);case"check":return t(i.settingsRuntimeLifecycleModeCheck);case"force":return t(i.settingsRuntimeLifecycleModeForce);case"uninstall":return t(i.settingsRuntimeLifecycleModeUninstall);case"upgrade":return t(i.settingsRuntimeLifecycleModeUpgrade);default:return String(e??"")}}function Ai(e,t=Ct){const a=String(e??"").trim();let o;switch(a){case"Launch the target WSL distro once to finish first-user setup, then rerun the packaged setup check.":return t(i.settingsRuntimeLifecycleDetailLaunchWslFirstBoot);case"Start Docker Desktop and wait for the engine to become ready, then rerun the packaged setup check.":return t(i.settingsRuntimeLifecycleDetailStartDockerWarmUp)}return o=a.match(/^Run (.+) to install the missing host substrate flagged by the readiness audit\.$/u),o?t(i.settingsRuntimeLifecycleDetailRunMissingHostSubstrate,{helperLabel:Be(o[1],t)}):(o=a.match(/^Restart the host or Windows session, then rerun (.+) in (.+) mode\.$/u),o?t(i.settingsRuntimeLifecycleDetailRestartThenRerunMode,{helperLabel:Be(o[1],t),mode:so(o[2],t)}):(o=a.match(/^Restart Windows or the current session, then rerun (.+)\.$/u),o?t(i.settingsRuntimeLifecycleDetailRestartThenRerun,{helperLabel:Be(o[1],t)}):(o=a.match(/^Relaunch Cats Desktop Host, then rerun (.+) to verify the updated packaged setup state\.$/u),o?t(i.settingsRuntimeLifecycleDetailRelaunchThenVerify,{helperLabel:Be(o[1],t)}):(o=a.match(/^(.+) requires an elevated host step before it can continue\.$/u),o?t(i.settingsRuntimeLifecycleDetailElevationRequired,{helperLabel:Be(o[1],t)}):(o=a.match(/^Complete the required sign-in flow, then rerun (.+) in (.+) mode\.$/u),o?t(i.settingsRuntimeLifecycleDetailAuthThenRerunMode,{helperLabel:Be(o[1],t),mode:so(o[2],t)}):(o=a.match(/^Retry (.+) after addressing the last failure\.$/u),o?t(i.settingsRuntimeLifecycleDetailRetryAfterFailure,{helperLabel:Be(o[1],t)}):(o=a.match(/^Run (.+) to install the missing packaged setup requirement\.$/u),o?t(i.settingsRuntimeLifecycleDetailRunMissingRequirement,{helperLabel:Be(o[1],t)}):(o=a.match(/^Finish the manual follow-through for (.+), then rerun a verification step\.$/u),o?t(i.settingsRuntimeLifecycleDetailFinishManualFollowThrough,{helperLabel:Be(o[1],t)}):(o=a.match(/^Run (.+) again to apply the remaining packaged setup changes\.$/u),o?t(i.settingsRuntimeLifecycleDetailRunApplyRemainingChanges,{helperLabel:Be(o[1],t)}):(o=a.match(/^Rerun (.+) in check mode if you want to verify the packaged setup state again\.$/u),o?t(i.settingsRuntimeLifecycleDetailRerunCheckToVerify,{helperLabel:Be(o[1],t)}):(o=a.match(/^(.+) (check|apply|upgrade|force|uninstall) finished with (.+)\.$/u),o?t(i.settingsRuntimeLifecycleDetailFinishedWithStatus,{helperLabel:Be(o[1],t),mode:so(o[2],t),status:ir(o[3],t)||o[3]}):ir(a,t)||a)))))))))))}function Be(e,t){if(e==="Windows PowerShell + PATH readiness helper")return t(i.settingsRuntimeHelperLabelWindowsCliReadiness);if(e==="Windows Microsoft Visual C++ 2015-2022 Redistributable (x64)")return t(i.settingsRuntimeHelperLabelWindowsVcRedist);let a=e.match(/^(Windows|Linux|macOS) Node\.js LTS host installer$/u);return a?t(i.settingsRuntimeHelperLabelNodeHostInstaller,{platform:a[1]}):(a=e.match(/^(Windows|Linux|macOS) GitHub CLI host installer$/u),a?t(i.settingsRuntimeHelperLabelGithubCliHostInstaller,{platform:a[1]}):(a=e.match(/^(Windows|Linux|macOS) npm prefix and PATH prerequisite helper$/u),a?t(i.settingsRuntimeHelperLabelNpmPrefixHelper,{platform:a[1]}):(a=e.match(/^(Windows|Linux|macOS) setup readiness audit$/u),a?t(i.settingsRuntimeHelperLabelSetupReadinessAudit,{platform:a[1]}):(a=e.match(/^(Windows|Linux|macOS) packaged setup background process helper$/u),a?t(i.settingsRuntimeHelperLabelPackagedBackgroundProcessHelper,{platform:a[1]}):(a=e.match(/^(Windows|Linux|macOS) packaged provider uninstall helper$/u),a?t(i.settingsRuntimeHelperLabelPackagedProviderUninstallHelper,{platform:a[1]}):(a=e.match(/^(Windows|Linux|macOS) packaged npm-global CLI installer helper$/u),a?t(i.settingsRuntimeHelperLabelPackagedNpmGlobalCliInstallerHelper,{platform:a[1]}):(a=e.match(/^(Windows|Linux|macOS) native (.+) installer$/u),a?t(i.settingsRuntimeHelperLabelNativeProviderInstaller,{platform:a[1],providerLabel:a[2]}):(a=e.match(/^(Windows|Linux|macOS) (.+) local-model installer$/u),a?t(i.settingsRuntimeHelperLabelLocalModelInstaller,{platform:a[1],providerLabel:a[2]}):(a=e.match(/^(Windows|Linux|macOS) (.+) installer$/u),a?t(i.settingsRuntimeHelperLabelProviderInstaller,{platform:a[1],providerLabel:a[2]}):e)))))))))}const oC={check:new Set(["ready","not_installed","changes_required","auth_required"]),install:new Set(["ready"]),upgrade:new Set(["ready"]),repair:new Set(["ready"]),uninstall:new Set(["uninstalled","not_installed"])},nC={check:new Set(["failed"]),install:new Set(["changes_required","auth_required","restart_required","not_installed"]),upgrade:new Set(["changes_required","auth_required","restart_required"]),repair:new Set(["changes_required","auth_required","restart_required"]),uninstall:new Set(["changes_required","blocked","preview"])};function sC(e,t){if(e.runState==="failed")return"failure";const a=e.status??"";return a==="failed"?"failure":nC[t].has(a)?t==="check"?"failure":"partial":oC[t].has(a)?"success":"partial"}function iC(e,t,a,o){const n=a?.state?.lastAction??null,s=sr(t,o).toLowerCase(),l=fd[t];if(!n||n.helperId!==e.id||n.mode!==l)return{kind:"failure",helperId:e.id,action:t,status:null,summary:"",plannedActions:[],appliedChanges:[],warnings:[],manualSteps:[],message:o(i.settingsRuntimeActionNoResult,{helperLabel:e.label,actionLabel:s})};const c=sC(n,t),u=n.status,p=Ma(e,o),g=(()=>{if(c==="success")return o(u==="not_installed"&&t==="uninstall"?i.settingsRuntimeActionSuccessNothingToRemove:i.settingsRuntimeActionSuccessComplete,{helperLabel:p,actionLabel:s});if(c==="partial"){const k=u??"changes_required",f=n.warnings[0]??n.manualSteps[0];return f?o(i.settingsRuntimeActionPartialWithDetail,{helperLabel:p,actionLabel:s,status:ir(k,o),detail:Ai(f,o)}):o(i.settingsRuntimeActionPartial,{helperLabel:p,actionLabel:s,status:ir(k,o)})}const h=n.summary||n.warnings[0]||u;return h?o(i.settingsRuntimeActionFailedWithDetail,{helperLabel:p,actionLabel:s,detail:Ai(h,o)}):o(i.settingsRuntimeActionFailed,{helperLabel:p,actionLabel:s})})();return{kind:c,helperId:e.id,action:t,status:u,summary:n.summary??"",plannedActions:n.plannedActions??[],appliedChanges:n.appliedChanges??[],warnings:n.warnings??[],manualSteps:n.manualSteps??[],message:g}}async function wd(e,t,a){const o=gt();if(o?.runSetupHelper)return await o.runSetupHelper(e,t,a)}async function lC(e,t,a=Ct){if(!gt()?.runSetupHelper)return{kind:"failure",helperId:e.id,action:t,status:null,summary:"",plannedActions:[],appliedChanges:[],warnings:[],manualSteps:[],message:a(i.settingsRuntimeHostBridgeUnavailableClient)};try{const n=await wd(e.id,fd[t]),s=iC(e,t,n,a);return(s.kind==="success"||s.kind==="partial")&&gd().catch(()=>{}),s}catch(n){return{kind:"failure",helperId:e.id,action:t,status:null,summary:"",plannedActions:[],appliedChanges:[],warnings:[],manualSteps:[],message:n instanceof Error?n.message:a(i.settingsRuntimeActionFailed,{helperLabel:Ma(e,a),actionLabel:sr(t,a).toLowerCase()})}}}async function cC(e,t=Ct){if(!gt()?.runSetupHelper)return{helperId:e.id,status:null,plannedActions:[],warnings:[],manualSteps:[],systemInstallPath:null,available:!1,message:t(i.settingsRuntimeHostBridgeUnavailable)};try{const n=(await wd(e.id,"uninstall",{dryRun:!0}))?.state?.lastAction??null;if(!n||n.helperId!==e.id||n.mode!=="uninstall")return{helperId:e.id,status:null,plannedActions:[],warnings:[],manualSteps:[],systemInstallPath:null,available:!1,message:t(i.settingsRuntimePreviewMissingResult)};const s=(n.warnings??[]).find(l=>l.startsWith("system_install_remains_at:"));return{helperId:e.id,status:n.status,plannedActions:n.plannedActions??[],warnings:n.warnings??[],manualSteps:n.manualSteps??[],systemInstallPath:s?s.slice(26):null,available:!0,message:null}}catch(o){return{helperId:e.id,status:null,plannedActions:[],warnings:[],manualSteps:[],systemInstallPath:null,available:!1,message:o instanceof Error?o.message:t(i.settingsRuntimePreviewFailed)}}}async function dC(){const e=gt();if(!e?.getSetupSnapshot)return[];try{const t=await e.getSetupSnapshot();return Array.isArray(t.helpers)?t.helpers:[]}catch{return[]}}function uC(e){return e.filter(t=>!t.supported||!t.available?!1:t.supportsApply||t.supportsUpgrade||t.supportsForce||t.supportsUninstall)}function pC(e,t,a){const o=Sr(e);if(o==="unavailable"||o==="unknown")return{tone:"warm",label:a("settingsRuntimeStatusChipRuntimeUnavailable")};if(o==="degraded")return{tone:"warm",label:a("settingsRuntimeStatusChipRuntimeDegraded")};switch(t.status){case"ready":return{tone:"ready",label:a("settingsRuntimeStatusChipRuntimeReady")};case"ready_to_apply":return{tone:"warm",label:a("settingsRuntimeStatusChipSetupReadyToApply")};case"attention_required":return{tone:"warm",label:a("settingsRuntimeStatusChipSetupNeedsRemediation")};case"scan_required":return{tone:"warm",label:a("settingsRuntimeStatusChipProviderScanRequired")};default:return{tone:"warm",label:a("settingsRuntimeStatusChipSetupUnavailable")}}}function hC(e){return e.loading||!e.preview||!e.preview.available?!1:e.preview.plannedActions.length>0}function mC({payload:e}){const{toasts:t,showToast:a}=at(),{t:o}=W(),s=d.useSyncExternalStore(Zv,Ri,Ri).inflight,l=d.useMemo(()=>Dn(),[]),[c,u]=d.useState([]),[p,g]=d.useState(!1),[h,k]=d.useState(null),[f,w]=d.useState(null),b=pC(e.runtime,e.runtimeSetup,o),m=R=>{switch(R){case"check":return o("settingsRuntimeActionCheckLabel");case"install":return o("settingsRuntimeActionInstallLabel");case"upgrade":return o("settingsRuntimeActionUpgradeLabel");case"repair":return o("settingsRuntimeActionRepairLabel");case"uninstall":return o("settingsRuntimeActionUninstallLabel")}},C=R=>R===1?"":"s",v=d.useCallback(R=>{if(!(R instanceof Error))return o("settingsRuntimeRefreshFailure");const P=Og(R.message);return P===null?R.message:o("settingsRuntimeRefreshFailureWithStatus",{status:P})},[o]),y=d.useCallback(async()=>{if(l){g(!0);try{const R=await dC();u(R)}finally{g(!1)}}},[l]);d.useEffect(()=>{y()},[y]),d.useEffect(()=>{eC(R=>{if(R.type==="success"){const{refreshed:P,failures:I}=R.value;I.length>0?a(o("settingsRuntimeRefreshSummaryWithFailures",{refreshed:P,failed:I.length})):a(o("settingsRuntimeRefreshSummary",{refreshed:P,pluralSuffix:C(P)}))}else a(v(R.error))})},[v,a,o]);const L=()=>{gd().catch(()=>{})},x=d.useMemo(()=>uC(c),[c]),T=d.useCallback(async(R,P)=>{k(R.id);try{const I=await lC(R,P,o);return a(I.message),I.kind!=="failure"&&await y(),I}finally{k(null)}},[y,a,o]),N=d.useCallback(async R=>{w({helper:R,preview:null,loading:!0});const P=await cC(R,o);w(I=>!I||I.helper.id!==R.id?I:{helper:R,preview:P,loading:!1})},[o]),A=d.useCallback(async()=>{if(!f||f.loading)return;const R=f.helper;w(null),await T(R,"uninstall")},[f,T]);return r.jsxs(r.Fragment,{children:[r.jsxs(ye,{header:r.jsx(re,{title:o("settingsRuntimeStatusTitle"),description:o("settingsRuntimeStatusDescription")}),children:[r.jsx("div",{className:"settingsChipRow",children:r.jsx(ht,{tone:b.tone,children:b.label})}),r.jsxs("div",{className:"settingsRuntimeMetrics",children:[r.jsxs("div",{className:"settingsRuntimeMetric",children:[r.jsx("strong",{children:e.runtimeSetup.availableCount}),r.jsx("span",{children:o("settingsRuntimeMetricReadyProviders")})]}),r.jsxs("div",{className:"settingsRuntimeMetric",children:[r.jsx("strong",{children:e.runtimeSetup.providerCount}),r.jsx("span",{children:o("settingsRuntimeMetricProvidersScanned")})]}),r.jsxs("div",{className:"settingsRuntimeMetric",children:[r.jsx("strong",{children:e.runtimeSetup.providersNeedingAttention.length}),r.jsx("span",{children:o("settingsRuntimeMetricNeedAttention")})]})]})]}),e.runtimeSetup.providersNeedingAttention.length>0?r.jsx(ye,{header:r.jsx(re,{title:o("settingsRuntimeNeedAttentionTitle"),description:o("settingsRuntimeNeedAttentionDescription")}),children:r.jsx("ul",{className:"settingsRuntimeList",children:e.runtimeSetup.providersNeedingAttention.map(R=>r.jsxs("li",{children:[r.jsx("strong",{children:R.provider}),r.jsxs("span",{children:[R.family,typeof R.remediationCount=="number"?` • ${o("settingsRuntimeFixStepCount",{count:R.remediationCount,pluralSuffix:R.remediationCount===1?"":"s"})}`:""]})]},R.provider))})}):null,l?r.jsx(ye,{header:r.jsx(re,{title:o("settingsRuntimeProviderHelpersTitle"),description:o("settingsRuntimeProviderHelpersDescription")}),children:p&&x.length===0?r.jsx("p",{className:"settingsRuntimeNote",children:o("settingsRuntimeLoadingHelpers")}):x.length===0?r.jsx("p",{className:"settingsRuntimeNote",children:o("settingsRuntimeNoProviderHelpers")}):r.jsx("ul",{className:"settingsRuntimeList settingsRuntimeHelperList",children:x.map(R=>{const P=tC(R,o),I=h===R.id,O=Ma(R,o);return r.jsxs("li",{className:"settingsRuntimeHelperRow",children:[r.jsxs("div",{className:"settingsRuntimeHelperHead",children:[r.jsx("strong",{children:O}),r.jsx("span",{children:R.packagedRelativePath})]}),r.jsxs("div",{className:"settingsRuntimeHelperActions",children:[P.filter(E=>E.action!=="uninstall"&&E.available).map(E=>r.jsx("button",{type:"button",className:"secondaryButton",disabled:I,onClick:()=>{T(R,E.action)},children:I?o("settingsRuntimeWorkingState"):m(E.action)},E.action)),R.supportsUninstall?r.jsx("button",{type:"button",className:"dangerButton",disabled:I,onClick:()=>{N(R)},children:o("settingsRuntimeUninstallButtonLabel")}):null]})]},R.id)})})}):null,r.jsx(ye,{header:r.jsx(re,{title:o("settingsRuntimeModelCatalogsTitle"),description:o("settingsRuntimeModelCatalogsDescription")}),children:r.jsx("button",{type:"button",className:"secondaryButton settingsRefreshButton",onClick:L,disabled:s,children:s?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"settingsRefreshSpinner","aria-hidden":"true"}),r.jsx("span",{children:o("settingsRuntimeRefreshingState")})]}):o("settingsRuntimeRefreshCatalogsButton")})}),r.jsx(ye,{header:r.jsx(re,{title:o("settingsRuntimeStandaloneSetupTitle"),description:o("settingsRuntimeStandaloneSetupDescription")}),children:r.jsx(va,{className:"secondaryButton settingsInlineLink",href:ad,target:"_blank",rel:"noreferrer",onOpenError:()=>a(o("settingsRuntimeBrowserHandoffError")),children:o("settingsRuntimeOpenStandaloneSetup")})}),f?(()=>{const R=hC(f),P=!R&&!f.loading;return r.jsx("div",{className:"settingsRuntimeConfirmOverlay",role:"dialog","aria-modal":"true",children:r.jsxs("div",{className:"settingsRuntimeConfirmCard",children:[r.jsx(gC,{prompt:f,t:o}),r.jsxs(Xe,{children:[r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>w(null),children:o(P?"settingsRuntimeCancelActionFallbackLabel":"settingsRuntimeCancelActionLabel")}),r.jsx("button",{type:"button",className:"dangerButton",disabled:!R,onClick:()=>{A()},children:o("settingsRuntimeUninstallButtonLabel")})]})]})})})():null,r.jsx(rt,{toasts:t})]})}function gC({prompt:e,t}){const a=Ma(e.helper,t);return r.jsxs(r.Fragment,{children:[r.jsxs("h3",{children:[t("settingsRuntimeUninstallTitle",{label:a}),"?"]}),r.jsxs("p",{children:[t("settingsRuntimeUninstallDescriptionPrefix"),r.jsxs("strong",{children:[" ",a]}),"."," ",t("settingsRuntimeUninstallDescriptionSuffix")]}),r.jsxs("p",{className:"settingsRuntimeNote",children:[t("settingsRuntimeUninstallHelperLabel",{helperId:e.helper.id}),r.jsx("br",{}),t("settingsRuntimeUninstallScriptLabel",{scriptPath:e.helper.packagedRelativePath})]}),r.jsx(fC,{preview:e.preview,loading:e.loading,t})]})}function fC({preview:e,loading:t,t:a}){return t?r.jsx("p",{className:"settingsRuntimeNote",children:a("settingsRuntimeComputingPlannedRemovals")}):!e||!e.available?r.jsx("p",{className:"settingsRuntimeNote",children:e?.message??a("settingsRuntimePreviewUnavailable")}):e.status==="not_installed"?r.jsxs("p",{className:"settingsRuntimeNote",children:[a("settingsRuntimeNothingToRemove"),e.systemInstallPath?r.jsxs(r.Fragment,{children:[r.jsx("br",{}),a("settingsRuntimeSystemInstallDetected",{installPath:e.systemInstallPath})]}):null]}):r.jsxs("div",{className:"settingsRuntimePreview",children:[r.jsx("p",{className:"settingsRuntimeNote",children:a("settingsRuntimeWillRemoveItems",{itemCount:e.plannedActions.length,pluralSuffix:e.plannedActions.length===1?"":"s"})}),r.jsx("ul",{className:"settingsRuntimePreviewList",children:e.plannedActions.map(o=>r.jsx("li",{children:r.jsx("code",{children:o})},o))}),e.systemInstallPath?r.jsx("p",{className:"settingsRuntimeNote",children:a("settingsRuntimeSystemInstallCannotRemove",{installPath:e.systemInstallPath})}):null,e.manualSteps.length>0?r.jsx("ul",{className:"settingsRuntimePreviewList settingsRuntimePreviewManual",children:e.manualSteps.map(o=>r.jsx("li",{children:o},o))}):null]})}function wC({payload:e,onPayloadUpdate:t}){const{toasts:a,showToast:o}=at(),{t:n}=W(),s=hn(e.chat.advancedDraftControls,"work");async function l(c){const u=e.chat.advancedDraftControls,p=yr(u);p.work=c,t({...e,chat:{...e.chat,advancedDraftControls:p}});try{const g=await yn({work:c});d.startTransition(()=>t(g))}catch(g){t({...e,chat:{...e.chat,advancedDraftControls:u}}),o(Ca(g,n("settingsConversationPreferenceUpdateFailure"),n))}}return r.jsxs(r.Fragment,{children:[r.jsx(Fn,{surface:"work",payload:e,onPayloadUpdate:t,onError:o}),r.jsx(Bn,{surface:"work",enabled:s,onToggle:c=>{l(c)}}),r.jsx(rt,{toasts:a})]})}function kC(e,t){return e==="/settings"||e==="/settings/"||pt(e,"/settings/general")?{section:"general",title:t("settingsRouteTitleGeneral")}:pt(e,"/settings/assistants")?{section:"assistants",title:t("settingsRouteTitleAssistants")}:bC(e)?{section:"cats",title:t("settingsRouteTitleMyCats")}:pt(e,"/settings/chat")?{section:"chat",title:t("settingsRouteTitleChat")}:pt(e,"/settings/work")?{section:"work",title:t("settingsRouteTitleWork")}:pt(e,"/settings/code")?{section:"code",title:t("settingsRouteTitleCode")}:pt(e,"/settings/apps")?{section:"apps",title:t("settingsRouteTitleApps")}:pt(e,"/settings/desktop")?{section:"desktop",title:t("settingsRouteTitleDesktop")}:pt(e,"/settings/runtime")?{section:"runtime",title:t("settingsRouteTitleRuntime")}:pt(e,"/settings/data")?{section:"data",title:t("settingsRouteTitleData")}:{section:"not-found",title:t("settingsRouteTitleNotFound")}}function pt(e,t){return e===t||e.startsWith(`${t}/`)}function bC(e){return e==="/settings/cats"||e==="/settings/cats/new"}function yC({payload:e,onPayloadUpdate:t,busy:a,onFeedback:o,onBusy:n,onResetSetup:s}){const l=e.products.find(h=>h.id==="work"),c=e.products.find(h=>h.id==="code"),u=Dn(),p=h=>{t(h)},g=r.jsx(sy,{payload:e,busy:a,onPayloadUpdate:p,onFeedback:o,onBusy:n});return r.jsxs(sa,{children:[r.jsx(Z,{index:!0,element:r.jsx(ft,{to:"/settings/general",replace:!0})}),r.jsx(Z,{path:"general",element:r.jsx(Jv,{payload:e,onPayloadUpdate:p})}),r.jsx(Z,{path:"cats",element:g}),r.jsx(Z,{path:"cats/new",element:g}),r.jsx(Z,{path:"assistants",element:r.jsx(cy,{payload:e,onPayloadUpdate:p})}),r.jsx(Z,{path:"chat",element:r.jsx(My,{payload:e,onPayloadUpdate:p})}),l?r.jsx(Z,{path:"work",element:r.jsx(wC,{payload:e,onPayloadUpdate:p})}):null,c?r.jsx(Z,{path:"code",element:r.jsx(Ey,{payload:e,onPayloadUpdate:p})}):null,r.jsx(Z,{path:"apps/*",element:r.jsx(Cy,{installedApps:e.installedApps??[],onInstalledAppsUpdate:h=>{p({...e,installedApps:h})}})}),u?r.jsx(Z,{path:"desktop",element:r.jsx(vv,{payload:e,onPayloadUpdate:p})}):null,r.jsx(Z,{path:"runtime",element:r.jsx(mC,{payload:e})}),r.jsx(Z,{path:"data",element:r.jsx(Fy,{payload:e,busy:a,onResetSetup:s})}),r.jsx(Z,{path:"*",element:r.jsx(Xv,{})})]})}function vC(e){const t=ve(),{t:a}=W(),{section:o,title:n}=kC(t.pathname,a);return r.jsx(Hb,{section:o,title:n,products:e.payload.products,children:yC(e)})}function CC(){const{t:e}=W(),{loadState:t,onPayloadUpdate:a,onRetryLoad:o}=cu(),[n,s]=d.useState(Nn),[l,c]=d.useState(""),{dialog:u,confirm:p,handleClose:g}=It(),h=d.useCallback(async()=>{if(await p({title:e(i.settingsDataResetAllDataTitle),message:e(i.settingsDataResetAllDataDescription),confirmLabel:e(i.settingsDataResetButtonLabel)})){s(Ck());try{const f=await Xg();jm(),await id({bootstrapAttemptId:f.bootstrapAttemptId??null,setupCompleteAt:f.setupCompleteAt??null,products:Array.isArray(f.products)?[...f.products]:[]}),window.location.href="/"}catch(f){throw s(Ue()),f}}},[p,e]);return t.status==="loading"?r.jsx("div",{className:"settingsCanvasBoot",role:"status","aria-live":"polite","aria-label":e(i.settingsCanvasLoadingLabel)}):t.status==="error"?r.jsxs("section",{className:"settingsCanvasError",role:"alert","aria-live":"assertive",children:[r.jsx("h1",{className:"settingsCanvasErrorTitle",children:e(i.settingsCanvasLoadErrorTitle)}),r.jsx("p",{className:"settingsCanvasErrorBody",children:e(i.settingsCanvasLoadErrorBody)}),t.message?r.jsx("p",{className:"settingsCanvasErrorDetail",children:t.message}):null,r.jsx("div",{className:"settingsCanvasErrorActions",children:r.jsx("button",{type:"button",className:"primaryButton",onClick:o,children:e(i.sharedCommonRetry)})})]}):r.jsxs(r.Fragment,{children:[r.jsx(vC,{payload:t.payload,onPayloadUpdate:a,busy:n,onFeedback:c,onBusy:s,onResetSetup:h}),l?r.jsx("p",{className:"settingsFeedback",role:"status",children:l}):null,r.jsx(Bt,{dialog:u,onClose:g})]})}const ge=14,SC=.6,xi=.18,LC=.18,Ti=2,RC="#e8c84a",kd="#8B7E74";function PC(e){return new Promise((t,a)=>{const o=new Image;o.crossOrigin="anonymous",o.onload=()=>t(o),o.onerror=a,o.src=e})}function AC(e,t,a){return e.map(o=>{const n=Math.random()*Math.PI*2,s=SC+Math.random()*.3;return{id:o.id,x:ge+Math.random()*(t-ge*2),y:ge+Math.random()*(a-ge*2),vx:Math.cos(n)*s,vy:Math.sin(n)*s,color:o.avatarColor??kd,initials:fe(o.name),isBoss:o.isBoss,avatarUrl:o.avatarUrl??null,image:null}})}function xC(e,t){return!e||e.length!==t.length?!0:e.some((a,o)=>{const n=t[o];return n?a.id!==n.id||a.color!==(n.avatarColor??kd)||a.isBoss!==n.isBoss||a.avatarUrl!==(n.avatarUrl??null):!0})}function TC(e,t,a,o){for(const n of e)n.x+=n.vx*o,n.y+=n.vy*o,n.x-ge<=0?(n.x=ge,n.vx=Math.abs(n.vx)):n.x+ge>=t&&(n.x=t-ge,n.vx=-Math.abs(n.vx)),n.y-ge<=0?(n.y=ge,n.vy=Math.abs(n.vy)):n.y+ge>=a&&(n.y=a-ge,n.vy=-Math.abs(n.vy))}function DC(e,t,a){for(const o of e)o.x=Math.min(Math.max(ge,o.x),t-ge),o.y=Math.min(Math.max(ge,o.y),a-ge)}function NC(e,t,a,o){e.clearRect(0,0,a,o);for(const n of t)e.globalAlpha=xi,n.isBoss&&(e.beginPath(),e.arc(n.x,n.y,ge+Ti,0,Math.PI*2),e.strokeStyle=RC,e.lineWidth=Ti,e.stroke()),n.image?(e.save(),e.beginPath(),e.arc(n.x,n.y,ge,0,Math.PI*2),e.clip(),e.drawImage(n.image,n.x-ge,n.y-ge,ge*2,ge*2),e.restore()):(e.beginPath(),e.arc(n.x,n.y,ge,0,Math.PI*2),e.fillStyle=n.color,e.fill(),e.globalAlpha=xi*1.8,e.font=`700 ${ge*.65}px sans-serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle="#fff",e.fillText(n.initials,n.x,n.y));e.globalAlpha=1}function jC({animationMode:e,cats:t}){const a=d.useRef(null),o=d.useRef(null),n=d.useRef(0);return d.useEffect(()=>{if(e==="off"||t.length===0)return;const s=a.current;if(!s)return;const l=s,c=l.getContext("2d");if(!c)return;const u=e==="reduced"?LC:1;function p(){if(l.width=window.innerWidth,l.height=window.innerHeight,xC(o.current,t)){o.current=AC([...t],l.width,l.height);return}const f=o.current;f&&DC(f,l.width,l.height)}function g(){n.current!==0&&(cancelAnimationFrame(n.current),n.current=0)}function h(){const f=l.width,w=l.height,b=o.current;!c||!b||(TC(b,f,w,u),NC(c,b,f,w),n.current=requestAnimationFrame(h))}p(),n.current=requestAnimationFrame(h);const k=o.current;if(k)for(let f=0;f<t.length;f++){const w=t[f]?.avatarUrl;w&&k[f]&&PC(w).then(b=>{k[f].image=b}).catch(()=>{})}return window.addEventListener("resize",p),()=>{g(),window.removeEventListener("resize",p)}},[e,t]),e==="off"||t.length===0?null:r.jsx("canvas",{ref:a,className:"lobbyBouncingCanvas","aria-hidden":"true"})}const bd=Oe("en");function MC(e,t=bd){return e.products.map(a=>({productId:a.id,surface:a.surface,productName:oh(a,t),subtitle:nh(a,t),routePrefix:a.routePrefix,lastUsed:a.surface!==null&&a.surface===e.lastUsedSurface,available:a.installState==="available"}))}function EC(e){return e.installedApps.flatMap(t=>!t.enabled||t.installState!=="enabled"?[]:t.lobbyEntries.map(a=>({appId:t.id,entryId:a.id,title:a.title,subtitle:a.subtitle??null,routePath:a.routePath,publisher:t.publisher,installState:t.installState,trustTier:t.trustTier})))}const IC=[i.lobbyGreetingChooseSurface,i.lobbyGreetingHomeReady,i.lobbyGreetingPickProduct,i.lobbyGreetingEverythingStaged,i.lobbyGreetingOpenSurface,i.lobbyGreetingAwake,i.lobbyGreetingContinue];function BC(e){return(e??[]).map(t=>t.trim()).filter(t=>t.length>0)}function FC(e,t=Math.random,a=bd){const o=BC(e),n=IC.map(l=>a(l)),s=o.length>0?o:n;return s[Math.floor(t()*s.length)]}const Uo=Oe("en"),OC=[i.lobbyGreetingChooseSurface,i.lobbyGreetingHomeReady,i.lobbyGreetingPickProduct,i.lobbyGreetingEverythingStaged,i.lobbyGreetingOpenSurface,i.lobbyGreetingAwake,i.lobbyGreetingContinue],WC=[i.chatNewChatDraftDefaultGreeting,i.chatNewChatDraftGreetingNap,i.chatNewChatDraftGreetingKeyboard,i.chatNewChatDraftGreetingLetsGo,i.chatNewChatDraftGreetingStandby,i.chatNewChatDraftGreetingTaskReady,i.chatNewChatDraftGreetingOnDuty],UC=[i.codeNewDraftGreeting,i.codeNewDraftGreetingOpenRepo,i.codeNewDraftGreetingBuildFixRefactor,i.codeNewDraftGreetingShipImprovement,i.codeNewDraftGreetingSmallestChange];function HC(e,t=Uo){return e.map(a=>t(a))}function GC(e){switch(e.bundle.scope.surfaceId){case"lobby":return OC;case"chat:new":return WC;case"code:new":return UC;default:return null}}function _C(e,t=Uo){if(!e)return null;const a=e.bundle.content.greeting?.trim();if(!a)return null;if(e.bundle.provenance.originMode!=="deterministic")return a;const o=GC(e);if(!o)return a;const s=HC(o,Uo).findIndex(c=>c===a);if(s<0)return a;const l=o[s];return l?t(l):a}function KC({envelope:e}){const{t}=W(),a=je(),[o]=d.useState(()=>FC(null,Math.random,t)),n=MC({products:e.products,lastUsedSurface:e.lastProductSurface??null},t),s=EC({installedApps:e.installedApps??[]}),l=_C(e.lobby.guideCatAssist,t)??o,c=Sr(e.runtime),u=jb(c),p=En(c,t),g=t("lobbyRuntimeStatusLabel",{runtimeStatus:p}),h=e.ownerAvatarUrl?{backgroundImage:`url(${e.ownerAvatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0,k={platformShellSurface:e.lastProductSurface??"chat"};return r.jsxs("div",{className:"screen lobbyScreen",children:[r.jsx(jC,{animationMode:e.lobby.animationMode,cats:e.lobby.cats}),r.jsxs("div",{className:"platformLobby",children:[r.jsxs("div",{className:"lobbyTopBar",children:[r.jsx("span",{className:"lobbyBrand",children:t("appBrandName")}),r.jsxs("div",{className:"lobbyTopBarEnd",children:[r.jsx(Mn,{slotKind:"lobby"}),r.jsxs("div",{className:"lobbyIdentity",role:"group","aria-label":t("lobbyAccountSettingsAriaLabel"),children:[r.jsxs("button",{type:"button",className:"lobbyIdentityMainButton",onClick:()=>a("/settings/general",{state:k}),"aria-label":t("lobbyOpenAccountSettings"),children:[r.jsx("span",{className:"lobbyAvatar",style:h,children:e.ownerAvatarUrl?null:fe(e.ownerDisplayName)}),r.jsx("span",{className:"lobbyOwnerName",children:e.ownerDisplayName})]}),r.jsx("button",{type:"button",className:"lobbyIdentityRuntime",onClick:()=>a("/settings/runtime",{state:k}),"data-tooltip":p,"aria-label":g,children:r.jsx("span",{className:u,"aria-hidden":"true"})})]})]})]}),r.jsx("div",{className:"lobbyHero",children:r.jsx("h1",{className:"lobbyGreeting",children:l})}),r.jsx(Qc,{envelope:e}),r.jsxs("div",{className:"lobbyProducts",children:[r.jsx("p",{className:"lobbyProductsEyebrow",children:t("lobbyProductsSectionTitle")}),r.jsx("div",{className:"platformLobbyGrid",children:n.map(f=>{const w=`contentCard platformLobbyCard platformLobbyCard--${f.surface??"module"}`+(f.lastUsed?" platformLobbyCard--recent":"")+(f.available?" platformLobbyCard--mock":""),b=r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"platformLobbyCardAccent"}),r.jsx("span",{className:"platformLobbyCardName",children:f.productName}),r.jsx("span",{className:"platformLobbyCardSub",children:f.subtitle}),f.lastUsed?r.jsx("span",{className:"platformLobbyCardHint",children:t("lobbyContinueText")}):null]});return f.available?r.jsx("div",{className:w,children:b},f.productId):r.jsx("button",{type:"button",className:w,onClick:()=>a(f.routePrefix),children:b},f.productId)})})]}),s.length>0?r.jsxs("div",{className:"lobbyProducts",children:[r.jsx("p",{className:"lobbyProductsEyebrow",children:t("lobbyAppsSectionTitle")}),r.jsx("div",{className:"platformLobbyGrid",children:s.map(f=>r.jsxs("button",{type:"button",className:"contentCard platformLobbyCard platformLobbyCard--app",onClick:()=>a(f.routePath),"aria-label":t("lobbyOpenEntry",{entryTitle:f.title}),children:[r.jsx("div",{className:"platformLobbyCardAccent"}),r.jsx("span",{className:"platformLobbyCardName",children:f.title}),f.subtitle?r.jsx("span",{className:"platformLobbyCardSub",children:f.subtitle}):null]},`${f.appId}:${f.entryId}`))})]}):null]})]})}class ua extends Error{constructor(t,a,o){super(t),this.status=a,this.code=o,this.name="PlatformSetupApiError"}}function qC(e){return e instanceof ua&&e.status===401&&(e.code===null||e.code===Ae.unauthenticated)}function $C(e){return e instanceof ua&&e.status===403&&e.code===Ae.forbidden&&e.message==="Auth repair is required."}async function yd(e,t){return(await vd(e,t)).message}async function vd(e,t){try{const a=await e.json(),o=zC(a);if(typeof o?.code=="string"){const n=t.errorMessagesByCode?.[o.code];return n?{message:n,code:o.code}:{message:t.fallbackMessageForStatus(e.status),code:o.code}}if(typeof o?.message=="string")return{message:o.message,code:null}}catch{}return{message:t.fallbackMessageForStatus(e.status),code:null}}function zC(e){if(typeof e!="object"||e===null)return null;const t=e.error;return typeof t=="object"&&t!==null?t:null}function VC(e){if(typeof e!="object"||e===null||!("routeTarget"in e)||!("auth"in e)||!("setup"in e))return null;const t=e.routeTarget;return t==="setup"||t==="login"||t==="repair"?t:null}async function YC(e,t){const a=await fetch("/api/platform/setup/complete",{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(e),signal:t.signal});if(!a.ok)throw new Error(await yd(a,t));return await a.json()}async function La(e){const t=await fetch("/api/app-shell",{headers:{Accept:"application/json"},signal:e.signal});if(!t.ok){const n=await vd(t,e);throw new ua(n.message,t.status,n.code)}const a=await t.json(),o=VC(a);if(o==="login")throw new ua("Authentication is required.",401,Ae.unauthenticated);if(o==="repair")throw new ua("Auth repair is required.",403,Ae.forbidden);return a}async function QC(e,t){const a=await fetch("/api/platform/bootstrap-diagnostics/opened",{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({attemptId:e??null}),signal:t.signal});if(!a.ok)throw new Error(await yd(a,t));return await a.json()}async function JC(e){return vr(e)}async function XC(e,t){return wn({provider:e,instance:t})}async function ZC(e,t){return kn({provider:e,instance:t})}function eS({name:e,onNameChange:t,nameReadOnly:a,provider:o,instance:n,model:s,modelSelection:l,onTargetChange:c,nameLabel:u,namePlaceholder:p,nameHint:g,autoFocusName:h,makeBoss:k,onMakeBossChange:f,hideMakeBoss:w,fetchProviderRegistry:b,fetchProviderModels:m,fetchAdvancedProviderModels:C,onProviderRegistryChange:v}){const{t:y}=W();return r.jsxs(r.Fragment,{children:[r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:u??y(i.settingsGeneralNameLabel)}),r.jsx("input",{className:"textInput",value:e,onChange:L=>t(L.target.value),placeholder:p,autoFocus:h&&!a,readOnly:a,"aria-readonly":a?"true":void 0}),g?r.jsx("span",{className:"fieldHint",children:g}):null]}),!w&&f?r.jsxs("label",{className:"fieldLabel fieldLabelInline",children:[r.jsx("input",{type:"checkbox",checked:k??!1,onChange:L=>f(L.target.checked)}),r.jsx("span",{children:y(i.sharedSettingsCatsSetBossCatLabel)})]}):null,r.jsx(jc,{provider:o,instance:n,model:s,modelSelection:l,onTargetChange:c,fetchProviderRegistry:b,fetchProviderModels:m,fetchAdvancedProviderModels:C,onProviderRegistryChange:v})]})}function tS(e){return r.jsx(eS,{...e,fetchProviderRegistry:JC,fetchProviderModels:XC,fetchAdvancedProviderModels:ZC})}function aS({provider:e,instance:t,model:a,modelSelection:o,runtimeReachable:n,onTargetChange:s}){const l=ct(),{t:c}=W(),[u,p]=d.useState({state:"ready",providers:[]}),[g,h]=d.useState(!1),k=Pc(u)??ad,f=u.state==="runtime_unreachable"?{className:"statusChip statusChipWarm",label:c(i.setupGuideCatRuntimeUnavailable)}:u.state==="no_usable_targets"?{className:"statusChip statusChipWarm",label:c(i.setupGuideCatNoUsableTargets)}:n?{className:"statusChip statusChipReady",label:c(i.setupGuideCatRuntimeConnected)}:{className:"statusChip statusChipWarm",label:c(i.setupGuideCatRuntimeNotDetected)};return r.jsxs(r.Fragment,{children:[r.jsx(tS,{name:l,onNameChange:()=>{},nameReadOnly:!0,provider:e,instance:t,model:a,modelSelection:o,onTargetChange:s,nameLabel:c(i.setupGuideCatNameLabel),namePlaceholder:l,nameHint:c(i.setupGuideCatNameHint),hideMakeBoss:!0,hideProductToggles:!0,onProviderRegistryChange:p}),r.jsxs("div",{className:"setupRuntimeStatus",children:[r.jsx("span",{className:f.className,children:f.label}),u.state==="runtime_unreachable"?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"setupRuntimeNote",children:c(i.setupGuideCatUnavailableNote)}),r.jsx(va,{className:"secondaryButton setupInlineLink",href:k,target:"_blank",rel:"noreferrer",onClick:()=>h(!1),onOpenError:()=>h(!0),children:c(i.setupGuideCatOpenRuntimeSetup)})]}):null,u.state==="no_usable_targets"?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"setupRuntimeNote",children:c(i.setupGuideCatNoUsableTargetsNote)}),r.jsx(va,{className:"secondaryButton setupInlineLink",href:k,target:"_blank",rel:"noreferrer",onClick:()=>h(!1),onOpenError:()=>h(!0),children:c(i.setupGuideCatOpenRuntimeSetup)})]}):null,g?r.jsx("span",{className:"setupRuntimeNote",role:"alert",children:c(i.settingsRuntimeBrowserHandoffError)}):null]})]})}function rS(e){return!!e.model.trim()}function oS(e){return!e.createGuideCat||rS({model:e.model})}const Ra=[1,2],nS=Ra.length;function Di(e){const t=Ra.indexOf(e);return Ra[t+1]??e}function sS(e){const t=Ra.indexOf(e);return Ra[t-1]??e}const iS=new Set(["Invalid desktop platform shell payload."]);function lS(e,t,a){return e instanceof Error?iS.has(e.message)?t:e.message:t}function cS(e){return e.step===2&&e.createGuideCat}function dS({envelope:e,onComplete:t}){const[a,o]=d.useState(1),[n,s]=d.useState(""),[l,c]=d.useState(""),[u,p]=d.useState(""),[g,h]=d.useState(!1),[k,f]=d.useState("claude"),[w,b]=d.useState(""),[m,C]=d.useState(""),[v,y]=d.useState(null),[L,x]=d.useState(null),[T,N]=d.useState(""),A=d.useRef(!1),{t:R}=W(),P=L!==null,I=ct(),O=!!(n.trim()&&l.trim()&&u),E=oS({createGuideCat:g,model:m}),$=e.bootstrapAttemptId??null,_=d.useCallback(async()=>{x("complete"),N("");try{const B=await YC({attemptId:$,ownerDisplayName:n.trim(),adminIdentifier:l.trim(),adminPassword:u,createGuideCat:g,guideCatProvider:g?k:void 0,guideCatInstance:g&&w||void 0,guideCatModel:g&&m||void 0,guideCatModelSelection:g?v:void 0},{fallbackMessageForStatus:q=>R(i.setupWizardFailedWithStatus,{status:q}),errorMessagesByCode:{already_complete:R(i.setupWizardAlreadyCompleteError),bad_request:R(i.setupWizardInvalidRequestError),configuration_error:R(i.setupWizardServerError),internal_error:R(i.setupWizardServerError)}});await Jb(B),t(B)}catch(B){N(lS(B,R(i.setupWizardFailedMessage)))}finally{x(null)}},[g,l,u,w,m,v,t,n,k,$,R]);d.useEffect(()=>{A.current||(A.current=!0,QC($,{fallbackMessageForStatus:B=>R(i.setupWizardRecordOpenFailedWithStatus,{status:B})}).catch(()=>{}))},[$,R]),d.useEffect(()=>{function B(q){q.key!=="Enter"||P||q.target instanceof HTMLSelectElement||q.target instanceof HTMLTextAreaElement||a===1&&!O||a===2&&!E||(q.preventDefault(),a===1?o(Di(a)):a===2&&_())}return document.addEventListener("keydown",B),()=>document.removeEventListener("keydown",B)},[P,E,O,_,a]),d.useEffect(()=>{cS({step:a,createGuideCat:g})&&Fg()},[g,a]);const ee=Array.from({length:nS},(B,q)=>q+1);return r.jsx("div",{className:"screen screenCentered",children:r.jsxs("div",{className:"setupWizard",children:[r.jsx("div",{className:"setupStepIndicator",children:ee.map(B=>r.jsx("span",{className:B<=a?"setupDot setupDotActive":"setupDot"},B))}),a===1?r.jsxs("div",{className:"contentCard setupCard",children:[r.jsx("p",{className:"eyebrow",children:R(i.appBrandName)}),r.jsx("h1",{children:R(i.setupWizardWelcomeTitle)}),r.jsx("p",{className:"heroNote",children:R(i.setupWizardWelcomeIntro)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:R(i.setupWizardOwnerNameLabel)}),r.jsx("input",{className:"textInput",value:n,onChange:B=>s(B.target.value),placeholder:R(i.setupWizardOwnerNamePlaceholder),autoFocus:!0})]}),r.jsx("p",{className:"setupRuntimeNote",children:R(i.setupWizardAdminCredentialsHint)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:R(i.setupWizardAdminIdentifierLabel)}),r.jsx("input",{className:"textInput",value:l,onChange:B=>c(B.target.value),placeholder:R(i.setupWizardAdminIdentifierPlaceholder),autoComplete:"username"})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:R(i.setupWizardAdminPasswordLabel)}),r.jsx("input",{className:"textInput",type:"password",value:u,onChange:B=>p(B.target.value),placeholder:R(i.setupWizardAdminPasswordPlaceholder),autoComplete:"new-password"})]}),T?r.jsx("p",{className:"feedbackText",children:T}):null,r.jsx("button",{className:"primaryButton setupPrimaryButton",disabled:!O,type:"button",onClick:()=>o(Di(a)),children:R(i.setupWizardGetStartedButton)})]}):null,a===2?r.jsxs("div",{className:"contentCard setupCard",children:[r.jsx("p",{className:"eyebrow",children:R(i.setupWizardStepIndicator,{step:2,total:2})}),r.jsx("h1",{children:R(i.setupWizardEnableGuideTitle,{guideCatName:I})}),r.jsx("p",{className:"heroNote",children:R(i.setupWizardEnableGuideSubtitle)}),r.jsxs("label",{className:"setupCheckboxLabel",children:[r.jsx("input",{type:"checkbox",className:"setupCheckbox",checked:g,onChange:B=>h(B.target.checked)}),r.jsx("span",{children:R(i.setupWizardEnableGuideLabel,{guideCatName:I})})]}),g?r.jsx(aS,{provider:k,instance:w,model:m,modelSelection:v,runtimeReachable:e.runtime.reachable,onTargetChange:B=>{f(B.provider),b(B.instance),C(B.model),y(B.modelSelection??null)}}):r.jsx("p",{className:"setupRuntimeNote",children:R(i.setupWizardSkipGuideMessage,{guideCatName:I})}),T?r.jsx("p",{className:"feedbackText",children:T}):null,r.jsxs("div",{className:"setupActions",children:[r.jsx("button",{className:"setupBackButton",type:"button",disabled:P,onClick:()=>o(sS(a)),children:R(i.setupWizardBackButton)}),r.jsx("button",{className:"primaryButton setupPrimaryButton",disabled:P||!E,type:"button",onClick:()=>{_()},children:R(L==="complete"?i.setupWizardOpeningCatsAction:i.setupWizardOpenCatsAction)})]})]}):null]})})}function Ni({onAuthenticated:e}){const{t}=W(),[a,o]=d.useState(""),[n,s]=d.useState(""),[l,c]=d.useState(!1),[u,p]=d.useState(""),[g,h]=d.useState(null),k=!!(a.trim()&&n&&!l),f=d.useCallback(()=>({fallbackMessageForStatus:C=>t(i.authLoginFailedWithStatus,{status:C}),errorMessagesByCode:{[Ae.unauthenticated]:t(i.authLoginInvalidCredentials),[Ae.forbidden]:t(i.authLoginForbidden),[Ae.csrfMismatch]:t(i.authLoginCsrfMismatch)}}),[t]);d.useEffect(()=>{let C=!0;return Sa(f()).then(v=>{if(!C)return;const y=v.providers.google.enabled&&v.providers.google.clientId?.trim()||null;h(y)}).catch(()=>{C&&h(null)}),()=>{C=!1}},[f]);async function w(C){if(C.preventDefault(),!!k){c(!0),p("");try{await Iv({identifier:a.trim(),password:n},f());const v=await La({fallbackMessageForStatus:y=>t(i.appLoadStateFailedWithStatus,{status:y})});e(v)}catch(v){p(v instanceof Error?v.message:t(i.authLoginFailed))}finally{c(!1)}}}const b=d.useCallback(async C=>{if(!l){c(!0),p("");try{await Bv({credential:C.credential,csrfToken:C.csrfToken},f());const v=await La({fallbackMessageForStatus:y=>t(i.appLoadStateFailedWithStatus,{status:y})});e(v)}catch(v){p(v instanceof Error?v.message:t(i.authLoginFailed))}finally{c(!1)}}},[f,l,e,t]),m=d.useCallback(()=>{p(t(i.authLoginGoogleUnavailable))},[t]);return r.jsx("div",{className:"screen screenCentered",children:r.jsxs("form",{className:"contentCard setupCard",onSubmit:C=>{w(C)},children:[r.jsx("p",{className:"eyebrow",children:t(i.appBrandName)}),r.jsx("h1",{children:t(i.authLoginTitle)}),r.jsx("p",{className:"heroNote",children:t(i.authLoginSubtitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(i.authLoginIdentifierLabel)}),r.jsx("input",{className:"textInput",value:a,onChange:C=>o(C.target.value),placeholder:t(i.authLoginIdentifierPlaceholder),autoComplete:"username",autoFocus:!0})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(i.authLoginPasswordLabel)}),r.jsx("input",{className:"textInput",type:"password",value:n,onChange:C=>s(C.target.value),placeholder:t(i.authLoginPasswordPlaceholder),autoComplete:"current-password"})]}),u?r.jsx("p",{className:"feedbackText",children:u}):null,r.jsx("button",{className:"primaryButton setupPrimaryButton",disabled:!k,type:"submit",children:t(l?i.authLoginSubmitting:i.authLoginSubmit)}),g?r.jsxs("div",{className:"googleSignInSection",children:[r.jsx("div",{className:"setupRuntimeNote",children:t(i.authLoginGoogleOriginHint)}),r.jsx(hd,{clientId:g,disabled:l,onCredential:C=>{b(C)},onError:m})]}):null]})})}function uS({onRepaired:e}){const{t}=W(),[a,o]=d.useState(""),[n,s]=d.useState(""),[l,c]=d.useState(""),[u,p]=d.useState(""),[g,h]=d.useState(!1),[k,f]=d.useState(""),w=!!(n.trim()&&l&&u.trim()&&!g);async function b(m){if(m.preventDefault(),!w){f(t(i.authRepairFailed));return}h(!0),f("");try{const C=a.trim(),v=u.trim();await Uv({displayName:C||void 0,identifier:n.trim(),password:l,recoveryToken:v||void 0},{fallbackMessageForStatus:L=>t(i.authRepairFailedWithStatus,{status:L}),errorMessagesByCode:{[Ae.forbidden]:t(i.authRepairForbidden)}});const y=await La({fallbackMessageForStatus:L=>t(i.appLoadStateFailedWithStatus,{status:L})});e(y)}catch(C){f(C instanceof Error?C.message:t(i.authRepairFailed))}finally{h(!1)}}return r.jsx("div",{className:"screen screenCentered",children:r.jsxs("form",{className:"contentCard setupCard",onSubmit:m=>{b(m)},children:[r.jsx("p",{className:"eyebrow",children:t(i.appBrandName)}),r.jsx("h1",{children:t(i.authRepairTitle)}),r.jsx("p",{className:"heroNote",children:t(i.authRepairSubtitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(i.authRepairDisplayNameLabel)}),r.jsx("input",{className:"textInput",value:a,onChange:m=>o(m.target.value),placeholder:t(i.authRepairDisplayNamePlaceholder),autoComplete:"name",autoFocus:!0})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(i.authRepairIdentifierLabel)}),r.jsx("input",{className:"textInput",value:n,onChange:m=>s(m.target.value),placeholder:t(i.authRepairIdentifierPlaceholder),autoComplete:"username"})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(i.authRepairPasswordLabel)}),r.jsx("input",{className:"textInput",type:"password",value:l,onChange:m=>c(m.target.value),placeholder:t(i.authRepairPasswordPlaceholder),autoComplete:"new-password"})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(i.authRepairRecoveryTokenLabel)}),r.jsx("input",{className:"textInput",value:u,onChange:m=>p(m.target.value),placeholder:t(i.authRepairRecoveryTokenPlaceholder),autoComplete:"off"})]}),r.jsx("p",{className:"setupRuntimeNote",children:t(i.authRepairRecoveryTokenHint)}),k?r.jsx("p",{className:"feedbackText",role:"alert",children:k}):null,r.jsx("button",{className:"primaryButton setupPrimaryButton",disabled:!w,type:"submit",children:t(g?i.authRepairSubmitting:i.authRepairSubmit)})]})})}const ji="/login",Mi="/repair",pS="/lobby";function hS(e,t){return qC(e)?{status:"unauthenticated"}:$C(e)?{status:"repairRequired"}:{status:"error",message:e instanceof Error?e.message:t}}function Ei(e){return e.lastProductSurface?mr(e.lastProductSurface):pS}const mS="modulepreload",gS=function(e){return"/"+e},Ii={},On=function(t,a,o){let n=Promise.resolve();if(a&&a.length>0){let u=function(p){return Promise.all(p.map(g=>Promise.resolve(g).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=l?.nonce||l?.getAttribute("nonce");n=u(a.map(p=>{if(p=gS(p),p in Ii)return;Ii[p]=!0;const g=p.endsWith(".css"),h=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${h}`))return;const k=document.createElement("link");if(k.rel=g?"stylesheet":mS,g||(k.as="script"),k.crossOrigin="",k.href=p,c&&k.setAttribute("nonce",c),document.head.appendChild(k),g)return new Promise((f,w)=>{k.addEventListener("load",f),k.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${p}`)))})}))}function s(l){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=l,window.dispatchEvent(c),!c.defaultPrevented)throw l}return n.then(l=>{for(const c of l||[])c.status==="rejected"&&s(c.reason);return t().catch(s)})},fS=()=>On(()=>import("./App-DKOSn0o_.js"),__vite__mapDeps([0,1,2,3,4,5])),wS=()=>On(()=>import("./App-DWd7I3Z2.js"),__vite__mapDeps([6,1,2,3,7,8])),kS=()=>On(()=>import("./App-BfOvMP2m.js"),__vite__mapDeps([9,1,2,7,4,10])),bS={chat:fS,work:wS,code:kS};function Cd(e){return bS[e]}function Wn(e){return d.lazy(Cd(e))}function yS(e,t=Cd){return t(e)()}function SR(e){return yS(e)}const vS=5e3,CS=Wn("chat"),SS=Wn("work"),LS=Wn("code");function RS(){if(typeof navigator>"u")return"en";const e=Array.isArray(navigator.languages)&&navigator.languages.length>0?navigator.languages:[navigator.language];for(const t of e){const a=gl(t);if(a)return a}return"en"}function PS(e){return e?.language?.uiLanguagePreference??"auto"}function AS(e){return e==="auto"?RS():th(e)}function xS(e){return!!(e.guideCat&&ka(e.guideCat.status)&&!e.productSurfaceFallbackActive)}function TS({surface:e,translate:t,onVisibilityChange:a}){const o=fl(e,Gp(e),t);return d.useEffect(()=>(a(!0),()=>a(!1)),[a]),r.jsx("div",{className:"screen screenCentered",children:r.jsxs("div",{className:"loadingPanel",children:[r.jsx("p",{className:"eyebrow",children:t("appBrandName")}),r.jsx("h1",{children:t("appLoadingWithSurface",{surface:o})})]})})}function io(e,t,a){const o=e==="work"?SS:e==="code"?LS:CS;return r.jsx(d.Suspense,{fallback:r.jsx(TS,{surface:e,translate:a,onVisibilityChange:t}),children:r.jsx(o,{})})}function DS(e){return typeof e!="object"||e===null?null:ia(e.platformShellSurface)}function NS(e){return e.loadStatus!=="ready"||!e.setupComplete||fa(e.pathname)||Cl(e.pathname)?e.t("appTitle"):null}function jS(e,t){const a=Date.parse(e.metadata.generatedAt),o=Date.parse(t.metadata.generatedAt);return Number.isNaN(a)||Number.isNaN(o)?!0:o>=a}function MS(){const e=ve(),t=je(),[a,o]=d.useState({status:"loading"}),[n,s]=d.useState(!1),[l,c]=d.useState(0),u=PS(a.status==="ready"?a.envelope:null),[p,g]=d.useState(null),h=p??u,k=AS(h),f=d.useMemo(()=>Oe(k),[k]),w=d.useRef(null),b=d.useRef(e.pathname),[m,C]=d.useState("chat");d.useEffect(()=>{g(null)},[u]);const v=d.useCallback(async(B,q)=>{try{const F=await La({signal:B,fallbackMessageForStatus:Q=>f("appLoadStateFailedWithStatus",{status:Q})});B?.aborted||d.startTransition(()=>o({status:"ready",envelope:F}))}catch(F){if(B?.aborted)return;const Q=hS(F,f("appLoadErrorMessage"));if(Q.status==="unauthenticated"){d.startTransition(()=>o({status:"unauthenticated"}));return}if(Q.status==="repairRequired"){d.startTransition(()=>o({status:"repairRequired"}));return}q?.suppressErrors||o(Q)}},[f]);d.useEffect(()=>{const B=new AbortController;return v(B.signal),()=>B.abort()},[v]),d.useEffect(()=>{function B(){v(void 0,{suppressErrors:!0})}return window.addEventListener(Mo,B),()=>{window.removeEventListener(Mo,B)}},[v]);const y=fa(e.pathname),L=on({hydrate:a.status==="ready"}),x=d.useCallback(()=>{L.update({sidecarSeen:!0})},[L.update]);d.useEffect(()=>{const B=b.current;b.current=e.pathname,!(!(y&&!fa(B))||a.status!=="ready")&&v(void 0,{suppressErrors:!0})},[y,e.pathname,v,a.status]),d.useEffect(()=>{const B=window.history.state;Gb(e.pathname,B?.idx),Eb(e.pathname,B?.idx)},[e.pathname]),d.useEffect(()=>{if(a.status!=="ready"||!y||typeof window>"u"||typeof document>"u")return;let B=null;const q=()=>{if(document.visibilityState==="hidden"||B)return;const U=new AbortController;B=U,La({signal:U.signal,fallbackMessageForStatus:j=>f("appLoadStateFailedWithStatus",{status:j})}).then(j=>{U.signal.aborted||d.startTransition(()=>{o(G=>G.status!=="ready"||!jS(G.envelope,j)?G:{status:"ready",envelope:{...G.envelope,runtime:j.runtime,runtimeSetup:j.runtimeSetup,metadata:j.metadata,bootstrapAttemptId:j.bootstrapAttemptId}})})}).catch(()=>{}).finally(()=>{B===U&&(B=null)})},F=window.setInterval(q,vS),Q=()=>{q()},me=()=>{document.visibilityState==="visible"&&q()};return window.addEventListener("focus",Q),document.addEventListener("visibilitychange",me),()=>{B&&B.abort(),window.clearInterval(F),window.removeEventListener("focus",Q),document.removeEventListener("visibilitychange",me)}},[y,a.status,f]);const T=a.status==="ready"?a.envelope:null,N=!!T?.setupCompleteAt,A=T?.lastProductSurface??null,R=DS(e.state),P=w.current,I=Sh(R,P,A,m);if(d.useEffect(()=>{const B=NS({loadStatus:a.status,pathname:e.pathname,setupComplete:N,t:f});B&&(document.title=B)},[e.pathname,N,a.status]),d.useEffect(()=>{a.status!=="ready"||!N||vr().then(B=>Cg(B)).catch(()=>{})},[N,a.status]),d.useEffect(()=>{if(a.status!=="ready")return;const B=a.envelope.lastProductSurface??null;B&&C(q=>q===B?q:B)},[a.status,a.status==="ready"?a.envelope.lastProductSurface:null]),d.useEffect(()=>{if(xa(e.pathname)){C(B=>B===I?B:I);return}},[e.pathname,I]),d.useEffect(()=>{if(!N)return;const B=Ch(e.pathname);if(!(e.pathname==="/"&&A!=="chat")&&!(e.pathname==="/"&&!A)&&!vh(e.pathname)){if(C(q=>q===B?q:B),w.current===null){w.current=B,B!==A&&(d.startTransition(()=>{o(q=>q.status==="ready"?{status:"ready",envelope:{...q.envelope,lastProductSurface:B}}:q)}),fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({lastProductSurface:B})}).catch(()=>{}));return}B!==w.current&&(w.current=B,d.startTransition(()=>{o(q=>q.status==="ready"?{status:"ready",envelope:{...q.envelope,lastProductSurface:B}}:q)}),fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({lastProductSurface:B})}).catch(()=>{}))}},[N,A,e.pathname]),a.status==="loading")return r.jsx(Wt,{languagePreference:h,locale:k,setLanguagePreference:g,children:r.jsx("div",{className:"screen screenCentered",children:r.jsxs("div",{className:"loadingPanel",children:[r.jsx("p",{className:"eyebrow",children:f("appBrandName")}),r.jsx("h1",{children:f("appLoadingEllipsis")})]})})});if(a.status==="error")return r.jsx(Wt,{languagePreference:h,locale:k,setLanguagePreference:g,children:r.jsx("div",{className:"screen screenCentered",children:r.jsxs("div",{className:"errorPanel",children:[r.jsx("p",{className:"eyebrow",children:f("appErrorEyebrow")}),r.jsx("h1",{children:f("appErrorTitle")}),r.jsx("p",{children:a.message})]})})});if(a.status==="unauthenticated")return r.jsx(Wt,{languagePreference:h,locale:k,setLanguagePreference:g,children:r.jsxs(sa,{children:[r.jsx(Z,{path:ji,element:r.jsx(Ni,{onAuthenticated:B=>{const q=Ei(B);Ut.flushSync(()=>o({status:"ready",envelope:B})),t(q,{replace:!0})}})}),r.jsx(Z,{path:"*",element:r.jsx(ft,{to:ji,replace:!0})})]})});if(a.status==="repairRequired")return r.jsx(Wt,{languagePreference:h,locale:k,setLanguagePreference:g,children:r.jsxs(sa,{children:[r.jsx(Z,{path:Mi,element:r.jsx(uS,{onRepaired:B=>{const q=Ei(B);Ut.flushSync(()=>o({status:"ready",envelope:B})),t(q,{replace:!0})}})}),r.jsx(Z,{path:"*",element:r.jsx(ft,{to:Mi,replace:!0})})]})});const{envelope:O}=a;if(!O.setupCompleteAt)return r.jsx(Wt,{languagePreference:h,locale:k,setLanguagePreference:g,children:r.jsxs(sa,{children:[r.jsx(Z,{path:"/setup",element:r.jsx(dS,{envelope:O,onComplete:B=>{Ut.flushSync(()=>{o({status:"ready",envelope:B}),B.guideCat&&ka(B.guideCat.status)&&L.hydrated&&!L.prefs.sidecarSeen&&c(q=>q+1)}),t("/lobby",{replace:!0})}})}),r.jsx(Z,{path:"*",element:r.jsx(ft,{to:"/setup",replace:!0})})]})});const $=!!O.lastProductSurface?mr(I):"/lobby",_={guideCat:O.guideCat,productSurfaceFallbackActive:n},ee=xS(_);return r.jsx(Wt,{languagePreference:h,locale:k,setLanguagePreference:g,children:r.jsxs(Qh,{guideCat:ee?_.guideCat:null,placement:L.prefs.placement,floatingAnchor:L.prefs.floatingAnchor,sidecarMode:L.prefs.sidecarMode,proactiveGreetingToken:l,onPersistSeen:x,onCommit:L.update,children:[ee?r.jsx(Jm,{guideCat:_.guideCat,ownerDisplayName:O.ownerDisplayName,unreadCount:0,onDismissed:()=>{v()}}):null,r.jsxs(sa,{children:[r.jsx(Z,{path:"/lobby",element:r.jsx(KC,{envelope:O})}),r.jsxs(Z,{element:r.jsx(Wb,{envelope:O}),children:[r.jsx(Z,{path:"/entities",element:r.jsx(wb,{envelope:O})}),r.jsx(Z,{path:"/entities/cats",element:r.jsx(zk,{})}),r.jsx(Z,{path:"/entities/cats/:catId",element:r.jsx(vw,{})}),r.jsx(Z,{path:"/entities/clowders",element:r.jsx(vb,{envelope:O})}),r.jsx(Z,{path:"/entities/clowders/:clowderId",element:r.jsx(Zs,{envelope:O})}),r.jsx(Z,{path:"/entities/clowders/:clowderId/:tab",element:r.jsx(Zs,{envelope:O})}),r.jsx(Z,{path:"/entities/catteries",element:r.jsx(Cb,{envelope:O})}),r.jsx(Z,{path:"/entities/catteries/:catteryId",element:r.jsx(Xs,{envelope:O})}),r.jsx(Z,{path:"/entities/catteries/:catteryId/:tab",element:r.jsx(Xs,{envelope:O})})]}),r.jsx(Z,{path:"/apps/:appId/*",element:r.jsx(eg,{envelope:O})}),r.jsx(Z,{path:"/products",element:r.jsx(ft,{to:"/lobby",replace:!0})}),r.jsx(Z,{path:"/login",element:r.jsx(Ni,{onAuthenticated:B=>{Ut.flushSync(()=>o({status:"ready",envelope:B})),t($,{replace:!0})}})}),r.jsx(Z,{element:r.jsx(Yb,{envelope:O}),children:r.jsx(Z,{path:"/settings/*",element:r.jsx(CC,{})})}),r.jsx(Z,{path:`${Fr.chat.routePrefix}/*`,element:io("chat",s,f)}),r.jsx(Z,{path:`${Fr.work.routePrefix}/*`,element:io("work",s,f)}),r.jsx(Z,{path:`${Fr.code.routePrefix}/*`,element:io("code",s,f)}),r.jsx(Z,{path:"/setup",element:r.jsx(ft,{to:$,replace:!0})}),r.jsx(Z,{path:"/",element:r.jsx(ft,{to:$,replace:!0})}),r.jsx(Z,{path:"*",element:r.jsx(ft,{to:$,replace:!0})})]})]})})}const ES=new Mp({defaultOptions:{queries:{staleTime:5e3,refetchOnWindowFocus:!0,refetchOnMount:"always",retry:1}}});Mv();jh();Ld.createRoot(document.getElementById("root")).render(r.jsx(Bi.StrictMode,{children:r.jsx(Ep,{client:ES,children:r.jsx(Yu,{useTransitions:!1,children:r.jsx(MS,{})})})}));export{bf as $,WS as A,HL as B,YL as C,GL as D,Ns as E,qL as F,OL as G,hn as H,de as I,Oe as J,je as K,jt as L,dr as M,ft as N,Vt as O,mh as P,Ph as Q,sa as R,hr as S,BS as T,tR as U,eR as V,ZL as W,XL as X,vs as Y,_t as Z,pf as _,Vf as a,Af as a$,ES as a0,vL as a1,gh as a2,Pw as a3,_C as a4,cf as a5,yL as a6,LL as a7,bL as a8,CL as a9,VL as aA,Ue as aB,ve as aC,iu as aD,QL as aE,zL as aF,$L as aG,xa as aH,Bl as aI,sn as aJ,nn as aK,ld as aL,At as aM,xt as aN,Tt as aO,xn as aP,Fl as aQ,Xw as aR,Qw as aS,Jw as aT,Aw as aU,or as aV,rr as aW,ak as aX,lR as aY,cR as aZ,iR as a_,$l as aa,Bm as ab,Mf as ac,NL as ad,rt as ae,gn as af,Ol as ag,ln as ah,Qa as ai,yt as aj,un as ak,br as al,uc as am,QS as an,ML as ao,Bt as ap,vC as aq,ed as ar,td as as,Xl as at,_S as au,zS as av,GS as aw,KS as ax,mR as ay,yR as az,SL as b,sh as b$,SR as b0,ZS as b1,pL as b2,Xg as b3,uL as b4,hL as b5,Vg as b6,eL as b7,CR as b8,Rn as b9,lL as bA,wf as bB,TL as bC,xL as bD,sR as bE,nR as bF,oR as bG,nL as bH,BL as bI,XS as bJ,IL as bK,EL as bL,RL as bM,fL as bN,uf as bO,gL as bP,dL as bQ,mL as bR,uR as bS,pR as bT,hR as bU,gt as bV,mr as bW,It as bX,at as bY,oL as bZ,Re as b_,dR as ba,vR as bb,Nk as bc,wt as bd,Fe as be,aR as bf,Ck as bg,jm as bh,id as bi,_L as bj,KL as bk,Qt as bl,og as bm,Ze as bn,JS as bo,qS as bp,$g as bq,PL as br,FL as bs,Tk as bt,Yg as bu,tL as bv,aL as bw,et as bx,iL as by,sL as bz,Z as c,Ds as c0,jL as c1,$S as c2,VS as c3,cL as c4,rL as c5,YS as c6,jc as c7,Hc as c8,wc as c9,Sr as cA,En as cB,ia as cC,wR as cD,Zr as cE,Mn as cF,rd as cG,ce as ca,Mt as cb,HS as cc,Sn as cd,ya as ce,An as cf,kR as cg,fR as ch,gR as ci,AL as cj,DL as ck,xs as cl,rR as cm,bR as cn,ug as co,kL as cp,wL as cq,rl as cr,cu as cs,Up as ct,US as cu,ih as cv,Ut as cw,ub as cx,db as cy,Hp as cz,yp as d,hp as e,FS as f,ho as g,Ye as h,WL as i,cl as j,up as k,po as l,i as m,fe as n,sl as o,UL as p,xp as q,Fp as r,JL as s,pp as t,W as u,fp as v,Ee as w,ma as x,Dp as y,OS as z};