@cats-inc/cats-platform 0.2.8 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +17 -0
  2. package/build/desktop/bootstrapPage.d.ts.map +1 -1
  3. package/build/desktop/bootstrapPage.js +26 -129
  4. package/build/desktop/bootstrapPage.js.map +1 -1
  5. package/build/desktop/cliInventoryProbe.d.ts +6 -0
  6. package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
  7. package/build/desktop/cliInventoryProbe.js +6 -3
  8. package/build/desktop/cliInventoryProbe.js.map +1 -1
  9. package/build/desktop/contracts.d.ts +2 -0
  10. package/build/desktop/contracts.d.ts.map +1 -1
  11. package/build/desktop/contracts.js.map +1 -1
  12. package/build/desktop/main.js +95 -41
  13. package/build/desktop/main.js.map +1 -1
  14. package/build/desktop/preload.cjs +8 -6
  15. package/build/desktop/preload.cjs.map +1 -1
  16. package/build/desktop/providerManager.d.ts +46 -0
  17. package/build/desktop/providerManager.d.ts.map +1 -0
  18. package/build/desktop/providerManager.js +220 -0
  19. package/build/desktop/providerManager.js.map +1 -0
  20. package/build/desktop/providerSelection.d.ts +1 -0
  21. package/build/desktop/providerSelection.d.ts.map +1 -1
  22. package/build/desktop/providerSelection.js +7 -1
  23. package/build/desktop/providerSelection.js.map +1 -1
  24. package/build/desktop/setupAssets.d.ts.map +1 -1
  25. package/build/desktop/setupAssets.js +12 -0
  26. package/build/desktop/setupAssets.js.map +1 -1
  27. package/build/desktop/setupAudit.d.ts +3 -1
  28. package/build/desktop/setupAudit.d.ts.map +1 -1
  29. package/build/desktop/setupAudit.js +12 -8
  30. package/build/desktop/setupAudit.js.map +1 -1
  31. package/build/desktop/setupBridge.js +1 -1
  32. package/build/desktop/setupBridge.js.map +1 -1
  33. package/build/desktop/setupPrerequisites.d.ts +11 -0
  34. package/build/desktop/setupPrerequisites.d.ts.map +1 -0
  35. package/build/desktop/setupPrerequisites.js +47 -0
  36. package/build/desktop/setupPrerequisites.js.map +1 -0
  37. package/build/renderer/assets/ActiveSessionPermissionChip-B49WcZBJ.js +1 -0
  38. package/build/renderer/assets/{App-BZA23O2J.js → App-BpxZB5ym.js} +1 -1
  39. package/build/renderer/assets/{App-rGw9J8PZ.js → App-DYTUfAl6.js} +1 -1
  40. package/build/renderer/assets/{App-YqprEL2n.js → App-boB4WrmU.js} +1 -1
  41. package/build/renderer/assets/{WorkspaceAppRoutes-BCHCikmJ.js → WorkspaceAppRoutes-CPqz85iw.js} +1 -1
  42. package/build/renderer/assets/app-C52wwCGz.js +85 -0
  43. package/build/renderer/assets/app-CqnsY5ed.css +1 -0
  44. package/build/renderer/assets/{client-BdGHAUoK.js → client-DREGSZqQ.js} +1 -1
  45. package/build/renderer/assets/conversationSidebarRecentEntries-DK0iWS73.js +6 -0
  46. package/build/renderer/assets/{screenshotOverlay-DfBcolX-.js → screenshotOverlay-EF07cXvw.js} +1 -1
  47. package/build/renderer/assets/{useDraftSessionChips-D9BX6X92.js → useDraftSessionChips-BdZ_B1gy.js} +1 -1
  48. package/build/renderer/desktop/overlay/index.html +2 -2
  49. package/build/renderer/index.html +3 -3
  50. package/build/server/app/renderer/auth/api.d.ts.map +1 -1
  51. package/build/server/app/renderer/auth/api.js +4 -1
  52. package/build/server/app/renderer/auth/api.js.map +1 -1
  53. package/build/server/app/renderer/providerCatalogClient.d.ts.map +1 -1
  54. package/build/server/app/renderer/providerCatalogClient.js +19 -6
  55. package/build/server/app/renderer/providerCatalogClient.js.map +1 -1
  56. package/build/server/app/renderer/providerClientInvalidation.d.ts +6 -0
  57. package/build/server/app/renderer/providerClientInvalidation.d.ts.map +1 -0
  58. package/build/server/app/renderer/providerClientInvalidation.js +12 -0
  59. package/build/server/app/renderer/providerClientInvalidation.js.map +1 -0
  60. package/build/server/app/renderer/providerReadLoop.d.ts +5 -0
  61. package/build/server/app/renderer/providerReadLoop.d.ts.map +1 -0
  62. package/build/server/app/renderer/providerReadLoop.js +52 -0
  63. package/build/server/app/renderer/providerReadLoop.js.map +1 -0
  64. package/build/server/app/renderer/providerRegistryClient.d.ts +2 -1
  65. package/build/server/app/renderer/providerRegistryClient.d.ts.map +1 -1
  66. package/build/server/app/renderer/providerRegistryClient.js +33 -17
  67. package/build/server/app/renderer/providerRegistryClient.js.map +1 -1
  68. package/build/server/app/server/authGatePolicy.js +7 -0
  69. package/build/server/app/server/authGatePolicy.js.map +1 -1
  70. package/build/server/app/server/subscribeRoutes.d.ts.map +1 -1
  71. package/build/server/app/server/subscribeRoutes.js +5 -3
  72. package/build/server/app/server/subscribeRoutes.js.map +1 -1
  73. package/build/server/design/components/providerModelFieldsSupport.d.ts +2 -21
  74. package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
  75. package/build/server/design/components/providerModelFieldsSupport.js +32 -36
  76. package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
  77. package/build/server/design/components/useProviderCatalogState.d.ts +1 -2
  78. package/build/server/design/components/useProviderCatalogState.d.ts.map +1 -1
  79. package/build/server/design/components/useProviderCatalogState.js +71 -152
  80. package/build/server/design/components/useProviderCatalogState.js.map +1 -1
  81. package/build/server/design/components/useProviderModelFieldActions.js +2 -2
  82. package/build/server/design/components/useProviderModelFieldActions.js.map +1 -1
  83. package/build/server/design/components/useProviderRegistryState.d.ts +1 -7
  84. package/build/server/design/components/useProviderRegistryState.d.ts.map +1 -1
  85. package/build/server/design/components/useProviderRegistryState.js +41 -91
  86. package/build/server/design/components/useProviderRegistryState.js.map +1 -1
  87. package/build/server/design/components/useProviderTargetReconciliation.d.ts +1 -0
  88. package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
  89. package/build/server/design/components/useProviderTargetReconciliation.js +1 -1
  90. package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
  91. package/build/server/platform/orchestration/entitySubscriptions/channel.d.ts +2 -1
  92. package/build/server/platform/orchestration/entitySubscriptions/channel.d.ts.map +1 -1
  93. package/build/server/platform/orchestration/entitySubscriptions/channel.js +3 -18
  94. package/build/server/platform/orchestration/entitySubscriptions/channel.js.map +1 -1
  95. package/build/server/platform/orchestration/entitySubscriptions/index.d.ts +1 -0
  96. package/build/server/platform/orchestration/entitySubscriptions/index.d.ts.map +1 -1
  97. package/build/server/platform/orchestration/entitySubscriptions/index.js.map +1 -1
  98. package/build/server/products/chat/api/routeSupport.d.ts +9 -1
  99. package/build/server/products/chat/api/routeSupport.d.ts.map +1 -1
  100. package/build/server/products/chat/api/routeSupport.js +22 -0
  101. package/build/server/products/chat/api/routeSupport.js.map +1 -1
  102. package/build/server/products/chat/state/model/readModels.d.ts +1 -0
  103. package/build/server/products/chat/state/model/readModels.d.ts.map +1 -1
  104. package/build/server/products/chat/state/model/readModels.js +2 -1
  105. package/build/server/products/chat/state/model/readModels.js.map +1 -1
  106. package/build/server/products/shared/renderer/api/appShell.d.ts +1 -0
  107. package/build/server/products/shared/renderer/api/appShell.d.ts.map +1 -1
  108. package/build/server/products/shared/renderer/api/appShell.js +9 -0
  109. package/build/server/products/shared/renderer/api/appShell.js.map +1 -1
  110. package/build/server/runtime/client.d.ts.map +1 -1
  111. package/build/server/runtime/client.js +5 -1
  112. package/build/server/runtime/client.js.map +1 -1
  113. package/build/server/runtime/setup.d.ts +4 -0
  114. package/build/server/runtime/setup.d.ts.map +1 -1
  115. package/build/server/runtime/setup.js +3 -1
  116. package/build/server/runtime/setup.js.map +1 -1
  117. package/build/server/server/routes/providers.d.ts.map +1 -1
  118. package/build/server/server/routes/providers.js +21 -50
  119. package/build/server/server/routes/providers.js.map +1 -1
  120. package/build/server/shared/desktopRecoveryBridge.d.ts +2 -1
  121. package/build/server/shared/desktopRecoveryBridge.d.ts.map +1 -1
  122. package/build/server/shared/desktopRecoveryBridge.js.map +1 -1
  123. package/build/server/shared/providerCatalogData.d.ts +128 -57
  124. package/build/server/shared/providerCatalogData.d.ts.map +1 -1
  125. package/build/server/shared/providerCatalogData.js +51 -26
  126. package/build/server/shared/providerCatalogData.js.map +1 -1
  127. package/build/server/shared/providerRegistryWarnings.d.ts +4 -0
  128. package/build/server/shared/providerRegistryWarnings.d.ts.map +1 -1
  129. package/build/server/shared/providerRegistryWarnings.js +7 -0
  130. package/build/server/shared/providerRegistryWarnings.js.map +1 -1
  131. package/package.json +12 -5
  132. package/packages/provider-setup/manager.d.ts +79 -0
  133. package/packages/provider-setup/manager.js +441 -0
  134. package/scripts/README.md +23 -0
  135. package/scripts/build-desktop-installer.mjs +124 -16
  136. package/scripts/linux/install-github-cli.sh +5 -0
  137. package/scripts/linux/install-node.sh +9 -3
  138. package/scripts/linux/node-cli-common.sh +87 -48
  139. package/scripts/linux/provider-cli-common.sh +80 -105
  140. package/scripts/linux/provider-version-common.sh +247 -0
  141. package/scripts/linux/test-linux-package-smoke.sh +2 -0
  142. package/scripts/linux/verified-npm-update.sh +20 -0
  143. package/scripts/macos/install-github-cli.sh +5 -0
  144. package/scripts/macos/install-node.sh +9 -3
  145. package/scripts/macos/node-cli-common.sh +87 -48
  146. package/scripts/macos/provider-cli-common.sh +80 -105
  147. package/scripts/macos/provider-version-common.sh +247 -0
  148. package/scripts/macos/test-macos-package-smoke.sh +2 -0
  149. package/scripts/macos/verified-npm-update.sh +20 -0
  150. package/scripts/testing/conversation-navigation-smoke-electron.cjs +134 -0
  151. package/scripts/testing/conversation-navigation-smoke-renderer.tsx +102 -0
  152. package/scripts/testing/conversation-navigation-smoke.mjs +67 -0
  153. package/scripts/validate-release-assets.mjs +4 -1
  154. package/scripts/windows/Install-Antigravity.ps1 +26 -3
  155. package/scripts/windows/Install-ClaudeCode.ps1 +25 -7
  156. package/scripts/windows/Install-CursorAgent.ps1 +45 -30
  157. package/scripts/windows/Install-Devin.ps1 +16 -47
  158. package/scripts/windows/Install-GitHubCli.ps1 +4 -0
  159. package/scripts/windows/Install-Goose.ps1 +18 -1
  160. package/scripts/windows/Install-Grok.ps1 +14 -1
  161. package/scripts/windows/Install-Junie.ps1 +32 -11
  162. package/scripts/windows/Install-KiroCli.ps1 +37 -13
  163. package/scripts/windows/Install-MetaCli.ps1 +8 -1
  164. package/scripts/windows/Install-Node.ps1 +6 -1
  165. package/scripts/windows/Setup-NodeGlobalPrefix.ps1 +10 -0
  166. package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +2 -0
  167. package/scripts/windows/_HiddenProcess.ps1 +14 -3
  168. package/scripts/windows/_NativeInstallerSupport.ps1 +308 -0
  169. package/scripts/windows/_NpmCliInstaller.ps1 +35 -14
  170. package/scripts/windows/_PackagedUninstall.ps1 +9 -1
  171. package/scripts/windows/_VerifiedNpmUpdate.ps1 +25 -0
  172. package/build/renderer/assets/ActiveSessionPermissionChip-CAgN-tXv.js +0 -1
  173. package/build/renderer/assets/app-BV3UAQkR.css +0 -1
  174. package/build/renderer/assets/app-CVPqqfZo.js +0 -45
  175. package/build/renderer/assets/conversationSidebarRecentEntries-iqaLqA1n.js +0 -6
  176. package/build/server/app/renderer/settings/runtimeLifecycleHelpers.d.ts +0 -48
  177. package/build/server/app/renderer/settings/runtimeLifecycleHelpers.d.ts.map +0 -1
  178. package/build/server/app/renderer/settings/runtimeLifecycleHelpers.js +0 -535
  179. package/build/server/app/renderer/settings/runtimeLifecycleHelpers.js.map +0 -1
  180. package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts +0 -13
  181. package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts.map +0 -1
  182. package/build/server/design/components/useProviderRegistryAutoRecheck.js +0 -70
  183. package/build/server/design/components/useProviderRegistryAutoRecheck.js.map +0 -1
  184. package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.d.ts +0 -19
  185. package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.d.ts.map +0 -1
  186. package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.js +0 -53
  187. package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.js.map +0 -1
  188. package/build/server/products/shared/renderer/api/providers.d.ts +0 -17
  189. package/build/server/products/shared/renderer/api/providers.d.ts.map +0 -1
  190. package/build/server/products/shared/renderer/api/providers.js +0 -50
  191. package/build/server/products/shared/renderer/api/providers.js.map +0 -1
@@ -0,0 +1,85 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/App-boB4WrmU.js","assets/client-DREGSZqQ.js","assets/conversationSidebarRecentEntries-DK0iWS73.js","assets/ActiveSessionPermissionChip-B49WcZBJ.js","assets/useDraftSessionChips-BdZ_B1gy.js","assets/App-BXCQs2gk.css","assets/App-BpxZB5ym.js","assets/WorkspaceAppRoutes-CPqz85iw.js","assets/App-DxsV-tKS.css","assets/App-DYTUfAl6.js","assets/App-DKequja8.css"])))=>i.map(i=>d[i]);
2
+ import{r as d,a as hd,j as r,R as md,b as gd}from"./client-DREGSZqQ.js";var Fo=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,Ai=/^[\\/]{2}/;function kd(e,t){return t+e.replace(/\\/g,"/")}var Bn="popstate";function Fn(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function wd(e={}){function t(o,n){let i=n.state?.masked,{pathname:s,search:c,hash:h}=i||o.location;return ao("",{pathname:s,search:c,hash:h},n.state&&n.state.usr||null,n.state&&n.state.key||"default",i?{pathname:o.location.pathname,search:o.location.search,hash:o.location.hash}:void 0)}function a(o,n){return typeof n=="string"?n:ya(n)}return bd(t,a,null,e)}function Pe(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ze(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function fd(){return Math.random().toString(36).substring(2,10)}function On(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 ao(e,t,a=null,o,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?aa(t):t,state:a,key:t&&t.key||o||fd(),mask:n}}function ya({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 aa(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 bd(e,t,a,o={}){let{window:n=document.defaultView,v5Compat:i=!1}=o,s=n.history,c="POP",h=null,u=g();u==null&&(u=0,s.replaceState({...s.state,idx:u},""));function g(){return(s.state||{idx:null}).idx}function p(){c="POP";let m=g(),C=m==null?null:m-u;u=m,h&&h({action:c,location:y.location,delta:C})}function f(m,C){c="PUSH";let v=Fn(m)?m:ao(y.location,m,C);u=g()+1;let b=On(v,u),S=y.createHref(v.mask||v);try{s.pushState(b,"",S)}catch(T){if(T instanceof DOMException&&T.name==="DataCloneError")throw T;n.location.assign(S)}i&&h&&h({action:c,location:y.location,delta:1})}function w(m,C){c="REPLACE";let v=Fn(m)?m:ao(y.location,m,C);u=g();let b=On(v,u),S=y.createHref(v.mask||v);s.replaceState(b,"",S),i&&h&&h({action:c,location:y.location,delta:0})}function k(m){return yd(n,m)}let y={get action(){return c},get location(){return e(n,s)},listen(m){if(h)throw new Error("A history only accepts one active listener");return n.addEventListener(Bn,p),h=m,()=>{n.removeEventListener(Bn,p),h=null}},createHref(m){return t(n,m)},createURL:k,encodeLocation(m){let C=k(m);return{pathname:C.pathname,search:C.search,hash:C.hash}},push:f,replace:w,go(m){return s.go(m)}};return y}function yd(e,t,a=!1){let o="http://localhost";e&&(o=e.location.origin!=="null"?e.location.origin:e.location.href),Pe(o,"No window.location.(origin|href) available to create URL");let n=typeof t=="string"?t:ya(t);return n=n.replace(/ $/,"%20"),!a&&Ai.test(n)&&(n=o+n),new URL(n,o)}function Ti(e,t,a="/"){return vd(e,t,a,!1)}function vd(e,t,a,o,n){let i=typeof t=="string"?aa(t):t,s=St(i.pathname||"/",a);if(s==null)return null;let c=Cd(e),h=null,u=Ei(s);for(let g=0;h==null&&g<c.length;++g)h=jd(c[g],u,o);return h}function Cd(e){let t=Di(e);return Sd(t),t}function Di(e,t=[],a=[],o="",n=!1){let i=(s,c,h=n,u)=>{let g={relativePath:u===void 0?s.path||"":u,caseSensitive:s.caseSensitive===!0,childrenIndex:c,route:s};if(g.relativePath.startsWith("/")){if(!g.relativePath.startsWith(o)&&h)return;Pe(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 p=it([o,g.relativePath]),f=a.concat(g);s.children&&s.children.length>0&&(Pe(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${p}".`),Di(s.children,t,f,p,h)),!(s.path==null&&!s.index)&&t.push({path:p,score:Dd(p,s.index),routesMeta:f.map((w,k)=>{let[y,m]=Mi(w.relativePath,w.caseSensitive,k===f.length-1);return{...w,matcher:y,compiledParams:m}})})};return e.forEach((s,c)=>{if(s.path===""||!s.path?.includes("?"))i(s,c);else for(let h of Ni(s.path))i(s,c,!0,h)}),t}function Ni(e){let t=e.split("/");if(t.length===0)return[];let[a,...o]=t,n=a.endsWith("?"),i=a.replace(/\?$/,"");if(o.length===0)return n?[i,""]:[i];let s=Ni(o.join("/")),c=[];return c.push(...s.map(h=>h===""?i:[i,h].join("/"))),n&&c.push(...s),c.map(h=>e.startsWith("/")&&h===""?"/":h)}function Sd(e){e.sort((t,a)=>t.score!==a.score?a.score-t.score:Nd(t.routesMeta.map(o=>o.childrenIndex),a.routesMeta.map(o=>o.childrenIndex)))}var Ld=/^:[\w-]+$/,Pd=3,Rd=2,xd=1,Ad=10,Td=-2,Wn=e=>e==="*";function Dd(e,t){let a=e.split("/"),o=a.length;return a.some(Wn)&&(o+=Td),t&&(o+=Rd),a.filter(n=>!Wn(n)).reduce((n,i)=>n+(Ld.test(i)?Pd:i===""?xd:Ad),o)}function Nd(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 jd(e,t,a=!1){let{routesMeta:o}=e,n={},i="/",s=[];for(let c=0;c<o.length;++c){let h=o[c],u=c===o.length-1,g=i==="/"?t:t.slice(i.length)||"/",p={path:h.relativePath,caseSensitive:h.caseSensitive,end:u},f=h.matcher&&h.compiledParams?ji(p,g,h.matcher,h.compiledParams):va(p,g),w=h.route;if(!f&&u&&a&&!o[o.length-1].route.index&&(f=va({path:h.relativePath,caseSensitive:h.caseSensitive,end:!1},g)),!f)return null;Object.assign(n,f.params),s.push({params:n,pathname:it([i,f.pathname]),pathnameBase:Id(it([i,f.pathnameBase])),route:w}),f.pathnameBase!=="/"&&(i=it([i,f.pathnameBase]))}return s}function va(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[a,o]=Mi(e.path,e.caseSensitive,e.end);return ji(e,t,a,o)}function ji(e,t,a,o){let n=t.match(a);if(!n)return null;let i=n[0],s=i.replace(/(.)\/+$/,"$1"),c=n.slice(1);return{params:o.reduce((u,{paramName:g,isOptional:p},f)=>{if(g==="*"){let k=c[f]||"";s=i.slice(0,i.length-k.length).replace(/(.)\/+$/,"$1")}const w=c[f];return p&&!w?u[g]=void 0:u[g]=(w||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:s,pattern:e}}function Mi(e,t=!1,a=!0){Ze(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,(s,c,h,u,g)=>{if(o.push({paramName:c,isOptional:h!=null}),h){let p=g.charAt(u+s.length);return p&&p!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}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 Ei(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ze(!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 St(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 Md(e,t="/"){let{pathname:a,search:o="",hash:n=""}=typeof e=="string"?aa(e):e,i;return a?(a=Ii(a),a.startsWith("/")?i=Un(a.substring(1),"/"):i=Un(a,t)):i=t,{pathname:i,search:Bd(o),hash:Fd(n)}}function Un(e,t){let a=Ja(t).split("/");return e.split("/").forEach(n=>{n===".."?a.length>1&&a.pop():n!=="."&&a.push(n)}),a.length>1?a.join("/"):"/"}function Dr(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 Ed(e){return e.filter((t,a)=>a===0||t.route.path&&t.route.path.length>0)}function Oo(e){let t=Ed(e);return t.map((a,o)=>o===t.length-1?a.pathname:a.pathnameBase)}function cr(e,t,a,o=!1){let n;typeof e=="string"?n=aa(e):(n={...e},Pe(!n.pathname||!n.pathname.includes("?"),Dr("?","pathname","search",n)),Pe(!n.pathname||!n.pathname.includes("#"),Dr("#","pathname","hash",n)),Pe(!n.search||!n.search.includes("#"),Dr("#","search","hash",n)));let i=e===""||n.pathname==="",s=i?"/":n.pathname,c;if(s==null)c=a;else{let p=t.length-1;if(!o&&s.startsWith("..")){let f=s.split("/");for(;f[0]==="..";)f.shift(),p-=1;n.pathname=f.join("/")}c=p>=0?t[p]:"/"}let h=Md(n,c),u=s&&s!=="/"&&s.endsWith("/"),g=(i||s===".")&&a.endsWith("/");return!h.pathname.endsWith("/")&&(u||g)&&(h.pathname+="/"),h}var Ii=e=>e.replace(/[\\/]{2,}/g,"/"),it=e=>Ii(e.join("/")),Ja=e=>e.replace(/\/+$/,""),Id=e=>Ja(e).replace(/^\/*/,"/"),Bd=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Fd=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Od=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 Wd(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Ud(e){let t=e.map(a=>a.route.path).filter(Boolean);return it(t)||"/"}var Bi=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Fi(e,t){let a=e;if(typeof a!="string"||!Fo.test(a))return{absoluteURL:void 0,isExternal:!1,to:a};let o=a,n=!1;if(Bi)try{let i=new URL(window.location.href),s=Ai.test(a)?new URL(kd(a,i.protocol)):new URL(a),c=St(s.pathname,t);s.origin===i.origin&&c!=null?a=c+s.search+s.hash:n=!0}catch{Ze(!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 Oi=["POST","PUT","PATCH","DELETE"];new Set(Oi);var Hd=["GET",...Oi];new Set(Hd);var Gd=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function _d(e){try{return Gd.includes(new URL(e).protocol)}catch{return!1}}var ra=d.createContext(null);ra.displayName="DataRouter";var dr=d.createContext(null);dr.displayName="DataRouterState";var Wi=d.createContext(!1);function Kd(){return d.useContext(Wi)}var Ui=d.createContext({isTransitioning:!1});Ui.displayName="ViewTransition";var qd=d.createContext(new Map);qd.displayName="Fetchers";var zd=d.createContext(null);zd.displayName="Await";var Qe=d.createContext(null);Qe.displayName="Navigation";var Ma=d.createContext(null);Ma.displayName="Location";var et=d.createContext({outlet:null,matches:[],isDataRoute:!1});et.displayName="Route";var Wo=d.createContext(null);Wo.displayName="RouteError";var Hi="REACT_ROUTER_ERROR",$d="REDIRECT",Vd="ROUTE_ERROR_RESPONSE";function Yd(e){if(e.startsWith(`${Hi}:${$d}:{`))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 Qd(e){if(e.startsWith(`${Hi}:${Vd}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Od(t.status,t.statusText,t.data)}catch{}}function Jd(e,{relative:t}={}){Pe(Ht(),"useHref() may be used only in the context of a <Router> component.");let{basename:a,navigator:o}=d.useContext(Qe),{hash:n,pathname:i,search:s}=Ea(e,{relative:t}),c=i;return a!=="/"&&(c=i==="/"?a:it([a,i])),o.createHref({pathname:c,search:s,hash:n})}function Ht(){return d.useContext(Ma)!=null}function Ne(){return Pe(Ht(),"useLocation() may be used only in the context of a <Router> component."),d.useContext(Ma).location}function Xd(e){Pe(Ht(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:t}=Ne();return d.useMemo(()=>va(e,Ei(t)),[t,e])}var Gi="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function _i(e){d.useContext(Qe).static||d.useLayoutEffect(e)}function Ue(){let{isDataRoute:e}=d.useContext(et);return e?hu():Zd()}function Zd(){Pe(Ht(),"useNavigate() may be used only in the context of a <Router> component.");let e=d.useContext(ra),{basename:t,navigator:a}=d.useContext(Qe),{matches:o}=d.useContext(et),{pathname:n}=Ne(),i=JSON.stringify(Oo(o)),s=d.useRef(!1);return _i(()=>{s.current=!0}),d.useCallback((h,u={})=>{if(Ze(s.current,Gi),!s.current)return;if(typeof h=="number"){a.go(h);return}let g=cr(h,JSON.parse(i),n,u.relative==="path");e==null&&t!=="/"&&(g.pathname=g.pathname==="/"?t:it([t,g.pathname])),(u.replace?a.replace:a.push)(g,u.state,u)},[t,a,i,n,e])}var Ki=d.createContext(null);function eu(){return d.useContext(Ki)}function tu(e){let t=d.useContext(et).outlet;return d.useMemo(()=>t&&d.createElement(Ki.Provider,{value:e},t),[t,e])}function ur(){let{matches:e}=d.useContext(et);return e[e.length-1]?.params??{}}function Ea(e,{relative:t}={}){let{matches:a}=d.useContext(et),{pathname:o}=Ne(),n=JSON.stringify(Oo(a));return d.useMemo(()=>cr(e,JSON.parse(n),o,t==="path"),[e,n,o,t])}function au(e,t){return qi(e,t)}function qi(e,t,a){Pe(Ht(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=d.useContext(Qe),{matches:n}=d.useContext(et),i=n[n.length-1],s=i?i.params:{},c=i?i.pathname:"/",h=i?i.pathnameBase:"/",u=i&&i.route;{let m=u&&u.path||"";$i(c,!u||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=Ne(),p;if(t){let m=typeof t=="string"?aa(t):t;Pe(h==="/"||m.pathname?.startsWith(h),`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 "${h}" but pathname "${m.pathname}" was given in the \`location\` prop.`),p=m}else p=g;let f=p.pathname||"/",w=f;if(h!=="/"){let m=h.replace(/^\//,"").split("/");w="/"+f.replace(/^\//,"").split("/").slice(m.length).join("/")}let k=a&&a.state.matches.length?a.state.matches.map(m=>Object.assign(m,{route:a.manifest[m.route.id]||m.route})):Ti(e,{pathname:w});Ze(u||k!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),Ze(k==null||k[k.length-1].route.element!==void 0||k[k.length-1].route.Component!==void 0||k[k.length-1].route.lazy!==void 0,`Matched leaf route at location "${p.pathname}${p.search}${p.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 y=iu(k&&k.map(m=>Object.assign({},m,{params:Object.assign({},s,m.params),pathname:it([h,o.encodeLocation?o.encodeLocation(m.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:m.pathname]),pathnameBase:m.pathnameBase==="/"?h:it([h,o.encodeLocation?o.encodeLocation(m.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:m.pathnameBase])})),n,a);return t&&y?d.createElement(Ma.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...p},navigationType:"POP"}},y):y}function ru(){let e=pu(),t=Wd(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},i={padding:"2px 4px",backgroundColor:o},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=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:i},"ErrorBoundary")," or"," ",d.createElement("code",{style:i},"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,s)}var ou=d.createElement(ru,null),zi=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=Qd(e.digest);a&&(e=a)}let t=e!==void 0?d.createElement(et.Provider,{value:this.props.routeContext},d.createElement(Wo.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?d.createElement(nu,{error:e},t):t}};zi.contextType=Wi;var Nr=new WeakMap;function nu({children:e,error:t}){let{basename:a}=d.useContext(Qe);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let o=Yd(t.digest);if(o){let n=Nr.get(t);if(n)throw n;let i=Fi(o.location,a),s=i.absoluteURL||i.to;if(_d(s))throw new Error("Invalid redirect location");if(Bi&&!Nr.get(t))if(i.isExternal||o.reloadDocument)window.location.href=s;else{const c=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:o.replace}));throw Nr.set(t,c),c}return d.createElement("meta",{httpEquiv:"refresh",content:`0;url=${s}`})}}return e}function su({routeContext:e,match:t,children:a}){let o=d.useContext(ra);return o&&o.static&&o.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=t.route.id),d.createElement(et.Provider,{value:e},a)}function iu(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,i=o?.errors;if(i!=null){let g=n.findIndex(p=>p.route.id&&i?.[p.route.id]!==void 0);Pe(g>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),n=n.slice(0,Math.min(n.length,g+1))}let s=!1,c=-1;if(a&&o){s=o.renderFallback;for(let g=0;g<n.length;g++){let p=n[g];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(c=g),p.route.id){let{loaderData:f,errors:w}=o,k=p.route.loader&&!f.hasOwnProperty(p.route.id)&&(!w||w[p.route.id]===void 0);if(p.route.lazy||k){a.isStatic&&(s=!0),c>=0?n=n.slice(0,c+1):n=[n[0]];break}}}}let h=a?.onError,u=o&&h?(g,p)=>{h(g,{location:o.location,params:o.matches?.[0]?.params??{},pattern:Ud(o.matches),errorInfo:p})}:void 0;return n.reduceRight((g,p,f)=>{let w,k=!1,y=null,m=null;o&&(w=i&&p.route.id?i[p.route.id]:void 0,y=p.route.errorElement||ou,s&&(c<0&&f===0?($i("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),k=!0,m=null):c===f&&(k=!0,m=p.route.hydrateFallbackElement||null)));let C=t.concat(n.slice(0,f+1)),v=()=>{let b;return w?b=y:k?b=m:p.route.Component?b=d.createElement(p.route.Component,null):p.route.element?b=p.route.element:b=g,d.createElement(su,{match:p,routeContext:{outlet:g,matches:C,isDataRoute:o!=null},children:b})};return o&&(p.route.ErrorBoundary||p.route.errorElement||f===0)?d.createElement(zi,{location:o.location,revalidation:o.revalidation,component:y,error:w,children:v(),routeContext:{outlet:null,matches:C,isDataRoute:!0},onError:u}):v()},null)}function Uo(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function lu(e){let t=d.useContext(ra);return Pe(t,Uo(e)),t}function cu(e){let t=d.useContext(dr);return Pe(t,Uo(e)),t}function du(e){let t=d.useContext(et);return Pe(t,Uo(e)),t}function Ho(e){let t=du(e),a=t.matches[t.matches.length-1];return Pe(a.route.id,`${e} can only be used on routes that contain a unique "id"`),a.route.id}function uu(){return Ho("useRouteId")}function pu(){let e=d.useContext(Wo),t=cu("useRouteError"),a=Ho("useRouteError");return e!==void 0?e:t.errors?.[a]}function hu(){let{router:e}=lu("useNavigate"),t=Ho("useNavigate"),a=d.useRef(!1);return _i(()=>{a.current=!0}),d.useCallback(async(n,i={})=>{Ze(a.current,Gi),a.current&&(typeof n=="number"?await e.navigate(n):await e.navigate(n,{fromRouteId:t,...i}))},[e,t])}var Hn={};function $i(e,t,a){!t&&!Hn[e]&&(Hn[e]=!0,Ze(!1,a))}d.memo(mu);function mu({routes:e,manifest:t,future:a,state:o,isStatic:n,onError:i}){return qi(e,void 0,{manifest:t,state:o,isStatic:n,onError:i})}function Lt({to:e,replace:t,state:a,relative:o}){Pe(Ht(),"<Navigate> may be used only in the context of a <Router> component.");let{static:n}=d.useContext(Qe);Ze(!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:i}=d.useContext(et),{pathname:s}=Ne(),c=Ue(),h=cr(e,Oo(i),s,o==="path"),u=JSON.stringify(h);return d.useEffect(()=>{c(JSON.parse(u),{replace:t,state:a,relative:o})},[c,u,o,t,a]),null}function Vi(e){return tu(e.context)}function se(e){Pe(!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 gu({basename:e="/",children:t=null,location:a,navigationType:o="POP",navigator:n,static:i=!1,useTransitions:s}){Pe(!Ht(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let c=e.replace(/^\/*/,"/"),h=d.useMemo(()=>({basename:c,navigator:n,static:i,useTransitions:s,future:{}}),[c,n,i,s]);typeof a=="string"&&(a=aa(a));let{pathname:u="/",search:g="",hash:p="",state:f=null,key:w="default",mask:k}=a,y=d.useMemo(()=>{let m=St(u,c);return m==null?null:{location:{pathname:m,search:g,hash:p,state:f,key:w,mask:k},navigationType:o}},[c,u,g,p,f,w,o,k]);return Ze(y!=null,`<Router basename="${c}"> is not able to match the URL "${u}${g}${p}" because it does not start with the basename, so the <Router> won't render anything.`),y==null?null:d.createElement(Qe.Provider,{value:h},d.createElement(Ma.Provider,{children:t,value:y}))}function ma({children:e,location:t}){return au(ro(e),t)}function ro(e,t=[]){let a=[];return d.Children.forEach(e,(o,n)=>{if(!d.isValidElement(o))return;let i=[...t,n];if(o.type===d.Fragment){a.push.apply(a,ro(o.props.children,i));return}Pe(o.type===se,`[${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>`),Pe(!o.props.index||!o.props.children,"An index route cannot have child routes.");let s={id:o.props.id||i.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&&(s.children=ro(o.props.children,i)),a.push(s)}),a}var $a="get",Va="application/x-www-form-urlencoded";function pr(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function ku(e){return pr(e)&&e.tagName.toLowerCase()==="button"}function wu(e){return pr(e)&&e.tagName.toLowerCase()==="form"}function fu(e){return pr(e)&&e.tagName.toLowerCase()==="input"}function bu(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function yu(e,t){return e.button===0&&(!t||t==="_self")&&!bu(e)}function oo(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 vu(e,t){let a=oo(e);return t&&t.forEach((o,n)=>{a.has(n)||t.getAll(n).forEach(i=>{a.append(n,i)})}),a}var Wa=null;function Cu(){if(Wa===null)try{new FormData(document.createElement("form"),0),Wa=!1}catch{Wa=!0}return Wa}var Su=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function jr(e){return e!=null&&!Su.has(e)?(Ze(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Va}"`),null):e}function Lu(e,t){let a,o,n,i,s;if(wu(e)){let c=e.getAttribute("action");o=c?St(c,t):null,a=e.getAttribute("method")||$a,n=jr(e.getAttribute("enctype"))||Va,i=new FormData(e)}else if(ku(e)||fu(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 h=e.getAttribute("formaction")||c.getAttribute("action");if(o=h?St(h,t):null,a=e.getAttribute("formmethod")||c.getAttribute("method")||$a,n=jr(e.getAttribute("formenctype"))||jr(c.getAttribute("enctype"))||Va,i=new FormData(c,e),!Cu()){let{name:u,type:g,value:p}=e;if(g==="image"){let f=u?`${u}.`:"";i.append(`${f}x`,"0"),i.append(`${f}y`,"0")}else u&&i.append(u,p)}}else{if(pr(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');a=$a,o=null,n=Va,s=e}return i&&n==="text/plain"&&(s=i,i=void 0),{action:o,method:a.toLowerCase(),encType:n,formData:i,body:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Go(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Yi(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&&St(n.pathname,t)==="/"?n.pathname=`${Ja(t)}/_root.${o}`:n.pathname=`${Ja(n.pathname)}.${o}`,n}async function Pu(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 Ru(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 xu(e,t,a){let o=await Promise.all(e.map(async n=>{let i=t.routes[n.route.id];if(i){let s=await Pu(i,a);return s.links?s.links():[]}return[]}));return Nu(o.flat(1).filter(Ru).filter(n=>n.rel==="stylesheet"||n.rel==="preload").map(n=>n.rel==="stylesheet"?{...n,rel:"prefetch",as:"style"}:{...n,rel:"prefetch"}))}function Gn(e,t,a,o,n,i){let s=(h,u)=>a[u]?h.route.id!==a[u].route.id:!0,c=(h,u)=>a[u].pathname!==h.pathname||a[u].route.path?.endsWith("*")&&a[u].params["*"]!==h.params["*"];return i==="assets"?t.filter((h,u)=>s(h,u)||c(h,u)):i==="data"?t.filter((h,u)=>{let g=o.routes[h.route.id];if(!g||!g.hasLoader)return!1;if(s(h,u)||c(h,u))return!0;if(h.route.shouldRevalidate){let p=h.route.shouldRevalidate({currentUrl:new URL(n.pathname+n.search+n.hash,window.origin),currentParams:a[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:h.params,defaultShouldRevalidate:!0});if(typeof p=="boolean")return p}return!0}):[]}function Au(e,t,{includeHydrateFallback:a}={}){return Tu(e.map(o=>{let n=t.routes[o.route.id];if(!n)return[];let i=[n.module];return n.clientActionModule&&(i=i.concat(n.clientActionModule)),n.clientLoaderModule&&(i=i.concat(n.clientLoaderModule)),a&&n.hydrateFallbackModule&&(i=i.concat(n.hydrateFallbackModule)),n.imports&&(i=i.concat(n.imports)),i}).flat(1))}function Tu(e){return[...new Set(e)]}function Du(e){let t={},a=Object.keys(e).sort();for(let o of a)t[o]=e[o];return t}function Nu(e,t){let a=new Set;return new Set(t),e.reduce((o,n)=>{let i=JSON.stringify(Du(n));return a.has(i)||(a.add(i),o.push({key:i,link:n})),o},[])}function _o(){let e=d.useContext(ra);return Go(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function ju(){let e=d.useContext(dr);return Go(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Ko=d.createContext(void 0);Ko.displayName="FrameworkContext";function hr(){let e=d.useContext(Ko);return Go(e,"You must render this element inside a <HydratedRouter> element"),e}function Mu(e,t){let a=d.useContext(Ko),[o,n]=d.useState(!1),[i,s]=d.useState(!1),{onFocus:c,onBlur:h,onMouseEnter:u,onMouseLeave:g,onTouchStart:p}=t,f=d.useRef(null);d.useEffect(()=>{if(e==="render"&&s(!0),e==="viewport"){let y=C=>{C.forEach(v=>{s(v.isIntersecting)})},m=new IntersectionObserver(y,{threshold:.5});return f.current&&m.observe(f.current),()=>{m.disconnect()}}},[e]),d.useEffect(()=>{if(o){let y=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(y)}}},[o]);let w=()=>{n(!0)},k=()=>{n(!1),s(!1)};return a?e!=="intent"?[i,f,{}]:[i,f,{onFocus:la(c,w),onBlur:la(h,k),onMouseEnter:la(u,w),onMouseLeave:la(g,k),onTouchStart:la(p,w)}]:[!1,f,{}]}function la(e,t){return a=>{e&&e(a),a.defaultPrevented||t(a)}}function Eu({page:e,...t}){let a=Kd(),{nonce:o}=hr(),{router:n}=_o(),i=d.useMemo(()=>Ti(n.routes,e,n.basename),[n.routes,e,n.basename]);return i?(t.nonce==null&&o&&(t={...t,nonce:o}),a?d.createElement(Bu,{page:e,matches:i,...t}):d.createElement(Fu,{page:e,matches:i,...t})):null}function Iu(e){let{manifest:t,routeModules:a}=hr(),[o,n]=d.useState([]);return d.useEffect(()=>{let i=!1;return xu(e,t,a).then(s=>{i||n(s)}),()=>{i=!0}},[e,t,a]),o}function Bu({page:e,matches:t,...a}){let o=Ne(),{future:n}=hr(),{basename:i}=_o(),s=d.useMemo(()=>{if(e===o.pathname+o.search+o.hash)return[];let c=Yi(e,i,n.v8_trailingSlashAwareDataRequests,"rsc"),h=!1,u=[];for(let g of t)typeof g.route.shouldRevalidate=="function"?h=!0:u.push(g.route.id);return h&&u.length>0&&c.searchParams.set("_routes",u.join(",")),[c.pathname+c.search]},[i,n.v8_trailingSlashAwareDataRequests,e,o,t]);return d.createElement(d.Fragment,null,s.map(c=>d.createElement("link",{key:c,rel:"prefetch",as:"fetch",href:c,...a})))}function Fu({page:e,matches:t,...a}){let o=Ne(),{future:n,manifest:i,routeModules:s}=hr(),{basename:c}=_o(),{loaderData:h,matches:u}=ju(),g=d.useMemo(()=>Gn(e,t,u,i,o,"data"),[e,t,u,i,o]),p=d.useMemo(()=>Gn(e,t,u,i,o,"assets"),[e,t,u,i,o]),f=d.useMemo(()=>{if(e===o.pathname+o.search+o.hash)return[];let y=new Set,m=!1;if(t.forEach(v=>{let b=i.routes[v.route.id];!b||!b.hasLoader||(!g.some(S=>S.route.id===v.route.id)&&v.route.id in h&&s[v.route.id]?.shouldRevalidate||b.hasClientLoader?m=!0:y.add(v.route.id))}),y.size===0)return[];let C=Yi(e,c,n.v8_trailingSlashAwareDataRequests,"data");return m&&y.size>0&&C.searchParams.set("_routes",t.filter(v=>y.has(v.route.id)).map(v=>v.route.id).join(",")),[C.pathname+C.search]},[c,n.v8_trailingSlashAwareDataRequests,h,o,i,g,t,e,s]),w=d.useMemo(()=>Au(p,i),[p,i]),k=Iu(p);return d.createElement(d.Fragment,null,f.map(y=>d.createElement("link",{key:y,rel:"prefetch",as:"fetch",href:y,...a})),w.map(y=>d.createElement("link",{key:y,rel:"modulepreload",href:y,...a})),k.map(({key:y,link:m})=>d.createElement("link",{key:y,nonce:a.nonce,...m,crossOrigin:m.crossOrigin??a.crossOrigin})))}function Ou(...e){return t=>{e.forEach(a=>{typeof a=="function"?a(t):a!=null&&(a.current=t)})}}var Wu=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Wu&&(window.__reactRouterVersion="7.18.1")}catch{}function Uu({basename:e,children:t,useTransitions:a,window:o}){let n=d.useRef();n.current==null&&(n.current=wd({window:o,v5Compat:!0}));let i=n.current,[s,c]=d.useState({action:i.action,location:i.location}),h=d.useCallback(u=>{a===!1?c(u):d.startTransition(()=>c(u))},[a]);return d.useLayoutEffect(()=>i.listen(h),[i,h]),d.createElement(gu,{basename:e,children:t,location:s.location,navigationType:s.action,navigator:i,useTransitions:a})}var Wt=d.forwardRef(function({onClick:t,discover:a="render",prefetch:o="none",relative:n,reloadDocument:i,replace:s,mask:c,state:h,target:u,to:g,preventScrollReset:p,viewTransition:f,defaultShouldRevalidate:w,...k},y){let{basename:m,navigator:C,useTransitions:v}=d.useContext(Qe),b=typeof g=="string"&&Fo.test(g),S=Fi(g,m);g=S.to;let T=Jd(g,{relative:n}),M=Ne(),j=null;if(c){let K=cr(c,[],M.mask?M.mask.pathname:"/",!0);m!=="/"&&(K.pathname=K.pathname==="/"?m:it([m,K.pathname])),j=C.createHref(K)}let[R,P,A]=Mu(o,k),x=Ku(g,{replace:s,mask:c,state:h,target:u,preventScrollReset:p,relative:n,viewTransition:f,defaultShouldRevalidate:w,useTransitions:v});function E(K){t&&t(K),K.defaultPrevented||x(K)}let O=!(S.isExternal||i),$=d.createElement("a",{...k,...A,href:(O?j:void 0)||S.absoluteURL||T,onClick:O?E:t,ref:Ou(y,P),target:u,"data-discover":!b&&a==="render"?"true":void 0});return R&&!b?d.createElement(d.Fragment,null,$,d.createElement(Eu,{page:T})):$});Wt.displayName="Link";var Hu=d.forwardRef(function({"aria-current":t="page",caseSensitive:a=!1,className:o="",end:n=!1,style:i,to:s,viewTransition:c,children:h,...u},g){let p=Ea(s,{relative:u.relative}),f=Ne(),w=d.useContext(dr),{navigator:k,basename:y}=d.useContext(Qe),m=w!=null&&Yu(p)&&c===!0,C=k.encodeLocation?k.encodeLocation(p).pathname:p.pathname,v=f.pathname,b=w&&w.navigation&&w.navigation.location?w.navigation.location.pathname:null;a||(v=v.toLowerCase(),b=b?b.toLowerCase():null,C=C.toLowerCase()),b&&y&&(b=St(b,y)||b);const S=C!=="/"&&C.endsWith("/")?C.length-1:C.length;let T=v===C||!n&&v.startsWith(C)&&v.charAt(S)==="/",M=b!=null&&(b===C||!n&&b.startsWith(C)&&b.charAt(C.length)==="/"),j={isActive:T,isPending:M,isTransitioning:m},R=T?t:void 0,P;typeof o=="function"?P=o(j):P=[o,T?"active":null,M?"pending":null,m?"transitioning":null].filter(Boolean).join(" ");let A=typeof i=="function"?i(j):i;return d.createElement(Wt,{...u,"aria-current":R,className:P,ref:g,style:A,to:s,viewTransition:c},typeof h=="function"?h(j):h)});Hu.displayName="NavLink";var Gu=d.forwardRef(({discover:e="render",fetcherKey:t,navigate:a,reloadDocument:o,replace:n,state:i,method:s=$a,action:c,onSubmit:h,relative:u,preventScrollReset:g,viewTransition:p,defaultShouldRevalidate:f,...w},k)=>{let{useTransitions:y}=d.useContext(Qe),m=$u(),C=Vu(c,{relative:u}),v=s.toLowerCase()==="get"?"get":"post",b=typeof c=="string"&&Fo.test(c),S=T=>{if(h&&h(T),T.defaultPrevented)return;T.preventDefault();let M=T.nativeEvent.submitter,j=M?.getAttribute("formmethod")||s,R=()=>m(M||T.currentTarget,{fetcherKey:t,method:j,navigate:a,replace:n,state:i,relative:u,preventScrollReset:g,viewTransition:p,defaultShouldRevalidate:f});y&&a!==!1?d.startTransition(()=>R()):R()};return d.createElement("form",{ref:k,method:v,action:C,onSubmit:o?h:S,...w,"data-discover":!b&&e==="render"?"true":void 0})});Gu.displayName="Form";function _u(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Qi(e){let t=d.useContext(ra);return Pe(t,_u(e)),t}function Ku(e,{target:t,replace:a,mask:o,state:n,preventScrollReset:i,relative:s,viewTransition:c,defaultShouldRevalidate:h,useTransitions:u}={}){let g=Ue(),p=Ne(),f=Ea(e,{relative:s});return d.useCallback(w=>{if(yu(w,t)){w.preventDefault();let k=a!==void 0?a:ya(p)===ya(f),y=()=>g(e,{replace:k,mask:o,state:n,preventScrollReset:i,relative:s,viewTransition:c,defaultShouldRevalidate:h});u?d.startTransition(()=>y()):y()}},[p,g,f,a,o,n,t,e,i,s,c,h,u])}function NS(e){Ze(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(oo(e)),a=d.useRef(!1),o=Ne(),n=d.useMemo(()=>vu(o.search,a.current?null:t.current),[o.search]),i=Ue(),s=d.useCallback((c,h)=>{const u=oo(typeof c=="function"?c(new URLSearchParams(n)):c);a.current=!0,i("?"+u,h)},[i,n]);return[n,s]}var qu=0,zu=()=>`__${String(++qu)}__`;function $u(){let{router:e}=Qi("useSubmit"),{basename:t}=d.useContext(Qe),a=uu(),o=e.fetch,n=e.navigate;return d.useCallback(async(i,s={})=>{let{action:c,method:h,encType:u,formData:g,body:p}=Lu(i,t);if(s.navigate===!1){let f=s.fetcherKey||zu();await o(f,a,s.action||c,{defaultShouldRevalidate:s.defaultShouldRevalidate,preventScrollReset:s.preventScrollReset,formData:g,body:p,formMethod:s.method||h,formEncType:s.encType||u,flushSync:s.flushSync})}else await n(s.action||c,{defaultShouldRevalidate:s.defaultShouldRevalidate,preventScrollReset:s.preventScrollReset,formData:g,body:p,formMethod:s.method||h,formEncType:s.encType||u,replace:s.replace,state:s.state,fromRouteId:a,flushSync:s.flushSync,viewTransition:s.viewTransition})},[o,n,t,a])}function Vu(e,{relative:t}={}){let{basename:a}=d.useContext(Qe),o=d.useContext(et);Pe(o,"useFormAction must be used inside a RouteContext");let[n]=o.matches.slice(-1),i={...Ea(e||".",{relative:t})},s=Ne();if(e==null){i.search=s.search;let c=new URLSearchParams(i.search),h=c.getAll("index");if(h.some(g=>g==="")){c.delete("index"),h.filter(p=>p).forEach(p=>c.append("index",p));let g=c.toString();i.search=g?`?${g}`:""}}return(!e||e===".")&&n.route.index&&(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),a!=="/"&&(i.pathname=i.pathname==="/"?a:it([a,i.pathname])),ya(i)}function Yu(e,{relative:t}={}){let a=d.useContext(Ui);Pe(a!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:o}=Qi("useViewTransitionState"),n=Ea(e,{relative:t});if(!a.isTransitioning)return!1;let i=St(a.currentLocation.pathname,o)||a.currentLocation.pathname,s=St(a.nextLocation.pathname,o)||a.nextLocation.pathname;return va(n.pathname,s)!=null||va(n.pathname,i)!=null}var Vt=hd(),mr=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(){}},Qu=class extends mr{#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"}},Ji=new Qu,Ju={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Xu=class{#e=Ju;#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)}},no=new Xu;function Zu(e){setTimeout(e,0)}var ep=typeof window>"u"||"Deno"in globalThis;function ot(){}function tp(e,t){return typeof e=="function"?e(t):e}function ap(e){return typeof e=="number"&&e>=0&&e!==1/0}function rp(e,t){return Math.max(e+(t||0)-Date.now(),0)}function so(e,t){return typeof e=="function"?e(t):e}function op(e,t){return typeof e=="function"?e(t):e}function _n(e,t){const{type:a="all",exact:o,fetchStatus:n,predicate:i,queryKey:s,stale:c}=e;if(s){if(o){if(t.queryHash!==qo(s,t.options))return!1}else if(!Sa(t.queryKey,s))return!1}if(a!=="all"){const h=t.isActive();if(a==="active"&&!h||a==="inactive"&&h)return!1}return!(typeof c=="boolean"&&t.isStale()!==c||n&&n!==t.state.fetchStatus||i&&!i(t))}function Kn(e,t){const{exact:a,status:o,predicate:n,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(a){if(Ca(t.options.mutationKey)!==Ca(i))return!1}else if(!Sa(t.options.mutationKey,i))return!1}return!(o&&t.state.status!==o||n&&!n(t))}function qo(e,t){return(t?.queryKeyHashFn||Ca)(e)}function Ca(e){return JSON.stringify(e,(t,a)=>io(a)?Object.keys(a).sort().reduce((o,n)=>(o[n]=a[n],o),{}):a)}function Sa(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(a=>Sa(e[a],t[a])):!1}var np=Object.prototype.hasOwnProperty;function Xi(e,t,a=0){if(e===t)return e;if(a>500)return t;const o=qn(e)&&qn(t);if(!o&&!(io(e)&&io(t)))return t;const i=(o?e:Object.keys(e)).length,s=o?t:Object.keys(t),c=s.length,h=o?new Array(c):{};let u=0;for(let g=0;g<c;g++){const p=o?g:s[g],f=e[p],w=t[p];if(f===w){h[p]=f,(o?g<i:np.call(e,p))&&u++;continue}if(f===null||w===null||typeof f!="object"||typeof w!="object"){h[p]=w;continue}const k=Xi(f,w,a+1);h[p]=k,k===f&&u++}return i===c&&u===i?e:h}function jS(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 qn(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function io(e){if(!zn(e))return!1;const t=e.constructor;if(t===void 0)return!0;const a=t.prototype;return!(!zn(a)||!a.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function zn(e){return Object.prototype.toString.call(e)==="[object Object]"}function sp(e){return new Promise(t=>{no.setTimeout(t,e)})}function ip(e,t,a){return typeof a.structuralSharing=="function"?a.structuralSharing(e,t):a.structuralSharing!==!1?Xi(e,t):t}function lp(e,t,a=0){const o=[...e,t];return a&&o.length>a?o.slice(1):o}function cp(e,t,a=0){const o=[t,...e];return a&&o.length>a?o.slice(0,-1):o}var zo=Symbol();function Zi(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===zo?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function MS(e,t){return typeof e=="function"?e(...t):!!e}function dp(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 el=(()=>{let e=()=>ep;return{isServer(){return e()},setIsServer(t){e=t}}})();function up(){let e,t;const a=new Promise((n,i)=>{e=n,t=i});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 pp=Zu;function hp(){let e=[],t=0,a=c=>{c()},o=c=>{c()},n=pp;const i=c=>{t?e.push(c):n(()=>{a(c)})},s=()=>{const c=e;e=[],c.length&&n(()=>{o(()=>{c.forEach(h=>{a(h)})})})};return{batch:c=>{let h;t++;try{h=c()}finally{t--,t||s()}return h},batchCalls:c=>(...h)=>{i(()=>{c(...h)})},schedule:i,setNotifyFunction:c=>{a=c},setBatchNotifyFunction:c=>{o=c},setScheduler:c=>{n=c}}}var Ke=hp(),mp=class extends mr{#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}},Xa=new mp;function gp(e){return Math.min(1e3*2**e,3e4)}function tl(e){return(e??"online")==="online"?Xa.isOnline():!0}var lo=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function al(e){let t=!1,a=0,o;const n=up(),i=()=>n.status!=="pending",s=y=>{if(!i()){const m=new lo(y);f(m),e.onCancel?.(m)}},c=()=>{t=!0},h=()=>{t=!1},u=()=>Ji.isFocused()&&(e.networkMode==="always"||Xa.isOnline())&&e.canRun(),g=()=>tl(e.networkMode)&&e.canRun(),p=y=>{i()||(o?.(),n.resolve(y))},f=y=>{i()||(o?.(),n.reject(y))},w=()=>new Promise(y=>{o=m=>{(i()||u())&&y(m)},e.onPause?.()}).then(()=>{o=void 0,i()||e.onContinue?.()}),k=()=>{if(i())return;let y;const m=a===0?e.initialPromise:void 0;try{y=m??e.fn()}catch(C){y=Promise.reject(C)}Promise.resolve(y).then(p).catch(C=>{if(i())return;const v=e.retry??(el.isServer()?0:3),b=e.retryDelay??gp,S=typeof b=="function"?b(a,C):b,T=v===!0||typeof v=="number"&&a<v||typeof v=="function"&&v(a,C);if(t||!T){f(C);return}a++,e.onFail?.(a,C),sp(S).then(()=>u()?void 0:w()).then(()=>{t?f(C):k()})})};return{promise:n,status:()=>n.status,cancel:s,continue:()=>(o?.(),n),cancelRetry:c,continueRetry:h,canStart:g,start:()=>(g()?k():w().then(k),n)}}var rl=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),ap(this.gcTime)&&(this.#e=no.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(el.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(no.clearTimeout(this.#e),this.#e=void 0)}};function kp(e){return{onFetch:(t,a)=>{const o=t.options,n=t.fetchOptions?.meta?.fetchMore?.direction,i=t.state.data?.pages||[],s=t.state.data?.pageParams||[];let c={pages:[],pageParams:[]},h=0;const u=async()=>{let g=!1;const p=k=>{dp(k,()=>t.signal,()=>g=!0)},f=Zi(t.options,t.fetchOptions),w=async(k,y,m)=>{if(g)return Promise.reject(t.signal.reason);if(y==null&&k.pages.length)return Promise.resolve(k);const v=(()=>{const M={client:t.client,queryKey:t.queryKey,pageParam:y,direction:m?"backward":"forward",meta:t.options.meta};return p(M),M})(),b=await f(v),{maxPages:S}=t.options,T=m?cp:lp;return{pages:T(k.pages,b,S),pageParams:T(k.pageParams,y,S)}};if(n&&i.length){const k=n==="backward",y=k?wp:$n,m={pages:i,pageParams:s},C=y(o,m);c=await w(m,C,k)}else{const k=e??i.length;do{const y=h===0?s[0]??o.initialPageParam:$n(o,c);if(h>0&&y==null)break;c=await w(c,y),h++}while(h<k)}return c};t.options.persister?t.fetchFn=()=>t.options.persister?.(u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},a):t.fetchFn=u}}}function $n(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 wp(e,{pages:t,pageParams:a}){return t.length>0?e.getPreviousPageParam?.(t[0],t,a[0],a):void 0}var fp=class extends rl{#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=Yn(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=Yn(this.options);t.data!==void 0&&(this.setState(Vn(t.data,t.dataUpdatedAt)),this.#t=t)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#o.remove(this)}setData(e,t){const a=ip(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(ot).catch(ot):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=>op(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===zo||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>so(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:!rp(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 h=this.observers.find(u=>u.options.queryFn);h&&this.setOptions(h.options)}const a=new AbortController,o=h=>{Object.defineProperty(h,"signal",{enumerable:!0,get:()=>(this.#s=!0,a.signal)})},n=()=>{const h=Zi(this.options,t),g=(()=>{const p={client:this.#n,queryKey:this.queryKey,meta:this.meta};return o(p),p})();return this.#s=!1,this.options.persister?this.options.persister(h,g,this):h(g)},s=(()=>{const h={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#n,state:this.state,fetchFn:n};return o(h),h})();(this.#e==="infinite"?kp(this.options.pages):this.options.behavior)?.onFetch(s,this),this.#a=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==s.fetchOptions?.meta)&&this.#i({type:"fetch",meta:s.fetchOptions?.meta}),this.#r=al({initialPromise:t?.initialPromise,fn:s.fetchFn,onCancel:h=>{h instanceof lo&&h.revert&&this.setState({...this.#a,fetchStatus:"idle"}),a.abort()},onFail:(h,u)=>{this.#i({type:"failed",failureCount:h,error:u})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0});try{const h=await this.#r.start();if(h===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(h),this.#o.config.onSuccess?.(h,this),this.#o.config.onSettled?.(h,this.state.error,this),h}catch(h){if(h instanceof lo){if(h.silent)return this.#r.promise;if(h.revert){if(this.state.data===void 0)throw h;return this.state.data}}throw this.#i({type:"error",error:h}),this.#o.config.onError?.(h,this),this.#o.config.onSettled?.(this.state.data,h,this),h}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,...bp(a.data,this.options),fetchMeta:e.meta??null};case"success":const o={...a,...Vn(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),Ke.batch(()=>{this.observers.forEach(a=>{a.onQueryUpdate()}),this.#o.notify({query:this,type:"updated",action:e})})}};function bp(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:tl(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Vn(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Yn(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 yp=class extends rl{#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||vp(),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=al({fn:()=>this.options.mutationFn?this.options.mutationFn(e,a):Promise.reject(new Error("No mutationFn found")),onFail:(i,s)=>{this.#n({type:"failed",failureCount:i,error:s})},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 s=await this.options.onMutate?.(e,a);s!==this.state.context&&this.#n({type:"pending",context:s,variables:e,isPaused:n})}const i=await this.#o.start();return await this.#a.config.onSuccess?.(i,e,this.state.context,this,a),await this.options.onSuccess?.(i,e,this.state.context,a),await this.#a.config.onSettled?.(i,null,this.state.variables,this.state.context,this,a),await this.options.onSettled?.(i,null,e,this.state.context,a),this.#n({type:"success",data:i}),i}catch(i){try{await this.#a.config.onError?.(i,e,this.state.context,this,a)}catch(s){Promise.reject(s)}try{await this.options.onError?.(i,e,this.state.context,a)}catch(s){Promise.reject(s)}try{await this.#a.config.onSettled?.(void 0,i,this.state.variables,this.state.context,this,a)}catch(s){Promise.reject(s)}try{await this.options.onSettled?.(void 0,i,e,this.state.context,a)}catch(s){Promise.reject(s)}throw this.#n({type:"error",error:i}),i}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),Ke.batch(()=>{this.#t.forEach(a=>{a.onMutationUpdate(e)}),this.#a.notify({mutation:this,type:"updated",action:e})})}};function vp(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Cp=class extends mr{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 yp({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=Ua(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=Ua(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=Ua(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=Ua(e);return typeof t=="string"?this.#t.get(t)?.find(o=>o!==e&&o.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){Ke.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=>Kn(t,a))}findAll(e={}){return this.getAll().filter(t=>Kn(e,t))}notify(e){Ke.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){const e=this.getAll().filter(t=>t.state.isPaused);return Ke.batch(()=>Promise.all(e.map(t=>t.continue().catch(ot))))}};function Ua(e){return e.options.scope?.id}var Sp=class extends mr{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,a){const o=t.queryKey,n=t.queryHash??qo(o,t);let i=this.get(n);return i||(i=new fp({client:e,queryKey:o,queryHash:n,options:e.defaultQueryOptions(t),state:a,defaultOptions:e.getQueryDefaults(o)}),this.add(i)),i}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(){Ke.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=>_n(t,a))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter(a=>_n(e,a)):t}notify(e){Ke.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){Ke.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){Ke.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Lp=class{#e;#t;#a;#o;#n;#r;#l;#s;constructor(e={}){this.#e=e.queryCache||new Sp,this.#t=e.mutationCache||new Cp,this.#a=e.defaultOptions||{},this.#o=new Map,this.#n=new Map,this.#r=0}mount(){this.#r++,this.#r===1&&(this.#l=Ji.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Xa.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(so(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}),i=this.#e.get(o.queryHash)?.state.data,s=tp(t,i);if(s!==void 0)return this.#e.build(this,o).setData(s,{...a,manual:!0})}setQueriesData(e,t,a){return Ke.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;Ke.batch(()=>{t.findAll(e).forEach(a=>{t.remove(a)})})}resetQueries(e,t){const a=this.#e;return Ke.batch(()=>(a.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const a={revert:!0,...t},o=Ke.batch(()=>this.#e.findAll(e).map(n=>n.cancel(a)));return Promise.all(o).then(ot).catch(ot)}invalidateQueries(e,t={}){return Ke.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=Ke.batch(()=>this.#e.findAll(e).filter(n=>!n.isDisabled()&&!n.isStatic()).map(n=>{let i=n.fetch(void 0,a);return a.throwOnError||(i=i.catch(ot)),n.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(o).then(ot)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const a=this.#e.build(this,t);return a.isStaleByTime(so(t.staleTime,a))?a.fetch(t):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(ot).catch(ot)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(ot).catch(ot)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Xa.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(Ca(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#o.values()],a={};return t.forEach(o=>{Sa(e,o.queryKey)&&Object.assign(a,o.defaultOptions)}),a}setMutationDefaults(e,t){this.#n.set(Ca(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#n.values()],a={};return t.forEach(o=>{Sa(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=qo(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===zo&&(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()}},ol=d.createContext(void 0),ES=e=>{const t=d.useContext(ol);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},Pp=({client:e,children:t})=>(d.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),r.jsx(ol.Provider,{value:e,children:t}));const $o=[{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($o.map(e=>[e.id,e]));const nl=new Map($o.filter(e=>e.surface!==null).map(e=>[e.surface,e]));function Rp(e){return{...e,setup:{...e.setup},settings:e.settings?.map(t=>({...t}))}}function xp(){return $o.map(Rp)}function Ap(e){return nl.get(e)?.routePrefix??"/chat"}function Tp(e){return nl.get(e)?.productName??"Cats Chat"}const Vo=xp().filter(e=>e.surface!==null).map(e=>({id:e.surface,routePrefix:e.routePrefix,productName:e.productName,subtitle:e.subtitle}));new Map(Vo.map(e=>[e.id,e]));const Dp={chat:"Chat",work:"Work",code:"Code"};function Np(){return Vo}function jp(e){return Vo.find(a=>e===a.routePrefix||e.startsWith(`${a.routePrefix}/`))?.id??"chat"}function IS(e){return Tp(e)}function Mp(e){return Dp[e]??"Chat"}function gr(e){return Ap(e)}const l={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",appHostRendererUnavailable:"appHost.rendererUnavailable",appHostRendererTimedOut:"appHost.rendererTimedOut",appHostRendererRetry:"appHost.rendererRetry",appHostRendererAccessChanged:"appHost.rendererAccessChanged",appHostRendererNavigatedAway:"appHost.rendererNavigatedAway",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",sharedExecutionTargetSaveDirectLaneError:"shared.executionTarget.saveDirectLaneError",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",telegramCommandStatusBindingHealthLine:"telegram.command.status.bindingHealthLine",telegramCommandStatusLocalExecutionHealthyLine:"telegram.command.status.localExecutionHealthyLine",telegramCommandStatusLocalExecutionDegradedLine:"telegram.command.status.localExecutionDegradedLine",telegramCommandStatusLocalExecutionUnavailableLine:"telegram.command.status.localExecutionUnavailableLine",telegramCommandStatusLocalExecutionUnknownLine:"telegram.command.status.localExecutionUnknownLine",telegramCommandStatusDelegationReadyLine:"telegram.command.status.delegationReadyLine",telegramCommandStatusDelegationBlockedLine:"telegram.command.status.delegationBlockedLine",telegramCommandStatusDelegationDisabledLine:"telegram.command.status.delegationDisabledLine",telegramCommandStatusDelegationUnknownLine:"telegram.command.status.delegationUnknownLine",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",workDeliveryActionStartWork:"workDelivery.action.startWork",workDeliveryActionCancel:"workDelivery.action.cancel",workDeliveryActionPublish:"workDelivery.action.publish",workDeliveryActionDeny:"workDelivery.action.deny",workDeliveryTimeoutReason:"workDelivery.timeout.reason",workDeliveryPermissionDeniedReason:"workDelivery.permissionDenied.reason",workDeliveryPermissionDeniedConsequence:"workDelivery.permissionDenied.consequence",workDeliveryTimeoutConsequence:"workDelivery.timeout.consequence",workDeliveryActionRetry:"workDelivery.action.retry",workDeliveryActionResume:"workDelivery.action.resume",workDeliveryRetryStarted:"workDelivery.retry.started",workDeliveryResumeStarted:"workDelivery.resume.started",workDeliveryLifecycleRefused:"workDelivery.lifecycle.refused",workDeliveryPublishRequested:"workDelivery.publish.requested",workDeliveryPublishConsequence:"workDelivery.publish.consequence",workDeliveryPublishDenied:"workDelivery.publish.denied",workDeliveryPublishBlocked:"workDelivery.publish.blocked",workDeliveryPublishDone:"workDelivery.publish.done",workDeliveryPublishPendingChecks:"workDelivery.publish.pendingChecks",workDeliveryPublishPendingConsequence:"workDelivery.publish.pendingConsequence",workDeliveryStagePublishing:"workDelivery.stage.publishing",workDeliveryAcceptedTitle:"workDelivery.accepted.title",workDeliveryAcceptedBody:"workDelivery.accepted.body",workDeliveryNotReadyTitle:"workDelivery.notReady.title",workDeliveryNotReadyFooter:"workDelivery.notReady.footer",workDeliveryReadinessBindingDisabled:"workDelivery.readiness.bindingDisabled",workDeliveryReadinessBindingUnhealthy:"workDelivery.readiness.bindingUnhealthy",workDeliveryReadinessOwnerNotAuthorized:"workDelivery.readiness.ownerNotAuthorized",workDeliveryReadinessCatNotBound:"workDelivery.readiness.catNotBound",workDeliveryReadinessExecutionTargetMissing:"workDelivery.readiness.executionTargetMissing",workDeliveryReadinessCapabilityProfileMissing:"workDelivery.readiness.capabilityProfileMissing",workDeliveryReadinessWorkspaceMissing:"workDelivery.readiness.workspaceMissing",workDeliveryReadinessWorkspaceUnreachable:"workDelivery.readiness.workspaceUnreachable",workDeliveryReadinessSectionTitle:"workDelivery.readiness.section.title",settingsCapabilityBootstrapTitle:"settings.capabilityBootstrap.title",settingsCapabilityBootstrapDescription:"settings.capabilityBootstrap.description",settingsCapabilityBootstrapConfigPathLabel:"settings.capabilityBootstrap.configPathLabel",settingsCapabilityBootstrapStatusLabel:"settings.capabilityBootstrap.statusLabel",settingsCapabilityBootstrapStatusLoaded:"settings.capabilityBootstrap.statusLoaded",settingsCapabilityBootstrapStatusMissing:"settings.capabilityBootstrap.statusMissing",settingsCapabilityBootstrapStatusInvalid:"settings.capabilityBootstrap.statusInvalid",settingsCapabilityBootstrapRulesLabel:"settings.capabilityBootstrap.rulesLabel",settingsCapabilityBootstrapDiagnosticsLabel:"settings.capabilityBootstrap.diagnosticsLabel",settingsCapabilityBootstrapInstallExample:"settings.capabilityBootstrap.installExample",settingsCapabilityBootstrapInstallFailed:"settings.capabilityBootstrap.installFailed",settingsCapabilityBootstrapRestartRequired:"settings.capabilityBootstrap.restartRequired",settingsCapabilityBootstrapEditHint:"settings.capabilityBootstrap.editHint",settingsCapabilityBootstrapNoRules:"settings.capabilityBootstrap.noRules",settingsCapabilityBootstrapRuleTitle:"settings.capabilityBootstrap.ruleTitle",settingsCapabilityBootstrapRuleId:"settings.capabilityBootstrap.ruleId",settingsCapabilityBootstrapProvider:"settings.capabilityBootstrap.provider",settingsCapabilityBootstrapInstance:"settings.capabilityBootstrap.instance",settingsCapabilityBootstrapModel:"settings.capabilityBootstrap.model",settingsCapabilityBootstrapControl:"settings.capabilityBootstrap.control",settingsCapabilityBootstrapTreatment:"settings.capabilityBootstrap.treatment",settingsCapabilityBootstrapTreatmentStrong:"settings.capabilityBootstrap.treatmentStrong",settingsCapabilityBootstrapTreatmentWeak:"settings.capabilityBootstrap.treatmentWeak",settingsCapabilityBootstrapReason:"settings.capabilityBootstrap.reason",settingsCapabilityBootstrapAddRule:"settings.capabilityBootstrap.addRule",settingsCapabilityBootstrapRemoveRule:"settings.capabilityBootstrap.removeRule",settingsCapabilityBootstrapMoveUp:"settings.capabilityBootstrap.moveUp",settingsCapabilityBootstrapMoveDown:"settings.capabilityBootstrap.moveDown",settingsCapabilityBootstrapSave:"settings.capabilityBootstrap.save",settingsCapabilityBootstrapReload:"settings.capabilityBootstrap.reload",settingsCapabilityBootstrapSaveFailed:"settings.capabilityBootstrap.saveFailed",settingsCapabilityBootstrapValidationFailed:"settings.capabilityBootstrap.validationFailed",settingsCapabilityBootstrapRevisionConflict:"settings.capabilityBootstrap.revisionConflict",settingsCapabilityBootstrapLoading:"settings.capabilityBootstrap.loading",settingsCapabilityBootstrapLoadError:"settings.capabilityBootstrap.loadError",workDeliveryReadinessSectionDescription:"workDelivery.readiness.section.description",workDeliveryReadinessSectionDisabled:"workDelivery.readiness.section.disabled",workDeliveryReadinessSectionLoading:"workDelivery.readiness.section.loading",workDeliveryReadinessSectionLoadError:"workDelivery.readiness.section.loadError",workDeliveryReadinessSectionNoBindings:"workDelivery.readiness.section.noBindings",workDeliveryReadinessStatusReady:"workDelivery.readiness.status.ready",workDeliveryReadinessStatusBlocked:"workDelivery.readiness.status.blocked",workDeliveryReadinessWorkspaceLabel:"workDelivery.readiness.workspaceLabel",workDeliveryReadinessWorkspaceUnset:"workDelivery.readiness.workspaceUnset",workDeliveryReadinessDeliveryModeLabel:"workDelivery.readiness.deliveryModeLabel",workDeliveryReadinessToolScopeLabel:"workDelivery.readiness.toolScopeLabel",workDeliveryReadinessAuthorizedOwnersLabel:"workDelivery.readiness.authorizedOwnersLabel",workDeliveryReadinessLocalExecutionLabel:"workDelivery.readiness.localExecutionLabel",workDeliveryReadinessLocalExecutionHealthy:"workDelivery.readiness.localExecutionHealthy",workDeliveryReadinessLocalExecutionDegraded:"workDelivery.readiness.localExecutionDegraded",workDeliveryReadinessLocalExecutionUnavailable:"workDelivery.readiness.localExecutionUnavailable",workDeliveryReadinessLocalExecutionUnknown:"workDelivery.readiness.localExecutionUnknown",workDeliveryReadinessBlockersLabel:"workDelivery.readiness.blockersLabel",workDeliveryReadinessOpenRemediation:"workDelivery.readiness.openRemediation",workDeliveryReadinessRefresh:"workDelivery.readiness.refresh",workDeliveryReadinessWorkspaceNotARepository:"workDelivery.readiness.workspaceNotARepository",workDeliveryReadinessWorkspaceNotClean:"workDelivery.readiness.workspaceNotClean",workDeliveryReadinessDeliveryPolicyUnresolved:"workDelivery.readiness.deliveryPolicyUnresolved",workDeliveryReadinessBackgroundServiceUnavailable:"workDelivery.readiness.backgroundServiceUnavailable",workDeliveryProposalTitle:"workDelivery.proposal.title",workDeliveryProposalGoal:"workDelivery.proposal.goal",workDeliveryProposalTarget:"workDelivery.proposal.target",workDeliveryProposalDoneWhen:"workDelivery.proposal.doneWhen",workDeliveryProposalDelivery:"workDelivery.proposal.delivery",workDeliveryProposalSideEffects:"workDelivery.proposal.sideEffects",workDeliveryProposalGates:"workDelivery.proposal.gates",workDeliveryProposalQuestion:"workDelivery.proposal.question",workDeliveryProposalConfirm:"workDelivery.proposal.confirm",workDeliveryValueNone:"workDelivery.value.none",workDeliveryValueNotSpecified:"workDelivery.value.notSpecified",workDeliverySideEffectsArtifactOnly:"workDelivery.sideEffects.artifactOnly",workDeliverySideEffectsCommitOnly:"workDelivery.sideEffects.commitOnly",workDeliverySideEffectsPushBranch:"workDelivery.sideEffects.pushBranch",workDeliverySideEffectsPrWithChecks:"workDelivery.sideEffects.prWithChecks",workDeliverySideEffectsDeployPreview:"workDelivery.sideEffects.deployPreview",workDeliveryProgress:"workDelivery.progress",workDeliveryStageAdmitted:"workDelivery.stage.admitted",workDeliveryStageRunning:"workDelivery.stage.running",workDeliveryStageCancelled:"workDelivery.stage.cancelled",workDeliveryMilestoneCancelled:"workDelivery.milestone.cancelled",workDeliveryMilestoneAdmitted:"workDelivery.milestone.admitted",workDeliveryDecisionTitle:"workDelivery.decision.title",workDeliveryDecisionReason:"workDelivery.decision.reason",workDeliveryDecisionConsequence:"workDelivery.decision.consequence",workDeliveryDecisionEvidenceReason:"workDelivery.decision.evidenceReason",workDeliveryDecisionEvidenceConsequence:"workDelivery.decision.evidenceConsequence",workDeliveryResultTitle:"workDelivery.result.title",workDeliveryResultCommit:"workDelivery.result.commit",workDeliveryResultArtifact:"workDelivery.result.artifact",workDeliveryResultAcceptanceMet:"workDelivery.result.acceptanceMet",workDeliveryResultAcceptanceUnmet:"workDelivery.result.acceptanceUnmet",workDeliveryResultWaitingOn:"workDelivery.result.waitingOn",workDeliveryInboundAttachmentNotIngested:"workDelivery.inbound.attachmentNotIngested",workDeliveryInboundGoalRequired:"workDelivery.inbound.goalRequired",workTaskGoldenPathTitle:"workTask.goldenPath.title",workTaskGoldenPathStage:"workTask.goldenPath.stage",workTaskGoldenPathSourceTitle:"workTask.goldenPath.sourceTitle",workTaskGoldenPathBinding:"workTask.goldenPath.binding",workTaskGoldenPathBindingMissing:"workTask.goldenPath.bindingMissing",workTaskGoldenPathScopeTitle:"workTask.goldenPath.scopeTitle",workTaskGoldenPathRevision:"workTask.goldenPath.revision",workTaskGoldenPathTarget:"workTask.goldenPath.target",workTaskGoldenPathWorkspace:"workTask.goldenPath.workspace",workTaskGoldenPathDoneWhen:"workTask.goldenPath.doneWhen",workTaskGoldenPathDelivery:"workTask.goldenPath.delivery",workTaskGoldenPathGates:"workTask.goldenPath.gates",workTaskGoldenPathAuthorizationTitle:"workTask.goldenPath.authorizationTitle",workTaskGoldenPathAuthorizedBy:"workTask.goldenPath.authorizedBy",workTaskGoldenPathAuthorizedFrom:"workTask.goldenPath.authorizedFrom",workTaskGoldenPathNotAuthorized:"workTask.goldenPath.notAuthorized",workTaskGoldenPathEvidenceTitle:"workTask.goldenPath.evidenceTitle",workTaskGoldenPathCommit:"workTask.goldenPath.commit",workTaskGoldenPathValidation:"workTask.goldenPath.validation",workTaskGoldenPathValidationPassed:"workTask.goldenPath.validationPassed",workTaskGoldenPathValidationFailed:"workTask.goldenPath.validationFailed",workTaskGoldenPathArtifacts:"workTask.goldenPath.artifacts",workTaskGoldenPathUnmet:"workTask.goldenPath.unmet",workTaskGoldenPathNoEvidence:"workTask.goldenPath.noEvidence",workTaskGoldenPathBlockers:"workTask.goldenPath.blockers",workTaskGoldenPathPermissionDenial:"workTask.goldenPath.permissionDenial",workTaskGoldenPathPermissionDenialDetail:"workTask.goldenPath.permissionDenialDetail",workTaskGoldenPathDeliveryTitle:"workTask.goldenPath.deliveryTitle",workTaskGoldenPathNoAttempts:"workTask.goldenPath.noAttempts",workTaskGoldenPathAttempt:"workTask.goldenPath.attempt",workTaskGoldenPathReceipt:"workTask.goldenPath.receipt",workTaskGoldenPathRetryDelivery:"workTask.goldenPath.retryDelivery",workTaskGoldenPathRetrying:"workTask.goldenPath.retrying",workTaskGoldenPathRetryFailed:"workTask.goldenPath.retryFailed",workTaskGoldenPathRetryUnavailable:"workTask.goldenPath.retryUnavailable",workTaskGoldenPathRetryRun:"workTask.goldenPath.retryRun",workTaskGoldenPathResumeRun:"workTask.goldenPath.resumeRun",workTaskGoldenPathLifecycleFailed:"workTask.goldenPath.lifecycleFailed",workTaskGoldenPathStageReceived:"workTask.goldenPath.stage.received",workTaskGoldenPathStageScopeproposed:"workTask.goldenPath.stage.scopeProposed",workTaskGoldenPathStageExecutionauthorized:"workTask.goldenPath.stage.executionAuthorized",workTaskGoldenPathStageAdmitted:"workTask.goldenPath.stage.admitted",workTaskGoldenPathStageRunning:"workTask.goldenPath.stage.running",workTaskGoldenPathStageDecisionneeded:"workTask.goldenPath.stage.decisionNeeded",workTaskGoldenPathStageResultready:"workTask.goldenPath.stage.resultReady",workTaskGoldenPathStagePublishauthorized:"workTask.goldenPath.stage.publishAuthorized",workTaskGoldenPathStageDelivered:"workTask.goldenPath.stage.delivered",workTaskGoldenPathStageFailed:"workTask.goldenPath.stage.failed",workTaskGoldenPathStageCancelled:"workTask.goldenPath.stage.cancelled",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"},Ep={"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.rendererUnavailable":"This app has no available, verified renderer.","appHost.rendererTimedOut":"The app did not finish loading. Retry, or return to the lobby and reopen it.","appHost.rendererRetry":"Retry loading","appHost.rendererAccessChanged":"App access or version changed. Return to the lobby and reopen this app.","appHost.rendererNavigatedAway":"The app navigated away. Reopen it from the 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, accounts, login sessions, 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.executionTarget.saveDirectLaneError":"Failed to save the provider and model for this cat. The previous selection is still in effect.","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 and execution 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, execution, and delegation 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.status.bindingHealthLine":"Ingress: {health}","telegram.command.status.localExecutionHealthyLine":"Local execution: healthy","telegram.command.status.localExecutionDegradedLine":"Local execution: degraded","telegram.command.status.localExecutionUnavailableLine":"Local execution: unavailable","telegram.command.status.localExecutionUnknownLine":"Local execution: could not be checked","telegram.command.status.delegationReadyLine":"Work delegation: ready","telegram.command.status.delegationBlockedLine":"Work delegation: unavailable","telegram.command.status.delegationDisabledLine":"Work delegation: not enabled on this host","telegram.command.status.delegationUnknownLine":"Work delegation: could not be checked","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.`,"workDelivery.action.startWork":"Start work","workDelivery.action.cancel":"Cancel","workDelivery.action.publish":"Publish","workDelivery.action.deny":"Do not publish","workDelivery.timeout.reason":"A step ran past its time budget and was abandoned.","workDelivery.permissionDenied.reason":"Supervision refused {tool} ({code}).","workDelivery.permissionDenied.consequence":"Retrying will fail the same way until the permission is granted in Cats.","workDelivery.timeout.consequence":"Nothing was delivered. Retry to run it again.","workDelivery.action.retry":"Retry","workDelivery.action.resume":"Resume","workDelivery.retry.started":"Retrying the work.","workDelivery.resume.started":"Resuming the work.","workDelivery.lifecycle.refused":"That is not possible right now: {reason}","workDelivery.publish.requested":"Publishing needs your approval: {gates}","workDelivery.publish.consequence":"Nothing leaves this machine until you approve.","workDelivery.publish.denied":"Publication declined. The result stays local and unpublished.","workDelivery.publish.blocked":"Publication could not complete: {reasons}","workDelivery.publish.done":"Published: {actions}","workDelivery.publish.pendingChecks":"Published so far: {actions}. Checks are still running.","workDelivery.publish.pendingConsequence":"Nothing further happens until you publish again once they finish.","workDelivery.stage.publishing":"Publishing","workDelivery.accepted.title":"Accepted: {goal}","workDelivery.accepted.body":"Checking readiness and preparing a scope proposal.","workDelivery.notReady.title":"I cannot accept this work yet.","workDelivery.notReady.footer":"Open Cats to fix these. Nothing has been queued.","workDelivery.readiness.bindingDisabled":"This Telegram binding is disabled.","workDelivery.readiness.bindingUnhealthy":"This Telegram binding is not receiving updates.","workDelivery.readiness.ownerNotAuthorized":"You are not the authorized owner for this binding.","workDelivery.readiness.catNotBound":"No Cat is bound to this binding.","workDelivery.readiness.executionTargetMissing":"No provider or model is configured for the bound Cat.","workDelivery.readiness.capabilityProfileMissing":"The provider capability profile is not set up.","workDelivery.readiness.workspaceMissing":"No project or workspace is selected.","workDelivery.readiness.section.title":"Telegram work delegation","settings.capabilityBootstrap.title":"Provider capability bootstrap","settings.capabilityBootstrap.description":"How much a provider is trusted before Cats has observed it. Changes are validated and stored in the platform YAML config.","settings.capabilityBootstrap.configPathLabel":"Config file","settings.capabilityBootstrap.statusLabel":"Status","settings.capabilityBootstrap.statusLoaded":"Loaded","settings.capabilityBootstrap.statusMissing":"No config file — provider defaults apply","settings.capabilityBootstrap.statusInvalid":"Config file could not be parsed","settings.capabilityBootstrap.rulesLabel":"Rules in effect","settings.capabilityBootstrap.diagnosticsLabel":"Diagnostics","settings.capabilityBootstrap.installExample":"Install the bundled example","settings.capabilityBootstrap.installFailed":"The bundled example could not be installed.","settings.capabilityBootstrap.restartRequired":"The file on disk has changed. Restart Cats for it to take effect.","settings.capabilityBootstrap.editHint":"Provider is required. Instance, model, and control narrow a rule to a more specific target. Confidence remains catalog-only until Cats has observed the provider.","settings.capabilityBootstrap.noRules":"No bootstrap rules are configured.","settings.capabilityBootstrap.ruleTitle":"Rule {number}","settings.capabilityBootstrap.ruleId":"Rule ID","settings.capabilityBootstrap.provider":"Provider","settings.capabilityBootstrap.instance":"Instance (optional)","settings.capabilityBootstrap.model":"Model (optional)","settings.capabilityBootstrap.control":"Control (optional)","settings.capabilityBootstrap.treatment":"Initial treatment","settings.capabilityBootstrap.treatmentStrong":"Strong agent","settings.capabilityBootstrap.treatmentWeak":"Weak worker","settings.capabilityBootstrap.reason":"Reason","settings.capabilityBootstrap.addRule":"Add rule","settings.capabilityBootstrap.removeRule":"Remove rule","settings.capabilityBootstrap.moveUp":"Move up","settings.capabilityBootstrap.moveDown":"Move down","settings.capabilityBootstrap.save":"Save rules","settings.capabilityBootstrap.reload":"Reload","settings.capabilityBootstrap.saveFailed":"The capability bootstrap rules could not be saved.","settings.capabilityBootstrap.validationFailed":"Fix the invalid or duplicate capability rules before saving.","settings.capabilityBootstrap.revisionConflict":"The config changed outside Cats. Reload it before saving again.","settings.capabilityBootstrap.loading":"Reading the capability bootstrap config…","settings.capabilityBootstrap.loadError":"The capability bootstrap config could not be read.","workDelivery.readiness.section.description":"Whether a Telegram binding can accept `/work` right now, and what to fix if it cannot.","workDelivery.readiness.section.disabled":"Work delegation over Telegram is turned off on this host.","workDelivery.readiness.section.loading":"Checking delegation readiness…","workDelivery.readiness.section.loadError":"Delegation readiness could not be loaded.","workDelivery.readiness.section.noBindings":"No Telegram bot binding is configured yet.","workDelivery.readiness.status.ready":"Ready","workDelivery.readiness.status.blocked":"Blocked","workDelivery.readiness.workspaceLabel":"Workspace","workDelivery.readiness.workspaceUnset":"Not configured","workDelivery.readiness.deliveryModeLabel":"Default delivery","workDelivery.readiness.toolScopeLabel":"Granted tool scope","workDelivery.readiness.authorizedOwnersLabel":"Authorized owners","workDelivery.readiness.localExecutionLabel":"Local execution","workDelivery.readiness.localExecutionHealthy":"Healthy","workDelivery.readiness.localExecutionDegraded":"Degraded","workDelivery.readiness.localExecutionUnavailable":"Unavailable","workDelivery.readiness.localExecutionUnknown":"Not checked","workDelivery.readiness.blockersLabel":"What to fix","workDelivery.readiness.openRemediation":"Open","workDelivery.readiness.refresh":"Re-check","workDelivery.readiness.workspaceUnreachable":"The configured workspace path could not be inspected. Check that it exists and that the runtime is running.","workDelivery.readiness.workspaceNotARepository":"This delivery mode needs a git repository, but the configured workspace is not one.","workDelivery.readiness.workspaceNotClean":"The repository has existing changes. Commit, stash, or discard them before delegating work.","workDelivery.readiness.deliveryPolicyUnresolved":"The effective delivery policy could not be resolved.","workDelivery.readiness.backgroundServiceUnavailable":"The local execution runtime is unavailable, so work cannot execute here.","workDelivery.proposal.title":"Scope (revision {revision})","workDelivery.proposal.goal":"Goal: {goal}","workDelivery.proposal.target":"Target: {target}","workDelivery.proposal.doneWhen":"Done when: {criteria}","workDelivery.proposal.delivery":"Delivery: {mode}","workDelivery.proposal.sideEffects":"Side effects: {effects}","workDelivery.proposal.gates":"Gates: {gates}","workDelivery.proposal.question":"Question: {question}","workDelivery.proposal.confirm":"Start work to run exactly this.","workDelivery.value.none":"none","workDelivery.value.notSpecified":"not specified","workDelivery.sideEffects.artifactOnly":"Writes files inside the selected workspace.","workDelivery.sideEffects.commitOnly":"Writes files inside the selected workspace. Creates a local git commit.","workDelivery.sideEffects.pushBranch":"Writes files, commits, and pushes a branch to the configured remote.","workDelivery.sideEffects.prWithChecks":"Writes files, commits, pushes a branch, opens a pull request, and waits for checks.","workDelivery.sideEffects.deployPreview":"Writes files, commits, pushes a branch, and publishes a preview deployment.","workDelivery.progress":"{stage}: {milestone}","workDelivery.stage.admitted":"Admitted","workDelivery.stage.running":"Running","workDelivery.stage.cancelled":"Cancelled","workDelivery.milestone.cancelled":"The owner cancelled this work; nothing further will run.","workDelivery.milestone.admitted":"Task approved and supervised Run queued.","workDelivery.decision.title":"I need a decision before continuing.","workDelivery.decision.reason":"Reason: {reason}","workDelivery.decision.consequence":"If unresolved: {consequence}","workDelivery.decision.evidenceReason":"Execution returned but the acceptance bar is unmet: {gaps}.","workDelivery.decision.evidenceConsequence":"The work stays blocked and nothing is delivered.","workDelivery.result.title":"Result: {goal}","workDelivery.result.commit":"Commit: {commitId}","workDelivery.result.artifact":"Artifact: {title}","workDelivery.result.acceptanceMet":"Acceptance: met","workDelivery.result.acceptanceUnmet":"Acceptance: unmet ({gaps})","workDelivery.result.waitingOn":"Waiting on: {gates}","workDelivery.inbound.attachmentNotIngested":"I cannot read attachments yet, so I have not started any work. Send the request as text, or continue in Cats Desktop.","workDelivery.inbound.goalRequired":"Tell me what to do, for example: /work add a changelog entry for 0.1.21","workTask.goldenPath.title":"Transport delivery","workTask.goldenPath.stage":"Stage","workTask.goldenPath.sourceTitle":"Source","workTask.goldenPath.binding":"Binding","workTask.goldenPath.bindingMissing":"binding removed","workTask.goldenPath.scopeTitle":"Authorized scope","workTask.goldenPath.revision":"Revision","workTask.goldenPath.target":"Target","workTask.goldenPath.workspace":"Workspace","workTask.goldenPath.doneWhen":"Done when","workTask.goldenPath.delivery":"Delivery mode","workTask.goldenPath.gates":"Outstanding gates","workTask.goldenPath.authorizationTitle":"Owner authorization","workTask.goldenPath.authorizedBy":"Authorized by {actor} at {at}","workTask.goldenPath.authorizedFrom":"From binding {binding}, revision {revision}","workTask.goldenPath.notAuthorized":"Not authorized yet.","workTask.goldenPath.evidenceTitle":"Acceptance evidence","workTask.goldenPath.commit":"Commit","workTask.goldenPath.validation":"Check","workTask.goldenPath.validationPassed":"passed","workTask.goldenPath.validationFailed":"failed","workTask.goldenPath.artifacts":"Artifacts","workTask.goldenPath.unmet":"Unmet criteria","workTask.goldenPath.noEvidence":"No accepted evidence yet.","workTask.goldenPath.blockers":"Blockers","workTask.goldenPath.permissionDenial":"Permission refused","workTask.goldenPath.permissionDenialDetail":"{tool} was refused with {code}. Grant it in Cats before retrying.","workTask.goldenPath.deliveryTitle":"Delivery attempts","workTask.goldenPath.noAttempts":"Nothing has been sent yet.","workTask.goldenPath.attempt":"{purpose}: {state} (attempt {count})","workTask.goldenPath.receipt":"Receipt: message {messageId} at {at}","workTask.goldenPath.retryDelivery":"Retry delivery","workTask.goldenPath.retrying":"Retrying…","workTask.goldenPath.retryFailed":"Delivery still failing: {reason}","workTask.goldenPath.retryUnavailable":"Nothing to retry.","workTask.goldenPath.retryRun":"Retry run","workTask.goldenPath.resumeRun":"Resume run","workTask.goldenPath.lifecycleFailed":"Could not do that: {reason}","workTask.goldenPath.stage.received":"Received","workTask.goldenPath.stage.scopeProposed":"Scope proposed","workTask.goldenPath.stage.executionAuthorized":"Execution authorized","workTask.goldenPath.stage.admitted":"Admitted","workTask.goldenPath.stage.running":"Running","workTask.goldenPath.stage.decisionNeeded":"Decision needed","workTask.goldenPath.stage.resultReady":"Result ready","workTask.goldenPath.stage.publishAuthorized":"Publish authorized","workTask.goldenPath.stage.delivered":"Delivered","workTask.goldenPath.stage.failed":"Failed","workTask.goldenPath.stage.cancelled":"Cancelled","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"},Ip={"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.rendererUnavailable":"此應用程式目前沒有可用且通過驗證的畫面。","appHost.rendererTimedOut":"應用程式載入逾時。請重試,或返回大廳重新開啟。","appHost.rendererRetry":"重新載入","appHost.rendererAccessChanged":"應用程式的存取權或版本已變更,請返回大廳重新開啟。","appHost.rendererNavigatedAway":"應用程式已離開原本的頁面,請從大廳重新開啟。","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.executionTarget.saveDirectLaneError":"儲存這隻貓的 provider 與模型失敗,目前仍沿用先前的選擇。","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.status.bindingHealthLine":"接收狀態:{health}","telegram.command.status.localExecutionHealthyLine":"本機執行:正常","telegram.command.status.localExecutionDegradedLine":"本機執行:降級","telegram.command.status.localExecutionUnavailableLine":"本機執行:無法使用","telegram.command.status.localExecutionUnknownLine":"本機執行:無法檢查","telegram.command.status.delegationReadyLine":"工作委派:已就緒","telegram.command.status.delegationBlockedLine":"工作委派:無法使用","telegram.command.status.delegationDisabledLine":"工作委派:此主機未啟用","telegram.command.status.delegationUnknownLine":"工作委派:無法檢查","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 查看可用指令。`,"workDelivery.action.startWork":"開始執行","workDelivery.action.cancel":"取消","workDelivery.action.publish":"發布","workDelivery.action.deny":"不要發布","workDelivery.timeout.reason":"某個步驟超過時間預算而被放棄。","workDelivery.permissionDenied.reason":"監督層拒絕了 {tool}({code})。","workDelivery.permissionDenied.consequence":"在 Cats 授予該權限之前,重試會以同樣的方式失敗。","workDelivery.timeout.consequence":"沒有交付任何東西。可以重試再跑一次。","workDelivery.action.retry":"重試","workDelivery.action.resume":"繼續","workDelivery.retry.started":"正在重試這項工作。","workDelivery.resume.started":"正在繼續這項工作。","workDelivery.lifecycle.refused":"目前無法這麼做:{reason}","workDelivery.publish.requested":"發布需要你的核准:{gates}","workDelivery.publish.consequence":"在你核准之前不會有任何東西離開這台機器。","workDelivery.publish.denied":"已婉拒發布。結果留在本機,不會發布。","workDelivery.publish.blocked":"發布無法完成:{reasons}","workDelivery.publish.done":"已發布:{actions}","workDelivery.publish.pendingChecks":"目前已完成:{actions}。檢查仍在執行中。","workDelivery.publish.pendingConsequence":"在檢查結束後再按一次發布之前,不會有後續動作。","workDelivery.stage.publishing":"發布中","workDelivery.accepted.title":"已收到:{goal}","workDelivery.accepted.body":"正在檢查準備狀態並整理工作範圍。","workDelivery.notReady.title":"目前還無法接下這項工作。","workDelivery.notReady.footer":"請開啟 Cats 修正以下項目。目前沒有任何工作被排入佇列。","workDelivery.readiness.bindingDisabled":"此 Telegram 綁定已停用。","workDelivery.readiness.bindingUnhealthy":"此 Telegram 綁定目前收不到更新。","workDelivery.readiness.ownerNotAuthorized":"你不是此綁定的授權擁有者。","workDelivery.readiness.catNotBound":"此綁定尚未指定貓咪。","workDelivery.readiness.executionTargetMissing":"綁定的貓咪尚未設定供應商或模型。","workDelivery.readiness.capabilityProfileMissing":"供應商能力設定檔尚未建立。","workDelivery.readiness.workspaceMissing":"尚未選擇專案或工作區。","workDelivery.readiness.section.title":"Telegram 工作委派","settings.capabilityBootstrap.title":"Provider 能力初始設定","settings.capabilityBootstrap.description":"在 Cats 實際觀察過某個 provider 之前要信任它多少。變更會先驗證,再寫入平台 YAML 設定。","settings.capabilityBootstrap.configPathLabel":"設定檔","settings.capabilityBootstrap.statusLabel":"狀態","settings.capabilityBootstrap.statusLoaded":"已載入","settings.capabilityBootstrap.statusMissing":"沒有設定檔 —— 套用 provider 預設值","settings.capabilityBootstrap.statusInvalid":"設定檔無法解析","settings.capabilityBootstrap.rulesLabel":"生效的規則","settings.capabilityBootstrap.diagnosticsLabel":"診斷","settings.capabilityBootstrap.installExample":"安裝內建範例","settings.capabilityBootstrap.installFailed":"無法安裝內建範例。","settings.capabilityBootstrap.restartRequired":"磁碟上的檔案已變更,需重新啟動 Cats 才會生效。","settings.capabilityBootstrap.editHint":"Provider 為必填;instance、model 與 control 可將規則限縮到更精確的執行目標。在 Cats 實際觀察 provider 之前,信心層級固定為 catalog-only。","settings.capabilityBootstrap.noRules":"尚未設定任何能力初始規則。","settings.capabilityBootstrap.ruleTitle":"規則 {number}","settings.capabilityBootstrap.ruleId":"規則 ID","settings.capabilityBootstrap.provider":"Provider","settings.capabilityBootstrap.instance":"Instance(選填)","settings.capabilityBootstrap.model":"Model(選填)","settings.capabilityBootstrap.control":"Control(選填)","settings.capabilityBootstrap.treatment":"初始處置","settings.capabilityBootstrap.treatmentStrong":"Strong agent","settings.capabilityBootstrap.treatmentWeak":"Weak worker","settings.capabilityBootstrap.reason":"理由","settings.capabilityBootstrap.addRule":"新增規則","settings.capabilityBootstrap.removeRule":"移除規則","settings.capabilityBootstrap.moveUp":"上移","settings.capabilityBootstrap.moveDown":"下移","settings.capabilityBootstrap.save":"儲存規則","settings.capabilityBootstrap.reload":"重新載入","settings.capabilityBootstrap.saveFailed":"無法儲存能力初始規則。","settings.capabilityBootstrap.validationFailed":"請先修正無效或重複的能力規則再儲存。","settings.capabilityBootstrap.revisionConflict":"設定已在 Cats 外被變更,請重新載入後再儲存。","settings.capabilityBootstrap.loading":"正在讀取能力初始設定…","settings.capabilityBootstrap.loadError":"無法讀取能力初始設定。","workDelivery.readiness.section.description":"目前 Telegram binding 是否能接受 `/work`,以及還缺什麼。","workDelivery.readiness.section.disabled":"此主機未啟用透過 Telegram 委派工作。","workDelivery.readiness.section.loading":"正在檢查委派整備狀態…","workDelivery.readiness.section.loadError":"無法載入委派整備狀態。","workDelivery.readiness.section.noBindings":"尚未設定任何 Telegram bot binding。","workDelivery.readiness.status.ready":"已就緒","workDelivery.readiness.status.blocked":"受阻","workDelivery.readiness.workspaceLabel":"工作區","workDelivery.readiness.workspaceUnset":"未設定","workDelivery.readiness.deliveryModeLabel":"預設交付方式","workDelivery.readiness.toolScopeLabel":"授予的工具範圍","workDelivery.readiness.authorizedOwnersLabel":"已授權的擁有者","workDelivery.readiness.localExecutionLabel":"本機執行","workDelivery.readiness.localExecutionHealthy":"正常","workDelivery.readiness.localExecutionDegraded":"降級","workDelivery.readiness.localExecutionUnavailable":"無法使用","workDelivery.readiness.localExecutionUnknown":"尚未檢查","workDelivery.readiness.blockersLabel":"待修正項目","workDelivery.readiness.openRemediation":"前往","workDelivery.readiness.refresh":"重新檢查","workDelivery.readiness.workspaceUnreachable":"無法讀取設定的工作區路徑,請確認路徑存在且 runtime 正在執行。","workDelivery.readiness.workspaceNotARepository":"此交付模式需要 git 儲存庫,但設定的工作區不是。","workDelivery.readiness.workspaceNotClean":"儲存庫已有未交付的變更。請先交付、stash 或捨棄它們再交辦工作。","workDelivery.readiness.deliveryPolicyUnresolved":"無法解析有效的交付政策。","workDelivery.readiness.backgroundServiceUnavailable":"本機執行 runtime 無法使用,因此無法在此執行工作。","workDelivery.proposal.title":"工作範圍(版本 {revision})","workDelivery.proposal.goal":"目標:{goal}","workDelivery.proposal.target":"對象:{target}","workDelivery.proposal.doneWhen":"完成條件:{criteria}","workDelivery.proposal.delivery":"交付方式:{mode}","workDelivery.proposal.sideEffects":"副作用:{effects}","workDelivery.proposal.gates":"審核關卡:{gates}","workDelivery.proposal.question":"待確認:{question}","workDelivery.proposal.confirm":"按下「開始執行」就會照這份範圍執行。","workDelivery.value.none":"無","workDelivery.value.notSpecified":"未指定","workDelivery.sideEffects.artifactOnly":"會在所選工作區內寫入檔案。","workDelivery.sideEffects.commitOnly":"會在所選工作區內寫入檔案,並建立一個本機 git commit。","workDelivery.sideEffects.pushBranch":"會寫入檔案、建立 commit,並推送分支到已設定的遠端。","workDelivery.sideEffects.prWithChecks":"會寫入檔案、建立 commit、推送分支、開啟 pull request 並等待檢查。","workDelivery.sideEffects.deployPreview":"會寫入檔案、建立 commit、推送分支,並發布預覽部署。","workDelivery.progress":"{stage}:{milestone}","workDelivery.stage.admitted":"已受理","workDelivery.stage.running":"執行中","workDelivery.stage.cancelled":"已取消","workDelivery.milestone.cancelled":"擁有者已取消這項工作,不會再執行。","workDelivery.milestone.admitted":"任務已核准,受監督的 Run 已排入佇列。","workDelivery.decision.title":"需要你做個決定才能繼續。","workDelivery.decision.reason":"原因:{reason}","workDelivery.decision.consequence":"若未處理:{consequence}","workDelivery.decision.evidenceReason":"執行已回傳,但未達成完成條件:{gaps}。","workDelivery.decision.evidenceConsequence":"工作維持阻塞狀態,不會交付任何成果。","workDelivery.result.title":"結果:{goal}","workDelivery.result.commit":"Commit:{commitId}","workDelivery.result.artifact":"產出物:{title}","workDelivery.result.acceptanceMet":"完成條件:已達成","workDelivery.result.acceptanceUnmet":"完成條件:未達成({gaps})","workDelivery.result.waitingOn":"等待中:{gates}","workDelivery.inbound.attachmentNotIngested":"我目前還無法讀取附件,所以沒有開始任何工作。請改用文字描述,或到 Cats Desktop 繼續。","workDelivery.inbound.goalRequired":"請告訴我要做什麼,例如:/work 為 0.1.21 加上 changelog 條目","workTask.goldenPath.title":"傳輸交付","workTask.goldenPath.stage":"階段","workTask.goldenPath.sourceTitle":"來源","workTask.goldenPath.binding":"綁定","workTask.goldenPath.bindingMissing":"綁定已移除","workTask.goldenPath.scopeTitle":"已授權範圍","workTask.goldenPath.revision":"版本","workTask.goldenPath.target":"對象","workTask.goldenPath.workspace":"工作區","workTask.goldenPath.doneWhen":"完成條件","workTask.goldenPath.delivery":"交付方式","workTask.goldenPath.gates":"待審核關卡","workTask.goldenPath.authorizationTitle":"擁有者授權","workTask.goldenPath.authorizedBy":"由 {actor} 於 {at} 授權","workTask.goldenPath.authorizedFrom":"來自綁定 {binding},版本 {revision}","workTask.goldenPath.notAuthorized":"尚未授權。","workTask.goldenPath.evidenceTitle":"完成證據","workTask.goldenPath.commit":"Commit","workTask.goldenPath.validation":"檢查","workTask.goldenPath.validationPassed":"通過","workTask.goldenPath.validationFailed":"未通過","workTask.goldenPath.artifacts":"產出物","workTask.goldenPath.unmet":"未達成條件","workTask.goldenPath.noEvidence":"尚無已接受的證據。","workTask.goldenPath.blockers":"阻塞原因","workTask.goldenPath.permissionDenial":"權限被拒","workTask.goldenPath.permissionDenialDetail":"{tool} 被以 {code} 拒絕。請先在 Cats 授予權限再重試。","workTask.goldenPath.deliveryTitle":"交付嘗試","workTask.goldenPath.noAttempts":"尚未送出任何訊息。","workTask.goldenPath.attempt":"{purpose}:{state}(第 {count} 次)","workTask.goldenPath.receipt":"回執:訊息 {messageId},時間 {at}","workTask.goldenPath.retryDelivery":"重送交付","workTask.goldenPath.retrying":"重送中…","workTask.goldenPath.retryFailed":"交付仍然失敗:{reason}","workTask.goldenPath.retryUnavailable":"沒有可重送的項目。","workTask.goldenPath.retryRun":"重試執行","workTask.goldenPath.resumeRun":"繼續執行","workTask.goldenPath.lifecycleFailed":"無法執行:{reason}","workTask.goldenPath.stage.received":"已收到","workTask.goldenPath.stage.scopeProposed":"已提出範圍","workTask.goldenPath.stage.executionAuthorized":"已授權執行","workTask.goldenPath.stage.admitted":"已受理","workTask.goldenPath.stage.running":"執行中","workTask.goldenPath.stage.decisionNeeded":"需要決定","workTask.goldenPath.stage.resultReady":"結果待確認","workTask.goldenPath.stage.publishAuthorized":"已可發布","workTask.goldenPath.stage.delivered":"已交付","workTask.goldenPath.stage.failed":"失敗","workTask.goldenPath.stage.cancelled":"已取消","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":"交付已阻擋"},Qn={en:Ep,"zh-TW":Ip},Bp=["zh","zh-tw","zh-hant","zh-hk","zh-mo","chinese","traditional","traditional chinese","mandarin","中文","繁體中文","繁体中文","繁體","繁体","國語","国语","華語","华语"],Fp=["zh-cn","zh-hans","zh-sg","zh-my","simplified","simplified chinese","簡體中文","简体中文","簡體","简体"],Op=["zh-tw-","zh-hant-","zh-hk-","zh-mo-"],Wp=["zh-cn-","zh-hans-","zh-sg-","zh-my-"],Up=new Set(Bp),Hp=new Set(Fp);function Yo(e){if(!e)return null;for(const t of Gp(e)){const a=qp(t);if(a)return a}return null}function Gp(e){return e.split(",").map((t,a)=>{const[o,...n]=t.trim().split(";"),i=_p(o),s=Kp(n);return{token:i,quality:s,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 _p(e){return(e??"").trim().replace(/_/gu,"-").toLowerCase()}function Kp(e){const t=e.find(i=>/^q\s*=/iu.test(i.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 qp(e){return e==="en"||e.startsWith("en-")?"en":Jn(e,Up,Op)?"zh-TW":(Jn(e,Hp,Wp),null)}function Jn(e,t,a){return t.has(e)?!0:a.some(o=>e.startsWith(o))}function zp(e){return Yo(e)??"en"}function $p(e,t){return t?e.replace(/\{([^{}]+)\}/g,(a,o)=>{const n=t[o];return n===void 0?a:String(n)}):e}function $e(e){return function(a,o){const n=a in l?l[a]:a;return $p(Qn[e][n]??Qn.en[n],o)}}const kr=$e("en"),oa=$e("en"),Vp={chat:{nameKey:l.platformProductChatName,subtitleKey:l.platformProductChatSubtitle,settingsLabelKey:l.platformProductChatSettingsLabel},code:{nameKey:l.platformProductCodeName,subtitleKey:l.platformProductCodeSubtitle,settingsLabelKey:l.platformProductCodeSettingsLabel},work:{nameKey:l.platformProductWorkName,subtitleKey:l.platformProductWorkSubtitle,settingsLabelKey:l.platformProductWorkSettingsLabel}};function Qo(e){return Vp[e]??null}function Yp(e,t=oa){return Jp(e.id,e.productName,t)}function Qp(e,t=oa){return Xp(e.id,e.subtitle,t)}function Jp(e,t,a=oa){const o=Qo(e);return o?a(o.nameKey):t}function Xp(e,t,a=oa){const o=Qo(e);return o?a(o.subtitleKey):t}function sl(e,t,a=oa){const o=Qo(e);return o?a(o.settingsLabelKey):t}function Zp(e,t,a=oa){return t.id===e?sl(e,t.label,a):t.label}const Xn="en",il="auto",ll=()=>{},cl=d.createContext({locale:Xn,languagePreference:il,setLanguagePreference:ll,t:$e(Xn)});function zt({children:e,languagePreference:t=il,locale:a,setLanguagePreference:o=ll}){const n=d.useMemo(()=>({locale:a,languagePreference:t,setLanguagePreference:o,t:$e(a)}),[t,a,o]);return r.jsx(cl.Provider,{value:n,children:e})}const co=["chat","work","code"],eh=["chat","work","code"],th=["chat"];function dl(e){return co.includes(e)}function ga(e,t=null){return typeof e=="string"&&dl(e)?e:t}function Mr(e,t){const a=new Set(t),o=[];for(const n of e)!dl(n)||!a.has(n)||o.includes(n)||o.push(n);return o}function ah(e,t={}){const a=Mr(t.allowed??co,co),o=Mr(Array.isArray(e)?e.filter(i=>typeof i=="string"):[],a);if(o.length>0)return o;const n=t.fallback??null;return!n||n.length===0?[]:Mr(n,a)}function Jo(e,t,a={}){return ah(e,a).includes(t)}function rh(e){return eh.includes(e)}function wr(){return[...th]}const oh=null,ul="/api/work",nh="/api/code",sh={chat:oh,work:ul,code:nh};function ih(e){return sh[e]??null}const Zn="/settings";function Ia(e){return e===Zn||e.startsWith(`${Zn}/`)}const lh="/setup",es="/lobby",ts="/products",ch="/entities",dh=[ch];function pl(e){return e===lh}function La(e){return e===es||e.startsWith(`${es}/`)}function hl(e){return e===ts||e.startsWith(`${ts}/`)}function ml(e){return dh.some(t=>e===t||e.startsWith(`${t}/`))}function uh(e){return pl(e)||La(e)||hl(e)||ml(e)||Ia(e)}const Er=Object.fromEntries(Np().map(e=>[e.id,{surface:e.id,routePrefix:e.routePrefix,apiBase:ih(e.id),placeholder:!rh(e.id)}]));function ph(e){return jp(e)}function hh(e,t,a,o="chat"){const n=ga(e);if(n)return n;const i=ga(t);if(i)return i;const s=ga(a);if(s)return s;const c=ga(o);return c||"chat"}function _(){return d.useContext(cl)}function Gt(){const[e,t]=d.useState(null),a=d.useCallback(i=>new Promise(s=>{t({options:i,resolve:s})}),[]),o=d.useCallback(async i=>await a(i)==="confirm",[a]),n=d.useCallback(i=>{e&&(e.resolve(mh(i)),t(null))},[e]);return{dialog:e,confirm:o,choose:a,handleClose:n}}function _t({dialog:e,onClose:t}){const{t:a}=_(),o=d.useRef(null);if(d.useEffect(()=>{e&&o.current?.focus()},[e]),d.useEffect(()=>{if(!e)return;function i(s){s.key==="Escape"&&t("cancel")}return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[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:i=>i.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(l.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(l.sharedCommonDelete)})]})]})})}function mh(e){return typeof e=="boolean"?e?"confirm":"cancel":e}function gh({id:e,title:t,badge:a,isOpen:o,onToggle:n,children:i}){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:i}):null]})}const uo="cats:side-panel-layout-change";function kh({title:e,activeSection:t,onSectionToggle:a,onClose:o,sections:n,className:i="",position:s="side"}){const c=d.useRef(null),{t:h}=_(),u=["sidePanel",s==="bottom"?"sidePanelBottom":"",i].filter(Boolean).join(" ");d.useEffect(()=>{function p(w){if(c.current&&!c.current.contains(w.target)){if(w.target.closest(".sidePanelToggle"))return;o()}}function f(w){w.key==="Escape"&&o()}return document.addEventListener("mousedown",p),document.addEventListener("keydown",f),()=>{document.removeEventListener("mousedown",p),document.removeEventListener("keydown",f)}},[o]);const g=s==="bottom"?"bottom":"side";return d.useEffect(()=>(as(),()=>{as()}),[u,g]),r.jsxs("aside",{className:u,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":h(l.designSidePanelCloseLabel),children:"×"})]}),r.jsx("div",{className:"sidePanelBody",children:n.map(p=>r.jsx(gh,{id:p.id,title:p.title,badge:p.badge,isOpen:t===p.id,onToggle:a,children:p.children},p.id))})]})}function as(){typeof window>"u"||window.dispatchEvent(new Event(uo))}let bt=null,Mt=null,wa=null;function gl(){return bt||(bt=document.createElement("div"),bt.className="tooltipPortal",document.body.appendChild(bt)),bt}function Xo(){wa&&(clearTimeout(wa),wa=null)}function wh(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 fh(e){if(!e.isConnected)return!1;try{return e.matches(":hover")}catch{return!0}}function rs(e,t){const a=gl();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 i=a.getBoundingClientRect();i.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=i.top<4?"translate(-100%, 0)":"translate(-100%, -100%)")}function bh(e){const t=e.getAttribute("data-tooltip");if(!t)return;Mt&&(clearTimeout(Mt),Mt=null),Xo();const a=wh(e);if(a>0){wa=setTimeout(()=>{wa=null;const o=e.getAttribute("data-tooltip");o&&fh(e)&&rs(e,o)},a);return}rs(e,t)}function yh(){Xo(),Mt=setTimeout(()=>{gl().classList.remove("tooltipVisible")},50)}function po(){Xo(),Mt&&(clearTimeout(Mt),Mt=null),bt&&bt.classList.remove("tooltipVisible")}function vh(){po()}function Ch(){function e(o){const n=o.target.closest?.("[data-tooltip]");n&&bh(n)}function t(o){o.target.closest?.("[data-tooltip]")&&yh()}function a(){po()}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),po(),bt&&(bt.remove(),bt=null)}}function Ir(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(i=>Sh(i)).map(i=>i.getBoundingClientRect()).filter(i=>i.width>0&&i.height>0).reduce((i,s)=>i==null?s.left:Math.min(i,s.left),null);return n==null?null:Math.round(n)}function Sh(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 Lh(e,t=!1){return e==="bubble"||t&&e==="auto"?"welcome-peek":"open"}function Ph(){return"collapsed"}function Rh(e){return e==="drawer"?"open":"welcome-peek"}function xh(e,t){return t<=e.lastQueuedToken?e:{lastQueuedToken:t,pendingToken:t}}function Ah(e,t){return t||e.pendingToken==null?{queue:e,shouldOpen:!1}:{queue:{...e,pendingToken:null},shouldOpen:!0}}function Th(e){const t=xh(e.queue,e.token),a=Ah(t,e.isHiddenRoute);return a.shouldOpen?{queue:a.queue,commit:{innerState:Rh(e.mode),proactive:!0}}:{queue:a.queue,commit:null}}function Dh(e,t,a=!1){return e==="collapsed"?{nextState:Lh(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 Nh(e){return{nextState:"collapsed",persistSeen:e==="welcome-peek"}}function os(){return Ph()}function jh(e,t,a=0,o="floating"){const n=Ne(),[i,s]=d.useState(()=>os()),[c,h]=d.useState(!1),u=d.useRef({lastQueuedToken:0,pendingToken:null}),g=d.useRef(e);g.current=e;const p=n.pathname==="/setup",f=Ia(n.pathname),w=p||f&&o!=="docked",k=f&&o==="docked";d.useEffect(()=>{w&&(h(!1),s(b=>{const S=os();return b===S?b:S}))},[w]),d.useEffect(()=>{const b=Th({queue:u.current,token:a,isHiddenRoute:w,mode:g.current});if(u.current=b.queue,!b.commit)return;const{innerState:S,proactive:T}=b.commit;h(T),s(M=>M===S?M:S)},[w,a]);const y=w?"hidden":i,m=d.useCallback(()=>{h(!1),s(b=>{const S=Dh(b,e,k);return S.persistSeen&&t(),S.nextState})},[e,t,k]),C=d.useCallback(()=>{h(!1),s(b=>{const S=Nh(b);return S.persistSeen&&t(),S.nextState})},[t]),v=d.useCallback(()=>{h(!1),s("collapsed"),t()},[t]);return{viewState:y,proactive:c,toggle:m,collapse:C,dismissWelcome:v}}const kl={x:.03,y:.5};function wl(e,t="floating"){return pl(e)?"hidden":Ia(e)?t==="docked"?"workspace":"hidden":La(e)?"lobby":"workspace"}const kt=16,Mh=28,Ha=Mh/2,Ga=24,Eh=24,Ih=4;function ns(e){const t=e.currentX-e.startX,a=e.currentY-e.startY;return Math.hypot(t,a)>=Ih}function Bh(e){const{surface:t,viewport:a,topChromeBottom:o,sidebarRight:n,rightBlockedLeft:i=null}=e,s=t==="workspace"&&n!=null?Math.max(kt,n+kt):kt,c=t==="lobby"&&o!=null?Math.max(kt,o+kt):kt,h=t==="workspace"&&i!=null?Math.min(a.width-kt,i-kt):a.width-kt,u=s+Ha,g=c+Ha,p=Math.max(u+1,h-Ha),f=Math.max(g+1,a.height-kt-Ha);return{left:u,top:g,right:p,bottom:f}}function fl(e){const{anchor:t,viewport:a,safeArea:o}=e,n=t.x*a.width,i=t.y*a.height;return{x:Math.min(o.right,Math.max(o.left,n)),y:Math.min(o.bottom,Math.max(o.top,i))}}function ho(e){const{pointerX:t,pointerY:a,viewport:o}=e;return o.width<=0||o.height<=0?{...kl}:{x:Math.min(1,Math.max(0,t/o.width)),y:Math.min(1,Math.max(0,a/o.height))}}function bl(e){return e??{...kl}}function Fh(e){const t=ho({pointerX:e.pointerX,pointerY:e.pointerY,viewport:e.viewport}),a=bl(t),o=fl({anchor:a,viewport:e.viewport,safeArea:e.safeArea}),n=ho({pointerX:o.x,pointerY:o.y,viewport:e.viewport});return e.undock?{placement:"floating",floatingAnchor:n}:{floatingAnchor:n}}function Oh(e){const{pointerX:t,pointerY:a,slotRect:o}=e;return o?t>=o.left-Ga&&t<=o.right+Ga&&a>=o.top-Ga&&a<=o.bottom+Ga:!1}function mo(e){return e==="lobby"?"lobby":e==="workspace"?"workspace":null}function Wh(e){const{placement:t,anchor:a,surface:o,viewport:n,safeArea:i}=e;if(o==="hidden")return{kind:"hidden"};if(t==="docked"){const p=mo(o);return p?{kind:"docked",slot:p}:{kind:"hidden"}}const s=bl(a),{x:c,y:h}=fl({anchor:s,viewport:n,safeArea:i}),u=ho({pointerX:c,pointerY:h,viewport:n}),g=Math.abs(u.x-s.x)>.001||Math.abs(u.y-s.y)>.001?"collision_reflow":null;return{kind:"floating",x:c,y:h,overrideReason:g}}const yl=d.createContext(null);function Uh({guideCat:e,placement:t,floatingAnchor:a,sidecarMode:o,proactiveGreetingToken:n=0,onPersistSeen:i,onCommit:s,children:c}){const h=jh(o,i,n,t),u=Ne(),g=wl(u.pathname,t),[p,f]=d.useState(()=>ss()),[w,k]=d.useState(null),[y,m]=d.useState(null),[C,v]=d.useState(null),b=d.useRef({lobby:null,workspace:null}),S=d.useRef({lobby:null,workspace:null}),T=d.useRef(null),M=d.useRef(!1),j=d.useRef(null),[R,P]=d.useState(null),A=d.useCallback(D=>{j.current=D,P(D)},[]);d.useEffect(()=>{if(typeof window>"u")return;const D=()=>f(ss());return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]),d.useEffect(()=>{if(!(typeof document>"u"))return cs({document,selector:".lobbyTopBar",readValue:D=>D?Math.round(D.getBoundingClientRect().bottom):null,onChange:D=>{k(B=>B===D?B:D)}})},[u.pathname]),d.useEffect(()=>{if(!(typeof document>"u"))return cs({document,selector:"aside.sidebar",readValue:D=>D?Math.round(D.getBoundingClientRect().right):null,onChange:D=>{m(B=>B===D?B:D)}})},[u.pathname]),d.useEffect(()=>{if(typeof document>"u"||typeof window>"u")return;const D=()=>{const B=g==="workspace"?Ir(document):null;v(W=>W===B?W:B)};return D(),window.addEventListener("resize",D),window.addEventListener(uo,D),()=>{window.removeEventListener("resize",D),window.removeEventListener(uo,D)}},[g,u.pathname]);const x=d.useMemo(()=>Bh({surface:g,viewport:p,topChromeBottom:w,sidebarRight:y,rightBlockedLeft:C}),[g,p,w,y,C]),E=d.useMemo(()=>Wh({placement:t,anchor:a,surface:g,viewport:p,safeArea:x}),[t,a,g,p,x]),O=d.useMemo(()=>{if(!R||!R.activated)return E;const D=R.currentX-R.startX,B=R.currentY-R.startY;return R.mode==="floating"?{kind:"floating",x:_a(R.basePillX+D,p.width),y:_a(R.basePillY+B,p.height),overrideReason:null}:R.mode==="docked"&&!R.escaped?E:R.mode==="docked"&&R.escaped?{kind:"floating",x:_a(R.basePillX+D,p.width),y:_a(R.basePillY+B,p.height),overrideReason:null}:E},[E,R,p]),$=d.useMemo(()=>{const D=mo(g),B=t==="docked"&&D!=null,W=R?.mode==="floating"&&R.activated?R.overSlot:null;return{lobby:{active:B&&D==="lobby",preview:W==="lobby"},workspace:{active:B&&D==="workspace",preview:W==="workspace"}}},[t,g,R]),K=d.useCallback((D,B)=>{b.current[D]=B,S.current[D]=B?Fr(B):null},[]),ee=d.useCallback(()=>{Object.keys(b.current).forEach(D=>{const B=b.current[D];S.current[D]=B?Fr(B):null})},[]),F=d.useCallback(D=>{const B=b.current[D];return B?Fr(B):null},[]),Y=d.useCallback((D,B,W=!1)=>Fh({pointerX:D,pointerY:B,viewport:p,safeArea:x,undock:W}),[x,p]),H=d.useCallback(D=>{s({placement:"docked"})},[s]),ae=d.useCallback(D=>{const B=ns({startX:D.startX,startY:D.startY,currentX:D.currentX,currentY:D.currentY}),W=D.basePillX+(D.currentX-D.startX),Z=D.basePillY+(D.currentY-D.startY);D.mode==="floating"&&D.overSlot?(H(D.overSlot),M.current=!0):D.mode==="floating"&&B?(s(Y(W,Z)),M.current=!0):D.mode==="docked"&&D.escaped&&(s(Y(W,Z,!0)),M.current=!0),A(null)},[H,s,Y]),ue=d.useCallback(D=>{const B=j.current;if(!B||D.pointerId!==B.pointerId)return;const W={...B,currentX:D.clientX,currentY:D.clientY};if(!B.activated){if(!ns({startX:B.startX,startY:B.startY,currentX:D.clientX,currentY:D.clientY})){A(W);return}W.activated=!0,typeof document<"u"&&document.body.classList.add(Br),is(),h.collapse(),ee()}if(B.mode==="floating"){const Z=mo(g);if(Z){const q=S.current[Z];Oh({pointerX:D.clientX,pointerY:D.clientY,slotRect:q})?W.overSlot=Z:W.overSlot=null}else W.overSlot=null}else if(B.mode==="docked"){const Z=D.clientX-B.startX,q=D.clientY-B.startY;!B.escaped&&Math.hypot(Z,q)>=Eh&&(W.escaped=!0)}A(W)},[h,ee,A,g]),G=d.useCallback(D=>{const B=j.current;if(!B||D.pointerId!==B.pointerId)return;const W={...B,currentX:D.clientX,currentY:D.clientY};ae(W)},[ae]);d.useEffect(()=>{if(!R)return;const D=B=>{const W=j.current;!W||B.pointerId!==W.pointerId||A(null)};return window.addEventListener("pointermove",ue),window.addEventListener("pointerup",G),window.addEventListener("pointercancel",D),()=>{window.removeEventListener("pointermove",ue),window.removeEventListener("pointerup",G),window.removeEventListener("pointercancel",D)}},[R,ue,G,A]);const I=!!R?.activated,z=d.useMemo(()=>g==="workspace"&&y!=null?Math.max(0,Math.round(y)):0,[g,y]);d.useEffect(()=>{if(!(typeof document>"u")&&I)return document.body.classList.add(Br),()=>{document.body.classList.remove(Br),is()}},[I]);const re=d.useCallback(D=>{if(D.button!==0&&D.pointerType==="mouse")return;D.preventDefault(),D.stopPropagation(),M.current=!1,ls(),v(Ir(document,{pinnedOnly:!0}));const B=D.currentTarget,W=B.getBoundingClientRect(),Z=W.left+W.width/2,q=W.top+W.height/2;try{B.setPointerCapture(D.pointerId)}catch{}A({mode:"floating",pointerId:D.pointerId,startX:D.clientX,startY:D.clientY,currentX:D.clientX,currentY:D.clientY,basePillX:Z,basePillY:q,activated:!1,overSlot:null,escaped:!1})},[]),X=d.useCallback(D=>{if(D.button!==0&&D.pointerType==="mouse")return;D.preventDefault(),D.stopPropagation(),M.current=!1,ls(),v(Ir(document,{pinnedOnly:!0}));const B=D.currentTarget,W=B.getBoundingClientRect(),Z=W.left+W.width/2,q=W.top+W.height/2;try{B.setPointerCapture(D.pointerId)}catch{}A({mode:"docked",pointerId:D.pointerId,startX:D.clientX,startY:D.clientY,currentX:D.clientX,currentY:D.clientY,basePillX:Z,basePillY:q,activated:!1,overSlot:null,escaped:!1})},[]),pe=d.useCallback(()=>{const D=M.current;return M.current=!1,D},[]),ve=d.useCallback(()=>{M.current=!1},[]),U=d.useCallback(()=>{if(O.kind!=="docked")return;const D=F(O.slot);if(!D)return;const B=(D.left+D.right)/2,W=(D.top+D.bottom)/2;s(Y(B,W,!0))},[O,s,Y,F]),V=d.useMemo(()=>({guideCat:e,projection:O,dockSlotState:$,pillRef:T,registerSlotRef:K,onFloatingPointerDown:re,onDockedPointerDown:X,consumePillClickSuppression:pe,clearPillClickSuppression:ve,presentation:h,dragActive:I,panelOriginX:z,getDockSlotRect:F,undock:U}),[e,O,$,K,re,X,pe,ve,h,I,z,F,U]);return r.jsx(yl.Provider,{value:V,children:c})}function Zo(){const e=d.useContext(yl);if(!e)throw new Error("useGuideCatPlacement requires GuideCatPlacementProvider");return e}function Hh(e){const{registerSlotRef:t}=Zo();return d.useCallback(a=>{t(e,a)},[t,e])}function ss(){return typeof window>"u"?{width:0,height:0}:{width:window.innerWidth,height:window.innerHeight}}function _a(e,t){return t<=0?e:Math.min(t,Math.max(0,e))}function is(){vh()}const vl=Symbol.for("cats.guideCat.dismissTransientChrome");function Gh(e){return!!e[vl]}function ls(){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[vl]=!0,document.body.dispatchEvent(e)}const Br="guideCatDragging";function Fr(e){const t=e.getBoundingClientRect();return{left:t.left,top:t.top,right:t.right,bottom:t.bottom}}function cs(e){const{document:t,selector:a,readValue:o,onChange:n}=e,i=globalThis.ResizeObserver,s=globalThis.MutationObserver,c=t.body??t.documentElement;if(!c)return n(o(t.querySelector(a))),()=>{};let h=null,u=null,g=null;const p=()=>{u?.disconnect(),g?.disconnect(),u=null,g=null},f=()=>{n(o(h))},w=()=>{h&&typeof i=="function"&&(u=new i(f),u.observe(h)),h&&typeof s=="function"&&(g=new s(f),g.observe(h,{attributes:!0,attributeFilter:["class","style"]}))},k=()=>{const m=t.querySelector(a);return m===h?!1:(p(),h=m,w(),f(),!0)};let y=null;return typeof s=="function"&&(y=new s(()=>{h!=null&&(h.isConnected??!0)||k()}),y.observe(c,{childList:!0,subtree:!0})),k()||f(),()=>{p(),y?.disconnect()}}const fr="cats.guide-cat-ui-prefs",Cl=1,Qt={sidecarSeen:!1,sidecarMode:"auto",placement:"floating",floatingAnchor:null},ds=new Set;function Pa(){const e=globalThis;return typeof e.addEventListener!="function"||typeof e.removeEventListener!="function"?null:e}function _h(e,t){(Pa()===null?d.useEffect:d.useLayoutEffect)(e,t)}function Kh(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 qh(e){return e==="auto"||e==="drawer"||e==="bubble"?e:Qt.sidecarMode}function zh(e){return e==="floating"||e==="docked"?e:Qt.placement}function $h(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 en(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===Cl?{sidecarSeen:a.sidecarSeen===!0,sidecarMode:qh(a.sidecarMode),placement:zh(a.placement),floatingAnchor:Kh(a.floatingAnchor)}:null}catch{return null}}function Sl(e){ds.has(e)||(ds.add(e),globalThis.console?.warn?.(`[guide-cat-ui-prefs] Ignoring unsupported or malformed stored prefs during ${e}.`))}function Vh(e){const t={version:Cl,sidecarSeen:e.sidecarSeen,sidecarMode:e.sidecarMode,placement:e.placement,floatingAnchor:e.floatingAnchor?{...e.floatingAnchor}:null};return JSON.stringify(t)}function Yh(e){if(!e)return null;try{return en(e.getItem(fr))}catch{return null}}function Qh(e){if(!e)return null;try{return e.getItem(fr)}catch{return null}}function Ll(e,t){if(!e)return{persisted:!1,prefs:t};try{e.setItem(fr,Vh(t));const a=Yh(e);if(a)return{persisted:!0,prefs:a}}catch{}return{persisted:!1,prefs:t}}function Jh(e){const{storage:t}=e,a=Qh(t),o=en(a);if(o)return{prefs:o,source:"local",persisted:!0};if(a!==null)return Sl("bootstrap"),{prefs:{...Qt},source:"defaults",persisted:!1};const n={...Qt},i=Ll(t,n).persisted;return{prefs:n,source:"defaults",persisted:i}}function Or(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 Xh{constructor(t){this.storage=t}prefs={...Qt};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=Jh({storage:this.storage});this.prefs=t.prefs,this.hydrated=!0}update(t){this.hydrated||this.ensureHydrated();const a=$h(this.prefs,t);if(Or(this.prefs,a))return;const o=Ll(this.storage,a).prefs;this.prefs=o,this.hydrated=!0,this.emit()}emit(){this.listeners.forEach(t=>t())}ensureStorageListener(){const t=Pa();!t||this.storageListening||(t.addEventListener?.("storage",this.handleStorageEvent),this.storageListening=!0)}teardownStorageListener(){const t=Pa();!t||!this.storageListening||(t.removeEventListener?.("storage",this.handleStorageEvent),this.storageListening=!1)}handleStorageEvent=t=>{if(t.key!==fr)return;if(t.newValue===null){const o={...Qt};if(Or(this.prefs,o))return;this.prefs=o,this.hydrated=!0,this.emit();return}const a=en(t.newValue);if(!a){Sl("storage-event");return}Or(this.prefs,a)||(this.prefs=a,this.hydrated=!0,this.emit())}}function Pl(e){return new Xh(e)}let Wr=null;function Zh(){return Wr||(Wr=Pl(Pa()?.localStorage??null)),Wr}function tn(e={}){const{hydrate:t=!0}=e,a=d.useMemo(()=>Pa()===null?Pl(null):Zh(),[]),[,o]=d.useState(0);_h(()=>{!t||a.isHydrated()||(a.ensureHydrated(),o(s=>s+1))},[t,a]);const n=d.useSyncExternalStore(a.subscribe,a.getSnapshot,a.getSnapshot),i=d.useCallback(s=>{a.update(s)},[a]);return{prefs:n,hydrated:t&&a.isHydrated(),update:i}}const go=["claude","codex","antigravity","grok","cline","devin","muse","cursor","copilot","opencode","kilo","goose","pi","auggie","junie","kiro","ollama","openclaw"],em={openclaw:[{value:"openclaw-coder",label:"openclaw-coder (default)",default:!0}],claude:[{value:"opus",label:"Opus 5 with 1M context",default:!0},{value:"fable",label:"Fable 5.1"},{value:"sonnet",label:"Sonnet 5"},{value:"haiku",label:"Haiku 4.5"}],codex:[{value:"gpt-6-astra",label:"gpt-6-astra",default:!0},{value:"gpt-5.6-sol",label:"gpt-5.6-sol"},{value:"gpt-5.6-terra",label:"gpt-5.6-terra"},{value:"gpt-5.6-luna",label:"gpt-5.6-luna"},{value:"gpt-5.5",label:"gpt-5.5"}],antigravity:[{value:"gemini-3.8-flash-low",label:"Gemini 3.8 Flash"},{value:"gemini-3.7-flash-low",label:"Gemini 3.7 Flash"},{value:"gemini-3.6-flash-low",label:"Gemini 3.6 Flash"},{value:"gemini-3.1-pro-low",label:"Gemini 3.1 Pro"},{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6 (Thinking)"},{value:"claude-opus-4-6-thinking",label:"Claude Opus 4.6 (Thinking)"},{value:"gpt-oss-120b-medium",label:"GPT-OSS 120B (Medium)"}],grok:[{value:"grok-4.6",label:"Grok 4.6"},{value:"grok-4.5",label:"Grok 4.5"}],cline:[{value:"cline-pass/glm-5.3",label:"GLM-5.3 — Medium"},{value:"cline-pass/kimi-k3",label:"Kimi K3 — Medium"},{value:"cline-pass/qwen3.8-max",label:"Qwen3.8 Max — Medium"},{value:"cline-pass/deepseek-v4-pro",label:"DeepSeek V4 Pro — Medium"},{value:"cline-pass/minimax-m3",label:"MiniMax-M3 — Medium"},{value:"cline-pass/mimo-v2.5-pro",label:"MiMo-V2.5-Pro — Medium"}],devin:[{value:"adaptive",label:"Adaptive"},{value:"claude-fable-5-1-medium",label:"Claude Fable 5.1 — Medium"},{value:"gemini-3-8-flash-medium",label:"Gemini 3.8 Flash — Medium"},{value:"gpt-6-astra-medium",label:"GPT-6 Astra — Medium"},{value:"grok-4-6-medium",label:"Grok 4.6 — Medium"},{value:"nemotron-3-ultra-high",label:"Nemotron 3 Ultra — High"}],muse:[{value:"muse-default",label:"Muse account default",default:!0},{value:"muse-spark-1.3",label:"muse-spark-1.3"},{value:"muse-spark-1.2",label:"muse-spark-1.2"}],copilot:[{value:"gpt-5.6-terra",label:"GPT-5.6 Terra — Medium (default)",default:!0},{value:"claude-sonnet-5",label:"Claude Sonnet 5 — Medium"},{value:"gemini-3.8-flash",label:"Gemini 3.8 Flash — Medium"},{value:"grok-4.6",label:"Grok 4.6 — Medium"},{value:"mai-code-1.1-flash",label:"MAI-Code-1.1-Flash — Medium"},{value:"kimi-k3",label:"Kimi K3 — High"}],opencode:[{value:"opencode-go/union-alpha",label:"Union Alpha Free"},{value:"opencode-go/deepseek-v4.1-flash",label:"DeepSeek V4.1 Flash"},{value:"opencode-go/hy4-preview",label:"Hy4 preview"},{value:"opencode-go/glm-5.3-flash",label:"GLM-5.3-Flash"},{value:"opencode-go/qwen3.8-flash",label:"Qwen3.8 Flash"},{value:"opencode-go/minimax-m3",label:"MiniMax-M3"}],kilo:[{value:"kilo/deepseek/deepseek-v4.1-flash",label:"DeepSeek: DeepSeek V4.1 Flash"},{value:"kilo/z-ai/glm-5.3-flash",label:"Z.ai: GLM 5.3 Flash"},{value:"kilo/moonshotai/kimi-k3",label:"MoonshotAI: Kimi K3"},{value:"kilo/minimax/minimax-m3",label:"MiniMax: MiniMax M3"},{value:"kilo/bytedance-seed/seed-2-1-turbo",label:"ByteDance Seed: Seed 2.1 Turbo Thinking"},{value:"kilo/google/gemini-3-pro-image",label:"Google: Nano Banana Pro (Gemini 3 Pro Image) Thinking"}],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:"grok-4.6[effort=high,fast=true]",label:"Cursor Grok 4.6 — High Fast"},{value:"composer-2.5[fast=true]",label:"Composer 2.5 — Fast"},{value:"claude-opus-5[thinking=true,context=300k,effort=high,fast=false]",label:"Claude Opus 5 — 300K High Thinking"},{value:"gpt-5.6-sol[context=272k,reasoning=medium,fast=false]",label:"GPT-5.6 Sol — 272K Medium"},{value:"gemini-3.8-flash[reasoning_effort=high]",label:"Gemini 3.8 Flash — High"},{value:"muse-spark-1.3[context=300k,effort=high]",label:"Muse Spark 1.3 — 300K High"}],kiro:[{value:"claude-opus-5",label:"claude-opus-5"},{value:"claude-sonnet-5",label:"claude-sonnet-5"},{value:"gpt-5.6-sol",label:"gpt-5.6-sol"},{value:"gpt-5.6-terra",label:"gpt-5.6-terra"},{value:"gpt-5.6-luna",label:"gpt-5.6-luna"},{value:"claude-haiku-4.5",label:"claude-haiku-4.5"}],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}]},tm={antigravity:"antigravity-default",muse:"muse-default"},am={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}],muse:[{id:"native",label:"cli/native",target:"cli/native",backend:"cli",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}]};function jt(e){return e.target??(e.backend?`${e.backend}/${e.id}`:e.id)}const rm=Object.fromEntries(Object.entries(em).map(([e,t])=>[e,t.map(a=>({...a}))]));function Ce(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Rl(e){const t=Ce(e);return t?Ce(t.catalog)??t:null}function ce(e){return typeof e=="string"&&e.trim().length>0?e:null}function ca(e){return e==="none"||e==="derived"||e==="native"||e==="unknown"?e:"unknown"}function om(e){return e==="none"||e==="final"||e==="chunk"||e==="line"||e==="token"||e==="unknown"?e:"unknown"}function nm(e){return e==="final_message"||e==="event_tape"||e==="content_blocks"||e==="unknown"?e:"unknown"}function sm(e){const t=Ce(e);if(!t)return null;const a=Ce(t.normalizedStream),o=Ce(a?.text),n=Ce(t.transcript),i=Ce(t.presentation),s=Ce(t.validation),c=Ce(s?.observed);return{normalizedStream:{text:{mode:om(o?.mode),stepwise:o?.stepwise===!0},toolUse:ca(a?.toolUse),toolResult:ca(a?.toolResult),progress:ca(a?.progress),reasoning:ca(a?.reasoning)},transcript:{contentBlocks:ca(n?.contentBlocks)},presentation:{recommended:nm(i?.recommended)},notes:_e(t.notes),...s?{validation:{artifactId:typeof s.artifactId=="string"?s.artifactId:"",capturedAt:typeof s.capturedAt=="string"?s.capturedAt:"",transport:typeof s.transport=="string"?s.transport:"",...typeof s.runtimeMode=="string"?{runtimeMode:s.runtimeMode}:{},executionStatus:s.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 ko(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function _e(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function $t(e){const t=Ce(e);if(!t)return;const a=Object.entries(t).filter(([,o])=>ko(o));return a.length>0?Object.fromEntries(a):void 0}function us(e){return e==="supported"||e==="unavailable"||e==="available"||e==="preview"||e==="deprecated"?e:void 0}function im(e){return e==="boolean"||e==="enum"||e==="number"||e==="string"?e:"string"}function lm(e){return e==="session_default"||e==="request"||e==="both"?e:"session_default"}function cm(e){return e==="auto"||e==="explicit"?e:"explicit"}function ps(e){if(!Array.isArray(e))return;const t=e.flatMap(a=>{if(ko(a))return[{value:a,label:String(a)}];const o=Ce(a);return!o||!ko(o.value)?[]:[{value:o.value,label:ce(o.label)??String(o.value),...ce(o.description)?{description:ce(o.description)}:{},..._e(o.applicableEntryIds).length>0?{applicableEntryIds:_e(o.applicableEntryIds)}:{}}]});return t.length>0?t:void 0}function dm(e){return go.includes(e)}function At(e){const t=e?.trim().toLowerCase();if(!t)return null;if(go.includes(t))return t;if(t.endsWith("-cli")){const a=t.slice(0,-4);if(go.includes(a))return a}return null}function um(e){const t=At(e)??e.trim();return t==="openclaw"?"OpenClaw":t.charAt(0).toUpperCase()+t.slice(1)}function xl(e){const t=At(e);return t?rm[t]??[]:[]}function Al(e,t){const a=At(e);return a?tm[a]===t?.trim():!1}function an(e,t){const a=t?.trim();if(!a)return null;if((At(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 BS(e){const t=xl(e);return t.find(a=>a.default)?.value??t[0]?.value??""}function rn(e){const t=At(e);return t?am[t]??[]:[]}function Tl(e){const t=rn(e);return t.find(a=>a.default)?.id??t[0]?.id??null}function pm(e){const t=rn(e);return t.find(a=>a.default)?.backend??t[0]?.backend??null}function Dl(e){return e.defaultModel||e.models.find(t=>t.default)?.id||e.models[0]?.id||""}function hm(e){const t=Dl(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 mm(e,t){const a=Rl(e)??{},o=a.source,n=o==="dynamic"||o==="config"||o==="static"?o:"static",i=Ce(a.cache),s=Array.isArray(a.models)?a.models:[];return{provider:ce(a.provider)??t,backend:ce(a.backend),instance:ce(a.instance),defaultModel:ce(a.defaultModel),source:n,cache:i?{servedFromCache:!!i.servedFromCache,cachedAt:ce(i.cachedAt),ttlSec:typeof i.ttlSec=="number"?i.ttlSec:null}:null,models:s.map(c=>Ce(c)).filter(c=>c!==null).map(c=>({id:ce(c.id)??"",label:ce(c.label)??ce(c.id)??"",default:!!c.default,status:ce(c.status)??void 0})).filter(c=>c.id.length>0),warnings:Array.isArray(a.warnings)?a.warnings.filter(c=>typeof c=="string"):[]}}function gm(e,t){const a=Rl(e)??{},o=a.source,n=o==="dynamic"||o==="config"||o==="static"?o:"static",i=Ce(a.cache),s=Array.isArray(a.entries)?a.entries:[],c=Array.isArray(a.presets)?a.presets:[],h=Array.isArray(a.controls)?a.controls:[],u=Ce(a.support),g=Ce(a.defaultSelection);return{provider:ce(a.provider)??t,backend:ce(a.backend),instance:ce(a.instance),defaultModel:ce(a.defaultModel),source:n,cache:i?{servedFromCache:!!i.servedFromCache,cachedAt:ce(i.cachedAt),ttlSec:typeof i.ttlSec=="number"?i.ttlSec:null}:null,entries:s.map(p=>Ce(p)).filter(p=>p!==null).map(p=>({id:ce(p.id)??"",label:ce(p.label)??ce(p.id)??"",default:!!p.default,...$t(p.controlDefaults)?{controlDefaults:$t(p.controlDefaults)}:{},...ce(p.status)?{status:ce(p.status)}:{},..._e(p.capabilityTags).length>0?{capabilityTags:_e(p.capabilityTags)}:{},...Ce(p.limits)?{limits:{...typeof Ce(p.limits)?.contextWindowTokens=="number"?{contextWindowTokens:Number(Ce(p.limits)?.contextWindowTokens)}:typeof Ce(p.limits)?.contextWindow=="number"?{contextWindowTokens:Number(Ce(p.limits)?.contextWindow)}:{},...typeof Ce(p.limits)?.maxOutputTokens=="number"?{maxOutputTokens:Number(Ce(p.limits)?.maxOutputTokens)}:{}}}:{},..._e(p.notes).length>0?{notes:_e(p.notes)}:{}})).filter(p=>p.id.length>0),presets:c.map(p=>Ce(p)).filter(p=>p!==null).map(p=>({id:ce(p.id)??"",label:ce(p.label)??ce(p.id)??"",...ce(p.description)?{description:ce(p.description)}:{},...us(p.availability)?{availability:us(p.availability)}:{},..._e(p.applicableEntryIds).length>0?{applicableEntryIds:_e(p.applicableEntryIds)}:{},...ce(p.preferredEntryId)?{preferredEntryId:ce(p.preferredEntryId)}:{},...$t(p.controlDefaults)?{controlDefaults:$t(p.controlDefaults)}:{},..._e(p.warnings).length>0?{warnings:_e(p.warnings)}:{}})).filter(p=>p.id.length>0),controls:h.map(p=>Ce(p)).filter(p=>p!==null).map(p=>({key:ce(p.key)??"",label:ce(p.label)??ce(p.key)??"",...ce(p.description)?{description:ce(p.description)}:{},kind:im(p.kind),scope:lm(p.scope),...ps(p.values)?{values:ps(p.values)}:{},...typeof p.minimum=="number"?{minimum:p.minimum}:{},...typeof p.maximum=="number"?{maximum:p.maximum}:{},...typeof p.step=="number"?{step:p.step}:{},..._e(p.applicableEntryIds).length>0?{applicableEntryIds:_e(p.applicableEntryIds)}:{},..._e(p.semanticTags).length>0?{semanticTags:_e(p.semanticTags)}:{}})).filter(p=>p.key.length>0),defaultSelection:g?{...ce(g.entryId)?{entryId:ce(g.entryId)}:{},entryMode:cm(g.entryMode),...ce(g.presetId)?{presetId:ce(g.presetId)}:{},...$t(g.controls)?{controls:$t(g.controls)}:{}}:null,support:{tier:u?.tier==="full"||u?.tier==="entry_only"||u?.tier==="read_only"?u.tier:"entry_only",notes:_e(u?.notes)},warnings:Array.isArray(a.warnings)?a.warnings.filter(p=>typeof p=="string"):[]}}const Nl=new Map;function jl(e,t){return`${e.trim().toLowerCase()}::${t.trim().toLowerCase()}`}function km(e,t){const a=e.trim();if(a)for(const o of t){const n=o.id?.trim(),i=o.label?.trim();!n||!i||Nl.set(jl(a,n),i)}}function hs(e,t){return!e.trim()||!t.trim()?null:Nl.get(jl(e,t))??null}const on=new Map;function wm(e){const t=e.trim().toLowerCase();if(t.endsWith("-cli")){const o=t.slice(0,-4);if(dm(o))return{provider:o,backendSuffix:"-CLI"}}return{provider:At(t)??e.trim(),backendSuffix:null}}function br(e){return e.replace(/\s*\((?:default|recommended)\)\s*/giu," ").trim()}function ms(e){const t=e?.toLowerCase();return t==="cli"?"-CLI":t==="agent"?"-AGENT":t==="api"?"-API":t==="local"?"-LOCAL":""}function fm(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 ms(pm(e));const o=rn(e).find(s=>s.id===t),n=ms(o?.backend);if(n)return n;const i=o?.target?.toLowerCase();return i?.startsWith("cli/")?"-CLI":i?.startsWith("agent/")?"-AGENT":i?.startsWith("api/")?"-API":i?.startsWith("local/")?"-LOCAL":""}function bm(e,t){if(!t)return null;const a=an(e,t)??t,n=hs(e,t)??hs(e,a)??xl(e).find(s=>s.value===a)?.label,i=e==="claude"&&(a==="opus"||a==="sonnet"||a==="haiku")?a.charAt(0).toUpperCase()+a.slice(1):a;return br(n??i)}function ym(e){const t=e?.trim();return t?br(t):null}function Ml(e){const t=e?.trim();return t?br(t):null}function vm(e){return JSON.stringify([typeof e,e])}function Cm(e){if(!e)return"";const t=Object.entries(e).filter(([,a])=>a!==""&&a!==!1).sort(([a],[o])=>a.localeCompare(o)).map(([a,o])=>[a,vm(o)]);return t.length>0?JSON.stringify(t):""}function El(e){const t=At(e.provider)??e.provider.trim().toLowerCase(),a=(e.instance?.trim()||Tl(e.provider)||"").toLowerCase(),o=(an(e.provider,e.model)??e.model?.trim()??"").toLowerCase();return JSON.stringify([t,a,o,Cm(e.controls)])}function Sm(){on.clear()}function Lm(e){return Bl(e)}function Il(e){const t=Ml(e.executionLabel);return t?(on.set(El({provider:e.provider,instance:e.instance,model:e.model,controls:e.modelSelection?.controls??null}),t),t):null}function Bl(e){return on.get(El({provider:e.provider,instance:e.instance,model:e.model,controls:e.modelSelection?.controls??null}))??null}const Pm={max:"Max",xhigh:"xHigh",high:"High",medium:"Medium",low:"Low",none:"None"};function Rm(e){return typeof e=="boolean"?e?"On":"Off":typeof e=="number"?String(e):Pm[e]??e.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function Fl(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 s=a.get(o)?.values?.find(c=>c.value===n);return br(s?.label??Rm(n))}).filter(o=>o.length>0)}function nn(e,t,a,o,n,i){const s=wm(e),c=o?.trim()||um(s.provider),h=t?.trim()||Tl(s.provider),u=s.backendSuffix??fm(s.provider,h),g=ym(i)??bm(s.provider,a),p=n&&n.length>0?` · ${n.join(" · ")}`:"";return c+u+(g?` · ${g}`:"")+p}function yr(e){const t=Il({provider:e.provider,instance:e.instance,model:e.model,modelSelection:e.modelSelection??null,executionLabel:e.executionLabel??null});if(t)return t;const a=Bl({provider:e.provider,instance:e.instance,model:e.model,modelSelection:e.modelSelection??null});if(a)return a;const o=e.controlLabels??Fl(e.modelSelection?.controls,e.catalogControls);return nn(e.provider,e.instance,e.model,e.providerLabel,o,e.modelLabelOverride)}function xm(e){const t=e.defaultExecutionTarget;return yr({provider:t.provider,instance:t.instance??null,model:t.model??null,modelSelection:e.defaultModelSelection??null,executionLabel:e.executionLabel??null})}function FS(e){const t=e.execution?.target;return t?.provider?yr({provider:t.provider,instance:t.instance??null,model:t.model??null,modelSelection:e.execution?.modelSelection??null,executionLabel:e.executionLabel??null}):Ml(e.executionLabel)}function Ol(e,t){return t?`${e} · ${t}`:e}const Am="Catlas",Tm=[];function gs(e){return e.trim().toLowerCase()}function Dm(e){return Array.isArray(e)?e.map(t=>gs(t)).filter(t=>t.length>0):typeof e!="string"?[]:e.split(",").map(t=>gs(t.split(";",1)[0]??"")).filter(t=>t.length>0)}function Nm(){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 jm(e){const t=Dm(e);for(const a of t){const o=Tm.find(n=>n.prefixes.some(i=>a===i||a.startsWith(`${i}-`)));if(o)return o.name}return Am}function vt(){return jm(Nm())}function Ra(e){return e==null||e==="active"}const Za=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,ks=14,Mm=36,Em=20,Im=20;function Bm(e,t="floating"){const a=wl(e,t);return a==="workspace"?"product":a}function ws({name:e,tooltip:t,unreadCount:a,onClick:o,onDismissClick:n,onPointerDown:i,style:s,className:c,dragging:h}){const{t:u}=_(),g=vt();return r.jsxs("div",{className:c??"guideCatPillWrap","data-dragging":h?"true":"false",style:s,children:[r.jsxs("button",{type:"button",className:"guideCatPill",onPointerDown:i,onClick:o,"aria-label":u(l.sharedGuideCatPillOpenLabel,{guideCatName:g}),"data-tooltip":t,"data-tooltip-delay":"1000",children:[r.jsx(Wl,{className:"guideCatPillAvatar"}),a>0?r.jsx("span",{className:"guideCatPillBadge",children:a}):null]}),n&&!h?r.jsx("button",{type:"button",className:"guideCatPillDismiss",onClick:p=>{p.stopPropagation(),n()},"aria-label":u(l.sharedGuideCatPillDisableLabel),children:"✕"}):null]})}function Fm({ownerDisplayName:e,onAction:t,onDismiss:a,style:o,anchor:n="anchor-left"}){const{t:i}=_();return r.jsxs("div",{className:`guideCatPeek guideCatPeek--${n}`,style:o,children:[r.jsx("p",{className:"guideCatPeekGreeting",children:i(l.sharedGuideCatWelcomeGreeting,{ownerDisplayName:e})}),r.jsxs("div",{className:"guideCatPeekActions",children:[r.jsx(Yt,{route:"/chat/new",onAction:t,labelKey:l.sharedGuideCatWelcomeStartChat}),r.jsx(Yt,{route:"/settings/cats",onAction:t,labelKey:l.sharedGuideCatWelcomeMeetCats}),r.jsx(Yt,{route:"/lobby",onAction:t,labelKey:l.sharedGuideCatWelcomeExploreProducts})]}),a?r.jsx("button",{type:"button",className:"guideCatPeekDismiss",onClick:a,children:i(l.sharedGuideCatWelcomeHideNow)}):null]})}function Yt({route:e,onAction:t,labelKey:a,className:o="guideCatPeekAction"}){const{t:n}=_();return r.jsx("button",{type:"button",className:o,onClick:()=>t(e),children:n(a)})}function Om({name:e,tooltip:t,ownerDisplayName:a,onAction:o,onClose:n,style:i,surfaceMode:s}){const{t:c}=_(),h=vt();return r.jsxs("div",{className:s==="lobby"?"guideCatPanel guideCatPanel--lobby":"guideCatPanel guideCatPanel--product",style:i,children:[r.jsxs("div",{className:"guideCatPanelHeader","data-tooltip":t,"data-tooltip-delay":"1000",children:[r.jsx(Wl,{className:"guideCatPanelAvatar"}),r.jsx("span",{className:"guideCatPanelName",children:h}),r.jsx("button",{type:"button",className:"guideCatPanelClose",onClick:n,"aria-label":c(l.sharedCommonClose),children:"✕"})]}),r.jsxs("div",{className:"guideCatPanelBody",children:[r.jsx("p",{className:"guideCatPanelGreeting",children:c(l.sharedGuideCatPanelGreeting,{ownerDisplayName:a,guideCatName:h})}),r.jsxs("div",{className:"guideCatPanelActions",children:[r.jsx(Yt,{route:"/chat/new",onAction:o,labelKey:l.sharedGuideCatWelcomeStartChat,className:"guideCatPanelAction"}),r.jsx(Yt,{route:"/settings/cats",onAction:o,labelKey:l.sharedGuideCatWelcomeMeetCats,className:"guideCatPanelAction"}),r.jsx(Yt,{route:"/lobby",onAction:o,labelKey:l.sharedGuideCatWelcomeExploreProducts,className:"guideCatPanelAction"})]})]})]})}function Wl({className:e}){return r.jsx("img",{className:e,src:Za,alt:"","aria-hidden":"true"})}function Wm({viewState:e,guideCat:t,ownerDisplayName:a,unreadCount:o,onToggle:n,onAction:i,onCollapse:s,onDismissWelcome:c,onDismissClick:h,onPillPointerDown:u,dragging:g,pillStyle:p,peekStyle:f,panelStyle:w,surfaceMode:k,dialog:y,onDialogClose:m,rootRef:C,pillHostedExternally:v,peekAnchor:b="anchor-left"}){if(e==="hidden"||v&&e==="collapsed")return null;const S=Um(t);let T;return e==="collapsed"?T=r.jsx(ws,{name:t.name,tooltip:S,unreadCount:o,onClick:n,onDismissClick:h,onPointerDown:u,style:p,dragging:g}):e==="welcome-peek"?T=r.jsxs("div",{ref:C,children:[v?null:r.jsx(ws,{name:t.name,tooltip:S,unreadCount:0,onClick:n,onDismissClick:h,onPointerDown:u,style:p,dragging:g}),r.jsx(Fm,{ownerDisplayName:a,onAction:i,onDismiss:c,style:f,anchor:b})]}):T=r.jsx("div",{ref:C,children:r.jsx(Om,{name:t.name,tooltip:S,ownerDisplayName:a,onAction:i,onClose:s,style:w,surfaceMode:k})}),r.jsxs(r.Fragment,{children:[T,r.jsx(_t,{dialog:y,onClose:m})]})}function Um(e){const t=vt(),a=yr({provider:e.executionTarget.provider,instance:e.executionTarget.instance,model:e.executionTarget.model,modelSelection:e.modelSelection??null});return Ol(t,a)}function Hm({viewState:e,guideCat:t,ownerDisplayName:a,unreadCount:o,proactive:n,toggle:i,collapse:s,dismissWelcome:c,onDismissed:h,onPillPointerDown:u,consumePillClickSuppression:g,pillStyle:p,peekStyle:f,panelStyle:w,surfaceMode:k,dragActive:y,pillHostedExternally:m,peekAnchor:C}){const v=Ue(),b=d.useRef(null),S=tn(),{dialog:T,choose:M,handleClose:j}=Gt(),R=vt(),{t:P}=_(),A=d.useCallback(O=>{s(),v(O)},[s,v]),x=d.useCallback(async()=>{const O=await M({title:P(l.sharedGuideCatDialogDisableTitle,{guideCatName:R}),message:P(l.sharedGuideCatDialogDisableMessage,{guideCatName:R}),confirmLabel:P(l.sharedGuideCatDialogDisableConfirm),cancelLabel:P(l.sharedGuideCatDialogKeepEnabled),auxiliaryLabel:P(l.sharedGuideCatDialogDockNow),defaultAction:"auxiliary"});if(O==="auxiliary"){S.update({placement:"docked"}),s();return}if(O==="confirm")try{(await fetch("/api/platform/guide-cat",{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({status:"dismissed"})})).ok&&h()}catch{}},[M,s,R,S,h]);d.useEffect(()=>{if(e!=="open"&&e!=="welcome-peek"||e==="welcome-peek"&&n||y)return;function O(K){if(Gh(K))return;const ee=K.target;ee?.closest?.(".guideCatDockSlot")||ee?.closest?.(".guideCatPillWrap")||b.current&&!b.current.contains(K.target)&&s()}function $(K){K.key==="Escape"&&s()}return document.addEventListener("mousedown",O),document.addEventListener("keydown",$),()=>{document.removeEventListener("mousedown",O),document.removeEventListener("keydown",$)}},[e,s,n,y]);const E=d.useCallback(()=>{g()||i()},[g,i]);return r.jsx(Wm,{viewState:e,guideCat:t,ownerDisplayName:a,unreadCount:o,onToggle:E,onAction:A,onCollapse:s,onDismissWelcome:n?c:void 0,onDismissClick:x,onPillPointerDown:u,dragging:y,pillStyle:p,peekStyle:f,panelStyle:w,surfaceMode:k,dialog:T,onDialogClose:j,rootRef:b,pillHostedExternally:m,peekAnchor:C})}function Gm({guideCat:e,ownerDisplayName:t,unreadCount:a,onDismissed:o}){const n=Ne(),{projection:i,presentation:s,onFloatingPointerDown:c,consumePillClickSuppression:h,dragActive:u,panelOriginX:g,getDockSlotRect:p}=Zo();if(i.kind==="hidden")return null;const f=i.kind==="docked";if(f&&s.viewState==="collapsed")return null;const w=i.kind==="floating"?i:null,k=w?{left:`${w.x-ks}px`,top:`${w.y-ks}px`,transform:"none"}:{},y=!w&&i.kind==="docked"?_m(i.slot,p(i.slot)):null,m=w?{left:`${w.x+Mm}px`,top:`${w.y}px`,transform:"translateY(-50%)"}:y?.style??{},C=y?.anchor??"anchor-left",v={left:`${g}px`},b=Bm(n.pathname,i.kind==="docked"?"docked":"floating");return Vt.createPortal(r.jsx(Hm,{viewState:s.viewState,guideCat:e,ownerDisplayName:t,unreadCount:a,proactive:s.proactive,toggle:s.toggle,collapse:s.collapse,dismissWelcome:s.dismissWelcome,onDismissed:o,onPillPointerDown:f?void 0:c,consumePillClickSuppression:h,pillStyle:k,peekStyle:m,panelStyle:v,surfaceMode:b,dragActive:u,pillHostedExternally:f,peekAnchor:C}),document.body)}function _m(e,t){return t?e==="workspace"?{style:{left:`${t.right+Em}px`,top:`${t.bottom}px`,transform:"translateY(-100%)"},anchor:"anchor-bottom-left"}:{style:{left:`${(t.left+t.right)/2}px`,top:`${t.bottom+Im}px`,transform:"translateX(-50%)"},anchor:"anchor-top"}:null}const Km="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; connect-src 'none'; font-src 'none'; frame-src 'none'; worker-src 'none'; object-src 'none'; base-uri 'none'; form-action 'none'",qm=15e3;function zm(e=crypto){return Array.from(e.getRandomValues(new Uint8Array(16)),t=>t.toString(16).padStart(2,"0")).join("")}function $m(e,t,a){if(!/<head\s*>/i.test(e))throw new Error("The app renderer has no head element.");const o=JSON.stringify(a).replace(/</g,"\\u003c");return`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="${Km}"><script>globalThis.__CATS_APP_BOOT__=${o};
39
+ ${t}
40
+ <\/script></head><body>${e}</body></html>`}function Vm({appId:e,version:t,title:a,locale:o,onLobby:n}){const i=d.useMemo(()=>$e(Yo(o)??"en"),[o]),s=d.useRef(null),c=d.useRef(n);c.current=n;const[h,u]=d.useState(null),[g,p]=d.useState(null),[f,w]=d.useState(0),k=d.useRef(0),y=d.useRef(()=>{});return d.useEffect(()=>{const m=new AbortController;let C,v=null,b=!1,S=!1;const T=new Map;k.current=0,u(null),p(null);let M;const j=()=>{b=!0,clearTimeout(M),m.abort(),v?.close()},R=A=>{b||(p(A),j())};y.current=j;const P=A=>{if(b||v||A.source!==s.current?.contentWindow||A.origin!=="null"||A.data?.type!=="cats.app.ready"||A.data.nonce!==C)return;const x=new MessageChannel;v=x.port1,v.onmessage=async({data:E})=>{if(b||!Number.isSafeInteger(E?.id)||E.id<1)return;const O=(K,ee,F)=>{b||v?.postMessage({id:E.id,ok:K,value:ee,error:F})};if(E.method==="navigation.lobby"){O(!0),c.current();return}const $=E.method==="usage.refreshQuota";if(E.method!=="usage.snapshot"&&!$){O(!1,void 0,"Unsupported app capability.");return}if($&&(!["codex","copilot","claude","antigravity"].includes(E.params?.provider)||typeof E.params?.instance!="string"||!E.params.instance||E.params.instance.length>100)){O(!1,void 0,"Invalid quota target.");return}if(S||Date.now()-(T.get(E.method)??0)<1e3){O(!1,void 0,"Usage refresh is rate limited.");return}S=!0,T.set(E.method,Date.now());try{const K=await fetch(`/api/apps/${encodeURIComponent(e)}/usage${$?"/refresh":""}?version=${encodeURIComponent(t)}`,{signal:m.signal,cache:"no-store",...$?{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:E.params.provider,instance:E.params.instance})}:{}});if(!K.ok){if([401,403,409].includes(K.status)){O(!1,void 0,"App access was revoked."),p("appHostRendererAccessChanged"),j();return}throw new Error("Runtime usage is unavailable.")}O(!0,await K.json())}catch{O(!1,void 0,"Runtime usage is unavailable.")}finally{S=!1}},v.start(),s.current?.contentWindow?.postMessage({type:"cats.app.connect",nonce:C},"*",[x.port2]),clearTimeout(M)};return window.addEventListener("message",P),M=setTimeout(()=>R("appHostRendererTimedOut"),qm),(async()=>{try{C=zm();const A=await fetch(`/api/apps/${encodeURIComponent(e)}/renderer?version=${encodeURIComponent(t)}`,{signal:m.signal,cache:"no-store"});if([401,403,409].includes(A.status)){R("appHostRendererAccessChanged");return}if(!A.ok)throw new Error("This app has no available, verified renderer.");const x=await A.json();if(b)return;if(x.version!==t){R("appHostRendererAccessChanged");return}b||u($m(x.html,x.sdk,{nonce:C,appId:e,version:t,locale:o,theme:document.documentElement.dataset.theme??(matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")}))}catch{R("appHostRendererUnavailable")}})(),()=>{j(),window.removeEventListener("message",P)}},[e,t,o,f]),g?r.jsxs("div",{children:[r.jsx("p",{role:"alert",children:i(g)}),r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>w(m=>m+1),children:i("appHostRendererRetry")})]}):h?r.jsx("iframe",{ref:s,title:a,sandbox:"allow-scripts",referrerPolicy:"no-referrer",srcDoc:h,style:{width:"100%",height:"calc(100dvh - 160px)",minHeight:520,border:0,borderRadius:16},onLoad:()=>{++k.current>1&&(y.current(),p("appHostRendererNavigatedAway"))}},`${e}:${t}:${o}:${f}`):r.jsx("p",{role:"status",children:i("appLoadingWithSurface",{surface:a})})}function Ym(e,t){return e===t||e.startsWith(`${t}/`)}function Qm({envelope:e}){const{t,locale:a}=_(),o=Ue(),n=Ne(),{appId:i=""}=ur(),s=e.installedApps.find(p=>p.id===i),c=s?.lobbyEntries.find(p=>Ym(n.pathname,p.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:()=>o("/lobby"),children:t("appHostBackToLobby")})]})});const h=s.enabled&&s.installState==="enabled",u=c?.title??s.displayName,g=c?.subtitle??t(h?"appHostSubtitleRendererPending":"appHostSubtitleDisabled");return r.jsx("div",{className:"screen screenCentered appHostScreen",children:r.jsxs("section",{className:"appHostPanel",style:h?{width:"100%",maxWidth:1440}:void 0,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:()=>o("/lobby"),children:t("appHostBackToLobby")})]}),h?r.jsx(Vm,{appId:s.id,version:s.version,title:u,locale:a,onLobby:()=>o("/lobby")}):r.jsx("p",{className:"appHostSubtext",children:g}),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 Jm(e){return e.roomMode==="direct_message"?"direct_message":"chat_channel"}function sn(e){const t=Jm({roomMode:e.roomMode,participants:e.participants});return e.channelKind==="direct_message"||t==="direct_message"?"direct_message":"chat_channel"}function Xm(e){return e.assignedCats&&e.assignedCats.length>0?e.assignedCats:e.catAssignments??[]}function Zm(e){return sn({channelKind:e.channelKind,roomMode:e.roomRouting?.mode==="direct_message"?"direct_message":"chat_channel",participants:Xm(e)})}function eg(e){return Zm(e)==="direct_message"}function fs(e){return sn({channelKind:e.channelKind,roomMode:e.roomMode==="direct_message"?"direct_message":"chat_channel",participants:[]})==="direct_message"}const tg=["chat","code","work"];function Ul(){return{chat:!1,code:!1,work:!1}}function ag(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function vr(e){const t=Ul(),a=ag(e);return a?tg.reduce((o,n)=>({...o,[n]:a[n]===!0}),t):t}function ln(e,t){return vr(e)[t]===!0}const rg=["inline_stack","compare_cards","focus_rail","adaptive"],Hl=["chat","work","code"];function er(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Ya(){return{showVerboseMessages:!1,showLiveProgressDetails:!1,concurrentPresentationMode:"inline_stack"}}function og(){return{chat:Ya(),work:Ya(),code:Ya()}}function Gl(e){return typeof e=="string"&&rg.includes(e)?e:"inline_stack"}function ng(e){const t=Ya(),a=er(e);return{showVerboseMessages:a?.showVerboseMessages===!0,showLiveProgressDetails:a?.showLiveProgressDetails===!0,concurrentPresentationMode:Gl(a?.concurrentPresentationMode??t.concurrentPresentationMode)}}function cn(e){const t=og(),a=er(e);return Hl.reduce((o,n)=>(o[n]=ng(a?.[n]),o),t)}function sg(e,t){const a=cn(e),o=er(t);if(!o)return a;for(const n of Hl){const i=er(o[n]);i&&(typeof i.showVerboseMessages=="boolean"&&(a[n].showVerboseMessages=i.showVerboseMessages),typeof i.showLiveProgressDetails=="boolean"&&(a[n].showLiveProgressDetails=i.showLiveProgressDetails),i.concurrentPresentationMode!==void 0&&(a[n].concurrentPresentationMode=Gl(i.concurrentPresentationMode)))}return a}function ig(e,t){return cn(e)[t]}const lg=["chat","work","code"];function Rt(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function cg(e){return typeof e=="string"&&lg.includes(e)}function _l(){return{bySurface:{},chatDirectLaneByCatId:{}}}function Kl(e){const t=_l();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:{},i={};for(const[c,h]of Object.entries(o)){const u=cg(c)?c:null,g=Rt(typeof h=="string"?h:null);u&&g&&(i[u]=g)}const s={};for(const[c,h]of Object.entries(n)){const u=Rt(c),g=Rt(typeof h=="string"?h:null);u&&g&&(s[u]=g)}return{bySurface:i,chatDirectLaneByCatId:s}}function OS(e,t){const a=Kl(e),o=Rt(t.directLaneCatId);return t.surface==="chat"&&o?a.chatDirectLaneByCatId[o]??null:a.bySurface[t.surface]??null}function WS(e,t,a){const o=Kl(e),n=Rt(a),i=Rt(t.directLaneCatId);if(t.surface==="chat"&&i){const c={...o.chatDirectLaneByCatId};return n?c[i]=n:delete c[i],{bySurface:{...o.bySurface},chatDirectLaneByCatId:c}}const s={...o.bySurface};return n?s[t.surface]=n:delete s[t.surface],{bySurface:s,chatDirectLaneByCatId:{...o.chatDirectLaneByCatId}}}async function US(e){const t=Rt(e.requestedPath),a=Rt(e.rememberedPath),o=t??a,n=await e.browse(o??void 0);return!n.error||!a||t?n:e.browse(void 0)}function Le(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function fe(e,t=""){return typeof e=="string"?e:t}function ge(e){return typeof e=="string"&&e.trim().length>0?e:null}function Ur(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Hr(e,t){return typeof e=="boolean"?e:t}function dg(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function ug(e){const t=Le(e.desktop)??{};e.desktop=t;const a=Le(t.mobilePairing)??{};t.mobilePairing={enabled:Hr(a.enabled,!1),bindHost:fe(a.bindHost,"127.0.0.1"),bindPort:dg(a.bindPort,0),bindReachability:a.bindReachability==="lan"||a.bindReachability==="all_interfaces"||a.bindReachability==="other_interface"?a.bindReachability:"loopback",canReachFromLan:Hr(a.canReachFromLan,!1),selectedLanIp:ge(a.selectedLanIp),selectedLanUrl:ge(a.selectedLanUrl),diagnosticManifestUrl:ge(a.diagnosticManifestUrl),noLanCandidateReason:a.noLanCandidateReason==="loopback_bound"||a.noLanCandidateReason==="no_lan_candidate"||a.noLanCandidateReason==="bind_host_not_lan_candidate"?a.noLanCandidateReason:Hr(a.enabled,!1)?null:"feature_disabled",bindOverrideEnv:ge(a.bindOverrideEnv),pairingUrlStatus:a.pairingUrlStatus==="ready"?"ready":"phase1_pending",pairingUrl:ge(a.pairingUrl)}}function bs(e,t){const a=Array.isArray(e.catAssignments)?e.catAssignments:[],o=Array.isArray(e.assignedCats)?e.assignedCats:[],n=(a.length>0?a:o).map(i=>{const s=Le(i)??{};return{catId:fe(s.catId),status:fe(s.status,"active")==="removed"?"removed":"active"}});e.channelKind=sn({channelKind:e.channelKind==="chat_channel"||e.channelKind==="direct_message"||e.channelKind==="chat_channel"?e.channelKind:null,roomMode:t,participants:n})}function ql(e){const t=structuredClone(e);ug(t);const a=Le(t.chat)??{};t.chat=a;const o=Le(a.globalOrchestrator);o&&!Le(o.executionTarget)&&(o.executionTarget={provider:fe(o.provider,"claude"),instance:ge(o.instance),model:ge(o.model)});const n=Le(o?.executionTarget);n&&n.instance===void 0&&(n.instance=ge(o?.instance)),o&&!Le(o.memory)&&(o.memory={summary:null,facts:[],openLoops:[],updatedAt:null});const i=Le(a.selectedChannel);if(i&&!Le(i.orchestratorLease)){const h=Le(o?.executionTarget);i.orchestratorLease={sessionId:null,status:"not_started",cwd:null,lastError:null,provider:ge(h?.provider)??"claude",instance:ge(h?.instance),model:ge(h?.model),startedAt:null,lastUsedAt:null}}Array.isArray(a.cats)||(a.cats=[]);const s=a.cats.map(h=>{const u=Le(h)??{};Le(u.defaultExecutionTarget)||(u.defaultExecutionTarget={provider:fe(u.provider,"claude"),instance:ge(u.instance),model:ge(u.model)});const g=Le(u.defaultExecutionTarget);return g&&g.instance===void 0&&(g.instance=ge(u.instance)),Le(u.memory)||(u.memory={summary:null,facts:[],openLoops:[],updatedAt:null}),Array.isArray(u.roles)||(u.roles=Ur(u.roles)),u}),c=new Map(s.map(h=>[fe(h.id),h]));if(i){const h=Le(i.roomRouting);bs(i,fe(h?.mode,"chat_channel")==="direct_message"?"direct_message":"chat_channel"),Array.isArray(i.catAssignments)||(i.catAssignments=[]);const u=Array.isArray(i.catAssignments)?i.catAssignments:[];Array.isArray(i.participantAssignments)||(i.participantAssignments=u.map(p=>{const f=Le(p)??{},w=c.get(fe(f.catId))??{};return{participantId:fe(f.participantId,fe(f.catId)),sourceKind:fe(f.sourceKind,"cat")==="cat"?"cat":"adhoc",sourceRefId:ge(f.sourceRefId)??ge(f.catId),name:fe(f.name,fe(w.name,"Participant")),status:fe(f.status,"active"),roles:Array.isArray(f.roles)?f.roles:[],roleHint:ge(f.roleHint),joinedAt:fe(f.joinedAt),leftAt:ge(f.leftAt),execution:f.execution}})),(u.length>0||!Array.isArray(i.assignedCats))&&(i.assignedCats=u.map(p=>{const f=Le(p)??{},w=c.get(fe(f.catId))??{};return{participantId:fe(f.participantId,fe(f.catId)),sourceKind:"cat",sourceRefId:fe(f.sourceRefId,fe(f.catId)),catId:fe(f.catId),name:fe(w.name,"Cat"),roles:Array.isArray(f.roles)?f.roles:Ur(w.roles),roleHint:ge(f.roleHint),skillProfile:ge(w.skillProfile),mcpProfile:ge(w.mcpProfile),status:fe(f.status,"active"),joinedAt:fe(f.joinedAt),leftAt:ge(f.leftAt),avatarColor:ge(w.avatarColor),avatarUrl:ge(w.avatarUrl),execution:f.execution,memory:Le(w.memory)??{summary:null,facts:[],openLoops:[],updatedAt:null}}}));const g=Array.isArray(i.participantAssignments)?i.participantAssignments:[];(g.length>0||!Array.isArray(i.assignedParticipants))&&(i.assignedParticipants=g.map(p=>{const f=Le(p)??{},w=ge(f.sourceRefId),k=w?c.get(w)??null:null;return{participantId:fe(f.participantId),sourceKind:fe(f.sourceKind,"adhoc")==="cat"?"cat":"adhoc",sourceRefId:w,name:fe(f.name,fe(k?.name,"Participant")),roles:Array.isArray(f.roles)?f.roles:Ur(k?.roles),roleHint:ge(f.roleHint),skillProfile:ge(k?.skillProfile),mcpProfile:ge(k?.mcpProfile),status:fe(f.status,"active"),joinedAt:fe(f.joinedAt),leftAt:ge(f.leftAt),avatarColor:ge(k?.avatarColor),avatarUrl:ge(k?.avatarUrl),execution:f.execution,memory:Le(k?.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=cn(a.conversationBehavior),Le(a.advancedDraftControls)||(a.advancedDraftControls=Ul()),Le(a.folderBrowsePreferences)||(a.folderBrowsePreferences=_l()),Le(a.newChatDefaults)||(a.newChatDefaults={provider:fe(n?.provider,"claude"),instance:ge(n?.instance),model:ge(n?.model),modelSelection:null}),Array.isArray(a.channels)&&(a.channels=a.channels.map(h=>{const u=Le(h)??{};return bs(u,fe(u.roomMode,"chat_channel")==="direct_message"?"direct_message":"chat_channel"),u.catCount===void 0&&(u.catCount=0),u.activeCatCount===void 0&&(u.activeCatCount=0),u})),Array.isArray(a.parallelChatGroups)||(a.parallelChatGroups=[]),t}async function dn(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 ye(e,t){if(!e.ok)throw new Error(await dn(e,t));return await e.json()}function zl(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function xt(e){if(!e)return;const t=Object.entries(e).filter(([,a])=>zl(a));if(t.length!==0)return Object.fromEntries(t)}function pg(e,t,a){if(!e||!a)return xt(a);const o=e.controls.filter(s=>!s.applicableEntryIds||s.applicableEntryIds.length===0||s.applicableEntryIds.includes(t)),n=new Map(o.map(s=>[s.key,s])),i=Object.entries(a).filter(([s,c])=>{const h=n.get(s);return!h||!zl(c)?!1:h.kind!=="enum"||typeof c!="string"||!h.values?.length?!0:h.values.some(u=>u.value===c&&(!u.applicableEntryIds||u.applicableEntryIds.length===0||u.applicableEntryIds.includes(t)))});return i.length>0?Object.fromEntries(i):void 0}function wo(e){const t=an(e.provider,e.model)??"";return t?(e.provider==="claude"&&e.backend==="cli"&&e.catalog.models.some(a=>a.id==="opus"),t):null}function hg(e){const t=e.advancedCatalog?.backend??e.catalog.backend,a=wo({provider:e.target.provider,backend:t,catalog:e.catalog,model:e.target.model}),o=tr(e.target.modelSelection);if(o?.entryId){const n=wo({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 mg(e,t,a){return a?e.presets.some(o=>o.id===a&&(!o.applicableEntryIds||o.applicableEntryIds.length===0||o.applicableEntryIds.includes(t))):!1}function ys(e,t,a){return!e||!a||!mg(e,t,a)?null:e.presets.find(o=>o.id===a)??null}function tr(e){return e?{...e.entryId?{entryId:e.entryId}:{},entryMode:e.entryMode,...e.presetId?{presetId:e.presetId}:{},...xt(e.controls)?{controls:xt(e.controls)}:{}}:null}function gg(e){return e?{entryId:e.entryId,model:e.model,entryMode:e.entryMode,...e.presetId?{presetId:e.presetId}:{},...xt(e.controls)?{controls:xt(e.controls)}:{},...e.supportTier?{supportTier:e.supportTier}:{},warnings:[...e.warnings]}:null}function $l(e,t={}){const a=e?.trim();if(!a)return null;const o=xt(t.controls);return{entryId:a,entryMode:"explicit",...t.presetId?.trim()?{presetId:t.presetId.trim()}:{},...o?{controls:o}:{}}}function kg(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const a=xt(e.controls),o=xt(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 Cr(e,t){const a=t.trim(),o=e.instances.filter(i=>jt(i)===a||i.id===a);if(a&&o.length===1)return jt(o[0]);const n=e.instances.find(i=>i.default)??e.instances.find(i=>(i.id===e.defaultInstance||jt(i)===e.defaultInstance)&&(!e.defaultBackend||i.backend===e.defaultBackend))??e.instances[0];return n?jt(n):""}function Vl(e){const t=wo({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 wg(e){const t=hg({target:e.target,catalog:e.catalog,advancedCatalog:e.advancedCatalog}),a=(e.catalog.instance??t.instance)||"",o=t.model?.trim()||"",n=e.catalog.models.some(b=>b.id===t.model),i=Vl({catalog:e.catalog,model:t.model,modelSelection:t.modelSelection}),s=e.preserveCurrentModel&&n?t.model:e.preserveCurrentModel&&i?o:Dl(e.catalog);if(i&&e.preserveCurrentModel)return{provider:t.provider,instance:a,model:o,modelSelection:null,modelResolution:null};const c=e.advancedCatalog??null,u=e.preserveCurrentSelection??e.preserveCurrentModel?tr(t.modelSelection):tr(c?.defaultSelection)??null,g=u?.entryId?.trim(),p=g&&e.catalog.models.some(b=>b.id===g)?g:s,f=ys(c,p,u?.presetId),w=f?.preferredEntryId?.trim(),k=u?.entryMode==="auto"&&w&&e.catalog.models.some(b=>b.id===w)?w:p,y=ys(c,k,f?.id),m=pg(c,k,u?.controls),C=u?{entryId:k,entryMode:u.entryMode,...y?{presetId:y.id}:{},...m?{controls:m}:{}}:$l(k,{presetId:void 0,controls:m}),v=c?.warnings.length?[...c.warnings]:[];return{provider:t.provider,instance:a,model:k,modelSelection:C,modelResolution:C?{entryId:k,model:k,entryMode:C.entryMode,...y?{presetId:y.id}:{},...m?{controls:m}:{},...c?{supportTier:c.support.tier}:{},warnings:v}:null}}const Yl=new Set;class Jt extends Error{}function Ql(e){Yl.add(e)}function un(){for(const e of Yl)e()}const fg=15e3,bg="provider_catalog.model.load_failed",yg="provider_catalog.model.incomplete_response",vg="provider_catalog.advanced.load_failed",Cg="provider_catalog.advanced.incomplete_response",ar={entries:new Map,inflight:new Map},rr={entries:new Map,inflight:new Map};function Sg(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ba(e){const t=e?.trim();return t||null}function pn(e,t){return`${e.trim()}\0${Ba(t)??""}`}function Jl(e){const t=new URLSearchParams,a=Ba(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 Xl(e,t){try{const a=await e.json();if(typeof a.error?.message=="string")return a.error.message}catch{}return t}async function Zl(e,t){const a=await e.json();if(!Sg(a)?.catalog)throw new Error(t);return a}async function ec(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=>{if(e.cache.inflight.get(e.cacheKey)!==a)throw new Error("Provider selection changed during catalog loading.");return e.accepted?.(o),e.cache.entries.set(e.cacheKey,{value:o,freshUntilMs:Date.now()+fg}),o}).catch(o=>{throw o instanceof Jt&&e.cache.inflight.get(e.cacheKey)===a&&un(),o}).finally(()=>{e.cache.inflight.get(e.cacheKey)===a&&e.cache.inflight.delete(e.cacheKey)});return e.cache.inflight.set(e.cacheKey,a),a}function hn(){ar.entries.clear(),ar.inflight.clear(),rr.entries.clear(),rr.inflight.clear()}Ql(hn);function tc(e,t,a){const o=t.trim();if(!o)return null;const n=pn(o,Ba(a));return e.entries.get(n)?.value??null}function Lg(e){return tc(ar,e.provider,e.instance)}function Pg(e){return tc(rr,e.provider,e.instance)}async function mn(e){const t=e.provider.trim(),a=Ba(e.instance),o=pn(t,a);return ec({cache:ar,cacheKey:o,force:e.force,accepted:n=>km(t,n.models),load:async()=>{const n=await(e.fetchImpl??fetch)(Jl({provider:t,instance:a}),{signal:AbortSignal.timeout(3e4)});if(!n.ok)throw n.status===401||n.status===403?new Jt("Provider session is unavailable."):new Error(await Xl(n,bg));return mm(await Zl(n,yg),t)}})}async function gn(e){const t=e.provider.trim(),a=Ba(e.instance),o=pn(t,a);return ec({cache:rr,cacheKey:o,force:e.force,load:async()=>{const n=await(e.fetchImpl??fetch)(Jl({provider:t,instance:a,advanced:!0}),{signal:AbortSignal.timeout(3e4)});if(!n.ok)throw n.status===401||n.status===403?new Jt("Provider session is unavailable."):new Error(await Xl(n,vg));return gm(await Zl(n,Cg),t)}})}function Rg(e){return Promise.allSettled([mn(e),gn(e)]).then(()=>{})}function xg(e,t={}){return Promise.allSettled(e.providers.map(a=>{const o=Cr(a,"")||null;return Rg({provider:a.id,instance:o,fetchImpl:t.fetchImpl})})).then(()=>{})}const fo="provider_registry.load_failed";function or(e){return(e.warnings??[]).some(t=>t.startsWith("Using cached provider targets ")||t.startsWith("Using cached model catalog ")||t.startsWith("Using last saved provider targets ")||t.startsWith("Using last saved model catalog "))}const Xe={value:null,inflight:null},nr=new Set;function Ag(e){return nr.add(e),()=>{nr.delete(e)}}async function Tg(e,t){try{const a=await e.json();if(typeof a.error?.message=="string")return a.error.message}catch{}return t}function Dg(e){const t=Array.isArray(e.providers)?e.providers:[];return{state:e.state??(t.length>0?"ready":"no_usable_targets"),revision:e.revision,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:sm(o.eventCapabilities)})):[],modelsPath:a.modelsPath})),recovery:e.recovery,warnings:Array.isArray(e.warnings)?e.warnings:[]}}function bo(e){return{state:"runtime_unreachable",providers:[],recovery:{retryable:!0},warnings:[e]}}function Ng(e){const t=Xe.value;(e.revision!==void 0||e.state!=="runtime_unreachable")&&t?.revision!==e.revision&&hn(),e=yo(t,e),Xe.value=e;for(const a of nr)a(e);return e}function yo(e,t){return t.state==="runtime_unreachable"&&e&&(t.revision===void 0||t.revision===e.revision)?{...t,revision:e.revision,providers:e.providers}:t}async function jg(e,t={}){try{const a=t.force?"/api/providers?force=1":"/api/providers",o=await e(a,{signal:AbortSignal.timeout(3e4)});if(!o.ok){if(o.status===401||o.status===403)throw new Jt("Provider session is unavailable.");return bo(await Tg(o,fo))}const n=await o.json();return Dg(n)}catch(a){if(a instanceof Jt)throw a;return bo(a instanceof Error?a.message:fo)}}Ql(()=>{Xe.value=null,Xe.inflight=null;for(const e of nr)e(bo(fo))});function vs(){return Xe.value}async function Sr(e={}){if(!e.force&&Xe.inflight)return Xe.inflight;const t=jg(e.fetchImpl??fetch,{force:e.force}).then(a=>{if(Xe.inflight!==t)throw new Error("Provider selection request was superseded.");return Ng(a)}).catch(a=>{throw a instanceof Jt&&Xe.inflight===t&&un(),a}).finally(()=>{Xe.inflight===t&&(Xe.inflight=null)});return Xe.inflight=t,t}function Mg(e={}){return Sr(e).then(()=>{})}async function Et(e){return Sr(e)}async function It(e,t){return mn({provider:e,instance:t})}async function Bt(e,t){return gn({provider:e,instance:t})}const vo="provider_catalog.refresh_failed_status:";function Cs(e){return`${vo}${e}`}function Eg(e){if(!e.startsWith(vo))return null;const t=Number(e.slice(vo.length));return Number.isInteger(t)?t:null}async function Ig(){const e=await fetch("/api/providers/models/refresh",{method:"POST",headers:{Accept:"application/json"}});if(!e.ok){let a=Cs(e.status);try{const o=await e.json();o.error?.code==="provider_catalog_refresh_failed"?a=Cs(e.status):typeof o.error?.message=="string"&&(a=o.error.message)}catch{}throw new Error(a)}const t=await e.json();return hn(),t}async function ct(e){const t=await fetch("/api/app-shell",{headers:{Accept:"application/json"},signal:e});return ql(await ye(t,`cats app shell returned ${t.status}`))}async function Tt(e,t,a){if(!e.ok)throw new Error(await dn(e,t));try{return await ct(a)}catch{return ct()}}async function HS(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 Tt(a,`cats chat selection returned ${a.status}`,t)}async function GS(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});await ye(a,`cats chat selection returned ${a.status}`)}async function kn(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 Tt(o,`cats conversation behavior update returned ${o.status}`,a)}async function wn(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 Tt(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 Tt(a,`cats new chat defaults update returned ${a.status}`,t)}async function KS(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 ye(a,`cats folder browse preference update returned ${a.status}`)}async function qS(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 Tt(o,`cats channel update returned ${o.status}`,a)}async function zS(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 Tt(a,`cats channel continuity reset returned ${a.status}`,t)}async function Bg(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 Tt(a,`cats orchestrator update returned ${a.status}`,t)}async function ut(e,t,a){return Tt(e,t,a)}const Fg=6,Og=12,Wg=2;function Ug(){return{activeTurn:null,turnHistory:[],eventHistory:[],lastCheckpointEvent:null,lastOutcomeEvent:null}}function Hg(e={}){return{mode:e.mode??"chat_channel",defaultRecipientId:e.defaultRecipientId??null,maxContinuations:Fg,maxDispatchesPerTurn:Og,maxTargetVisitsPerTurn:Wg,lastOutcome:null,lastCheckpoint:null,lastWakeRequest:null,wakeHistory:[],workflow:Ug()}}function Gg(e){return e?structuredClone(e):Hg()}function Ss(e){switch(e){case"ready":return"awake";case"initializing":return"waking_up";case"error":return"error";default:return"sleeping"}}function ac(e){return e?{...e,roomRouting:Gg(e.roomRouting)}:null}function $S(e){if(!e)return null;if(eg(e)&&e.roomRouting.defaultRecipientId){const t=e.assignedCats.find(a=>a.status==="active"&&a.catId===e.roomRouting.defaultRecipientId);return t?Ss(t?.execution.lease.status):null}return Ss(e.orchestratorLease.status)}const Kt="/api/parallel-chat-groups";function _g(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 i=n,s=typeof i.sessionId=="string"?i.sessionId.trim():"";return s?[{sessionId:s,reason:typeof i.reason=="string"&&i.reason.trim()?i.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 rc(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 Kg(e,t){const a=await fetch(`/api/cats/${encodeURIComponent(e)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:t});return ut(a,`cats cat deletion returned ${a.status}`,t)}async function VS(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 ye(a,`cats chat creation returned ${a.status}`),n=ac(o);if(!n)throw new Error("Created channel payload was invalid.");return n}async function YS(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 ut(o,`cats chat rename returned ${o.status}`,a)}async function QS(e,t){const a=await fetch(`/api/channels/${e}`,{method:"DELETE",headers:{Accept:"application/json"},signal:t});if(!a.ok)throw new Error(await dn(a,`cats chat deletion returned ${a.status}`));const o=await a.json();let n;try{n=await ct(t)}catch{n=await ct()}return{payload:n,runtimeCleanup:_g(o.runtimeCleanup)}}async function qg(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 ut(a,`cats chat cat creation returned ${a.status}`,t)}async function JS(e,t,a){const{catId:o,...n}=t,i=await fetch(`/api/channels/${e}/cats/${o}`,{method:"PUT",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(n),signal:a});return ut(i,`cats channel cat assignment returned ${i.status}`,a)}async function XS(e,t,a){const o=await fetch(`/api/channels/${e}/cats/${t}`,{method:"DELETE",headers:{Accept:"application/json"},signal:a});return ut(o,`cats channel cat removal returned ${o.status}`,a)}async function ZS(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 ut(n,`cats channel participant update returned ${n.status}`,o)}async function eL(e,t){const a=await fetch(`/api/channels/${e}/activations`,{method:"POST",headers:{Accept:"application/json"},signal:t}),{activation:o}=await ye(a,`cats channel activation returned ${a.status}`);let n;try{n=await ct(t)}catch{n=await ct()}return{appShell:n,results:o.results}}async function tL(e,t,a){const o=await Promise.all(t.map(async s=>{const c=await s.arrayBuffer(),h=new Uint8Array(c);return{name:s.name,data:rc(h)}})),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 ye(n,`attachment upload returned ${n.status}`)).attachments}async function aL(e){return Promise.all(e.map(async t=>{const a=await t.arrayBuffer(),o=new Uint8Array(a);return{name:t.name,data:rc(o)}}))}async function rL(e,t){const a=await fetch(Kt,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(e),signal:t});return ye(a,`parallel chat creation returned ${a.status}`)}async function oL(e,t,a){const o=await fetch(`${Kt}/${encodeURIComponent(e)}/messages`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return ye(o,`parallel chat dispatch returned ${o.status}`)}async function nL(e,t,a){const o=await fetch(`${Kt}/${encodeURIComponent(e)}/relay`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return ye(o,`parallel chat relay returned ${o.status}`)}async function sL(e,t,a){const o=await fetch(`${Kt}/${encodeURIComponent(e)}/cancel`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return ye(o,`parallel chat cancel returned ${o.status}`)}async function iL(e,t,a){const o=await fetch(`${Kt}/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return ut(o,`parallel chat rename returned ${o.status}`,a)}async function lL(e,t){const a=await fetch(`${Kt}/${encodeURIComponent(e)}/ungroup`,{method:"POST",headers:{Accept:"application/json"},signal:t});return ut(a,`parallel chat ungroup returned ${a.status}`,t)}async function cL(e,t){const a=await fetch(`${Kt}/${encodeURIComponent(e)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:t});return ut(a,`parallel chat deletion returned ${a.status}`,t)}async function dL(e,t){const a=await fetch(`/api/channels/${e}/cancel`,{method:"POST",headers:{Accept:"application/json"},signal:t});return ye(a,`cats channel cancel returned ${a.status}`)}async function uL(e,t,a){const o=await fetch(`/api/channels/${encodeURIComponent(e)}/messages/${encodeURIComponent(t)}/retry`,{method:"POST",headers:{Accept:"application/json"},signal:a});return ye(o,`channel message retry returned ${o.status}`)}async function pL(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 ye(o,`cats channel messaging returned ${o.status}`)}async function Ie(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 ut(o,`cat profile update returned ${o.status}`,a)}function zg(e){async function t(a){const o=await fetch("/api/setup/reset",{method:"POST",headers:{Accept:"application/json"},signal:a});return e(await ye(o,`setup reset returned ${o.status}`))}return{resetSetup:t}}const $g=zg(ql),Vg=$g.resetSetup;function Yg(e){async function t(n,i){const s=await fetch("/api/bot-bindings",{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({platform:"telegram",...n}),signal:i});return e.refetchAfterMutation(s,`bot binding create returned ${s.status}`,i)}async function a(n,i){const s=await fetch(`/api/bot-bindings/${encodeURIComponent(n)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:i});return e.refetchAfterMutation(s,`bot binding delete returned ${s.status}`,i)}async function o(n,i,s){const c=await fetch(`/api/bot-bindings/${n}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i),signal:s});return ye(c,`update bot binding returned ${c.status}`)}return{createBotBindingApi:t,deleteBotBindingApi:a,updateBotBindingApi:o}}async function Ls(e){const t=await fetch("/api/transports/telegram",{headers:{Accept:"application/json"},signal:e});return(await ye(t,`telegram transport status returned ${t.status}`)).telegram}async function Ps(e){const t=await fetch("/api/transports/telegram/diagnostics",{headers:{Accept:"application/json"},signal:e});return(await ye(t,`telegram transport diagnostics returned ${t.status}`)).telegram}const oc=Yg({refetchAfterMutation:ut}),Qg=oc.createBotBindingApi,Jg=oc.deleteBotBindingApi;async function Xg(e,t){const a=await fetch(`/api/cats/${encodeURIComponent(e)}/memory`,{headers:{Accept:"application/json"},signal:t});return(await ye(a,`cat memory list returned ${a.status}`)).records??[]}async function Zg(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 ye(o,`cat memory create returned ${o.status}`)).memory}async function ek(e,t,a){const o=await fetch(`/api/cats/${encodeURIComponent(e)}/memory/${encodeURIComponent(t)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:a});await ye(o,`cat memory delete returned ${o.status}`)}const hL="current",mL="full",nc={read_only:["default"],read_write:["skip","whitelist"]};function tk(e,t){return nc[e].includes(t)}function sc(e){return nc[e][0]}function ak(e){return typeof e=="string"&&e.trim().length>0}function Co(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 fn(){const e="read_write";return{workspaceKind:"sandbox",workspaceAccess:e,permissionMode:sc(e)}}function bn(e){const{workspaceKind:t,workspaceAccess:a}=e,o=tk(a,e.permissionMode)?e.permissionMode:sc(a);return a==="read_only"?{workspaceKind:t,workspaceAccess:a,permissionMode:o}:{workspaceKind:t,workspaceAccess:a,permissionMode:o}}function gL(){return bn(fn())}function rk(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 kL(e){return bn(Co(fn(),e))}function ok(e){const t=Co(fn(),{workspaceKind:ak(e.repoPath)?"source":void 0});return bn(Co(t,e.policy))}function wL(e){return e==="worktree"?"worktree":"current"}function fL(e){return e.hasCwd?e.isRepo&&e.workspaceMode==="worktree"?"worktree":"source":"sandbox"}function bL(e){return e==="read_only"?"read_only":"full"}function yL(e){return e==="read_only"?{workspaceAccess:"read_only",permissionMode:"default"}:{workspaceAccess:"read_write",permissionMode:"skip"}}function yn(e){const t=e?.trim();return t==="Chat"||t==="Orchestrator"}function Rs(e){const t=e?.trim();return!t||yn(t)?null:t}function nk(e){return Rs(e.displayName)??Rs(e.executionLabel)??(e.provider?nn(e.provider,e.instance??null,null):null)}const dt="chat-memory",ic="work-memory",xa=new Map;function vL(e,t){const a=xa.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}),xa.set(e,t)}function sk(e,t){const a=xa.get(e)??null;a&&(t&&a!==t||xa.delete(e))}function CL(){return[...xa.entries()].map(([e,t])=>({channelId:e,optimisticMessageId:t}))}function Ae(e){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}const Fa=$e("en");function xs(e){return At(e)??e.trim()}function As(){return{name:"",provider:"claude",instance:"",model:"",modelSelection:null,makeBoss:!1,products:wr(),skillProfile:"chat-default",mcpProfile:dt}}function ik(e){return Jo(e.products,"chat",{fallback:wr()})}function lc(e){return xm(e)}function lk(e){return Array.isArray(e)?new Set(e.filter(t=>!!t)):e?new Set([e]):new Set}function ck(e,t,a={}){const o=lk(a.bossCatIds);if(a.archivedLast){const c=e.status==="archived"?1:0,h=t.status==="archived"?1:0;if(c!==h)return c-h}const n=o.has(e.id)?0:1,i=o.has(t.id)?0:1;if(n!==i)return n-i;const s=e.createdAt.localeCompare(t.createdAt);return s!==0?s:e.id.localeCompare(t.id)}function Xt(e,t={}){return[...e].sort((a,o)=>ck(a,o,t))}function dk(e){const t=e.metadata?.executionLabelSnapshot;return typeof t=="string"&&t.trim()?t.trim():null}function uk(e){const t=e?.trim();return!t||yn(t)?null:t}function SL(e,t,a=Fa){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,i=e.senderName?.trim()??"",s=uk(e.senderName),c=dk(e),h=yn(i);if(o==="cat"&&n){const g=t.find(p=>p.id===n)??null;return g?{kind:"cat",label:g.name,cat:g}:{kind:"deleted_cat",label:a(l.sharedTranscriptDeletedCat),cat:null}}const u=s&&s!=="Orchestrator"?t.find(g=>g.name===s)??null:null;return u?{kind:"cat",label:u.name,cat:u}:(c||e.executionProvider)&&(o==="orchestrator"||h)?{kind:"provider",label:nk({displayName:e.senderName,executionLabel:c,provider:e.executionProvider,instance:e.executionInstance}),cat:null}:s?{kind:"name",label:s,cat:null}:{kind:"none",label:null,cat:null}}function pk(e,t,a=Fa){const o=e.replace(/\s+/g," ").trim();return o?o.slice(0,48):t>0?a(l.chatNewChatDraftGeneratedTitleWithIndex,{index:t+1}):a(l.chatNewChatDraftGeneratedTitle)}function hk(e){return e.replace(/\s+/g," ").trim().slice(0,120)}function LL(e,t){return t.length===0?e:`[Attached files in working directory:]
41
+ ${t.map(o=>`- ${o.relativePath}`).join(`
42
+ `)}
43
+
44
+ ${e}`}function PL(e){const{body:t,existingCount:a,originSurface:o,entryKind:n,repoPath:i,draftSessionPolicy:s,defaultRecipientCatId:c,participantCatIds:h=[],temporaryParticipants:u=[],draftExecutionTarget:g,assistantResponseLanguage:p,t:f}=e,w=c?.trim()||null,k=h.filter(b=>b!==w),y=n??(w||k.length>0?"group":"default"),m=w??k[0]??null,C=ok({repoPath:i,policy:s}),v={title:pk(t,a,f),topic:hk(t),originSurface:o,entryKind:y,skipBossCatGreeting:!0,repoPath:i??void 0,responseLanguage:p,...rk(C),temporaryParticipants:u.length>0?u.map(b=>({participantId:b.participantId,name:b.name,provider:xs(b.provider),instance:b.instance??void 0,model:b.model??void 0,modelSelection:b.modelSelection??null,roleHint:b.roleHint??void 0})):void 0};return y==="direct"&&m?{...v,roomMode:"direct_message",defaultRecipientId:m,participantCatIds:[m,...k.filter(b=>b!==m)]}:w?{...v,defaultRecipientId:w,participantCatIds:[w,...k]}:k.length>0?{...v,participantCatIds:k}:{...v,pendingProvider:g?xs(g.provider):void 0,pendingModel:g?.model??void 0,pendingInstance:g?.instance??void 0,pendingModelSelection:g?.modelSelection??void 0}}function RL(e){switch(e){case"user":return"transcriptMessage transcriptMessageUser";case"orchestrator":return"transcriptMessage transcriptMessageOrchestrator";case"agent":return"transcriptMessage transcriptMessageAgent";default:return"transcriptMessage transcriptMessageSystem"}}function mk(e,t=Fa){return e.trim()==="Untitled chat"?t(l.chatNewChatDraftGeneratedTitle):e}function xL(e,t=20){const a=e.replace(/\\/g,"/").split("/").filter(Boolean).pop()??e;return a.length<=t?a:a.slice(0,t-3)+"..."}const gk=[l.chatNewChatDraftDefaultGreeting,l.chatNewChatDraftGreetingNap,l.chatNewChatDraftGreetingKeyboard,l.chatNewChatDraftGreetingLetsGo,l.chatNewChatDraftGreetingStandby,l.chatNewChatDraftGreetingTaskReady,l.chatNewChatDraftGreetingOnDuty];function AL(e=Fa){const t=gk.map(a=>e(a));return t[Math.floor(Math.random()*t.length)]}function TL(e){return e.chat.bossCatId?e.chat.cats.find(t=>t.id===e.chat.bossCatId)?.name??null:null}function kk(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 DL(e,t,a){const o=new Date().toISOString(),n=structuredClone(e),i=n.chat.selectedChannel,s=n.chat.channels.find(h=>h.id===t);if(!i||i.id!==t||!s)throw new Error("No chat is available for optimistic updates.");const c=kk(t,a,n.ownerDisplayName,o);return i.messages.push(c),i.updatedAt=o,i.lastMessageAt=o,i.unreadCount=0,s.lastMessageAt=o,s.unreadCount=0,n.chat.selectedChannelId=t,n.metadata.generatedAt=o,{payload:n,optimisticMessageId:c.id}}function NL(e,t,a){const o=structuredClone(e),n=o.chat.selectedChannel,i=o.chat.channels.find(s=>s.id===t);if(!n||n.id!==t||!i)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,i.pendingProvider=a.pendingProvider,i.pendingModel=a.pendingModel,i.pendingModelSelection=a.pendingModelSelection,o}function jL(e,t){const a=ac(t);if(!a)throw new Error("Created channel payload was invalid.");const o=structuredClone(e),n=a.roomRouting.defaultRecipientId??null,i=a.roomRouting.workflow.activeTurn?.status??a.roomRouting.workflow.lastOutcomeEvent?.status??null,s=i==="pending"?"running":i==="failed"?"error":i,c=a.roomRouting.workflow.activeTurn?.updatedAt??a.roomRouting.workflow.lastOutcomeEvent?.createdAt??a.roomRouting.lastOutcome?.completedAt??a.roomRouting.lastCheckpoint?.createdAt??null,h=Array.isArray(a.assignedParticipants)?a.assignedParticipants:a.assignedCats,u=h.length,g=h.filter(f=>f.status==="active").length,p={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:u,activeParticipantCount:g,catCount:a.assignedCats.length,activeCatCount:a.assignedCats.filter(f=>f.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:s??void 0,lastRoutingAt:c};return o.chat.channels=[p,...o.chat.channels.filter(f=>f.id!==a.id)],o.chat.selectedChannelId=a.id,o.chat.selectedChannel=a,o.metadata.generatedAt=a.updatedAt,o}function ML(e,t,a,o){const n=e.chat.selectedChannel,i=n?.id===a?n.messages.find(g=>g.id===o&&g.senderKind==="user"&&g.metadata?.optimistic)??null:null;if(!i)return t;const s=structuredClone(t),c=s.chat.selectedChannel,h=s.chat.channels.find(g=>g.id===a);if(!c||c.id!==a||!h)return console.warn("Pending optimistic message channel disappeared during refresh.",{feature:"chat_optimistic_message_orphaned_channel",channelId:a,optimisticMessageId:i.id}),sk(a,i.id),t;const u=c.messages.find(g=>g.id===i.id);if(u){const g=u.senderKind===i.senderKind&&u.senderName===i.senderName&&u.metadata?.clientMessageId===i.id,p=u.senderKind===i.senderKind&&u.senderName===i.senderName&&u.body.trim()===i.body.trim();return!g&&!p&&console.warn("Skipped preserving optimistic message because refreshed row owns the id.",{feature:"chat_optimistic_message_preserve",reason:"id_collision",channelId:a,optimisticMessageId:i.id,existingSenderKind:u.senderKind}),t}return c.messages.push(structuredClone(i)),c.updatedAt=i.createdAt,c.lastMessageAt=i.createdAt,c.unreadCount=0,h.lastMessageAt=i.createdAt,h.unreadCount=0,s.chat.selectedChannelId=a,s.metadata.generatedAt=i.createdAt,s}function EL(e,t=Fa){return r.jsx("div",{className:"screen bootShell","aria-label":t(l.sharedProductBootLoadingAria,{productName:e}),children:r.jsx("div",{className:"bootSpinner","aria-hidden":"true"})})}const wk=$e("en");function IL(e){return ik(e)}function fk(e){return e?e.skillProfile==="companion"||e.roles.includes("companion"):!1}function BL(e,t){return mk(e,t)}const bk=[l.chatNewChatDraftDefaultGreeting,l.chatNewChatDraftGreetingNap,l.chatNewChatDraftGreetingKeyboard,l.chatNewChatDraftGreetingLetsGo,l.chatNewChatDraftGreetingStandby,l.chatNewChatDraftGreetingTaskReady,l.chatNewChatDraftGreetingOnDuty];bk.map(e=>wk(e));function FL(){const{t:e}=_();return r.jsx("div",{className:"screen bootShell","aria-label":e(l.chatBootLoadingAria),children:r.jsx("div",{className:"bootSpinner","aria-hidden":"true"})})}const cc="cat",vn="preset",dc="group",uc="parallel",yk="/setup";function Lr(e){const t=e?.trim();return t||null}function na(e){return`${e}/new`}function vk(e){return`${e}/dm`}function OL(e,t){return t?na(e):yk}function Ck(e,t){const a=Lr(t),o=na(e);if(!a)return o;const n=new URLSearchParams([[cc,a]]);return`${o}?${n.toString()}`}function WL(e){const t=new URLSearchParams([[vn,dc]]);return`${na(e)}?${t.toString()}`}function UL(e){const t=new URLSearchParams([[vn,uc]]);return`${na(e)}?${t.toString()}`}function HL(e,t){const a=Lr(t),o=vk(e);return a?`${o}/${encodeURIComponent(a)}`:o}function GL(e){const t=new URLSearchParams(e);return Lr(t.get(cc))}function _L(e){const t=new URLSearchParams(e),a=Lr(t.get(vn));return a===uc?"parallel":a===dc?"group":"default"}function Ts(e,t){return`${e}/chats/${encodeURIComponent(t)}`}function KL(e){return(e?.trim()??"").startsWith("draft-")}function qL(e,t,a,o){const n=o?t.filter(h=>h.originSurface===o):t,i=a?.trim()??"",s=n.find(h=>h.id===i&&!fs(h));if(s)return Ts(e,s.id);const c=n.find(h=>!fs(h));return c?Ts(e,c.id):na(e)}function zL(e,t){return t===na(e)}const Ds="direct_message";function pc(e){return e.channelKind===Ds||e.roomMode===Ds}function Sk(e,t){return e.find(a=>pc(a)&&a.defaultRecipientCatId===t)??null}function $L(e,t){const a=new Map;for(const o of t){if(!pc(o))continue;const n=o.defaultRecipientCatId;if(!n)continue;const i=o.lastActivatedAt??o.lastMessageAt??"",s=a.get(n);(!s||s.localeCompare(i)<0)&&a.set(n,i)}return[...e].sort((o,n)=>{const i=a.get(o.id)??o.createdAt;return(a.get(n.id)??n.createdAt).localeCompare(i)})}function Lk(e){const t=e?.trim();return t||null}function Cn(e,t){const a=Lk(t),o=`${e}/dm`;return a?`${o}/${encodeURIComponent(a)}`:o}function VL(e,t){return Sk(e,t)}function YL(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 QL(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 JL(e){switch(e){case"awake":return l.chatLifecycleAwakeLabel;case"waking_up":return l.chatLifecycleWakingUpLabel;case"sleeping":return l.chatLifecycleSleepingLabel;case"error":return l.chatCatStatusErrorLabel;default:return null}}function XL(e,t,a){return{kind:"direct_message",path:Cn(e,a)}}const Pk=$e("en");function Rk(e,t=Pk){switch(e){case"overview":return t(l.chatCompanionTabStatus);case"resources":return t(l.chatCompanionTabSources);case"memory":return t(l.chatCompanionTabMemory);case"settings":return t(l.chatCompanionTabBehavior);case"inspector":return t(l.chatCompanionTabInspector)}}const Gr=["overview","resources","memory","settings","inspector"],Ee=256;function So(e,t){const a=e.img.naturalWidth*e.scale,o=e.img.naturalHeight*e.scale,n=t-a,i=t-o;return{x:Math.min(0,Math.max(n,e.x)),y:Math.min(0,Math.max(i,e.y))}}function Ns(e,t,a){e.clearRect(0,0,a,a);const o=t.img.naturalWidth*t.scale,n=t.img.naturalHeight*t.scale,i=So(t,a);e.drawImage(t.img,i.x,i.y,o,n)}function _r(e,t){const a=Math.min(e.naturalWidth,e.naturalHeight);return t/a}function sa({onSave:e,onClose:t,initialDataUrl:a}){const o=d.useRef(null),n=d.useRef(null),i=d.useRef(null),[s,c]=d.useState(null),h=d.useRef(null),{t:u}=_(),g=d.useCallback(()=>{const k=o.current?.getContext("2d");!k||!s||Ns(k,s,Ee)},[s]);d.useEffect(()=>{g()},[g]),d.useEffect(()=>{if(!a)return;let k=!1;const y=new Image;return y.crossOrigin="anonymous",y.onload=()=>{if(k)return;const m=_r(y,Ee),C=y.naturalWidth*m,v=y.naturalHeight*m;c({img:y,x:(Ee-C)/2,y:(Ee-v)/2,scale:m})},y.src=a,()=>{k=!0}},[a]);function p(k){if(!k.type.startsWith("image/"))return;const y=new Image;y.onload=()=>{const m=_r(y,Ee),C=y.naturalWidth*m,v=y.naturalHeight*m;c({img:y,x:(Ee-C)/2,y:(Ee-v)/2,scale:m})},y.src=URL.createObjectURL(k)}function f(k){if(!s)return;k.preventDefault(),h.current={startX:k.clientX,startY:k.clientY,origX:s.x,origY:s.y};function y(C){if(!h.current)return;const{startX:v,startY:b,origX:S,origY:T}=h.current,M=C.clientX-v,j=C.clientY-b;c(R=>{if(!R)return R;const P={...R,x:S+M,y:T+j},A=So(P,Ee);return{...P,...A}})}function m(){h.current=null,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",m)}document.addEventListener("mousemove",y),document.addEventListener("mouseup",m)}d.useEffect(()=>{const k=n.current;if(!k)return;function y(m){m.preventDefault();const C=m.deltaY>0?.95:1.05;c(v=>{if(!v)return v;const b=_r(v.img,Ee),S=Math.max(b,Math.min(v.scale*C,b*5)),T=Ee/2,M=Ee/2,j=T-(T-v.x)*(S/v.scale),R=M-(M-v.y)*(S/v.scale),P={...v,scale:S,x:j,y:R},A=So(P,Ee);return{...P,...A}})}return k.addEventListener("wheel",y,{passive:!1}),()=>k.removeEventListener("wheel",y)},[s==null]);function w(){if(!o.current||!s)return;const y=document.createElement("canvas");y.width=Ee,y.height=Ee;const m=y.getContext("2d");m.beginPath(),m.arc(Ee/2,Ee/2,Ee/2,0,Math.PI*2),m.clip(),Ns(m,s,Ee),e(y.toDataURL("image/png"))}return d.useEffect(()=>{function k(y){y.key==="Escape"&&t()}return document.addEventListener("keydown",k),()=>document.removeEventListener("keydown",k)},[t]),r.jsx("div",{className:"avatarCropOverlay",onClick:t,children:r.jsxs("div",{className:"avatarCropDialog",onClick:k=>k.stopPropagation(),children:[r.jsx("p",{className:"avatarCropTitle",children:u(l.settingsGeneralAvatarUploadLabel)}),s?r.jsxs(r.Fragment,{children:[r.jsx("div",{ref:n,className:"avatarCropCanvasWrap",onMouseDown:f,children:r.jsx("canvas",{ref:o,className:"avatarCropCanvas",width:Ee,height:Ee})}),r.jsx("p",{className:"avatarCropHint",children:u(l.sharedImageUploadDragHint)})]}):r.jsx("div",{className:"avatarCropUploadArea",onClick:()=>i.current?.click(),children:u(l.sharedImageUploadClickHint)}),r.jsx("input",{ref:i,type:"file",accept:"image/*",style:{display:"none"},onChange:k=>{const y=k.target.files?.[0];y&&p(y),k.target.value=""}}),r.jsxs("div",{className:"avatarCropActions",children:[r.jsx("button",{className:"confirmCancelButton",type:"button",onClick:t,children:u(l.sharedCommonCancel)}),s?r.jsx("button",{className:"primaryButton",type:"button",onClick:w,children:u(l.sharedCommonApply)}):null]})]})})}const Kr=960,js=360,rt=480,wt=180;function Lo(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 Ms(e,t,a,o){e.clearRect(0,0,a,o);const n=t.img.naturalWidth*t.scale,i=t.img.naturalHeight*t.scale,s=Lo(t,a,o);e.drawImage(t.img,s.x,s.y,n,i)}function qr(e,t,a){return Math.max(t/e.naturalWidth,a/e.naturalHeight)}function Sn({onSave:e,onClose:t,title:a,initialDataUrl:o}){const n=d.useRef(null),i=d.useRef(null),s=d.useRef(null),[c,h]=d.useState(null),u=d.useRef(null),{t:g}=_(),p=a??g(l.sharedSettingsCatsUploadCoverPhotoLabel),f=d.useCallback(()=>{const m=n.current?.getContext("2d");!m||!c||Ms(m,c,rt,wt)},[c]);d.useEffect(()=>{f()},[f]),d.useEffect(()=>{if(!o)return;let m=!1;const C=new Image;return C.crossOrigin="anonymous",C.onload=()=>{if(m)return;const v=qr(C,rt,wt),b=C.naturalWidth*v,S=C.naturalHeight*v;h({img:C,x:(rt-b)/2,y:(wt-S)/2,scale:v})},C.src=o,()=>{m=!0}},[o]);function w(m){if(!m.type.startsWith("image/"))return;const C=new Image;C.onload=()=>{const v=qr(C,rt,wt),b=C.naturalWidth*v,S=C.naturalHeight*v;h({img:C,x:(rt-b)/2,y:(wt-S)/2,scale:v})},C.src=URL.createObjectURL(m)}function k(m){if(!c)return;m.preventDefault(),u.current={startX:m.clientX,startY:m.clientY,origX:c.x,origY:c.y};function C(b){if(!u.current)return;const{startX:S,startY:T,origX:M,origY:j}=u.current,R=b.clientX-S,P=b.clientY-T;h(A=>{if(!A)return A;const x={...A,x:M+R,y:j+P},E=Lo(x,rt,wt);return{...x,...E}})}function v(){u.current=null,document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",v)}document.addEventListener("mousemove",C),document.addEventListener("mouseup",v)}d.useEffect(()=>{const m=i.current;if(!m)return;function C(v){v.preventDefault();const b=v.deltaY>0?.95:1.05;h(S=>{if(!S)return S;const T=qr(S.img,rt,wt),M=Math.max(T,Math.min(S.scale*b,T*5)),j=rt/2,R=wt/2,P=j-(j-S.x)*(M/S.scale),A=R-(R-S.y)*(M/S.scale),x={...S,scale:M,x:P,y:A},E=Lo(x,rt,wt);return{...x,...E}})}return m.addEventListener("wheel",C,{passive:!1}),()=>m.removeEventListener("wheel",C)},[c==null]);function y(){if(!c)return;const m=document.createElement("canvas");m.width=Kr,m.height=js;const C=m.getContext("2d"),v=Kr/rt,b={img:c.img,x:c.x*v,y:c.y*v,scale:c.scale*v};Ms(C,b,Kr,js),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:p}),c?r.jsxs(r.Fragment,{children:[r.jsx("div",{ref:i,className:"avatarCropCanvasWrap coverCropCanvasWrap",onMouseDown:k,children:r.jsx("canvas",{ref:n,className:"avatarCropCanvas coverCropCanvas",width:rt,height:wt})}),r.jsx("p",{className:"avatarCropHint",children:g(l.sharedImageUploadDragHint)})]}):r.jsx("div",{className:"avatarCropUploadArea coverCropUploadArea",onClick:()=>s.current?.click(),children:g(l.sharedImageUploadClickHint)}),r.jsx("input",{ref:s,type:"file",accept:"image/*",style:{display:"none"},onChange:m=>{const C=m.target.files?.[0];C&&w(C),m.target.value=""}}),r.jsxs("div",{className:"avatarCropActions",children:[r.jsx("button",{className:"confirmCancelButton",type:"button",onClick:t,children:g(l.sharedCommonCancel)}),c?r.jsx("button",{className:"primaryButton",type:"button",onClick:y,children:g(l.sharedCommonApply)}):null]})]})})}const xk="cats:draft-header:cover:",Po="cats:cat-cover-updated";function sr(e){return xk+e}function Aa(e){if(!e)return null;try{return window.localStorage.getItem(sr(e))}catch{return null}}function Ft(e,t){try{t==null?window.localStorage.removeItem(sr(e)):window.localStorage.setItem(sr(e),t)}catch{}window.dispatchEvent(new CustomEvent(Po,{detail:{catId:e}}))}function Ln(e,t){if(!e)return()=>{};const a=e;function o(i){i.detail?.catId===a&&t(Aa(a))}function n(i){i.key===sr(a)&&t(Aa(a))}return window.addEventListener(Po,o),window.addEventListener("storage",n),()=>{window.removeEventListener(Po,o),window.removeEventListener("storage",n)}}function Es(e){if(e.avatarUrl)return{backgroundImage:`url(${e.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"};if(e.avatarColor)return{background:e.avatarColor}}function Is(){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 Ak({variant:e="intro",eyebrow:t,title:a,description:o,supportingContent:n,actions:i,avatarName:s,avatarUrl:c,avatarColor:h,coverStorageKey:u,onAvatarSave:g,alwaysEditable:p=!1,readOnlyVisuals:f=!1}){const w=e==="profile"&&!!s,k=e==="profile"&&!!u,[y,m]=d.useState(null),[C,v]=d.useState(!1),[b,S]=d.useState(!1),{t:T}=_();d.useEffect(()=>{if(!k||!u){m(null);return}return m(Aa(u)),Ln(u,m)},[u,k]);function M($){v(!1),u&&Ft(u,$)}function j($){S(!1),g?.($)}const R=(()=>{const $={};return y&&($.backgroundImage=`url(${y})`),h&&($["--cat-avatar-color"]=h),Object.keys($).length>0?$:void 0})(),P=["draftHeader",e==="profile"?"draftHeaderProfile":"draftHeaderIntro",k?"draftHeaderWithCover":null].filter(Boolean).join(" "),A=w&&!f&&typeof g=="function"&&(p||!c),x=k&&!f&&(p||!y),E=T(y?l.sharedDraftHeaderChangeCoverPhoto:l.sharedDraftHeaderAddCoverPhoto),O=T(c?l.sharedDraftHeaderChangeAvatar:l.sharedDraftHeaderAddAvatar);return r.jsxs("div",{className:P,children:[k?r.jsx("div",{className:`draftHeaderCover${y?" draftHeaderCoverLoaded":""}`,style:R,children:x?r.jsxs("button",{type:"button",className:"draftHeaderCoverAddButton",onClick:()=>v(!0),"aria-label":E,children:[r.jsx(Is,{}),r.jsx("span",{children:E})]}):null}):null,w?r.jsx("div",{className:"draftHeaderVisual",children:A?r.jsxs("button",{type:"button",className:"draftHeaderAvatar draftHeaderAvatarEditable",style:Es({avatarUrl:c,avatarColor:h}),onClick:()=>S(!0),"aria-label":O,children:[c?null:r.jsx("span",{className:"draftHeaderAvatarInitials","aria-hidden":"true",children:Ae(s??"")}),r.jsx("span",{className:"draftHeaderAvatarCameraBadge","aria-hidden":"true",children:r.jsx(Is,{})})]}):r.jsx("div",{className:"draftHeaderAvatar",style:Es({avatarUrl:c,avatarColor:h}),"aria-hidden":"true",children:c?null:Ae(s??"")})}):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}),i?r.jsx("div",{className:"draftHeaderActions",children:i}):null]}),o?r.jsx("p",{className:"heroNote",children:o}):null,n?r.jsx("div",{className:"draftHeaderSupportingContent",children:n}):null]}),C?r.jsx(Sn,{onSave:M,onClose:()=>v(!1),initialDataUrl:y}):null,b?r.jsx(sa,{onSave:j,onClose:()=>S(!1),initialDataUrl:c}):null]})}function tt(e){return`/api/cats/${encodeURIComponent(e)}/companion-box`}async function Tk(e,t){const a=await fetch(tt(e),{headers:{Accept:"application/json"},signal:t});return ye(a,`companion box summary returned ${a.status}`)}async function Dk(e,t){const a=await fetch(`${tt(e)}/sources`,{headers:{Accept:"application/json"},signal:t});return(await ye(a,`companion sources list returned ${a.status}`)).sources??[]}async function Nk(e,t,a){const o=await fetch(`${tt(e)}/sources`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return ye(o,`companion source create returned ${o.status}`)}async function jk(e,t,a,o){const n=await fetch(`${tt(e)}/sources/${encodeURIComponent(t)}`,{method:"PUT",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(a),signal:o});return ye(n,`companion source update returned ${n.status}`)}async function Mk(e,t,a){const o=await fetch(`${tt(e)}/sources/${encodeURIComponent(t)}`,{method:"DELETE",headers:{Accept:"application/json"},signal:a});return ye(o,`companion source delete returned ${o.status}`)}async function Ek(e,t){const a=await fetch(`${tt(e)}/profile`,{headers:{Accept:"application/json"},signal:t});return(await ye(a,`companion profile read-model returned ${a.status}`)).profile}async function Ik(e,t){const a=await fetch(`${tt(e)}/activity`,{headers:{Accept:"application/json"},signal:t});return(await ye(a,`companion activity returned ${a.status}`)).activity}async function Bs(e,t){const a=await fetch(`${tt(e)}/memory`,{headers:{Accept:"application/json"},signal:t});return(await ye(a,`companion memory list returned ${a.status}`)).memory??[]}async function Bk(e,t,a){const o=await fetch(`${tt(e)}/memory`,{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return ye(o,`companion memory create returned ${o.status}`)}async function Fk(e,t,a){const o=await fetch(`${tt(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 Ok(e,t){const a=await fetch(`${tt(e)}/response-profile`,{headers:{Accept:"application/json"},signal:t});return ye(a,`companion response profile returned ${a.status}`)}async function Wk(e,t,a){const o=await fetch(`${tt(e)}/response-profile`,{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(t),signal:a});return ye(o,`companion response profile update returned ${o.status}`)}const Uk={entries:[],olderHidden:!1};function Hk(e){const[t,a]=d.useState(null),[o,n]=d.useState(!1),[i,s]=d.useState(null),[c,h]=d.useState(0),u=d.useRef(null);return d.useEffect(()=>{if(!e.enabled){a(null),n(!1),s(null);return}u.current?.abort();const g=new AbortController;return u.current=g,n(!0),s(null),Ik(e.catId,g.signal).then(p=>{g.signal.aborted||(a(p),n(!1))}).catch(p=>{g.signal.aborted||(s(p instanceof Error?p.message:String(p)),n(!1))}),()=>{g.abort()}},[e.catId,e.enabled,c]),{projection:e.enabled?t??Uk:null,loading:o,error:i,refresh:()=>h(g=>g+1)}}const Gk=$e("en");function _k(e){switch(e){case"ready":return"awake";case"initializing":return"waking_up";case"error":return"error";default:return"sleeping"}}function Kk(e){switch(e){case"awake":return l.chatLifecycleAwakeLabel;case"waking_up":return l.chatLifecycleWakingUpLabel;case"error":return l.chatLifecycleNeedsAttentionLabel;default:return l.chatLifecycleSleepingLabel}}function Fs(e,t=Gk){return t(Kk(e))}function qk(e){switch(e){case"awake":return"isAwake";case"waking_up":return"isWaking";case"error":return"isErrored";default:return"isSleeping"}}function zk(e,t){const{t:a}=_();return d.useMemo(()=>{const o=t.chat.channels.find(s=>s.channelKind==="direct_message"&&s.defaultRecipientCatId===e);if(!o)return{presence:"sleeping",label:Fs("sleeping",a),className:"isSleeping",canWake:!0,canSleep:!1};const n=o.defaultRecipientLeaseStatus??null,i=_k(n);return{presence:i,label:Fs(i,a),className:qk(i),canWake:i==="sleeping"||i==="error",canSleep:i==="awake"}},[e,t.chat.channels,a])}const $k={posts:[],photos:[],videos:[],music:[],files:[]};function Vk(e){const[t,a]=d.useState(null),[o,n]=d.useState(!1),[i,s]=d.useState(null),[c,h]=d.useState(0),u=d.useRef(null);return d.useEffect(()=>{if(!e.enabled){a(null),n(!1),s(null);return}u.current?.abort();const g=new AbortController;return u.current=g,n(!0),s(null),Ek(e.catId,g.signal).then(p=>{g.signal.aborted||(a(p),n(!1))}).catch(p=>{g.signal.aborted||(s(p instanceof Error?p.message:String(p)),n(!1))}),()=>{g.abort()}},[e.catId,e.enabled,c]),{profile:e.enabled?t??$k:null,loading:o,error:i,refresh:()=>h(g=>g+1)}}function Yk(e,t){const[a,o]=d.useState(null),[n,i]=d.useState([]),[s,c]=d.useState([]),[h,u]=d.useState(null),[g,p]=d.useState(!1),[f,w]=d.useState(null),k=d.useRef(null),y=d.useRef(0),{t:m}=_(),C=d.useCallback(async P=>{k.current?.abort();const A=new AbortController;k.current=A;const x=A.signal;p(!0),w(null);try{switch(P){case"overview":{const[E,O]=await Promise.all([Tk(e,x),Bs(e,x)]);x.aborted||(o(E),c(O));break}case"resources":{const E=await Dk(e,x);x.aborted||i(E);break}case"memory":{const E=await Bs(e,x);x.aborted||c(E);break}case"settings":{const E=await Ok(e,x);x.aborted||u(E);break}}}catch(E){x.aborted||w(E instanceof Error?E.message:m(l.chatCompanionWorkspaceLoadError))}finally{x.aborted||p(!1)}},[e,m]);d.useEffect(()=>(C(t),()=>{k.current?.abort()}),[t,e,C]);const v=d.useCallback(()=>{y.current+=1,C(t)},[t,C]),b=d.useCallback(async P=>{await Nk(e,P),v()},[e,v]),S=d.useCallback(async(P,A)=>{await jk(e,P,A),v()},[e,v]),T=d.useCallback(async P=>{await Mk(e,P),v()},[e,v]),M=d.useCallback(async P=>{await Bk(e,P),v()},[e,v]),j=d.useCallback(async P=>{await Fk(e,P),v()},[e,v]),R=d.useCallback(async P=>{const A=await Wk(e,P);u(A)},[e]);return{summary:a,sources:n,memory:s,responseProfile:h,loading:g,error:f,refreshTab:v,addSource:b,editSource:S,removeSource:T,addMemory:M,removeMemory:j,editResponseProfile:R}}const Os=[{id:"posts",labelKey:l.chatCompanionFeedTabPosts},{id:"photos",labelKey:l.chatCompanionFeedTabPhotos},{id:"videos",labelKey:l.chatCompanionFeedTabVideos},{id:"music",labelKey:l.chatCompanionFeedTabMusic},{id:"files",labelKey:l.chatCompanionFeedTabFiles},{id:"activity",labelKey:l.chatCompanionFeedTabActivity}],Ka={photo:l.chatCompanionFeedSurfacePhotoLabel,video:l.chatCompanionFeedSurfaceVideoLabel,music:l.chatCompanionFeedSurfaceMusicLabel,file:l.chatCompanionFeedSurfaceFileLabel};function Qk({catName:e,translate:t}){return r.jsx("div",{className:"companionEmptyState",children:r.jsx("p",{children:t(l.chatCompanionFeedPostEmptyState,{catName:e})})})}function hc({surfaceLabel:e,translate:t}){return r.jsx("div",{className:"companionEmptyState",children:r.jsx("p",{children:t(l.chatCompanionFeedMediaEmptyState,{type:e})})})}function Jk({translate:e}){return r.jsx("div",{className:"companionEmptyState",children:r.jsx("p",{children:e(l.chatCompanionFeedActivityEmptyState)})})}function Xk(e){try{return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return e}}function Zk(e,t){const a=e?.entries??[];return a.length===0?r.jsx(Jk,{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:Xk(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(l.chatCompanionFeedActivityHiddenState)}):null]})}function ew(e,t,a,o){const i=(e?.posts??[]).filter(s=>s.status==="active");return i.length===0?r.jsx(Qk,{catName:t,translate:a}):r.jsx("div",{className:"companionProfilePostList",children:i.map(s=>r.jsxs("article",{className:"companionProfilePostCard",children:[r.jsxs("header",{className:"companionProfilePostHeader",children:[r.jsx("h3",{className:"companionProfilePostTitle",children:s.title}),r.jsx("time",{className:"companionProfilePostTimestamp",dateTime:s.publishedAt,children:s.publishedAt})]}),s.body?r.jsx("p",{className:"companionProfilePostBody",children:s.body}):null,s.tags.length>0?r.jsx("ul",{className:"companionProfilePostTags",children:s.tags.map(c=>r.jsx("li",{children:c},c))}):null,s.mediaRefs.length>0?r.jsx("div",{className:"companionProfilePostMediaGrid","aria-label":o(s.mediaRefs.length),children:s.mediaRefs.map(c=>r.jsx("span",{className:"companionProfilePostMediaTile","data-kind":c.kind,"data-id":c.id},`${c.kind}:${c.id}`))}):null]},s.id))})}function zr(e,t,a,o,n){const i=e??[];return i.length===0?r.jsx(hc,{surfaceLabel:a,translate:o}):r.jsx("ul",{className:`companionProfileMediaList companionProfileMediaList--${t}`,"aria-label":n,children:i.map(s=>r.jsxs("li",{className:"companionProfileMediaTile",children:[r.jsx("span",{className:"companionProfileMediaTitle",children:s.title}),s.mimeType?r.jsx("span",{className:"companionProfileMediaMime",children:s.mimeType}):null]},s.id))})}function tw(e,t,a,o){const n=e??[];return n.length===0?r.jsx(hc,{surfaceLabel:t,translate:a}):r.jsx("ul",{className:"companionProfileFileList","aria-label":o,children:n.map(i=>r.jsxs("li",{className:"companionProfileFileRow",children:[r.jsx("span",{className:"companionProfileFileTitle",children:i.title}),i.mimeType?r.jsx("span",{className:"companionProfileFileMime",children:i.mimeType}):null]},i.id))})}function aw({cat:e,profile:t=null,activity:a=null}){const[o,n]=d.useState("posts"),{t:i}=_(),s={photo:i(Ka.photo),video:i(Ka.video),music:i(Ka.music),file:i(Ka.file)},c=(u,g)=>i(l.chatCompanionFeedMediaItemsLabel,{count:u,surface:g});d.useEffect(()=>{Os.some(u=>u.id===o)||n("posts")},[o]);let h;switch(o){case"posts":h=ew(t,e.name,i,u=>c(u,i(l.chatCompanionFeedMediaItemDefaultLabel)));break;case"photos":h=zr(t?.photos,"photo",s.photo,i,c(t?.photos?.length??0,s.photo));break;case"videos":h=zr(t?.videos,"video",s.video,i,c(t?.videos?.length??0,s.video));break;case"music":h=zr(t?.music,"music",s.music,i,c(t?.music?.length??0,s.music));break;case"files":h=tw(t?.files,s.file,i,c(t?.files?.length??0,s.file));break;case"activity":h=Zk(a,i);break}return r.jsxs("div",{className:"companionFeed",children:[r.jsx("nav",{className:"companionFeedTabs",role:"tablist","aria-label":i(l.chatCompanionFeedNavAriaLabel),children:Os.map(u=>r.jsx("button",{type:"button",role:"tab","aria-selected":o===u.id,className:o===u.id?"companionFeedTab companionFeedTabActive":"companionFeedTab",onClick:()=>n(u.id),children:i(u.labelKey)},u.id))}),r.jsx("div",{className:"companionFeedContent",children:h})]})}function rw({companionMode:e,onToggle:t}){const{t:a}=_();return r.jsxs("div",{className:"companionModeToggle",role:"group","aria-label":a(l.chatCompanionModeToggleDirectLaneAriaLabel),children:[r.jsx("button",{type:"button",className:"channelActionIconButton companionModeToggleSegment","aria-pressed":!e,"aria-label":a(l.chatCompanionModeToggleChatViewAriaLabel),"data-tooltip":a(l.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(l.chatCompanionModeToggleCompanionViewAriaLabel),"data-tooltip":a(l.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 ow(e){try{return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return e}}function nw({summary:e,recentMemory:t,presence:a,onWake:o,onSleep:n,loading:i}){const{t:s}=_(),c={identity:s(l.chatCompanionMemoryCategoryIdentity),preference:s(l.chatCompanionMemoryCategoryPreference),relationship:s(l.chatCompanionMemoryCategoryRelationship),fact:s(l.chatCompanionMemoryCategoryFact),event:s(l.chatCompanionMemoryCategoryEvent),owner_note:s(l.chatCompanionMemoryCategoryOwnerNote),all:s(l.chatCompanionMemoryFilterAll)};if(i&&!e)return r.jsx("div",{className:"companionSection companionLoading",children:s(l.chatCompanionOverviewLoadingState)});const h=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:s(l.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:s(l.chatCompanionOverviewPresenceWakeButton)}),a.canSleep&&r.jsx("button",{type:"button",className:"companionActionButton companionActionSecondary",onClick:n,children:s(l.chatCompanionOverviewPresenceSleepButton)})]})]}),e&&r.jsxs("div",{className:"companionCard companionStatsCard",children:[r.jsx("div",{className:"companionCardHeader",children:s(l.chatCompanionOverviewSummaryTitle)}),r.jsxs("ul",{className:"companionStatsList",children:[r.jsxs("li",{children:[r.jsx("strong",{children:e.sourceCount})," ",s(l.chatCompanionOverviewSummaryResourceLabel)]}),r.jsxs("li",{children:[r.jsx("strong",{children:e.derivedCount})," ",s(l.chatCompanionOverviewSummaryCreationLabel)]}),r.jsxs("li",{children:[r.jsx("strong",{children:e.memoryCount})," ",s(l.chatCompanionOverviewSummaryMemoryLabel)]})]})]}),r.jsxs("div",{className:"companionCard companionRecentMemoryCard",children:[r.jsx("div",{className:"companionCardHeader",children:s(l.chatCompanionOverviewRecentMemoriesTitle)}),h.length===0?r.jsx("p",{className:"companionEmpty",children:s(l.chatCompanionOverviewEmptyState)}):r.jsx("ul",{className:"companionMemoryList",children:h.map(u=>r.jsxs("li",{className:"companionMemoryItem",children:[r.jsx("span",{className:"companionMemoryCategory",children:c[u.category]??u.category}),r.jsx("span",{className:"companionMemoryContent",children:u.content}),r.jsx("span",{className:"companionMemoryDate",children:ow(u.updatedAt)})]},u.id))})]})]})}function sw(e){try{return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return e}}function iw(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 lw({sources:e,loading:t,onAddSource:a,onDeleteSource:o}){const[n,i]=d.useState(!1),[s,c]=d.useState(""),[h,u]=d.useState(""),[g,p]=d.useState(""),[f,w]=d.useState(!1),{t:k}=_(),y={note:k(l.chatCompanionResourcesSourceKindNote),conversation_log:k(l.chatCompanionResourcesSourceKindConversationLog),article:k(l.chatCompanionResourcesSourceKindArticle),image:k(l.chatCompanionResourcesSourceKindImage),video:k(l.chatCompanionResourcesSourceKindVideo),audio:k(l.chatCompanionResourcesSourceKindAudio),path_ref:k(l.chatCompanionResourcesSourceKindPath),unknown:k(l.chatCompanionResourcesSourceKindUnknown)};async function m(C){if(C.preventDefault(),!(!s.trim()&&!h.trim()&&!g.trim())){w(!0);try{await a({kind:"note",storageMode:"imported_copy",title:s.trim()||void 0,ownerNote:h.trim()||void 0,textContent:g.trim()||void 0}),c(""),u(""),p(""),i(!1)}finally{w(!1)}}}return t&&e.length===0?r.jsx("div",{className:"companionSection companionLoading",children:k(l.chatCompanionResourcesLoadingState)}):r.jsxs("div",{className:"companionSection companionResources",children:[r.jsxs("div",{className:"companionSectionHeader",children:[r.jsx("span",{children:k(l.chatCompanionResourcesSectionTitle)}),r.jsx("button",{type:"button",className:"companionActionButton",onClick:()=>i(!n),children:k(n?l.chatCompanionResourcesActionCancel:l.chatCompanionResourcesActionShowForm)})]}),n&&r.jsxs("form",{className:"companionCard companionForm",onSubmit:m,children:[r.jsx("input",{type:"text",className:"companionInput",placeholder:k(l.chatCompanionResourcesFormTitlePlaceholder),value:s,onChange:C=>c(C.target.value)}),r.jsx("input",{type:"text",className:"companionInput",placeholder:k(l.chatCompanionResourcesFormNotePlaceholder),value:h,onChange:C=>u(C.target.value)}),r.jsx("textarea",{className:"companionTextarea",placeholder:k(l.chatCompanionResourcesFormContentPlaceholder),value:g,onChange:C=>p(C.target.value),rows:4}),r.jsx("button",{type:"submit",className:"companionActionButton",disabled:f||!s.trim()&&!h.trim()&&!g.trim(),children:k(f?l.chatCompanionResourcesActionBusy:l.chatCompanionResourcesActionAddResource)})]}),e.length===0?r.jsx("p",{className:"companionEmpty",children:k(l.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:y[iw(C.kind)]}),r.jsx("span",{className:"companionSourceTitle",children:C.title||C.originalFileName||k(l.chatCompanionResourcesUntitledSource)}),r.jsx("span",{className:"companionSourceDate",children:sw(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:k(l.chatCompanionResourcesActionRemove)})})]},C.id))})]})}const Ws=["identity","preference","relationship","fact","event","owner_note"];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({memory:e,loading:t,onAddMemory:a,onDeleteMemory:o}){const[n,i]=d.useState(null),[s,c]=d.useState(!1),[h,u]=d.useState("fact"),[g,p]=d.useState(""),[f,w]=d.useState(!1),{t:k}=_(),y={identity:k(l.chatCompanionMemoryCategoryIdentity),preference:k(l.chatCompanionMemoryCategoryPreference),relationship:k(l.chatCompanionMemoryCategoryRelationship),fact:k(l.chatCompanionMemoryCategoryFact),event:k(l.chatCompanionMemoryCategoryEvent),owner_note:k(l.chatCompanionMemoryCategoryOwnerNote),all:k(l.chatCompanionMemoryFilterAll)},m=n?e.filter(v=>v.category===n):e;async function C(v){if(v.preventDefault(),!!g.trim()){w(!0);try{await a({category:h,content:g.trim(),summary:null,sourceIds:[],metadata:{}}),p(""),c(!1)}finally{w(!1)}}}return t&&e.length===0?r.jsx("div",{className:"companionSection companionLoading",children:k(l.chatCompanionMemoryLoadingState)}):r.jsxs("div",{className:"companionSection companionMemory",children:[r.jsxs("div",{className:"companionSectionHeader",children:[r.jsx("span",{children:k(l.chatCompanionMemorySectionTitle)}),r.jsx("button",{type:"button",className:"companionActionButton",onClick:()=>c(!s),children:k(s?l.chatCompanionMemoryActionCancel:l.chatCompanionMemoryActionAdd)})]}),s&&r.jsxs("form",{className:"companionCard companionForm",onSubmit:C,children:[r.jsx("select",{className:"companionSelect",value:h,onChange:v=>u(v.target.value),children:Ws.map(v=>r.jsx("option",{value:v,children:y[v]},v))}),r.jsx("textarea",{className:"companionTextarea",placeholder:k(l.chatCompanionMemoryFormPlaceholder),value:g,onChange:v=>p(v.target.value),rows:3}),r.jsx("button",{type:"submit",className:"companionActionButton",disabled:f||!g.trim(),children:k(f?l.chatCompanionMemoryActionBusy:l.chatCompanionMemoryActionAddSubmit)})]}),r.jsxs("div",{className:"companionFilterBar",children:[r.jsxs("button",{type:"button",className:`companionFilterPill ${n?"":"isActive"}`,onClick:()=>i(null),children:[y.all," (",e.length,")"]}),Ws.map(v=>{const b=e.filter(S=>S.category===v).length;return b===0?null:r.jsxs("button",{type:"button",className:`companionFilterPill ${n===v?"isActive":""}`,onClick:()=>i(n===v?null:v),children:[y[v]," (",b,")"]},v)})]}),m.length===0?r.jsx("p",{className:"companionEmpty",children:e.length===0?k(l.chatCompanionMemoryEmptyState):k(l.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:y[v.category]??y.all}),r.jsx("span",{className:"companionMemoryDate",children:cw(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:k(l.chatCompanionMemoryActionRemove)})]},v.id))})]})}const uw=[{value:"animalistic",label:"animalistic"},{value:"anthropomorphic",label:"anthropomorphic"},{value:"mixed",label:"mixed"}],pw=[{value:"text",label:"text"},{value:"audio_clip",label:"audio_clip"},{value:"tts",label:"tts"},{value:"mixed",label:"mixed"}];function hw({catId:e,responseProfile:t,payload:a,loading:o,onUpdateResponseProfile:n}){const[i,s]=d.useState(t?.notes??""),[c,h]=d.useState(!1),{t:u}=_(),g={animalistic:u(l.chatCompanionSettingsExpressionModeAnimalistic),anthropomorphic:u(l.chatCompanionSettingsExpressionModeAnthropomorphic),mixed:u(l.chatCompanionSettingsExpressionModeMixed)},p={text:u(l.chatCompanionSettingsOutputModeText),audio_clip:u(l.chatCompanionSettingsOutputModeAudioClip),tts:u(l.chatCompanionSettingsOutputModeTts),mixed:u(l.chatCompanionSettingsOutputModeMixed)},f={polling:u(l.sharedSettingsCatsBindingPollingMode),webhook:u(l.sharedSettingsCatsBindingWebhookMode)},w=u(l.chatCompanionSettingsTelegramBindingDefaultMode),k=a.chat.botBindings?.find(v=>v.catId===e);async function y(v){h(!0);try{await n({expressionMode:v})}finally{h(!1)}}async function m(v){h(!0);try{await n({outputMode:v})}finally{h(!1)}}async function C(){h(!0);try{await n({notes:i.trim()||null})}finally{h(!1)}}return o&&!t?r.jsx("div",{className:"companionSection companionLoading",children:u(l.chatCompanionSettingsLoadingState)}):r.jsxs("div",{className:"companionSection companionSettings",children:[r.jsxs("div",{className:"companionCard",children:[r.jsx("div",{className:"companionCardHeader",children:u(l.chatCompanionSettingsResponseProfileTitle)}),r.jsxs("div",{className:"companionFormRow",children:[r.jsx("label",{className:"companionLabel",children:u(l.chatCompanionSettingsExpressionModeLabel)}),r.jsx("div",{className:"companionPillGroup",children:uw.map(({value:v,label:b})=>r.jsx("button",{type:"button",className:`companionPill ${t?.expressionMode===v?"isActive":""}`,onClick:()=>y(v),disabled:c,children:g[b]},v))})]}),r.jsxs("div",{className:"companionFormRow",children:[r.jsx("label",{className:"companionLabel",children:u(l.chatCompanionSettingsOutputModeLabel)}),r.jsx("div",{className:"companionPillGroup",children:pw.map(({value:v,label:b})=>r.jsx("button",{type:"button",className:`companionPill ${t?.outputMode===v?"isActive":""}`,onClick:()=>m(v),disabled:c,children:p[b]},v))})]}),r.jsxs("div",{className:"companionFormRow",children:[r.jsx("label",{className:"companionLabel",children:u(l.chatCompanionSettingsResponseNotesLabel)}),r.jsx("textarea",{className:"companionTextarea",placeholder:u(l.chatCompanionSettingsResponseNotesPlaceholder),value:i,onChange:v=>s(v.target.value),rows:3}),r.jsx("button",{type:"button",className:"companionActionButton",onClick:C,disabled:c||i===(t?.notes??""),children:u(c?l.chatCompanionSettingsResponseNotesSaving:l.chatCompanionSettingsResponseNotesSave)})]})]}),r.jsxs("div",{className:"companionCard",children:[r.jsx("div",{className:"companionCardHeader",children:u(l.chatCompanionSettingsTelegramBindingTitle)}),k?r.jsxs("div",{className:"companionTelegramInfo",children:[r.jsxs("p",{children:[r.jsxs("strong",{children:[u(l.chatCompanionSettingsTelegramBindingBotLabel)," "]}),k.botName??u(l.chatCompanionSettingsTelegramBindingConnected)]}),r.jsxs("p",{children:[r.jsxs("strong",{children:[u(l.chatCompanionSettingsTelegramBindingModeLabel)," "]}),k.inboundMode?f[k.inboundMode]??k.inboundMode:w]}),r.jsxs("p",{className:"companionMuted",children:[u(l.chatCompanionSettingsTelegramBindingManageHint),r.jsx(Wt,{to:"/settings/cats",children:u(l.chatCompanionSettingsTelegramBindingSettingsLabel)}),u(l.chatCompanionSettingsTelegramBindingSuffix)]})]}):r.jsxs("p",{className:"companionEmpty",children:[u(l.chatCompanionSettingsNoTelegramBindingState),r.jsx(Wt,{to:"/settings/cats",children:u(l.chatCompanionSettingsTelegramBindingSettingsLabel)}),u(l.chatCompanionSettingsTelegramBindingSuffix)]})]})]})}function mw({payload:e,cat:t,onBackToChat:a,onWake:o,onSleep:n,onCatAvatarSave:i,onDirectMessage:s,onStartNewChatWithCat:c,hideFeed:h=!1,hideCompanionToggle:u=!1}){const[g,p]=d.useState(!1),[f,w]=d.useState("overview"),{t:k}=_(),y=zk(t.id,e),m=Yk(t.id,f??"overview"),C=Vk({catId:t.id,enabled:!0}),v=Hk({catId:t.id,enabled:!0}),b=d.useCallback(()=>{o(t.id)},[t.id,o]),S=d.useCallback(()=>{n(t.id)},[t.id,n]),T=Ae(t.name),M=t.avatarUrl?{backgroundImage:`url(${t.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:t.avatarColor?{background:t.avatarColor}:void 0;function j(x){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:k(l.chatCompanionWorkspaceRetryLabel)})]}):null,x]})}const R={overview:j(r.jsx(nw,{summary:m.summary,recentMemory:m.memory,presence:y,onWake:b,onSleep:S,loading:m.loading})),resources:j(r.jsx(lw,{sources:m.sources,loading:m.loading,onAddSource:m.addSource,onDeleteSource:m.removeSource})),memory:j(r.jsx(dw,{memory:m.memory,loading:m.loading,onAddMemory:m.addMemory,onDeleteMemory:m.removeMemory})),settings:j(r.jsx(hw,{catId:t.id,responseProfile:m.responseProfile,payload:e,loading:m.loading,onUpdateResponseProfile:m.editResponseProfile})),inspector:j(r.jsx("div",{className:"companionEmptyState",children:r.jsx("p",{children:k(l.chatCompanionWorkspaceNoSelectionState)})}))},P=Gr.map(x=>({id:x,title:Rk(x,k),children:R[x]}));d.useEffect(()=>{f!==null&&!Gr.includes(f)&&w(Gr[0]??null)},[f]);function A(x){w(E=>E===x?null:x)}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:M,children:t.avatarUrl?null:T})})}),r.jsx("div",{className:"channelTopBarCenter",children:r.jsx("span",{className:"channelTopBarTitle channelTopBarTitleDirectLane",children:t.name})}),r.jsxs("div",{className:"channelTopBarEnd",children:[u?null:r.jsx(rw,{companionMode:!0,onToggle:a}),r.jsx("button",{className:"sidePanelToggle",type:"button",onClick:()=>p(x=>!x),"aria-label":k(l.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(Ak,{variant:"profile",title:t.name,avatarName:t.name,avatarUrl:t.avatarUrl,avatarColor:t.avatarColor,coverStorageKey:t.id,onAvatarSave:i?x=>i(t.id,x):void 0,alwaysEditable:!0,actions:r.jsxs(r.Fragment,{children:[r.jsxs("button",{type:"button",className:"companionHeaderAction companionHeaderActionPrimary",onClick:()=>s?.(t.id),disabled:!s,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"})}),k(l.conversationSidebarDirectMessageButton)]}),r.jsx("button",{type:"button",className:"companionHeaderAction companionHeaderActionIconOnly",onClick:()=>c?.(t.id),disabled:!c,"aria-label":k(l.chatSidebarPrimaryActionNewChat),title:k(l.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"})]})})]})}),h?null:r.jsx(aw,{cat:t,profile:C.profile,activity:v.projection})]})]}),g?r.jsx(kh,{title:k(l.chatCompanionWorkspaceSidePanelTitle),activeSection:f,onSectionToggle:A,onClose:()=>p(!1),position:"side",className:"chatPaneSidePanel chatPaneSidePanelBelowBar",sections:P}):null]})}function gw({catId:e}){const{t}=_();return r.jsx("div",{className:"screen screenCentered entityComingSoonScreen",children:r.jsxs("section",{className:"entityComingSoonPanel",children:[r.jsx("h1",{children:t(l.catProfileNotFoundTitle)}),r.jsx("p",{className:"entityComingSoonBody",children:t(l.catProfileNotFoundBody,{catId:e})})]})})}function kw(){const{catId:e}=ur(),t=Ue(),[a,o]=d.useState(null);if(d.useEffect(()=>{let k=!1;return ct().then(y=>{k||o(y)}).catch(()=>{}),()=>{k=!0}},[]),!a||!e)return r.jsx("div",{className:"catProfilePageBoot"});const n=a.chat.cats.find(k=>k.id===e);if(!n)return r.jsx(gw,{catId:e});const i=!fk(n),s=()=>{ct().then(k=>o(k)).catch(()=>{})},c=(k,y)=>{Ie(k,{avatarUrl:y}).then(()=>s()).catch(()=>{})},h=()=>{},u=()=>{},g=()=>{t("/entities/cats")},p=gr("chat"),f=k=>{t(Cn(p,k))},w=k=>{t(Ck(p,k))};return r.jsx(mw,{payload:a,cat:n,onBackToChat:g,onWake:h,onSleep:u,onCatAvatarSave:c,onDirectMessage:f,onStartNewChatWithCat:w,hideFeed:i,hideCompanionToggle:!0})}function ww(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 da(e,t){switch(t){case"native":return e;case"derived":return`derived ${e}`;default:return null}}function fw(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 bw(e){if(!e)return null;const t=[ww(e.normalizedStream.text.mode),da("tool use",e.normalizedStream.toolUse),da("tool results",e.normalizedStream.toolResult),da("progress",e.normalizedStream.progress),da("reasoning",e.normalizedStream.reasoning),da("transcript blocks",e.transcript.contentBlocks)].filter(n=>!!n),a=[];t.length>0&&a.push(`Runtime event surface: ${t.join(", ")}.`);const o=fw(e);return o&&a.push(o),a.length===0&&e.notes[0]?e.notes[0]:a.length>0?a.join(" "):null}function yw(e,t,a){return{provider:e,backend:null,instance:t?.trim()||null,defaultModel:null,source:"config",cache:null,models:[],warnings:a?[a]:[]}}function mc(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 vw(e){return{state:e.state,revision:e.revision,providers:Array.isArray(e.providers)?e.providers:[],recovery:e.recovery,warnings:Array.isArray(e.warnings)?e.warnings:[]}}function Cw(e,t=kr){return(e.providerCount??0)>0?t(l.sharedProviderModelFieldSelectProviderHint):!e.providersLoaded||e.registryState==="runtime_unreachable"?t(l.sharedProviderModelFieldLoadingProviders):t(l.sharedProviderModelFieldNoProviders)}function Sw(e,t=kr){return e.registry.providers.length>0?t(l.sharedProviderModelFieldRegistryStaleHint):!e.providersLoaded||e.registry.state==="runtime_unreachable"?t(l.sharedProviderModelFieldRegistryCheckingHint):t(l.sharedProviderModelFieldRegistryEmptyHint)}function Lw(e){const t=e.recovery?.openRuntimeSetupPath?.trim();return t||null}function gc(e,t){return!e.applicableEntryIds||e.applicableEntryIds.length===0||e.applicableEntryIds.includes(t)}function kc(e,t){return!e.applicableEntryIds||e.applicableEntryIds.length===0||e.applicableEntryIds.includes(t)}function Pw(e,t){return!e.applicableEntryIds||e.applicableEntryIds.length===0||e.applicableEntryIds.includes(t)}function Rw(e){return`${typeof e}:${String(e)}`}function Oa(e,t){const a=[],o=new Map,n=[];for(const i of e.values??[]){const s=Rw(i.value);a.includes(s)||a.push(s),Pw(i,t)&&o.set(s,i)}for(const i of a){const s=o.get(i);s&&n.push(s)}return n}function xw(e,t){return Oa(e,t).some(a=>typeof a.label=="string"&&/\(default\)/iu.test(a.label))}function wc(e,t,a){const o=Ro(a);if(o)return o;const n=Oa(e,t),s=n.find(c=>typeof c.label=="string"&&/\(default\)/iu.test(c.label))??(fc(e)?n[0]:void 0);return s?String(s.value):""}function fc(e){return e.key==="antigravity.effort"||e.key==="grok.reasoning_effort"}function Aw(e,t){if(e.kind==="number"){const a=Number(t);return Number.isFinite(a)?a:0}return e.kind==="boolean"?t==="true":t}function Ro(e){return typeof e=="boolean"?e?"true":"false":typeof e=="number"?String(e):typeof e=="string"?e:""}function Tw(e,t,a){return $l(e,{presetId:t,controls:a})}const Pn="__custom_legacy_model__";function Dw(e){return e==="full"?{labelKey:l.sharedProviderModelSupportAdvanced,tone:"advanced"}:e==="read_only"?{labelKey:l.sharedProviderModelSupportReadOnly,tone:"readOnly"}:null}function Nw(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 jw(e){return`${bc(e.label,e.default)}${Nw(e.status)}`}function bc(e,t){if(t===void 0)return e.replace(/\(default\)/giu,"(default)");const a=e.replace(/\s*\(default\)/giu,"");return t?`${a} (default)`:a}function ia(e,t,a={}){return e.filter(o=>o.scope!=="request"&&kc(o,t)).map(o=>({...o,...o.kind==="enum"&&o.values?{values:Oa(o,t).map(n=>({...n,label:bc(n.label,a[o.key]!==void 0?n.value===a[o.key]:void 0)}))}:{}}))}function Mw(e,t){return e.filter(a=>a.scope==="request"&&kc(a,t)).length}function yc(e,t,a){const o=e.entries.find(s=>s.id===t),n=e.presets.find(s=>s.id===a&&gc(s,t)),i=e.defaultSelection;return vc(e.controls,t,{...o?.controlDefaults,...n?.controlDefaults,...i?.entryId===t&&(i.presetId??"")===(a??"")?i.controls:{}})??{}}function vc(e,t,a){if(!a)return;const o=ia(e,t),n=new Map(o.map(s=>[s.key,s])),i=Object.entries(a).filter(([s,c])=>{const h=n.get(s);return h?h.kind!=="enum"||!h.values?.length?!0:Oa(h,t).some(u=>u.value===c):!1});return i.length>0?Object.fromEntries(i):void 0}function Cc(e,t,a){const o={...vc(e,t,a)};for(const n of ia(e,t)){if(n.key!=="grok.reasoning_effort"||o[n.key]!==void 0)continue;const i=wc(n,t,void 0);i&&(o[n.key]=i)}return Object.keys(o).length?o:void 0}function Ew(e,t){return e.values?.find(o=>o.value===t)?.label??String(t)}function Iw(e){const t=e.modelSelection?.controls;if(!e.entryId||!t)return null;const a=ia(e.controls,e.entryId),o=new Map(a.map(i=>[i.key,i])),n=new Map(e.controls.map(i=>[i.key,i]));for(const[i,s]of Object.entries(t)){const c=o.get(i),h=n.get(i),u=c?.label??h?.label??i;if(!c)return`${u} 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===s))return`${u} value ${Ew(h??c,s)} is not supported by ${e.entryId}; Cats will use the model default instead.`}return null}function Bw(e){const{entryId:t,modelSelection:a,effectiveAdvancedCatalog:o}=e;if(!t)return;const n=ia(o.controls,t);if(n.length===0)return;const i={},s=yc(o,t,a?.presetId);for(const c of n){const h=a?.controls?.[c.key];if(h!==void 0){i[c.key]=h;continue}const u=s?.[c.key];u!==void 0&&(i[c.key]=u)}return Object.keys(i).length>0?i:void 0}function Fw(e){return Al(e.catalog.provider,e.model)||e.catalog.source==="static"?!1:Vl(e)}function Ow(e){const t=tr(e.target.modelSelection);if(!t)return e.target;const a=Cc(e.controls,t.entryId??e.target.model,t.controls);return a?t.controls=a:delete t.controls,{...e.target,modelSelection:t,modelResolution:gg(e.target.modelResolution)}}function Sc(e){const t=e.model?.trim()||"",o=(e.effectiveAdvancedCatalog.entries.length>0?e.effectiveAdvancedCatalog.entries:e.effectiveCatalog.models).find(h=>h.id===t)?.label??null,n=t?ia(e.effectiveAdvancedCatalog.controls,t):[],i=Bw({entryId:t,modelSelection:e.modelSelection??null,effectiveAdvancedCatalog:e.effectiveAdvancedCatalog}),s=Fl(i,n),c=nn(e.provider,e.instance,e.model,null,s,o);return Il({provider:e.provider,instance:e.instance,model:e.model,modelSelection:e.modelSelection??null,executionLabel:c}),c}function ir(e){const t=e.target.model?.trim()??"";return t?{...e.target,executionLabel:Sc({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 Ww(e){return e.catalogSource==="static"&&e.advancedCatalogSource==="static"&&(!!e.model||!!e.modelSelection)}function Uw(e){return e.entryCount>0||e.isLegacyModelTarget}function Us(e){return e?.trim()||""}function Hw(e){return e.instanceOptions.length>1}function Gw(e){return e.instanceOptions.find(t=>jt(t)===e.resolvedInstance)?.eventCapabilities??null}function _w(e){return e.catalogProvider===e.provider&&Us(e.catalogInstance)===Us(e.instance)}function ZL(e){const{provider:t,instance:a,catalog:o,advancedCatalogResult:n,modelsResult:i,translate:s=kr}=e;if(n.status==="fulfilled")return n.value;if(i.status==="fulfilled"){const c=hm(o);return{...c,warnings:[...c.warnings,n.reason instanceof Error?n.reason.message:s(l.sharedProviderModelFieldAdvancedCatalogUnavailable)]}}return mc(t,a,n.reason instanceof Error?n.reason.message:s(l.sharedProviderModelFieldAdvancedCatalogUnavailable))}function Kw(e,t,a){return a?[]:e.presets.filter(o=>gc(o,t))}function qw(e){const{control:t,currentValues:a,rawValue:o}=e;if(o)return{...a,[t.key]:Aw(t,o)};const n=Object.entries(a).filter(([i])=>i!==t.key);return n.length>0?Object.fromEntries(n):void 0}function zw(e){const{selectedProvider:t,instance:a,model:o,modelSelection:n,catalogLoading:i,providersLoaded:s,providerRegistry:c,effectiveCatalog:h,effectiveAdvancedCatalog:u,isLegacyModelTarget:g,translate:p=kr}=e,f=t?Cr(t,a):"",w=u.entries.length>0?u.entries:h.models,k=Uw({entryCount:w.length,isLegacyModelTarget:g}),y=t?.instances??[],m=Hw({instanceOptions:y}),C=Gw({resolvedInstance:f,instanceOptions:y}),v=bw(C),b=w.some(ue=>ue.id===o)?o:w[0]?.id??"",S=g?Pn:b||"",T=Kw(u,b,g),M=!g&&T.some(ue=>ue.id===n?.presetId)?n?.presetId??"":"",j=yc(u,b,M),R=g?[]:ia(u.controls,b,j),P=g?null:Iw({controls:u.controls,entryId:b,modelSelection:n}),A=g?0:Mw(u.controls,b),x={...j,...n?.controls},E=Dw(u.support.tier),O=g?[]:w.find(ue=>ue.id===b)?.notes??[],$=u.warnings[0]??h.warnings[0]??null,K=Cw({providersLoaded:s,registryState:c.state,providerCount:c.providers.length},p),ee=c.providers.length>0,F=t?p(i?l.sharedProviderModelFieldLoadingModels:k?l.sharedProviderModelFieldSelectModel:l.sharedProviderModelFieldNoModels):s?c.state==="runtime_unreachable"&&!ee?p(l.sharedProviderModelFieldWaitingProviders):p(l.sharedProviderModelFieldSelectProviderFirst):p(l.sharedProviderModelFieldWaitingProviders),Y=Sw({providersLoaded:s,registry:c},p),H=Lw(c),ae=s&&c.providers.length===0&&c.recovery?.retryable!==!1;return{resolvedInstance:f,instanceOptions:y,showInstanceField:m,selectedInstanceCapabilitySummary:v,entryOptions:w,selectedCatalogEntryId:b,selectedEntryId:S,presetOptions:T,selectedPresetId:M,controlOptions:R,unsupportedSelectionWarning:P,requestScopedControlCount:A,controlValues:x,supportBadge:E,selectedEntryNotes:O,primaryCatalogWarning:$,providerPlaceholder:K,modelPlaceholder:F,providerRegistryHint:Y,providerRegistrySetupHref:H,canRetryProviderRegistry:ae,allowLegacyManualModelEntry:k}}function $w(e){const{controlOptions:t,selectedCatalogEntryId:a,controlValues:o,onControlChange:n}=e,{t:i}=_();return t.map(s=>{const c=o[s.key];if(s.kind==="boolean")return r.jsxs("label",{className:"fieldLabel providerControlField",children:[r.jsx("span",{children:s.label}),r.jsxs("select",{className:"textInput",value:Ro(c),onChange:h=>n(s,h.target.value),children:[r.jsx("option",{value:"",children:i(l.sharedProviderModelControlDefault)}),r.jsx("option",{value:"true",children:i(l.sharedProviderModelControlEnabled)}),r.jsx("option",{value:"false",children:i(l.sharedProviderModelControlDisabled)})]}),s.description?r.jsx("span",{className:"fieldHint",children:s.description}):null]},s.key);if(s.kind==="enum"&&s.values&&s.values.length>0){const h=Oa(s,a),u=!fc(s)&&!xw(s,a),g=wc(s,a,c);return r.jsxs("label",{className:"fieldLabel providerControlField",children:[r.jsx("span",{children:s.label}),r.jsxs("select",{className:"textInput",value:g,onChange:p=>n(s,p.target.value),children:[u?r.jsx("option",{value:"",children:i(l.sharedProviderModelControlDefault)}):null,h.map((p,f)=>r.jsx("option",{value:String(p.value),children:p.label},`${s.key}-${String(p.value)}-${f}`))]}),s.description?r.jsx("span",{className:"fieldHint",children:s.description}):null]},s.key)}return r.jsxs("label",{className:"fieldLabel providerControlField",children:[r.jsx("span",{children:s.label}),r.jsx("input",{className:"textInput",type:s.kind==="number"?"number":"text",value:Ro(c),min:s.kind==="number"?s.minimum:void 0,max:s.kind==="number"?s.maximum:void 0,step:s.kind==="number"?s.step??1:void 0,placeholder:i(l.sharedProviderModelControlOptionalPlaceholder),onChange:h=>n(s,h.target.value)}),s.description?r.jsx("span",{className:"fieldHint",children:s.description}):null]},s.key)})}const Vw=2e3,Yw=3e4;function Lc(e,t=3e4){let a=!1,o=!1,n=0,i=0,s;const c=typeof window>"u"?void 0:window,h=typeof document>"u"?void 0:document,u=()=>h?.visibilityState!=="hidden";function g(){clearTimeout(s),s=void 0,!(a||o||!u())&&(s=setTimeout(()=>{p()},Math.max(0,i-Date.now())))}async function p(f=!1){if(a||o||!f&&!u())return;clearTimeout(s),o=!0;let w=!1;try{w=await e()}catch{}finally{o=!1,n=w?0:n+1;const k=w?t:Math.min(Yw,Vw*2**Math.min(n-1,4));i=Date.now()+k,g()}}return c?.addEventListener("focus",g),c?.addEventListener("online",g),h?.addEventListener("visibilitychange",g),p(!0),()=>{a=!0,clearTimeout(s),c?.removeEventListener("focus",g),c?.removeEventListener("online",g),h?.removeEventListener("visibilitychange",g)}}function Qw(e){const{provider:t,resolvedInstance:a,hasSelectedProvider:o,selectionRevision:n}=e,i=a||null,s=JSON.stringify([t,i,n,o]);function c(){const p=o?Lg({provider:t,instance:i}):null;return{key:s,models:p??yw(t,i),resolved:p!==null,advanced:o&&Pg({provider:t,instance:i})||mc(t,i),loading:o&&!!t}}const[h,u]=d.useState(c);d.useEffect(()=>{let p=!1;const f=c();let w=!1,k=!1;if(u(f),!o||!t)return;function y(){p||u({...f})}function m(v){return _w({catalogProvider:v.provider,catalogInstance:v.instance,provider:t,instance:a})}const C=Lc(async()=>(w&&k&&(w=!1,k=!1),f.loading=!0,y(),await Promise.allSettled([w?Promise.resolve():e.fetchProviderModels(t,i).then(v=>{p||!m(v)||(w=!or(v),f.models=v,f.resolved=!0,y())}),k?Promise.resolve():e.fetchAdvancedProviderModels(t,i).then(v=>{p||!m(v)||(k=!or(v),f.advanced=v,y())})]),f.loading=!(w&&k),y(),!f.loading),6e4);return()=>{p=!0,C()}},[t,a,o,n,e.fetchProviderModels,e.fetchAdvancedProviderModels]);const g=h.key===s?h:c();return{catalogLoading:g.loading,catalogResolved:g.resolved,effectiveCatalog:g.models,effectiveAdvancedCatalog:g.advanced}}function Jw(e){const{providerOptions:t,provider:a,resolvedInstance:o,model:n,persistedLegacyModelTarget:i,selectedCatalogEntryId:s,selectedPresetId:c,presetOptions:h,controlValues:u,effectiveControls:g,effectiveCatalog:p,effectiveAdvancedCatalog:f,markManualSelection:w,markLegacyManualSelection:k,clearManualSelection:y,onTargetChange:m}=e,C=d.useCallback(P=>{const A=P.model??s,x=Cc(g,A,P.controls),E=P.presetId??null,O=Tw(A,E,x);w(),m(ir({target:{provider:a,instance:P.instance??o,model:A,modelSelection:O},effectiveCatalog:p,effectiveAdvancedCatalog:f}))},[f,p,g,w,m,a,o,s]),v=d.useCallback((P,A)=>{k(),m(ir({target:{provider:a,instance:A??o,model:P,modelSelection:null},effectiveCatalog:p,effectiveAdvancedCatalog:f}))},[f,p,k,m,a,o]),b=d.useCallback(P=>{const A=t.find(E=>E.id===P)??null;if(!A)return;const x=Cr(A,"");y(),m({provider:A.id,instance:x,model:"",modelSelection:null})},[y,m,t]),S=d.useCallback(P=>{y(),m({provider:a,instance:P,model:"",modelSelection:null})},[y,m,a]),T=d.useCallback(P=>{if(P===Pn){v(i?n:"");return}C({model:P,presetId:null,controls:void 0})},[v,C,n,i]),M=d.useCallback(P=>{v(P)},[v]),j=d.useCallback(P=>{const A=h.find(x=>x.id===P)??null;C({presetId:A?.id??null,controls:A?.controlDefaults?{...A.controlDefaults}:void 0})},[C,h]),R=d.useCallback((P,A)=>{C({presetId:c||null,controls:qw({control:P,currentValues:u,rawValue:A})})},[u,C,c]);return{onProviderChange:b,onInstanceChange:S,onModelEntryChange:T,onLegacyModelChange:M,onPresetChange:j,onControlChange:R}}function Xw(e){const[t,a]=d.useState(()=>vs()??{state:"runtime_unreachable",providers:[]}),[o,n]=d.useState(!!vs()),i=d.useRef(t),s=d.useRef(0),c=d.useRef(e.onProviderRegistryChange);return c.current=e.onProviderRegistryChange,d.useEffect(()=>{let h=!1;function u(f){if(h)return;const w=vw(f);i.current=w,a(w),n(!0),c.current?.(w)}const g=Ag(f=>{s.current++,u(f)}),p=Lc(async()=>{const f=++s.current;try{const w=await e.fetchProviderRegistry();!h&&f===s.current&&u(yo(i.current,w))}catch{!h&&f===s.current&&u(yo(i.current,{state:"runtime_unreachable",providers:[]}))}return i.current.state!=="runtime_unreachable"&&!or(i.current)});return()=>{h=!0,p(),g()}},[e.fetchProviderRegistry]),{providers:t.providers,providerRegistry:t,providersLoaded:o,providersLoading:!o||t.state==="runtime_unreachable"||or(t)}}function Zw(e){const[t,a]=d.useState(null),o=d.useRef(null),n=d.useRef(""),i=d.useRef(e.onTargetChange);d.useEffect(()=>{i.current=e.onTargetChange},[e.onTargetChange]);const s=`${e.provider}::${e.resolvedInstance}`,c=e.catalogResolved&&Fw({catalog:e.effectiveCatalog,model:e.model,modelSelection:e.modelSelection}),h=t===s||c,u=t===s&&(e.model?.trim()||"").length===0&&!e.modelSelection,g=o.current===s||!!e.modelSelection||h;d.useEffect(()=>{e.hasSelectedProvider&&(n.current!==s&&(n.current=s,o.current=null,a(null)),e.resolvedInstance&&e.resolvedInstance!==e.instance&&i.current(ir({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,s]),d.useEffect(()=>{if(e.catalogLoading||e.effectiveCatalog.models.length===0||u)return;const k=Al(e.provider,e.model);if(Ww({catalogSource:e.effectiveCatalog.source,advancedCatalogSource:e.effectiveAdvancedCatalog.source,model:e.model,modelSelection:e.modelSelection})&&(e.catalogLoading||!k))return;const m=wg({target:{provider:e.provider,instance:e.resolvedInstance,model:e.model,modelSelection:e.modelSelection},catalog:e.effectiveCatalog,advancedCatalog:e.effectiveAdvancedCatalog,preserveCurrentModel:g,preserveCurrentSelection:g}),C=Ow({target:m,controls:e.effectiveAdvancedCatalog.controls});(C.instance!==e.instance||C.model!==e.model||!kg(C.modelSelection,e.modelSelection))&&i.current(ir({target:C,effectiveCatalog:e.effectiveCatalog,effectiveAdvancedCatalog:e.effectiveAdvancedCatalog}))},[e.catalogLoading,e.effectiveAdvancedCatalog,e.effectiveCatalog,e.instance,e.model,e.modelSelection,e.provider,e.resolvedInstance,g,s,u]);function p(){o.current=null,a(null)}function f(){o.current=s,a(null)}function w(){o.current=s,a(s)}return{persistedLegacyModelTarget:c,isLegacyModelTarget:h,clearManualSelection:p,markManualSelection:f,markLegacyManualSelection:w}}function Pc({provider:e,instance:t,model:a,modelSelection:o,onTargetChange:n,fetchProviderRegistry:i,fetchProviderModels:s,fetchAdvancedProviderModels:c,onProviderRegistryChange:h}){const{t:u}=_(),{providers:g,providerRegistry:p,providersLoaded:f,providersLoading:w}=Xw({fetchProviderRegistry:i,onProviderRegistryChange:h}),k=g,y=k.find(W=>W.id===e)??null,m=y?Cr(y,t):"",{catalogLoading:C,catalogResolved:v,effectiveCatalog:b,effectiveAdvancedCatalog:S}=Qw({provider:e,resolvedInstance:m,hasSelectedProvider:!!y,selectionRevision:p.revision,fetchProviderModels:s,fetchAdvancedProviderModels:c}),{persistedLegacyModelTarget:T,isLegacyModelTarget:M,clearManualSelection:j,markManualSelection:R,markLegacyManualSelection:P}=Zw({provider:e,instance:t,model:a,modelSelection:o,resolvedInstance:m,hasSelectedProvider:!!y,catalogLoading:C,catalogResolved:v,effectiveCatalog:b,effectiveAdvancedCatalog:S,onTargetChange:n}),{entryOptions:A,instanceOptions:x,showInstanceField:E,selectedInstanceCapabilitySummary:O,selectedCatalogEntryId:$,selectedEntryId:K,presetOptions:ee,selectedPresetId:F,controlOptions:Y,unsupportedSelectionWarning:H,requestScopedControlCount:ae,controlValues:ue,supportBadge:G,selectedEntryNotes:I,providerPlaceholder:z,modelPlaceholder:re,allowLegacyManualModelEntry:X}=zw({selectedProvider:y,instance:t,model:a,modelSelection:o,catalogLoading:C,providersLoaded:f,providerRegistry:{...p,providers:k},effectiveCatalog:b,effectiveAdvancedCatalog:S,isLegacyModelTarget:M,translate:u}),{onProviderChange:pe,onInstanceChange:ve,onModelEntryChange:U,onLegacyModelChange:V,onPresetChange:D,onControlChange:B}=Jw({providerOptions:k,provider:e,resolvedInstance:m,model:a,persistedLegacyModelTarget:T,selectedCatalogEntryId:$,selectedPresetId:F,presetOptions:ee,controlValues:ue,effectiveControls:S.controls,effectiveCatalog:b,effectiveAdvancedCatalog:S,markManualSelection:R,markLegacyManualSelection:P,clearManualSelection:j,onTargetChange:n});return d.useEffect(()=>{const W=a.trim();if(!y||!W||C||!(S.entries.length>0?S.entries:b.models).some(oe=>oe.id===W))return;const q=Lm({provider:e,instance:m,model:W,modelSelection:o??null}),ne=Sc({provider:e,instance:m,model:W,modelSelection:o??null,effectiveCatalog:b,effectiveAdvancedCatalog:S});q!==ne&&n({provider:e,instance:m,model:W,modelSelection:o??null,executionLabel:ne})},[C,S,b,a,o,n,e,m,y]),r.jsxs(r.Fragment,{children:[r.jsxs("label",{className:"fieldLabel",children:[r.jsxs("span",{className:"fieldLabelInline",children:[r.jsx("span",{children:u(l.sharedProviderModelFieldProviderLabel)}),w?r.jsx(Hs,{label:u(l.sharedProviderModelFieldLoadingProviders)}):null]}),r.jsx("select",{className:"textInput",value:y?.id??"",disabled:k.length===0,onChange:W=>pe(W.target.value),children:k.length===0?r.jsx("option",{value:"",children:z}):r.jsxs(r.Fragment,{children:[y?null:r.jsx("option",{value:"",disabled:!0,children:u(l.sharedProviderModelFieldSelectProviderHint)}),k.map(W=>r.jsx("option",{value:W.id,children:W.label},W.id))]})})]}),E?r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:u(l.sharedProviderModelFieldProviderInstanceLabel)}),r.jsx("select",{className:"textInput",value:m,onChange:W=>ve(W.target.value),children:x.map(W=>r.jsx("option",{value:jt(W),children:W.label},jt(W)))})]}):null,O?r.jsx("span",{className:"fieldHint providerCatalogHint",children:O}):null,r.jsxs("label",{className:"fieldLabel",children:[r.jsxs("div",{className:"fieldLabelInline",children:[r.jsx("span",{children:u(l.sharedProviderModelFieldModelLabel)}),C?r.jsx(Hs,{label:u(l.sharedProviderModelFieldLoadingModels)}):null,G?r.jsx("span",{className:`providerSupportBadge providerSupportBadge${G.tone}`,children:u(G.labelKey)}):null]}),r.jsxs("select",{className:"textInput",value:K,disabled:!M&&A.length===0,onChange:W=>U(W.target.value),children:[!M&&A.length===0?r.jsx("option",{value:"",disabled:!0,children:re}):null,A.map(W=>r.jsx("option",{value:W.id,children:jw(W)},W.id)),X?r.jsx("option",{value:Pn,children:u(l.sharedProviderModelFieldCustomLegacyModelLabel)}):null]}),I.length>0?r.jsx("span",{className:"fieldHint",children:I[0]}):null]}),M?r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:u(l.sharedProviderModelFieldLegacyModelIdLabel)}),r.jsx("input",{className:"textInput",type:"text",value:a,placeholder:u(l.sharedProviderModelFieldLegacyModelIdPlaceholder),onChange:W=>V(W.target.value)}),r.jsx("span",{className:"fieldHint",children:u(l.sharedProviderModelFieldLegacyModelIdHint)})]}):r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:u(l.sharedProviderModelFieldModeLabel)}),r.jsxs("select",{className:"textInput",value:F,disabled:ee.length===0,onChange:W=>D(W.target.value),children:[r.jsx("option",{value:"",children:ee.length>0?u(l.sharedProviderModelFieldModeStandardLabel):u(l.sharedProviderModelFieldModeStandardOnlyLabel)}),ee.map(W=>r.jsxs("option",{value:W.id,disabled:W.availability==="unavailable",children:[W.label,W.availability==="preview"?u(l.sharedProviderModelFieldPresetPreviewSuffix):"",W.availability==="unavailable"?u(l.sharedProviderModelFieldPresetUnavailableSuffix):""]},W.id))]}),F?r.jsx("span",{className:"fieldHint",children:ee.find(W=>W.id===F)?.description??u(l.sharedProviderModelFieldPresetTuningDescriptionFallback)}):ee.length===0?r.jsx("span",{className:"fieldHint",children:u(l.sharedProviderModelFieldModeOnlyBaseHint)}):null]}),r.jsx($w,{controlOptions:Y,selectedCatalogEntryId:$,controlValues:ue,onControlChange:B}),H?r.jsx("span",{className:"fieldHint providerCatalogHint",children:H}):null,ae>0?r.jsx("span",{className:"fieldHint providerCatalogHint",children:u(l.sharedProviderModelFieldRequestScopedWarning)}):null]})}function Hs({label:e}){return r.jsx("span",{className:"providerPickerLoading",role:"status","aria-label":e,children:r.jsx("span",{className:"providerPickerSpinner","aria-hidden":"true"})})}function xe(e){const{children:t,className:a,variant:o="default",id:n}=e,i=["contentCard",o==="form"?"contentCardForm":null,"settings-section",a].filter(Boolean).join(" ");return r.jsxs("section",{className:i,"data-variant":o==="form"?"form":void 0,id:n,children:[e.headerless?null:e.header,t]})}function De(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 de({title:e,eyebrow:t,status:a,description:o,nested:n=!1}){const i=n?"h3":"h2",s=!!t,c=r.jsx(i,{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:[s?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 me({label:e,description:t,control:a,layout:o="inline",asChoice:n=!1,className:i}){if(n){const c=["settingsCheckboxRow","settings-option-row",i].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 s=["settings-option-row",i].filter(Boolean).join(" ");return o==="stack"?r.jsxs("div",{className:s,"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:s,"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 lt({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 ef={ready:"statusChipReady",warm:"statusChipWarm",muted:"statusChipMuted"};function st({tone:e,children:t,className:a}){const o=["statusChip",ef[e],"settings-status-chip",a].filter(Boolean).join(" ");return r.jsx("span",{className:o,"data-tone":e,children:t})}function tf({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 Ot({title:e,className:t="catsSubCard",...a}){const{t:o}=_(),n=e??o(l.sharedProviderModelBrainCardTitle);return r.jsx(De,{className:t,header:r.jsx(de,{title:n,nested:!0}),children:r.jsx(Pc,{...a})})}const af=3e3,rf=300;let of=1;function pt(){const[e,t]=d.useState([]),a=d.useRef(new Map),o=d.useCallback(n=>{if(!n)return;const i=of++;t(c=>[...c,{id:i,message:n,fading:!1}]);const s=setTimeout(()=>{t(h=>h.map(u=>u.id===i?{...u,fading:!0}:u));const c=setTimeout(()=>{t(h=>h.filter(u=>u.id!==i)),a.current.delete(i)},rf);a.current.set(i,c)},af);a.current.set(i,s)},[]);return d.useEffect(()=>()=>{for(const n of a.current.values())clearTimeout(n)},[]),{toasts:e,showToast:o}}function ht({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 Rn={kind:"idle"};function Ye(){return Rn}function nf(e){return!e||e.kind==="idle"}function eP(e){return!nf(e)}function tP(){return{kind:"draft"}}function aP(e){return{kind:"channel",channelId:e}}function rP(e,t){return{kind:"composer",phase:e,scope:t}}function oP(e){return{kind:"parallel-chat",phase:e}}function nP(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 sP(e){return{kind:"channel-participant",action:"update",participantId:e}}function iP(e,t){return{kind:"concurrent-group",action:e,groupId:t}}function Pt(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 sf(){return{kind:"setup",action:"reset"}}function lP(e,t){return{kind:"approval",taskId:e,action:t}}function cP(e,t){return{kind:"choice",sourceMessageId:e,status:t}}function dP(e,t){return{kind:"operator-action",action:e,busyKey:t}}function Gs(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 _s(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 uP(e,t){return e?.kind==="parallel-chat"&&(t==null||e.phase===t)}function pP(e,t,a){return e?.kind!=="channel"||e.action!==t?!1:t==="reset"?!0:"channelId"in e&&e.channelId===a}function hP(e,t){return e?.kind==="channel-participant"&&(t==null||e.participantId===t)}function mP(e,t,a){return e?.kind==="concurrent-group"&&e.action===t&&(a==null||e.groupId===a)}function be(e,t,a){return e?.kind!=="cat"||e.action!==t?!1:"catId"in e?a==null||e.catId===a:a==null}function lf(e){return e?.kind==="setup"&&e.action==="reset"}function gP(e,t,a){return e?.kind==="approval"&&(t==null||e.taskId===t)&&a==null}function kP(e,t,a){return e?.kind==="choice"&&(t==null||e.sourceMessageId===t)&&(a==null||e.status===a)}function lr(e,t,a){return e?.kind!=="bot"||e.action!==t?!1:"bindingId"in e?a==null||e.bindingId===a:a==null}function Zt(e,t,a){return e?.kind!=="memory"||e.action!==t?!1:"recordId"in e?a==null||e.recordId===a:a==null}function wP(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 cf=new Map([["Memory content is required.",l.sharedSettingsCatsMemoryContentRequired],["Memory content must be a non-empty string.",l.sharedSettingsCatsMemoryContentRequired],["Invalid memory category.",l.sharedSettingsCatsMemoryInvalidCategory]]),df=[/^cat memory create returned \d+$/u,/^cat memory delete returned \d+$/u];function uf(e,t){const a=cf.get(e);return a?t(a):e.startsWith("Cat memory not found:")?t(l.sharedSettingsCatsMemoryNotFound):e.startsWith("Cat not found:")?t(l.sharedSettingsCatsErrorNotFound):null}function Ks(e,t,a){if(!(e instanceof Error))return t;const o=uf(e.message,a);return o||(df.some(n=>n.test(e.message))?t:e.message)}function Rc(e){const{t}=_(),[a,o]=d.useState({category:"fact",content:""}),[n,i]=d.useState([]),[s,c]=d.useState(!1);d.useEffect(()=>{if(!e.expandedCatId){i([]),c(!1);return}let g=!1;return c(!0),Xg(e.expandedCatId).then(p=>{g||i(p)}).catch(()=>{g||i([])}).finally(()=>{g||c(!1)}),()=>{g=!0}},[e.expandedCatId]);async function h(g){if(a.content.trim()){e.onBusy(_s("create"));try{const p=await Zg(g,{category:a.category,content:a.content.trim()});i(f=>[p,...f.filter(w=>w.id!==p.id)]),o({category:"fact",content:""})}catch(p){e.onFeedback(Ks(p,t(l.sharedSettingsCatsMemorySaveError),t))}finally{e.onBusy(Ye())}}}async function u(g,p){e.onBusy(_s("delete",p));try{await ek(g,p),i(f=>f.filter(w=>w.id!==p))}catch(f){e.onFeedback(Ks(f,t(l.sharedSettingsCatsMemoryDeleteError),t))}finally{e.onBusy(Ye())}}return{memoryForm:a,setMemoryForm:o,catMemory:n,memoryLoading:s,addMemory:h,deleteMemory:u}}const pf=new Map([["Cat name is required",l.sharedSettingsCatsErrorNameRequired],["Cat provider is required",l.sharedSettingsCatsErrorProviderRequired],["Cat name cannot be empty",l.sharedSettingsCatsErrorNameEmpty],["Cat is already archived",l.sharedSettingsCatsErrorAlreadyArchived],["Cat is already active",l.sharedSettingsCatsErrorAlreadyActive],["Cat cannot be archived and recovered at the same time",l.sharedSettingsCatsErrorArchiveRecoverConflict],["Cat must be available in at least one product",l.sharedSettingsCatsErrorNoProducts],["Bot token is already used by another binding",l.sharedSettingsCatsErrorBotTokenDuplicate]]),hf=[/^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 mf(e,t){const a=pf.get(e);if(a)return t(a);const o=e.match(/^A cat named "(.+)" already exists$/u);if(o)return t(l.sharedSettingsCatsErrorNameDuplicate,{name:o[1]});const n=e.match(/^Cat limit reached \(max (\d+)\)$/u);return n?t(l.sharedSettingsCatsErrorLimitReached,{maxCats:n[1]}):e.startsWith("Cat not found:")?t(l.sharedSettingsCatsErrorNotFound):e.startsWith("Cat is not active:")?t(l.sharedSettingsCatsErrorNotActive):e.startsWith("Cat is not available in Cats Chat:")?t(l.sharedSettingsCatsErrorNotAvailableInChat):e.startsWith("Bot binding not found:")?t(l.sharedSettingsCatsErrorBotBindingNotFound):null}function ze(e,t,a){if(!(e instanceof Error))return t;const o=mf(e.message,a);return o||(hf.some(n=>n.test(e.message))?t:e.message)}function xc(){return{botName:"",botToken:"",webhookSecret:"",inboundMode:"polling"}}function gf(e){const t=e.t??$e("en");async function a(){e.onBusy(Pt("create"));try{const p=await qg({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!==dt?e.catForm.mcpProfile:void 0});return e.onPayloadUpdate(p),e.setCatForm(e.emptyCatForm()),e.onFeedback(t(l.sharedSettingsCatsSaveSuccess)),p}catch(p){return e.onFeedback(ze(p,t(l.sharedSettingsCatsSaveError),t)),null}finally{e.onBusy(Ye())}}async function o(p){return p.preventDefault(),a()}async function n(p){const f=e.renameValue.trim();if(f){e.onBusy(Pt("rename",p));try{const w=await Ie(p,{name:f});e.onPayloadUpdate(w),e.setRenameValue(""),e.onFeedback(t(l.sharedSettingsCatsRenameSuccess))}catch(w){e.onFeedback(ze(w,t(l.sharedSettingsCatsRenameError),t))}finally{e.onBusy(Ye())}}}async function i(p,f){e.onBusy(Pt("delete",p)),e.onFeedback("");try{const w=await Kg(p);e.onPayloadUpdate(w),e.onFeedback(t(l.sharedSettingsCatsDeleteSuccess,{catName:f})),e.expandedCatId===p&&e.setExpandedCatId(null)}catch(w){e.onFeedback(ze(w,t(l.sharedSettingsCatsDeleteError),t))}finally{e.onBusy(Ye())}}async function s(p){e.onBusy(Pt("makeBoss",p));try{const f=await Ie(p,{makeBoss:!0});e.onPayloadUpdate(f),e.onFeedback(t(l.sharedSettingsCatsBossUpdated))}catch(f){e.onFeedback(ze(f,t(l.sharedSettingsCatsSetBossCatError),t))}finally{e.onBusy(Ye())}}async function c(p,f){e.onBusy(Pt("skill",p));try{const w=await Ie(p,{skillProfile:f==="chat-default"?null:f});e.onPayloadUpdate(w)}catch(w){e.onFeedback(ze(w,t(l.sharedSettingsCatsSkillUpdateError),t))}finally{e.onBusy(Ye())}}async function h(p,f){e.onBusy(Pt("skill",p));try{const w=await Ie(p,{mcpProfile:f});e.onPayloadUpdate(w)}catch(w){e.onFeedback(ze(w,t(l.sharedSettingsCatsChangeMcpProfileError),t))}finally{e.onBusy(Ye())}}async function u(p){if(e.botForm.botName.trim()){e.onBusy(Gs("create"));try{const f=await Qg({botName:e.botForm.botName.trim(),catId:p,inboundMode:e.botForm.inboundMode,botToken:e.botForm.botToken.trim()||void 0,webhookSecret:e.botForm.inboundMode==="webhook"&&e.botForm.webhookSecret.trim()||void 0});e.onPayloadUpdate(f),e.setBotForm(xc()),e.onFeedback(t(l.sharedSettingsCatsTelegramBindingCreated))}catch(f){e.onFeedback(ze(f,t(l.sharedSettingsCatsTelegramBindingCreateError),t))}finally{e.onBusy(Ye())}}}async function g(p){e.onBusy(Gs("delete",p));try{const f=await Jg(p);e.onPayloadUpdate(f),e.onFeedback(t(l.sharedSettingsCatsTelegramBindingRemoved))}catch(f){e.onFeedback(ze(f,t(l.sharedSettingsCatsTelegramBindingRemoveError),t))}finally{e.onBusy(Ye())}}return{onCreateBinding:u,onCreateCat:o,performCreateCat:a,onDeleteBinding:g,onDeleteCat:i,onMakeBossCat:s,onMcpProfileChange:h,onRenameCat:n,onSkillChange:c}}const Ac=$e("en");function Tc(e,t){const a=e?.trim();return a||t}function fP(e,t=Ac){const a=Tc(e,t(l.sharedDeleteParallelChatGroupFallback));return{title:t(l.sharedDeleteParallelChatGroupTitle),message:t(l.sharedDeleteParallelChatGroupMessage,{groupTitle:a}),confirmLabel:t(l.sharedDeleteParallelChatGroupConfirm)}}function kf(e,t=Ac){const a=Tc(e,t(l.sharedDeleteCatFallback));return{title:t(l.sharedDeleteCatTitle),message:t(l.sharedDeleteCatMessage,{catName:a}),confirmLabel:t(l.sharedDeleteCatConfirm)}}function Dc(e){const{expandedCatId:t,setExpandedCatId:a,onBusy:o,onFeedback:n,onPayloadUpdate:i,confirm:s}=e,{t:c}=_(),[h,u]=d.useState(As),[g,p]=d.useState(""),[f,w]=d.useState(xc),k=d.useRef(!1),{onCreateBinding:y,performCreateCat:m,onDeleteBinding:C,onDeleteCat:v,onMakeBossCat:b,onMcpProfileChange:S,onRenameCat:T,onSkillChange:M}=gf({expandedCatId:t,setExpandedCatId:a,onBusy:o,onFeedback:n,onPayloadUpdate:i,catForm:h,setCatForm:u,renameValue:g,setRenameValue:p,botForm:f,setBotForm:w,emptyCatForm:As,t:c});async function j(E,O){if(!s||await s({title:c(l.sharedSettingsCatsArchiveConfirmTitle),message:c(l.sharedSettingsCatsArchiveConfirmMessage,{catName:O}),confirmLabel:c(l.sharedSettingsCatsArchiveLabel)})){o(Pt("archive",E)),n("");try{const K=await Ie(E,{archive:!0});i(K),n(c(l.sharedSettingsCatsArchiveSuccess,{catName:O})),t===E&&a(null)}catch(K){n(ze(K,c(l.sharedSettingsCatsArchiveError),c))}finally{o(Ye())}}}async function R(E,O){if(!s||await s({title:c(l.sharedSettingsCatsRecoverConfirmTitle),message:c(l.sharedSettingsCatsRecoverConfirmMessage,{catName:O}),confirmLabel:c(l.sharedSettingsCatsRecoverConfirmLabel)})){o(Pt("unarchive",E)),n("");try{const K=await Ie(E,{unarchive:!0});i(K),n(c(l.sharedSettingsCatsRecoverSuccess,{catName:O}))}catch(K){n(ze(K,c(l.sharedSettingsCatsRecoverError),c))}finally{o(Ye())}}}async function P(E,O){(!s||await s(kf(O,c)))&&await v(E,O)}async function A(){if(k.current)return null;k.current=!0;try{return await m()}finally{k.current=!1}}async function x(E){return E.preventDefault(),A()}return{botForm:f,catForm:h,renameValue:g,setBotForm:w,setCatForm:u,setRenameValue:p,onArchiveCat:j,onCreateBinding:y,onCreateCat:x,performCreateCat:A,onDeleteBinding:C,onDeleteCat:P,onMakeBossCat:b,onMcpProfileChange:S,onRenameCat:T,onSkillChange:M,onUnarchiveCat:R}}function wf(){return{started:!1,cancel:()=>{},promise:Promise.resolve()}}function ff(e){const t=[...e.botBindings??[]].map(a=>`${a.id}:${a.status}:${a.updatedAt}`).sort().join("|");return`${e.bossCatId??"no-boss-cat"}::${t}`}async function Nc(e){const[t,a]=await Promise.all([e.fetchStatus(),e.fetchDiagnostics()]);return{status:t,diagnostics:a}}function bf(e,t,a){let o=!1;a.onStart();const n=Nc(e).then(i=>{o||a.onSuccess(i)}).catch(i=>{o||a.onError(i instanceof Error?i.message:t)}).finally(()=>{o||a.onFinish()});return{started:!0,cancel:()=>{o=!0},promise:n}}function yf(e){let t=null;return{loadForScope(a,o,n){return a===t?wf():(t=a,bf(e,o,n))},resetScope(){t=null}}}function vf(e,t,a,o){const n=e.loadForScope(t,a,o);return{...n,cancel(){n.cancel(),e.resetScope()}}}const Cf=[/^telegram transport status returned \d+$/u,/^telegram transport diagnostics returned \d+$/u,/^polling reconnect returned \d+$/u];function qs(e,t){if(!(e instanceof Error)&&typeof e!="string")return t;const a=e instanceof Error?e.message:e;return Cf.some(o=>o.test(a))?t:a}function jc(e){const{t}=_(),a=e.chat.botBindings??[],o=ff({bossCatId:e.chat.bossCatId,botBindings:a}),n=t(l.sharedSettingsCatsTelegramDiagnosticsLoadError),[i,s]=d.useState(null),[c,h]=d.useState(null),[u,g]=d.useState(!1),[p,f]=d.useState(""),[w]=d.useState(()=>yf({fetchStatus:Ls,fetchDiagnostics:Ps}));d.useEffect(()=>vf(w,o,n,{onStart(){g(!0),f("")},onSuccess(m){s(m.status),h(m.diagnostics)},onError(m){s(null),h(null),f(qs(m,n))},onFinish(){g(!1)}}).cancel,[w,n,o]);async function k(){g(!0),f("");try{const y=await Nc({fetchStatus:Ls,fetchDiagnostics:Ps});s(y.status),h(y.diagnostics)}catch(y){s(null),h(null),f(qs(y,n))}finally{g(!1)}}return{botBindings:a,telegramStatus:i,telegramDiagnostics:c,telegramLoading:u,telegramError:p,refreshTelegramDiagnostics:k}}const ea=[{value:"chat-default",label:l.sharedSettingsCatsSkillProfileDefaultLabel},{value:"companion",label:l.sharedSettingsCatsSkillProfileCompanionLabel}],Ut=[{value:dt,label:l.sharedSettingsCatsMcpProfileChatMemoryLabel},{value:ic,label:l.sharedSettingsCatsMcpProfileWorkMemoryLabel}],xn=[{value:"preference",label:l.sharedSettingsCatsMemoryCategoryPreferenceLabel},{value:"fact",label:l.sharedSettingsCatsMemoryCategoryFactLabel},{value:"policy",label:l.sharedSettingsCatsMemoryCategoryPolicyLabel},{value:"style",label:l.sharedSettingsCatsMemoryCategoryStyleLabel},{value:"relationship",label:l.sharedSettingsCatsMemoryCategoryRelationshipLabel},{value:"lesson",label:l.sharedSettingsCatsMemoryCategoryLessonLabel}];function Mc(e){return e==="chat-default"?l.sharedSettingsCatsSkillProfileDefaultLabel:e==="companion"?l.sharedSettingsCatsSkillProfileCompanionLabel:null}function Ec(e){return!e||e===dt?l.sharedSettingsCatsMcpProfileChatMemoryLabel:e===ic?l.sharedSettingsCatsMcpProfileWorkMemoryLabel:null}function Ic(e){const t=xn.find(a=>a.value===e);return t?t.label:null}function Bc(e){return e==="active"?l.sharedSettingsCatsStatusActive:e==="archived"?l.sharedSettingsCatsStatusArchived:null}function Fc(e){return e==="chat"?l.platformProductChatSettingsLabel:e==="code"?l.platformProductCodeSettingsLabel:e==="work"?l.platformProductWorkSettingsLabel:null}function Oc(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function Sf({memoryForm:e,setMemoryForm:t,busyCreating:a,onSubmit:o,onClose:n}){const{t:i}=_();d.useEffect(()=>{function c(h){h.key==="Escape"&&!a&&n()}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[a,n]);const s=!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(),!s&&o()},children:[r.jsx("p",{className:"catsDialogTitle",children:i(l.sharedMemoryEditorDialogTitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedMemoryEditorDialogCategoryLabel)}),r.jsx("select",{className:"textInput",value:e.category,onChange:c=>t({...e,category:c.target.value}),children:xn.map(c=>r.jsx("option",{value:c.value,children:i(c.label)},c.value))})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedMemoryEditorDialogContentLabel)}),r.jsx("textarea",{className:"textInput",rows:4,placeholder:i(l.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:i(l.sharedMemoryEditorDialogCancel)}),r.jsx("button",{className:"primaryButton",type:"submit",disabled:s,children:i(a?l.sharedMemoryEditorDialogSaving:l.sharedMemoryEditorDialogAdd)})]})]})})}function Lf({botForm:e,setBotForm:t,busyCreating:a,onSubmit:o,onClose:n}){const{t:i}=_();d.useEffect(()=>{function c(h){h.key==="Escape"&&!a&&n()}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[a,n]);const s=!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(),!s&&o()},children:[r.jsx("p",{className:"catsDialogTitle",children:i(l.sharedTelegramConnectDialogTitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedTelegramConnectBotUsernameLabel)}),r.jsx("input",{className:"textInput",placeholder:i(l.sharedTelegramConnectBotUsernamePlaceholder),value:e.botName,onChange:c=>t({...e,botName:c.target.value}),autoFocus:!0})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedTelegramConnectBotTokenLabel)}),r.jsx("input",{className:"textInput",type:"password",placeholder:i(l.sharedTelegramConnectBotTokenPlaceholder),value:e.botToken,onChange:c=>t({...e,botToken:c.target.value})})]}),r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.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:i(l.sharedTelegramConnectModePolling)}),r.jsx("button",{type:"button",className:e.inboundMode==="webhook"?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>t({...e,inboundMode:"webhook"}),children:i(l.sharedTelegramConnectModeWebhook)})]})]}),e.inboundMode==="webhook"?r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedTelegramConnectWebhookSecretLabel)}),r.jsx("input",{className:"textInput",placeholder:i(l.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:i(l.sharedTelegramConnectCancel)}),r.jsx("button",{className:"primaryButton",type:"submit",disabled:s,children:i(a?l.sharedTelegramConnectConnecting:l.sharedTelegramConnectConnect)})]})]})})}function xo({busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:i,telegramDiagnostics:s,confirm:c,sections:h}){const u=H=>h===void 0||h.includes(H),{botForm:g,renameValue:p,setBotForm:f,setRenameValue:w,onCreateBinding:k,onDeleteBinding:y,onMakeBossCat:m,onMcpProfileChange:C,onRenameCat:v,onSkillChange:b}=i,{memoryForm:S,setMemoryForm:T,catMemory:M,memoryLoading:j,addMemory:R,deleteMemory:P}=n,A=t.filter(H=>H.catId===a.id),x=s?.bindings.filter(H=>H.bindingId&&A.some(ae=>ae.id===H.bindingId))??[],E=a.status==="active"&&Jo(a.products,"chat",{fallback:wr()}),{t:O}=_(),[$,K]=d.useState(!1);d.useEffect(()=>{A.length>0&&K(!1)},[A.length]),d.useEffect(()=>{K(!1)},[a.id]);const[ee,F]=d.useState(!1),Y=d.useRef(M.length);return d.useEffect(()=>{const H=Y.current;ee&&M.length>H&&F(!1),Y.current=M.length},[ee,M.length]),d.useEffect(()=>{F(!1)},[a.id]),r.jsxs(r.Fragment,{children:[u("rename")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:O(l.sharedSettingsCatsRenameLabel)}),r.jsxs("div",{style:{display:"flex",gap:8},children:[r.jsx("input",{className:"textInput",placeholder:a.name,value:p,onChange:H=>w(H.target.value),onFocus:()=>w(a.name)}),r.jsx("button",{className:"primaryButton",type:"button",disabled:!p.trim()||p.trim()===a.name||be(e,"rename",a.id),onClick:()=>{v(a.id)},children:be(e,"rename",a.id)?O(l.sharedSettingsCatsSaving):O(l.sharedSettingsCatsSave)})]})]}):null,u("makeBoss")&&!o?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:O(l.sharedSettingsCatsBossCatLabel)}),r.jsx("button",{className:"primaryButton",type:"button",disabled:be(e,"makeBoss",a.id),onClick:async()=>{(!c||await c({title:O(l.sharedSettingsCatsChangeBossCatTitle),message:O(l.sharedSettingsCatsChangeBossCatMessage,{name:a.name}),confirmLabel:O(l.sharedSettingsCatsConfirm)}))&&m(a.id)},children:be(e,"makeBoss",a.id)?O(l.sharedSettingsCatsSetting):O(l.sharedSettingsCatsMakeBossCatLabel,{name:a.name})})]}):null,u("skill")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:O(l.sharedSettingsCatsSkillProfileLabel)}),r.jsx("div",{className:"skillPills",children:ea.map(H=>r.jsx("button",{className:(a.skillProfile??"chat-default")===H.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",type:"button",disabled:be(e,"skill",a.id),onClick:()=>{b(a.id,H.value)},children:O(H.label)},H.value))})]}):null,u("mcp")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:O(l.sharedSettingsCatsMcpProfileLabel)}),r.jsx("div",{className:"skillPills",children:Ut.map(H=>r.jsx("button",{className:(a.mcpProfile??dt)===H.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",type:"button",disabled:be(e,"skill",a.id),onClick:()=>{C(a.id,H.value)},children:O(H.label)},H.value))})]}):null,u("telegram")?A.length>0?r.jsx("div",{className:"catsTelegramConnected",children:A.map(H=>{const ae=x.find(ue=>ue.bindingId===H.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":`@${H.botName}`,children:["@",H.botName]}),r.jsx("button",{type:"button",className:"catsInlineDeleteButton catsTelegramBindingDisconnect",disabled:lr(e,"delete",H.id),onClick:()=>{y(H.id)},"aria-label":O(l.sharedSettingsCatsDisconnectTelegramAria),"data-tooltip":O(l.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 ${H.status==="active"?"statusChipReady":"statusChipMuted"}`,children:H.status==="active"?O(l.sharedSettingsCatsBindingActive):O(l.sharedSettingsCatsBindingDisabled)}),r.jsx("span",{className:"statusChip statusChipMuted",children:H.inboundMode==="polling"?O(l.sharedSettingsCatsBindingPollingMode):O(l.sharedSettingsCatsBindingWebhookMode)}),ae?.lastInboundAt?r.jsx("span",{className:"catsTelegramBindingLastInbound",children:O(l.sharedSettingsCatsLastInboundLabel,{time:Oc(ae.lastInboundAt)})}):null]})]},H.id)})}):r.jsxs("div",{className:"catsTelegramEmpty",children:[r.jsx("button",{type:"button",className:"primaryButton",disabled:!E,onClick:()=>K(!0),children:O(l.sharedSettingsCatsConnectTelegramLabel)}),E?null:r.jsx("p",{className:"catsTelegramHint",children:O(l.sharedSettingsCatsUnavailableHint)})]}):null,$?r.jsx(Lf,{botForm:g,setBotForm:f,busyCreating:lr(e,"create"),onSubmit:()=>{k(a.id)},onClose:()=>K(!1)}):null,u("memory")?r.jsxs("div",{className:"catsMemorySection",children:[M.length>0?r.jsx("div",{className:"memoryList",children:M.map(H=>r.jsx(Pf,{busy:e,memoryRecord:H,onDelete:()=>{P(a.id,H.id)}},H.id))}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:Zt(e,"create"),onClick:()=>F(!0),children:O(l.sharedSettingsCatsAddMemoryLabel)})]}):null,ee?r.jsx(Sf,{memoryForm:S,setMemoryForm:T,busyCreating:Zt(e,"create"),onSubmit:()=>{R(a.id)},onClose:()=>F(!1)}):null]})}function Pf({busy:e,memoryRecord:t,onDelete:a}){const{t:o}=_(),n=Ic(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:Zt(e,"delete",t.id),onClick:a,"aria-label":o(l.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 Rf({busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:i,telegramDiagnostics:s,onPayloadUpdate:c,confirm:h}){const[u,g]=d.useState(!1),{t:p}=_();async function f(k){g(!1);try{const y=await Ie(a.id,{avatarUrl:k});c?.(y)}catch{}}async function w(){try{const k=await Ie(a.id,{avatarUrl:null});c?.(k)}catch{}}return r.jsxs("div",{className:"catDetailPanel",children:[r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:p(l.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?"":Ae(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?p(l.settingsGeneralAvatarChangeLabel):p(l.settingsGeneralAvatarUploadLabel)}),a.avatarUrl?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>{w()},children:p(l.settingsGeneralAvatarRemoveLabel)}):null]})]})]}),u?r.jsx(sa,{onSave:k=>{f(k)},onClose:()=>g(!1)}):null,r.jsx(xo,{busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:i,telegramDiagnostics:s,confirm:h})]})}function xf({botBindings:e,busy:t,expandedCatId:a,memoryController:o,payload:n,registryController:i,setExpandedCatId:s,telegramDiagnostics:c,availableSurfaces:h,enabledSurfaces:u,onPayloadUpdate:g,confirm:p,CatsDetailPanelComponent:f}){const{t:w}=_(),[k,y]=d.useState(!1),m=n.chat.cats.filter(b=>b.status==="archived").length,C=k?n.chat.cats:n.chat.cats.filter(b=>b.status!=="archived"),v=Xt(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:w(l.sharedSettingsCatsRegistrySectionLabel)}),r.jsx("h2",{children:n.chat.cats.length>0?w(l.sharedSettingsCatsRegistrySavedCatsLabel):w(l.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:k,onChange:b=>y(b.target.checked)}),r.jsx("span",{children:w(l.sharedSettingsCatsRegistryShowArchivedLabel,{count:m})})]}):null,r.jsx("div",{className:"catList",children:v.length>0?v.map(b=>{const S=b.id===n.chat.bossCatId,T=a===b.id,M=e.filter(A=>A.catId===b.id),j=Bc(b.status),R=b.skillProfile?Mc(b.skillProfile):l.sharedSettingsCatsRegistryDefaultSkillProfileLabel,P=Ec(b.mcpProfile);return r.jsxs("article",{className:"catCard",children:[r.jsxs("div",{className:"catCardTop",style:{cursor:"pointer"},onClick:()=>s(T?null:b.id),children:[r.jsxs("div",{children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[r.jsx("strong",{children:b.name}),S?r.jsx("span",{className:"statusChip statusChipAccent",children:w(l.sharedSettingsCatsRegistryBossCatLabel)}):null]}),r.jsx("p",{children:lc(b)}),b.products.length>0?r.jsx("div",{className:"chipRow",style:{marginTop:4},children:b.products.map(A=>{const x=Fc(A);return r.jsx("span",{className:"productBadge",children:x?w(x):A},A)})}):null]}),r.jsxs("div",{style:{display:"flex",alignSelf:"start",alignItems:"center",gap:8},children:[r.jsx("span",{className:b.status==="active"?"statusChip statusChipReady":"statusChip statusChipMuted",children:j?w(j):b.status}),b.status==="archived"?r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"chromeButton",type:"button",disabled:be(t,"unarchive",b.id)||be(t,"delete",b.id),onClick:A=>{A.stopPropagation(),i.onUnarchiveCat(b.id,b.name)},"data-tooltip":w(l.sharedSettingsCatsRegistryRecoverTooltip,{name:b.name}),children:r.jsx("span",{className:"srOnly",children:w(l.sharedSettingsCatsRegistryRecoverLabel)})}),r.jsx("button",{className:"chromeButton",type:"button",disabled:be(t,"delete",b.id),onClick:A=>{A.stopPropagation(),i.onDeleteCat(b.id,b.name)},"data-tooltip":w(l.sharedSettingsCatsRegistryDeleteTooltip,{name:b.name}),children:"✕"})]}):r.jsx("button",{className:"chromeButton",type:"button",disabled:be(t,"archive",b.id),onClick:A=>{A.stopPropagation(),i.onArchiveCat(b.id,b.name)},"data-tooltip":w(l.sharedSettingsCatsRegistryArchiveTooltip,{name:b.name}),children:"✕"})]})]}),r.jsxs("div",{className:"catMeta",children:[r.jsx("span",{children:R?w(R):b.skillProfile}),r.jsx("span",{children:P?w(P):b.mcpProfile}),r.jsx("span",{children:b.memory.updatedAt?w(l.sharedSettingsCatsRegistryMemorySavedLabel):w(l.sharedSettingsCatsRegistryNoMemoryYetLabel)}),M.length>0?r.jsx("span",{children:w(l.sharedSettingsCatsRegistryBotBindingCount,{count:M.length,pluralSuffix:M.length>1?"s":""})}):null]}),T?r.jsx(f,{busy:t,botBindings:e,cat:b,isBossCat:S,memoryController:o,registryController:i,telegramDiagnostics:c,availableSurfaces:h,enabledSurfaces:u,onPayloadUpdate:g,confirm:p}):null]},b.id)}):r.jsx("div",{className:"emptyStateCard",children:r.jsx("p",{children:w(l.sharedSettingsCatsRegistryEmptyStateHint)})})})]})}function Af(e){return r.jsx(xf,{...e,CatsDetailPanelComponent:Rf})}function Tf(e,t){const a=new Set(e.map(o=>o.id));return t.find(o=>o.status==="active"&&!a.has(o.id))??null}function Df({payload:e,busy:t,onPayloadUpdate:a,onFeedback:o,onBusy:n,useSettingsCatsRegistryActionsHook:i}){const[s,c]=d.useState(null),{toasts:h,showToast:u}=pt(),{dialog:g,confirm:p,handleClose:f}=Gt(),w=Ne(),k=Ue(),y=w.pathname.endsWith("/cats/new"),{t:m}=_();d.useEffect(()=>{o("")},[]);const C=d.useCallback(L=>{L&&u(L)},[u]),v=i({expandedCatId:s,setExpandedCatId:c,onBusy:n,onFeedback:C,onPayloadUpdate:a,confirm:p}),{botForm:b,catForm:S,renameValue:T,setBotForm:M,setCatForm:j,setRenameValue:R,onCreateBinding:P,onCreateCat:A,performCreateCat:x,onDeleteBinding:E,onDeleteCat:O,onMakeBossCat:$,onMcpProfileChange:K,onArchiveCat:ee,onUnarchiveCat:F,onRenameCat:Y,onSkillChange:H}=v,{botBindings:ae,telegramDiagnostics:ue,telegramError:G}=jc(e);d.useEffect(()=>{G&&C(G)},[G,C]);const I=Rc({expandedCatId:s,onBusy:n,onFeedback:C}),z=d.useMemo(()=>e.chat.cats.filter(L=>L.status==="active"),[e.chat.cats]),re=d.useMemo(()=>e.chat.cats.filter(L=>L.status==="archived"),[e.chat.cats]),X=z.length,pe=d.useMemo(()=>Xt(z,{bossCatIds:e.chat.bossCatId}),[z,e.chat.bossCatId]),ve=d.useMemo(()=>Xt(re,{bossCatIds:null}),[re]),U=X>=e.chat.capabilities.maxCats,[V,D]=d.useState(()=>e.chat.cats.filter(L=>L.status==="active").length===0&&e.chat.cats.some(L=>L.status==="archived")),[B,W]=d.useState(()=>pe[0]?.id??ve[0]?.id??null),Z=X>0||ve.length>0,q=y||!Z?"create":"view";d.useEffect(()=>{if(q!=="view")return;const L=B?e.chat.cats.find(ie=>ie.id===B)??null:null,Q=L?.status==="archived"&&!V;if(!L||Q){const ie=pe[0]??(V?ve[0]:null);ie?W(ie.id):(W(null),w.pathname.endsWith("/cats/new")||k("/settings/cats/new",{replace:!0}))}},[q,w.pathname,k,e.chat.cats,B,V,pe,ve]),d.useEffect(()=>{q==="view"&&B&&c(B)},[q,B]);const ne=d.useMemo(()=>({current:X}),[]),oe=d.useMemo(()=>({current:new Set(z.map(L=>L.id))}),[]);d.useEffect(()=>{if(X>ne.current){const L=oe.current,Q=pe.find(ie=>!L.has(ie.id))??pe[pe.length-1];Q&&W(Q.id),w.pathname.endsWith("/cats/new")&&k("/settings/cats",{replace:!0})}ne.current=X,oe.current=new Set(z.map(L=>L.id))},[X,z,w.pathname,k,a,ne,oe,pe]);const He=L=>{W(L),w.pathname.endsWith("/cats/new")&&k("/settings/cats",{replace:!0})},Te=()=>{U||k("/settings/cats/new")},N=d.useMemo(()=>B?e.chat.cats.find(L=>L.id===B)??null:null,[e.chat.cats,B]);d.useEffect(()=>{N?.status==="archived"&&D(!0)},[N]);const ke=d.useRef(null);d.useEffect(()=>{if(q==="create"&&y){const L=ke.current;L?.focus(),L?.select()}},[q,y]);const[je,Me]=d.useState(!1),[J,he]=d.useState(null),[we,Be]=d.useState(null);d.useEffect(()=>{y||(he(null),Be(null))},[y]);const Je=async L=>{if(Me(!1),q==="create"){he(L);return}if(N)try{const Q=await Ie(N.id,{avatarUrl:L});a(Q)}catch{}},gt=async()=>{if(q==="create"){he(null);return}if(N)try{const L=await Ie(N.id,{avatarUrl:null});a(L)}catch{}},[te,Oe]=d.useState(null),[Ge,qe]=d.useState(!1);d.useEffect(()=>{if(!N){Oe(null);return}return Oe(Aa(N.id)),Ln(N.id,Oe)},[N?.id]);const Nt=L=>{if(qe(!1),q==="create"){Be(L);return}N&&Ft(N.id,L)},Se=()=>{if(q==="create"){Be(null);return}N&&Ft(N.id,null)},le=N?.status==="archived",at=d.useCallback(async(L,Q,ie)=>{try{const Ve=await Ie(L,Q);return a(Ve),!0}catch(Ve){return C(ze(Ve,ie,m)),!1}},[a,m,C]),Ar=async()=>{const L=await x(),Q=L?Tf(z,L.chat.cats):null;if(Q){if(W(Q.id),w.pathname.endsWith("/cats/new")&&k("/settings/cats",{replace:!0}),J)try{const ie=await Ie(Q.id,{avatarUrl:J});a(ie),he(null)}catch(ie){he(null),C(ze(ie,m(l.settingsGeneralSaveAvatarError),m))}we&&(Ft(Q.id,we),Be(null))}};return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"catsLayout catsLayoutSidePanel",children:[r.jsxs("nav",{className:"catsSelectorStrip",role:"tablist","aria-label":m(l.sharedSettingsCatsSelectCatAria),children:[pe.map(L=>{const Q=q==="view"&&L.id===B,Ve=["catAvatar","catsSelectorAvatar",L.id===e.chat.bossCatId?"catsSelectorAvatarBoss":"",Q?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":Q,className:Ve,style:L.avatarUrl?{backgroundImage:`url(${L.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:L.avatarColor?{background:L.avatarColor}:void 0,onClick:()=>He(L.id),"data-tooltip":L.name,"aria-label":L.name,children:L.avatarUrl?null:Ae(L.name)},L.id)}),r.jsx("button",{type:"button",className:["catAvatar","catsSelectorAvatar","catsSelectorNewAvatar",q==="create"?"catsSelectorAvatarActive":""].filter(Boolean).join(" "),onClick:Te,disabled:U&&q!=="create","aria-label":m(l.sharedSettingsCatsAddNewCatLabel),"data-tooltip":m(U?l.sharedCatsCreateCatLimitReached:l.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"})]})}),V&&ve.length>0?r.jsx("span",{className:"catsSelectorDivider","aria-hidden":"true"}):null,V?ve.map(L=>{const Q=q==="view"&&L.id===B,ie=["catAvatar","catsSelectorAvatar","catsSelectorAvatarArchived",Q?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":Q,className:ie,style:L.avatarUrl?{backgroundImage:`url(${L.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:L.avatarColor?{background:L.avatarColor}:void 0,onClick:()=>He(L.id),"data-tooltip":`${L.name} (${m(l.workObjectStatusArchived)})`,"aria-label":`${L.name} (${m(l.workObjectStatusArchived)})`,children:L.avatarUrl?null:Ae(L.name)},L.id)}):null,re.length>0?r.jsxs("label",{className:"catsSelectorArchiveToggle",children:[r.jsx("input",{type:"checkbox",checked:V,onChange:L=>D(L.target.checked)}),r.jsx("span",{children:m(l.sharedSettingsCatsShowArchivedLabel,{count:re.length})})]}):null]}),r.jsx(xe,{className:"catsDetailCard",header:r.jsx(de,{title:q==="create"?m(l.sharedCatsCreateNewCat):N?r.jsxs(r.Fragment,{children:[N.name,N.id===e.chat.bossCatId?r.jsx("span",{className:"catsDetailBossTag",children:m(l.sharedCatInspectBossLabel)}):null,N.status==="archived"?r.jsx("span",{className:"catsDetailArchivedTag",children:m(l.workObjectStatusArchived)}):null]}):"",status:q==="view"&&N?r.jsx(lt,{children:N.status==="active"?r.jsx("button",{type:"button",className:"secondaryButton",disabled:be(t,"archive",N.id),onClick:()=>{ee(N.id,N.name)},children:m(l.sharedSettingsCatsArchiveLabel)}):r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:be(t,"unarchive",N.id),onClick:()=>{F(N.id,N.name)},children:m(l.sharedSettingsCatsRegistryRecoverLabel)}),r.jsx("button",{type:"button",className:"dangerButton",disabled:be(t,"delete",N.id),onClick:()=>{O(N.id,N.name)},children:m(l.sharedSettingsCatsDeleteLabel)})]})}):q==="create"?r.jsxs(lt,{children:[X>0?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>k("/settings/cats",{replace:!0}),disabled:be(t,"create"),children:m(l.sharedCatsCreateCancel)}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:!S.name.trim()||!S.provider.trim()||!S.model.trim()||U||be(t,"create"),onClick:()=>{Ar()},children:be(t,"create")?m(l.sharedSettingsCatsSaving):m(l.sharedCatsCreateSaveCat)})]}):null}),children:q==="create"?r.jsxs("div",{className:"catsDetailBody",children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsxs(De,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:m(l.settingsGeneralAvatarLabel)}),r.jsxs("div",{className:"catsIdentityAvatarRow",children:[r.jsxs("div",{className:"catsAvatarDock",children:[r.jsx("button",{type:"button",className:["catAvatar","catsIdentityAvatar",J?"":"catsIdentityAvatarPlaceholder"].filter(Boolean).join(" "),style:J?{backgroundImage:`url(${J})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:void 0,onClick:()=>Me(!0),"aria-label":m(J?l.settingsGeneralAvatarChangeLabel:l.settingsGeneralAvatarUploadLabel),"data-tooltip":m(J?l.settingsGeneralAvatarChangeLabel:l.settingsGeneralAvatarUploadLabel),children:J?"":S.name.trim()?Ae(S.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"})]})}),J?r.jsx("button",{type:"button",className:"catsAvatarRemoveBadge",onClick:L=>{L.stopPropagation(),he(null)},"aria-label":m(l.settingsGeneralAvatarRemoveLabel),"data-tooltip":m(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:"fieldLabelInline catsIdentityBossToggle",children:[r.jsx("input",{type:"checkbox",checked:S.makeBoss,onChange:async L=>{const Q=L.target.checked;if(Q&&e.chat.bossCatId){const ie=e.chat.cats.find(Tr=>Tr.id===e.chat.bossCatId);if(!await p({title:m(l.sharedSettingsCatsChangeBossCatTitle),message:m(l.sharedSettingsCatsChangeBossCatMessage,{name:ie?.name??(S.name.trim()||m(l.sharedCatsCreateNewCat))}),confirmLabel:m(l.sharedSettingsCatsConfirm)}))return}j({...S,makeBoss:Q})}}),r.jsx("span",{children:m(l.sharedSettingsCatsMakeBossCatLabel,{name:S.name.trim()||m(l.sharedCatsCreateNewCat)})})]})]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:m(l.settingsGeneralNameLabel)}),r.jsx("input",{ref:ke,className:"textInput",value:S.name,placeholder:m(l.sharedCatsCreateCatNamePlaceholder),onChange:L=>j({...S,name:L.target.value})})]}),r.jsxs("div",{className:"fieldLabel catsCoverField",children:[r.jsx("span",{children:m(l.sharedSettingsCatsCoverPhotoLabel)}),r.jsxs("div",{className:"catsCoverDock",children:[r.jsx("button",{type:"button",className:`catsCoverThumb${we?" catsCoverThumbLoaded":" catsCoverThumbPlaceholder"}`,style:we?{backgroundImage:`url(${we})`}:void 0,onClick:()=>qe(!0),"aria-label":m(we?l.sharedSettingsCatsChangeCoverPhotoLabel:l.sharedSettingsCatsUploadCoverPhotoLabel),"data-tooltip":m(we?l.sharedSettingsCatsChangeCoverLabel:l.sharedSettingsCatsUploadCoverLabel),children:we?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"})]})}),we?r.jsx("button",{type:"button",className:"catsCoverRemoveBadge",onClick:L=>{L.stopPropagation(),Be(null)},"aria-label":m(l.sharedSettingsCatsRemoveCoverLabel),"data-tooltip":m(l.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(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsSkillProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:ea.map(L=>r.jsx("button",{type:"button",className:(S.skillProfile||"chat-default")===L.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>j({...S,skillProfile:L.value}),children:m(L.label)},L.value))})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsMcpProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:Ut.map(L=>r.jsx("button",{type:"button",className:(S.mcpProfile||dt)===L.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>j({...S,mcpProfile:L.value}),children:m(L.label)},L.value))})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Ot,{provider:S.provider,instance:S.instance,model:S.model,modelSelection:S.modelSelection,onTargetChange:L=>j({...S,provider:L.provider,instance:L.instance,model:L.model,modelSelection:L.modelSelection??null}),fetchProviderRegistry:Et,fetchProviderModels:It,fetchAdvancedProviderModels:Bt})})]}):N?r.jsxs("fieldset",{className:le?"catsDetailBody catsDetailBodyReadOnly":"catsDetailBody",disabled:le,children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsxs(De,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:m(l.settingsGeneralAvatarLabel)}),r.jsxs("div",{className:"catsIdentityAvatarRow",children:[r.jsxs("div",{className:"catsAvatarDock",children:[r.jsx("button",{type:"button",className:"catAvatar catsIdentityAvatar",style:N.avatarUrl?{backgroundImage:`url(${N.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:N.avatarColor?{background:N.avatarColor}:void 0,onClick:()=>{le||Me(!0)},disabled:le,"aria-label":N.avatarUrl?m(l.settingsGeneralAvatarChangeLabel):m(l.settingsGeneralAvatarUploadLabel),"data-tooltip":le?void 0:N.avatarUrl?m(l.settingsGeneralAvatarChangeLabel):m(l.settingsGeneralAvatarUploadLabel),children:N.avatarUrl?"":Ae(N.name)}),le?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"})]})}),N.avatarUrl&&!le?r.jsx("button",{type:"button",className:"catsAvatarRemoveBadge",onClick:L=>{L.stopPropagation(),gt()},"aria-label":m(l.settingsGeneralAvatarRemoveLabel),"data-tooltip":m(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]}),!le&&N.id!==e.chat.bossCatId?r.jsxs("label",{className:"fieldLabelInline catsIdentityBossToggle",children:[r.jsx("input",{type:"checkbox",checked:!1,onChange:async L=>{L.target.checked&&(e.chat.bossCatId&&e.chat.bossCatId!==N.id&&(e.chat.cats.find(ie=>ie.id===e.chat.bossCatId),!await p({title:m(l.sharedSettingsCatsChangeBossCatTitle),message:m(l.sharedSettingsCatsChangeBossCatMessage,{name:N.name}),confirmLabel:m(l.sharedSettingsCatsConfirm)}))||await at(N.id,{makeBoss:!0},m(l.sharedSettingsCatsSetBossCatError)))}}),r.jsx("span",{children:m(l.sharedSettingsCatsMakeBossCatLabel,{name:N.name})})]}):null]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:m(l.settingsGeneralNameLabel)}),r.jsx("input",{className:"textInput",defaultValue:N.name,placeholder:N.name,disabled:le,onBlur:async L=>{const Q=L.currentTarget.value.trim();if(!Q){L.currentTarget.value=N.name;return}if(Q===N.name)return;await at(N.id,{name:Q},m(l.settingsGeneralUpdateNameError))||(L.currentTarget.value=N.name)}},N.id)]}),r.jsxs("div",{className:"fieldLabel catsCoverField",children:[r.jsx("span",{children:m(l.sharedSettingsCatsCoverPhotoLabel)}),r.jsxs("div",{className:"catsCoverDock",style:N.avatarColor?{"--cat-avatar-color":N.avatarColor}:void 0,children:[r.jsx("button",{type:"button",className:`catsCoverThumb${te?" catsCoverThumbLoaded":""}`,style:te?{backgroundImage:`url(${te})`}:void 0,onClick:()=>{le||qe(!0)},disabled:le,"aria-label":m(te?l.sharedSettingsCatsChangeCoverPhotoLabel:l.sharedSettingsCatsUploadCoverPhotoLabel),"data-tooltip":le?void 0:m(te?l.sharedSettingsCatsChangeCoverLabel:l.sharedSettingsCatsUploadCoverLabel)}),le?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"})]})}),te&&!le?r.jsx("button",{type:"button",className:"catsCoverRemoveBadge",onClick:L=>{L.stopPropagation(),Se()},"aria-label":m(l.sharedSettingsCatsRemoveCoverLabel),"data-tooltip":m(l.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(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsSkillProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:ea.map(L=>{const Q=(N.skillProfile??"chat-default")===L.value;return r.jsx("button",{type:"button",className:Q?"draftLeadPill draftLeadPillActive":"draftLeadPill",disabled:le||Q,onClick:()=>{at(N.id,{skillProfile:L.value},m(l.sharedSettingsCatsChangeSkillProfileError))},children:m(L.label)},L.value)})})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsMcpProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:Ut.map(L=>{const Q=(N.mcpProfile??dt)===L.value;return r.jsx("button",{type:"button",className:Q?"draftLeadPill draftLeadPillActive":"draftLeadPill",disabled:le||Q,onClick:()=>{at(N.id,{mcpProfile:L.value},m(l.sharedSettingsCatsChangeMcpProfileError))},children:m(L.label)},L.value)})})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsChannelLabel),nested:!0}),children:r.jsx(xo,{busy:t,botBindings:ae,cat:N,isBossCat:N.id===e.chat.bossCatId,memoryController:I,registryController:{botForm:b,renameValue:T,setBotForm:M,setRenameValue:R,onCreateBinding:P,onDeleteBinding:E,onMakeBossCat:$,onMcpProfileChange:K,onRenameCat:Y,onSkillChange:H},telegramDiagnostics:ue,confirm:p,sections:["telegram"]})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsMemoryLabel),nested:!0}),children:r.jsx(xo,{busy:t,botBindings:ae,cat:N,isBossCat:N.id===e.chat.bossCatId,memoryController:I,registryController:{botForm:b,renameValue:T,setBotForm:M,setRenameValue:R,onCreateBinding:P,onDeleteBinding:E,onMakeBossCat:$,onMcpProfileChange:K,onRenameCat:Y,onSkillChange:H},telegramDiagnostics:ue,confirm:p,sections:["memory"]})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Ot,{provider:N.defaultExecutionTarget.provider??"",instance:N.defaultExecutionTarget.instance??"",model:N.defaultExecutionTarget.model??"",modelSelection:N.defaultModelSelection??null,onTargetChange:L=>{at(N.id,{provider:L.provider,instance:L.instance||null,model:L.model||null,modelSelection:L.modelSelection??null},m(l.sharedSettingsCatsUpdateBrainError))},fetchProviderRegistry:Et,fetchProviderModels:It,fetchAdvancedProviderModels:Bt})})]}):null})]}),r.jsx(_t,{dialog:g,onClose:f}),r.jsx(ht,{toasts:h}),je?r.jsx(sa,{onSave:L=>{Je(L)},onClose:()=>Me(!1),initialDataUrl:q==="create"?J:N?.avatarUrl??null}):null,Ge?r.jsx(Sn,{onSave:Nt,onClose:()=>qe(!1),initialDataUrl:q==="create"?we:te}):null]})}function Nf(e){return r.jsx(Df,{...e,useSettingsCatsRegistryActionsHook:Dc,CatsRegistryComponent:Af})}function jf(){const[e,t]=d.useState(null),[a,o]=d.useState(Rn),[,n]=d.useState("");return d.useEffect(()=>{let i=!1;return ct().then(s=>{i||t(s)}).catch(()=>{}),()=>{i=!0}},[]),e?r.jsx(Nf,{payload:e,busy:a,onPayloadUpdate:t,onFeedback:n,onBusy:o}):r.jsx("div",{className:"catsCanvasPageBoot"})}function Wc({ariaLabel:e,avatar:t,title:a,subtitle:o,actions:n,tabs:i,children:s}){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:i.map(c=>r.jsx(Wt,{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:s})]})}const Uc=["members","clowders","cats","settings"],Mf={members:l.catteryHomeTabMembers,clowders:l.catteryHomeTabClowders,cats:l.catteryHomeTabCats,settings:l.catteryHomeTabSettings},Ef={members:l.catteryHomeEmptyMembers,clowders:l.catteryHomeEmptyClowders,cats:l.catteryHomeEmptyCats};function If(e){return typeof e=="string"&&Uc.includes(e)}function Bf(e,t){return(e.lobby.catteries??[]).find(a=>a.id===t)??null}function Ff({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:Ae(e.name)})}function Of({tab:e}){const{t}=_();return r.jsx("div",{className:"entityDetailLensStub",children:r.jsx("p",{children:t(Ef[e])})})}function Wf(){const{t:e}=_();return r.jsx("div",{className:"entityDetailLensStub",children:r.jsx("p",{children:e(l.catteryHomeSettingsBody)})})}function Uf({catteryId:e}){const{t}=_();return r.jsx("div",{className:"screen screenCentered entityComingSoonScreen",children:r.jsxs("section",{className:"entityComingSoonPanel",children:[r.jsx("h1",{children:t(l.catteryHomeNotFoundTitle)}),r.jsx("p",{className:"entityComingSoonBody",children:t(l.catteryHomeNotFoundBody,{catteryId:e})})]})})}function zs({envelope:e}){const{t}=_(),a=ur(),o=a.catteryId??"",n=Bf(e,o),i=If(a.tab)?a.tab:"members";if(!n)return r.jsx(Uf,{catteryId:o});const s=Uc.map(c=>({key:c,label:t(Mf[c]),href:`/entities/catteries/${encodeURIComponent(n.id)}/${c}`,active:c===i}));return r.jsx(Wc,{ariaLabel:t(l.catteryHomeAriaLabel),avatar:r.jsx(Ff,{cattery:n}),title:n.name,tabs:s,children:i==="settings"?r.jsx(Wf,{}):r.jsx(Of,{tab:i})})}const Hc=["cats","settings"],Hf={cats:l.clowderHomeTabCats,settings:l.clowderHomeTabSettings};function Gf(e){return typeof e=="string"&&Hc.includes(e)}function _f(e,t){return(e.lobby.clowders??[]).find(a=>a.id===t)??null}function Kf(e,t){return(e.lobby.catteries??[]).find(o=>o.id===t)?.name??null}function qf({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:Ae(e.name)})}function zf(){const{t:e}=_();return r.jsx("div",{className:"entityDetailLensStub",children:r.jsx("p",{children:e(l.clowderHomeEmptyCats)})})}function $f(){const{t:e}=_();return r.jsx("div",{className:"entityDetailLensStub",children:r.jsx("p",{children:e(l.clowderHomeSettingsBody)})})}function Vf({clowderId:e}){const{t}=_();return r.jsx("div",{className:"screen screenCentered entityComingSoonScreen",children:r.jsxs("section",{className:"entityComingSoonPanel",children:[r.jsx("h1",{children:t(l.clowderHomeNotFoundTitle)}),r.jsx("p",{className:"entityComingSoonBody",children:t(l.clowderHomeNotFoundBody,{clowderId:e})})]})})}function $s({envelope:e}){const{t}=_(),a=ur(),o=a.clowderId??"",n=_f(e,o),i=Gf(a.tab)?a.tab:"cats";if(!n)return r.jsx(Vf,{clowderId:o});const s=Hc.map(u=>({key:u,label:t(Hf[u]),href:`/entities/clowders/${encodeURIComponent(n.id)}/${u}`,active:u===i})),c=n.parentCatteryId!==null?Kf(e,n.parentCatteryId):null,h=n.parentCatteryId!==null?t(l.clowderHomeChipPartOf,{catteryName:c??n.parentCatteryId}):t(l.clowderHomeChipCrossUnit);return r.jsx(Wc,{ariaLabel:t(l.clowderHomeAriaLabel),avatar:r.jsx(qf,{clowder:n}),title:n.name,subtitle:h,tabs:s,children:i==="cats"?r.jsx(zf,{}):r.jsx($f,{})})}function Yf({className:e,menuRef:t,style:a,onClick:o,children:n}){const i=r.jsx("div",{ref:t,className:e,style:a,onClick:o,children:n});return typeof document>"u"?i:Vt.createPortal(i,document.body)}function Qf(e,t,a){const[o,n]=d.useState(void 0);if(d.useLayoutEffect(()=>{if(!a){n(void 0);return}function i(){const c=e.current;if(!c)return;const h=c.getBoundingClientRect(),u=t.current?.offsetWidth??136,g=t.current?.offsetHeight??0;let p=h.right+8;p+u>window.innerWidth-8&&(p=Math.max(8,h.left-u-8));let f=h.top-4;g>0&&f+g>window.innerHeight-8&&(f=Math.max(8,window.innerHeight-g-8)),n({position:"fixed",top:f,left:p})}i();const s=e.current?.closest(".sidebarScrollable");return window.addEventListener("resize",i),s?.addEventListener("scroll",i,{passive:!0}),()=>{window.removeEventListener("resize",i),s?.removeEventListener("scroll",i)}},[e,t,a]),!!a)return o??{position:"fixed",top:0,left:0,visibility:"hidden",pointerEvents:"none"}}function Jf({cat:e,isBoss:t,isActive:a,hasTelegramBinding:o,dotClass:n,dotTitle:i,overflowOpen:s,catInitials:c,onDirectChat:h,onArchive:u,onOverflowToggle:g,onDirectMessage:p,terminalActionLabelKey:f,terminalActionDisabled:w}){const{t:k}=_(),y=d.useRef(null),m=d.useRef(null),C=Qf(y,m,s);return r.jsxs("div",{className:["myCatRow",a?"myCatRowActive":"",s?"myCatRowOverflowOpen":""].filter(Boolean).join(" "),onClick:h,children:[r.jsxs("button",{className:a?"myCatItem myCatItemActive":"myCatItem",type:"button",onClick:v=>{v.stopPropagation(),h()},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":i}):null]}),r.jsx("span",{className:"myCatName",children:e.name})]}),r.jsxs("span",{className:"myCatTrailing",children:[o?r.jsx("span",{className:"myCatTelegramIcon","data-tooltip":k(l.conversationSidebarTelegramBoundTooltip),"aria-label":k(l.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:y,className:"myCatOverflowButton",type:"button",onClick:v=>{v.stopPropagation(),g()},children:"⋯"})]}),s?r.jsxs(Yf,{menuRef:m,className:"myCatOverflowMenu",style:C,onClick:v=>v.stopPropagation(),children:[p?r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",onClick:p,children:k(l.conversationSidebarDirectMessageButton)}),r.jsx("hr",{className:"myCatOverflowMenuDivider","aria-hidden":"true"})]}):null,r.jsx("button",{type:"button",disabled:w===!0,onClick:u,children:k(f??l.conversationSidebarArchiveButton)})]}):null]})}function Gc({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 Xf({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:i=>{i.stopPropagation(),n()},disabled:!o,children:[r.jsx("span",{className:"myCatAvatarWrap catAvatar catAvatarPlaceholder","aria-hidden":"true",children:r.jsx(Gc,{iconKind:a??"singlePerson"})}),r.jsx("span",{className:"myCatName myCatNamePlaceholder",children:e})]})})}function $r({label:e,cats:t,bossCatId:a,payloadChannels:o,activeMyCatId:n,telegramBoundCatIds:i,helpers:s,overflowMenuOpenId:c,onOverflowMenuToggle:h,onDirectChatCat:u,onArchiveCat:g,emptyStatePlaceholder:p,onDirectMessageCat:f,terminalActionLabelKey:w,disableTerminalActionWhenDraft:k=!1,hideLabel:y=!1}){const{t:m}=_(),C=s.sortCatsForDisplay(t.filter(b=>b.status==="active"),{bossCatIds:a}),v=C.length===0&&p!=null;return r.jsxs("section",{className:y?"myCatsSection myCatsSectionHeaderless":"myCatsSection",children:[y?null:r.jsx("p",{className:"sectionLabel",children:e??m(l.conversationSidebarDirectMessagesLabel)}),r.jsxs("div",{className:"myCatsList",children:[v?r.jsx(Xf,{label:p.label,onClick:p.onClick,iconKind:p.iconKind}):null,C.map(b=>{const S=b.id===a,T=n===b.id,M=i.has(b.id),j=s.findDirectLaneForCat(o,b.id),R=s.resolveMyCatStatusDot(j?.defaultRecipientLeaseStatus),P=s.statusDotClassName(R),A=s.statusDotLabel(R),x=A?m(A):"",E=`cat:${b.id}`,O=c===E,$=k&&!j;return r.jsx(Jf,{cat:b,isBoss:S,isActive:T,hasTelegramBinding:M,dotClass:P,dotTitle:x,overflowOpen:O,catInitials:s.catInitials,onDirectChat:()=>u(b.id),onArchive:()=>{h(null),g(b.id)},onOverflowToggle:()=>h(O?null:E),onDirectMessage:f?()=>{h(null),f(b.id)}:void 0,terminalActionLabelKey:w,terminalActionDisabled:$},b.id)})]})]})}const ft=3,Vr=5;function Vs(e){return{id:e.id,name:e.name,avatarUrl:e.avatarUrl,avatarColor:e.avatarColor,isBoss:e.isBoss}}function Zf(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 Ys(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 Qs(e){return{id:e.id,name:e.name,avatarUrl:e.avatarUrl,avatarColor:null,isBoss:!1}}function Js(e){return{id:e.id,name:e.name,avatarUrl:e.avatarUrl,avatarColor:null,isBoss:!1}}function eb({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:Ae(e.name)})}function tb(e){const t=Zf(e.lobby.cats),a=Ys(e.lobby.clowders??[]),o=Ys(e.lobby.catteries??[]);return[{key:"cats",headerLabelKey:l.entityIndexColumnHeaderCats,rows:t.slice(0,ft).map(Vs),overflowAvatarRows:t.slice(ft,ft+Vr).map(Vs),totalCount:t.length,routePath:"/entities/cats",detailPathPrefix:"/entities/cats/",placeholderLabelKey:l.entitiesSidebarNewCat,placeholderIconKind:"singlePerson",placeholderTarget:"/settings/cats/new"},{key:"clowders",headerLabelKey:l.entityIndexColumnHeaderClowders,rows:a.slice(0,ft).map(Qs),overflowAvatarRows:a.slice(ft,ft+Vr).map(Qs),totalCount:a.length,routePath:"/entities/clowders",detailPathPrefix:"/entities/clowders/",placeholderLabelKey:l.entitiesSidebarNewClowder,placeholderIconKind:"groupPeople",placeholderTarget:null},{key:"catteries",headerLabelKey:l.entityIndexColumnHeaderCatteries,rows:o.slice(0,ft).map(Js),overflowAvatarRows:o.slice(ft,ft+Vr).map(Js),totalCount:o.length,routePath:"/entities/catteries",detailPathPrefix:"/entities/catteries/",placeholderLabelKey:l.entitiesSidebarNewCattery,placeholderIconKind:"orgChart",placeholderTarget:null}]}function _c({envelope:e}){const{t}=_(),a=Ue(),o=tb(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(l.entityIndexCardOpenCanvasAriaLabel,{label:t(n.headerLabelKey)}),onClick:()=>a(n.routePath)}),r.jsx("div",{className:"platformLobbyCardAccent"}),r.jsx("ul",{className:"entityIndexCardItems",children:Array.from({length:ft},(i,s)=>{const c=n.rows[s];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(eb,{row:c}),r.jsx("span",{className:"entityIndexName",children:c.name})]})},c.id);if(s===0&&n.totalCount===0){const h=n.placeholderTarget;return r.jsx("li",{className:"entityIndexRow entityIndexRowPlaceholder",children:r.jsxs("button",{type:"button",className:"entityIndexItem entityIndexItemPlaceholder",disabled:h===null,onClick:h===null?void 0:u=>{u.stopPropagation(),a(h)},children:[r.jsx("span",{className:"entityIndexAvatar entityIndexAvatarPlaceholder","aria-hidden":"true",children:r.jsx(Gc,{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-${s}`)})}),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(i=>r.jsx("span",{className:"entityIndexAvatar entityIndexAvatarStacked",style:i.avatarUrl?{backgroundImage:`url(${i.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:i.avatarColor?{background:i.avatarColor}:void 0,children:i.avatarUrl?null:Ae(i.name)},i.id))}):null,r.jsx("span",{className:"entityIndexCardTotal",children:t(l.entityIndexCardTotal,{count:n.totalCount})})]}):null]})]},n.key))})}function ab({envelope:e}){const{t}=_();return r.jsxs("div",{className:"entityCanvas entityCanvas--index","aria-label":t(l.entitiesShellAriaLabel),children:[r.jsx("header",{className:"entityCanvasHeader",children:r.jsxs("div",{children:[r.jsx("p",{className:"eyebrow",children:t(l.entityIndexEyebrow)}),r.jsx("h1",{className:"entityCanvasTitle",children:t(l.entityIndexTitle)})]})}),r.jsx(_c,{envelope:e})]})}function rb(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 ob(e){return e.slice(0,10)||e}function Xs({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:Ae(e.name)})}function Yr({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 nb({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(Wt,{to:a.href,children:a.value}):r.jsx("strong",{children:a.value})]},a.key))})}function Kc({kind:e,entries:t,titleKey:a,eyebrowKey:o,emptyStateKey:n,ariaLabelKey:i,detailHeadingKey:s,relationHeadingKey:c,relationEmptyKey:h,openActionKey:u,totals:g}){const{t:p}=_(),f=d.useMemo(()=>[...t].sort(rb),[t]),[w,k]=d.useState(null),y=f.find(m=>m.id===w)??f[0]??null;return r.jsxs("div",{className:`entityCanvas entityCanvas--${e}`,"aria-label":p(i),children:[r.jsxs("header",{className:"entityCanvasHeader",children:[r.jsxs("div",{children:[r.jsx("p",{className:"eyebrow",children:p(o)}),r.jsx("h1",{className:"entityCanvasTitle",children:p(a)})]}),g.length>0?r.jsx(Yr,{metrics:g,className:"entityCanvasTotals"}):null]}),f.length===0?r.jsx("section",{className:"contentCard entityCanvasEmpty",children:r.jsx("p",{children:p(n)})}):r.jsxs("div",{className:"entityCanvasBody",children:[r.jsx("section",{className:"contentCard entityCanvasRegistry","aria-label":p(a),children:r.jsx("ul",{className:"entityCanvasRows",children:f.map(m=>r.jsx("li",{children:r.jsxs("button",{type:"button",className:y?.id===m.id?"entityCanvasRow entityCanvasRowActive":"entityCanvasRow",onClick:()=>k(m.id),"aria-current":y?.id===m.id?"page":void 0,children:[r.jsx(Xs,{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(Yr,{metrics:m.metrics,className:"entityCanvasRowMetrics"})]})},m.id))})}),y?r.jsxs("aside",{className:"contentCard entityCanvasDetail","aria-label":y.name,children:[r.jsxs("header",{className:"entityCanvasDetailHeader",children:[r.jsx(Xs,{entry:y}),r.jsxs("div",{children:[r.jsx("p",{className:"eyebrow",children:p(s)}),r.jsx("h2",{children:y.name})]})]}),r.jsx(Yr,{metrics:[...y.detailMetrics,{key:"createdAt",label:p(l.entityCanvasCreatedLabel),value:ob(y.createdAt)},{key:"id",label:p(l.entityCanvasIdLabel),value:y.id}],className:"entityCanvasDetailMeta"}),r.jsxs("section",{className:"entityCanvasRelationSection",children:[r.jsx("h3",{children:p(c)}),r.jsx(nb,{relations:y.relations,emptyLabel:p(h)})]}),r.jsx(Wt,{className:"secondaryButton entityCanvasOpenLink",to:y.routePath,children:p(u)})]}):null]})]})}function qc(e){return e.filter(t=>Number(t.value)>0)}function sb({envelope:e}){const{t}=_(),a=new Map((e.lobby.catteries??[]).map(i=>[i.id,i])),o=e.lobby.clowders??[],n=o.map(i=>{const s=i.parentCatteryId?a.get(i.parentCatteryId)??null:null,c=s?.name??i.parentCatteryId;return{id:i.id,name:i.name,avatarUrl:i.avatarUrl,createdAt:i.createdAt,routePath:`/entities/clowders/${encodeURIComponent(i.id)}`,subtitle:c?t(l.clowderHomeChipPartOf,{catteryName:c}):t(l.clowderHomeChipCrossUnit),metrics:[{key:"cats",label:t(l.entityCanvasCatsLabel),value:i.catCount},{key:"members",label:t(l.entityCanvasMembersLabel),value:i.memberCount}],detailMetrics:[{key:"cats",label:t(l.entityCanvasCatsLabel),value:i.catCount},{key:"members",label:t(l.entityCanvasMembersLabel),value:i.memberCount}],relations:[c?{key:"parentCattery",label:t(l.entityCanvasParentCatteryLabel),value:c,href:s?`/entities/catteries/${encodeURIComponent(s.id)}`:void 0}:{key:"parentCattery",label:t(l.entityCanvasParentCatteryLabel),value:t(l.clowderHomeChipCrossUnit)}]}});return r.jsx(Kc,{kind:"clowders",entries:n,titleKey:l.clowdersListTitle,eyebrowKey:l.clowdersListEyebrow,emptyStateKey:l.clowdersListEmptyState,ariaLabelKey:l.clowdersCanvasAriaLabel,detailHeadingKey:l.entityCanvasSelectedClowderLabel,relationHeadingKey:l.entityCanvasOrganizationLabel,relationEmptyKey:l.entityCanvasNoOrganizationLabel,openActionKey:l.entityCanvasOpenClowderAction,totals:qc([{key:"total",label:t(l.entityCanvasTotalLabel),value:o.length},{key:"cats",label:t(l.entityCanvasCatsLabel),value:o.reduce((i,s)=>i+s.catCount,0)},{key:"members",label:t(l.entityCanvasMembersLabel),value:o.reduce((i,s)=>i+s.memberCount,0)}])})}function ib({envelope:e}){const{t}=_(),a=e.lobby.clowders??[],o=e.lobby.catteries??[],n=o.map(i=>{const s=a.filter(c=>c.parentCatteryId===i.id);return{id:i.id,name:i.name,avatarUrl:i.avatarUrl,createdAt:i.createdAt,routePath:`/entities/catteries/${encodeURIComponent(i.id)}`,subtitle:t(l.entityCanvasCatterySubtitle,{clowderCount:String(i.clowderCount),memberCount:String(i.memberCount)}),metrics:[{key:"members",label:t(l.entityCanvasMembersLabel),value:i.memberCount},{key:"clowders",label:t(l.entityCanvasClowdersLabel),value:i.clowderCount}],detailMetrics:[{key:"members",label:t(l.entityCanvasMembersLabel),value:i.memberCount},{key:"clowders",label:t(l.entityCanvasClowdersLabel),value:i.clowderCount},{key:"cats",label:t(l.entityCanvasCatsLabel),value:i.catCount}],relations:s.map(c=>({key:c.id,label:t(l.entityCanvasFormalClowderLabel),value:c.name,href:`/entities/clowders/${encodeURIComponent(c.id)}`}))}});return r.jsx(Kc,{kind:"catteries",entries:n,titleKey:l.catteriesListTitle,eyebrowKey:l.catteriesListEyebrow,emptyStateKey:l.catteriesListEmptyState,ariaLabelKey:l.catteriesCanvasAriaLabel,detailHeadingKey:l.entityCanvasSelectedCatteryLabel,relationHeadingKey:l.entityCanvasOrganizationLabel,relationEmptyKey:l.entityCanvasNoFormalClowdersLabel,openActionKey:l.entityCanvasOpenCatteryAction,totals:qc([{key:"total",label:t(l.entityCanvasTotalLabel),value:o.length},{key:"members",label:t(l.entityCanvasMembersLabel),value:o.reduce((i,s)=>i+s.memberCount,0)},{key:"clowders",label:t(l.entityCanvasClowdersLabel),value:o.reduce((i,s)=>i+s.clowderCount,0)}])})}const zc="cats.sidebar-open";function lb(e){return e!=="collapsed"}function $c(e){if(!e)return!0;try{return lb(e.getItem(zc))}catch{return!0}}function Vc(e,t){if(e)try{e.setItem(zc,t?"open":"collapsed")}catch{}}function An({slotKind:e}){const t=d.useRef(null),{guideCat:a,projection:o,dockSlotState:n,presentation:i,onDockedPointerDown:s,consumePillClickSuppression:c,clearPillClickSuppression:h,dragActive:u,undock:g}=Zo(),p=Hh(e),{t:f}=_(),w=d.useCallback(A=>{t.current=A,p(A)},[p]);if(!a)return null;const k=n[e],y=o.kind==="docked"&&o.slot===e,m=k.preview,C=vt(),v=f(l.sharedGuideCatPillOpenLabel,{guideCatName:C}),b=f(l.sharedGuideCatDockUndockLabel,{guideCatName:C}),S=cb(a),T=A=>{s(A)},M=()=>{c()||i.toggle()},j=y?M:void 0,R=y?()=>{h()}:void 0,P=A=>{A.stopPropagation(),M()};return r.jsxs("div",{ref:w,className:`guideCatDockSlot guideCatDockSlot--${e}`,"data-active":y?"true":"false","data-preview":m?"true":"false","data-dragging":u?"true":"false",onClick:j,onPointerDown:R,children:[y?r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"guideCatPill guideCatPill--docked",onPointerDown:T,onClick:P,"aria-label":v,"data-tooltip":S,"data-tooltip-delay":"1000",children:r.jsx("img",{className:"guideCatPillAvatar",src:Za,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":b,onClick:A=>{A.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&&!y?r.jsx("div",{className:"guideCatDockSlotGhost","aria-hidden":"true",children:r.jsx("img",{className:"guideCatPillAvatar",src:Za,alt:"","aria-hidden":"true"})}):null]})}function cb(e){const t=vt(),a=yr({provider:e.executionTarget.provider,instance:e.executionTarget.instance,model:e.executionTarget.model,modelSelection:e.modelSelection??null});return Ol(t,a)}const db={setup:"/runtime/setup"},ub=db.setup,pb=new Set(["ok","healthy","ready"]),hb=new Set(["degraded","warming","starting"]),mb=new Set(["error","unavailable","failed"]);function Pr(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":hb.has(t)?"degraded":mb.has(t)?"unavailable":e.reachable?"ready":"unknown"}function gb(e){switch(e){case"ready":return"sharedRuntimeStatusTooltipReady";case"degraded":return"sharedRuntimeStatusTooltipDegraded";case"unavailable":return"sharedRuntimeStatusTooltipUnavailable";default:return"sharedRuntimeStatusTooltipUnknown"}}const kb={ready:"Cats Runtime is connected",degraded:"Cats Runtime is starting up",unavailable:"Cats Runtime is offline",unknown:"Checking Cats Runtime status…"};function Tn(e,t){return t?t(gb(e)):kb[e]}function wb(e){switch(e){case"ready":return"runtimeStatusDot isConnected";case"degraded":return"runtimeStatusDot isDegraded";case"unavailable":return"runtimeStatusDot isUnavailable";default:return"runtimeStatusDot isUnknown"}}function fb(e){switch(e){case"ready":return"lobbyIdentityDot lobbyIdentityDot--ok";case"unavailable":case"degraded":return"lobbyIdentityDot lobbyIdentityDot--warn";default:return"lobbyIdentityDot lobbyIdentityDot--warn"}}function Yc({payload:e,accountMenuRef:t,runtimeFooterStatus:a,runtimeFooterLabel:o,onNavigateSettings:n,onNavigateRuntime:i,catInitials:s,accountMenuOpen:c,onAccountMenuToggle:h}){const{t:u}=_();return r.jsxs("div",{className:"sidebarFooter",ref:t,children:[r.jsxs("button",{type:"button",className:"sidebarFooterMainButton",onClick:n,"aria-label":u(l.conversationSidebarOpenAccountSettingsLabel),children:[r.jsx("div",{className:"profileBadge",style:e.ownerAvatarUrl?{backgroundImage:`url(${e.ownerAvatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0,children:e.ownerAvatarUrl?null:s(e.ownerDisplayName)}),r.jsx("div",{className:"sidebarFooterMeta",children:r.jsx("strong",{children:e.ownerDisplayName})})]}),r.jsxs("button",{type:"button",className:"sidebarFooterTrailing",onClick:i,"aria-label":u(l.conversationSidebarRuntimeStatusAriaLabel,{status:o}),"data-tooltip":o,children:[r.jsx("span",{className:wb(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 bb(e,t){d.useEffect(()=>{if(!e)return;function a(o){const n=o.target;if(!(n instanceof Element))return;const i=document.querySelector(".myCatOverflowMenu")??document.querySelector(".recentOverflowMenu"),s=n.closest(".myCatOverflowButton, .recentOverflowButton");i?.contains(n)||s||t(null)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[e,t])}function Qc(e){let t=null,a=!1,o=!1;return{record(n,i){const s=e.isInside(n);s?a||(t=o&&typeof i=="number"&&i>0?i-1:null):(o=!0,t=null),a=s},getExitDelta(n){return typeof n=="number"&&typeof t=="number"&&n>t?-(n-t):null},__resetForTests(){t=null,a=!1,o=!1}}}const Jc=Qc({isInside:ml});function yb(e,t){Jc.record(e,t)}function vb(e){return Jc.getExitDelta(e)}const Cb="no_dot",Qr={catInitials:e=>Ae(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 i=o.id===a?0:1,s=n.id===a?0:1;return i!==s?i-s:o.createdAt.localeCompare(n.createdAt)})},isDirectLaneSummary:()=>!1,findDirectLaneForCat:()=>null,resolveMyCatStatusDot:()=>Cb,statusDotClassName:()=>"",statusDotLabel:()=>null};function Sb(e){const t=e.lobby.cats.map(i=>({id:i.id,name:i.name,status:"active",avatarColor:i.avatarColor,avatarUrl:i.avatarUrl,createdAt:i.createdAt})),a=e.lobby.cats.find(i=>i.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 Lb({envelope:e,sidebarOpen:t,onToggleSidebar:a,onCollapsedSidebarClick:o,confirmDialog:n}){const{t:i}=_(),s=Ue(),c=d.useRef(null),[h,u]=d.useState(null);bb(h,u);const p=Xd("/entities/cats/:catId/*")?.params.catId??null,f=Ne().pathname,w=f==="/entities/cats"||f.startsWith("/entities/cats/"),k=f==="/entities/clowders"||f.startsWith("/entities/clowders/"),y=f==="/entities/catteries"||f.startsWith("/entities/catteries/"),{payload:m,cats:C,bossCatId:v}=Sb(e),b=async K=>{const F=e.lobby.cats.find(H=>H.id===K)?.name??K;if(await n({title:i(l.sharedSettingsCatsArchiveConfirmTitle),message:i(l.sharedSettingsCatsArchiveWithTelegramConfirmMessage,{catName:F}),confirmLabel:i(l.sharedSettingsCatsArchiveLabel)})){try{await Ie(K,{archive:!0})}catch(H){console.error("[EntitiesAppShellSidebar] archive failed",H);return}window.location.reload()}},S=Pr(m.runtime),T=Tn(S,i),j={platformShellSurface:e.lastProductSurface??"chat"},R=d.useCallback(()=>{const K=window.history.state,ee=vb(K?.idx);ee!==null?s(ee):s("/lobby",{replace:!0})},[s]),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:"8",cy:"6",r:"2.5"}),r.jsx("path",{d:"M3 13.5a5 5 0 0 1 10 0"})]}),A=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"})]}),x=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"})]}),E={label:i(l.entitiesSidebarNewCat),onClick:()=>s("/settings/cats/new",{state:j}),iconKind:"singlePerson"},O={label:i(l.entitiesSidebarNewClowder),iconKind:"groupPeople"},$={label:i(l.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":i(l.entitiesShellExitButtonAriaLabel),onClick:R,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:i(l.entitiesShellBrandLabel)})]}),r.jsx("button",{className:"chromeButton",type:"button","aria-label":i(t?l.conversationSidebarCloseSidebarLabel:l.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:w?"navItem navItemActive":"navItem",onClick:()=>s("/entities/cats"),children:[r.jsx("span",{className:"navGlyph","aria-hidden":"true",children:P}),r.jsx("span",{className:"navLabel",children:i(l.entitiesSidebarSectionCats)})]}),r.jsx($r,{hideLabel:!0,cats:C,bossCatId:v,payloadChannels:[],activeMyCatId:p,telegramBoundCatIds:new Set,helpers:Qr,overflowMenuOpenId:h,onOverflowMenuToggle:u,onDirectChatCat:K=>s(`/entities/cats/${encodeURIComponent(K)}`),onArchiveCat:K=>{b(K)},emptyStatePlaceholder:E,onDirectMessageCat:K=>s(Cn(gr("chat"),K))})]}),r.jsxs("nav",{className:"navGroup","data-lens-kind":"clowders",children:[r.jsxs("button",{type:"button",className:k?"navItem navItemActive":"navItem",onClick:()=>s("/entities/clowders"),children:[r.jsx("span",{className:"navGlyph","aria-hidden":"true",children:A}),r.jsx("span",{className:"navLabel",children:i(l.entitiesSidebarSectionClowders)})]}),r.jsx($r,{hideLabel:!0,cats:[],bossCatId:null,payloadChannels:[],activeMyCatId:null,telegramBoundCatIds:new Set,helpers:Qr,overflowMenuOpenId:null,onOverflowMenuToggle:()=>{},onDirectChatCat:()=>{},onArchiveCat:()=>{},emptyStatePlaceholder:O})]}),r.jsxs("nav",{className:"navGroup","data-lens-kind":"catteries",children:[r.jsxs("button",{type:"button",className:y?"navItem navItemActive":"navItem",onClick:()=>s("/entities/catteries"),children:[r.jsx("span",{className:"navGlyph","aria-hidden":"true",children:x}),r.jsx("span",{className:"navLabel",children:i(l.entitiesSidebarSectionCatteries)})]}),r.jsx($r,{hideLabel:!0,cats:[],bossCatId:null,payloadChannels:[],activeMyCatId:null,telegramBoundCatIds:new Set,helpers:Qr,overflowMenuOpenId:null,onOverflowMenuToggle:()=>{},onDirectChatCat:()=>{},onArchiveCat:()=>{},emptyStatePlaceholder:$})]})]})]}),r.jsx(An,{slotKind:"workspace"}),r.jsx(Yc,{payload:m,accountMenuOpen:!1,accountMenuRef:c,runtimeFooterStatus:S,runtimeFooterLabel:T,onAccountMenuToggle:()=>{},onNavigateSettings:()=>s("/settings/general",{state:j}),onNavigateRuntime:()=>s("/settings/runtime",{state:j}),catInitials:Ae})]})}function Pb({envelope:e}){const[t,a]=d.useState(()=>$c(typeof window>"u"?null:window.localStorage)),{dialog:o,confirm:n,handleClose:i}=Gt();d.useEffect(()=>{Vc(typeof window>"u"?null:window.localStorage,t)},[t]);const s=d.useCallback(()=>{a(h=>!h)},[]),c=d.useCallback(h=>{if(t)return;const u=h.target;u.closest('button, a, input, textarea, select, [role="button"]')||u.closest(".accountMenu")||a(!0)},[t]);return r.jsxs("div",{className:t?"screen claudeShell":"screen claudeShell claudeShellSidebarCollapsed",children:[r.jsx(Lb,{envelope:e,sidebarOpen:t,onToggleSidebar:s,onCollapsedSidebarClick:c,confirmDialog:n}),r.jsx("main",{className:"canvas",children:r.jsx(Vi,{})}),r.jsx(_t,{dialog:o,onClose:i})]})}function ta(){return globalThis.catsDesktopHost??null}function Dn(){return ta()!==null}function Rb(e,t){return e.filter(a=>a.installState!=="available"&&(a.settings?.length??0)>0).flatMap(a=>(a.settings??[]).map(o=>({...o,label:Zp(a.id,o,t),productId:a.id})))}function xb({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 Xc=Qc({isInside:Ia});function Ab(e,t){Xc.record(e,t)}function Tb(e){return Xc.getExitDelta(e)}function Db(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 Nb({envelope:e,settingsPayload:t,sidebarOpen:a,onToggleSidebar:o,onCollapsedSidebarClick:n}){const{t:i}=_(),s=Ue(),c=d.useRef(null),h=Dn(),u=t??e,g=Rb(u.products,i),p=Ne().pathname,f=d.useCallback(()=>{const S=window.history.state,T=Tb(S?.idx);T!==null?s(T):s("/lobby",{replace:!0})},[s]),w=S=>p===S||p.startsWith(`${S}/`),k=p==="/settings/cats"||p==="/settings/cats/new",y=w("/settings/assistants"),{payload:m}=Db(u),C=Pr(m.runtime),v=Tn(C,i),b=S=>S?"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":i(l.settingsShellCloseButtonLabel),onClick:f,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:i(l.settingsShellHeading)})]}),r.jsx("button",{className:"chromeButton",type:"button","aria-label":i(a?l.conversationSidebarCloseSidebarLabel:l.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:b(w("/settings/general")),onClick:()=>s("/settings/general"),children:r.jsx("span",{className:"navLabel",children:i(l.settingsShellSectionGeneral)})})}),r.jsx("p",{className:"settingsSidebarGroupHeading",children:i(l.settingsShellSectionCats)}),r.jsxs("nav",{className:"navGroup settingsSidebarGroupNav",children:[r.jsx("button",{type:"button",className:b(k),onClick:()=>s("/settings/cats"),children:r.jsx("span",{className:"navLabel",children:i(l.settingsShellSubsectionMyCats)})}),r.jsx("button",{type:"button",className:b(y),onClick:()=>s("/settings/assistants"),children:r.jsx("span",{className:"navLabel",children:i(l.settingsShellSubsectionAssistants)})})]}),g.length>0?r.jsx("nav",{className:"navGroup",children:g.map(S=>r.jsx("button",{type:"button",className:b(w(S.path)),onClick:()=>s(S.path),children:r.jsx("span",{className:"navLabel",children:S.label})},`${S.productId}:${S.id}`))}):null,r.jsxs("nav",{className:"navGroup",children:[r.jsx("button",{type:"button",className:b(w("/settings/apps")),onClick:()=>s("/settings/apps"),children:r.jsx("span",{className:"navLabel",children:i(l.settingsShellSectionApps)})}),h?r.jsx("button",{type:"button",className:b(w("/settings/desktop")),onClick:()=>s("/settings/desktop"),children:r.jsx("span",{className:"navLabel",children:i(l.settingsShellSectionDesktop)})}):null,r.jsx("button",{type:"button",className:b(w("/settings/runtime")),onClick:()=>s("/settings/runtime"),children:r.jsx("span",{className:"navLabel",children:i(l.settingsShellSectionRuntime)})}),r.jsx("button",{type:"button",className:b(w("/settings/data")),onClick:()=>s("/settings/data"),children:r.jsx("span",{className:"navLabel",children:i(l.settingsShellSectionData)})})]})]})]}),r.jsx(An,{slotKind:"workspace"}),r.jsx(Yc,{payload:m,accountMenuOpen:!1,accountMenuRef:c,runtimeFooterStatus:C,runtimeFooterLabel:v,onAccountMenuToggle:()=>{},onNavigateSettings:()=>{},onNavigateRuntime:()=>s("/settings/runtime"),catInitials:Ae})]})}const jb=5e3;function Mb(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 Eb(e,t){return{...e,runtime:t.runtime,runtimeSetup:t.runtimeSetup,metadata:t.metadata,bootstrapAttemptId:t.bootstrapAttemptId}}function Ib({envelope:e}){const[t,a]=d.useState({status:"loading"}),[o,n]=d.useState(0),i=d.useRef(a);i.current=a;const[s,c]=d.useState(()=>$c(typeof window>"u"?null:window.localStorage));d.useEffect(()=>{Vc(typeof window>"u"?null:window.localStorage,s)},[s]);const h=d.useCallback(()=>{c(k=>!k)},[]);d.useEffect(()=>{const k=new AbortController;return a(y=>y.status==="ready"?y:{status:"loading"}),ct(k.signal).then(y=>{k.signal.aborted||a({status:"ready",payload:y})}).catch(y=>{if(k.signal.aborted)return;const m=y instanceof Error?y.message:null;a({status:"error",message:m})}),()=>{k.abort()}},[o]);const u=t.status==="ready";d.useEffect(()=>{if(!u||typeof window>"u"||typeof document>"u")return;let k=null;const y=()=>{if(document.visibilityState==="hidden"||k)return;const b=new AbortController;k=b,ct(b.signal).then(S=>{b.signal.aborted||i.current(T=>T.status!=="ready"||!Mb(T.payload,S)?T:{status:"ready",payload:Eb(T.payload,S)})}).catch(()=>{}).finally(()=>{k===b&&(k=null)})},m=window.setInterval(y,jb),C=()=>y(),v=()=>{document.visibilityState==="visible"&&y()};return window.addEventListener("focus",C),document.addEventListener("visibilitychange",v),()=>{k&&k.abort(),window.clearInterval(m),window.removeEventListener("focus",C),document.removeEventListener("visibilitychange",v)}},[u]);const g=d.useCallback(k=>{a({status:"ready",payload:k})},[]),p=d.useCallback(()=>{n(k=>k+1)},[]),f=d.useCallback(k=>{if(s)return;const y=k.target;y.closest('button, a, input, textarea, select, [role="button"]')||y.closest(".accountMenu")||c(!0)},[s]),w=t.status==="ready"?t.payload:null;return r.jsxs("div",{className:s?"screen claudeShell":"screen claudeShell claudeShellSidebarCollapsed",children:[r.jsx(Nb,{envelope:e,settingsPayload:w,sidebarOpen:s,onToggleSidebar:h,onCollapsedSidebarClick:f}),r.jsx("main",{className:"canvas",children:r.jsx(Vi,{context:{loadState:t,onPayloadUpdate:g,onRetryLoad:p}})})]})}function Bb(){return window.catsDesktopHost??null}async function Zc(e){const t=Bb();t?.updatePlatformShell&&await t.updatePlatformShell(e)}async function Fb(e){await Zc({bootstrapAttemptId:e.bootstrapAttemptId??null,setupCompleteAt:e.setupCompleteAt??null,products:e.products})}function Ob({memoryForm:e,setMemoryForm:t,busyCreating:a,onSubmit:o,onClose:n}){const{t:i}=_();d.useEffect(()=>{function c(h){h.key==="Escape"&&!a&&n()}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[a,n]);const s=!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(),!s&&o()},children:[r.jsx("p",{className:"catsDialogTitle",children:i(l.sharedMemoryEditorDialogTitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedMemoryEditorDialogCategoryLabel)}),r.jsx("select",{className:"textInput",value:e.category,onChange:c=>t({...e,category:c.target.value}),children:xn.map(c=>r.jsx("option",{value:c.value,children:i(c.label)},c.value))})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedMemoryEditorDialogContentLabel)}),r.jsx("textarea",{className:"textInput",rows:4,placeholder:i(l.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:i(l.sharedMemoryEditorDialogCancel)}),r.jsx("button",{className:"primaryButton",type:"submit",disabled:s,children:i(a?l.sharedMemoryEditorDialogSaving:l.sharedMemoryEditorDialogAdd)})]})]})})}function Wb({botForm:e,setBotForm:t,busyCreating:a,onSubmit:o,onClose:n}){const{t:i}=_();d.useEffect(()=>{function c(h){h.key==="Escape"&&!a&&n()}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[a,n]);const s=!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(),!s&&o()},children:[r.jsx("p",{className:"catsDialogTitle",children:i(l.sharedTelegramConnectDialogTitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedTelegramConnectBotUsernameLabel)}),r.jsx("input",{className:"textInput",placeholder:i(l.sharedTelegramConnectBotUsernamePlaceholder),value:e.botName,onChange:c=>t({...e,botName:c.target.value}),autoFocus:!0})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedTelegramConnectBotTokenLabel)}),r.jsx("input",{className:"textInput",type:"password",placeholder:i(l.sharedTelegramConnectBotTokenPlaceholder),value:e.botToken,onChange:c=>t({...e,botToken:c.target.value})})]}),r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.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:i(l.sharedTelegramConnectModePolling)}),r.jsx("button",{type:"button",className:e.inboundMode==="webhook"?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>t({...e,inboundMode:"webhook"}),children:i(l.sharedTelegramConnectModeWebhook)})]})]}),e.inboundMode==="webhook"?r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:i(l.sharedTelegramConnectWebhookSecretLabel)}),r.jsx("input",{className:"textInput",placeholder:i(l.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:i(l.sharedTelegramConnectCancel)}),r.jsx("button",{className:"primaryButton",type:"submit",disabled:s,children:i(a?l.sharedTelegramConnectConnecting:l.sharedTelegramConnectConnect)})]})]})})}function Ao({busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:i,telegramDiagnostics:s,confirm:c,sections:h}){const u=H=>h===void 0||h.includes(H),{botForm:g,renameValue:p,setBotForm:f,setRenameValue:w,onCreateBinding:k,onDeleteBinding:y,onMakeBossCat:m,onMcpProfileChange:C,onRenameCat:v,onSkillChange:b}=i,{memoryForm:S,setMemoryForm:T,catMemory:M,memoryLoading:j,addMemory:R,deleteMemory:P}=n,A=t.filter(H=>H.catId===a.id),x=s?.bindings.filter(H=>H.bindingId&&A.some(ae=>ae.id===H.bindingId))??[],E=a.status==="active"&&Jo(a.products,"chat",{fallback:wr()}),{t:O}=_(),[$,K]=d.useState(!1);d.useEffect(()=>{A.length>0&&K(!1)},[A.length]),d.useEffect(()=>{K(!1)},[a.id]);const[ee,F]=d.useState(!1),Y=d.useRef(M.length);return d.useEffect(()=>{const H=Y.current;ee&&M.length>H&&F(!1),Y.current=M.length},[ee,M.length]),d.useEffect(()=>{F(!1)},[a.id]),r.jsxs(r.Fragment,{children:[u("rename")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:O(l.sharedSettingsCatsRenameLabel)}),r.jsxs("div",{style:{display:"flex",gap:8},children:[r.jsx("input",{className:"textInput",placeholder:a.name,value:p,onChange:H=>w(H.target.value),onFocus:()=>w(a.name)}),r.jsx("button",{className:"primaryButton",type:"button",disabled:!p.trim()||p.trim()===a.name||be(e,"rename",a.id),onClick:()=>{v(a.id)},children:be(e,"rename",a.id)?O(l.sharedSettingsCatsSaving):O(l.sharedSettingsCatsSave)})]})]}):null,u("makeBoss")&&!o?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:O(l.sharedSettingsCatsBossCatLabel)}),r.jsx("button",{className:"primaryButton",type:"button",disabled:be(e,"makeBoss",a.id),onClick:async()=>{(!c||await c({title:O(l.sharedSettingsCatsChangeBossCatTitle),message:O(l.sharedSettingsCatsChangeBossCatMessage,{name:a.name}),confirmLabel:O(l.sharedSettingsCatsConfirm)}))&&m(a.id)},children:be(e,"makeBoss",a.id)?O(l.sharedSettingsCatsSetting):O(l.sharedSettingsCatsMakeBossCatLabel,{name:a.name})})]}):null,u("skill")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:O(l.sharedSettingsCatsSkillProfileLabel)}),r.jsx("div",{className:"skillPills",children:ea.map(H=>r.jsx("button",{className:(a.skillProfile??"chat-default")===H.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",type:"button",disabled:be(e,"skill",a.id),onClick:()=>{b(a.id,H.value)},children:O(H.label)},H.value))})]}):null,u("mcp")?r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:O(l.sharedSettingsCatsMcpProfileLabel)}),r.jsx("div",{className:"skillPills",children:Ut.map(H=>r.jsx("button",{className:(a.mcpProfile??dt)===H.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",type:"button",disabled:be(e,"skill",a.id),onClick:()=>{C(a.id,H.value)},children:O(H.label)},H.value))})]}):null,u("telegram")?A.length>0?r.jsx("div",{className:"catsTelegramConnected",children:A.map(H=>{const ae=x.find(ue=>ue.bindingId===H.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":`@${H.botName}`,children:["@",H.botName]}),r.jsx("button",{type:"button",className:"catsInlineDeleteButton catsTelegramBindingDisconnect",disabled:lr(e,"delete",H.id),onClick:()=>{y(H.id)},"aria-label":O(l.sharedSettingsCatsDisconnectTelegramAria),"data-tooltip":O(l.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 ${H.status==="active"?"statusChipReady":"statusChipMuted"}`,children:H.status==="active"?O(l.sharedSettingsCatsBindingActive):O(l.sharedSettingsCatsBindingDisabled)}),r.jsx("span",{className:"statusChip statusChipMuted",children:H.inboundMode==="polling"?O(l.sharedSettingsCatsBindingPollingMode):O(l.sharedSettingsCatsBindingWebhookMode)}),ae?.lastInboundAt?r.jsx("span",{className:"catsTelegramBindingLastInbound",children:O(l.sharedSettingsCatsLastInboundLabel,{time:Oc(ae.lastInboundAt)})}):null]})]},H.id)})}):r.jsxs("div",{className:"catsTelegramEmpty",children:[r.jsx("button",{type:"button",className:"primaryButton",disabled:!E,onClick:()=>K(!0),children:O(l.sharedSettingsCatsConnectTelegramLabel)}),E?null:r.jsx("p",{className:"catsTelegramHint",children:O(l.sharedSettingsCatsUnavailableHint)})]}):null,$?r.jsx(Wb,{botForm:g,setBotForm:f,busyCreating:lr(e,"create"),onSubmit:()=>{k(a.id)},onClose:()=>K(!1)}):null,u("memory")?r.jsxs("div",{className:"catsMemorySection",children:[M.length>0?r.jsx("div",{className:"memoryList",children:M.map(H=>r.jsx(Ub,{busy:e,memoryRecord:H,onDelete:()=>{P(a.id,H.id)}},H.id))}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:Zt(e,"create"),onClick:()=>F(!0),children:O(l.sharedSettingsCatsAddMemoryLabel)})]}):null,ee?r.jsx(Ob,{memoryForm:S,setMemoryForm:T,busyCreating:Zt(e,"create"),onSubmit:()=>{R(a.id)},onClose:()=>F(!1)}):null]})}function Ub({busy:e,memoryRecord:t,onDelete:a}){const{t:o}=_(),n=Ic(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:Zt(e,"delete",t.id),onClick:a,"aria-label":o(l.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 Hb({busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:i,telegramDiagnostics:s,onPayloadUpdate:c,confirm:h}){const[u,g]=d.useState(!1),{t:p}=_();async function f(k){g(!1);try{const y=await Ie(a.id,{avatarUrl:k});c?.(y)}catch{}}async function w(){try{const k=await Ie(a.id,{avatarUrl:null});c?.(k)}catch{}}return r.jsxs("div",{className:"catDetailPanel",children:[r.jsxs("div",{className:"catDetailSection",children:[r.jsx("p",{className:"sectionLabel",children:p(l.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?"":Ae(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?p(l.settingsGeneralAvatarChangeLabel):p(l.settingsGeneralAvatarUploadLabel)}),a.avatarUrl?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>{w()},children:p(l.settingsGeneralAvatarRemoveLabel)}):null]})]})]}),u?r.jsx(sa,{onSave:k=>{f(k)},onClose:()=>g(!1)}):null,r.jsx(Ao,{busy:e,botBindings:t,cat:a,isBossCat:o,memoryController:n,registryController:i,telegramDiagnostics:s,confirm:h})]})}function Gb({botBindings:e,busy:t,expandedCatId:a,memoryController:o,payload:n,registryController:i,setExpandedCatId:s,telegramDiagnostics:c,availableSurfaces:h,enabledSurfaces:u,onPayloadUpdate:g,confirm:p,SettingsCatsDetailPanelComponent:f}){const{t:w}=_(),[k,y]=d.useState(!1),m=n.chat.cats.filter(b=>b.status==="archived").length,C=k?n.chat.cats:n.chat.cats.filter(b=>b.status!=="archived"),v=Xt(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:w(l.sharedSettingsCatsRegistrySectionLabel)}),r.jsx("h2",{children:n.chat.cats.length>0?w(l.sharedSettingsCatsRegistrySavedCatsLabel):w(l.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:k,onChange:b=>y(b.target.checked)}),r.jsx("span",{children:w(l.sharedSettingsCatsRegistryShowArchivedLabel,{count:m})})]}):null,r.jsx("div",{className:"catList",children:v.length>0?v.map(b=>{const S=b.id===n.chat.bossCatId,T=a===b.id,M=e.filter(A=>A.catId===b.id),j=Bc(b.status),R=b.skillProfile?Mc(b.skillProfile):l.sharedSettingsCatsRegistryDefaultSkillProfileLabel,P=Ec(b.mcpProfile);return r.jsxs("article",{className:"catCard",children:[r.jsxs("div",{className:"catCardTop",style:{cursor:"pointer"},onClick:()=>s(T?null:b.id),children:[r.jsxs("div",{children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[r.jsx("strong",{children:b.name}),S?r.jsx("span",{className:"statusChip statusChipAccent",children:w(l.sharedSettingsCatsRegistryBossCatLabel)}):null]}),r.jsx("p",{children:lc(b)}),b.products.length>0?r.jsx("div",{className:"chipRow",style:{marginTop:4},children:b.products.map(A=>{const x=Fc(A);return r.jsx("span",{className:"productBadge",children:x?w(x):A},A)})}):null]}),r.jsxs("div",{style:{display:"flex",alignSelf:"start",alignItems:"center",gap:8},children:[r.jsx("span",{className:b.status==="active"?"statusChip statusChipReady":"statusChip statusChipMuted",children:j?w(j):b.status}),b.status==="archived"?r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"chromeButton",type:"button",disabled:be(t,"unarchive",b.id)||be(t,"delete",b.id),onClick:A=>{A.stopPropagation(),i.onUnarchiveCat(b.id,b.name)},"data-tooltip":w(l.sharedSettingsCatsRegistryRecoverTooltip,{name:b.name}),children:r.jsx("span",{className:"srOnly",children:w(l.sharedSettingsCatsRegistryRecoverLabel)})}),r.jsx("button",{className:"chromeButton",type:"button",disabled:be(t,"delete",b.id),onClick:A=>{A.stopPropagation(),i.onDeleteCat(b.id,b.name)},"data-tooltip":w(l.sharedSettingsCatsRegistryDeleteTooltip,{name:b.name}),children:"✕"})]}):r.jsx("button",{className:"chromeButton",type:"button",disabled:be(t,"archive",b.id),onClick:A=>{A.stopPropagation(),i.onArchiveCat(b.id,b.name)},"data-tooltip":w(l.sharedSettingsCatsRegistryArchiveTooltip,{name:b.name}),children:"✕"})]})]}),r.jsxs("div",{className:"catMeta",children:[r.jsx("span",{children:R?w(R):b.skillProfile}),r.jsx("span",{children:P?w(P):b.mcpProfile}),r.jsx("span",{children:b.memory.updatedAt?w(l.sharedSettingsCatsRegistryMemorySavedLabel):w(l.sharedSettingsCatsRegistryNoMemoryYetLabel)}),M.length>0?r.jsx("span",{children:w(l.sharedSettingsCatsRegistryBotBindingCount,{count:M.length,pluralSuffix:M.length>1?"s":""})}):null]}),T?r.jsx(f,{busy:t,botBindings:e,cat:b,isBossCat:S,memoryController:o,registryController:i,telegramDiagnostics:c,availableSurfaces:h,enabledSurfaces:u,onPayloadUpdate:g,confirm:p}):null]},b.id)}):r.jsx("div",{className:"emptyStateCard",children:r.jsx("p",{children:w(l.sharedSettingsCatsRegistryEmptyStateHint)})})})]})}function _b(e){return r.jsx(Gb,{...e,SettingsCatsDetailPanelComponent:Hb})}function Kb(e,t){const a=new Set(e.map(o=>o.id));return t.find(o=>o.status==="active"&&!a.has(o.id))??null}function qb({payload:e,busy:t,onPayloadUpdate:a,onFeedback:o,onBusy:n,useSettingsCatsRegistryActionsHook:i}){const[s,c]=d.useState(null),{toasts:h,showToast:u}=pt(),{dialog:g,confirm:p,handleClose:f}=Gt(),w=Ne(),k=Ue(),y=w.pathname.endsWith("/cats/new"),{t:m}=_();d.useEffect(()=>{o("")},[]);const C=d.useCallback(L=>{L&&u(L)},[u]),v=i({expandedCatId:s,setExpandedCatId:c,onBusy:n,onFeedback:C,onPayloadUpdate:a,confirm:p}),{botForm:b,catForm:S,renameValue:T,setBotForm:M,setCatForm:j,setRenameValue:R,onCreateBinding:P,onCreateCat:A,performCreateCat:x,onDeleteBinding:E,onDeleteCat:O,onMakeBossCat:$,onMcpProfileChange:K,onArchiveCat:ee,onUnarchiveCat:F,onRenameCat:Y,onSkillChange:H}=v,{botBindings:ae,telegramDiagnostics:ue,telegramError:G}=jc(e);d.useEffect(()=>{G&&C(G)},[G,C]);const I=Rc({expandedCatId:s,onBusy:n,onFeedback:C}),z=d.useMemo(()=>e.chat.cats.filter(L=>L.status==="active"),[e.chat.cats]),re=d.useMemo(()=>e.chat.cats.filter(L=>L.status==="archived"),[e.chat.cats]),X=z.length,pe=d.useMemo(()=>Xt(z,{bossCatIds:e.chat.bossCatId}),[z,e.chat.bossCatId]),ve=d.useMemo(()=>Xt(re,{bossCatIds:null}),[re]),U=X>=e.chat.capabilities.maxCats,[V,D]=d.useState(()=>e.chat.cats.filter(L=>L.status==="active").length===0&&e.chat.cats.some(L=>L.status==="archived")),[B,W]=d.useState(()=>pe[0]?.id??ve[0]?.id??null),Z=X>0||ve.length>0,q=y||!Z?"create":"view";d.useEffect(()=>{if(q!=="view")return;const L=B?e.chat.cats.find(ie=>ie.id===B)??null:null,Q=L?.status==="archived"&&!V;if(!L||Q){const ie=pe[0]??(V?ve[0]:null);ie?W(ie.id):(W(null),w.pathname.endsWith("/cats/new")||k("/settings/cats/new",{replace:!0}))}},[q,w.pathname,k,e.chat.cats,B,V,pe,ve]),d.useEffect(()=>{q==="view"&&B&&c(B)},[q,B]);const ne=d.useMemo(()=>({current:X}),[]),oe=d.useMemo(()=>({current:new Set(z.map(L=>L.id))}),[]);d.useEffect(()=>{if(X>ne.current){const L=oe.current,Q=pe.find(ie=>!L.has(ie.id))??pe[pe.length-1];Q&&W(Q.id),w.pathname.endsWith("/cats/new")&&k("/settings/cats",{replace:!0})}ne.current=X,oe.current=new Set(z.map(L=>L.id))},[X,z,w.pathname,k,a,ne,oe,pe]);const He=L=>{W(L),w.pathname.endsWith("/cats/new")&&k("/settings/cats",{replace:!0})},Te=()=>{U||k("/settings/cats/new")},N=d.useMemo(()=>B?e.chat.cats.find(L=>L.id===B)??null:null,[e.chat.cats,B]);d.useEffect(()=>{N?.status==="archived"&&D(!0)},[N]);const ke=d.useRef(null);d.useEffect(()=>{if(q==="create"&&y){const L=ke.current;L?.focus(),L?.select()}},[q,y]);const[je,Me]=d.useState(!1),[J,he]=d.useState(null),[we,Be]=d.useState(null);d.useEffect(()=>{y||(he(null),Be(null))},[y]);const Je=async L=>{if(Me(!1),q==="create"){he(L);return}if(N)try{const Q=await Ie(N.id,{avatarUrl:L});a(Q)}catch{}},gt=async()=>{if(q==="create"){he(null);return}if(N)try{const L=await Ie(N.id,{avatarUrl:null});a(L)}catch{}},[te,Oe]=d.useState(null),[Ge,qe]=d.useState(!1);d.useEffect(()=>{if(!N){Oe(null);return}return Oe(Aa(N.id)),Ln(N.id,Oe)},[N?.id]);const Nt=L=>{if(qe(!1),q==="create"){Be(L);return}N&&Ft(N.id,L)},Se=()=>{if(q==="create"){Be(null);return}N&&Ft(N.id,null)},le=N?.status==="archived",at=d.useCallback(async(L,Q,ie)=>{try{const Ve=await Ie(L,Q);return a(Ve),!0}catch(Ve){return C(ze(Ve,ie,m)),!1}},[a,m,C]),Ar=async()=>{const L=await x(),Q=L?Kb(z,L.chat.cats):null;if(Q){if(W(Q.id),w.pathname.endsWith("/cats/new")&&k("/settings/cats",{replace:!0}),J)try{const ie=await Ie(Q.id,{avatarUrl:J});a(ie),he(null)}catch(ie){he(null),C(ze(ie,m(l.settingsGeneralSaveAvatarError),m))}we&&(Ft(Q.id,we),Be(null))}};return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"catsLayout catsLayoutSidePanel",children:[r.jsxs("nav",{className:"catsSelectorStrip",role:"tablist","aria-label":m(l.sharedSettingsCatsSelectCatAria),children:[pe.map(L=>{const Q=q==="view"&&L.id===B,Ve=["catAvatar","catsSelectorAvatar",L.id===e.chat.bossCatId?"catsSelectorAvatarBoss":"",Q?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":Q,className:Ve,style:L.avatarUrl?{backgroundImage:`url(${L.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:L.avatarColor?{background:L.avatarColor}:void 0,onClick:()=>He(L.id),"data-tooltip":L.name,"aria-label":L.name,children:L.avatarUrl?null:Ae(L.name)},L.id)}),r.jsx("button",{type:"button",className:["catAvatar","catsSelectorAvatar","catsSelectorNewAvatar",q==="create"?"catsSelectorAvatarActive":""].filter(Boolean).join(" "),onClick:Te,disabled:U&&q!=="create","aria-label":m(l.sharedSettingsCatsAddNewCatLabel),"data-tooltip":m(U?l.sharedCatsCreateCatLimitReached:l.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"})]})}),V&&ve.length>0?r.jsx("span",{className:"catsSelectorDivider","aria-hidden":"true"}):null,V?ve.map(L=>{const Q=q==="view"&&L.id===B,ie=["catAvatar","catsSelectorAvatar","catsSelectorAvatarArchived",Q?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":Q,className:ie,style:L.avatarUrl?{backgroundImage:`url(${L.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:L.avatarColor?{background:L.avatarColor}:void 0,onClick:()=>He(L.id),"data-tooltip":`${L.name} (${m(l.workObjectStatusArchived)})`,"aria-label":`${L.name} (${m(l.workObjectStatusArchived)})`,children:L.avatarUrl?null:Ae(L.name)},L.id)}):null,re.length>0?r.jsxs("label",{className:"catsSelectorArchiveToggle",children:[r.jsx("input",{type:"checkbox",checked:V,onChange:L=>D(L.target.checked)}),r.jsx("span",{children:m(l.sharedSettingsCatsShowArchivedLabel,{count:re.length})})]}):null]}),r.jsx(xe,{className:"catsDetailCard",header:r.jsx(de,{title:q==="create"?m(l.sharedCatsCreateNewCat):N?r.jsxs(r.Fragment,{children:[N.name,N.id===e.chat.bossCatId?r.jsx("span",{className:"catsDetailBossTag",children:m(l.sharedCatInspectBossLabel)}):null,N.status==="archived"?r.jsx("span",{className:"catsDetailArchivedTag",children:m(l.workObjectStatusArchived)}):null]}):"",status:q==="view"&&N?r.jsx(lt,{children:N.status==="active"?r.jsx("button",{type:"button",className:"secondaryButton",disabled:be(t,"archive",N.id),onClick:()=>{ee(N.id,N.name)},children:m(l.sharedSettingsCatsArchiveLabel)}):r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:be(t,"unarchive",N.id),onClick:()=>{F(N.id,N.name)},children:m(l.sharedSettingsCatsRegistryRecoverLabel)}),r.jsx("button",{type:"button",className:"dangerButton",disabled:be(t,"delete",N.id),onClick:()=>{O(N.id,N.name)},children:m(l.sharedSettingsCatsDeleteLabel)})]})}):q==="create"?r.jsxs(lt,{children:[X>0?r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>k("/settings/cats",{replace:!0}),disabled:be(t,"create"),children:m(l.sharedCatsCreateCancel)}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:!S.name.trim()||!S.provider.trim()||!S.model.trim()||U||be(t,"create"),onClick:()=>{Ar()},children:be(t,"create")?m(l.sharedSettingsCatsSaving):m(l.sharedCatsCreateSaveCat)})]}):null}),children:q==="create"?r.jsxs("div",{className:"catsDetailBody",children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsxs(De,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:m(l.settingsGeneralAvatarLabel)}),r.jsxs("div",{className:"catsIdentityAvatarRow",children:[r.jsxs("div",{className:"catsAvatarDock",children:[r.jsx("button",{type:"button",className:["catAvatar","catsIdentityAvatar",J?"":"catsIdentityAvatarPlaceholder"].filter(Boolean).join(" "),style:J?{backgroundImage:`url(${J})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:void 0,onClick:()=>Me(!0),"aria-label":m(J?l.settingsGeneralAvatarChangeLabel:l.settingsGeneralAvatarUploadLabel),"data-tooltip":m(J?l.settingsGeneralAvatarChangeLabel:l.settingsGeneralAvatarUploadLabel),children:J?"":S.name.trim()?Ae(S.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"})]})}),J?r.jsx("button",{type:"button",className:"catsAvatarRemoveBadge",onClick:L=>{L.stopPropagation(),he(null)},"aria-label":m(l.settingsGeneralAvatarRemoveLabel),"data-tooltip":m(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:"fieldLabelInline catsIdentityBossToggle",children:[r.jsx("input",{type:"checkbox",checked:S.makeBoss,onChange:async L=>{const Q=L.target.checked;if(Q&&e.chat.bossCatId){const ie=e.chat.cats.find(Tr=>Tr.id===e.chat.bossCatId);if(!await p({title:m(l.sharedSettingsCatsChangeBossCatTitle),message:m(l.sharedSettingsCatsChangeBossCatMessage,{name:ie?.name??(S.name.trim()||m(l.sharedCatsCreateNewCat))}),confirmLabel:m(l.sharedSettingsCatsConfirm)}))return}j({...S,makeBoss:Q})}}),r.jsx("span",{children:m(l.sharedSettingsCatsMakeBossCatLabel,{name:S.name.trim()||m(l.sharedCatsCreateNewCat)})})]})]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:m(l.settingsGeneralNameLabel)}),r.jsx("input",{ref:ke,className:"textInput",value:S.name,placeholder:m(l.sharedCatsCreateCatNamePlaceholder),onChange:L=>j({...S,name:L.target.value})})]}),r.jsxs("div",{className:"fieldLabel catsCoverField",children:[r.jsx("span",{children:m(l.sharedSettingsCatsCoverPhotoLabel)}),r.jsxs("div",{className:"catsCoverDock",children:[r.jsx("button",{type:"button",className:`catsCoverThumb${we?" catsCoverThumbLoaded":" catsCoverThumbPlaceholder"}`,style:we?{backgroundImage:`url(${we})`}:void 0,onClick:()=>qe(!0),"aria-label":m(we?l.sharedSettingsCatsChangeCoverPhotoLabel:l.sharedSettingsCatsUploadCoverPhotoLabel),"data-tooltip":m(we?l.sharedSettingsCatsChangeCoverLabel:l.sharedSettingsCatsUploadCoverLabel),children:we?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"})]})}),we?r.jsx("button",{type:"button",className:"catsCoverRemoveBadge",onClick:L=>{L.stopPropagation(),Be(null)},"aria-label":m(l.sharedSettingsCatsRemoveCoverLabel),"data-tooltip":m(l.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(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsSkillProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:ea.map(L=>r.jsx("button",{type:"button",className:(S.skillProfile||"chat-default")===L.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>j({...S,skillProfile:L.value}),children:m(L.label)},L.value))})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsMcpProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:Ut.map(L=>r.jsx("button",{type:"button",className:(S.mcpProfile||dt)===L.value?"draftLeadPill draftLeadPillActive":"draftLeadPill",onClick:()=>j({...S,mcpProfile:L.value}),children:m(L.label)},L.value))})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Ot,{provider:S.provider,instance:S.instance,model:S.model,modelSelection:S.modelSelection,onTargetChange:L=>j({...S,provider:L.provider,instance:L.instance,model:L.model,modelSelection:L.modelSelection??null}),fetchProviderRegistry:Et,fetchProviderModels:It,fetchAdvancedProviderModels:Bt})})]}):N?r.jsxs("fieldset",{className:le?"catsDetailBody catsDetailBodyReadOnly":"catsDetailBody",disabled:le,children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsxs(De,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:m(l.settingsGeneralAvatarLabel)}),r.jsxs("div",{className:"catsIdentityAvatarRow",children:[r.jsxs("div",{className:"catsAvatarDock",children:[r.jsx("button",{type:"button",className:"catAvatar catsIdentityAvatar",style:N.avatarUrl?{backgroundImage:`url(${N.avatarUrl})`,backgroundSize:"cover",backgroundPosition:"center",color:"transparent"}:N.avatarColor?{background:N.avatarColor}:void 0,onClick:()=>{le||Me(!0)},disabled:le,"aria-label":N.avatarUrl?m(l.settingsGeneralAvatarChangeLabel):m(l.settingsGeneralAvatarUploadLabel),"data-tooltip":le?void 0:N.avatarUrl?m(l.settingsGeneralAvatarChangeLabel):m(l.settingsGeneralAvatarUploadLabel),children:N.avatarUrl?"":Ae(N.name)}),le?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"})]})}),N.avatarUrl&&!le?r.jsx("button",{type:"button",className:"catsAvatarRemoveBadge",onClick:L=>{L.stopPropagation(),gt()},"aria-label":m(l.settingsGeneralAvatarRemoveLabel),"data-tooltip":m(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]}),!le&&N.id!==e.chat.bossCatId?r.jsxs("label",{className:"fieldLabelInline catsIdentityBossToggle",children:[r.jsx("input",{type:"checkbox",checked:!1,onChange:async L=>{L.target.checked&&(e.chat.bossCatId&&e.chat.bossCatId!==N.id&&(e.chat.cats.find(ie=>ie.id===e.chat.bossCatId),!await p({title:m(l.sharedSettingsCatsChangeBossCatTitle),message:m(l.sharedSettingsCatsChangeBossCatMessage,{name:N.name}),confirmLabel:m(l.sharedSettingsCatsConfirm)}))||await at(N.id,{makeBoss:!0},m(l.sharedSettingsCatsSetBossCatError)))}}),r.jsx("span",{children:m(l.sharedSettingsCatsMakeBossCatLabel,{name:N.name})})]}):null]})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:m(l.settingsGeneralNameLabel)}),r.jsx("input",{className:"textInput",defaultValue:N.name,placeholder:N.name,disabled:le,onBlur:async L=>{const Q=L.currentTarget.value.trim();if(!Q){L.currentTarget.value=N.name;return}if(Q===N.name)return;await at(N.id,{name:Q},m(l.settingsGeneralUpdateNameError))||(L.currentTarget.value=N.name)}},N.id)]}),r.jsxs("div",{className:"fieldLabel catsCoverField",children:[r.jsx("span",{children:m(l.sharedSettingsCatsCoverPhotoLabel)}),r.jsxs("div",{className:"catsCoverDock",style:N.avatarColor?{"--cat-avatar-color":N.avatarColor}:void 0,children:[r.jsx("button",{type:"button",className:`catsCoverThumb${te?" catsCoverThumbLoaded":""}`,style:te?{backgroundImage:`url(${te})`}:void 0,onClick:()=>{le||qe(!0)},disabled:le,"aria-label":m(te?l.sharedSettingsCatsChangeCoverPhotoLabel:l.sharedSettingsCatsUploadCoverPhotoLabel),"data-tooltip":le?void 0:m(te?l.sharedSettingsCatsChangeCoverLabel:l.sharedSettingsCatsUploadCoverLabel)}),le?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"})]})}),te&&!le?r.jsx("button",{type:"button",className:"catsCoverRemoveBadge",onClick:L=>{L.stopPropagation(),Se()},"aria-label":m(l.sharedSettingsCatsRemoveCoverLabel),"data-tooltip":m(l.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(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsSkillProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:ea.map(L=>{const Q=(N.skillProfile??"chat-default")===L.value;return r.jsx("button",{type:"button",className:Q?"draftLeadPill draftLeadPillActive":"draftLeadPill",disabled:le||Q,onClick:()=>{at(N.id,{skillProfile:L.value},m(l.sharedSettingsCatsChangeSkillProfileError))},children:m(L.label)},L.value)})})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsMcpProfileLabel),nested:!0}),children:r.jsx("div",{className:"skillPills",children:Ut.map(L=>{const Q=(N.mcpProfile??dt)===L.value;return r.jsx("button",{type:"button",className:Q?"draftLeadPill draftLeadPillActive":"draftLeadPill",disabled:le||Q,onClick:()=>{at(N.id,{mcpProfile:L.value},m(l.sharedSettingsCatsChangeMcpProfileError))},children:m(L.label)},L.value)})})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsChannelLabel),nested:!0}),children:r.jsx(Ao,{busy:t,botBindings:ae,cat:N,isBossCat:N.id===e.chat.bossCatId,memoryController:I,registryController:{botForm:b,renameValue:T,setBotForm:M,setRenameValue:R,onCreateBinding:P,onDeleteBinding:E,onMakeBossCat:$,onMcpProfileChange:K,onRenameCat:Y,onSkillChange:H},telegramDiagnostics:ue,confirm:p,sections:["telegram"]})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:m(l.sharedSettingsCatsMemoryLabel),nested:!0}),children:r.jsx(Ao,{busy:t,botBindings:ae,cat:N,isBossCat:N.id===e.chat.bossCatId,memoryController:I,registryController:{botForm:b,renameValue:T,setBotForm:M,setRenameValue:R,onCreateBinding:P,onDeleteBinding:E,onMakeBossCat:$,onMcpProfileChange:K,onRenameCat:Y,onSkillChange:H},telegramDiagnostics:ue,confirm:p,sections:["memory"]})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Ot,{provider:N.defaultExecutionTarget.provider??"",instance:N.defaultExecutionTarget.instance??"",model:N.defaultExecutionTarget.model??"",modelSelection:N.defaultModelSelection??null,onTargetChange:L=>{at(N.id,{provider:L.provider,instance:L.instance||null,model:L.model||null,modelSelection:L.modelSelection??null},m(l.sharedSettingsCatsUpdateBrainError))},fetchProviderRegistry:Et,fetchProviderModels:It,fetchAdvancedProviderModels:Bt})})]}):null})]}),r.jsx(_t,{dialog:g,onClose:f}),r.jsx(ht,{toasts:h}),je?r.jsx(sa,{onSave:L=>{Je(L)},onClose:()=>Me(!1),initialDataUrl:q==="create"?J:N?.avatarUrl??null}):null,Ge?r.jsx(Sn,{onSave:Nt,onClose:()=>qe(!1),initialDataUrl:q==="create"?we:te}):null]})}function zb(e){return r.jsx(qb,{...e,useSettingsCatsRegistryActionsHook:Dc,SettingsCatsRegistryComponent:_b})}const Jr="/api/providers/capability-bootstrap";function $b(e,t){return e.map(a=>({clientKey:t(),id:a.id,provider:a.selector.provider,instance:a.selector.instance??"",model:a.selector.model??"",control:a.selector.control??"",initialTreatment:a.initialTreatment,reason:a.reason}))}function Vb(e){return{version:1,profiles:e.map(t=>({id:t.id.trim(),selector:{provider:t.provider.trim(),...t.instance.trim()?{instance:t.instance.trim()}:{},...t.model.trim()?{model:t.model.trim()}:{},...t.control.trim()?{control:t.control.trim()}:{}},initialTreatment:t.initialTreatment,confidenceLevel:"catalog_only",reason:t.reason.trim()}))}}function Yb(e){return{version:1,profiles:e.rules.map(t=>({id:t.id,selector:t.selector,initialTreatment:t.initialTreatment,confidenceLevel:t.confidenceLevel,reason:t.reason}))}}async function Qb(e){try{const t=await e.json();return typeof t.error?.code=="string"?t.error.code:null}catch{return null}}function Jb({showToast:e}){const{t}=_(),[a,o]=d.useState({status:"loading"}),[n,i]=d.useState([]),[s,c]=d.useState(!1),h=d.useRef(0),u=d.useCallback(()=>`capability-rule-${h.current++}`,[]),g=d.useCallback(b=>{o({status:"ready",view:b}),i($b(b.rules,u))},[u]),p=d.useCallback(b=>{o({status:"loading"}),fetch(Jr,{signal:b}).then(S=>S.ok?S.json():Promise.reject(S)).then(S=>{b?.aborted||g(S)}).catch(()=>{b?.aborted||o({status:"error"})})},[g]);d.useEffect(()=>{const b=new AbortController;return p(b.signal),()=>b.abort()},[p]);const f=d.useCallback(async()=>{c(!0);try{const b=await fetch(Jr,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"install-example"})});if(!b.ok){e(t(l.settingsCapabilityBootstrapInstallFailed));return}g(await b.json())}catch{e(t(l.settingsCapabilityBootstrapInstallFailed))}finally{c(!1)}},[g,e,t]),w=d.useMemo(()=>Vb(n),[n]),k=a.status==="ready"&&(!a.view.parsed||JSON.stringify(w)!==JSON.stringify(Yb(a.view))),y=d.useCallback(async()=>{if(a.status==="ready"){c(!0);try{const b=await fetch(Jr,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({expectedRevision:a.view.revision,config:w})});if(!b.ok){const S=await Qb(b);e(t(S==="capability_bootstrap_revision_conflict"?l.settingsCapabilityBootstrapRevisionConflict:S==="invalid_capability_bootstrap_config"?l.settingsCapabilityBootstrapValidationFailed:l.settingsCapabilityBootstrapSaveFailed));return}g(await b.json())}catch{e(t(l.settingsCapabilityBootstrapSaveFailed))}finally{c(!1)}}},[g,w,e,a,t]),m=d.useCallback((b,S)=>{i(T=>T.map(M=>M.clientKey===b?{...M,...S}:M))},[]),C=d.useCallback((b,S)=>{i(T=>{const M=T.findIndex(A=>A.clientKey===b),j=M+S;if(M<0||j<0||j>=T.length)return T;const R=[...T],[P]=R.splice(M,1);return R.splice(j,0,P),R})},[]),v=b=>b.configPresent?b.parsed?t(l.settingsCapabilityBootstrapStatusLoaded):t(l.settingsCapabilityBootstrapStatusInvalid):t(l.settingsCapabilityBootstrapStatusMissing);return r.jsxs(xe,{header:r.jsx(de,{title:t(l.settingsCapabilityBootstrapTitle),description:t(l.settingsCapabilityBootstrapDescription)}),children:[a.status==="loading"?r.jsx("p",{className:"settingsMutedText",role:"status","aria-live":"polite",children:t(l.settingsCapabilityBootstrapLoading)}):null,a.status==="error"?r.jsxs("div",{className:"settingsMutedText",role:"alert",children:[r.jsx("p",{children:t(l.settingsCapabilityBootstrapLoadError)}),r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>p(),children:t(l.settingsCapabilityBootstrapReload)})]}):null,a.status==="ready"?r.jsxs("div",{className:"capabilityBootstrap",children:[r.jsxs("dl",{className:"capabilityBootstrapFacts",children:[r.jsxs("div",{children:[r.jsx("dt",{children:t(l.settingsCapabilityBootstrapConfigPathLabel)}),r.jsx("dd",{children:a.view.configPath})]}),r.jsxs("div",{children:[r.jsx("dt",{children:t(l.settingsCapabilityBootstrapStatusLabel)}),r.jsx("dd",{children:r.jsx(st,{tone:a.view.parsed?"ready":a.view.configPresent?"warm":"muted",children:v(a.view)})})]})]}),a.view.restartRequired?r.jsx("p",{className:"settingsMutedText",role:"status",children:t(l.settingsCapabilityBootstrapRestartRequired)}):null,r.jsxs("form",{className:"capabilityBootstrapEditor",onSubmit:b=>{b.preventDefault(),y()},children:[r.jsx("h4",{className:"capabilityBootstrapSubTitle",children:t(l.settingsCapabilityBootstrapRulesLabel)}),n.length===0?r.jsx("p",{className:"settingsMutedText",children:t(l.settingsCapabilityBootstrapNoRules)}):null,r.jsx("ol",{className:"capabilityBootstrapRuleEditorList",children:n.map((b,S)=>r.jsxs("li",{className:"capabilityBootstrapRuleEditor",children:[r.jsxs("div",{className:"capabilityBootstrapRuleEditorHeading",children:[r.jsx("strong",{children:t(l.settingsCapabilityBootstrapRuleTitle,{number:S+1})}),r.jsxs("div",{className:"capabilityBootstrapRuleActions",children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:s||S===0,onClick:()=>C(b.clientKey,-1),children:t(l.settingsCapabilityBootstrapMoveUp)}),r.jsx("button",{type:"button",className:"secondaryButton",disabled:s||S===n.length-1,onClick:()=>C(b.clientKey,1),children:t(l.settingsCapabilityBootstrapMoveDown)}),r.jsx("button",{type:"button",className:"secondaryButton",disabled:s,onClick:()=>i(T=>T.filter(M=>M.clientKey!==b.clientKey)),children:t(l.settingsCapabilityBootstrapRemoveRule)})]})]}),r.jsxs("div",{className:"capabilityBootstrapRuleFields",children:[r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.settingsCapabilityBootstrapRuleId)}),r.jsx("input",{className:"textInput",disabled:s,required:!0,value:b.id,onChange:T=>m(b.clientKey,{id:T.target.value})})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.settingsCapabilityBootstrapProvider)}),r.jsx("input",{className:"textInput",disabled:s,required:!0,value:b.provider,onChange:T=>m(b.clientKey,{provider:T.target.value})})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.settingsCapabilityBootstrapInstance)}),r.jsx("input",{className:"textInput",disabled:s,value:b.instance,onChange:T=>m(b.clientKey,{instance:T.target.value})})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.settingsCapabilityBootstrapModel)}),r.jsx("input",{className:"textInput",disabled:s,value:b.model,onChange:T=>m(b.clientKey,{model:T.target.value})})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.settingsCapabilityBootstrapControl)}),r.jsx("input",{className:"textInput",disabled:s,value:b.control,onChange:T=>m(b.clientKey,{control:T.target.value})})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.settingsCapabilityBootstrapTreatment)}),r.jsxs("select",{className:"textInput",disabled:s,value:b.initialTreatment,onChange:T=>m(b.clientKey,{initialTreatment:T.target.value}),children:[r.jsx("option",{value:"strong_agent",children:t(l.settingsCapabilityBootstrapTreatmentStrong)}),r.jsx("option",{value:"weak_worker",children:t(l.settingsCapabilityBootstrapTreatmentWeak)})]})]}),r.jsxs("label",{className:"fieldLabel capabilityBootstrapReasonField",children:[r.jsx("span",{children:t(l.settingsCapabilityBootstrapReason)}),r.jsx("textarea",{className:"textInput",disabled:s,required:!0,value:b.reason,onChange:T=>m(b.clientKey,{reason:T.target.value})})]})]})]},b.clientKey))}),r.jsxs(lt,{children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:s,onClick:()=>i(b=>[...b,{clientKey:u(),id:"",provider:"",instance:"",model:"",control:"",initialTreatment:"weak_worker",reason:""}]),children:t(l.settingsCapabilityBootstrapAddRule)}),r.jsx("button",{type:"submit",className:"primaryButton",disabled:s||!k,children:t(s?l.sharedCommonSaving:l.settingsCapabilityBootstrapSave)}),r.jsx("button",{type:"button",className:"secondaryButton",disabled:s,onClick:()=>p(),children:t(l.settingsCapabilityBootstrapReload)})]})]}),a.view.diagnostics.length>0?r.jsxs(r.Fragment,{children:[r.jsx("h4",{className:"capabilityBootstrapSubTitle",children:t(l.settingsCapabilityBootstrapDiagnosticsLabel)}),r.jsx("ul",{className:"capabilityBootstrapDiagnostics",children:a.view.diagnostics.map(b=>r.jsxs("li",{"data-severity":b.severity,children:[r.jsx("span",{className:"capabilityBootstrapRuleId",children:b.code}),b.message?r.jsx("span",{children:b.message}):null]},b.id))})]}):null,a.view.canInstallExample?r.jsx("button",{type:"button",className:"secondaryButton",disabled:s,onClick:()=>{f()},children:t(l.settingsCapabilityBootstrapInstallExample)}):null,r.jsx("p",{className:"settingsMutedText",children:t(l.settingsCapabilityBootstrapEditHint)})]}):null]})}const To="cats:platform-envelope-refresh";function yt(){const e=globalThis;e.document===void 0||typeof e.dispatchEvent!="function"||typeof e.CustomEvent!="function"||e.dispatchEvent(new e.CustomEvent(To))}const Xb=new Map([["Invalid request body",l.settingsAssistantsApiInvalidRequestBody],["Assistant name is required",l.settingsAssistantsApiAssistantNameRequired],["Assistant provider is required",l.settingsAssistantsApiAssistantProviderRequired],["Assistant model is required",l.settingsAssistantsApiAssistantModelRequired],["Assistant not found",l.settingsAssistantsApiAssistantNotFound],["Unexpected name field. Guide Cat name is system-managed.",l.settingsAssistantsApiGuideCatNameManaged],["status must be active or dismissed",l.settingsAssistantsApiGuideCatStatusInvalid],["No Guide Cat exists",l.settingsAssistantsApiGuideCatNotFound]]);function Zs(e,t){const a=Xb.get(e);return a?t(a):null}async function ua(e,t,a){try{const o=await e.json();if(typeof o.error=="string")return Zs(o.error,t)??(o.error||a);if(o.error&&typeof o.error=="object"){const n=typeof o.error.code=="string"?o.error.code:"",i=typeof o.error.message=="string"?o.error.message:"",s=i?Zs(i,t):null;return s||(n?a:i||a)}}catch{}return a}function Zb(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 ey({payload:e,onPayloadUpdate:t}){const a=e.guideCat??null,o=vt(),n=a?Ra(a.status):!1,i=e.assistantPresets??[],{t:s}=_(),c=s(l.settingsAssistantsNamePlaceholder),h=d.useCallback(()=>({name:c,roleHint:"",provider:"claude",instance:"",model:"",modelSelection:null}),[c]),{toasts:u,showToast:g}=pt(),{dialog:p,confirm:f,handleClose:w}=Gt(),[k,y]=d.useState(!1),[m,C]=d.useState(!1),[v,b]=d.useState(i[0]?.id??null),S=d.useMemo(()=>i.find(G=>G.id===v)??null,[i,v]),[T,M]=d.useState(()=>i.length===0),[j,R]=d.useState(h);d.useEffect(()=>{v&&!i.some(G=>G.id===v)&&b(i[0]?.id??null),i.length===0&&!T&&M(!0)},[i,T,v]);const P=d.useCallback(G=>{g(G)},[g]),A=d.useCallback(async G=>{y(!0);try{const I={provider:G.provider??a?.executionTarget.provider??"claude",instance:G.instance!==void 0?G.instance:a?.executionTarget.instance??null,model:G.model!==void 0?G.model:a?.executionTarget.model??null,modelSelection:G.modelSelection!==void 0?G.modelSelection:a?.modelSelection??null},z=await fetch("/api/platform/guide-cat",{method:"PUT",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(I)});if(!z.ok)throw new Error(await ua(z,s,s(l.settingsAssistantsSaveFailedWithError,{status:z.status})));const re=await z.json();return t({...e,guideCat:re.guideCat}),yt(),!0}catch(I){return P(I instanceof Error?I.message:s(l.settingsAssistantsGuideCatSaveFailed)),!1}finally{y(!1)}},[a,t,e,P,s]),x=d.useCallback(async G=>{y(!0);try{const I=await fetch("/api/platform/guide-cat",{method:"PATCH",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({status:G})});if(!I.ok)throw new Error(await ua(I,s,s(l.settingsAssistantsStatusUpdateFailed,{status:I.status})));const z=await I.json();return t({...e,guideCat:z.guideCat}),yt(),!0}catch(I){return P(I instanceof Error?I.message:s(l.settingsAssistantsGuideCatUpdateFailed)),!1}finally{y(!1)}},[t,e,P,s]),E=d.useCallback(async()=>{if(!a){await A({})&&await x("active");return}Ra(a.status)||await x("active")},[A,a,x]),O=d.useCallback(()=>{a&&x("dismissed")},[a,x]),$=d.useCallback(async(G,I,z)=>{const re=i.find(X=>X.id===G);if(!re)return!1;C(!0);try{const X={name:I.name!==void 0?I.name:re.name,provider:I.provider!==void 0?I.provider:re.executionTarget.provider,instance:I.instance!==void 0?I.instance:re.executionTarget.instance??null,model:I.model!==void 0?I.model:re.executionTarget.model??null,modelSelection:I.modelSelection!==void 0?I.modelSelection:re.modelSelection,roleHint:I.roleHint!==void 0?I.roleHint:re.roleHint},pe=await fetch(`/api/platform/assistants/${G}`,{method:"PUT",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify(X)});if(!pe.ok)throw new Error(await ua(pe,s,s(l.settingsAssistantsSaveFailedWithError,{status:pe.status})));const ve=await pe.json();return t({...e,assistantPresets:ve.assistants}),!0}catch(X){return P(X instanceof Error?X.message:z),!1}finally{C(!1)}},[i,t,e,P,s]),K=d.useCallback(async()=>{C(!0);try{const G=await fetch("/api/platform/assistants",{method:"POST",headers:{"content-type":"application/json",Accept:"application/json"},body:JSON.stringify({name:j.name.trim(),provider:j.provider,instance:j.instance||null,model:j.model||null,modelSelection:j.modelSelection,roleHint:j.roleHint.trim()||null})});if(!G.ok)throw new Error(await ua(G,s,s(l.settingsAssistantsSaveFailedWithError,{status:G.status})));const I=await G.json();t({...e,assistantPresets:I.assistants}),b(I.assistant.id),M(!1),R(h())}catch(G){P(G instanceof Error?G.message:s(l.settingsAssistantsCreateFailed))}finally{C(!1)}},[j,h,t,e,s,P]),ee=d.useCallback(async()=>{if(!(!S||!await f({title:s(l.settingsAssistantsRemoveTitle),message:s(l.settingsAssistantsRemoveMessage,{title:S.name}),confirmLabel:s(l.settingsAssistantsRemoveButton)}))){C(!0);try{const I=await fetch(`/api/platform/assistants/${S.id}`,{method:"DELETE",headers:{Accept:"application/json"}});if(!I.ok)throw new Error(await ua(I,s,s(l.settingsAssistantsStatusFailed,{status:I.status})));const z=await I.json();t({...e,assistantPresets:z.assistants}),b(z.assistants[0]?.id??null),z.assistants.length===0&&M(!0)}catch(I){P(I instanceof Error?I.message:s(l.settingsAssistantsRemoveFailed))}finally{C(!1)}}},[f,t,e,S,s,P]),F=d.useCallback(G=>{b(G),M(!1)},[]),Y=d.useCallback(()=>{M(!0),R(h())},[h]),H=d.useCallback(()=>{i.length!==0&&(M(!1),v||b(i[0]?.id??null))},[i,v]),ae=j.name.trim().length>0&&j.provider.trim().length>0&&j.model.trim().length>0,ue=T||!S;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"catsLayout catsLayoutSidePanel",children:[r.jsx(xe,{className:"catsDetailCard",header:r.jsx(de,{title:o,status:r.jsx(lt,{children:n?r.jsx("button",{type:"button",className:"secondaryButton",disabled:k,onClick:()=>{O()},children:s(l.settingsAssistantsDisableButton)}):r.jsx("button",{type:"button",className:"primaryButton",disabled:k,onClick:()=>{E()},children:s(k?l.sharedCommonSaving:l.settingsAssistantsEnableButton)})})}),children:r.jsxs("div",{className:"catsDetailBody",children:[r.jsx("div",{className:"catsDetailColumn",children:r.jsxs(De,{headerless:!0,className:"catsSubCard catsIdentityCard",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:s(l.settingsAssistantsAvatarLabel)}),r.jsx("div",{className:"catsAvatarDock",children:r.jsx("div",{className:"catAvatar catsIdentityAvatar catsIdentityAvatarStatic","aria-label":o,children:r.jsx("img",{className:"catsIdentityAvatarImage",src:Za,alt:"","aria-hidden":"true"})})})]}),r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:s(l.settingsAssistantsNameLabel)}),r.jsx("div",{className:"catsIdentityNameStatic",children:o})]})]})}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Ot,{provider:a?.executionTarget.provider??"claude",instance:a?.executionTarget.instance??"",model:a?.executionTarget.model??"",modelSelection:a?.modelSelection??null,onTargetChange:G=>{A({provider:G.provider,instance:G.instance||null,model:G.model||null,modelSelection:G.modelSelection??null})},fetchProviderRegistry:Et,fetchProviderModels:It,fetchAdvancedProviderModels:Bt})})]})}),r.jsxs("nav",{className:"catsSelectorStrip",role:"tablist","aria-label":s(l.settingsAssistantsSelectAriaLabel),children:[i.map(G=>{const I=!T&&G.id===v,z=["catAvatar","catsSelectorAvatar",I?"catsSelectorAvatarActive":""].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"tab","aria-selected":I,className:z,onClick:()=>F(G.id),"data-tooltip":G.name,"aria-label":G.name,children:Zb(G.name)},G.id)}),r.jsx("button",{type:"button",className:["catAvatar","catsSelectorAvatar","catsSelectorNewAvatar",T?"catsSelectorAvatarActive":""].filter(Boolean).join(" "),onClick:Y,"aria-label":s(l.settingsAssistantsAddNewLabel),"data-tooltip":s(l.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(xe,{className:"catsDetailCard",header:r.jsx(de,{title:ue?s(l.settingsAssistantsNewAssistantTitle):S?.name??"",status:ue?r.jsxs(lt,{children:[i.length>0?r.jsx("button",{type:"button",className:"secondaryButton",disabled:m,onClick:H,children:s(l.settingsAssistantsCancelButton)}):null,r.jsx("button",{type:"button",className:"primaryButton",disabled:m||!ae,onClick:()=>{K()},children:s(m?l.sharedCommonSaving:l.settingsAssistantsCreateButton)})]}):r.jsx(lt,{children:r.jsx("button",{type:"button",className:"dangerButton",disabled:m,onClick:()=>{ee()},children:s(l.settingsAssistantsDeleteButton)})})}),children:ue?r.jsxs("div",{className:"catsDetailBody",children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsx(De,{headerless:!0,className:"catsSubCard catsIdentityCard",children:r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(l.settingsAssistantsNameLabel)}),r.jsx("input",{className:"textInput",value:j.name,placeholder:s(l.settingsAssistantsNamePlaceholder),onChange:G=>R(I=>({...I,name:G.target.value}))})]})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:s(l.settingsAssistantsRoleHintTitle),nested:!0}),children:r.jsx("textarea",{className:"textInput",rows:3,value:j.roleHint,placeholder:s(l.settingsAssistantsRoleHintPlaceholder),onChange:G=>R(I=>({...I,roleHint:G.target.value}))})})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Ot,{provider:j.provider,instance:j.instance,model:j.model,modelSelection:j.modelSelection,onTargetChange:G=>R(I=>({...I,provider:G.provider,instance:G.instance,model:G.model,modelSelection:G.modelSelection??null})),fetchProviderRegistry:Et,fetchProviderModels:It,fetchAdvancedProviderModels:Bt})})]}):S?r.jsxs("div",{className:"catsDetailBody",children:[r.jsxs("div",{className:"catsDetailColumn",children:[r.jsx(De,{headerless:!0,className:"catsSubCard catsIdentityCard",children:r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:s(l.settingsAssistantsNameLabel)}),r.jsx("input",{className:"textInput",defaultValue:S.name,placeholder:s(l.settingsAssistantsNamePlaceholder),onBlur:async G=>{const I=G.currentTarget.value.trim();if(!I){G.currentTarget.value=S.name;return}if(I===S.name)return;await $(S.id,{name:I},s(l.settingsAssistantsRenameFailed))||(G.currentTarget.value=S.name)}},S.id)]})}),r.jsx(De,{className:"catsSubCard",header:r.jsx(de,{title:s(l.settingsAssistantsRoleHintTitle),nested:!0}),children:r.jsx("textarea",{className:"textInput",rows:3,defaultValue:S.roleHint??"",placeholder:s(l.settingsAssistantsRoleHintPlaceholder),onBlur:async G=>{const I=G.currentTarget.value.trim(),z=I||null,re=S.roleHint??null;if(z===re)return;await $(S.id,{roleHint:z},s(l.settingsAssistantsRoleHintUpdateFailed))||(G.currentTarget.value=S.roleHint??"")}},S.id)})]}),r.jsx("div",{className:"catsDetailColumn",children:r.jsx(Ot,{provider:S.executionTarget.provider,instance:S.executionTarget.instance??"",model:S.executionTarget.model??"",modelSelection:S.modelSelection,onTargetChange:G=>{$(S.id,{provider:G.provider,instance:G.instance||null,model:G.model||null,modelSelection:G.modelSelection??null},s(l.settingsAssistantsBrainUpdateFailed))},fetchProviderRegistry:Et,fetchProviderModels:It,fetchAdvancedProviderModels:Bt})})]}):null}),r.jsx(Jb,{showToast:g})]}),r.jsx(_t,{dialog:p,onClose:w}),r.jsx(ht,{toasts:u})]})}function ei(e,t){const a=e?.[t];return typeof a=="string"&&a.trim()?a:null}function ty(e,t){if(!e)return t(l.settingsAppsValidationFailed);if(e.message==="packagePath is required.")return t(l.settingsAppsPackagePathRequired);const a=e.message.match(/^Package path does not exist: (.+)\.$/u);return a?t(l.settingsAppsErrorPackagePathNotFound,{path:a[1]}):e.message==="Invalid cats.app.json JSON."?t(l.settingsAppsErrorInvalidManifestJson):e.message==="Cannot read cats.app.json."?t(l.settingsAppsErrorCannotReadManifest):e.message==="Cats app manifest must be an object."?t(l.settingsAppsErrorManifestInvalid):e.code==="reserved_cats_app_id"?t(l.settingsAppsErrorReservedAppId,{appId:ei(e.details,"appId")??e.path??""}):e.code==="duplicate_cats_app_id"?t(l.settingsAppsErrorDuplicateAppId,{appId:ei(e.details,"appId")??e.path??""}):t(e.path?l.settingsAppsErrorValidationIssueWithPath:l.settingsAppsErrorValidationIssue,{code:e.code,path:e.path??""})}function ay(e,t){const a=e.match(/^Cats app "(.+)" is not installed\.$/u);if(a)return t(l.settingsAppsErrorNotInstalled,{appId:a[1]});const o=e.match(/^Cats app "(.+)" is not enabled\.$/u);return o?t(l.settingsAppsErrorNotEnabled,{appId:o[1]}):null}function Xr(e,t,a){return e instanceof Error?ay(e.message,a)??e.message:t}const ti={"capability-connector":"settingsAppsCategoryConnector","product-module":"settingsAppsCategoryProductModule","user-app":"settingsAppsCategoryUserApp"},ry={enabled:"settingsAppsInstallStateEnabled",installed:"settingsAppsInstallStateInstalled",disabled:"settingsAppsInstallStateDisabled",error:"settingsAppsInstallStateError","upgrade-pending":"settingsAppsInstallStateUpgradePending",uninstalled:"settingsAppsInstallStateUninstalled"},ai={"local-user":"settingsAppsTrustTierLocalUser",system:"settingsAppsTrustTierSystem","third-party":"settingsAppsTrustTierThirdParty"},oy={uninstall:"settingsAppsUninstallTitle",enable:"settingsAppsEnableTitle",disable:"settingsAppsDisableTitle"},ny={uninstall:"settingsAppsUninstallMessage",enable:"settingsAppsEnableMessage",disable:"settingsAppsDisableMessage"};function Nn(e){return e===1?"":"s"}function ri(e,t){return t("settingsAppsPermissionCount",{count:e,pluralSuffix:Nn(e)})}function sy(e,t){return t("settingsAppsToolCount",{count:e,pluralSuffix:Nn(e)})}function iy(e,t){if(e.connectors.length===0)return null;const a=e.connectors.reduce((n,i)=>n+i.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 ly(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 cy(e){return e==="enabled"?"ready":e==="error"||e==="upgrade-pending"?"warm":"muted"}function oi(e=[],t){return ty(e[0],t)}async function dy(e,t){return(await e.json().catch(()=>null))?.error?.message??t}function ni(e,t){return e.findIndex(o=>o.id===t.id)<0?[...e,t]:e.map(o=>o.id===t.id?t:o)}function uy(e,t){return e.filter(a=>a.id!==t)}function si(e){return!e.enabled||e.installState!=="enabled"?null:e.lobbyEntries[0]?.routePath??null}function py(e){return e.connectors.find(t=>t.setupPath)?.setupPath??e.settings?.[0]?.path??null}function hy({installedApps:e,onInstalledAppsUpdate:t}){const{t:a}=_(),o=Ue(),n=e.filter(R=>R.category==="capability-connector").length,{toasts:i,showToast:s}=pt(),{dialog:c,confirm:h,handleClose:u}=Gt(),[g,p]=d.useState(null),[f,w]=d.useState(""),[k,y]=d.useState(null),[m,C]=d.useState(!1);async function v(R,P){if(!await h({title:a(oy[P]),message:a(ny[P],{appDisplayName:R.displayName}),confirmLabel:a(P==="uninstall"?"settingsAppsUninstallAction":P==="enable"?"settingsAppsEnableAction":"settingsAppsDisableAction"),defaultAction:"cancel"}))return;const x=`${R.id}:${P}`;p(x);try{const E=await fetch(P==="uninstall"?`/api/apps/${encodeURIComponent(R.id)}`:`/api/apps/${encodeURIComponent(R.id)}/${P}`,{method:P==="uninstall"?"DELETE":"POST",headers:{Accept:"application/json"}});if(!E.ok)throw new Error(await dy(E,a("settingsAppsMutationFailed",{action:a(P==="uninstall"?"settingsAppsUninstallAction":P==="enable"?"settingsAppsEnableAction":"settingsAppsDisableAction"),status:E.status})));const O=await E.json();P==="uninstall"?t?.(uy(e,O.appId??R.id)):O.app&&t?.(ni(e,O.app)),yt()}catch(E){s(Xr(E,a("settingsAppsMutationFailedFallback"),a))}finally{p(null)}}async function b(){const R=f.trim();if(!R){s(a("settingsAppsPackagePathRequired"));return}C(!0);try{const P=await fetch("/api/apps/validate",{method:"POST",headers:{Accept:"application/json","content-type":"application/json"},body:JSON.stringify({packagePath:R})}),A=await P.json();if(!P.ok||!A.ok||!A.manifest)throw new Error(oi(A.issues,a));y({packagePath:A.packagePath??R,manifestPath:A.manifestPath??null,manifest:A.manifest})}catch(P){y(null),s(Xr(P,a("settingsAppsValidationFailed"),a))}finally{C(!1)}}async function S(){if(!(!k||!await h({title:a("settingsAppsInstallTitle"),message:a("settingsAppsInstallMessage",{appDisplayName:k.manifest.displayName}),confirmLabel:a("settingsAppsInstallButton"),defaultAction:"cancel"}))){C(!0);try{const P=await fetch("/api/apps/install",{method:"POST",headers:{Accept:"application/json","content-type":"application/json"},body:JSON.stringify({packagePath:k.packagePath,enable:!0})}),A=await P.json();if(!P.ok||!A.app)throw new Error(A.issues?oi(A.issues,a):a("settingsAppsMutationFailed",{action:a("settingsAppsInstallButton"),status:P.status}));t?.(ni(e,A.app)),w(""),y(null),yt();const x=si(A.app);x&&o(x)}catch(P){s(Xr(P,a("settingsAppsMutationFailed",{action:a("settingsAppsInstallButton")}),a))}finally{C(!1)}}}const T=a("settingsAppsSectionTitle"),M=a("settingsAppsSectionDescription"),j=a("settingsAppsInstalledPackagesDescription",{count:n,pluralSuffix:Nn(n)});return r.jsxs(r.Fragment,{children:[r.jsx(xe,{header:r.jsx(de,{title:T,description:M}),children:r.jsxs("div",{className:"settings-sub-card settingsAppsList",children:[r.jsx(me,{label:a("settingsAppsInstalledPackagesLabel"),description:j,control:r.jsx(st,{tone:e.length>0?"ready":"muted",children:e.length})}),e.length>0?e.map(R=>{const P=si(R),A=R.installState==="installed"||R.installState==="disabled",x=R.installState==="enabled",E=g?.startsWith(`${R.id}:`)??!1,O=iy(R,a),$=ly(R,a),K=py(R);return r.jsx(me,{label:R.displayName,description:r.jsxs("span",{className:"settingsAppsMeta",children:[r.jsx("span",{children:a(ti[R.category],{})}),r.jsx("span",{children:a(ai[R.trustTier],{})}),r.jsx("span",{children:R.version}),r.jsx("span",{children:R.publisher}),r.jsx("span",{children:ri(R.permissions.length,a)}),O?r.jsx("span",{children:O}):null,$?r.jsx("span",{children:$}):null,R.tools.length>0?r.jsx("span",{children:sy(R.tools.length,a)}):null]}),control:r.jsxs(lt,{children:[P?r.jsx("a",{className:"secondaryButton settingsInlineLink",href:P,children:a("settingsAppsOpenAction")}):null,K?r.jsx("a",{className:"secondaryButton settingsInlineLink",href:K,children:a("settingsAppsSettingsAction")}):null,A?r.jsx("button",{type:"button",className:"secondaryButton",disabled:E,onClick:()=>{v(R,"enable")},children:a("settingsAppsEnableAction")}):null,x?r.jsx("button",{type:"button",className:"secondaryButton",disabled:E,onClick:()=>{v(R,"disable")},children:a("settingsAppsDisableAction")}):null,r.jsx("button",{type:"button",className:"dangerButton",disabled:E,onClick:()=>{v(R,"uninstall")},children:a("settingsAppsUninstallAction")}),r.jsx(st,{tone:cy(R.installState),children:a(ry[R.installState],{})})]})},R.id)}):r.jsx(me,{label:a("settingsAppsNoInstalledAppsLabel"),description:a("settingsAppsNoInstalledAppsDescription"),control:r.jsx(st,{tone:"muted",children:a("settingsAppsEmptyStateChipLabel")})}),r.jsx(me,{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:f,placeholder:a("settingsAppsPackagePathPlaceholder"),disabled:m,onChange:R=>{w(R.target.value),y(null)}})]}),r.jsxs(lt,{children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:m,onClick:()=>{b()},children:a("settingsAppsReviewButton")}),r.jsx(st,{tone:k?"ready":"warm",children:a(k?"settingsAppsLocalInstallReady":"settingsAppsLocalInstallNeedsReview")})]}),k?r.jsxs("div",{className:"settingsAppsReview",children:[r.jsx("span",{children:k.manifest.displayName}),r.jsx("span",{children:k.manifest.id}),r.jsx("span",{children:k.manifest.contributions.lobbyApps?.[0]?.routePath??a("settingsAppsNoLobbyRoute")}),r.jsx("span",{children:a(ti[k.manifest.category],{})}),r.jsx("span",{children:a(ai[k.manifest.trustTier],{})}),r.jsx("span",{children:ri(k.manifest.permissions.length,a)}),r.jsx(lt,{children:r.jsx("button",{type:"button",className:"primaryButton",disabled:m,onClick:()=>{S()},children:a("settingsAppsInstallButton")})})]}):null]})})]})}),r.jsx(_t,{dialog:c,onClose:u}),r.jsx(ht,{toasts:i})]})}const my={chat:{title:"settingsAdvancedDraftControlsTitle",description:"settingsAdvancedDraftControlsDescription",toggleDescription:"settingsAdvancedDraftControlsToggleDescription"},code:{title:"settingsAdvancedDraftControlsTitle",description:"settingsAdvancedDraftControlsDescription",toggleDescription:"settingsAdvancedDraftControlsToggleDescription"},work:{title:"settingsAdvancedDraftControlsTitle",description:"settingsAdvancedDraftControlsDescription",toggleDescription:"settingsAdvancedDraftControlsToggleDescription"}};function jn({surface:e,enabled:t,disabled:a=!1,onToggle:o}){if(e!=="chat"&&e!=="code"&&e!=="work")return null;const{t:n}=_(),i=my[e];return r.jsx(xe,{header:r.jsx(de,{title:n(i.title),description:n(i.description,{surface:n(`settingsConversationProductLabel${e==="chat"?"Chat":e==="code"?"Code":"Work"}`)})}),children:r.jsx(me,{label:n("settingsAdvancedDraftControlsEnableLabel"),description:n(i.toggleDescription,{surface:n(`settingsConversationProductLabel${e==="chat"?"Chat":e==="code"?"Code":"Work"}`)}),control:r.jsx("input",{type:"checkbox",checked:t,disabled:a,onChange:s=>o(s.target.checked)})})})}async function gy(e,t){return kn("chat",e,t)}async function ky(e,t){return kn("code",e,t)}async function wy(e,t){return kn("work",e,t)}const fy={chat:gy,code:ky,work:wy};function by(e,t,a){return fy[e](t,a)}const yy=[/^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 ed(e,t){return e.startsWith("Chat not found:")?t(l.sharedWorkspaceNavigationErrorChatNotFound):e.startsWith("Channel not found:")||e==="Channel not found."?t(l.sharedWorkspaceNavigationErrorChannelNotFound):e.startsWith("Parallel chat group not found:")?t(l.sharedWorkspaceNavigationErrorParallelChatGroupNotFound):e==="Title must not be empty."?t(l.sharedWorkspaceNavigationErrorTitleRequired):e==="Parallel chat title must not be empty."?t(l.sharedWorkspaceNavigationErrorParallelChatTitleRequired):null}function bP(e,t,a){if(!(e instanceof Error))return t;const o=ed(e.message,a);return o||(yy.some(n=>n.test(e.message))?t:e.message)}const vy=[/^cats conversation behavior update returned \d+$/u,/^cats advanced draft controls update returned \d+$/u];function Ta(e,t,a){if(!(e instanceof Error))return t;const o=ed(e.message,a);return o||(vy.some(n=>n.test(e.message))?t:e.message)}const Cy={chat:"settingsConversationProductLabelChat",code:"settingsConversationProductLabelCode",work:"settingsConversationProductLabelWork"};function Sy(e,t,a){return{...e,chat:{...e.chat,conversationBehavior:sg(e.chat.conversationBehavior,{[t]:a})}}}function Mn({surface:e,payload:t,onPayloadUpdate:a,onError:o}){const{t:n}=_(),i=n(Cy[e]),s=ig(t.chat.conversationBehavior,e);async function c(h,u){a(Sy(t,e,h));try{const g=await by(e,h);d.startTransition(()=>a(g))}catch(g){a(t),o(Ta(g,u,n))}}return r.jsxs(xe,{header:r.jsx(de,{title:n("settingsConversationBehaviorTitle"),description:n("settingsConversationBehaviorDescription",{product:i})}),children:[r.jsx(me,{label:n("settingsConversationShowVerboseLabel"),description:n("settingsConversationShowVerboseDescription"),control:r.jsx("input",{type:"checkbox",checked:s.showVerboseMessages,onChange:()=>{c({showVerboseMessages:!s.showVerboseMessages},n("settingsConversationUpdateFailure"))}})}),r.jsx(me,{label:n("settingsConversationShowLiveProgressLabel"),description:n("settingsConversationShowLiveProgressDescription"),control:r.jsx("input",{type:"checkbox",checked:s.showLiveProgressDetails,onChange:()=>{c({showLiveProgressDetails:!s.showLiveProgressDetails},n("settingsConversationUpdateFailure"))}})}),r.jsx(me,{label:n("settingsConversationConcurrentLayoutLabel"),description:n("settingsConversationConcurrentLayoutDescription",{product:i}),layout:"stack",control:r.jsxs("select",{className:"textInput",value:s.concurrentPresentationMode,onChange:h=>{c({concurrentPresentationMode:h.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 Ly({payload:e,onPayloadUpdate:t}){const{toasts:a,showToast:o}=pt(),{t:n}=_();async function i(u){const g=e.chat.advancedDraftControls,p=vr(g);p.chat=u,t({...e,chat:{...e.chat,advancedDraftControls:p}});try{const f=await wn({chat:u});d.startTransition(()=>t(f))}catch(f){t({...e,chat:{...e.chat,advancedDraftControls:g}}),o(Ta(f,n("settingsChatAdvancedControlsFailure"),n))}}async function s(u){const g=e,p=e.chat.globalOrchestrator;t({...e,chat:{...e.chat,globalOrchestrator:{...p,mcpProfile:u}}});try{const f=await Bg({mcpProfile:u});d.startTransition(()=>t(f))}catch(f){t(g),o(Ta(f,n(l.settingsChatBossToolProfileUpdateFailure),n))}}const c=ln(e.chat.advancedDraftControls,"chat"),h=e.chat.globalOrchestrator.mcpProfile??dt;return r.jsxs(r.Fragment,{children:[r.jsx(xe,{header:r.jsx(de,{title:n(l.settingsChatBossToolProfileTitle)}),children:r.jsx(me,{label:n(l.sharedSettingsCatsMcpProfileLabel),layout:"stack",control:r.jsx("div",{className:"settingsSegmentedControl",role:"radiogroup","aria-label":n(l.sharedSettingsCatsMcpProfileLabel),children:Ut.map(u=>r.jsx("button",{type:"button",role:"radio","aria-checked":h===u.value,className:"settingsSegmentedOption","data-active":h===u.value?"true":"false",onClick:()=>{h!==u.value&&s(u.value)},children:n(u.label)},u.value))})})}),r.jsx(Mn,{surface:"chat",payload:e,onPayloadUpdate:t,onError:o}),r.jsx(jn,{surface:"chat",enabled:c,onToggle:u=>{i(u)}}),r.jsx(ht,{toasts:a})]})}function Py({payload:e,onPayloadUpdate:t}){const{toasts:a,showToast:o}=pt(),{t:n}=_(),i=ln(e.chat.advancedDraftControls,"code");async function s(c){const h=e.chat.advancedDraftControls,u=vr(h);u.code=c,t({...e,chat:{...e.chat,advancedDraftControls:u}});try{const g=await wn({code:c});d.startTransition(()=>t(g))}catch(g){t({...e,chat:{...e.chat,advancedDraftControls:h}}),o(Ta(g,n("settingsConversationPreferenceUpdateFailure"),n))}}return r.jsxs(r.Fragment,{children:[r.jsx(Mn,{surface:"code",payload:e,onPayloadUpdate:t,onError:o}),r.jsx(jn,{surface:"code",enabled:i,onToggle:c=>{s(c)}}),r.jsx(ht,{toasts:a})]})}const Ry=[/^setup reset returned \d+$/u];function xy(e,t){return e instanceof Error?Ry.some(a=>a.test(e.message))?t:e.message:t}function Ay({busy:e,onResetSetup:t}){const a=lf(e),{toasts:o,showToast:n}=pt(),{t:i}=_();async function s(){try{await t()}catch(c){n(xy(c,i("settingsDataResetFailure")))}}return r.jsxs(r.Fragment,{children:[r.jsx(tf,{title:i("settingsDataResetAllDataTitle"),description:i("settingsDataResetAllDataDescription"),children:r.jsx("button",{className:"dangerButton",type:"button",disabled:a,onClick:()=>{s()},children:i(a?"settingsDataResetButtonResetting":"settingsDataResetButtonLabel")})}),r.jsx(ht,{toasts:o})]})}const Ty=[{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]}],Dy=4,Ny=1,jy=0,My=21522,Ey=1335,ii=[236,17],fa=new Array(512),Do=new Array(256);let pa=1;for(let e=0;e<255;e+=1)fa[e]=pa,Do[pa]=e,pa<<=1,(pa&256)!==0&&(pa^=285);for(let e=255;e<fa.length;e+=1)fa[e]=fa[e-255]??1;function No(e,t){return e===0||t===0?0:fa[(Do[e]??0)+(Do[t]??0)]??0}function Iy(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]=No(t[n]??0,a),n+1<e&&(t[n]^=t[n+1]??0);a=No(a,2)}return t}function By(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 i=0;i<t.length;i+=1)a[i]=(a[i]??0)^No(t[i]??0,n)}return a}function ka(e,t,a){for(let o=a-1;o>=0;o-=1)e.push(t>>>o&1)}function Fy(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 Oy(e){return Ty.find(t=>12+e*8<=t.dataCodewords*8)??null}function Wy(e,t){const a=Array.from(new TextEncoder().encode(e)),o=[],n=t.dataCodewords*8;ka(o,Dy,4),ka(o,a.length,8);for(const c of a)ka(o,c,8);for(ka(o,0,Math.min(4,n-o.length));o.length%8!==0;)o.push(0);const i=Fy(o);let s=0;for(;i.length<t.dataCodewords;)i.push(ii[s%ii.length]??236),s+=1;return i}function Uy(e){return{modules:Array.from({length:e},()=>new Array(e).fill(!1)),functionModules:Array.from({length:e},()=>new Array(e).fill(!1))}}function We(e,t,a,o,n){o<0||o>=e.length||a<0||a>=e.length||(e[o][a]=n,t[o][a]=!0)}function Zr(e,t,a,o){for(let n=-4;n<=4;n+=1)for(let i=-4;i<=4;i+=1){const s=Math.max(Math.abs(i),Math.abs(n));We(e,t,a+i,o+n,s!==2&&s!==4)}}function Hy(e,t,a,o){for(let n=-2;n<=2;n+=1)for(let i=-2;i<=2;i+=1){const s=Math.max(Math.abs(i),Math.abs(n));We(e,t,a+i,o+n,s!==1)}}function Gy(e,t){const a=e.length;for(let o=0;o<=8;o+=1)o!==6&&(We(e,t,8,o,!1),We(e,t,o,8,!1));for(let o=0;o<8;o+=1)We(e,t,a-1-o,8,!1);for(let o=8;o<15;o+=1)We(e,t,8,a-15+o,!1)}function _y(e,t,a){const o=e.length;Zr(e,t,3,3),Zr(e,t,o-4,3),Zr(e,t,3,o-4);for(const n of a.alignmentCenters)for(const i of a.alignmentCenters)t[n]?.[i]||Hy(e,t,i,n);for(let n=0;n<o;n+=1)t[6][n]||We(e,t,n,6,n%2===0),t[n][6]||We(e,t,6,n,n%2===0);We(e,t,8,o-8,!0),Gy(e,t)}function Ky(e,t){return(e+t)%2===0}function qy(e,t,a){const o=e.length,n=[];for(const c of a)ka(n,c,8);let i=0,s=!0;for(let c=o-1;c>=1;c-=2){c===6&&(c-=1);for(let h=0;h<o;h+=1){const u=s?o-1-h:h;for(let g=0;g<2;g+=1){const p=c-g;if(t[u][p])continue;const f=(n[i]??0)===1;e[u][p]=Ky(p,u)?!f:f,i+=1}}s=!s}}function zy(){const e=Ny<<3|jy;let t=e<<10;for(let a=14;a>=10;a-=1)(t>>>a&1)!==0&&(t^=Ey<<a-10);return(e<<10|t)^My}function $y(e,t){const a=e.length,o=zy(),n=i=>(o>>>i&1)!==0;for(let i=0;i<=5;i+=1)We(e,t,8,i,n(i));We(e,t,8,7,n(6)),We(e,t,8,8,n(7)),We(e,t,7,8,n(8));for(let i=9;i<15;i+=1)We(e,t,14-i,8,n(i));for(let i=0;i<8;i+=1)We(e,t,a-1-i,8,n(i));for(let i=8;i<15;i+=1)We(e,t,8,a-15+i,n(i));We(e,t,8,a-8,!0)}function Vy(e){const t=new TextEncoder().encode(e),a=Oy(t.length);if(!a)return null;const o=Wy(e,a),n=By(o,Iy(a.errorCodewords)),{modules:i,functionModules:s}=Uy(a.size);return _y(i,s,a),qy(i,s,[...o,...n]),$y(i,s),{size:a.size,cells:i}}const Yy=new Set(["Desktop host is not initialized.","Invalid desktop startup preferences payload."]);function td(e,t,a){return e instanceof Error?Yy.has(e.message)?t:e.message:t}const ad={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 jo(){return{startAtLogin:!0,openWindowOnStartup:!1,systemTrayEnabled:!0,mobilePairing:ad}}function Qy(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 Jy(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 Xy({t:e,url:t}){const a=Vy(t);if(!a)return r.jsx("span",{children:e("settingsDesktopMobilePairingQrUrlTooLong")});const o=[];for(let n=0;n<a.size;n+=1)for(let i=0;i<a.size;i+=1)a.cells[n]?.[i]&&o.push(r.jsx("rect",{x:i,y:n,width:"1",height:"1"},`${i}:${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 Zy({payload:e,showToast:t}){const{t:a}=_(),[o,n]=d.useState(!1),s=(e.desktop??jo()).mobilePairing??ad,c=Jy(s,a);async function h(g,p){try{await navigator.clipboard.writeText(g),t(p)}catch{t(a("settingsConversationPreferenceUpdateFailure"))}}async function u(){const g=`CATS_DESKTOP_MOBILE_PAIRING_ENABLED=true
45
+ CATS_DESKTOP_APP_HOST=0.0.0.0`,p=window.catsDesktopHost;if(!p?.enableMobilePairing){await h(g,a("settingsDesktopMobilePairingCopyEnvValuesSuccess"));return}if(window.confirm(a("settingsDesktopMobilePairingConfirmRestart"))){n(!0);try{const w=await p.enableMobilePairing();t(a("settingsDesktopMobilePairingDesktopUpdateSuccess",{envPath:w.envPath})),p.relaunch&&await p.relaunch()}catch(w){t(td(w,a("settingsDesktopMobilePairingDesktopUpdateFailure"))),n(!1)}}}return r.jsx(xe,{className:"settingsMobilePairing",header:r.jsx(de,{title:a("settingsDesktopMobilePairingTitle"),description:a("settingsDesktopMobilePairingDescription"),status:r.jsx(st,{tone:c.tone,children:c.label})}),children:s.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:[s.bindHost,":",s.bindPort]})]}),r.jsxs("div",{children:[r.jsx("dt",{children:a("settingsDesktopMobilePairingReachabilityLabel")}),r.jsx("dd",{children:Qy(s,a)})]}),r.jsxs("div",{children:[r.jsx("dt",{children:a("settingsDesktopMobilePairingLanAddressLabel")}),r.jsx("dd",{children:s.selectedLanIp??a("settingsDesktopMobilePairingNoneLabel")})]})]}),s.noLanCandidateReason==="loopback_bound"&&s.bindOverrideEnv?r.jsx(me,{label:a("settingsDesktopMobilePairingAllowLanLabel"),description:a("settingsDesktopMobilePairingAllowLanDescription",{bindOverrideEnv:s.bindOverrideEnv}),control:r.jsx("button",{type:"button",className:"secondaryButton",disabled:o,onClick:()=>{u()},children:a(o?"settingsDesktopMobilePairingApplyingButton":"settingsDesktopMobilePairingApplyAndRestartButton")})}):null,s.noLanCandidateReason==="no_lan_candidate"?r.jsx("p",{className:"settingsMobilePairingNote",children:a("settingsDesktopMobilePairingNoLanAddressNote")}):null,s.noLanCandidateReason==="bind_host_not_lan_candidate"?r.jsx("p",{className:"settingsMobilePairingNote",children:a("settingsDesktopMobilePairingHostMismatchNote")}):null,s.diagnosticManifestUrl?r.jsx(me,{label:a("settingsDesktopMobilePairingDiagnosticLabel"),description:s.diagnosticManifestUrl,control:r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>{h(s.diagnosticManifestUrl??"",a("settingsDesktopMobilePairingDiagnosticCopiedMessage"))},children:a("settingsDesktopMobilePairingDiagnosticCopyButton")}),layout:"stack"}):null,s.pairingUrlStatus==="ready"&&s.pairingUrl?r.jsx(me,{label:a("settingsDesktopMobilePairingExpoUrlLabel"),description:s.pairingUrl,control:r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>{h(s.pairingUrl??"",a("settingsDesktopMobilePairingExpoUrlCopiedMessage"))},children:a("settingsDesktopMobilePairingCopyUrlButton")}),layout:"stack"}):null]}),r.jsx("div",{className:"settingsMobilePairingQr","data-state":s.pairingUrlStatus,children:s.pairingUrlStatus==="ready"&&s.pairingUrl?r.jsxs("div",{className:"settingsMobilePairingQrContent",children:[r.jsx(Xy,{t:a,url:s.pairingUrl}),r.jsx("code",{className:"settingsMobilePairingQrUrl",children:s.pairingUrl})]}):r.jsx("span",{children:a("settingsDesktopMobilePairingNoPairingUrlStatus")})})]}):r.jsx(me,{label:a("settingsDesktopMobilePairingEnableLabel"),description:a("settingsDesktopMobilePairingEnableDescription"),control:r.jsx("button",{type:"button",className:"secondaryButton",disabled:o,onClick:()=>{u()},children:a(o?"settingsDesktopMobilePairingApplyingButton":"settingsDesktopMobilePairingEnableButton")}),layout:"stack"})})}function ev({payload:e,onPayloadUpdate:t,showToast:a}){const{t:o}=_(),[n,i]=d.useState(!1),s=e.desktop??jo();async function c(h){const u=e.desktop??jo(),g=o("settingsConversationPreferenceUpdateFailure");t({...e,desktop:h}),i(!0);try{const p=window.catsDesktopHost;let f=h;if(p?.updateDesktopPreferences)f=await p.updateDesktopPreferences(h);else{const w=await fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(h)});if(!w.ok)throw new Error(g);const k=await w.json();f={...s,startAtLogin:k.startAtLogin!==!1,openWindowOnStartup:k.openWindowOnStartup===!0,systemTrayEnabled:k.systemTrayEnabled!==!1}}t({...e,desktop:f}),yt()}catch(p){t({...e,desktop:u}),a(td(p,g))}finally{i(!1)}}return r.jsxs(xe,{header:r.jsx(de,{title:o("settingsDesktopStartupTitle"),description:o("settingsDesktopStartupDescription")}),children:[r.jsx(me,{asChoice:!0,label:o("settingsDesktopStartupSignInLabel"),description:o("settingsDesktopStartupSignInDescription"),control:r.jsx("input",{type:"checkbox",checked:s.startAtLogin,disabled:n,onChange:()=>{c({...s,startAtLogin:!s.startAtLogin})}})}),r.jsx(me,{asChoice:!0,label:o("settingsDesktopStartupTrayLabel"),description:o("settingsDesktopStartupTrayDescription"),control:r.jsx("input",{type:"checkbox",checked:s.systemTrayEnabled,disabled:n,onChange:()=>{c({...s,systemTrayEnabled:!s.systemTrayEnabled})}})}),r.jsx(me,{asChoice:!0,label:o("settingsDesktopStartupOpenWindowLabel"),description:o("settingsDesktopStartupOpenWindowDescription"),control:r.jsx("input",{type:"checkbox",checked:s.openWindowOnStartup,disabled:n,onChange:()=>{c({...s,openWindowOnStartup:!s.openWindowOnStartup})}})})]})}const li={unavailable:"settingsDesktopUpdatesStatusUnavailable",idle:"settingsDesktopUpdatesStatusIdle",checking:"settingsDesktopUpdatesStatusChecking",up_to_date:"settingsDesktopUpdatesStatusUpToDate",update_available:"settingsDesktopUpdatesStatusAvailable",downloading:"settingsDesktopUpdatesStatusDownloading",downloaded:"settingsDesktopUpdatesStatusDownloaded",installing:"settingsDesktopUpdatesStatusInstalling",failed:"settingsDesktopUpdatesStatusFailed"},tv={unavailable:"muted",idle:"muted",checking:"muted",up_to_date:"ready",update_available:"warm",downloading:"muted",downloaded:"ready",installing:"muted",failed:"warm"},ci={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"},av={none:null,check:"settingsDesktopUpdatesActionCheck",download:"settingsDesktopUpdatesActionDownload",restart_install:"settingsDesktopUpdatesActionRestartInstall"},rv={checking:"settingsDesktopUpdatesActionChecking",downloading:"settingsDesktopUpdatesActionDownloading",installing:"settingsDesktopUpdatesActionInstalling"};function ov(e){return li[e]??li.unavailable}function nv(e){return tv[e]??"muted"}function sv(e){return ci[e]??ci.unknown}function iv(e){const t=rv[e.status];if(t)return{messageKey:t,action:"none",disabled:!0};const a=av[e.nextAction];return a?{messageKey:a,action:e.nextAction,disabled:!1}:null}function lv(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 cv(e,t){if(e.status!=="downloaded")return null;const a=t.toLowerCase();return a.startsWith("win")?"settingsDesktopUpdatesWindowsInstallerNotice":a.startsWith("linux")?"settingsDesktopUpdatesLinuxInstallerNotice":null}function dv(e){return e.capability.distribution==="preview_packaged"}function uv({showToast:e,platform:t=typeof navigator>"u"?"":navigator.platform}){const{t:a}=_(),[o,n]=d.useState(null),[i,s]=d.useState(!1);d.useEffect(()=>{const f=ta();if(!f?.getUpdateSnapshot)return;let w=!0;f.getUpdateSnapshot().then(y=>{w&&n(y)}).catch(()=>{});const k=f.onUpdateSnapshot?.(y=>{w&&n(y)});return()=>{w=!1,k?.()}},[]);const c=d.useCallback(async f=>{const w=ta();if(w){s(!0);try{if(f==="restart_install"){await w.restartAndInstall?.();return}const k=f==="check"?await w.checkForUpdates?.():await w.downloadUpdate?.();if(!k)return;n(k),f==="check"&&k.status==="up_to_date"&&e(a("settingsDesktopUpdatesToastUpToDate")),k.error&&e(a(sv(k.error.code)))}finally{s(!1)}}},[e,a]);if(o===null)return null;const{capability:h}=o,u=iv(o),g=cv(o,t),p=lv(o);return r.jsxs(xe,{className:"settingsDesktopUpdates",header:r.jsx(de,{title:a("settingsDesktopUpdatesTitle"),description:a("settingsDesktopUpdatesDescription"),status:h.canCheck?r.jsx(st,{tone:nv(o.status),children:a(ov(o.status))}):void 0}),children:[r.jsx(me,{label:a("settingsDesktopUpdatesCurrentVersionLabel"),control:r.jsx("span",{className:"settingsFactValue",children:o.currentVersion})}),r.jsx(me,{label:a("settingsDesktopUpdatesChannelLabel"),control:r.jsx("span",{className:"settingsFactValue",children:h.channel})}),dv(o)&&r.jsx(me,{layout:"stack",label:a("settingsDesktopUpdatesPreviewNotice"),control:null}),h.canCheck&&r.jsxs(r.Fragment,{children:[r.jsx(me,{label:a("settingsDesktopUpdatesLastCheckedLabel"),control:r.jsx("span",{className:"settingsFactValue",children:o.lastCheckedAt?new Date(o.lastCheckedAt).toLocaleString():a("settingsDesktopUpdatesLastCheckedNever")})}),o.availableVersion!==null&&r.jsx(me,{label:a("settingsDesktopUpdatesAvailableVersionLabel"),description:o.releaseSummary??void 0,control:r.jsx("span",{className:"settingsFactValue",children:o.availableVersion})}),p!==null&&r.jsx(me,{label:a("settingsDesktopUpdatesStatusDownloading"),control:r.jsxs("progress",{className:"settingsUpdateProgress",max:100,value:p,children:[p,"%"]})}),g!==null&&r.jsx(me,{layout:"stack",label:a(g),control:null}),u!==null&&r.jsx(me,{label:"",control:r.jsx("button",{type:"button",className:"settingsPrimaryAction",disabled:u.disabled||i,onClick:()=>{u.action!=="none"&&c(u.action)},children:a(u.messageKey)})})]})]})}function pv({payload:e,onPayloadUpdate:t}){const{toasts:a,showToast:o}=pt();return r.jsxs(r.Fragment,{children:[r.jsx(uv,{showToast:o}),r.jsx(Zy,{payload:e,showToast:o}),r.jsx(ev,{payload:e,onPayloadUpdate:t,showToast:o}),r.jsx(ht,{toasts:a})]})}const rd=["en","zh-TW","zh-CN","ja","ko","fr","de","es","pt-BR","it","nl","pl","tr","id","vi","th","hi","ar"];function di(e){return e==="unspecified"||rd.includes(e)}const hv=new Set(["POST","PUT","PATCH","DELETE"]),Mo="x-cats-csrf-token";let Rr=null,ha=null,nt=null,ui=!1;function mv(e){const t=e?.trim();Rr=t||null}function gv(){Rr=null}async function pi(){if(!nt)return null;if(ha)return ha;ha=(async()=>{try{const t=await nt("/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{ha=null}})();const e=await ha;return e&&(Rr=e),e}function kv(e,t){return t?.method?t.method.toUpperCase():e instanceof Request?e.method.toUpperCase():"GET"}function wv(e){return typeof e=="string"?e:e instanceof URL?e.href:e.url}function fv(e){try{const t=new URL(e,window.location.origin);return t.origin===window.location.origin&&t.pathname.startsWith("/api/")}catch{return!1}}function hi(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 bv(e,t){return e instanceof Request?hi(e.headers):hi(t?.headers)}function yv(e,t){const a=t.toLowerCase();return e.some(([o])=>o.toLowerCase()===a)}function vv(e){return e.some(([t,a])=>t.toLowerCase()==="authorization"&&/^bearer\s/i.test(a))}function mi(e,t,a){if(e instanceof Request){const n=new Headers(e.headers);return n.set(Mo,a),{input:new Request(e,{headers:n}),init:t}}const o=new Headers(t?.headers);return o.set(Mo,a),{input:e,init:{...t,headers:o}}}async function Cv(e){if(e.status!==403)return!1;try{return(await e.clone().json())?.error?.code==="E_CSRF_MISMATCH"}catch{return!1}}async function Sv(e,t){if(!nt)throw new Error("csrfAwareFetch invoked before installation");const a=kv(e,t);if(!hv.has(a))return nt(e,t);const o=wv(e);if(!fv(o))return nt(e,t);const n=bv(e,t);if(yv(n,Mo)||vv(n))return nt(e,t);let i=Rr??await pi();if(!i)return nt(e,t);const s=mi(e,t,i),c=await nt(s.input,s.init);if(!await Cv(c)||(gv(),i=await pi(),!i))return c;const h=mi(e,t,i);return nt(h.input,h.init)}function Lv(){ui||typeof window>"u"||(ui=!0,nt=window.fetch.bind(window),window.fetch=((e,t)=>Sv(e,t)))}class xr extends Error{constructor(t,a,o){super(t),this.status=a,this.code=o,this.name="PlatformAuthApiError"}}function Pv(e,t){return e instanceof xr&&e.code===t}async function od(e,t){try{const a=await e.json(),o=Mv(a);if(typeof o?.code=="string"){const n=o.code,i=t.errorMessagesByCode?.[n];return i?{message:i,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 Da(e){const t=await fetch("/api/auth/status",{headers:{Accept:"application/json"},signal:e.signal});return qt(t,e)}async function Rv(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 qt(a,t)}async function xv(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 qt(a,t)}async function Av(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 od(o,a);throw new xr(n.message,o.status,n.code)}return await o.json()}async function Tv(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 qt(n,o)}async function Dv(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 qt(o,a)}async function Nv(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 qt(a,t)}async function jv(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}),o=await qt(a,t);return un(),o}async function Qa(e,t){const a=await Da(t),o=gi(a);try{return await e(o)}catch(i){if(!Pv(i,"E_CSRF_MISMATCH"))throw i}const n=await Da(t);return e(gi(n))}async function qt(e,t){if(!e.ok){const o=await od(e,t);throw new xr(o.message,e.status,o.code)}const a=await e.json();return mv(a.csrfToken),a}function gi(e){const t=e.csrfToken?.trim();if(!t)throw new xr("Authenticated session did not return a Cats CSRF token.",403,"E_CSRF_MISMATCH");return t}function Mv(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 Fe={unauthenticated:"E_UNAUTHENTICATED",forbidden:"E_FORBIDDEN",csrfMismatch:"E_CSRF_MISMATCH",reauthRequired:"E_REAUTH_REQUIRED",identityConflict:"E_IDENTITY_CONFLICT"},ki="https://accounts.google.com/gsi/client",Ev="g_csrf_token";let qa=null;function Iv(e=document,t=window){return t.google?.accounts?.id?Promise.resolve(t.google):qa||(qa=new Promise((a,o)=>{const n=e.querySelector(`script[src="${ki}"]`),i=n??e.createElement("script");i.src=ki,i.async=!0,i.defer=!0,i.onload=()=>{if(t.google?.accounts?.id){a(t.google);return}o(new Error("Google Identity Services did not initialize."))},i.onerror=()=>{o(new Error("Google Identity Services could not be loaded."))},n||e.head.appendChild(i)}),qa)}function Bv(){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 Fv(e,t=document){const a=t.location.protocol==="https:"?"; Secure":"";t.cookie=`${Ev}=${encodeURIComponent(e)}; Path=/; SameSite=Lax${a}`}function nd({clientId:e,disabled:t,onCredential:a,onError:o}){const n=d.useRef(null);return d.useEffect(()=>{if(t)return;let i=!1;const s=Bv();return Fv(s),Iv().then(c=>{i||!n.current||(c.accounts.id.initialize({client_id:e,callback:h=>{const u=h.credential?.trim();if(!u){o(new Error("Google did not return an ID token."));return}a({credential:u,csrfToken:s})}}),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=>{i||o(c instanceof Error?c:new Error("Google sign-in failed."))}),()=>{i=!0}},[e,t,a,o]),r.jsx("div",{className:"googleSignInButton",ref:n})}function Ov({purpose:e,busy:t,onSubmit:a,onCancel:o}){const{t:n}=_(),[i,s]=d.useState(""),c=d.useRef(null),h=d.useRef(null),u=d.useRef(null);d.useEffect(()=>(u.current=document.activeElement,h.current?.focus(),()=>{u.current instanceof HTMLElement&&u.current.focus()}),[]);const g=d.useCallback(w=>{if(w.key==="Escape"&&!t){w.preventDefault(),o();return}if(w.key!=="Tab"||!c.current)return;const k=c.current.querySelectorAll('button:not([disabled]), input:not([disabled]), [href], select, textarea, [tabindex]:not([tabindex="-1"])');if(k.length===0)return;const y=k[0],m=k[k.length-1],C=document.activeElement;w.shiftKey&&C===y?(w.preventDefault(),m.focus()):!w.shiftKey&&C===m&&(w.preventDefault(),y.focus())},[t,o]);d.useEffect(()=>(document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)),[g]);function p(w){w.preventDefault(),!(t||!i)&&a(i)}const f=n(e==="link_google"?l.settingsAccountReauthLinkDescription:l.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(l.settingsAccountReauthTitle)}),r.jsx("p",{className:"heroNote",children:f}),e==="unlink_google"?r.jsx("p",{className:"heroNote",children:n(l.settingsAccountUnlinkWarning)}):null,r.jsxs("form",{className:"settingsAccountReauthForm",onSubmit:p,children:[r.jsxs("label",{className:"settingsAccountReauthField",children:[r.jsx("span",{className:"settings-option-row__label",children:n(l.settingsAccountReauthPasswordLabel)}),r.jsx("input",{ref:h,className:"textInput",type:"password",name:"password",autoComplete:"current-password",value:i,disabled:t,placeholder:n(l.settingsAccountReauthPasswordPlaceholder),onChange:w=>s(w.target.value)})]}),r.jsxs("div",{className:"setupActionGroup",children:[r.jsx("button",{type:"button",className:"secondaryButton",disabled:t,onClick:o,children:n(l.settingsAccountReauthCancel)}),r.jsx("button",{type:"submit",className:"primaryButton",disabled:t||!i,children:n(t?l.settingsAccountReauthSubmitting:l.settingsAccountReauthSubmit)})]})]})]})})}function Wv({showToast:e}){const{t}=_(),[a,o]=d.useState(null),[n,i]=d.useState({kind:"idle"}),s=d.useRef(null),c=d.useCallback((T,M)=>({fallbackMessageForStatus:j=>t(l[M],{status:j}),errorMessagesByCode:{[Fe.unauthenticated]:t(l[T]),[Fe.forbidden]:t(l[T]),[Fe.csrfMismatch]:t(l.settingsGeneralSignOutCsrfError),[Fe.reauthRequired]:t(l.settingsAccountReauthRequired)}}),[t]),h=d.useCallback(()=>({fallbackMessageForStatus:T=>t(l.settingsAccountLinkFailedWithStatus,{status:T})}),[t]);d.useEffect(()=>{let T=!0;return Da(h()).then(M=>{T&&o(M)}).catch(()=>{}),()=>{T=!1,s.current=null}},[h]);const u=d.useCallback(async()=>{try{o(await Da(h()))}catch{}},[h]),g=d.useCallback(()=>{s.current=null,i({kind:"idle"})},[]),p=d.useCallback(T=>{s.current=null,i({kind:"reauthenticating",purpose:T,busy:!1})},[]),f=d.useCallback(async T=>{i({kind:"submitting"});const M=c("settingsAccountUnlinkFailed","settingsAccountUnlinkFailedWithStatus");try{const j=await Qa(R=>Dv(R,T,{...M,errorMessagesByCode:{...M.errorMessagesByCode,[Fe.identityConflict]:t(l.settingsAccountUnlinkConflict)}}),M);o(j)}catch(j){e(j instanceof Error?j.message:t(l.settingsAccountUnlinkFailed)),await u()}finally{g()}},[c,g,u,e,t]),w=d.useCallback(async T=>{const M=s.current;if(!M){g(),e(t(l.settingsAccountReauthRequired));return}i({kind:"submitting"});const j=c("settingsAccountLinkFailed","settingsAccountLinkFailedWithStatus");try{const R=await Qa(P=>Tv({credential:T.credential,csrfToken:T.csrfToken},P,M,{...j,errorMessagesByCode:{...j.errorMessagesByCode,[Fe.identityConflict]:t(l.settingsAccountLinkConflict)}}),j);o(R)}catch(R){e(R instanceof Error?R.message:t(l.settingsAccountLinkFailed)),await u()}finally{g()}},[c,g,u,e,t]),k=d.useCallback(async(T,M)=>{i({kind:"reauthenticating",purpose:T,busy:!0});const j=c("settingsAccountReauthFailed","settingsAccountReauthFailedWithStatus"),R={...j,errorMessagesByCode:{...j.errorMessagesByCode,[Fe.unauthenticated]:t(l.settingsAccountReauthInvalidPassword)}};let P;try{const A=await Qa(x=>Av({password:M,purpose:T},x,R),R);P=A.actionToken,s.current=A.actionToken}catch(A){g(),e(A instanceof Error?A.message:t(l.settingsAccountReauthFailed));return}if(T==="link_google"){i({kind:"awaitingGoogle"});return}await f(P)},[c,f,g,e,t]),y=d.useCallback(()=>{g(),e(t(l.settingsAccountGoogleUnavailableError))},[g,e,t]),m=a?.loginMethods??null,C=a?.providers.google.enabled&&a.providers.google.clientId?.trim()||null,v=m?.google.linked??!1,b=m?.localPassword.linked??!1,S=n.kind==="submitting";return r.jsxs(r.Fragment,{children:[a?.principal?r.jsx("p",{className:"heroNote",children:t(l.settingsAccountSignedInAs,{name:a.principal.email??a.principal.displayName})}):null,r.jsx(me,{label:t(l.settingsAccountLocalPasswordLabel),description:t(l.settingsAccountLocalPasswordDescription),control:r.jsx(st,{tone:b?"ready":"muted",children:t(b?l.settingsAccountLocalPasswordLinked:l.settingsAccountLocalPasswordMissing)})}),r.jsx(me,{label:t(l.settingsAccountGoogleLabel),description:t(C?l.settingsAccountGoogleDescription:l.settingsAccountGoogleUnavailableHint),control:r.jsx(st,{tone:v?"ready":C?"warm":"muted",children:v?t(l.settingsAccountGoogleLinkedStatus,{email:m?.google.email??""}):t(C?l.settingsAccountGoogleNotLinkedStatus:l.settingsAccountGoogleUnavailableStatus)})}),C&&m?r.jsx("div",{className:"setupActionGroup",children:v?r.jsx("button",{type:"button",className:"secondaryButton",disabled:n.kind!=="idle"||!b,onClick:()=>p("unlink_google"),children:t(S?l.settingsAccountGoogleUnlinkingLabel:l.settingsAccountGoogleUnlinkButton)}):r.jsx("button",{type:"button",className:"secondaryButton",disabled:n.kind!=="idle",onClick:()=>p("link_google"),children:t(S?l.settingsAccountGoogleLinkingLabel:l.settingsAccountGoogleLinkButton)})}):null,n.kind==="awaitingGoogle"&&C?r.jsxs("div",{className:"settingsAccountGoogleStep",children:[r.jsx("p",{className:"settings-option-row__label",children:t(l.settingsAccountGoogleContinueTitle)}),r.jsx("p",{className:"heroNote",children:t(l.settingsAccountGoogleContinueDescription)}),r.jsx(nd,{clientId:C,onCredential:T=>{w(T)},onError:y}),r.jsx("button",{type:"button",className:"secondaryButton",onClick:g,children:t(l.settingsAccountReauthCancel)})]}):null,n.kind==="reauthenticating"?r.jsx(Ov,{purpose:n.purpose,busy:n.busy,onSubmit:T=>{k(n.purpose,T)},onCancel:g}):null]})}function Uv(e){return e==="auto"||e==="en"||e==="zh-TW"}function eo(e,t){return{assistantResponseLanguage:e?.assistantResponseLanguage??"unspecified",uiLanguagePreference:e?.uiLanguagePreference??t}}function Hv(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 Gv({payload:e,onPayloadUpdate:t}){const a=Ue(),{languagePreference:o,locale:n,setLanguagePreference:i,t:s}=_(),[c,h]=d.useState(!1),[u,g]=d.useState(!1),[p,f]=d.useState(!1),[w,k]=d.useState(!1),[y,m]=d.useState(!1),[C,v]=d.useState(e.ownerDisplayName),[b,S]=d.useState(!1),T=d.useRef(!1),M=tn(),{toasts:j,showToast:R}=pt();d.useEffect(()=>{v(e.ownerDisplayName)},[e.ownerDisplayName]);async function P(I,z){try{if(!(await fetch("/api/core/owner-profile",{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({avatarUrl:I})})).ok)throw new Error(z);t({...e,ownerAvatarUrl:I}),yt()}catch(re){R(re instanceof Error?re.message:z)}}async function A(){if(T.current){T.current=!1;return}const I=C.trim();if(!I){v(e.ownerDisplayName);return}if(I===e.ownerDisplayName){v(e.ownerDisplayName);return}S(!0);try{if(!(await fetch("/api/core/owner-profile",{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({displayName:I})})).ok)throw new Error(s("settingsGeneralUpdateNameError"));t({...e,ownerDisplayName:I}),yt()}catch(z){R(z instanceof Error?z.message:s("settingsGeneralUpdateNameError"))}finally{S(!1)}}async function x(I,z){const re=e.lobby;t({...e,lobby:{...e.lobby,animationMode:I}}),g(!0);try{const X=await fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({lobbyAnimationMode:I})});if(!X.ok)throw new Error(z);const pe=await X.json();t({...e,lobby:{...e.lobby,animationMode:pe.lobbyAnimationMode??I}}),yt()}catch(X){t({...e,lobby:re}),R(X instanceof Error?X.message:z)}finally{g(!1)}}async function E(I){if(I===o)return;const z=o,re=eo(e.language,z);i(I),t({...e,language:{...re,uiLanguagePreference:I}}),f(!0);try{const X=await fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({uiLanguagePreference:I})});if(!X.ok)throw new Error(s("settingsGeneralUpdateLanguageError"));const pe=await X.json(),ve=Uv(pe.uiLanguagePreference)?pe.uiLanguagePreference:I;i(ve),t({...e,language:{...re,uiLanguagePreference:ve}}),yt()}catch(X){i(z),t({...e,language:re}),R(X instanceof Error?X.message:s("settingsGeneralUpdateLanguageError"))}finally{f(!1)}}async function O(I){const z=eo(e.language,o);if(I!==z.assistantResponseLanguage){t({...e,language:{...z,assistantResponseLanguage:I}}),k(!0);try{const re=await fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({assistantResponseLanguage:I})});if(!re.ok)throw new Error(s("settingsGeneralUpdateAssistantLanguageError"));const X=await re.json(),pe=di(X.assistantResponseLanguage)?X.assistantResponseLanguage:I;t({...e,language:{...z,assistantResponseLanguage:pe}}),yt()}catch(re){t({...e,language:z}),R(re instanceof Error?re.message:s("settingsGeneralUpdateAssistantLanguageError"))}finally{k(!1)}}}async function $(I){try{M.update({sidecarMode:I})}catch(z){R(z instanceof Error?z.message:s("settingsGeneralUpdateGuideCatModeError"))}}async function K(){m(!0);try{const I={fallbackMessageForStatus:z=>s("settingsGeneralSignOutFailedWithStatus",{status:z}),errorMessagesByCode:{[Fe.csrfMismatch]:s("settingsGeneralSignOutCsrfError"),[Fe.forbidden]:s("settingsGeneralSignOutForbiddenError"),[Fe.unauthenticated]:s("settingsGeneralSignOutUnauthenticated")}};await Qa(z=>jv(z,I),I),a("/login",{replace:!0})}catch(I){R(I instanceof Error?I.message:s("settingsGeneralSignOutFailed"))}finally{m(!1)}}const ee=e.ownerAvatarUrl,F=Ae(C||e.ownerDisplayName),Y=vt(),H=Ra(e.guideCat?.status),ae=e.lobby??{animationMode:"reduced"},ue=eo(e.language,o).assistantResponseLanguage,G=d.useMemo(()=>rd.map(I=>({code:I,label:Hv(I,n)})),[n]);return r.jsxs(r.Fragment,{children:[r.jsx(xe,{header:r.jsx(de,{title:s("settingsGeneralProfileTitle"),description:s("settingsGeneralProfileDescription")}),children:r.jsxs("div",{className:"settings-sub-card",children:[r.jsxs("div",{className:"fieldLabel",children:[r.jsx("span",{children:s("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:()=>h(!0),"aria-label":s(ee?"settingsGeneralAvatarChangeLabel":"settingsGeneralAvatarUploadLabel"),"data-tooltip":s(ee?"settingsGeneralAvatarChangeLabel":"settingsGeneralAvatarUploadLabel"),children:ee?"":F}),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:I=>{I.stopPropagation(),P(null,s("settingsGeneralRemoveAvatarError"))},"aria-label":s("settingsGeneralAvatarRemoveLabel"),"data-tooltip":s("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:s("settingsGeneralNameLabel")}),r.jsx("input",{className:"textInput",value:C,onChange:I=>v(I.target.value),onBlur:()=>{A()},onKeyDown:I=>{I.key==="Enter"?(I.preventDefault(),A()):I.key==="Escape"&&(I.preventDefault(),T.current=!0,v(e.ownerDisplayName),I.currentTarget.blur())},disabled:b,"aria-busy":b})]})]})}),r.jsxs(xe,{header:r.jsx(de,{title:s("settingsGeneralAccountTitle"),description:s("settingsGeneralAccountDescription")}),children:[r.jsx(Wv,{showToast:R}),r.jsx("div",{className:"setupActionGroup",children:r.jsx("button",{type:"button",className:"secondaryButton",disabled:y,onClick:()=>{K()},children:s(y?"settingsGeneralSigningOutButton":"settingsGeneralSignOutButton")})})]}),r.jsxs(xe,{header:r.jsx(de,{title:s("settingsGeneralLanguageTitle"),description:s("settingsGeneralLanguageDescription")}),children:[r.jsx(me,{label:s("settingsGeneralLanguagePreferenceLabel"),description:s("settingsGeneralLanguagePreferenceDescription"),layout:"stack",control:r.jsxs("select",{className:"textInput",value:o,disabled:p,onChange:I=>{E(I.target.value)},"aria-label":s("settingsGeneralLanguageSelectAriaLabel"),children:[r.jsx("option",{value:"auto",children:s("settingsGeneralLanguageAutoOption")}),r.jsx("option",{value:"en",children:s("settingsGeneralLanguageEnglishOption")}),r.jsx("option",{value:"zh-TW",children:s("settingsGeneralLanguageTraditionalChineseOption")})]})}),r.jsx(me,{label:s("settingsGeneralAssistantLanguagePreferenceLabel"),description:s("settingsGeneralAssistantLanguagePreferenceDescription"),layout:"stack",control:r.jsxs("select",{className:"textInput",value:ue,disabled:w,onChange:I=>{const z=I.target.value;di(z)&&O(z)},"aria-label":s("settingsGeneralAssistantLanguageSelectAriaLabel"),children:[r.jsx("option",{value:"unspecified",children:s("settingsGeneralAssistantLanguageUnspecifiedOption")}),G.map(I=>r.jsx("option",{value:I.code,children:I.label},I.code))]})})]}),r.jsxs(xe,{header:r.jsx(de,{title:s("settingsGeneralLobbyMotionTitle"),description:s("settingsGeneralLobbyMotionDescription")}),children:[r.jsx(me,{asChoice:!0,label:s("settingsGeneralLobbyMotionOffLabel"),description:s("settingsGeneralLobbyMotionOffDescription"),control:r.jsx("input",{type:"radio",name:"lobby-animation-mode",checked:ae.animationMode==="off",disabled:u,onChange:()=>{x("off",s("settingsGeneralUpdateLobbyAnimationError"))}})}),r.jsx(me,{asChoice:!0,label:s("settingsGeneralLobbyMotionReducedLabel"),description:s("settingsGeneralLobbyMotionReducedDescription"),control:r.jsx("input",{type:"radio",name:"lobby-animation-mode",checked:ae.animationMode==="reduced",disabled:u,onChange:()=>{x("reduced",s("settingsGeneralUpdateLobbyAnimationError"))}})}),r.jsx(me,{asChoice:!0,label:s("settingsGeneralLobbyMotionFullLabel"),description:s("settingsGeneralLobbyMotionFullDescription"),control:r.jsx("input",{type:"radio",name:"lobby-animation-mode",checked:ae.animationMode==="full",disabled:u,onChange:()=>{x("full",s("settingsGeneralUpdateLobbyAnimationError"))}})})]}),e.guideCat?r.jsx(xe,{header:r.jsx(de,{title:s("settingsGeneralGuideCatAssistTitle"),description:H?s("settingsGeneralGuideCatAssistEnabledDescription",{guideCatName:Y}):s("settingsGeneralGuideCatAssistDisabledDescription",{guideCatName:Y})}),children:H?r.jsxs(r.Fragment,{children:[r.jsx(me,{asChoice:!0,label:s("settingsGeneralGuideCatAutoLabel"),description:s("settingsGeneralGuideCatAutoDescription"),control:r.jsx("input",{type:"radio",name:"guide-cat-sidecar-mode",checked:M.prefs.sidecarMode==="auto",onChange:()=>{$("auto")}})}),r.jsx(me,{asChoice:!0,label:s("settingsGeneralGuideCatSidePanelLabel"),description:s("settingsGeneralGuideCatSidePanelDescription"),control:r.jsx("input",{type:"radio",name:"guide-cat-sidecar-mode",checked:M.prefs.sidecarMode==="drawer",onChange:()=>{$("drawer")}})}),r.jsx(me,{asChoice:!0,label:s("settingsGeneralGuideCatBubbleLabel"),description:s("settingsGeneralGuideCatBubbleDescription"),control:r.jsx("input",{type:"radio",name:"guide-cat-sidecar-mode",checked:M.prefs.sidecarMode==="bubble",onChange:()=>{$("bubble")}})})]}):r.jsx("div",{className:"setupActionGroup",children:r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>a("/settings/assistants"),children:s("settingsGeneralOpenAssistantsButton")})})}):null,c?r.jsx(sa,{onSave:I=>{h(!1),P(I,s("settingsGeneralSaveAvatarError"))},onClose:()=>h(!1),initialDataUrl:ee??null}):null,r.jsx(ht,{toasts:j})]})}function _v(){const e=Ue(),{t}=_();return r.jsx(xe,{header:r.jsx(de,{title:t(l.settingsRouteTitleNotFound),description:t(l.settingsRouteNotFoundDescription)}),children:r.jsx("div",{className:"settingsActionRow",children:r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>e("/settings/general"),children:t(l.settingsRouteNotFoundOpenGeneral)})})})}function Kv({href:e,onClick:t,onOpenError:a,...o}){const n=i=>{t?.(i),!(i.defaultPrevented||!ta()?.openBrowserHandoff)&&(i.preventDefault(),qv(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 qv(e){const t=ta();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(),i=o.launchMode==="direct"&&o.expiresAt===null;if(!n&&!i)throw new Error("Browser handoff response is invalid.");await t.openBrowserHandoff(o.launchPath)}let sd={inflight:!1};const Eo=new Set,Io=new Set;let za=null;function wi(e){sd=e;for(const t of Eo)t()}function fi(e){for(const t of Io)t(e)}function zv(e){return Eo.add(e),()=>{Eo.delete(e)}}function $v(e){return Io.add(e),()=>{Io.delete(e)}}function bi(){return sd}function Vv(){if(za)return za;wi({inflight:!0});const e=Ig().then(t=>(fi({type:"success",value:t}),t),t=>{throw fi({type:"error",error:t}),t}).finally(()=>{za=null,wi({inflight:!1})});return za=e,e}function Yv(e,t,a={}){const o=e.ownerDocument,n=o.defaultView,i=String(a.locale||"en").startsWith("zh"),s=(U,V)=>i?V:U,c=a.context||"settings",h=U=>JSON.stringify([U.provider,U.backend,U.instance]),u=U=>({provider:U.provider,backend:U.backend,instance:U.instance});let g=null,p=null,f=null,w=null,k=!1,y="",m="",C="",v=!1,b=!1,S=0,T="",M="",j=null,R=!1;const P=new Map,A=(...U)=>U.flat().filter(V=>V!=null);function x(U,V={},...D){const B=o.createElement(U);for(const[W,Z]of Object.entries(V))W.startsWith("on")?B.addEventListener(W.slice(2),Z):W==="checked"||W==="disabled"?B[W]=!!Z:W==="value"?B.value=Z:Z!==null&&Z!==!1&&B.setAttribute(W,String(Z));return B.append(...A(...D)),B}const E=(U,V,D=!1,B={})=>x("button",{type:"button",disabled:D,onclick:V,...B},U),O=()=>x("span",{class:"pm-spinner","aria-hidden":"true"});function $(){if(!g||!p)return!1;const U=g.runtime.selection.targets.map(h);return P.size>0||U.length!==p.size||U.some(V=>!p.has(V))}function K(U){v||(a.onFeedback?a.onFeedback(U):C=U)}function ee(U,V=!1){j&&(j.revision!==U.runtime.selection.revision||U.runtime.selection.diskChanged)&&(j=null),g=U,M=JSON.stringify(U),(p===null||V||!$()&&f===U.runtime.selection.revision)&&(p=new Set(U.runtime.selection.targets.map(h)),f=U.runtime.selection.revision,V&&P.clear()),w===null&&(w=c==="onboarding"&&["missing","invalid"].includes(U.runtime.selection.state))}async function F(){if(v||b)return;b=!0;const U=S;try{const V=await t.getProviderSetup(c);if(v||U!==S)return;!(p!==null&&$())&&f!==V.runtime.selection.revision&&(p=null,P.clear());const B=M;ee(V);const W=!!m;m="";const Z=JSON.stringify(V);(W||Z!==B)&&X()}catch(V){if(!v&&U===S){const D=String(V?.message||V);m!==D&&(m=D,X())}}finally{b=!1}}async function Y(U,V){if(!k){S++,k=!0,y=U,m="",C="",X();try{const D=await V();S++,!v&&D&&ee(D)}catch(D){if(!v){const B=String(D?.message||D);a.onFeedback?a.onFeedback(B):m=B}}finally{S++,k=!1,y="",v||(X(),F())}}}function H(U=!1){const V=[...p].map(D=>{const[B,W,Z]=JSON.parse(D);return{provider:B,backend:W,instance:Z,...P.has(D)?{endpoint:P.get(D)}:{}}});Y(w&&!U?s("Applying and detecting…","正在套用並偵測…"):s("Applying…","正在套用…"),async()=>{const D=await t.applyProviderSetup({targets:V,expectedRevision:f,detectAfter:!U&&w,reload:U});return v||(ee(D,!0),K(w&&!U?s("Saved. Check the results on your selected tools.","已套用,請查看所選工具的偵測結果。"):s("Saved.","已套用。"))),D})}function ae(U,V,D=f){const B={detect:s("Detecting…","偵測中…"),install:s("Installing and verifying…","安裝並確認中…"),upgrade:s("Updating and verifying…","更新並確認中…"),repair:s("Repairing and verifying…","修復並確認中…"),uninstall:s("Uninstalling and verifying…","解除安裝並確認中…"),preview_uninstall:s("Preparing removal preview…","準備移除預覽…")};Y(B[U],async()=>{const W=await t.runProviderSetup({action:U,targets:V.map(u),expectedRevision:D});if(v)return W;if(U==="preview_uninstall")j=W.preview||null;else{const q=V.map(ne=>W.outcomes[h(ne)]).filter(Boolean).find(ne=>ne.runState==="failed"||ne.status==="failed");K(q?q.summary:U==="detect"?s("Check finished.","偵測完成。"):s("Finished. Check the tool’s status.","已完成,請查看工具的狀態。"))}return W})}function ue(U,V,D){const B=h(U),W=V.targets.some(Se=>h(Se)===B),Z=p.has(B),q=(g.runtime.observations||[]).find(Se=>h(Se)===B&&Se.configurationStatus!=="not_selected"),ne=q?.configurationStatus==="changed",oe=(g.runtime.connections||[]).find(Se=>h(Se)===B),He=!!oe||U.provider==="ollama"||U.provider==="openclaw",Te=V.nativeSetupTargets.some(Se=>h(Se)===B),N=U.provider==="ollama"?"local-model":"native",ke=Te?g.helpers.find(Se=>Se.id===`${g.platform}-${U.provider}-${N}-installer`&&Se.available&&Se.supported):null,je=g.outcomes[B],Me=g.operations.find(Se=>Se.targets.some(le=>h(le)===B)),J=!ne&&q?.commandStatus==="ready";let he=s("Not detected","尚未偵測"),we="";W?ne?he=s("Settings changed · detect again","設定已變更,請重新偵測"):q?.connectionStatus==="connected"?(he=s("Connection verified","連線已確認"),we="pm-ok"):q?.connectionStatus==="failed"?(he=s("Connection failed","連線失敗"),we="pm-warn"):J?(he=s("Installed","已安裝"),we="pm-ok"):q?.commandStatus==="probe_failed"?(he=s("Detection failed · try again","偵測失敗,請重試"),we="pm-warn"):q&&["missing_install","missing_path","missing"].includes(q.commandStatus)?(he=s("Not installed","尚未安裝"),we="pm-warn"):He&&(he=s("Connection not checked","尚未檢查連線")):he=Z?s("Apply to get started","套用後開始使用"):s("Not selected","未選用"),Me&&(he=y||s("Working…","處理中…"),we="");const Be=je&&(je.runState==="failed"||je.status==="failed");Be&&!Me&&(he=s("Needs attention","需要處理"),we="pm-warn");const Je=x("input",{type:"checkbox",checked:Z,disabled:k||!!Me||!!j,"data-focus":`choice:${B}`,"aria-label":s("Use ","使用 ")+U.familyLabel+(U.custom?` (${U.backend}/${U.instance})`:""),onchange:Se=>{Se.target.checked?p.add(B):(p.delete(B),P.delete(B)),C="",X()}}),gt=x("div",{class:"pm-detail"},x("label",{class:"pm-name"},Je,x("strong",{},U.familyLabel||U.provider)),x("div",{class:`pm-status ${we}`,"data-status":B},Me?O():null,he)),te=x("details",{class:"pm-more","data-details":`more:${B}`},x("summary",{},s("Details","詳細資訊")));if(U.custom&&te.append(x("small",{},s("Connection: ","連線:")+`${U.backend} / ${U.instance}`)),W&&q&&(J&&te.append(x("small",{},s("Installation: Installed","安裝狀態:已安裝"))),te.append(x("small",{},s("Last checked: ","上次偵測:")+new Date(q.observedAt).toLocaleString(i?"zh-TW":"en"))),q.version&&te.append(x("small",{},s("Version: ","版本:")+q.version)),J&&te.append(x("small",{},q.authStatus==="not_required"?s("No sign-in required","不需要登入"):q.authStatus==="missing"?s("Sign-in required","需要登入"):s("Sign-in has not been verified","尚未驗證登入狀態"))),q.detail&&te.append(x("small",{},q.detail))),J&&q.authStatus==="missing"&&gt.append(x("small",{},s("Sign in to get started","登入後即可開始使用"))),He&&Z){const Se=P.get(B)??oe?.endpoint??"";te.append(x("label",{class:"pm-endpoint"},s("Connection address","連線位址"),x("input",{type:"text",inputmode:"url",value:Se,disabled:k||!!j||oe?.editable===!1,placeholder:U.provider==="ollama"?"http://127.0.0.1:11434":"ws://127.0.0.1:18789","data-focus":`endpoint:${B}`,"aria-label":`${U.familyLabel} ${s("endpoint","服務位址")}`,oninput:le=>{P.set(B,le.target.value.trim()),X()}})))}const Oe=Z&&W&&!P.has(B)&&!k&&!D&&!m&&!V.diskChanged&&!j,Ge=x("div",{class:"pm-actions"});Z&&Ge.append(E(He?s("Test Connection","測試連線"):q?s("Detect Again","重新偵測"):s("Detect","偵測"),()=>ae("detect",[U]),!Oe,{"data-action":"detect","data-target":B})),ke&&Z&&!J&&Ge.append(E(s("Install","安裝"),()=>ae("install",[U]),!Oe||!ke.supportsApply,{"data-action":"install","data-target":B})),ke&&Z&&J&&(ke.supportsUpgrade&&te.append(E(s("Upgrade","更新"),()=>ae("upgrade",[U]),!Oe)),ke.supportsForce&&te.append(E(s("Repair","修復"),()=>ae("repair",[U]),!Oe)),ke.supportsUninstall&&te.append(E(s("Uninstall…","解除安裝…"),()=>ae("preview_uninstall",[U]),!Oe)));const qe=U.install?.auth?.docsUrl||U.install?.install?.docsUrl;if(Z&&qe&&/^https?:\/\//.test(qe)&&Ge.append(x("a",{href:qe,target:"_blank",rel:"noopener noreferrer"},s("Install / sign-in guide","安裝/登入說明"))),Z&&!ke&&!qe&&te.append(x("small",{},He?s("Configure the service, then test its connection.","請先設定服務,再測試連線。"):s("Install this provider in its configured environment, then detect again.","請在設定的執行環境中安裝,再重新偵測。"))),W&&U.install?.auth?.hint&&J&&te.append(x("small",{},U.install.auth.hint)),W&&je){const Se=[...je.warnings,...je.manualSteps];te.append(x("p",{class:Be?"pm-warn":"pm-intro"},je.summary)),Se.length&&te.append(x("ul",{},Se.map(le=>x("li",{},le))))}const Nt=(Z||U.custom)&&te.childNodes.length>1?te:null;return Nt&&c==="settings"&&gt.append(Nt),x("div",{class:c==="onboarding"?"pm-card cli-card":"pm-row","data-provider":U.provider,"data-target":B},gt,Ge,c==="onboarding"?Nt:null)}function G(U){return g.prerequisites?.find(V=>V.helperId===`${g.platform}-${U}`)}function I(U){return g.helpers.find(V=>V.id===`${g.platform}-${U}`&&V.available&&V.supported)}function z(U,V){Y(V==="check"?s("Checking…","偵測中…"):s("Setting up…","準備中…"),async()=>{async function D(Z,q){const oe=(await t.runSetupHelper(`${g.platform}-${Z}`,q)).state?.lastAction;if(!oe||oe.runState==="failed"||oe.status==="failed")throw new Error(oe?.summary||s("Could not finish setup. Try again.","無法完成設定,請重試。"));return oe}async function B(Z){const q=await D(Z,"apply"),ne=await D(Z,"check");if(ne.status!=="ready")throw new Error([ne.summary,...q.manualSteps||[],...ne.manualSteps||[]].join(" "));return ne}const W=V==="apply"?await B(U):await D(U,V);if(U==="node-host-installer"&&W.status==="ready"){const Z=await D("npm-prefix-helper","check");V==="apply"&&Z.status!=="ready"&&await B("npm-prefix-helper")}return K(V==="check"?s("Check finished.","偵測完成。"):s("Setup finished.","準備完成。")),t.getProviderSetup(c)})}function re(){const U=G("node-host-installer"),V=G("npm-prefix-helper"),D=G("github-cli-installer"),B=U?.result?.status==="ready"&&U.result.runState!=="failed",W=V?.result?.status==="ready"&&V.result.runState!=="failed",Z=U?.checking||V?.checking,q=[U,V].some(ke=>ke?.result?.runState==="failed"||ke?.result?.status==="failed"),ne=Z?s("Checking…","偵測中…"):q?s("Check needs attention","偵測需要處理"):U?.result?B?V?.result?W?s("Installed","已安裝"):s("Finish setup","尚待設定"):s("Checking setup…","正在確認設定…"):s("Not installed","尚未安裝"):s("Not checked yet","尚未偵測"),oe=x("div",{class:"pm-actions"}),He=I(B?"npm-prefix-helper":"node-host-installer"),Te=k||Z||!!j||!t.runSetupHelper;U?.result&&(!B||V?.result&&!W)&&oe.append(E(B?s("Finish setup","完成設定"):s("Install","安裝"),()=>z(B?"npm-prefix-helper":"node-host-installer","apply"),Te||!He?.supportsApply,{"data-action":"prepare-node"})),oe.append(E(s("Detect","偵測"),()=>z("node-host-installer","check"),Te||!I("node-host-installer"),{"data-action":"check-node"}));const N=x("details",{class:"pm-more","data-details":"prerequisites"},x("summary",{},s("Details","詳細資訊")),x("small",{},s("Needed by the tools in this group. Cats checks your computer; nothing is installed automatically.","這一類工具需要 Node.js/npm。Cats 會先檢查,不會自動安裝。")));for(const[ke,je]of[[U,"Node.js / npm"],[V,s("Tool installation location","工具安裝位置")],[D,"GitHub CLI"]])ke&&(N.append(x("small",{},`${je}: ${ke.checking?s("Checking…","偵測中…"):ke.result?.status==="ready"?s("Ready","已就緒"):ke.result?.runState==="failed"?s("Check failed","偵測失敗"):ke.result?s("Needs setup","尚待設定"):s("Not checked","尚未偵測")}`)),ke.result&&ke.result.status!=="ready"&&N.append(x("small",{},ke.result.summary)));return D&&!D.checking&&D.result?.status!=="ready"&&N.append(E(s("Set up GitHub CLI","安裝 GitHub CLI"),()=>z("github-cli-installer","apply"),Te||!I("github-cli-installer")?.supportsApply)),N.append(E(s("Check GitHub CLI","偵測 GitHub CLI"),()=>z("github-cli-installer","check"),Te||D?.checking||!I("github-cli-installer"))),x("div",{class:c==="onboarding"?"pm-card cli-card pm-prerequisite":"pm-row pm-prerequisite","data-prerequisite":"node"},x("div",{class:"pm-detail"},x("strong",{class:"pm-name"},"Node.js / npm"),x("div",{class:`pm-status ${B&&W?"pm-ok":""}`},Z?O():null,ne)),oe,N)}function X(){if(v)return;const U=e.querySelector(".pm-list")?.scrollTop||0,V=new Set([...e.querySelectorAll("details[open][data-details]")].map(J=>J.getAttribute("data-details"))),D=o.activeElement?.getAttribute("data-focus"),B=o.activeElement?.selectionStart;e.classList.add("catsProviderManager"),e.classList.toggle("pm-onboarding",c==="onboarding");const W=x("style",{},`
46
+ .catsProviderManager{--pm-border:#ddd8d0;--pm-muted:#6b6560;--pm-accent:#a84724;font:inherit;color:inherit;max-width:960px;margin:auto}
47
+ .catsProviderManager *{box-sizing:border-box}.catsProviderManager h2{font-size:1.35rem;margin:0 0 8px}.catsProviderManager p{margin:8px 0}
48
+ .catsProviderManager .pm-intro,.catsProviderManager small{color:var(--pm-muted);font-size:.85rem;display:block;line-height:1.6}
49
+ .catsProviderManager .pm-row{display:flex;justify-content:space-between;align-items:start;gap:16px;padding:18px 0;border-bottom:1px solid var(--pm-border)}
50
+ .catsProviderManager .pm-detail{flex:1;min-width:0}.catsProviderManager .pm-name{display:flex;align-items:center;gap:10px;cursor:pointer}
51
+ .catsProviderManager .pm-list{max-height:min(60vh,640px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
52
+ .catsProviderManager input[type=checkbox]{width:19px;height:19px;accent-color:var(--pm-accent);flex-shrink:0;opacity:1}
53
+ .catsProviderManager .pm-status{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:.88rem}.catsProviderManager .pm-ok{color:#207a53}.catsProviderManager .pm-warn{color:#986515}
54
+ .catsProviderManager .pm-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:330px}
55
+ .catsProviderManager button{font:inherit;font-size:.84rem;cursor:pointer;border:1px solid var(--pm-border);border-radius:7px;background:transparent;color:inherit;padding:8px 12px}
56
+ .catsProviderManager button:hover:not(:disabled){border-color:var(--pm-accent)}.catsProviderManager button:disabled{cursor:default;opacity:.5}
57
+ .catsProviderManager button.pm-primary{background:var(--pm-accent);border-color:var(--pm-accent);color:white}
58
+ .catsProviderManager input[inputmode=url],.catsProviderManager input[type=search]{font:inherit;font-size:.87rem;color:inherit;background:transparent;border:1px solid var(--pm-border);border-radius:6px;padding:8px;width:100%}
59
+ .catsProviderManager .pm-endpoint{display:block;font-size:.8rem;margin-top:9px}.catsProviderManager .pm-endpoint input{margin-top:4px}
60
+ .catsProviderManager .pm-footer{position:sticky;bottom:0;z-index:2;background:var(--panel,#fff);border-top:1px solid var(--pm-border);padding:16px 0;margin-top:16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
61
+ .catsProviderManager .pm-footer label{display:flex;align-items:center;gap:8px;font-size:.86rem}.catsProviderManager .pm-continue{margin-left:auto}
62
+ .catsProviderManager .pm-progress{display:flex;gap:10px;align-items:center;padding:12px;background:rgba(196,101,58,.08);border-radius:8px;margin:12px 0}
63
+ .catsProviderManager .pm-spinner{display:inline-block;width:19px;height:19px;border:2px solid var(--pm-border);border-top-color:var(--pm-accent);border-radius:50%;animation:pm-spin .8s linear infinite;flex-shrink:0}
64
+ @keyframes pm-spin{to{transform:rotate(360deg)}}.catsProviderManager a{font-size:.8rem;color:var(--pm-accent)}.catsProviderManager summary{font-size:.83rem;cursor:pointer;padding:7px 0}
65
+ .catsProviderManager .pm-more button{display:block;margin:4px 0}.catsProviderManager .pm-dialog{border:2px solid var(--pm-accent);border-radius:10px;padding:20px;margin:16px 0;background:var(--panel,#fff);max-height:45vh;overflow:auto}
66
+ .catsProviderManager .pm-more{max-width:100%;overflow-wrap:anywhere}.catsProviderManager .pm-row.pm-prerequisite{flex-wrap:wrap}.catsProviderManager .pm-row.pm-prerequisite>.pm-more{flex-basis:100%}
67
+ .catsProviderManager.pm-onboarding{max-width:720px;text-align:center;width:100%}
68
+ .catsProviderManager.pm-onboarding h2{font-size:1.1rem;font-weight:500}.catsProviderManager.pm-onboarding .pm-intro{font-size:.87rem}
69
+ .catsProviderManager.pm-onboarding .pm-list{max-height:none;overflow:visible;padding:0}
70
+ .catsProviderManager .pm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;text-align:center}
71
+ .catsProviderManager .pm-card{background:var(--panel,#fff);border:1px solid var(--pm-border);border-radius:12px;padding:14px 10px 12px;display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0;box-shadow:0 1px 3px rgba(0,0,0,.04)}
72
+ .catsProviderManager .pm-card .pm-name{justify-content:center;gap:7px;font-size:.92rem;line-height:1.4;min-height:24px}
73
+ .catsProviderManager .pm-card input[type=checkbox]{width:16px;height:16px}.catsProviderManager .pm-card .pm-status{justify-content:center;font-size:.74rem;margin:8px 0 0;min-height:20px}
74
+ .catsProviderManager .pm-card .pm-actions{flex-direction:column;align-items:stretch;max-width:none;gap:6px}
75
+ .catsProviderManager .pm-card button{font-size:.78rem;border-radius:8px;padding:6px 8px;width:100%}
76
+ .catsProviderManager .pm-card .pm-more{margin-top:auto}.catsProviderManager .pm-card .pm-more[open]{text-align:left}
77
+ .catsProviderManager .pm-card .pm-more small{font-size:.76rem}.catsProviderManager .pm-card .pm-more summary{text-align:center;font-size:.74rem;padding:0}
78
+ .catsProviderManager .pm-group{grid-column:1/-1;text-align:left;color:var(--pm-muted);font-size:.78rem;font-weight:500;padding:10px 0 0;border-top:1px solid var(--pm-border)}
79
+ .catsProviderManager.pm-onboarding .pm-footer{position:static;justify-content:center;border:0;background:transparent;margin:14px 0 22px;padding:0;gap:10px}
80
+ .catsProviderManager.pm-onboarding .pm-continue{margin-left:0}.catsProviderManager.pm-onboarding button.pm-primary{background:var(--panel,#fff);border-color:var(--pm-border);color:inherit}
81
+ .catsProviderManager.pm-onboarding .pm-progress{justify-content:center}.catsProviderManager.pm-onboarding .pm-discard{font-size:.78rem}
82
+ .catsProviderManager [role=alert]{color:#b2342c;overflow-wrap:anywhere}.catsProviderManager li{margin-left:20px;font-size:.83rem;overflow-wrap:anywhere}
83
+ @media(max-width:580px){.catsProviderManager .pm-row{flex-direction:column}.catsProviderManager .pm-actions{max-width:none;justify-content:flex-start}.catsProviderManager .pm-footer{gap:8px}.catsProviderManager .pm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
84
+ @media(prefers-reduced-motion:reduce){.catsProviderManager .pm-spinner{animation-duration:2s}}
85
+ `),Z=x("h2",{},c==="onboarding"?s("Choose your AI tools","選擇你的 AI 工具"):s("AI tools","AI 工具")),q=x("p",{class:"pm-intro"},s("Choose what you want to use. Cats can help you install it. You can change this later in Settings.","勾選想使用的工具,Cats 可以協助安裝。之後也能在設定中調整。")),ne=[W,Z,q];if(m&&ne.push(x("div",{role:"alert"},m," ",E(s("Refresh","重新讀取"),()=>{M="",F()},k))),!g){ne.push(x("div",{class:"pm-progress",role:"status"},O(),s("Loading tools…","正在載入工具…"))),e.replaceChildren(...ne);return}const oe=g.runtime.selection,He=["missing","invalid"].includes(oe.state),Te=g.operations.length>0||g.runtime.state?.status==="scanning",N=$();oe.diskChanged||f!==oe.revision?ne.push(x("div",{role:"alert"},s("Configuration changed elsewhere. Refresh or reload before applying your changes.","設定已在其他地方變更。請重新讀取或載入後再套用。")," ",E(s("Discard draft and reload","捨棄草稿並重新載入"),()=>{f=oe.revision,H(!0)},k||Te))):oe.error&&ne.push(x("p",{role:"alert"},oe.error)),g.runtime.state?.error&&ne.push(x("p",{role:"alert"},g.runtime.state.error)),(k||Te)&&ne.push(x("div",{class:"pm-progress",role:"status","aria-live":"polite"},O(),y||s("Checking your tools…","正在檢查工具…"))),C&&!k&&!Te&&ne.push(x("p",{role:"status"},C)),c==="settings"&&ne.push(x("input",{type:"search",value:T,placeholder:s("Find a tool","尋找工具"),"data-focus":"search","aria-label":s("Find a tool","尋找工具"),oninput:J=>{T=J.target.value,X()}}));const ke=g.runtime.universe.slice();for(const J of oe.targets)ke.some(he=>h(he)===h(J))||ke.push({...J,familyLabel:`${J.provider} · ${J.instance}`,custom:!0});const je=x("div",{class:"pm-list"});if(c==="onboarding"){const J=["claude","antigravity","cursor","kiro","junie","goose","grok","devin","muse","ollama"],he=["codex","copilot","opencode","kilo","auggie","pi","cline"],we=["claude","antigravity","codex"],Be=te=>R||we.includes(te.provider)||p.has(h(te)),Je=x("div",{class:"pm-grid cli-grid"});for(const te of J)for(const Oe of ke.filter(Ge=>!Ge.custom&&Ge.provider===te&&Be(Ge)))Je.append(ue(Oe,oe,Te));R&&Je.append(x("div",{class:"pm-group","data-group":"npm"},s("Tools that use Node.js / npm","使用 Node.js/npm 的工具"))),Je.append(re());for(const te of he)for(const Oe of ke.filter(Ge=>!Ge.custom&&Ge.provider===te&&Be(Ge)))Je.append(ue(Oe,oe,Te));const gt=ke.filter(te=>(te.custom||!J.includes(te.provider)&&!he.includes(te.provider))&&Be(te));gt.length&&Je.append(x("div",{class:"pm-group","data-group":"connections"},s("Other connections","其他連線")),...gt.map(te=>ue(te,oe,Te))),je.append(Je)}else T||je.append(re()),je.append(...ke.filter(J=>`${J.familyLabel} ${J.provider}`.toLowerCase().includes(T.toLowerCase())).map(J=>ue(J,oe,Te)));if(ne.push(je),j){const J=j;ne.push(x("div",{role:"dialog","aria-modal":"true","aria-label":s("Confirm uninstall","確認解除安裝"),class:"pm-dialog"},x("h3",{},s("Uninstall ","解除安裝 ")+J.target.provider+"?"),x("p",{},J.result.summary),x("ul",{},[...J.result.plannedActions,...J.result.warnings,...J.result.manualSteps].map(he=>x("li",{},he))),E(s("Cancel","取消"),()=>{j=null,X()},k)," ",E(s("Uninstall","解除安裝"),()=>{j=null,ae("uninstall",[J.target],J.revision)},k||J.revision!==f||$()||oe.diskChanged||J.result.runState==="failed"||!J.result.plannedActions.length)))}N&&ne.push(E(s("Discard changes","捨棄變更"),()=>{j=null,ee(g,!0),X()},k||Te||!!j,{class:"pm-discard"}));const Me=x("div",{class:"pm-footer"});N||He?Me.append(E(s("Apply","Apply"),()=>H(),k||Te||!!j||!!m||oe.diskChanged||f!==oe.revision,{class:"pm-primary","data-action":"apply"}),x("label",{},x("input",{type:"checkbox",checked:w,disabled:k,"data-focus":"detect-after","data-action":"detect-after",onchange:J=>{w=J.target.checked}}),s("Detect after applying","套用後偵測"))):Me.append(E(s("Detect selected","重新偵測已選項目"),()=>ae("detect",oe.targets),k||Te||!!j||!!m||oe.diskChanged||!oe.targets.length,{"data-action":"detect-selected"})),a.onContinue&&Me.append(E(s("Continue","繼續"),()=>{Y(s("Continuing…","繼續設定…"),async()=>{await a.onContinue()})},He||N||k||Te||!!j||!!m||oe.diskChanged,{class:"pm-primary pm-continue","data-action":"continue"})),c==="onboarding"?(Me.append(E(R?s("Show fewer","顯示較少"):s("Show more","顯示更多"),()=>{R=!R,X()},!1,{"data-action":"show-more"})),ne.splice(ne.indexOf(je),0,Me)):ne.push(Me),!He&&!N&&ne.push(x("p",{class:"pm-intro"},oe.targets.length===0?s("You can choose your tools later in Settings.","你可以稍後再到設定中選擇工具。"):s(`${oe.targets.length} tools selected. You can continue and finish installing later.`,`已選擇 ${oe.targets.length} 項工具。可以先繼續,稍後再完成安裝。`))),e.replaceChildren(...ne);for(const J of e.querySelectorAll("details[data-details]"))J.open=V.has(J.getAttribute("data-details"));if(je&&(je.scrollTop=U),D){const J=[...e.querySelectorAll("[data-focus]")].find(he=>he.getAttribute("data-focus")===D);if(J?.focus({preventScroll:!0}),typeof B=="number")try{J?.setSelectionRange(B,B)}catch{}}}X(),F();const pe=n.setInterval(()=>{o.visibilityState!=="hidden"&&F()},2e3),ve=()=>{F()};return n.addEventListener("focus",ve),{refresh:F,destroy(){v=!0,n.clearInterval(pe),n.removeEventListener("focus",ve),e.replaceChildren()}}}function Qv(e,t,a){const o=Pr(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"selection_required":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 Jv({onFeedback:e}){const t=d.useRef(null),{locale:a}=_();return d.useEffect(()=>{const o=ta();if(!t.current||!o?.getProviderSetup||!o.applyProviderSetup||!o.runProviderSetup)return;const n=Yv(t.current,o,{context:"settings",locale:a,onFeedback:e});return()=>n.destroy()},[a,e]),r.jsx("div",{ref:t})}function Xv({payload:e}){const{toasts:t,showToast:a}=pt(),{t:o}=_(),i=d.useSyncExternalStore(zv,bi,bi).inflight,s=d.useMemo(()=>Dn(),[]),c=Qv(e.runtime,e.runtimeSetup,o),h=p=>p===1?"":"s",u=d.useCallback(p=>{if(!(p instanceof Error))return o("settingsRuntimeRefreshFailure");const f=Eg(p.message);return f===null?p.message:o("settingsRuntimeRefreshFailureWithStatus",{status:f})},[o]);d.useEffect(()=>$v(p=>{if(p.type==="success"){const{refreshed:f,failures:w}=p.value;w.length>0?a(o("settingsRuntimeRefreshSummaryWithFailures",{refreshed:f,failed:w.length})):a(o("settingsRuntimeRefreshSummary",{refreshed:f,pluralSuffix:h(f)}))}else a(u(p.error))}),[u,a,o]);const g=()=>{Vv().catch(()=>{})};return r.jsxs(r.Fragment,{children:[r.jsxs(xe,{header:r.jsx(de,{title:o("settingsRuntimeStatusTitle"),description:o("settingsRuntimeStatusDescription")}),children:[r.jsx("div",{className:"settingsChipRow",children:r.jsx(st,{tone:c.tone,children:c.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(xe,{header:r.jsx(de,{title:o("settingsRuntimeNeedAttentionTitle"),description:o("settingsRuntimeNeedAttentionDescription")}),children:r.jsx("ul",{className:"settingsRuntimeList",children:e.runtimeSetup.providersNeedingAttention.map(p=>r.jsxs("li",{children:[r.jsx("strong",{children:p.provider}),r.jsxs("span",{children:[p.family,typeof p.remediationCount=="number"?` • ${o("settingsRuntimeFixStepCount",{count:p.remediationCount,pluralSuffix:p.remediationCount===1?"":"s"})}`:""]})]},p.provider))})}):null,s?r.jsx(xe,{headerless:!0,children:r.jsx(Jv,{onFeedback:a})}):null,r.jsx(xe,{header:r.jsx(de,{title:o("settingsRuntimeModelCatalogsTitle"),description:o("settingsRuntimeModelCatalogsDescription")}),children:r.jsx("button",{type:"button",className:"secondaryButton settingsRefreshButton",onClick:g,disabled:i,children:i?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"settingsRefreshSpinner","aria-hidden":"true"}),r.jsx("span",{children:o("settingsRuntimeRefreshingState")})]}):o("settingsRuntimeRefreshCatalogsButton")})}),r.jsx(xe,{header:r.jsx(de,{title:o("settingsRuntimeStandaloneSetupTitle"),description:o("settingsRuntimeStandaloneSetupDescription")}),children:r.jsx(Kv,{className:"secondaryButton settingsInlineLink",href:ub,target:"_blank",rel:"noreferrer",onOpenError:()=>a(o("settingsRuntimeBrowserHandoffError")),children:o("settingsRuntimeOpenStandaloneSetup")})}),r.jsx(ht,{toasts:t})]})}const Zv={binding_disabled:l.workDeliveryReadinessBindingDisabled,binding_unhealthy:l.workDeliveryReadinessBindingUnhealthy,owner_not_authorized:l.workDeliveryReadinessOwnerNotAuthorized,cat_not_bound:l.workDeliveryReadinessCatNotBound,execution_target_missing:l.workDeliveryReadinessExecutionTargetMissing,capability_profile_missing:l.workDeliveryReadinessCapabilityProfileMissing,workspace_missing:l.workDeliveryReadinessWorkspaceMissing,workspace_unreachable:l.workDeliveryReadinessWorkspaceUnreachable,workspace_not_a_repository:l.workDeliveryReadinessWorkspaceNotARepository,workspace_not_clean:l.workDeliveryReadinessWorkspaceNotClean,delivery_policy_unresolved:l.workDeliveryReadinessDeliveryPolicyUnresolved,background_service_unavailable:l.workDeliveryReadinessBackgroundServiceUnavailable},eC={artifact_only:l.sharedOperatorDeliveryModeArtifactOnly,commit_only:l.sharedOperatorDeliveryModeCommitOnly,push_branch:l.sharedOperatorDeliveryModePushBranch,pr_with_checks:l.sharedOperatorDeliveryModePrWithChecks,deploy_preview:l.sharedOperatorDeliveryModeDeployPreview};function tC(e){const t=e?.trim();return t||null}function Dt(e,t){const a=tC(t);return a?`${e}/${encodeURIComponent(a)}`:e}const mt=ul,aC=`${mt}/projects`,rC=`${mt}/tasks`,oC=`${mt}/work-items`,nC=`${mt}/runs`,id=`${mt}/missions`,sC=`${mt}/schedules`,iC=`${mt}/links`,yP=`${mt}/external-bindings`,vP=`${mt}/external-issue-imports`,CP=`${mt}/graph`,lC=`${mt}/delivery-readiness`;function SP(e){return Dt(iC,e)}function LP(e){return Dt(aC,e)}function PP(e){return Dt(rC,e)}function RP(e){return Dt(oC,e)}function cC(e){return Dt(sC,e)}function xP(e){return`${cC(e)}/test-fire`}function AP(e){return`${Dt(nC,e)}/stop`}function TP(e){return Dt(id,e)}function DP(e){return`${Dt(id,e)}/cancel`}async function dC(e,t){return ye(await fetch(lC,{signal:t}),e)}function uC(){const{t:e}=_(),t=Ue(),[a,o]=d.useState({status:"loading"}),n=d.useCallback(i=>{o({status:"loading"}),dC(e(l.workDeliveryReadinessSectionLoadError),i).then(s=>{i?.aborted||o({status:"ready",report:s})}).catch(()=>{i?.aborted||o({status:"error"})})},[e]);return d.useEffect(()=>{const i=new AbortController;return n(i.signal),()=>i.abort()},[n]),r.jsxs(xe,{header:r.jsx(de,{title:e(l.workDeliveryReadinessSectionTitle),description:e(l.workDeliveryReadinessSectionDescription)}),children:[a.status==="loading"?r.jsx("p",{className:"settingsMutedText",role:"status","aria-live":"polite",children:e(l.workDeliveryReadinessSectionLoading)}):null,a.status==="error"?r.jsxs("div",{className:"settingsMutedText",role:"alert",children:[r.jsx("p",{children:e(l.workDeliveryReadinessSectionLoadError)}),r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>n(),children:e(l.workDeliveryReadinessRefresh)})]}):null,a.status==="ready"&&!a.report.enabled?r.jsx("p",{className:"settingsMutedText",children:e(l.workDeliveryReadinessSectionDisabled)}):null,a.status==="ready"&&a.report.enabled?r.jsxs("div",{className:"workDeliveryReadiness",children:[r.jsxs("dl",{className:"workDeliveryReadinessFacts",children:[r.jsxs("div",{children:[r.jsx("dt",{children:e(l.workDeliveryReadinessWorkspaceLabel)}),r.jsx("dd",{children:a.report.workspacePath??e(l.workDeliveryReadinessWorkspaceUnset)})]}),r.jsxs("div",{children:[r.jsx("dt",{children:e(l.workDeliveryReadinessAuthorizedOwnersLabel)}),r.jsx("dd",{children:a.report.authorizedOwnerCount})]}),r.jsxs("div",{children:[r.jsx("dt",{children:e(l.workDeliveryReadinessLocalExecutionLabel)}),r.jsx("dd",{children:e({healthy:l.workDeliveryReadinessLocalExecutionHealthy,degraded:l.workDeliveryReadinessLocalExecutionDegraded,unavailable:l.workDeliveryReadinessLocalExecutionUnavailable,unknown:l.workDeliveryReadinessLocalExecutionUnknown}[a.report.localExecution])})]})]}),a.report.bindings.length===0?r.jsx("p",{className:"settingsMutedText",children:e(l.workDeliveryReadinessSectionNoBindings)}):null,r.jsx("ul",{className:"workDeliveryReadinessBindings",children:a.report.bindings.map(i=>r.jsxs("li",{className:"workDeliveryReadinessBinding",children:[r.jsxs("div",{className:"workDeliveryReadinessBindingHeader",children:[r.jsx("span",{className:"workDeliveryReadinessBindingName",children:i.botName??i.bindingId}),r.jsx(st,{tone:i.readiness.ready?"ready":"warm",children:i.readiness.ready?e(l.workDeliveryReadinessStatusReady):e(l.workDeliveryReadinessStatusBlocked)})]}),r.jsxs("dl",{className:"workDeliveryReadinessFacts",children:[r.jsxs("div",{children:[r.jsx("dt",{children:e(l.workDeliveryReadinessDeliveryModeLabel)}),r.jsx("dd",{children:e(eC[i.deliveryMode])})]}),r.jsxs("div",{children:[r.jsx("dt",{children:e(l.workDeliveryReadinessToolScopeLabel)}),r.jsx("dd",{children:i.toolScope})]})]}),i.readiness.blockers.length>0?r.jsxs(r.Fragment,{children:[r.jsx("h4",{className:"workDeliveryReadinessBlockersTitle",children:e(l.workDeliveryReadinessBlockersLabel)}),r.jsx("ul",{className:"workDeliveryReadinessBlockers",children:i.readiness.blockers.map(s=>r.jsxs("li",{children:[r.jsx("span",{children:e(Zv[s.reason])}),s.remediationPath?r.jsx("button",{type:"button",className:"linkButton",onClick:()=>t(s.remediationPath),children:e(l.workDeliveryReadinessOpenRemediation)}):null]},s.reason))})]}):null]},i.bindingId))}),r.jsx("button",{type:"button",className:"secondaryButton",onClick:()=>n(),children:e(l.workDeliveryReadinessRefresh)})]}):null]})}function pC({payload:e,onPayloadUpdate:t}){const{toasts:a,showToast:o}=pt(),{t:n}=_(),i=ln(e.chat.advancedDraftControls,"work");async function s(c){const h=e.chat.advancedDraftControls,u=vr(h);u.work=c,t({...e,chat:{...e.chat,advancedDraftControls:u}});try{const g=await wn({work:c});d.startTransition(()=>t(g))}catch(g){t({...e,chat:{...e.chat,advancedDraftControls:h}}),o(Ta(g,n("settingsConversationPreferenceUpdateFailure"),n))}}return r.jsxs(r.Fragment,{children:[r.jsx(Mn,{surface:"work",payload:e,onPayloadUpdate:t,onError:o}),r.jsx(jn,{surface:"work",enabled:i,onToggle:c=>{s(c)}}),r.jsx(uC,{}),r.jsx(ht,{toasts:a})]})}function hC(e,t){return e==="/settings"||e==="/settings/"||Ct(e,"/settings/general")?{section:"general",title:t("settingsRouteTitleGeneral")}:Ct(e,"/settings/assistants")?{section:"assistants",title:t("settingsRouteTitleAssistants")}:mC(e)?{section:"cats",title:t("settingsRouteTitleMyCats")}:Ct(e,"/settings/chat")?{section:"chat",title:t("settingsRouteTitleChat")}:Ct(e,"/settings/work")?{section:"work",title:t("settingsRouteTitleWork")}:Ct(e,"/settings/code")?{section:"code",title:t("settingsRouteTitleCode")}:Ct(e,"/settings/apps")?{section:"apps",title:t("settingsRouteTitleApps")}:Ct(e,"/settings/desktop")?{section:"desktop",title:t("settingsRouteTitleDesktop")}:Ct(e,"/settings/runtime")?{section:"runtime",title:t("settingsRouteTitleRuntime")}:Ct(e,"/settings/data")?{section:"data",title:t("settingsRouteTitleData")}:{section:"not-found",title:t("settingsRouteTitleNotFound")}}function Ct(e,t){return e===t||e.startsWith(`${t}/`)}function mC(e){return e==="/settings/cats"||e==="/settings/cats/new"}function gC({payload:e,onPayloadUpdate:t,busy:a,onFeedback:o,onBusy:n,onResetSetup:i}){const s=e.products.find(p=>p.id==="work"),c=e.products.find(p=>p.id==="code"),h=Dn(),u=p=>{t(p)},g=r.jsx(zb,{payload:e,busy:a,onPayloadUpdate:u,onFeedback:o,onBusy:n});return r.jsxs(ma,{children:[r.jsx(se,{index:!0,element:r.jsx(Lt,{to:"/settings/general",replace:!0})}),r.jsx(se,{path:"general",element:r.jsx(Gv,{payload:e,onPayloadUpdate:u})}),r.jsx(se,{path:"cats",element:g}),r.jsx(se,{path:"cats/new",element:g}),r.jsx(se,{path:"assistants",element:r.jsx(ey,{payload:e,onPayloadUpdate:u})}),r.jsx(se,{path:"chat",element:r.jsx(Ly,{payload:e,onPayloadUpdate:u})}),s?r.jsx(se,{path:"work",element:r.jsx(pC,{payload:e,onPayloadUpdate:u})}):null,c?r.jsx(se,{path:"code",element:r.jsx(Py,{payload:e,onPayloadUpdate:u})}):null,r.jsx(se,{path:"apps/*",element:r.jsx(hy,{installedApps:e.installedApps??[],onInstalledAppsUpdate:p=>{u({...e,installedApps:p})}})}),h?r.jsx(se,{path:"desktop",element:r.jsx(pv,{payload:e,onPayloadUpdate:u})}):null,r.jsx(se,{path:"runtime",element:r.jsx(Xv,{payload:e})}),r.jsx(se,{path:"data",element:r.jsx(Ay,{payload:e,busy:a,onResetSetup:i})}),r.jsx(se,{path:"*",element:r.jsx(_v,{})})]})}function kC(e){const t=Ne(),{t:a}=_(),{section:o,title:n}=hC(t.pathname,a);return r.jsx(xb,{section:o,title:n,products:e.payload.products,children:gC(e)})}function wC(){const{t:e}=_(),{loadState:t,onPayloadUpdate:a,onRetryLoad:o}=eu(),[n,i]=d.useState(Rn),[s,c]=d.useState(""),{dialog:h,confirm:u,handleClose:g}=Gt(),p=d.useCallback(async()=>{if(await u({title:e(l.settingsDataResetAllDataTitle),message:e(l.settingsDataResetAllDataDescription),confirmLabel:e(l.settingsDataResetButtonLabel)})){i(sf());try{const w=await Vg();Sm(),await Zc({bootstrapAttemptId:w.bootstrapAttemptId??null,setupCompleteAt:w.setupCompleteAt??null,products:Array.isArray(w.products)?[...w.products]:[]}),window.location.href="/"}catch(w){throw i(Ye()),w}}},[u,e]);return t.status==="loading"?r.jsx("div",{className:"settingsCanvasBoot",role:"status","aria-live":"polite","aria-label":e(l.settingsCanvasLoadingLabel)}):t.status==="error"?r.jsxs("section",{className:"settingsCanvasError",role:"alert","aria-live":"assertive",children:[r.jsx("h1",{className:"settingsCanvasErrorTitle",children:e(l.settingsCanvasLoadErrorTitle)}),r.jsx("p",{className:"settingsCanvasErrorBody",children:e(l.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(l.sharedCommonRetry)})})]}):r.jsxs(r.Fragment,{children:[r.jsx(kC,{payload:t.payload,onPayloadUpdate:a,busy:n,onFeedback:c,onBusy:i,onResetSetup:p}),s?r.jsx("p",{className:"settingsFeedback",role:"status",children:s}):null,r.jsx(_t,{dialog:h,onClose:g})]})}const Re=14,fC=.6,yi=.18,bC=.18,vi=2,yC="#e8c84a",ld="#8B7E74";function vC(e){return new Promise((t,a)=>{const o=new Image;o.crossOrigin="anonymous",o.onload=()=>t(o),o.onerror=a,o.src=e})}function CC(e,t,a){return e.map(o=>{const n=Math.random()*Math.PI*2,i=fC+Math.random()*.3;return{id:o.id,x:Re+Math.random()*(t-Re*2),y:Re+Math.random()*(a-Re*2),vx:Math.cos(n)*i,vy:Math.sin(n)*i,color:o.avatarColor??ld,initials:Ae(o.name),isBoss:o.isBoss,avatarUrl:o.avatarUrl??null,image:null}})}function SC(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??ld)||a.isBoss!==n.isBoss||a.avatarUrl!==(n.avatarUrl??null):!0})}function LC(e,t,a,o){for(const n of e)n.x+=n.vx*o,n.y+=n.vy*o,n.x-Re<=0?(n.x=Re,n.vx=Math.abs(n.vx)):n.x+Re>=t&&(n.x=t-Re,n.vx=-Math.abs(n.vx)),n.y-Re<=0?(n.y=Re,n.vy=Math.abs(n.vy)):n.y+Re>=a&&(n.y=a-Re,n.vy=-Math.abs(n.vy))}function PC(e,t,a){for(const o of e)o.x=Math.min(Math.max(Re,o.x),t-Re),o.y=Math.min(Math.max(Re,o.y),a-Re)}function RC(e,t,a,o){e.clearRect(0,0,a,o);for(const n of t)e.globalAlpha=yi,n.isBoss&&(e.beginPath(),e.arc(n.x,n.y,Re+vi,0,Math.PI*2),e.strokeStyle=yC,e.lineWidth=vi,e.stroke()),n.image?(e.save(),e.beginPath(),e.arc(n.x,n.y,Re,0,Math.PI*2),e.clip(),e.drawImage(n.image,n.x-Re,n.y-Re,Re*2,Re*2),e.restore()):(e.beginPath(),e.arc(n.x,n.y,Re,0,Math.PI*2),e.fillStyle=n.color,e.fill(),e.globalAlpha=yi*1.8,e.font=`700 ${Re*.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 xC({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 i=a.current;if(!i)return;const s=i,c=s.getContext("2d");if(!c)return;const h=e==="reduced"?bC:1;function u(){if(s.width=window.innerWidth,s.height=window.innerHeight,SC(o.current,t)){o.current=CC([...t],s.width,s.height);return}const w=o.current;w&&PC(w,s.width,s.height)}function g(){n.current!==0&&(cancelAnimationFrame(n.current),n.current=0)}function p(){const w=s.width,k=s.height,y=o.current;!c||!y||(LC(y,w,k,h),RC(c,y,w,k),n.current=requestAnimationFrame(p))}u(),n.current=requestAnimationFrame(p);const f=o.current;if(f)for(let w=0;w<t.length;w++){const k=t[w]?.avatarUrl;k&&f[w]&&vC(k).then(y=>{f[w].image=y}).catch(()=>{})}return window.addEventListener("resize",u),()=>{g(),window.removeEventListener("resize",u)}},[e,t]),e==="off"||t.length===0?null:r.jsx("canvas",{ref:a,className:"lobbyBouncingCanvas","aria-hidden":"true"})}const cd=$e("en");function AC(e,t=cd){return e.products.map(a=>({productId:a.id,surface:a.surface,productName:Yp(a,t),subtitle:Qp(a,t),routePrefix:a.routePrefix,lastUsed:a.surface!==null&&a.surface===e.lastUsedSurface,available:a.installState==="available"}))}function TC(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 DC=[l.lobbyGreetingChooseSurface,l.lobbyGreetingHomeReady,l.lobbyGreetingPickProduct,l.lobbyGreetingEverythingStaged,l.lobbyGreetingOpenSurface,l.lobbyGreetingAwake,l.lobbyGreetingContinue];function NC(e){return(e??[]).map(t=>t.trim()).filter(t=>t.length>0)}function jC(e,t=Math.random,a=cd){const o=NC(e),n=DC.map(s=>a(s)),i=o.length>0?o:n;return i[Math.floor(t()*i.length)]}const Bo=$e("en"),MC=[l.lobbyGreetingChooseSurface,l.lobbyGreetingHomeReady,l.lobbyGreetingPickProduct,l.lobbyGreetingEverythingStaged,l.lobbyGreetingOpenSurface,l.lobbyGreetingAwake,l.lobbyGreetingContinue],EC=[l.chatNewChatDraftDefaultGreeting,l.chatNewChatDraftGreetingNap,l.chatNewChatDraftGreetingKeyboard,l.chatNewChatDraftGreetingLetsGo,l.chatNewChatDraftGreetingStandby,l.chatNewChatDraftGreetingTaskReady,l.chatNewChatDraftGreetingOnDuty],IC=[l.codeNewDraftGreeting,l.codeNewDraftGreetingOpenRepo,l.codeNewDraftGreetingBuildFixRefactor,l.codeNewDraftGreetingShipImprovement,l.codeNewDraftGreetingSmallestChange];function BC(e,t=Bo){return e.map(a=>t(a))}function FC(e){switch(e.bundle.scope.surfaceId){case"lobby":return MC;case"chat:new":return EC;case"code:new":return IC;default:return null}}function OC(e,t=Bo){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=FC(e);if(!o)return a;const i=BC(o,Bo).findIndex(c=>c===a);if(i<0)return a;const s=o[i];return s?t(s):a}function WC({envelope:e}){const{t}=_(),a=Ue(),[o]=d.useState(()=>jC(null,Math.random,t)),n=AC({products:e.products,lastUsedSurface:e.lastProductSurface??null},t),i=TC({installedApps:e.installedApps??[]}),s=OC(e.lobby.guideCatAssist,t)??o,c=Pr(e.runtime),h=fb(c),u=Tn(c,t),g=t("lobbyRuntimeStatusLabel",{runtimeStatus:u}),p=e.ownerAvatarUrl?{backgroundImage:`url(${e.ownerAvatarUrl})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0,f={platformShellSurface:e.lastProductSurface??"chat"};return r.jsxs("div",{className:"screen lobbyScreen",children:[r.jsx(xC,{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(An,{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:f}),"aria-label":t("lobbyOpenAccountSettings"),children:[r.jsx("span",{className:"lobbyAvatar",style:p,children:e.ownerAvatarUrl?null:Ae(e.ownerDisplayName)}),r.jsx("span",{className:"lobbyOwnerName",children:e.ownerDisplayName})]}),r.jsx("button",{type:"button",className:"lobbyIdentityRuntime",onClick:()=>a("/settings/runtime",{state:f}),"data-tooltip":u,"aria-label":g,children:r.jsx("span",{className:h,"aria-hidden":"true"})})]})]})]}),r.jsx("div",{className:"lobbyHero",children:r.jsx("h1",{className:"lobbyGreeting",children:s})}),r.jsx(_c,{envelope:e}),r.jsxs("div",{className:"lobbyProducts",children:[r.jsx("p",{className:"lobbyProductsEyebrow",children:t("lobbyProductsSectionTitle")}),r.jsx("div",{className:"platformLobbyGrid",children:n.map(w=>{const k=`contentCard platformLobbyCard platformLobbyCard--${w.surface??"module"}`+(w.lastUsed?" platformLobbyCard--recent":"")+(w.available?" platformLobbyCard--mock":""),y=r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"platformLobbyCardAccent"}),r.jsx("span",{className:"platformLobbyCardName",children:w.productName}),r.jsx("span",{className:"platformLobbyCardSub",children:w.subtitle}),w.lastUsed?r.jsx("span",{className:"platformLobbyCardHint",children:t("lobbyContinueText")}):null]});return w.available?r.jsx("div",{className:k,children:y},w.productId):r.jsx("button",{type:"button",className:k,onClick:()=>a(w.routePrefix),children:y},w.productId)})})]}),i.length>0?r.jsxs("div",{className:"lobbyProducts",children:[r.jsx("p",{className:"lobbyProductsEyebrow",children:t("lobbyAppsSectionTitle")}),r.jsx("div",{className:"platformLobbyGrid",children:i.map(w=>r.jsxs("button",{type:"button",className:"contentCard platformLobbyCard platformLobbyCard--app",onClick:()=>a(w.routePath),"aria-label":t("lobbyOpenEntry",{entryTitle:w.title}),children:[r.jsx("div",{className:"platformLobbyCardAccent"}),r.jsx("span",{className:"platformLobbyCardName",children:w.title}),w.subtitle?r.jsx("span",{className:"platformLobbyCardSub",children:w.subtitle}):null]},`${w.appId}:${w.entryId}`))})]}):null]})]})}class ba extends Error{constructor(t,a,o){super(t),this.status=a,this.code=o,this.name="PlatformSetupApiError"}}function UC(e){return e instanceof ba&&e.status===401&&(e.code===null||e.code===Fe.unauthenticated)}function HC(e){return e instanceof ba&&e.status===403&&e.code===Fe.forbidden&&e.message==="Auth repair is required."}async function dd(e,t){return(await ud(e,t)).message}async function ud(e,t){try{const a=await e.json(),o=GC(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 GC(e){if(typeof e!="object"||e===null)return null;const t=e.error;return typeof t=="object"&&t!==null?t:null}function _C(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 KC(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 dd(a,t));return await a.json()}async function Na(e){const t=await fetch("/api/app-shell",{headers:{Accept:"application/json"},signal:e.signal});if(!t.ok){const n=await ud(t,e);throw new ba(n.message,t.status,n.code)}const a=await t.json(),o=_C(a);if(o==="login")throw new ba("Authentication is required.",401,Fe.unauthenticated);if(o==="repair")throw new ba("Auth repair is required.",403,Fe.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 dd(a,t));return await a.json()}async function zC(e){return Sr(e)}async function $C(e,t){return mn({provider:e,instance:t})}async function VC(e,t){return gn({provider:e,instance:t})}function YC({name:e,onNameChange:t,nameReadOnly:a,provider:o,instance:n,model:i,modelSelection:s,onTargetChange:c,nameLabel:h,namePlaceholder:u,nameHint:g,autoFocusName:p,makeBoss:f,onMakeBossChange:w,hideMakeBoss:k,fetchProviderRegistry:y,fetchProviderModels:m,fetchAdvancedProviderModels:C,onProviderRegistryChange:v}){const{t:b}=_();return r.jsxs(r.Fragment,{children:[r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:h??b(l.settingsGeneralNameLabel)}),r.jsx("input",{className:"textInput",value:e,onChange:S=>t(S.target.value),placeholder:u,autoFocus:p&&!a,readOnly:a,"aria-readonly":a?"true":void 0}),g?r.jsx("span",{className:"fieldHint",children:g}):null]}),!k&&w?r.jsxs("label",{className:"fieldLabel fieldLabelInline",children:[r.jsx("input",{type:"checkbox",checked:f??!1,onChange:S=>w(S.target.checked)}),r.jsx("span",{children:b(l.sharedSettingsCatsSetBossCatLabel)})]}):null,r.jsx(Pc,{provider:o,instance:n,model:i,modelSelection:s,onTargetChange:c,fetchProviderRegistry:y,fetchProviderModels:m,fetchAdvancedProviderModels:C,onProviderRegistryChange:v})]})}function QC(e){return r.jsx(YC,{...e,fetchProviderRegistry:zC,fetchProviderModels:$C,fetchAdvancedProviderModels:VC})}function JC({provider:e,instance:t,model:a,modelSelection:o,runtimeReachable:n,onTargetChange:i}){const s=vt(),{t:c}=_(),[h,u]=d.useState({state:"ready",providers:[]}),g=h.state==="runtime_unreachable"?{className:"statusChip statusChipWarm",label:c(l.sharedProviderModelFieldLoadingProviders)}:h.state==="no_usable_targets"?{className:"statusChip statusChipWarm",label:c(l.setupGuideCatNoUsableTargets)}:n?{className:"statusChip statusChipReady",label:c(l.setupGuideCatRuntimeConnected)}:{className:"statusChip statusChipWarm",label:c(l.setupGuideCatRuntimeNotDetected)};return r.jsxs(r.Fragment,{children:[r.jsx(QC,{name:s,onNameChange:()=>{},nameReadOnly:!0,provider:e,instance:t,model:a,modelSelection:o,onTargetChange:i,nameLabel:c(l.setupGuideCatNameLabel),namePlaceholder:s,nameHint:c(l.setupGuideCatNameHint),hideMakeBoss:!0,hideProductToggles:!0,onProviderRegistryChange:u}),r.jsx("div",{className:"setupRuntimeStatus",children:r.jsx("span",{className:g.className,children:g.label})})]})}function XC(e){return!!e.model.trim()}function ZC(e){return!e.createGuideCat||XC({model:e.model})}const ja=[1,2],eS=ja.length;function Ci(e){const t=ja.indexOf(e);return ja[t+1]??e}function tS(e){const t=ja.indexOf(e);return ja[t-1]??e}const aS=new Set(["Invalid desktop platform shell payload."]);function rS(e,t,a){return e instanceof Error?aS.has(e.message)?t:e.message:t}function oS(e){return e.step===2&&e.createGuideCat}function nS({envelope:e,onComplete:t}){const[a,o]=d.useState(1),[n,i]=d.useState(""),[s,c]=d.useState(""),[h,u]=d.useState(""),[g,p]=d.useState(!1),[f,w]=d.useState("claude"),[k,y]=d.useState(""),[m,C]=d.useState(""),[v,b]=d.useState(null),[S,T]=d.useState(null),[M,j]=d.useState(""),R=d.useRef(!1),{t:P}=_(),A=S!==null,x=vt(),E=!!(n.trim()&&s.trim()&&h),O=ZC({createGuideCat:g,model:m}),$=e.bootstrapAttemptId??null,K=d.useCallback(async()=>{T("complete"),j("");try{const F=await KC({attemptId:$,ownerDisplayName:n.trim(),adminIdentifier:s.trim(),adminPassword:h,createGuideCat:g,guideCatProvider:g?f:void 0,guideCatInstance:g&&k||void 0,guideCatModel:g&&m||void 0,guideCatModelSelection:g?v:void 0},{fallbackMessageForStatus:Y=>P(l.setupWizardFailedWithStatus,{status:Y}),errorMessagesByCode:{already_complete:P(l.setupWizardAlreadyCompleteError),bad_request:P(l.setupWizardInvalidRequestError),configuration_error:P(l.setupWizardServerError),internal_error:P(l.setupWizardServerError)}});await Fb(F),t(F)}catch(F){j(rS(F,P(l.setupWizardFailedMessage)))}finally{T(null)}},[g,s,h,k,m,v,t,n,f,$,P]);d.useEffect(()=>{R.current||(R.current=!0,qC($,{fallbackMessageForStatus:F=>P(l.setupWizardRecordOpenFailedWithStatus,{status:F})}).catch(()=>{}))},[$,P]),d.useEffect(()=>{function F(Y){Y.key!=="Enter"||A||Y.target instanceof HTMLSelectElement||Y.target instanceof HTMLTextAreaElement||a===1&&!E||a===2&&!O||(Y.preventDefault(),a===1?o(Ci(a)):a===2&&K())}return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[A,O,E,K,a]),d.useEffect(()=>{oS({step:a,createGuideCat:g})&&Mg().catch(()=>{})},[g,a]);const ee=Array.from({length:eS},(F,Y)=>Y+1);return r.jsx("div",{className:"screen screenCentered",children:r.jsxs("div",{className:"setupWizard",children:[r.jsx("div",{className:"setupStepIndicator",children:ee.map(F=>r.jsx("span",{className:F<=a?"setupDot setupDotActive":"setupDot"},F))}),a===1?r.jsxs("div",{className:"contentCard setupCard",children:[r.jsx("p",{className:"eyebrow",children:P(l.appBrandName)}),r.jsx("h1",{children:P(l.setupWizardWelcomeTitle)}),r.jsx("p",{className:"heroNote",children:P(l.setupWizardWelcomeIntro)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:P(l.setupWizardOwnerNameLabel)}),r.jsx("input",{className:"textInput",value:n,onChange:F=>i(F.target.value),placeholder:P(l.setupWizardOwnerNamePlaceholder),autoFocus:!0})]}),r.jsx("p",{className:"setupRuntimeNote",children:P(l.setupWizardAdminCredentialsHint)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:P(l.setupWizardAdminIdentifierLabel)}),r.jsx("input",{className:"textInput",value:s,onChange:F=>c(F.target.value),placeholder:P(l.setupWizardAdminIdentifierPlaceholder),autoComplete:"username"})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:P(l.setupWizardAdminPasswordLabel)}),r.jsx("input",{className:"textInput",type:"password",value:h,onChange:F=>u(F.target.value),placeholder:P(l.setupWizardAdminPasswordPlaceholder),autoComplete:"new-password"})]}),M?r.jsx("p",{className:"feedbackText",children:M}):null,r.jsx("button",{className:"primaryButton setupPrimaryButton",disabled:!E,type:"button",onClick:()=>o(Ci(a)),children:P(l.setupWizardGetStartedButton)})]}):null,a===2?r.jsxs("div",{className:"contentCard setupCard",children:[r.jsx("p",{className:"eyebrow",children:P(l.setupWizardStepIndicator,{step:2,total:2})}),r.jsx("h1",{children:P(l.setupWizardEnableGuideTitle,{guideCatName:x})}),r.jsx("p",{className:"heroNote",children:P(l.setupWizardEnableGuideSubtitle)}),r.jsxs("label",{className:"setupCheckboxLabel",children:[r.jsx("input",{type:"checkbox",className:"setupCheckbox",checked:g,onChange:F=>p(F.target.checked)}),r.jsx("span",{children:P(l.setupWizardEnableGuideLabel,{guideCatName:x})})]}),g?r.jsx(JC,{provider:f,instance:k,model:m,modelSelection:v,runtimeReachable:e.runtime.reachable,onTargetChange:F=>{w(F.provider),y(F.instance),C(F.model),b(F.modelSelection??null)}}):r.jsx("p",{className:"setupRuntimeNote",children:P(l.setupWizardSkipGuideMessage,{guideCatName:x})}),M?r.jsx("p",{className:"feedbackText",children:M}):null,r.jsxs("div",{className:"setupActions",children:[r.jsx("button",{className:"setupBackButton",type:"button",disabled:A,onClick:()=>o(tS(a)),children:P(l.setupWizardBackButton)}),r.jsx("button",{className:"primaryButton setupPrimaryButton",disabled:A||!O,type:"button",onClick:()=>{K()},children:P(S==="complete"?l.setupWizardOpeningCatsAction:l.setupWizardOpenCatsAction)})]})]}):null]})})}function Si({onAuthenticated:e}){const{t}=_(),[a,o]=d.useState(""),[n,i]=d.useState(""),[s,c]=d.useState(!1),[h,u]=d.useState(""),[g,p]=d.useState(null),f=!!(a.trim()&&n&&!s),w=d.useCallback(()=>({fallbackMessageForStatus:C=>t(l.authLoginFailedWithStatus,{status:C}),errorMessagesByCode:{[Fe.unauthenticated]:t(l.authLoginInvalidCredentials),[Fe.forbidden]:t(l.authLoginForbidden),[Fe.csrfMismatch]:t(l.authLoginCsrfMismatch)}}),[t]);d.useEffect(()=>{let C=!0;return Da(w()).then(v=>{if(!C)return;const b=v.providers.google.enabled&&v.providers.google.clientId?.trim()||null;p(b)}).catch(()=>{C&&p(null)}),()=>{C=!1}},[w]);async function k(C){if(C.preventDefault(),!!f){c(!0),u("");try{await Rv({identifier:a.trim(),password:n},w());const v=await Na({fallbackMessageForStatus:b=>t(l.appLoadStateFailedWithStatus,{status:b})});e(v)}catch(v){u(v instanceof Error?v.message:t(l.authLoginFailed))}finally{c(!1)}}}const y=d.useCallback(async C=>{if(!s){c(!0),u("");try{await xv({credential:C.credential,csrfToken:C.csrfToken},w());const v=await Na({fallbackMessageForStatus:b=>t(l.appLoadStateFailedWithStatus,{status:b})});e(v)}catch(v){u(v instanceof Error?v.message:t(l.authLoginFailed))}finally{c(!1)}}},[w,s,e,t]),m=d.useCallback(()=>{u(t(l.authLoginGoogleUnavailable))},[t]);return r.jsx("div",{className:"screen screenCentered",children:r.jsxs("form",{className:"contentCard setupCard",onSubmit:C=>{k(C)},children:[r.jsx("p",{className:"eyebrow",children:t(l.appBrandName)}),r.jsx("h1",{children:t(l.authLoginTitle)}),r.jsx("p",{className:"heroNote",children:t(l.authLoginSubtitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.authLoginIdentifierLabel)}),r.jsx("input",{className:"textInput",value:a,onChange:C=>o(C.target.value),placeholder:t(l.authLoginIdentifierPlaceholder),autoComplete:"username",autoFocus:!0})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.authLoginPasswordLabel)}),r.jsx("input",{className:"textInput",type:"password",value:n,onChange:C=>i(C.target.value),placeholder:t(l.authLoginPasswordPlaceholder),autoComplete:"current-password"})]}),h?r.jsx("p",{className:"feedbackText",children:h}):null,r.jsx("button",{className:"primaryButton setupPrimaryButton",disabled:!f,type:"submit",children:t(s?l.authLoginSubmitting:l.authLoginSubmit)}),g?r.jsxs("div",{className:"googleSignInSection",children:[r.jsx("div",{className:"setupRuntimeNote",children:t(l.authLoginGoogleOriginHint)}),r.jsx(nd,{clientId:g,disabled:s,onCredential:C=>{y(C)},onError:m})]}):null]})})}function sS({onRepaired:e}){const{t}=_(),[a,o]=d.useState(""),[n,i]=d.useState(""),[s,c]=d.useState(""),[h,u]=d.useState(""),[g,p]=d.useState(!1),[f,w]=d.useState(""),k=!!(n.trim()&&s&&h.trim()&&!g);async function y(m){if(m.preventDefault(),!k){w(t(l.authRepairFailed));return}p(!0),w("");try{const C=a.trim(),v=h.trim();await Nv({displayName:C||void 0,identifier:n.trim(),password:s,recoveryToken:v||void 0},{fallbackMessageForStatus:S=>t(l.authRepairFailedWithStatus,{status:S}),errorMessagesByCode:{[Fe.forbidden]:t(l.authRepairForbidden)}});const b=await Na({fallbackMessageForStatus:S=>t(l.appLoadStateFailedWithStatus,{status:S})});e(b)}catch(C){w(C instanceof Error?C.message:t(l.authRepairFailed))}finally{p(!1)}}return r.jsx("div",{className:"screen screenCentered",children:r.jsxs("form",{className:"contentCard setupCard",onSubmit:m=>{y(m)},children:[r.jsx("p",{className:"eyebrow",children:t(l.appBrandName)}),r.jsx("h1",{children:t(l.authRepairTitle)}),r.jsx("p",{className:"heroNote",children:t(l.authRepairSubtitle)}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.authRepairDisplayNameLabel)}),r.jsx("input",{className:"textInput",value:a,onChange:m=>o(m.target.value),placeholder:t(l.authRepairDisplayNamePlaceholder),autoComplete:"name",autoFocus:!0})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.authRepairIdentifierLabel)}),r.jsx("input",{className:"textInput",value:n,onChange:m=>i(m.target.value),placeholder:t(l.authRepairIdentifierPlaceholder),autoComplete:"username"})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.authRepairPasswordLabel)}),r.jsx("input",{className:"textInput",type:"password",value:s,onChange:m=>c(m.target.value),placeholder:t(l.authRepairPasswordPlaceholder),autoComplete:"new-password"})]}),r.jsxs("label",{className:"fieldLabel",children:[r.jsx("span",{children:t(l.authRepairRecoveryTokenLabel)}),r.jsx("input",{className:"textInput",value:h,onChange:m=>u(m.target.value),placeholder:t(l.authRepairRecoveryTokenPlaceholder),autoComplete:"off"})]}),r.jsx("p",{className:"setupRuntimeNote",children:t(l.authRepairRecoveryTokenHint)}),f?r.jsx("p",{className:"feedbackText",role:"alert",children:f}):null,r.jsx("button",{className:"primaryButton setupPrimaryButton",disabled:!k,type:"submit",children:t(g?l.authRepairSubmitting:l.authRepairSubmit)})]})})}const Li="/login",Pi="/repair",iS="/lobby";function lS(e,t){return UC(e)?{status:"unauthenticated"}:HC(e)?{status:"repairRequired"}:{status:"error",message:e instanceof Error?e.message:t}}function Ri(e){return e.lastProductSurface?gr(e.lastProductSurface):iS}const cS="modulepreload",dS=function(e){return"/"+e},xi={},En=function(t,a,o){let n=Promise.resolve();if(a&&a.length>0){let h=function(u){return Promise.all(u.map(g=>Promise.resolve(g).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),c=s?.nonce||s?.getAttribute("nonce");n=h(a.map(u=>{if(u=dS(u),u in xi)return;xi[u]=!0;const g=u.endsWith(".css"),p=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${p}`))return;const f=document.createElement("link");if(f.rel=g?"stylesheet":cS,g||(f.as="script"),f.crossOrigin="",f.href=u,c&&f.setAttribute("nonce",c),document.head.appendChild(f),g)return new Promise((w,k)=>{f.addEventListener("load",w),f.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(s){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=s,window.dispatchEvent(c),!c.defaultPrevented)throw s}return n.then(s=>{for(const c of s||[])c.status==="rejected"&&i(c.reason);return t().catch(i)})},uS=()=>En(()=>import("./App-boB4WrmU.js"),__vite__mapDeps([0,1,2,3,4,5])),pS=()=>En(()=>import("./App-BpxZB5ym.js"),__vite__mapDeps([6,1,2,3,7,8])),hS=()=>En(()=>import("./App-DYTUfAl6.js"),__vite__mapDeps([9,1,2,7,4,10])),mS={chat:uS,work:pS,code:hS};function pd(e){return mS[e]}function In(e){return d.lazy(pd(e))}function gS(e,t=pd){return t(e)()}function NP(e){return gS(e)}const kS=5e3,wS=In("chat"),fS=In("work"),bS=In("code");function yS(){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=Yo(t);if(a)return a}return"en"}function vS(e){return e?.language?.uiLanguagePreference??"auto"}function CS(e){return e==="auto"?yS():zp(e)}function SS(e){return!!(e.guideCat&&Ra(e.guideCat.status)&&!e.productSurfaceFallbackActive)}function LS({surface:e,translate:t,onVisibilityChange:a}){const o=sl(e,Mp(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 to(e,t,a){const o=e==="work"?fS:e==="code"?bS:wS;return r.jsx(d.Suspense,{fallback:r.jsx(LS,{surface:e,translate:a,onVisibilityChange:t}),children:r.jsx(o,{})})}function PS(e){return typeof e!="object"||e===null?null:ga(e.platformShellSurface)}function RS(e){return e.loadStatus!=="ready"||!e.setupComplete||La(e.pathname)||hl(e.pathname)?e.t("appTitle"):null}function xS(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 AS(){const e=Ne(),t=Ue(),[a,o]=d.useState({status:"loading"}),[n,i]=d.useState(!1),[s,c]=d.useState(0),h=vS(a.status==="ready"?a.envelope:null),[u,g]=d.useState(null),p=u??h,f=CS(p),w=d.useMemo(()=>$e(f),[f]),k=d.useRef(null),y=d.useRef(e.pathname),[m,C]=d.useState("chat");d.useEffect(()=>{g(null)},[h]);const v=d.useCallback(async(F,Y)=>{try{const H=await Na({signal:F,fallbackMessageForStatus:ae=>w("appLoadStateFailedWithStatus",{status:ae})});F?.aborted||d.startTransition(()=>o({status:"ready",envelope:H}))}catch(H){if(F?.aborted)return;const ae=lS(H,w("appLoadErrorMessage"));if(ae.status==="unauthenticated"){d.startTransition(()=>o({status:"unauthenticated"}));return}if(ae.status==="repairRequired"){d.startTransition(()=>o({status:"repairRequired"}));return}Y?.suppressErrors||o(ae)}},[w]);d.useEffect(()=>{const F=new AbortController;return v(F.signal),()=>F.abort()},[v]),d.useEffect(()=>{function F(){v(void 0,{suppressErrors:!0})}return window.addEventListener(To,F),()=>{window.removeEventListener(To,F)}},[v]);const b=La(e.pathname),S=tn({hydrate:a.status==="ready"}),T=d.useCallback(()=>{S.update({sidecarSeen:!0})},[S.update]);d.useEffect(()=>{const F=y.current;y.current=e.pathname,!(!(b&&!La(F))||a.status!=="ready")&&v(void 0,{suppressErrors:!0})},[b,e.pathname,v,a.status]),d.useEffect(()=>{const F=window.history.state;Ab(e.pathname,F?.idx),yb(e.pathname,F?.idx)},[e.pathname]),d.useEffect(()=>{if(a.status!=="ready"||!b||typeof window>"u"||typeof document>"u")return;let F=null;const Y=()=>{if(document.visibilityState==="hidden"||F)return;const G=new AbortController;F=G,Na({signal:G.signal,fallbackMessageForStatus:I=>w("appLoadStateFailedWithStatus",{status:I})}).then(I=>{G.signal.aborted||d.startTransition(()=>{o(z=>z.status!=="ready"||!xS(z.envelope,I)?z:{status:"ready",envelope:{...z.envelope,runtime:I.runtime,runtimeSetup:I.runtimeSetup,metadata:I.metadata,bootstrapAttemptId:I.bootstrapAttemptId}})})}).catch(()=>{}).finally(()=>{F===G&&(F=null)})},H=window.setInterval(Y,kS),ae=()=>{Y()},ue=()=>{document.visibilityState==="visible"&&Y()};return window.addEventListener("focus",ae),document.addEventListener("visibilitychange",ue),()=>{F&&F.abort(),window.clearInterval(H),window.removeEventListener("focus",ae),document.removeEventListener("visibilitychange",ue)}},[b,a.status,w]);const M=a.status==="ready"?a.envelope:null,j=!!M?.setupCompleteAt,R=M?.lastProductSurface??null,P=PS(e.state),A=k.current,x=hh(P,A,R,m);if(d.useEffect(()=>{const F=RS({loadStatus:a.status,pathname:e.pathname,setupComplete:j,t:w});F&&(document.title=F)},[e.pathname,j,a.status]),d.useEffect(()=>{a.status!=="ready"||!j||Sr().then(F=>xg(F)).catch(()=>{})},[j,a.status]),d.useEffect(()=>{if(a.status!=="ready")return;const F=a.envelope.lastProductSurface??null;F&&C(Y=>Y===F?Y:F)},[a.status,a.status==="ready"?a.envelope.lastProductSurface:null]),d.useEffect(()=>{if(Ia(e.pathname)){C(F=>F===x?F:x);return}},[e.pathname,x]),d.useEffect(()=>{if(!j)return;const F=ph(e.pathname);if(!(e.pathname==="/"&&R!=="chat")&&!(e.pathname==="/"&&!R)&&!uh(e.pathname)){if(C(Y=>Y===F?Y:F),k.current===null){k.current=F,F!==R&&(d.startTransition(()=>{o(Y=>Y.status==="ready"?{status:"ready",envelope:{...Y.envelope,lastProductSurface:F}}:Y)}),fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({lastProductSurface:F})}).catch(()=>{}));return}F!==k.current&&(k.current=F,d.startTransition(()=>{o(Y=>Y.status==="ready"?{status:"ready",envelope:{...Y.envelope,lastProductSurface:F}}:Y)}),fetch("/api/platform/preferences",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({lastProductSurface:F})}).catch(()=>{}))}},[j,R,e.pathname]),a.status==="loading")return r.jsx(zt,{languagePreference:p,locale:f,setLanguagePreference:g,children:r.jsx("div",{className:"screen screenCentered",children:r.jsxs("div",{className:"loadingPanel",children:[r.jsx("p",{className:"eyebrow",children:w("appBrandName")}),r.jsx("h1",{children:w("appLoadingEllipsis")})]})})});if(a.status==="error")return r.jsx(zt,{languagePreference:p,locale:f,setLanguagePreference:g,children:r.jsx("div",{className:"screen screenCentered",children:r.jsxs("div",{className:"errorPanel",children:[r.jsx("p",{className:"eyebrow",children:w("appErrorEyebrow")}),r.jsx("h1",{children:w("appErrorTitle")}),r.jsx("p",{children:a.message})]})})});if(a.status==="unauthenticated")return r.jsx(zt,{languagePreference:p,locale:f,setLanguagePreference:g,children:r.jsxs(ma,{children:[r.jsx(se,{path:Li,element:r.jsx(Si,{onAuthenticated:F=>{const Y=Ri(F);Vt.flushSync(()=>o({status:"ready",envelope:F})),t(Y,{replace:!0})}})}),r.jsx(se,{path:"*",element:r.jsx(Lt,{to:Li,replace:!0})})]})});if(a.status==="repairRequired")return r.jsx(zt,{languagePreference:p,locale:f,setLanguagePreference:g,children:r.jsxs(ma,{children:[r.jsx(se,{path:Pi,element:r.jsx(sS,{onRepaired:F=>{const Y=Ri(F);Vt.flushSync(()=>o({status:"ready",envelope:F})),t(Y,{replace:!0})}})}),r.jsx(se,{path:"*",element:r.jsx(Lt,{to:Pi,replace:!0})})]})});const{envelope:E}=a;if(!E.setupCompleteAt)return r.jsx(zt,{languagePreference:p,locale:f,setLanguagePreference:g,children:r.jsxs(ma,{children:[r.jsx(se,{path:"/setup",element:r.jsx(nS,{envelope:E,onComplete:F=>{Vt.flushSync(()=>{o({status:"ready",envelope:F}),F.guideCat&&Ra(F.guideCat.status)&&S.hydrated&&!S.prefs.sidecarSeen&&c(Y=>Y+1)}),t("/lobby",{replace:!0})}})}),r.jsx(se,{path:"*",element:r.jsx(Lt,{to:"/setup",replace:!0})})]})});const $=!!E.lastProductSurface?gr(x):"/lobby",K={guideCat:E.guideCat,productSurfaceFallbackActive:n},ee=SS(K);return r.jsx(zt,{languagePreference:p,locale:f,setLanguagePreference:g,children:r.jsxs(Uh,{guideCat:ee?K.guideCat:null,placement:S.prefs.placement,floatingAnchor:S.prefs.floatingAnchor,sidecarMode:S.prefs.sidecarMode,proactiveGreetingToken:s,onPersistSeen:T,onCommit:S.update,children:[ee?r.jsx(Gm,{guideCat:K.guideCat,ownerDisplayName:E.ownerDisplayName,unreadCount:0,onDismissed:()=>{v()}}):null,r.jsxs(ma,{children:[r.jsx(se,{path:"/lobby",element:r.jsx(WC,{envelope:E})}),r.jsxs(se,{element:r.jsx(Pb,{envelope:E}),children:[r.jsx(se,{path:"/entities",element:r.jsx(ab,{envelope:E})}),r.jsx(se,{path:"/entities/cats",element:r.jsx(jf,{})}),r.jsx(se,{path:"/entities/cats/:catId",element:r.jsx(kw,{})}),r.jsx(se,{path:"/entities/clowders",element:r.jsx(sb,{envelope:E})}),r.jsx(se,{path:"/entities/clowders/:clowderId",element:r.jsx($s,{envelope:E})}),r.jsx(se,{path:"/entities/clowders/:clowderId/:tab",element:r.jsx($s,{envelope:E})}),r.jsx(se,{path:"/entities/catteries",element:r.jsx(ib,{envelope:E})}),r.jsx(se,{path:"/entities/catteries/:catteryId",element:r.jsx(zs,{envelope:E})}),r.jsx(se,{path:"/entities/catteries/:catteryId/:tab",element:r.jsx(zs,{envelope:E})})]}),r.jsx(se,{path:"/apps/:appId/*",element:r.jsx(Qm,{envelope:E})}),r.jsx(se,{path:"/products",element:r.jsx(Lt,{to:"/lobby",replace:!0})}),r.jsx(se,{path:"/login",element:r.jsx(Si,{onAuthenticated:F=>{Vt.flushSync(()=>o({status:"ready",envelope:F})),t($,{replace:!0})}})}),r.jsx(se,{element:r.jsx(Ib,{envelope:E}),children:r.jsx(se,{path:"/settings/*",element:r.jsx(wC,{})})}),r.jsx(se,{path:`${Er.chat.routePrefix}/*`,element:to("chat",i,w)}),r.jsx(se,{path:`${Er.work.routePrefix}/*`,element:to("work",i,w)}),r.jsx(se,{path:`${Er.code.routePrefix}/*`,element:to("code",i,w)}),r.jsx(se,{path:"/setup",element:r.jsx(Lt,{to:$,replace:!0})}),r.jsx(se,{path:"/",element:r.jsx(Lt,{to:$,replace:!0})}),r.jsx(se,{path:"*",element:r.jsx(Lt,{to:$,replace:!0})})]})]})})}const TS=new Lp({defaultOptions:{queries:{staleTime:5e3,refetchOnWindowFocus:!0,refetchOnMount:"always",retry:1}}});Lv();Ch();md.createRoot(document.getElementById("root")).render(r.jsx(gd.StrictMode,{children:r.jsx(Pp,{client:TS,children:r.jsx(Uu,{useTransitions:!1,children:r.jsx(AS,{})})})}));export{ur as $,ES as A,FL as B,qL as C,OL as D,Ts as E,HL as F,EL as G,ln as H,ye as I,aC as J,rC as K,oC as L,LP as M,Lt as N,yP as O,PP as P,RP as Q,ma as R,mr as S,mt as T,CP as U,$e as V,vP as W,Ue as X,SP as Y,iC as Z,Wt as _,_k as a,um as a$,nC as a0,AP as a1,DP as a2,kr as a3,id as a4,TP as a5,cC as a6,xP as a7,sC as a8,kh as a9,Tl as aA,go as aB,At as aC,nn as aD,yr as aE,ac as aF,$S as aG,TL as aH,_t as aI,kC as aJ,$c as aK,Vc as aL,Kl as aM,WS as aN,KS as aO,OS as aP,US as aQ,uP as aR,wP as aS,KL as aT,Ye as aU,Ne as aV,Xd as aW,zL as aX,_L as aY,GL as aZ,Ia as a_,NS as aa,JL as ab,QL as ac,YL as ad,VL as ae,fs as af,Xt as ag,ik as ah,mk as ai,TS as aj,wL as ak,nh as al,kg as am,OC as an,ok as ao,kL as ap,yL as aq,gL as ar,fL as as,Ol as at,xm as au,Ak as av,xL as aw,ht as ax,dn as ay,BS as az,bL as b,HS as b$,an as b0,hs as b1,xl as b2,ed as b3,Et as b4,It as b5,Bt as b6,Cr as b7,Al as b8,Ww as b9,sf as bA,Sm as bB,Zc as bC,WL as bD,UL as bE,GS as bF,Ql as bG,na as bH,ct as bI,Gg as bJ,CL as bK,ML as bL,mf as bM,qg as bN,JS as bO,XS as bP,dt as bQ,rL as bR,aL as bS,oL as bT,pk as bU,PL as bV,LL as bW,rP as bX,aP as bY,tP as bZ,tL as b_,Fw as ba,Ow as bb,wg as bc,ir as bd,tr as be,ZL as bf,nP as bg,sP as bh,oP as bi,Ck as bj,NP as bk,YS as bl,lL as bm,Vg as bn,iL as bo,cL as bp,Kg as bq,QS as br,bP as bs,Cn as bt,iP as bu,fP as bv,kf as bw,Pt as bx,ze as by,XL as bz,se as c,jL as c0,VS as c1,NL as c2,DL as c3,vL as c4,pL as c5,sk as c6,uL as c7,sL as c8,dL as c9,gP as cA,hP as cB,pP as cC,SL as cD,RL as cE,Rs as cF,eP as cG,kP as cH,ig as cI,mL as cJ,hL as cK,Vi as cL,eu as cM,Np as cN,IS as cO,Xp as cP,Vt as cQ,Qf as cR,Yf as cS,jp as cT,Pr as cU,Tn as cV,ga as cW,mP as cX,$r as cY,An as cZ,Yc as c_,lP as ca,cP as cb,dP as cc,ta as cd,gr as ce,Gt as cf,pt as cg,eL as ch,Ie as ci,Jp as cj,As as ck,AL as cl,_S as cm,qS as cn,nL as co,ZS as cp,zS as cq,Pc as cr,Ec as cs,lc as ct,be as cu,Ut as cv,FS as cw,yn as cx,Aa as cy,Ln as cz,up as d,op as e,jS as f,so as g,ot as h,IL as i,el as j,ap as k,no as l,l as m,Ae as n,Ji as o,BL as p,bp as q,Ap as r,$L as s,rp as t,_ as u,ip as v,Ke as w,Ca as x,vp as y,MS as z};