PageSourceSearch

https://botresources.ai/assets/index-BK_-PPx6.js

js botresources.ai collected 2026-10-05 12:35:02 UTC 1,059,614 bytes, 4,180 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NotImplementedSidebar-B9L4v3nS.js","assets/vendor-react-CjsYKJLv.js","assets/vendor-lucide-BjuVKisM.js","assets/sliceScreen-RAnNV8d3.js","assets/ScreenFailed-DUcmOxco.js","assets/button-BAPiMfBP.js","assets/vendor-radix-De3SkCEr.js","assets/vendor-apollo-1ySQcXno.js","assets/sliceLoader-DA9XJrwJ.js","assets/module-DFoav-AL.js","assets/vendor-router-CPTH5aVH.js","assets/vendor-intl-Bgc1nd3m.js","assets/sliceChrome-B5DvBM6m.js","assets/WorkspaceSidebar-B6ChJJd2.js","assets/usePrefetchTab-0stU_dlM.js","assets/shellHost-CZOaY_cP.js","assets/useBoundedPending-C2qu2gOC.js","assets/addressableTabResolve-nKu-WCzv.js","assets/workspace-tab-context-DX1LnElP.js","assets/useDateFormat-8-ras5M_.js","assets/dateFormat-BscUFVad.js","assets/useOrgName-P0WqbUy0.js","assets/useTabLabelSync-dwhqcN1I.js","assets/snapshotRetry-DkWWqgSc.js","assets/Slot-CXeLiIxw.js","assets/manifest-CPh03x9p.js","assets/version-NFpXCE1i.js","assets/DesignSidebar-BbjtBcQ1.js","assets/input-Gmf9aeuN.js","assets/PanelHost-ByJEmECE.js","assets/host-B5oA3V4e.js","assets/publicPath-eHPDbyDc.js","assets/ProfileSettings-kRa2mBA2.js","assets/badge-DJeuy7DV.js","assets/label-DHFwBB7i.js","assets/ImageUpload-B4hPCw6W.js","assets/documents-XSz2DgFs.js","assets/accessors-DIDCvFqx.js","assets/helpers-CBb4MK7l.js","assets/switch-DrKZlBGL.js","assets/railComingSoon-B30NVUbZ.js","assets/Spinner-DOy5BCML.js","assets/SettingsPageHeader-CrFClSiJ.js","assets/blockedReason-DOupr7Z0.js","assets/PersonalAccessTokens-iXYoZ2QG.js","assets/date-picker-BrEywqxg.js","assets/popover-CP5V64qZ.js","assets/AffordanceButton-BF9qTe-j.js","assets/blocked-tooltip-BNENeWey.js","assets/OrganizationDetail-DiY8aWZ3.js","assets/organizationFeeds-B_SitSyA.js","assets/organizations-RFjcz_zI.js","assets/groups-DyL9NnDc.js","assets/enums-DQ9Pzg7_.js","assets/command-CB-DN_Dr.js","assets/countryFlag-Cy4YDiwU.js","assets/alert-dialog-DZIWlakL.js","assets/collapsible-BhbiwZLN.js","assets/skeleton-Bw_70Khv.js","assets/relativeTime-CR4e0YT6.js","assets/PermissionList-D7TwajFC.js","assets/useScopeRegistry-_G3ms9mZ.js","assets/Combobox-Ce7v7Qzg.js","assets/textarea-Je4QaqvD.js","assets/tabs-C_Ad2eM8.js","assets/LocalizedMarkdownView-DErqUF2T.js","assets/RenderedMarkdown-DDpyMYCa.js","assets/select-BHkAmbTR.js","assets/table-C86Zxcgl.js","assets/onboarding-k6VIktqe.js","assets/userDisplayName-DwkyI3VU.js","assets/AdminUsers-F7Q828b_.js","assets/useColumnConfig-DQxZdhcF.js","assets/useViewerActions-pqR5lXB5.js","assets/checkbox-C0zWCVpa.js","assets/AffordanceLoadError-CgkqmeLr.js","assets/dropdown-menu-DHNcP8ll.js","assets/avatar-CbjJR0Kn.js","assets/UserDetail-CARf8YnU.js","assets/card-DdPrVFM7.js","assets/AdminGroups-Bl9SuA0Z.js","assets/GroupDetail-DoDyRPu9.js","assets/PendingDomainClaims-Ce3k-Hx4.js","assets/ServiceAccounts-D5zVX1_f.js","assets/useServiceAccounts-D_3qALtJ.js","assets/ServiceAccountDetail-C6EDqYkJ.js","assets/ScopeRegistry-BaMzYdhD.js","assets/vendor-tanstack-BByYrNME.js","assets/AffordanceMenuItem-BMYQH03_.js","assets/ProjectsHome-BDXKSSFC.js","assets/projectsListFilter-Dp706C85.js","assets/useProjectsList-SOCGr2HC.js","assets/projectsObjectFold-DQriyHit.js","assets/projectsTypeScope-Bsg9sudX.js","assets/ProjectRecord-BugryHhV.js","assets/ProjectsDesignSection-wYMdncaq.js","assets/byPinnedThenName-DJ0-GAbU.js","assets/DesignTreeRow-x_TdmvD1.js","assets/SidebarPinButton-BxrzyWHy.js","assets/sidebarSearch-hQx817_d.js","assets/SidebarSection-gIorTjYq.js","assets/ServiceRecord-dGOZmLvt.js","assets/servicesAffordances-AUBgeBvU.js","assets/reducedMotion-BXsigdjo.js","assets/SurfaceAffordanceButton-D-0bYX3x.js","assets/servicesTourSeen-CE2mBn08.js","assets/commonServices-BhwukJzY.js","assets/version-badge-Bnmh_3Rs.js","assets/useCatalogStream-J_QdTgU3.js","assets/useProjectServicesCatalog-BJDMggbE.js","assets/StackReferentialHome-BPW7kExn.js","assets/useStackReferential-D1Z8lJhB.js","assets/useGestureFlight-B7YFFR_J.js","assets/AutomationRulesSettings-TNyUDQI8.js","assets/automationRuleLabels-DMsGiLNo.js","assets/RunnerCoverageSettings-DeZ65lqL.js","assets/automationRulesTab-C4nEbLdG.js","assets/ServicesSettingsSection-Cyl5UW1l.js","assets/SettingsSidebarNav-Cs515mOj.js","assets/runnerCoverageTab-BdvwTuQO.js","assets/SharedServicesSection-DiYi8SKg.js","assets/serviceDetailTab-tfOltySH.js","assets/ServiceClassificationChip-B2
16_lJQf.js","assets/ServiceCreateFields-Ctc0FBB5.js","assets/StackReferentialDoor-VtLrvdap.js","assets/SettingsSidebar-nimWQO5Y.js","assets/useOrganizationList-CZa5xkLT.js","assets/Home-Buh6Tc41.js","assets/Footer-D7Gv-D54.js","assets/seo-C3Ly8gNd.js","assets/EnvironmentBadge-CSOplGOE.js","assets/useReveal-HCLp6ZgM.js","assets/canvasLoop-C64vA8pn.js","assets/vendor-framer-BdOnrtAD.js","assets/SEO-DPQt0YvY.js","assets/Solutions-BiWHWR6g.js","assets/Insights-C6OOkyau.js","assets/InsightArticle-Czn2hSHd.js","assets/BlogPost-TuI3jVCj.js","assets/alert-BG13bNuF.js","assets/useBlogPosts-CXWU469e.js","assets/Stories-BA9JEjdp.js","assets/About-Z5aINhaX.js","assets/Careers-CH4YdNmF.js","assets/useJobs-C2S9BA_v.js","assets/JobDetail-CjDshtjU.js","assets/Contact-mnrpWYMX.js","assets/Legal-Dbf5kzaM.js","assets/Privacy-gwAIWmay.js","assets/NotFound-C72723Un.js","assets/AuthCallback-BmkyTo9Q.js","assets/WorkspacePage-Bxe62DUb.js","assets/useAccessibleBCs-CSQFiudT.js"])))=>i.map(i=>d[i]);
2var Ch=Object.defineProperty;var Th=(t,e,n)=>e in t?Ch(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var rt=(t,e,n)=>Th(t,typeof e!="symbol"?e+"":e,n);import{g as Vo,r as A,c as E,j as R,b as wh,d as kh}from"./vendor-react-CjsYKJLv.js";import{u as ja,a as Bo,b as on,R as Ah,c as Ie,N as ur,B as Eh}from"./vendor-router-CPTH5aVH.js";import{c as Rh,M as Ph,C as Mr,S as Jl,u as V,d as v,g as d,e as Lr,O as Dh,K as Oh,f as Go,o as Nh,h as Ql,i as Mh,j as Lh,H as jh,G as Uh,s as $h,A as xh,I as Fh,k as Hh}from"./vendor-apollo-1ySQcXno.js";import{s as zh,R as qh,T as Vh,C as Xl,P as Bh,a as Gh}from"./vendor-radix-De3SkCEr.js";import{I as Kh}from"./vendor-intl-Bgc1nd3m.js";import{C as Wh,B as Yh,H as Ai,R as Zl,U as ed,F as Jh,a as td,V as Qh,S as ir,b as Ei,c as Xh,T as Zh,D as eg,L as nd,d as Ri,e as Ac,G as rd,f as Pi,g as tg,K as ng,h as Vr,i as Yi,j as rg,W as og,k as ig,l as ag,m as sg,n as Br,o as Di,p as cg,q as lg,M as dg,r as Oi}from"./vendor-lucide-BjuVKisM.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();const ug="modulepreload",pg=function(t){return"/"+t},Ec={},j=function(e,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),s=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));o=Promise.allSettled(n.map(c=>
2{if(c=pg(c),c in Ec)return;Ec[c]=!0;const l=c.endsWith(".css"),u=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${u}`))return;const p=document.createElement("link");if(p.rel=l?"stylesheet":ug,l||(p.as="script"),p.crossOrigin="",p.href=c,s&&p.setAttribute("nonce",s),document.head.appendChild(p),l)return new Promise((h,m)=>{p.addEventListener("load",h),p.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(a){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=a,window.dispatchEvent(s),!s.defaultPrevented)throw a}return o.then(a=>{for(const s of a||[])s.status==="rejected"&&i(s.reason);return e().catch(i)})};var mg=typeof Element<"u",hg=typeof Map=="function",gg=typeof Set=="function",fg=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function oo(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){if(t.constructor!==e.constructor)return!1;var n,r,o;if(Array.isArray(t)){if(n=t.length,n!=e.length)return!1;for(r=n;
2r--!==0;)if(!oo(t[r],e[r]))return!1;return!0}var i;if(hg&&t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(i=t.entries();!(r=i.next()).done;)if(!e.has(r.value[0]))return!1;for(i=t.entries();!(r=i.next()).done;)if(!oo(r.value[1],e.get(r.value[0])))return!1;return!0}if(gg&&t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(i=t.entries();!(r=i.next()).done;)if(!e.has(r.value[0]))return!1;return!0}if(fg&&ArrayBuffer.isView(t)&&ArrayBuffer.isView(e)){if(n=t.length,n!=e.length)return!1;for(r=n;r--!==0;)if(t[r]!==e[r])return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf&&typeof t.valueOf=="function"&&typeof e.valueOf=="function")return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString&&typeof t.toString=="function"&&typeof e.toString=="function")return t.toString()===e.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(e).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,o[r]))return!1;if(mg&&t instanceof Element)return!1;for(r=n;r--!==0;)if(!((o[r]==="_owner"||o[r]==="__v"||o[r]==="__o")&&t.$$typeof)&&!oo(t[o[r]],e[o[r]]))return!1;return!0}return t!==t&&e!==e}var vg=function(e,n){try{return oo(e,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};const yg=Vo(vg);var bg=function(t,e,n,r,o,i,a,s){if(!t){var c;if(e===void 0)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,i,a,s],u=0;c=new Error(e.replace(/%s/g,function(){return l[u++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}},Sg=bg;const Rc=Vo(Sg);var Ig=function(e,n,r,o){var i=r?r.call(o,e,n):void 0;if(i!==void 0)return!!i;if(e===n)return!0;if(typeof e!="object"||!e||typeof n!="object"||!n)return!1;var a=Object.keys(e),s=Object.keys(n);if(a.length!==s.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(n),l=0;l<a.length;l++){var u=a[l];if(!c(u))return!1;var p=e[u],h=n[u];if(i=r?r.call(o,p,h,u):void 0,i===!1||i===void 0&&p!==h)return!1}return!0};const _g=Vo(Ig);var od=(t=>(t.BASE="base",t.BODY="body",t.HEAD="head",t.HTML="html",t.LINK="link",t.META="meta",t.NOSCRIPT="noscript",t.SCRIPT="script",t.STYLE="style",t.TITLE="title",t.FRAGMENT="Symbol(react.fragment)",t))(od||{}),Ni={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},Pc=Object.values(od),Ua={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Cg=Object.entries(Ua).reduce((t,[e,n])=>(t[n]=e,t),{}),lt="data-rh",_n={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},Cn=(t,e)=>{for(let n=t.length-1;n>=0;n-=1){const r=t[n];if(Object.prototype.hasOwnProperty.call(r,e))return r[e]}return null},Tg=t=>{let e=Cn(t,"title");const n=Cn(t,_n.TITLE_TEMPLATE);if(Array.isArray(e)&&(e=e.join("")),n&&e)return n.replace(/%s/g,()=>e);const r=Cn(t,_n.DEFAULT_TITLE);return e||r||void 0},wg=t=>Cn(t,_n.ON_CHANGE_CLIENT_STATE)||(()=>{}),Mi=(t,e)=>e.filter(n=>typeof n[t]<"u").map(n=>n[t]).reduce((n,r)=>({...n,...r}),{}),kg=(t,e)=>e.filter(n=>typeof n.base<"u").map(n=>n.base).reverse().reduce((n,r)=>{if(!n.length){const o=Object.keys(r);for(let i=0;i<o.length;i+=1){const s=o[i].toLowerCase();if(t.indexOf(s)!==-1&&r[s])return n.concat(r)}}return n},[]),Ag=t=>console&&typeof console.warn=="function"&&console.warn(t),er=(t,e,n)=>{const r={};return n.filter(o=>Array.isArray(o[t])?!0:(typeof o[t]<"u"&&Ag(`Helmet: ${t} should be of type "Array". Instead found type "${typeof o[t]}"`),!1)).map(o=>o[t]).reverse().reduce((o,i)=>{const a={};i.filter(c=>{let l;const u=Object.keys(c);for(let h=0;h<u.length;h+=1){const m=u[h],I=m.toLowerCase();e.indexOf(I)!==-1&&!(l==="rel"&&c[l].toLowerCase()==="canonical")&&!(I==="rel"&&c[I].toLowerCase()==="stylesheet")&&(l=I),e.indexOf(m)!==-1&&(m==="innerHTML"||m==="cssText"||m==="itemprop")&&(l=m)}if(!l||!c[l])return!1;const p=c[l].toLowerCase();return r[l]||(r[l]={}),a[l]||(a[l]={}),r[l][p]?!1:(a[l][p]=!0,!0)}
2).reverse().forEach(c=>o.push(c));const s=Object.keys(a);for(let c=0;c<s.length;c+=1){const l=s[c],u={...r[l],...a[l]};r[l]=u}return o},[]).reverse()},Eg=(t,e)=>{if(Array.isArray(t)&&t.length){for(let n=0;n<t.length;n+=1)if(t[n][e])return!0}return!1},Rg=t=>({baseTag:kg(["href"],t),bodyAttributes:Mi("bodyAttributes",t),defer:Cn(t,_n.DEFER),encode:Cn(t,_n.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Mi("htmlAttributes",t),linkTags:er("link",["rel","href"],t),metaTags:er("meta",["name","charset","http-equiv","property","itemprop"],t),noscriptTags:er("noscript",["innerHTML"],t),onChangeClientState:wg(t),scriptTags:er("script",["src","innerHTML"],t),styleTags:er("style",["cssText"],t),title:Tg(t),titleAttributes:Mi("titleAttributes",t),prioritizeSeoTags:Eg(t,_n.PRIORITIZE_SEO_TAGS)}),id=t=>Array.isArray(t)?t.join(""):t,Pg=(t,e)=>{const n=Object.keys(t);for(let r=0;r<n.length;r+=1)if(e[n[r]]&&e[n[r]].includes(t[n[r]]))return!0;return!1},Li=(t,e)=>Array.isArray(t)?t.reduce((n,r)=>(Pg(r,e)?n.priority.push(r):n.default.push(r),n),{priority:[],default:[]}):{default:t,priority:[]},Dc=(t,e)=>({...t,[e]:void 0}),Dg=["noscript","script","style"],Ji=(t,e=!0)=>e===!1?String(t):String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"),ad=t=>Object.keys(t).reduce((e,n)=>{const r=typeof t[n]<"u"?`${n}="${t[n]}"`:`${n}`;return e?`${e} ${r}`:r},""),Og=(t,e,n,r)=>{const o=ad(n),i=id(e);return o?`<${t} ${lt}="true" ${o}>${Ji(i,r)}</${t}>`:`<${t} ${lt}="true">${Ji(i,r)}</${t}>`},Ng=(t,e,n=!0)=>e.reduce((r,o)=>{const i=o,a=Object.keys(i).filter(l=>!(l==="innerHTML"||l==="cssText")).reduce((l,u)=>{const p=typeof i[u]>"u"?u:`${u}="${Ji(i[u],n)}"`;return l?`${l} ${p}`:p},""),s=i.innerHTML||i.cssText||"",c=Dg.indexOf(t)===-1;return`${r}<${t} ${lt}="true" ${a}${c?"/>":`>${s}</${t}>`}`},""),sd=(t,e={})=>Object.keys(t).reduce((n,r)=>{const o=Ua[r];return n[o||r]=t[r],n},e),Mg=(t,e,n)=>{const r={key:e,[lt]:!0},o=sd(n,r);return[E.createElement("title",o,e)]},io=(t,e)=>e.map((n,r)=>{const o={key:r,[lt]:!0};return Object.keys(n).forEach(i=>{const s=Ua[i]||i;if(s==="innerHTML"||s==="cssText"){const c=n.innerHTML||n.cssText;o.dangerouslySetInnerHTML={__html:c}}else o[s]=n[i]}),E.createElement(t,o)}),Je=(t,e,n=!0)=>{switch(t){case"title":return{toComponent:()=>Mg(t,e.title,e.titleAttributes),toString:()=>Og(t,e.title,e.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>sd(e),toString:()=>ad(e)};default:return{toComponent:()=>io(t,e),toString:()=>Ng(t,e,n)}}},Lg=({metaTags:t,linkTags:e,scriptTags:n,encode:r})=>{const o=Li(t,Ni.meta),i=Li(e,Ni.link),a=Li(n,Ni.script);return{priorityMethods:{toComponent:()=>[...io("meta",o.priority),...io("link",i.priority),...io("script",a.priority)],toString:()=>`${Je("meta",o.priority,r)} ${Je("link",i.priority,r)} ${Je("script",a.priority,r)}`},metaTags:o.default,linkTags:i.default,scriptTags:a.default}},jg=t=>{const{baseTag:e,bodyAttributes:n,encode:r=!0,htmlAttributes:o,noscriptTags:i,styleTags:a,title:s="",titleAttributes:c,prioritizeSeoTags:l}=t;let{linkTags:u,metaTags:p,scriptTags:h}=t,m={toComponent:()=>{},toString:()=>""};return l&&({priorityMethods:m,linkTags:u,metaTags:p,scriptTags:h}=Lg(t)),{priority:m,base:Je("base",e,r),bodyAttributes:Je("bodyAttributes",n,r),htmlAttributes:Je("htmlAttributes",o,r),link:Je("link",u,r),meta:Je("meta",p,r),noscript:Je("noscript",i,r),script:Je("script",h,r),style:Je("style",a,r),title:Je("title",{title:s,titleAttributes:c},r)}},Qi=jg,Gr=[],cd=!!(typeof window<"u"&&window.document&&window.document.createElement),Xi=class{constructor(t,e){rt(this,"instances",[]);rt(this,"canUseDOM",cd);rt(this,"context");rt(this,"value",{setHelmet:t=>{this.context.helmet=t},helmetInstances:{get:()=>this.canUseDOM?Gr:this.instances,add:t=>{(this.canUseDOM?Gr:this.instances).push(t)},remove:t=>{const e=(this.canUseDOM?Gr:this.instances).indexOf(t);(this.canUseDOM?Gr:this.instances).splice(e,1)}}});this.context=t,this.canUseDOM=e||!1,e||(t.helmet=Qi({baseTag:[],bodyAttributes:{},htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},Ug={},ld=E.createContext(Ug),Jt,dd=(Jt=class extends A.Component{constructor(n){super(n);rt(this,"helmetData");this.helmetData=new Xi(this.props.context||{},Jt.canUseDOM)}render(){return E.createElement(ld.Provider,{value:this.helmetData.value},this.props.children)}},rt(Jt,"canUseDOM",cd),Jt),mn=(t,e)=>{const n=document.head||document.querySelector("head"),r=n.querySelectorAll(`${t}[${lt}]`),o=[].slice.call(r),i=[];let a;return e&&e.length&&e.forEach(s=>{const c=document.createElement(t);for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l))if(l==="innerHTML")c.innerHTML=s.innerHTML;else if(l==="cssText")c.styleSheet?c.styleSheet.cssText=s.cssText:c.appendChild(document.createTextNode(s.cssText));else{const u=l,p=typeof s[u]>"u"?"":s[u];c.setAttribute(l,p)}c.setAttribute(lt,"true"),o.some((l,u)=>(a=u,c.isEqualNode(l)))?o.splice(a,1):i.push(c)}),o.forEach(s=>{var c;return(c=s.parentNode)==null?void 0:c.removeChild(s)}
2),i.forEach(s=>n.appendChild(s)),{oldTags:o,newTags:i}},Zi=(t,e)=>{const n=document.getElementsByTagName(t)[0];if(!n)return;const r=n.getAttribute(lt),o=r?r.split(","):[],i=[...o],a=Object.keys(e);for(const s of a){const c=e[s]||"";n.getAttribute(s)!==c&&n.setAttribute(s,c),o.indexOf(s)===-1&&o.push(s);const l=i.indexOf(s);l!==-1&&i.splice(l,1)}for(let s=i.length-1;s>=0;s-=1)n.removeAttribute(i[s]);o.length===i.length?n.removeAttribute(lt):n.getAttribute(lt)!==a.join(",")&&n.setAttribute(lt,a.join(","))},$g=(t,e)=>{typeof t<"u"&&document.title!==t&&(document.title=id(t)),Zi("title",e)},Oc=(t,e)=>{const{baseTag:n,bodyAttributes:r,htmlAttributes:o,linkTags:i,metaTags:a,noscriptTags:s,onChangeClientState:c,scriptTags:l,styleTags:u,title:p,titleAttributes:h}=t;Zi("body",r),Zi("html",o),$g(p,h);const m={baseTag:mn("base",n),linkTags:mn("link",i),metaTags:mn("meta",a),noscriptTags:mn("noscript",s),scriptTags:mn("script",l),styleTags:mn("style",u)},I={},y={};Object.keys(m).forEach(S=>{const{newTags:w,oldTags:T}=m[S];w.length&&(I[S]=w),T.length&&(y[S]=m[S].oldTags)}),e&&e(),c(t,I,y)},tr=null,xg=t=>{tr&&cancelAnimationFrame(tr),t.defer?tr=requestAnimationFrame(()=>{Oc(t,()=>{tr=null})}):(Oc(t),tr=null)},Fg=xg,Nc=class extends A.Component{constructor(){super(...arguments);rt(this,"rendered",!1)}shouldComponentUpdate(e){return!_g(e,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:e}=this.props.context;e.remove(this),this.emitChange()}emitChange(){const{helmetInstances:e,setHelmet:n}=this.props.context;let r=null;const o=Rg(e.get().map(i=>{const a={...i.props};return delete a.context,a}));dd.canUseDOM?Fg(o):Qi&&(r=Qi(o)),n(r)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:e}=this.props.context;e.add(this),this.emitChange()}render(){return this.init(),null}},Wi,qL=(Wi=class extends A.Component{shouldComponentUpdate(t){return!yg(Dc(this.props,"helmetData"),Dc(t,"helmetData"))}mapNestedChildrenToProps(t,e){if(!e)return null;switch(t.type){case"script":case"noscript":return{innerHTML:e};case"style":return{cssText:e};default:throw new Error(`<${t.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(t,e,n,r){return{...e,[t.type]:[...e[t.type]||[],{...n,...this.mapNestedChildrenToProps(t,r)}]}}mapObjectTypeChildren(t,e,n,r){switch(t.type){case"title":return{...e,[t.type]:r,titleAttributes:{...n}};case"body":return{...e,bodyAttributes:{...n}};case"html":return{...e,htmlAttributes:{...n}};default:return{...e,[t.type]:{...n}}}}mapArrayTypeChildrenToProps(t,e){let n={...e};return Object.keys(t).forEach(r=>{n={...n,[r]:t[r]}}),n}warnOnInvalidChildren(t,e){return Rc(Pc.some(n=>t.type===n),typeof t.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${Pc.join(", ")} are allowed. Helmet does not support rendering <${t.type}> elements. Refer to our API for more information.`),Rc(!e||typeof e=="string"||Array.isArray(e)&&!e.some(n=>typeof n!="string"),`Helmet expects a string as a child of <${t.type}>. Did you forget to wrap your children in braces? ( <${t.type}>{\`\`}</${t.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(t,e){let n={};return E.Children.forEach(t,r=>{if(!r||!r.props)return;const{children:o,...i}=r.props,a=Object.keys(i).reduce((c,l)=>(c[Cg[l]||l]=i[l],c),{});let{type:s}=r;
2switch(typeof s=="symbol"?s=s.toString():this.warnOnInvalidChildren(r,o),s){case"Symbol(react.fragment)":e=this.mapChildrenToProps(o,e);break;case"link":case"meta":case"noscript":case"script":case"style":n=this.flattenArrayTypeChildren(r,n,a,o);break;default:e=this.mapObjectTypeChildren(r,e,a,o);break}}),this.mapArrayTypeChildrenToProps(n,e)}render(){const{children:t,...e}=this.props;let n={...e},{helmetData:r}=e;if(t&&(n=this.mapChildrenToProps(t,n)),r&&!(r instanceof Xi)){const o=r;r=new Xi(o.context,!0),delete n.helmetData}return r?E.createElement(Nc,{...n,context:r.value}):E.createElement(ld.Consumer,null,o=>E.createElement(Nc,{...n,context:o}))}},rt(Wi,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),Wi);function Hg(){return typeof window>"u"?null:window.__PRERENDER_ORIGIN__??null}function zg(){return Hg()!==null}function an(){if(typeof window>"u")return"local";const t=window.location.hostname;return t==="localhost"||t==="127.0.0.1"?"local":t==="dev.botresources.ai"?"dev":t==="test.botresources.ai"?"test":t==="uat.botresources.ai"?"uat":t==="botresources.ai"||t==="www.botresources.ai"?"prod":"unknown"}function jr(){switch(an()){case"local":case"unknown":return"";case"dev":case"test":case"uat":case"prod":return"";default:return""}}function qg(){switch(an()){case"local":case"unknown":return`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/ws`;case"dev":case"test":case"uat":case"prod":return`wss://${window.location.host}/ws`;default:return`ws://${window.location.host}/ws`}}const Vg={},Mc=t=>{let e;const n=new Set,r=(u,p)=>{const h=typeof u=="function"?u(e):u;if(!Object.is(h,e)){const m=e;e=p??(typeof h!="object"||h===null)?h:Object.assign({},e,h),n.forEach(I=>I(e,m))}},o=()=>e,c={setState:r,getState:o,getInitialState:()=>l,subscribe:u=>(n.add(u),()=>n.delete(u)),destroy:()=>{(Vg?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=e=t(r,o,c);return c},ud=t=>t?Mc(t):Mc;var pd={exports:{}},md={};/**
3 * @license React
4 * use-sync-external-store-shim/with-selector.production.js
5 *
6 * Copyright (c) Meta Platforms, Inc. and affiliates.
7 *
8 * This source code is licensed under the MIT license found in the
9 * LICENSE file in the root directory of this source tree.
10 */var Ko=A,Bg=zh;function Gg(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Kg=typeof Object.is=="function"?Object.is:Gg,Wg=Bg.useSyncExternalStore,Yg=Ko.useRef,Jg=Ko.useEffect,Qg=Ko.useMemo,Xg=Ko.useDebugValue;md.useSyncExternalStoreWithSelector=function(t,e,n,r,o){var i=Yg(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Qg(function(){function c(m){if(!l){if(l=!0,u=m,m=r(m),o!==void 0&&a.hasValue){var I=a.value;if(o(I,m))return p=I}return p=m}if(I=p,Kg(u,m))return I;var y=r(m);return o!==void 0&&o(I,y)?(u=m,I):(u=m,p=y)}var l=!1,u,p,h=n===void 0?null:n;return[function(){return c(e())},h===null?void 0:function(){return c(h())}]},[e,n,r,o]);var s=Wg(t,i[0],i[1]);return Jg(function(){a.hasValue=!0,a.value=s},[s]),Xg(s),s};pd.exports=md;var Zg=pd.exports;const ef=Vo(Zg),hd={},{useDebugValue:tf}=E,{useSyncExternalStoreWithSelector:nf}=ef;let Lc=!1;const rf=t=>t;function gd(t,e=rf,n){(hd?"production":void 0)!=="production"&&n&&!Lc&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),Lc=!0);const r=nf(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return tf(r),r}const jc=t=>{(hd?"production":void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const e=typeof t=="function"?ud(t):t,n=(r,o)=>gd(e,r,o);return Object.assign(n,e),n},mt=t=>t?jc(t):jc,of={};function af(t,e){let n;try{n=t()}catch{return}return{getItem:o=>{var i;const a=c=>c===null?null:JSON.parse(c,void 0),s=(i=n.getItem(o))!=null?i:null;return s instanceof Promise?s.then(a):a(s)},setItem:(o,i)=>n.setItem(o,JSON.stringify(i,void 0)),removeItem:o=>n.removeItem(o)}}const _r=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return _r(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return _r(r)(n)}}}},sf=(t,e)=>(n,r,o)=>{let i={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:S=>S,version:0,merge:(S,w)=>({...w,...S}),...e},a=!1;const s=new Set,c=new Set;let l;try{l=i.getStorage()}catch{}if(!l)return t((...S)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...S)},r,o);const u=_r(i.serialize),p=()=>{const S=i.partialize({...r()});let w;const T=u({state:S,version:i.version}).then(D=>l.setItem(i.name,D)).catch(D=>{w=D});if(w)throw w;return T},h=o.setState;o.setState=(S,w)=>{h(S,w),p()};const m=t((...S)=>{n(...S),p()},r,o);let I;const y=()=>{var S;if(!l)return;
10a=!1,s.forEach(T=>T(r()));const w=((S=i.onRehydrateStorage)==null?void 0:S.call(i,r()))||void 0;return _r(l.getItem.bind(l))(i.name).then(T=>{if(T)return i.deserialize(T)}).then(T=>{if(T)if(typeof T.version=="number"&&T.version!==i.version){if(i.migrate)return i.migrate(T.state,T.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return T.state}).then(T=>{var D;return I=i.merge(T,(D=r())!=null?D:m),n(I,!0),p()}).then(()=>{w==null||w(I,void 0),a=!0,c.forEach(T=>T(I))}).catch(T=>{w==null||w(void 0,T)})};return o.persist={setOptions:S=>{i={...i,...S},S.getStorage&&(l=S.getStorage())},clearStorage:()=>{l==null||l.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>y(),hasHydrated:()=>a,onHydrate:S=>(s.add(S),()=>{s.delete(S)}),onFinishHydration:S=>(c.add(S),()=>{c.delete(S)})},y(),I||m},cf=(t,e)=>(n,r,o)=>{let i={storage:af(()=>localStorage),partialize:y=>y,version:0,merge:(y,S)=>({...S,...y}),...e},a=!1;const s=new Set,c=new Set;let l=i.storage;if(!l)return t((...y)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...y)},r,o);const u=()=>{const y=i.partialize({...r()});return l.setItem(i.name,{state:y,version:i.version})},p=o.setState;o.setState=(y,S)=>{p(y,S),u()};const h=t((...y)=>{n(...y),u()},r,o);o.getInitialState=()=>h;let m;const I=()=>{var y,S;if(!l)return;a=!1,s.forEach(T=>{var D;return T((D=r())!=null?D:h)});const w=((S=i.onRehydrateStorage)==null?void 0:S.call(i,(y=r())!=null?y:h))||void 0;return _r(l.getItem.bind(l))(i.name).then(T=>{if(T)if(typeof T.version=="number"&&T.version!==i.version){if(i.migrate)return[!0,i.migrate(T.state,T.version)];console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,T.state];return[!1,void 0]}).then(T=>{var D;const[K,W]=T;if(m=i.merge(W,(D=r())!=null?D:h),n(m,!0),K)return u()}).then(()=>{w==null||w(m,void 0),m=r(),a=!0,c.forEach(T=>T(m))}).catch(T=>{w==null||w(void 0,T)})};return o.persist={setOptions:y=>{i={...i,...y},y.storage&&(l=y.storage)},clearStorage:()=>{l==null||l.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>I(),hasHydrated:()=>a,onHydrate:y=>(s.add(y),()=>{s.delete(y)}),onFinishHydration:y=>(c.add(y),()=>{c.delete(y)})},i.skipHydration||I(),m||h},lf=(t,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?((of?"production":void 0)!=="production"&&console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."),sf(t,e)):cf(t,e),bt=lf,ji={isAuthenticated:!1,tokenProvider:null,isImpersonating:!1,impersonatorEmail:null,avatarUrl:null,isLoading:!1,error:null,isSessionExpired:!1,didSignOut:!1},J=mt()(bt(t=>({...ji,setAuthenticated:e=>t(e?{isAuthenticated:e,error:null,isSessionExpired:!1,didSignOut:!1}:{isAuthenticated:e}),setTokenProvider:e=>t({tokenProvider:e}),setAvatarUrl:e=>t({avatarUrl:e}),setImpersonating:(e,n)=>t({isImpersonating:e,impersonatorEmail:e?n??null:null}),setLoading:e=>t({isLoading:e}),setError:e=>t({error:e,isLoading:!1}),setSessionExpired:e=>t({isSessionExpired:e}),signOut:()=>t({...ji,didSignOut:!0}),reset:()=>t(e=>({...ji,isSessionExpired:e.isSessionExpired}))}),{name:"auth-storage",version:10,migrate:()=>({isAuthenticated:!1,tokenProvider:null,isImpersonating:!1,avatarUrl:null}),partialize:t=>({isAuthenticated:t.isAuthenticated,tokenProvider:t.tokenProvider,isImpersonating:t.isImpersonating,impersonatorEmail:t.impersonatorEmail,avatarUrl:t.avatarUrl})}));function df(){const[t,e]=A.useState(J.persist.hasHydrated());return A.useEffect(()=>J.persist.onFinishHydration(()=>e(!0)),[]),t}function Et(){const t=new Uint8Array(16);crypto.getRandomValues(t);const e=Date.now();t[0]=e/2**40&255,t[1]=e/2**32&255,t[2]=e/2**24&255,t[3]=e/2**16&255,t[4]=e/2**8&255,t[5]=e&255,t[6]=(t[6]??0)&15|112,t[8]=(t[8]??0)&63|128;const n=Array.from(t,r=>r.toString(16).padStart(2,"0"));return n.slice(0,4).join("")+"-"+n.slice(4,6).join("")+"-"+n.slice(6,8).join("")+"-"+n.slice(8,10).join("")+"-"+n.slice(10,16).join("")}let ea=null,ta=!1;function uf(t){ea=t}function $a(){ta||ea&&(ta=!0,ea())}function xa(){ta=!1}
10const pf="br-auth-refresh",mf=1e4;class ao extends Error{constructor(n,r){super(n);rt(this,"kind");this.name="RefreshFailure",this.kind=r}}function Fa(t){return t instanceof ao&&t.kind==="definitive"}const hf=new Set(["invalid_refresh_token","invalid_grant","token_family_revoked","no_session","unauthorized"]),fd=If();async function gf(){const t=jr();let e;try{e=await fetch(`${t}/auth/refresh`,{method:"POST",credentials:"include",signal:AbortSignal.timeout(mf)})}catch{throw new ao("server_unreachable","transient")}if(!e.ok)throw new ao("token_refresh_failed",await ff(e));const n=await e.json().catch(()=>null);if(!(n===null||typeof n!="object")){if("status"in n&&n.status==="no_session")throw new ao("no_session","definitive");return"expires_in"in n&&typeof n.expires_in=="number"?n.expires_in:void 0}}async function ff(t){if(t.status===401)return"definitive";if(t.status>=500)return"transient";const e=await t.json().catch(()=>null),n=e&&typeof e=="object"&&"error"in e?e.error:null;return typeof n=="string"&&hf.has(n)?"definitive":"transient"}function vf(t){return t.kind==="definitive"?"definitive":"transient"}let Qe=null;function yf(){Qe||(Qe=yd(),Qe==null||Qe.addEventListener("message",vd))}function bf(){Qe==null||Qe.removeEventListener("message",vd),Qe==null||Qe.close(),Qe=null}function vd(t){const e=t.data;!e||e.tabId===fd||e.type==="failed"&&vf(e)==="definitive"&&$a()}function Sf(){const t=yd();t==null||t.postMessage({type:"failed",tabId:fd,kind:"definitive"}),t==null||t.close()}function yd(){if(typeof BroadcastChannel>"u")return null;try{return new BroadcastChannel(pf)}catch{return null}}function If(){return Et()}const ue=ud()(()=>({session:J.getState().isAuthenticated?"valid":"signedOut",link:"connecting",epoch:0,expiresAt:null,hasConnectedOnce:!1}));function ut(t=ue.getState()){return t.session==="valid"||t.session==="refreshing"}function _f(){ue.setState(t=>({link:"live",epoch:t.epoch+1,hasConnectedOnce:!0}))}function Cf(t){return ue.subscribe((e,n)=>{e.epoch>n.epoch&&n.epoch>0&&t()})}const bd=6e4,Tf=10*6e4,wf=3e4,kf="br-session-refresh",Af=100,Ha="br-session-expiry";let gn=null,na=0,Wo=!1,za=!1,Wt=null;const Sd=t=>t!==null&&t-Date.now()>bd;function sn({force:t=!1}={}){const{session:e,expiresAt:n}=ue.getState();if(Wo||!t&&(e==="signedOut"||e==="expired")||!t&&e==="valid"&&Sd(n))return Promise.resolve();if(!gn){const r=Ef(t,Date.now());gn=r;const o=()=>{gn===r&&(gn=null)};r.then(o,o)}return gn}async function Ef(t,e){const n=ue.getState().session,r=na,o=()=>r===na;ut()&&ue.setState({session:"refreshing"});try{await Rf(async()=>{if(!o())return;const i=Cd();if(i&&(i.refreshedAt>=e||!t&&Sd(i.expiresAt))){vo(i.expiresAt);return}const a=await gf();if(!o())return;const s=Date.now(),c=s+(a&&a>0?a*1e3:Tf);Td({expiresAt:c,refreshedAt:s}),vo(c)})}catch(i){throw o()&&(Fa(i)?(Wo=!0,_d(),ue.setState({session:"expired",expiresAt:null}),Sf(),$a()):(ue.setState({session:n==="refreshing"?"valid":n}),qa(wf))),i}}function Rf(t){var e;return typeof navigator>"u"||typeof((e=navigator.locks)==null?void 0:e.request)!="function"?new Promise(n=>setTimeout(n,Math.random()*Af)).then(t):navigator.locks.request(kf,t)}function vo(t){ue.setState({session:"valid",expiresAt:t}),qa()}function Id(t){var e;if(Wo=!1,t&&t>0){const n=Date.now(),r=n+t*1e3;Td({expiresAt:r,refreshedAt:n}),vo(r);return}vo(ue.getState().expiresAt??((e=Cd())==null?void 0:e.expiresAt)??null)}function Pf(t){na+=1,Wo=!0,gn=null,_d(),ue.setState({session:t,link:"connecting",expiresAt:null,hasConnectedOnce:!1})}function _d(){localStorage.removeItem(Ha)}function Cd(){try{const t=JSON.parse(localStorage.getItem(Ha)??"null");if(t!==null&&typeof t=="object"&&"expiresAt"in t&&"refreshedAt"in t&&typeof t.expiresAt=="number"&&typeof t.refreshedAt=="number")return{expiresAt:t.expiresAt,refreshedAt:t.refreshedAt}}catch{}return null}function Td(t){localStorage.setItem(Ha,JSON.stringify(t))}function Df(){za=!0,qa()}function Of(){za=!1,Wt!==null&&clearTimeout(Wt),Wt=null}function qa(t){if(!za)return;Wt!==null&&clearTimeout(Wt);const{expiresAt:e}=ue.getState(),n=e===null?0:e-bd-Date.now();Wt=setTimeout(()=>{Wt=null,sn().catch(()=>{})},t??Math.max(0,n))}const Nf=1e3,Mf=1e4,Lf=6e4;function Va(t,e=Mf){const n=Math.min(Nf*2**t,e);return Math.round(n*(.75+Math.random()/2))}const jf=2e4,Uf=1e4,Uc=5e3,$f=1e4,xf=5e3,Ff=15e3,$c=5*6e4,Hf=4205,zf=1e3,wd=1;let Ge=null,Ze=null,pr=null,so=null,yo=null;const ra=new Set;let fn=null,co=-1/0,ar=0,oa=0;function qf({webSocketImpl:t}={}){const e=Rh({url:Vf,webSocketImpl:t,lazyCloseTimeout:xf,keepAlive:jf,retryAttempts:1/0,shouldRetry:()=>ut(),retryWait:async n=>{if(Ad()&&ut()){ue.setState({link:"offline"}),await bo(null);return}await bo(Va(n))},on:{connecting:()=>{ue.getState().hasConnectedOnce&&ue.setState({link:"reconnecting"})},connected:n=>{ia(),Ze=Xf(n)?n:null,_f()},closed:n=>{ia(),Ze=null,aa(),ue.setState({link:Kf(n)})},ping:n=>{n||kd(Uf)},pong:n=>{n&&aa()}}});return Ge=e,e}async function Vf(){for(let t=0;;t+=1){await Bf();const e=await sn().then(()=>!0,()=>!1);if(ut()){if(e||!Gf())return Qf(),qg();await bo(Va(t))}}}function Bf(){return ut()?Promise.resolve():new Promise(t=>{const e=ue.subscribe(n=>{ut(n)&&(e(),t())})})}function Gf(){const{expiresAt:t}=ue.getState();return t!==null&&t<=Date.now()}function Kf(t){return!ut()||Zf(t)===zf?"connecting":Ad()?"offline":"reconnecting"}function Ba(){(Ze==null?void 0:Ze.readyState)===wd&&Ze.close(Hf,"Client Restart")}
10function Wf(){if([...ra].forEach(t=>t()),yo!==null&&Date.now()-yo>Uc){Ge==null||Ge.terminate();return}(Ze==null?void 0:Ze.readyState)===wd&&(Ze.send(JSON.stringify({type:Ph.Ping})),kd(Uc))}function Yf(){if(fn)return fn;const t=oa,n=(async()=>{Date.now()-co>$c&&(ar=0);const r=ar===0?0:Math.min(Ff*2**(ar-1),$c),o=co+r-Date.now();o>0&&await bo(o),t===oa&&(co=Date.now(),ar+=1,await sn({force:!0}).catch(()=>{}),ut()&&Ba())})().finally(()=>{fn===n&&(fn=null)});return fn=n,n}function Ga(t){Pf(t),Jf(),Ge==null||Ge.terminate()}function Jf(){oa+=1,fn=null,co=-1/0,ar=0}J.subscribe((t,e)=>{e.isAuthenticated&&!t.isAuthenticated&&ut()&&Ga("signedOut")});function bo(t){return new Promise(e=>{const n=()=>{r!==void 0&&clearTimeout(r),window.removeEventListener("online",n),ra.delete(n),e()},r=t===null?void 0:setTimeout(n,t);t===null&&window.addEventListener("online",n),ra.add(n)})}function Qf(){ia(),yo=Date.now(),so=setTimeout(()=>Ge==null?void 0:Ge.terminate(),$f)}function ia(){so!==null&&clearTimeout(so),so=null,yo=null}function kd(t){aa();const e=Ze;pr=setTimeout(()=>{pr=null,e!==null&&e===Ze&&(Ge==null||Ge.terminate())},t)}function aa(){pr!==null&&clearTimeout(pr),pr=null}const Ad=()=>typeof navigator<"u"&&!navigator.onLine;function Xf(t){return typeof t=="object"&&t!==null&&"readyState"in t&&typeof t.readyState=="number"&&"send"in t&&typeof t.send=="function"&&"close"in t&&typeof t.close=="function"}function Zf(t){return typeof t=="object"&&t!==null&&"code"in t&&typeof t.code=="number"?t.code:null}const Ed=Symbol("br.unprovenRefusal");function Rd(t){typeof t!="object"||t===null||Object.defineProperty(t,Ed,{value:!0,enumerable:!1,configurable:!0})}function ev(t){return typeof t=="object"&&t!==null&&t[Ed]===!0}function tv(t){return ev(t)?!1:Pd(t)||Ka(t)}function Pd(t){return Jl.is(t)&&t.statusCode===401}function Ka(t){return Mr.is(t)&&t.errors.some(e=>{var n;return((n=e.extensions)==null?void 0:n.code)==="UNAUTHENTICATED"})}const nv={error:"Authentication Error",returnHome:"Return Home",completingSignIn:"Completing sign in...",signOut:"Sign out",signInWithMicrosoft:"Sign in with Microsoft",workspaceAccess:{title:"No workspace access",description:"Signed in as {email}. {reason}"},errors:{session_expired:"Your session has expired. Please sign in again.",user_disabled:"Your account has been deactivated. Contact your administrator.",account_not_found:"No account is linked to this login. Contact your administrator.",unauthorized:"Authentication failed. Please try again.",validation_error:"Invalid authentication request. Please try signing in again.",server_error:"An internal error occurred. Please try again later.",server_unreachable:"Cannot reach the server. Please check your connection and try again."}},rv={home:"Home",solutions:"Our Process",insights:"Insights",stories:"Stories",about:"About",careers:"Careers",contact:"Contact",workspace:"Workspace",changeLanguage:"Change language"},ov={description:"Helping organizations harness the power of AI agents.",quickLinks:"Quick Links",legal:"Legal",privacy:"Privacy Policy",terms:"Terms of Service",rights:"All rights reserved."},iv={pageNotFound:"Oops! Page not found",pageNotFoundTitle:"404 - Page Not Found",pageNotFoundDescription:"The page you are looking for does not exist.",returnHome:"Return to Home",crashTitle:"Something went wrong",crashDescription:"An unexpected error occurred. Please try reloading the page.",crashReload:"Reload Page",generic:"Something went wrong. Please try again.",codes:{UNAUTHENTICATED:"Your session has expired. Please sign in again.",FORBIDDEN:"You don't have permission to do this.",NOT_FOUND:"That item could not be found.",CONFLICT:"This conflicts with the current state. Refresh and try again.",BAD_USER_INPUT:"Some of the information provided is invalid.",INVALID_STATE:"This action isn't allowed in the current state.",INTERNAL:"An internal error occurred. Please try again later."}},av={label:"Contact",title:"Let's Talk",description:"Ready to explore what AI agents can do for your organization? Get in touch.",topicLabel:"Topic",nameLabel:"Name",emailLabel:"Email",messageLabel:"Message",namePlaceholder:"Your name",emailPlaceholder:"[email protected]",messagePlaceholder:"Tell us about your project…",locationLabel:"Location",locationPlaceholder:"Where are you contacting us from?",attachmentLabel:"Attach your CV (PDF, max 500 KB)",required:"Required",submit:"Send message"},sv={accept:"Accept",decline:"Decline",accepted:"Invitation accepted.",declined:"Invitation declined.",answering:"Sending your answer…",actionError:"The action couldn't be completed."},cv={newer:"Show newer versions",older:"Show older versions",implementedOn:"Implemented on {date}"},lv={clear:"Clear"},dv={upload:"Upload an image",replace:"Replace the image",remove:"Remove the image",invalidType:"Unsupported file type. Accepted: {types}.",tooLarge:"File too large. Maximum {max} MB.",uploadFailed:"The upload failed.",deleteFailed:"The image could not be removed."}
10,uv={auth:nv,nav:rv,footer:ov,errors:iv,contact:av,invitations:sv,versionCarousel:cv,datePicker:lv,imageUpload:dv},pv={eyebrow:"Agentic Systems",headline1:"Your Experts,",headline2:"Multiplied",subtext:"AI that handles the grunt work while humans stay in command. Built for your workflows. Deployed on your infrastructure. Honest about what it can't do.",learnMore:"Learn more"},mv={label:"The Reality",title:"What It Actually Takes",paragraph1:"The first challenge isn't technical. It's knowing where to start. Most organizations struggle to identify which problems justify the investment - and that's before the real work begins.",paragraph2:"Then you need to rethink workflows. Train your experts to orchestrate agents instead of doing everything manually. Build systems that integrate with your messy reality - not controlled demos.",highlightTitle:"Start now, pull ahead",highlightText:"Organizations figuring this out today won't be easy to catch tomorrow."},hv={label:"Why Work With Us",title:"We Figure It Out With You",description:"Nobody has all the answers yet. We bring technical depth. You bring domain expertise. Value comes from what we build together. You talk directly to the people who do the work. When we commit, we stay until it works.",primaryButton:"Our Process",secondaryButton:"Get in Touch"},gv={hero:pv,realityCheck:mv,callToAction:hv},fv={heroLabel:"Our Approach",heroTitle:"Test Fast. Learn Fast. Build Right.",heroDescription:"Prototype in weeks. If it works, we scale. If not, you know why. Each step earns the next."},vv={sectionLabel:"How We Work",sectionTitle:"Four Phases. Clear Gates. No Surprises.",sectionDescription:"Each phase answers one question. Each phase is non-committing - neither you nor us are obligated to continue. Each step earns the next.",labels:{whatHappens:"What Happens",yourTeam:"Your Team",deliverables:"Deliverables",whatWeDontDo:"What We Don't Do",billing:"Billing:"},phase0:{name:"Scoping",question:"Are we a good fit to work together?",timeline:"2 weeks, 2-3 meetings max",whatHappens:["First contact, discuss the envisioned use case","We challenge together: Is this the right problem? Is it automatable?","We help specify the use case if needed","Mutual evaluation: Can we work together?"],whoIsInvolved:{client:"Domain experts (essential), decision-maker",br:"Senior architect or flow engineer"},deliverables:["Specified use case","Go/no-go decision","If go: priced proposal for POC"],whatWeDontDo:["3 months of free work to respond to an RFP","50-page specs without talking to domain experts"]},phase1:{name:"POC",fullName:"Proof of Concept",question:"Can this task be done by an agentic system?",timeline:"4-6 weeks total",timelineDetail:"Weeks 1-3: first working prototype. Weeks 4-6: 1-2 iterations based on feedback.",whatHappens:["We build a real prototype (not a script, not a basic chatbot)","Fast deployment for users to test","Users test, break it, give feedback","We iterate directly with them","At the end: users know if it's useful to them"],itIntegration:"If IT integration is required during POC (SSO, VPN access, data connectors…), this is scoped and priced separately as an add-on.",whoIsInvolved:{client:"Domain experts / end users (direct access)",br:"1 flow engineer + 1 architect + coding agents"},deliverables:["Working POC system","Documented user feedback","Analysis: works / doesn't work (and why)","If it works: specs and budget for POV"],decisionGate:{success:"It works → move to POV",failure:"It doesn't work → we document what's missing, revisit when models allow"}},phase2:{name:"POV",fullName:"Proof of Value",question:"Can we reach the performance level needed to create value?",timeline:"1-3 months",whatHappens:["Extend coverage (more cases, more scenarios)","Continuous iterations with users","Performance improvements","Domain-specific benchmarks for model selection (if needed)","API cost optimization (if needed)","Agent architecture refinement"],whoIsInvolved:{client:"Domain experts + IT (for integration/deployment)",br:"1-2 flow engineers + 1 architect + coding agents"},deliverables:["MVP delivering real value","Working system per agreed specs","Technical documentation","Performance metrics"],decisionGate:{success:"System works per specs → delivery accepted → move to industrialization"}},phase3:{name:"Industrialization",question:"How do we make this robust, integrated, and sustainable?",timeline:"Ongoing",whatHappens:["Robustness reinforcement","Deep integration with client systems","Monitoring setup","Knowledge transfer to client teams","Evolutive maintenance (new features, adjustments, model updates)"],whoIsInvolved:{client:"IT (owns integration), business (owns usage)",br:"Team available for support"},deliverables:["Robust production system","Complete documentation","Autonomous client teams","Ongoing support"],billingModel:"POC/POV: fixed price per project. Industrialization: fixed price per feature or time-based with annual commitment."},decisions:{atTheGate:"At the Gate",ongoingRelationship:"Ongoing Relationship",whatHappensNext:"What Happens Next?",phase0:{goodFit:"Good fit, clear use case",goodFitDesc:"We move forward with a priced proposal for POC",doesntFit:"Use case doesn't fit, but we click",doesntFitDesc:"We explore other use cases together — sometimes the best ideas emerge from conversation",rubberStamping:"Rubber stamping risk",rubberStampingDesc:"If a 'decision support' tool would just get blindly validated, we need to rethink the use case entirely",culturalMisfit:"Cultural misfit",culturalMisfitDesc:"Better to know now. We part ways respectfully."},phase1:{itWorks:"It works — users find it useful",itWorksDesc:"We spec out the POV with clear targets and move forward",notYet:"Model limitations — not yet",notYetDesc:"We document what's missing. Can set up a technical watch to revisit when models evolve."},phase2:{targetsMet:"Targets met",targetsMetDesc:"System works per specs — delivery accepted, ready for industrialization",moreEffort:"More effort needed than expected",moreEffortDesc:"We discuss openly. You decide: extend the budget or adjust scope.",capabilityGap:"Model capability gap",capabilityGapDesc:"We pause, set up monitoring for model evolution. Technical watch available."},phase3:{autonomous:"Your teams become autonomous",autonomousDesc:"Knowledge transfer complete. You own the system.",evolution:"Continuous evolution",evolutionDesc:"New features, model updates, scope extensions — we grow with your needs"}},cta:{title:"Ready to start?",description:"A first conversation costs nothing but time. Let's see if we're a good fit.",primary:"Let's Talk About Your Project",secondary:"Explore the Thinking Behind It"}}
10,yv={label:"Use Cases",title:"Choosing Where to Invest Your Effort",description:"Agentic systems excel at specific types of work. Pick the right problems and you see value in weeks. Pick the wrong ones and you waste months chasing impossible goals.",idealFor:{title:"Ideal For",items:[{title:"High-Value Expert Time",description:"Tasks that consume your expensive experts' time - whether regularly or in big chunks."},{title:"Commoditized Knowledge Work",description:"Contract review, financial analysis, compliance checks. Tasks done millions of times. AI learned from those examples."},{title:"Information Gathering, Not Authorizing",description:"The agent does the research. A human reviews it and makes the decision."},{title:"Faster to Verify Than Do",description:"Checking the AI's work takes 20% of the time doing it yourself would take."}]},notIdealFor:{title:"Not Ideal For",items:[{title:"Pioneering, Uncharted Problems",description:"Tasks that haven't been done widely before. If it's not well-represented in existing work, the model has nothing to pattern-match against."},{title:"Irreversible, High-Stakes Decisions",description:"Regulatory approvals, transaction authorizations, legal determinations. Humans must remain accountable."},{title:"Hard to Verify",description:"If checking takes as long as doing it yourself, automation adds no value."}]}},bv={solutions:fv,phases:vv,useCases:yv},Sv={heroLabel:"Insights",heroTitle:"Learn & Explore",heroDescription:"Deep dives into agentic systems, implementation strategies, and industry perspectives.",articles:"Articles",latestArticle:"Latest Article",readMore:"Read article",comingSoon:"Article coming soon",comingSoonDescription:"We're working on new content. Stay tuned.",articleNotFound:"Article not found",backToInsights:"Back to Insights",sections:[{id:"agentic-systems-explained",title:"What Are Agentic Systems?",description:"Multiple specialized agents working together, delegating tasks, and collaborating with humans.",subtitle:"Beyond Single AI: Complete Collaborative Architectures",content:"An agentic system isn't one AI doing everything. It's an architecture where multiple specialized agents work together, delegate to each other, use tools, and collaborate with humans who maintain control.",features:[{title:"Agents Delegate",description:"A research agent can spawn analysis agents for each document, then synthesize their work. Tasks get decomposed and parallelized, not bottlenecked through one system."},{title:"Specialized > General",description:`One agent that "does everything" is mediocre at everything. Ten specialized agents, each expert at one task, orchestrated by a human? That's powerful and verifiable.`},{title:"Humans Stay in Control",description:"The system is designed for collaboration, not autonomy. Agents execute, humans review and decide. Accountability remains clear. Trust gets built through transparency."},{title:"Built for Your Workflows",description:"Agents integrate with your tools, understand your data formats, follow your business rules. The system adapts to how you work, not the other way around."}],quote:"The result: AI that multiplies expert productivity while keeping them in command"},{id:"foundation-models-changed-everything",title:"This Isn't Traditional ML",description:"Foundation models changed the game. Different methods, different use cases, different mindset.",content:"Forget everything you know about traditional machine learning projects. Foundation models require different thinking."},{id:"context-engineering",title:"Context Engineering",description:"The art of giving AI the right information at the right time. The new critical skill.",content:"Context engineering is the discipline of designing what information an AI system receives, when, and in what format."},{id:"rag-reality-check",title:"RAG: Why the Demo Worked and Production Didn't",description:"The gap between retrieval demos and production-grade RAG systems. What actually matters.",content:"Every RAG demo looks impressive. Most RAG deployments disappoint. Here's why."},{id:"build-vs-buy",title:"Build vs. Buy",description:"When to invest in custom solutions and when off-the-shelf tools are the right answer.",content:"The build vs. buy decision in AI is more nuanced than traditional software. Here's how to think about it."},{id:"tradeoff-triangle",title:"The Tradeoff Triangle",description:"Cost, latency, quality. You can optimize for two. Choose wisely.",content:"Every AI system faces the same fundamental tradeoffs. Understanding them is key to making good decisions."},{id:"demo-to-production",title:"Demo to Production (The Rule of Nine)",description:"Why the last 10% of the work takes 90% of the effort. And how to plan for it.",content:"The demo is the easy part. Getting to production is where projects fail."},{id:"hallucinations-grounding",title:"Hallucinations & How to Ground AI",description:"Why AI makes things up and what you can do about it. Practical grounding techniques.",content:"Hallucinations aren't bugs—they're a fundamental property of how LLMs work. Here's how to mitigate them."},{id:"change-management",title:"People First",description:"Tools don't transform organizations. People do. How to bring your team along.",content:"The biggest risk to your AI project isn't technical. It's adoption."},{id:"value-not-roi",title:"Beyond ROI",description:"Steve Jobs in 1983 didn't pitch ROI. He pitched transformation. The same applies to AI today.",content:"Stop trying to calculate ROI for transformational technology. You're measuring the wrong thing."}]},Iv={heroLabel:"Deep Dive",heroTitle:"Understanding Agentic Systems",heroDescription:"A comprehensive look at how multi-agent architectures work and why they matter.",whatAreAgents:{label:"Core Concepts",title:"Beyond Single AI: Complete Collaborative Architectures",description:"An agentic system isn't one AI doing everything. It's an architecture where multiple specialized agents work together, delegate to each other, use tools, and collaborate with humans who maintain control.",features:[{title:"Agents Delegate",description:"A research agent can spawn analysis agents for each document, then synthesize their work. Tasks get decomposed and parallelized, not bottlenecked through one system."},{title:"Specialized > General",description:`One agent that "does everything" is mediocre at everything. Ten specialized agents, each expert at one task, orchestrated by a human? That's powerful and verifiable.`},{title:"Humans Stay in Control",description:"The system is designed for c
10ollaboration, not autonomy. Agents execute, humans review and decide. Accountability remains clear. Trust gets built through transparency."},{title:"Built for Your Workflows",description:"Agents integrate with your tools, understand your data formats, follow your business rules. The system adapts to how you work, not the other way around."}],quote:"The result: AI that multiplies expert productivity while keeping them in command"}},_v={insights:Sv,technical:Iv},Cv={heroLabel:"Blog",heroTitle:"Our Articles",heroDescription:"Insights, tutorials, and stories from our team.",articlesTitle:"Articles",readMore:"Read article",comingSoon:"More articles coming soon...",postNotFound:"Post not found",backToBlog:"Back to Blog",backToAllArticles:"Back to all articles",notAvailableIn:"Not available in",notTranslatedTo:"This article is not yet translated to",viewIn:"View in",translationNotice:{originalIn:"The original version is in",originalSuffix:"",viewOriginal:"View original",originalArticle:"This is the original article"}},Tv={blog:Cv},wv={heroLabel:"Stories",heroTitle:"Stories",heroDescription:"Our insights, contributions, and expertise shared across platforms - from blog posts to podcasts, interviews to industry publications.",languageFilterOnly:"{lang} only",pressCoverageTitle:"Press Coverage",pressCoverageEmpty:"No press coverage available in {lang}.",linkedinPostsTitle:"LinkedIn Posts",linkedinPostsEmpty:"No LinkedIn posts available in {lang}."},kv={news:wv},Av={heroLabel:"About Us",heroTitle:"Bot Resources",heroDescription:"A French engineering company building agentic systems for international clients.",company:{title:"Company"},location:{title:"Location"},founded:{title:"Founded",date:"March 2024"},activity:{title:"Activity",description:"Specialized scientific and technical activities"},story:{title:"Our Story",content:["Late 2023. Consulting gig. 3,000 technical documents. 3-week deadline.","I'd been experimenting with GPT-3.5 since release. So I built a RAG system. It helped, but not enough. Then I tried proper context engineering instead – giving agents exactly what they need to see, not making them search for it.","It worked.",`Three weeks later, I shut it down. Mission complete. Then a phone call: "The system's down, can you fix it? We use it every day."`,"That's when I kne
10w. I found the right partners, convinced them agents were the future, and 9 months later Bot Resources was born.","Best decision of my life.","Three months after founding, we signed our first client contract. We've been building ever since."],signature:"Jean-Xavier Raynaud",signatureRole:"Managing Partner"},team:{title:"The Team",roles:{cofounder:"Co-founder",managingPartner:"Managing Partner",rdDirector:"R&D Director",flowEngineer:"Flow Engineer"}}},Ev={about:Av},Rv={heroLabel:"Careers",heroTitle:"Join Our Team",heroDescription:"Help us build the future of AI-augmented work.",viewDetails:"View details",backToCareer:"Back to Careers",applyNow:"Apply Now",downloadPdf:"Download PDF",spontaneous:{title:"Spontaneous Application",description:"Don't see a position that fits? Send us your CV anyway.",cta:"Send your CV"},sections:{employees:{title:"Employees",description:"Join us as a permanent team member.",empty:"No employee positions currently open."},contractors:{title:"Freelancers",description:"Work with us on specific projects or missions as an independent consultant.",empty:"No freelance missions currently open."},internships:{title:"Internships",description:"We only offer end-of-study internships (Master's level or equivalent). We do not accept apprenticeships or alternating contracts.",empty:"No internships currently open."}},closed:"Closed",jobDetail:{ctaTitle:"Ready to join the team?",ctaDescription:"Send your CV or LinkedIn profile. Tell us about your experience and what motivates you to work with us!"},jobMeta:{location:"Location",contract:"Contract",salary:"Salary",stack:"Tech stack",type:"Type",fullTime:"Full-time"}},Pv={careers:Rv},Dv={info:{title:"Get in Touch"},email:"Email",address:"Address",applyingFor:"Applying for:",clearJobReference:"Clear the job you're applying for",attachmentRemove:"Remove the attached file",fileSizeKb:"{size, number} KB",topic:{placeholder:"What would you like to discuss?",options:{project:"Discuss a project",jobOffer:"Respond to a job offer",partnership:"Partnership opportunity",other:"Other"}},hints:{emailLooksIncomplete:"This address looks incomplete — double-check it before sending."},errors:{fieldRequired:"This field is required",invalidEmail:"Please enter a valid email address",invalidName:"Please enter a valid name",invalidMessage:"Please enter a valid message",invalidLocation:"Please enter a valid location (120 characters max)",invalidJobReference:"That job reference is invalid, so your message wasn't sent. Remove it (the ✕ next to “Applying for:”) and send again.",attachmentTooLarge:"That file is too large (500 KB max).",attachmentInvalidType:"Only PDF files are accepted.",invalidAttachmentFilename:"That file name isn't allowed. Please rename the file and try again.",attachmentReadFailed:"We couldn't read that file. Please pick it again.",network:"We couldn't reach the server. Please try again.",unexpected:"Something went wrong. Please try again."},sent:{title:"Message sent",body:"We've received your message and it's on its way to the right person.",nextSteps:"We'll get back to you as soon as we can. Nothing else is needed from you in the meantime.",referenceLabel:"Your reference",sendAnother:"Send another message"},failed:{title:"Your message wasn't sent",draftNote:"Your draft has been kept — you can try again.",retry:"Try sending again"},sending:"Sending…",messageCounter:"{count, number} / {max, number} characters"},Ov={contactPage:Dv},Nv={title:"Legal Notice",company:{title:"Website Publisher"},address:{title:"Registered Office"},directors:{title:"Directors"},contact:{title:"Contact"},hosting:{title:"Hosting"},ip:{title:"Intellectual Property",content:"All content on this site (text, images, logos, etc.) is protected by copyright. Any reproduction, even partial, is prohibited without prior authorization."},activity:{title:"Activity",content:"Specialized scientific and technical activities (NAF Code: 74.90B)"}},Mv={legal:Nv},Lv={title:"Privacy Policy",controller:{title:"Data Controller"},collected:{title:"Data Collected",content:"We only collect data that you voluntarily provide via our contact form: name, email address, and message content."},purpose:{title:"Purpose",content:"Your data is used only to respond to your contact requests and provide information about our services."},legalBasis:{title:"Legal Basis",content:"Processing is based on your consent (Article 6.1.a GDPR) and our legitimate interest in responding to business inquiries (Article 6.1.f GDPR)."},retention:{title:"Retention Period",content:"Your data is retained for a maximum of 3 years from our last contact."},rights:{title:"Your Rights",intro:"Under GDPR, you have the following rights:",access:"Right of access to your data",rectification:"Right to re
10ctification",erasure:"Right to erasure",portability:"Right to data portability",opposition:"Right to object",limitation:"Right to restrict processing",contact:"To exercise these rights, contact us at: [email protected]"},cookies:{title:"Cookies",content:"This site does not use tracking or advertising cookies. Only essential technical cookies may be used for site functionality."},cnil:{title:"Complaints",content:"You may file a complaint with your local data protection authority."},lastUpdate:"Last updated: December 2024"},jv={privacy:Lv},Uv={nav:{title:"Administration",users:"Users",groups:"Groups",backToSite:"Back to site"},users:{title:"Users",searchPlaceholder:"Search users...",createUser:"Create user",name:"Name",email:"Email",role:"Role",status:"Status",createdAt:"Created",actions:"Actions",active:"Active",deactivated:"Deactivated",deactivate:"Deactivate",reactivate:"Reactivate",promote:"Promote to admin",demote:"Remove admin",capabilities:"Capabilities",grantCapability:"Grant capability",revokeCapability:"Revoke",noUsers:"No users found.",notFound:"User not found.",detail:{title:"User details",backToList:"Back to users"}},groups:{title:"Groups",searchPlaceholder:"Search groups...",createGroup:"Create group",name:"Name",members:"Members",createdAt:"Created",actions:"Actions",delete:"Delete",addMember:"Add member",removeMember:"Remove",email:"Email",role:"Role",noGroups:"No groups found.",notFound:"Group not found.",noMembers:"No members yet.",namePlaceholder:"Group name",nameLabel:"Group name",untitled:"Untitled group",detail:{title:"Group details",backToList:"Back to groups",membersList:"Members"}},groupMembers:{heading:"Members ({count})",pickUser:"Select a user…",searchUsers:"Search users…",noUsers:"No users found.",add:"Add",empty:"No members in this group.",userColumn:"User",actionColumn:"Action",remove:"Remove member"},permissions:{title:"Permissions",scopes:"Scopes",roles:"Roles",effective:"Effective scopes",effectiveHint:"The scopes this user effectively holds — direct grants and roles, intersected with the organization's entitlements.",effectiveEmpty:"No effective scopes.",scopesEmpty:"No scopes granted.",rolesEmpty:"No roles granted.",scopePlaceholder:"Select a scope…",searchScopes:"Search scopes…",noScopes:"No scopes available.",rolePlaceholder:"Add a role…",grant:"Grant",revoke:"Revoke",removeScope:"Revoke scope",removeRole:"Revoke role",actionError:"Something went wrong. Please try again."},entitlements:{title:"Entitlements",description:"The scopes this organization is licensed to grant its members.",granted:"Granted entitlements",empty:"No entitlements granted.",addPlaceholder:"Select a scope…",searchPlaceholder:"Search scopes…",noScopes:"No scopes available.",add:"Grant",remove:"Revoke entitlement"},guests:{assign:"Assign to organization",pickOrg:"Select an organization…",pickOrgFirst:"Choose an organization first.",searchOrgs:"Search organizations…",noOrgs:"No organizations found.",confirm:"Invite",assigned:"User assigned to the organization.",invite:"Invite to organization",inviteHint:"Sends an invitation the person must accept — they aren't added until they do.",invited:"Invitation sent."},domainClaims:{title:"Pending domain claims",description:"Domains awaiting verification for an organization.",empty:"No pending domain claims.",domainColumn:"Domain",orgColumn:"Organization",requestedColumn:"Requested",actionsColumn:"Actions",approve:"Approve",reject:"Reject",approved:"Domain claim approved.",rejected:"Domain claim rejected.",primary:"Primary",forbidden:"You don't have access to this area.",requesterColumn:"Requested by",unknownRequester:"Unknown"},roles:{superadmin:"Super Admin",admin:"Admin",guest:"Guest",user:"User"},forbidden:{title:"Access denied",message:"You do not have permission to access the administration panel."},events:{loadMore:"Load older events",loading:"Loading activity…",noEvents:"No activity yet.",streamInterrupted:"The live feed stopped — newer activity may be missing.",streamResume:"Reconnect",systemActor:"System",platformActor:"Bot Resources",layout:{label:"Timeline layout",column:"Column view",frieze:"Frieze view"},OrgCreated:"Organization created",OrgRenamed:"Organization renamed to {new_name}",OrgAbbreviationChanged:"Abbreviation changed to {abbreviation}",OrgWebsiteUrlChanged:"Website updated to {url}",OrgLogoChanged:"Logo updated",OrgPublished:"Organization published",OrgActivated:"Organization activated",OrgSuspended:"Organization suspended",OrgReactivated:"Organization reactivated",OrgArchived:"Organization archived",OrgDearchived:"Organization restored from archive",OrgDeleted:"Organization deleted",MemberJoined:"A member joined the organization",MemberDeactivated:"A member was deactivated",MemberReactivated:"A member was reactivated",AdminPromoted:"A member was promoted to administrator",AdminDemoted:"An administrator was demoted",EntitlementGranted:"Entitlement {scope} granted",EntitlementRevoked:"Entitlement {scope} revoked",DomainClaimRequested:"Domain claim requested for {domain}",DomainClaimApproved:"Domain claim approved",DomainClaimRejected:"Domain claim rejected",OrganizationDomainAdded:"Domain {domain} added",OrganizationDomainRemoved:"Domain removed",OrganizationDomainDemoted:"Primary domain unset",ScopeGranted:"Scope {scope} granted",ScopeRevoked:"Scope {scope} revoked",OrgScopeRevokedByPlatform:"Scope {scope} revoked across the organization by the platform",RoleGranted:"Role {role} granted",RoleRevoked:"Role {role} revoked",GroupCreated:"Group {name} created",GroupDeleted:"Group deleted",GroupRenamed:"Group renamed to {new_name}",GroupMemberAdded:"A member was added to a group",GroupMemberRemoved:"A member was removed from a group",GroupScopeGranted:"Scope {scope} granted to a group",GroupScopeRevoked:"Scope {scope} revoked from a group",GroupRoleGranted:"Role {role} granted to a group",GroupRoleRevoked:"Role {role} revoked from a group"}},$v={reasons:{not_platform_member:"Only Bot Resources platform members can do this.",not_platform_admin:"Only a platform administrator can erase a contact's personal data.",already_read:"This contact is already read.",already_unread:"This contact is already unread.",already_archived:"This contact is already archived.",not_archived:"This contact isn't archived.",already_erased:"This contact's personal data has already been erased.",insufficient_permissions:"You don't have permission to perform this action.",archived_org_read_only:"This organization is archived and read-only.",suspended_org_blocked:"This organization is suspended, so this action is blocked.",platform_only_operation:"This operation is restricted to platform administrators.",invalid_status_transition:"This status change isn't allowed from the current state.",platform_org_immutable:"The platform organization can't be modified.",only_draft_can_be_deleted:"Only draft organizations can be deleted.",only_draft_can_be_published:"Only draft organizations can be published.",org_requires_admin:"Add an administrator to this organization before publishing it.",user_already_disabled:"This user is already disabled.",user_not_disabled:"This user isn't disabled.",no_active_membership:"No active organization membership.",membership_deactivated:"This organization membership has been deactivated.",membership_pending_approval:"This organization membership is waiting for an administrator's approval.",invitation_pending:"An invitation to join an organization is waiting for your answer.",no_person_linked:"This account has no person record linked, so profile details can't be edited.",not_a_member:"This user isn't a member of this organization.",member_not_deactivated:"This member isn't deactivated.",already_admin:"This user is already an administrator.",not_admin:"This user isn't an administrator.",cannot_self_promote:"You can't promote yourself.",last_admin:"You can't remove the last admin.",system_group_cannot_be_deleted:"System groups can't be deleted.",system_group_cannot_be_renamed:"System groups can't be renamed.",n
10ot_pat_owner:"You can only manage your own access tokens.",pat_already_revoked:"This access token has already been revoked.",cannot_impersonate_self:"You can't impersonate yourself.",already_impersonating:"You're already impersonating a user.",must_be_admin_to_impersonate:"You must be an administrator to impersonate a user.",target_not_in_actor_org:"This user isn't a member of your organization.",cannot_impersonate_admin:"You can't impersonate another administrator.",generic_blocked:"This action isn't available right now.",service_implemented_undeletable:"This service has an implemented version and can't be deleted. Only a draft service — one with no implemented version — can be deleted.",not_available_in_state:"Not available in the object's current state.",previous_version_unimplemented:"The previous version must be implemented before creating the next one.",patch_already_implemented:"This patch is already implemented; tests are declared before implementation.",not_latest_patch:"Only the latest patch of a minor version can be marked converged.",already_converged:"This patch has already converged.",breach_fixed_immutable:"This breach is marked fixed — its details can no longer be changed.",convergence_contract_breaches:"{contractBreachCount, plural, one {# relevant contract breach is still open on this major version — fix it or mark it irrelevant before converging.} other {# relevant contract breaches are still open on this major version — fix or mark them irrelevant before converging.}}",convergence_observation_period:"The 72-hour observation window is still running; the patch can be marked converged once it ends.",previous_patch_not_implemented:"The current patch must be implemented before cutting a new one.",minor_not_sealed:"This minor version isn't sealed yet.",minor_sealed:"This minor version is sealed — corrections only.",already_sealed:"This version is already sealed.",seal_requirements_unmet:"Both intent documents must be written before sealing.",minor_unchanged_since_parent:"Nothing changed since the parent minor — a new minor needs a new intent.",major_already_started:"This major version has started; only a never-started major can be deleted.",pending_intent_change:"An intent change is still pending on this major version.",not_a_twin:"This service isn't a twin.",patch_not_sealed:"This patch isn't sealed yet.",patch_not_implemented:"The patch must be implemented first.",patch_already_draft:"This patch is already a draft — there's nothing to unseal.",patch_zero_seal_structural:"Patch 0 carries its minor version's own seal and can't be returned to draft — the way back from it is a new minor version.",discussions_human_only:"Discussions are human-only — service accounts cannot take part.",discussion_not_open:"This discu
10ssion is resolved.",discussion_already_open:"This discussion is already open.",not_comment_author:"Only the comment's author can edit it.",requires_discussion_admin:"Reserved for the discussion's creator or a target administrator.",requires_participant:"You are not a participant in this discussion.",target_not_visible:"This user cannot see the discussion's target.",requires_architect_role:"This requires an active platform architect role on this project.",not_college_member:"Only members of the college can perform this action.",not_super_admin:"Only a super administrator can perform this action.",not_author:"Only the proposal's author can perform this action.",proposal_not_pending:"Voting is closed — this proposal is no longer pending.",proposal_closed:"This proposal is closed; no new comments can be added.",proposal_already_pending:"You already have a pending proposal on this object.",already_holds_position:"You already hold this position on the current revision.",requires_access:"You don't have access to the projects registry.",requires_manage:"You need the manage permission to change a project.",requires_org_membership:"You must be a member of an organization linked to this project.",service_account_forbidden:"Service accounts can't perform this action — sign in as a person.",summary_required:"Add a short summary before publishing.",platform_delivery_required:"Assign at least one platform delivery role (architect or engineer) before publishing.",platform_architect_required:"Assign a platform member as Architect before publishing.",platform_engineer_required:"Assign a platform member as Full-stack or Agent engineer before publishing.",staffing_incomplete:"Assign the required platform delivery roles (Architect, plus a Full-stack or Agent engineer) before publishing.",client_link_required:"A client project needs an active organization link before publishing.",client_sponsor_required:"A client project needs an external sponsor or stakeholder before publishing.",link_targets_inactive_org:"An organization link targets an org that is no longer active — end it or link an active org.",already_published:"This project is already published.",user_not_found:"This person isn't an active member of any organization, so they can't be assigned.",assignee_not_in_linked_org:"This person isn't in any organization linked to the project.",assignment_exceeds_link_period:"The assignment period runs past its covering organization link.",role_period_overlap:"This person already holds that role over an overlapping period.",assignment_not_found:"This assignment no longer exists.",annul_reason_required:"Give a reason before annulling this assignment.",annul_reason_too_long:"The annulment reason must be at most 500 characters.",active_link_exists:"This organization is already actively linked to the project.",org_not_found:"That organization isn't known to the registry.",org_suspended:"That organization is suspended and can't be linked right now — try again once it's reactivated.",org_archived:"That organization is archived and can't be linked.",platform_org_not_linkable:"The platform organization can't be a project link.",link_has_dependent_assignments:"End the assignments riding this link before ending it.",retype_requires_target_staffing:"Meet the target type's staffing before changing the type.",only_drafts_deletable:"Only a draft can be deleted; publishing is permanent.",project_not_published:"Publish the project before changing its work status.",invalid_period:"The end date can't be before the start date.",invalid_repo_ref:"A repository must be in the form org/name.",invalid_name:"A name is required, and this one is either empty or too long.",invalid_description:"The description is invalid.",verification_environment_not_set:"This project has no verification environment to clear.",no_open_draft:"The current version is sealed — open a new version to edit the working set.",requires_manage_services_scope:"This requires the services management scope.",requires_dev_or_architect_role:"This requires the dev or architect role on this service's project.",domain_claim_not_pending:"This claim has already been decided.",auto_link_requires_approved_domain:"Add and get at least one domain approved before choosing this policy.",already_has_active_membership:"This person already belongs to an organization.",invitation_already_pending:"This person already has a pending invitation.",n
10o_pending_invitation:"There's no pending invitation to act on.",not_a_membership_candidate:"This person is no longer in the candidate queue.",target_user_disabled:"This person's account is disabled.",out_of_read_context:"This action needs an organization to act in, and this view names none.",service_account_has_no_scopes:"Grant at least one scope before minting a key.",service_account_has_no_description:"There is no description to clear.",service_account_key_already_revoked:"This key is already revoked.",last_child:"This is the only one of its parent — deleting it would leave the parent with no version at all.",has_implemented_child:"A patch under this version is already implemented.",image_recorded:"A container image is recorded against this version.",referenced_by_breach:"A contract breach points at this version.",referenced_by_discussion:"A contract discussion targets this version.",has_declared_offers:"This version still declares offers — delete them first.",has_declared_consumptions:"This version still declares consumptions — delete them first.",has_declared_tests:"This version still declares e2e tests — delete them first.",test_covers_breach:"An e2e test declared here covers a contract breach.",test_required_by_consumption:"An e2e test declared here is a consumption’s inbox drift test.",test_proves_multi_pod:"An e2e test declared here is what proves multi-pod support.",pinned_by_twin_window:"A twin service pins its compatibility window to this version.",still_referenced:"Something still references this — remove the reference first.",unknown_reference:"One of the referenced records doesn’t exist.",not_found:"This record doesn’t exist, or you can’t see it.",not_own_week:"This week belongs to someone else.",not_own_profile:"You can only change your own timesheet settings.",not_assigned_manager:"You are not the assigned manager for this person.",requires_super_admin:"Only a platform super admin can do this.",week_locked:"This week is locked: it has been submitted or already decided.",week_not_over:"The week is not over yet. It can be submitted once it ends.",week_not_submitted:"This week has not been submitted, so there is nothing to decide.",week_not_validated:"Only a validated week can be reopened.",below_weekly_minimum:"This week covers {covered_hours} h of the {required_hours} h minimum.",day_already_tagged:"This day already carries an absence.",day_is_full_day_absence:"This day is a full-day absence, so no hours can be logged.",day_carries_hours:"This day already carries hours. Remove them before marking a full-day absence.",absence_not_found:"This day carries no absence to remove.",day_already_filled:"This day is already marked as done.",day_not_filled:"This day is not marked as done.",logging_task_off:"Turn the logging reminder on in your settings to mark a day as done.",entry_not_placed:"This entry sits nowhere on the clock, so there is no placement to remove.",project_not_loggable:"This project is not open for logging.",invalid_hours:"Hours must be positive and in half-hour steps.",invalid_placement:"A placement runs from a start to a later end, both on the half hour and inside the same day.",placement_incomplete:"A placement needs both a start and an end, or neither.",hours_do_not_match_placement:"The hours don’t match the placement: a placed entry’s hours are its span.",orientation_on_full_day:"A full-day absence covers both halves, so it has no half to sit on.",span_too_long:"A range covers at most {max_days} days. Split it in two.",invalid_span:"The last day of the range cannot come before the first.",invalid_detail:"Say what the hours went into: state the kind of work.",invalid_subject:"A subject is a single line of at most 120 characters.",entry_target_not_one:"An entry names either a project or a subject, exactly one of the two.",invalid_logging_task_setting:"Pick at least one weekly moment before turning the logging reminder on.",assignment_already_exists:"This person is already assigned to that manager.",invalid_reason:"A reason is required, and this one is either empty or too long.",invalid_timezone:"That is not a valid IANA timezone.",invalid_week:"Those week coordinates are not valid.",invalid_work_format:"That work format is not val
10id. Check the weekly minimum and maximum.",id_already_used:"This identifier has already been used.",week_not_found:"This week doesn’t exist, or you can’t see it.",entry_not_found:"This entry no longer exists.",project_not_found:"This project doesn’t exist, or you can’t see it.",member_not_found:"This person doesn’t exist, or you can’t see them.",scaffold_already_completed:"The scaffold of this service has already been recorded. It is recorded once and never reset.",implemented_patch_procedural_only:"This patch is implemented, so its technical documents are the attestation of what shipped — only a procedurally generated one can be recorded from now on.",no_implementable_version:"This major has no sealed, not-yet-implemented version left to build.",claim_already_yours:"You are already holding this task.",no_eligible_actor:"Nobody currently matches this task's rules, so no one can take it — an administrator has to change the rule or the staffing.",not_eligible:"This task's rules do not include you, so it is not yours to act on.",executor_kind_not_admitted:"This task is not open to human executors.",task_not_claimable:"This task is no longer open.",task_already_claimed:"Someone claimed this task just before you.",no_active_claim:"Nobody is holding this task right now.",not_claim_holder:"Only the person holding this task can do that.",claim_already_expired:"This lease has already run out — claim the task again to carry on.",task_completed:"This task is already done.",task_cancelled:"This task was cancelled.",task_lapsed:"This task has lapsed.",definition_already_retired:"This badge has already been retired.",achievement_name_taken:"Another badge already carries that name.",achievement_definition_not_found:"This badge no longer exists.",invalid_achievement_name:"That name cannot be used for a badge.",invalid_achievement_description:"That description cannot be used for a badge.",invalid_achievement_icon:"That icon cannot be used for a badge.",invalid_achievement_tiers:"The scale is not valid: thresholds must be counts and must strictly ascend.",invalid_achievement_trigger:"The rule is incomplete for the mechanism it uses.",definition_id_is_not_uuid_v7:"The badge could not be created (invalid identifier).",id_reuse:"That identifier has already been used.",job_already_terminal:"This job is already over.",job_not_terminal:"This job is still running.",job_deleted:"This job has been deleted.",job_already_deleted:"This job is already deleted.",job_not_failed:"Only a failed job can be retried.",job_not_in_progress:"This job is not running.",not_owner:"Only the producing service can act on this job.",successor_still_active:"The retry of this job is still running.",manual_retry_already_started:"A manual retry has already been started.",manual_retry_conflict:"Somebody else just retried this job.",stale_failed_resolution:"This job has failed again since this screen was read.",job_still_active:"A job still running cannot be deleted.",runner_type_unavailable:"No runner of this type is available.",retry_budget_exhausted:"This job has used up its attempts.",retry_not_scheduled:"No retry is scheduled for this job.",retry_not_due:"The scheduled retry is not due yet.",requires_platform_admin:"Only a platform administrator can change the stack referential.",language_referenced:"A framework, a transpile target or a major still names this language. Detach it there first.",framework_referenced:"A major still declares this framework. Detach it there first.",functional_spec_grammar_invalid:"The functional spec doesn't follow the section grammar: {rule, select, h1_forbidden {section headings must be H2, and “{heading}” is an H1} unknown_section {“{section}” isn't one of the allowed sections} missing_section {the required “{section}” section is absent} other {a section heading is not allowed here}}.",patch_reason_or_should_fix_required:"A patch needs a reason, or at least one breach it commits to fix, before it can be sealed.",priority_conflict:"Another rule of this block already holds that rank. Pick a free one.",invalid_argument:"One of the values sent is not acceptable.",link_leaves_assignment_uncovered:"Shortening or removing this link would leave an assignment without coverage — correct or annul those assignments first.",scope_withdrawn:"This scope is withdrawn from declaration: it accepts no new grant.",scope_audience_excludes_users:"This scope is reserved for service accounts.",scope_audience_excludes_service_accounts:"This scope is reserved for users.",scope_restricted_to_platform:"This scope may only be held inside the platform organization.",scope_narrowing_conflicts:"{conflicting_holders, plural, one {# holder} other {# holders}} would lose this scope. Clear them first.",scope_governance_unchanged:"This scope is already governed that way.",scope_already_manually_withdrawn:"An admin has already withdrawn this scope.",scope_not_manually_withdrawn:"This scope is no longer declared by its service; it will come back if the service declares it again.",scope_not_stale:"This scope is still declared (or was withdrawn less than 15 days ago). This action opens 15 days after its declaration ends.",scope_still_declared:"Its owning service still declares it. Lift the withdrawal and stop the declaration first.",scope_still_held:"Can't delete: organizations or service accounts still use this scope. Revoke it everywhere first.",scope_has_no_holders_to_revoke:"Nothing would be removed.",organization_unknown:"UX has no record of this organization yet, so nothing can be created under it.",organization_archived:"This organization is archived, so nothing can be published under it.",persona_archived:"This persona is archived, which is final: it accepts no edit, no transition and no deletion.",persona_is_draft:"A draft is not archived — it is deleted.",persona_not_draft:"This persona is no longer a draft.",persona_not_published:"This persona is not published.",persona_not_revoked:"This persona is not revoked.",persona_not_found:"This persona no longer exists.",persona_name_taken:"Another persona of this organization already carries that name.",invalid_short_description:"A short description is required, and this one is either empty or too long.",forbidden:"You don't have the rights for this here.",already_client:"Already a client — its commitment is on record. Correct it or annul it instead.",not_a_client:"Still a prospect — there is no commitment to change yet.",name_required:"A name is required.",interaction_title_required:"A title is required.",domain_too_long:"Keep the domain under 500 characters.",note_too_long:"Keep the note under 500 characters.",reason_required:"Say why the commitment is annulled.",reason_too_long:"Keep the reason under 500 characters.",uuid_v7_required:"The identifier sent was not accepted. Reload the page and try again.",account_id_reused:"This account already exists with different c
10ontent.",contact_id_reused:"This contact already exists with different details.",interaction_id_reused:"This interaction was already recorded with different content.",contact_not_found:"This contact isn't on this account any more.",interaction_not_found:"This interaction isn't on this account any more.",interaction_time_range_invalid:"The end can't be before the start.",participant_not_on_account:"Every participant must be a contact of this account.",link_not_https:"Links must be full https:// addresses.",manager_not_platform_user:"That person isn't an active platform user.",org_not_linkable:"That organization is suspended or archived — it can't be linked now.",org_already_linked:"That organization is already linked to this account.",org_link_not_found:"That organization isn't linked to this account any more.",account_already_archived:"This account is already archived.",account_not_archived:"This account isn't archived."}},xv={admin:Uv,affordances:$v},Fv={shell:{snapshotStalled:"Could not load — the server did not answer.",retry:"Retry"},documentTitle:"Workspace",activityBar:{pendingCount:"{count} awaiting your vote",badge:{website:"{count} unread",tasks:"{count, plural, one {# task to claim} other {# tasks to claim}}"}},bc:{settings:"Settings",website:"Website",design:"Design",projects:"Projects",services:"Services",charter:"Governance",tasks:"Tasks",jobs:"Jobs",timesheet:"Timesheets",accounts:"Accounts",engagementnotes:"Engagement notes",ux:"UX"},common:{verdictPending:"Waiting for the domain's verdict…",dataGrid:{sortBy:"Sort by {column}",moveColumn:"Move {column}",filterBy:"Filter {column}",filterPlaceholder:"Filter…",filterAll:"All",clearFilters:"Clear filters",columns:"Columns",resetView:"Reset view",rowsPerPage:"Rows per page",rowCount:"{count, plural, one {# row} other {# rows}}",pageOf:"Page {page} of {pages}",firstPage:"First page",previousPage:"Previous page",nextPage:"Next page",lastPage:"Last page"}},tabs:{noOpenTabs:"No open tabs",openFromSidebar:"Open a page from the sidebar to get started.",closeAllTooltip:"Close all tabs",closeMenu:"Close tabs",scrollLeft:"Scroll tabs left",scrollRight:"Scroll tabs right",notDeployedTitle:"Not available in this environment",notDeployed:"This module is not deployed here yet. The tab stays open so you can close it, or find it again where the module runs."},appearance:{accent:"Accent colour",palettes:{blue:"Blue",pink:"Pink",yellow:"Yellow"}},header:{backToSite:"Back to site",signOut:"Sign out"},forbidden:{title:"Access denied",message:"You do not have permission to access the workspace.",signedInAs:"Signed in as",goHome:"Return to Home",contactUs:"Contact us",helpText:"If you should have access, ask an administrator of your organization to grant it, or contact us."},sessionExpired:{title:"Session expired",message:"Your session ended and could not be renewed. Sign in again to return to your workspace.",signIn:"Sign in again",contactUs:"Contact us"},connection:{connecting:"Connecting to Bot Resources…",reconnecting:"Reconnecting…",reconnectingHint:"Reconnecting — your connection to Bot Resources dropped, so the workspace may be out of date.",offlineHint:"Offline — your browser has no network, so the workspace may be out of date.",reconnectNow:"Reconnect now"},impersonation:{viewingAs:"Viewing as {email} ({role})",viewingAsWithActor:"You ({actor}) are viewing as {email} ({role})",roleAdmin:"admin",roleUser:"user",stop:"Stop impersonating",returned:"Returned to your account",stopError:"Couldn't stop impersonating. Try again."},tabMenu:{close:"Close",closeOthers:"Close Others",closeToRight:"Close to the Right",closeAll:"Close All",splitRight:"Split Right",moveToPrevious:"Move to Previous Group",moveToNext:"Move to Next Group"},content:{notTranslated:"Not yet translated for this version",editor:{primary:"Primary",makePrimary:"Make primary",counter:"{count} / {max}",textareaLabel:"Description"}},backToTop:"Back to top",address:{organization:"Organization",user:"User",group:"Group",serviceAccount:"Service account",contact:"Contact",project:"Project",service:"Service",proposal:"Proposal",tenet:"Tenet",draft:"Draft",task:"Task",job:"Job",account:"Account"}},Hv={workspace:Fv},zv={accounts:{nav:{desk:"Your desk"}}},qv={workspace:zv},Vv={charter:{college:"College",nav:{charter:"Charter",deliberations:"Deliberations"}}},Bv={workspace:Vv},Gv={design:{sectionProjects:"Projects",sectionSharedServices:"Shared services",searchPlaceholder:"Search projects & services",servicesLoading:"Loading services…",servicesEmpty:"No shared services",servicesError:"Couldn't load services",projectsLoading:"Loading projects…",projectsEmpty:"No project",projectServicesFolder:"Services",projectNoServices:"No service",projectServicesPublishGate:"Opens at publish",newProjectTooltip:"New project",newSharedServiceTooltip:"New shared service",createSharedService:"Create shared service",filterTooltip:"Filter projects",filterByStatus:"Work status",filterActive:"Filters active",pinItem:"Pin {name}",unpinItem:"Unpin {name}",serviceState:{deprecated:"Deprecated",retired:"Retired"},majorView:{major:"Major {major}",drafting:"Major {major}: drafting a new intent",breaches:"Major {major}: {count, plural, one {# open contract breach} other {# open contract breaches}}",sealed:"Major {major}
10: sealed, awaiting implementation",implemented:"Major {major}: implemented, awaiting convergence",converged:"Major {major}: converged at {label}",convergedNoLabel:"Major {major}: converged",missingStream:"Major {major}: an offer of the latest minor declares no stream"},classification:{word:{CORE:"Core",SUPPORTING:"Supporting",GENERIC:"Generic"},overrideTooltip:"{base}, overridden to {effective} in this project"}}},Kv={workspace:Gv},Wv={engagementnotes:{allNotes:"All notes"}},Yv={workspace:Wv},Jv={settings:{sectionPreferences:"Preferences",sectionAdministration:"Administration",profile:"Profile",accessTokens:"PAT",users:"Users",groups:"Groups",organizations:"Organizations",details:"Details",searchOrgs:"Search organizations...",guests:"Guests",domainClaims:"Domain claims",myOrganization:"My Organization",members:"Members",services:"Services",serviceAccounts:"Service accounts",scopes:"Scope registry",platformUserPicker:{placeholder:"Search platform users…",empty:"No matching users.",loading:"Loading users…",queryError:"Could not load users. Try again.",noOrg:"Your platform organization is unavailable. Reload and try again."}},admin:{common:{cancel:"Cancel",confirm:"Confirm",discard:"Discard",actions:"Actions",columns:"Columns",never:"Never",yes:"Yes",no:"No",loading:"Loading…",organization:"Organization",retry:"Retry",actionsError:"Couldn't load available actions.",selectCountry:"Select country…",searchCountry:"Search country…",noCountryFound:"No country found."},sync:{unsaved:"Unsaved",saving:"Saving…",saved:"Saved",error:"Error",errorWith:"Error: {message}"},users:{title:"Users",guests:"Guests",searchPlaceholder:"Search users…",new:"New user",columns:{user:"User",role:"Role",groups:"Groups",status:"Status",lastLogin:"Last login",created:"Created"},roleAdmin:"Admin",roleUser:"User",statusActive:"Active",statusDeactivated:"Deactivated",empty:"No users found.",notFound:"User not found.",promote:"Promote to admin",demote:"Remove admin",deactivate:"Deactivate",reactivate:"Reactivate",promoted:"User promoted to admin.",demoted:"Admin role removed.",roleChangeError:"Couldn't change the admin role.",actionError:"That action couldn't be completed.",email:"Email",admin:"Admin",organizationLoading:"Loading…",noOrganization:"No organization (guest)",createHint:"Enter an email above to create the user. Saves automatically.",deactivatedAt:"Deactivated",personId:"Person ID",org:"Org",created:"Created",emailPlaceholder:"[email protected]",firstName:"First name",lastName:"Last name",firstNamePlaceholder:"First name (optional)",lastNamePlaceholder:"Last name (optional)",createdToast:"User {email} created.",createError:"Couldn't create the user."},groups:{title:"Groups",searchPlaceholder:"Search groups…",new:"New group",columns:{name:"Name",type:"Type",created:"Created"},typeSystem:"System",typeCustom:"Custom",empty:"No groups found.",notFound:"Group not found.",noOrg:"No organization assigned. Groups require an organization context.",delete:"Delete group",untitled:"Untitled group",namePlaceholder:"Group name",membersHeading:"Members ({count})",noMembers:"No members in this group.",nameLabel:"Group name",userColumn:"User",userIdColumn:"User ID",actionColumn:"Action",addPlaceholder:"User ID to add…",pickUser:"Select a user…",searchUsers:"Search users…",noUsers:"No matching users.",add:"Add",removeMember:"Remove member",removeConfirmTitle:"Remove this member?",removeConfirmBody:"They will lose the access this group grants. You can add them back later.",removeConfirm:"Remove",removing:"Removing…",addError:"Couldn't add the member.",removeError:"Couldn't remove the member."},organizations:{title:"Organizations",new:"New organization",refresh:"Refresh",searchPlaceholder:"Search organizations…",columns:{name:"Name",abbreviation:"Abbreviation",country:"Country",status:"Status",created:"Created"},empty:"No organizations found.",none:"No organizations",noMatches:"No matches",notFound:"Organization not found.",domains:"Domains",addDomain:"Add domain",domainPlaceholder:"example.com",removeDomain:"Remove domain",users:"Users",groups:"Groups",activity:"Activity",usersTab:"Users - {name}",groupsTab:"Groups - {name}",deleted:"Organization deleted.",domainAdded:"Domain {domain} added.",domainRemoved:"Domain removed.",statusError:"Couldn't change the status.",domainError:"Couldn't update the domain.",namePlaceholder:"Organization name",untitled:"Untitled organization",abbreviationLabel:"Abbreviation:",abbrPlaceholder:"e.g. BR",websitePlaceholder:"https://example.com",noWebsite:"No website",editWebsite:"Edit website",f
10ieldName:"Name *",fieldCountry:"Country *",fieldAbbr:"Abbr.",fieldWebsite:"Website",status:{DRAFT:"Draft",PUBLISHED:"Published",ACTIVE:"Active",SUSPENDED:"Suspended",ARCHIVED:"Archived"},claimStatus:{PENDING:"Pending",APPROVED:"Approved",REJECTED:"Rejected"},membershipPolicy:"Membership policy",policy:{MANUAL:"Manual",AUTO_JOIN:"Auto-join",REVIEW:"Review"},policyHint:{MANUAL:"People join only by invitation.",AUTO_JOIN:"Anyone with an email on an approved domain joins automatically on first login.",REVIEW:"People with an email on an approved domain land in a queue for your approval."},policyUpdated:"Membership policy updated.",policyError:"The membership policy couldn't be updated.",candidates:{title:"Candidate queue",empty:"No one is awaiting review.",candidateColumn:"Candidate",sinceColumn:"Since",actionsColumn:"Actions",approve:"Approve",reject:"Reject",approved:"Candidate approved.",rejected:"Candidate rejected.",actionError:"The action couldn't be completed."},invitations:{title:"Invitations",invite:"Invite user",pickUser:"Select a person…",searchUsers:"Search people…",noUsers:"No invitable people found.",confirm:"Send invitation",invited:"Invitation sent.",empty:"No pending invitations.",userColumn:"Person",sinceColumn:"Since",actionsColumn:"Actions",revoke:"Revoke",revoked:"Invitation revoked.",actionError:"The action couldn't be completed."},description:"Description",descriptionPlaceholder:"Write a Markdown description for this language…",noDescription:"No description",editDescription:"Edit description",descriptionSave:"Save",descriptionCancel:"Cancel",descriptionUpdated:"Description updated.",descriptionError:"The description couldn't be updated.",descriptionTooLong:"The {locale} description exceeds the {max}-character limit."},pat:{title:"Personal access tokens",subtitle:"Personal access tokens for programmatic API access.",create:"Create token",copyWarning:"Copy this token now — it will not be shown again.",copy:"Copy token",dismiss:"Dismiss",name:"Token name",namePlaceholder:"e.g. Claude Code CI",expiry:"Expiry date",optional:"(optional)",creating:"Creating…",confirm:"Create",cancel:"Cancel",empty:"No active tokens",emptyHint:"Create a token to access the API programmatically.",createdAt:"Created {date}",lastUsed:"Last used {date}",expires:"Expires {date}",revokeQuestion:"Revoke?",revoking:"Revoking…",revokeConfirm:"Confirm",revoke:"Revoke token",revokedHeading:"Revoked tokens",revokedAt:"Revoked {date}",loading:"Loading tokens…",nameRequired:"A token name is required.",createdToast:"Token created.",createError:"Couldn't create the token.",revokedToast:"Token revoked.",revokeError:"Couldn't revoke the token.",copied:"Token copied to clipboard.",copyError:"Couldn't copy the token."},profile:{title:"Profile",subtitle:"Manage your personal information and preferences.",avatar:"Avatar",firstName:"First name",lastName:"Last name",email:"Email",role:"Role",locale:"Language",notSet:"Not set",editField:"Edit {field}",saveField:"Save {field}",cancelField:"Cancel editing {field}",saveHint:"Press Enter to save, Esc to cancel.",saveError:"That change couldn't be saved.",firstNamePlaceholder:"Enter first name",lastNamePlaceholder:"Enter last name",brMember:"BR Member",notFound:"Profile not found.",roles:{superadmin:"Super Admin",admin:"Admin",guest:"Guest",user:"User"},preferences:{title:"Workspace",hideComingSoon:"Hide the modules that aren't live yet",hideComingSoonHint:"The activity bar keeps only the modules you can actually work in. Saved in this browser."}},impersonate:{action:"Impersonate",title:"Impersonate user",body:"You will see the platform as {email}. Your superadmin session will be preserved and you can return at any time.",expiry:"Session expires after 1 hour",audited:"All actions are audited with your superadmin ID",confirm:"Start impersonation",started:"Now viewing as {email}",error:"Couldn't start impersonation."},orgTransitions:{confirmTitle:"Confirm",confirmAction:"Confirm",buttons:{publish:"Publish",activate:"Activate",archive:"Archive",suspend:"Suspend",reactivate:"Reactivate",dearchive:"Dearchive",delete:"Delete"},ARCHIVED_SUSPENDED:{title:"Dearchive organization",headline:"The organization will be restored into the suspended state.",details:["It leaves the read-only archive but stays inaccessible until reactivated","Reactivate it afterwards to let its users log in again"],confirm:"Dearchive"},DRAFT_PUBLISHED:{title:"Publish organization",headline:"External users will not have access yet.",details:["You can add domains and configure cross-BC references","The org can no longer be deleted after this step — only archived"],confirm:"Publish"},DRAFT_DELETED:{title:"Delete organization",headline:"The organization and all its data will be permanently destroyed.",details:["All associated groups will be deleted","All user links will be removed"],warning:"This action cannot be undone.",confirm:"Delete permanently"},PUBLISHED_ACTIVE:{title:"Activate organization",headline:"Users of this organization will be able to log in.",details:["Domain and admin requirements will be verified","Existing guest accounts matching org domains will be detected"],confirm:"Activate"},PUBLISHED_ARCHIVED:{title:"Archive organization",headline:"The organization will become read-only and inaccessible.",details:["No user will be able to access it","Project links will need to be unlinked first if any exist"],confirm:"Archive"},ACTIVE_SUSPENDED:{title:"Suspend organization",headline:"All users will immediately lose access.",details:["Users will not be able to log in until the org is reactivated","Project links may need to be unlinked"],confirm:"Suspend"},ACTIVE_ARCHIVED:{title:"Archive organization",headline:"All users will permanently lose access.",details:["The org will become read-only","Project links will need to be unlinked first if any exist"],warning:"This action is difficult to reverse.",confirm:"Archive"},SUSPENDED_ACTIVE:{title:"Reactivate organization",headline:"Users will regain access and be able to log in again.",details:["All previous permissions and group memberships are preserved"],confirm:"Reactivate"},SUSPENDED_ARCHIVED:{title:"Archive organization",headline:"The organization will be permanently archived.",details:["It will become read-only and inaccessible to all users"],warning:"This action is difficult to reverse.",confirm:"Archive"}},serviceAccounts:{title:"Service accounts",subtitle:"Machine actors — non-human identities that authenticate with keys and hold their own scopes.",create:"New service account",name:"Name",namePlaceholder:"e.g. notifier-worker",description:"Description",descriptionPlaceholder:"What this service account is used for.",optional:"(optional)",creating:"Creating…",confirm:"Create",cancel:"Cancel",save:"Save",empty:"No service accounts",emptyHint:"Create a service account to give a machine its own identity, scopes, and keys.",createdAt:"Created {date}
10",created:"Created",nameRequired:"A name is required.",createdToast:"Service account created.",createError:"Couldn't create the service account.",notFound:"Service account not found.",rename:"Rename",saveName:"Save name",renamedToast:"Service account renamed.",renameError:"Couldn't rename the service account.",editDescription:"Edit description",descriptionClearHint:"Leave empty to clear the description.",descriptionSavedToast:"Description saved.",descriptionError:"Couldn't save the description.",noDescription:"No description.",scopesHint:"Scopes this service account is granted. A key can only be minted once the account holds at least one scope.",keys:{title:"Keys",mint:"Mint key",minting:"Minting…",mintedToast:"Key minted.",mintError:"Couldn't mint the key.",copyWarning:"Copy this key now — it will not be shown again.",copy:"Copy key",dismiss:"Dismiss",copied:"Key copied to clipboard.",copyError:"Couldn't copy the key.",loading:"Loading keys…",empty:"No active keys",createdAt:"Created {date}",revokeQuestion:"Revoke?",revoking:"Revoking…",revokeConfirm:"Confirm",cancel:"Cancel",revoke:"Revoke key",revokedHeading:"Revoked keys",revokedAt:"Revoked {date}",revokedToast:"Key revoked.",revokeError:"Couldn't revoke the key."}},scopes:{title:"Scope registry",subtitle:"Every scope the platform declares: who may hold it, where it may travel, and whether it is still declared.",searchPlaceholder:"Filter by scope or service",empty:"No scope is registered.",noMatches:"No scope matches this filter.",scopeColumn:"Scope",nameColumn:"Name",serviceColumn:"Owning service",stateColumn:"Declaration",governanceColumn:"Governance",usedByColumn:"Used by",actionsColumn:"Actions",audience:"Audience",platformOnly:"Platform only",stale:"Stale",staleHint:"Withdrawn from declaration for at least 15 days.",withdrawnAt:"Withdrawn from declaration on {date}.",withdrawnFor:"since {duration}",cancel:"Cancel",actionError:"Couldn't apply this change to the registry.",withdraw:"Withdraw",lifecycleGroup:"Lifecycle",lift:"Lift withdrawal",withdrawSticky:"Withdraw by hand (locks it closed)",moreActions:"More actions",withdrawnToast:"Scope withdrawn from declaration.",liftedToast:"Withdrawal lifted.",audienceKind:{BOTH:"Users and service accounts",USERS_ONLY:"Users only",SERVICE_ACCOUNTS_ONLY:"Service accounts only"},liveness:{declared:"Declared",withdrawn:"Withdrawn",manuallyWithdrawn:"Withdrawn by an admin"},holders:{none:"Nothing holds this scope.",organizations:"Organizations",serviceAccounts:"Service accounts",entitlement:"Entitlement",memberGrants:"{count, plural, one {# member} other {# members}}",groupGrants:"{count, plural, one {# group} other {# groups}}"},narrowing:{title:"This narrowing would break existing holders",body:"{count, plural, =0 {Nothing currently conflicts with this change on {scope}.} one {One grant or entitlement on {scope} conflicts with this change. Clear it first.} other {# grants and entitlements on {scope} conflict with this change. Clear them first.}}",clear:"Clear the conflicting holders",clearedToast:"Conflicting holders cleared.",apply:"Apply the narrowing",cancel:"Cancel",pending:"A registry command is in flight."},revokeEverywhere:{action:"Revoke everywhere",title:"Revoke this scope everywhere?",body:"Every grant and entitlement of {scope} listed below is removed. The scope itself is kept; each affected organization gets a timeline entry and its admins a notification.",confirm:"Revoke everywhere",doneToast:"Scope revoked everywhere."},delete:{action:"Delete",title:"Delete this scope?",body:"{scope} is removed from the registry permanently. A later declaration by its owning service registers a NEW scope, on the default governance.",confirm:"Delete",doneToast:"Scope deleted."},usage:{more:"+{count}",holders:"{count, plural, one {# holder} other {# holders}}"},platformColumn:"Platform",platformAnywhere:"Anywhere",setPlatformOnly:"Restrict to the platform",liftPlatformOnly:"Allow outside the platform"}}},Qv={workspace:Jv},Xv={jobs:{views:{jobs:"Jobs",fleet:"Fleet"}}},Zv={workspace:Xv},ey={projects:{sidebar:{all:"All projects",internal:"Internal Projects",client:"Client Projects",product:"Product Projects",rnd:"R&D Projects",demo:"Demo Projects"},list:{title:"Projects",empty:"No projects yet.",newProject:"New project",draft:"Draft",columns:{name:"Name",organizations:"Organizations",type:"Type",status:"Status",period:"Period"},loadMore:"Load more",noMatch:"No project matches these filters (over {count} loaded).",types:{INTERNAL:"Internal",CLIENT:"Client",PRODUCT:"Product",RND:"R&D",DEMO:"Demo"},statuses:{OPEN:"Open",SUSPENDED:"Suspended",CLOSED:"Closed",DRAFT:"Draft"},filters:{organization:"Organization",assignee:"Assignee",allOrgs:"All organizations",allAssignees:"All assignees",mine:"Mine",clear:"Clear filters"}},record:{loading:"Loading…",notFound:"This project was not found.",create:{title:"New project",name:"Name",type:"Type",startDate:"Start date",save:"Create",cancel:"Cancel",hint:"Fill the essentials to create the project; add the summary, links, team and repos next.",error:"The project could not be created."},rename:{save:"Save",cancel:"Cancel"},actions:{rename:"Rename",changeType:"Change type",publish:"Publish",delete:"Delete",suspend:"Suspend",resume:"Resume",close:"Close",reopen:"Reopen"},close:{prompt:"How does this project close?",completed:"Completed",cancelled:"Cancelled"},closureReason:{COMPLETED:"Completed",CANCELLED:"Cancelled"},publishBanner:{ready:"Ready to publish.",blocked:"This draft can't be published yet:",confirm:{title:"Publish this project?",body:"Publishing is final. Review what it entails before you confirm:",irreversible:"It's irreversible — the project can never return to Draft and can never be deleted.",visibility:"It becomes visible to the linked client organizations and consumable by the other areas (timesheets, billing, portal).",lifecycle:"It starts open, and its lifecycle then continues through suspend, close and reopen.",confirm:"Publish",cancel:"Cancel"}}
10,deleteConfirm:"Delete this draft? This can't be undone.",section:{edit:"Edit",save:"Save",cancel:"Cancel"},about:{title:"About",summaryPlaceholder:"Short summary (English, markdown)",descPlaceholder:"Full description (markdown)",noSummary:"No summary yet.",noDescription:"No description yet.",enRequired:"English is required."},period:{title:"Period",start:"Start date",end:"End date",open:"open-ended"},repos:{title:"Repositories",workspace:"Agent workspace",deployment:"Deployment repos",deploymentPlaceholder:"org/name (one per line)",deploymentHint:"One org/name per line.",linked:"Linked repositories",linkedPlaceholder:"org/name (one per line)",linkedHint:"Standalone repositories holding the code when the project has no umbrella workspace — e.g. a demo monorepo. One org/name per line."},verification:{title:"Verification environment",configure:"Configure",rotate:"Rotate",clear:"Clear",baseUrl:"Base URL",pat:"Personal access token",patHint:"The token is write-only. After saving, only its fingerprint remains visible.",fingerprint:"PAT fingerprint",changedAt:"Last changed",notConfigured:"No verification environment configured.",clearConfirm:{title:"Clear the verification environment?",body:"This removes both the base URL and the stored personal access token. A new token is required to configure it again.",confirm:"Clear environment",cancel:"Cancel"}},orgs:{title:"Organizations",add:"Link organization",addPlaceholder:"Search organizations…",loading:"Loading…",none:"No organization to link.",empty:"No organization linked.",showEnded:"Show ended",hideEnded:"Hide ended",end:"End",endPrompt:"End this link on:",start:"Start date",link:"Link",linkNamed:"Link {name}",correct:{action:"Edit",title:"Correct this link",hint:"Fix a mis-entered link period. The organization can't be changed here — annul and re-link for that.",start:"Start date",end:"End date",ongoing:"Open-ended (no end date)",endHelp:'Leave the end date unchanged to keep it, or edit it to correct it. Tick "Open-ended" to reopen the link.',save:"Save"},annul:{action:"Annul",title:"Annul this link?",body:"Annulling means this organization should never have been linked: the row disappears entirely. If the link really existed and simply ended, use End instead.",reason:"Reason",reasonPlaceholder:"Why should this link never have existed?",confirm:"Annul link",cancel:"Cancel"}},team:{title:"Team",add:"Assign role",addPlaceholder:"Search people…",assign:"Assign",assignNamed:"Assign {name}",loading:"Loading…",none:"No one to assign.",empty:"No role assigned.",end:"End",endPrompt:"End this assignment on:",endOptional:"End (optional)",correct:{action:"Edit",title:"Correct this assignment",hint:"Fix a mis-entered assignment. The person can't be changed here — annul and re-assign for that.",role:"Role",start:"Start date",end:"End date",ongoing:"Ongoing (no end date)",endHelp:'Leave the end date unchanged to keep it, or edit it to correct it. Tick "Ongoing" to reopen the assignment.',save:"Save"},annul:{action:"Annul",title:"Annul this assignment?",body:"Annulling means this assignment should never have existed: the row disappears entirely. If the assignment really happened and simply stopped, use End instead.",reason:"Reason",reasonPlaceholder:"Why should this assignment never have existed?",confirm:"Annul",cancel:"Cancel"},roles:{ARCHITECT:"Architect",FULL_STACK_ENGINEER:"Full-stack engineer",AGENT_ENGINEER:"Agent engineer",PRODUCT_OWNER:"Product owner",DOMAIN_EXPERT:"Domain expert",SPONSOR:"Sponsor",STAKEHOLDER:"Stakeholder"},families:{delivery:"Delivery",product:"Product & analysis",governance:"Governance"}},streams:{title:"Streams",empty:"No stream declared.",register:"Declare stream",yes:"Yes",no:"No",columns:{name:"Name",kind:"Kind",intent:"Intent",subjects:"Subject space",delivery:"Delivery",replayable:"Replayable",retention:"Retention",provenance:"Provenance",actions:"Actions"},kind:{STREAM:"Stream",KV_BUCKET:"KV bucket"},delivery:{AT_LEAST_ONCE:"At least once",EXACTLY_ONCE:"Exactly once"},form:{kind:"Kind",effectiveName:"Name",effectiveNamePlaceholder:"e.g. orders-events",intent:"Intent",intentPlaceholder:"What this stream carries and why",subjectSpace:"Subject space",subjectSpacePlaceholder:"one subject per line",subjectSpaceHint:"One NATS subject per line. Leave empty for none.",retentionLogic:"Retention",retentionLogicPlaceholder:"e.g. limits: 7d, or work-queue",deliveryGuarantee:"Delivery guarantee",replayable:"Replayable",dedupKey:"Dedup key",dedupKeyPlaceholder:"optional",provenanceOptional:"Provenance (optional)",deploymentRepo:"Deployment repo",deploymentRepoPlaceholder:"org/name",resourcePath:"Resource path",resourcePathPlaceholder:"path/in/repo",declare:"Declare"},edit:{action:"Edit",intent:"Intent",contract:"Contract",provenance:"Provenance",s
10ave:"Save",clearProvenance:"Clear"},remove:{action:"Remove",title:"Remove this stream?",body:`Removing "{name}" is permanent: it frees the name and id. If the stream is still in use, this can't be undone.`,confirm:"Remove",cancel:"Cancel"}},history:{title:"History",current:"now"},changeType:{currentType:"This is already the project's type.",reasons:{retype_requires_target_staffing:{internal:"This project doesn't meet the {type} staffing yet: an active platform architect and engineer are required.",client:"This project doesn't meet the {type} staffing yet: an active link to a client organization and an external sponsor or stakeholder are required.",product:"This project doesn't meet the {type} staffing yet: an active platform architect and engineer are required.",rnd:"This project doesn't meet the {type} staffing yet: an active platform architect and engineer are required.",demo:"This project doesn't meet the {type} staffing yet: at least one active platform delivery role is required."}}},timeline:{viewLabel:"Team view",view:{list:"List",timeline:"Timeline"},today:"Today",ongoing:"ongoing",soFar:"so far",openActions:"⏎ Open assignment actions",empty:"No role assignments yet",summaryLane:"{count, plural, one {# assignment} other {# assignments}}",state:{ongoing:"Active",ended:"Ended",planned:"Planned"},duration:{md:"{months} mo {days} d",d:"{days} d"},aria:{bar:"{name}, {role} ({family}), {range}, {duration}, {state}"},legend:{families:"Families",filterLabel:"Filter by role family",notation:"Notation",ended:"ended",ongoing:"ongoing",planned:"planned",sameDay:"same-day",suspended:"suspended period"},strips:{status:"Status"}},services:{title:"Services",empty:"No services yet.",publishGate:"Services open once the project is published.",error:"Couldn't load the services.",newService:"New service",linkService:"Link shared service",create:"Create",link:"Link",save:"Save",end:"End",endLink:"End link",manageLink:"Manage link",changeService:"Change",loading:"Loading…",noShared:"No shared service available.",namePlaceholder:"Service name",intentPlaceholder:"Intent (optional)",repositoryPlaceholder:"Repository (optional)",descriptionPlaceholder:"Description (optional)",classificationAny:"Any classification",linkPlaceholder:"Search shared services…",port:"Port",portPlaceholder:"8000–8999 or 10000+",overrideLabel:"Classification override",overrideNone:"No override",overridden:"Classification overridden for this project",validation:{invalid:"This value isn't valid."},ddd:{core:"Core",supporting:"Supporting",generic:"Generic"},state:{converged:"Converged ({version})",implemented:"Implemented",draft:"Draft",sealed:"Sealed",retired:"Retired",deprecated:"Deprecated"},origin:{own:"Own",shared:"Shared"},col:{service:"Service",classification:"Classification",origin:"Origin",port:"Port",version:"Version"},field:{intent:"Intent",classification:"Classification",repository:"Repository",description:"Description"},addField:"Add {field}",editField:"Edit {field}",clearField:"Remove {field}"}}}},ty={workspace:ey},ny={services:{warnings:{},healFailed:"Could not refresh the record — the view may be out of date.",healRetry:"Retry",record:{bar:{label:"Lifecycle",usedBy:"Used by",usedByEmpty:"Not used by any project yet",olderRows:"{count, plural, one {# earlier version} other {# earlier versions}} of v{version}",deprecated:"Deprecated",retired:"Retired",noActiveMajor:"No active major version — the version selector reaches the deprecated and retired ones.",olderElided:"Older versions not shown",nextMajor:"major",nextMinor:"minor",nextPatch:"patch",phase:{shapeUndefined:"Shape to define",drafting:"Drafting…",patchDrafting:"Correction — being drafted",implementing:"Sealed — being implemented",observing:"Implemented, pending verifications",observingVerified:"Implemented and verified",converged:"Converged"},missing:{functionalSpec:"functional spec",permissions:"permissions"},missingList:"missing: {list}",sealPatchTitle:"Seal patch {version}",sealPatchBody:"Sealing computes the patch's signature and hands it to implementation. It can be returned to draft while nothing has been implemented against it.",implementedAndVerified:"Implemented and verified",jobStep:"step {step}/{total} · {label}",jobQueued:"queued",jobStepsDone:"{done}/{total} steps done",jobStarting:"starting…",activity:{programmed:"A job or task is scheduled on this version and has not started yet",active:"A job is running on this version",draft:"Draft awaiting seal"},taskUnclaimed:"unclaimed",taskClaimed:"claimed",taskClaimedBy:"claimed by {name}",claimTask:"Claim {name}",offAir:"Live updates stopped",convergeOn:"Mark converged on {version}",markConverged:"Mark converged",laneConverged:"Converged",claimExpires:"held until {date}",pullRequest:"PR",failureLabel:"{block} failed",block:{scaffold:"Scaffold",implement:"Implement",verify:"Verify",unknown:"Work"},job:{requested:"requested",queued:"queued",running:"running",completed:"done",failed:"failed",rejected:"refused",cancelled:"cancelled",unknown:"unknown"},task:{pending:"pending",claimable:"to claim",claimed:"claimed",lapsed:"claim lapsed",completed:"done",rejected:"refused",cancelled:"cancelled",unknown:"unknown"}
10,breaches:"{count, plural, one {# breach} other {# breaches}}",breachesLabel:"Major {major} carries {count, plural, one {# open contract breach} other {# open contract breaches}} — every one of them is listed in the breach table below.",fixCount:"{fixed}/{total}",fixCountLabel:"{total, plural, one {This patch commits to fixing # breach} other {This patch commits to fixing # breaches}}: {fixed, plural, other {# fixed}}, {open, plural, other {# still open}}.",deleteMinor:"Delete v{label}",shared:"Shared"},notFound:"Service not found",unavailable:"Service unavailable.",minorUnavailable:"Minor version details unavailable.",liveLost:"Live updates stopped — the record may be out of date.",classification:"Classification",repo:"Repository",repoPlaceholder:"owner/repo",classificationKind:{CORE:"Core",SUPPORTING:"Supporting",GENERIC:"Generic"},scope:{label:"Project scope",all:"All",project:"This project",others:"Other projects",chip:"{scope}: {count, plural, one {# consumption} other {# consumptions}}"},links:{empty:"No project uses this service",open:"ongoing",port:"port",history:"{count, plural, one {# ended link} other {# ended links}}"},details:{intent:"Intent"},inline:{edit:"Edit {field}"},header:{titleLabel:"Service name",intentPlaceholder:"Add a one-line intent",descriptionPlaceholder:"Add a description",classificationPlaceholder:"Set classification",shared:"Shared",sharedTooltip:"Shared service — not owned by any single project",convergedTooltip:"Converged — the running service matches v{version}",twin:"Twin → {name}",twinTooltip:"Twin of {name}",repoChip:"repo",repoEdit:"Edit repository",showMore:"Show more",showLess:"Show less",scaffolded:"Scaffolded {date}",scaffoldedTooltip:"The scaffold of this service was recorded complete on {date}. Recorded once, never reset.",notScaffolded:"Not scaffolded",notScaffoldedTooltip:"No scaffold has been recorded for this service. A runner records it after opening the scaffold PR; a hand-made scaffold is recorded from the actions menu."},tabs:{functionalSpec:"Functional Spec",permissions:"Permissions",offers:"Offers",consumptions:"Consumptions",e2e:"e2e",sdl:"SDL",dbSchema:"DB Schema",restEndpoints:"REST",discussions:"Discussions"},envelope:{documentsEmpty:"No document",correctionHint:"Correction — fixes wording, never meaning",offersEmpty:"No offer",consumptionsEmpty:"No consumption",unavailable:"Offers and consumptions unavailable.",filteredEmpty:"No item matches the filter",gestureFailed:"The action could not be completed",gesture:{cancel:"Cancel",save:"Save",confirmDelete:"Delete"},offer:{declare:"Declare offer",declareSubmit:"Declare",correct:"Correct",type:"Type",naturalKey:"Natural key",shortDescription:"Short description",payload:"Payload",payloadHint:"Minimal description of the event / command / KV entry payload",setType:"Set type",setNaturalKey:"Set key",setShortDescription:"Set description",setPayload:"Set payload",setTargetDeletion:"Set target",targetDeletionVersion:"Target deletion version",deprecation:"Deprecation",deprecationDeclaredIn:"Announced in {version}",deprecationUndeclared:"No deprecation announced",deprecationEffectiveIn:"effective in {version}",deprecationPending:"not effective yet",markDeprecation:"Mark for deprecation",unmarkDeprecation:"Unmark deprecation",markDeletion:"Mark for deletion",unmarkDeletion:"Unmark deletion",hardDelete:"Delete",hardDeleteTitle:"Delete this offer?",hardDeleteBody:"This unimplemented offer will be removed from the draft. This cannot be undone.",state:"State",consumers:"Consumers",target:"Target",unconsumed:"Not consumed",consumersList:"Consumers",consumerImplemented:"implemented",sealed:"Sealed",sealedHint:"Consumed by an implemented consumption — its key and payload are frozen",keyChecking:"Checking key…",keyValid:"Key available",keyInvalid:"Key not allowed",keyUnavailable:"Key check unavailable — edit the key to retry.",markImplemented:"Mark implemented in {version}",markDeleted:"Mark deleted in {version}",stream:"Stream",setStream:"Set stream",correctStream:"Change stream",noStream:"No stream",streamPlaceholder:"Pick a stream",streamsLoading:"Loading streams…",streamsNoProject:"No project fabric to pick from — this service is linked to none.",streamOwnedHint:"Names a stream of the owning project's fabric. An event or command offer needs a stream, a KV offer a KV bucket.",streamSharedHint:"This service is shared: the name and kind you pick are captured as a requirement — a matching stream must exist on every linked project's fabric. Pick from any of them; the captured pair is what binds, not the row.",streamTooltip:"Provided on {name} ({kind}
10)",streamKind:{STREAM:"Stream",KV_BUCKET:"KV bucket"},streamsEmpty:"No stream is declared on this project fabric yet.",streamsEmptyIn:"No stream is declared on {project}’s fabric yet."},offerState:{declared:"Declared",implemented:"Implemented",markedForDeprecation:"Marked for deprecation",deprecated:"Deprecated",markedForDeletion:"Marked for deletion",deleted:"Deleted"},consumption:{shown:"Shown",declare:"Declare consumption",declareSubmit:"Declare",correct:"Correct",kind:"Kind",consumedOffers:"Consumed offers",provider:"Producer",state:"State",warnings:"Warnings",searchOffers:"Search consumable offers…",noConsumable:"No consumable offer",filterPolicy:"Filter policy",projectionPolicy:"Projection policy",mergePolicy:"Merge policy",projectionTables:"Projection tables",eventReactions:"Event reactions",commandImplementation:"Command implementation",setMergePolicy:"Set merge",setFilterPolicy:"Set filter",setProjectionPolicy:"Set projection",setProjectionTables:"Set tables",setEventReactions:"Set reactions",setCommandImplementation:"Set implementation",setProjectLink:"Set project link",projectLink:"Project link",projectLinkPlaceholder:"Select a project link",addOffer:"Add offer",removeOffer:"Remove offer",markDeletion:"Mark for deletion",unmarkDeletion:"Unmark deletion",hardDelete:"Delete",hardDeleteTitle:"Delete this consumption?",hardDeleteBody:"This unimplemented consumption will be removed from the draft. This cannot be undone.",deprecated:"Deprecated",deprecatedConsumed:"{count, plural, one {# consumed offer is deprecated} other {# consumed offers are deprecated}}",inboxDriftTest:"Inbox drift test",markImplemented:"Mark implemented in {version}",markDriftImplemented:"Mark inbox-drift test implemented in {version}",markDeleted:"Mark deleted in {version}"},consumptionState:{declared:"Declared",implemented:"Implemented",markedForDeletion:"Marked for deletion",deleted:"Deleted"}},envelopeDiff:{change:{added:"Added",modified:"Modified",deprecating:"Deprecating",deprecated:"Deprecated",removed:"Removed"},counts:{added:"{count} added",modified:"{count} modified",deprecating:"{count} deprecating",deprecated:"{count} deprecated",removed:"{count} removed",unchanged:"{count} unchanged"},field:{type:"Type",shortDescription:"Short description",payload:"Payload",stream:"Stream",markedForDeprecation:"Marked for deprecation",targetDeletionVersion:"Target deletion version",markedForDeletion:"Marked for deletion",consumes:"Consumed offers",filterPolicy:"Filter policy",projectionPolicy:"Projection policy",mergePolicy:"Merge policy",projectionTables:"Projection tables",eventReactions:"Event reactions",commandImplementation:"Command implementation",gesture:"Gesture",technicalSpec:"Technical spec",testsAuthz:"Tests authorization",channels:"Observation channels",projectLinkId:"Project link",inboxDriftTestId:"Inbox-drift test",title:"Title",naturalKey:"Natural key"},noChanges:"Nothing in this family moved between {from} and {to}.",detailUnavailable:"Named by the registry diff but absent from both version snapshots — open the versions to inspect it.",noFieldDetail:"Changed per the registry — no field-level difference on the surface this view reads.",unchangedShow:"{count, plural, one {# unchanged item} other {# unchanged items}} — show",unchangedHide:"{count, plural, one {# unchanged item} other {# unchanged items}} — hide",unavailable:"The version diff could not be read."},tests:{title:"Tests",empty:"No test declared yet.",filteredEmpty:"No test matches the filter.",noVersion:"Select a version to see its tests.",untitled:"Untitled test",expandRow:"Show details of {title}",collapseRow:"Hide details of {title}",filterLabel:"Status",actionFailed:"The action could not be completed.",deletedNote:"deleted in {version}",coversBreaches:"{count, plural, one {Covers # breach} other {Covers # breaches}}",inboxDriftFor:"{count, plural, one {Inbox-drift test for # consumption} other {Inbox-drift test for # consumptions}}",status:{pending:"Pending",implemented:"Implemented",scheduled:"Scheduled for deletion",deleted:"Deleted"}
10,sort:{version:"Newest first",title:"By title",status:"By status"},columns:{status:"Status",title:"Test",channels:"Channels",declaredIn:"Declared in",implementedIn:"Implemented in",actions:"Actions"},channels:{nats:"Uses NATS",db:"Uses the database",redis:"Uses Redis",authz:"Tests authorization"},declare:{open:"Declare a test",heading:"Declare a test",submit:"Declare",blocked:"Declaring a test is not available here.",noPatch:"No open patch to declare a test against — every patch is implemented."},edit:{heading:"Correct the test",submit:"Save"},form:{title:"Title",shortDescription:"Short description",gesture:"Gesture",gestureHint:"The business contract, in Markdown — understandable without prior knowledge.",technicalSpec:"Technical spec (optional)",technicalSpecHint:"Initial state, monitored channels, action, exact assertions — Gherkin welcome.",channels:"Observation channels",cancel:"Cancel"},detail:{gesture:"Gesture",shortDescription:"Short description",technicalSpec:"Technical spec"},actions:{edit:"Correct",markImplementedIn:"Mark implemented in {version}",scheduleDeletion:"Schedule deletion",cancelDeletion:"Cancel deletion",delete:"Delete",deleteConfirmTitle:"Delete this test?",deleteConfirmBody:'This permanently deletes the unimplemented test "{title}". This cannot be undone.',deleteConfirmCancel:"Cancel",deleteConfirmConfirm:"Delete"}},document:{mode:{view:"View",diff:"Diff two versions",edit:"Edit",compare:"Compare rendered",correct:"Correct"},correctionBadge:"Correction",fold:{fold:"fold section",unfold:"unfold section"},copy:{action:"Copy the markdown",copied:"Copied",error:"The document could not be copied."},history:{mode:"History",plateau:"Edit {index}",current:"Current",currentHint:"Live document",carousel:{label:"Edit history",newer:"Show more recent edits",older:"Show earlier edits"},node:{current:"now",plateau:"#{index}"},face:{changes:"Changes",document:"Document"},base:{label:"Compared with",previousEdit:"Previous edit",previousPatch:"Previous patch",noPreviousPatch:"No patch had been realized at that point."},side:{current:"Current — live document",plateau:"Edit {index} — {date}",patch:"v{version} — realized {date}",origin:"Before the first edit",asOf:"As of {date}"},unchanged:{sinceLatestEdit:"Nothing has changed since the most recent edit. The live document still stands exactly as it did then.",thisEdit:"This edit changed nothing — the document reads exactly as it did before it.",sincePatch:"Nothing has changed since v{version} was realized."},baseEmpty:"The document did not exist yet at that point, so everything below is an addition.",neverEdited:"This document has never been edited.",noDocumentAt:"The document did not exist yet at that instant.",snapshotUnavailable:"That version of the document could not be loaded.",rollback:"Restore this version"},correctiveSave:{title:"Corrective save on a sealed minor",body:`This minor is sealed and implemented, so this write is a CORRECTIVE ACTION on a published intent, not an ordinary edit.
11Corrections fix wording — a typo, an ambiguity — never meaning. The intent signature is recomputed. If this changes what the service promises, open a new minor instead.`,bodyRollback:`This minor is sealed and implemented, so restoring the text as it stood on {date} is a CORRECTIVE ACTION on a published intent, not an ordinary edit.
12The document goes back to that version and the intent signature is recomputed. If the restored text changes what the service promises, open a new minor instead.`,confirm:"Save the correction"},diff:{showMore:"{count, plural, one {# unchanged line} other {# unchanged lines}} — show",unchanged:"These two versions carry the same document, word for word."},compare:{pick:"Version",needsTwoVersions:"Needs a second version"},comparisonUnavailable:"The compared version could not be loaded.",edit:{editorLabel:"Document source",save:"Save",cancel:"Cancel"},discard:{title:"Discard changes?",body:"This document has unsaved edits. Leaving Edit mode will discard them.",keep:"Keep editing",discard:"Discard"},empty:{functionalSpec:"No functional spec yet",permissions:"No permissions defined yet",writeFunctionalSpec:"Write the functional spec",writePermissions:"Write the permissions"},saveFailed:"The document could not be saved."},actions:{publish:"Publish",deprecate:"Deprecate",retire:"Retire",reactivate:"Reactivate",deleteDraft:"Delete draft",deprecateService:"Deprecate service",retireService:"Retire service",reactivateService:"Reactivate service",deleteDraftService:"Delete service (draft only
12)",openVersion:"Open version",seal:"Seal",markVerified:"Mark verified",cancel:"Cancel",menu:"Service actions",recordScaffoldCompleted:"Record scaffold completed",recordScaffold:"Record completion"},confirm:{publish:"Publish this service?",publishIntro:"Publishing makes this service a published registry entry.",deprecate:"Deprecate this service?",deprecateIntro:"Deprecating signals that consumption of this service is discouraged.",retire:"Retire this service?",retireIntro:"Retiring removes this service from active duty.",reactivate:"Reactivate this service?",reactivateIntro:"Reactivating restores this service to active duty.",deleteDraft:"Delete this draft service?",deleteDraftIntro:"This permanently removes the draft service.",seal:"Seal this version?",sealIntro:"Sealing freezes this version's envelope and computes its seal hash.",markVerified:"Mark this version verified?",markVerifiedIntro:"Verifying attests that the observed implementation matches the sealed spec.",retireMajor:"Retire this major version?",deleteMajor:"Delete this major version?",deprecateMajor:"Deprecate this major version?",reactivateMajor:"Reactivate this major version?",recordScaffoldCompleted:"Record the scaffold as completed?",deleteMinor:"Delete this minor version?",deletePatch:"Delete this patch version?"},consequences:{publish:`Consumable by others across the registry.
13Publish gates apply: summary, subdomain and classification must be set.
14A project-specific service needs an active project link.`,deprecate:`Consumers are signalled to move away.
15The service stays readable; it is not removed.`,retire:`The service is removed from active duty.
16Existing envelopes stay for the record.`,reactivate:`The service returns to active duty.
17Consumption is no longer discouraged.`,deleteDraft:`The draft service is removed entirely.
18This is destructive and irreversible.`,seal:`The envelope — documents, offers, consumptions and e2e tests — is frozen.
19The seal hash is computed and recorded.
20Content becomes immutable except through the corrections window.
21Irreversible: reopening means opening a new version.`,markVerified:`A human attestation that the observed implementation matches the sealed spec.
22Recorded with the verified hash.`,retireMajor:`The major version is removed from active duty.
23Existing versions stay for the record.`,deleteMajor:`The major version is removed entirely.
24This is destructive and irreversible.`,deprecateMajor:`Consumers are signalled to move off this major version.
25The major stays readable; it is not removed.`,reactivateMajor:`The major version returns to active duty.
26Its consumption is no longer discouraged.`,recordScaffoldCompleted:`The registry stamps this service's scaffold as done.
27It is set once — a second attempt is refused.`,deleteMinor:`The minor version and the patches born with it are removed entirely.
28Its number goes back to the pool and will be reattributed to the next minor cut.
29This is destructive and irreversible.`,deletePatch:`The patch version is removed entirely and its number goes back to the pool.
30The minor returns to the convergence state it had before this patch was cut.
31This is destructive and irreversible.`},create:{name:"Name",summary:"Summary"},kindFilter:{chip:"{family}: {count, plural, one {# item} other {# items}} — toggle"},kindFamily:{kv:"KV",event:"Events",command:"Commands"},lifecycle:{draft:"Draft",sealed:"Sealed",implemented:"Implemented",converged:"Converged",breaches:"Contract breaches",deprecated:"Deprecated",retired:"Retired"},nav:{sealMinor:"Seal",sealPatch:"Seal",unsealPatch:"Unseal",imagePublished:"Image published",patchReasonPlaceholder:"Why this patch?",cancel:"Cancel",createMajorConfirmBody:"This starts a new major track, cascading its first minor and patch, carrying the current implemented documents forward.",createMajorConfirm:"Create major",createPatchReason:"Reason (optional)",createPatchBreaches:"Breaches to fix (optional)",createPatchNoBreaches:"No open breaches to attach.",createPatchSealHint:"Sealing this patch will require a reason or at least one breach to fix.",createPatchConfirm:"Create patch",createMinorConfirmBody:"This opens a new draft minor, carrying the last implemented minor’s documents forward and cascading its patch 0. The previous minor must be implemented first.",createMinorConfirm:"Create minor",sealMinorConfirm:"Seal minor",sealPatchConfirmTitle:"Seal this patch?",sealPatchConfirmBody:"Sealing computes the patch signature and hands it to implementation. It requires a reason or at least one breach to fix.",sealPatchConfirm:"Seal patch",unsealPatchConfirmTitle:"Unseal this patch?",unsealPatchConfirmBody:"Unsealing drops the patch back to draft and discards its signature, so its shape can be corrected in place. It can be sealed again afterwards.",unsealPatchConfirm:"Unseal patch",noMajorHint:"This service has no version yet. Create its first major version to start defining its technical shape.",createMajorZero:"Create major version 0",selectAllBreaches:"Select all",deselectAllBreaches:"Deselect all",createPatchShouldFixFailed:"{failed} of {total} breach commitments could not be attached — recommit them from the breach pool.",createPatchShouldFixFailedReason:"{failed} of {total} breach commitments could not be attached — {reason} Recommit them from the breach pool."},gesture:{failed:"The action could not be completed."},major:{menu:"Major version actions",delete:"Delete major",deprecateVersion:"Deprecate major v{number}",retireVersion:"Retire major v{number}",reactivateVersion:"Reactivate major v{number}",deleteVersion:"Delete major v{number}",title:"Major v{number}",manner:"Manner",eda:"EDA posture",edaTag:"EDA",dumbFrontEnd:"Dumb frontend",dumbFrontEndTag:"Dumb FE",backEndMonolith:"Backend monolith",backEndMonolithTag:"Monolith",multiPod:"Multi-pod support",multiPodTag:"Multi-pod",technical:"Technical",sourcePaths:"Source code paths",sourcePathsPlaceholder:"One path per line",stack:"Stack",shapeToDefine:"Technical shape to define: {list}",stackAddLanguage:"language",stackAddFramework:"framework",stackPickLanguage:"Add a language",stackPickFramework:"Add a framework",stackRemoveLanguage:"Remove language {name}",stackRemoveFramework:"Remove framework {name}",stackLoading:"Loading referential…",stackUnavailable:"Referential unavailable — close and reopen to retry.",stackNoLanguages:"Every language is already on this major.",stackNoFrameworks:"No framework left for this major’s languages.",stackNeedsLanguage:"Add a language first — frameworks follow the major’s languages."},mannerKind:{HEXAGONAL:"Hexagonal",FATTY:"Fatty",HUMAN_DRIVEN:"Human-driven"},edaKind:{FULL:"Full",SOFT:"Soft",CRUD:"CRUD"},boolean:{yes:"Yes",no:"No"},patch:{procedural:"Procedurally generated",proceduralAttestation:"Exported from the code (schema export / pg_dump), not hand-written — this is what advances the patch to implemented.",empty:"No content",menu:"Patch version actions",delete:"Delete patch",deleteVersion:"Delete patch v{label}"},breaches:{title:"Breaches",none:"No contract breaches declared.",unavailable:"Contract breaches unavailable.",noOpen:"No open breaches",openCount:"{count, plural, one {# open breach} other {# open breaches}}",committedCount:"{count} committed to {version}",converged:"Converged",declare:"Declare breach",declareConfirm:"Declare",declareAnchor:"Anchored on the last patch {version}.",declareNoPatch:"No patch to anchor the breach on yet.",cancel:"Cancel",shortDe
31scription:"Short description",reproduction:"Reproduction",reproductionOptional:"Reproduction (optional)",analysis:"Analysis",analysisOptional:"Analysis (optional)",linkTest:"Link test",linkTestLabel:"Covering e2e test",linkTestConfirm:"Link",noTests:"This minor has no e2e tests to link.",coveringTestOptional:"Covering test (optional)",testPlaceholder:"Select a test",coversTest:"Test: {title}",markFixed:"Mark fixed in {version}",commitShouldFix:"Should fix in {version}",markIrrelevant:"Mark irrelevant",delete:"Delete",deleteTitle:"Delete this breach?",deleteBody:"This permanently deletes the contract breach. This cannot be undone.",empty:"—",shouldFix:"Should-fix ({count})",shouldFixLabel:"Breaches this patch commits to fix",recordImage:"Record image",image:"Image reference",state:{open:"Open",fixedIn:"Fixed in {version}",irrelevantAfter:"Irrelevant after {version}",shouldFixIn:"should-fix → {version}",fixed:"Fixed"},showResolved:"Show resolved ({count})",hideResolved:"Hide resolved",allResolved:"All breaches resolved.",editReproduction:"Edit reproduction",editAnalysis:"Edit analysis",observation:{remainingDH:"{days}d {hours}h",remainingHM:"{hours}h {minutes}m",remainingM:"{minutes}m",lessThanMinute:"<1m"},aboutItem:"About a contract item (optional)",aboutItemHint:"Name the one offer, consumption or test this breach is about. Set once — neither the item nor the reason can be changed afterwards.",aboutNone:"Not about a specific item",aboutOffers:"Offers",aboutConsumptions:"Consumptions",aboutTests:"E2E tests",aboutUnnamed:"Consumption with no offer yet",aboutNamed:"{kind}: {name}",aboutUnresolved:"{kind} from an earlier version",aboutKind:{OFFER:"Offer",CONSUMPTION:"Consumption",TEST:"Test"},severityLabel:"Severity",severityPlaceholder:"Pick a severity",severity:{VERY_LOW:"Very low",LOW:"Low",MEDIUM:"Medium",HIGH:"High"},rerank:"Change severity",reasonLabel:"Reason",reason:{NOT_IMPLEMENTED:"Not implemented",BADLY_IMPLEMENTED:"Badly implemented",NOT_REMOVED:"Not removed"},reasonWhen:{NOT_IMPLEMENTED:"Declared and never realized — only while the item has no implementing patch.",BADLY_IMPLEMENTED:"Realized, but betraying its declaration — only once the item has an implementing patch.",NOT_REMOVED:"Scheduled for deletion and never deleted — only while the item still awaits its deletion."},reasonEffect:{NOT_IMPLEMENTED:"While this breach stands, the item cannot be marked implemented.",BADLY_IMPLEMENTED:"This blocks nothing — only a human verification closes it.",NOT_REMOVED:"While this breach stands, the item cannot be marked deleted."},ageUnknown:"inherited",ageCurrent:"on the latest patch",agePatches:"{count, plural, one {# patch back} other {# patches back}}",relation:{declaredIn:"Declared in {version}",shouldBeFixedIn:"Should be fixed in {version}",shouldHaveBeenFixedIn:"Should have been fixed in {version}",hasBeenFixedIn:"Has been fixed in {version}"},markFixedNoTarget:"Mark fixed",markFixedPick:"Pick the patch that fixed it",noFixTarget:"No implemented patch after {version} on this major yet — a fix can only be recorded in a patch that has shipped."},implementation:{explainer:"A patch is implemented once it is sealed, its image is recorded, and its SDL and DB schema are generated. Implemented unlocks breach declaration on the minor.",titleFor:"Implementation — v{version}",explainerLabel:"About implementation",implementedCue:"Implemented",convergedCue:"Converged",details:"Details",sealed:"Sealed",image:"Image recorded",sdlProcedural:"SDL generated",dbProcedural:"DB schema generated",met:"Met",unmet:"Not met",recordImage:"Record image",editImage:"Edit image",imageRef:"Image reference",derivedHint:"Implemented is derived — record the published image and let the deployment post the procedural SDL + DB schema to advance this sealed patch.",confirmingImage:"Confirming image…",proceduralHint:"The SDL and DB schema are posted by the deployment script or agent (procedural), not hand-edited here.",awaitingDeployment:"Awaiting the deployment",openDoc:"Open this document below",awaitingHint:"The deployment posts the procedural SDL and DB schema and this patch becomes implemented on its own — or post them yourself below, ticking “Procedurally generated”.",restOptional:"REST endpoints (optional)"},identity:{title:"Identity",shape:"Technical shape",stack:"Stack",owner:"Owner",twin:"Twin of",twinBounds:"Twin compatibility",twinBoundsRange:"{min} → {max}",twinBoundsOpen:"any newer patch",scaffold:"Scaffold",majorSection:"Major {number}",usedIn:"Used in {count, plural, =0 {no project} one {# project} other {# projects}}",menu:"Service and major actions",menuService:"Service"},knownTasks:{title:"Known tasks",explainer:"What this registry commissioned for this service. Executing them belongs to the tasks service.",summary:"{open} open · {total} commissioned",emptySummary:"Nothing commissioned",empty:"This registry has commissioned nothing for this service yet.",unavailable:"Known tasks unavailable.",openHint:"Still open",settledHint:"Settled",staged:"Staged {date}",confirmed:"Confirmed {date}",settled:"Settled {date}",heldBy:"Held by {id}",settledReason:"Reason: {reason}",settledReasons:{major_deprecated:"Major deprecated",major_retired:"Major retired",service_retired:"Service retired",service_deleted:"Service deleted",minor_deleted:"Minor deleted",patch_deleted:"Patch deleted",patch_unsealed:"Patch unsealed",breach_irrelevant:"Breach ruled irrelevant",breach_deleted:"Breach deleted",twin_retired:"Twin retired",superseded_by_newer_patch:"Superseded by a newer patch",superseded_by_newer_schema_change:"Superseded by a newer schema change"},type:{SCAFFOLD_SERVICE:"Scaffold the service",SCAFFOLD_PATCH:"Scaffold the patch",IMPLEMENT_PATCH:"Implement the patch",VERIFY_PATCH:"Verify the patch",VERIFY_BREACH_FIX:"Verify a breach fix",VERIFY_TWIN:"Verify the twin",CHECK_UNDELIVERED_ITEMS:"Check undelivered items"},state:{PENDING:"Staged",LIVE:"Live",CLAIMED:"Claimed",COMPLETED:"Completed",CANCELLED:"Cancelled",LAPSED:"Lapsed",CREATION_REJECTED:"Creation refused",COMPLETION_REJECTED:"Completion refused",CANCELLATION_REJECTED:"Cancellation refused"}},createDialog:{majorTitle:"Create a major version",majorDoctrine:"Changing the technical shape ⇒ new major.",minorTitle:"Create a minor version",minorDoctrine:"A new declared intent — content copied forward from {latest}.",patchTitle:"Create a patch version",patchDoctrine:"A realization step toward {minor}'s intent.",targetMajor:"Target major",noneAvailable:"No version can be created here.",bumpMajor:"new major",bumpMinor:"new minor",bumpPatch:"new patch"},inspector:{stages:{defined:"defined",draft:"draft",sealed:"sealed",implemented:"implemented",converged:"converged"},regime:{major:"Changing the shape ⇒ new major version.",minorSealed:"Sealed — corrections only; new wants ⇒ new minor version.",patch:"Realization — converges on the minor's intent; it owns no intent of its own."},signature:"Signature",intentSignature:"Intent signature",offerCount:"{count, plural, one {# offer} other {# offers}}",consumptionCount:"{count, plural, one {# consumption} other {# consumptions}}",testCount:"{count, plural, one {# test} other {# tests}}",reason:"Reason",checklistTitle:"Implementation checklist",implReportTitle:"Implementation report",implReportSummary:"{count, plural, one {# run} other {# runs}}",implReportEmpty:"Nothing has run for this patch yet.",implReportUnavailable:"The run ledger could not be loaded.",implReportOpenTask:"Open the task",shouldFixTitle:"Should fix",shouldFixCount:"{count} of {total} open on this major version",shouldFixNone:"This patch commits to no breach fix yet.",shouldFixFootnote:"Manage the full pool in the Breaches section",workUnavailable:"The remaining work could not be loaded.",workTitle:"Remaining work",workTests:"{count, plural, one {# test to implement} other {# tests to implement}}",workOffers:"{count, plural, one {# offer to mark implemented} other {# offers to mark implemented}}",workConsumptions:"{count, plural, one {# consumption to mark implemented} other {# consumptions to mark implemented}}"},discussions:{title:"Discussions",openCount:"{count, plural, one {# open discussion} other {# open discussions}}",openThreads:"{count, plural, one {View discussions (# open)} other {View discussions (# open)}}",openThreadsUnknown:"View discussions",surfacePending:"Loading discussions…",status:{open:"Open",resolved:"Resolved"},filter:{all:"All",open:"Open",resolved:"Resolved"},filterLabel:"Filter discussions",threadAria:"Discussion by {name}",toggleThread:"Toggle thread",quoteOutdated:"Quote outdated — document edited since",edited:"(edited)",editComment:"Edit comment",cancel:"Cancel",save:"Save",commentPlaceholder:"Write a comment…",addComment:"Comment",reply:"Reply",replyPlaceholder:"Reply…",threadMenu:"Thread actions",comments:"Comments",resolve:"Resolve",reopen:"Reopen",participants:"Participants",addParticipant:"Add",removeParticipant:"Remove {name}
31",leave:"Leave",searchUsers:"Search users…",loadingUsers:"Loading…",noCandidates:"Nobody can be added to this thread.",usersUnavailable:"User directory unavailable — try again later.",sheetTitle:"Discussions — {target}",sheetSubtitle:"Threads on this contract item.",newDiscussion:"New discussion",startDiscussion:"Start discussion",quotedTextPlaceholder:"Quoted text (optional)",citeAField:"Cite a field",citeFieldLabel:"Cited field",citeFieldPlaceholder:"Choose a field…",citeHint:"Trim the text down to the passage you mean.",dropCitation:"Remove the citation",citeField:{natural_key:"Natural key",short_description:"Short description",payload:"Payload",merge_policy:"Merge policy",filter_policy:"Filter policy",projection_policy:"Projection policy",projection_tables:"Projection tables",event_reactions:"Event reactions",command_implementation:"Command implementation",title:"Title",gesture:"Gesture",technical_spec:"Technical spec"},titleLabel:"Thread title",titleRequired:"Name this thread before starting it.",renameThread:"Rename thread",titlePlaceholder:"Name this thread",emptyTarget:"No discussion on this item yet.",emptySurface:"No discussion on this version yet.",emptyDocument:"No discussion on this document yet.",unavailable:"Discussions unavailable.",retry:"Retry",liveInterrupted:"Live updates interrupted",marginTitle:"Discussions",generalComment:"Comment",commentOnSelection:"Comment on selection",commentOnPassage:"Comment on this passage",bubbleThreads:"{count, plural, one {# thread} other {# threads}}",thisPassage:"This passage",unpinnedHint:"Not pinned to the text — the passage has changed, appears more than once, or sits in a folded section.",allPinnedForFilter:"The matching discussions are pinned beside their passage in the document.",quoteOutdatedNote:"This passage is not found exactly once in the document's source, so the discussion will be filed with its quote already marked outdated — select a passage that appears once.",firstCommentFailed:"The discussion was created, but its first comment could not be posted. Your text is preserved — try sending it again.",firstCommentFailedReason:"The discussion was created, but its first comment could not be posted — {reason} Your text is preserved — try sending it again.",target:{functionalSpec:"Functional spec",permissions:"Permissions",offer:"Offer",consumption:"Consumption",test:"Test"}},tour:{help:{take:"Take the tour",replay:"Replay the tour"},previous:"Previous",next:"Next",finish:"Finish",skip:"Skip tour",counter:"{current} / {total}",stops:{orientation:{title:"One vertical scroll",body:"Four blocks, one scroll: the lifecycle BARS name the service under its project, carry the version graph, and say where the SELECTED major stands right now; the IDENTITY block folds away what the service and its major ARE; the BREACHES table lists the debt convergence gates on; and the MAIN ZONE carries the selected version in two faces. Nothing here is a second scroll container."},"identity-card":{title:"The identity block",body:"One expandable holding everything that is not a version: the name, the one-line intent, the description as markdown, the classification, the repository — and, below them, the selected major's technical shape. The two ⋯ menus beside it carry the service's lifecycle and the major track's."},"version-tree":{title:"The version graph",body:"The graph in the bar above is the record's time machine: one LANE per major — deprecated and retired ones included, which is why the lifecycle lines can refuse to draw them — and one STATION per minor, newest at the left. Picking a station drills its patches down to its right, oldest last, and folds the minor you left — a folded station wears a +N saying how many it stands for, and every patch is one pick from its station. A dot's colour and size state its tier: a patch tick wears the workspace's primary colour, a minor station its accent, and a major stays neutral and largest — a major already has its own lane, so colouring it would say the same thing twice. The selected dot wears a ring in its own colour. At a lane's head sits that major's convergence, as a fact and never as a gesture: a green check once it has converged, nothing otherwise — the declaration itself lives on the lifecycle row below. Hover a dot for its state word, its date and why the version was cut. Click any dot and the faces below render that version exactly as it was declared; the gestures stay honest, and the server refuses what the past refuses. When there is more history than fits, the arrows page through it."},"ghost-create":{title:"Growing the line",body:"Every creation door carries its own level: this one — the “New minor” on the major's lifecycle line — cuts the next minor. The confirmation names what will be created and is gated by the owning entity's own permissions; a refusal states its reason, and what is not offered at all does not exist for you."},"major-shape":{title:"The major's shape",body:"Manner, EDA posture and the boolean tags define HOW the service is built. Changing the shape means a new major — that is the bump rule this pane's banner states."},"major-stack":{title:"The stack",body:"Languages and frameworks are part of the major's shape: add or remove chips from the shared referential. The pickers only offer what the registry knows."},"minor-header":{title:"The minor at a glance",body:"Beside the selector, watch the stepper light up the lifecycle in order — draft, then sealed, then implemented, then converged. The mono tag is the intent signature: a hash of the sealed contract, proof of exactly what was frozen. The ⋯ deletes the minor when the domain still allows it."},"minor-regime":{title:"The version's regime",body:"A draft minor carries the Draft tag on the face row and is fully editable. Once sealed the tag goes and a banner takes over inside Intent: only corrections may touch the intent from then on."},"minor-seal":{title:"Sealing a minor",body:"Seal freezes the minor's intent — spec, permissions and envelope. It lives on the bar line, right after the sentence saying why the domain will or will not seal it. Implementation only ever starts against a sealed contract; that is the gate this button crosses."}
31,"minor-doc":{title:"Intent documents",body:"Functional Spec and Permissions are the minor's written intent. Select a passage to open a margin discussion anchored on the quoted text — review happens where the words are."},"minor-envelope":{title:"The contract envelope",body:"Offers, Consumptions and e2e declare what the minor provides, what it uses, and what proves it. Declare while drafting; after sealing, only corrections."},"minor-breaches":{title:"The breaches table",body:"Every relevant unfixed breach against this major line's contract, inherited across its minors: state, description, where it was detected, which patch commits to fix it, and how far back it goes. A row opens onto its reproduction and analysis. The table appears once the major has shipped a patch — before that there is nothing to diverge from. Convergence gates on this list."},"minor-discussions":{title:"Discussions",body:"All threads over this minor's contract surface in one place — open and resolved. Resolve them as the contract settles; the tab label counts what is still open."},"discussion-chip":{title:"💬 where it matters",body:"The chip marks rows carrying discussions — envelope rows, tree nodes, tab labels. Click a row's chip to open its thread panel without leaving the table."},"patch-bands":{title:"The patch strip",body:"The realization face is patch-scoped, and this strip is its coordinate: every patch of the minor, oldest to newest, opening on the latest IMPLEMENTED one — what is actually running. The + cuts the next patch."},"patch-checklist":{title:"Realization",body:"A patch realizes the sealed intent: work the checklist, record the published image, and keep the SDL, DB schema and REST docs as realization cards."},"patch-converge":{title:"Converging a patch",body:"Converge declares the patch the version to use. The door sits with the row's other doors, on the lifecycle line standing on the patch the domain offers it on — convergence is the major's fact, even though the declaration lands on that patch — and it appears only while the domain allows it. While the domain refuses there is no button at all: the open breach count on the row, and the version graph's own lane head, are where the story is read. A converged major wears a green check at the head of its lane."}}},minor:{menu:"Minor version actions",delete:"Delete minor",deleteVersion:"Delete minor v{label}"},scaffold:{title:"Scaffold",steps:"{done} of {total} steps",noPlan:"The job has not declared its plan yet.",claimExpires:"held until {date}",state:{pending:"Not started",inProgress:"In progress",completed:"Completed",unknown:"Unknown state"},automation:{automated:"Run by a runner.",directTask:"Assigned to a human.",automatedHandoff:"Started by a runner, handed over to a human.",unknown:"Unknown assignment."},task:{pending:"The task is being staged.",claimable:"Waiting for someone to pick it up.",claimed:"Picked up.",lapsed:"The claim lapsed — waiting for someone to pick it up again.",completed:"The task is done.",rejected:"The task was refused.",cancelled:"The task was cancelled.",unknown:"Unknown task state."},reasons:{generic_failure:"The scaffold could not finish. Pick it up by hand and record it complete when the code is in.",runner_type_unknown:"No runner answers to “{runnerType}”. Correct the framework’s scaffold runner type, or finish the scaffold by hand.",no_runner_available:"No runner of type “{runnerType}” is up. The job waits until one announces itself.",job_refused:"The jobs service refused the scaffold job outright, so nothing ran.",run_failed:"The run failed. Read the diagnostic below, then finish the scaffold by hand.",run_timed_out:"The run passed its deadline and was given up on. Finish the scaffold by hand.",run_cancelled:"The run was cancelled before it finished.",manual_action_required:"The runner stopped and asked for a human. Finish the remaining steps by hand."}},main:{noMinor:"No minor version yet",noPatch:"No patch yet",nextPatch:"patch",patchStripLabel:"Patches",face:{intent:"Intent",realization:"Realization"},draft:"Draft",obligations:"Obligations {done}/{total}",jobReport:"Runner report"},seal:{title:"Seal {version}?",againstParent:"What this version changes against {parent}.",noParent:"The first version of this major — everything below is new.",unchanged:"Nothing changed against the parent version.",emptyParentLabel:"Nothing",unnamed:"Untitled",failed:"The comparison could not be loaded.",retry:"Retry",tabs:{offers:"Offers ({count})",consumptions:"Consumptions ({count})",tests:"Tests ({count})",functionalSpec:"Functional Spec ({count})",permissions:"Permissions ({count})"},headline:{functionalSpecLines:"Functional Spec: +{added} / −{removed} lines",permissionsLines:"Permissions: +{added} / −{removed} lines"}},versionCarousel:{aria:"Version graph — newest first, one lane per major",foldedPatches:"{count, plural, one {# earlier patch} other {# earlier patches}} — select this station to unfold"}},automation:{title:"Automation rules",subtitle:"Which runner type serves each patch-work block, and for which majors.",add:"New rule",create:"Create rule",save:"Save rule",edit:"Edit",delete:"Delete rule",deleteTitle:"Delete this rule?",deleteBody:"The {block} rule ranked {priority} for “{runnerType}” goes away. Patch work already dispatched is unaffected.",deleteConfirm:"Delete rule",blockEmpty:"No rule for this block yet.",liveInterrupted:"The live referential feed is interrupted — what you see may be out of date.",blocks:{SCAFFOLD:"Scaffold",IMPLEMENT:"Implement",VERIFY:"Verify"},block:{label:"Block"},priority:{label:"Priority",hint:"Lower runs first. Unique within the block — the registry refuses a rank another rule of the same block already holds."},runnerType:{label:"Runner type",placeholder:"Name the runner type that serves this block",known:"Known types:",use:"Use {type}"},matchers:{any:"any",manner:"Manner",multiPod:"Multi-pod",multiPodYes:"Supported",multiPodNo:"Not supported",framework:"Framework",frameworkCardinality:"Frameworks declared",frameworkUnknown:"Unknown framework"}}
31,runners:{title:"Runner coverage",subtitle:"Which runner type does which job, and which named runners nothing answers to.",editRules:"Edit the rules",empty:"Nothing names a runner type yet, and the fleet is empty.",unclaimedRow:"No rule and no framework names this type.",unscaffolded:"Frameworks with no scaffold runner",unscaffoldedHint:"A service built on one of these cannot be scaffolded. Name a runner on the Stack referential.",standing:{UNSERVED:"Named, but unserved",SERVING:"Serving",UNCLAIMED:"In the fleet, unclaimed"},standingHint:{UNSERVED:"Work is addressed to these types and no live instance answers to them. A job sent to one waits forever — no run, no deadline, no expiry.",SERVING:"Named by a rule or a framework, and an instance is there to answer.",UNCLAIMED:"The fleet has these runners; nothing sends them work."},jobs:{patchBlock:"Patch work · {block}",scaffoldService:"Scaffold the service"},fleet:{unknown:"Unknown to the fleet",unavailable:"No live instance",available:"{idle} idle · {busy} busy",waiting:"{count} job(s) already waiting"}},stack:{title:"Stack referential",subtitle:"The languages and frameworks every major picks its stack from.",refusedTitle:"The stack referential is for platform administrators",refusedBody:"Every language and framework here is shared by every service on the platform, so only a platform administrator may read and change it. Ask one if you need an entry added.",empty:"No language yet.",liveInterrupted:"The live referential feed is interrupted — what you see may be out of date.",whenToUse:"When to use",whenToUsePlaceholder:"When should a major reach for this?",language:{name:"Language name",namePlaceholder:"Rust, TypeScript, …",add:"New language",create:"Create language",compiled:"Compiled",transpilesTo:"Transpiles to",transpilesToNone:"Nothing",transpilesToClear:"Clear",delete:"Delete",deleteTitle:"Delete this language?",deleteBody:"“{name}” and its entry in the referential go away. Frameworks and majors that name it must be detached first.",deleteConfirm:"Delete language"},framework:{plural:"Frameworks",name:"Framework name",namePlaceholder:"Axum, React, …",add:"New framework",create:"Create framework",empty:"No framework on this language yet.",delete:"Delete",deleteTitle:"Delete this framework?",deleteBody:"“{name}” goes away. Majors that declare it must be detached first.",deleteConfirm:"Delete framework"},runnerType:{label:"Scaffold runner type",placeholder:"Name the runner that scaffolds this stack",known:"Known types:",use:"Use {type}",eligible:"A major that declares this framework alone is scaffold-eligible.",notEligible:"Without a runner type, no major built on this framework can be scaffolded."}}}},ry={workspace:ny},oy={tasks:{title:"Tasks"}},iy={workspace:oy},ay={timesheet:{title:"Timesheet"}},sy={workspace:ay},cy={ux:{personas:{title:"Personas"},gestures:{title:"Gestures"}}},ly={workspace:cy},dy={website:{contacts:"Contacts"}},uy={workspace:dy},py={shell:{snapshotStalled:"Chargement impossible — le serveur n’a pas répondu.",retry:"Réessayer"},documentTitle:"Espace de travail",activityBar:{pendingCount:"{count} en attente de votre vote",badge:{website:"{count} non lus",tasks:"{count, plural, one {# tâche à prendre} other {# tâches à prendre}}"}},bc:{settings:"Paramètres",website:"Site web",design:"Design",projects:"Projets",services:"Services",charter:"Gouvernance",tasks:"Tâches",jobs:"Jobs",timesheet:"Feuilles de temps",accounts:"Comptes",engagementnotes:"Notes de mission",ux:"UX"},common:{verdictPending:"En attente du verdict du domaine…",dataGrid:{sortBy:"Trier par {column}",moveColumn:"Déplacer {column}",filterBy:"Filtrer {column}",filterPlaceholder:"Filtrer…",filterAll:"Tout",clearFilters:"Effacer les filtres",columns:"Colonnes",resetView:"Réinitialiser la vue",rowsPerPage:"Lignes par page",rowCount:"{count, plural, one {# ligne} other {# lignes}}",pageOf:"Page {page} sur {pages}",firstPage:"Première page",previousPage:"Page précédente",nextPage:"Page suivante",lastPage:"Dernière page"}},tabs:{noOpenTabs:"Aucun onglet ouvert",openFromSidebar:"Ouvrez une page depuis la barre latérale pour commencer.",closeAllTooltip:"Fermer tous les onglets",closeMenu:"Fermer des onglets",scrollLeft:"Faire défiler les onglets vers la gauche",scrollRight:"Faire défiler les onglets vers la droite",notDeployedTitle:"Indisponible dans cet environnement",notDeployed:"Ce module n'est pas encore déployé ici. L'onglet reste ouvert : fermez-le, ou retrouvez-le là où le module tourne."},appearance:{accent:"Couleur d'accent",palettes:{blue:"Bleu",pink:"Rose",yellow:"Jau
31ne"}},header:{backToSite:"Retour au site",signOut:"Déconnexion"},forbidden:{title:"Accès refusé",message:"Vous n'avez pas la permission d'accéder à l'espace de travail.",signedInAs:"Connecté en tant que",goHome:"Retour à l'accueil",contactUs:"Nous contacter",helpText:"Si vous devriez y avoir accès, demandez-le à un administrateur de votre organisation ou contactez-nous."},sessionExpired:{title:"Session expirée",message:"Votre session a pris fin et n'a pas pu être renouvelée. Reconnectez-vous pour revenir à votre espace de travail.",signIn:"Se reconnecter",contactUs:"Nous contacter"},connection:{connecting:"Connexion à Bot Resources…",reconnecting:"Reconnexion…",reconnectingHint:"Reconnexion — votre connexion à Bot Resources a été perdue, l’espace de travail peut être obsolète.",offlineHint:"Hors ligne — votre navigateur n’a pas de réseau, l’espace de travail peut être obsolète.",reconnectNow:"Se reconnecter maintenant"},impersonation:{viewingAs:"Vu en tant que {email} ({role})",viewingAsWithActor:"Vous ({actor}) consultez en tant que {email} ({role})",roleAdmin:"admin",roleUser:"utilisateur",stop:"Arrêter l'emprunt d'identité",returned:"Retour à votre compte",stopError:"Impossible d'arrêter l'emprunt d'identité. Veuillez réessayer."},tabMenu:{close:"Fermer",closeOthers:"Fermer les autres",closeToRight:"Fermer à droite",closeAll:"Tout fermer",splitRight:"Diviser à droite",moveToPrevious:"Déplacer vers le groupe précédent",moveToNext:"Déplacer vers le groupe suivant"},content:{notTranslated:"Pas encore traduit pour cette version",editor:{primary:"Principale",makePrimary:"Définir comme principale",counter:"{count} / {max}",textareaLabel:"Description"}},backToTop:"Retour en haut",address:{organization:"Organisation",user:"Utilisateur",group:"Groupe",serviceAccount:"Compte de service",contact:"Contact",project:"Projet",service:"Service",proposal:"Proposition",tenet:"Principe",draft:"Brouillon",task:"Tâche",job:"Job",account:"Compte"}},my={workspace:py},hy={accounts:{nav:{desk:"Votre bureau"}}},gy={workspace:hy},fy={charter:{college:"Collège",nav:{charter:"Charte",deliberations:"Délibérations"}}},vy={workspace:fy},yy={design:{sectionProjects:"Projets",sectionSharedServices:"Services partagés",searchPlaceholder:"Rechercher projets et services",servicesLoading:"Chargement des services…",servicesEmpty:"Aucun service partagé",servicesError:"Échec du chargement des services",projectsLoading:"Chargement des projets…",projectsEmpty:"Aucun projet",projectServicesFolder:"Services",projectNoServices:"Aucun service",projectServicesPublishGate:"Disponible à la publication",newProjectTooltip:"Nouveau projet",newSharedServiceTooltip:"Nouveau service partagé",createSharedService:"Créer le service partagé",filterTooltip:"Filtrer les projets",filterByStatus:"Statut",filterActive:"Filtres actifs",pinItem:"Épingler {name}",unpinItem:"Désépingler {name}",serviceState:{deprecated:"Déprécié",retired:"Retiré"},majorView:{major:"Majeure {major}",drafting:"Majeure {major} : rédaction d’une nouvelle intention",breaches:"Majeure {major} : {count, plural, one {# violation de contrat ouverte} other {# violations de contrat ouvertes}}",sealed:"Majeure {major} : scellée, en attente d’implémentation",implemented:"Majeure {major} : implémentée, en attente de convergence",converged:"Majeure {major} : convergée en {label}",convergedNoLabel:"Majeure {major} : convergée",missingStream:"Majeure {major} : une offre de la dernière mineure ne déclare aucun flux"},classification:{word:{CORE:"Cœur",SUPPORTING:"Support",GENERIC:"Générique"},overrideTooltip:"{base}, remplacé par {effective} dans ce projet"}}},by={workspace:yy},Sy={engagementnotes:{allNotes:"Toutes les notes"}},Iy={workspace:Sy},_y={settings:{sectionPreferences:"Préférences",sectionAdministration:"Administration",profile:"Profil",accessTokens:"PAT",users:"Utilisateurs",groups:"Groupes",organizations:"Organisations",details:"Détails",searchOrgs:"Rechercher...",guests:"Invités",domainClaims:"Revendications de domaine",myOrganization:"Mon organisation",members:"Membres",services:"Services",serviceAccounts:"Comptes de service",scopes:"Registre des scopes",platformUserPicker:{placeholder:"Rechercher un utilisateur de la plateforme…",empty:"Aucun utilisateur correspondant.",loading:"Chargement des utilisateurs…",queryError:"Impossible de charger les utilisateurs. Réessayez.",noOrg
31:"Votre organisation de plateforme est indisponible. Rechargez et réessayez."}},admin:{common:{cancel:"Annuler",confirm:"Confirmer",discard:"Abandonner",actions:"Actions",columns:"Colonnes",never:"Jamais",yes:"Oui",no:"Non",loading:"Chargement…",organization:"Organisation",retry:"Réessayer",actionsError:"Impossible de charger les actions disponibles.",selectCountry:"Sélectionner un pays…",searchCountry:"Rechercher un pays…",noCountryFound:"Aucun pays trouvé."},sync:{unsaved:"Non enregistré",saving:"Enregistrement…",saved:"Enregistré",error:"Erreur",errorWith:"Erreur : {message}"},users:{title:"Utilisateurs",guests:"Invités",searchPlaceholder:"Rechercher des utilisateurs…",new:"Nouvel utilisateur",columns:{user:"Utilisateur",role:"Rôle",groups:"Groupes",status:"Statut",lastLogin:"Dernière connexion",created:"Créé le"},roleAdmin:"Admin",roleUser:"Utilisateur",statusActive:"Actif",statusDeactivated:"Désactivé",empty:"Aucun utilisateur trouvé.",notFound:"Utilisateur introuvable.",promote:"Promouvoir administrateur",demote:"Retirer les droits d'administrateur",deactivate:"Désactiver",reactivate:"Réactiver",promoted:"Utilisateur promu administrateur.",demoted:"Droits d'administrateur retirés.",roleChangeError:"Impossible de modifier le rôle d'administrateur.",actionError:"Cette action n'a pas pu être effectuée.",email:"E-mail",admin:"Admin",organizationLoading:"Chargement…",noOrganization:"Aucune organisation (invité)",createHint:"Saisissez un e-mail ci-dessus pour créer l'utilisateur. Enregistrement automatique.",deactivatedAt:"Désactivé le",personId:"ID de personne",org:"Org",created:"Créé le",emailPlaceholder:"[email protected]",firstName:"Prénom",lastName:"Nom",firstNamePlaceholder:"Prénom (facultatif)",lastNamePlaceholder:"Nom (facultatif)",createdToast:"Utilisateur {email} créé.",createError:"Impossible de créer l'utilisateur."},groups:{title:"Groupes",searchPlaceholder:"Rechercher des groupes…",new:"Nouveau groupe",columns:{name:"Nom",type:"Type",created:"Créé le"},typeSystem:"Système",typeCustom:"Personnalisé",empty:"Aucun groupe trouvé.",notFound:"Groupe introuvable.",noOrg
31:"Aucune organisation assignée. Les groupes nécessitent un contexte d'organisation.",delete:"Supprimer le groupe",untitled:"Groupe sans nom",namePlaceholder:"Nom du groupe",membersHeading:"Membres ({count})",noMembers:"Aucun membre dans ce groupe.",nameLabel:"Nom du groupe",userColumn:"Utilisateur",userIdColumn:"ID d'utilisateur",actionColumn:"Action",addPlaceholder:"ID d'utilisateur à ajouter…",pickUser:"Sélectionner un utilisateur…",searchUsers:"Rechercher des utilisateurs…",noUsers:"Aucun utilisateur correspondant.",add:"Ajouter",removeMember:"Retirer le membre",removeConfirmTitle:"Retirer ce membre ?",removeConfirmBody:"Il perdra l'accès accordé par ce groupe. Vous pourrez l'ajouter de nouveau plus tard.",removeConfirm:"Retirer",removing:"Retrait…",addError:"Impossible d'ajouter le membre.",removeError:"Impossible de retirer le membre."},organizations:{title:"Organisations",new:"Nouvelle organisation",refresh:"Actualiser",searchPlaceholder:"Rechercher des organisations…",columns:{name:"Nom",abbreviation:"Abréviation",country:"Pays",status:"Statut",created:"Créée le"},empty:"Aucune organisation trouvée.",none:"Aucune organisation",noMatches:"Aucun résultat",notFound:"Organisation introuvable.",domains:"Domaines",addDomain:"Ajouter un domaine",domainPlaceholder:"exemple.com",removeDomain:"Retirer le domaine",users:"Utilisateurs",groups:"Groupes",activity:"Activité",usersTab:"Utilisateurs - {name}",groupsTab:"Groupes - {name}",deleted:"Organisation supprimée.",domainAdded:"Domaine {domain} ajouté.",domainRemoved:"Domaine retiré.",statusError:"Impossible de modifier le statut.",domainError:"Impossible de mettre à jour le domaine.",namePlaceholder:"Nom de l'organisation",untitled:"Organisation sans nom",abbreviationLabel:"Abréviation :",abbrPlaceholder:"ex. BR",websitePlaceholder:"https://exemple.com",noWebsite:"Aucun site web",editWebsite:"Modifier le site web",fieldName:"Nom *",fieldCountry:"Pays *",fieldAbbr:"Abrév.",fieldWebsite:"Site web",status:{DRAFT:"Brouillon",PUBLISHED:"Publiée",ACTIVE:"Active",SUSPENDED:"Suspendue",ARCHIVED:"Archivée"},claimStatus:{PENDING:"En attente",APPROVED:"Approuvé",REJECTED:"Refusé"},membershipPolicy:"Politique d'adhésion",policy:{MANUAL:"Manuelle",AUTO_JOIN:"Adhésion automatique",REVIEW:"Validation"},policyHint:{MANUAL:"On ne rejoint l'organisation que sur invitation.",AUTO_JOIN:"Toute personne dont l'e-mail relève d'un domaine approuvé rejoint automatiquement à la première connexion.",REVIEW:"Les personnes dont l'e-mail relève d'un domaine approuvé arrivent dans une file d'attente pour votre validation."},policyUpdated:"Politique d'adhésion mise à jour.",policyError:"La politique d'adhésion n'a pas pu être mise à jour.",candidates:{title:"File d'attente des candidats",empty:"Personne n'attend de validation.",candidateColumn:"Candidat",sinceColumn:"Depuis",actionsColumn:"Actions",approve:"Approuver",reject:"Refuser",approved:"Candidat approuvé.",rejected:"Candidat refusé.",actionError:"L'action n'a pas pu être effectuée."},invitations:{title:"Invitations",invite:"Inviter",pickUser:"Sélectionner une personne…",searchUsers:"Rechercher des personnes…",noUsers:"Aucune personne à inviter.",confirm:"Envoyer l'invitation",invited:"Invitation envoyée.",empty:"Aucune invitation en attente.",userColumn:"Personne",sinceColumn:"Depuis",actionsColumn:"Actions",revoke:"Retirer",revoked:"Invitation retirée.",actionError:"L'action n'a pas pu être effectuée."},description:"Description",descriptionPlaceholder:"Rédigez une description Markdown pour cette langue…",noDescription:"Aucune description",editDescription:"Modifier la description",descriptionSave:"Enregistrer",descriptionCancel:"Annuler",descriptionUpdated:"Description mise à jour.",descriptionError:"La description n'a pas pu être mise à jour.",descriptionTooLong:"La description en {locale} dépasse la limite de {max} caractères."},pat:{title:"Jetons d'accès personnels",subtitle:"Jetons d'accès personnels pour l'accès programmatique à l'API.",create:"Créer un jeton",copyWarning:"Copiez ce jeton maintenant — il ne sera plus affiché.",copy:"Copier le jeton",dismiss:"Ignorer",name:"Nom du jeton",namePlaceholder:"ex. Claude Code CI",expiry:"Date d'expiration",optional:"(facultatif)",creating:"Création…",confirm:"Créer",cancel:"Annuler",empty:"Aucun jeton actif",emptyHint:"Créez un jeton pour accéder à l'API de manière programmatique.",createdAt:"Créé le {date}",lastUsed:"Dernière utilisation le {date}",expires:"Expire le {date}",revokeQuestion:"Révoquer ?",revoking:"Révocation…",revokeConfirm:"Confirmer",revoke:"Révoquer le jeton",revokedHeading:"Jetons révoqués",revokedAt:"Révoqué le {date}",loading:"Chargement des jetons…",nameRequired:"Un nom de jeton est requis.",createdToast:"Jeton créé.",createError:"Impossible de créer le jeton.",revokedToast:"Jeton révoqué.",revokeError:"Impossible de révoquer le jeton.",copied:"Jeton copié dans le presse-papiers.",copyError:"Impossible de copier le jeton."},profile:{title:"Profil",subtitle:"Gérez vos informations personnelles et vos préférences.",avatar:"Avatar",firstName:"Prénom",lastName:"Nom",email:"E-mail",role:"Rôle",locale:"Langue",notSet:"Non renseigné",editField:"Modifier {field}",saveField:"Enregistrer {field}",cancelField:"Annuler la modification de {field}",saveHint:"Entrée pour enregistrer, Échap pour annuler.",saveError:"Cette modification n’a pas pu être enregistrée.",firstNamePlaceholder:"Saisir un prénom",lastNamePlaceholder:"Saisir un nom",brMember:"Membre BR",notFound:"Profil introuvable.",roles:{superadmin:"Super administrateur",admin:"Administrateur",guest:"Invité",user:"Utilisateur"},preferences:{title:"Espace de travail",hideComingSoon:"Masquer les modules pas encore ouverts",hideComingSoonHint:"La barre d'activité ne garde que les modules dans lesquels vous pouvez réellement travailler. Enregistré dans ce navigateur."}},impersonate:{action:"Emprunter l'identité",title:"Emprunter l'identité de l'utilisateur",body:"Vous verrez la plateforme en tant que {email}. Votre session de super administrateur sera préservée et vous pourrez revenir à tout moment.",expiry:"La session expire au bout d'une heure",audited:"Toutes les actions sont journalisées avec votre identifiant de super administrateur",confirm:"Démarrer l'emprunt d'identité",started:"Vous consultez désormais en tant que {email}",error:"Impossible de démarrer l'emprunt d'identité."},orgTransitions:{confirmTitle:"Confirmer",confirmAction:"Confirmer",buttons:{publish:"Publier",activate:"Activer",archive:"Archiver",suspend:"Suspendre",reactivate:"Réactiver",dearchive:"Désarchiver",delete:"Supprimer"},ARCHIVED_SUSPENDED:{title:"Désarchiver l'organisation",headline:"L'organisation sera rétablie dans l'état suspendu.",details:["Elle quitte l'archive en lecture seule mais reste inaccessible jusqu'à réactivation","Réactivez-la ensuite pour permettre à ses utilisateurs de se reconnecter"],confirm:"Désarchiver"},DRAFT_PUBLISHED:{title:"Publier l'organisation",headline:"Les utilisateurs externes n'y auront pas encore accès.",details:["Vous pourrez ajouter des domaines et configurer les références inter-contextes","L'organisation ne pourra plus être supprimée après cette étape — seulement ar
31chivée"],confirm:"Publier"},DRAFT_DELETED:{title:"Supprimer l'organisation",headline:"L'organisation et toutes ses données seront définitivement détruites.",details:["Tous les groupes associés seront supprimés","Tous les liens utilisateurs seront retirés"],warning:"Cette action est irréversible.",confirm:"Supprimer définitivement"},PUBLISHED_ACTIVE:{title:"Activer l'organisation",headline:"Les utilisateurs de cette organisation pourront se connecter.",details:["Les exigences de domaine et d'administrateur seront vérifiées","Les comptes invités existants correspondant aux domaines de l'organisation seront détectés"],confirm:"Activer"},PUBLISHED_ARCHIVED:{title:"Archiver l'organisation",headline:"L'organisation deviendra en lecture seule et inaccessible.",details:["Aucun utilisateur ne pourra y accéder","Les liens de projet devront d'abord être dissociés le cas échéant"],confirm:"Archiver"},ACTIVE_SUSPENDED:{title:"Suspendre l'organisation",headline:"Tous les utilisateurs perdront immédiatement l'accès.",details:["Les utilisateurs ne pourront pas se connecter tant que l'organisation n'est pas réactivée","Les liens de projet devront peut-être être dissociés"],confirm:"Suspendre"},ACTIVE_ARCHIVED:{title:"Archiver l'organisation",headline:"Tous les utilisateurs perdront définitivement l'accès.",details:["L'organisation deviendra en lecture seule","Les liens de projet devront d'abord être dissociés le cas échéant"],warning:"Cette action est difficile à annuler.",confirm:"Archiver"},SUSPENDED_ACTIVE:{title:"Réactiver l'organisation",headline:"Les utilisateurs retrouveront l'accès et pourront se reconnecter.",details:["Toutes les permissions et appartenances aux groupes précédentes sont conservées"],confirm:"Réactiver"},SUSPENDED_ARCHIVED:{title:"Archiver l'organisation",headline:"L'organisation sera définitivement archivée.",details:["Elle deviendra en lecture seule et inaccessible à tous les utilisateurs"],warning:"Cette action est difficile à annuler.",confirm:"Archiver"}},serviceAccounts:{title:"Comptes de service",subtitle:"Acteurs machines — identités non humaines qui s'authentifient avec des clés et disposent de leurs propres périmètres.",create:"Nouveau compte de service",name:"Nom",namePlaceholder:"ex. notifier-worker",description:"Description",descriptionPlaceholder:"À quoi sert ce compte de service.",optional:"(facultatif)",creating:"Création…",confirm:"Créer",cancel:"Annuler",save:"Enregistrer",empty:"Aucun compte de service",emptyHint:"Créez un compte de service pour donner à une machine sa propre identité, ses périmètres et ses clés.",createdAt:"Créé le {date}",created:"Créé le",nameRequired:"Un nom est requis.",createdToast:"Compte de service créé.",createError:"Impossible de créer le compte de service.",notFound:"Compte de service introuvable.",rename:"Renommer",saveName:"Enregistrer le nom",renamedToast:"Compte de service renommé.",renameError:"Impossible de renommer le compte de service.",editDescription:"Modifier la description",descriptionClearHint:"Laissez vide pour effacer la description.",descriptionSavedToast:"Description enregistrée.",descriptionError:"Impossible d'enregistrer la description.",noDescription:"Aucune description.",scopesHint:"Périmètres accordés à ce compte de service. Une clé ne peut être générée qu'une fois le compte doté d'au moins un périmètre.",keys:{title:"Clés",mint:"Générer une clé",minting:"Génération…",mintedToast:"Clé générée.",mintError:"Impossible de générer la clé.",copyWarning:"Copiez cette clé maintenant — elle ne sera plus affichée.",copy:"Copier la clé",dismiss:"Fermer",copied:"Clé copiée dans le presse-papiers.",copyError:"Impossible de copier la clé.",loading:"Chargement des clés…",empty:"Aucune clé active",createdAt:"Créée le {date}",revokeQuestion:"Révoquer ?",revoking:"Révocation…",revokeConfirm:"Confirmer",cancel:"Annuler",revoke:"Révoquer la clé",revokedHeading:"Clés révoquées",revokedAt:"Révoquée le {date}",revokedToast:"Clé révoquée.",revokeError:"Impossible de révoquer la clé."}},scopes:{title:"Registre des scopes",subtitle:"Tous les scopes déclarés sur la plateforme : qui peut les détenir, jusqu'où ils voyagent, et s'ils sont encore déclarés.",searchPlaceholder:"Filtrer par scope ou par service",empty:"Aucun scope enregistré.",noMatches:"Aucun scope ne correspond à ce filtre.",scopeColumn:"Scope",nameColumn:"Nom",serviceColumn:"Service propriétaire",stateColumn:"Déclaration",governanceColumn:"Gouvernance",usedByColumn:"Utilisé par",actionsColumn:"Actions",audie
31nce:"Audience",platformOnly:"Plateforme uniquement",stale:"Périmé",staleHint:"Retiré de la déclaration depuis au moins 15 jours.",withdrawnAt:"Retiré de la déclaration le {date}.",withdrawnFor:"depuis {duration}",cancel:"Annuler",actionError:"Impossible d'appliquer ce changement au registre.",withdraw:"Retirer",lifecycleGroup:"Cycle de vie",lift:"Lever le retrait",withdrawSticky:"Retirer à la main (verrouille la fermeture)",moreActions:"Autres actions",withdrawnToast:"Scope retiré de la déclaration.",liftedToast:"Retrait levé.",audienceKind:{BOTH:"Utilisateurs et comptes de service",USERS_ONLY:"Utilisateurs uniquement",SERVICE_ACCOUNTS_ONLY:"Comptes de service uniquement"},liveness:{declared:"Déclaré",withdrawn:"Retiré",manuallyWithdrawn:"Retiré par un administrateur"},holders:{none:"Personne ne détient ce scope.",organizations:"Organisations",serviceAccounts:"Comptes de service",entitlement:"Droit",memberGrants:"{count, plural, one {# membre} other {# membres}}",groupGrants:"{count, plural, one {# groupe} other {# groupes}}"},narrowing:{title:"Ce resserrement casserait des détenteurs existants",body:"{count, plural, =0 {Rien ne s'oppose actuellement à ce changement sur {scope}.} one {Une attribution ou un droit sur {scope} s'oppose à ce changement. Retirez-le d'abord.} other {# attributions et droits sur {scope} s'opposent à ce changement. Retirez-les d'abord.}}",clear:"Retirer les détenteurs en conflit",clearedToast:"Détenteurs en conflit retirés.",apply:"Appliquer le resserrement",cancel:"Annuler",pending:"Une commande du registre est en cours."},revokeEverywhere:{action:"Révoquer partout",title:"Révoquer ce scope partout ?",body:"Toutes les attributions et tous les droits de {scope} listés ci-dessous sont retirés. Le scope lui-même est conservé ; chaque organisation concernée reçoit une entrée de journal et ses administrateurs une notification.",confirm:"Révoquer partout",doneToast:"Scope révoqué partout."},delete:{action:"Supprimer",title:"Supprimer ce scope ?",body:"{scope} est retiré définitivement du registre. Une déclaration ultérieure par son service propriétaire enregistrera un NOUVEAU scope, avec la gouvernance par défaut.",confirm:"Supprimer",doneToast:"Scope supprimé."},usage:{more:"+{count}",holders:"{count, plural, one {# détenteur} other {# détenteurs}}"},platformColumn:"Plateforme",platformAnywhere:"Partout",setPlatformOnly:"Restreindre à la plateforme",liftPlatformOnly:"Autoriser hors plateforme"}}},Cy={workspace:_y},Ty={jobs:{views:{jobs:"Jobs",fleet:"Flotte"}}},wy={workspace:Ty},ky={projects:{sidebar:{all:"Tous les projets",internal:"Projets internes",client:"Projets clients",product:"Projets produit",rnd:"Projets R&D",demo:"Projets démo"},list:{title:"Projets",empty:"Aucun projet pour le moment.",newProject:"Nouveau projet",draft:"Brouillon",columns:{name:"Nom",organizations:"Organisations",type:"Type",status:"Statut",period:"Période"},loadMore:"Charger plus",noMatch:"Aucun projet ne correspond à ces filtres (sur {count} chargés).",types:{INTERNAL:"Interne",CLIENT:"Client",PRODUCT:"Produit",RND:"R&D",DEMO:"Démo"},statuses:{OPEN:"Ouvert",SUSPENDED:"Suspendu",CLOSED:"Clôturé",DRAFT:"Brouillon"},filters:{organization:"Organisation",assignee:"Assigné",allOrgs:"Toutes les organisations",allAssignees:"Tous les assignés",mine:"Les miens",clear:"Effacer les filtres"}},record:{loading:"Chargement…",notFound:"Ce projet est introuvable.",create:{title:"Nouveau projet",name:"Nom",type:"Type",startDate:"Date de début",save:"Créer",cancel:"Annuler",hint:"Renseigne l'essentiel pour créer le projet ; le résumé, les liens, l'équipe et les dépôts s'ajoutent ensuite.",error:"Le projet n'a pas pu être créé."},rename:{save:"Enregistrer",cancel:"Annuler"},actions:{rename:"Renommer",changeType:"Changer le type",publish:"Publier",delete:"Supprimer",suspend:"Suspendre",resume:"Reprendre",close:"Clôturer",reopen:"Rouvrir"},close:{prompt:"Comment ce projet se clôture-t-il ?",completed:"Terminé",cancelled:"Annulé"},closureReason:{COMPLETED:"Terminé",CANCELLED:"Annulé"}
31,publishBanner:{ready:"Prêt à publier.",blocked:"Ce brouillon ne peut pas encore être publié :",confirm:{title:"Publier ce projet ?",body:"La publication est définitive. Vérifiez ce qu'elle implique avant de confirmer :",irreversible:"Elle est irréversible — le projet ne pourra jamais revenir à l'état de brouillon ni être supprimé.",visibility:"Il devient visible par les organisations clientes liées et exploitable par les autres domaines (feuilles de temps, facturation, portail).",lifecycle:"Il démarre ouvert, puis son cycle de vie se poursuit par la suspension, la clôture et la réouverture.",confirm:"Publier",cancel:"Annuler"}},deleteConfirm:"Supprimer ce brouillon ? Cette action est irréversible.",section:{edit:"Modifier",save:"Enregistrer",cancel:"Annuler"},about:{title:"À propos",summaryPlaceholder:"Résumé court (anglais, markdown)",descPlaceholder:"Description complète (markdown)",noSummary:"Aucun résumé.",noDescription:"Aucune description.",enRequired:"L'anglais est requis."},period:{title:"Période",start:"Date de début",end:"Date de fin",open:"sans fin"},repos:{title:"Dépôts",workspace:"Espace de travail agent",deployment:"Dépôts de déploiement",deploymentPlaceholder:"org/nom (un par ligne)",deploymentHint:"Un org/nom par ligne.",linked:"Dépôts liés",linkedPlaceholder:"org/nom (un par ligne)",linkedHint:"Dépôts autonomes contenant le code lorsque le projet n'a pas d'espace de travail global — p. ex. un monorepo de démo. Un org/nom par ligne."},verification:{title:"Environnement de vérification",configure:"Configurer",rotate:"Renouveler",clear:"Effacer",baseUrl:"URL de base",pat:"Jeton d'accès personnel",patHint:"Le jeton est à écriture seule. Après l'enregistrement, seule son empreinte reste visible.",fingerprint:"Empreinte du PAT",changedAt:"Dernière modification",notConfigured:"Aucun environnement de vérification configuré.",clearConfirm:{title:"Effacer l'environnement de vérification ?",body:"Cette action supprime l'URL de base et le jeton d'accès personnel enregistré. Un nouveau jeton sera nécessaire pour le reconfigurer.",confirm:"Effacer l'environnement",cancel:"Annuler"}},orgs:{title:"Organisations",add:"Lier une organisation",addPlaceholder:"Rechercher des organisations…",loading:"Chargement…",none:"Aucune organisation à lier.",empty:"Aucune organisation liée.",showEnded:"Afficher les terminées",hideEnded:"Masquer les terminées",end:"Terminer",endPrompt:"Terminer ce lien le :",start:"Date de début",link:"Lier",linkNamed:"Lier {name}",correct:{action:"Modifier",title:"Corriger ce lien",hint:"Corrigez un lien mal saisi. L'organisation ne peut pas être changée ici — annulez et re-liez pour cela.",start:"Date de début",end:"Date de fin",ongoing:"En cours (sans date de fin)",endHelp:"Laissez la date de fin inchangée pour la conserver, ou modifiez-la pour la corriger. Cochez « En cours » pour rouvrir le lien.",save:"Enregistrer"},annul:{action:"Annuler",title:"Annuler ce lien ?",body:"Annuler signifie que ce lien n'aurait jamais dû exister : la ligne disparaît entièrement. Si le lien a bien existé et s'est simplement terminé, utilisez plutôt Terminer.",reason:"Motif",reasonPlaceholder:"Pourquoi ce lien n'aurait-il jamais dû exister ?",confirm:"Annuler le lien",cancel:"Retour"}},team:{title:"Équipe",add:"Affecter un rôle",addPlaceholder:"Rechercher des personnes…",assign:"Affecter",assignNamed:"Affecter {name}",loading:"Chargement…",none:"Personne à affecter.",empty:"Aucun rôle affecté.",end:"Terminer",endPrompt:"Terminer cette affectation le :",endOptional:"Fin (optionnel)",correct:{action:"Modifier",title:"Corriger cette affectation",hint:"Corrigez une affectation mal saisie. La personne ne peut pas être changée ici — annulez et réaffectez pour cela.",role:"Rôle",start:"Date de début",end:"Date de fin",ongoing:"En cours (sans date de fin)",endHelp:"Laissez la date de fin inchangée pour la conserver, ou modifiez-la pour la corriger. Cochez « En cours » pour rouvrir l'affectation.",save:"Enregistrer"},annul:{action:"Annuler",title:"Annuler cette affectation ?",body:"Annuler signifie que cette affectation n'aurait jamais dû exister : la ligne disparaît entièrement. Si l'affectation a bien eu lieu et s'est simplement terminée, utilisez plutôt Terminer.",reason:"Motif",reasonPlaceholder:"Pourquoi cette affectation n'aurait-elle jamais dû exister ?",confirm:"Annuler l'affectation",cancel:"Retour"},roles:{ARCHITECT:"Architecte",FULL_STACK_ENGINEER:"Ingénieur full-stack",AGENT_ENGINEER:"Ingénieur agent",PRODUCT_OWNER:"Responsable produit",DOMAIN_EXPERT:"Expert métier",SPONSOR:"Sponsor",STAKEHOLDER:"Partie prenante"},families:{delivery:"Livraison",product:"Produit & analyse",governance:"Gouvernance"}},streams:{title:"Flux",empty:"Aucun flux déclaré.",register:"Déclarer un flux",yes:"Oui",no:"Non",columns:{name:"Nom",kind:"Type",intent:"Intention",subjects:"Espace de sujets",delivery:"Livraison",replayable:"Rejouable",retention:"Rétention",provenance:"Provenance",actions:"Actions"},kind:{STREAM:"Flux",KV_BUCKET:"Bucket KV"},delivery:{AT_LEAST_ONCE:"Au moins une fois",EXACTLY_ONCE:"Exactement une fois"},form:{kind:"Type",effectiveName:"Nom",effectiveNamePlaceholder:"ex. orders-events",intent:"Intention",intentPlaceholder:"Ce que transporte ce flux et pourquoi",subjectSpace:"Espace de sujets",subjectSpacePlaceholder:"un sujet par ligne",subjectSpaceHint:"Un sujet NATS par ligne. Laissez vide pour aucun.",retentionLogic:"Rétention",retentionLogicPlaceholder:"ex. limits: 7d, ou work-queue",deliveryGuarantee:"Garantie de livraison",replayable:"Rejouable",dedupKey:"Clé de déduplication",dedupKeyPlaceholder:"facultatif",provenanceOptional:"Provenance (facultatif)",deploymentRepo:"Dépôt de déploiement",deploymentRepoPlaceholder:"org/nom",resourcePath:"Chemin de la ressource",resourcePathPlaceholder:"chemin/dans/le/dépôt",declare:"Déclarer"},edit:{action:"Modifier",intent:"Intention",contract:"Contrat",provenance:"Provenance",s
31ave:"Enregistrer",clearProvenance:"Effacer"},remove:{action:"Supprimer",title:"Supprimer ce flux ?",body:"Supprimer « {name} » est définitif : le nom et l'id sont libérés. Si le flux est encore utilisé, l'action est irréversible.",confirm:"Supprimer",cancel:"Annuler"}},history:{title:"Historique",current:"maintenant"},changeType:{currentType:"C'est déjà le type du projet.",reasons:{retype_requires_target_staffing:{internal:"Ce projet ne remplit pas encore la dotation {type} : un architecte et un ingénieur de la plateforme actifs sont requis.",client:"Ce projet ne remplit pas encore la dotation {type} : un lien actif vers une organisation cliente et un sponsor ou une partie prenante externe sont requis.",product:"Ce projet ne remplit pas encore la dotation {type} : un architecte et un ingénieur de la plateforme actifs sont requis.",rnd:"Ce projet ne remplit pas encore la dotation {type} : un architecte et un ingénieur de la plateforme actifs sont requis.",demo:"Ce projet ne remplit pas encore la dotation {type} : au moins un rôle de livraison plateforme actif est requis."}}},timeline:{viewLabel:"Vue de l'équipe",view:{list:"Liste",timeline:"Chronologie"},today:"Aujourd'hui",ongoing:"en cours",soFar:"à ce jour",openActions:"⏎ Ouvrir les actions de l'affectation",empty:"Aucun rôle affecté pour l'instant",summaryLane:"{count, plural, one {# affectation} other {# affectations}}",state:{ongoing:"Actif",ended:"Terminé",planned:"Planifié"},duration:{md:"{months} mois {days} j",d:"{days} j"},aria:{bar:"{name}, {role} ({family}), {range}, {duration}, {state}"},legend:{families:"Familles",filterLabel:"Filtrer par famille de rôle",notation:"Notation",ended:"terminé",ongoing:"en cours",planned:"planifié",sameDay:"même jour",suspended:"période suspendue"},strips:{status:"Statut"}},services:{title:"Services",empty:"Aucun service pour le moment.",publishGate:"Les services s'ouvrent à la publication du projet.",error:"Impossible de charger les services.",newService:"Nouveau service",linkService:"Lier un service partagé",create:"Créer",link:"Lier",save:"Enregistrer",end:"Terminer",endLink:"Terminer le lien",manageLink:"Gérer le lien",changeService:"Changer",loading:"Chargement…",noShared:"Aucun service partagé disponible.",namePlaceholder:"Nom du service",intentPlaceholder:"Intention (facultatif)",repositoryPlaceholder:"Dépôt (facultatif)",descriptionPlaceholder:"Description (facultatif)",classificationAny:"Toute classification",linkPlaceholder:"Rechercher des services partagés…",port:"Port",portPlaceholder:"8000–8999 ou 10000+",overrideLabel:"Classification dérogatoire",overrideNone:"Aucune dérogation",overridden:"Classification redéfinie pour ce projet",validation:{invalid:"Cette valeur n'est pas valide."},ddd:{core:"Cœur",supporting:"Support",generic:"Générique"},state:{converged:"Convergé ({version})",implemented:"Implémenté",draft:"Brouillon",sealed:"Scellé",retired:"Retiré",deprecated:"Déprécié"},origin:{own:"Propre",shared:"Partagé"},col:{service:"Service",classification:"Classification",origin:"Origine",port:"Port",version:"Version"},field:{intent:"Intention",classification:"Classification",repository:"Dépôt",description:"Description"},addField:"Ajouter {field}",editField:"Modifier {field}",clearField:"Retirer {field}"}}}},Ay={workspace:ky},Ey={services:{warnings:{},healFailed:"Impossible de rafraîchir la fiche — la vue peut être obsolète.",healRetry:"Réessayer",record:{bar:{label:"Cycle de vie",usedBy:"Utilisé par",usedByEmpty:"Aucun projet ne l'utilise pour l'instant",olderRows:"{count, plural, one {# version antérieure} other {# versions antérieures}} de la v{version}",deprecated:"Dépréciée",retired:"Retirée",noActiveMajor:"Aucune version majeure active — le sélecteur de version donne accès aux dépréciées et aux retirées.",olderElided:"Versions antérieures non affichées",nextMajor:"majeure",nextMinor:"mineure",nextPatch:"patch",phase:{shapeUndefined:"Forme à définir",drafting:"En rédaction…",patchDrafting:"Correction — en rédaction",implementing:"Scellée — en cours d’implémentation",observing:"Implémentée, vérifications en attente",observingVerified:"Implémentée et vérifiée",converged:"Convergée"},missing:{functionalSpec:"spécification fonctionnelle",permissions:"permissions"},missingList:"manque : {list}",sealPatchTitle:"Sceller le patch {version}",sealPatchBody:"Sceller calcule la signature du patch et le confie à l’implémentation. Il peut revenir en brouillon tant que rien n’a été implémenté contre lui.",implementedAndVerified:"Implémentée et vérifiée",jobStep:"étape {step}/{total} · {label}",jobQueued:"en file",jobStepsDone:"{done}/{total} étapes terminées",jobStarting:"démarrage…",activity:{programmed:"Un job ou une tâche est programmé sur cette version et n'a pas encore démarré",active:"Un job est en cours d'exécution sur cette version",draft:"Brouillon en attente de scellement"},taskUnclaimed:"non assignée",taskClaimed:"assignée",taskClaimedBy:"assignée à {name}",claimTask:"Prendre {name}",offAir:"Mises à jour en direct arrêtées",convergeOn:"Marquer convergé sur {version}",markConverged:"Marquer convergé",laneConverged:"Convergée",claimExpires:"retenue jusqu’au {date}",pullRequest:"PR",failureLabel:"{block} en échec",block:{scaffold:"Amorçage",implement:"Implémentation",verify:"Vérification",unknown:"Travail"},job:{requested:"demandé",queued:"en file",running:"en cours",completed:"terminé",failed:"en échec",rejected:"refusé",cancelled:"annulé",unknown:"inconnu"},task:{pending:"en attente",claimable:"à prendre",claimed:"prise",lapsed:"prise expirée",completed:"terminée",rejected:"refusée",cancelled:"annulée",unknown:"inconnu"}
31,breaches:"{count, plural, one {# brèche} other {# brèches}}",breachesLabel:"La majeure {major} porte {count, plural, one {# brèche de contrat ouverte} other {# brèches de contrat ouvertes}} — toutes sont listées dans le tableau des brèches ci-dessous.",fixCount:"{fixed}/{total}",fixCountLabel:"{total, plural, one {Ce correctif s'engage à corriger # rupture} other {Ce correctif s'engage à corriger # ruptures}} : {fixed, plural, one {# corrigée} other {# corrigées}}, {open, plural, one {# encore ouverte} other {# encore ouvertes}}.",deleteMinor:"Supprimer v{label}",shared:"Partagé"},notFound:"Service introuvable",unavailable:"Service indisponible.",minorUnavailable:"Détails de la version mineure indisponibles.",liveLost:"Mises à jour en direct arrêtées — la fiche peut être obsolète.",classification:"Classification",repo:"Dépôt",repoPlaceholder:"owner/repo",classificationKind:{CORE:"Cœur",SUPPORTING:"Support",GENERIC:"Générique"},scope:{label:"Périmètre projet",all:"Toutes",project:"Ce projet",others:"Autres projets",chip:"{scope} : {count, plural, one {# consommation} other {# consommations}}"},links:{empty:"Aucun projet n’utilise ce service",open:"en cours",port:"port",history:"{count, plural, one {# lien terminé} other {# liens terminés}}"},details:{intent:"Intention"},inline:{edit:"Modifier {field}"},header:{titleLabel:"Nom du service",intentPlaceholder:"Ajouter une intention en une ligne",descriptionPlaceholder:"Ajouter une description",classificationPlaceholder:"Définir la classification",shared:"Partagé",sharedTooltip:"Service partagé — n'appartient à aucun projet en particulier",convergedTooltip:"Convergé — le service en production correspond à la v{version}",twin:"Jumeau → {name}",twinTooltip:"Jumeau de {name}",repoChip:"dépôt",repoEdit:"Modifier le dépôt",showMore:"Voir plus",showLess:"Voir moins",scaffolded:"Échafaudé le {date}",scaffoldedTooltip:"L’échafaudage de ce service a été enregistré comme terminé le {date}. Enregistré une seule fois, jamais réinitialisé.",notScaffolded:"Non échafaudé",notScaffoldedTooltip:"Aucun échafaudage n’a été enregistré pour ce service. Un runner l’enregistre après avoir ouvert la PR d’échafaudage ; un échafaudage fait à la main s’enregistre depuis le menu d’actions."},tabs:{functionalSpec:"Spéc. fonctionnelle",permissions:"Permissions",offers:"Offres",consumptions:"Consommations",e2e:"e2e",sdl:"SDL",dbSchema:"Schéma BD",restEndpoints:"REST",discussions:"Discussions"},envelope:{documentsEmpty:"Aucun document",correctionHint:"Correction — répare la formulation, jamais le sens",offersEmpty:"Aucune offre",consumptionsEmpty:"Aucune consommation",unavailable:"Offres et consommations indisponibles.",filteredEmpty:"Aucun élément ne correspond au filtre",gestureFailed:"L'action n'a pas pu être effectuée",gesture:{cancel:"Annuler",save:"Enregistrer",confirmDelete:"Supprimer"},offer:{declare:"Déclarer une offre",declareSubmit:"Déclarer",correct:"Corriger",type:"Type",naturalKey:"Clé naturelle",shortDescription:"Description courte",payload:"Charge utile",payloadHint:"Description minimale de la charge utile de l'événement / commande / entrée KV",setType:"Définir le type",setNaturalKey:"Définir la clé",setShortDescription:"Définir la description",setPayload:"Définir la charge utile",setTargetDeletion:"Définir la cible",targetDeletionVersion:"Version cible de suppression",deprecation:"Dépréciation",deprecationDeclaredIn:"Annoncée dans {version}",deprecationUndeclared:"Aucune dépréciation annoncée",deprecationEffectiveIn:"effective dans {version}",deprecationPending:"pas encore effective",markDeprecation:"Marquer pour dépréciation",unmarkDeprecation:"Annuler la dépréciation",markDeletion:"Marquer pour suppression",unmarkDeletion:"Annuler la suppression",hardDelete:"Supprimer",hardDeleteTitle:"Supprimer cette offre ?",hardDeleteBody:"Cette offre non implémentée sera retirée du brouillon. Action irréversible.",state:"État",consumers:"Consommateurs",target:"Cible",unconsumed:"Non consommée",consumersList:"Consommateurs",consumerImplemented:"implémenté",sealed:"Scellée",sealedHint:"Consommée par une consommation implémentée — sa clé et sa charge utile sont figées",keyChecking:"Vérification de la clé…",keyValid:"Clé disponible",keyInvalid:"Clé non autorisée",keyUnavailable:"Vérification indisponible — modifiez la clé pour réessayer.",markImplemented:"Marquer implémentée dans {version}",markDeleted:"Marquer supprimée dans {version}
31",stream:"Flux",setStream:"Déclarer le flux",correctStream:"Changer le flux",noStream:"Aucun flux",streamPlaceholder:"Choisir un flux",streamsLoading:"Chargement des flux…",streamsNoProject:"Aucun tissu de projet où choisir — ce service n’est rattaché à aucun.",streamOwnedHint:"Désigne un flux du tissu du projet propriétaire. Une offre événement ou commande exige un flux, une offre KV un bucket KV.",streamSharedHint:"Ce service est partagé : le nom et le type choisis sont capturés comme exigence — un flux correspondant doit exister sur le tissu de chaque projet rattaché. Choisissez dans n’importe lequel ; c’est le couple capturé qui engage, pas la ligne.",streamTooltip:"Fourni sur {name} ({kind})",streamKind:{STREAM:"Flux",KV_BUCKET:"Bucket KV"},streamsEmpty:"Aucun flux n’est encore déclaré sur le tissu de ce projet.",streamsEmptyIn:"Aucun flux n’est encore déclaré sur le tissu de {project}."},offerState:{declared:"Déclarée",implemented:"Implémentée",markedForDeprecation:"Marquée pour dépréciation",deprecated:"Dépréciée",markedForDeletion:"Marquée pour suppression",deleted:"Supprimée"},consumption:{shown:"Affichées",declare:"Déclarer une consommation",declareSubmit:"Déclarer",correct:"Corriger",kind:"Genre",consumedOffers:"Offres consommées",provider:"Producteur",state:"État",warnings:"Alertes",searchOffers:"Rechercher des offres consommables…",noConsumable:"Aucune offre consommable",filterPolicy:"Politique de filtre",projectionPolicy:"Politique de projection",mergePolicy:"Politique de fusion",projectionTables:"Tables de projection",eventReactions:"Réactions aux événements",commandImplementation:"Implémentation de la commande",setMergePolicy:"Définir la fusion",setFilterPolicy:"Définir le filtre",setProjectionPolicy:"Définir la projection",setProjectionTables:"Définir les tables",setEventReactions:"Définir les réactions",setCommandImplementation:"Définir l'implémentation",setProjectLink:"Définir le lien projet",projectLink:"Lien projet",projectLinkPlaceholder:"Sélectionner un lien projet",addOffer:"Ajouter une offre",removeOffer:"Retirer l'offre",markDeletion:"Marquer pour suppression",unmarkDeletion:"Annuler la suppression",hardDelete:"Supprimer",hardDeleteTitle:"Supprimer cette consommation ?",hardDeleteBody:"Cette consommation non implémentée sera retirée du brouillon. Action irréversible.",deprecated:"Dépréciée",deprecatedConsumed:"{count, plural, one {# offre consommée est dépréciée} other {# offres consommées sont dépréciées}}",inboxDriftTest:"Test de dérive d'inbox",markImplemented:"Marquer implémentée dans {version}",markDriftImplemented:"Marquer test de dérive inbox implémenté dans {version}",markDeleted:"Marquer supprimée dans {version}"},consumptionState:{declared:"Déclarée",implemented:"Implémentée",markedForDeletion:"Marquée pour suppression",deleted:"Supprimée"}},envelopeDiff:{change:{added:"Ajoutée",modified:"Modifiée",deprecating:"En dépréciation",deprecated:"Dépréciée",removed:"Retirée"},counts:{added:"{count, plural, one {# ajoutée} other {# ajoutées}}",modified:"{count, plural, one {# modifiée} other {# modifiées}}",deprecating:"{count} en dépréciation",deprecated:"{count} dépréciée(s)",removed:"{count, plural, one {# retirée} other {# retirées}}",unchanged:"{count, plural, one {# inchangée} other {# inchangées}}"},field:{type:"Type",shortDescription:"Description courte",payload:"Charge utile",stream:"Flux",markedForDeprecation:"Marquée pour dépréciation",targetDeletionVersion:"Version cible de suppression",markedForDeletion:"Marquée pour suppression",consumes:"Offres consommées",filterPolicy:"Politique de filtre",projectionPolicy:"Politique de projection",mergePolicy:"Politique de fusion",projectionTables:"Tables de projection",eventReactions:"Réactions aux événements",commandImplementation:"Implémentation de la commande",gesture:"Geste",technicalSpec:"Spécification technique",testsAuthz:"Teste l’autorisation",channels:"Canaux d’observation",projectLinkId:"Lien projet",inboxDriftTestId:"Test de dérive d’inbox",title:"Titre",naturalKey:"Clé naturelle"},noChanges:"Rien dans cette famille n’a bougé entre {from} et {to}.",detailUnavailable:"Nommé par le diff du registre mais absent des deux instantanés de version — ouvrez les versions pour l’inspecter.",noFieldDetail:"Modifié selon le registre — aucune différence de champ sur la surface lue ici.",unchangedShow:"{count, plural, one {# élément inchangé} other {# éléments inchangés}} — afficher",unchangedHide:"{count, plural, one {# élément inchangé} other {# éléments inchangés}} — masquer",unavailable:"Le diff de versions n’a pas pu être lu."},tests:{title:"Tests",empty:"Aucun test déclaré pour l’instant.",filteredEmpty:"Aucun test ne correspond au filtre.",noVersion:"Sélectionnez une version pour voir ses tests.",untitled:"Test sans titre",expandRow:"Afficher le détail de {title}",collapseRow:"Masquer le détail de {title}",filterLabel:"Statut",actionFailed:"L’action n’a pas pu être effectuée.",deletedNote:"supprimé en {version}
31",coversBreaches:"{count, plural, one {Couvre # brèche} other {Couvre # brèches}}",inboxDriftFor:"{count, plural, one {Test de dérive d’inbox pour # consommation} other {Test de dérive d’inbox pour # consommations}}",status:{pending:"En attente",implemented:"Implémenté",scheduled:"Suppression planifiée",deleted:"Supprimé"},sort:{version:"Plus récents d’abord",title:"Par titre",status:"Par statut"},columns:{status:"Statut",title:"Test",channels:"Canaux",declaredIn:"Déclaré en",implementedIn:"Implémenté en",actions:"Actions"},channels:{nats:"Utilise NATS",db:"Utilise la base de données",redis:"Utilise Redis",authz:"Teste l’autorisation"},declare:{open:"Déclarer un test",heading:"Déclarer un test",submit:"Déclarer",blocked:"Déclarer un test n’est pas disponible ici.",noPatch:"Aucun patch ouvert où déclarer un test — tous les patchs sont implémentés."},edit:{heading:"Corriger le test",submit:"Enregistrer"},form:{title:"Titre",shortDescription:"Description courte",gesture:"Geste",gestureHint:"Le contrat métier, en Markdown — compréhensible sans connaissance préalable.",technicalSpec:"Spécification technique (optionnelle)",technicalSpecHint:"État initial, canaux observés, action, assertions exactes — Gherkin bienvenu.",channels:"Canaux d’observation",cancel:"Annuler"},detail:{gesture:"Geste",shortDescription:"Description courte",technicalSpec:"Spécification technique"},actions:{edit:"Corriger",markImplementedIn:"Marquer implémenté en {version}",scheduleDeletion:"Planifier la suppression",cancelDeletion:"Annuler la suppression",delete:"Supprimer",deleteConfirmTitle:"Supprimer ce test ?",deleteConfirmBody:"Cela supprime définitivement le test non implémenté « {title} ». Cette action est irréversible.",deleteConfirmCancel:"Annuler",deleteConfirmConfirm:"Supprimer"}}
31,document:{mode:{view:"Aperçu",diff:"Comparer deux versions",edit:"Éditer",compare:"Comparer le rendu",correct:"Corriger"},correctionBadge:"Correction",fold:{fold:"replier la section",unfold:"déplier la section"},copy:{action:"Copier le markdown",copied:"Copié",error:"Le document n’a pas pu être copié."},history:{mode:"Historique",plateau:"Modification {index}",current:"Actuel",currentHint:"Document en cours",carousel:{label:"Historique des modifications",newer:"Afficher les modifications plus récentes",older:"Afficher les modifications plus anciennes"},node:{current:"actuel",plateau:"n°{index}"},face:{changes:"Changements",document:"Document"},base:{label:"Comparé à",previousEdit:"Modification précédente",previousPatch:"Patch précédent",noPreviousPatch:"Aucun patch n'avait été réalisé à ce moment-là."},side:{current:"Actuel — document en cours",plateau:"Modification {index} — {date}",patch:"v{version} — réalisée le {date}",origin:"Avant la première modification",asOf:"Au {date}"},unchanged:{sinceLatestEdit:"Rien n'a changé depuis la modification la plus récente. Le document en cours est exactement tel qu'il était alors.",thisEdit:"Cette modification n'a rien changé — le document est exactement tel qu'il était avant elle.",sincePatch:"Rien n'a changé depuis la réalisation de la v{version}."},baseEmpty:"Le document n'existait pas encore à ce moment-là : tout ce qui suit est un ajout.",neverEdited:"Ce document n'a jamais été modifié.",noDocumentAt:"Le document n'existait pas encore à cet instant.",snapshotUnavailable:"Cette version du document n'a pas pu être chargée.",rollback:"Restaurer cette version"},correctiveSave:{title:"Enregistrement correctif sur une mineure scellée",body:`Cette mineure est scellée et implémentée : cette écriture est une ACTION CORRECTIVE sur une intention publiée, pas une modification ordinaire.
32Les corrections réparent la formulation — une coquille, une ambiguïté — jamais le sens. La signature d'intention est recalculée. Si cela change ce que le service promet, ouvrez plutôt une nouvelle mineure.`,bodyRollback:`Cette mineure est scellée et implémentée : restaurer le texte tel qu'il était au {date} est une ACTION CORRECTIVE sur une intention publiée, pas une modification ordinaire.
33Le document revient à cette version et la signature d'intention est recalculée. Si le texte restauré change ce que le service promet, ouvrez plutôt une nouvelle mineure.`,confirm:"Enregistrer la correction"},diff:{showMore:"{count, plural, one {# ligne inchangée} other {# lignes inchangées}} — afficher",unchanged:"Ces deux versions portent le même document, mot pour mot."},compare:{pick:"Version",needsTwoVersions:"Nécessite une deuxième version"},comparisonUnavailable:"La version comparée n'a pas pu être chargée.",edit:{editorLabel:"Source du document",save:"Enregistrer",cancel:"Annuler"},discard:{title:"Abandonner les modifications ?",body:"Ce document comporte des modifications non enregistrées. Quitter le mode Édition les abandonnera.",keep:"Continuer l'édition",discard:"Abandonner"},empty:{functionalSpec:"Aucune spécification fonctionnelle",permissions:"Aucune permission définie",writeFunctionalSpec:"Rédiger la spécification fonctionnelle",writePermissions:"Rédiger les permissions"},saveFailed:"Le document n'a pas pu être enregistré."},actions:{publish:"Publier",deprecate:"Déprécier",retire:"Retirer",reactivate:"Réactiver",deleteDraft:"Supprimer le brouillon",deprecateService:"Déprécier le service",retireService:"Retirer le service",reactivateService:"Réactiver le service",deleteDraftService:"Supprimer le service (brouillon uniquement)",openVersion:"Ouvrir une version",seal:"Sceller",markVerified:"Marquer vérifié",cancel:"Annuler",menu:"Actions du service",recordScaffoldCompleted:"Enregistrer l’échafaudage terminé",recordScaffold:"Enregistrer"},confirm:{publish:"Publier ce service ?",publishIntro:"La publication fait de ce service une entrée de registre publiée.",deprecate:"Déprécier ce service ?",deprecateIntro:"La dépréciation signale que la consommation de ce service est déconseillée.",retire:"Retirer ce service ?",retireIntro:"Le retrait écarte ce service du service actif.",reactivate:"Réactiver ce service ?",reactivateIntro:"La réactivation rétablit ce service en service actif.",deleteDraft:"Supprimer ce service en brouillon ?",deleteDraftIntro:"Ceci supprime définitivement le service en brouillon.",seal:"Sceller cette version ?",sealIntro:"Le scellement fige l'enveloppe de cette version et calcule son empreinte de scellement.",markVerified:"Marquer cette version comme vérifiée ?",markVerifiedIntro:"La vérification atteste que l'implémentation observée correspond à la spécification scellée.",retireMajor:"Retirer cette version majeure ?",deleteMajor:"Supprimer cette version majeure ?",deprecateMajor:"Déprécier cette version majeure ?",reactivateMajor:"Réactiver cette version majeure ?",recordScaffoldCompleted:"Enregistrer l’échafaudage comme terminé ?",deleteMinor:"Supprimer cette version mineure ?",deletePatch:"Supprimer cette version patch ?"},consequences:{publish:`Consommable par les autres dans le registre.
34Les prérequis de publication s'appliquent : résumé, sous-domaine et classification renseignés.
35Un service spécifique à un projet nécessite un lien de projet actif.`,deprecate:`Les consommateurs sont invités à s'en détourner.
36Le service reste consultable ; il n'est pas supprimé.`,retire:`Le service est écarté du service actif.
37Les enveloppes existantes sont conservées pour l'historique.`,reactivate:`Le service revient en service actif.
38La consommation n'est plus déconseillée.`,deleteDraft:`Le service en brouillon est entièrement supprimé.
39Cette action est destructrice et irréversible.`,seal:`L'enveloppe — documents, offres, consommations et tests e2e — est figée.
40L'empreinte de scellement est calculée et enregistrée.
41Le contenu devient immuable, sauf via la fenêtre de corrections.
42Irréversible : rouvrir signifie ouvrir une nouvelle version.`,markVerified:`Une attestation humaine que l'implémentation observée correspond à la spécification scellée.
43Enregistrée avec l'empreinte de vérification.`,retireMajor:`La version majeure est retirée du service actif.
44Les versions existantes sont conservées pour l'historique.`,deleteMajor:`La version majeure est entièrement supprimée.
45Cette action est destructrice et irréversible.`,deprecateMajor:`Les consommateurs sont invités à quitter cette version majeure.
46La majeure reste consultable ; elle n’est pas supprimée.`,reactivateMajor:`La version majeure revient en service actif.
47Sa consommation n’est plus déconseillée.`,recordScaffoldCompleted:`Le registre note l’échafaudage de ce service comme terminé.
48Cela ne se fait qu’une fois : une seconde tentative est refusée.`,deleteMinor:`La version mineure et les patchs nés avec elle sont entièrement supprimés.
49Son numéro retourne au pool et sera réattribué à la prochaine mineure ouverte.
50Cette action est destructrice et irréversible.`,deletePatch:`La version patch est entièrement supprimée et son numéro retourne au pool.
51La mineure retrouve l’état de convergence qui était le sien avant l’ouverture de ce patch.
52Cette action est destructrice et irréversible.`},create:{name:"Nom",summary:"Résumé"},kindFilter:{chip:"{family} : {count, plural, one {# élément} other {# éléments}} — basculer"},kindFamily:{kv:"KV",event:"Événements",command:"Commandes"},lifecycle:{draft:"Brouillon",sealed:"Scellé",implemented:"Implémenté",converged:"Convergé",breaches:"Ruptures de contrat",deprecated:"Déprécié",retired:"Retir
52é"},nav:{sealMinor:"Sceller",sealPatch:"Sceller",unsealPatch:"Desceller",imagePublished:"Image publiée",patchReasonPlaceholder:"Pourquoi ce correctif ?",cancel:"Annuler",createMajorConfirmBody:"Démarre une nouvelle piste majeure, en cascadant sa première mineure et son premier patch, et en reportant les documents implémentés actuels.",createMajorConfirm:"Créer la majeure",createPatchReason:"Raison (facultatif)",createPatchBreaches:"Ruptures à corriger (facultatif)",createPatchNoBreaches:"Aucune rupture ouverte à rattacher.",createPatchSealHint:"Le scellement de ce correctif exigera une raison ou au moins une rupture à corriger.",createPatchConfirm:"Créer le correctif",createMinorConfirmBody:"Ouvre une nouvelle mineure en brouillon, en reportant les documents de la dernière mineure implémentée et en cascadant son patch 0. La mineure précédente doit être implémentée.",createMinorConfirm:"Créer la mineure",sealMinorConfirm:"Sceller la mineure",sealPatchConfirmTitle:"Sceller ce correctif ?",sealPatchConfirmBody:"Le scellement calcule la signature du correctif et le remet à l’implémentation. Il exige une raison ou au moins une rupture à corriger.",sealPatchConfirm:"Sceller le correctif",unsealPatchConfirmTitle:"Desceller ce correctif ?",unsealPatchConfirmBody:"Le descellement ramène le correctif au statut brouillon et abandonne sa signature, afin d’en corriger la forme sur place. Il pourra être scellé de nouveau ensuite.",unsealPatchConfirm:"Desceller le correctif",noMajorHint:"Ce service n'a encore aucune version. Créez sa première version majeure pour commencer à définir sa forme technique.",createMajorZero:"Créer la version majeure 0",selectAllBreaches:"Tout sélectionner",deselectAllBreaches:"Tout désélectionner",createPatchShouldFixFailed:"{failed} engagement(s) de correction sur {total} n’ont pas pu être rattachés — réengagez-les depuis la liste des ruptures.",createPatchShouldFixFailedReason:"{failed} engagement(s) de correction sur {total} n’ont pas pu être rattachés — {reason} Réengagez-les depuis la liste des ruptures."},gesture:{failed:"L'action n'a pas pu être effectuée."}
52,major:{menu:"Actions de la version majeure",delete:"Supprimer la version majeure",deprecateVersion:"Déprécier la majeure v{number}",retireVersion:"Retirer la majeure v{number}",reactivateVersion:"Réactiver la majeure v{number}",deleteVersion:"Supprimer la majeure v{number}",title:"Version majeure v{number}",manner:"Manière",eda:"Posture EDA",edaTag:"EDA",dumbFrontEnd:"Frontend passif",dumbFrontEndTag:"Front passif",backEndMonolith:"Monolithe backend",backEndMonolithTag:"Monolithe",multiPod:"Support multi-pod",multiPodTag:"Multi-pod",technical:"Technique",sourcePaths:"Chemins du code source",sourcePathsPlaceholder:"Un chemin par ligne",stack:"Stack",shapeToDefine:"Forme technique à définir : {list}",stackAddLanguage:"langage",stackAddFramework:"framework",stackPickLanguage:"Ajouter un langage",stackPickFramework:"Ajouter un framework",stackRemoveLanguage:"Retirer le langage {name}",stackRemoveFramework:"Retirer le framework {name}",stackLoading:"Chargement du référentiel…",stackUnavailable:"Référentiel indisponible — fermez puis rouvrez pour réessayer.",stackNoLanguages:"Tous les langages sont déjà sur cette majeure.",stackNoFrameworks:"Aucun framework restant pour les langages de cette majeure.",stackNeedsLanguage:"Ajoutez d’abord un langage — les frameworks suivent les langages de la majeure."},mannerKind:{HEXAGONAL:"Hexagonale",FATTY:"Monobloc",HUMAN_DRIVEN:"Piloté par l'humain"},edaKind:{FULL:"Complète",SOFT:"Souple",CRUD:"CRUD"},boolean:{yes:"Oui",no:"Non"},patch:{procedural:"Généré automatiquement",proceduralAttestation:"Exporté depuis le code (export de schéma / pg_dump), non écrit à la main — c’est ce qui fait passer le patch à implémenté.",empty:"Aucun contenu",menu:"Actions de la ver
52sion patch",delete:"Supprimer la version patch",deleteVersion:"Supprimer le patch v{label}"},breaches:{title:"Ruptures",none:"Aucune rupture de contrat déclarée.",unavailable:"Ruptures de contrat indisponibles.",noOpen:"Aucune rupture ouverte",openCount:"{count, plural, one {# rupture ouverte} other {# ruptures ouvertes}}",committedCount:"{count} engagée(s) sur {version}",converged:"Convergé",declare:"Déclarer une rupture",declareConfirm:"Déclarer",declareAnchor:"Ancrée sur le dernier patch {version}.",declareNoPatch:"Aucun patch sur lequel ancrer la rupture pour l’instant.",cancel:"Annuler",shortDescription:"Description courte",reproduction:"Reproduction",reproductionOptional:"Reproduction (facultatif)",analysis:"Analyse",analysisOptional:"Analyse (facultatif)",linkTest:"Lier un test",linkTestLabel:"Test e2e couvrant",linkTestConfirm:"Lier",noTests:"Ce mineur n’a aucun test e2e à lier.",coveringTestOptional:"Test couvrant (facultatif)",testPlaceholder:"Sélectionner un test",coversTest:"Test : {title}",markFixed:"Marquer corrigée dans {version}",commitShouldFix:"À corriger dans {version}",markIrrelevant:"Marquer non pertinente",delete:"Supprimer",deleteTitle:"Supprimer cette rupture ?",deleteBody:"Cela supprime définitivement la rupture de contrat. Cette action est irréversible.",empty:"—",shouldFix:"À corriger ({count})",shouldFixLabel:"Ruptures que ce patch s’engage à corriger",recordImage:"Enregistrer l’image",image:"Référence de l’image",state:{open:"Ouverte",fixedIn:"Corrigée dans {version}",irrelevantAfter:"Non pertinente après {version}",shouldFixIn:"à corriger → {version}",fixed:"Corrigée"}
52,showResolved:"Afficher les résolues ({count})",hideResolved:"Masquer les résolues",allResolved:"Toutes les brèches sont résolues.",editReproduction:"Modifier la reproduction",editAnalysis:"Modifier l'analyse",observation:{remainingDH:"{days}j {hours}h",remainingHM:"{hours}h {minutes}min",remainingM:"{minutes}min",lessThanMinute:"<1min"},aboutItem:"À propos d’un élément de contrat (facultatif)",aboutItemHint:"Désignez l’unique offre, consommation ou test concerné par cette violation. Choix définitif — ni l’élément ni la raison ne pourront être modifiés ensuite.",aboutNone:"Aucun élément en particulier",aboutOffers:"Offres",aboutConsumptions:"Consommations",aboutTests:"Tests e2e",aboutUnnamed:"Consommation sans offre pour l’instant",aboutNamed:"{kind} : {name}",aboutUnresolved:"{kind} d’une version antérieure",aboutKind:{OFFER:"Offre",CONSUMPTION:"Consommation",TEST:"Test"},severityLabel:"Gravité",severityPlaceholder:"Choisir une gravité",severity:{VERY_LOW:"Très faible",LOW:"Faible",MEDIUM:"Moyenne",HIGH:"Élevée"},rerank:"Changer la gravité",reasonLabel:"Raison",reason:{NOT_IMPLEMENTED:"Non implémenté",BADLY_IMPLEMENTED:"Mal implémenté",NOT_REMOVED:"Non supprimé"},reasonWhen:{NOT_IMPLEMENTED:"Déclaré et jamais réalisé — uniquement tant qu’aucun patch ne l’implémente.",BADLY_IMPLEMENTED:"Réalisé, mais en contradiction avec sa déclaration — uniquement une fois qu’un patch l’implémente.",NOT_REMOVED:"Programmé pour suppression et jamais supprimé — uniquement tant que l’élément attend sa suppression."},reasonEffect:{NOT_IMPLEMENTED:"Tant que cette violation subsiste, l’élément ne peut pas être marqué implémenté.",BADLY_IMPLEMENTED:"Ne bloque rien — seule une vérification humaine la clôt.",NOT_REMOVED:"Tant que cette violation subsiste, l’élément ne peut pas être marqué supprimé."},ageUnknown:"héritée",ageCurrent:"sur le dernier patch",agePatches:"{count, plural, one {# patch en arrière} other {# patchs en arrière}}",relation:{declaredIn:"Déclarée dans {version}",shouldBeFixedIn:"À corriger dans {version}",shouldHaveBeenFixedIn:"Aurait dû être corrigée dans {version}",hasBeenFixedIn:"Corrigée dans {version}"},markFixedNoTarget:"Marquer corrigée",markFixedPick:"Choisir le patch qui l’a corrigée",noFixTarget:"Aucun patch implémenté après {version} sur ce majeur — une correction ne peut être enregistrée que dans un patch livré."},implementation:{explainer:"Un correctif est implémenté une fois qu’il est scellé, que son image est enregistrée et que son SDL et son schéma de base de données sont générés. L’implémentation débloque la déclaration de ruptures sur la version mineure.",titleFor:"Implémentation — v{version}",explainerLabel:"À propos de l’implémentation",implementedCue:"Implémenté",convergedCue:"Convergé",details:"Détails",sealed:"Scellé",image:"Image enregistrée",sdlProcedural:"SDL généré",dbProcedural:"Schéma de base généré",met:"Rempli",unmet:"Non rempli",recordImage:"Enregistrer l’image",editImage:"Modifier l’image",imageRef:"Référence d’image",derivedHint:"Implémenté est dérivé — enregistrez l'image publiée et laissez le déploiement poster le SDL + schéma BD procéduraux pour faire avancer ce patch scellé.",confirmingImage:"Confirmation de l'image…",proceduralHint:"Le SDL et le schéma de base sont publiés par le script ou l’agent de déploiement (procédural), pas édités à la main ici.",awaitingDeployment:"En attente du déploiement",openDoc:"Ouvrir ce document ci-dessous",awaitingHint:"Le déploiement publie le SDL et le schéma de base procéduraux et ce patch devient implémenté de lui-même — ou publiez-les vous-même ci-dessous, en cochant « Généré automatiquement ».",restOptional:"Endpoints REST (optionnel)"},identity:{title:"Identité",shape:"Forme technique",stack:"Stack",owner:"Propriétaire",twin:"Jumeau de",twinBounds:"Compatibilité jumeau",twinBoundsRange:"{min} → {max}",twinBoundsOpen:"tout patch plus récent",scaffold:"Scaffold",majorSection:"Majeure {number}",usedIn:"Utilisé dans {count, plural, =0 {aucun projet} one {# projet} other {# projets}}",menu:"Actions du service et de la majeure",menuService:"Service"},knownTasks:{title:"Tâches connues",explainer:"Ce que ce registre a commandé pour ce service. Leur exécution relève du service des tâches.",summary:"{open} ouverte(s) · {total} commandée(s)",emptySummary:"Rien de commandé",empty:"Ce registre n’a encore rien commandé pour ce service.",unavailable:"Tâches connues indisponibles.",openHint:"Toujours ouverte",settledHint:"Réglée",staged:"Préparée le {date}",confirmed:"Confirmée le {date}",settled:"Réglée le {date}",heldBy:"Tenue par {id}",settledReason:"Motif : {reason}",settledReasons:{major_deprecated:"Majeure dépréciée",major_retired:"Majeure retirée",service_retired:"Service retiré",service_deleted:"Service supprimé",minor_deleted:"Mineure supprimée",patch_deleted:"Patch supprimé",patch_unsealed:"Patch descellé",breach_irrelevant:"Rupture jugée sans objet",breach_deleted:"Rupture supprimée",twin_retired:"Jumeau retiré",superseded_by_newer_patch:"Supplanté par un patch plus récent",superseded_by_newer_schema_change:"Supplanté par un changement de schéma plus récent"},type:{SCAFFOLD_SERVICE:"Échafauder le service",SCAFFOLD_PATCH:"Échafauder le patch",IMPLEMENT_PATCH:"Implémenter le patch",VERIFY_PATCH:"Vérifier le patch",VERIFY_BREACH_FIX:"Vérifier la correction d’une rupture",VERIFY_TWIN:"Vérifier le jumeau",CHECK_UNDELIVERED_ITEMS:"Contrôler les éléments non livrés"},state:{PENDING:"Préparée",LIVE:"En cours",CLAIMED:"Prise en charge",COMPLETED:"Terminée",CANCELLED:"Annulée",LAPSED:"Caduque",CREATION_REJECTED:"Création refusée",COMPLETION_REJECTED:"Achèvement refusé",CANCELLATION_REJECTED:"Annulation refusée"}},createDialog:{majorTitle:"Créer une version majeure",majorDoctrine:"Changer la forme technique ⇒ nouvelle majeure.",minorTitle:"Créer une version mineure",minorDoctrine:"Une nouvelle intention déclarée — contenu repris de {latest}.",patchTitle:"Créer une version patch",patchDoctrine:"Une étape de réalisation vers l'intention de {minor}.",targetMajor:"Majeure cible",noneAvailable:"Aucune version ne peut être créée ici.",bumpMajor:"nouvelle majeure",bumpMinor:"nouvelle mineure",bumpPatch:"nouveau patch"},inspector:{stages:{defined:"définie",draft:"brouillon",sealed:"scellée",implemented:"implémentée",converged:"convergée"},regime:{major:"Changer la forme ⇒ nouvelle version majeure.",minorSealed:"Scellée — corrections uniquement ; nouveaux besoins ⇒ nouvelle mineure.",patch:"Réalisation — converge vers l'intention de la mineure ; il ne porte aucune intention propre."},signature:"Signature",intentSignature:"Signature d'intention",offerCount:"{count, plural, one {# offre} other {# offres}}",consumptionCount:"{count, plural, one {# consommation} other {# consommations}}",testCount:"{count, plural, one {# test} other {# tests}}",reason:"Motif",checklistTitle:"Checklist d'implémentation",implReportTitle:"Rapport d’implémentation",implReportSummary:"{count, plural, one {# exécution} other {# exécutions}}",implReportEmpty:"Rien n’a encore été exécuté pour ce patch.",implReportUnavailable:"Le journal des exécutions n’a pas pu être chargé.",implReportOpenTask:"Ouvrir la tâche",shouldFixTitle:"À corriger",shouldFixCount:"{count} sur {total} ouvertes sur cette version majeure",shouldFixNone:"Ce patch ne s'engage encore sur aucune correction de rupture.",shouldFixFootnote:"Gérer tout le pool dans la section Brèches",workUnavailable:"Le travail restant n'a pas pu être chargé.",workTitle:"Travail restant",workTests:"{count, plural, one {# test à implémenter} other {# tests à implémenter}}",workOffers:"{count, plural, one {# offre à marquer implémentée} other {# offres à marquer implémentées}}",workConsumptions:"{count, plural, one {# consommation à marquer implémentée} other {# consommations à marquer implémentées}}"},discussions:{title:"Discussions",openCount:"{count, plural, one {# discussion ouverte} other {# discussions ouvertes}}",openThreads:"{count, plural, one {Voir les discussions (# ouverte)} other {Voir les discussions (# ouvertes)}}",openThreadsUnknown:"Voir les discussions",surfacePending:"Chargement des discussions…",status:{open:"Ouverte",resolved:"Résolue"},filter:{all:"Toutes",open:"Ouvertes",resolved:"Résolues"},filterLabel:"Filtrer les discussions",threadAria:"Discussion de {name}",toggleThread:"Plier/déplier la discussion",quoteOutdated:"Citation obsolète — document modifié depuis",edited:"(modifié)",editComment:"Modifier le commentaire",cancel:"Annuler",save:"Enregistrer",commentPlaceholder:"Écrire un commentaire…",addComment:"Commenter",reply:"Répondre",replyPlaceholder:"Répondre…",threadMenu:"Actions du fil",comments:"Commentaires",resolve:"Résoudre",reopen:"Rouvrir",participants:"Participants",addParticipant:"Ajouter",removeParticipant:"Retirer {name}",leave:"Quitter",searchUsers:"Rechercher des utilisateurs…",loadingUsers:"Chargement…",noCandidates:"Personne ne peut être ajouté à ce fil.",usersUnavailable:"Annuaire des utilisateurs indisponible — réessayez plus tard.",sheetTitle:"Discussions — {target}
52",sheetSubtitle:"Fils de discussion sur cet élément du contrat.",newDiscussion:"Nouvelle discussion",startDiscussion:"Ouvrir la discussion",quotedTextPlaceholder:"Texte cité (optionnel)",citeAField:"Citer un champ",citeFieldLabel:"Champ cité",citeFieldPlaceholder:"Choisir un champ…",citeHint:"Réduisez le texte au passage que vous visez.",dropCitation:"Retirer la citation",citeField:{natural_key:"Clé naturelle",short_description:"Description courte",payload:"Payload",merge_policy:"Politique de fusion",filter_policy:"Politique de filtrage",projection_policy:"Politique de projection",projection_tables:"Tables de projection",event_reactions:"Réactions aux événements",command_implementation:"Implémentation de la commande",title:"Titre",gesture:"Geste",technical_spec:"Spécification technique"},titleLabel:"Titre du fil",titleRequired:"Nommez ce fil avant de le lancer.",renameThread:"Renommer le fil",titlePlaceholder:"Nommer ce fil",emptyTarget:"Aucune discussion sur cet élément pour l'instant.",emptySurface:"Aucune discussion sur cette version pour l'instant.",emptyDocument:"Aucune discussion sur ce document pour l'instant.",unavailable:"Discussions indisponibles.",retry:"Réessayer",liveInterrupted:"Mises à jour en direct interrompues",marginTitle:"Discussions",generalComment:"Commenter",commentOnSelection:"Commenter la sélection",commentOnPassage:"Commenter ce passage",bubbleThreads:"{count, plural, one {# fil} other {# fils}}",thisPassage:"Ce passage",unpinnedHint:"Non épinglé au texte — le passage a changé, apparaît plusieurs fois, ou se trouve dans une section repliée.",allPinnedForFilter:"Les discussions correspondantes sont épinglées à côté de leur passage dans le document.",quoteOutdatedNote:"Ce passage n'apparaît pas exactement une fois dans la source du document : la discussion sera enregistrée avec sa citation déjà marquée obsolète — choisissez un passage qui n'apparaît qu'une fois.",firstCommentFailed:"La discussion a été créée, mais son premier commentaire n’a pas pu être publié. Votre texte est conservé — réessayez de l’envoyer.",firstCommentFailedReason:"La discussion a été créée, mais son premier commentaire n’a pas pu être publié — {reason} Votre texte est conservé — réessayez de l’envoyer.",target:{functionalSpec:"Spéc. fonctionnelle",permissions:"Permissions",offer:"Offre",consumption:"Consommation",test:"Test"}},tour:{help:{take:"Suivre la visite guidée",replay:"Revoir la visite guidée"},previous:"Précédent",next:"Suivant",finish:"Terminer",skip:"Passer la visite",counter:"{current} / {total}",stops:{orientation:{title:"Un seul défilement vertical",body:"Quatre blocs, un seul défilement : les BARRES de cycle de vie nomment le service sous son projet, portent le graphe des versions et disent où en est la majeure SÉLECTIONNÉE ; le bloc IDENTITÉ replie ce que sont le service et sa majeure ; la table des BRÈCHES liste la dette que la convergence contrôle ; et la ZONE PRINCIPALE porte la version sélectionnée en deux faces. Rien ici n'est un second conteneur de défilement."},"identity-card":{title:"Le bloc identité",body:"Un dépliant qui contient tout ce qui n'est pas versionné : le nom, l'intention en une ligne, la description rendue en markdown, la classification, le dépôt — et, en dessous, la forme technique de la majeure sélectionnée. Les deux menus ⋯ à côté portent le cycle de vie du service et celui de la piste majeure."},"version-tree":{title:"Le graphe des versions",body:"Le graphe de la barre ci-dessus est la machine à remonter le temps de la fiche : une VOIE par majeure — dépréciées et retirées comprises, ce que les lignes de cycle de vie refusent justement de dessiner — et une STATION par mineure, la plus récente à gauche. Sélectionner une station déroule ses correctifs à sa droite, du plus récent au plus ancien, et replie la mineure que vous quittez — une station repliée porte un +N disant ce qu'elle représente, et chaque correctif est à un clic de sa station. La couleur et la taille d'un point indiquent son niveau : un correctif porte la couleur primaire de l'espace de travail, une station mineure sa couleur d'accent, et une majeure reste neutre et la plus grosse — une majeure a déjà sa propre voie, la colorer dirait deux fois la même chose. Le point sélectionné porte un cercle de sa propre couleur. En tête de voie se tient la convergence de cette majeure, comme un fait et jamais comme un geste : une coche verte une fois qu'elle a convergé, rien sinon — la déclaration elle-même vit sur la ligne de cycle de vie en dessous. Survolez un point pour son mot d'état, sa date et la raison pour laquelle la version a été coupée. Cliquez sur n'importe quel point et les faces ci-dessous affichent cette version telle qu'elle a été déclarée ; les gestes restent honnêtes, et le serveur refuse ce que le passé refuse. Quand l'historique dépasse la largeur, les flèches le parcourent page par page."},"ghost-create":{title:"Prolonger la ligne",body:"Chaque porte de création porte son propre niveau : celle-ci — le « Nouvelle mineure » sur la ligne de cycle de vie de la majeure — ouvre la mineure suivante. La confirmation nomme ce qui sera créé et est gardée par les permissions de l'entité qui la porte ; un refus affiche sa raison, et ce qui n'est pas proposé du tout n'existe pas pour vous."},"major-shape":{title:"La forme de la majeure",body:"La manière, la posture EDA et les tags booléens définissent COMMENT le service est construit. Changer la forme, c'est une nouvelle majeure — la règle de bump que le bandeau de ce panneau énonce."},"major-stack":{title:"La stack",body:"Langages et frameworks font partie de la forme de la majeure : ajoutez ou retirez des puces depuis le référentiel partagé. Les sélecteurs ne proposent que ce que le registre connaît."},"minor-header":{title:"La mineure en un coup d'œil",body:"À côté du sélecteur, le stepper allume le cycle de vie dans l'ordre — brou
52illon, puis scellée, puis implémentée, puis convergée. L'étiquette mono est la signature d'intention : un hash du contrat scellé, la preuve de ce qui a été gelé. Le ⋯ supprime la mineure tant que le domaine l'autorise."},"minor-regime":{title:"Le régime de la version",body:"Une mineure brouillon porte l'étiquette Brouillon sur la ligne des faces et reste entièrement éditable. Une fois scellée, l'étiquette disparaît et un bandeau prend le relais dans Intention : seules des corrections peuvent alors toucher l'intention."},"minor-seal":{title:"Sceller une mineure",body:"Sceller gèle l'intention de la mineure — spec, permissions et enveloppe. Le geste vit sur la ligne de la barre, juste après la phrase qui dit pourquoi le domaine scellera ou non. L'implémentation ne démarre jamais que contre un contrat scellé ; c'est le seuil que ce bouton franchit."},"minor-doc":{title:"Les documents d'intention",body:"La spec fonctionnelle et les permissions sont l'intention écrite de la mineure. Sélectionnez un passage pour ouvrir une discussion en marge, ancrée sur le texte cité — la revue se fait là où sont les mots."},"minor-envelope":{title:"L'enveloppe contractuelle",body:"Offres, consommations et e2e déclarent ce que la mineure fournit, ce qu'elle utilise et ce qui le prouve. On déclare au brouillon ; après scellement, corrections seulement."},"minor-breaches":{title:"La table des brèches",body:"Toutes les brèches pertinentes non corrigées contre le contrat de cette ligne majeure, héritées à travers ses mineures : état, description, où elle a été détectée, quel patch s'engage à la corriger, et depuis combien de patchs elle traîne. Une ligne s'ouvre sur sa reproduction et son analyse. La table apparaît dès que la majeure a livré un patch — avant, il n'y a rien dont diverger. La convergence dépend de cette liste."},"minor-discussions":{title:"Les discussions",body:"Tous les fils sur la surface contractuelle de cette mineure en un seul endroit — ouverts et résolus. Résolvez-les à mesure que le contrat se stabilise ; l'onglet compte ce qui reste ouvert."},"discussion-chip":{title:"💬 là où ça compte",body:"La pastille marque les lignes portant des discussions — lignes d'enveloppe, nœuds de l'arbre, libellés d'onglets. Cliquez sur la pastille d'une ligne pour ouvrir son panneau de fils sans quitter le tableau."},"patch-bands":{title:"La bande de patchs",body:"La face réalisation est à l'échelle du patch, et cette bande en est la coordonnée : tous les patchs de la mineure, du plus ancien au plus récent, ouverte sur le dernier IMPLÉMENTÉ — ce qui tourne vraiment. Le + coupe le patch suivant."},"patch-checklist":{title:"La réalisation",body:"Un patch réalise l'intention scellée : suivez la checklist, enregistrez l'image publiée, et tenez les docs SDL, schéma DB et REST comme cartes de réalisation."},"patch-converge":{title:"Faire converger un patch",body:"Converger déclare le patch comme la version à utiliser. La porte se tient avec les autres portes de la ligne, sur la ligne de cycle de vie posée sur le patch que le domaine désigne — la convergence est un fait de la majeure, même si la déclaration se pose sur ce patch — et elle n'apparaît que lorsque le domaine l'autorise. Tant que le domaine refuse, il n'y a aucun bouton : le nombre de brèches ouvertes sur la ligne, et la tête de voie du graphe des versions, sont là où se lit l'histoire. Une majeure convergée porte une coche verte en tête de sa voie."}}}
52,minor:{menu:"Actions de la version mineure",delete:"Supprimer la version mineure",deleteVersion:"Supprimer la mineure v{label}"},scaffold:{title:"Échafaudage",steps:"{done} étapes sur {total}",noPlan:"Le job n’a pas encore déclaré son plan.",claimExpires:"retenue jusqu’au {date}",state:{pending:"Pas démarré",inProgress:"En cours",completed:"Terminé",unknown:"État inconnu"},automation:{automated:"Exécuté par un runner.",directTask:"Confié à un humain.",automatedHandoff:"Démarré par un runner, repris par un humain.",unknown:"Attribution inconnue."},task:{pending:"La tâche est en cours de création.",claimable:"En attente d’une prise en charge.",claimed:"Prise en charge.",lapsed:"La prise en charge a expiré — en attente d’une nouvelle.",completed:"La tâche est terminée.",rejected:"La tâche a été refusée.",cancelled:"La tâche a été annulée.",unknown:"État de tâche inconnu."},reasons:{generic_failure:"L’échafaudage n’a pas pu aboutir. Reprenez-le à la main, puis enregistrez-le comme terminé une fois le code en place.",runner_type_unknown:"Aucun runner ne répond à « {runnerType} ». Corrigez le type de runner d’échafaudage du framework, ou terminez à la main.",no_runner_available:"Aucun runner de type « {runnerType} » n’est actif. Le job attend qu’un runner se signale.",job_refused:"Le service jobs a refusé le job d’échafaudage : rien n’a été exécuté.",run_failed:"L’exécution a échoué. Lisez le diagnostic ci-dessous, puis terminez l’échafaudage à la main.",run_timed_out:"L’exécution a dépassé son délai et a été abandonnée. Terminez l’échafaudage à la main.",run_cancelled:"L’exécution a été annulée avant la fin.",manual_action_required:"Le runner s’est arrêté et demande une intervention humaine. Terminez les étapes restantes à la main."}},main:{noMinor:"Aucune version mineure",noPatch:"Aucun patch",nextPatch:"patch",patchStripLabel:"Patchs",face:{intent:"Intention",realization:"Réalisation"},draft:"Brouillon",obligations:"Obligations {done}/{total}",jobReport:"Rapport du runner"},seal:{title:"Sceller {version} ?",againstParent:"Ce que cette version change par rapport à {parent}.",noParent:"Première version de cette majeure — tout ce qui suit est nouveau.",unchanged:"Rien ne change par rapport à la version parente.",emptyParentLabel:"Néant",unnamed:"Sans titre",failed:"La comparaison n’a pas pu être chargée.",retry:"Réessayer",tabs:{offers:"Offres ({count})",consumptions:"Consommations ({count})",tests:"Tests ({count})",functionalSpec:"Spéc. fonctionnelle ({count})",permissions:"Permissions ({count})"},headline:{functionalSpecLines:"Spéc. fonctionnelle : +{added} / −{removed} lignes",permissionsLines:"Permissions : +{added} / −{removed} lignes"}},versionCarousel:{aria:"Graphe des versions — de la plus récente à la plus ancienne, une voie par majeure",foldedPatches:"{count, plural, one {# patch antérieur} other {# patchs antérieurs}} — sélectionnez cette station pour les déplier"}},automation:{title:"Règles d’automatisation",subtitle:"Quel type de runner sert chaque bloc de patch-work, et pour quelles majeures.",add:"Nouvelle règle",create:"Créer la règle",save:"Enregistrer la règle",edit:"Modifier",delete:"Supprimer la règle",deleteTitle:"Supprimer cette règle ?",deleteBody:"La règle {block} de rang {priority} pour « {runnerType} » disparaît. Le patch-work déjà dispatché n’est pas affecté.",deleteConfirm:"Supprimer la règle",blockEmpty:"Aucune règle pour ce bloc pour le moment.",liveInterrupted:"Le flux temps réel du référentiel est interrompu — ce que vous voyez peut être périmé.",blocks:{SCAFFOLD:"Scaffold",IMPLEMENT:"Implémentation",VERIFY:"Vérification"},block:{label:"Bloc"},priority:{label:"Priorité",hint:"Le plus petit rang passe en premier. Unique dans le bloc : le registre refuse un rang déjà tenu par une autre règle du même bloc."},runnerType:{label:"Type de runner",placeholder:"Nommez le type de runner qui sert ce bloc",known:"Types connus :",use:"Utiliser {type}"},matchers:{any:"indifférent",manner:"Manière",multiPod:"Multi-pod",multiPodYes:"Supporté",multiPodNo:"Non supporté",framework:"Framework",frameworkCardinality:"Frameworks déclarés",frameworkUnknown:"Framework inconnu"}},runners:{title:"Couverture des runners",subtitle:"Quel type de runner fait quel travail, et quels runners nommés ne répondent à personne.",editRules:"Modifier les règles",empty:"Aucun type de runner n'est nommé, et la flotte est vide.",unclaimedRow:"Aucune règle ni aucun framework ne nomme ce type.",unscaffolded:"Frameworks sans runner d'amorçage",unscaffoldedHint:"Un service bâti sur l'un d'eux ne peut pas être amorcé. Nommez un runner dans le référentiel technique.",standing:{UNSERVED:"Nommés, mais sans service",SERVING:"En service",UNCLAIMED:"Dans la flotte, sans emploi"},standingHint:{UNSERVED:"Du travail leur est adressé et aucune instance vivante ne répond. Un job envoyé à l'un d'eux attend indéfiniment — sans exécution, sans échéance, sans expiration.",SERVING:"Nommés par une règle ou un framework, et une instance est là pour répondre.",UNCLAIMED:"La flotte possède ces runners ; personne ne leur envoie de travail."},jobs:{patchBlock:"Travail de patch · {block}",scaffoldService:"Amorcer le service"},fleet:{unknown:"Inconnu de la flotte",unavailable:"Aucune instance vivante",available:"{idle} au repos · {busy} occupée(s)",waiting:"{count} job(s) déjà en attente"}}
52,stack:{title:"Référentiel technique",subtitle:"Les langages et frameworks dans lesquels chaque majeure choisit sa stack.",refusedTitle:"Le référentiel technique est réservé aux administrateurs de la plateforme",refusedBody:"Chaque langage et framework ici est partagé par tous les services de la plateforme : seul un administrateur peut le consulter et le modifier. Demandez-lui l’ajout dont vous avez besoin.",empty:"Aucun langage pour le moment.",liveInterrupted:"Le flux temps réel du référentiel est interrompu — ce que vous voyez peut être périmé.",whenToUse:"Quand l’utiliser",whenToUsePlaceholder:"Dans quel cas une majeure doit-elle le choisir ?",language:{name:"Nom du langage",namePlaceholder:"Rust, TypeScript, …",add:"Nouveau langage",create:"Créer le langage",compiled:"Compilé",transpilesTo:"Transpile vers",transpilesToNone:"Rien",transpilesToClear:"Effacer",delete:"Supprimer",deleteTitle:"Supprimer ce langage ?",deleteBody:"« {name} » disparaît du référentiel. Les frameworks et les majeures qui le nomment doivent d’abord en être détachés.",deleteConfirm:"Supprimer le langage"},framework:{plural:"Frameworks",name:"Nom du framework",namePlaceholder:"Axum, React, …",add:"Nouveau framework",create:"Créer le framework",empty:"Aucun framework sur ce langage pour le moment.",delete:"Supprimer",deleteTitle:"Supprimer ce framework ?",deleteBody:"« {name} » disparaît. Les majeures qui le déclarent doivent d’abord en être détachées.",deleteConfirm:"Supprimer le framework"},runnerType:{label:"Type de runner d’échafaudage",placeholder:"Nommez le runner qui échafaude cette stack",known:"Types connus :",use:"Utiliser {type}",eligible:"Une majeure qui déclare ce seul framework est éligible à l’échafaudage.",notEligible:"Sans type de runner, aucune majeure bâtie sur ce framework ne peut être échafaudée."}}}},Ry={workspace:Ey},Py={tasks:{title:"Tâches"}},Dy={workspace:Py},Oy={timesheet:{title:"Feuille de temps"}},Ny={workspace:Oy},My={ux:{personas:{title:"Personas"},gestures:{title:"Gestes"}}},Ly={workspace:My},jy={website:{contacts:"Contacts"}},Uy={workspace:jy},$y={shell:{snapshotStalled:"読み込めませんでした — サーバーから応答がありません。",retry:"再試行"},documentTitle:"ワークスペース",activityBar:{pendingCount:"あなたの投票待ち {count}ä»¶",badge:{website:"未読 {count}ä»¶",tasks:"取得できるタスク {count} ä»¶"}},bc:{settings:"設定",website:"ウェブサイト",design:"デザイン",projects:"プロジェクト",services:"サービス",charter:"ガバナンス",tasks:"タスク",jobs:"ジョブ",timesheet:"工数管理",accounts:"アカウント",engagementnotes:"エンゲージメントノート",ux:"UX"},common:{verdictPending:"ドメインの判定を待っています…",dataGrid:{sortBy:"{column}で並べ替え",moveColumn:"{column}を移動",filterBy:"{column}を絞り込む",filterPlaceholder:"絞り込み…",filterAll:"すべて",clearFilters:"フィルターを解除",columns:"列",resetView:"表示をリセット",rowsPerPage:"1ページの行数",rowCount:"{count, plural, other {#行}}",pageOf:"{pages}ページ中{page}ページ",firstPage:"最初のページ",previousPage:"前のページ",nextPage:"次のページ",lastPage:"最後のページ"}},tabs:{noOpenTabs:"開いているタブはありません",openFromSidebar:"サイドバーからページを開いてください。",closeAllTooltip:"すべてのタブを閉じる",closeMenu:"タブを閉じる",scrollLeft:"タブを左にスクロール",scrollRight:"タブを右にスクロール",notDeployedTitle:"この環境では利用できません",notDeployed:"このモジュールはまだここにデプロイされていません。タブは開いたままなので、閉じるか、モジュールが動作している環境で開き直してください。"},appearance:{accent:"アクセントカラー",palettes:{blue:"ブルー",pink:"ピンク",yellow:"イエロー"}},header:{backToSite:"サイトに戻る",signOut:"サインアウト"},forbidden:{title:"アクセス拒否",message:"ワークスペースへのアクセス権がありません。",signedInAs:"サインイン中のアカウント:",goHome:"ホームに戻る",contactUs:"お問い合わせ",helpText:"アクセス権が必要な場合は、所属組織の管理者に付与を依頼するか、お問い合わせください。"},sessionExpired:{title:"セッションの有効期限が切れました",message:"セッションが終了し、更新できませんでした。ワークスペースに戻るには、もう一度サインインã
52—てください。",signIn:"もう一度サインイン",contactUs:"お問い合わせ"},connection:{connecting:"Bot Resources に接続しています…",reconnecting:"再接続しています…",reconnectingHint:"再接続中 — Bot Resources への接続が切れたため、ワークスペースが最新でない可能性があります。",offlineHint:"オフライン — ブラウザがネットワークに接続されていないため、ワークスペースが最新でない可能性があります。",reconnectNow:"今すぐ再接続"},impersonation:{viewingAs:"{email}({role})として表示中",viewingAsWithActor:"{actor} が {email}({role})として表示しています",roleAdmin:"管理者",roleUser:"ユーザー",stop:"代理表示を終了",returned:"自分のアカウントに戻りました",stopError:"代理表示を終了できませんでした。もう一度お試しください。"},tabMenu:{close:"閉じる",closeOthers:"他のタブを閉じる",closeToRight:"右側のタブを閉じる",closeAll:"すべて閉じる",splitRight:"右に分割",moveToPrevious:"前のグループへ移動",moveToNext:"次のグループへ移動"},content:{notTranslated:"このバージョンはまだ翻訳されていません",editor:{primary:"主要",makePrimary:"主要に設定",counter:"{count} / {max}",textareaLabel:"説明"}},backToTop:"先頭に戻る",address:{organization:"組織",user:"ユーザー",group:"グループ",serviceAccount:"サービスアカウント",contact:"問い合わせ",project:"プロジェクト",service:"サービス",proposal:"提案",tenet:"原則",draft:"下書き",task:"タスク",job:"ジョブ",account:"アカウント"}},xy={workspace:$y},Fy={accounts:{nav:{desk:"マイデスク"}}},Hy={workspace:Fy},zy={charter:{college:"評議会",nav:{charter:"憲章",deliberations:"審議"}}},qy={workspace:zy},Vy={design:{sectionProjects:"プロジェクト",sectionSharedServices:"共有サービス",searchPlaceholder:"プロジェクトとサービスを検索",servicesLoading:"サービスを読み込み中…",servicesEmpty:"共有サービスはありません",servicesError:"サービスの読み込みに失敗しました",projectsLoading:"プロジェクトを読み込み中…",projectsEmpty:"プロジェクトはありません",projectServicesFolder:"サービス",projectNoServices:"サービスはありません",projectServicesPublishGate:"公開後に利用可能",newProjectTooltip:"新規プロジェクト",newSharedServiceTooltip:"新規共有サービス",createSharedService:"共有サービスを作成",filterTooltip:"プロジェクトを絞り込む",filterByStatus:"作業ステータス",filterActive:"フィルター有効",pinItem:"{name}をピン留め",unpinItem:"{name}のピン留めを解除",serviceState:{deprecated:"非推奨",retired:"廃止"},majorView:{major:"メジャー {major}",drafting:"メジャー {major}:新しいインテントを作成中",breaches:"メジャー {major}:未解決の契約違反 {count} ä»¶",sealed:"メジャー {major}:確定済み、実装待ち",implemented:"メジャー {major}:実装済み、収束待ち",converged:"メジャー {major}:{label} で収束済み",convergedNoLabel:"メジャー {major}:収束済み",missingStream:"メジャー {major}:最新マイナーのオファーにストリームが未宣言です"},classification:{word:{CORE:"コア",SUPPORTING:"サポート",GENERIC:"汎用"},overrideTooltip:"{base}(このプロジェクトでは {effective} に上書き)"}}},By={workspace:Vy},Gy={engagementnotes:{allNotes:"すべてのノート"}},Ky={workspace:Gy},Wy={settings:{sectionPreferences:"環境設定",sectionAdministration:"管理",profile:"プロフィール",accessTokens:"PAT",users:"ユーザー",groups:"グループ",organizations:"組織",details:"詳細",searchOrgs:"組織を検索...",guests:"ゲスト",domainClaims:"ドメイン申請",myOrganization:"所属組織",members:"メンバー",services:"サービス",serviceAccounts:"サービスアカウント",scopes:"スコープレジストリ",platformUserPicker:{placeholder:"プラットフォームのユーザーを検索…",empty:"一致するユーザーがいません。",loading:"ユーザーを読み込み中…",queryError:"ユーザーを読み込めませんでした。もう一度お試しください。",noOrg:"プラットフォーム組織が利用できません。再読み込みしてお試しください。"}},admin:{common:{cancel:"キャンセル",confirm:"確認",discard:"破棄",actions:"操作",columns:"列",never:"なし",yes:"はい",no:"いいえ",loading:"読み込み中…",organization:"組織",retry:"再試
52行",actionsError:"利用可能な操作を読み込めませんでした。",selectCountry:"国を選択…",searchCountry:"国を検索…",noCountryFound:"国が見つかりません。"},sync:{unsaved:"未保存",saving:"保存中…",saved:"保存済み",error:"エラー",errorWith:"エラー:{message}"},users:{title:"ユーザー",guests:"ゲスト",searchPlaceholder:"ユーザーを検索…",new:"新規ユーザー",columns:{user:"ユーザー",role:"ロール",groups:"グループ",status:"ステータス",lastLogin:"最終ログイン",created:"作成日"},roleAdmin:"管理者",roleUser:"ユーザー",statusActive:"有効",statusDeactivated:"無効",empty:"ユーザーが見つかりません。",notFound:"ユーザーが見つかりません。",promote:"管理者に昇格",demote:"管理者権限を削除",deactivate:"無効化",reactivate:"再有効化",promoted:"ユーザーを管理者に昇格しました。",demoted:"管理者権限を削除しました。",roleChangeError:"管理者ロールを変更できませんでした。",actionError:"操作を完了できませんでした。",email:"メールアドレス",admin:"管理者",organizationLoading:"読み込み中…",noOrganization:"組織なし(ゲスト)",createHint:"上にメールアドレスを入力してユーザーを作成します。自動的に保存されます。",deactivatedAt:"無効化日",personId:"パーソンID",org:"組織",created:"作成日",emailPlaceholder:"[email protected]",firstName:"名",lastName:"姓",firstNamePlaceholder:"名(任意)",lastNamePlaceholder:"姓(任意)",createdToast:"ユーザー {email} を作成しました。",createError:"ユーザーを作成できませんでした。"},groups:{title:"グループ",searchPlaceholder:"グループを検索…",new:"新規グループ",columns:{name:"名前",type:"種類",created:"作成日"},typeSystem:"システム",typeCustom:"カスタム",empty:"グループが見つかりません。",notFound:"グループが見つかりません。",noOrg:"組織が割り当てられていません。グループには組織のコンテキストが必要です。",delete:"グループを削除",untitled:"無題のグループ",namePlaceholder:"グループ名",membersHeading:"メンバー({count})",noMembers:"このグループにはメンバーがいません。",nameLabel:"グループ名",userColumn:"ユーザー",userIdColumn:"ユーザーID",actionColumn:"操作",addPlaceholder:"追加するユーザーID…",pickUser:"ユーザーを選択…",searchUsers:"ユーザーを検索…",noUsers:"該当するユーザーがいません。",add:"追加",removeMember:"メンバーを削除",removeConfirmTitle:"このメンバーを削除しますか?",removeConfirmBody:"このグループが付与するアクセス権を失います。後で再度追加できます。",removeConfirm:"削除",removing:"削除中…",addError:"メンバーを追加できませんでした。",removeError:"メンバーを削除できませんでした。"},organizations:{title:"組織",new:"新規組織",refresh:"更新",searchPlaceholder:"組織を検索…",columns:{name:"名前",abbreviation:"略称",country:"国",status:"ステータス",created:"作成日"},empty:"組織が見つかりません。",none:"組織がありません",noMatches:"該当なし",notFound:"組織が見つかりません。",domains:"ドメイン",addDomain:"ドメインを追加",domainPlaceholder:"example.com",removeDomain:"ドメインを削除",users:"ユーザー",groups:"グループ",activity:"アクティビティ",usersTab:"ユーザー - {name}",groupsTab:"グループ - {name}",deleted:"組織を削除しました。",domainAdded:"ドメイン {domain} を追加しました。",domainRemoved:"ドメインを削除しました。",statusError:"ステータスを変更できませんでした。",domainError:"ドメインを更新できませんでした。",namePlaceholder:"組織名",untitled:"無題の組織",abbreviationLabel:"略称:",abbrPlaceholder:"例:BR",websitePlaceholder:"https://example.com",noWebsite:"ウェブサイトなし",editWebsite:"ウェブサイトを編集",fieldName:"名前 *",fieldCountry:"国 *",fieldAbbr:"略称",fieldWebsite:"ウェブサイト",status:{DRAFT:"下書き",PUBLISHED:"公開済み",ACTIVE:"有効",SUSPENDED:"停止中",ARCHIVED:"アーカイブ済み"},claimStatus:{PENDING:"審査中",APPROVED:"承認済み",REJECTED:"却下"},membershipPolicy:"参加ポリシー",policy:{MANUAL:"手動",AUTO_JOIN:"自動参加",REVIEW:"審査"},policyHint:{MANUAL:"招待によってのみ参加できます。",AUTO_JOIN:"承認済みドメインのメールアドレスを持つ人は初回ログイン時に自動で参加します。",REVIEW:"承認済みドメインのメールアドレスを持つ人は、あなたの承認を待つ一覧に入ります。"},policyUpdated:"参加ポリシーを更新しました。",policyError:"参加ポリシーを更新できませんでした。",candidates:{title:"候補一覧",empty:"審査待ちの人はいません。",candidateColumn:"候補者",sinceColumn:"登録日",actionsColumn:"操作",approve:"承認",reject:"却下",approved:"候補を承認しました。",rejected:"候補を却下しました。",actionError:"操作を完了できませんでした。"},invitations:{title:"招待",invite:"ユーザーを招待",pickUser:"人を選択…",searchUsers:"人を検索…",noUsers:"招待できる人がいません。",confirm:"招待を送ä
52¿¡",invited:"招待を送信しました。",empty:"保留中の招待はありません。",userColumn:"人",sinceColumn:"登録日",actionsColumn:"操作",revoke:"取り消し",revoked:"招待を取り消しました。",actionError:"操作を完了できませんでした。"},description:"説明",descriptionPlaceholder:"この言語の Markdown 説明を入力してください…",noDescription:"説明なし",editDescription:"説明を編集",descriptionSave:"保存",descriptionCancel:"キャンセル",descriptionUpdated:"説明を更新しました。",descriptionError:"説明を更新できませんでした。",descriptionTooLong:"{locale} の説明は {max} 文字の上限を超えています。"},pat:{title:"個人アクセストークン",subtitle:"プログラムによる API アクセス用の個人アクセストークン。",create:"トークンを作成",copyWarning:"このトークンを今すぐコピーしてください。二度と表示されません。",copy:"トークンをコピー",dismiss:"閉じる",name:"トークン名",namePlaceholder:"例:Claude Code CI",expiry:"有効期限",optional:"(任意)",creating:"作成中…",confirm:"作成",cancel:"キャンセル",empty:"有効なトークンがありません",emptyHint:"トークンを作成して、プログラムから API にアクセスします。",createdAt:"作成日 {date}",lastUsed:"最終使用日 {date}",expires:"有効期限 {date}",revokeQuestion:"取り消しますか?",revoking:"取り消し中…",revokeConfirm:"確認",revoke:"トークンを取り消す",revokedHeading:"取り消されたトークン",revokedAt:"取り消し日 {date}",loading:"トークンを読み込み中…",nameRequired:"トークン名が必要です。",createdToast:"トークンを作成しました。",createError:"トークンを作成できませんでした。",revokedToast:"トークンを取り消しました。",revokeError:"トークンを取り消せませんでした。",copied:"トークンをクリップボードにコピーしました。",copyError:"トークンをコピーできませんでした。"},profile:{title:"プロフィール",subtitle:"個人情報と設定を管理します。",avatar:"アバター",firstName:"名",lastName:"姓",email:"メールアドレス",role:"ロール",locale:"言語",notSet:"未設定",editField:"{field}を編集",saveField:"{field}を保存",cancelField:"{field}の編集をキャンセル",saveHint:"Enter で保存、Esc でキャンセル。",saveError:"この
52変更を保存できませんでした。",firstNamePlaceholder:"名を入力",lastNamePlaceholder:"姓を入力",brMember:"BR メンバー",notFound:"プロフィールが見つかりません。",roles:{superadmin:"スーパー管理者",admin:"管理者",guest:"ゲスト",user:"ユーザー"},preferences:{title:"ワークスペース",hideComingSoon:"未提供のモジュールを非表示にする",hideComingSoonHint:"アクティビティバーには、実際に作業できるモジュールだけが残ります。このブラウザーに保存されます。"}},impersonate:{action:"代理表示",title:"ユーザーの代理表示",body:"{email} としてプラットフォームを表示します。スーパー管理者のセッションは保持され、いつでも戻ることができます。",expiry:"セッションは1時間後に期限切れになります",audited:"すべての操作はスーパー管理者IDとともに監査記録されます",confirm:"代理表示を開始",started:"{email} として表示しています",error:"代理表示を開始できませんでした。"},orgTransitions:{confirmTitle:"確認",confirmAction:"確認",buttons:{publish:"公開",activate:"有効化",archive:"アーカイブ",suspend:"停止",reactivate:"再有効化",dearchive:"アーカイブ解除",delete:"削除"},ARCHIVED_SUSPENDED:{title:"組織のアーカイブを解除",headline:"組織は停止状態に復元されます。",details:["読み取り専用のアーカイブからは外れますが、再有効化するまではアクセスできません","その後、再有効化するとユーザーが再びログインできるようになります"],confirm:"アーカイブ解除"},DRAFT_PUBLISHED:{title:"組織を公開",headline:"外部ユーザーはまだアクセスできません。",details:["ドメインの追加やコンテキスト間参照の設定ができます","この手順以降、組織は削除できなくなります — アーカイブのみ可能です"],confirm:"公開"},DRAFT_DELETED:{title:"組織を削除",headline:"組織とそのすべてのデータが完全に破棄されます。",details:["関連するすべてのグループが削除されます","すべてのユーザーの紐づけが解除されます"],warning:"この操作は元に戻せません。",confirm:"完全に削除"},PUBLISHED_ACTIVE:{title:"組織を有効化",headline:"この組織のユーザーがログインできるようになります。",details:["ドメインと管理者の要件が検証されます","組織のドメインに一致する既存のゲストアカウントが検出されます"],confirm:"有効化"},PUBLISHED_ARCHIVED:{title:"組織をアーカイブ",headline:"組織は読み取り専用になり、アクセスできなくなります。",details:["どのユーザーもアクセスできなくなります","プロジェクトの紐づけがある場合は、先に解除する必要があります"],confirm:"アーカイブ"},ACTIVE_SUSPENDED:{title:"組織を停止",headline:"すべてのユーザーが直ちにアクセスを失います。",details:["組織が再有効化されるまで、ユーザーはログインできません","プロジェクトの紐づけの解除が必要になる場合があります"],confirm:"停止"},ACTIVE_ARCHIVED:{title:"組織をアーカイブ",headline:"すべてのユーザーが永久にアクセスを失います。",details:["組織は読み取り専用になります","プロジェクトの紐づけがある場合は、先に解除する必要があります"],warning:"この操作を元に戻すのは困難です。",confirm:"アーカイブ"},SUSPENDED_ACTIVE:{title:"組織を再有効化",headline:"ユーザーはアクセスを回復し、再びログインできるようになります。",details:["以前のすべての権限とグループのメンバーシップが保持されます"],confirm:"再有効化"},SUSPENDED_ARCHIVED:{title:"組織をアーカイブ",headline:"組織は永久にアーカイブされます。",details:["読み取り専用になり、すべてのユーザーがアクセスできなくなります"],warning:"この操作を元に戻すのは困難です。",confirm:"アーカイブ"}},serviceAccounts:{title:"サービスアカウント",subtitle:"マシンアクター — キーで認証し、独自のスコープを持つ非人間のアイデンティティ。",create:"新規サービスアカウント",name:"名前",n
52amePlaceholder:"例:notifier-worker",description:"説明",descriptionPlaceholder:"このサービスアカウントの用途。",optional:"(任意)",creating:"作成中…",confirm:"作成",cancel:"キャンセル",save:"保存",empty:"サービスアカウントがありません",emptyHint:"サービスアカウントを作成して、マシンに独自のアイデンティティ・スコープ・キーを付与します。",createdAt:"作成日 {date}",created:"作成日",nameRequired:"名前は必須です。",createdToast:"サービスアカウントを作成しました。",createError:"サービスアカウントを作成できませんでした。",notFound:"サービスアカウントが見つかりません。",rename:"名前を変更",saveName:"名前を保存",renamedToast:"サービスアカウントの名前を変更しました。",renameError:"サービスアカウントの名前を変更できませんでした。",editDescription:"説明を編集",descriptionClearHint:"空欄にすると説明を削除します。",descriptionSavedToast:"説明を保存しました。",descriptionError:"説明を保存できませんでした。",noDescription:"説明はありません。",scopesHint:"このサービスアカウントに付与されたスコープ。キーはアカウントが1つ以上のスコープを持つ場合にのみ発行できます。",keys:{title:"キー",mint:"キーを発行",minting:"発行中…",mintedToast:"キーを発行しました。",mintError:"キーを発行できませんでした。",copyWarning:"今すぐこのキーをコピーしてください — 二度と表示されません。",copy:"キーをコピー",dismiss:"閉じる",copied:"キーをクリップボードにコピーしました。",copyError:"キーをコピーできませんでした。",loading:"キーを読み込み中…",empty:"有効なキーがありません",createdAt:"作成日 {date}",revokeQuestion:"失効しますか?",revoking:"失効中…",revokeConfirm:"確認",cancel:"キャンセル",revoke:"キーを失効",revokedHeading:"失効したキー",revokedAt:"失効日 {date}",revokedToast:"キーを失効しました。",revokeError:"キーを失効できませんでした。"}},scopes:{title:"スコープレジストリ",subtitle:"プラットフォームが宣言するすべてのスコープ。誰が保持できるか、どこまで及ぶか、そしてまだ宣言されているか。",searchPlaceholder:"スコープまたはサービスで絞り込む",empty:"登録されたスコープはありません。",noMatches:"この条件に一致するスコープはありません。",scopeColumn:"スコープ",nameColumn:"名前",serviceColumn:"所有サービス",stateColumn:"宣言",governanceColumn:"ガバナンス",usedByColumn:"利用組織",actionsColumn:"操作",audience:"対象",platformOnly:"プラットフォーム限定",stale:"失効間近",staleHint:"宣言から取り下げられて15日以上経過しています。",withdrawnAt:"{date} に宣言から取り下げられました。",withdrawnFor:"{duration}
52経過",cancel:"キャンセル",actionError:"この変更をレジストリに適用できませんでした。",withdraw:"取り下げる",lifecycleGroup:"ライフサイクル",lift:"取り下げを解除",withdrawSticky:"手動で取り下げる(再宣言を無効化)",moreActions:"その他の操作",withdrawnToast:"スコープを宣言から取り下げました。",liftedToast:"取り下げを解除しました。",audienceKind:{BOTH:"ユーザーとサービスアカウント",USERS_ONLY:"ユーザーのみ",SERVICE_ACCOUNTS_ONLY:"サービスアカウントのみ"},liveness:{declared:"宣言中",withdrawn:"取り下げ済み",manuallyWithdrawn:"管理者による取り下げ"},holders:{none:"このスコープを保持している対象はありません。",organizations:"組織",serviceAccounts:"サービスアカウント",entitlement:"付与枠",memberGrants:"{count, plural, other {#人のメンバー}}",groupGrants:"{count, plural, other {#件のグループ}}"},narrowing:{title:"この絞り込みは既存の保持者を壊します",body:"{count, plural, =0 {現在 {scope} のこの変更と衝突するものはありません。} other {{scope} の付与・付与枠 #件がこの変更と衝突します。先に解除してください。}}",clear:"衝突する保持者を解除",clearedToast:"衝突する保持者を解除しました。",apply:"絞り込みを適用",cancel:"キャンセル",pending:"レジストリのコマンドを実行中です。"},revokeEverywhere:{action:"すべて取り消す",title:"このスコープをすべて取り消しますか?",body:"下に挙げた {scope} の付与と付与枠がすべて削除されます。スコープ自体は残ります。対象の各組織にはタイムライン記録が、その管理者には通知が届きます。",confirm:"すべて取り消す",doneToast:"スコープをすべて取り消しました。"},delete:{action:"削除",title:"このスコープを削除しますか?",body:"{scope} はレジストリから恒久的に削除されます。所有サービスが後で再宣言すると、既定のガバナンスで新しいスコープとして登録されます。",confirm:"削除",doneToast:"スコープを削除しました。"},usage:{more:"+{count}",holders:"{count, plural, other {#件の保持者}}"},platformColumn:"プラットフォーム",platformAnywhere:"制限なし",setPlatformOnly:"プラットフォームに限定",liftPlatformOnly:"プラットフォーム外を許可"}}},Yy={workspace:Wy},Jy={jobs:{views:{jobs:"ジョブ",fleet:"フリート"}}},Qy={workspace:Jy},Xy={projects:{sidebar:{all:"すべてのプロジェクト",internal:"社内プロジェクト",client:"クライアントプロジェクト",product:"プロダクトプロジェクト",rnd:"R&Dプロジェクト",demo:"デモプロジェクト"},list:{title:"プロジェクト",empty:"プロジェクトはまだありません。",newProject:"新規プロジェクト",draft:"下書き",columns:{name:"名前",organizations:"組織",type:"種類",status:"ステータス",period:"期間"},loadMore:"さらに読み込む",noMatch:"これらのフィルターに一致するプロジェクトはありません(読み込み済み {count} 件中)。",types:{INTERNAL:"社内",CLIENT:"クライアント",PRODUCT:"プロダクト",RND:"研究開発",DEMO:"デモ"},statuses:{OPEN:"進行中",SUSPENDED:"一時停止",CLOSED:"終了",DRAFT:"下書き"},filters:{organization:"組織",assignee:"担当者",allOrgs:"すべての組織",allAssignees:"すべての担当者",mine:"自分",clear:"フィルターをクリア"}},record:{loading:"読み込み中…",notFound:"このプロジェクトは見つかりませんでした。",create:{title:"新規プロジェクト",name:"名前",type:"種類",startDate:"開始日",save:"作成",cancel:"キャンセル",hint:"プロジェクトを作成するために必須項目を入力してください。概要・リンク・チーム・リポジトリは後で追加できます。",error:"プロジェクトを作成できませんでした。"},rename:{save:"保存",cancel:"キャンセル"},actions:{rename:"名前を変更",changeType:"種類を変更",publish:"公開",delete:"削除",suspend:"一時停止",resume:"再開",close:"終了",reopen:"再開"},close:{prompt:"このプロジェクトの終了方法は?",completed:"完了",cancelled:"中止"},closureReason:{COMPLETED:"完了",CANCELLED:"中止"},publishBanner:{ready:"公開の準備ができました。",blocked:"この下書きはまだ公開できません:",confirm:{title:"このプロジェクトを公開しますか?",body:"公開は取り消せません。確定する前に、その内容をご確認ください:",irreversible:"取り消しできません。プロジェクトを下書きに戻すことも、削除することも二度とできません。",visibility:"リンクされたクライアント組織に表示され、他の領域(勤怠、請求、ポータル)から利用可能になります。",lifecycle:"オープンの状態で開始し、その後は中断・クローズ・再開を通じてライフサイクルが続きます。",confirm:"公開",cancel:"キャンセル"}},deleteConfirm:"この下書きを削除しますか?この操作は取り消せません。",section:{edit:"編集",save:"保存",cancel:"キャンセル"},about:{title:"概要",summaryPlaceholder:"短い概要(英語、markdown)",descPlaceholder:"詳細な説明(markdown)",noSummary:"概要はまだありません。",noDescription:"説明はまだありません。",enRequired:"英語は必須です。"}
52,period:{title:"期間",start:"開始日",end:"終了日",open:"終了日なし"},repos:{title:"リポジトリ",workspace:"エージェントワークスペース",deployment:"デプロイリポジトリ",deploymentPlaceholder:"org/name(1行に1つ)",deploymentHint:"1行に org/name を1つ。",linked:"リンクされたリポジトリ",linkedPlaceholder:"org/name(1行に1つ)",linkedHint:"プロジェクトに包括的なワークスペースがない場合にコードを保持するスタンドアロンのリポジトリ(例:デモ用モノレポ)。1行に org/name を1つ。"},verification:{title:"検証環境",configure:"設定",rotate:"更新",clear:"クリア",baseUrl:"ベース URL",pat:"パーソナルアクセストークン",patHint:"トークンは書き込み専用です。保存後に表示されるのはフィンガープリントだけです。",fingerprint:"PAT フィンガープリント",changedAt:"最終変更",notConfigured:"検証環境は設定されていません。",clearConfirm:{title:"検証環境をクリアしますか?",body:"ベース URL と保存済みのパーソナルアクセストークンが削除されます。再設定には新しいトークンが必要です。",confirm:"環境をクリア",cancel:"キャンセル"}},orgs:{title:"組織",add:"組織をリンク",addPlaceholder:"組織を検索…",loading:"読み込み中…",none:"リンクできる組織がありません。",empty:"リンクされた組織はありません。",showEnded:"終了済みを表示",hideEnded:"終了済みを非表示",end:"終了",endPrompt:"このリンクの終了日:",start:"開始日",link:"リンク",linkNamed:"{name}をリンク",correct:{action:"編集",title:"このリンクを修正",hint:"誤って入力したリンク期間を修正します。組織はここでは変更できません。変更するには取り消して再度リンクしてください。",start:"開始日",end:"終了日",ongoing:"継続中(終了日なし)",endHelp:"終了日を変更しなければ維持され、編集すると修正されます。リンクを再開するには「継続中」にチェックを入れます。",save:"保存"},annul:{action:"取り消し",title:"このリンクを取り消しますか?",body:"取り消しは、このリンクが本来存在すべきではなかったことを意味し、行は完全に消えます。リンクが実際に存在して単に終了した場合は、代わりに「終了」を使用してください。",reason:"理由",reasonPlaceholder:"なぜこのリンクは存在すべきではなかったのですか?",confirm:"取り消す",cancel:"戻る"}},team:{title:"チーム",add:"役割を割り当て",addPlaceholder:"担当者を検索…",assign:"割り当てる",assignNamed:"{name}を割り当てる",loading:"読み込み中…",none:"割り当てる担当者がいません。",empty:"割り当てられた役割はありません。",end:"終了",endPrompt:"この割り当ての終了日:",endOptional:"終了(任意)",correct:{action:"編集",title:"この割り当てを修正",hint:"誤って入力した割り当てを修正します。担当者はここでは変更できません。変更するには取り消して再度割り当ててください。",role:"役割",start:"開始日",end:"終了日",ongoing:"継続中(終了日なし)",endHelp:"終了日を変更しなければ維持され、編集すると修正されます。割り当てを再開するには「継続中」にチェックを入れます。",save:"保存"},annul:{action:"取り消し",title:"この割り当てを取り消しますか?",body:"取り消しは、この割り当てが本来存在すべきではなかったことを意味し、行は完全に消えます。割り当てが実際に行われて単に終了した場合は、代わりに「終了」を使用してください。",reason:"理由",reasonPlaceholder:"なぜこの割り当ては存在すべきではなかったのですか?",confirm:"取り消す",cancel:"戻る"},roles:{ARCHITECT:"アーキテクト",FULL_STACK_ENGINEER:"フルスタックエンジニア",AGENT_ENGINEER:"エージェントエンジニア",PRODUCT_OWNER:"プロダクトオーナー",DOMAIN_EXPERT:"ドメインエキスパート",SPONSOR:"スポンサー",STAKEHOLDER:"ステークホルダー"},families:{delivery:"デリバリー",product:"プロダクト・分析",governance:"ガバナンス"}},streams:{title:"ストリーム",empty:"宣言されたストリームはありません。",register:"ストリームを宣言",yes:"はい",no:"いいえ",columns:{name:"名前",kind:"種類",intent:"目的",subjects:"サブジェクト空間",delivery:"配信",replayable:"再生可能",retention:"保持",provenance:"由来",actions:"アクション"},kind:{STREAM:"ストリーム",KV_BUCKET:"KVバケット"},delivery:{AT_LEAST_ONCE:"最低1回",EXACTLY_ONCE:"正確に1回"},form:{kind:"種類",effectiveName:"名前",effectiveNamePlaceholder:"ä¾
52‹ï¼šorders-events",intent:"目的",intentPlaceholder:"このストリームが運ぶものとその理由",subjectSpace:"サブジェクト空間",subjectSpacePlaceholder:"1行に1サブジェクト",subjectSpaceHint:"NATSサブジェクトを1行に1つ。なしの場合は空欄。",retentionLogic:"保持",retentionLogicPlaceholder:"例:limits: 7d、または work-queue",deliveryGuarantee:"配信保証",replayable:"再生可能",dedupKey:"重複排除キー",dedupKeyPlaceholder:"任意",provenanceOptional:"由来(任意)",deploymentRepo:"デプロイリポジトリ",deploymentRepoPlaceholder:"org/name",resourcePath:"リソースパス",resourcePathPlaceholder:"path/in/repo",declare:"宣言"},edit:{action:"編集",intent:"目的",contract:"契約",provenance:"由来",save:"保存",clearProvenance:"クリア"},remove:{action:"削除",title:"このストリームを削除しますか?",body:"「{name}」の削除は恒久的で、名前とidが解放されます。ストリームがまだ使用されている場合、この操作は元に戻せません。",confirm:"削除",cancel:"キャンセル"}},history:{title:"履歴",current:"現在"},changeType:{currentType:"これはすでにプロジェクトのタイプです。",reasons:{retype_requires_target_staffing:{internal:"このプロジェクトはまだ{type}の要員を満たしていません:アクティブなプラットフォームのアーキテクトとエンジニアが必要です。",client:"このプロジェクトはまだ{type}の要員を満たしていません:クライアント組織へのアクティブなリンクと、外部のスポンサーまたはステークホルダーが必要です。",product:"このプロジェクトはまだ{type}の要員を満たしていません:アクティブなプラットフォームのアーキテクトとエンジニアが必要です。",rnd:"このプロジェクトはまだ{type}の要員を満たしていません:アクティブなプラットフォームのアーキテクトとエンジニアが必要です。",demo:"このプロジェクトはまだ{type}の要員を満たしていません:少なくとも1つのアクティブなプラットフォーム・デリバリー・ロールが必要です。"}}},timeline:{viewLabel:"チーム表示",view:{list:"リスト",timeline:"タイムライン"},today:"今日",ongoing:"継続中",soFar:"現在まで",openActions:"⏎ 割り当ての操作を開く",empty:"まだ役割が割り当てられていません",summaryLane:"{count}件の割り当て",state:{ongoing:"進行中",ended:"終了",planned:"予定"},duration:{md:"{months}か月{days}日",d:"{days}日"},aria:{bar:"{name}、{role}({family})、{range}、{duration}、{state}"},legend:{families:"ファミリー",filterLabel:"ロールファミリーで絞り込み",notation:"記法",ended:"終了",ongoing:"継続中",planned:"予定",sameDay:"当日",suspended:"停止期間"},strips:{status:"ステータス"}},services:{title:"サービス",empty:"サービスはまだありません。",publishGate:"サービスはプロジェクトの公開後に利用できます。",error:"サービスを読み込めませんでした。",newService:"新規サービス",linkService:"共有サービスをリンク",create:"作成",link:"リンク",save:"保存",end:"終了",endLink:"リンクを終了",manageLink:"リンクを管理",changeService:"変更",loading:"読み込み中…",noShared:"利用可能な共有サービスがありません。",namePlaceholder:"サービス名",intentPlaceholder:"意図(任意)",repositoryPlaceholder:"リポジトリ(任意)",descriptionPlaceholder:"説明(任意)",classificationAny:"分類を指定しない",linkPlaceholder:"共有サービスを検索…",port:"ポート",portPlaceholder:"8000〜8999 または 10000 以上",overrideLabel:"分類の上書き",overrideNone:"上書きなし",overridden:"このプロジェクト用に分類が上書きされています",validation:{invalid:"この値は無効です。"},ddd:{core:"コア",supporting:"サポート",generic:"汎用"},state:{converged:"収束済み({version})",implemented:"実装済み",draft:"下書き",sealed:"確定済み",retired:"廃止済み",deprecated:"非推奨"},origin:{own:"自前",shared:"共有"},col:{service:"サービス",classification:"分類",origin:"由来",port:"ポート",version:"バージョン"},field:{intent:"意図",classification:"分類",repository:"リポジトリ",description:"説明"},addField:"{field}を追加",editField:"{field}を編集",clearField:"{field}を削除"}}}},Zy={workspace:Xy},eb={services:{warnings:{},healFailed:"レコードを更新できませんでした。表示が最新でない可能性があります。",healRetry:"再試
52行",record:{bar:{label:"ライフサイクル",usedBy:"利用プロジェクト",usedByEmpty:"まだどのプロジェクトでも利用されていません",olderRows:"v{version} の過去のバージョン {count} 件",deprecated:"非推奨",retired:"廃止",noActiveMajor:"有効なメジャーバージョンはありません — 非推奨・廃止のものはバージョンセレクターから参照できます。",olderElided:"これより古いバージョンは表示されていません",nextMajor:"メジャー",nextMinor:"マイナー",nextPatch:"パッチ",phase:{shapeUndefined:"形状は未定義",drafting:"起草中…",patchDrafting:"修正 — 起草中",implementing:"封印済み — 実装中",observing:"実装済み、検証待ち",observingVerified:"実装および検証完了",converged:"収束済み"},missing:{functionalSpec:"機能仕様",permissions:"権限"},missingList:"不足: {list}",sealPatchTitle:"パッチ {version} を封印",sealPatchBody:"封印するとパッチの署名が計算され、実装に引き渡されます。まだ何も実装されていない間はドラフトに戻せます。",implementedAndVerified:"実装および検証完了",jobStep:"ステップ {step}/{total} · {label}",jobQueued:"待機中",jobStepsDone:"{total} 中 {done} ステップ完了",jobStarting:"開始中…",activity:{programmed:"このバージョンにジョブまたはタスクが予定されており、まだ開始されていません",active:"このバージョンでジョブが実行中です",draft:"封印待ちのドラフト"},taskUnclaimed:"未引受",taskClaimed:"引受済み",taskClaimedBy:"{name} が引受",claimTask:"{name} を引き受ける",offAir:"ライブ更新が停止しました",convergeOn:"{version} で収束済みにする",markConverged:"収束済みにする",laneConverged:"収束済み",claimExpires:"{date}まで保持",pullRequest:"PR",failureLabel:"{block} が失敗",block:{scaffold:"スキャフォールド",implement:"実装",verify:"検証",unknown:"作業"},job:{requested:"要求済み",queued:"待機中",running:"実行中",completed:"完了",failed:"失敗",rejected:"拒否",cancelled:"キャンセル",unknown:"不明"},task:{pending:"保留中",claimable:"未着手",claimed:"着手済み",lapsed:"期限切れ",completed:"完了",rejected:"拒否",cancelled:"キャンセル",unknown:"不明"},breaches:"契約違反 {count} 件",breachesLabel:"メジャー {major} には未解決の契約違反が {count} 件あります — すべて下の契約違反テーブルに一覧表示されています。",fixCount:"{fixed}/{total}",fixCountLabel:"このパッチは{total}件の違反の修正を約束しています:{fixed}件修正済み、{open}件が未修正です。",deleteMinor:"v{label} を削除",shared:"共有"},notFound:"サービスが見つかりません",unavailable:"サービスを読み込めません。",minorUnavailable:"マイナーバージョンの詳細を読み込めません。",liveLost:"ライブ更新が停止しました — レコードが最新でない可能性があります。",classification:"分類",repo:"リポジトリ",repoPlaceholder:"owner/repo",classificationKind:{CORE:"コア",SUPPORTING:"サポート",GENERIC:"汎用"},scope:{label:"プロジェクト範囲",all:"すべて",project:"このプロジェクト",others:"他のプロジェクト",chip:"{scope}:{count, plural, other {# 件のコンサンプション}}"},links:{empty:"このサービスを利用しているプロジェクトはありません",open:"継続中",port:"ポート",history:"{count, plural, other {終了したリンク #件}}"},details:{intent:"意図"},inline:{edit:"{field}を編集"},header:{titleLabel:"サービス名",intentPlaceholder:"一行の意図を追加",descriptionPlaceholder:"説明を追加",classificationPlaceholder:"分類を設定",shared:"共有",sharedTooltip:"共有サービス — 特定のプロジェクトには属しません",convergedTooltip:"収束済み — 稼働中のサービスは v{version} と一致しています",twin:"ツイン → {name}",twinTooltip:"{name} のツイン",repoChip:"リポジトリ",repoEdit:"リポジトリを編集",showMore:"もっと見る",showLess:"折りたたむ",scaffolded:"スキャフォールド済み({date})",scaffoldedTooltip:"このサービスのスキャフォールドは {date}
52 に完了として記録されました。記録は一度きりで、リセットされません。",notScaffolded:"スキャフォールド未記録",notScaffoldedTooltip:"このサービスのスキャフォールドはまだ記録されていません。通常はランナーがスキャフォールドの PR を開いた後に記録します。手作業で作成した場合はアクションメニューから記録します。"},tabs:{functionalSpec:"機能仕様",permissions:"権限",offers:"オファー",consumptions:"コンサンプション",e2e:"e2e",sdl:"SDL",dbSchema:"DBスキーマ",restEndpoints:"REST",discussions:"ディスカッション"},envelope:{documentsEmpty:"ドキュメントなし",correctionHint:"修正 — 表現を直すもので、意味は変えません",offersEmpty:"オファーなし",consumptionsEmpty:"コンサンプションなし",unavailable:"オファーとコンサンプションを読み込めません。",filteredEmpty:"フィルターに一致する項目はありません",gestureFailed:"操作を完了できませんでした",gesture:{cancel:"キャンセル",save:"保存",confirmDelete:"削除"},offer:{declare:"オファーを宣言",declareSubmit:"宣言",correct:"修正",type:"種別",naturalKey:"自然キー",shortDescription:"概要",payload:"ペイロード",payloadHint:"イベント / コマンド / KV エントリのペイロードの最小限の説明",setType:"種別を設定",setNaturalKey:"キーを設定",setShortDescription:"概要を設定",setPayload:"ペイロードを設定",setTargetDeletion:"目標を設定",targetDeletionVersion:"削除目標バージョン",deprecation:"非推奨",deprecationDeclaredIn:"{version} で予告",deprecationUndeclared:"非推奨の予告なし",deprecationEffectiveIn:"{version} で発効",deprecationPending:"未発効",markDeprecation:"非推奨としてマーク",unmarkDeprecation:"非推奨を解除",markDeletion:"削除としてマーク",unmarkDeletion:"削除マークを解除",hardDelete:"削除",hardDeleteTitle:"このオファーを削除しますか?",hardDeleteBody:"未実装のこのオファーは下書きから削除されます。元に戻せません。",state:"状態",consumers:"コンシューマー",target:"目標",unconsumed:"未消費",consumersList:"コンシューマー",consumerImplemented:"実装済み",sealed:"封印済み",sealedHint:"実装済みのコンサンプションに消費され、キーとペイロードは固定されています",keyChecking:"キーを確認中…",keyValid:"キーは利用可能",keyInvalid:"キーは許可されていません",keyUnavailable:"キーを確認できませんでした — キーを編集すると再試行します。",markImplemented:"{version} で実装済みにする",markDeleted:"{version} で削除済みにする",stream:"ストリーム",setStream:"ストリームを設定",correctStream:"ストリームを変更",noStream:"ストリームなし",streamPlaceholder:"ストリームを選択",streamsLoading:"ストリームを読み込み中…",streamsNoProject:"選択できるプロジェクトのファブリックがありません。このサービスはどのプロジェクトにも紐づいていません。",streamOwnedHint:"所有プロジェクトのファブリックのストリームを指定します。イベントまたはコマンドのオファーにはストリーム、KV のオファーには KV バケットが必要です。",streamSharedHint:"このサービスは共有です。選んだ名前と種別は要件として記録され、紐づくすべてのプロジェクトのファブリックに一致するストリームが存在する必要があります。どのプロジェクトから選んでも構いません。拘束するのは行ではなく、記録された名前と種別の組です。",streamTooltip:"{name}({kind})で提供",streamKind:{STREAM:"ストリーム",KV_BUCKET:"KV バケット"},streamsEmpty:"このプロジェクトのファブリックにはまだストリームが宣言されていません。",streamsEmptyIn:"{project} のファブリックにはまだストリームが宣言されていません。"},offerState:{declared:"宣言済み",implemented:"実装済み",markedForDeprecation:"非推奨マーク済み",deprecated:"非推奨",markedForDeletion:"削除マーク済み",deleted:"削除済み"},consumption:{shown:"表示中",declare:"コンサンプションを宣言",declareSubmit:"宣言",correct:"修正",kind:"種類",consumedOffers:"消費するオファー",provider:"プロデューサー",state:"状態",warnings:"警告",searchOffers:"消費可能なオファーを検索…",noConsumable:"消費可能なオファーがありません",filterPolicy:"フィルターポリシー",projectionPolicy:"プロジェクションポリシー",mergePolicy:"マージポリシー",projectionTables:"プロジェクションテーブル",eventReactions:"イベントリアクション",commandImplementation:"コマンド実装",setMergePolicy:"マージを設定",setFilterPolicy:"フィルターを設定",setProjectionPolicy:"プロジェクションを設定",setProjectionTables:"テーブルを設定",setEventReactions:"リアクションを設定",setCommandImplementation:"実装を設定",setProjectLink:"プロジェクトリンクを設定",projectLink:"プロジェクトリンク",projectLinkPlaceholder:"プロジェクトリンクを選択",addOffer:"オファーを追加",removeOffer:"オファーを削除",markDeletion:"削除としてマーク",unmarkDeletion:"削除マークを解除",hardDelete:"削除",hardDeleteTitle:"このコンサンプションを削除しますか?",hardDeleteBody:"未実装のã
52“のコンサンプションは下書きから削除されます。元に戻せません。",deprecated:"非推奨",deprecatedConsumed:"{count, plural, other {消費するオファーのうち # 件が非推奨です}}",inboxDriftTest:"インボックスドリフトテスト",markImplemented:"{version} で実装済みにする",markDriftImplemented:"{version} で受信ドリフトテストを実装済みにする",markDeleted:"{version} で削除済みにする"},consumptionState:{declared:"宣言済み",implemented:"実装済み",markedForDeletion:"削除マーク済み",deleted:"削除済み"}},envelopeDiff:{change:{added:"追加",modified:"変更",deprecating:"非推奨予定",deprecated:"非推奨",removed:"削除"},counts:{added:"追加 {count}",modified:"変更 {count}",deprecating:"非推奨予定 {count}",deprecated:"非推奨 {count}",removed:"削除 {count}",unchanged:"変更なし {count}"},field:{type:"種別",shortDescription:"概要",payload:"ペイロード",stream:"ストリーム",markedForDeprecation:"非推奨予定",targetDeletionVersion:"削除予定バージョン",markedForDeletion:"削除予定",consumes:"消費するオファー",filterPolicy:"フィルターポリシー",projectionPolicy:"プロジェクションポリシー",mergePolicy:"マージポリシー",projectionTables:"プロジェクションテーブル",eventReactions:"イベントリアクション",commandImplementation:"コマンド実装",gesture:"ジェスチャー",technicalSpec:"技術仕様",testsAuthz:"認可をテスト",channels:"観測チャネル",projectLinkId:"プロジェクトリンク",inboxDriftTestId:"インボックスドリフトテスト",title:"タイトル",naturalKey:"自然キー"},noChanges:"{from} と {to} の間で、このファミリーに変更はありません。",detailUnavailable:"レジストリの diff には載っていますが、両バージョンのスナップショットには存在しません — バージョンを開いて確認してください。",noFieldDetail:"レジストリ上は変更されていますが、このビューが読む範囲ではフィールドの差分がありません。",unchangedShow:"変更なし {count} ä»¶ — 表示",unchangedHide:"変更なし {count} ä»¶ — 非表示",unavailable:"バージョン diff を読み込めませんでした。"},tests:{title:"テスト",empty:"まだテストが宣言されていません。",filteredEmpty:"フィルターに一致するテストはありません。",noVersion:"テストを表示するバージョンを選択してください。",untitled:"タイトルなしのテスト",expandRow:"{title} の詳細を表示",collapseRow:"{title} の詳細を非表示",filterLabel:"ステータス",actionFailed:"操作を完了できませんでした。",deletedNote:"{version} で削除",coversBreaches:"{count, plural, other {# 件の違反をカバー}}",inboxDriftFor:"{count, plural, other {# 件のコンサンプションのインボックスドリフトテスト}}",status:{pending:"保留中",implemented:"実装済み",scheduled:"削除予定",deleted:"削除済み"},sort:{version:"新しい順",title:"タイトル順",status:"ステータス順"},columns:{status:"ステータス",title:"テスト",channels:"チャネル",declaredIn:"宣言バージョン",implementedIn:"実装バージョン",actions:"アクション"},channels:{nats:"NATS を使用",db:"データベースを使用",redis:"Redis を使用",authz:"認可をテスト"},declare:{open:"テストを宣言",heading:"テストを宣言",submit:"宣言",blocked:"ここではテストを宣言できません。",noPatch:"テストを宣言できる未実装のパッチがありません — すべてのパッチが実装済みです。"},edit:{heading:"テストを修正",submit:"保存"},form:{title:"タイトル",shortDescription:"短い説明",gesture:"ジェスチャー",gestureHint:"ビジネス契約(Markdown)— 予備知識なしで理解できること。",technicalSpec:"技術仕様(任意)",technicalSpecHint:"初期状態、監視チャネル、アクション、正確なアサーション — Gherkin 歓迎。",channels:"観測チャネル",cancel:"キャンセル"}
52,detail:{gesture:"ジェスチャー",shortDescription:"短い説明",technicalSpec:"技術仕様"},actions:{edit:"修正",markImplementedIn:"{version} で実装済みにする",scheduleDeletion:"削除を予定",cancelDeletion:"削除を取消",delete:"削除",deleteConfirmTitle:"このテストを削除しますか?",deleteConfirmBody:"未実装のテスト「{title}」を完全に削除します。この操作は取り消せません。",deleteConfirmCancel:"キャンセル",deleteConfirmConfirm:"削除"}},document:{mode:{view:"表示",diff:"2つのバージョンを比較",edit:"編集",compare:"レンダリングを比較",correct:"修正"},correctionBadge:"修正モード",fold:{fold:"セクションを折りたたむ",unfold:"セクションを展開する"},copy:{action:"Markdown をコピー",copied:"コピーしました",error:"ドキュメントをコピーできませんでした。"},history:{mode:"履歴",plateau:"編集 {index}",current:"現在",currentHint:"最新のドキュメント",carousel:{label:"編集履歴",newer:"より新しい編集を表示",older:"より古い編集を表示"},node:{current:"現在",plateau:"#{index}"},face:{changes:"変更点",document:"ドキュメント"},base:{label:"比較対象",previousEdit:"直前の編集",previousPatch:"直前のパッチ",noPreviousPatch:"その時点では、実装済みのパッチはまだありませんでした。"},side:{current:"現在 — 最新のドキュメント",plateau:"編集 {index} — {date}",patch:"v{version} — {date} 実装",origin:"最初の編集より前",asOf:"{date} 時点"},unchanged:{sinceLatestEdit:"最も新しい編集以降、何も変わっていません。最新のドキュメントは当時とまったく同じ内容です。",thisEdit:"この編集では何も変わっていません。ドキュメントは編集前とまったく同じ内容です。",sincePatch:"v{version} の実装以降、何も変わっていません。"},baseEmpty:"その時点ではドキュメントはまだ存在していなかったため、以下はすべて追加分です。",neverEdited:"このドキュメントは一度も編集されていません。",noD
52ocumentAt:"その時点ではドキュメントはまだ存在していませんでした。",snapshotUnavailable:"そのバージョンのドキュメントを読み込めませんでした。",rollback:"このバージョンを復元する"},correctiveSave:{title:"封印済みマイナーへの修正保存",body:`このマイナーは封印済みかつ実装済みです。この書き込みは通常の編集ではなく、公開されたインテントに対する修正アクションです。
53修正が直すのは表現だけです — 誤字や曖昧さ — 意味は決して変えません。インテント署名は再計算されます。サービスの約束が変わるなら、代わりに新しいマイナーを開いてください。`,bodyRollback:`このマイナーは封印済みかつ実装済みです。{date} 時点のテキストへの復元は通常の編集ではなく、公開されたインテントに対する修正アクションです。
54ドキュメントはその版に戻り、インテント署名は再計算されます。復元したテキストでサービスの約束が変わるなら、代わりに新しいマイナーを開いてください。`,confirm:"修正を保存する"},diff:{showMore:"{count, plural, other {# 行の変更なし}} — 表示",unchanged:"この 2 つのバージョンは、一字一句同じドキュメントです。"},compare:{pick:"バージョン",needsTwoVersions:"2つ目のバージョンが必要です"},comparisonUnavailable:"比較対象のバージョンを読み込めませんでした。",edit:{editorLabel:"ドキュメントソース",save:"保存",cancel:"キャンセル"},discard:{title:"変更を破棄しますか?",body:"このドキュメントには未保存の変更があります。編集モードを終了すると破棄されます。",keep:"編集を続ける",discard:"破棄"},empty:{functionalSpec:"機能仕様はまだありません",permissions:"権限はまだ定義されていません",writeFunctionalSpec:"機能仕様を作成",writePermissions:"権限を作成"},saveFailed:"ドキュメントを保存できませんでした。"},actions:{publish:"公開",deprecate:"非推奨にする",retire:"廃止",reactivate:"再有効化",deleteDraft:"下書きを削除",deprecateService:"サービスを非推奨にする",retireService:"サービスを廃止",reactivateService:"サービスを再有効化",deleteDraftService:"サービスを削除(下書きのみ)",openVersion:"バージョンを開く",seal:"封印",markVerified:"検証済みにする",cancel:"キャンセル",menu:"サービスの操作",recordScaffoldCompleted:"スキャフォールド完了を記録",recordScaffold:"記録する"},confirm:{publish:"このサービスを公開しますか?",publishIntro:"公開すると、このサービスは公開済みのレジストリエントリになります。",deprecate:"このサービスを非推奨にしますか?",deprecateIntro:"非推奨にすると、このサービスの利用が推奨されないことを示します。",retire:"このサービスを廃止しますか?",retireIntro:"廃止すると、このサービスは現役から外されます。",reactivate:"このサービスを再有効化しますか?",reactivateIntro:"再有効化すると、このサービスは現役に戻ります。",deleteDraft:"この下書きサービスを削除しますか?",deleteDraftIntro:"下書きサービスを完全に削除します。",seal:"このバージョンを封印しますか?",sealIntro:"封印すると、このバージョンのエンベロープが凍結され、封印ハッシュが計算されます。",markVerified:"このバージョンを検証済みにしますか?",markVerifiedIntro:"検証は、観測された実装が封印された仕様と一致することを証明します。",retireMajor:"このメジャーバージョンを廃止しますか?",deleteMajor:"このメジャーバージョンを削除しますか?",deprecateMajor:"このメジャーバージョンを非推奨にしますか?",reactivateMajor:"このメジャーバージョンを再有効化しますか?",recordScaffoldCompleted:"スキャフォールドを完了として記録しますか?",deleteMinor:"このマイナーバージョンを削除しますか?",deletePatch:"このパッチバージョンを削除しますか?"},consequences:{publish:`レジストリ全体で他者が利用できるようになります。
55公開の要件が適用されます:概要・サブドメイン・分類が設定されていること。
56プロジェクト固有のサービスには有効なプロジェクトリンクが必要です。`,deprecate:`利用者は移行を促されます。
57サービスは引き続き参照可能で、削除されません。`,retire:`サービスは現役から外されます。
58既存のエンベロープは記録として残ります。`,reactivate:`サービスは現役に戻ります。
59利用はもはや推奨外ではありません。`,deleteDraft:`下書きサービスは完全に削除されます。
60この操作は破壊的で取り消せません。`,seal:`エンベロープ(ドキュメント・提供・消費・e2e テスト)が凍結されます。
61封印ハッシュが計算され記録されます。
62内容は修正ウィンドウを除き変更不可になります。
63取り消し不可:再度開くには新しいバージョンを開きます。`,markVerified:`観測された実装が封印された仕様と一致することの人による証明です。
64検証ハッシュとともに記録されます。`,retireMajor:`メジャーバージョンは現役から外れます。
65既存のバージョンは記録として残ります。`,deleteMajor:`メジャーバージョンは完全に削除されます。
66これは破壊的で取り消せません。`,deprecateMajor:`利用者にはこのメジャーからの移行が示されます。
67メジャーは引き続き閲覧でき、削除はされません。`,reactivateMajor:`メジャーバージョンが現役に戻ります。
68利用が非推奨ではなくなります。`,recordScaffoldCompleted:`レジストリがこのサービスのスキャフォールド完了を記録します。
69記録は一度きりで、二度目は拒否されます。`,deleteMinor:`マイナーバージョンと、それとともに生まれたパッチが完全に削除されます。
70番号はプールに戻り、次に開くマイナーに再割り当てされます。
71これは破壊的で取り消せません。`,deletePatch:`パッチバージョンは完全に削除され、番号はプールに戻ります。
72マイナーは、このパッチを開く前の収束状態に戻ります。
73これは破壊的で取り消せません。`},create:{name:"名前",summary:"概要"},kindFilter:{chip:"{family}:{count, plural, other {# 件}} — 切り替え"},kindFamily:{kv:"KV",event:"イベント",command:"コマンド"},lifecycle:{draft:"下書き",sealed:"封印済み",implemented:"実装済み",converged:"収束済み",breaches:"契約違反",deprecated:"非推奨",retired:"廃止"},nav:{sealMinor:"封印",sealPatch:"封印",unsealPatch:"封印解除",imagePublished:"イメージ公開済み",patchReasonPlaceholder:"このパッチの理由は?",cancel:"キャンセル",createMajorConfirmBody:"新しいメジャートラックを開始し、最初のマイナーとパッチをカスケード作成し、現在の実装済みドキュメントを引き継ぎます。",createMajorConfirm:"メジャーを作成",createPatchReason:"理由(任意)",createPatchBreaches:"修正する違反(任意)",createPatchNoBreaches:"添付できる未解決の違反はありません。",createPatchSealHint:"このパッチを封印するには、理由または少なくとも1つの修正対象の違反が必要です。",createPatchConfirm:"パッチを作成",createMinorConfirmBody:"新しい下書きのマイナーを開き、最後に実装されたマイナーのドキュメントを引き継ぎ、そのパッチ 0 をカスケード作成します。直前のマイナーが実装済みである必要があります。",createMinorConfirm:"マイナーを作成",sealMinorConfirm:"マイナーを封印",sealPatchConfirmTitle:"このパッチを封印しますか?",sealPatchConfirmBody:"封印するとパッチの署名が計算され、実装に引き継がれます。理由または少なくとも1つの修正対象の違反が必要です。",sealPatchConfirm:"パッチを封印",unsealPatchConfirmTitle:"このパッチの封印を解除しますか?",unsealPatchConfirmBody:"封印を解除するとパッチはドラフトに戻り、署名は破棄されます。その場で内容を修正でき、修正後に再度封印できます。",unsealPatchConfirm:"パッチの封印を解除",noMajorHint:"このサービスにはまだバージョンがありません。技術的形状の定義を始めるには、最初のメジャーバージョンを作成してください。",createMajorZero:"メジャーバージョン0を作成",selectAllBreaches:"すべて選択",deselectAllBreaches:"すべて選択解除",createPatchShouldFixFailed:"{total} 件中 {failed} 件の修正対象を登録できませんでした。違反一覧から再登録してください。",createPatchShouldFixFailedReason:"{total} 件中 {failed} 件の修正対象を登録できませんでした — {reason} 違反一覧から再登録してください。"},gesture:{failed:"操作を完了できませんでした。"},major:{menu:"メジャーバージョンの操作",delete:"メジャーを削除",deprecateVersion:"メジャー v{number} を非推奨にする",retireVersion:"メジャー v{number} を廃止",reactivateVersion:"メジャー v{number} を再有効化",deleteVersion:"メジャー v{number} を削除",title:"メジャー v{number}",manner:"方式",eda:"EDA 姿勢",edaTag:"EDA",dumbFrontEnd:"ダムフロントエンド",dumbFrontEndTag:"ダムFE",backEndMonolith:"バックエンドモノリス",backEndMonolithTag:"モノリス",multiPod:"マルチポッド対応",multiPodTag:"マルチポッド",technical:"技術情報",sourcePaths:"ソースコードパス",sourcePathsPlaceholder:"1行に1パス",stack:"スタック",shapeToDefine:"定義すべき技術的形状:{list}",stackAddLanguage:"言語",stackAddFramework:"フレームワーク",stackPickLanguage:"言語を追加",stackPickFramework:"フレームワークを追加",stackRemoveLanguage:"言語 {name} を削除",stackRemoveFramework:"フレームワーク {name} を削除",stackLoading:"リファレンシャルを読み込み中…",stackUnavailable:"リファレンシャルを取得できません — 閉じて再度開くと再試行します。",stackNoLanguages:"すべての言語がすでにこのメジャーに追加されています。",stackNoFrameworks:"このメジャーの言語に対応する未追加のフレームワークはありません。",stackNeedsLanguage:"まず言語を追加してください — フレームワークはメジャーの言語に従います。"},mannerKind:{HEXAGONAL:"ヘキサゴナル",FATTY:"ファット",HUMAN_DRIVEN:"人間主導"},edaKind:{FULL:"フル",SOFT:"ソフト",CRUD:"CRUD"},boolean:{yes:"はい",no:"いいえ"},patch:{procedural:"自動生成",proceduralAttestation:"コードから出力したもの(スキーマエクスポート / pg_dump)であり、手書きではありません — パッチを「実装済み」に進めるのはこの申告です。",empty:"コンテンツなし",menu:"パッチバージョンの操作",delete:"パッチを削除",deleteVersion:"パッチ v{label} を削除"},breaches:{title:"違反",none:"契約違反は宣言されていません。",unavailable:"契約違反を読み込めません。",noOpen:"未解決の違反はありません",openCount:"{count, plural, other {未解決の違反 #件}}",committedCount:"{version}
73 で修正予定 {count} ä»¶",converged:"収束済み",declare:"違反を宣言",declareConfirm:"宣言",declareAnchor:"最後のパッチ {version} に紐付けられます。",declareNoPatch:"違反を紐付けるパッチがまだありません。",cancel:"キャンセル",shortDescription:"概要",reproduction:"再現手順",reproductionOptional:"再現手順(任意)",analysis:"分析",analysisOptional:"分析(任意)",linkTest:"テストを紐付け",linkTestLabel:"カバーする e2e テスト",linkTestConfirm:"紐付け",noTests:"このマイナーには紐付けられる e2e テストがありません。",coveringTestOptional:"カバーするテスト(任意)",testPlaceholder:"テストを選択",coversTest:"テスト:{title}",markFixed:"{version} で修正済みにする",commitShouldFix:"{version} の修正対象にする",markIrrelevant:"無関係にする",delete:"削除",deleteTitle:"この違反を削除しますか?",deleteBody:"契約違反を完全に削除します。この操作は取り消せません。",empty:"—",shouldFix:"修正予定({count})",shouldFixLabel:"このパッチが修正を約束する違反",recordImage:"イメージを記録",image:"イメージ参照",state:{open:"未解決",fixedIn:"{version} で修正",irrelevantAfter:"{version} 以降は無関係",shouldFixIn:"修正予定 → {version}",fixed:"修正済み"},showResolved:"解決済みを表示({count})",hideResolved:"解決済みを非表示",allResolved:"すべての違反が解決されました。",editReproduction:"再現手順を編集",editAnalysis:"分析を編集",observation:{remainingDH:"残り {days}日{hours}時間",remainingHM:"残り {hours}時間{minutes}分",remainingM:"残り {minutes}分",lessThanMinute:"残り 1分未満"},aboutItem:"対象の契約要素(任意)",aboutItemHint:"この違反が対象とするオファー、コンサンプション、テストを 1 つ指定します。一度きりの設定で、要素も理由も後から変更できません。",aboutNone:"特定の要素を対象としない",aboutOffers:"オファー",aboutConsumptions:"コンサンプション",aboutTests:"e2e テスト",aboutUnnamed:"まだオファーのないコンサンプション",aboutNamed:"{kind}:{name}",aboutUnresolved:"以前のバージョンの{kind}",aboutKind:{OFFER:"オファー",CONSUMPTION:"コンサンプション",TEST:"テスト"},severityLabel:"深刻度",severityPlaceholder:"深刻度を選択",severity:{VERY_LOW:"非常に低い",LOW:"低い",MEDIUM:"中程度",HIGH:"高い"},rerank:"深刻度を変更",reasonLabel:"理由",reason:{NOT_IMPLEMENTED:"未実装",BADLY_IMPLEMENTED:"実装が不適切",NOT_REMOVED:"未削除"},reasonWhen:{NOT_IMPLEMENTED:"宣言されたまま実現されていない状態。実装したパッチがない間のみ選べます。",BADLY_IMPLEMENTED:"実現されたが宣言に反している状態。実装したパッチがある場合のみ選べます。",NOT_REMOVED:"削除予定のまま削除されていない状態。要素が削除を待っている間のみ選べます。"},reasonEffect:{NOT_IMPLEMENTED:"この違反がある限り、要素を実装済みとしてマークできません。",BADLY_IMPLEMENTED:"何もブロックしません。人による検証だけがこれを閉じます。",NOT_REMOVED:"この違反がある限り、要素を削除済みとしてマークできません。"},ageUnknown:"継承",ageCurrent:"最新パッチ",agePatches:"{count, plural, other {#パッチ前}}",relation:{declaredIn:"{version} で宣言",shouldBeFixedIn:"{version} で修正予定",shouldHaveBeenFixedIn:"{version} で修正されるはずだった",hasBeenFixedIn:"{version} で修正済み"},markFixedNoTarget:"修正済みにする",markFixedPick:"修正したパッチを選択",noFixTarget:"この major には {version} より後の実装済みパッチがありません — 修正はリリース済みのパッチにのみ記録できます。"},implementation:{explainer:"パッチは、封印され、イメージが記録され、SDL と DB スキーマが生成されると実装済みになります。実装済みになると、マイナー版で違反を宣言できるようになります。",titleFor:"実装 — v{version}",explainerLabel:"実装について",implementedCue:"実装済み",convergedCue:"収束済み",details:"詳細",sealed:"封印済み",image:"イメージ記録済み",sdlProcedural:"SDL 生成済み",dbProcedural:"DB ã
73‚¹ã‚­ãƒ¼ãƒžç”Ÿæˆæ¸ˆã¿",met:"達成",unmet:"未達成",recordImage:"イメージを記録",editImage:"イメージを編集",imageRef:"イメージ参照",derivedHint:"実装済みは導出されます — 公開イメージを記録し、デプロイが手続き的なSDLとDBスキーマを投稿すれば、この封印済みパッチは前進します。",confirmingImage:"イメージを確認中…",proceduralHint:"SDL と DB スキーマは、デプロイスクリプトまたはエージェントによって(手続き的に)投稿されるもので、ここで手作業で編集するものではありません。",awaitingDeployment:"デプロイ待ち",openDoc:"このドキュメントを下で開く",awaitingHint:"手続き的な SDL と DB スキーマはデプロイが投稿し、このパッチはひとりでに実装済みになります — または下で自分で投稿し、「自動生成」にチェックを入れてください。",restOptional:"RESTエンドポイント(任意)"},identity:{title:"アイデンティティ",shape:"技術形態",stack:"スタック",owner:"所有者",twin:"ツイン元",twinBounds:"ツイン互換範囲",twinBoundsRange:"{min} → {max}",twinBoundsOpen:"これ以降のすべてのパッチ",scaffold:"スキャフォールド",majorSection:"メジャー {number}",usedIn:"{count, plural, other {#件のプロジェクトで使用}}",menu:"サービスとメジャーの操作",menuService:"サービス"},knownTasks:{title:"既知のタスク",explainer:"このレジストリがこのサービスのために発注した作業です。実行はタスクサービスが担います。",summary:"未完了 {open} ä»¶ · 発注 {total} ä»¶",emptySummary:"発注はありません",empty:"このレジストリはこのサービスに対してまだ何も発注していません。",unavailable:"既知のタスクを読み込めません。",openHint:"未完了",settledHint:"決着済み",staged:"登録 {date}",confirmed:"確認 {date}",settled:"決着 {date}",heldBy:"担当 {id}",settledReason:"理由: {reason}",settledReasons:{major_deprecated:"メジャーの非推奨化",major_retired:"メジャーの廃止",service_retired:"サービスの廃止",service_deleted:"サービスの削除",minor_deleted:"マイナーの削除",patch_deleted:"パッチの削除",patch_unsealed:"パッチの封印解除",breach_irrelevant:"違反が無関係と判定",breach_deleted:"違反の削除",twin_retired:"ツインの廃止",superseded_by_newer_patch:"新しいパッチによる置き換え",superseded_by_newer_schema_change:"新しいスキーマ変更による置き換え"},type:{SCAFFOLD_SERVICE:"サービスのスキャフォールド",SCAFFOLD_PATCH:"パッチのスキャフォールド",IMPLEMENT_PATCH:"パッチの実装",VERIFY_PATCH:"パッチの検証",VERIFY_BREACH_FIX:"違反修正の検証",VERIFY_TWIN:"ツインの検証",CHECK_UNDELIVERED_ITEMS:"未提供項目の確認"},state:{PENDING:"登録済み",LIVE:"進行中",CLAIMED:"受任済み",COMPLETED:"完了",CANCELLED:"キャンセル",LAPSED:"期限切れ",CREATION_REJECTED:"作成が拒否されました",COMPLETION_REJECTED:"完了が拒否されました",CANCELLATION_REJECTED:"キャンセルが拒否されました"}},createDialog:{majorTitle:"メジャーバージョンを作成",majorDoctrine:"技術的な形を変える ⇒ 新しいメジャー。",minorTitle:"マイナーバージョンを作成",minorDoctrine:"新しく宣言するインテント — 内容は {latest} から引き継がれます。",patchTitle:"パッチバージョンを作成",patchDoctrine:"{minor} のインテントに向けた実現ステップ。",targetMajor:"対象メジャー",noneAvailable:"ここで作成できるバージョンはありません。",bumpMajor:"新しいメジャー",bumpMinor:"新しいマイナー",bumpPatch:"新しいパッチ"},inspector:{stages:{defined:"定義済み",draft:"下書き",sealed:"封印済み",implemented:"実装済み",converged:"収束済み"},regime:{major:"形を変える ⇒ 新しいメジャーバージョン。",minorSealed:"封印済み — 修正のみ。新しい要望 ⇒ 新しいマイナー。",patch:"実現 — マイナーの意図に収束します。パッチ自体は意図を持ちません。"},signature:"シグネチャ",intentSignature:"意図シグネチャ",offerCount:"{count, plural, other {オファー #ä»¶}}",consumptionCount:"{count, plural, other {コンサンプション #ä»¶}}",testCount:"{count, plural, other {テスト #ä»¶}}",reason:"理由",checklistTitle:"実装チェックリスト",implReportTitle:"実装レポート",implReportSummary:"{count, plural, other {# 件の実行}}
73",implReportEmpty:"このパッチではまだ何も実行されていません。",implReportUnavailable:"実行台帳を読み込めませんでした。",implReportOpenTask:"タスクを開く",shouldFixTitle:"修正対象",shouldFixCount:"このメジャーバージョンで未解決 {total} 件中 {count} ä»¶",shouldFixNone:"このパッチはまだどの契約違反の修正も約束していません。",shouldFixFootnote:"プール全体は「違反」セクションで管理します",workUnavailable:"残作業を読み込めませんでした。",workTitle:"残作業",workTests:"{count, plural, other {実装すべきテスト #ä»¶}}",workOffers:"{count, plural, other {実装済みにするオファー #ä»¶}}",workConsumptions:"{count, plural, other {実装済みにするコンサンプション #ä»¶}}"},discussions:{title:"ディスカッション",openCount:"{count, plural, other {未解決のディスカッション #ä»¶}}",openThreads:"{count, plural, other {ディスカッションを表示(未解決 #件)}}",openThreadsUnknown:"ディスカッションを表示",surfacePending:"ディスカッションを読み込み中…",status:{open:"未解決",resolved:"解決済み"},filter:{all:"すべて",open:"未解決",resolved:"解決済み"},filterLabel:"ディスカッションを絞り込む",threadAria:"{name}のディスカッション",toggleThread:"スレッドの開閉",quoteOutdated:"引用が古くなっています — その後ドキュメントが編集されました",edited:"(編集済み)",editComment:"コメントを編集",cancel:"キャンセル",save:"保存",commentPlaceholder:"コメントを入力…",addComment:"コメント",reply:"返信",replyPlaceholder:"返信…",threadMenu:"スレッドの操作",comments:"コメント",resolve:"解決",reopen:"再開",participants:"参加者",addParticipant:"追加",removeParticipant:"{name}を外す",leave:"退出",searchUsers:"ユーザーを検索…",loadingUsers:"読み込み中…",noCandidates:"このスレッドに追加できる人はいません。",usersUnavailable:"ユーザー一覧を取得できません。後でもう一度お試しください。",sheetTitle:"ディスカッション — {target}",sheetSubtitle:"この契約項目に関するスレッド。",newDiscussion:"新しいディスカッション",startDiscussion:"ディスカッションを開始",quotedTextPlaceholder:"引用テキスト(任意)",citeAField:"フィールドを引用",citeFieldLabel:"引用するフィールド",citeFieldPlaceholder:"フィールドを選択…",citeHint:"対象の箇所だけになるようテキストを削ってください。",dropCitation:"引用を解除",citeField:{natural_key:"ナチュラルキー",short_description:"概要",payload:"ペイロード",merge_policy:"マージポリシー",filter_policy:"フィルタポリシー",projection_policy:"プロジェクションポリシー",projection_tables:"プロジェクションテーブル",event_reactions:"イベントリアクション",command_implementation:"コマンド実装",title:"タイトル",gesture:"ジェスチャー",technical_spec:"技術仕様"},titleLabel:"スレッドのタイトル",titleRequired:"スレッドを開始する前に名前を付けてください。",renameThread:"スレッド名を変更",titlePlaceholder:"スレッド名",emptyTarget:"この項目にはまだディスカッションがありません。",emptySurface:"このバージョンにはまだディスカッションがありません。",emptyDocument:"このドキュメントにはまだディスカッションがありません。",unavailable:"ディスカッションを読み込めません。",retry:"再試行",liveInterrupted:"ライブ更新が中断されています",marginTitle:"ディスカッション",generalComment:"コメント",commentOnSelection:"選択箇所にコメント",commentOnPassage:"この箇所にコメント",bubbleThreads:"{count, plural, other {#件のスレッド}}",thisPassage:"この箇所",unpinnedHint:"本文に固定されていません — 該当箇所が変更された、複数回現れる、または折りたたまれたセクション内にあります。",allPinnedForFilter:"該当する議論は、文書内の該当箇所の横に固定されています。",quoteOutdatedNote:"この箇所は文書のソースにちょうど1回だけ現れないため、引用は最初から「古い」と表示されます。1回だけ現れる箇所を選んでください。",firstCommentFailed:"ディスカッションは作成されましたが、最初のコメントを投稿できませんでした。入力したテキストは保持されています。もう一度送信してください。",firstCommentFailedReason:"ディスカッションは作成されましたが、最初のコメントを投稿できませんでした — {reason} 入力したテキストは保持されています。もう一度送信してください。",target:{functionalSpec:"機能仕様",permissions:"権限",offer:"オファー",consumption:"コンサンプション",test:"テスト"}},tour:{help:{take:"ツアーを始める",replay:"ツアーをもう一度見る"},previous:"前へ",next:"次へ",finish:"完了",skip:"ツアーをスキップ",counter:"{current} / {total}",stops:{orientation:{title:"縦スクロールはひとつだけ",body:"4つのブロックをひとつのスクロールで。ライフサイクル・バーはプロジェクトの下にサービス名を示し、バージョングラフを備え、選択中のメジャーの現在地を伝えます。アイデンティティ・ブロックはサービスとメジャーの正体を折りたたみ、ブリーチ表は収束が判定する負債を並べ、メインゾーンは選択中のバージョンを2つの面で扱います。ここに二重のスクロール領域はありません。"},"identity-card":{title:"アイデンティティ・ブロック",body:"バージョンに属さないものすべてを収めた開閉ブロックです。名称、1行の意図、markdown として描画される説明、分類、リポジトリ、そしてその下に選択中メジャーの技術形態。隣の2つの ⋯ メニューが、サービスとメジャートラックそれぞれのライフサイクルを持ちます。"},"version-tree":{title:"バージョングラフ",body:"上のバーにあるグラフは、このレã
73‚³ãƒ¼ãƒ‰ã®ã‚¿ã‚¤ãƒ ãƒžã‚·ãƒ³ã§ã™ã€‚メジャーごとに1本のレーン(非推奨・廃止されたものも含みます。ライフサイクル行がそれらを描かないのはこのためです)、そしてマイナーごとに1つの駅が、新しいものから左に並びます。駅を選ぶと、そのパッチが右側へ新しい順に展開され、離れたマイナーは畳まれます。畳まれた駅は +N を付けて、いくつを代表しているかを示します。どのパッチも、その駅から1クリックで届きます。ドットの色と大きさは階層を示します。パッチはワークスペースのプライマリ色、マイナーの駅はアクセント色、メジャーは無彩色で最も大きいままです — メジャーはすでに自分のレーンを持っているので、色を付けると同じことを二度言うことになります。選択中のドットにはその色のリングが付きます。レーンの先頭には、そのメジャーの収束が事実として置かれます — 操作ではありません。収束済みなら緑のチェック、それ以外は何もありません。宣言そのものは下のライフサイクル行にあります。ドットにホバーすると、状態の語、日付、そのバージョンが切られた理由が読めます。どのドットを押しても、下の2つの面が宣言どおりのそのバージョンを描きます。ジェスチャーは正直なままで、過去が拒むものはサーバーが拒みます。履歴が幅に収まらないときは、矢印でページ送りします。"},"ghost-create":{title:"路線を延ばす",body:"作成の入口はそれぞれ自分のレベルを持ちます。メジャーのライフサイクル行にある「新しいマイナー」は次のマイナーを作成します。確認ダイアログは作成されるものを明示し、所有エンティティ自身の権限で制御されます。拒否された場合は理由が表示され、まったく提供されない操作はそもそも存在しません。"},"major-shape":{title:"メジャーの形",body:"マナー、EDA姿勢、ブールタグは、サービスをどう作るかを定義します。形を変えることは新しいメジャーを意味します — このペインのバナーが示すバンプルールです。"},"major-stack":{title:"スタック",body:"言語とフレームワークはメジャーの形の一部です。共有リファレンシャルからチップを追加・削除できます。ピッカーはレジストリが知っているものだけを提示します。"},"minor-header":{title:"マイナーの一望",body:"セレクタの横で、ステッパーがライフサイクルを順に灯します — ドラフト、封印、実装、収束。等幅のタグは意図シグネチャ、封印された契約のハッシュであり、何が凍結されたかの証拠です。⋯ はドメインが許す間だけマイナーを削除します。"},"minor-regime":{title:"バージョンのレジーム",body:"下書きのマイナーはフェイス行に「下書き」タグを掲げ、全面編集可能です。封印するとタグは消え、意図タブ内のバナーが引き継ぎます。それ以降は修正のみが意図に触れられます。"},"minor-seal":{title:"マイナーを封印する",body:"封印はマイナーの意図 — 仕様、権限、エンベロープ — を凍結します。この操作はバーの行にあり、ドメインが封印できる/できない理由を述べた文のすぐ後ろに置かれます。実装は封印済みの契約に対してしか始まりません。このボタンが越えるのはその境界です。"},"minor-doc":{title:"インテントドキュメント",body:"機能仕様と権限はマイナーの書かれたインテントです。文章を選択すると、引用テキストに固定された余白ディスカッションを開けます — レビューは言葉のある場所で行われます。"},"minor-envelope":{title:"契約エンベロープ",body:"オファー、コンサンプション、e2eは、マイナーが提供するもの、利用するもの、それを証明するものを宣言します。下書き中に宣言し、封印後は修正のみです。"},"minor-breaches":{title:"ブリーチ表",body:"このメジャーラインの契約に対する、未修正で関連のあるブリーチをマイナーをまたいで継承しつつすべて並べます。状態、説明、検出されたパッチ、修正を約束したパッチ、そして何パッチ前からのものか。行を開くと再現手順と分析が出ます。表はメジャーがパッチを出荷して初めて現れます — それ以前は逸脱する対象がありません。収束はこのリストに依存します。"},"minor-discussions":{title:"ディスカッション",body:"このマイナーの契約面に関するすべてのスレッド(オープン・解決済み)を1か所に集めます。契約が固まるにつれて解決していきましょう。タブのラベルは未解決の数を示します。"}
73,"discussion-chip":{title:"💬 が示す場所",body:"チップはディスカッションを持つ行を示します — エンベロープ行、ツリーノード、タブラベル。行のチップをクリックすると、テーブルを離れずにスレッドパネルが開きます。"},"patch-bands":{title:"パッチストリップ",body:"実現の面はパッチ単位であり、このストリップがその座標です。マイナーのすべてのパッチを古い順に並べ、最新の「実装済み」パッチ — 実際に動いているもの — を開きます。+ で次のパッチを切ります。"},"patch-checklist":{title:"実現",body:"パッチは封印されたインテントを実現します。チェックリストを進め、公開イメージを記録し、SDL・DBスキーマ・RESTドキュメントを実現カードとして保ちます。"},"patch-converge":{title:"パッチを収束させる",body:"収束はそのパッチを「使うべきバージョン」と宣言します。この操作は、ドメインが提示するパッチに立つライフサイクル行の、ほかの操作ボタンと並んで置かれます — 宣言がそのパッチに乗るとしても、収束はメジャーの事実だからです — そしてドメインが許可したときにだけ現れます。ドメインが拒む間はボタン自体がありません。行の未解決ブリーチ数と、バージョングラフのレーン先頭が、その事情を読む場所です。収束済みのメジャーはレーンの先頭に緑のチェックを付けます。"}}},minor:{menu:"マイナーバージョンの操作",delete:"マイナーを削除",deleteVersion:"マイナー v{label} を削除"},scaffold:{title:"スキャフォールド",steps:"{total}ステップ中{done}ステップ",noPlan:"ジョブはまだ計画を宣言していません。",claimExpires:"{date}まで保持",state:{pending:"未開始",inProgress:"実行中",completed:"完了",unknown:"不明な状態"},automation:{automated:"ランナーが実行します。",directTask:"人に割り当てられています。",automatedH
73andoff:"ランナーが開始し、人に引き継がれました。",unknown:"不明な割り当てです。"},task:{pending:"タスクを準備中です。",claimable:"引き受け手を待っています。",claimed:"引き受けられています。",lapsed:"引き受けが失効しました。再度の引き受けを待っています。",completed:"タスクは完了しました。",rejected:"タスクは拒否されました。",cancelled:"タスクは取り消されました。",unknown:"不明なタスク状態です。"},reasons:{generic_failure:"スキャフォールドを完了できませんでした。手作業で引き継ぎ、コードが入ったら完了として記録してください。",runner_type_unknown:"「{runnerType}」に応答するランナーがありません。フレームワークのスキャフォールドランナー種別を修正するか、手作業で完了させてください。",no_runner_available:"種別「{runnerType}」の稼働中ランナーがありません。ランナーが名乗り出るまでジョブは待機します。",job_refused:"jobsサービスがスキャフォールドジョブを拒否したため、何も実行されていません。",run_failed:"実行が失敗しました。下の診断情報を確認し、手作業でスキャフォールドを完了させてください。",run_timed_out:"実行が期限を超過し、打ち切られました。手作業でスキャフォールドを完了させてください。",run_cancelled:"実行は完了前に取り消されました。",manual_action_required:"ランナーが停止し、人手を求めています。残りのステップを手作業で完了させてください。"}},main:{noMinor:"マイナーバージョンがありません",noPatch:"パッチがありません",nextPatch:"パッチ",patchStripLabel:"パッチ",face:{intent:"意図",realization:"実現"},draft:"下書き",obligations:"義務 {done}/{total}",jobReport:"ランナーレポート"},seal:{title:"{version} を封印しますか?",againstParent:"{parent} からの変更点です。",noParent:"このメジャーの最初のバージョンです — 以下はすべて新規です。",unchanged:"親バージョンからの変更はありません。",emptyParentLabel:"なし",unnamed:"タイトルなし",failed:"比較を読み込めませんでした。",retry:"再試行",tabs:{offers:"オファー ({count})",consumptions:"コンサンプション ({count})",tests:"テスト ({count})",functionalSpec:"機能仕様 ({count})",permissions:"権限 ({count})"},headline:{functionalSpecLines:"機能仕様:+{added} / −{removed} 行",permissionsLines:"権限:+{added} / −{removed} 行"}},versionCarousel:{aria:"バージョングラフ — 新しい順、メジャーごとに1レーン",foldedPatches:"過去のパッチ {count} ä»¶ — この駅を選ぶと展開されます"}},automation:{title:"自動化ルール",subtitle:"各パッチワークブロックをどのランナータイプが担当し、どのメジャーに適用されるか。",add:"新しいルール",create:"ルールを作成",save:"ルールを保存",edit:"編集",delete:"ルールを削除",deleteTitle:"このルールを削除しますか?",deleteBody:"「{runnerType}」を指す優先度 {priority} の {block} ルールが削除されます。すでにディスパッチ済みのパッチワークには影響しません。",deleteConfirm:"ルールを削除",blockEmpty:"このブロックにはまだルールがありません。",liveInterrupted:"リファレンシャルのライブ配信が中断されています — 表示内容が古い可能性があります。",blocks:{SCAFFOLD:"スキャフォールド",IMPLEMENT:"実装",VERIFY:"検証"},block:{label:"ブロック"},priority:{label:"優先度",hint:"小さい値が先に評価されます。ブロック内で一意であり、同じブロックの他のルールが持つ順位はレジストリが拒否します。"},runnerType:{label:"ランナータイプ",placeholder:"このブロックを担当するランナータイプ名",known:"既知のタイプ:",use:"{type} を使う"},matchers:{any:"すべて",manner:"マナー",multiPod:"マルチポッド",multiPodYes:"対応",multiPodNo:"非対応",framework:"フレームワーク",frameworkCardinality:"宣言フレームワーク数",frameworkUnknown:"不明なフレームワーク"}},runners:{title:"ランナー担当状況",subtitle:"どのランナー種別がどの仕事を担うか、そして名前だけで誰も応じなã
73„ランナーはどれか。",editRules:"ルールを編集",empty:"ランナー種別を指名するものはまだなく、フリートも空です。",unclaimedRow:"この種別を指名するルールもフレームワークもありません。",unscaffolded:"スキャフォールド用ランナー未設定のフレームワーク",unscaffoldedHint:"これらの上に築かれたサービスはスキャフォールドできません。スタック参照表でランナーを指名してください。",standing:{UNSERVED:"指名済み、ただし担い手なし",SERVING:"稼働中",UNCLAIMED:"フリートにあるが未割当"},standingHint:{UNSERVED:"仕事が割り当てられているのに、応じる稼働インスタンスがありません。ここへ送られたジョブは永久に待ち続けます — 実行も期限も失効もありません。",SERVING:"ルールまたはフレームワークに指名され、応じるインスタンスがあります。",UNCLAIMED:"フリートには存在しますが、誰も仕事を送っていません。"},jobs:{patchBlock:"パッチ作業 · {block}",scaffoldService:"サービスをスキャフォールド"},fleet:{unknown:"フリート未登録",unavailable:"稼働インスタンスなし",available:"待機 {idle} · 稼働 {busy}",waiting:"{count} 件のジョブが既に待機中"}},stack:{title:"スタック参照表",subtitle:"各メジャーがスタックを選ぶ元となる言語とフレームワークです。",refusedTitle:"スタック参照表はプラットフォーム管理者専用です",refusedBody:"ここにある言語とフレームワークはプラットフォーム上のすべてのサービスで共有されるため、閲覧と変更ができるのはプラットフォーム管理者だけです。追加が必要な場合は管理者に依頼してください。",empty:"まだ言語がありません。",liveInterrupted:"参照表のライブ配信が中断しています。表示内容は古い可能性があります。",whenToUse:"使いどころ",whenToUsePlaceholder:"どんなときにメジャーがこれを選ぶべきですか?",language:{name:"言語名",namePlaceholder:"Rust、TypeScript など",add:"言語を追加",create:"言語を作成",compiled:"コンパイル型",transpilesTo:"トランスパイル先",transpilesToNone:"なし",transpilesToClear:"クリア",delete:"削除",deleteTitle:"この言語を削除しますか?",deleteBody:"「{name}」が参照表から消えます。これを指すフレームワークやメジャーは先に切り離してください。",deleteConfirm:"言語を削除"},framework:{plural:"フレームワーク",name:"フレームワーク名",namePlaceholder:"Axum、React など",add:"フレームワークを追加",create:"フレームワークを作成",empty:"この言語にはまだフレームワークがありません。",delete:"削除",deleteTitle:"このフレームワークを削除しますか?",deleteBody:"「{name}」が消えます。これを宣言しているメジャーは先に切り離してください。",deleteConfirm:"フレームワークを削除"},runnerType:{label:"スキャフォールドランナー種別",placeholder:"このスタックをスキャフォールドするランナー名",known:"既知の種別:",use:"{type}を使う",eligible:"このフレームワークだけを宣言するメジャーはスキャフォールド対象になります。",notEligible:"ランナー種別がないと、このフレームワークで作るメジャーはスキャフォールドできません。"}}}},tb={workspace:eb},nb={tasks:{title:"タスク"}},rb={workspace:nb},ob={timesheet:{title:"工数管理"}},ib={workspace:ob},ab={ux:{personas:{title:"ペルソナ"},gestures:{title:"ジェスチャー"}}},sb={workspace:ab},cb={website:{contacts:"お問い合わせ"}},lb={workspace:cb},db={workspace:{...Hv.workspace,...qv.workspace,...Bv.workspace,...Kv.workspace,...Yv.workspace,...Qv.workspace,...Zv.workspace,...ty.workspace,...ry.workspace,...iy.workspace,...sy.workspace,...ly.workspace,...uy.workspace}},ub={workspace:{...my.workspace,...gy.workspace,...vy.workspace,...by.workspace,...Iy.workspace,...Cy.workspace,...wy.workspace,...Ay.workspace,...Ry.workspace,...Dy.workspace,...Ny.workspace,...Ly.workspace,...Uy.workspace}},pb={workspace:{...xy.workspace,...Hy.workspace,...qy.workspace,...By.workspace,...Ky.workspace,...Yy.workspace,...Qy.workspace,...Zy.workspace,...tb.workspace,...rb.workspace,...ib.workspace,...sb.workspace,...lb.workspace}},mb={title:"Notifications",deleteAll:"Delete all",loadMore:"Load more",empty:"You're all caught up",delete:"Delete",markRead:"Mark as read",actionError:"That notification action could not be completed.",unread:"Unread",open:"Notifications",actionPending:"Action required",labelSeparator:" — ",templates:{welcome:"Welcome to Bot Resources 👋",member_joined:"You joined {orgName}.",member_joined_other:"A new member joined {orgName}.",admin_promoted:"You were promoted to admin of {orgName}.",admin_promoted_other:"A member was promoted to admin of {orgName}.",admin_demoted:"You're no longer an admin of {orgName}.",member_deactivated:"Your membership in {orgName} was deactivated.",scope_granted:"You were granted the “{scope}” permission.",scope_revoked:"The “{scope}” permission was revoked.",contact_submitted:"New contact submission ({topic}).",charter_vote_solicited:"A proposal (rev. {revision}) needs your vote.",charter_pending_proposals_digest:"{count, plural, one {# proposal awaits} other {# proposals await}} your decision.",charter_proposal_passed:"A proposal passed (v{version}).",charter_proposal_blocked:"A proposal was blocked.",charter_proposal_dropped:"A proposal was withdrawn.",charter_version_published:"A new charter version (v{version}) was published.",charter_comment_added:"New comment on a proposal.",project_role_assigned:"You were assigned {role} on {projectName}.",project_role_ended:"Your {role} assignment on {projectName} has ended.",project_role_corrected:"Your {role} assignment on {projectName} was corrected.",project_role_annulled:"Your {role} assignment on {projectName} was annulled — it was recorded in error.",project_status_changed:"The project {projectName} is now {status}.",project_status_changed_with_reason:"The project {projectName} is now {status} ({reason}).",fallback:"You have a new notification.",domain_claim_requested:"New domain claim: {domain} for {orgName}.",domain_claim_approved:"Your domain claim for {domain} was approved.",domain_claim_rejected:"Your domain claim for {domain} was rejected.",membership_candidacy_created:"Someone is awaiting your review to join {orgName}.",membership_candidacy_approved:"Your request to join {orgName} was approved.",membership_candidacy_rejected:"Your request to join {orgName}
73 was declined.",org_invitation_created:"You've been invited to join {orgName}.",org_invitation_accepted:"Your invitation to {orgName} was accepted.",org_invitation_declined:"Your invitation to {orgName} was declined.",org_invitation_revoked:"Your invitation to join {orgName} was withdrawn.",timesheet_week_submitted:"{name} submitted week {week} — {hours} h, waiting on your decision.",timesheet_week_submitted_unnamed:"Week {week} was submitted — {hours} h, waiting on your decision.",timesheet_week_submitted_over:"{name} submitted week {week} — {hours} h logged over {covered} h covered, above the weekly maximum. Waiting on your decision.",timesheet_week_submitted_unnamed_over:"Week {week} was submitted — {hours} h logged over {covered} h covered, above the weekly maximum. Waiting on your decision.",timesheet_week_rejected:"Your week {week} was sent back: {reason}",timesheet_week_rejected_plain:"Your week {week} was sent back.",timesheet_submit_reminder:"Week {week} is still not submitted.",timesheet_submit_reminder_many:"Weeks {weeks} are still not submitted.",timesheet_log_reminder:"Log your hours for week {week}.",timesheet_log_reminder_plain:"Log your hours.",services_comment_added:"New comment on {serviceName}.",services_discussion_participant_added:"You were added to a discussion on {serviceName}.",services_discussion_resolved:"A discussion on {serviceName} was resolved.",services_patch_implemented:"{serviceName} {version} was implemented.",org_scope_revoked_by_platform:"The platform revoked the “{scope}” permission in {orgName}. This removed {extent}.",org_scope_revoked_by_platform_plain:"The platform revoked the “{scope}” permission in {orgName}.",org_scope_revoked_by_platform_stale:"The platform revoked the “{scope}” permission in {orgName}: it is no longer declared by its service. This removed {extent}.",org_scope_revoked_by_platform_stale_plain:"The platform revoked the “{scope}” permission in {orgName}: it is no longer declared by its service.",org_scope_revoked_by_platform_conflicting:"The platform revoked the “{scope}” permission in {orgName}: it is now restricted to a narrower audience. This removed {extent}.",org_scope_revoked_by_platform_conflicting_plain:"The platform revoked the “{scope}” permission in {orgName}: it is now restricted to a narrower audience.",org_scope_revoked_by_platform_members:"{count, plural, one {# member grant} other {# member grants}}",org_scope_revoked_by_platform_groups:"{count, plural, one {# group grant} other {# group grants}}",org_scope_revoked_by_platform_entitlement:"the organization’s entitlement"},topics:{Project:"Project",JobOffer:"Job offer",Partnership:"Partnership",Other:"Other"}},hb={notifications:mb},gb={identity:{can_access_identity:{label:"Identity access",description:"Opens the Identity module: read the organizations, users, groups and memberships the holder is entitled to see."},can_manage_users:{label:"Manage users",description:"Create, invite, enable and disable users, and administer their memberships and permissions."},can_manage_orgs:{label:"Manage organizations",description:"Create organizations and run their lifecycle (publish, activate, suspend, archive), and administer their domains and entitlements."},can_manage_groups:{label:"Manage groups",description:"Create and delete groups, change their membership, and grant or revoke the scopes and roles they carry."}},charter:{access:{label:"Governance access",description:"Opens the Charter module: read the tenets, the deliberations and the college. Platform-only."}},projects:{access:{label:"Projects access",description:"Opens the Projects registry: read the project records, their staffing, their organization links and their repositories."},manage:{label:"Manage projects",description:"Create and edit project records and run their lifecycle: publish, staff, link organizations, close. Platform-only."},runner:{label:"Projects runner key",description:"Reads one project's verification environment, its base URL and its access token, to target it. Grants nothing else: no catalogue sight, no other read, no mutation. Platform-only, for verification runners."}},services:{can_access:{label:"Services access",description:"Opens the Services registry: read the service records, their versions, their contracts and their documents."},can_manage_shared_services:{label:"Manage shared services",description:"Gives extended rights on shared services — the shared-pool equivalent of a project architect's write access. Platform-only."},can_mark_implemented:{label:"Record implementation evidence",description:"The CI key: validates an implementation target and records the three procedural evidence
73s on an eligible sealed patch (the image, the procedural SDL, the procedural database schema). Grants no other read or write. Platform-only."},runner:{label:"Services runner key",description:"The runner key: resolves the implementation target, reads its context, declares an e2e test on it and records the scaffold completion. Nothing else. Platform-only."},can_manage_services:{label:"Manage services (legacy)",description:"A key the registry still carries from an earlier declaration: no code in the Services registry reads it today, and its manifest no longer declares it. Withdraw it once nothing holds it."}},timesheet:{access:{label:"Timesheet access (legacy)",description:"A key the registry still carries from an earlier declaration. The Timesheet service reads no scope at all today (belonging to the platform organization is its whole access wall), so holding this grants nothing."},manage:{label:"Manage timesheets (legacy)",description:"A key the registry still carries from an earlier declaration. The Timesheet service reads no scope at all today; management there is a manager assignment the service owns, not a scope."}}},fb={scope:{draft:"Draft engagement notes",quote:"Price engagement notes",seal:"Seal engagement notes",access:"Engagement notes access"}},vb={scopes:gb,engagementnotes:fb},yb={error:"Erreur d'authentification",returnHome:"Retour à l'accueil",completingSignIn:"Connexion en cours...",signOut:"Se déconnecter",signInWithMicrosoft:"Se connecter avec Microsoft",workspaceAccess:{title:"Aucun accès à l'espace de travail",description:"Connecté en tant que {email}. {reason}"},errors:{session_expired:"Votre session a expiré. Veuillez vous reconnecter.",user_disabled:"Votre compte a été désactivé. Contactez votre administrateur.",account_not_found:"Aucun compte n'est associé à cette connexion. Contactez votre administrateur.",unauthorized:"Échec de l'authentification. Veuillez réessayer.",validation_error:"Requête d'authentification invalide. Veuillez vous reconnecter.",server_error:"Une erreur interne est survenue. Veuillez réessayer plus tard.",server_unreachable:"Impossible de joindre le serveur. Vérifiez votre connexion et réessayez."}},bb={home:"Accueil",solutions:"Notre Processus",insights:"Comprendre l'IA",stories:"Stories",about:"À propos",careers:"Carrières",contact:"Contact",workspace:"Espace de travail",changeLanguage:"Changer de langue"},Sb={description:"Aider les organisations à exploiter la puissance des agents IA.",quickLinks:"Liens rapides",legal:"Mentions Légales",privacy:"Politique de confidentialité",terms:"Conditions d'utilisation",rights:"Tous droits réservés."},Ib={pageNotFound:"Oups ! Page introuvable",pageNotFoundTitle:"404 - Page introuvable",pageNotFoundDescription:"La page que vous recherchez n'existe pas.",returnHome:"Retour à l'accueil",crashTitle:"Un problème est survenu",crashDescription:"Une erreur inattendue s'est produite. Veuillez recharger la page.",crashReload:"Recharger la page",generic:"Une erreur est survenue. Veuillez réessayer.",codes:{UNAUTHENTICATED:"Votre session a expiré. Veuillez vous reconnecter.",FORBIDDEN:"Vous n'avez pas la permission de faire cela.",NOT_FOUND:"Cet élément est introuvable.",CONFLICT:"Cela entre en conflit avec l'état actuel. Actualisez et réessayez.",BAD_USER_INPUT:"Certaines des informations fournies sont invalides.",INVALID_STATE:"Cette action n'est pas autorisée dans l'état actuel.",INTERNAL:"Une erreur interne est survenue. Veuillez réessayer plus tard."}},_b={label:"Contact",title:"Parlons-en",description:"Prêt à explorer ce que les agents IA peuvent faire pour votre organisation ? Contactez-nous.",topicLabel:"Sujet",nameLabel:"Nom",emailLabel:"E-mail",messageLabel:"Message",namePlaceholder:"Votre nom",emailPlaceholder:"[email protected]",messagePlaceholder:"Parlez-nous de votre projet…",locationLabel:"Lieu",locationPlaceholder:"D'où nous contactez-vous ?",attachmentLabel:"Joindre votre CV (PDF, 500 Ko max)",required:"Obligatoire",submit:"Envoyer le message"},Cb={accept:"Accepter",decline:"Refuser",accepted:"Invitation acceptée.",declined:"Invitation refusée.",answering:"Envoi de votre réponse…",actionError:"L'action n'a pas pu être effectuée."},Tb={newer:"Afficher les versions plus récentes",older:"Afficher les versions plus anciennes",
73implementedOn:"Implémentée le {date}"},wb={clear:"Effacer"},kb={upload:"Téléverser une image",replace:"Remplacer l'image",remove:"Retirer l'image",invalidType:"Type de fichier non pris en charge. Acceptés : {types}.",tooLarge:"Fichier trop volumineux. Maximum {max} Mo.",uploadFailed:"Le téléversement a échoué.",deleteFailed:"L'image n'a pas pu être retirée."},Ab={auth:yb,nav:bb,footer:Sb,errors:Ib,contact:_b,invitations:Cb,versionCarousel:Tb,datePicker:wb,imageUpload:kb},Eb={eyebrow:"Systèmes agentiques",headline1:"Vos Experts,",headline2:"Démultipliés",subtext:"L'IA gère le travail répétitif pendant que l'humain garde le contrôle. Conçue pour vos processus. Déployée sur votre infrastructure. Honnête sur ses limites.",learnMore:"En savoir plus"},Rb={label:"La Réalité",title:"En Pratique",paragraph1:"Le premier défi n’est pas technique. C’est de savoir où commencer. La plupart des organisations peinent à trancher sur les problématiques qui méritent l’investissement, et ce, avant même que le travail de fond ne débute.",paragraph2:"Ensuite, il faut repenser les processus. Former vos experts à orchestrer des agents au lieu de tout faire manuellement. Construire des systèmes adaptés à votre réalité terrain, et non à des environnements de démonstration maîtrisés.",highlightTitle:"Commencez maintenant, prenez de l'avance",highlightText:"Les organisations qui s'y mettent aujourd'hui ne seront pas faciles à rattraper demain."},Pb={label:"Pourquoi Nous",title:"Nous Cherchons Ensemble",description:"Personne n'a toutes les réponses pour l'instant. Notre force : l'expertise technique. La vôtre : la maîtrise de votre métier. La vraie valeur naît de notre collaboration. Vous travaillez en direct avec nos équipes. Et quand on s'engage, on reste jusqu'au bout.",primaryButton:"Notre processus",secondaryButton:"Nous contacter"},Db={hero:Eb,realityCheck:Rb,callToAction:Pb},Ob={heroLabel:"Notre approche",heroTitle:"Tester vite. Apprendre vite. Bien construire.",heroDescription:"Un prototype en quelques semaines. Si cela fonctionne, on passe à l'échelle. Sinon, vous saurez pourquoi. Chaque étape se mérite."},Nb={sectionLabel:"Notre méthode",sectionTitle:"Quatre phases. Des jalons clairs. Pas de surprises.",sectionDescription:"Chaque phase répond à une question. Chaque phase est non-engageante - ni vous ni nous ne sommes obligés de continuer. Chaque étape se mérite.",labels:{whatHappens:"Ce qui se passe",yourTeam:"Votre équipe",deliverables:"Livrables",whatWeDontDo:"Ce que nous ne faisons pas",billing:"Facturation :"},phase0:{name:"Cadrage",question:"Est-ce qu'on est faits pour travailler ensemble ?",timeline:"2 semaines, 2-3 réunions max",whatHappens:["Premier contact, échange sur le cas d'usage envisagé","On challenge ensemble : est-ce le bon problème ? Est-ce automatisable ?","On aide à spécifier le cas d'usage si besoin","Évaluation mutuelle : est-ce qu'on peut travailler ensemble ?"],whoIsInvolved:{client:"Experts métier (indispensable), décideur",br:"Architecte ou Flow Engineer senior"},deliverables:["Cas d'usage spécifié","Décision go/no-go","Si go : proposition chiffrée pour le POC"],whatWeDontDo:["3 mois de travail gratuit pour répondre à un appel d'offre","Des specs de 50 pages sans parler aux experts métier"]},phase1:{name:"POC",fullName:"Proof of Concept",question:"Est-ce que cette tâche peut être faite par un système agentique ?",timeline:"4-6 semaines au total",timelineDetail:"Semaines 1-3 : premier prototype fonctionnel. Semaines 4-6 : 1-2 itérations basées sur le feedback.",whatHappens:["On construit un vrai prototype (pas un script, pas un chatbot basique)","Déploiement rapide pour que les utilisateurs testent","Les utilisateurs testent, cassent, donnent leur feedback","On itère en direct avec eux","À la fin : les utilisateurs savent si cela leur est utile"],itIntegration:"Si une intégration IT est nécessaire durant le POC (SSO, accès VPN, connecteurs de données…), celle-ci est cadrée et chiffrée séparément en option.",whoIsInvolved:{client:"Experts métier / utilisateurs finaux (accès direct)",br:"1 Flow Engineer + 1 architecte + agents de code"},deliverables:["Système POC fonctionnel","Retours utilisateurs documentés","Analyse : cela fonctionne / ne fonctionne pas (et pourquoi)","Si cela fonctionne : specs et budget pour le POV"],decisionGate:{success:"Cela fonctionne → passage au POV",failure:"Cela ne fonctionne pas → on documente ce qui manque, on reviendra quand les modèles le permettront"}},phase2:{name:"POV",fullName:"Proof of Value",question:"Est-ce qu'on peut atteindre le niveau de performance nécessaire pour créer de la valeur ?",timeline:"1-3 mois",whatHappens:["Extension de la couverture (plus de cas, plus de scénarios)","Itérations continues avec les utilisateurs","Amélioration des performances","Benchmarks spécifiques au domaine pour le choix des modèles (si nécessaire)","Optimisation des coûts API (si nécessaire)","Affinage de l'architecture agents"],whoIsInvolved:{client:"Experts métier + IT (pour intégration/déploiement)",br:"1-2 Flow Engineers + 1 architecte + agents de code"},deliverables:["MVP qui délivre de la valeur réelle","Système fonctionnel selon les specs convenues","Documentation technique","Métriques de performance"],decisionGate:{success:"Le système fonctionne selon les specs → livraison acceptée → passage en industrialisation"}},phase3:{name:"Industrialisation",question:"Comment rendre cela robuste, intégré et durable ?",timeline:"Continu",whatHappens:["Renforcement de la robustesse","Intégration profonde avec les systèmes client","Mise en place du monitoring","Transfert de connaissances vers les équipes client","Maintenance évolutive (nouvelles fonctionnalités, ajustements, mises à jour des modèles)"],whoIsInvolved:{client:"IT (propriétaire de l'intégration), métier (propriétaire de l'usage)",br:"Équipe disponible pour le support"},deliverables:["Système production robuste","Documentation complète","Équipes client autonomes","Support continu"],billingModel:"POC/POV : forfait par projet. Industrialisation : forfait par feature ou temps passé avec engagement annuel."},decisions:{atTheGate:"Au jalon",ongoingRelationship:"Relation continue",whatHappensNext:"Et ensuite ?",phase0:{goodFit:"Bon fit, cas d'usage clair",goodFitDesc:"On avance avec une proposition chiffrée pour le POC",doesntFit:"Le cas d'usage ne colle pas, mais le courant passe",doesntFitDesc:"On explore d'autres cas d'usage ensemble — parfois les meilleures idées émergent de la conversation",rubberStamping:"Risque de validation aveugle",rubberStampingDesc:"Si un outil d'aide à la décision serait juste validé sans examen, il faut repenser le cas d'usage",culturalMisfit:"Incompatibilité culturelle",culturalMisfitDesc:"Mieux vaut le savoir maintenant. On se quitte respectueusement."},phase1:{itWorks:"Ça marche — les utilisateurs trouvent ça utile",itWorksDesc:"On spécifie le POV avec des objectifs clairs et on avance",notYet:"Limitations du modèle — pas encore",notYetDesc:"On documente ce qui manque. On peut mettre en place une veille technologique pour y revenir quand les modèles évoluent."},phase2:{targetsMet:"Objectifs atteints",targetsMetDesc:"Le système fonctionne selon les specs — livraison acceptée, prêt pour l'industrialisation",moreEffort:"Plus d'effort que prévu",moreEffortDesc:"On en discute ouvertement. Vous décidez : étendre le budget ou ajuster le périmètre.",capabilityGap:"Écart de capacité du modèle",capabilityGapDesc:"On met en pause, on met en place un suivi de l'évolution des modèles. Veille technologique disponible."},phase3:{autonomous:"Vos équipes deviennent autonomes",autonomousDesc:"Transfert de connaissances terminé. Le système vous appartient.",evolution:"Évolution continue",evolutionDesc:"Nouvelles fonctionnalités, mises à jour des modèles, extensions de périmètre — on évolue avec vos besoins"}},cta:{title:"Prêt à commencer ?",description:"Une première conversation ne coûte que du temps. Voyons si nous sommes faits pour travailler ensemble.",primary:"Parlons de votre projet",secondary:"Explorer notre réflexion"}},Mb={label:"Cas d'usage",title:"Choisir où investir vos efforts",description:"Les systèmes agentiques excellent sur des types de travail spécifiques. Choisissez les bons problèmes et vous voyez de la valeur en semaines. Choisissez les mauvais et vous perdez des mois à poursuivre des objectifs impossibles.",idealFor:{title:"Idéal pour",items:[{title:"Temps d'expert de haute valeur",description:"Tâches qui consomment le temps de vos experts coûteux - régulièrement ou par gros blocs."},{title:"Travail de connaissance standardisé",description:"Revue de contrats, analyse financière, contrôles de conformité. Tâches faites des millions de fois."},{title:"Collecte d'information, pas autorisation",description:"L'agent fait la recherche. Un humain révise et prend la décision."},{title:"Plus rapide à vérifier qu'à faire",description:"Vérifier le travail de l'IA prend 20% du temps que le faire soi-même prendrait."}]},notIdealFor:{title:"Pas idéal pour",items:[{title:"Problèmes pionniers, inexplorés",description:"Tâches qui n'ont pas été faites largement avant. Si ce n'est pas bien représenté dans le travail existant, le modèle n'a rien à quoi se référer."},{title:"Décisions irréversibles à hauts enjeux",description:"Approbations réglementaires, autorisations de transactions, déterminations légales. Les humains doivent rester responsables."},{title:"Difficile à vérifier",description:"Si vérifier prend aussi longtemps que le faire soi-même, l'automatisation n'ajoute pas de valeur."}]}},Lb={solutions:Ob,phases:Nb,useCases:Mb}
73,jb={heroLabel:"Ressources",heroTitle:"Apprendre et explorer",heroDescription:"Analyses approfondies des systèmes agentiques, stratégies d'implémentation et perspectives du secteur.",articles:"Articles",latestArticle:"Dernier article",readMore:"Lire l'article",comingSoon:"Article à venir",comingSoonDescription:"Nous travaillons sur de nouveaux contenus. Restez à l'écoute.",articleNotFound:"Article introuvable",backToInsights:"Retour aux ressources",sections:[{id:"agentic-systems-explained",title:"Qu'est-ce qu'un système agentique ?",description:"Plusieurs agents spécialisés qui travaillent ensemble, délèguent des tâches et collaborent avec les humains.",subtitle:"Au-delà de l'IA unique : des architectures collaboratives complètes",content:"Un système agentique n'est pas une IA qui fait tout. C'est une architecture où plusieurs agents spécialisés travaillent ensemble.",features:[{title:"Les agents délèguent",description:"Un agent de recherche peut générer des agents d'analyse pour chaque document, puis synthétiser leur travail. Les tâches sont décomposées et parallélisées, sans goulot d'étranglement."},{title:"Spécialisé > Généraliste",description:"Un agent qui « fait tout » est médiocre en tout. Dix agents spécialisés, chacun expert dans une tâche, orchestrés par un humain ? C'est puissant et vérifiable."},{title:"L'humain garde le contrôle",description:"Le système est conçu pour la collaboration, pas l'autonomie. Les agents exécutent, les humains révisent et décident. La responsabilité reste claire. La confiance se construit par la transparence."},{title:"Conçu pour vos workflows",description:"Les agents s'intègrent à vos outils, comprennent vos formats de données, suivent vos règles métier. Le système s'adapte à votre façon de travailler, pas l'inverse."}],quote:"Le résultat : une IA qui multiplie la productivité des experts tout en les gardant aux commandes"},{id:"foundation-models-changed-everything",title:"Ce n'est pas du ML traditionnel",description:"Les modèles de fondation ont changé la donne. Méthodes différentes, cas d'usage différents, mentalité différente.",content:"Oubliez tout ce que vous savez sur les projets de machine learning traditionnels."},{id:"context-engineering",title:"L'ingénierie du contexte",description:"L'art de donner à l'IA la bonne information au bon moment. La nouvelle compétence critique.",content:"L'ingénierie du contexte est la discipline qui consiste à concevoir quelles informations un système IA reçoit, quand et sous quel format."},{id:"rag-reality-check",title:"RAG : pourquoi la démo a marché et pas la prod",description:"L'écart entre les démos de retrieval et les systèmes RAG en production. Ce qui compte vraiment.",content:"Chaque démo RAG impressionne. La plupart des déploiements RAG déçoivent. Voici pourquoi."},{id:"build-vs-buy",title:"Construire vs. acheter",description:"Quand investir dans des solutions sur mesure et quand les outils sur étagère sont la bonne réponse.",content:"La décision construire vs. acheter en IA est plus nuancée que pour le logiciel traditionnel."},{id:"tradeoff-triangle",title:"Le triangle des compromis",description:"Coût, latence, qualité. Vous pouvez optimiser pour deux. Choisissez bien.",content:"Chaque système IA fait face aux mêmes compromis fondamentaux."},{id:"demo-to-production",title:"De la démo à la prod (la règle des neuf)",description:"Pourquoi les 10% restants prennent 90% de l'effort. Et comment s'y préparer.",content:"La démo c'est facile. Passer en production, c'est là que les projets échouent."},{id:"hallucinations-grounding",title:"Hallucinations et comment ancrer l'IA",description:"Pourquoi l'IA invente des choses et ce que vous pouvez y faire. Techniques d'ancrage pratiques.",content:"Les hallucinations ne sont pas des bugs—c'est une propriété fondamentale du fonctionnement des LLMs."},{id:"change-management",title:"Les personnes d'abord",description:"Les outils ne transforment pas les organisations. Les gens, si. Comment embarquer vos équipes.",content:"Le plus grand risque pour votre projet IA n'est pas technique. C'est l'adoption."},{id:"value-not-roi",title:"Au-delà du ROI",description:"Steve Jobs en 1983 ne parlait pas de ROI. Il parlait de transformation. C'est pareil pour l'IA.",content:"Arrêtez d'essayer de calculer le ROI d'une technologie transformationnelle."}]}
73,Ub={heroLabel:"Approfondissement",heroTitle:"Comprendre les systèmes agentiques",heroDescription:"Un regard approfondi sur le fonctionnement des architectures multi-agents et leur importance.",whatAreAgents:{label:"Concepts fondamentaux",title:"Au-delà de l'IA unique : architectures collaboratives complètes",description:"Un système agentique n'est pas une IA qui fait tout. C'est une architecture où plusieurs agents spécialisés travaillent ensemble, se délèguent des tâches, utilisent des outils et collaborent avec des humains qui gardent le contrôle.",features:[{title:"Les agents délèguent",description:"Un agent de recherche peut générer des agents d'analyse pour chaque document, puis synthétiser leur travail. Les tâches sont décomposées et parallélisées, pas goulot d'étranglement dans un seul système."},{title:"Spécialisé > Généraliste",description:`Un agent qui "fait tout" est médiocre en tout. Dix agents spécialisés, chacun expert dans une tâche, orchestrés par un humain ? C'est puissant et vérifiable.`},{title:"Les humains gardent le contrôle",description:"Le système est conçu pour la collaboration, pas l'autonomie. Les agents exécutent, les humains révisent et décident. La responsabilité reste claire. La confiance se construit par la transparence."},{title:"Conçu pour vos workflows",description:"Les agents s'intègrent à vos outils, comprennent vos formats de données, suivent vos règles métier. Le système s'adapte à votre façon de travailler, pas l'inverse."}],quote:"Le résultat : une IA qui multiplie la productivité des experts tout en les gardant aux commandes"}},$b={insights:jb,technical:Ub},xb={heroLabel:"Blog",heroTitle:"Nos articles",heroDescription:"Réflexions, guides pratiques et témoignages de notre équipe.",articlesTitle:"Articles",readMore:"Lire l'article",comingSoon:"D'autres articles à venir...",postNotFound:"Article introuvable",backToBlog:"Retour au blog",backToAllArticles:"Retour aux articles",notAvailableIn:"Non disponible en",notTranslatedTo:"Cet article n'est pas encore traduit en",viewIn:"Voir en",translationNotice:{originalIn:"La version originale est en",originalSuffix:"",viewOriginal:"Voir l'original",originalArticle:"Ceci est l'article original"}},Fb={blog:xb},Hb={heroLabel:"Stories",heroTitle:"Stories",heroDescription:"Nos réflexions, contributions et expertise partagées sur différentes plateformes - des articles de blog aux podcasts, des interviews aux publications professionnelles.",languageFilterOnly:"{lang} uniquement",pressCoverageTitle:"Couverture presse",pressCoverageEmpty:"Aucune couverture presse disponible en {lang}.",linkedinPostsTitle:"Publications LinkedIn",linkedinPostsEmpty:"Aucune publication LinkedIn disponible en {lang}."},zb={news:Hb},qb={heroLabel:"À propos",heroTitle:"Bot Resources",heroDescription:"Une entreprise française d'ingénierie qui construit des systèmes agentiques pour des clients internationaux.",company:{title:"Entreprise"},location:{title:"Localisation"},founded:{title:"Création",date:"Mars 2024"},activity:{title:"Activité",description:"Activités spécialisées, scientifiques et techniques"},story:{title:"Notre histoire",content:["Fin 2023. Mission de consulting. 3 000 documents techniques. 3 semaines.","J'expérimentais avec GPT-3.5 depuis sa sortie. J'ai d'abord construit un système RAG. Ça marchait, mais pas assez. Alors j'ai tenté autre chose : de l'ingénierie contextuelle. Donner aux agents exactement ce dont ils ont besoin, au lieu de les faire chercher.","Ça a marché.",`Trois semaines plus tard, j'ai éteint le système. Mission accomplie. Puis un appel : "Le système est down, tu peux réparer ? On s'en sert tous les jours."`,"C'est là que j'ai compris. J'ai trouvé les bons associés, je les ai convaincus que les agents étaient l'avenir, et 9 mois plus tard Bot Resources était née.","La meilleure décision de ma vie.","Trois mois après la création, on signait notre premier contrat client. Depuis, on construit."],signature:"Jean-Xavier Raynaud",signatureRole:"Managing Partner"},team:{title:"L'équipe",roles:{cofounder:"Co-founder",managingPartner:"Managing Partner",rdDirector:"Directeur de la R&D",flowEngineer:"Flow Engineer"}}},Vb={about:qb},Bb={heroLabel:"Carrières",heroTitle:"Rejoignez notre équipe",heroDescription:"Aidez-nous à construire le futur du travail augmenté par l'IA.",viewDetails:"Voir les détails",backToCareer:"Retour aux offres",applyNow:"Postuler",downloadPdf:"Télécharger PDF",spontaneous:{title:"Candidature spontanée",description:"Vous ne trouvez pas de poste qui correspond ? Envoyez-nous votre CV quand même.",cta:"Envoyer votre CV"},sections:{employees:{title:"Salariés",description:"Rejoignez-nous en tant que membre permanent de l'équipe en CDI.",empty:"Pas de postes salariés actuellement ouverts."},contractors:{title:"Freelances",description:"Travaillez avec nous sur des projets ou missions spécifiques en tant que consultant indépendant.",empty:"Pas de missions freelance actuellement ouvertes."},internships:{title:"Stages",description:"Nous proposons uniquement des stages de fin d'études (M2 ou équivalent). Nous n'acceptons pas les contrats d'apprentissage ni d'alternance.",empty:"Pas de stages actuellement ouverts."}},closed:"Clôturé",jobDetail:{ctaTitle:"Prêt à rejoindre l'équipe ?",ctaDescription:"Envoyez-nous votre CV ou profil LinkedIn. Parlez-nous de votre parcours et de ce qui vous motive à travailler avec nous !"},jobMeta:{location:"Localisation",contract:"Contrat",salary:"Salaire",stack:"Stack technique",type:"Type",fullTime:"Temps plein"}},Gb={careers:Bb},Kb={info:{title:"Nous contacter"},email:"E-mail",address:"Adresse",applyingFor:"Candidature pour :",clearJobReference:"Retirer l'offre pour laquelle vous candidatez",attachmentRemove:"Retirer le fichier joint",fileSizeKb:"{size, number} Ko",topic:{placeholder:"De quoi souhaitez-vous discuter ?",options:{project:"Discuter d'un projet",jobOffer:"Répondre à une offre d'emploi",partnership:"Opportunité de partenariat",other:"Autre"}},hints:{emailLooksIncomplete:"Cette adresse semble incomplète — vérifiez-la avant d'envoyer."},errors:{fieldRequired:"Ce champ est obligatoire",invalidEmail:"Veuillez entrer une adresse e-mail valide",invalidName:"Veuillez entrer un nom valide",invalidMessage:"Veuillez entrer un message valide",invalidLocation:"Veuillez entrer un lieu valide (120 caractères max)",invali
73dJobReference:"Cette référence d'offre est invalide : votre message n'a pas été envoyé. Retirez-la (le ✕ à côté de « Candidature pour : ») puis renvoyez-le.",attachmentTooLarge:"Ce fichier est trop volumineux (500 Ko max).",attachmentInvalidType:"Seuls les fichiers PDF sont acceptés.",invalidAttachmentFilename:"Ce nom de fichier n'est pas autorisé. Renommez le fichier et réessayez.",attachmentReadFailed:"Impossible de lire ce fichier. Veuillez le sélectionner à nouveau.",network:"Impossible de joindre le serveur. Veuillez réessayer.",unexpected:"Une erreur est survenue. Veuillez réessayer."},sent:{title:"Message envoyé",body:"Nous avons bien reçu votre message ; il est en route vers la bonne personne.",nextSteps:"Nous vous répondrons dès que possible. Rien d'autre n'est attendu de votre part d'ici là.",referenceLabel:"Votre référence",sendAnother:"Envoyer un autre message"},failed:{title:"Votre message n'a pas été envoyé",draftNote:"Votre brouillon est conservé — vous pouvez réessayer.",retry:"Réessayer l'envoi"},sending:"Envoi en cours…",messageCounter:"{count, number} / {max, number} caractères"},Wb={contactPage:Kb},Yb={title:"Mentions Légales",company:{title:"Éditeur du site"},address:{title:"Siège social"},directors:{title:"Dirigeants"},contact:{title:"Contact"},hosting:{title:"Hébergement"},ip:{title:"Propriété intellectuelle",content:"L'ensemble du contenu de ce site (textes, images, logos, etc.) est protégé par le droit d'auteur. Toute reproduction, même partielle, est interdite sans autorisation préalable."},activity:{title:"Activité",content:"Activités spécialisées, scientifiques et techniques diverses (Code NAF : 74.90B)"}},Jb={legal:Yb},Qb={title:"Politique de confidentialité",controller:{title:"Responsable du traitement"},collected:{title:"Données collectées",content:"Nous collectons uniquement les données que vous nous fournissez volontairement via notre formulaire de contact : nom, adresse email, et contenu de votre message."},purpose:{title:"Finalité du traitement",content:"Vos données sont utilisées uniquement pour répondre à vos demandes de contact et vous fournir des informations sur nos services."},legalBasis:{title:"Base légale",content:"Le traitement est basé sur votre consentement (Article 6.1.a du RGPD) et notre intérêt légitime à répondre aux demandes commerciales (Article 6.1.f du RGPD)."},retention:{title:"Durée de conservation",content:"Vos données sont conservées pendant une durée maximale de 3 ans à compter de notre dernier contact."},rights:{title:"Vos droits",intro:"Conformément au RGPD, vous disposez des droits suivants :",access:"Droit d'accès à vos données",rectification:"Droit de rectification",erasure:"Droit à l'effacement",portability:"Droit à la portabilité",opposition:"Droit d'opposition",limitation:"Droit à la limitation du traitement",contact:"Pour exercer ces droits, contactez-nous à : [email protected]"},cookies:{title:"Cookies",content:"Ce site n'utilise pas de cookies de tracking ou de publicité. Seuls des cookies techniques essentiels au fonctionnement du site peuvent être utilisés."},cnil:{title:"Réclamation",content:"Vous pouvez introduire une réclamation auprès de la CNIL (Commission Nationale de l'Informatique et des Libertés) : www.cnil.fr"},lastUpdate:"Dernière mise à jour : Décembre 2024"},Xb={privacy:Qb},Zb={nav:{title:"Administration",users:"Utilisateurs",groups:"Groupes",backToSite:"Retour au site"},users:{title:"Utilisateurs",searchPlaceholder:"Rechercher des utilisateurs...",createUser:"Créer un utilisateur",name:"Nom",email:"E-mail",role:"Rôle",status:"Statut",createdAt:"Créé le",actions:"Actions",active:"Actif",deactivated:"Désactivé",deactivate:"Désactiver",reactivate:"Réactiver",promote:"Promouvoir administrateur",demote:"Retirer le rôle admin",capabilities:"Capacités",grantCapability:"Attribuer une capacité",revokeCapability:"Révoquer",noUsers:"Aucun utilisateur trouvé.",notFound:"Utilisateur introuvable.",detail:{title:"Détails de l'utilisateur",backToList:"Retour aux utilisateurs"}},groups:{title:"Groupes",searchPlaceholder:"Rechercher des groupes...",createGroup:"Créer un groupe",name:"Nom",members:"Membres",createdAt:"Créé le",actions:"Actions",delete:"Supprimer",addMember:"Ajouter un membre",removeMember:"Retirer",email:"E-mail",role:"Rôle",noGroups:"Aucun groupe trouvé.",notFound:"Groupe introuvable.",noMembers:"Aucun membre pour le moment.",namePlaceholder:"Nom du groupe",nameLabel:"Nom du groupe",untitled:"Groupe sans nom",detail:{title:"Détails du groupe",backToList:"Retour aux groupes",membersList:"Membres"}},groupMembers:{heading:"Membres ({count})",pickUser:"Sélectionner un utilisateur…",searchUsers:"Rechercher des utilisateurs…",noUsers:"Aucun utilisateur trouvé.",add:"Ajouter",empty:"Aucun membre dans ce groupe.",userColumn:"Utilisateur",actionColumn:"Action",remove:"Retirer le membre"},permissions:{title:"Permissions",scopes:"Portées",roles:"Rôles",effective:"Portées effectives",effectiveHint:"Les portées effectivement détenues par cet utilisateur — attributions directes et rôles, croisées avec les droits de l'organisation.",effectiveEmpty:"Aucune portée effective.",scopesEmpty:"Aucune portée attribuée.",rolesEmpty:"Aucun rôle attribué.",scopePlaceholder:"Sélectionner une portée…",searchScopes:"Rechercher des portées…",noScopes:"Aucune portée disponible.",rolePlaceholder:"Ajouter un rôle…",grant:"Attribuer",revoke:"Révoquer",removeScope:"Révoquer la portée",removeRole:"Révoquer le rôle",actionError:"Une erreur est survenue. Veuillez réessayer."},entitlements:{title:"Droits",description:"Les portées que cette organisation est autorisée à attribuer à ses membres.",granted:"Droits accordés",empty:"Aucun droit accordé.",addPlaceholder:"Sélectionner une portée…",searchPlaceholder:"Rechercher des portées…",noScopes:"Aucune portée disponible.",add:"Accorder",remove:"Révoquer le droit"},guests:{assign:"Affecter à une organisation",pickOrg:"Sélectionner une organisation…",pickOrgFirst:"Choisissez d'abord une organisation.",searchOrgs:"Rechercher des organisations…",noOrgs:"Aucune organisation trouvée.",confirm:"Inviter",assigned:"Utilisateur affecté à l'organisation.",invite:"Inviter dans une organisation",inviteHint:"Envoie une invitation que la personne doit accepter — elle n'est ajoutée qu'après acceptation.",invited:"Invitation envoyée."},domainClaims:{title:"Revendications de domaine en attente",description:"Domaines en attente de vérification pour une organisation.",empty:"Aucune revendication de domaine en attente.",domainColumn:"Domaine",orgColumn:"Organisation",requestedColumn:"Demandé le",actionsColumn:"Actions",approve:"Approuver",reject:"Rejeter",approved:"Revendication de domaine approuvée.",rejected:"Revendication de domaine rejetée.",primary:"Principal",forbidden:"Vous n'avez pas accès à cette zone.",requesterColumn:"Demandé par",unknownRequester:"Inconnu"},roles:{superadmin:"Super administrateur",admin:"Administrateur",guest:"Invité",user:"Utilisateur"},forbidden:{title:"Accès refusé",message:"Vous n'avez pas la permission d'accéder au panneau d'administration."},events:{loadMore:"Charger les événements plus anciens",loading:"Chargement de l'activité…",noEvents:"Aucune activité pour le moment.",streamInterrupted:"Le flux en direct s'est interrompu — de l'activité récente peut manquer.",streamResume:"Se reconnecter",systemActor:"Système",platformActor:"Bot Resources",layout:{label:"Disposition de la chronologie",column:"Vue en colonne",frieze:"Vue en frise"},OrgCreated:"Organisation créée",OrgRenamed:"Organisation renommée en {new_name}",OrgAbbreviationChanged:"Abréviation changée en {abbreviation}",OrgWebsiteUrlChanged:"Site web mis à jour vers {url}",OrgLogoChanged:"Logo mis à jour",OrgPublished:"Organisation publiée",OrgActivated:"Organisation activée",OrgSuspended:"Organisation suspendue",OrgReactivated:"Organisation réactivée",OrgArchived:"Organisation archivée",OrgDearchived:"Organisation restaurée depuis les archives",OrgDeleted:"Organisation supprimée",MemberJoined:"Un membre a rejoint l'organisation",MemberDeactivated:"Un membre a été désactivé",MemberReactivated:"Un membre a été réactivé",AdminPromoted:"Un membre a été promu administrateur",AdminDemoted:"Un administrateur a été rétrogradé",EntitlementGranted:"Droit {scope} accordé",EntitlementRevoked:"Droit {scope} révoqué",DomainClaimRequested:"Revendication de domaine demandée pour {domain}",DomainClaimApproved:"Revendication de domaine approuvée",DomainClaimRejected:"Revendication de domaine rejetée",OrganizationDomainAdded:"Domaine {domain} ajouté",OrganizationDomainRemoved:"Domaine supprimé",OrganizationDomainDemoted:"Domaine principal retiré",ScopeGranted:"Portée {scope} accordée",ScopeRevoked:"Portée {scope} révoquée",OrgScopeRevokedByPlatform:"Portée {scope} révoquée dans toute l’organisation par la plateforme",RoleGranted:"Rôle {role} accordé",RoleRevoked:"Rôle {role} révoqué",GroupCreated:"Groupe {name} créé",GroupDeleted:"Groupe supprimé",GroupRenamed:"Groupe renommé en {new_name}",GroupMemberAdded:"Un membre a été ajouté à un groupe",GroupMemberRemoved:"Un membre a été retiré d'un groupe",GroupScopeGranted:"Portée {scope} accordée à un groupe",GroupScopeRevoked:"Portée {scope} révoquée d'un groupe",GroupRoleGranted:"Rôle {role} accordé à un groupe",GroupRoleRevoked:"Rôle {role} révoqué d'un groupe"}},eS={reasons:{not_platform_member:"Seuls les membres de la plateforme Bot Resources peuvent effectuer cette action.",n
73ot_platform_admin:"Seul un administrateur de la plateforme peut effacer les données personnelles d'un contact.",already_read:"Ce contact est déjà lu.",already_unread:"Ce contact est déjà non lu.",already_archived:"Ce contact est déjà archivé.",not_archived:"Ce contact n'est pas archivé.",already_erased:"Les données personnelles de ce contact ont déjà été effacées.",insufficient_permissions:"Vous n'avez pas l'autorisation d'effectuer cette action.",archived_org_read_only:"Cette organisation est archivée et en lecture seule.",suspended_org_blocked:"Cette organisation est suspendue, cette action est donc bloquée.",platform_only_operation:"Cette opération est réservée aux administrateurs de la plateforme.",invalid_status_transition:"Ce changement de statut n'est pas autorisé depuis l'état actuel.",platform_org_immutable:"L'organisation de la plateforme ne peut pas être modifiée.",only_draft_can_be_deleted:"Seules les organisations en brouillon peuvent être supprimées.",only_draft_can_be_published:"Seules les organisations en brouillon peuvent être publiées.",org_requires_admin:"Ajoutez un administrateur à cette organisation avant de la publier.",user_already_disabled:"Cet utilisateur est déjà désactivé.",user_not_disabled:"Cet utilisateur n'est pas désactivé.",no_active_membership:"Aucune adhésion active à une organisation.",membership_deactivated:"Cette adhésion à l'organisation a été désactivée.",membership_pending_approval:"Cette adhésion à l'organisation attend l'approbation d'un administrateur.",invitation_pending:"Une invitation à rejoindre une organisation attend votre réponse.",no_person_linked:"Aucune fiche personne n'est rattachée à ce compte : les informations de profil ne peuvent pas être modifiées.",not_a_member:"Cet utilisateur n'est pas membre de cette organisation.",member_not_deactivated:"Ce membre n'est pas désactivé.",already_admin:"Cet utilisateur est déjà administrateur.",not_admin:"Cet utilisateur n'est pas administrateur.",cannot_self_promote:"Vous ne pouvez pas vous promouvoir vous-même.",last_admin:"Vous ne pouvez pas retirer le dernier administrateur.",system_group_cannot_be_deleted:"Les groupes système ne peuvent pas être supprimés.",system_group_cannot_be_renamed:"Les groupes système ne peuvent pas être renommés.",not_pat_owner:"Vous ne pouvez gérer que vos propres jetons d'accès.",pat_already_revoked:"Ce jeton d'accès a déjà été révoqué.",cannot_impersonate_self:"Vous ne pouvez pas vous incarner vous-même.",already_impersonating:"Vous incarnez déjà un utilisateur.",must_be_admin_to_impersonate:"Vous devez être administrateur pour incarner un utilisateur.",target_not_in_actor_org:"Cet utilisateur n'est pas membre de votre organisation.",cannot_impersonate_admin:"Vous ne pouvez pas incarner un autre administrateur.",generic_blocked:"Cette action n'est pas disponible pour le moment.",service_implemented_undeletable:"Ce service a une version implémentée et ne peut pas être supprimé. Seul un service en brouillon — sans version implémentée — peut être supprimé.",not_available_in_state:"Indisponible dans l'état actuel de l'objet.",previous_version_unimplemented:"La version précédente doit être implémentée avant d'en créer une nouvelle.",patch_already_implemented:"Ce correctif est déjà implémenté ; les tests se déclarent avant l'implémentation.",not_latest_patch:"Seul le dernier correctif d'une version mineure peut être marqué convergé.",already_converged:"Ce correctif a déjà convergé.",breach_fixed_immutable:"Cette rupture est marquée corrigée — ses détails ne peuvent plus être modifiés.",convergence_contract_breaches:"{contractBreachCount, plural, one {# rupture de contrat pertinente est encore ouverte sur cette version majeure — corrigez-la ou marquez-la non pertinente avant de converger.} other {# ruptures de contrat pertinentes sont encore ouvertes sur cette version majeure — corrigez-les ou marquez-les non pertinentes avant de converger.}}",convergence_observation_period:"La fenêtre d'observation de 72 heures est encore en cours ; le correctif pourra être marqué convergé à son terme.",previous_patch_not_implemented:"Le patch en cours doit être implémenté avant d'en créer un nouveau.",minor_not_sealed:"Cette version mineure n'est pas encore scellée.",minor_sealed:"Cette version mineure est scellée — corrections uniquement.",already_sealed:"Cette version est déjà scellée.",seal_requirements_unmet:"Les deux documents d'intention doivent être rédigés avant le scellement.",minor_unchanged_since_parent:"Rien n'a changé depuis la mineure parente — une nouvelle mineure exige une nouvelle intention.",major_already_started:"Cette version majeure a démarré ; seule une majeure jamais démarrée peut être supprimée.",pending_intent_change:"Un changement d'intention est encore en cours sur cette majeure.",not_a_twin:"Ce service n'est pas un jumeau.",patch_not_sealed:"Ce patch n'est pas encore scellé.",patch_not_implemented:"Le patch doit d'abord être implémenté.",patch_already_draft:"Ce patch est déjà en brouillon — il n'y a rien à desceller.",patch_zero_seal_structural
73:"Le patch 0 porte le scellement de sa propre version mineure et ne peut pas revenir en brouillon — le chemin de retour est une nouvelle version mineure.",discussions_human_only:"Les discussions sont réservées aux humains — les comptes de service ne peuvent pas y participer.",discussion_not_open:"Cette discussion est résolue.",discussion_already_open:"Cette discussion est déjà ouverte.",not_comment_author:"Seul l'auteur du commentaire peut le modifier.",requires_discussion_admin:"Réservé au créateur de la discussion ou à un administrateur de la cible.",requires_participant:"Vous n'êtes pas participant de cette discussion.",target_not_visible:"Cet utilisateur ne peut pas voir la cible de la discussion.",requires_architect_role:"Nécessite un rôle d'architecte plateforme actif sur ce projet.",not_college_member:"Seuls les membres du collège peuvent effectuer cette action.",not_super_admin:"Seul un super administrateur peut effectuer cette action.",not_author:"Seul l'auteur de la proposition peut effectuer cette action.",proposal_not_pending:"Le vote est clos — cette proposition n'est plus en attente.",proposal_closed:"Cette proposition est close ; aucun nouveau commentaire ne peut être ajouté.",proposal_already_pending:"Vous avez déjà une proposition en attente sur cet objet.",already_holds_position:"Vous tenez déjà cette position sur la révision en cours.",requires_access:"Vous n'avez pas accès au registre des projets.",requires_manage:"La permission de gestion est requise pour modifier un projet.",requires_org_membership:"Vous devez être membre d'une organisation liée à ce projet.",service_account_forbidden:"Les comptes de service ne peuvent pas effectuer cette action — connectez-vous en tant que personne.",summary_required:"Ajoutez un résumé court avant de publier.",platform_delivery_required:"Affectez au moins un rôle de delivery plateforme (architecte ou ingénieur) avant de publier.",platform_architect_required:"Affectez un membre de la plateforme comme architecte avant de publier.",platform_engineer_required:"Affectez un membre de la plateforme comme ingénieur full-stack ou agent avant de publier.",staffing_incomplete:"Affectez les rôles de delivery plateforme requis (un architecte, plus un ingénieur full-stack ou agent) avant de publier.",client_link_required:"Un projet client nécessite un lien d'organisation actif avant publication.",client_sponsor_required:"Un projet client nécessite un sponsor ou stakeholder externe avant publication.",link_targets_inactive_org:"Un lien vise une organisation qui n'est plus active — terminez-le ou liez une organisation active.",already_published:"Ce projet est déjà publié.",user_not_found:"Cette personne n'est membre actif d'aucune organisation : elle ne peut pas être affectée.",assignee_not_in_linked_org:"Cette personne n'appartient à aucune organisation liée au projet.",assignment_exceeds_link_period:"La période d'affectation dépasse celle du lien d'organisation qui la couvre.",role_period_overlap:"Cette personne occupe déjà ce rôle sur une période qui se chevauche.",assignment_not_found:"Cette affectation n'existe plus.",annul_reason_required:"Indiquez un motif avant d'annuler cette affectation.",annul_reason_too_long:"Le motif d'annulation ne doit pas dépasser 500 caractères.",active_link_exists:"Cette organisation est déjà liée activement au projet.",org_not_found:"Cette organisation est inconnue du registre.",org_suspended:"Cette organisation est suspendue et ne peut pas être liée pour le moment — réessayez une fois qu'elle sera réactivée.",org_archived:"Cette organisation est archivée et ne peut pas être liée.",platform_org_not_linkable:"L'organisation plateforme ne peut pas être un lien de projet.",link_has_dependent_assignments:"Terminez les affectations portées par ce lien avant de le terminer.",retype_requires_target_staffing:"Satisfaites le staffing du type cible avant de changer le type.",only_drafts_deletable:"Seul un brouillon peut être supprimé ; la publication est définitive.",project_not_published:"Publiez le projet avant de changer son statut de travail.",invalid_period:"La date de fin ne peut pas précéder la date de début.",invalid_repo_ref:"Un dépôt doit être de la forme org/nom.",invalid_name:"Un nom est obligatoire, et celui-ci est vide ou trop long.",invalid_description:"La description est invalide.",verification_environment_not_set:"Ce projet n'a aucun environnement de vérification à effacer.",no_open_draft:"La version actuelle est scellée — ouvrez une nouvelle version pour modifier le contenu.",requires_manage_services_scope:"Cette action requiert le périmètre de gestion des services.",requires_dev_or_architect_role:"Cette action requiert le rôle développeur ou architecte sur le projet de ce service.",domain_claim_not_pending:"Cette demande a déjà été traitée.",auto_link_requires_approved_domain:"Ajoutez et faites approuver au moins un domaine avant de choisir cette politique.",already_has_active_membership:"Cette personne appartient déjà à une organisation.",invitation_already_pending:"Cette personne a déjà une invitation en attente.",no_pending_invitation:"Aucune inv
73itation en attente sur laquelle agir.",not_a_membership_candidate:"Cette personne n'est plus dans la file d'attente.",target_user_disabled:"Le compte de cette personne est désactivé.",out_of_read_context:"Cette action requiert une organisation dans laquelle agir, et cette vue n'en désigne aucune.",service_account_has_no_scopes:"Accordez au moins un périmètre avant de générer une clé.",service_account_has_no_description:"Aucune description à effacer.",service_account_key_already_revoked:"Cette clé est déjà révoquée.",last_child:"C’est le seul de son parent — le supprimer laisserait le parent sans aucune version.",has_implemented_child:"Un patch sous cette version est déjà implémenté.",image_recorded:"Une image de conteneur est enregistrée sur cette version.",referenced_by_breach:"Une brèche contractuelle pointe vers cette version.",referenced_by_discussion:"Une discussion de contrat cible cette version.",has_declared_offers:"Cette version déclare encore des offres — supprimez-les d’abord.",has_declared_consumptions:"Cette version déclare encore des consommations — supprimez-les d’abord.",has_declared_tests:"Cette version déclare encore des tests e2e — supprimez-les d’abord.",test_covers_breach:"Un test e2e déclaré ici couvre une brèche contractuelle.",test_required_by_consumption:"Un test e2e déclaré ici est le test de dérive d’inbox d’une consommation.",test_proves_multi_pod:"Un test e2e déclaré ici est celui qui prouve le support multi-pod.",pinned_by_twin_window:"Un service jumeau épingle sa fenêtre de compatibilité sur cette version.",still_referenced:"Quelque chose y fait encore référence — retirez la référence d’abord.",unknown_reference:"Un des enregistrements référencés n’existe pas.",not_found:"Cet enregistrement n’existe pas, ou vous n’y avez pas accès.",not_own_week:"Cette semaine appartient à quelqu'un d'autre.",not_own_profile:"Vous ne pouvez modifier que vos propres réglages de feuille de temps.",not_assigned_manager:"Vous n'êtes pas le responsable désigné de cette personne.",requires_super_admin:"Seul un super administrateur de la plateforme peut le faire.",week_locked:"Cette semaine est verrouillée : elle a été soumise ou déjà décidée.",week_not_over:"La semaine n'est pas terminée. Elle pourra être soumise une fois écoulée.",week_not_submitted:"Cette semaine n'a pas été soumise : il n'y a rien à décider.",week_not_validated:"Seule une semaine validée peut être rouverte.",below_weekly_minimum:"Cette semaine couvre {covered_hours} h sur les {required_hours} h minimum.",day_already_tagged:"Cette journée porte déjà une absence.",day_is_full_day_absence:"Cette journée est une absence à la journée : aucune heure ne peut y être saisie.",day_carries_hours:"Cette journée porte déjà des heures. Supprimez-les avant d'y marquer une absence à la journée.",absence_not_found:"Cette journée ne porte aucune absence à retirer.",day_already_filled:"Cette journée est déjà marquée comme faite.",day_not_filled:"Cette journée n'est pas marquée comme faite.",logging_task_off:"Activez le rappel de saisie dans vos réglages pour marquer une journée comme faite.",entry_not_placed:"Cette saisie n'est posée à aucune heure : il n'y a rien à retirer.",project_not_loggable:"Ce projet n'est pas ouvert à la saisie.",invalid_hours:"Les heures doivent être positives et par pas d'une demi-heure.",invalid_placement:"Une pose va d'un début à une fin plus tardive, toutes deux à la demi-heure et dans la même journée.",placement_incomplete:"Une pose demande un début ET une fin, ou aucun des deux.",hours_do_not_match_placement:"Les heures ne correspondent pas à la pose : les heures d'une saisie posée sont sa durée sur l'horloge.",orientation_on_full_day:"Une absence à la journée couvre les deux demi-journées : elle ne se pose sur aucune.",span_too_long:"Une période couvre au plus {max_days} jours. Coupez-la en deux.",invalid_span:"Le dernier jour de la période ne peut pas précéder le premier.",invalid_detail:"Dites à quoi ces heures ont servi : indiquez la nature du travail.",invalid_subject:"Un sujet tient sur une seule ligne de 120 caractères au plus.",entry_target_not_one:"Une saisie nomme soit un projet, soit un sujet, exactement l'un des deux.",invalid_logging_task_setting:"Choisissez au moins un moment de la semaine avant d'activer le rappel de saisie.",assignment_already_exists:"Cette personne est déjà rattachée à ce manager.",invalid_reason:"Un motif est obligatoire, et celui-ci est vide ou trop long.",invalid_timezone:"Ce n'est pas un fuseau horaire IANA valide.",invalid_week:"Ces coordonnées de semaine ne sont pas valides.",invalid_work_format:"Ce format de travail n'est pas valide. Vérifiez le minimum et le maximum hebdomadaires.",id_already_used:"Cet identifiant a déjà été utilisé.",week_not_found:"Cette semaine n'existe pas, ou vous n'y avez pas accès.",entry_not_found:"Cette saisie n'existe plus.",project_not_found:"Ce projet n'existe pas, ou vous n'y avez pas accès.",member_not_found:"Cette personne n'existe pas, ou vous n'y avez pas accès.",scaffold_already_completed:"L’échafaudage de ce service a déjà été enregistré. Il ne s’enregistre qu’une fois et n’est jamais réinitialisé.",implemented_patch_procedural_only:"Ce patch est implémenté : ses documents techniques attestent de ce qui a été livré — seule une version générée procéduralement peut désormais être enregistrée.",no_implementable_version:"Cette majeure n’a plus de version scellée et non implémentée à construire.",claim_already_yours:"Vous avez déjà pris cette tâche.",no_eligible_actor:"Personne ne correspond actuellement aux règles de cette tâche : un administrateur doit modifier la règle ou l’affectation.",n
73ot_eligible:"Les règles de cette tâche ne vous incluent pas : vous n’avez pas la main dessus.",executor_kind_not_admitted:"Cette tâche n’est pas ouverte aux exécutants humains.",task_not_claimable:"Cette tâche n’est plus ouverte.",task_already_claimed:"Quelqu’un a pris cette tâche juste avant vous.",no_active_claim:"Personne ne détient cette tâche actuellement.",not_claim_holder:"Seule la personne qui détient cette tâche peut le faire.",claim_already_expired:"Cette réservation a déjà expiré : reprenez la tâche pour continuer.",task_completed:"Cette tâche est déjà terminée.",task_cancelled:"Cette tâche a été annulée.",task_lapsed:"Cette tâche est caduque.",definition_already_retired:"Ce badge a déjà été retiré.",achievement_name_taken:"Un autre badge porte déjà ce nom.",achievement_definition_not_found:"Ce badge n'existe plus.",invalid_achievement_name:"Ce nom ne peut pas être utilisé pour un badge.",invalid_achievement_description:"Cette description ne peut pas être utilisée pour un badge.",invalid_achievement_icon:"Cette icône ne peut pas être utilisée pour un badge.",invalid_achievement_tiers:"L'échelle n'est pas valide : les seuils doivent être des quantités strictement croissantes.",invalid_achievement_trigger:"La règle est incomplète pour le mécanisme qu'elle utilise.",definition_id_is_not_uuid_v7:"Le badge n'a pas pu être créé (identifiant invalide).",id_reuse:"Cet identifiant a déjà été utilisé.",job_already_terminal:"Ce job est déjà terminé.",job_not_terminal:"Ce job est encore en cours.",job_deleted:"Ce job a été supprimé.",job_already_deleted:"Ce job est déjà supprimé.",job_not_failed:"Seul un job en échec peut être relancé.",job_not_in_progress:"Ce job n'est pas en cours d'exécution.",not_owner:"Seul le service demandeur peut agir sur ce job.",successor_still_active:"La relance de ce job est encore en cours.",manual_retry_already_started:"Une relance manuelle a déjà été lancée.",manual_retry_conflict:"Quelqu'un vient de relancer ce job.",stale_failed_resolution:"Ce job a de nouveau échoué depuis l'affichage de cet écran.",job_still_active:"Un job encore en cours ne peut pas être supprimé.",runner_type_unavailable:"Aucun runner de ce type n'est disponible.",retry_budget_exhausted:"Ce job a épuisé ses tentatives.",retry_not_scheduled:"Aucune relance n'est prévue pour ce job.",retry_not_due:"La relance prévue n'est pas encore due.",requires_platform_admin:"Seul un administrateur de la plateforme peut modifier le référentiel technique.",language_referenced:"Un framework, une cible de transpilation ou une majeure nomme encore ce langage. Détachez-le d’abord.",framework_referenced:"Une majeure déclare encore ce framework. Détachez-le d’abord.",functional_spec_grammar_invalid:"La spécification fonctionnelle ne suit pas la grammaire des sections : {rule, select, h1_forbidden {les titres de section doivent être des H2, or « {heading} » est un H1} unknown_section {« {section} » ne fait pas partie des sections autorisées} missing_section {la section « {section} » requise est absente} other {un titre de section n’est pas autorisé ici}}.",patch_reason_or_should_fix_required:"Un patch a besoin d’une raison, ou d’au moins une brèche qu’il s’engage à corriger, avant de pouvoir être scellé.",priority_conflict:"Une autre règle de ce bloc occupe déjà ce rang. Choisissez-en un libre.",invalid_argument:"L’une des valeurs envoyées n’est pas acceptable.",link_leaves_assignment_uncovered:"Raccourcir ou supprimer ce lien laisserait une affectation sans couverture — corrigez ou annulez d'abord ces affectations.",scope_withdrawn:"Ce scope est retiré de la déclaration : il n'accepte plus d'attribution.",scope_audience_excludes_users:"Ce scope est réservé aux comptes de service.",scope_audience_excludes_service_accounts:"Ce scope est réservé aux utilisateurs.",scope_restricted_to_platform:"Ce scope ne peut être détenu que dans l'organisation plateforme.",scope_narrowing_conflicts:"{conflicting_holders, plural, one {# détenteur perdrait} other {# détenteurs perdraient}} ce scope. Retirez-les d’abord.",scope_governance_unchanged:"Ce scope est déjà gouverné ainsi.",scope_already_manually_withdrawn:"Un administrateur a déjà retiré ce scope.",scope_not_manually_withdrawn:"Ce scope n'est plus déclaré par son service ; il se réactivera si le service le redéclare.",scope_not_stale:"Ce scope est encore déclaré (ou retiré depuis moins de 15 j
73ours). Cette action s'ouvre 15 jours après la fin de sa déclaration.",scope_still_declared:"Son service propriétaire le déclare encore. Levez le retrait et faites cesser la déclaration.",scope_still_held:"Impossible de supprimer : des organisations ou des comptes de service utilisent encore ce scope. Révoquez-le partout d'abord.",scope_has_no_holders_to_revoke:"Rien ne serait retiré.",organization_unknown:"UX ne connaît pas encore cette organisation : rien ne peut être créé sous elle.",organization_archived:"Cette organisation est archivée : rien ne peut être publié sous elle.",persona_archived:"Ce persona est archivé, et c'est définitif : il n'accepte ni modification, ni transition, ni suppression.",persona_is_draft:"Un brouillon ne s'archive pas — il se supprime.",persona_not_draft:"Ce persona n'est plus un brouillon.",persona_not_published:"Ce persona n'est pas publié.",persona_not_revoked:"Ce persona n'est pas révoqué.",persona_not_found:"Ce persona n'existe plus.",persona_name_taken:"Un autre persona de cette organisation porte déjà ce nom.",invalid_short_description:"Une description courte est obligatoire, et celle-ci est vide ou trop longue.",forbidden:"Vous n'avez pas les droits pour cela ici.",already_client:"Déjà client — son engagement est enregistré. Corrigez-le ou annulez-le plutôt.",not_a_client:"Encore prospect — il n'y a pas encore d'engagement à modifier.",name_required:"Un nom est obligatoire.",interaction_title_required:"Un titre est obligatoire.",domain_too_long:"Le domaine doit faire moins de 500 caractères.",note_too_long:"La note doit faire moins de 500 caractères.",reason_required:"Indiquez pourquoi l'engagement est annulé.",reason_too_long:"La raison doit faire moins de 500 caractères.",uuid_v7_required:"L'identifiant envoyé n'a pas été accepté. Rechargez la page et réessayez.",account_id_reused:"Ce compte existe déjà avec un contenu différent.",contact_id_reused:"Ce contact existe déjà avec des coordonnées différentes.",interaction_id_reused:"Cette interaction a déjà été enregistrée avec un contenu différent.",contact_not_found:"Ce contact ne fait plus partie de ce compte.",interaction_not_found:"Cette interaction ne fait plus partie de ce compte.",interaction_time_range_invalid:"La fin ne peut pas précéder le début.",participant_not_on_account:"Chaque participant doit être un contact de ce compte.",link_not_https:"Les liens doivent être des adresses https:// complètes.",manager_not_platform_user:"Cette personne n'est pas un utilisateur actif de la plateforme.",org_not_linkable:"Cette organisation est suspendue ou archivée — impossible de la lier pour l'instant.",org_already_linked:"Cette organisation est déjà liée à ce compte.",org_link_not_found:"Cette organisation n'est plus liée à ce compte.",account_already_archived:"Ce compte est déjà archivé.",account_not_archived:"Ce compte n'est pas archivé."}},tS={admin:Zb,affordances:eS},nS={title:"Notifications",deleteAll:"Tout supprimer",loadMore:"Afficher plus",empty:"Vous êtes à jour",delete:"Supprimer",markRead:"Marquer comme lu",actionError:"Cette action sur la notification n’a pas pu aboutir.",unread:"Non lu",open:"Notifications",actionPending:"Action requise",labelSeparator:" — ",templates:{welcome:"Bienvenue chez Bot Resources 👋",member_joined:"Vous avez rejoint {orgName}.",member_joined_other:"Un nouveau membre a rejoint {orgName}.",admin_promoted:"Vous êtes désormais administrateur de {orgName}.",admin_promoted_other:"Un membre a été promu administrateur de {orgName}.",admin_demoted:"Vous n’êtes plus administrateur de {orgName}.",member_deactivated:"Votre adhésion à {orgName} a été désactivée.",scope_granted:"La permission « {scope} » vous a été accordée.",scope_revoked:"La permission « {scope} » a été révoquée.",contact_submitted:"Nouvelle demande de contact ({topic}).",charter_vote_solicited:"Une proposition (rév. {revision}) attend votre vote.",charter_pending_proposals_digest:"{count, plural, one {# proposition attend} other {# propositions attendent}} votre décision.",charter_proposal_passed:"Une proposition a été adoptée (v{version}).",charter_proposal_blocked:"Une proposition a été bloquée.",charter_proposal_dropped:"Une proposition a été retirée.",charter_version_published:"Une nouvelle version de la charte (v{version}) a été publiée.",charter_comment_added:"Nouveau commentaire sur une proposition.",project_role_assigned:"Vous avez été affecté comme {role} sur {projectName}.",project_role_ended:"Votre affectation {role} sur {projectName} est terminée.",project_role_corrected:"Votre affectation {role} sur {projectName} a été corrigée.",project_role_annulled:"Votre affectation {role} sur {projectName} a été annulée — elle avait été enregistrée par erreur.",project_status_changed:"Le projet {projectName} est passé à {status}.",project_status_changed_with_reason:"Le projet {projectName} est passé à {status} ({reason}).",fallback:"Vous avez une nouvelle notification.",domain_claim_requested:"Nouvelle demande de domaine : {domain} pour {orgName}.",domain_claim_approved:"Votre demande pour le domaine {domain} a été approuvée.",domain_claim_rejected:"Votre demande pour le domaine {domain} a été refusée.",membership_candidacy_created:"Une personne attend votre validation pour rejoindre {orgName}.",membership_candidacy_approved:"Votre demande pour rejoindre {orgName} a été approuvée.",membership_candidacy_rejected:"Votre demande pour rejoindre {orgName}
73 a été refusée.",org_invitation_created:"Vous avez été invité·e à rejoindre {orgName}.",org_invitation_accepted:"Votre invitation à {orgName} a été acceptée.",org_invitation_declined:"Votre invitation à {orgName} a été refusée.",org_invitation_revoked:"Votre invitation à rejoindre {orgName} a été retirée.",timesheet_week_submitted:"{name} a soumis la semaine {week} — {hours} h, en attente de votre décision.",timesheet_week_submitted_unnamed:"La semaine {week} a été soumise — {hours} h, en attente de votre décision.",timesheet_week_submitted_over:"{name} a soumis la semaine {week} — {hours} h saisies pour {covered} h couvertes, au-delà du maximum hebdomadaire. En attente de votre décision.",timesheet_week_submitted_unnamed_over:"La semaine {week} a été soumise — {hours} h saisies pour {covered} h couvertes, au-delà du maximum hebdomadaire. En attente de votre décision.",timesheet_week_rejected:"Votre semaine {week} a été renvoyée : {reason}",timesheet_week_rejected_plain:"Votre semaine {week} a été renvoyée.",timesheet_submit_reminder:"La semaine {week} n'est toujours pas soumise.",timesheet_submit_reminder_many:"Les semaines {weeks} ne sont toujours pas soumises.",timesheet_log_reminder:"Saisissez vos heures de la semaine {week}.",timesheet_log_reminder_plain:"Saisissez vos heures.",services_comment_added:"Nouveau commentaire sur {serviceName}.",services_discussion_participant_added:"Vous avez été ajouté·e à une discussion sur {serviceName}.",services_discussion_resolved:"Une discussion sur {serviceName} a été résolue.",services_patch_implemented:"La version {version} de {serviceName} a été implémentée.",org_scope_revoked_by_platform:"La plateforme a révoqué la permission « {scope} » dans {orgName}. Cela a supprimé {extent}.",org_scope_revoked_by_platform_plain:"La plateforme a révoqué la permission « {scope} » dans {orgName}.",org_scope_revoked_by_platform_stale:"La plateforme a révoqué la permission « {scope} » dans {orgName} : elle n’est plus déclarée par son service. Cela a supprimé {extent}.",org_scope_revoked_by_platform_stale_plain:"La plateforme a révoqué la permission « {scope} » dans {orgName} : elle n’est plus déclarée par son service.",org_scope_revoked_by_platform_conflicting:"La plateforme a révoqué la permission « {scope} » dans {orgName} : elle est désormais réservée à un public plus restreint. Cela a supprimé {extent}.",org_scope_revoked_by_platform_conflicting_plain:"La plateforme a révoqué la permission « {scope} » dans {orgName} : elle est désormais réservée à un public plus restreint.",org_scope_revoked_by_platform_members:"{count, plural, one {# attribution à un membre} other {# attributions à des membres}}",org_scope_revoked_by_platform_groups:"{count, plural, one {# attribution à un groupe} other {# attributions à des groupes}}",org_scope_revoked_by_platform_entitlement:"le droit de l’organisation"},topics:{Project:"Projet",JobOffer:"Offre d’emploi",Partnership:"Partenariat",Other:"Autre"}},rS={notifications:nS},oS={identity:{can_access_identity:{label:"Accès Identité",description:"Ouvre le module Identité : lire les organisations, utilisateurs, groupes et adhésions que le détenteur a le droit de voir."},can_manage_users:{label:"Gérer les utilisateurs",description:"Créer, inviter, activer et désactiver des utilisateurs, et administrer leurs adhésions et leurs permissions."},can_manage_orgs:{label:"Gérer les organisations",description:"Créer des organisations et conduire leur cycle de vie (publier, activer, suspendre, archiver), et administrer leurs domaines et leurs droits."},can_manage_groups:{label:"Gérer les groupes",description:"Créer et supprimer des groupes, modifier leur composition, et attribuer ou retirer les scopes et rôles qu’ils portent."}},charter:{access:{label:"Accès Gouvernance",description:"Ouvre le module Charte : lire les tenets, les délibérations et le collège. Réservé à la plateforme."}},projects:{access:{label:"Accès Projets",description:"Ouvre le registre des projets : lire les fiches projet, leur staffing, leurs liens organisationnels et leurs dépôts."},manage:{label:"Gérer les projets",description:"Créer et modifier les fiches projet et conduire leur cycle de vie : publier, staffer, lier des organisations, clore. Réservé à la plateforme."},runner:{label:"Clé runner Projets",description:"Lit l'environnement de vérification d'un projet, son URL de base et son jeton d'accès, pour le cibler. N'accorde rien d'autre : aucune vue du catalogue, aucune autre lecture, aucune mutation. Réservé à la plateforme, pour les runners de vérification."}},services:{can_access:{label:"Accès Services",description:"Ouvre le registre des services : lire les fiches service, leurs versions, leurs contrats et leurs documents."},can_manage_shared_services:{label:"Gérer les services partagés",description:"Accorde des droits étendus sur les services partagés — l'équivalent, pour le pool partagé, du rôle d'architecte de projet. Réservé à la plateforme."},can_mark_implemented:{label:"Enregistrer les preuves d'implémentation",description:"La clé CI : valide une cible d'implémentation et enregistre les trois preuves procédurales sur un patch scellé éligible (l'image, la SDL procédurale, le schéma de base procédural). N'accorde aucune autre lecture ni écriture. Réservé à la plateforme."},runner:{label:"Clé runner Services",description:"La clé runner : résout la cible d'implémentation, lit son contexte, y déclare un test e2e et enregistre la fin du scaffold. Rien d'autre. Réservé à la plateforme."},can_manage_services:{label:"Gérer les services (hérité)",description:"Une clé que le registre conserve d'une déclaration antérieure : aucun code du registre des services ne la lit aujourd'hui, et son manifeste ne la déclare plus. À retirer une fois que plus personne ne la détient."}},timesheet:{access:{label:"Accès Feuilles de temps (hérité)",description:"Une clé que le registre conserve d'une déclaration antérieure. Le service Timesheet ne lit aujourd'hui aucun scope (l'appartenance à l'organisation plateforme est tout son mur d'accès), donc la détenir n'accorde rien."},manage:{label:"Gérer les feuilles de temps (hérité)",description:"Une clé que le registre conserve d'une déclaration antérieure. Le service Timesheet ne lit aujourd'hui aucun scope ; y être manager est une affectation que le service possède, pas un scope."}}},iS={scope:{draft:"Rédiger les notes d’engagement",quote:"Chiffrer les notes d’engagement",seal:"Sceller les notes d’engagement",access:"Accès aux notes d’engagement"}},aS={scopes:oS,engagementnotes:iS},sS={error:"認証エラー",returnHome:"ホームに戻る",completingSignIn:"サインイン中...",signOut:"サインアウト",signInWithMicrosoft:"Microsoftã
73§ã‚µã‚¤ãƒ³ã‚¤ãƒ³",workspaceAccess:{title:"ワークスペースへのアクセス権がありません",description:"{email} でサインインしています。{reason}"},errors:{session_expired:"セッションの有効期限が切れました。再度サインインしてください。",user_disabled:"アカウントが無効化されています。管理者にお問い合わせください。",account_not_found:"このログインに紐づくアカウントがありません。管理者にお問い合わせください。",unauthorized:"認証に失敗しました。もう一度お試しください。",validation_error:"認証リクエストが無効です。再度サインインしてください。",server_error:"内部エラーが発生しました。しばらくしてからもう一度お試しください。",server_unreachable:"サーバーに接続できません。接続を確認して再度お試しください。"}},cS={home:"ホーム",solutions:"プロセス",insights:"AIを理解する",stories:"ストーリーズ",about:"会社概要",careers:"採用情報",contact:"お問い合わせ",workspace:"ワークスペース",changeLanguage:"言語を変更"},lS={description:"組織がAIエージェントの力を活用できるよう支援します。",quickLinks:"関連リンク",legal:"法的情報",privacy:"プライバシーポリシー",terms:"利用規約",rights:"無断複写・転載を禁じます。"},dS={pageNotFound:"ページが見つかりません",pageNotFoundTitle:"404 - ページが見つかりません",pageNotFoundDescription:"お探しのページは存在しません。",returnHome:"ホームに戻る",crashTitle:"問題が発生しました",crashDescription:"予期しないエラーが発生しました。ページを再読み込みしてください。",crashReload:"ページを再読み込み",generic:"問題が発生しました。もう一度お試しください。",codes:{UNAUTHENTICATED:"セッションの有効期限が切れました。再度サインインしてください。",FORBIDDEN:"この操作を行う権限がありません。",NOT_FOUND:"項目が見つかりませんでした。",CONFLICT:"現在の状態と競合しています。更新してもう一度お試しください。",BAD_USER_INPUT:"入力された情報の一部が無効です。",INVALID_STATE:"この操作は現在の状態では許可されていません。",INTERNAL:"内部エラーが発生しました。しばらくしてからもう一度お試しください。"}},uS={label:"お問い合わせ",title:"お話しましょう",description:"AIエージェントが御社にどのような価値をもたらせるか、ぜひお気軽にご相談ください。",topicLabel:"ご相談内容",nameLabel:"お名前",emailLabel:"メールアドレス",messageLabel:"メッセージ",namePlaceholder:"お名前",emailPlaceholder:"[email protected]",messagePlaceholder:"プロジェクトについてお聞かせください…",locationLabel:"所在地",locationPlaceholder:"どちらからお問い合わせですか?",attachmentLabel:"履歴書を添付(PDF、最大500KB)",required:"必須",submit:"メッセージを送信"},pS={accept:"承諾",decline:"辞退",accepted:"招待を承諾しました。",declined:"招待を辞退しました。",answering:"回答を送信中…",actionError:"操作を完了できませんでした。"},mS={newer:"新しいバージョンを表示",older:"古いバージョンを表示",implementedOn:"実装日: {date}"},hS={clear:"クリア"},gS={upload:"画像をアップロード",replace:"画像を差し替える",remove:"画像を削除",invalidType:"対応していないファイル形式です。対応形式:{types}。",tooLarge:"ファイルが大きすぎます。最大 {max} MB。",uploadFailed:"アップロードに失敗しました。",deleteFailed:"画像を削除できませんでした。"},fS={auth:sS,nav:cS,footer:lS,errors:dS,contact:uS,invitations:pS,versionCarousel:mS,datePicker:hS,imageUpload:gS},vS={eyebrow:"エージェントシステム",headline1:"専門家の力を",headline2:"何倍にも",subtext:"人間が主導権を握りながら、AIが定型業務を処理。御社のワークフローに合わせて構築。御社のインフラに導入。できないことも正直にお伝えします。",learnMore:"詳細を見る"},yS={label:"現実を見る",title:"導入に必要なこと",paragraph1:"最初の課題は技術ではありません。どこから始めるべきかを見極めることでã
73™ã€‚多くの組織が、投資に見合う課題の特定に苦心されています。そして、それは本格的な取り組みの入口に過ぎません。",paragraph2:"その先には、業務プロセスの再設計があります。専門家の方々がエージェントを活用できるよう育成し、デモ環境ではなく実際の業務に適合するシステムを構築していく必要があります。",highlightTitle:"今、準備を始める意味",highlightText:"この分野で経験を積んだ組織は、確かな基盤を持つことになります。その差は、時間とともに広がっていきます。"},bS={label:"私たちと取り組む理由",title:"共に答えを見つける",description:"まだ誰も正解を持っていません。私たちは技術力を、御社は業務知識をお持ちです。価値は共に築く過程から生まれます。実際に手を動かすメンバーと直接お話しいただけます。お引き受けした以上、成果が出るまで伴走します。",primaryButton:"プロセスを見る",secondaryButton:"お問い合わせ"},SS={hero:vS,realityCheck:yS,callToAction:bS},IS={heroLabel:"私たちのアプローチ",heroTitle:"素早く試し、学び、確実に構築する",heroDescription:"数週間でプロトタイプを構築。うまくいけば拡張へ。そうでなければ、その理由を明確にします。各段階の成果が、次への信頼となります。"},_S={sectionLabel:"私たちの進め方",sectionTitle:"4つのフェーズ。明確な判断ポイント。",sectionDescription:"各フェーズは一つの問いに答えます。各フェーズは相互に拘束力を持ちません。成果が次のステップへの信頼となります。",labels:{whatHappens:"進め方",yourTeam:"お客様側",deliverables:"成果物",whatWeDontDo:"対応していないこと",billing:"料金体系:"},phase0:{name:"スコーピング",question:"私たちは良いパートナーになれるでしょうか?",timeline:"2週間、2〜3回のミーティング",whatHappens:["初回コンタクト、想定されるユースケースについての対話","共に検討:これは適切な課題か?自動化可能か?","必要に応じてユースケースの具体化をお手伝い","相互評価:協力関係を築けるか?"],whoIsInvolved:{client:"業務エキスパート(必須)、意思決定者",br:"シニアアーキテクトまたはフローエンジニア"},deliverables:["具体化されたユースケース","Go/No-goの判断","Goの場合:POCのお見積り"],whatWeDontDo:["提案依頼への対応のための数ヶ月の無償作業","業務エキスパートとの対話なしでの詳細仕様策定"]},phase1:{name:"POC",fullName:"概念実証",question:"このタスクはエージェントシステムで実現可能か?",timeline:"合計4〜6週間",timelineDetail:"1〜3週目:最初の動作するプロトタイプ。4〜6週目:フィードバックに基づく1〜2回の改善。",whatHappens:["実際のプロトタイプを構築(スクリプトや基本的なチャットボットではなく)","ユーザーがテストできるよう迅速にデプロイ","ユーザーがテストし、問題点を発見し、フィードバックを提供","ユーザーと直接やりとりしながら改善","最終的に:ユーザー自身が有用性を判断できる状態に"],itIntegration:"POC期間中にIT統合が必要な場合(SSO、VPNアクセス、データコネクタなど)、これは別途オプションとしてスコープと価格が設定されます。",whoIsInvolved:{client:"業務エキスパート/エンドユーザー(直接アクセス)",br:"フローエンジニア1名 + アーキテクト1名 + コーディングエージェント"},deliverables:["動作するPOCシステム","文書化されたユーザーフィードバック","分析結果:実現可能/実現困難(その理由)","実現可能な場合:POVの仕様とお見積り"],decisionGate:{success:"実現可能 → POVへ移行",failure:"実現困難 → 不足している要素を文書化し、モデルの進化を待って再検討"}},phase2:{name:"POV",fullName:"価値実証",question:"価値を生み出すために必要なパフォーマンスレベルに到達できるか?",timeline:"1〜3ヶ月",whatHappens:["カバレッジの拡大(より多くのケース、より多くのシナリオ)","ユーザーとの継続的な改善","パフォーマンスの向上","モデル選定のためのドメイン固有ベンチマーク(必要に応じて)","APIコストの最適化(必要に応じて)","エージェントアーキテクチャの洗練"],whoIsInvolved:{client:"業務エキスパート + IT部門(統合・デプロイ)",br:"フローエンジニア1〜2名 + アーキテクト1名 + コーディングエージェント"}
73,deliverables:["実際の価値を提供するMVP","合意した仕様に基づく動作システム","技術ドキュメント","パフォーマンス指標"],decisionGate:{success:"仕様通りにシステムが動作 → 納品承認 → 本番化へ移行"}},phase3:{name:"本番化",question:"堅牢で、統合され、持続可能なシステムにするには?",timeline:"継続的",whatHappens:["堅牢性の強化","クライアントシステムとの深い統合","モニタリングの構築","クライアントチームへのナレッジトランスファー","進化的メンテナンス(新機能、調整、モデル更新)"],whoIsInvolved:{client:"IT部門(統合の責任者)、業務部門(利用の責任者)",br:"サポート対応可能なチーム"},deliverables:["堅牢な本番システム","完全なドキュメント","自律的に運用できるクライアントチーム","継続的なサポート"],billingModel:"POC/POV:プロジェクト単位の固定価格。本番化:機能単位の固定価格または年間契約での時間ベース。"},decisions:{atTheGate:"判断ポイント",ongoingRelationship:"継続的な関係",whatHappensNext:"次のステップは?",phase0:{goodFit:"良いフィット、明確なユースケース",goodFitDesc:"POCの見積もり提案に進みます",doesntFit:"ユースケースは合わないが、相性は良い",doesntFitDesc:"一緒に他のユースケースを探ります — 対話から最良のアイデアが生まれることもあります",rubberStamping:"形式的承認のリスク",rubberStampingDesc:"意思決定支援ツールが無批判に承認されるだけなら、ユースケース自体を再考する必要があります",culturalMisfit:"文化的な不一致",culturalMisfitDesc:"今の段階で分かる方が良い。互いを尊重して別の道を歩みます。"},phase1:{itWorks:"うまくいく — ユーザーが有用だと感じている",itWorksDesc:"明確な目標を設定してPOVの仕様を策定し、次に進みます",notYet:"モデルの限界 — まだ早い",notYetDesc:"不足している要素を文書化します。モデルの進化に合わせて再検討するための技術ウォッチを設定できます。"},phase2:{targetsMet:"目標達成",targetsMetDesc:"仕様通りにシステムが動作 — 納品承認、本番化の準備完了",moreEffort:"想定以上の工数が必要",moreEffortDesc:"率直に話し合います。予算の拡大かスコープの調整か、お客様が決定します。",capabilityGap:"モデル能力のギャップ",capabilityGapDesc:"一時停止し、モデル進化のモニタリングを設定。技術ウォッチが利用可能です。"},phase3:{autonomous:"お客様のチームが自律的に",autonomousDesc:"ナレッジトランスファー完了。システムはお客様のものです。",evolution:"継続的な進化",evolutionDesc:"新機能、モデル更新、スコープ拡張 — お客様のニーズとともに成長します"}},cta:{title:"始める準備はできましたか?",description:"最初の対話にかかるのは時間だけです。私たちが良いパートナーになれるか、確かめてみませんか。",primary:"プロジェクトについて相談する",secondary:"私たちの考え方を知る"}},CS={label:"活用領域",title:"投資効果の高い領域を見極める",description:"エージェントシステムには、特に力を発揮できる業務領域があります。適切な課題を選定すれば、数週間で効果を実感できます。一方、適さない領域に投資すると、期待通りの成果を得ることが難しくなります。",idealFor:{title:"適した領域",items:[{title:"専門家の時間を多く消費する業務",description:"高度な専門知識を持つ方々の時間を、定常的に、あるいは集中的に消費している業務。その貴重な時間をより価値の高い判断業務に振り向けることができます。"},{title:"定型化された知識労働",description:"契約書レビュー、財務分析、コンプライアンスチェックなど。世界中で膨大な回数行われてきた業務であり、AIはこれらの豊富な事例から学習しています。"},{title:"情報収集と整理(意思決定は人間)",description:"エージェントが調査・分析を行い、人間が内容を確認して最終判断を下す形態。意思決定の責任は常に人間に残ります。"},{title:"確認が実行より大幅に短時間",description:"AIの出力を確認する時間が、自分で一から行う時間の20%程度で済む業務。この効率差が自動化の価値を生み出します。"}]},notIdealFor:{title:"慎重な検討が必要な領域",items:[{title:"前例のない先駆的な課題",description:"これまで広く行われてこなかった種類の業務。既存の事例が少ない領域では、AIが参照できるパターンが限られます。"},{title:"取り消しできない重大な意思決定",description:"規制当局への申請承認、取引の最終承認、法的判断など。これらの領域では、人間による最終責任が法的にも求められます。"},{title:"確認に時間がかかる業務",description:"AIの出力を確認するのに、自分で行うのと同程度の時間がかかる場合、自動化による効率向上は見込めません。"}]}},TS={solutions:IS,phases:_S,useCases:CS},wS={heroLabel:"インサイト",heroTitle:"学びと探求",heroDescription:"エージェントシステム、実装戦略、業界の視点についての詳細な分析。",articles:"記事",latestArticle:"最新記事",readMore:"記事を読む",comingSoon:"記事準備中",comingSoonDescription:"新しいコンテンツを準備中です。お楽しみに。",articleNotFound:"記事が見つかりません",backToInsights:"インサイトに戻る",sections:[{id:"agentic-systems-explained",title:"エージェントシステムとは?",description:"複数の専門エージェントが協力し、タスクを委任し、人間と協働する。",subtitle:"単一AIを超えて:完全な協調アーキテクチャ",content:"エージェントシステムは、すべてを行う1つのAIではありません。",features:[{title:"エージェントは委任する",description:"リサーチエージェントは各ドキュメントの分析エージェントを生成し、その成果を統合できます。タスクは分解・並列化され、1つのシステムがボトルネックになることはありません。"},{title:"特化型 >
73 汎用型",description:"「すべてをこなす」1つのエージェントは、すべてにおいて凡庸です。10の専門エージェントがそれぞれ1つのタスクに精通し、人間がオーケストレーションする。それこそが強力で検証可能な仕組みです。"},{title:"人間がコントロールを維持",description:"このシステムは協働のために設計されており、自律動作を目的としていません。エージェントが実行し、人間がレビューして判断します。責任の所在は常に明確です。透明性を通じて信頼が醸成されます。"},{title:"ワークフローに合わせた設計",description:"エージェントはお客様のツールと連携し、データフォーマットを理解し、業務ルールに従います。お客様の働き方にシステムが適応するのであり、その逆ではありません。"}],quote:"専門家の主導権を保ちながら、生産性を何倍にもするAI。それがエージェントシステムの成果です"},{id:"foundation-models-changed-everything",title:"従来のMLとは違う",description:"ファウンデーションモデルがゲームを変えた。方法も、ユースケースも、マインドセットも違う。",content:"従来の機械学習プロジェクトについて知っていることをすべて忘れてください。"},{id:"context-engineering",title:"コンテキストエンジニアリング",description:"AIに適切な情報を適切なタイミングで与える技術。新しい重要スキル。",content:"コンテキストエンジニアリングとは、AIシステムが受け取る情報、そのタイミング、フォーマットを設計する分野です。"},{id:"rag-reality-check",title:"RAG:なぜデモは成功し本番は失敗したのか",description:"検索デモと本番グレードのRAGシステムのギャップ。本当に重要なこと。",content:"すべてのRAGデモは印象的に見える。ほとんどのRAGデプロイメントは期待を裏切る。"},{id:"build-vs-buy",title:"構築 vs 購入",description:"カスタムソリューションに投資すべき時と、既製ツールが正解な時。",content:"AIにおける構築vs購入の決定は、従来のソフトウェアよりも微妙です。"},{id:"tradeoff-triangle",title:"トレードオフの三角形",description:"コスト、レイテンシー、品質。2つを最適化できる。賢く選べ。",content:"すべてのAIシステムは同じ基本的なトレードオフに直面します。"},{id:"demo-to-production",title:"デモから本番へ(9の法則)",description:"なぜ残り10%の作業が90%の労力を要するのか。そしてその計画方法。",content:"デモは簡単です。本番環境への移行こそ、プロジェクトが頓挫する段階です。"},{id:"hallucinations-grounding",title:"ハルシネーションとAIのグラウンディング",description:"なぜAIは嘘をつくのか、そして何ができるか。実践的なグラウンディング技術。",content:"ハルシネーションはバグではなく、LLMの動作原理の基本的な特性です。"},{id:"change-management",title:"人が最優先",description:"ツールが組織を変えるのではない。人が変える。チームを巻き込む方法。",content:"AIプロジェクトの最大のリスクは技術的なことではありません。組織への
73定着です。"},{id:"value-not-roi",title:"ROIを超えて",description:"1983年のスティーブ・ジョブズはROIを語らなかった。変革を語った。AIも同じ。",content:"変革的テクノロジーのROIを計算しようとするのはやめましょう。測るべきものが違います。"}]},kS={heroLabel:"ディープダイブ",heroTitle:"エージェントシステムを理解する",heroDescription:"マルチエージェントアーキテクチャの仕組みとその重要性についての包括的な解説。",whatAreAgents:{label:"コアコンセプト",title:"単一AIを超えて:完全な協調アーキテクチャ",description:"エージェントシステムは、すべてを行う1つのAIではありません。複数の専門エージェントが協力し、互いにタスクを委任し、ツールを使用し、コントロールを維持する人間と協働するアーキテクチャです。",features:[{title:"エージェントは委任する",description:"リサーチエージェントは各ドキュメントの分析エージェントを生成し、その作業を統合できます。タスクは分解され並列化され、1つのシステムでボトルネックになりません。"},{title:"特化型 > 汎用型",description:"「すべてをこなす」1つのエージェントは、すべてにおいて凡庸です。10の専門エージェント、それぞれが1つのタスクのエキスパート、人間がオーケストレーション?それは強力で検証可能です。"},{title:"人間がコントロールを維持",description:"システムはコラボレーション用に設計されており、自律性のためではありません。エージェントが実行し、人間がレビューして決定します。責任は明確なままです。信頼は透明性を通じて構築されます。"},{title:"ワークフロー向けに構築",description:"エージェントはあなたのツールと統合し、データフォーマットを理解し、ビジネスルールに従います。システムはあなたの働き方に適応し、その逆ではありません。"}],quote:"専門家の主導権を保ちながら、その生産性を何倍にもするAI。それが私たちの目指す成果です"}},AS={insights:wS,technical:kS},ES={heroLabel:"ブログ",heroTitle:"記事一覧",heroDescription:"チームからのインサイト、チュートリアル、ストーリー。",articlesTitle:"記事",readMore:"記事を読む",comingSoon:"その他の記事は近日公開...",postNotFound:"記事が見つかりません",backToBlog:"ブログに戻る",backToAllArticles:"記事一覧に戻る",notAvailableIn:"次の言語では未対応ã
73§ã™ï¼š",notTranslatedTo:"この記事はまだ次の言語に翻訳されていません:",viewIn:"次の言語で表示:",translationNotice:{originalIn:"原文は",originalSuffix:"です",viewOriginal:"原文を見る",originalArticle:"これは原文です"}},RS={blog:ES},PS={heroLabel:"ストーリーズ",heroTitle:"ストーリーズ",heroDescription:"ブログ、ポッドキャスト、インタビュー、業界誌など、さまざまな場で発信している知見をご紹介します。",languageFilterOnly:"{lang}のみ",pressCoverageTitle:"メディア掲載",pressCoverageEmpty:"{lang}のメディア掲載はありません。",linkedinPostsTitle:"LinkedIn投稿",linkedinPostsEmpty:"{lang}のLinkedIn投稿はありません。"},DS={news:PS},OS={heroLabel:"会社概要",heroTitle:"Bot Resources",heroDescription:"国際的なクライアント向けにエージェントシステムを構築するフランスのエンジニアリング企業。",company:{title:"会社"},location:{title:"所在地"},founded:{title:"設立",date:"2024å¹´3月"},activity:{title:"事業内容",description:"専門的な科学技術活動"},story:{title:"私たちの始まり",content:["2023年末。コンサルティング案件で、3000件の技術文書を3週間で分析する必要がありました。","GPT-3.5のリリース以来、実験を重ねていました。まずRAGシステムを構築しましたが、十分ではありませんでした。そこで、コンテキストエンジニアリングという別のアプローチを試みました。エージェントに検索させるのではなく、必要な情報を正確に与える。","うまくいきました。","3週間後、システムを停止しました。任務完了です。すると電話がかかってきました。「システムが止まっています。直せますか?毎日使っているので」","その瞬間、確信しました。適切なパートナーを見つけ、エージェントこそが未来だと説得し、9ヶ月後にBot Resourcesを設立しました。","人生最良の決断でした。","創業から3ヶ月後、最初のクライアント契約を獲得しました。それ以来、私たちは構築し続けています。"],signature:"Jean-Xavier Raynaud",signatureRole:"マネージングパートナー"},team:{title:"チーム",roles:{cofounder:"共同創業者",managingPartner:"マネージングパートナー",rdDirector:"R&Dディレクター",flowEngineer:"フローエンジニア"}}},NS={about:OS},MS={heroLabel:"採用情報",heroTitle:"チームに参加する",heroDescription:"AI強化された仕事の未来を一緒に築きましょう。",viewDetails:"詳細を見る",backToCareer:"採用ページに戻る",applyNow:"応募する",downloadPdf:"PDFをダウンロード",spontaneous:{title:"オープンポジションへの応募",description:"該当するポジションが見つかりませんか?ぜひ履歴書をお送りください。",cta:"履歴書を送る"},sections:{employees:{title:"正社員",description:"正社員としてチームに参加してください。",empty:"現在、正社員の募集はありません。"},contractors:{title:"業務委託",description:"フリーランスコンサルタントとして特定のプロジェクトやミッションに参加してください。",empty:"現在、業務委託の募集はありません。"},internships:{title:"インターンシップ",description:"修士課程最終学年(M2相当)の方を対象とした卒業前インターンシップのみ受け付けています。見習い契約(apprentissage)やアルテルナンス契約には対応しておりません。",empty:"現在、インターンシップの募集はありません。"}},closed:"募集終了",jobDetail:{ctaTitle:"チームへの参加をお考えですか?",ctaDescription:"履歴書またはLinkedInプロフィールをお送りください。ご経験や、私たちと一緒に働きたい理由をぜひお聞かせください。"},jobMeta:{location:"勤務地",contract:"契約形態",salary:"給与",stack:"技術スタック",type:"勤務形態",fullTime:"フルタイム"}},LS={careers:MS},jS={info:{title:"お問い合わせ"},email:"メールアドレス",address:"住所",applyingFor:"応募先:",clearJobReference:"応募先の求人を削除",attachmentRemove:"添付ファイルを削除",fileSizeKb:"{size, number} KB",topic:{placeholder:"何についてお話しされますか?",o
73ptions:{project:"プロジェクトについて相談",jobOffer:"求人への応募",partnership:"パートナーシップの機会",other:"その他"}},hints:{emailLooksIncomplete:"このアドレスは入力途中のようです。送信前にご確認ください。"},errors:{fieldRequired:"この項目は必須です",invalidEmail:"有効なメールアドレスを入力してください",invalidName:"有効なお名前を入力してください",invalidMessage:"有効なメッセージを入力してください",invalidLocation:"有効な所在地を入力してください(最大120文字)",invalidJobReference:"この求人リファレンスは無効なため、メッセージは送信されませんでした。「応募先:」の横の ✕ で削除して、もう一度送信してください。",attachmentTooLarge:"ファイルが大きすぎます(最大500KB)。",attachmentInvalidType:"PDFファイルのみ添付できます。",invalidAttachmentFilename:"このファイル名は使用できません。ファイル名を変更して再度お試しください。",attachmentReadFailed:"このファイルを読み取れませんでした。もう一度選択してください。",network:"サーバーに接続できませんでした。もう一度お試しください。",unexpected:"問題が発生しました。もう一度お試しください。"},sent:{title:"メッセージを送信しました",body:"メッセージを確かに承りました。担当の者に引き継いでおります。",nextSteps:"できる限り早くご返信いたします。それまでにお客様にご対応いただくことはございません。",referenceLabel:"受付番号",sendAnother:"別のメッセージを送信する"},failed:{title:"メッセージを送信できませんでした",draftNote:"入力内容はそのまま残っていますので、もう一度送信していただけます。",retry:"もう一度送信する"},sending:"送信中…",messageCounter:"{count, number} / {max, number}文字"},US={contactPage:jS},$S={title:"法的情報",company:{title:"サイト運営者"},address:{title:"本社所在地"},directors:{title:"取締役"},contact:{title:"連絡先"},hosting:{title:"ホスティング"},ip:{title:"知的財産権",content:"本サイトのすべてのコンテンツ(テキスト、画像、ロゴなど)は著作権で保護されています。事前の許可なく、部分的であっても複製することは禁止されています。"},activity:{title:"事業活動",content:"専門的な科学技術活動(NAFコード:74.90B)"}},xS={legal:$S},FS={title:"プライバシーポリシー",controller:{title:"データ管理者"},collected:{title:"収集するデータ",content:"お問い合わせフォームを通じて自発的に提供されたデータのみを収集します:お名前、メールアドレス、メッセージの内容。"},purpose:{title:"目的",content:"お客様のデータは、お問い合わせへの回答とサービスに関する情報提供のみに使用されます。"},legalBasis:{title:"法的根拠",content:"処理はお客様の同意(GDPR第6条1項a)および商業的な問い合わせに対応する正当な利益(GDPR第6条1項f)に基づいています。"},retention:{title:"保持期間",content:"お客様のデータは、最後の連絡から最大3年間保持されます。"},rights:{title:"お客様の権利",intro:"GDPRに基づき、以下の権利があります:",access:"データへのアクセス権",rectification:"訂正権",erasure:"削除権",portability:"データポータビリティの権利",opposition:"異議申し立ての権利",limitation:"処理制限の権利",contact:"これらの権利を行使するには、[email protected]までご連絡ください"},cookies:{title:"Cookie",content:"本サイトはトラッキングや広告Cookieを使用していません。サイト機能に必要な技術的Cookieのみが使用される場合があります。"},cnil:{title:"苦情",content:"お住まいの地域のデータ保護当局に苦情を申し立てることができます。"},lastUpdate:"最終更新:2024å¹´12月"},HS={privacy:FS},zS={nav:{title:"管理",users:"ユーザー",groups:"グループ",backToSite:"サイトに戻る"},users:{title:"ユーザー",searchPlaceholder:"ユーザーを検索...",createUser:"ユーザーを作成",name:"名前",email:"メール",role:"ロール",status:"ステータス",createdAt:"作成日",actions:"操作",active:"有効",deactivated:"無効",deactivate:"無効化",reactivate:"再有効化",promote:"管理者に昇格",demote:"管理者権限を削除",capabilities:"権限",grantCapability:"権限を付与",revokeCapability:"取り消し",noUsers:"ユーザーが見つかりません。",notFound:"ユーザーが見つかりません。",detail
73:{title:"ユーザー詳細",backToList:"ユーザー一覧に戻る"}},groups:{title:"グループ",searchPlaceholder:"グループを検索...",createGroup:"グループを作成",name:"名前",members:"メンバー",createdAt:"作成日",actions:"操作",delete:"削除",addMember:"メンバーを追加",removeMember:"削除",email:"メール",role:"ロール",noGroups:"グループが見つかりません。",notFound:"グループが見つかりません。",noMembers:"メンバーがいません。",namePlaceholder:"グループ名",nameLabel:"グループ名",untitled:"名称未設定のグループ",detail:{title:"グループ詳細",backToList:"グループ一覧に戻る",membersList:"メンバー"}},groupMembers:{heading:"メンバー ({count})",pickUser:"ユーザーを選択…",searchUsers:"ユーザーを検索…",noUsers:"ユーザーが見つかりません。",add:"追加",empty:"このグループにメンバーはいません。",userColumn:"ユーザー",actionColumn:"操作",remove:"メンバーを削除"},permissions:{title:"権限",scopes:"スコープ",roles:"ロール",effective:"有効なスコープ",effectiveHint:"このユーザーが実際に保持するスコープ — 直接付与とロールを、組織のエンタイトルメントと交差させたもの。",effectiveEmpty:"有効なスコープはありません。",scopesEmpty:"付与されたスコープはありません。",rolesEmpty:"付与されたロールはありません。",scopePlaceholder:"スコープを選択…",searchScopes:"スコープを検索…",noScopes:"利用可能なスコープがありません。",rolePlaceholder:"ロールを追加…",grant:"付与",revoke:"取り消し",removeScope:"スコープを取り消し",removeRole:"ロールを取り消し",actionError:"問題が発生しました。もう一度お試しください。"},entitlements:{title:"エンタイトルメント",description:"この組織がメンバーに付与できるスコープ。",granted:"付与済みエンタイトルメント",empty:"付与されたエンタイトルメントはありません。",addPlaceholder:"スコープを選択…",searchPlaceholder:"スコープを検索…",noScopes:"利用可能なスコープがありません。",add:"付与",remove:"エンタイトルメントを取り消し"},guests:{assign:"組織に割り当てる",pickOrg:"組織を選択…",pickOrgFirst:"先に組織を選択してください。",searchOrgs:"組織を検索…",noOrgs:"組織が見つかりません。",confirm:"招待",assigned:"ユーザーを組織に割り当てました。",invite:"組織に招待",inviteHint:"承諾が必要な招待を送信します。承諾するまで追加されません。",invited:"招待を送信しました。"},domainClaims:{title:"保留中のドメイン申請",description:"組織の検証を待っているドメイン。",empty:"保留中のドメイン申請はありません。",domainColumn:"ドメイン",orgColumn:"組織",requestedColumn:"申請日",actionsColumn:"操作",approve:"承認",reject:"却下",approved:"ドメイン申請を承認しました。",rejected:"ドメイン申請を却下しました。",primary:"プライマリ",forbidden:"このエリアへのアクセス権がありません。",requesterColumn:"申請者",unknownRequester:"不明"},roles:{superadmin:"スーパー管理者",admin:"管理者",guest:"ゲスト",user:"ユーザー"},forbidden:{title:"アクセス拒否",message:"管理パネルへのアクセス権がありません。"},events:{loadMore:"過去のイベントを読み込む",loading:"アクティビティを読み込み中…",noEvents:"まだアクティビティがありません。",streamInterrupted:"ライブ更新が停止しました。新しいアクティビティが表示されていない可能性があります。",streamResume:"再接続",systemActor:"システム",platformActor:"Bot Resources",layout:{label:"タイムラインの表示形式",column:"縦一覧表示",frieze:"横帯表示"},OrgCreated:"組織が作成されました",OrgRenamed:"組織名が {new_name} に変更されました",OrgAbbreviationChanged:"略称が {abbreviation} に変更されました",OrgWebsiteUrlChanged:"ウェブサイトが {url} に更新されました",OrgLogoChanged:"ロゴが更新されました",OrgPublished:"組織が公開されました",OrgActivated:"組織が有効化されました",OrgSuspended:"組織が一時停止されました",OrgReactivated:"組織が再有効化されました",OrgArchived:"組織がアーカイブされました",OrgDearchived:"組織がアーカイブから復元されました",OrgDeleted:"組織が削除されました",MemberJoined:"メンバーが組織に参加しました",MemberDeactivated:"メンバーが無効化されました",MemberReactivated:"メンバーが再有効化されました",AdminPromoted:"メンバーが管理者に昇格しました",AdminDemoted:"管理者が降格されました",EntitlementGranted:"権限 {scope} が付与されました",EntitlementRevoked:"権限 {scope} が取り消されました",DomainClaimRequested:"ドメイン {domain} の申請が行われました",DomainClaimApproved:"ドメイン申請が承認されました",DomainClaimRejected:"ドメイン申請が却下されました",OrganizationDomainAdded:"ドメイン {domain} が追加されました",OrganizationDomainRemoved:"ドメインが削除されました",OrganizationDomainDemoted:"プライマリドメインが解除されました",ScopeGranted:"スコープ {scope} が付与されました",ScopeRevoked:"スコープ {scope} が取り消されました",OrgScopeRevokedByPlatform:"プラットフォームにより組織全体でスコープ {scope} が取り消されました",RoleGranted:"ロール {role} が付与されました",RoleRevoked:"ロール {role} が取り消されました",GroupCreated:"グループ {name} が作成されました",GroupDeleted:"グループが削除されました",GroupRenamed:"グループ名が {new_name} に変更されました",GroupMemberAdded:"グループにメンバーが追加されました",GroupMemberRemoved:"グループからメンバーが削除されました",GroupScopeGranted:"グループにスコープ {scope} が付与されました",GroupScopeRevoked:"グループからスコープ {scope} が取り消されました",GroupRoleGranted:"グループにロール {role} が付与されました",GroupRoleRevoked:"グループからロール {role} が取り消されました"}},qS={reasons:{not_platform_member:"これを行えるのは Bot Resources プラットフォームのメンバーだけです。",not_platform_admin:"連絡先の個人データを消去できるのはプラットフォーム管理者のみです。",already_read:"この連絡先はすでに既読です。",already_unread:"この連絡先はすでに未読でã
73™ã€‚",already_archived:"この連絡先はすでにアーカイブされています。",not_archived:"この連絡先はアーカイブされていません。",already_erased:"この連絡先の個人データはすでに消去されています。",insufficient_permissions:"この操作を実行する権限がありません。",archived_org_read_only:"この組織はアーカイブ済みで読み取り専用です。",suspended_org_blocked:"この組織は停止中のため、この操作はブロックされています。",platform_only_operation:"この操作はプラットフォーム管理者のみが実行できます。",invalid_status_transition:"現在の状態からこのステータス変更は許可されていません。",platform_org_immutable:"プラットフォーム組織は変更できません。",only_draft_can_be_deleted:"下書きの組織のみ削除できます。",only_draft_can_be_published:"下書きの組織のみ公開できます。",org_requires_admin:"公開する前に、この組織に管理者を追加してください。",user_already_disabled:"このユーザーはすでに無効化されています。",user_not_disabled:"このユーザーは無効化されていません。",no_active_membership:"有効な組織メンバーシップがありません。",membership_deactivated:"この組織メンバーシップは無効化されています。",membership_pending_approval:"この組織メンバーシップは管理者の承認待ちです。",invitation_pending:"組織への招待があなたの返答を待っています。",no_person_linked:"このアカウントには人物レコードが紐づいていないため、プロフィール情報を編集できません。",not_a_member:"このユーザーはこの組織のメンバーではありません。",member_not_deactivated:"このメンバーは無効化されていません。",already_admin:"このユーザーはすでに管理者です。",not_admin:"このユーザーは管理者ではありません。",cannot_self_promote:"自分自身を昇格させることはできません。",last_admin:"最後の管理者を削除することはできません。",system_group_cannot_be_deleted:"システムグループは削除できません。",system_group_cannot_be_renamed:"システムグループは名前を変更できません。",not_pat_owner:"自分のアクセストークンのみ管理できます。",pat_already_revoked:"このアクセストークンはすでに取り消されています。",cannot_impersonate_self:"自分自身になりすますことはできません。",already_impersonating:"すでにユーザーになりすましています。",must_be_admin_to_impersonate:"ユーザーになりすますには管理者である必要があります。",target_not_in_actor_org:"このユーザーはあなたの組織のメンバーではありません。",cannot_impersonate_admin:"別の管理者になりすますことはできません。",generic_blocked:"この操作は現在利用できません。",service_implemented_undeletable:"このサービスには実装済みのバージョンがあるため削除できません。削除できるのは、実装済みバージョンのない下書き状態のサービスのみです。",not_available_in_state:"オブジェクトの現在の状態では利用できません。",previous_version_unimplemented:"次のバージョンを作成するには、前のバージョンが実装済みである必要があります。",patch_already_implemented:"このパッチはすでに実装済みです。テストは実装前に宣言します。",not_latest_patch:"収束済みにできるのは、マイナー版の最新パッチのみです。",already_converged:"このパッチはすでに収束済みです。",breach_fixed_immutable:"この違反は修正済みとしてマークされているため、詳細は変更できません。",convergence_contract_breaches:"{contractBreachCount, plural, other {このメジャー版には未解決の関連違反が #件あります。収束の前に修正するか、無関係にしてください。}}",convergence_observation_period:"72時間の観察期間がまだ経過していません。期間終了後に収束済みにできます。",previous_patch_not_implemented:"新しいパッチを切るには、現在のパッチが実装済みである必要があります。",minor_not_sealed:"このマイナーバージョンはまだシールされていません。",minor_sealed:"このマイナーバージョンはシール済みです — 修正のみ可能です。",already_sealed:"このバージョンはすでにシール済みです。",seal_requirements_unmet:"シールする前に、2つのインテント文書を記述する必要があります。",minor_unchanged_since_parent:"親マイナーから変更がありません — 新しいマイナーには新しいインテントが必要です。",major_already_started:"このメジャーバージョンは開始済みです。削除できるのは未開始のメジャーのみです。",pending_intent_change:"このメジャーではインテント変更がまだ進行中です。",not_a_twin:"このサービスはツインではありません。",patch_not_sealed:"このパッチはまだシールされていません。",patch_not_implemented:"先にパッチを実装する必要があります。",patch_already_draft:"このパッチはすでに下書きです。解除するシールがありません。",patch_zero_seal_structural
73:"パッチ 0 はマイナーバージョン自身のシールを担っているため、下書きに戻すことはできません — 戻るには新しいマイナーバージョンが必要です。",discussions_human_only:"ディスカッションは人間専用です — サービスアカウントは参加できません。",discussion_not_open:"このディスカッションは解決済みです。",discussion_already_open:"このディスカッションはすでにオープンです。",not_comment_author:"コメントを編集できるのは投稿者のみです。",requires_discussion_admin:"ディスカッションの作成者または対象の管理者のみが行えます。",requires_participant:"このディスカッションの参加者ではありません。",target_not_visible:"このユーザーはディスカッションの対象を閲覧できません。",requires_architect_role:"このプロジェクトでアクティブなプラットフォームアーキテクトのロールが必要です。",not_college_member:"この操作を実行できるのは合議体のメンバーのみです。",not_super_admin:"この操作を実行できるのはスーパー管理者のみです。",not_author:"この操作を実行できるのは提案の作成者のみです。",proposal_not_pending:"投票は締め切られました。この提案はもう保留中ではありません。",proposal_closed:"この提案は締め切られており、新しいコメントは追加できません。",proposal_already_pending:"このオブジェクトには既に保留中の提案があります。",already_holds_position:"現在のリビジョンで、すでにこの立場です。",requires_access:"プロジェクトレジストリへのアクセス権がありません。",requires_manage:"プロジェクトを変更するには管理権限が必要です。",requires_org_membership:"このプロジェクトにリンクされた組織のメンバーである必要があります。",service_account_forbidden:"サービスアカウントではこの操作を実行できません。ユーザーとしてサインインしてください。",summary_required:"公開する前に短い概要を追加してください。",platform_delivery_required:"公開する前に、プラットフォームのデリバリー担当(アーキテクトまたはエンジニア)を少なくとも1名割り当ててください。",platform_architect_required:"公開する前に、プラットフォームのメンバーをアーキテクトとして割り当ててください。",platform_engineer_required:"公開する前に、プラットフォームのメンバーをフルスタックまたはエージェントエンジニアとして割り当ててください。",staffing_incomplete:"公開する前に、必要なプラットフォームのデリバリー担当(アーキテクトに加えて、フルスタックまたはエージェントエンジニア)を割り当ててください。",client_link_required:"クライアントプロジェクトは公開前に有効な組織リンクが必要です。",client_sponsor_required:"クライアントプロジェクトは公開前に外部のスポンサーまたはステークホルダーが必要です。",link_targets_inactive_org:"リンク先の組織が無効です。リンクを終了するか、有効な組織をリンクしてください。",already_published:"このプロジェクトはすでに公開されています。",user_not_found:"この担当者はどの組織のアクティブなメンバーでもないため、割り当てられません。",assignee_not_in_linked_org:"この担当者はプロジェクトにリンクされた組織に所属していません。",assignment_exceeds_link_period:"割り当て期間が対象の組織リンク期間を超えています。",role_period_overlap:"この担当者はすでに重複する期間でその役割を持っています。",assignment_not_found:"この割り当ては存在しなくなりました。",annul_reason_required:"この割り当てを取り消す前に理由を入力してください。",annul_reason_too_long:"取り消しの理由は500文字以内で入力してください。",active_link_exists:"この組織はすでにプロジェクトに有効にリンクされています。",org_not_found:"その組織はレジストリに存在しません。",org_suspended:"その組織は一時停止中のため現在リンクできません。再有効化されてから再度お試しください。",org_archived:"その組織はアーカイブ済みのã
73Ÿã‚ãƒªãƒ³ã‚¯ã§ãã¾ã›ã‚“。",platform_org_not_linkable:"プラットフォーム組織はプロジェクトのリンクにできません。",link_has_dependent_assignments:"このリンクを終了する前に、依存する割り当てを終了してください。",retype_requires_target_staffing:"種類を変更する前に、対象種類の担当要件を満たしてください。",only_drafts_deletable:"削除できるのは下書きのみです。公開は取り消せません。",project_not_published:"作業ステータスを変更する前にプロジェクトを公開してください。",invalid_period:"終了日は開始日より前にできません。",invalid_repo_ref:"リポジトリは org/name の形式である必要があります。",invalid_name:"名前は必須です。入力されていないか、長すぎます。",invalid_description:"説明が無効です。",verification_environment_not_set:"このプロジェクトにはクリアできる検証環境がありません。",no_open_draft:"現在のバージョンは封印されています。作業セットを編集するには新しいバージョンを開いてください。",requires_manage_services_scope:"この操作にはサービス管理スコープが必要です。",requires_dev_or_architect_role:"この操作にはこのサービスのプロジェクトでの開発者または設計者ロールが必要です。",domain_claim_not_pending:"この申請はすでに処理済みです。",auto_link_requires_approved_domain:"このポリシーを選ぶ前に、少なくとも1つのドメインを追加して承認を受けてください。",already_has_active_membership:"この人はすでに組織に所属しています。",invitation_already_pending:"この人にはすでに保留中の招待があります。",no_pending_invitation:"対象となる保留中の招待がありません。",not_a_membership_candidate:"この人はもう候補一覧にいません。",target_user_disabled:"この人のアカウントは無効化されています。",out_of_read_context:"この操作には対象となる組織が必要ですが、この画面では組織が指定されていません。",service_account_has_no_scopes:"キーを発行する前に、少なくとも1つのスコープを付与してください。",service_account_has_no_description:"削除する説明がありません。",service_account_key_already_revoked:"このキーはすでに失効しています。",last_child:"親に残る唯一のものです — 削除すると親にバージョンが 1 つも残りません。",has_implemented_child:"このバージョン配下のパッチがすでに実装済みです。",image_recorded:"このバージョンにコンテナイメージが記録されています。",referenced_by_breach:"契約違反がこのバージョンを指しています。",referenced_by_discussion:"契約ディスカッションがこのバージョンを対象にしています。",has_declared_offers:"このバージョンはまだオファーを宣言しています — 先に削除してください。",has_declared_consumptions:"このバージョンはまだコンサンプションを宣言しています — 先に削除してください。",has_declared_tests:"このバージョンはまだ e2e テストを宣言しています — 先に削除してください。",test_covers_breach:"ここで宣言された e2e テストが契約違反をカバーしています。",test_required_by_consumption:"ここで宣言された e2e テストが、あるコンサンプションの inbox ドリフトテストです。",test_proves_multi_pod:"ここで宣言された e2e テストがマルチポッド対応を証明しています。",pinned_by_twin_window:"ツインサービスが互換性ウィンドウをこのバージョンに固定しています。",still_referenced:"まだ参照されています — 先に参照を外してください。",unknown_reference:"参照先のレコードのいずれかが存在しません。",not_found:"このレã
73‚³ãƒ¼ãƒ‰ã¯å­˜åœ¨ã—ないか、閲覧権限がありません。",not_own_week:"この週は他のメンバーのものです。",not_own_profile:"変更できるのは自分の工数設定のみです。",not_assigned_manager:"あなたはこのメンバーの担当マネージャーではありません。",requires_super_admin:"この操作はプラットフォームのスーパー管理者のみが実行できます。",week_locked:"この週はロックされています。提出済み、または決定済みです。",week_not_over:"この週はまだ終わっていません。終了後に提出できます。",week_not_submitted:"この週は提出されていないため、決定するものがありません。",week_not_validated:"再開できるのは承認済みの週のみです。",below_weekly_minimum:"この週の実働は{covered_hours} hで、下限{required_hours} hに届いていません。",day_already_tagged:"この日にはすでに不在が登録されています。",day_is_full_day_absence:"この日は終日の不在のため、工数は入力できません。",day_carries_hours:"この日にはすでに工数があります。終日の不在を登録する前に削除してください。",absence_not_found:"この日に解除できる不在はありません。",day_already_filled:"この日はすでに完了として記録されています。",day_not_filled:"この日は完了として記録されていません。",logging_task_off:"日を完了として記録するには、設定で入力リマインダーを有効にしてください。",entry_not_placed:"この入力は時間帯に配置されていないため、解除するものがありません。",project_not_loggable:"このプロジェクトは工数入力の対象外です。",invalid_hours:"時間は0より大きく、30分単位である必要があります。",invalid_placement:"配置は開始からより遅い終了までで、両端が30分単位、かつ同じ日の中に収まる必要があります。",placement_incomplete:"配置には開始と終了の両方が必要です。どちらも指定しないことも可能です。",hours_do_not_match_placement:"時間が配置と一致しません。配置された入力の時間は、その時間帯の長さです。",orientation_on_full_day:"終日の不在は午前と午後の両方を覆うため、どちらかの半日には配置できません。",span_too_long:"期間は最大{max_days}日までです。2つに分けてください。",invalid_span:"期間の最終日は開始日より前にできません。",invalid_detail:"その時間が何に使われたか、作業の種類を記入してください。",invalid_subject:"件名は120文字以内の1行で入力してください。",entry_target_not_one:"入力はプロジェクトか件名のどちらか一方だけを指定します。",invalid_logging_task_setting:"入力リマインダーを有効にする前に、週の時刻を1つ以上選んでください。",assignment_already_exists:"この担当者にはすでに割り当てられています。",invalid_reason:"理由は必須です。入力されていないか、長すぎます。",invalid_timezone:"有効なIANAタイムゾーンではありません。",invalid_week:"その週の指定は有効ではありません。",invalid_work_format:"その勤務形態は有効ではありません。週の下限と上限を確認してください。",id_already_used:"この識別子はすでに使用されています。",week_not_found:"この週は存在しないか、閲覧権限がありません。",entry_not_found:"この入力はすでに存在しません。",project_not_found:"このプロジェクトは存在しないか、閲覧権限がありません。",member_not_found:"このメンバーは存在しないか、閲覧権限がありません。",scaffold_already_completed:"このサービスのスキャフォールドはすでに記録されています。記録は一度きりで、リセットされません。",implemented_patch_procedural_only:"このパッチは実装済みのã
73Ÿã‚ã€æŠ€è¡“ドキュメントはリリース内容の証跡です。以降は手続き的に生成されたものだけを記録できます。",no_implementable_version:"このメジャーには、確定済みかつ未実装のビルド対象バージョンが残っていません。",claim_already_yours:"このタスクはすでにあなたが保持しています。",no_eligible_actor:"現在このタスクの条件に該当する人がいないため、誰も取得できません。管理者が条件または体制を変更する必要があります。",not_eligible:"このタスクの条件にあなたは含まれていないため、操作できません。",executor_kind_not_admitted:"このタスクは人間の実行者を受け付けていません。",task_not_claimable:"このタスクはすでに受付を終了しています。",task_already_claimed:"直前に他の人がこのタスクを取得しました。",no_active_claim:"現在このタスクを保持している人はいません。",not_claim_holder:"このタスクを保持している本人のみが実行できます。",claim_already_expired:"保持期限がすでに切れています。続けるにはもう一度取得してください。",task_completed:"このタスクはすでに完了しています。",task_cancelled:"このタスクは取り消されています。",task_lapsed:"このタスクは失効しています。",definition_already_retired:"このバッジはすでに終了しています。",achievement_name_taken:"同じ名前のバッジがすでに存在します。",achievement_definition_not_found:"このバッジはもう存在しません。",invalid_achievement_name:"この名前はバッジに使用できません。",invalid_achievement_description:"この説明はバッジに使用できません。",invalid_achievement_icon:"このアイコンはバッジに使用できません。",invalid_achievement_tiers:"段階が不正です:しきい値は個数であり、厳密に増加する必要があります。",invalid_achievement_trigger:"選択した仕組みに必要な項目がルールに足りません。",definition_id_is_not_uuid_v7:"バッジを作成できませんでした(識別子が不正です)。",id_reuse:"この識別子はすでに使用されています。",job_already_terminal:"このジョブはすでに終了しています。",job_not_terminal:"このジョブはまだ実行中です。",job_deleted:"このジョブは削除されています。",job_already_deleted:"このジョブはすでに削除されています。",job_not_failed:"失敗したジョブのみ再実行できます。",job_not_in_progress:"このジョブは実行中ではありません。",not_owner:"このジョブを操作できるのは依頼元サービスだけです。",successor_still_active:"このジョブの再実行はまだ動いています。",manual_retry_already_started:"手動の再実行はすでに開始されています。",manual_retry_conflict:"他の担当者がこのジョブを再実行しました。",stale_failed_resolution:"この画面を読み込んだ後、このジョブは再び失敗しました。",job_still_active:"実行中のジョブは削除できません。",runner_type_unavailable:"この種類の runner が利用できません。",retry_budget_exhausted:"このジョブは試行回数を使い切りました。",retry_not_scheduled:"このジョブに再実行の予定はありません。",retry_not_due:"予定された再実行の時刻にはまだ達していません。",requires_platform_admin:"スタック参照表を変更できるのはプラットフォーム管理者だけです。",language_referenced:"フレームワーク、トランスパイル先、またはメジャーがまだこの言語を指しています。先に切り離してください。",framework_referenced:"メジャーがまだこのフレームワークを宣言しています。先に切り離してください。",functional_spec_grammar_invalid:"機能仕様がセクション文法に従っていません: {rule, select, h1_forbidden {セクション見出しは H2 である必要がありますが、「{heading}」は H1 です} unknown_section {「{section}」は許可されたセクションではありません} missing_section {必須の「{section}」セクションがありません} other {ここではこのセクション見出しは許可されていません}}。",patch_reason_or_should_fix_required:"パッチを封印するには、理由か、修正を約束する契約違反が少なくとも 1 件必要です。",priority_conflict:"このブロックの
73別のルールがその順位を既に使用しています。空いている順位を選んでください。",invalid_argument:"送信された値のいずれかが受け付けられません。",link_leaves_assignment_uncovered:"このリンクを短縮または削除すると、カバーされない割り当てが残ります。先にその割り当てを修正または取り消してください。",scope_withdrawn:"このスコープは宣言から取り下げられており、新しい付与を受け付けません。",scope_audience_excludes_users:"このスコープはサービスアカウント専用です。",scope_audience_excludes_service_accounts:"このスコープはユーザー専用です。",scope_restricted_to_platform:"このスコープはプラットフォーム組織の内部でのみ保持できます。",scope_narrowing_conflicts:"{conflicting_holders, plural, other {#件の保持者}}がこのスコープを失います。先に解除してください。",scope_governance_unchanged:"このスコープはすでにその設定です。",scope_already_manually_withdrawn:"管理者がすでにこのスコープを取り下げています。",scope_not_manually_withdrawn:"このスコープは所有サービスがもう宣言していません。サービスが再び宣言すれば復帰します。",scope_not_stale:"このスコープはまだ宣言されています(または取り下げから15日未満です)。この操作は宣言の終了から15日後に開きます。",scope_still_declared:"所有サービスがまだ宣言しています。取り下げを解除し、宣言を止めてください。",scope_still_held:"削除できません。まだ組織またはサービスアカウントがこのスコープを使用しています。先にすべて取り消してください。",scope_has_no_holders_to_revoke:"削除されるものはありません。",organization_unknown:"UX はこの組織をまだ把握していないため、その配下には何も作成できません。",organization_archived:"この組織はアーカイブ済みのため、その配下には何も公開できません。",persona_archived:"このペルソナはアーカイブ済みで、これは最終です。編集も、状態の変更も、削除も受け付けません。",persona_is_draft:"下書きはアーカイブするものではなく、削除するものです。",persona_not_draft:"このペルソナはもう下書きではありません。",persona_not_published:"このペルソナは公開されていません。",persona_not_revoked:"このペルソナは取り消されていません。",persona_not_found:"このペルソナはもう存在しません。",persona_name_taken:"この組織には同じ名前のペルソナがすでに存在します。",invalid_short_description:"短い説明は必須です。入力されていないか、長すぎます。",forbidden:"ここでこの操作を行う権限がありません。",already_client:"すでにクライアントです。契約は記録済みのため、訂正または取り消しを行ってください。",not_a_client:"まだ見込み客です。変更できる契約はまだありません。",name_required:"名前は必須です。",interaction_title_required:"タイトルは必須です。",domain_too_long:"ドメインは500文字以内にしてください。",note_too_long:"メモは500文字以内にしてください。",reason_required:"契約を取り消す理由を入力してください。",reason_too_long:"理由は500文字以内にしてください。",uuid_v7_required:"送信された識別子が受け付けられませんでした。ページを再読み込みしてもう一度お試しください。",account_id_reused:"このアカウントは別の内容ですでに存在します。",contact_id_reused:"この連絡先は別の情報ですでに存在します。",interaction_id_reused:"このやり取りは別の内容ですでに記録されています。",contact_not_found:"この連絡先はもうこのアカウントに属していません。",interaction_not_found:"このやり取りはもうこのアカウントに属していません。",interaction_time_range_invalid:"終了は開始より前にできません。",participant_not_on_account:"参加者はすべてこのアカウントの連絡先である必要があります。",link_not_https:"リンクは完全な https:// アドレスである必要があります。",manager_not_platform_user:"この人はプラットフォームの有効なユーザーではありません。",org_not_linkable:"この組織は停止中またはアーカイブ済みのã
73Ÿã‚ã€ç¾åœ¨ãƒªãƒ³ã‚¯ã§ãã¾ã›ã‚“。",org_already_linked:"この組織はすでにこのアカウントにリンクされています。",org_link_not_found:"この組織はもうこのアカウントにリンクされていません。",account_already_archived:"このアカウントはすでにアーカイブされています。",account_not_archived:"このアカウントはアーカイブされていません。"}},VS={admin:zS,affordances:qS},BS={title:"通知",deleteAll:"すべて削除",loadMore:"さらに表示",empty:"未読の通知はありません",delete:"削除",markRead:"既読にする",actionError:"通知の操作を完了できませんでした。",unread:"未読",open:"通知",actionPending:"対応が必要です",labelSeparator:"、",templates:{welcome:"Bot Resourcesへようこそ 👋",member_joined:"{orgName}に参加しました。",member_joined_other:"新しいメンバーが{orgName}に参加しました。",admin_promoted:"{orgName}の管理者に任命されました。",admin_promoted_other:"メンバーが{orgName}の管理者に任命されました。",admin_demoted:"{orgName}の管理者権限が解除されました。",member_deactivated:"{orgName}でのメンバー資格が無効化されました。",scope_granted:"「{scope}」の権限が付与されました。",scope_revoked:"「{scope}」の権限が取り消されました。",contact_submitted:"新しいお問い合わせがあります({topic})。",charter_vote_solicited:"提案(rev. {revision})への投票をお待ちしています。",charter_pending_proposals_digest:"{count, plural, one {#件の提案} other {#件の提案}}があなたの決定をお待ちしています。",charter_proposal_passed:"提案が可決されました(v{version})。",charter_proposal_blocked:"提案が却下されました。",charter_proposal_dropped:"提案が取り下げられました。",charter_version_published:"新しい憲章バージョン(v{version})が公開されました。",charter_comment_added:"提案に新しいコメントが追加されました。",project_role_assigned:"{projectName}で{role}に任命されました。",project_role_ended:"{projectName}での{role}の担当が終了しました。",project_role_corrected:"{projectName}での{role}の担当が修正されました。",project_role_annulled:"{projectName}での{role}の担当が取り消されました(誤って登録されていました)。",project_status_changed:"プロジェクト「{projectName}」が{status}になりました。",project_status_changed_with_reason:"プロジェクト「{projectName}」が{status}({reason})になりました。",fallback:"新しい通知があります。",domain_claim_requested:"新しいドメイン申請: {orgName} の {domain}。",domain_claim_approved:"ドメイン {domain} の申請が承認されました。",domain_claim_rejected:"ドメイン {domain} の申請が却下されました。",membership_candidacy_created:"{orgName} への参加を審査待ちの方がいます。",membership_candidacy_approved:"{orgName} への参加リクエストが承認されました。",membership_candidacy_rejected:"{orgName} への参加リクエストが却下されました。",org_invitation_created:"{orgName} への参加に招待されました。",org_invitation_accepted:"{orgName} への招待が承諾されました。",org_invitation_declined:"{orgName} への招待が辞退されました。",org_invitation_revoked:"{orgName} への招待が取り消されました。",timesheet_week_submitted:"{name}が第{week}週を提出しました({hours} h)。決定をお待ちしています。",timesheet_week_submitted_unnamed:"第{week}週が提出されました({hours} h)。決定をお待ちしています。",timesheet_week_submitted_over:"{name}が第{week}週を提出しました(工数{hours} h・実働{covered} h)。週の上限を超えています。決定をお待ちしています。",timesheet_week_submitted_unnamed_over:"第{week}週が提出されました(工数{hours} h・実働{covered} h)。週の上限を超えています。決定をお待ちしています。",timesheet_week_rejected:"第{week}週が差し戻されました:{reason}",timesheet_week_rejected_plain:"第{week}週が差し戻されました。",timesheet_submit_reminder:"第{week}週がまだ提出されていません。",timesheet_submit_reminder_many:"第{weeks}週がまだ提出されていません。",timesheet_log_reminder:"第{week}週の工数を入力してください。",timesheet_log_reminder_plain:"工数を入力してください。",services_comment_added:"{serviceName}に新しいコメントが追加されました。",services_discussion_participant_added:"{serviceName}のディスカッションに追加されました。",services_discussion_resolved:"{serviceName}のディスカッションが解決されました。",services_patch_implemented:"{serviceName} {version} が実装されました。",org_scope_revoked_by_platform:"プラットフォームが {orgName} の「{scope}」権限を取り消しました。{extent}が削除されました。",org_scope_revoked_by_platform_plain:"プラットフォームが {orgName} の「{scope}」権限を取り消しました。",org_scope_revoked_by_platform_stale:"プラットフォームが {orgName} の「{scope}」権限を取り消しました。この権限はサービスから宣言されã
73ªããªã‚Šã¾ã—た。{extent}が削除されました。",org_scope_revoked_by_platform_stale_plain:"プラットフォームが {orgName} の「{scope}」権限を取り消しました。この権限はサービスから宣言されなくなりました。",org_scope_revoked_by_platform_conflicting:"プラットフォームが {orgName} の「{scope}」権限を取り消しました。この権限の対象範囲がより狭く制限されました。{extent}が削除されました。",org_scope_revoked_by_platform_conflicting_plain:"プラットフォームが {orgName} の「{scope}」権限を取り消しました。この権限の対象範囲がより狭く制限されました。",org_scope_revoked_by_platform_members:"メンバーへの付与 {count} ä»¶",org_scope_revoked_by_platform_groups:"グループへの付与 {count} ä»¶",org_scope_revoked_by_platform_entitlement:"組織のエンタイトルメント"},topics:{Project:"プロジェクト",JobOffer:"採用",Partnership:"提携",Other:"その他"}},GS={notifications:BS},KS={identity:{can_access_identity:{label:"アイデンティティへのアクセス",description:"アイデンティティモジュールを開きます。保持者が閲覧を許された組織・ユーザー・グループ・所属を読み取れます。"},can_manage_users:{label:"ユーザー管理",description:"ユーザーの作成・招待・有効化・無効化を行い、その所属と権限を管理します。"},can_manage_orgs:{label:"組織管理",description:"組織を作成し、そのライフサイクル(公開・有効化・停止・アーカイブ)を進め、ドメインと付与枠を管理します。"},can_manage_groups:{label:"グループ管理",description:"グループの作成・削除、構成の変更、グループが持つスコープとロールの付与・取り消しを行います。"}},charter:{access:{label:"ガバナンスへのアクセス",description:"チャーターモジュールを開きます。テネット、審議、カレッジを読み取れます。プラットフォーム限定。"}},projects:{access:{label:"プロジェクトへのアクセス",description:"プロジェクトレジストリを開きます。プロジェクト記録、要員、組織リンク、リポジトリを読み取れます。"},manage:{label:"プロジェクト管理",description:"プロジェクト記録を作成・編集し、ライフサイクル(公開・要員配置・組織リンク・終結)を進めます。プラットフォーム限定。"},runner:{label:"プロジェクト用ランナーキー",description:"プロジェクトの検証環境(ベースURLとアクセストークン)を読み取って対象にします。それ以外は何も許可しません。プラットフォーム限定、検証ランナー向け。"}},services:{can_access:{label:"サービスへのアクセス",description:"サービスレジストリを開きます。サービス記録、バージョン、コントラクト、ドキュメントを読み取れます。"},can_manage_shared_services:{label:"共有サービスの管理",description:"共有サービスに対する拡張権限を付与します。共有プールにおけるプロジェクトアーキテクト相当の権限です。プラットフォーム限定。"},can_mark_implemented:{label:"実装エビデンスの記録",description:"CI用キー。実装対象を検証し、対象の封印済みパッチに3つの手続き的エビデンス(イメージ、手続きSDL、手続きDBスキーマ)を記録します。他の読み書きは一切許可しません。プラットフォーム限定。"},runner:{label:"サービス用ランナーキー",description:"ランナーキー。実装対象の解決、そのコンテキストの読み取り、e2eテストの宣言、スキャフォールド完了の記録のみを行います。プラットフォーム限定。"},can_manage_services:{label:"サービス管理(旧)",description:"以前の宣言からレジストリに残っているキーです。現在サービスレジストリのコードはこれを読まず、マニフェストも宣言していません。保持者がいなくなったら取り下げてください。"}},timesheet:{access:{label:"タイムシートへのアクセス(旧)",description:"以前の宣言からレジストリに残っているキーです。Timesheet サービスは現在スコープを一切読みません(プラットフォーム組織への所属がアクセス条件のã
73™ã¹ã¦ï¼‰ã€‚保持しても何も得られません。"},manage:{label:"タイムシート管理(旧)",description:"以前の宣言からレジストリに残っているキーです。Timesheet サービスは現在スコープを一切読みません。管理権限はサービスが持つマネージャー割当であり、スコープではありません。"}}},WS={scope:{draft:"エンゲージメントノートの起草",quote:"エンゲージメントノートの見積",seal:"エンゲージメントノートの封印",access:"エンゲージメントノートへのアクセス"}},YS={scopes:KS,engagementnotes:WS},JS={...uv,...gv,...bv,..._v,...Tv,...kv,...Ev,...Pv,...Ov,...Mv,...jv,...xv,...db,...hb,...vb},QS={...Ab,...Db,...Lb,...$b,...Fb,...zb,...Vb,...Gb,...Wb,...Jb,...Xb,...tS,...ub,...rS,...aS},XS={...fS,...SS,...TS,...AS,...RS,...DS,...NS,...LS,...US,...xS,...HS,...VS,...pb,...GS,...YS},Dd={en:JS,fr:QS,ja:XS},Ur=["en","fr","ja"],VL={en:"English",fr:"Français",ja:"日本語"},Od="en",xc=new Map;function Fc(t,e){return e.split(".").reduce((n,r)=>n&&typeof n=="object"?n[r]:void 0,t)}function Nd(t,e){const n=(r,o)=>{const i=Fc(t,r);if(typeof i!="string")return r;if(!o)return i;const a=`${e}:${r}`;let s=xc.get(a);
73return s||(s=new Kh(i,e),xc.set(a,s)),s.format(o)};return n.raw=r=>Fc(t,r),n.locale=e,n}function $r(t){return Wa(t)??Od}function Wa(t){const e=t.split("/")[1];return Ur.includes(e)?e:null}function ZS(t){const n=window.location.pathname;return Wa(n)??$r(t)}function eI(){return $r(window.location.pathname)}function Xt(){const t=eI();return Nd(Dd[t],t)}const Md=new Map;function qt(t){Md.set(t,()=>t.setState(t.getInitialState(),!0))}const Ld=new Set;function Yo(t){Ld.add(t)}function Jo(){for(const t of Md.values())t();for(const t of Ld.values())t()}const Cr="br-intended-destination",tI=30*60*1e3;function jd(t){if(typeof t!="string"||!t.startsWith("/"))return null;let e;try{e=new URL(t,window.location.origin)}catch{return null}return e.origin!==window.location.origin||Wa(e.pathname)===null||e.pathname.split("/")[2]!=="app"?null:`${e.pathname}${e.search}${e.hash}`}function Ya(){try{return window.sessionStorage??null}catch{return null}}function nI(t){if(typeof t!="object"||t===null||!("href"in t)||!("savedAt"in t))return null;const{href:e,savedAt:n}=t;return typeof e!="string"||typeof n!="number"||!Number.isFinite(n)?null:{href:e,savedAt:n}}function BL(t){const e=Ya();if(!e)return;const n=jd(t);try{if(n===null){e.removeItem(Cr);return}const r={href:n,savedAt:Date.now()};e.setItem(Cr,JSON.stringify(r))}catch{}}function rI(){const t=Ya();if(!t)return null;let e;try{e=t.getItem(Cr),t.removeItem(Cr)}catch{return null}if(e===null)return null;let n;try{n=JSON.parse(e)}catch{return null}const r=nI(n);if(r===null)return null;const o=Date.now()-r.savedAt;return o<0||o>tI?null:jd(r.href)}function Ud(){const t=Ya();if(t)try{t.removeItem(Cr)}catch{}}Yo(Ud);let Tn=null;function GL(t){if(Tn&&Tn!==t)throw new Error("@br/fe-sdk: a different shell host is already installed.");Tn=t}function oI(){if(!Tn)throw new Error("@br/fe-sdk: no shell host is installed — a slice runs only inside the shell, which installs it before loading one.");return Tn}function KL(){Tn=null}const iI=A.createContext(void 0);function aI(){return A.useContext(iI)}const vn={signedOut:"signed_out",notPlatformMember:"not_platform_member",notPlatformAdmin:"not_platform_admin",missingScope:"missing_scope",unknownGate:"unknown_gate",generic:"generic_blocked"};function WL(t){return oI().useShellGate(t)}const $d=A.createContext(null),sI=()=>{const t=A.useContext($d);if(!t)throw new Error("useAuth must be used within an AuthProvider");return t},cI=/\{\s*\w/,Hc=t=>typeof t=="object"&&t!==null&&!Array.isArray(t);const lI={actions:[],can:()=>!1,projects:()=>!1,reasonCode:()=>null,reasonParams:()=>null,reasonText:()=>null};function xd(t){if(!t||t.length===0)return lI;const e=new Map;for(const o of t)e.set(o.action,o);const n=o=>{var a;const i=(a=e.get(o))==null?void 0:a.reasonCode;return i?i.toLowerCase():null},r=o=>{var a;const i=(a=e.get(o))==null?void 0:a.params;return typeof i=="string"?i:Hc(i)?JSON.stringify(i):null};return{actions:t,projects:o=>e.has(o),can:o=>{const i=e.get(o);return(i==null?void 0:i.allowed)??!1},reasonCode:n,reasonParams:r,reasonText:(o,i)=>{const a=n(o);if(!a)return null;const s=`affordances.reasons.${a}`,c=()=>i("affordances.reasons.generic_blocked"),l=i.raw(s);if(typeof l!="string")return c();let u;const p=r(o);if(p)try{const h=JSON.parse(p);Hc(h)?u=h:void 0}catch{}if(!u&&cI.test(l))return c();try{return i(s,u)}catch{return c()}}}}function Qo(t){return xd(t==null?void 0:t.affordances)}function dI(){const{user:t}=sI(),e=t==null?void 0:t.affordances;return A.useMemo(()=>xd(e),[e])}function uI(t,e,n){return t.can(e)?null:t.reasonText(e,n)??n("affordances.reasons.generic_blocked")}const Nn={enterWorkspace:"enter_workspace",managePlatform:"manage_platform",manageOrg:"manage_org",updateProfile:"update_profile",setAvatar:"set_avatar"},YL={disableUser:"disable_user",enableUser:"enable_user",deactivateMember:"deactivate_member",reactivateMember:"reactivate_member",promoteAdmin:"promote_admin",demoteAdmin:"demote_admin",grantScope:"grant_scope",revokeScope:"revoke_scope",grantRole:"grant_role",revokeRole:"revoke_role",impersonate:"impersonate"},JL={rename:"rename_organization",setAbbreviation:"set_organization_abbreviation",setWebsite:"set_organization_website",setDescription:"set_organization_description",setLogo:"set_organization_logo",publish:"publish_organization",activate:"activate_organization",suspend:"suspend_organization",reactivate:"reactivate_organization",archive:"archive_organization",dearchive:"dearchive_organization",delete:"delete_organization",manageDomains:"manage_domains",manageEntitlements:"manage_entitlements",createUser:"create_user",createGroup:"create_group",setMembershipPolicy:"set_org_membership_policy",inviteUser:"invite_user_to_org"},QL={remove:"remove_domain",approveClaim:"approve_domain_claim",rejectClaim:"reject_domain_claim"},XL={approve:"approve_membership_candidacy",reject:"reject_membership_candidacy"},ZL={accept:"accept_org_invitation",decline:"decline_org_invitation",revoke:"revoke_org_invitation"},ej={delete:"delete",rename:"rename",addMember:"add_member",removeMember:"remove_member",grantScope:"grant_scope",revokeScope:"revoke_scope",grantRole:"grant_role",revokeRole:"revoke_role"},tj={revoke:"revoke"},nj={mintKey:"mint_service_account_key",rename:"rename_service_account",setDescription:"set_service_account_description",clearDescription:"clear_service_account_description"},rj={setAudience:"set_scope_audience",setPlatformRestriction:"set_scope_platform_restriction",withdraw:"withdraw_scope",liftWithdrawal:"lift_scope_withdrawal",revokeEverywhere:"revoke_scope_everywhere",delete:"delete_scope",clearConflictingHolders:"clear_conflicting_scope_holders"},oj={toUser:"grant_scope_to_user",toGroup:"grant_scope_to_group",toServiceAccount:"grant_scope_to_service_account",asEntitlement:"grant_scope_as_entitlement"},ij={revoke:"revoke_service_account_key"},pI=["out_of_read_context"],aj=new Set(["archived_org_read_only","suspended_org_blocked",...pI]);function Ja(t){return(t==null?void 0:t.isAdmin)===!0&&t.isPlatformOrg===!0}function mI(t,e){return t?Ja(t)?!0:t.authorizedScopes.includes(e):!1}function sj(t,e){return t?Ja(t)?!0:t.authorizedScopes.includes(e):!1}const Kr={allowed:!0,reasonCode:null};function yn(t){return{allowed:!1,reasonCode:t}}function cj(t,e){if(!t)return yn(vn.signedOut);
73if(typeof e!="string"){const n=hI(e);return n===null?zc(e):mI(t,n)?Kr:yn(vn.missingScope)}switch(e){case"workspace.enter":{const n=Qo(t);return n.can(Nn.enterWorkspace)?Kr:yn(n.reasonCode(Nn.enterWorkspace)??vn.generic)}case"platform.member":return t.isPlatformOrg?Kr:yn(vn.notPlatformMember);case"platform.admin":return Ja(t)?Kr:yn(vn.notPlatformAdmin);default:return zc(e)}}function hI(t){if(typeof t!="object"||t===null||!("scope"in t))return null;const{scope:e}=t;return typeof e=="string"&&e!==""?e:null}function zc(t){return console.error(`[slices] unknown shell gate ${JSON.stringify(t)}: denied.`),yn(vn.unknownGate)}function Xo(t,e,n){return{id:t.id,email:t.email,name:[t.firstName,t.lastName].filter(Boolean).join(" ")||void 0,picture:t.avatarUrl??n??void 0,provider:e??"entra",organizationId:t.organizationId??null,platformOrgId:t.platformOrgId??null,isAdmin:t.isAdmin,isPlatformOrg:t.isPlatformOrg,authorizedScopes:t.authorizedScopes,affordances:t.affordances}}const gI=24*60*60*1e3;function Qa(t,e){const n={unpersistedIds:new Set,syncStatus:{},syncError:{},lastSavedAt:{},entitySnapshots:{}},r=mt()(bt((o,i)=>({...n,markUnpersisted:a=>o(s=>({unpersistedIds:new Set([...s.unpersistedIds,a]),syncStatus:{...s.syncStatus,[a]:"local"},syncError:{...s.syncError,[a]:null}})),markPersisted:a=>o(s=>{const c=new Set(s.unpersistedIds);c.delete(a);const{[a]:l,...u}=s.entitySnapshots;return{unpersistedIds:c,syncStatus:{...s.syncStatus,[a]:"synced"},syncError:{...s.syncError,[a]:null},entitySnapshots:u}}),setSyncStatus:(a,s,c)=>o(l=>({syncStatus:{...l.syncStatus,[a]:s},syncError:{...l.syncError,[a]:c??null}})),recordSave:a=>o(s=>({lastSavedAt:{...s.lastSavedAt,[a]:Date.now()}})),findFirstUnpersisted:()=>{const a=i().unpersistedIds;return a.size>0?[...a][0]:void 0},remove:a=>o(s=>{const c=new Set(s.unpersistedIds);c.delete(a);const{[a]:l,...u}=s.syncStatus,{[a]:p,...h}=s.syncError,{[a]:m,...I}=s.lastSavedAt,{[a]:y,...S}=s.entitySnapshots;return{unpersistedIds:c,syncStatus:u,syncError:h,lastSavedAt:I,entitySnapshots:S}}),reset:()=>o({...n,unpersistedIds:new Set}),saveSnapshot:(a,s)=>{o(c=>({entitySnapshots:{...c.entitySnapshots,[a]:s}}))}}),{name:`entity-sync-${t}`,version:1,partialize:o=>({unpersistedIds:[...o.unpersistedIds],syncStatus:o.syncStatus,syncError:o.syncError,lastSavedAt:o.lastSavedAt,entitySnapshots:o.entitySnapshots}),merge:(o,i)=>{const a=o;if(!a)return i;const s=Date.now(),c={},l=new Set;for(const[I,y]of Object.entries(a.entitySnapshots??{})){const S=y,w=S==null?void 0:S.createdAt;if(typeof w=="string"&&s-new Date(w).getTime()>=gI){l.add(I);continue}c[I]=y}const u=(a.unpersistedIds??[]).filter(I=>!l.has(I)&&I in c),p={};for(const[I,y]of Object.entries(a.syncStatus??{}))l.has(I)||(p[I]=y==="syncing"?"local":y);const h={};for(const[I,y]of Object.entries(a.syncError??{}))l.has(I)||(h[I]=y);const m={};for(const[I,y]of Object.entries(a.lastSavedAt??{}))l.has(I)||(m[I]=y);return{...i,unpersistedIds:new Set(u),syncStatus:p,syncError:h,lastSavedAt:m,entitySnapshots:c}},onRehydrateStorage:()=>o=>{if(!o||!(e!=null&&e.rehydrate))return;const i=o.entitySnapshots;Object.keys(i).length>0&&e.rehydrate(i)}}));return qt(r),r}function Zo(t){return Object.assign(Object.create(null),t)}function fI(t,e){return Object.prototype.hasOwnProperty.call(t,e)}const Fd=Zo({charter:"governance",identity:"settings",timesheet:"timesheets"}),vI=Zo({governance:"charter",settings:"identity",timesheets:"timesheet"}),yI=Zo({org:"organization"}),bI=Zo({organization:"org"}),Hd=new Set(["projects","services","tasks","accounts"]),zd="via";function Ui(t){return t.endsWith("s")?t:`${t}s`}function bn(t){return t.endsWith("s")?t.slice(0,-1):t}function Xa(t){return t!==""&&!t.includes("@")&&!t.includes(":")}function SI(t,e){return Hd.has(t)&&e===bn(t)}function ei(t){const e=t.indexOf("@");return e===-1?t:t.slice(0,e)}function lj(t,e){const n=t.indexOf("@"),r=e??(n===-1?null:t.slice(n+1)),o=ei(t);if(r!==null&&!Xa(r))return null;const i=o.split(":");if(i.some(u=>u===""||u.includes("/")))return null;const[a,...s]=i,c=Fd[a]??a;let l;switch(i.length){case 2:l=[c,s[0]];break;case 3:l=SI(a,s[0])?[c,s[1]]:[c,Ui(s[0]),s[1]];break;case 4:{const u=yI[s[1]]??s[1];l=[c,Ui(u),s[2],Ui(s[0])];break}default:return null}return r?{path:l.join("/"),search:`?${zd}=${encodeURIComponent(r)}`}:{path:l.join("/")}}function dj(t,e){const n=t.split("/").filter(c=>c!=="");if(n.length<2||n.length>4||n.some(c=>c.includes(":")||c.includes("@")))return null;const[r,...o]=n;if(fI(Fd,r))return null;const i=vI[r]??r;let a;switch(n.length){case 2:a=Hd.has(i)&&o[0]!==bn(i)?`${i}:${bn(i)}:${o[0]}`:`${i}:${o[0]}`;break;case 3:a=`${i}:${bn(o[0])}:${o[1]}`;break;case 4:{const c=bn(o[0]);a=`${i}:${bn(o[2])}:${bI[c]??c}:${o[1]}`;break}default:return null}const s=new URLSearchParams(e??"").get(zd);return s!==null&&Xa(s)?`${a}@${s}`:a}const Fn=A.lazy(()=>j(()=>import("./NotImplementedSidebar-B9L4v3nS.js"),__vite__mapDeps([0,1,2]))),II={id:"accounting",railOrder:110,definition:{id:"accounting",icon:Wh,labelKey:"workspace.bc.accounting",fallbackLabel:"Accounting",requiredScope:"can_access_accounting",group:"finance",comingSoon:!0,sidebarItems:[],sidebarComponent:Fn},color:"text-pink-500",tabs:{},addresses:{}};function _e(t){let e=null;const n=()=>
73(e??(e=t().catch(r=>{throw e=null,r})),e);return Object.assign(A.lazy(n),{preload:()=>{n().catch(()=>{})}})}function de(t,e){return _e(()=>j(async()=>{const{sliceScreen:n}=await import("./sliceScreen-RAnNV8d3.js");return{sliceScreen:n}},__vite__mapDeps([3,1,4,2,5,6,7,8,9,10,11])).then(({sliceScreen:n})=>n(t,e)))}const _I={id:"accounts",railOrder:130,definition:{id:"accounts",icon:Ai,labelKey:"workspace.bc.accounts",fallbackLabel:"Accounts",platformOnly:!0,group:"commercial",opensOnSelect:!0,sidebarItems:[{labelKey:"workspace.accounts.nav.desk",icon:Ai,tabType:"accounts:desk",tabId:"accounts:account"}]},color:"text-rose-500",tabs:{"accounts:desk":{component:de("accounts","accounts:desk"),icon:Ai},"accounts:account-detail":{component:de("accounts","accounts:account-detail"),icon:Yh}},addresses:{"accounts:account":{tabType:"accounts:desk",bcId:"accounts",labelKey:"workspace.accounts.nav.desk"},"accounts:account:{id}":{tabType:"accounts:account-detail",bcId:"accounts",labelKey:"workspace.address.account",idPiece:"entity"}}},CI={id:"billing",railOrder:90,definition:{id:"billing",icon:Zl,labelKey:"workspace.bc.billing",fallbackLabel:"Billing",requiredScope:"can_access_billing",group:"finance",comingSoon:!0,sidebarItems:[],sidebarComponent:Fn},color:"text-yellow-500",tabs:{},addresses:{}};function Hn(t){return A.lazy(()=>j(async()=>{const{sidebarPanel:e}=await import("./sliceChrome-B5DvBM6m.js");return{sidebarPanel:e}},__vite__mapDeps([12,1,13,14,15,16,17,18,19,20,21,22,23,8,9,24,25,26,10,7,6,11,2])).then(({sidebarPanel:e})=>e(t)))}const TI={id:"charter",railOrder:10,definition:{id:"charter",icon:Ei,labelKey:"workspace.bc.charter",fallbackLabel:"Governance",requiredScope:"can_access_charter",section:"top",group:"governance",opensOnSelect:!0,sidebarItems:[{labelKey:"workspace.charter.nav.charter",icon:Ei,tabType:"charter:charter",tabId:"charter:charter"}],sidebarComponent:Hn("charter")},color:"text-violet-500",tabs:{"charter:charter":{component:de("charter","charter:charter"),icon:Ei},"charter:tenet-detail":{component:de("charter","charter:tenet-detail"),icon:ir},"charter:deliberations":{component:de("charter","charter:deliberations"),icon:Qh},"charter:proposal-detail":{component:de("charter","charter:proposal-detail"),icon:td},"charter:draft-edit":{component:de("charter","charter:draft-edit"),icon:Jh},"charter:college":{component:de("charter","charter:college"),icon:ed}},addresses:{"charter:charter":{tabType:"charter:charter",bcId:"charter",labelKey:"workspace.charter.nav.charter"},"charter:deliberations":{tabType:"charter:deliberations",bcId:"charter",labelKey:"workspace.charter.nav.deliberations"},"charter:college":{tabType:"charter:college",bcId:"charter",labelKey:"workspace.charter.college"},"charter:proposal:{id}":{tabType:"charter:proposal-detail",bcId:"charter",labelKey:"workspace.address.proposal",idPiece:"entity"},"charter:tenet:{id}":{tabType:"charter:tenet-detail",bcId:"charter",labelKey:"workspace.address.tenet",idPiece:"entity"},"charter:draft:{id}":{tabType:"charter:draft-edit",bcId:"charter",labelKey:"workspace.address.draft",idPiece:"entity"}}},wI={id:"contracts",railOrder:140,definition:{id:"contracts",icon:Xh,labelKey:"workspace.bc.contracts",fallbackLabel:"Contracts",requiredScope:"can_access_contracts",group:"commercial",comingSoon:!0,sidebarItems:[],sidebarComponent:Fn},color:"text-orange-500",tabs:{},addresses:{}},kI={id:"delivery",railOrder:50,definition:{id:"delivery",icon:Zh,labelKey:"workspace.bc.delivery",fallbackLabel:"Delivery",requiredScope:"can_access_delivery",group:"operations",comingSoon:!0,sidebarItems:[],sidebarComponent:Fn},color:"text-lime-500",tabs:{},addresses:{}},AI={id:"design",railOrder:20,definition:{id:"design",icon:eg,labelKey:"workspace.bc.design",fallbackLabel:"Design",requiredScope:"projects:access",group:"design",sidebarItems:[],sidebarComponent:A.lazy(()=>j(()=>import("./DesignSidebar-BbjtBcQ1.js"),__vite__mapDeps([27,1,28,29,14,8,9,15,16,17,18,19,20,21,22,23,24,25,26,10,2,7,6,11])))},color:"text-amber-500",tabs:{},addresses:{}},EI={id:"engagementnotes",railOrder:150,definition:{id:"engagementnotes",icon:ir,labelKey:"workspace.bc.engagementnotes",fallbackLabel:"Engagement notes",requiredScopeAny:["engagementnotes:draft","engagementnotes:quote","engagementnotes:seal"],group:"commercial",opensOnSelect:!0,sidebarItems:[{labelKey:"workspace.engagementnotes.allNotes",icon:ir,tabType:"engagementnotes:note-list",tabId:"engagementnotes:notes:all"}],sidebarComponent:Hn("engagementnotes")},color:"text-sky-500",tabs:{"engagementnotes:note-list":{component:de("engagementnotes","engagementnotes:note-list"),icon:ir},"engagementnotes:note-detail":{component:de("engagementnotes","engagementnotes:note-detail"),icon:ir},"engagementnotes:rate-card":{component:de("engagementnotes","engagementnotes:rate-card"),icon:Zl},"engagementnotes:deliverable-defaults":{component:de("engagementnotes","engagementnotes:deliverable-defaults"),icon:nd}},addresses:{}};async function ot(){const[{installShellHost:t},{shellHost:e}]=await Promise.all([j(()=>
73import("./host-B5oA3V4e.js"),__vite__mapDeps([30,26,25,31,9,1,10,7,6,11,2])),j(()=>import("./shellHost-CZOaY_cP.js").then(n=>n.a),__vite__mapDeps([15,1,16,17,18,19,20,21,14,22,23,8,9,24,25,26,10]))]);t(e)}const RI={id:"identity",hostRail:"settings",color:"text-blue-500",tabs:{"identity:profile":{component:_e(()=>ot().then(()=>j(()=>import("./ProfileSettings-kRa2mBA2.js"),__vite__mapDeps([32,1,33,5,6,7,34,35,2,36,37,38,28,39,40,41,42,43,10,11])))),icon:Pi},"identity:api-keys":{component:_e(()=>ot().then(()=>j(()=>import("./PersonalAccessTokens-iXYoZ2QG.js"),__vite__mapDeps([44,1,36,7,37,5,6,45,2,46,20,19,28,47,48,42,10,11])))),icon:ng},"identity:organization-detail":{component:_e(()=>ot().then(()=>j(()=>import("./OrganizationDetail-DiY8aWZ3.js"),__vite__mapDeps([49,1,50,51,52,36,37,53,7,33,5,6,35,2,28,46,54,55,38,56,47,48,57,58,20,59,60,61,62,63,64,65,66,67,68,69,41,70,10,11])))),icon:tg},"identity:user-list":{component:_e(()=>ot().then(()=>j(()=>import("./AdminUsers-F7Q828b_.js"),__vite__mapDeps([71,1,50,51,52,36,37,72,7,73,5,6,74,2,28,46,33,68,75,62,54,47,48,76,77,70,42,41,10,11])))),icon:Pi},"identity:user-detail":{component:_e(()=>ot().then(()=>j(()=>import("./UserDetail-CARf8YnU.js"),__vite__mapDeps([78,1,36,7,37,21,79,28,39,6,34,5,33,56,2,47,48,60,61,62,46,54,41,10,11])))),icon:Pi},"identity:group-list":{component:_e(()=>ot().then(()=>j(()=>import("./AdminGroups-Bl9SuA0Z.js"),__vite__mapDeps([80,1,50,51,52,36,37,72,7,33,5,6,74,2,28,46,68,42,75,47,48,41,10,11])))),icon:Ri},"identity:group-detail":{component:_e(()=>ot().then(()=>j(()=>import("./GroupDetail-DoDyRPu9.js"),__vite__mapDeps([81,1,52,36,7,37,33,5,6,28,2,47,48,56,68,70,62,46,54,60,61,41,10,11])))),icon:Ri},"identity:domain-claims":{component:_e(()=>ot().then(()=>j(()=>import("./PendingDomainClaims-Ce3k-Hx4.js"),__vite__mapDeps([82,1,33,5,6,7,68,73,36,37,51,70,42,75,41,47,48,10,11,2])))),icon:rd},"identity:service-account-list":{component:_e(()=>ot().then(()=>j(()=>import("./ServiceAccounts-D5zVX1_f.js"),__vite__mapDeps([83,1,84,36,7,37,5,6,28,63,2,42,41,10,11])))),icon:Ac},"identity:service-account-detail":{component:_e(()=>ot().then(()=>j(()=>import("./ServiceAccountDetail-C6EDqYkJ.js"),__vite__mapDeps([85,1,84,36,7,37,5,6,28,63,79,60,61,33,2,62,46,54,47,48,41,10,11])))),icon:Ac},"identity:scope-registry":{component:_e(()=>ot().then(()=>j(()=>import("./ScopeRegistry-BaMzYdhD.js"),__vite__mapDeps([86,1,87,61,36,7,37,33,5,6,76,2,53,88,43,46,59,58,56,41,47,48,28,68,67,42,75,10,11])))),icon:Ri}},addresses:{"identity:profile":{tabType:"identity:profile",bcId:"identity",labelKey:"workspace.settings.profile"},"identity:api-keys":{tabType:"identity:api-keys",bcId:"identity",labelKey:"workspace.settings.accessTokens"},"identity:users":{tabType:"identity:user-list",bcId:"identity",labelKey:"workspace.settings.users"},"identity:guests":{tabType:"identity:user-list",bcId:"identity",labelKey:"workspace.settings.guests"},"identity:groups":{tabType:"identity:group-list",bcId:"identity",labelKey:"workspace.settings.groups"},"identity:domain-claims":{tabType:"identity:domain-claims",bcId:"identity",labelKey:"workspace.settings.domainClaims"},"identity:service-accounts":{tabType:"identity:service-account-list",bcId:"identity",labelKey:"workspace.settings.serviceAccounts"},"identity:scopes":{tabType:"identity:scope-registry",bcId:"identity",labelKey:"workspace.settings.scopes"},"identity:organization:{id}":{tabType:"identity:organization-detail",bcId:"identity",labelKey:"workspace.address.organization",idPiece:"entity"},"identity:user:{id}":{tabType:"identity:user-detail",bcId:"identity",labelKey:"workspace.address.user",idPiece:"entity"},"identity:group:{id}":{tabType:"identity:group-detail",bcId:"identity",labelKey:"workspace.address.group",idPiece:"entity"},"identity:service-account:{id}":{tabType:"identity:service-account-detail",bcId:"identity",labelKey:"workspace.address.serviceAccount",idPiece:"entity"},"identity:user:org:{id}":{tabType:"identity:user-list",bcId:"identity",labelKey:"workspace.settings.users",idPiece:"entity"},"identity:group:org:{id}":{tabType:"identity:group-list",bcId:"identity",labelKey:"workspace.settings.groups",idPiece:"entity"}}},PI={id:"jobs",railOrder:70,definition:{id:"jobs",icon:Vr,labelKey:"workspace.bc.jobs",fallbackLabel:"Jobs",platformAdminOnly:!0,group:"operations",opensOnSelect:!0,sidebarItems:[{labelKey:"workspace.jobs.views.jobs",icon:Vr,tabType:"jobs:jobs",tabId:"jobs:jobs"},{labelKey:"workspace.jobs.views.fleet",icon:Yi,tabType:"jobs:fleet",tabId:"jobs:fleet"}],sidebarComponent:Hn("jobs")},color:"text-slate-500",tabs:{"jobs:jobs":{component:de("jobs","jobs:jobs"),icon:Vr},"jobs:fleet":{component:de("jobs","jobs:fleet"),icon:Yi},"jobs:job-detail":{component:de("jobs","jobs:job-detail"),icon:Vr}},addresses:{"jobs:jobs":{tabType:"jobs:jobs",bcId:"jobs",labelKey:"workspace.jobs.views.jobs"},"jobs:fleet":{tabType:"jobs:fleet",bcId:"jobs",labelKey:"workspace.jobs.views.fleet"},"jobs:job:{id}":{tabType:"jobs:job-detail",bcId:"jobs",labelKey:"workspace.address.job",idPiece:"entity"}}};var DI=(t=>(t.JobOffer="JOB_OFFER",t.Other="OTHER",t.Partnership="PARTNERSHIP",t.Project="PROJECT",t))(DI||{}),OI=(t=>(t.Active="ACTIVE",t.Archived="ARCHIVED",t.Draft="DRAFT",t.Published="PUBLISHED",t.Suspended="SUSPENDED",t))(OI||{}),NI=(t=>(t.Cancelled="CANCELLED",t.Completed="COMPLETED",t))(NI||{}),MI=(t=>(t.AtLeastOnce="AT_LEAST_ONCE",t.ExactlyOnce="EXACTLY_ONCE",t))(MI||{}),qd=(t=>(t.Client="CLIENT",t.Demo="DEMO",t.Internal="INTERNAL",t.Product="PRODUCT",t.Rnd="RND",t))(qd||{}),LI=(t=>(t.Draft="DRAFT",t.Published="PUBLISHED",t))(LI||{}),jI=(t=>(t.AgentEngineer="AGENT_ENGINEER",t.Architect="ARCHITECT",t.DomainExpert="DOMAIN_EXPERT",t.FullStackEngineer="FULL_STACK_ENGINEER",t.ProductOwner="PRODUCT_OWNER",t.Sponsor="SPONSOR",t.Stakeholder="STAKEHOLDER",t))(jI||{}),UI=(t=>(t.KvBucket="KV_BUCKET",t.Stream="STREAM",t))(UI||{}),$I=(t=>(t.Closed="CLOSED",t.Open="OPEN",t.Suspended="SUSPENDED",t))($I||{}),xI=(t=>(t.AddConsumedOffer="ADD_CONSUMED_OFFER",t.AddContractComment="ADD_CONTRACT_COMMENT",t.AddDiscussionParticipant="ADD_DISCUSSION_PARTICIPANT",t.AddMajorFramework="ADD_MAJOR_FRAMEWORK",t.AddMajorLanguage="ADD_MAJOR_LANGUAGE",t.AddShouldFix="ADD_SHOULD_FIX",t.CancelTestDeleti
73on="CANCEL_TEST_DELETION",t.ClearContractDiscussionTitle="CLEAR_CONTRACT_DISCUSSION_TITLE",t.ClearFrameworkLogo="CLEAR_FRAMEWORK_LOGO",t.ClearFrameworkScaffoldRunnerType="CLEAR_FRAMEWORK_SCAFFOLD_RUNNER_TYPE",t.ClearLanguageLogo="CLEAR_LANGUAGE_LOGO",t.ClearLanguageTranspilesTo="CLEAR_LANGUAGE_TRANSPILES_TO",t.ClearLinkClassificationOverride="CLEAR_LINK_CLASSIFICATION_OVERRIDE",t.ClearMajorRepository="CLEAR_MAJOR_REPOSITORY",t.ClearPatchReason="CLEAR_PATCH_REASON",t.ClearServiceDescription="CLEAR_SERVICE_DESCRIPTION",t.ClearServiceIntent="CLEAR_SERVICE_INTENT",t.ClearServiceOwningProject="CLEAR_SERVICE_OWNING_PROJECT",t.ClearServiceRepository="CLEAR_SERVICE_REPOSITORY",t.ClearServiceTwinOf="CLEAR_SERVICE_TWIN_OF",t.CorrectConsumption="CORRECT_CONSUMPTION",t.CorrectFunctionalSpec="CORRECT_FUNCTIONAL_SPEC",t.CorrectOffer="CORRECT_OFFER",t.CorrectPermissions="CORRECT_PERMISSIONS",t.CorrectTest="CORRECT_TEST",t.CreateContractDiscussion="CREATE_CONTRACT_DISCUSSION",t.CreateExistingService="CREATE_EXISTING_SERVICE",t.CreateFramework="CREATE_FRAMEWORK",t.CreateLanguage="CREATE_LANGUAGE",t.CreateMajorVersion="CREATE_MAJOR_VERSION",t.CreateMinorVersion="CREATE_MINOR_VERSION",t.CreatePatchVersion="CREATE_PATCH_VERSION",t.CreatePatchWorkAutomationRule="CREATE_PATCH_WORK_AUTOMATION_RULE",t.CreateService="CREATE_SERVICE",t.DeclareConsumption="DECLARE_CONSUMPTION",t.DeclareContractBreach="DECLARE_CONTRACT_BREACH",t.DeclareOffer="DECLARE_OFFER",t.DeclareTest="DECLARE_TEST",t.DeleteConsumption="DELETE_CONSUMPTION",t.DeleteContractBreach="DELETE_CONTRACT_BREACH",t.DeleteDraftService="DELETE_DRAFT_SERVICE",t.DeleteFramework="DELETE_FRAMEWORK",t.DeleteLanguage="DELETE_LANGUAGE",t.DeleteMajorVersion="DELETE_MAJOR_VERSION",t.DeleteMinorVersion="DELETE_MINOR_VERSION",t.DeleteOffer="DELETE_OFFER",t.DeletePatchVersion="DELETE_PATCH_VERSION",t.DeletePatchWorkAutomationRule="DELETE_PATCH_WORK_AUTOMATION_RULE",t.DeleteTest="DELETE_TEST",t.DeprecateMajorVersion="DEPRECATE_MAJOR_VERSION",t.DeprecateService="DEPRECATE_SERVICE",t.EditContractComment="EDIT_CONTRACT_COMMENT",t.EndProjectLink="END_PROJECT_LINK",t.LeaveContractDiscussion="LEAVE_CONTRACT_DISCUSSION",t.LinkBreachTest="LINK_BREACH_TEST",t.LinkConsumptionInboxDriftTest="LINK_CONSUMPTION_INBOX_DRIFT_TEST",t.LinkProject="LINK_PROJECT",t.MarkBreachFixed="MARK_BREACH_FIXED",t.MarkBreachIrrelevant="MARK_BREACH_IRRELEVANT",t.MarkConsumptionDeleted="MARK_CONSUMPTION_DELETED",t.MarkConsumptionForDeletion="MARK_CONSUMPTION_FOR_DELETION",t.MarkConsumptionImplemented="MARK_CONSUMPTION_IMPLEMENTED",t.MarkConsumptionInboxDriftTestImplemented="MARK_CONSUMPTION_INBOX_DRIFT_TEST_IMPLEMENTED",t.MarkOfferDeleted="MARK_OFFER_DELET
73ED",t.MarkOfferForDeletion="MARK_OFFER_FOR_DELETION",t.MarkOfferForDeprecation="MARK_OFFER_FOR_DEPRECATION",t.MarkOfferImplemented="MARK_OFFER_IMPLEMENTED",t.MarkPatchConverged="MARK_PATCH_CONVERGED",t.MarkTestDeleted="MARK_TEST_DELETED",t.MarkTestImplemented="MARK_TEST_IMPLEMENTED",t.ReactivateMajorVersion="REACTIVATE_MAJOR_VERSION",t.ReactivateService="REACTIVATE_SERVICE",t.RecordPatchImage="RECORD_PATCH_IMAGE",t.RecordScaffoldCompleted="RECORD_SCAFFOLD_COMPLETED",t.RemoveConsumedOffer="REMOVE_CONSUMED_OFFER",t.RemoveDiscussionParticipant="REMOVE_DISCUSSION_PARTICIPANT",t.RemoveMajorFramework="REMOVE_MAJOR_FRAMEWORK",t.RemoveMajorLanguage="REMOVE_MAJOR_LANGUAGE",t.RemoveShouldFix="REMOVE_SHOULD_FIX",t.RenameFramework="RENAME_FRAMEWORK",t.RenameLanguage="RENAME_LANGUAGE",t.RenameService="RENAME_SERVICE",t.ReopenContractDiscussion="REOPEN_CONTRACT_DISCUSSION",t.ReplaceFunctionalSpec="REPLACE_FUNCTIONAL_SPEC",t.ReplacePermissions="REPLACE_PERMISSIONS",t.ReportPatchWork="REPORT_PATCH_WORK",t.ReprioritizePatchWorkAutomationRule="REPRIORITIZE_PATCH_WORK_AUTOMATION_RULE",t.RequestFrameworkLogoUpload="REQUEST_FRAMEWORK_LOGO_UPLOAD",t.RequestLanguageLogoUpload="REQUEST_LANGUAGE_LOGO_UPLOAD",t.ResolveContractDiscussion="RESOLVE_CONTRACT_DISCUSSION",t.RetireMajorVersion="RETIRE_MAJOR_VERSION",t.RetireService="RETIRE_SERVICE",t.ScheduleTestDeletion="SCHEDULE_TEST_DELETION",t.SealMinorVersion="SEAL_MINOR_VERSION",t.SealPatch="SEAL_PATCH",t.SetBreachAnalysis="SET_BREACH_ANALYSIS",t.SetBreachReproduction="SET_BREACH_REPRODUCTION",t.SetBreachSeverity="SET_BREACH_SEVERITY",t.SetBreachShortDescription="SET_BREACH_SHORT_DESCRIPTION",t.SetConsumptionCommandImplementation="SET_CONSUMPTION_COMMAND_IMPLEMENTATION",t.SetConsumptionEventReactions="SET_CONSUMPTION_EVENT_REACTIONS",t.SetConsumptionFilterPolicy="SET_CONSUMPTION_FILTER_POLICY",t.SetConsumptionMergePolicy="SET_CONSUMPTION_MERGE_POLICY",t.SetConsumptionProjectionPolicy="SET_CONSUMPTION_PROJECTION_POLICY",t.SetConsumptionProjectionTables="SET_CONSUMPTION_PROJECTION_TABLES",t.SetConsumptionProjectLink="SET_CONSUMPTION_PROJECT_LINK",t.SetContractDiscussionTitle="SET_CONTRACT_DISCUSSION_TITLE",t.SetFrameworkLogo="SET_FRAMEWORK_LOGO",t.SetFrameworkScaffoldRunnerType="SET_FRAMEWORK_SCAFFOLD_RUNNER_TYPE",t.SetFrameworkWhenToUse="SET_FRAMEWORK_WHEN_TO_USE",t.SetLanguageCompiled="SET_LANGUAGE_COMPILED",t.SetLanguageLogo="SET_LANGUAGE_LOGO",t.SetLanguageTranspilesTo="SET_LANGUAGE_TRANSPILES_TO",t.SetLanguageWhenToUse="SET_LANGUAGE_WHEN_TO_USE",t.SetLinkClassificationOverride="SET_LINK_CLASSIFICATION_OVERRIDE",t.SetLinkPort="SET_LINK_PORT",t.SetMajorBackEndMonolith="SET_MAJOR_BACK_END_MONOLITH",t.SetMajorDumbFrontEnd="SET_MAJOR_DUMB_FRONT_END",t.SetMajorEdaPosture="SET_MAJOR_EDA_POSTURE",t.SetMajorManner="SET_MAJOR_MANNER",t.SetMajorMultiPodSupport="SET_MAJOR_MULTI_POD_SUPPORT",t.SetMajorRepository="SET_MAJOR_REPOSITORY",t.SetMajorSourceCodePaths="SET_MAJOR_SOURCE_CODE_PATHS",t.SetMajorTwinCompatibility="SET_MAJOR_TWIN_COMPATIBILITY",t.SetOfferNaturalKey="SET_OFFER_NATURAL_KEY",t.SetOfferPayload="SET_OFFER_PAYLOAD",t.SetOfferShortDescription="SET_OFFER_SHORT_DESCRIPTION",t.SetOfferStream="SET_OFFER_STREAM",t.SetOfferTargetDeletionVersion="SET_OFFER_TARGET_DELETION_VERSION",t.SetOfferType="SET_OFFER_TYPE",t.SetPatchDbSchema="SET_PATCH_DB_SCHEMA",t.SetPatchReason="SET_PATCH_REASON",t.SetPatchRestEndpoints="SET_PATCH_REST_ENDPOINTS",t.SetPatchSdl="SET_PATCH_SDL",t.SetServiceClassification="SET_SERVICE_CLASSIFICATION",t.SetServiceDescription="SET_SERVICE_DESCRIPTION",t.SetServiceIntent="SET_SERVICE_INTENT",t.SetServiceOwningProject="SET_SERVICE_OWNING_PROJECT",t.SetServiceRepository="SET_SERVICE_REPOSITORY",t.SetServiceTwinOf="SET_SERVICE_TWIN_OF",t.SetTestChannels="SET_TEST_CHANNELS",t.SetTestGesture="SET_TEST_GESTURE",t.SetTestShortDescription="SET_TEST_SHORT_DESCRIPTION",t.SetTestTechnicalSpec="SET_TEST_TECHNICAL_SPEC",t.SetTestTitle="SET_TEST_TITLE",t.UnmarkConsumptionForDeletion="UNMARK_CONSUMPTION_FOR_DELETION",t.UnmarkOfferForDeletion="UNMARK_OFFER_FOR_DELETION",t.UnmarkOfferForDeprecation="UNMARK_OFFER_FOR_DEPRECATION",t.UnsealPatch="UNSEAL_PATCH",t.UpdatePatchWorkAutomationRule="UPDATE_PATCH_WORK_AUTOMATION_RULE",t))(xI||{}),FI=(t=>
73(t.BadlyImplemented="BADLY_IMPLEMENTED",t.NotImplemented="NOT_IMPLEMENTED",t.NotRemoved="NOT_REMOVED",t))(FI||{}),HI=(t=>(t.High="HIGH",t.Low="LOW",t.Medium="MEDIUM",t.VeryLow="VERY_LOW",t))(HI||{}),zI=(t=>(t.All="ALL",t.Project="PROJECT",t.Shared="SHARED",t))(zI||{}),qI=(t=>(t.Added="ADDED",t.Deprecated="DEPRECATED",t.Modified="MODIFIED",t.Removed="REMOVED",t))(qI||{}),VI=(t=>(t.Consumption="CONSUMPTION",t.FunctionalSpec="FUNCTIONAL_SPEC",t.Offer="OFFER",t.Permissions="PERMISSIONS",t.Test="TEST",t))(VI||{}),BI=(t=>(t.Core="CORE",t.Generic="GENERIC",t.Supporting="SUPPORTING",t))(BI||{}),GI=(t=>(t.Open="OPEN",t.Resolved="RESOLVED",t))(GI||{}),KI=(t=>(t.Crud="CRUD",t.Full="FULL",t.Soft="SOFT",t))(KI||{}),WI=(t=>(t.FunctionalSpec="FUNCTIONAL_SPEC",t.Permissions="PERMISSIONS",t))(WI||{}),YI=(t=>(t.Completed="COMPLETED",t.InProgress="IN_PROGRESS",t.Pending="PENDING",t))(YI||{}),JI=(t=>(t.CancellationRejected="CANCELLATION_REJECTED",t.Cancelled="CANCELLED",t.Claimed="CLAIMED",t.Completed="COMPLETED",t.CompletionRejected="COMPLETION_REJECTED",t.CreationRejected="CREATION_REJECTED",t.Lapsed="LAPSED",t.Live="LIVE",t.Pending="PENDING",t))(JI||{}),QI=(t=>(t.CheckUndeliveredItems="CHECK_UNDELIVERED_ITEMS",t.ImplementPatch="IMPLEMENT_PATCH",t.ScaffoldPatch="SCAFFOLD_PATCH",t.ScaffoldService="SCAFFOLD_SERVICE",t.VerifyBreachFix="VERIFY_BREACH_FIX",t.VerifyPatch="VERIFY_PATCH",t.VerifyTwin="VERIFY_TWIN",t))(QI||{}),XI=(t=>(t.Fatty="FATTY",t.Hexagonal="HEXAGONAL",t.HumanDriven="HUMAN_DRIVEN",t))(XI||{}),ZI=(t=>(t.Consumption="CONSUMPTION",t.E2ETest="E2E_TEST",t.FunctionalSpec="FUNCTIONAL_SPEC",t.Offer="OFFER",t.Permissions="PERMISSIONS",t))(ZI||{}),Qt=(t=>(t.Command="COMMAND",t.Event="EVENT",t.Kv="KV",t))(Qt||{}),e_=(t=>(t.Automated="AUTOMATED",t.AutomatedHandoff="AUTOMATED_HANDOFF",t.DirectTask="DIRECT_TASK",t))(e_||{}),t_=(t=>(t.Implement="IMPLEMENT",t.Scaffold="SCAFFOLD",t.Verify="VERIFY",t))(t_||{}),n_=(t=>(t.Completed="COMPLETED",t.InProgress="IN_PROGRESS",t.Pending="PENDING",t))(n_||{}),r_=(t=>(t.Cancelled="CANCELLED",t.Completed="COMPLETED",t.Failed="FAILED",t.Queued="QUEUED",t.Rejected="REJECTED",t.Requested="REQUESTED",t.Running="RUNNING",t))(r_||{}),o_=(t=>(t.Cancelled="CANCELLED",t.Claimable="CLAIMABLE",t.Claimed="CLAIMED",t.Completed="COMPLETED",t.Lapsed="LAPSED",t.Pending="PENDING",t.Rejected="REJECTED",t))(o_||{}),i_=(t=>(t.Breach="BREACH",t.Consumption="CONSUMPTION",t.Discussion="DISCUSSION",t.IntentDocument="INTENT_DOCUMENT",t.KnownTask="KNOWN_TASK",t.MinorSummary="MINOR_SUMMARY",t.Offer="OFFER",t.PatchSummary="PATCH_SUMMARY",t.PatchTechnicalDocuments="PATCH_TECHNICAL_DOCUMENTS",t.Service="SERVICE",t.Test="TEST",t))(i_||{}),a_=(t=>(t.Framework="FRAMEWORK",t.Language="LANGUAGE",t.PatchWorkAutomationRule="PATCH_WORK_AUTOMATION_RULE",t))(a_||{});const g={},Vd=d`
74    fragment NotificationFields on Notification {
75  id
76  template
77  payload
78  readAt
79  createdAt
80}
81    `,xr=d`
82    fragment Aff on Affordance {
83  action
84  allowed
85  reasonCode
86  params
87}
88    `,s_=d`
89    fragment ProjectRow on ProjectsProject {
90  id
91  name
92  type
93  registryState
94  workStatus
95  closureReason
96  startDate
97  endDate
98  orgLinks {
99    orgId
100    orgName
101    startDate
102    endDate
103  }
104  roleAssignments {
105    userId
106    displayName
107    role
108    startDate
109    endDate
110  }
111  affordances {
112    ...Aff
113  }
114}
115    ${xr}`,c_=d`
116    fragment Localized on GqlLocalized {
117  primaryLocale
118  entries {
119    locale
120    content
121  }
122}
123    `,l_=d`
124    fragment ProjectStream on ProjectsStream {
125  id
126  effectiveName
127  kind
128  intent
129  subjectSpace
130  retentionLogic
131  replayable
132  deliveryGuarantee
133  dedupKey
134  provenance {
135    deploymentRepo
136    resourcePath
137  }
138  affordances {
139    ...Aff
140  }
141}
142    ${xr}`,Bd=d`
143    fragment ProjectFull on ProjectsProject {
144  id
145  name
146  summary
147  description {
148    ...Localized
149  }
150  type
151  startDate
152  endDate
153  registryState
154  publishedAt
155  workStatus
156  closureReason
157  statusTimeline {
158    status
159    reason
160    startedAt
161    endedAt
162  }
163  orgLinks {
164    id
165    orgId
166    orgName
167    startDate
168    endDate
169    affordances {
170      ...Aff
171    }
172  }
173  roleAssignments {
174    id
175    userId
176    displayName
177    role
178    startDate
179    endDate
180    affordances {
181      ...Aff
182    }
183  }
184  streams {
185    ...ProjectStream
186  }
187  agentWorkspace
188  deploymentRepos
189  linkedRepos
190  verificationEnvironment {
191    baseUrl
192    patFingerprint
193    changedAt
194  }
195  affordances {
196    ...Aff
197  }
198}
199    ${c_}
200${xr}
201${l_}`,me=d`
202    fragment ServicesAffordanceFields on ServicesAffordance {
203  action
204  available
205  reasonCode
206  params
207}
208    `,Gd=d`
209    fragment StackAutomationRuleRow on ServicesPatchWorkAutomationRule {
210  id
211  block
212  runnerType
213  priority
214  supportMultiPod
215  manner
216  frameworkCardinality
217  framework {
218    id
219  }
220  affordances {
221    ...ServicesAffordanceFields
222  }
223}
224    ${me}`,d_=d`
225    fragment ContractCommentFields on ServicesContractComment {
226  id
227  discussionId
228  author
229  authorDisplayName
230  content
231  createdAt
232  editedAt
233  affordances {
234    ...ServicesAffordanceFields
235  }
236}
237    ${me}`,Kd=d`
238    fragment DiscussionParticipantFields on ServicesDiscussionParticipant {
239  userId
240  displayName
241}
242    `,Wd=d`
243    fragment ContractDiscussionThread on ServicesContractDiscussion {
244  id
245  title
246  minorVersionId
247  targetId
248  targetType
249  status
250  createdAt
251  createdBy
252  createdByDisplayName
253  lastActivityAt
254  quotedField
255  quotedText
256  quotedFromRevisionAt
257  isQuoteCurrent
258  resolvedAt
259  resolvedBy
260  comments {
261    ...ContractCommentFields
262  }
263  participants {
264    ...DiscussionParticipantFields
265  }
266  affordances {
267    ...ServicesAffordanceFields
268  }
269}
270    ${d_}
271${Kd}
272${me}`,u_=d`
273    fragment JobsRunnerInstanceRow on JobsRunnerInstance {
274  instanceKey
275  version
276  reportedStatus
277  capacity
278  isBusy
279  currentRunIds
280}
281    `,p_=d`
282    fragment JobsFleetType on JobsRunnerType {
283  typeKey
284  isAvailable
285  totalCapacity
286  busyInstanceCount
287  idleInstanceCount
288  waitingJobCount
289  executingJobCount
290  instances {
291    ...JobsRunnerInstanceRow
292  }
293}
294    ${u_}`,m_=d`
295    fragment JobsAff on Affordance {
296  action
297  allowed
298  reasonCode
299  params
300}
301    `,h_=d`
302    fragment JobsFleetTypeView on JobsRunnerTypeView {
303  runnerType {
304    ...JobsFleetType
305  }
306  affordances {
307    ...JobsAff
308  }
309}
310    ${p_}
311${m_}`,Yd=d`
312    fragment ServiceKnownTaskRow on ServicesKnownTask {
313  taskId
314  taskType
315  state
316  isOpen
317  serviceId
318  stagedAt
319  confirmedAt
320  settledAt
321  claimantUserId
322  settledReason
323  about {
324    versionLabel
325    majorVersionId
326    minorVersionId
327    patchVersionId
328    contractBreachId
329    twinServiceId
330  }
331}
332    `,Jd=d`
333    fragment StackLanguageRow on ServicesLanguage {
334  id
335  name
336  logoUrl
337  whenToUse
338  isCompiled
339  isTranspiledToId
340  affordances {
341    ...ServicesAffordanceFields
342  }
343}
344    ${me}`,Qd=d`
345    fragment StackFrameworkRow on ServicesFramework {
346  id
347  name
348  languageId
349  languageName
350  logoUrl
351  whenToUse
352  scaffoldRunnerType
353  affordances {
354    ...ServicesAffordanceFields
355  }
356}
357    ${me}`,g_=d`
358    fragment ServiceMajorViewFields on ServicesServiceMajorView {
359  majorNumber
360  drafting
361  sealedMinor
362  sealedPatch
363  isImplemented
364  hasConverged
365  lastConvergedPatch {
366    patchVersionId
367    label
368  }
369  numberOfContractBreaches
370  hasOffersMissingStream
371}
372    `,Xd=d`
373    fragment ServiceSummaryRow on ServicesServiceSummary {
374  id
375  name
376  dddClassification
377  isShared
378  isProjectSpecific
379  isImplemented
380  isDeprecated
381  isRetired
382  owningProjectId
383  lastConvergedVersions {
384    patchVersionId
385    label
386  }
387  majorViews {
388    ...ServiceMajorViewFields
389  }
390}
391    ${g_}`,Zd=d`
392    fragment ProjectCatalogEntryRow on ServicesProjectCatalogEntry {
393  service {
394    ...ServiceSummaryRow
395  }
396  link {
397    id
398    projectId
399    endDate
400    dddClassificationOverride
401  }
402}
403    ${Xd}`,f_=d`
404    fragment ServiceRecordLink on ServicesProjectLink {
405  id
406  projectId
407  projectName
408  startDate
409  endDate
410  port
411  dddClassificationOverride
412}
413    `,v_=d`
414    fragment ServiceRequestedJobFields on ServicesRequestedJob {
415  jobId
416  runnerType
417  state
418  branch
419  pullRequestUrl
420  report
421  progress {
422    runId
423    plan {
424      index
425      label
426      state
427    }
428  }
429  failure {
430    reasonCode
431    params
432    kind
433    failureCause
434    note
435    diagnostic
436  }
437}
438    `,y_=d`
439    fragment ServiceRequestedTaskFields on ServicesRequestedTask {
440  taskId
441  state
442  claimantUserId
443  claimExpiresAt
444}
445    `,b_=d`
446    fragment ServicePatchWorkFields on ServicesPatchWork {
447  state
448  block
449  automationOutcome
450  job {
451    ...ServiceRequestedJobFields
452  }
453  task {
454    ...ServiceRequestedTaskFields
455  }
456  obligations {
457    kind
458    objectId
459    description
460    resolved
461  }
462  affordances {
463    ...ServicesAffordanceFields
464  }
465}
466    ${v_}
467${y_}
468${me}`,Za=d`
469    fragment ServicePatchSummary on ServicesPatchVersionSummary {
470  id
471  number
472  versionLabel
473  isSealed
474  isImplemented
475  hasConverged
476  image
477  reason
478  signature
479  scaffoldWork {
480    ...ServicePatchWorkFields
481  }
482  implementationWork {
483    ...ServicePatchWorkFields
484  }
485  verificationWork {
486    ...ServicePatchWorkFields
487  }
488  affordances {
489    ...ServicesAffordanceFields
490  }
491  shouldFix {
492    id
493    shortDescription
494    severity
495    isFixed
496  }
497}
498    ${b_}
499${me}`,eu=d`
500    fragment ServiceMinorSummary on ServicesMinorVersionSummary {
501  id
502  number
503  versionLabel
504  isSealed
505  isImplemented
506  hasConverged
507  signature
508  affordances {
509    ...ServicesAffordanceFields
510  }
511  patchVersions {
512    ...ServicePatchSummary
513  }
514}
515    ${me}
516${Za}`,S_=d`
517    fragment ServiceMajorRow on ServicesMajorVersion {
518  id
519  number
520  isSealed
521  isImplemented
522  hasConverged
523  isDeprecated
524  isRetired
525  isDefined
526  notStarted
527  manner
528  edaPosture
529  dumbFrontEnd
530  isBackEndMonolith
531  supportMultiPod
532  multiPodTestId
533  repository
534  sourceCodePaths
535  signature
536  twinMinCompatiblePatch {
537    patchVersionId
538    label
539  }
540  twinMaxCompatiblePatch {
541    patchVersionId
542    label
543  }
544  languages {
545    id
546    name
547    logoUrl
548  }
549  frameworks {
550    id
551    name
552    logoUrl
553    languageName
554  }
555  affordances {
556    ...ServicesAffordanceFields
557  }
558  minorVersions {
559    ...ServiceMinorSummary
560  }
561}
562    ${me}
563${eu}`,tu=d`
564    fragment ServiceRecordFull on ServicesService {
565  id
566  name
567  description
568  intent
569  dddClassification
570  repository
571  isShared
572  isProjectSpecific
573  isImplemented
574  isDeprecated
575  isRetired
576  scaffoldCompletedAt
577  owningProjectId
578  owningProjectName
579  twinOfId
580  twinOfName
581  lastConvergedVersions {
582    patchVersionId
583    label
584    major
585    minor
586    patch
587  }
588  links {
589    ...ServiceRecordLink
590  }
591  majorVersions {
592    ...ServiceMajorRow
593  }
594  affordances {
595    ...ServicesAffordanceFields
596  }
597}
598    ${f_}
599${S_}
600${me}`,I_=d`
601    fragment ServicePatchTechDocs on ServicesPatchTechnicalDocuments {
602  patchVersionId
603  versionLabel
604  sdl
605  proceduralGeneratedSdl
606  dbSchema
607  proceduralGeneratedDbSchema
608  restEndpoints
609  affordances {
610    ...ServicesAffordanceFields
611  }
612}
613    ${me}`,__=d`
614    fragment ServiceIntentDocumentMeta on ServicesIntentDocument {
615  minorVersionId
616  kind
617  updatedAt
618  affordances {
619    ...ServicesAffordanceFields
620  }
621}
622    ${me}`,uj=d`
623    fragment ServiceMinorPatchIds on ServicesMinorVersionSummary {
624  patchVersions {
625    id
626  }
627}
628    `,C_=d`
629    fragment ServiceMinorDetail on ServicesMinorVersion {
630  id
631  number
632  versionLabel
633  majorVersionId
634  isSealed
635  isImplemented
636  hasConverged
637  functionalSpec
638  permissions
639  patchVersions {
640    ...ServicePatchSummary
641  }
642  affordances {
643    ...ServicesAffordanceFields
644  }
645}
646    ${Za}
647${me}`,b=d`
648    fragment ServicesAck on ServicesMutationAck {
649  ok
650  warnings
651  warningDetails {
652    code
653    message
654    params
655  }
656}
657    `,T_=d`
658    fragment ProjectTabServiceRow on ServicesServiceSummary {
659  id
660  name
661  intent
662  dddClassification
663  isShared
664  isProjectSpecific
665  isImplemented
666  isDeprecated
667  isRetired
668  owningProjectId
669  owningProjectName
670  twinOfId
671  lastConvergedVersions {
672    patchVersionId
673    label
674    major
675    minor
676    patch
677  }
678  affordances {
679    ...ServicesAffordanceFields
680  }
681}
682    ${me}`,nu=d`
683    fragment ProjectTabCatalogEntry on ServicesProjectCatalogEntry {
684  service {
685    ...ProjectTabServiceRow
686  }
687  link {
688    id
689    projectId
690    serviceId
691    serviceName
692    port
693    startDate
694    endDate
695    dddClassificationOverride
696    affordances {
697      ...ServicesAffordanceFields
698    }
699  }
700}
701    ${T_}
702${me}`,w_=d`
703    fragment ProjectTabSharedRow on ServicesServiceSummary {
704  id
705  name
706  dddClassification
707  isImplemented
708  isDeprecated
709  isRetired
710  owningProjectId
711}
712    `,ru=d`
713    fragment ProjectTabVerdict on ServicesValidationVerdict {
714  valid
715  reason
716  reasonCode
717  params
718}
719    `,ti=d`
720    fragment ServicesPatchRefFields on ServicesPatchRef {
721  patchVersionId
722  label
723  major
724  minor
725  patch
726}
727    `,es=d`
728    fragment TypedBreachRef on ServicesTypedBreachRef {
729  breachId
730  reason
731  shortDescription
732  severity
733}
734    `,ni=d`
735    fragment ServicesTestAffordance on ServicesAffordance {
736  action
737  available
738  reasonCode
739  params
740}
741    `,ou=d`
742    fragment ServiceTestRow on ServicesE2eTest {
743  id
744  title
745  shortDescription
746  gesture
747  technicalSpec
748  usesNats
749  usesDb
750  usesRedis
751  testsAuthz
752  isPending
753  isImplemented
754  isScheduledForDeletion
755  isDeleted
756  declaredAgainst {
757    ...ServicesPatchRefFields
758  }
759  implementedIn {
760    ...ServicesPatchRefFields
761  }
762  deletedIn {
763    ...ServicesPatchRefFields
764  }
765  coversBreachIds
766  inboxDriftForConsumptionIds
767  unfixedTypedBreaches {
768    ...TypedBreachRef
769  }
770  affordances {
771    ...ServicesTestAffordance
772  }
773}
774    ${ti}
775${es}
776${ni}`,zn=d`
777    fragment ServicesMinorRefFields on ServicesMinorRef {
778  minorVersionId
779  major
780  minor
781  label
782}
783    `,k_=d`
784    fragment OfferConsumerRef on ServicesConsumerRef {
785  consumptionId
786  consumerServiceId
787  consumerServiceName
788  isImplemented
789  declaredIn {
790    ...ServicesMinorRefFields
791  }
792}
793    ${zn}`,A_=d`
794    fragment OfferStreamRef on ServicesOfferStream {
795  streamId
796  effectiveName
797  kind
798}
799    `,iu=d`
800    fragment OfferFull on ServicesOffer {
801  id
802  type
803  naturalKey
804  shortDescription
805  payload
806  signature
807  isConsumed
808  isImplemented
809  isSealed
810  toBeDeprecated
811  toBeDeleted
812  targetDeletionVersion
813  declaredIn {
814    ...ServicesMinorRefFields
815  }
816  implementedIn {
817    ...ServicesPatchRefFields
818  }
819  deprecatedIn {
820    ...ServicesPatchRefFields
821  }
822  deprecationDeclaredIn {
823    ...ServicesMinorRefFields
824  }
825  deletedIn {
826    ...ServicesPatchRefFields
827  }
828  listOfConsumers {
829    ...OfferConsumerRef
830  }
831  stream {
832    ...OfferStreamRef
833  }
834  unfixedTypedBreaches {
835    ...TypedBreachRef
836  }
837  affordances {
838    ...ServicesAffordanceFields
839  }
840}
841    ${zn}
842${ti}
843${k_}
844${A_}
845${es}
846${me}`,E_=d`
847    fragment ConsumedOfferRef on ServicesConsumedOfferRef {
848  offerId
849  naturalKey
850  type
851  providerServiceId
852  providerServiceName
853  isDeprecated
854  isDeleted
855}
856    `,au=d`
857    fragment ConsumptionFull on ServicesConsumption {
858  id
859  signature
860  isImplemented
861  isDeleted
862  toBeDeleted
863  mergePolicy
864  filterPolicy
865  projectionPolicy
866  projectionTables
867  eventReactions
868  commandImplementation
869  inboxDriftTestId
870  projectLinkId
871  consumes {
872    ...ConsumedOfferRef
873  }
874  deprecatedConsumedOffers {
875    ...ConsumedOfferRef
876  }
877  declaredIn {
878    ...ServicesMinorRefFields
879  }
880  implementedIn {
881    ...ServicesPatchRefFields
882  }
883  deletedIn {
884    ...ServicesPatchRefFields
885  }
886  inboxDriftTestImplementedIn {
887    ...ServicesPatchRefFields
888  }
889  unfixedTypedBreaches {
890    ...TypedBreachRef
891  }
892  affordances {
893    ...ServicesAffordanceFields
894  }
895}
896    ${E_}
897${zn}
898${ti}
899${es}
900${me}`,R_=d`
901    fragment ServiceLinkRef on ServicesProjectLink {
902  id
903  projectId
904  projectName
905  endDate
906}
907    `,P_=d`
908    fragment ServicesPickableStream on ProjectsStream {
909  id
910  effectiveName
911  kind
912}
913    `,D_=d`
914    fragment ConsumableOfferRow on ServicesConsumableOffer {
915  providerServiceId
916  providerServiceName
917  providerVersionLabel
918  offer {
919    id
920    type
921    naturalKey
922    shortDescription
923  }
924}
925    `,O_=d`
926    fragment ServicesValidationVerdictFields on ServicesValidationVerdict {
927  valid
928  reason
929  reasonCode
930  params
931}
932    `,N_=d`
933    fragment ServicePatchDetail on ServicesPatchVersion {
934  id
935  number
936  versionLabel
937  minorVersionId
938  isSealed
939  isImplemented
940  hasConverged
941  image
942  reason
943  sdl
944  dbSchema
945  restEndpoints
946  proceduralGeneratedSdl
947  proceduralGeneratedDbSchema
948  signature
949  shouldFix {
950    id
951    shortDescription
952    severity
953  }
954  affordances {
955    ...ServicesAffordanceFields
956  }
957}
958    ${me}`,ts=d`
959    fragment ConvergenceBreach on ServicesContractBreach {
960  id
961  shortDescription
962  severity
963  reproduction
964  analysis
965  testId
966  aboutOfferId
967  aboutConsumptionId
968  aboutTestId
969  breachReason
970  isFixed
971  isRelevant
972  detectedIn {
973    ...ServicesPatchRefFields
974  }
975  hasBeenFixedIn {
976    ...ServicesPatchRefFields
977  }
978  shouldBeFixedBy {
979    ...ServicesPatchRefFields
980  }
981  irrelevantAfter {
982    ...ServicesMinorRefFields
983  }
984  affordances {
985    ...ServicesTestAffordance
986  }
987}
988    ${ti}
989${zn}
990${ni}`,M_=d`
991    fragment ConvergencePatch on ServicesPatchVersionSummary {
992  id
993  number
994  versionLabel
995}
996    `,L_=d`
997    fragment ConvergenceTest on ServicesE2eTest {
998  id
999  title
1000  coversBreachIds
1001}
1002    `,j_=d`
1003    fragment ConvergenceAboutOffer on ServicesOffer {
1004  id
1005  type
1006  naturalKey
1007}
1008    `,U_=d`
1009    fragment ConvergenceAboutConsumption on ServicesConsumption {
1010  id
1011  consumes {
1012    offerId
1013    naturalKey
1014    providerServiceName
1015  }
1016}
1017    `,$_=d`
1018    fragment ServiceSealSnapshot on ServicesMinorVersion {
1019  id
1020  versionLabel
1021  functionalSpec
1022  permissions
1023  parentMinorVersion {
1024    ...ServicesMinorRefFields
1025  }
1026}
1027    ${zn}`;d`
1028    fragment NotificationReadAt on Notification {
1029  readAt
1030}
1031    `;const x_=d`
1032    mutation SubmitContact($input: SubmitContactInput!) {
1033  websiteSubmitContact(input: $input)
1034}
1035    `;function pj(t){const e={...g,...t};return v(x_,e)}
1035const F_=d`
1036    mutation SubmitContactAsMember($input: SubmitContactAsMemberInput!) {
1037  websiteSubmitContactAsMember(input: $input)
1038}
1039    `;function mj(t){const e={...g,...t};return v(F_,e)}d`
1040    query Health {
1041  __typename
1042}
1043    `;const Tr=d`
1044    query Group($id: ID!) {
1045  identityGroup(id: $id) {
1046    id
1047    organizationId
1048    name
1049    isSystem
1050    createdAt
1051  }
1052}
1053    `,hj=d`
1054    query Groups($orgId: ID!) {
1055  identityGroups(orgId: $orgId) {
1056    id
1057    organizationId
1058    name
1059    isSystem
1060    createdAt
1061  }
1062}
1063    `,gj=d`
1064    query GroupMembers($groupId: ID!) {
1065  identityGroupMembers(groupId: $groupId) {
1066    groupId
1067    userId
1068  }
1069}
1070    `,H_=d`
1071    mutation CreateGroup($input: CreateGroupInput!) {
1072  identityCreateGroup(input: $input)
1073}
1074    `;d`
1075    mutation DeleteGroup($groupId: ID!) {
1076  identityDeleteGroup(groupId: $groupId)
1077}
1078    `;d`
1079    mutation AddGroupMember($groupId: ID!, $userId: ID!) {
1080  identityAddGroupMember(groupId: $groupId, userId: $userId)
1081}
1082    `;d`
1083    mutation RenameGroup($groupId: ID!, $newName: String!) {
1084  identityRenameGroup(groupId: $groupId, newName: $newName)
1085}
1086    `;d`
1087    mutation RemoveGroupMember($groupId: ID!, $userId: ID!) {
1088  identityRemoveGroupMember(groupId: $groupId, userId: $userId)
1089}
1090    `;const fj=d`
1091    query GroupPermissions($groupId: ID!) {
1092  identityGroupScopes(groupId: $groupId)
1093  identityGroupRoles(groupId: $groupId)
1094}
1095    `;d`
1096    mutation GrantGroupScope($orgId: ID!, $groupId: ID!, $scope: String!) {
1097  identityGrantGroupScope(orgId: $orgId, groupId: $groupId, scope: $scope)
1098}
1099    `;d`
1100    mutation RevokeGroupScope($orgId: ID!, $groupId: ID!, $scope: String!) {
1101  identityRevokeGroupScope(orgId: $orgId, groupId: $groupId, scope: $scope)
1102}
1103    `;d`
1104    mutation GrantGroupRole($orgId: ID!, $groupId: ID!, $role: String!) {
1105  identityGrantGroupRole(orgId: $orgId, groupId: $groupId, role: $role)
1106}
1107    `;d`
1108    mutation RevokeGroupRole($orgId: ID!, $groupId: ID!, $role: String!) {
1109  identityRevokeGroupRole(orgId: $orgId, groupId: $groupId, role: $role)
1110}
1111    `;const vj=d`
1112    query GroupView($id: ID!) {
1113  identityGroupView(id: $id) {
1114    group {
1115      id
1116      organizationId
1117      name
1118      isSystem
1119      createdAt
1120    }
1121    affordances {
1122      actions {
1123        action
1124        allowed
1125        reasonCode
1126        params
1127      }
1128    }
1129  }
1130}
1131    `,z_=d`
1132    mutation StartImpersonation($targetUserId: ID!) {
1133  identityStartImpersonation(targetUserId: $targetUserId)
1134}
1135    `,q_=d`
1136    mutation StopImpersonation {
1137  identityStopImpersonation
1138}
1139    `;d`
1140    subscription ServiceAccountsChanged {
1141  identityServiceAccountsChanged {
1142    event {
1143      eventType
1144    }
1145    entity {
1146      id
1147      name
1148      description
1149      createdAt
1150      affordances {
1151        action
1152        allowed
1153        reasonCode
1154        params
1155      }
1156    }
1157  }
1158}
1159    `;d`
1160    subscription ServiceAccountKeysChanged($serviceAccountId: ID!) {
1161  identityServiceAccountKeysChanged(serviceAccountId: $serviceAccountId) {
1162    event {
1163      eventType
1164    }
1165    entity {
1166      id
1167      serviceAccountId
1168      tokenPrefix
1169      createdAt
1170      revokedAt
1171      affordances {
1172        action
1173        allowed
1174        reasonCode
1175        params
1176      }
1177    }
1178  }
1179}
1180    `;d`
1181    subscription MyPatsChanged {
1182  identityMyPatsChanged {
1183    event {
1184      eventType
1185    }
1186    entity {
1187      id
1188      name
1189      tokenPrefix
1190      expiresAt
1191      revokedAt
1192      lastUsedAt
1193      createdAt
1194      affordances {
1195        action
1196        allowed
1197        reasonCode
1198        params
1199      }
1200    }
1201  }
1202}
1203    `;d`
1204    subscription GroupChanged($groupId: ID!) {
1205  identityGroupChanged(groupId: $groupId) {
1206    event {
1207      eventType
1208    }
1209    entity {
1210      id
1211      organizationId
1212      name
1213      isSystem
1214      createdAt
1215    }
1216    affordances {
1217      action
1218      allowed
1219      reasonCode
1220      params
1221    }
1222  }
1223}
1224    `;d`
1225    subscription GroupsChanged($orgId: ID!) {
1226  identityGroupsChanged(orgId: $orgId) {
1227    event {
1228      eventType
1229    }
1230    entity {
1231      id
1232      organizationId
1233      name
1234      isSystem
1235      createdAt
1236    }
1237  }
1238}
1239    `;d`
1240    subscription GroupMembersChanged($groupId: ID!) {
1241  identityGroupMembersChanged(groupId: $groupId) {
1242    event {
1243      eventType
1244    }
1245    entity {
1246      groupId
1247      userId
1248    }
1249  }
1250}
1251    `;d`
1252    subscription GroupPermissionsChanged($groupId: ID!) {
1253  identityGroupPermissionsChanged(groupId: $groupId) {
1254    scopes
1255    roles
1256  }
1257}
1258    `;d`
1259    subscription OrganizationChanged($orgId: ID!) {
1260  identityOrganizationChanged(orgId: $orgId) {
1261    event {
1262      eventType
1263    }
1264    organization {
1265      id
1266      name
1267      abbreviation
1268      countryCode
1269      status
1270      logoUrl
1271      websiteUrl
1272      description {
1273        primaryLocale
1274        entries {
1275          locale
1276          content
1277        }
1278      }
1279      membershipPolicy
1280      createdAt
1281    }
1282    affordances {
1283      actions {
1284        action
1285        allowed
1286        reasonCode
1287        params
1288      }
1289      allowedTransitions
1290    }
1291  }
1292}
1293    `;const yj=d`
1294    subscription OrganizationsChanged {
1295  identityOrganizationsChanged {
1296    id
1297    name
1298    abbreviation
1299    countryCode
1300    status
1301    logoUrl
1302    websiteUrl
1303    createdAt
1304  }
1305}
1306    `;d`
1307    subscription OrganizationDomainsChanged($orgId: ID!) {
1308  identityOrganizationDomainsChanged(orgId: $orgId) {
1309    event {
1310      eventType
1311    }
1312    entity {
1313      id
1314      organizationId
1315      domain
1316      status
1317      isPrimary
1318      createdAt
1319      affordances {
1320        action
1321        allowed
1322        reasonCode
1323        params
1324      }
1325    }
1326  }
1327}
1328    `;d`
1329    subscription OrganizationEntitlementsChanged($orgId: ID!) {
1330  identityOrganizationEntitlementsChanged(orgId: $orgId)
1331}
1332    `;d`
1333    subscription PendingDomainClaimsChanged {
1334  identityPendingDomainClaimsChanged {
1335    organizationName
1336    requestedBy
1337    domain {
1338      id
1339      organizationId
1340      domain
1341      status
1342      isPrimary
1343      createdAt
1344      affordances {
1345        action
1346        allowed
1347        reasonCode
1348        params
1349      }
1350    }
1351  }
1352}
1353    `;d`
1354    subscription OrgMembersChanged($orgId: ID!) {
1355  identityOrgMembersChanged(orgId: $orgId) {
1356    event {
1357      eventType
1358    }
1359    entity {
1360      user {
1361        id
1362        personId
1363        organizationId
1364        email
1365        isAdmin
1366        firstName
1367        lastName
1368        avatarUrl
1369        lastLoginAt
1370        groupsCount
1371        deactivatedAt
1372        disabledAt
1373        createdAt
1374        affordances(orgId: $orgId) {
1375          action
1376          allowed
1377          reasonCode
1378          params
1379        }
1380      }
1381      joinedAt
1382      affordances {
1383        action
1384        allowed
1385        reasonCode
1386        params
1387      }
1388    }
1389  }
1390}
1391    `;const V_=d`
1392    subscription MeChanged {
1393  identityMeChanged {
1394    event {
1395      eventType
1396    }
1397    entity {
1398      id
1399      personId
1400      organizationId
1401      email
1402      isAdmin
1403      isPlatformOrg
1404      firstName
1405      lastName
1406      preferredLocale
1407      avatarUrl
1408      deactivatedAt
1409      createdAt
1410      authorizedScopes
1411      platformOrgId
1412    }
1413    affordances {
1414      action
1415      allowed
1416      reasonCode
1417      params
1418    }
1419  }
1420}
1421    `;d`
1422    subscription UserChanged($userId: ID!, $orgId: ID) {
1423  identityUserChanged(userId: $userId) {
1424    event {
1425      eventType
1426    }
1427    entity {
1428      id
1429      personId
1430      organizationId
1431      email
1432      isAdmin
1433      firstName
1434      lastName
1435      avatarUrl
1436      lastLoginAt
1437      groupsCount
1438      deactivatedAt
1439      disabledAt
1440      createdAt
1441      affordances(orgId: $orgId) {
1442        action
1443        allowed
1444        reasonCode
1445        params
1446      }
1447    }
1448  }
1449}
1450    `;d`
1451    subscription UserScopesChanged($userId: ID!, $orgId: ID!) {
1452  identityUserScopesChanged(userId: $userId, orgId: $orgId) {
1453    event {
1454      eventType
1455    }
1456    entity {
1457      userId
1458      orgId
1459      permissions {
1460        scopes
1461        roles
1462        resolvedScopes
1463      }
1464    }
1465  }
1466}
1467    `;d`
1468    subscription GuestsChanged {
1469  identityGuestsChanged {
1470    id
1471    personId
1472    organizationId
1473    email
1474    isAdmin
1475    firstName
1476    lastName
1477    avatarUrl
1478    lastLoginAt
1479    groupsCount
1480    deactivatedAt
1481    disabledAt
1482    createdAt
1483  }
1484}
1485    `;d`
1486    query OrgMembershipCandidates($orgId: ID!, $first: Int, $after: ID) {
1487  identityOrgMembershipCandidates(orgId: $orgId, first: $first, after: $after) {
1488    edges {
1489      cursor
1490      node {
1491        organizationId
1492        userId
1493        email
1494        matchedDomain
1495        createdAt
1496        affordances {
1497          action
1498          allowed
1499          reasonCode
1500          params
1501        }
1502      }
1503    }
1504    pageInfo {
1505      hasNextPage
1506      endCursor
1507    }
1508  }
1509}
1510    `;d`
1511    subscription OrgMembershipCandidatesChanged($orgId: ID!) {
1512  identityOrgMembershipCandidatesChanged(orgId: $orgId) {
1513    organizationId
1514    userId
1515    email
1516    matchedDomain
1517    createdAt
1518    affordances {
1519      action
1520      allowed
1521      reasonCode
1522      params
1523    }
1524  }
1525}
1526    `;d`
1527    mutation ApproveMembershipCandidacy($orgId: ID!, $userId: ID!) {
1528  identityApproveMembershipCandidacy(orgId: $orgId, userId: $userId)
1529}
1530    `;d`
1531    mutation RejectMembershipCandidacy($orgId: ID!, $userId: ID!) {
1532  identityRejectMembershipCandidacy(orgId: $orgId, userId: $userId)
1533}
1534    `;d`
1535    query MyOrgInvitations {
1536  identityMyOrgInvitations {
1537    organizationId
1538    organizationName
1539    userId
1540    invitedBy
1541    invitedAt
1542    affordances {
1543      action
1544      allowed
1545      reasonCode
1546      params
1547    }
1548  }
1549}
1550    `;d`
1551    subscription MyOrgInvitationsChanged {
1552  identityMyOrgInvitationsChanged {
1553    organizationId
1554    organizationName
1555    userId
1556    invitedBy
1557    invitedAt
1558    affordances {
1559      action
1560      allowed
1561      reasonCode
1562      params
1563    }
1564  }
1565}
1566    `;d`
1567    query OrgPendingInvitations($orgId: ID!, $first: Int, $after: ID) {
1568  identityOrgPendingInvitations(orgId: $orgId, first: $first, after: $after) {
1569    edges {
1570      cursor
1571      node {
1572        organizationId
1573        organizationName
1574        userId
1575        invitedBy
1576        invitedAt
1577        affordances {
1578          action
1579          allowed
1580          reasonCode
1581          params
1582        }
1583      }
1584    }
1585    pageInfo {
1586      hasNextPage
1587      endCursor
1588    }
1589  }
1590}
1591    `;d`
1592    subscription OrgPendingInvitationsChanged($orgId: ID!) {
1593  identityOrgPendingInvitationsChanged(orgId: $orgId) {
1594    organizationId
1595    organizationName
1596    userId
1597    invitedBy
1598    invitedAt
1599    affordances {
1600      action
1601      allowed
1602      reasonCode
1603      params
1604    }
1605  }
1606}
1607    `;d`
1608    mutation InviteUserToOrg($orgId: ID!, $userId: ID!) {
1609  identityInviteUserToOrg(orgId: $orgId, userId: $userId)
1610}
1611    `;d`
1612    mutation AcceptOrgInvitation($orgId: ID!) {
1613  identityAcceptOrgInvitation(orgId: $orgId)
1614}
1615    `;d`
1616    mutation DeclineOrgInvitation($orgId: ID!) {
1617  identityDeclineOrgInvitation(orgId: $orgId)
1618}
1619    `;d`
1620    mutation RevokeOrgInvitation($orgId: ID!, $userId: ID!) {
1621  identityRevokeOrgInvitation(orgId: $orgId, userId: $userId)
1622}
1623    `;const bj=d`
1624    query OrgActivity($orgId: ID!, $first: Int, $before: ID) {
1625  identityOrganizationActivity(orgId: $orgId, first: $first, before: $before) {
1626    hasPreviousPage
1627    nodes {
1628      id
1629      eventType
1630      aggregateType
1631      aggregateId
1632      payload
1633      createdAt
1634      actorName
1635      actorEmail
1636      actorIsPlatform
1637    }
1638  }
1639}
1640    `;d`
1641    subscription OrgActivityChanged($orgId: ID!) {
1642  identityOrganizationActivityChanged(orgId: $orgId) {
1643    entity {
1644      id
1645      eventType
1646      aggregateType
1647      aggregateId
1648      payload
1649      createdAt
1650      actorName
1651      actorEmail
1652      actorIsPlatform
1653    }
1654  }
1655}
1656    `;const B_=d`
1657    query Organizations {
1658  identityOrganizations {
1659    id
1660    name
1661    abbreviation
1662    countryCode
1663    websiteUrl
1664    logoUrl
1665    status
1666    createdAt
1667  }
1668}
1669    `;function Sj(t){const e={...g,...t};return V(B_,e)}const Mn=d`
1670    query Organization($id: ID!) {
1671  identityOrganization(id: $id) {
1672    id
1673    name
1674    abbreviation
1675    countryCode
1676    websiteUrl
1677    logoUrl
1678    status
1679    createdAt
1680  }
1681}
1682    `;function Ij(t){const e={...g,...t};return V(Mn,e)}const _j=d`
1683    query OrganizationView($id: ID!) {
1684  identityOrganizationView(id: $id) {
1685    organization {
1686      id
1687      name
1688      abbreviation
1689      countryCode
1690      status
1691      logoUrl
1692      websiteUrl
1693      description {
1694        primaryLocale
1695        entries {
1696          locale
1697          content
1698        }
1699      }
1700      membershipPolicy
1701      createdAt
1702    }
1703    affordances {
1704      actions {
1705        action
1706        allowed
1707        reasonCode
1708        params
1709      }
1710      allowedTransitions
1711    }
1712  }
1713}
1714    `,G_=d`
1715    mutation CreateOrganization($input: CreateOrgInput!) {
1716  identityCreateOrganization(input: $input)
1717}
1718    `;d`
1719    mutation PublishOrganization($orgId: ID!) {
1720  identityPublishOrganization(orgId: $orgId)
1721}
1722    `;d`
1723    mutation ActivateOrganization($orgId: ID!) {
1724  identityActivateOrganization(orgId: $orgId)
1725}
1726    `;d`
1727    mutation SuspendOrganization($orgId: ID!) {
1728  identitySuspendOrganization(orgId: $orgId)
1729}
1730    `;d`
1731    mutation ReactivateOrganization($orgId: ID!) {
1732  identityReactivateOrganization(orgId: $orgId)
1733}
1734    `;d`
1735    mutation ArchiveOrganization($orgId: ID!) {
1736  identityArchiveOrganization(orgId: $orgId)
1737}
1738    `;d`
1739    mutation DearchiveOrganization($orgId: ID!) {
1740  identityDearchiveOrganization(orgId: $orgId)
1741}
1742    `;d`
1743    mutation DeleteOrganization($orgId: ID!) {
1744  identityDeleteOrganization(orgId: $orgId)
1745}
1746    `;d`
1747    mutation RenameOrganization($orgId: ID!, $newName: String!) {
1748  identityRenameOrganization(orgId: $orgId, newName: $newName)
1749}
1750    `;d`
1751    mutation SetOrganizationAbbreviation($orgId: ID!, $abbreviation: String!) {
1752  identitySetOrganizationAbbreviation(orgId: $orgId, abbreviation: $abbreviation)
1753}
1754    `;d`
1755    mutation SetOrganizationWebsite($orgId: ID!, $websiteUrl: String) {
1756  identitySetOrganizationWebsite(orgId: $orgId, websiteUrl: $websiteUrl)
1757}
1758    `;d`
1759    mutation SetOrgDescription($orgId: ID!, $description: GqlLocalizedInput) {
1760  identitySetOrgDescription(orgId: $orgId, description: $description)
1761}
1762    `;d`
1763    mutation SetOrgMembershipPolicy($orgId: ID!, $policy: MembershipPolicy!) {
1764  identitySetOrgMembershipPolicy(orgId: $orgId, policy: $policy)
1765}
1766    `;const Cj=d`
1767    query OrganizationDomains($orgId: ID!) {
1768  identityOrganizationDomains(orgId: $orgId) {
1769    id
1770    organizationId
1771    domain
1772    status
1773    isPrimary
1774    createdAt
1775    affordances {
1776      action
1777      allowed
1778      reasonCode
1779      params
1780    }
1781  }
1782}
1783    `;d`
1784    mutation AddOrgDomain($id: ID!, $orgId: ID!, $domain: String!, $isPrimary: Boolean) {
1785  identityAddOrgDomain(
1786    id: $id
1787    orgId: $orgId
1788    domain: $domain
1789    isPrimary: $isPrimary
1790  )
1791}
1792    `;d`
1793    mutation RemoveOrgDomain($domainId: ID!) {
1794  identityRemoveOrgDomain(domainId: $domainId)
1795}
1796    `;const Tj=d`
1797    query OrganizationEntitlements($orgId: ID!) {
1798  identityOrganizationEntitlements(orgId: $orgId)
1799}
1800    `;d`
1801    mutation GrantEntitlement($orgId: ID!, $scope: String!) {
1802  identityGrantEntitlement(orgId: $orgId, scope: $scope)
1803}
1804    `;d`
1805    mutation RevokeEntitlement($orgId: ID!, $scope: String!) {
1806  identityRevokeEntitlement(orgId: $orgId, scope: $scope)
1807}
1808    `;const wj=d`
1809    query PendingDomainClaims($first: Int, $after: ID) {
1810  identityPendingDomainClaims(first: $first, after: $after) {
1811    edges {
1812      cursor
1813      node {
1814        organizationName
1815        requestedBy
1816        domain {
1817          id
1818          organizationId
1819          domain
1820          status
1821          isPrimary
1822          createdAt
1823          affordances {
1824            action
1825            allowed
1826            reasonCode
1827            params
1828          }
1829        }
1830      }
1831    }
1832    pageInfo {
1833      hasNextPage
1834      endCursor
1835    }
1836  }
1837}
1838    `;d`
1839    mutation ApproveDomainClaim($domainId: ID!) {
1840  identityApproveDomainClaim(domainId: $domainId)
1841}
1842    `;d`
1843    mutation RejectDomainClaim($domainId: ID!) {
1844  identityRejectDomainClaim(domainId: $domainId)
1845}
1846    `;d`
1847    query PersonalAccessTokens {
1848  identityPersonalAccessTokens {
1849    id
1850    name
1851    tokenPrefix
1852    expiresAt
1853    revokedAt
1854    lastUsedAt
1855    createdAt
1856    affordances {
1857      action
1858      allowed
1859      reasonCode
1860      params
1861    }
1862  }
1863}
1864    `;d`
1865    mutation CreatePersonalAccessToken($input: CreatePatInput!) {
1866  identityCreatePersonalAccessToken(input: $input) {
1867    rawToken
1868  }
1869}
1870    `;d`
1871    mutation RevokePersonalAccessToken($id: ID!) {
1872  identityRevokePersonalAccessToken(id: $id)
1873}
1874    `;d`
1875    query AvailableScopes($orgId: ID) {
1876  identityAvailableScopes(orgId: $orgId) {
1877    scope
1878    labelKey
1879    descriptionKey
1880    owningService
1881    platformOnly
1882    audience
1883    withdrawn
1884    manuallyWithdrawn
1885    stale
1886    withdrawnAt
1887    affordances {
1888      action
1889      allowed
1890      reasonCode
1891      params
1892    }
1893    grantAffordances {
1894      action
1895      allowed
1896      reasonCode
1897      params
1898    }
1899  }
1900}
1901    `;d`
1902    subscription ScopeRegistryChanged($orgId: ID) {
1903  identityScopeRegistryChanged(orgId: $orgId) {
1904    event {
1905      eventType
1906    }
1907    entity {
1908      scope
1909      labelKey
1910      descriptionKey
1911      owningService
1912      platformOnly
1913      audience
1914      withdrawn
1915      manuallyWithdrawn
1916      stale
1917      withdrawnAt
1918      affordances {
1919        action
1920        allowed
1921        reasonCode
1922        params
1923      }
1924      grantAffordances {
1925        action
1926        allowed
1927        reasonCode
1928        params
1929      }
1930    }
1931  }
1932}
1933    `;d`
1934    query ScopeUsage($scope: String!) {
1935  identityScopeUsage(scope: $scope) {
1936    organizations {
1937      orgId
1938      orgName
1939      entitled
1940      memberGrants
1941      groupGrants
1942    }
1943    serviceAccounts
1944  }
1945}
1946    `;d`
1947    query ScopeNarrowingImpact($scope: String!, $audience: ScopeAudience!, $platformOnly: Boolean!) {
1948  identityScopeNarrowingImpact(
1949    scope: $scope
1950    audience: $audience
1951    platformOnly: $platformOnly
1952  ) {
1953    scope
1954    audience
1955    platformOnly
1956    conflictingHolders
1957    organizations {
1958      orgId
1959      orgName
1960      entitled
1961      memberGrants
1962      groupGrants
1963    }
1964    serviceAccounts
1965    affordances {
1966      action
1967      allowed
1968      reasonCode
1969      params
1970    }
1971  }
1972}
1973    `;d`
1974    mutation SetScopeAudience($scope: String!, $audience: ScopeAudience!) {
1975  identitySetScopeAudience(scope: $scope, audience: $audience)
1976}
1977    `;d`
1978    mutation SetScopePlatformRestriction($scope: String!, $platformOnly: Boolean!) {
1979  identitySetScopePlatformRestriction(scope: $scope, platformOnly: $platformOnly)
1980}
1981    `;d`
1982    mutation WithdrawScope($scope: String!) {
1983  identityWithdrawScope(scope: $scope)
1984}
1985    `;d`
1986    mutation LiftScopeWithdrawal($scope: String!) {
1987  identityLiftScopeWithdrawal(scope: $scope)
1988}
1989    `;d`
1990    mutation RevokeScopeEverywhere($scope: String!) {
1991  identityRevokeScopeEverywhere(scope: $scope)
1992}
1993    `;d`
1994    mutation ClearConflictingScopeHolders($scope: String!, $audience: ScopeAudience!, $platformOnly: Boolean!) {
1995  identityClearConflictingScopeHolders(
1996    scope: $scope
1997    audience: $audience
1998    platformOnly: $platformOnly
1999  )
2000}
2001    `;d`
2002    mutation DeleteScope($scope: String!) {
2003  identityDeleteScope(scope: $scope)
2004}
2005    `;d`
2006    query ServiceAccounts {
2007  identityServiceAccounts {
2008    id
2009    name
2010    description
2011    createdAt
2012    affordances {
2013      action
2014      allowed
2015      reasonCode
2016      params
2017    }
2018  }
2019}
2020    `;d`
2021    query ServiceAccount($id: ID!) {
2022  identityServiceAccount(id: $id) {
2023    id
2024    name
2025    description
2026    createdAt
2027    affordances {
2028      action
2029      allowed
2030      reasonCode
2031      params
2032    }
2033  }
2034}
2035    `;d`
2036    query ServiceAccountKeys($serviceAccountId: ID!) {
2037  identityServiceAccountKeys(serviceAccountId: $serviceAccountId) {
2038    id
2039    serviceAccountId
2040    tokenPrefix
2041    createdAt
2042    revokedAt
2043    affordances {
2044      action
2045      allowed
2046      reasonCode
2047      params
2048    }
2049  }
2050}
2051    `;d`
2052    query ServiceAccountScopes($serviceAccountId: ID!) {
2053  identityServiceAccountScopes(serviceAccountId: $serviceAccountId)
2054}
2055    `;d`
2056    mutation CreateServiceAccount($input: CreateServiceAccountInput!) {
2057  identityCreateServiceAccount(input: $input)
2058}
2059    `;d`
2060    mutation RenameServiceAccount($id: ID!, $name: String!) {
2061  identityRenameServiceAccount(id: $id, name: $name)
2062}
2063    `;d`
2064    mutation SetServiceAccountDescription($id: ID!, $description: String!) {
2065  identitySetServiceAccountDescription(id: $id, description: $description)
2066}
2067    `;d`
2068    mutation ClearServiceAccountDescription($id: ID!) {
2069  identityClearServiceAccountDescription(id: $id)
2070}
2071    `;d`
2072    mutation GrantServiceAccountScope($serviceAccountId: ID!, $scope: String!) {
2073  identityGrantServiceAccountScope(
2074    serviceAccountId: $serviceAccountId
2075    scope: $scope
2076  )
2077}
2078    `;d`
2079    mutation RevokeServiceAccountScope($serviceAccountId: ID!, $scope: String!) {
2080  identityRevokeServiceAccountScope(
2081    serviceAccountId: $serviceAccountId
2082    scope: $scope
2083  )
2084}
2085    `;d`
2086    mutation CreateServiceAccountKey($input: CreateServiceAccountKeyInput!) {
2087  identityCreateServiceAccountKey(input: $input) {
2088    rawToken
2089  }
2090}
2091    `;d`
2092    mutation RevokeServiceAccountKey($id: ID!) {
2093  identityRevokeServiceAccountKey(id: $id)
2094}
2095    `;d`
2096    mutation RequestPersonAvatarUpload($personId: ID!, $mime: String!) {
2097  identityRequestPersonAvatarUpload(personId: $personId, mime: $mime) {
2098    uploadUrl
2099    objectKey
2100    expiresAt
2101  }
2102}
2103    `;d`
2104    mutation SetPersonAvatar($personId: ID!, $objectKey: String!, $mime: String!, $size: Int!) {
2105  identitySetPersonAvatar(
2106    personId: $personId
2107    objectKey: $objectKey
2108    mime: $mime
2109    size: $size
2110  )
2111}
2112    `;d`
2113    mutation ClearPersonAvatar($personId: ID!) {
2114  identityClearPersonAvatar(personId: $personId)
2115}
2116    `;d`
2117    mutation RequestOrgLogoUpload($orgId: ID!, $mime: String!) {
2118  identityRequestOrgLogoUpload(orgId: $orgId, mime: $mime) {
2119    uploadUrl
2120    objectKey
2121    expiresAt
2122  }
2123}
2124    `;d`
2125    mutation SetOrganizationLogo($orgId: ID!, $objectKey: String!, $mime: String!, $size: Int!) {
2126  identitySetOrganizationLogo(
2127    orgId: $orgId
2128    objectKey: $objectKey
2129    mime: $mime
2130    size: $size
2131  )
2132}
2133    `;d`
2134    mutation ClearOrganizationLogo($orgId: ID!) {
2135  identityClearOrganizationLogo(orgId: $orgId)
2136}
2137    `;const K_=d`
2138    mutation CreatePerson($input: CreatePersonInput!) {
2139  identityCreatePerson(input: $input)
2140}
2141    `,W_=d`
2142    mutation CreateUser($input: CreateUserInput!) {
2143  identityCreateUser(input: $input)
2144}
2145    `;d`
2146    mutation DisableUser($userId: ID!) {
2147  identityDisableUser(userId: $userId)
2148}
2149    `;d`
2150    mutation EnableUser($userId: ID!) {
2151  identityEnableUser(userId: $userId)
2152}
2153    `;d`
2154    mutation PromoteAdmin($userId: ID!, $orgId: ID!) {
2155  identityPromoteAdmin(userId: $userId, orgId: $orgId)
2156}
2157    `;d`
2158    mutation DemoteAdmin($userId: ID!, $orgId: ID!) {
2159  identityDemoteAdmin(userId: $userId, orgId: $orgId)
2160}
2161    `;d`
2162    mutation DeactivateMember($orgId: ID!, $userId: ID!) {
2163  identityDeactivateMember(orgId: $orgId, userId: $userId)
2164}
2165    `;d`
2166    mutation ReactivateMember($orgId: ID!, $userId: ID!) {
2167  identityReactivateMember(orgId: $orgId, userId: $userId)
2168}
2169    `;d`
2170    mutation GrantScope($userId: ID!, $orgId: ID!, $scope: String!) {
2171  identityGrantScope(userId: $userId, orgId: $orgId, scope: $scope)
2172}
2173    `;d`
2174    mutation RevokeScope($userId: ID!, $orgId: ID!, $scope: String!) {
2175  identityRevokeScope(userId: $userId, orgId: $orgId, scope: $scope)
2176}
2177    `;d`
2178    mutation GrantRole($userId: ID!, $orgId: ID!, $role: String!) {
2179  identityGrantRole(userId: $userId, orgId: $orgId, role: $role)
2180}
2181    `;d`
2182    mutation RevokeRole($userId: ID!, $orgId: ID!, $role: String!) {
2183  identityRevokeRole(userId: $userId, orgId: $orgId, role: $role)
2184}
2185    `;d`
2186    mutation SetPersonFirstName($personId: ID!, $firstName: String!) {
2187  identitySetPersonFirstName(personId: $personId, firstName: $firstName)
2188}
2189    `;d`
2190    mutation SetPersonLastName($personId: ID!, $lastName: String!) {
2191  identitySetPersonLastName(personId: $personId, lastName: $lastName)
2192}
2193    `;d`
2194    mutation SetPersonLocale($personId: ID!, $locale: String!) {
2195  identitySetPersonLocale(personId: $personId, locale: $locale)
2196}
2197    `;const su=d`
2198    query Users($orgId: ID, $guestsOnly: Boolean) {
2199  identityUsers(orgId: $orgId, guestsOnly: $guestsOnly) {
2200    id
2201    personId
2202    organizationId
2203    email
2204    isAdmin
2205    firstName
2206    lastName
2207    avatarUrl
2208    lastLoginAt
2209    groupsCount
2210    deactivatedAt
2211    disabledAt
2212    createdAt
2213  }
2214}
2215    `;function kj(t){const e={...g,...t};return V(su,e)}const cu=d`
2216    query OrgMembers($orgId: ID!) {
2217  identityOrgMembers(orgId: $orgId) {
2218    user {
2219      id
2220      personId
2221      organizationId
2222      email
2223      isAdmin
2224      firstName
2225      lastName
2226      avatarUrl
2227      lastLoginAt
2228      groupsCount
2229      deactivatedAt
2230      disabledAt
2231      createdAt
2232      affordances(orgId: $orgId) {
2233        action
2234        allowed
2235        reasonCode
2236        params
2237      }
2238    }
2239    joinedAt
2240    affordances {
2241      action
2242      allowed
2243      reasonCode
2244      params
2245    }
2246  }
2247}
2248    `;function Aj(t){const e={...g,...t};return V(cu,e)}const wr=d`
2249    query User($id: ID!) {
2250  identityUser(id: $id) {
2251    id
2252    personId
2253    organizationId
2254    email
2255    isAdmin
2256    firstName
2257    lastName
2258    avatarUrl
2259    lastLoginAt
2260    groupsCount
2261    deactivatedAt
2262    disabledAt
2263    createdAt
2264  }
2265}
2266    `,sa=d`
2267    query UserPermissions($userId: ID!, $orgId: ID!) {
2268  identityUserScopes(userId: $userId, orgId: $orgId)
2269  identityUserRoles(userId: $userId, orgId: $orgId)
2270  identityResolveScopes(userId: $userId, orgId: $orgId)
2271}
2272    `,qn=d`
2273    query Me {
2274  identityMe {
2275    id
2276    personId
2277    organizationId
2278    email
2279    isAdmin
2280    isPlatformOrg
2281    firstName
2282    lastName
2283    preferredLocale
2284    avatarUrl
2285    deactivatedAt
2286    createdAt
2287    authorizedScopes
2288    platformOrgId
2289    affordances {
2290      action
2291      allowed
2292      reasonCode
2293      params
2294    }
2295  }
2296}
2297    `;function Y_(t){const e={...g,...t};return V(qn,e)}const lu=d`
2298    query UserView($id: ID!, $orgId: ID) {
2299  identityUserView(id: $id) {
2300    user {
2301      id
2302      personId
2303      organizationId
2304      email
2305      isAdmin
2306      firstName
2307      lastName
2308      avatarUrl
2309      lastLoginAt
2310      groupsCount
2311      deactivatedAt
2312      disabledAt
2313      createdAt
2314      affordances(orgId: $orgId) {
2315        action
2316        allowed
2317        reasonCode
2318        params
2319      }
2320    }
2321    affordances(orgId: $orgId) {
2322      actions {
2323        action
2324        allowed
2325        reasonCode
2326        params
2327      }
2328    }
2329  }
2330}
2331    `,J_=d`
2332    query NotifierNotifications($first: Int!, $after: ID) {
2333  notifierNotifications(first: $first, after: $after) {
2334    hasNextPage
2335    nodes {
2336      ...NotificationFields
2337    }
2338  }
2339}
2340    ${Vd}`;function Ej(t){const e={...g,...t};return V(J_,e)}const Q_=d`
2341    query NotifierUnreadCount {
2342  notifierUnreadCount
2343}
2344    `;function Rj(t){const e={...g,...t};return V(Q_,e)}const Pj=d`
2345    subscription NotifierNotificationEvents {
2346  notifierNotificationEvents {
2347    ... on NotificationAdded {
2348      notification {
2349        ...NotificationFields
2350      }
2351    }
2352    ... on NotificationsRead {
2353      ids
2354      readAt
2355    }
2356    ... on NotificationsDeleted {
2357      ids
2358    }
2359  }
2360}
2361    ${Vd}`,X_=d`
2362    mutation NotifierMarkAsRead($notificationId: ID!) {
2363  notifierMarkAsRead(notificationId: $notificationId)
2364}
2365    `;function Dj(t){const e={...g,...t};return v(X_,e)}const Z_=d`
2366    mutation NotifierMarkAllAsRead {
2367  notifierMarkAllAsRead
2368}
2369    `;function Oj(t){const e={...g,...t};return v(Z_,e)}const eC=d`
2370    mutation NotifierDeleteNotification($notificationId: ID!) {
2371  notifierDeleteNotification(notificationId: $notificationId)
2372}
2373    `;function Nj(t){const e={...g,...t};return v(eC,e)}const tC=d`
2374    mutation NotifierDeleteNotifications($ids: [ID!]!) {
2375  notifierDeleteNotifications(ids: $ids)
2376}
2377    `;function Mj(t){const e={...g,...t};return v(tC,e)}const nC=d`
2378    query ProjectsProjects($first: Int, $after: String) {
2379  projectsProjects(first: $first, after: $after) {
2380    edges {
2381      node {
2382        ...ProjectRow
2383      }
2384      cursor
2385    }
2386    pageInfo {
2387      hasNextPage
2388      hasPreviousPage
2389      startCursor
2390      endCursor
2391    }
2392    affordances {
2393      ...Aff
2394    }
2395  }
2396}
2397    ${s_}
2398${xr}`;function Lj(t){const e={...g,...t};return V(nC,e)}const rC=d`
2399    query ProjectsProject($id: UUID!) {
2400  projectsProject(id: $id) {
2401    ...ProjectFull
2402  }
2403}
2404    ${Bd}`;function jj(t){const e={...g,...t};return V(rC,e)}const Uj=d`
2405    subscription ProjectsProjectChanged($projectId: UUID) {
2406  projectsProjectChanged(projectId: $projectId) {
2407    event {
2408      factType
2409      payload
2410      actorId
2411      occurredAt
2412    }
2413    entity {
2414      ...ProjectFull
2415    }
2416    affordances {
2417      ...Aff
2418    }
2419  }
2420}
2421    ${Bd}
2422${xr}`,oC=d`
2423    mutation ProjectsCreateProject($input: ProjectsCreateProjectInput!) {
2424  projectsCreateProject(input: $input) {
2425    success
2426  }
2427}
2428    `;function $j(t){const e={...g,...t};return v(oC,e)}const iC=d`
2429    mutation ProjectsRenameProject($projectId: UUID!, $name: String!) {
2430  projectsRenameProject(projectId: $projectId, name: $name) {
2431    success
2432  }
2433}
2434    `;function xj(t){const e={...g,...t};return v(iC,e)}const aC=d`
2435    mutation ProjectsDescribeProject($projectId: UUID!, $summary: String, $description: GqlLocalizedInput) {
2436  projectsDescribeProject(
2437    projectId: $projectId
2438    summary: $summary
2439    description: $description
2440  ) {
2441    success
2442  }
2443}
2444    `;function Fj(t){const e={...g,...t};return v(aC,e)}const sC=d`
2445    mutation ProjectsChangeProjectType($projectId: UUID!, $type: ProjectsProjectType!) {
2446  projectsChangeProjectType(projectId: $projectId, type: $type) {
2447    success
2448  }
2449}
2450    `;function Hj(t){const e={...g,...t};return v(sC,e)}const cC=d`
2451    mutation ProjectsRescheduleProject($projectId: UUID!, $startDate: Date!, $endDate: Date) {
2452  projectsRescheduleProject(
2453    projectId: $projectId
2454    startDate: $startDate
2455    endDate: $endDate
2456  ) {
2457    success
2458  }
2459}
2460    `;function zj(t){const e={...g,...t};return v(cC,e)}const lC=d`
2461    mutation ProjectsSetProjectRepos($projectId: UUID!, $agentWorkspace: String, $deploymentRepos: [String!]!, $linkedRepos: [String!]) {
2462  projectsSetProjectRepos(
2463    projectId: $projectId
2464    agentWorkspace: $agentWorkspace
2465    deploymentRepos: $deploymentRepos
2466    linkedRepos: $linkedRepos
2467  ) {
2468    success
2469  }
2470}
2471    `;function qj(t){const e={...g,...t};return v(lC,e)}const dC=d`
2472    mutation ProjectsSetVerificationEnvironment($projectId: UUID!, $baseUrl: String!, $pat: String!) {
2473  projectsSetVerificationEnvironment(
2474    projectId: $projectId
2475    baseUrl: $baseUrl
2476    pat: $pat
2477  ) {
2478    success
2479  }
2480}
2481    `;function Vj(t){const e={...g,...t};
2481return v(dC,e)}const uC=d`
2482    mutation ProjectsClearVerificationEnvironment($projectId: UUID!) {
2483  projectsClearVerificationEnvironment(projectId: $projectId) {
2484    success
2485  }
2486}
2487    `;function Bj(t){const e={...g,...t};return v(uC,e)}const pC=d`
2488    mutation ProjectsPublishProject($projectId: UUID!) {
2489  projectsPublishProject(projectId: $projectId) {
2490    success
2491  }
2492}
2493    `;function Gj(t){const e={...g,...t};return v(pC,e)}const mC=d`
2494    mutation ProjectsDeleteProject($projectId: UUID!) {
2495  projectsDeleteProject(projectId: $projectId) {
2496    success
2497  }
2498}
2499    `;function Kj(t){const e={...g,...t};return v(mC,e)}const hC=d`
2500    mutation ProjectsSuspendProject($projectId: UUID!) {
2501  projectsSuspendProject(projectId: $projectId) {
2502    success
2503  }
2504}
2505    `;function Wj(t){const e={...g,...t};return v(hC,e)}const gC=d`
2506    mutation ProjectsResumeProject($projectId: UUID!) {
2507  projectsResumeProject(projectId: $projectId) {
2508    success
2509  }
2510}
2511    `;function Yj(t){const e={...g,...t};return v(gC,e)}const fC=d`
2512    mutation ProjectsCloseProject($projectId: UUID!, $reason: ProjectsClosureReason!) {
2513  projectsCloseProject(projectId: $projectId, reason: $reason) {
2514    success
2515  }
2516}
2517    `;function Jj(t){const e={...g,...t};return v(fC,e)}const vC=d`
2518    mutation ProjectsReopenProject($projectId: UUID!) {
2519  projectsReopenProject(projectId: $projectId) {
2520    success
2521  }
2522}
2523    `;function Qj(t){const e={...g,...t};return v(vC,e)}const yC=d`
2524    mutation ProjectsAddOrgLink($input: ProjectsAddOrgLinkInput!) {
2525  projectsAddOrgLink(input: $input) {
2526    success
2527  }
2528}
2529    `;function Xj(t){const e={...g,...t};return v(yC,e)}const bC=d`
2530    mutation ProjectsEndOrgLink($linkId: UUID!, $endDate: Date!) {
2531  projectsEndOrgLink(linkId: $linkId, endDate: $endDate) {
2532    success
2533  }
2534}
2535    `;function Zj(t){const e={...g,...t};return v(bC,e)}const SC=d`
2536    mutation ProjectsCorrectOrgLink($linkId: UUID!, $startDate: Date!
2536) {
2537  projectsCorrectOrgLink(linkId: $linkId, startDate: $startDate) {
2538    success
2539  }
2540}
2541    `;function eU(t){const e={...g,...t};return v(SC,e)}const IC=d`
2542    mutation ProjectsCorrectOrgLinkWithEnd($linkId: UUID!, $startDate: Date!, $endDate: Date) {
2543  projectsCorrectOrgLink(
2544    linkId: $linkId
2545    startDate: $startDate
2546    endDate: $endDate
2547  ) {
2548    success
2549  }
2550}
2551    `;function tU(t){const e={...g,...t};return v(IC,e)}const _C=d`
2552    mutation ProjectsAnnulOrgLink($linkId: UUID!, $reason: String!) {
2553  projectsAnnulOrgLink(linkId: $linkId, reason: $reason) {
2554    success
2555  }
2556}
2557    `;function nU(t){const e={...g,...t};return v(_C,e)}const CC=d`
2558    mutation ProjectsAssignRole($input: ProjectsAssignRoleInput!) {
2559  projectsAssignRole(input: $input) {
2560    success
2561  }
2562}
2563    `;function rU(t){const e={...g,...t};return v(CC,e)}const TC=d`
2564    mutation ProjectsEndRoleAssignment($assignmentId: UUID!, $endDate: Date!) {
2565  projectsEndRoleAssignment(assignmentId: $assignmentId, endDate: $endDate) {
2566    success
2567  }
2568}
2569    `;function oU(t){const e={...g,...t};return v(TC,e)}const wC=d`
2570    mutation ProjectsCorrectRoleAssignment($assignmentId: UUID!, $role: ProjectsRole!, $startDate: Date!
2570) {
2571  projectsCorrectRoleAssignment(
2572    assignmentId: $assignmentId
2573    role: $role
2574    startDate: $startDate
2575  ) {
2576    success
2577  }
2578}
2579    `;function iU(t){const e={...g,...t};return v(wC,e)}const kC=d`
2580    mutation ProjectsCorrectRoleAssignmentWithEnd($assignmentId: UUID!, $role: ProjectsRole!, $startDate: Date!, $endDate: Date) {
2581  projectsCorrectRoleAssignment(
2582    assignmentId: $assignmentId
2583    role: $role
2584    startDate: $startDate
2585    endDate: $endDate
2586  ) {
2587    success
2588  }
2589}
2590    `;function aU(t){const e={...g,...t};return v(kC,e)}const AC=d`
2591    mutation ProjectsAnnulRoleAssignment($assignmentId: UUID!, $reason: String!) {
2592  projectsAnnulRoleAssignment(assignmentId: $assignmentId, reason: $reason) {
2593    success
2594  }
2595}
2596    `;function sU(t){const e={...g,...t};return v(AC,e)}const EC=d`
2597    mutation ProjectsRegisterStream($input: ProjectsRegisterStreamInput!) {
2598  projectsRegisterStream(input: $input) {
2599    success
2600  }
2601}
2602    `;function cU(t){const e={...g,...t};return v(EC,e)}const RC=d`
2603    mutation ProjectsSetStreamIntent($streamId: UUID!, $intent: String!) {
2604  projectsSetStreamIntent(streamId: $streamId, intent: $intent) {
2605    success
2606  }
2607}
2608    `;function lU(t){const e={...g,...t};return v(RC,e)}const PC=d`
2609    mutation ProjectsSetStreamContract($streamId: UUID!, $subjectSpace: [String!], $retentionLogic: String, $replayable: Boolean, $deliveryGuarantee: ProjectsDeliveryGuarantee, $dedupKey: String) {
2610  projectsSetStreamContract(
2611    streamId: $streamId
2612    subjectSpace: $subjectSpace
2613    retentionLogic: $retentionLogic
2614    replayable: $replayable
2615    deliveryGuarantee: $deliveryGuarantee
2616    dedupKey: $dedupKey
2617  ) {
2618    success
2619  }
2620}
2621    `;function dU(t){const e={...g,...t};return v(PC,e)}const DC=d`
2622    mutation ProjectsSetStreamProvenance($streamId: UUID!, $provenance: ProjectsStreamProvenanceInput) {
2623  projectsSetStreamProvenance(streamId: $streamId, provenance: $provenance) {
2624    success
2625  }
2626}
2627    `;function uU(t){const e={...g,...t};return v(DC,e)}const OC=d`
2628    mutation ProjectsRemoveStream($streamId: UUID!) {
2629  projectsRemoveStream(streamId: $streamId) {
2630    success
2631  }
2632}
2633    `;function pU(t){const e={...g,...t};return v(OC,e)}const NC=d`
2634    query ServicesPatchWorkAutomationRules {
2635  servicesPatchWorkAutomationRules {
2636    ...StackAutomationRuleRow
2637  }
2638}
2639    ${Gd}`;function mU(t){const e={...g,...t};return V(NC,e)}const MC=d`
2640    mutation ServicesCreatePatchWorkAutomationRule($id: UUID!, $block: ServicesPatchWorkBlock!, $runnerType: String!, $priority: Int!, $supportMultiPod: Boolean, $manner: ServicesManner, $frameworkCardinality: Int, $frameworkId: UUID) {
2641  servicesCreatePatchWorkAutomationRule(
2642    id: $id
2643    block: $block
2644    runnerType: $runnerType
2645    priority: $priority
2646    supportMultiPod: $supportMultiPod
2647    manner: $manner
2648    frameworkCardinality: $frameworkCardinality
2649    frameworkId: $frameworkId
2650  ) {
2651    ...ServicesAck
2652  }
2653}
2654    ${b}`;function hU(t){const e={...g,...t};return v(MC,e)}const LC=d`
2655    mutation ServicesUpdatePatchWorkAutomationRule($ruleId: UUID!, $runnerType: String!, $supportMultiPod: Boolean, $manner: ServicesManner, $frameworkCardinality: Int, $frameworkId: UUID) {
2656  servicesUpdatePatchWorkAutomationRule(
2657    ruleId: $ruleId
2658    runnerType: $runnerType
2659    supportMultiPod: $supportMultiPod
2660    manner: $manner
2661    frameworkCardinality: $frameworkCardinality
2662    frameworkId: $frameworkId
2663  ) {
2664    ...ServicesAck
2665  }
2666}
2667    ${b}`;function gU(t){const e={...g,...t};return v(LC,e)}const jC=d`
2668    mutation ServicesReprioritizePatchWorkAutomationRule($ruleId: UUID!, $priority: Int!) {
2669  servicesReprioritizePatchWorkAutomationRule(
2670    ruleId: $ruleId
2671    priority: $priority
2672  ) {
2673    ...ServicesAck
2674  }
2675}
2676    ${b}`;function fU(t){const e={...g,...t};return v(jC,e)}const UC=d`
2677    mutation ServicesDeletePatchWorkAutomationRule($ruleId: UUID!) {
2678  servicesDeletePatchWorkAutomationRule(ruleId: $ruleId) {
2679    ...ServicesAck
2680  }
2681}
2682    ${b}`;function vU(t){const e={...g,...t};return v(UC,e)}const $C=d`
2683    query ServicesContractDiscussions($minorVersionId: UUID!) {
2684  servicesContractDiscussions(minorVersionId: $minorVersionId) {
2685    ...ContractDiscussionThread
2686  }
2687}
2688    ${Wd}`;function yU(t){const e={...g,...t};return V($C,e)}const xC=d`
2689    query ServicesDiscussionParticipantCandidates($discussionId: UUID!) {
2690  servicesDiscussionParticipantCandidates(discussionId: $discussionId) {
2691    ...DiscussionParticipantFields
2692  }
2693}
2694    ${Kd}`;function bU(t){const e={...g,...t};return V(xC,e)}const FC=d`
2695    mutation ServicesCreateContractDiscussion($id: UUID!, $targetId: UUID!, $targetType: ServicesContractTargetType!, $title: String, $quotedField: String, $quotedText: String, $quotedFromRevisionAt: DateTime) {
2696  servicesCreateContractDiscussion(
2697    id: $id
2698    targetId: $targetId
2699    targetType: $targetType
2700    title: $title
2701    quotedField: $quotedField
2702    quotedText: $quotedText
2703    quotedFromRevisionAt: $quotedFromRevisionAt
2704  ) {
2705    ...ServicesAck
2706  }
2707}
2708    ${b}`;function SU(t){const e={...g,...t};return v(FC,e)}const HC=d`
2709    mutation ServicesSetContractDiscussionTitle($discussionId: UUID!, $title: String!) {
2710  servicesSetContractDiscussionTitle(discussionId: $discussionId, title: $title) {
2711    ...ServicesAck
2712  }
2713}
2714    ${b}`;function IU(t){const e={...g,...t};return v(HC,e)}const zC=d`
2715    mutation ServicesClearContractDiscussionTitle($discussionId: UUID!) {
2716  servicesClearContractDiscussionTitle(discussionId: $discussionId) {
2717    ...ServicesAck
2718  }
2719}
2720    ${b}`;function _U(t){const e={...g,...t};return v(zC,e)}const qC=d`
2721    mutation ServicesAddContractComment($id: UUID!, $discussionId: UUID!, $content: String!) {
2722  servicesAddContractComment(
2723    id: $id
2724    discussionId: $discussionId
2725    content: $content
2726  ) {
2727    ...ServicesAck
2728  }
2729}
2730    ${b}`;function CU(t){const e={...g,...t};return v(qC,e)}const VC=d`
2731    mutation ServicesEditContractComment($commentId: UUID!, $content: String!) {
2732  servicesEditContractComment(commentId: $commentId, content: $content) {
2733    ...ServicesAck
2734  }
2735}
2736    ${b}`;function TU(t){const e={...g,...t};return v(VC,e)}const BC=d`
2737    mutation ServicesResolveContractDiscussion($discussionId: UUID!) {
2738  servicesResolveContractDiscussion(discussionId: $discussionId) {
2739    ...ServicesAck
2740  }
2741}
2742    ${b}`;function wU(t){const e={...g,...t};return v(BC,e)}const GC=d`
2743    mutation ServicesReopenContractDiscussion($discussionId: UUID!) {
2744  servicesReopenContractDiscussion(discussionId: $discussionId) {
2745    ...ServicesAck
2746  }
2747}
2748    ${b}`;function kU(t){const e={...g,...t};return v(GC,e)}const KC=d`
2749    mutation ServicesAddDiscussionParticipant($discussionId: UUID!, $userId: UUID!) {
2750  servicesAddDiscussionParticipant(discussionId: $discussionId, userId: $userId) {
2751    ...ServicesAck
2752  }
2753}
2754    ${b}`;function AU(t){const e={...g,...t};return v(KC,e)}const WC=d`
2755    mutation ServicesRemoveDiscussionParticipant($discussionId: UUID!, $userId: UUID!) {
2756  servicesRemoveDiscussionParticipant(
2757    discussionId: $discussionId
2758    userId: $userId
2759  ) {
2760    ...ServicesAck
2761  }
2762}
2763    ${b}`;function EU(t){const e={...g,...t};return v(WC,e)}const YC=d`
2764    mutation ServicesLeaveContractDiscussion($discussionId: UUID!) {
2765  servicesLeaveContractDiscussion(discussionId: $discussionId) {
2766    ...ServicesAck
2767  }
2768}
2769    ${b}`;function RU(t){const e={...g,...t};return v(YC,e)}const JC=d`
2770    query JobsFleet {
2771  jobsFleet {
2772    ...JobsFleetTypeView
2773  }
2774}
2775    ${h_}`;function PU(t){const e={...g,...t};return V(JC,e)}const QC=d`
2776    query ServicesKnownTasks($serviceId: UUID!) {
2777  servicesKnownTasks(serviceId: $serviceId) {
2778    ...ServiceKnownTaskRow
2779  }
2780}
2781    ${Yd}`;function DU(t){const e={...g,...t};return V(QC,e)}const du=d`
2782    query ServicesLanguages {
2783  servicesLanguages {
2784    ...StackLanguageRow
2785  }
2786}
2787    ${Jd}`;function OU(t){const e={...g,...t};return V(du,e)}function NU(t){const e={...g,...t};return Lr(du,e)}const uu=d`
2788    query ServicesFrameworks {
2789  servicesFrameworks {
2790    ...StackFrameworkRow
2791  }
2792}
2793    ${Qd}`;function MU(t){const e={...g,...t};return V(uu,e)}function LU(t){const e={...g,...t};return Lr(uu,e)}const XC=d`
2794    mutation ServicesAddMajorLanguage($majorVersionId: UUID!, $languageId: UUID!) {
2795  servicesAddMajorLanguage(
2796    majorVersionId: $majorVersionId
2797    languageId: $languageId
2798  ) {
2799    ...ServicesAck
2800  }
2801}
2802    ${b}`;function jU(t){const e={...g,...t};return v(XC,e)}const ZC=d`
2803    mutation ServicesRemoveMajorLanguage($majorVersionId: UUID!, $languageId: UUID!) {
2804  servicesRemoveMajorLanguage(
2805    majorVersionId: $majorVersionId
2806    languageId: $languageId
2807  ) {
2808    ...ServicesAck
2809  }
2810}
2811    ${b}`;function UU(t){const e={...g,...t};return v(ZC,e)}const eT=d`
2812    mutation ServicesAddMajorFramework($majorVersionId: UUID!, $frameworkId: UUID!) {
2813  servicesAddMajorFramework(
2814    majorVersionId: $majorVersionId
2815    frameworkId: $frameworkId
2816  ) {
2817    ...ServicesAck
2818  }
2819}
2820    ${b}`;function $U(t){const e={...g,...t};return v(eT,e)}const tT=d`
2821    mutation ServicesRemoveMajorFramework($majorVersionId: UUID!, $frameworkId: UUID!) {
2822  servicesRemoveMajorFramework(
2823    majorVersionId: $majorVersionId
2824    frameworkId: $frameworkId
2825  ) {
2826    ...ServicesAck
2827  }
2828}
2829    ${b}`;function xU(t){const e={...g,...t};return v(tT,e)}const FU=d`
2830    subscription ServicesStackReferentialChanged {
2831  servicesStackReferentialChanged {
2832    event {
2833      factType
2834    }
2835    entity {
2836      __typename
2837      ... on ServicesLanguage {
2838        ...StackLanguageRow
2839      }
2840      ... on ServicesFramework {
2841        ...StackFrameworkRow
2842      }
2843      ... on ServicesPatchWorkAutomationRule {
2844        ...StackAutomationRuleRow
2845      }
2846    }
2847    snapshot {
2848      __typename
2849      ... on ServicesLanguage {
2850        ...StackLanguageRow
2851      }
2852      ... on ServicesFramework {
2853        ...StackFrameworkRow
2854      }
2855      ... on ServicesPatchWorkAutomationRule {
2856        ...StackAutomationRuleRow
2857      }
2858    }
2859    removed {
2860      kind
2861      id
2862    }
2863    affordances {
2864      ...ServicesAffordanceFields
2865    }
2866  }
2867}
2868    ${Jd}
2869${Qd}
2870${Gd}
2871${me}`,nT=d`
2872    mutation ServicesCreateLanguage($id: UUID!, $name: String!, $isCompiled: Boolean!, $isTranspiledToId: UUID, $whenToUse: String) {
2873  servicesCreateLanguage(
2874    id: $id
2875    name: $name
2876    isCompiled: $isCompiled
2877    isTranspiledToId: $isTranspiledToId
2878    whenToUse: $whenToUse
2879  ) {
2880    ...ServicesAck
2881  }
2882}
2883    ${b}`;function HU(t){const e={...g,...t};return v(nT,e)}const rT=d`
2884    mutation ServicesRenameLanguage($languageId: UUID!, $name: String!) {
2885  servicesRenameLanguage(languageId: $languageId, name: $name) {
2886    ...ServicesAck
2887  }
2888}
2889    ${b}`;function zU(t){const e={...g,...t};return v(rT,e)}
2889const oT=d`
2890    mutation ServicesSetLanguageCompiled($languageId: UUID!, $isCompiled: Boolean!) {
2891  servicesSetLanguageCompiled(languageId: $languageId, isCompiled: $isCompiled) {
2892    ...ServicesAck
2893  }
2894}
2895    ${b}`;function qU(t){const e={...g,...t};return v(oT,e)}const iT=d`
2896    mutation ServicesSetLanguageWhenToUse($languageId: UUID!, $whenToUse: String!) {
2897  servicesSetLanguageWhenToUse(languageId: $languageId, whenToUse: $whenToUse) {
2898    ...ServicesAck
2899  }
2900}
2901    ${b}`;function VU(t){const e={...g,...t};return v(iT,e)}const aT=d`
2902    mutation ServicesSetLanguageTranspilesTo($languageId: UUID!, $targetLanguageId: UUID!) {
2903  servicesSetLanguageTranspilesTo(
2904    languageId: $languageId
2905    targetLanguageId: $targetLanguageId
2906  ) {
2907    ...ServicesAck
2908  }
2909}
2910    ${b}`;function BU(t){const e={...g,...t};return v(aT,e)}const sT=d`
2911    mutation ServicesClearLanguageTranspilesTo($languageId: UUID!) {
2912  servicesClearLanguageTranspilesTo(languageId: $languageId) {
2913    ...ServicesAck
2914  }
2915}
2916    ${b}`;function GU(t){const e={...g,...t};return v(sT,e)}const cT=d`
2917    mutation ServicesDeleteLanguage($languageId: UUID!) {
2918  servicesDeleteLanguage(languageId: $languageId) {
2919    ...ServicesAck
2920  }
2921}
2922    ${b}`;function KU(t){const e={...g,...t};return v(cT,e)}const lT=d`
2923    mutation ServicesCreateFramework($id: UUID!, $languageId: UUID!, $name: String!, $whenToUse: String) {
2924  servicesCreateFramework(
2925    id: $id
2926    languageId: $languageId
2927    name: $name
2928    whenToUse: $whenToUse
2929  ) {
2930    ...ServicesAck
2931  }
2932}
2933    ${b}`;function WU(t){const e={...g,...t};return v(lT,e)}const dT=d`
2934    mutation ServicesRenameFramework($frameworkId: UUID!, $name: String!) {
2935  servicesRenameFramework(frameworkId: $frameworkId, name: $name) {
2936    ...ServicesAck
2937  }
2938}
2939    ${b}`;function YU(t){const e={...g,...t};return v(dT,e)}const uT=d`
2940    mutation ServicesSetFrameworkWhenToUse($frameworkId: UUID!, $whenToUse: String!) {
2941  servicesSetFrameworkWhenToUse(frameworkId: $frameworkId, whenToUse: $whenToUse) {
2942    ...ServicesAck
2943  }
2944}
2945    ${b}`;function JU(t){const e={...g,...t};return v(uT,e)}const pT=d`
2946    mutation ServicesDeleteFramework($frameworkId: UUID!) {
2947  servicesDeleteFramework(frameworkId: $frameworkId) {
2948    ...ServicesAck
2949  }
2950}
2951    ${b}`;function QU(t){const e={...g,...t};return v(pT,e)}const mT=d`
2952    mutation ServicesSetFrameworkScaffoldRunnerType($frameworkId: UUID!, $runnerType: String!) {
2953  servicesSetFrameworkScaffoldRunnerType(
2954    frameworkId: $frameworkId
2955    runnerType: $runnerType
2956  ) {
2957    ...ServicesAck
2958  }
2959}
2960    ${b}`;function XU(t){const e={...g,...t};return v(mT,e)}const hT=d`
2961    mutation ServicesClearFrameworkScaffoldRunnerType($frameworkId: UUID!) {
2962  servicesClearFrameworkScaffoldRunnerType(frameworkId: $frameworkId) {
2963    ...ServicesAck
2964  }
2965}
2966    ${b}`;function ZU(t){const e={...g,...t};return v(hT,e)}const gT=d`
2967    mutation ServicesRequestLanguageLogoUpload($languageId: UUID!, $mime: String!) {
2968  servicesRequestLanguageLogoUpload(languageId: $languageId, mime: $mime) {
2969    uploadUrl
2970    objectKey
2971    expiresAt
2972  }
2973}
2974    `;function e$(t){const e={...g,...t};return v(gT,e)}const fT=d`
2975    mutation ServicesSetLanguageLogo($languageId: UUID!, $objectKey: String!, $mime: String!, $size: Int!) {
2976  servicesSetLanguageLogo(
2977    languageId: $languageId
2978    objectKey: $objectKey
2979    mime: $mime
2980    size: $size
2981  ) {
2982    ...ServicesAck
2983  }
2984}
2985    ${b}`;function t$(t){const e={...g,...t};return v(fT,e)}const vT=d`
2986    mutation ServicesClearLanguageLogo($languageId: UUID!) {
2987  servicesClearLanguageLogo(languageId: $languageId) {
2988    ...ServicesAck
2989  }
2990}
2991    ${b}`;function n$(t){const e={...g,...t};return v(vT,e)}const yT=d`
2992    mutation ServicesRequestFrameworkLogoUpload($frameworkId: UUID!, $mime: String!) {
2993  servicesRequestFrameworkLogoUpload(frameworkId: $frameworkId, mime: $mime) {
2994    uploadUrl
2995    objectKey
2996    expiresAt
2997  }
2998}
2999    `;function r$(t){const e={...g,...t};return v(yT,e)}const bT=d`
3000    mutation ServicesSetFrameworkLogo($frameworkId: UUID!, $objectKey: String!, $mime: String!, $size: Int!) {
3001  servicesSetFrameworkLogo(
3002    frameworkId: $frameworkId
3003    objectKey: $objectKey
3004    mime: $mime
3005    size: $size
3006  ) {
3007    ...ServicesAck
3008  }
3009}
3010    ${b}`;function o$(t){const e={...g,...t};return v(bT,e)}const ST=d`
3011    mutation ServicesClearFrameworkLogo($frameworkId: UUID!) {
3012  servicesClearFrameworkLogo(frameworkId: $frameworkId) {
3013    ...ServicesAck
3014  }
3015}
3016    ${b}`;function i$(t){const e={...g,...t};return v(ST,e)}const IT=d`
3017    query ServicesSharedCatalog {
3018  servicesSharedCatalog {
3019    ...ServiceSummaryRow
3020  }
3021}
3022    ${Xd}`;function a$(t){const e={...g,...t};return V(IT,e)}
3022const _T=d`
3023    query ServicesProjectCatalog($projectId: UUID!) {
3024  servicesProjectCatalog(projectId: $projectId) {
3025    ...ProjectCatalogEntryRow
3026  }
3027}
3028    ${Zd}`;function s$(t){const e={...g,...t};return V(_T,e)}const c$=d`
3029    subscription ServicesCatalogChanged($scope: ServicesCatalogScope!) {
3030  servicesCatalogChanged(scope: $scope) {
3031    event {
3032      factType
3033    }
3034    entity {
3035      ...ProjectCatalogEntryRow
3036      ...ProjectTabCatalogEntry
3037    }
3038    snapshot {
3039      ...ProjectCatalogEntryRow
3040      ...ProjectTabCatalogEntry
3041    }
3042    removed {
3043      id
3044      kind
3045    }
3046    affordances {
3047      ...ServicesAffordanceFields
3048    }
3049  }
3050}
3051    ${Zd}
3052${nu}
3053${me}`,CT=d`
3054    query ServicesService($id: UUID!) {
3055  servicesService(id: $id) {
3056    ...ServiceRecordFull
3057  }
3058}
3059    ${tu}`;function l$(t){const e={...g,...t};return V(CT,e)}const d$=d`
3060    subscription ServicesServiceChanged($serviceId: UUID!) {
3061  servicesServiceChanged(serviceId: $serviceId) {
3062    event {
3063      factType
3064    }
3065    revision
3066    entity {
3067      __typename
3068      ... on ServicesService {
3069        ...ServiceRecordFull
3070      }
3071      ... on ServicesMinorVersionSummary {
3072        ...ServiceMinorSummary
3073      }
3074      ... on ServicesPatchVersionSummary {
3075        ...ServicePatchSummary
3076      }
3077      ... on ServicesPatchTechnicalDocuments {
3078        ...ServicePatchTechDocs
3079      }
3080      ... on ServicesOffer {
3081        ...OfferFull
3082      }
3083      ... on ServicesConsumption {
3084        ...ConsumptionFull
3085      }
3086      ... on ServicesE2eTest {
3087        ...ServiceTestRow
3088      }
3089      ... on ServicesContractBreach {
3090        ...ConvergenceBreach
3091      }
3092      ... on ServicesIntentDocument {
3093        ...ServiceIntentDocumentMeta
3094      }
3095      ... on ServicesContractDiscussion {
3096        ...ContractDiscussionThread
3097      }
3098      ... on ServicesKnownTask {
3099        ...ServiceKnownTaskRow
3100      }
3101    }
3102    snapshot {
3103      __typename
3104      ... on ServicesService {
3105        ...ServiceRecordFull
3106      }
3107      ... on ServicesMinorVersionSummary {
3108        ...ServiceMinorSummary
3109      }
3110      ... on ServicesPatchVersionSummary {
3111        ...ServicePatchSummary
3112      }
3113      ... on ServicesPatchTechnicalDocuments {
3114        ...ServicePatchTechDocs
3115      }
3116      ... on ServicesOffer {
3117        ...OfferFull
3118      }
3119      ... on ServicesConsumption {
3120        ...ConsumptionFull
3121      }
3122      ... on ServicesE2eTest {
3123        ...ServiceTestRow
3124      }
3125      ... on ServicesContractBreach {
3126        ...ConvergenceBreach
3127      }
3128      ... on ServicesIntentDocument {
3129        ...ServiceIntentDocumentMeta
3130      }
3131      ... on ServicesContractDiscussion {
3132        ...ContractDiscussionThread
3133      }
3134      ... on ServicesKnownTask {
3135        ...ServiceKnownTaskRow
3136      }
3137    }
3138    removed {
3139      id
3140      kind
3141    }
3142  }
3143}
3144    ${tu}
3145${eu}
3146${Za}
3147${I_}
3148${iu}
3149${au}
3150${ou}
3151${ts}
3152${__}
3153${Wd}
3154${Yd}`,TT=d`
3155    query ServicesMinorVersion($id: UUID!) {
3156  servicesMinorVersion(id: $id) {
3157    ...ServiceMinorDetail
3158  }
3159}
3160    ${C_}`;function u$(t){const e={...g,...t};return V(TT,e)}const wT=d`
3161    mutation ServicesReplaceFunctionalSpec($minorVersionId: UUID!, $content: String!) {
3162  servicesReplaceFunctionalSpec(
3163    minorVersionId: $minorVersionId
3164    content: $content
3165  ) {
3166    ...ServicesAck
3167  }
3168}
3169    ${b}`;function p$(t){const e={...g,...t};return v(wT,e)}const kT=d`
3170    mutation ServicesReplacePermissions($minorVersionId: UUID!, $content: String!) {
3171  servicesReplacePermissions(minorVersionId: $minorVersionId, content: $content) {
3172    ...ServicesAck
3173  }
3174}
3175    ${b}`;function m$(t){const e={...g,...t};return v(kT,e)}const AT=d`
3176    query ProjectTabServicesCatalog($projectId: UUID!) {
3177  servicesProjectCatalog(projectId: $projectId) {
3178    ...ProjectTabCatalogEntry
3179  }
3180}
3181    ${nu}`;function h$(t){const e={...g,...t};return V(AT,e)}const ET=d`
3182    query ProjectTabSharedCatalog {
3183  servicesSharedCatalog {
3184    ...ProjectTabSharedRow
3185  }
3186}
3187    ${w_}`;function g$(t){const e={...g,...t};return V(ET,e)}const RT=d`
3188    query ProjectTabValidateServiceName($name: String!, $owningProjectId: UUID) {
3189  servicesValidateServiceName(name: $name, owningProjectId: $owningProjectId) {
3190    ...ProjectTabVerdict
3191  }
3192}
3193    ${ru}`;function f$(t){const e={...g,...t};return Lr(RT,e)}const PT=d`
3194    query ProjectTabValidateLinkPort($projectId: UUID!, $projectLinkId: UUID, $port: Int!) {
3195  servicesValidateLinkPort(
3196    projectId: $projectId
3197    projectLinkId: $projectLinkId
3198    port: $port
3199  ) {
3200    ...ProjectTabVerdict
3201  }
3202}
3203    ${ru}`;function v$(t){const e={...g,...t};return Lr(PT,e)}const DT=d`
3204    mutation ProjectTabCreateService($id: UUID!, $name: String!, $majorVersionId: UUID!, $minorVersionId: UUID!, $patchVersionId: UUID!, $owningProjectId: UUID, $intent: String, $description: String, $dddClassification: ServicesDddClassification, $repository: String) {
3205  servicesCreateService(
3206    id: $id
3207    name: $name
3208    majorVersionId: $majorVersionId
3209    minorVersionId: $minorVersionId
3210    patchVersionId: $patchVersionId
3211    owningProjectId: $owningProjectId
3212    intent: $intent
3213    description: $description
3214    dddClassification: $dddClassification
3215    repository: $repository
3216  ) {
3217    ...ServicesAck
3218  }
3219}
3220    ${b}`;function y$(t){const e={...g,...t};return v(DT,e)}const OT=d`
3221    mutation ProjectTabLinkProject($id: UUID!, $projectId: UUID!, $serviceId: UUID!, $port: Int!, $dddClassificationOverride: ServicesDddClassification) {
3222  servicesLinkProject(
3223    id: $id
3224    projectId: $projectId
3225    serviceId: $serviceId
3226    port: $port
3227    dddClassificationOverride: $dddClassificationOverride
3228  ) {
3229    ...ServicesAck
3230  }
3231}
3232    ${b}`;function b$(t){const e={...g,...t};return v(OT,e)}const NT=d`
3233    mutation ProjectTabEndProjectLink($linkId: UUID!, $endDate: Date!
3233) {
3234  servicesEndProjectLink(linkId: $linkId, endDate: $endDate) {
3235    ...ServicesAck
3236  }
3237}
3238    ${b}`;function S$(t){const e={...g,...t};return v(NT,e)}const MT=d`
3239    mutation ProjectTabSetLinkPort($linkId: UUID!, $port: Int!) {
3240  servicesSetLinkPort(linkId: $linkId, port: $port) {
3241    ...ServicesAck
3242  }
3243}
3244    ${b}`;function I$(t){const e={...g,...t};return v(MT,e)}const LT=d`
3245    mutation ProjectTabSetLinkClassificationOverride($linkId: UUID!, $dddClassificationOverride: ServicesDddClassification!) {
3246  servicesSetLinkClassificationOverride(
3247    linkId: $linkId
3248    dddClassificationOverride: $dddClassificationOverride
3249  ) {
3250    ...ServicesAck
3251  }
3252}
3253    ${b}`;function _$(t){const e={...g,...t};return v(LT,e)}const jT=d`
3254    mutation ProjectTabClearLinkClassificationOverride($linkId: UUID!) {
3255  servicesClearLinkClassificationOverride(linkId: $linkId) {
3256    ...ServicesAck
3257  }
3258}
3259    ${b}`;function C$(t){const e={...g,...t};return v(jT,e)}const UT=d`
3260    query ServicesMinorTests($id: UUID!) {
3261  servicesMinorVersion(id: $id) {
3262    id
3263    versionLabel
3264    isSealed
3265    isImplemented
3266    patchVersions {
3267      id
3268      number
3269      versionLabel
3270      isSealed
3271      isImplemented
3272    }
3273    tests {
3274      ...ServiceTestRow
3275    }
3276    affordances {
3277      ...ServicesTestAffordance
3278    }
3279  }
3280}
3281    ${ou}
3282${ni}`;function T$(t){const e={...g,...t};return V(UT,e)}const $T=d`
3283    mutation ServicesDeclareTest($id: UUID!, $patchVersionId: UUID!, $title: String!, $shortDescription: String!, $gesture: String!, $technicalSpec: String, $usesNats: Boolean, $usesDb: Boolean, $usesRedis: Boolean, $testsAuthz: Boolean) {
3284  servicesDeclareTest(
3285    id: $id
3286    patchVersionId: $patchVersionId
3287    title: $title
3288    shortDescription: $shortDescription
3289    gesture: $gesture
3290    technicalSpec: $technicalSpec
3291    usesNats: $usesNats
3292    usesDb: $usesDb
3293    usesRedis: $usesRedis
3294    testsAuthz: $testsAuthz
3295  ) {
3296    ...ServicesAck
3297  }
3298}
3299    ${b}`;function w$(t){const e={...g,...t};return v($T,e)}const xT=d`
3300    mutation ServicesSetTestTitle($testId: UUID!, $title: String!) {
3301  servicesSetTestTitle(testId: $testId, title: $title) {
3302    ...ServicesAck
3303  }
3304}
3305    ${b}`;function k$(t){const e={...g,...t};return v(xT,e)}const FT=d`
3306    mutation ServicesSetTestShortDescription($testId: UUID!, $shortDescription: String!) {
3307  servicesSetTestShortDescription(
3308    testId: $testId
3309    shortDescription: $shortDescription
3310  ) {
3311    ...ServicesAck
3312  }
3313}
3314    ${b}`;function A$(t){const e={...g,...t};return v(FT,e)}const HT=d`
3315    mutation ServicesSetTestGesture($testId: UUID!, $gesture: String!) {
3316  servicesSetTestGesture(testId: $testId, gesture: $gesture) {
3317    ...ServicesAck
3318  }
3319}
3320    ${b}`;function E$(t){const e={...g,...t};return v(HT,e)}const zT=d`
3321    mutation ServicesSetTestTechnicalSpec($testId: UUID!, $technicalSpec: String!) {
3322  servicesSetTestTechnicalSpec(testId: $testId, technicalSpec: $technicalSpec) {
3323    ...ServicesAck
3324  }
3325}
3326    ${b}`;function R$(t){const e={...g,...t};return v(zT,e)}const qT=d`
3327    mutation ServicesSetTestChannels($testId: UUID!, $usesNats: Boolean, $usesDb: Boolean, $usesRedis: Boolean, $testsAuthz: Boolean) {
3328  servicesSetTestChannels(
3329    testId: $testId
3330    usesNats: $usesNats
3331    usesDb: $usesDb
3332    usesRedis: $usesRedis
3333    testsAuthz: $testsAuthz
3334  ) {
3335    ...ServicesAck
3336  }
3337}
3338    ${b}`;function P$(t){const e={...g,...t};return v(qT,e)}const VT=d`
3339    mutation ServicesCorrectTest($testId: UUID!, $title: String, $shortDescription: String, $gesture: String, $technicalSpec: String) {
3340  servicesCorrectTest(
3341    testId: $testId
3342    title: $title
3343    shortDescription: $shortDescription
3344    gesture: $gesture
3345    technicalSpec: $technicalSpec
3346  ) {
3347    ...ServicesAck
3348  }
3349}
3350    ${b}`;function D$(t){const e={...g,...t};return v(VT,e)}const BT=d`
3351    mutation ServicesScheduleTestDeletion($testId: UUID!) {
3352  servicesScheduleTestDeletion(testId: $testId) {
3353    ...ServicesAck
3354  }
3355}
3356    ${b}`;function O$(t){const e={...g,...t};return v(BT,e)}const GT=d`
3357    mutation ServicesCancelTestDeletion($testId: UUID!) {
3358  servicesCancelTestDeletion(testId: $testId) {
3359    ...ServicesAck
3360  }
3361}
3362    ${b}`;function N$(t){const e={...g,...t};return v(GT,e)}const KT=d`
3363    mutation ServicesDeleteTest($testId: UUID!) {
3364  servicesDeleteTest(testId: $testId) {
3365    ...ServicesAck
3366  }
3367}
3368    ${b}`;function M$(t){const e={...g,...t};return v(KT,e)}const WT=d`
3369    mutation ServicesMarkTestImplemented($testId: UUID!, $patchVersionId: UUID!) {
3370  servicesMarkTestImplemented(testId: $testId, patchVersionId: $patchVersionId) {
3371    ...ServicesAck
3372  }
3373}
3374    ${b}`;function L$(t){const e={...g,...t};return v(WT,e)}const YT=d`
3375    query ServicesMinorEnvelope($id: UUID!) {
3376  servicesMinorVersion(id: $id) {
3377    id
3378    isSealed
3379    isImplemented
3380    hasConverged
3381    patchVersions {
3382      id
3383      number
3384      versionLabel
3385      isImplemented
3386    }
3387    offers {
3388      ...OfferFull
3389    }
3390    consumptions {
3391      ...ConsumptionFull
3392    }
3393    affordances {
3394      ...ServicesAffordanceFields
3395    }
3396  }
3397}
3398    ${iu}
3399${au}
3400${me}`;function j$(t){const e={...g,...t};return V(YT,e)}const JT=d`
3401    query ServicesServiceLinks($id: UUID!) {
3402  servicesService(id: $id) {
3403    id
3404    isProjectSpecific
3405    owningProjectId
3406    links {
3407      ...ServiceLinkRef
3408    }
3409  }
3410}
3411    ${R_}`;function U$(t){const e={...g,...t};return V(JT,e)}const QT=d`
3412    query ServicesProjectStreams($projectId: UUID!) {
3413  projectsProject(id: $projectId) {
3414    id
3415    name
3416    streams {
3417      ...ServicesPickableStream
3418    }
3419  }
3420}
3421    ${P_}`;function $$(t){const e={...g,...t};return V(QT,e)}const XT=d`
3422    query ServicesConsumableOffers($consumerServiceId: UUID!, $type: ServicesOfferType, $search: String) {
3423  servicesConsumableOffers(
3424    consumerServiceId: $consumerServiceId
3425    type: $type
3426    search: $search
3427  ) {
3428    ...ConsumableOfferRow
3429  }
3430}
3431    ${D_}`;function x$(t){const e={...g,...t};return V(XT,e)}const ZT=d`
3432    query ServicesValidateOfferNaturalKey($type: ServicesOfferType!, $serviceId: UUID!, $naturalKey: String!, $offerId: UUID) {
3433  servicesValidateOfferNaturalKey(
3434    type: $type
3435    serviceId: $serviceId
3436    naturalKey: $naturalKey
3437    offerId: $offerId
3438  ) {
3439    ...ServicesValidationVerdictFields
3440  }
3441}
3442    ${O_}`;function F$(t){const e={...g,...t};return Lr(ZT,e)}const ew=d`
3443    mutation ServicesDeclareOffer($id: UUID!, $minorVersionId: UUID!, $type: ServicesOfferType!, $naturalKey: String!, $shortDescription: String!, $payload: String) {
3444  servicesDeclareOffer(
3445    id: $id
3446    minorVersionId: $minorVersionId
3447    type: $type
3448    naturalKey: $naturalKey
3449    shortDescription: $shortDescription
3450    payload: $payload
3451  ) {
3452    ...ServicesAck
3453  }
3454}
3455    ${b}`;function H$(t){const e={...g,...t};return v(ew,e)}const tw=d`
3456    mutation ServicesSetOfferType($offerId: UUID!, $type: ServicesOfferType!) {
3457  servicesSetOfferType(offerId: $offerId, type: $type) {
3458    ...ServicesAck
3459  }
3460}
3461    ${b}`;function z$(t){const e={...g,...t};return v(tw,e)}const nw=d`
3462    mutation ServicesSetOfferNaturalKey($offerId: UUID!, $naturalKey: String!) {
3463  servicesSetOfferNaturalKey(offerId: $offerId, naturalKey: $naturalKey) {
3464    ...ServicesAck
3465  }
3466}
3467    ${b}`;function q$(t){const e={...g,...t};return v(nw,e)}const rw=d`
3468    mutation ServicesSetOfferPayload($offerId: UUID!, $payload: String!) {
3469  servicesSetOfferPayload(offerId: $offerId, payload: $payload) {
3470    ...ServicesAck
3471  }
3472}
3473    ${b}`;function V$(t){const e={...g,...t};return v(rw,e)}const ow=d`
3474    mutation ServicesSetOfferShortDescription($offerId: UUID!, $shortDescription: String!) {
3475  servicesSetOfferShortDescription(
3476    offerId: $offerId
3477    shortDescription: $shortDescription
3478  ) {
3479    ...ServicesAck
3480  }
3481}
3482    ${b}`;function B$(t){const e={...g,...t};return v(ow,e)}const iw=d`
3483    mutation ServicesSetOfferTargetDeletionVersion($offerId: UUID!, $targetDeletionVersion: String!) {
3484  servicesSetOfferTargetDeletionVersion(
3485    offerId: $offerId
3486    targetDeletionVersion: $targetDeletionVersion
3487  ) {
3488    ...ServicesAck
3489  }
3490}
3491    ${b}`;function G$(t){const e={...g,...t};return v(iw,e)}const aw=d`
3492    mutation ServicesCorrectOffer($offerId: UUID!, $naturalKey: String, $payload: String, $shortDescription: String) {
3493  servicesCorrectOffer(
3494    offerId: $offerId
3495    naturalKey: $naturalKey
3496    payload: $payload
3497    shortDescription: $shortDescription
3498  ) {
3499    ...ServicesAck
3500  }
3501}
3502    ${b}`;function K$(t){const e={...g,...t};return v(aw,e)}const sw=d`
3503    mutation ServicesMarkOfferForDeprecation($offerId: UUID!) {
3504  servicesMarkOfferForDeprecation(offerId: $offerId) {
3505    ...ServicesAck
3506  }
3507}
3508    ${b}`;function W$(t){const e={...g,...t};return v(sw,e)}const cw=d`
3509    mutation ServicesUnmarkOfferForDeprecation($offerId: UUID!) {
3510  servicesUnmarkOfferForDeprecation(offerId: $offerId) {
3511    ...ServicesAck
3512  }
3513}
3514    ${b}`;function Y$(t){const e={...g,...t};return v(cw,e)}const lw=d`
3515    mutation ServicesMarkOfferForDeletion($offerId: UUID!) {
3516  servicesMarkOfferForDeletion(offerId: $offerId) {
3517    ...ServicesAck
3518  }
3519}
3520    ${b}`;function J$(t){const e={...g,...t};return v(lw,e)}const dw=d`
3521    mutation ServicesUnmarkOfferForDeletion($offerId: UUID!) {
3522  servicesUnmarkOfferForDeletion(offerId: $offerId) {
3523    ...ServicesAck
3524  }
3525}
3526    ${b}`;function Q$(t){const e={...g,...t};return v(dw,e)}const uw=d`
3527    mutation ServicesSetOfferStream($offerId: UUID!, $streamId: UUID!) {
3528  servicesSetOfferStream(offerId: $offerId, streamId: $streamId) {
3529    ...ServicesAck
3530  }
3531}
3532    ${b}`;function X$(t){const e={...g,...t};return v(uw,e)}const pw=d`
3533    mutation ServicesDeleteOffer($offerId: UUID!) {
3534  servicesDeleteOffer(offerId: $offerId) {
3535    ...ServicesAck
3536  }
3537}
3538    ${b}`;function Z$(t){const e={...g,...t};return v(pw,e)}const mw=d`
3539    mutation ServicesDeclareConsumption($id: UUID!, $minorVersionId: UUID!, $offerIds: [UUID!]!, $projectLinkId: UUID, $filterPolicy: String, $projectionPolicy: String, $mergePolicy: String) {
3540  servicesDeclareConsumption(
3541    id: $id
3542    minorVersionId: $minorVersionId
3543    offerIds: $offerIds
3544    projectLinkId: $projectLinkId
3545    filterPolicy: $filterPolicy
3546    projectionPolicy: $projectionPolicy
3547    mergePolicy: $mergePolicy
3548  ) {
3549    ...ServicesAck
3550  }
3551}
3552    ${b}`;function ex(t){const e={...g,...t};return v(mw,e)}const hw=d`
3553    mutation ServicesAddConsumedOffer($consumptionId: UUID!, $offerId: UUID!, $mergePolicy: String) {
3554  servicesAddConsumedOffer(
3555    consumptionId: $consumptionId
3556    offerId: $offerId
3557    mergePolicy: $mergePolicy
3558  ) {
3559    ...ServicesAck
3560  }
3561}
3562    ${b}`;function tx(t){const e={...g,...t};return v(hw,e)}const gw=d`
3563    mutation ServicesRemoveConsumedOffer($consumptionId: UUID!, $offerId: UUID!) {
3564  servicesRemoveConsumedOffer(consumptionId: $consumptionId, offerId: $offerId) {
3565    ...ServicesAck
3566  }
3567}
3568    ${b}`;function nx(t){const e={...g,...t};return v(gw,e)}const fw=d`
3569    mutation ServicesSetConsumptionMergePolicy($consumptionId: UUID!, $mergePolicy: String!) {
3570  servicesSetConsumptionMergePolicy(
3571    consumptionId: $consumptionId
3572    mergePolicy: $mergePolicy
3573  ) {
3574    ...ServicesAck
3575  }
3576}
3577    ${b}`;function rx(t){const e={...g,...t};return v(fw,e)}const vw=d`
3578    mutation ServicesSetConsumptionFilterPolicy($consumptionId: UUID!, $filterPolicy: String!) {
3579  servicesSetConsumptionFilterPolicy(
3580    consumptionId: $consumptionId
3581    filterPolicy: $filterPolicy
3582  ) {
3583    ...ServicesAck
3584  }
3585}
3586    ${b}`;function ox(t){const e={...g,...t};return v(vw,e)}const yw=d`
3587    mutation ServicesSetConsumptionProjectionPolicy($consumptionId: UUID!, $projectionPolicy: String!) {
3588  servicesSetConsumptionProjectionPolicy(
3589    consumptionId: $consumptionId
3590    projectionPolicy: $projectionPolicy
3591  ) {
3592    ...ServicesAck
3593  }
3594}
3595    ${b}`;function ix(t){const e={...g,...t};return v(yw,e)}const bw=d`
3596    mutation ServicesSetConsumptionProjectionTables($consumptionId: UUID!, $projectionTables: [String!]!) {
3597  servicesSetConsumptionProjectionTables(
3598    consumptionId: $consumptionId
3599    projectionTables: $projectionTables
3600  ) {
3601    ...ServicesAck
3602  }
3603}
3604    ${b}`;function ax(t){const e={...g,...t};return v(bw,e)}const Sw=d`
3605    mutation ServicesSetConsumptionEventReactions($consumptionId: UUID!, $eventReactions: String!) {
3606  servicesSetConsumptionEventReactions(
3607    consumptionId: $consumptionId
3608    eventReactions: $eventReactions
3609  ) {
3610    ...ServicesAck
3611  }
3612}
3613    ${b}`;function sx(t){const e={...g,...t};return v(Sw,e)}const Iw=d`
3614    mutation ServicesSetConsumptionCommandImplementation($consumptionId: UUID!, $commandImplementation: String!) {
3615  servicesSetConsumptionCommandImplementation(
3616    consumptionId: $consumptionId
3617    commandImplementation: $commandImplementation
3618  ) {
3619    ...ServicesAck
3620  }
3621}
3622    ${b}`;function cx(t){const e={...g,...t};return v(Iw,e)}const _w=d`
3623    mutation ServicesSetConsumptionProjectLink($consumptionId: UUID!, $projectLinkId: UUID!) {
3624  servicesSetConsumptionProjectLink(
3625    consumptionId: $consumptionId
3626    projectLinkId: $projectLinkId
3627  ) {
3628    ...ServicesAck
3629  }
3630}
3631    ${b}`;function lx(t){const e={...g,...t};return v(_w,e)}const Cw=d`
3632    mutation ServicesCorrectConsumption($consumptionId: UUID!, $filterPolicy: String, $projectionPolicy: String, $mergePolicy: String, $projectionTables: [String!], $eventReactions: String, $commandImplementation: String) {
3633  servicesCorrectConsumption(
3634    consumptionId: $consumptionId
3635    filterPolicy: $filterPolicy
3636    projectionPolicy: $projectionPolicy
3637    mergePolicy: $mergePolicy
3638    projectionTables: $projectionTables
3639    eventReactions: $eventReactions
3640    commandImplementation: $commandImplementation
3641  ) {
3642    ...ServicesAck
3643  }
3644}
3645    ${b}`;function dx(t){const e={...g,...t};return v(Cw,e)}const Tw=d`
3646    mutation ServicesMarkConsumptionForDeletion($consumptionId: UUID!) {
3647  servicesMarkConsumptionForDeletion(consumptionId: $consumptionId) {
3648    ...ServicesAck
3649  }
3650}
3651    ${b}`;function ux(t){const e={...g,...t};return v(Tw,e)}const ww=d`
3652    mutation ServicesUnmarkConsumptionForDeletion($consumptionId: UUID!) {
3653  servicesUnmarkConsumptionForDeletion(consumptionId: $consumptionId) {
3654    ...ServicesAck
3655  }
3656}
3657    ${b}`;function px(t){const e={...g,...t};return v(ww,e)}const kw=d`
3658    mutation ServicesDeleteConsumption($consumptionId: UUID!) {
3659  servicesDeleteConsumption(consumptionId: $consumptionId) {
3660    ...ServicesAck
3661  }
3662}
3663    ${b}`;function mx(t){const e={...g,...t};return v(kw,e)}const Aw=d`
3664    query ServicesPatchVersion($id: UUID!) {
3665  servicesPatchVersion(id: $id) {
3666    ...ServicePatchDetail
3667  }
3668}
3669    ${N_}`;function hx(t){const e={...g,...t};return V(Aw,e)}const Ew=d`
3670    mutation ServicesRenameService($serviceId: UUID!, $name: String!) {
3671  servicesRenameService(serviceId: $serviceId, name: $name) {
3672    ...ServicesAck
3673  }
3674}
3675    ${b}`;function gx(t){const e={...g,...t};return v(Ew,e)}const Rw=d`
3676    mutation ServicesSetServiceIntent($serviceId: UUID!, $intent: String!) {
3677  servicesSetServiceIntent(serviceId: $serviceId, intent: $intent) {
3678    ...ServicesAck
3679  }
3680}
3681    ${b}`;function fx(t){const e={...g,...t};return v(Rw,e)}const Pw=d`
3682    mutation ServicesClearServiceIntent($serviceId: UUID!) {
3683  servicesClearServiceIntent(serviceId: $serviceId) {
3684    ...ServicesAck
3685  }
3686}
3687    ${b}`;function vx(t){const e={...g,...t};return v(Pw,e)}const Dw=d`
3688    mutation ServicesSetServiceDescription($serviceId: UUID!, $description: String!) {
3689  servicesSetServiceDescription(serviceId: $serviceId, description: $description) {
3690    ...ServicesAck
3691  }
3692}
3693    ${b}`;function yx(t){const e={...g,...t};return v(Dw,e)}const Ow=d`
3694    mutation ServicesClearServiceDescription($serviceId: UUID!) {
3695  servicesClearServiceDescription(serviceId: $serviceId) {
3696    ...ServicesAck
3697  }
3698}
3699    ${b}`;function bx(t){const e={...g,...t};return v(Ow,e)}const Nw=d`
3700    mutation ServicesSetServiceClassification($serviceId: UUID!, $dddClassification: ServicesDddClassification!) {
3701  servicesSetServiceClassification(
3702    serviceId: $serviceId
3703    dddClassification: $dddClassification
3704  ) {
3705    ...ServicesAck
3706  }
3707}
3708    ${b}`;function Sx(t){const e={...g,...t};return v(Nw,e)}const Mw=d`
3709    mutation ServicesSetServiceRepository($serviceId: UUID!, $repository: String!) {
3710  servicesSetServiceRepository(serviceId: $serviceId, repository: $repository) {
3711    ...ServicesAck
3712  }
3713}
3714    ${b}`;function Ix(t){const e={...g,...t};return v(Mw,e)}const Lw=d`
3715    mutation ServicesClearServiceRepository($serviceId: UUID!) {
3716  servicesClearServiceRepository(serviceId: $serviceId) {
3717    ...ServicesAck
3718  }
3719}
3720    ${b}`;function _x(t){const e={...g,...t};return v(Lw,e)}const jw=d`
3721    mutation ServicesDeprecateService($serviceId: UUID!) {
3722  servicesDeprecateService(serviceId: $serviceId) {
3723    ...ServicesAck
3724  }
3725}
3726    ${b}`;function Cx(t){const e={...g,...t};return v(jw,e)}const Uw=d`
3727    mutation ServicesRetireService($serviceId: UUID!) {
3728  servicesRetireService(serviceId: $serviceId) {
3729    ...ServicesAck
3730  }
3731}
3732    ${b}`;function Tx(t){const e={...g,...t};return v(Uw,e)}const $w=d`
3733    mutation ServicesReactivateService($serviceId: UUID!) {
3734  servicesReactivateService(serviceId: $serviceId) {
3735    ...ServicesAck
3736  }
3737}
3738    ${b}`;function wx(t){const e={...g,...t};return v($w,e)}const xw=d`
3739    mutation ServicesRecordScaffoldCompleted($serviceId: UUID!) {
3740  servicesRecordScaffoldCompleted(serviceId: $serviceId) {
3741    ...ServicesAck
3742  }
3743}
3744    ${b}`;function kx(t){const e={...g,...t};return v(xw,e)}const Fw=d`
3745    mutation ServicesDeleteDraftService($serviceId: UUID!) {
3746  servicesDeleteDraftService(serviceId: $serviceId) {
3747    ...ServicesAck
3748  }
3749}
3750    ${b}`;function Ax(t){const e={...g,...t};return v(Fw,e)}const Hw=d`
3751    mutation ServicesCreateMajorVersion($id: UUID!, $serviceId: UUID!, $minorVersionId: UUID!, $patchVersionId: UUID!) {
3752  servicesCreateMajorVersion(
3753    id: $id
3754    serviceId: $serviceId
3755    minorVersionId: $minorVersionId
3756    patchVersionId: $patchVersionId
3757  ) {
3758    ...ServicesAck
3759  }
3760}
3761    ${b}`;function Ex(t){const e={...g,...t};return v(Hw,e)}const zw=d`
3762    mutation ServicesSetMajorManner($majorVersionId: UUID!, $manner: ServicesManner!) {
3763  servicesSetMajorManner(majorVersionId: $majorVersionId, manner: $manner) {
3764    ...ServicesAck
3765  }
3766}
3767    ${b}`;function Rx(t){const e={...g,...t};return v(zw,e)}const qw=d`
3768    mutation ServicesSetMajorEdaPosture($majorVersionId: UUID!, $edaPosture: ServicesEdaPosture!) {
3769  servicesSetMajorEdaPosture(
3770    majorVersionId: $majorVersionId
3771    edaPosture: $edaPosture
3772  ) {
3773    ...ServicesAck
3774  }
3775}
3776    ${b}`;function Px(t){const e={...g,...t};return v(qw,e)}const Vw=d`
3777    mutation ServicesSetMajorDumbFrontEnd($majorVersionId: UUID!, $dumbFrontEnd: Boolean!) {
3778  servicesSetMajorDumbFrontEnd(
3779    majorVersionId: $majorVersionId
3780    dumbFrontEnd: $dumbFrontEnd
3781  ) {
3782    ...ServicesAck
3783  }
3784}
3785    ${b}`;function Dx(t){const e={...g,...t};return v(Vw,e)}const Bw=d`
3786    mutation ServicesSetMajorBackEndMonolith($majorVersionId: UUID!, $isBackEndMonolith: Boolean!) {
3787  servicesSetMajorBackEndMonolith(
3788    majorVersionId: $majorVersionId
3789    isBackEndMonolith: $isBackEndMonolith
3790  ) {
3791    ...ServicesAck
3792  }
3793}
3794    ${b}`;function Ox(t){const e={...g,...t};return v(Bw,e)}const Gw=d`
3795    mutation ServicesSetMajorMultiPodSupport($majorVersionId: UUID!, $supportMultiPod: Boolean!, $multiPodTestId: UUID) {
3796  servicesSetMajorMultiPodSupport(
3797    majorVersionId: $majorVersionId
3798    supportMultiPod: $supportMultiPod
3799    multiPodTestId: $multiPodTestId
3800  ) {
3801    ...ServicesAck
3802  }
3803}
3804    ${b}`;function Nx(t){const e={...g,...t};return v(Gw,e)}const Kw=d`
3805    mutation ServicesSetMajorRepository($majorVersionId: UUID!, $repository: String!) {
3806  servicesSetMajorRepository(
3807    majorVersionId: $majorVersionId
3808    repository: $repository
3809  ) {
3810    ...ServicesAck
3811  }
3812}
3813    ${b}`;function Mx(t){const e={...g,...t};return v(Kw,e)}const Ww=d`
3814    mutation ServicesClearMajorRepository($majorVersionId: UUID!) {
3815  servicesClearMajorRepository(majorVersionId: $majorVersionId) {
3816    ...ServicesAck
3817  }
3818}
3819    ${b}`;function Lx(t){const e={...g,...t};return v(Ww,e)}const Yw=d`
3820    mutation ServicesSetMajorSourceCodePaths($majorVersionId: UUID!, $sourceCodePaths: [String!]!) {
3821  servicesSetMajorSourceCodePaths(
3822    majorVersionId: $majorVersionId
3823    sourceCodePaths: $sourceCodePaths
3824  ) {
3825    ...ServicesAck
3826  }
3827}
3828    ${b}`;function jx(t){const e={...g,...t};return v(Yw,e)}const Jw=d`
3829    mutation ServicesDeprecateMajorVersion($majorVersionId: UUID!) {
3830  servicesDeprecateMajorVersion(majorVersionId: $majorVersionId) {
3831    ...ServicesAck
3832  }
3833}
3834    ${b}`;function Ux(t){const e={...g,...t};return v(Jw,e)}const Qw=d`
3835    mutation ServicesRetireMajorVersion($majorVersionId: UUID!) {
3836  servicesRetireMajorVersion(majorVersionId: $majorVersionId) {
3837    ...ServicesAck
3838  }
3839}
3840    ${b}`;function $x(t){const e={...g,...t};return v(Qw,e)}const Xw=d`
3841    mutation ServicesReactivateMajorVersion($majorVersionId: UUID!) {
3842  servicesReactivateMajorVersion(majorVersionId: $majorVersionId) {
3843    ...ServicesAck
3844  }
3845}
3846    ${b}`;function xx(t){const e={...g,...t};return v(Xw,e)}const Zw=d`
3847    mutation ServicesDeleteMajorVersion($majorVersionId: UUID!) {
3848  servicesDeleteMajorVersion(majorVersionId: $majorVersionId) {
3849    ...ServicesAck
3850  }
3851}
3852    ${b}`;function Fx(t){const e={...g,...t};return v(Zw,e)}const ek=d`
3853    mutation ServicesCreateMinorVersion($id: UUID!, $majorVersionId: UUID!, $patchVersionId: UUID!) {
3854  servicesCreateMinorVersion(
3855    id: $id
3856    majorVersionId: $majorVersionId
3857    patchVersionId: $patchVersionId
3858  ) {
3859    ...ServicesAck
3860  }
3861}
3862    ${b}`;function Hx(t){const e={...g,...t};return v(ek,e)}const tk=d`
3863    mutation ServicesSealMinorVersion($minorVersionId: UUID!) {
3864  servicesSealMinorVersion(minorVersionId: $minorVersionId) {
3865    ...ServicesAck
3866  }
3867}
3868    ${b}`;function zx(t){const e={...g,...t};return v(tk,e)}const nk=d`
3869    mutation ServicesDeleteMinorVersion($minorVersionId: UUID!) {
3870  servicesDeleteMinorVersion(minorVersionId: $minorVersionId) {
3871    ...ServicesAck
3872  }
3873}
3874    ${b}`;func
3874tion qx(t){const e={...g,...t};return v(nk,e)}const rk=d`
3875    mutation ServicesCreatePatchVersion($id: UUID!, $minorVersionId: UUID!, $reason: String) {
3876  servicesCreatePatchVersion(
3877    id: $id
3878    minorVersionId: $minorVersionId
3879    reason: $reason
3880  ) {
3881    ...ServicesAck
3882  }
3883}
3884    ${b}`;function Vx(t){const e={...g,...t};return v(rk,e)}const ok=d`
3885    mutation ServicesSealPatch($patchVersionId: UUID!) {
3886  servicesSealPatch(patchVersionId: $patchVersionId) {
3887    ...ServicesAck
3888  }
3889}
3890    ${b}`;function Bx(t){const e={...g,...t};return v(ok,e)}const ik=d`
3891    mutation ServicesUnsealPatch($patchVersionId: UUID!) {
3892  servicesUnsealPatch(patchVersionId: $patchVersionId) {
3893    ...ServicesAck
3894  }
3895}
3896    ${b}`;function Gx(t){const e={...g,...t};return v(ik,e)}const ak=d`
3897    mutation ServicesDeletePatchVersion($patchVersionId: UUID!) {
3898  servicesDeletePatchVersion(patchVersionId: $patchVersionId) {
3899    ...ServicesAck
3900  }
3901}
3902    ${b}`;function Kx(t){const e={...g,...t};return v(ak,e)}const sk=d`
3903    mutation ServicesSetPatchReason($patchVersionId: UUID!, $reason: String!) {
3904  servicesSetPatchReason(patchVersionId: $patchVersionId, reason: $reason) {
3905    ...ServicesAck
3906  }
3907}
3908    ${b}`;function Wx(t){const e={...g,...t};return v(sk,e)}const ck=d`
3909    mutation ServicesClearPatchReason($patchVersionId: UUID!) {
3910  servicesClearPatchReason(patchVersionId: $patchVersionId) {
3911    ...ServicesAck
3912  }
3913}
3914    ${b}`;function Yx(t){const e={...g,...t};return v(ck,e)}const lk=d`
3915    mutation ServicesSetPatchSdl($patchVersionId: UUID!, $sdl: String!, $procedural: Boolean!) {
3916  servicesSetPatchSdl(
3917    patchVersionId: $patchVersionId
3918    sdl: $sdl
3919    procedural: $procedural
3920  ) {
3921    ...ServicesAck
3922  }
3923}
3924    ${b}`;function Jx(t){const e={...g,...t};return v(lk,e)}const dk=d`
3925    mutation ServicesSetPatchDbSchema($patchVersionId: UUID!, $dbSchema: String!, $procedural: Boolean!) {
3926  servicesSetPatchDbSchema(
3927    patchVersionId: $patchVersionId
3928    dbSchema: $dbSchema
3929    procedural: $procedural
3930  ) {
3931    ...ServicesAck
3932  }
3933}
3934    ${b}`;function Qx(t){const e={...g,...t};return v(dk,e)}const uk=d`
3935    mutation ServicesSetPatchRestEndpoints($patchVersionId: UUID!, $restEndpoints: String!) {
3936  servicesSetPatchRestEndpoints(
3937    patchVersionId: $patchVersionId
3938    restEndpoints: $restEndpoints
3939  ) {
3940    ...ServicesAck
3941  }
3942}
3943    ${b}`;function Xx(t){const e={...g,...t};return v(uk,e)}const pk=d`
3944    mutation ServicesCorrectFunctionalSpec($minorVersionId: UUID!, $content: String!) {
3945  servicesCorrectFunctionalSpec(
3946    minorVersionId: $minorVersionId
3947    content: $content
3948  ) {
3949    ...ServicesAck
3950  }
3951}
3952    ${b}`;function Zx(t){const e={...g,...t};return v(pk,e)}const mk=d`
3953    mutation ServicesCorrectPermissions($minorVersionId: UUID!, $content: String!) {
3954  servicesCorrectPermissions(minorVersionId: $minorVersionId, content: $content) {
3955    ...ServicesAck
3956  }
3957}
3958    ${b}`;function eF(t){const e={...g,...t};return v(mk,e)}const hk=d`
3959    query ServicesMinorConvergence($id: UUID!) {
3960  servicesMinorVersion(id: $id) {
3961    id
3962    versionLabel
3963    hasConverged
3964    contractBreaches {
3965      ...ConvergenceBreach
3966    }
3967    patchVersions {
3968      ...ConvergencePatch
3969    }
3970    tests {
3971      ...ConvergenceTest
3972    }
3973    offers {
3974      ...ConvergenceAboutOffer
3975    }
3976    consumptions {
3977      ...ConvergenceAboutConsumption
3978    }
3979    affordances {
3980      ...ServicesTestAffordance
3981    }
3982  }
3983}
3984    ${ts}
3985${M_}
3986${L_}
3987${j_}
3988${U_}
3989${ni}`;function tF(t){const e={...g,...t};return V(hk,e)}const gk=d`
3990    query ServicesPatchBreaches($id: UUID!) {
3991  servicesPatchVersion(id: $id) {
3992    id
3993    contractBreaches(onlyUnfixed: false, onlyRelevant: false) {
3994      ...ConvergenceBreach
3995    }
3996  }
3997}
3998    ${ts}`;function nF(t){const e={...g,...t};return V(gk,e)}const fk=d`
3999    mutation ServicesDeclareContractBreach($id: UUID!, $minorVersionId: UUID!, $shortDescription: String!, $severity: ServicesBreachSeverity!, $testId: UUID, $reproduction: String, $analysis: String, $aboutOfferId: UUID, $aboutConsumptionId: UUID, $aboutTestId: UUID, $reason: ServicesBreachReason) {
4000  servicesDeclareContractBreach(
4001    id: $id
4002    minorVersionId: $minorVersionId
4003    shortDescription: $shortDescription
4004    severity: $severity
4005    testId: $testId
4006    reproduction: $reproduction
4007    analysis: $analysis
4008    aboutOfferId: $aboutOfferId
4009    aboutConsumptionId: $aboutConsumptionId
4010    aboutTestId: $aboutTestId
4011    reason: $reason
4012  ) {
4013    ...ServicesAck
4014  }
4015}
4016    ${b}`;function rF(t){const e={...g,...t};return v(fk,e)}const vk=d`
4017    mutation ServicesSetBreachReproduction($breachId: UUID!, $reproduction: String!) {
4018  servicesSetBreachReproduction(breachId: $breachId, reproduction: $reproduction) {
4019    ...ServicesAck
4020  }
4021}
4022    ${b}`;function oF(t){const e={...g,...t};return v(vk,e)}const yk=d`
4023    mutation ServicesSetBreachSeverity($breachId: UUID!, $severity: ServicesBreachSeverity!) {
4024  servicesSetBreachSeverity(breachId: $breachId, severity: $severity) {
4025    ...ServicesAck
4026  }
4027}
4028    ${b}`;function iF(t){const e={...g,...t};return v(yk,e)}const bk=d`
4029    mutation ServicesSetBreachAnalysis($breachId: UUID!, $analysis: String!) {
4030  servicesSetBreachAnalysis(breachId: $breachId, analysis: $analysis) {
4031    ...ServicesAck
4032  }
4033}
4034    ${b}`;function aF(t){const e={...g,...t};return v(bk,e)}const Sk=d`
4035    mutation ServicesLinkBreachTest($testId: UUID!, $breachId: UUID!) {
4036  servicesLinkBreachTest(testId: $testId, breachId: $breachId) {
4037    ...ServicesAck
4038  }
4039}
4040    ${b}`;function sF(t){const e={...g,...t};return v(Sk,e)}const Ik=d`
4041    mutation ServicesMarkBreachFixed($patchVersionId: UUID!, $breachId: UUID!) {
4042  servicesMarkBreachFixed(patchVersionId: $patchVersionId, breachId: $breachId) {
4043    ...ServicesAck
4044  }
4045}
4046    ${b}`;function cF(t){const e={...g,...t};return v(Ik,e)}const _k=d`
4047    mutation ServicesMarkBreachIrrelevant($minorVersionId: UUID!, $breachId: UUID!) {
4048  servicesMarkBreachIrrelevant(
4049    minorVersionId: $minorVersionId
4050    breachId: $breachId
4051  ) {
4052    ...ServicesAck
4053  }
4054}
4055    ${b}`;function lF(t){const e={...g,...t};return v(_k,e)}const Ck=d`
4056    mutation ServicesDeleteContractBreach($breachId: UUID!) {
4057  servicesDeleteContractBreach(breachId: $breachId) {
4058    ...ServicesAck
4059  }
4060}
4061    ${b}`;function dF(t){const e={...g,...t};return v(Ck,e)}const Tk=d`
4062    mutation ServicesAddShouldFix($patchVersionId: UUID!, $breachId: UUID!) {
4063  servicesAddShouldFix(patchVersionId: $patchVersionId, breachId: $breachId) {
4064    ...ServicesAck
4065  }
4066}
4067    ${b}`;function uF(t){const e={...g,...t};return v(Tk,e)}const wk=d`
4068    mutation ServicesRemoveShouldFix($patchVersionId: UUID!, $breachId: UUID!) {
4069  servicesRemoveShouldFix(patchVersionId: $patchVersionId, breachId: $breachId) {
4070    ...ServicesAck
4071  }
4072}
4073    ${b}`;function pF(t){const e={...g,...t};return v(wk,e)}const kk=d`
4074    mutation ServicesMarkPatchConverged($patchVersionId: UUID!) {
4075  servicesMarkPatchConverged(patchVersionId: $patchVersionId) {
4076    ...ServicesAck
4077  }
4078}
4079    ${b}`;function mF(t){const e={...g,...t};return v(kk,e)}const Ak=d`
4080    mutation ServicesRecordPatchImage($patchVersionId: UUID!, $image: String!) {
4081  servicesRecordPatchImage(patchVersionId: $patchVersionId, image: $image) {
4082    ...ServicesAck
4083  }
4084}
4085    ${b}`;function hF(t){const e={...g,...t};return v(Ak,e)}const Ek=d`
4086    mutation ServicesMarkOfferImplemented($patchVersionId: UUID!, $offerId: UUID!) {
4087  servicesMarkOfferImplemented(patchVersionId: $patchVersionId, offerId: $offerId) {
4088    ...ServicesAck
4089  }
4090}
4091    ${b}`;function gF(t){const e={...g,...t};return v(Ek,e)}const Rk=d`
4092    mutation ServicesMarkOfferDeleted($patchVersionId: UUID!, $offerId: UUID!) {
4093  servicesMarkOfferDeleted(patchVersionId: $patchVersionId, offerId: $offerId) {
4094    ...ServicesAck
4095  }
4096}
4097    ${b}`;function fF(t){const e={...g,...t};return v(Rk,e)}const Pk=d`
4098    mutation ServicesMarkConsumptionImplemented($patchVersionId: UUID!, $consumptionId: UUID!) {
4099  servicesMarkConsumptionImplemented(
4100    patchVersionId: $patchVersionId
4101    consumptionId: $consumptionId
4102  ) {
4103    ...ServicesAck
4104  }
4105}
4106    ${b}`;function vF(t){const e={...g,...t};return v(Pk,e)}const Dk=d`
4107    mutation ServicesMarkConsumptionDeleted($patchVersionId: UUID!, $consumptionId: UUID!) {
4108  servicesMarkConsumptionDeleted(
4109    patchVersionId: $patchVersionId
4110    consumptionId: $consumptionId
4111  ) {
4112    ...ServicesAck
4113  }
4114}
4115    ${b}`;function yF(t){const e={...g,...t};return v(Dk,e)}const Ok=d`
4116    mutation ServicesMarkConsumptionInboxDriftTestImplemented($patchVersionId: UUID!, $consumptionId: UUID!) {
4117  servicesMarkConsumptionInboxDriftTestImplemented(
4118    patchVersionId: $patchVersionId
4119    consumptionId: $consumptionId
4120  ) {
4121    ...ServicesAck
4122  }
4123}
4124    ${b}`;function bF(t){const e={...g,...t};return v(Ok,e)}const Nk=d`
4125    query ServicesDocumentTimeline($kind: ServicesIntentDocumentKind!, $minorVersionId: UUID!) {
4126  servicesDocumentTimeline(kind: $kind, minorVersionId: $minorVersionId) {
4127    index
4128    openedAt
4129    closedAt
4130    actorDisplayNames
4131  }
4132}
4133    `;function SF(t){const e={...g,...t};return V(Nk,e)}const Mk=d`
4134    query ServicesDocumentAt($kind: ServicesIntentDocumentKind!, $minorVersionId: UUID!, $at: DateTime!) {
4135  servicesDocumentAt(kind: $kind, minorVersionId: $minorVersionId, at: $at) {
4136    at
4137    content
4138    kind
4139    minorVersionId
4140  }
4141}
4142    `;function IF(t){const e={...g,...t};return V(Mk,e)}const Lk=d`
4143    query ServicesMinorSealSnapshot($id: UUID!) {
4144  servicesMinorVersion(id: $id) {
4145    ...ServiceSealSnapshot
4146  }
4147}
4148    ${$_}`;function _F(t){const e={...g,...t};return V(Lk,e)}const jk=d`
4149    query ServicesMinorVersionDiff($fromMinorVersionId: UUID!, $toMinorVersionId: UUID!) {
4150  servicesMinorVersionDiff(
4151    fromMinorVersionId: $fromMinorVersionId
4152    toMinorVersionId: $toMinorVersionId
4153  ) {
4154    serviceId
4155    from {
4156      ...ServicesMinorRefFields
4157    }
4158    to {
4159      ...ServicesMinorRefFields
4160    }
4161    objects {
4162      family
4163      change
4164      naturalKey
4165      fieldChanges {
4166        field
4167        before
4168        after
4169      }
4170    }
4171  }
4172}
4173    ${zn}`;function CF(t){const e={...g,...t};return V(jk,e)}function lo(t){let e=null,n=null;const r=()=>
4173(n??(n=t().then(a=>(e=a.default,a),a=>{throw n=null,a})),n),o=A.lazy(r);function i(a){const s=e??o;return R.jsx(s,{...a})}return Object.assign(i,{preload:()=>{r().catch(()=>{})}})}const Uk=Object.values(qd),$k={id:"projects",hostRail:"design",color:"text-amber-500",tabs:{"projects:project":{component:_e(()=>j(()=>import("./ProjectsHome-BDXKSSFC.js"),__vite__mapDeps([89,1,5,6,7,58,68,22,15,16,17,18,19,20,21,14,23,8,9,24,25,26,10,90,91,92,67,2,33,93,11]))),icon:rg},"projects:project-detail":{component:_e(()=>j(()=>import("./ProjectRecord-BugryHhV.js"),__vite__mapDeps([94,1,5,6,7,45,2,46,20,19,28,34,67,58,22,90,24,8,9,25,92,33,76,56,63,66,65,74,54,70,68,39,10,11]))),icon:td}},addresses:{"projects:project":{tabType:"projects:project",bcId:"projects",labelKey:"workspace.projects.sidebar.all"},"projects:project:type:{id}":{tabType:"projects:project",bcId:"projects",labelKey:"workspace.projects.sidebar.all",idPiece:Uk},"projects:project:{id}":{tabType:"projects:project-detail",bcId:"projects",labelKey:"workspace.address.project",idPiece:"entity"}},panelSections:[{panel:"design",id:"projects.projects",order:10,labelKey:"workspace.design.sectionProjects",component:lo(()=>j(()=>import("./ProjectsDesignSection-wYMdncaq.js"),__vite__mapDeps([95,1,5,6,7,46,90,20,2,33,14,16,93,96,97,24,8,9,25,98,99,100,57,91,23,92,10,11])))}]},xk={id:"requirements",railOrder:40,definition:{id:"requirements",icon:nd,labelKey:"workspace.bc.requirements",fallbackLabel:"Requirements",requiredScope:"can_access_requirements",group:"operations",comingSoon:!0,sidebarItems:[],sidebarComponent:Fn},color:"text-cyan-500",tabs:{},addresses:{}},Fk={id:"services",hostRail:"design",color:"text-sky-500",tabs:{"services:service-detail":{component:_e(()=>j(()=>import("./ServiceRecord-dGOZmLvt.js"),__vite__mapDeps([101,1,5,6,7,58,22,102,103,104,46,48,28,63,2,43,18,105,54,74,34,33,19,20,14,15,16,17,21,23,8,9,24,25,26,10,66,106,96,67,56,64,76,88,57,107,108,59,68,109,11]))),icon:ag},"services:stack":{component:_e(()=>j(()=>import("./StackReferentialHome-BPW7kExn.js"),__vite__mapDeps([110,1,58,15,16,17,18,19,20,21,14,22,23,8,9,24,25,26,10,104,5,6,7,46,48,28,63,2,43,79,33,39,35,102,67,111,112,11]))),icon:ig},"services:automation-rules":{component:_e(()=>j(()=>import("./AutomationRulesSettings-TNyUDQI8.js"),__vite__mapDeps([113,1,58,104,5,6,7,46,48,28,63,2,43,111,102,34,67,24,8,9,25,114,33,112,42,10,11]))),icon:og},"services:runner-coverage":{component:_e(()=>j(()=>import("./RunnerCoverageSettings-DeZ65lqL.js"),__vite__mapDeps([115,1,5,6,7,58,116,33,114,111,102,42,2,10,11]))),icon:Yi}},addresses:{"services:service:{id}":{tabType:"services:service-detail",bcId:"services",labelKey:"workspace.address.service",idPiece:"entity"}},panelSections:[{panel:"settings",id:"services.admin",order:20,labelKey:"workspace.settings.services",component:lo(()=>j(()=>import("./ServicesSettingsSection-Cyl5UW1l.js"),__vite__mapDeps([117,1,118,2,14,116,119,10,7,6,11])))},{panel:"design",id:"services.shared",order:20,labelKey:"workspace.design.sectionSharedServices",component:lo(()=>j(()=>import("./SharedServicesSection-DiYi8SKg.js"),__vite__mapDeps([120,1,16,14,121,106,20,96,122,108,2,98,5,6,7,46,123,28,63,34,67,100,57,23,10,11])))},{panel:"design",id:"services.stack",order:30,labelKey:"workspace.services.stack.title",component:lo(()=>j(()=>import("./StackReferentialDoor-VtLrvdap.js"),__vite__mapDeps([124,1,2,10,7,6,11])))}]},Hk={id:"settings",railOrder:160,definition:{id:"settings",icon:sg,labelKey:"workspace.bc.settings",fallbackLabel:"Settings",section:"bottom",group:"admin",sidebarItems:[],sidebarComponent:A.lazy(()=>j(()=>import("./SettingsSidebar-nimWQO5Y.js"),__vite__mapDeps([125,1,14,29,8,9,15,16,17,18,19,20,21,22,23,24,25,26,10,118,2,41,28,55,126,51,7,6,11])))},color:"text-blue-500",tabs:{},addresses:{}},zk={id:"tasks",railOrder:60,definition:{id:"tasks",icon:Br,labelKey:"workspace.bc.tasks",fallbackLabel:"Tasks",platformOnly:!0,group:"operations",opensOnSelect:!0,sidebarItems:[{labelKey:"workspace.tasks.title",icon:Br,tabType:"tasks:task",tabId:"tasks:task"}],sidebarComponent:Hn("tasks")},color:"text-fuchsia-500",tabs:{"tasks:task":{component:de("tasks","tasks:task"),icon:Br},"tasks:task-detail":{component:de("tasks","tasks:task-detail"),icon:Br}},addresses:{"tasks:task":{tabType:"tasks:task",bcId:"tasks",labelKey:"workspace.tasks.title"},"tasks:task:{id}":{tabType:"tasks:task-detail",bcId:"tasks",labelKey:"workspace.address.task",idPiece:"entity"}}},qk={id:"timesheet",railOrder:80,definition:{id:"timesheet",icon:Di,labelKey:"workspace.bc.timesheet",fallbackLabel:"Timesheets",platformOnly:!0,group:"operations",opensOnSelect:!0,sidebarItems:[{labelKey:"workspace.timesheet.title",icon:Di,tabType:"timesheet:my-timesheet",tabId:"timesheet:my-timesheet"}],sidebarComponent:Hn("timesheet")},color:"text-teal-500",tabs:{"timesheet:my-timesheet":{component:de("timesheet","timesheet:my-timesheet"),icon:Di}},addresses:{"timesheet:my-timesheet":{tabType:"timesheet:my-timesheet",bcId:"timesheet",labelKey:"workspace.timesheet.title"}}},Vk={id:"treasury",railOrder:100,definition:{id:"treasury",icon:cg,labelKey:"workspace.bc.treasury",fallbackLabel:"Treasury",requiredScope:"can_access_treasury",group:"finance",comingSoon:!0,sidebarItems:[],sidebarComponent:Fn},color:"text-indigo-500",tabs:{},addresses:{}},Bk={id:"ux",railOrder:30,definition:{id:"ux",icon:dg,labelKey:"workspace.bc.ux",fallbackLabel:"UX",platformOnly:!0,group:"design",sidebarItems:[],sidebarComponent:Hn("ux")},color:"text-rose-400",tabs:{"ux:personas":{component:de("ux","ux:personas"),icon:ed},"ux:gesture-list":{component:de("ux","ux:gesture-list"),icon:lg}},addresses:{"ux:persona:org:{id}":{tabType:"ux:personas",bcId:"ux",labelKey:"workspace.ux.personas.title",idPiece:"entity"},"ux:gesture:project:{id}":{tabType:"ux:gesture-list",bcId:"ux",labelKey:"workspace.ux.gestures.title",idPiece:"entity"}}},Gk={id:"website",railOrder:120,definition:{id:"website",icon:rd,labelKey:"workspace.bc.website",fallbackLabel:"Website",requiredScope:"can_access_website",group:"commercial",sidebarItems:[{labelKey:"workspace.website.contacts",icon:Oi,tabType:"website:contact-list",tabId:"website:contacts"}]},color:"text-emerald-500",tabs:{"website:contact-list":{component:de("website","website:contact-list"),icon:Oi},"website:contact-detail":{component:de("website","website:contact-detail"),icon:Oi}},addresses:{"website:contacts":{tabType:"website:contact-list",bcId:"website",labelKey:"workspace.website.contacts"},"website:contact:{id}":{tabType:"website:contact-detail",bcId:"website",labelKey:"workspace.address.contact",idPiece:"entity"}}};function Kk(t){return"definition"in t}function Wk(t){return"hostRail"in t}const Yk=Object.assign({"./accounting.ts":II,"./accounts.ts":_I,"./billing.ts":CI,"./charter.ts":TI,"./contracts.ts":wI,"./delivery.ts":kI,"./design.ts":AI,"./engagementnotes.ts":EI,"./identity.ts":RI,"./jobs.ts":PI,"./projects.ts":$k,"./requirements.ts":xk,"./services.ts":Fk,"./settings.ts":Hk,"./tasks.ts":zk,"./timesheet.ts":qk,"./treasury.ts":Vk,"./ux.ts":Bk,"./website.ts":Gk}),Fr=Object.values(Yk).sort((t,e)=>t.id.localeCompare(e.id)),Jk=Fr.filter(Kk).sort((t,e)=>
4173t.railOrder-e.railOrder).map(t=>t.definition),pu=()=>Fr.flatMap(t=>Object.entries(t.tabs)),mu=Object.fromEntries(pu().map(([t,e])=>[t,e.component])),hu=Object.fromEntries(pu().map(([t,e])=>[t,e.icon])),TF=Object.fromEntries(Fr.flatMap(t=>Object.entries(t.addresses))),Qk=Object.fromEntries(Fr.map(t=>[t.id,t.color])),Xk=Object.fromEntries(Fr.filter(Wk).map(t=>[t.id,t.hostRail])),wF=Jk;function kF(t){return mu[t]??null}function kr(t){return Xk[t]??t}[...new Set([...Object.keys(mu),...Object.keys(hu)])];function AF(t){return hu[t]??null}function EF(t){return Qk[t]}const Zk=3;function St(t,e){for(let n=0;n<t.length;n+=1){const r=t[n].tabs.findIndex(o=>o.id===e);if(r!==-1)return{groupIndex:n,tabIndex:r}}return null}function RF(t,e){const n=t<e?e-1:e;return n===t?null:n}function ns(t,e){const n=St(t,e);return n?t[n.groupIndex].tabs[n.tabIndex]:null}function rs(t,e){return t.length===0?null:e<t.length?t[e].id:t[t.length-1].id}function Vn(t){return t<=0?[]:Array.from({length:t},()=>100/t)}function Bn(t,e,n){const r=t.find(i=>i.id===e),o=r==null?void 0:r.tabs.find(i=>i.id===r.activeTabId);return o?kr(o.bcId):n}function eA(t){const e=t.id.indexOf("@");if(e===-1)return t;const n=t.id.slice(e+1);return{...t,id:ei(t.id),...t.projectContext||!Xa(n)?{}:{projectContext:{projectId:n}}}}function tA(t){const e=new Map;for(const n of t)for(const r of n.tabs){const o=r.id===n.activeTabId,i=ei(r.id),a=e.get(i);(a===void 0||o&&!a.active)&&e.set(i,{tab:r,active:o})}return new Set([...e.values()].map(n=>n.tab))}function nA(t){var a;const e=tA(t.groups),n=t.groups.map(s=>{var p;const c=s.tabs.filter(h=>e.has(h)).map(eA),l=s.activeTabId===null?null:ei(s.activeTabId),u=c.some(h=>h.id===l);return{...s,tabs:c,activeTabId:u?l:((p=c[0])==null?void 0:p.id)??null}});if(n.every((s,c)=>s.tabs.length===t.groups[c].tabs.length&&s.tabs.every((l,u)=>l===t.groups[c].tabs[u])&&s.activeTabId===t.groups[c].activeTabId))return t;const o=n.filter(s=>s.tabs.length>0),i=o.length>0?o:n.slice(0,1);return i.length===n.length?{...t,groups:i}:{groups:i,groupSizes:Vn(i.length),activeGroupId:i.some(s=>s.id===t.activeGroupId)?t.activeGroupId:(a=i[0])==null?void 0:a.id}}const rA=new Set(["profile","api-keys","organization","organization-detail","users","guests","user","user-list","user-detail","groups","group","group-list","group-detail","domain-claims","service-accounts","service-account","service-account-list","service-account-detail","scopes","scope-registry"]),oA=new Set(["automation-rules","runner-coverage"]);function gu(t,e){return t==="timesheets"?"timesheet":t!=="settings"?null:oA.has(e)?"services":rA.has(e)?"identity":null}function fu(t){const e=t.indexOf(":");if(e===-1)return null;const n=t.slice(e+1);return{domain:t.slice(0,e),rest:n,second:n.split(/[:@]/)[0]}}function qc(t){const e=fu(t);return e===null?null:gu(e.domain,e.second)}function ca(t){const e=fu(t),n=e===null?null:gu(e.domain,e.second);return e===null||n===null?t:`${n}:${e.rest}`}function iA(t){return t==="timesheets"?"timesheet":t}function aA(t){const e=typeof t.tabType=="string"?t.tabType:null,n=(e===null?null:qc(e))??qc(t.id);return n===null?t:{...t,id:ca(t.id),...e===null?{}:{tabType:ca(e)},bcId:n}}function sA(t){const e=t.tabs.map(aA);if(e.every((i,a)=>i===t.tabs[a]))return t;const n=new Set,r=e.filter(i=>n.has(i.id)?!1:(n.add(i.id),!0)),o=typeof t.activeTabId=="string"?ca(t.activeTabId):t.activeTabId;return{...t,tabs:r,activeTabId:o}}function cA(t,e){const n={...t},r=e.map(sA);return r.some((o,i)=>o!==e[i])&&(n.groups=r),"activeBcId"in t&&(n.activeBcId=iA(t.activeBcId)),n}function lA(t){return!!t&&typeof t=="object"&&typeof t.id=="string"}function dA(t){return Array.isArray(t)&&t.every(e=>typeof e=="number")?t:[]}function uA(t,e){const n={...t};for(const r of e)delete n[r];return n}function la(t){return Array.isArray(t)?t.filter(lA):[]}function da(t){return Array.isArray(t)?t.filter(e=>!!e&&typeof e=="object"&&Array.isArray(e.tabs)).map(e=>{const n=la(e.tabs);return n.length===e.tabs.length?e:{...e,tabs:n}}):[]}function Vc(t,e){var l;const n=da(t.groups),r=n.map(u=>{var m;const p=u.tabs.filter(I=>I.tabType!==e);if(p.length===u.tabs.length)return u;const h=p.some(I=>I.id===u.activeTabId);return{...u,tabs:p,activeTabId:h?u.activeTabId:((m=p[0])==null?void 0:m.id)??null}});if(!r.some((u,p)=>u!==n[p]))return t;const i=r.filter(u=>u.tabs.length>0),a=i.length>0?i:r.slice(0,1),s=a.length!==n.length,c=a.some(u=>u.id===t.activeGroupId);return{...t,groups:a,...s?{groupSizes:Vn(a.length),activeGroupId:c?t.activeGroupId:(l=a[0])==null?void 0:l.id}:{}}}function pA(t,e){let n=t&&typeof t=="object"?{...t}:{};if(e<1){const r=i=>i.replace(/^identity(:|$)/,"settings$1"),o=la(n.tabs).map(i=>({...i,id:r(i.id),tabType:r(i.tabType),bcId:String(i.bcId)==="identity"?"settings":i.bcId}));n={...n,tabs:o,activeTabId:typeof n.activeTabId=="string"?r(n.activeTabId):null,activeBcId:n.activeBcId==="identity"?"settings":n.activeBcId}}if(e<2){const r=la(n.tabs),o=typeof n.activeTabId=="string"?n.activeTabId:null,i=Et();n={groups:[{id:i,tabs:r,activeTabId:o}],groupSizes:[100],activeGroupId:i,activeBcId:n.activeBcId??"settings",sidebarCollapsed:n.sidebarCollapsed??!1,sidebarSize:n.sidebarSize??20}}if(e<3){const r=n.activeBcId;n={...n,activeBcId:r==="projects"||r==="services"?"design":r,designSections:{projects:!0,services:!0}}}if(e<4&&(n={...n,designProjectsTree:{}}),e<5&&(n={...n,pinnedProjects:[],pinnedSharedServices:[],pinnedProjectServices:{}}),e<6&&(n=Vc(n,"settings:invitations")),e<7){const r=nA({groups:da(n.groups),groupSizes:dA(n.groupSizes),activeGroupId:typeof n.activeGroupId=="string"?n.activeGroupId:void 0});n=r.groups.length===0?uA(n,["groups","groupSizes","activeGroupId"]):{...n,...r,groupSizes:r.groupSizes.length===r.groups.length?r.groupSizes:Vn(r.groups.length),activeGroupId:r.groups.some(o=>o.id===r.activeGroupId)?r.activeGroupId:r.groups[0].id}}return e<8&&(n=Vc(n,"charter:stance-schema")),e<9&&(n=cA(n,da(n.groups))),n}const Bc="entry";function Gc(t){if(t===void 0||!(Bc in t))return t;const e=Object.fromEntries(Object.entries(t).filter(([n])=>n!==Bc));return Object.keys(e).length===0?void 0:e}const mA="timesheets/my-timesheet",$i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,hA=/^\d{4}-W(0[1-9]|[1-4]\d|5[0-3])$/;function gA(t){const[,e,n,r]=t;switch(t.length){case 2:return e==="team"||e==="log";case 3:return e==="members"&&$i.test(n)||e==="weeks"&&($i.test(n)||hA.test(n));case 4:return e==="members"&&$i.test(n)&&r==="weeks";default:return!1}}function PF(t){const e=t.split("/").filter(n=>n!=="");return e[0]!=="timesheets"||!gA(e)?null:{address:mA,entry:e.join("/")}}function fA(t,e){const n=t.groups[e].id,r=t.groups.filter((a,s)=>s!==e),o=r[Math.min(e,r.length-1)],i=t.activeGroupId===n?o.id:t.activeGroupId;return{groups:r,groupSizes:Vn(r.length),activeGroupId:i,activeBcId:Bn(r,i,t.activeBcId)}}function vA(t,e){const n=St(t.groups,e.id);return n?{groups:t.groups.map((i,a)=>a===n.groupIndex?{...i,activeTabId:e.id,tabs:i.tabs[n.tabIndex].label!==e.label?i.tabs.map(s=>s.id===e.id?{...s,label:e.label}:s):i.tabs}:i),activeGroupId:t.groups[n.groupIndex].id,activeBcId:kr(e.bcId)}:{groups:t.groups.map(o=>o.id===t.activeGroupId?{...o,tabs:[...o.tabs,e],activeTabId:e.id}:o),activeBcId:kr(e.bcId)}}function yA(t,e,n){const r=St(t.groups,e);return!r||t.groups[r.groupIndex].tabs[r.tabIndex].label===n?null:{groups:t.groups.map((i,a)=>a===r.groupIndex?{...i,tabs:i.tabs.map(s=>s.id===e?{...s,label:n}:s)}:i)}}function bA(t,e,n){const r=St(t.groups,e);return r?{groups:t.groups.map((i,a)=>a===r.groupIndex?{...i,tabs:i.tabs.map(s=>s.id===e?{...s,metadata:n}:s)}:i)}:null}function vu(t){let e=!1;const n=t.map(r=>r.tabs.some(o=>Gc(o.metadata)!==o.metadata)?(e=!0,{...r,tabs:r.tabs.map(o=>{const i=Gc(o.metadata);return i===o.metadata?o:{...o,metadata:i}})}):r);return e?n:t}function SA(t,e){const n=St(t.groups,e);if(!n)return null;const r=t.groups[n.groupIndex],o=r.tabs.filter(s=>s.id!==e);if(o.length===0&&t.groups.length>1)return fA(t,n.groupIndex);const i=r.activeTabId===e?rs(o,n.tabIndex):r.activeTabId,a=t.groups.map((s,c)=>c===n.groupIndex?{...s,tabs:o,activeTabId:i}:s);return{groups:a,activeBcId:Bn(a,t.activeGroupId,t.activeBcId)}}function IA(t,e){const n=St(t.groups,e);if(!n)return null;const r=t.groups.map((o,i)=>i===n.groupIndex?{...o,tabs:o.tabs.filter(a=>a.id===e),activeTabId:e}:o);return{groups:r,activeBcId:Bn(r,t.activeGroupId,t.activeBcId)}}function _A(t,e){const n=St(t.groups,e);if(!n)return null;const r=t.groups[n.groupIndex],o=r.tabs.slice(0,n.tabIndex+1),i=o.some(s=>s.id===r.activeTabId),a=t.groups.map((s,c)=>c===n.groupIndex?{...s,tabs:o,activeTabId:i?r.activeTabId:e}:s);return{groups:a,activeBcId:Bn(a,t.activeGroupId,t.activeBcId)}}function CA(t){const e=Et();return{groups:[{id:e,tabs:[],activeTabId:null}],groupSizes:[100],activeGroupId:e,activeBcId:t.activeBcId}}function TA(t,e,n,r){if(n===r)return null;const o=t.groups.findIndex(c=>c.id===e);if(o===-1)return null;const i=[...t.groups[o].tabs];if(n<0||n>=i.length)return null;const[a]=i.splice(n,1);return i.splice(Math.max(0,Math.min(r,i.length)),0,a),{groups:t.groups.map((c,l)=>l===o?{...c,tabs:i}:c)}}function wA(t,e){const n=St(t.groups,e);if(!n)return null;const r=t.groups.map((i,a)=>a===n.groupIndex?{...i,activeTabId:e}:i),o=t.groups[n.groupIndex].id;return{groups:r,activeGroupId:o,activeBcId:Bn(r,o,t.activeBcId)}}function kA(t,e){if(t.groups.length>=Zk)return null;const n=St(t.groups,e);if(!n)return null;const r=t.groups[n.groupIndex];if(r.tabs.length<=1)return null;const o=r.tabs[n.tabIndex],i=r.tabs.filter(l=>l.id!==e),a=r.activeTabId===e?rs(i,n.tabIndex):r.activeTabId,s={id:Et(),tabs:[o],activeTabId:e},c=t.groups.map((l,u)=>u===n.groupIndex?{...l,tabs:i,activeTabId:a}:l);return c.splice(n.groupIndex+1,0,s),{groups:c,groupSizes:Vn(c.length),activeGroupId:s.id,activeBcId:kr(o.bcId)}}function AA(t,e,n,r){const o=St(t.groups,e),i=t.groups.findIndex(h=>h.id===n);if(!o||i===-1)return null;const a=t.groups[o.groupIndex].tabs[o.tabIndex];if(o.groupIndex===i){if(r===void 0)return null;const h=[...t.groups[i].tabs],[m]=h.splice(o.tabIndex,1),I=r>o.tabIndex?r-1:r;return h.splice(Math.max(0,Math.min(I,h.length)),0,m),{groups:t.groups.map((S,w)=>w===i?{...S,tabs:h}:S)}}const s=t.groups[o.groupIndex],c=s.tabs.filter(h=>h.id!==e),l=s.activeTabId===e?rs(c,o.tabIndex):s.activeTabId;let u=t.groups.map((h,m)=>{if(m===o.groupIndex)return{...h,tabs:c,activeTabId:l};if(m===i){const I=[...h.tabs],y=r===void 0?I.length:Math.max(0,Math.min(r,I.length));return I.splice(y,0,a),{...h,tabs:I,activeTabId:e}}return h});c.length===0&&u.length>1&&(u=u.filter(h=>
4173h.id!==s.id));const p=u.length!==t.groups.length;return{groups:u,...p?{groupSizes:Vn(u.length)}:{},activeGroupId:n,activeBcId:kr(a.bcId)}}function EA(t,e){return e===t.activeGroupId||!t.groups.some(n=>n.id===e)?null:{activeGroupId:e,activeBcId:Bn(t.groups,e,t.activeBcId)}}function xi(t,e){return t.includes(e)?t.filter(n=>n!==e):[...t,e]}function RA(){const t=Et();return{groups:[{id:t,tabs:[],activeTabId:null}],groupSizes:[100],activeGroupId:t,activeBcId:"settings",sidebarCollapsed:!1,sidebarSize:20,designSections:{projects:!0,services:!0},designProjectsTree:{},pinnedProjects:[],pinnedSharedServices:[],pinnedProjectServices:{}}}const Ve=mt()(bt(t=>{const e=n=>t(r=>n(r)??r);return{...RA(),openTab:n=>e(r=>vA(r,n)),renameTab:(n,r)=>e(o=>yA(o,n,r)),setTabMetadata:(n,r)=>e(o=>bA(o,n,r)),closeTab:n=>e(r=>SA(r,n)),closeOtherTabs:n=>e(r=>IA(r,n)),closeTabsToRight:n=>e(r=>_A(r,n)),closeAllTabs:()=>e(n=>CA(n)),reorderTabs:(n,r,o)=>e(i=>TA(i,n,r,o)),setActiveTab:n=>e(r=>wA(r,n)),splitRight:n=>e(r=>kA(r,n)),moveTabToGroup:(n,r,o)=>e(i=>AA(i,n,r,o)),setActiveGroup:n=>e(r=>EA(r,n)),setActiveBc:n=>t({activeBcId:n}),setGroupSizes:n=>t({groupSizes:n}),toggleSidebar:()=>t(n=>({sidebarCollapsed:!n.sidebarCollapsed})),setSidebarSize:n=>t({sidebarSize:n}),toggleDesignSection:n=>t(r=>
4173({designSections:{...r.designSections,[n]:!r.designSections[n]}})),setProjectsTreeNode:(n,r,o)=>t(i=>{const a={...i.designProjectsTree};return r===o?delete a[n]:a[n]=r,{designProjectsTree:a}}),toggleProjectPin:n=>t(r=>({pinnedProjects:xi(r.pinnedProjects,n)})),toggleSharedServicePin:n=>t(r=>({pinnedSharedServices:xi(r.pinnedSharedServices,n)})),toggleProjectServicePin:(n,r)=>t(o=>{const i=xi(o.pinnedProjectServices[n]??[],r),a={...o.pinnedProjectServices};return i.length===0?delete a[n]:a[n]=i,{pinnedProjectServices:a}})}},{name:"workspace-state",version:9,migrate:pA,partialize:t=>({groups:vu(t.groups),groupSizes:t.groupSizes,activeGroupId:t.activeGroupId,activeBcId:t.activeBcId,sidebarCollapsed:t.sidebarCollapsed,sidebarSize:t.sidebarSize,designSections:t.designSections,designProjectsTree:t.designProjectsTree,pinnedProjects:t.pinnedProjects,pinnedSharedServices:t.pinnedSharedServices,pinnedProjectServices:t.pinnedProjectServices})}));Yo(()=>{const{groups:t}=Ve.getState(),e=vu(t);e!==t&&Ve.setState({groups:e})});const Ln=Qa("groups",{rehydrate:t=>{for(const[e,n]of Object.entries(t))H.writeQuery({query:Tr,variables:{id:e},data:{identityGroup:n}})}}),mr={};function ua(t){mr[t]&&(clearTimeout(mr[t]),delete mr[t])}function DF(t){const e=Ln.getState(),n=Xt(),r=e.findFirstUnpersisted();if(r)return Ve.getState().openTab({id:`identity:group:${r}`,tabType:"identity:group-detail",label:n("workspace.admin.groups.new"),bcId:"identity",entityId:r}),r;const o=Et(),i={__typename:"Group",id:o,organizationId:t,name:"",isSystem:!1,createdAt:new Date().toISOString()};return H.writeQuery({query:Tr,variables:{id:o},data:{identityGroup:i}}),e.markUnpersisted(o),e.saveSnapshot(o,i),Ve.getState().openTab({id:`identity:group:${o}`,tabType:"identity:group-detail",label:n("workspace.admin.groups.new"),bcId:"identity",entityId:o}),o}function OF(t,e){const n=H.readQuery({query:Tr,variables:{id:t}});if(!(n!=null&&n.identityGroup))return;const r={...n.identityGroup,...e};H.writeQuery({query:Tr,variables:{id:t},data:{identityGroup:r}});const o=Ln.getState();if(o.unpersistedIds.has(t)&&o.saveSnapshot(t,r),e.name){const i=`identity:group:${t}`,a=Ve.getState(),s=ns(a.groups,i);s&&a.openTab({...s,label:e.name||"New Group"})}DA(t,r)}function NF(t){ua(t),H.cache.evict({id:H.cache.identify({__typename:"Group",id:t})}),H.cache.gc(),Ln.getState().remove(t),Ve.getState().closeTab(`identity:group:${t}`)}async function PA(t){const e=Ln.getState();if(!e.unpersistedIds.has(t))return;const n=H.readQuery({query:Tr,variables:{id:t}});if(!(n!=null&&n.identityGroup))return;const{name:r,organizationId:o}=n.identityGroup;if(!(!r.trim()||!o)){e.setSyncStatus(t,"syncing");try{const i={id:t,orgId:o,name:r.trim()};await H.mutate({mutation:H_,variables:{input:i}}),e.markPersisted(t),e.recordSave(t)}catch(i){const a=i instanceof Error?i.message:"Unknown error";Ln.getState().setSyncStatus(t,"error",a)}}}function DA(t,e){if(!Ln.getState().unpersistedIds.has(t))return;if(!(!!e.name.trim()&&!!e.organizationId)){ua(t);return}ua(t),mr[t]=setTimeout(()=>{delete mr[t],PA(t)},1e3)}const os=mt(t=>({armed:!1,arm:()=>t({armed:!0})}));qt(os);function OA(){let t=!1;return os.setState(e=>e.armed?(t=!0,{armed:!1}):e),t}const NA=mt()(bt(t=>({layout:"column",setLayout:e=>t({layout:e})}),{name:"org-activity-layout",version:1}));qt(NA);const jn=Qa("organizations",{rehydrate:t=>{for(const[e,n]of Object.entries(t))H.writeQuery({query:Mn,variables:{id:e},data:{identityOrganization:n}})}}),hr={};function pa(t){hr[t]&&(clearTimeout(hr[t]),delete hr[t])}function MF(){const t=jn.getState(),e=Xt(),n=t.findFirstUnpersisted();if(n)return Ve.getState().openTab({id:`identity:organization:${n}`,tabType:"identity:organization-detail",label:e("workspace.admin.organizations.new"),bcId:"identity",entityId:n}),n;const r=Et(),o={__typename:"Organization",id:r,name:"",abbreviation:null,countryCode:null,websiteUrl:null,logoUrl:null,status:"DRAFT",createdAt:new Date().toISOString()};return H.writeQuery({query:Mn,variables:{id:r},data:{identityOrganization:o}}),t.markUnpersisted(r),t.saveSnapshot(r,o),Ve.getState().openTab({id:`identity:organization:${r}`,tabType:"identity:organization-detail",label:e("workspace.admin.organizations.new"),bcI
4173d:"identity",entityId:r}),r}function LF(t,e){const n=H.readQuery({query:Mn,variables:{id:t}});if(!(n!=null&&n.identityOrganization))return;const r={...n.identityOrganization,...e};H.writeQuery({query:Mn,variables:{id:t},data:{identityOrganization:r}});const o=jn.getState();if(o.unpersistedIds.has(t)&&o.saveSnapshot(t,r),e.name){const i=`identity:organization:${t}`,a=Ve.getState(),s=ns(a.groups,i);s&&a.openTab({...s,label:e.name||"New Organization"})}LA(t,r)}function jF(t){pa(t),H.cache.evict({id:H.cache.identify({__typename:"Organization",id:t})}),H.cache.gc(),jn.getState().remove(t),Ve.getState().closeTab(`identity:organization:${t}`)}async function MA(t){const e=jn.getState();if(!e.unpersistedIds.has(t))return;const n=H.readQuery({query:Mn,variables:{id:t}});if(!(n!=null&&n.identityOrganization))return;const{name:r,abbreviation:o,countryCode:i}=n.identityOrganization;if(!(!r.trim()||!(i!=null&&i.trim()))){e.setSyncStatus(t,"syncing");try{const a={id:t,name:r.trim(),countryCode:i.trim(),abbreviation:(o==null?void 0:o.trim())||null};await H.mutate({mutation:G_,variables:{input:a}}),e.markPersisted(t),e.recordSave(t)}catch(a){const s=a instanceof Error?a.message:"Unknown error";jn.getState().setSyncStatus(t,"error",s)}}}function LA(t,e){var o;if(!jn.getState().unpersistedIds.has(t))return;if(!(!!e.name.trim()&&!!((o=e.countryCode)!=null&&o.trim()))){pa(t);return}pa(t),hr[t]=setTimeout(()=>{delete hr[t],MA(t)},1e3)}const jA=mt()(bt(t=>({assigneeUserId:null,orgId:null,type:null,statuses:[],setAssigneeUserId:e=>t({assigneeUserId:e}),setOrgId:e=>t({orgId:e}),setType:e=>t({type:e}),toggleStatus:e=>t(n=>({statuses:n.statuses.includes(e)?n.statuses.filter(r=>r!==e):[...n.statuses,e]})),clearAll:()=>t({assigneeUserId:null,orgId:null,type:null,statuses:[]})}),{name:"projects-filter",version:2,migrate:(t,e)=>{const n=t??{};if(e<2){const r=n.workStatus;return{assigneeUserId:n.assigneeUserId??null,orgId:n.orgId??null,type:n.type??null,statuses:r?[r]:[]}}return n}}));qt(jA);const UA=mt()(bt(t=>({pending:{},setPending:(e,n)=>t(r=>({pending:{...r.pending,[e]:{initialType:n}}})),clearPending:e=>t(n=>{if(!(e in n.pending))return n;const r={...n.pending};return delete r[e],{pending:r}}),reset:()=>t({pending:{}})}),{name:"projects-pending-create",version:2}));qt(UA);const yu=["kv","event","command"],Kc=[Qt.Kv,Qt.Event,Qt.Command],$A={[Qt.Kv]:"kv",[Qt.Event]:"event",[Qt.Command]:"command"},UF=t=>$A[t],$F={kv:"border-violet-500/30 bg-violet-500/10 text-violet-600",event:"border-sky-500/30 bg-sky-500/10 text-sky-600",command:"border-amber-500/30 bg-amber-500/10 text-amber-600"},xF={kv:"bg-violet-500",event:"bg-sky-500",command:"bg-amber-500"};function FF(t,e){const n={kv:0,event:0,command:0};for(const r of t){const o=e(r);o&&(n[o]+=1)}return n}function Wc(t){const e=Kc.indexOf(t);return e===-1?Kc.length:e}function HF(t){return[...t].sort((e,n)=>Wc(e.type)-Wc(n.type)||e.naturalKey.localeCompare(n.naturalKey)||e.shortDescription.localeCompare(n.shortDescription))}const sr=()=>[...yu],xA=t=>typeof t=="string"&&yu.includes(t),Wr=t=>{const e=t.filter(xA);return e.length===0?sr():[...new Set(e)]},FA=mt()(bt(t=>({offers:sr(),consumptions:sr(),setOffers:e=>t({offers:Wr(e)}),setConsumptions:e=>t({consumptions:Wr(e)}),reset:()=>t({offers:sr(),consumptions:sr()})}),{name:"services-kind-filter",version:2,migrate:t=>{const e=t??{};return{offers:Wr(e.offers??[]),consumptions:Wr(e.consumptions??[])}}}));qt(FA);const bu=Object.freeze({selection:null,face:"intent",activeTab:"functionalSpec",identityOpen:!1,knownTasksOpen:!1,showResolvedBreaches:!1,expandedBreaches:Object.freeze([]),openPatchDocs:Object.freeze([]),minorFolds:Object.freeze({})}),Yc=40,Gt=(t,e)=>t[e]??bu;function it(t,e,n){const r={...Gt(t,e),...n},{[e]:o,...i}=t,a={...i,[e]:r},s=Object.keys(a);return s.length<=Yc?a:Object.fromEntries(s.slice(s.length-Yc).map(c=>[c,a[c]]))}function HA(t){if(t===null)return null;const e=t.level==="general"?t.pinned:t;return e===null?null:e.level==="minor"||e.level==="patch"?e.minorId:null}function zA(t,e){const{[e]:n,...r}=t;return r}function Jc(t,e){return t.includes(e)?t.filter(n=>n!==e):[...t,e]}const qA=mt()(bt(t=>({views:{},createTier:{},updateSelection:(e,n)=>t(r=>{const o=Gt(r.views,e),i=n(o.selection),a=HA(i),s=a!==null&&a in o.minorFolds?zA(o.minorFolds,a):o.minorFolds;return{views:it(r.views,e,{selection:i,minorFolds:s})}}),setFace:(e,n)=>t(r=>({views:it(r.views,e,{face:n})}
4173)),setActiveTab:(e,n)=>t(r=>({views:it(r.views,e,{activeTab:n})})),setIdentityOpen:(e,n)=>t(r=>({views:it(r.views,e,{identityOpen:n})})),toggleIdentity:e=>t(n=>({views:it(n.views,e,{identityOpen:!Gt(n.views,e).identityOpen})})),setKnownTasksOpen:(e,n)=>t(r=>({views:it(r.views,e,{knownTasksOpen:n})})),setShowResolvedBreaches:(e,n)=>t(r=>({views:it(r.views,e,{showResolvedBreaches:n})})),toggleBreachRow:(e,n)=>t(r=>({views:it(r.views,e,{expandedBreaches:Jc(Gt(r.views,e).expandedBreaches,n)})})),togglePatchDoc:(e,n)=>t(r=>({views:it(r.views,e,{openPatchDocs:Jc(Gt(r.views,e).openPatchDocs,n)})})),openPatchDoc:(e,n)=>t(r=>{const o=Gt(r.views,e).openPatchDocs;return o.includes(n)?r:{views:it(r.views,e,{openPatchDocs:[...o,n]})}}),setMinorFold:(e,n,r)=>t(o=>({views:it(o.views,e,{minorFolds:{...Gt(o.views,e).minorFolds,[n]:r}})})),setCreateTier:(e,n)=>t(r=>({createTier:{...r.createTier,[e]:n}}))}),{name:"services-record-view",version:3,partialize:({createTier:t,...e})=>e,migrate:t=>{if(!t||typeof t!="object")return{views:{}};const{views:e}=t,n={};if(e&&typeof e=="object")for(const[r,o]of Object.entries(e)){if(!o||typeof o!="object")continue;const{breachesOpen:i,...a}=o;n[r]={...bu,...a}}return{views:n}}}));qt(qA);const VA=mt()(bt(t=>({view:"list",setView:e=>t({view:e})}),{name:"projects-team-view",version:1}));qt(VA);function Qc(t){return Mr.is(t)?t.errors.some(e=>{var n;return((n=e.extensions)==null?void 0:n.code)==="FORBIDDEN"}):!1}function BA(t){try{return JSON.parse(t)}catch{return null}}function GA(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Su(t){const e=typeof t=="string"?BA(t):t;return GA(e)?e:null}function zF(t){var e,n,r;if(!Mr.is(t))return null;for(const o of t.errors){const i=(e=o.extensions)==null?void 0:e.reason;if(typeof i!="string"||!i.startsWith("invalid_"))continue;const a=(r=Su((n=o.extensions)==null?void 0:n.params))==null?void 0:r.locale;if(typeof a=="string")return a}return null}const Iu=new Set(["UNAUTHENTICATED","FORBIDDEN","NOT_FOUND","CONFLICT","BAD_USER_INPUT","INVALID_STATE","INTERNAL"]);function qF(t){if(!Mr.is(t))return null;for(const e of t.errors){const n=_u(e.extensions);if(n)return n.toLowerCase()}return null}function _u(t,e=!1){const n=t==null?void 0:t.reason;if(typeof n=="string")return n;const r=t==null?void 0:t.code;return typeof r=="string"&&(e||!Iu.has(r))?r:null}const KA=/\{\s*\w/;function WA(t,e,n="errors.generic",r={}){var o,i;if(Mr.is(t)){for(const a of t.errors){const s=_u(a.extensions,r.codeIsReason);if(!s)continue;const c=r.reasonKey?r.reasonKey(s):s,l=Su((o=a.extensions)==null?void 0:o.params)??void 0,u=`affordances.reasons.${c.toLowerCase()}`,p=e.raw(u);if(typeof p=="string"&&!(!l&&KA.test(p)))try{return e(u,l)}catch{continue}}for(const a of t.errors){const s=(i=a.extensions)==null?void 0:i.code;if(typeof s=="string"&&Iu.has(s)){const c=`errors.codes.${s}`,l=e(c);if(l!==c)return l}}}return e(n)}var YA=t=>{switch(t){case"success":return XA;case"info":return eE;case"warning":return ZA;case"error":return tE;default:return null}},JA=Array(12).fill(0),QA=({visible:t,className:e})=>E.createElement("div",{className:["sonner-loading-wrapper",e].filter(Boolean).join(" "),"data-visible":t},E.createElement("div",{className:"sonner-spinner"},JA.map((n,r)=>E.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),XA=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),ZA=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),eE=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),tE=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),nE=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},E.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),E.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),rE=()=>{let[t,e]=E.useState(document.hidden);return E.useEffect(()=>{let n=()=>{e(document.hidden)};
4173return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),t},ma=1,oE=class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:n,...r}=t,o=typeof(t==null?void 0:t.id)=="number"||((e=t.id)==null?void 0:e.length)>0?t.id:ma++,i=this.toasts.find(s=>s.id===o),a=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),i?this.toasts=this.toasts.map(s=>s.id===o?(this.publish({...s,...t,id:o,title:n}),{...s,...t,id:o,dismissible:a,title:n}):s):this.addToast({title:n,...r,dismissible:a,id:o}),o},this.dismiss=t=>(this.dismissedToasts.add(t),t||this.toasts.forEach(e=>{this.subscribers.forEach(n=>n({id:e.id,dismiss:!0}))}),this.subscribers.forEach(e=>e({id:t,dismiss:!0})),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,e)=>{if(!e)return;let n;e.loading!==void 0&&(n=this.create({...e,promise:t,type:"loading",message:e.loading,description:typeof e.description!="function"?e.description:void 0}));let r=t instanceof Promise?t:t(),o=n!==void 0,i,a=r.then(async c=>{if(i=["resolve",c],E.isValidElement(c))o=!1,this.create({id:n,type:"default",message:c});else if(aE(c)&&!c.ok){o=!1;let l=typeof e.error=="function"?await e.error(`HTTP error! status: ${c.status}`):e.error,u=typeof e.description=="function"?await e.description(`HTTP error! status: ${c.status}`):e.description;this.create({id:n,type:"error",message:l,description:u})}else if(e.success!==void 0){o=!1;let l=typeof e.success=="function"?await e.success(c):e.success,u=typeof e.description=="function"?await e.description(c):e.description;this.create({id:n,type:"success",message:l,description:u})}}).catch(async c=>{if(i=["reject",c],e.error!==void 0){o=!1;let l=typeof e.error=="function"?await e.error(c):e.error,u=typeof e.description=="function"?await e.description(c):e.description;this.create({id:n,type:"error",message:l,description:u})}}).finally(()=>{var c;o&&(this.dismiss(n),n=void 0),(c=e.finally)==null||c.call(e)}),s=()=>new Promise((c,l)=>a.then(()=>i[0]==="reject"?l(i[1]):c(i[1])).catch(l));return typeof n!="string"&&typeof n!="number"?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(t,e)=>{let n=(e==null?void 0:e.id)||ma++;return this.create({jsx:t(n),id:n,...e}),n},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},He=new oE,iE=(t,e)=>{let n=(e==null?void 0:e.id)||ma++;return He.addToast({title:t,...e,id:n}),n},aE=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",sE=iE,cE=()=>He.toasts,lE=()=>He.getActiveToasts(),So=Object.assign(sE,{success:He.success,info:He.info,warning:He.warning,error:He.error,custom:He.custom,message:He.message,promise:He.promise,dismiss:He.dismiss,loading:He.loading},{getHistory:cE,getToasts:lE});function dE(t,{insertAt:e}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",e==="top"&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=t:r.appendChild(document.createTextNode(t))}dE(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
4173left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
4173:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
4173--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
4174`);function Yr(t){return t.label!==void 0}var uE=3,pE="32px",mE="16px",Xc=4e3,hE=356,gE=14,fE=20,vE=200;function at(...t){return t.filter(Boolean).join(" ")}function yE(t){let[e,n]=t.split("-"),r=[];return e&&r.push(e),n&&r.push(n),r}var bE=t=>{var e,n,r,o,i,a,s,c,l,u,p;let{invert:h,toast:m,unstyled:I,interacting:y,setHeights:S,visibleToasts:w,heights:T,index:D,toasts:K,expanded:W,removeToast:q,defaultRichColors:Ce,closeButton:Ee,style:Re,cancelButtonStyle:Pe,actionButtonStyle:Ne,className:U="",descriptionClassName:xe="",duration:ve,position:ce,ga
4174p:ae,loadingIcon:he,expandByDefault:F,classNames:M,icons:ne,closeButtonAriaLabel:oe="Close toast",pauseWhenPageIsHidden:G}=t,[X,Y]=E.useState(null),[Fe,ln]=E.useState(null),[le,_i]=E.useState(!1),[Qn,zr]=E.useState(!1),[Xn,Ci]=E.useState(!1),[bc,dh]=E.useState(!1),[uh,Sc]=E.useState(!1),[ph,Ti]=E.useState(0),[mh,Ic]=E.useState(0),Zn=E.useRef(m.duration||ve||Xc),_c=E.useRef(null),Vt=E.useRef(null),hh=D===0,gh=D+1<=w,Ye=m.type,dn=m.dismissible!==!1,fh=m.className||"",vh=m.descriptionClassName||"",qr=E.useMemo(()=>T.findIndex(L=>L.toastId===m.id)||0,[T,m.id]),yh=E.useMemo(()=>{var L;return(L=m.closeButton)!=null?L:Ee},[m.closeButton,Ee]),Cc=E.useMemo(()=>m.duration||ve||Xc,[m.duration,ve]),wi=E.useRef(0),un=E.useRef(0),Tc=E.useRef(0),pn=E.useRef(null),[bh,Sh]=ce.split("-"),wc=E.useMemo(()=>T.reduce((L,Z,se)=>se>=qr?L:L+Z.height,0),[T,qr]),kc=rE(),Ih=m.invert||h,ki=Ye==="loading";un.current=E.useMemo(()=>qr*ae+wc,[qr,wc]),E.useEffect(()=>{Zn.current=Cc},[Cc]),E.useEffect(()=>{_i(!0)},[]),E.useEffect(()=>{let L=Vt.current;if(L){let Z=L.getBoundingClientRect().height;return Ic(Z),S(se=>[{toastId:m.id,height:Z,position:m.position},...se]),()=>S(se=>se.filter(et=>et.toastId!==m.id))}},[S,m.id]),E.useLayoutEffect(()=>{if(!le)return;let L=Vt.current,Z=L.style.height;L.style.height="auto";let se=L.getBoundingClientRect().height;L.style.height=Z,Ic(se),S(et=>et.find(tt=>tt.toastId===m.id)?et.map(tt=>tt.toastId===m.id?{...tt,height:se}:tt):[{toastId:m.id,height:se,position:m.position},...et])},[le,m.title,m.description,S,m.id]);let Rt=E.useCallback(()=>{zr(!0),Ti(un.current),S(L=>L.filter(Z=>Z.toastId!==m.id)),setTimeout(()=>{q(m)},vE)},[m,q,S,un]);E.useEffect(()=>{if(m.promise&&Ye==="loading"||m.duration===1/0||m.type==="loading")return;let L;return W||y||G&&kc?(()=>{if(Tc.current<wi.current){let Z=new Date().getTime()-wi.current;Zn.current=Zn.current-Z}Tc.current=new Date().getTime()})():Zn.current!==1/0&&(wi.current=new Date().getTime(),L=setTimeout(()=>{var Z;(Z=m.onAutoClose)==null||Z.call(m,m),Rt()},Zn.current)),()=>clearTimeout(L)},[W,y,m,Ye,G,kc,Rt]),E.useEffect(()=>{m.delete&&Rt()},[Rt,m.delete]);function _h(){var L,Z,se;return ne!=null&&ne.loading?E.createElement("div",{className:at(M==null?void 0:M.loader,(L=m==null?void 0:m.classNames)==null?void 0:L.loader,"sonner-loader"),"data-visible":Ye==="loading"},ne.loading):he?E.createElement("div",{className:at(M==null?void 0:M.loader,(Z=m==null?void 0:m.classNames)==null?void 0:Z.loader,"sonner-loader"),"data-visible":Ye==="loading"},he):E.createElement(QA,{className:at(M==null?void 0:M.loader,(se=m==null?void 0:m.classNames)==null?void 0:se.loader),visible:Ye==="loading"})}return E.createElement("li",{tabIndex:0,ref:Vt,className:at(U,fh,M==null?void 0:M.toast,(e=m==null?void 0:m.classNames)==null?void 0:e.toast,M==null?void 0:M.default,M==null?void 0:M[Ye],(n=m==null?void 0:m.classNames)==null?void 0:n[Ye]),"data-sonner-toast":"","data-rich-colors":(r=m.richColors)!=null?r:Ce,"data-styled":!(m.jsx||m.unstyled||I),"data-mounted":le,"data-promise":!!m.promise,"data-swiped":uh,"data-removed":Qn,"data-visible":gh,"data-y-position":bh,"data-x-position":Sh,"data-index":D,"data-front":hh,"data-swiping":Xn,"data-dismissible":dn,"data-type":Ye,"data-invert":Ih,"data-swipe-out":bc,"data-swipe-direction":Fe,"data-expanded":!!(W||F&&le),style:{"--index":D,"--toasts-before":D,"--z-index":K.length-D,"--offset":`${Qn?ph:un.current}px`,"--initial-height":F?"auto":`${mh}px`,...Re,...m.style},onDragEnd:()=>{Ci(!1),Y(null),pn.current=null},onPointerDown:L=>{ki||!dn||(_c.current=new Date,Ti(un.current),L.target.setPointerCapture(L.pointerId),L.target.tagName!=="BUTTON"&&(Ci(!0),pn.current={x:L.clientX,y:L.clientY}))},onPointerUp:()=>{var L,Z,se,et;if(bc||!dn)return;pn.current=null;let tt=Number(((L=Vt.current)==null?void 0:L.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Pt=Number(((Z=Vt.current)==null?void 0:Z.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Bt=new Date().getTime()-((se=_c.current)==null?void 0:se.getTime()),nt=X==="x"?tt:Pt,Dt=Math.abs(nt)/Bt;if(Math.abs(nt)>=fE||Dt>.11){Ti(un.current),(et=m.onDismiss)==null||et.call(m,m),ln(X==="x"?tt>0?"right":"left":Pt>0?"down":"up"),Rt(),dh(!0),Sc(!1);return}Ci(!1),Y(null)},onPointerMove:L=>{var Z,se,et,tt;if(!pn.current||!dn||((Z=window.getSelection())==null?void 0:Z.toString().length)>0)return;let Pt=L.clientY-pn.current.y,Bt=L.clientX-pn.current.x,nt=(se=t.swipeDirections)!=null?se:yE(ce);!X&&(Math.abs(Bt)>1||Math.abs(Pt)>1)&&Y(Math.abs(Bt)>Math.abs(Pt)?"x":"y");let Dt={x:0,y:0};X==="y"?(nt.includes("top")||nt.includes("bottom"))&&(nt.includes("top")&&Pt<0||nt.includes("bottom")&&Pt>0)&&(Dt.y=Pt):X==="x"&&(nt.includes("left")||nt.includes("right"))&&(nt.includes("left")&&Bt<0||nt.includes("right")&&Bt>0)&&(Dt.x=Bt),(Math.abs(Dt.x)>0||Math.abs(Dt.y)>0)&&Sc(!0),(et=Vt.current)==null||et.style.setProperty("--swipe-amount-x",`${Dt.x}px`),(tt=Vt.current)==null||tt.style.setProperty("--swipe-amount-y",`${Dt.y}px`)}},yh&&!m.jsx?E.createElement("button",{"aria-label":oe,"data-disabled":ki,"data-close-button":!0,onClick:ki||!
4174dn?()=>{}:()=>{var L;Rt(),(L=m.onDismiss)==null||L.call(m,m)},className:at(M==null?void 0:M.closeButton,(o=m==null?void 0:m.classNames)==null?void 0:o.closeButton)},(i=ne==null?void 0:ne.close)!=null?i:nE):null,m.jsx||A.isValidElement(m.title)?m.jsx?m.jsx:typeof m.title=="function"?m.title():m.title:E.createElement(E.Fragment,null,Ye||m.icon||m.promise?E.createElement("div",{"data-icon":"",className:at(M==null?void 0:M.icon,(a=m==null?void 0:m.classNames)==null?void 0:a.icon)},m.promise||m.type==="loading"&&!m.icon?m.icon||_h():null,m.type!=="loading"?m.icon||(ne==null?void 0:ne[Ye])||YA(Ye):null):null,E.createElement("div",{"data-content":"",className:at(M==null?void 0:M.content,(s=m==null?void 0:m.classNames)==null?void 0:s.content)},E.createElement("div",{"data-title":"",className:at(M==null?void 0:M.title,(c=m==null?void 0:m.classNames)==null?void 0:c.title)},typeof m.title=="function"?m.title():m.title),m.description?E.createElement("div",{"data-description":"",className:at(xe,vh,M==null?void 0:M.description,(l=m==null?void 0:m.classNames)==null?void 0:l.description)},typeof m.description=="function"?m.description():m.description):null),A.isValidElement(m.cancel)?m.cancel:m.cancel&&Yr(m.cancel)?E.createElement("button",{"data-button":!0,"data-cancel":!0,style:m.cancelButtonStyle||Pe,onClick:L=>{var Z,se;Yr(m.cancel)&&dn&&((se=(Z=m.cancel).onClick)==null||se.call(Z,L),Rt())},className:at(M==null?void 0:M.cancelButton,(u=m==null?void 0:m.classNames)==null?void 0:u.cancelButton)},m.cancel.label):null,A.isValidElement(m.action)?m.action:m.action&&Yr(m.action)?E.createElement("button",{"data-button":!0,"data-action":!0,style:m.actionButtonStyle||Ne,onClick:L=>{var Z,se;Yr(m.action)&&((se=(Z=m.action).onClick)==null||se.call(Z,L),!L.defaultPrevented&&Rt())},className:at(M==null?void 0:M.actionButton,(p=m==null?void 0:m.classNames)==null?void 0:p.actionButton)},m.action.label):null))};function Zc(){if(typeof window>"u"||typeof document>"u")return"ltr";let t=document.documentElement.getAttribute("dir");return t==="auto"||!t?window.getComputedStyle(document.documentElement).direction:t}function SE(t,e){let n={};return[t,e].forEach((r,o)=>{let i=o===1,a=i?"--mobile-offset":"--offset",s=i?mE:pE;function c(l){["top","right","bottom","left"].forEach(u=>{n[`${a}-${u}`]=typeof l=="number"?`${l}px`:l})}typeof r=="number"||typeof r=="string"?c(r):typeof r=="object"?["top","right","bottom","left"].forEach(l=>{r[l]===void 0?n[`${a}-${l}`]=s:n[`${a}-${l}`]=typeof r[l]=="number"?`${r[l]}px`:r[l]}):c(s)}),n}var IE=A.forwardRef(function(t,e){let{invert:n,position:r="bottom-right",hotkey:o=["altKey","KeyT"],expand:i,closeButton:a,className:s,offset:c,mobileOffset:l,theme:u="light",richColors:p,duration:h,style:m,visibleToasts:I=uE,toastOptions:y,dir:S=Zc(),gap:w=gE,loadingIcon:T,icons:D,containerAriaLabel:K="Notifications",pauseWhenPageIsHidden:W}=t,[q,Ce]=E.useState([]),Ee=E.useMemo(()=>Array.from(new Set([r].concat(q.filter(G=>G.position).map(G=>G.position)))),[q,r]),[Re,Pe]=E.useState([]),[Ne,U]=E.useState(!1),[xe,ve]=E.useState(!1),[ce,ae]=E.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),he=E.useRef(null),F=o.join("+").replace(/Key/g,"").replace(/Digit/g,""),M=E.useRef(null),ne=E.useRef(!1),oe=E.useCallback(G=>{Ce(X=>{var Y;return(Y=X.find(Fe=>Fe.id===G.id))!=null&&Y.delete||He.dismiss(G.id),X.filter(({id:Fe})=>Fe!==G.id)})},[]);return E.useEffect(()=>He.subscribe(G=>{if(G.dismiss){Ce(X=>X.map(Y=>Y.id===G.id?{...Y,delete:!0}:Y));return}setTimeout(()=>{wh.flushSync(()=>{Ce(X=>{let Y=X.findIndex(Fe=>Fe.id===G.id);return Y!==-1?[...X.slice(0,Y),{...X[Y],...G},...X.slice(Y+1)]:[G,...X]})})})}),[]),E.useEffect(()=>{if(u!=="system"){ae(u);return}if(u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ae("dark"):ae("light")),typeof window>"u")return;let G=window.matchMedia("(prefers-color-scheme: dark)");try{G.addEventListener("change",({matches:X})=>{ae(X?"dark":"light")})}catch{G.addListener(({matches:Y})=>{try{ae(Y?"dark":"light")}catch(Fe){console.error(Fe)}})}},[u]),E.useEffect(()=>{q.length<=1&&U(!1)},[q]),E.useEffect(()=>{let G=X=>{var Y,Fe;o.every(ln=>X[ln]||X.code===ln)&&(U(!0),(Y=he.current)==null||Y.focus()),X.code==="Escape"&&(document.activeElement===he.current||(Fe=he.current)!=null&&Fe.contains(document.activeElement))&&U(!1)};return document.addEventListener("keydown",G),()=>document.removeEventListener("keydown",G)},[o]),E.useEffect(()=>{if(he.current)return()=>
4174{M.current&&(M.current.focus({preventScroll:!0}),M.current=null,ne.current=!1)}},[he.current]),E.createElement("section",{ref:e,"aria-label":`${K} ${F}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Ee.map((G,X)=>{var Y;let[Fe,ln]=G.split("-");return q.length?E.createElement("ol",{key:G,dir:S==="auto"?Zc():S,tabIndex:-1,ref:he,className:s,"data-sonner-toaster":!0,"data-theme":ce,"data-y-position":Fe,"data-lifted":Ne&&q.length>1&&!i,"data-x-position":ln,style:{"--front-toast-height":`${((Y=Re[0])==null?void 0:Y.height)||0}px`,"--width":`${hE}px`,"--gap":`${w}px`,...m,...SE(c,l)},onBlur:le=>{ne.current&&!le.currentTarget.contains(le.relatedTarget)&&(ne.current=!1,M.current&&(M.current.focus({preventScroll:!0}),M.current=null))},onFocus:le=>{le.target instanceof HTMLElement&&le.target.dataset.dismissible==="false"||ne.current||(ne.current=!0,M.current=le.relatedTarget)},onMouseEnter:()=>U(!0),onMouseMove:()=>U(!0),onMouseLeave:()=>{xe||U(!1)},onDragEnd:()=>U(!1),onPointerDown:le=>{le.target instanceof HTMLElement&&le.target.dataset.dismissible==="false"||ve(!0)},onPointerUp:()=>ve(!1)},q.filter(le=>!le.position&&X===0||le.position===G).map((le,_i)=>{var Qn,zr;return E.createElement(bE,{key:le.id,icons:D,index:_i,toast:le,defaultRichColors:p,duration:(Qn=y==null?void 0:y.duration)!=null?Qn:h,className:y==null?void 0:y.className,descriptionClassName:y==null?void 0:y.descriptionClassName,invert:n,visibleToasts:I,closeButton:(zr=y==null?void 0:y.closeButton)!=null?zr:a,interacting:xe,position:G,style:y==null?void 0:y.style,unstyled:y==null?void 0:y.unstyled,classNames:y==null?void 0:y.classNames,cancelButtonStyle:y==null?void 0:y.cancelButtonStyle,actionButtonStyle:y==null?void 0:y.actionButtonStyle,removeToast:oe,toasts:q.filter(Xn=>Xn.position==le.position),heights:Re.filter(Xn=>Xn.position==le.position),setHeights:Pe,expandByDefault:i,gap:w,loadingIcon:T,expanded:Ne,pauseWhenPageIsHidden:W,swipeDirections:t.swipeDirections})})):null}))});const Un=Qa("users",{rehydrate:t=>{for(const[e,n]of Object.entries(t))H.writeQuery({query:wr,variables:{id:e},data:{identityUser:n}})}}),gr={};function ha(t){gr[t]&&(clearTimeout(gr[t]),delete gr[t])}function VF(t){const e=Un.getState(),n=Xt(),r=e.findFirstUnpersisted();if(r)return Ve.getState().openTab({id:`identity:user:${r}`,tabType:"identity:user-detail",label:n("workspace.admin.users.new"),bcId:"identity",entityId:r}),r;const o=Et(),i={__typename:"User",id:o,personId:"",organizationId:t??null,email:"",isAdmin:!1,firstName:null,lastName:null,avatarUrl:null,lastLoginAt:null,groupsCount:0,deactivatedAt:null,disabledAt:null,createdAt:new Date().toISOString()};return H.writeQuery({query:wr,variables:{id:o},data:{identityUser:i}}),e.markUnpersisted(o),e.saveSnapshot(o,i),Ve.getState().openTab({id:`identity:user:${o}`,tabType:"identity:user-detail",label:n("workspace.admin.users.new"),bcId:"identity",entityId:o}),o}function BF(t,e){const n=H.readQuery({query:wr,variables:{id:t}});if(!(n!=null&&n.identityUser))return;const r={...n.identityUser,...e};H.writeQuery({query:wr,variables:{id:t},data:{identityUser:r}});const o=Un.getState();if(o.unpersistedIds.has(t)&&o.saveSnapshot(t,r),e.email){const i=`identity:user:${t}`,a=Ve.getState(),s=ns(a.groups,i);s&&a.openTab({...s,label:e.email||Xt()("workspace.admin.users.new")})}CE(t,r)}function GF(t){ha(t),H.cache.evict({id:H.cache.identify({__typename:"User",id:t})}),H.cache.gc(),Un.getState().remove(t),Ve.getState().closeTab(`identity:user:${t}`)}async function _E(t){const e=Un.getState();if(!e.unpersistedIds.has(t))return;const n=H.readQuery({query:wr,variables:{id:t}});if(!(n!=null&&n.identityUser))return;const{email:r,organizationId:o,isAdmin:i,firstName:a,lastName:s}=n.identityUser;if(r.trim()&&o){e.setSyncStatus(t,"syncing");try{const c=Et(),l={id:c,orgId:o,firstName:(a==null?void 0:a.trim())??"",lastName:(s==null?void 0:s.trim())??"",preferredLocale:"en"};await H.mutate({mutation:K_,variables:{input:l}});const u={id:t,personId:c,orgId:o,email:r.trim(),isAdmin:i??!1};await H.mutate({mutation:W_,variables:{input:u}}),e.markPersisted(t),e.recordSave(t);const p=Xt();So.success(p("workspace.admin.users.createdToast",{email:r.trim()}))}catch(c){const l=Xt(),u=WA(c,l,"workspace.admin.users.createError");Un.getState().setSyncStatus(t,"error",u),So.error(u)}}}
4174function CE(t,e){if(!Un.getState().unpersistedIds.has(t))return;const r=e.email.trim().split("@");if(!(r.length===2&&r[0].length>0&&r[1].includes(".")&&!!e.organizationId)){ha(t);return}ha(t),gr[t]=setTimeout(()=>{delete gr[t],_E(t)},1e3)}let is=0;function KF(t){if(!t)return;const e=new Date(t).getTime();Number.isNaN(e)||(is=e-Date.now())}function ga(){return Date.now()+is}function TE(){is=0}const fa=new Map;function Cu(t){let e=fa.get(t);return e||(e={now:ga(),listeners:new Set,timer:null},fa.set(t,e)),e}function WF(t){return Cu(t).now}function YF(t,e){const n=Cu(t);return n.listeners.add(e),n.timer===null&&(n.now=ga(),n.timer=setInterval(()=>{n.now=ga(),n.listeners.forEach(r=>r())},t)),()=>{n.listeners.delete(e),!(n.listeners.size>0)&&(n.timer!==null&&clearInterval(n.timer),fa.delete(t))}}Yo(TE);const Tu="0.1.0",wE={bc:"accounts",version:Tu,tabs:["accounts:desk","accounts:account-detail"],routes:[{address:"accounts:account",tabType:"accounts:desk",labelKey:"workspace.accounts.nav.desk"},{address:"accounts:account:{id}",tabType:"accounts:account-detail",labelKey:"workspace.address.account",idPiece:"entity"}],rail:{labelKey:"workspace.bc.accounts",fallbackLabel:"Accounts",opensOnSelect:!0,sidebar:[{labelKey:"workspace.accounts.nav.desk",tabType:"accounts:desk",tabId:"accounts:account"}]},slots:[],persistedStores:["accounts-pending-create","accounts-view"]},kE=Object.freeze(Object.defineProperty({__proto__:null,ACCOUNTS_MANIFEST:wE,ACCOUNTS_VERSION:Tu},Symbol.toStringTag,{value:"Module"})),wu="0.1.1",AE={bc:"charter",version:wu,tabs:["charter:charter","charter:tenet-detail","charter:deliberations","charter:proposal-detail","charter:draft-edit","charter:college"],routes:[{address:"charter:charter",tabType:"charter:charter",labelKey:"workspace.charter.nav.charter"},{address:"charter:deliberations",tabType:"charter:deliberations",labelKey:"workspace.charter.nav.deliberations"},{address:"charter:college",tabType:"charter:college",labelKey:"workspace.charter.college"},{address:"charter:proposal:{id}",tabType:"charter:proposal-detail",labelKey:"workspace.address.proposal",idPiece:"entity"},{address:"charter:tenet:{id}",tabType:"charter:tenet-detail",labelKey:"workspace.address.tenet",idPiece:"entity"},{address:"charter:draft:{id}",tabType:"charter:draft-edit",labelKey:"workspace.address.draft",idPiece:"entity"}],rail:{labelKey:"workspace.bc.charter",fallbackLabel:"Governance",opensOnSelect:!0,sidebar:[{labelKey:"workspace.charter.nav.charter",tabType:"charter:charter",tabId:"charter:charter"},{labelKey:"workspace.charter.nav.deliberations",tabType:"charter:deliberations",tabId:"charter:deliberations"},{labelKey:"workspace.charter.college",tabType:"charter:college",tabId:"charter:college"}],sidebarComponent:!0,badge:!0},slots:[],persistedStores:["charter-pending-create","charter-proposal-filter"]},EE=Object.freeze(Object.defineProperty({__proto__:null,CHARTER_MANIFEST:AE,CHARTER_VERSION:wu},Symbol.toStringTag,{value:"Module"})),ku="0.1.0",RE={bc:"engagementnotes",version:ku,tabs:["engagementnotes:note-list","engagementnotes:note-detail","engagementnotes:rate-card","engagementnotes:deliverable-defaults"],routes:[],rail:{labelKey:"workspace.bc.engagementnotes",fallbackLabel:"Engagement notes",opensOnSelect:!0,sidebar:[{labelKey:"workspace.engagementnotes.allNotes",tabType:"engagementnotes:note-list",tabId:"engagementnotes:notes:all"}],sidebarComponent:!0},slots:[],persistedStores:[]},PE=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENTNOTES_MANIFEST:RE,ENGAGEMENTNOTES_VERSION:ku},Symbol.toStringTag,{value:"Module"})),Au="0.1.0",DE={bc:"jobs",version:Au,tabs:["jobs:jobs","jobs:fleet","jobs:job-detail"],routes:[{address:"jobs:jobs",tabType:"jobs:jobs",labelKey:"workspace.jobs.views.jobs"},{address:"jobs:fleet",tabType:"jobs:fleet",labelKey:"workspace.jobs.views.fleet"},{address:"jobs:job:{id}",tabType:"jobs:job-detail",labelKey:"workspace.address.job",idPiece:"entity"}],rail:{labelKey:"workspace.bc.jobs",fallbackLabel:"Jobs",opensOnSelect:!0,sidebar:[{labelKey:"workspace.jobs.views.jobs",tabType:"jobs:jobs",tabId:"jobs:jobs"},{labelKey:"workspace.jobs.views.fleet",tabType:"jobs:fleet",tabId:"jobs:fleet"}],sidebarComponent:!0},slots:["jobs.runnerTypePicker","jobs.runnerTypeCoverage"],persistedStores:["jobs-view"]},OE=Object.freeze(Object.defineProperty({__proto__:null,JOBS_MANIFEST:DE,JOBS_VERSION:Au},Symbol.toStringTag,{value:"Module"})),Eu="0.1.0",NE={bc:"tasks",version:Eu,tabs:["tasks:task","tasks:task-detail"],routes:[{address:"tasks:task",tabType:"tasks:task",labelKey:"workspace.tasks.title"},{address:"tasks:task:{id}",tabType:"tasks:task-detail",labelKey:"workspace.address.task",idPiece:"entity"}],rail:{labelKey:"workspace.bc.tasks",fallbackLabel:"Tasks",opensOnSelect:!0,sidebar:[{labelKey:"workspace.tasks.title",tabType:"tasks:task",tabId:"tasks:task"}],sidebarComponent:!0,badge:!0},slots:["tasks.claimControl","tasks.activeTaskSummary","tasks.headerAchievements"],persistedStores:["tasks-view","tasks-achievements-view"]},ME=Object.freeze(Object.defineProperty({__proto__:null,TASKS_MANIFEST:NE,TASKS_VERSION:Eu},Symbol.toStringTag,{value:"Module"})),Ru="0.1.0",LE={bc:"timesheet",version:Ru,tabs:["timesheet:my-timesheet"],routes:[{address:"timesheet:my-timesheet",tabType:"timesheet:my-timesheet",labelKey:"workspace.timesheet.title"}],rail:{labelKey:"workspace.bc.timesheet",fallbackLabel:"Timesheets",opensOnSelect:!0,sidebar:[{labelKey:"workspace.timesheet.title",tabType:"timesheet:my-timesheet",tabId:"timesheet:my-timesheet"}],sidebarComponent:!0},slots:["timesheet.notificationBody"],persistedStores:["timesheet-view"]},jE=Object.freeze(Object.defineProperty({__proto__:null,TIMESHEET_MANIFEST:LE,TIMESHEET_VERSION:Ru},Symbol.toStringTag,{value:"Module"})),Pu="0.1.0",UE={bc:"ux",version:Pu,tabs:["ux:personas","ux:gesture-list"],routes:[{address:"ux:persona:org:{id}",tabType:"ux:personas",labelKey:"workspace.ux.personas.title",idPiece:"entity"},{address:"ux:gesture:project:{id}",tabType:"ux:gesture-list",labelKey:"workspace.ux.gestures.title",idPiece:"entity"}],rail:{labelKey:"workspace.bc.ux",fallbackLabel:"UX",opensOnSelect:!1,sidebar:[],sidebarComponent:!0},slots:[],persistedStores:["ux-view"]},$E=Object.freeze(Object.defineProperty({__proto__:null,UX_MANIFEST:UE,UX_VERSION:Pu},Symbol.toStringTag,{value:"Module"}
4174)),xE=["/","/en","/fr","/ja","/en/our-process","/fr/our-process","/ja/our-process","/en/stories","/fr/stories","/ja/stories","/en/about","/fr/about","/ja/about","/en/careers","/fr/careers","/ja/careers","/en/contact","/fr/contact","/ja/contact","/en/legal","/fr/legal","/ja/legal","/en/privacy","/fr/privacy","/ja/privacy","/en/stories/building-br-website-without-code","/fr/stories/building-br-website-without-code","/ja/stories/building-br-website-without-code","/en/stories/episode-2-backend-perspective","/fr/stories/episode-2-backend-perspective","/ja/stories/episode-2-backend-perspective","/en/stories/episode-3-frontend-perspective","/fr/stories/episode-3-frontend-perspective","/ja/stories/episode-3-frontend-perspective","/en/stories/launching-bot-resources","/fr/stories/launching-bot-resources","/ja/stories/launching-bot-resources","/en/stories/o1-preview-a-summary","/fr/stories/o1-preview-a-summary","/ja/stories/o1-preview-a-summary","/en/careers/backend-devops-engineer","/fr/careers/backend-devops-engineer","/ja/careers/backend-devops-engineer","/en/careers/context-engineer-internship","/fr/careers/context-engineer-internship","/ja/careers/context-engineer-internship","/en/careers/flow-engineer-internship","/fr/careers/flow-engineer-internship","/ja/careers/flow-engineer-internship","/en/careers/fullstack-engineer","/fr/careers/fullstack-engineer","/ja/careers/fullstack-engineer","/en/careers/rd-agentic-ai-internship","/fr/careers/rd-agentic-ai-internship","/ja/careers/rd-agentic-ai-internship"],FE={routes:xE},Du="0.1.0",HE={bc:"website",version:Du,tabs:["website:contact-list","website:contact-detail"],routes:[{address:"website:contacts",tabType:"website:contact-list",labelKey:"workspace.website.contacts"},{address:"website:contact:{id}",tabType:"website:contact-detail",labelKey:"workspace.address.contact",idPiece:"entity"}],rail:{labelKey:"workspace.bc.website",fallbackLabel:"Website",opensOnSelect:!1,sidebar:[{labelKey:"workspace.website.contacts",tabType:"website:contact-list",tabId:"website:contacts"}],badge:!0},slots:[],persistedStores:["website-contact-columns"],publicSite:{routes:FE.routes}},zE=Object.freeze(Object.defineProperty({__proto__:null,WEBSITE_MANIFEST:HE,WEBSITE_VERSION:Du},Symbol.toStringTag,{value:"Module"})),qE=mt()(bt(t=>({names:[],remember:e=>t(n=>{const r=e.filter(o=>!n.names.includes(o));return r.length===0?n:{names:[...n.names,...r]}})}),{name:"slice-store-ledger",version:1}));function VE(t){return typeof t!="object"||t===null||!("bc"in t)||typeof t.bc!="string"||!("persistedStores"in t)||!Array.isArray(t.persistedStores)?!1:t.persistedStores.every(e=>typeof e=="string")}const BE=Object.values(Object.assign({"/slices/accounts/manifest.ts":kE,"/slices/charter/manifest.ts":EE,"/slices/engagementnotes/manifest.ts":PE,"/slices/jobs/manifest.ts":OE,"/slices/tasks/manifest.ts":ME,"/slices/timesheet/manifest.ts":jE,"/slices/ux/manifest.ts":$E,"/slices/website/manifest.ts":zE})).flatMap(t=>Object.values(t).filter(VE)).sort((t,e)=>t.bc.localeCompare(e.bc)),GE=BE.flatMap(t=>t.persistedStores);function KE(){for(const t of new Set([...GE,...qE.getState().names]))localStorage.removeItem(t),sessionStorage.removeItem(t)}Yo(KE);const WE=1e4,YE=3e4;let Io=!1,uo=null,Fi=0;async function ri(){await sn().catch(()=>{}),Wf()}const Ou=()=>{document.visibilityState==="visible"&&ri()},Nu=t=>{t.persisted&&ri()},Mu=()=>void ri();function JE(){Io||(Io=!0,Df(),yf(),document.addEventListener("visibilitychange",Ou),window.addEventListener("pageshow",Nu),window.addEventListener("online",Mu),Fi=Date.now(),uo=setInterval(()=>{const t=Date.now(),e=t-Fi;Fi=t,e>YE&&document.visibilityState==="visible"&&ri()},WE))}function _o(){Io&&(Io=!1,Of(),bf(),document.removeEventListener("visibilitychange",Ou),window.removeEventListener("pageshow",Nu),window.removeEventListener("online",Mu),uo!==null&&clearInterval(uo),uo=null)}const Lu={status:"seating",staleSince:null,failing:!1},el=3;function QE(t){let e="seating",n=!1,r=Lu,o=null;const i={stream:0,snapshot:0};function a(){const{link:c}=ue.getState(),l=e==="live"&&(c==="reconnecting"||c==="offline")?"stale":e;l==="live"||!n?o=null:o??(o=Date.now());const u=i.stream>=el||i.snapshot>=el;l===r.status&&o===r.staleSince&&u===r.failing||(r={status:l,staleSince:o,failing:u},t())}function s(c){e=c,c==="live"&&(n=!0),a()}return{phase:()=>e,view:()=>r,set:s,unseat:()=>s(e==="live"?"resyncing":e),fail:c=>(i[c]+=1,a(),i[c]),succeed:c=>{i[c]=0,a()},refresh:a}}const XE="ROOT_SUBSCRIPTION",tl=new WeakMap;function ju(t){let e=tl.get(t);return e||(e={...t,definitions:t.definitions.map(n=>n.kind===Oh.OPERATION_DEFINITION?{...n,operation:Dh.QUERY}:n)},tl.set(t,e)),e}function as(t){return{id:XE,variables:t.variables}}function ZE(t,e,n){t.cache.writeQuery({...as(e),query:e.subscription,data:n})}function eR(t,e){return t.cache.readQuery({...as(e),query:ju(e.subscription),returnPartialData:!0}
4174)}function tR(t,e,n){return t.cache.watch({...as(e),query:ju(e.subscription),optimistic:!0,returnPartialData:!0,callback:n})}const nR=1e3,Jr=-1;function rR(t,e,{notify:n,forget:r}){const o=QE(n);let i=0,a=null,s=null,c=Jr,l=!1,u=!1,p=!1,h=!1,m=null,I=0,y=!1,S=null,w=null,T=null;const D=F=>(F!==null&&clearTimeout(F),null);function K(){o.phase()==="lost"||s===null||S!==null||l||(o.succeed("stream"),o.set("live"))}function W(){s=null,a==null||a.unsubscribe(),a=null,w=D(w),I+=1,y=!1,m=null}function q(){var X;W(),S=D(S);const{link:F,epoch:M,hasConnectedOnce:ne}=ue.getState();c=F==="live"?M:Jr,l=!1;const oe={};s=oe,(X=e.onSession)==null||X.call(e,t);const G=t.subscribe({query:e.subscription,variables:e.variables,fetchPolicy:"no-cache",context:{queryDeduplication:!1}}).subscribe({next:Y=>{s===oe&&(Y.error?Re(Y.error):Y.data!==void 0&&Ce(Y.data))},error:Y=>{s===oe&&U()},complete:()=>{s===oe&&U()}});a=s===oe?G:null,e.snapshot&&(c===Jr&&ne?(y=!0,m=[]):ce())}function Ce(F){m?m.push(F):Ee(F)}function Ee(F){var ne;let M;try{e.writeFrame&&ZE(t,e,F),M=(ne=e.fold)==null?void 0:ne.call(e,t,F)}catch(oe){console.error(`[${e.key}] fold failed`,oe),ve();return}M!=="ignored"&&(e.snapshot||K())}function Re(F){Ka(F)?Pe():Qc(F)?Ne():ve()}function Pe(){if(l=!0,W(),S=D(S),o.unseat(),u)return;u=!0;const F=()=>{u=!1,l&&!p&&!h&&q()};Yf().then(F,F)}function Ne(){W(),S=D(S),o.set("lost")}function U(F){s=null,a=null,!(S!==null||o.phase()==="lost"||p)&&ve()}function xe(F){return Va(F-1,o.view().failing?Lf:void 0)}function ve(){const F=o.fail("stream");o.unseat(),!(p||S!==null)&&(S=setTimeout(()=>{S=null,q()},xe(F)))}function ce(){const F=e.snapshot;if(!F)return;y=!1,w=D(w),m??(m=[]);const M=++I,ne=()=>{const oe=m??[];m=null,oe.forEach(Ee)};F(t).then(()=>{M===I&&(o.succeed("snapshot"),ne(),K())},oe=>{if(M!==I)return;if(ne(),Qc(oe)){Ne();return}const G=o.fail("snapshot");w=setTimeout(()=>{w=null,ce()},xe(G))})}function ae(){h||(h=!0,W(),S=D(S),T=D(T),r(),n())}const he={subscription:e.subscription,acquire:()=>{i+=1,T=D(T)},release:()=>{i-=1,!(i>0)&&(T=setTimeout(ae,nR))},expire:()=>{i<=0&&ae()},reopen:()=>{o.succeed("stream"),o.succeed("snapshot"),o.unseat(),o.phase()==="lost"&&o.set("resyncing"),p||q()},view:o.view,close:ae,park:()=>{p=!0,W(),S=D(S),o.unseat()},unpark:()=>{p&&(p=!1,o.phase()==="lost"&&o.set("resyncing"),q())},onLive:F=>{var M;if(F.link==="live"&&F.epoch!==c&&!p&&!l){const ne=c!==Jr;c=F.epoch,s===null||o.phase()==="lost"?(o.phase()==="lost"&&o.set("resyncing"),q()):ne?(o.unseat(),(M=e.onSession)==null||M.call(e,t),ce()):y&&ce()}o.refresh()}};return q(),he}function oR(t,e,{variables:n,writeFrame:r,fold:o,snapshot:i,onSession:a}={}){return{key:n===void 0?t:`${t}:${iR(n)}`,subscription:e,variables:n,writeFrame:r,fold:o&&((c,l)=>o(c,l,n)),snapshot:i&&(c=>i(c,n)),onSession:a}}function iR(t){return JSON.stringify(t,(e,n)=>n!==null&&typeof n=="object"&&!Array.isArray(n)?Object.fromEntries(Object.entries(n).sort(([r],[o])=>r<o?-1:r>o?1:0)):n)}const Ar=new WeakMap,fr=new Set,va=new Set,aR=()=>va.forEach(t=>t());ue.subscribe((t,e)=>{const n=ut(e),r=ut(t);n&&!r?[...fr].forEach(o=>o.park()):!n&&r&&[...fr].forEach(o=>o.unpark()),(t.epoch!==e.epoch||t.link!==e.link)&&[...fr].forEach(o=>o.onLive(t))});function sR(t,e){let n=Ar.get(t);n||(n=new Map,Ar.set(t,n));let r=n.get(e.key);if(!r){const a=n,s=rR(t,e,{notify:aR,forget:()=>{a.get(e.key)===s&&a.delete(e.key),fr.delete(s)}});a.set(e.key,s),fr.add(s),r=s}r.acquire();const o=r;let i=!1;return()=>{i||(i=!0,o.release())}}function cR(t,e){var n,r;(r=(n=Ar.get(t))==null?void 0:n.get(e))==null||r.expire()}function lR(t,e){var n,r;return((r=(n=Ar.get(t))==null?void 0:n.get(e))==null?void 0:r.view())??Lu}function dR(t){return va.add(t),()=>{va.delete(t)}}function uR(t,e){var n,r;(r=(n=Ar.get(t))==null?void 0:n.get(e))==null||r.reopen()}function pR(t,{skip:e=!1}={}){const n=Go(),r=A.useRef(t);A.useEffect(()=>{r.current=t});const o=A.useRef(null),{key:i}=t;return A.useEffect(()=>{const a=o.current;return a&&(a.client!==n||a.key!==i)&&cR(a.client,a.key),o.current=e?null:{client:n,key:i},e?void 0:sR(n,r.current)},[n,i,e]),mR(t)}function mR(t){const e=Go(),{key:n}=t;return A.useSyncExternalStore(dR,A.useCallback(()=>lR(e,n),[e,n]))}function JF(t){const e=Go(),{key:n}=t;return A.useCallback(()=>uR(e,n),[e,n])}function QF(t){const e=Go(),n=A.useCallback(o=>tR(e,t,o),[e,t]),r=A.useCallback(()=>eR(e,t),[e,t]);return A.useSyncExternalStore(n,r)}function XF(t){return gd(ue,t)}function ZF(t,{skip:e=!1}={}){const n=A.useRef(t);A.useEffect(()=>{n.current=t}),A.useEffect(()=>e?void 0:Cf(()=>n.current()),[e])}async function ss(){const{data:t,error:e}=await H.query({query:qn,fetchPolicy:"network-only"});if(e)throw e;return t==null?void 0:t.identityMe}function cr(t){const e=J.getState();e.reset(),e.setTokenProvider(t)}function hR(t){try{const e=t.split(".");if(e.length!==3)return null;const n=e[1].replace(/-/g,"+").replace(/_/g,"/"),r=decodeURIComponent(atob(n).split("").map(o=>
4174"%"+("00"+o.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(r)}catch{return null}}function gR(t){switch(t){case"user_disabled":return"user_disabled";case"unauthorized":return"unauthorized";case"validation_error":return"validation_error";case"internal_error":return"server_error";default:return"unauthorized"}}async function nl(t,e){var l;const n=J.getState(),r=(l=hR(t))==null?void 0:l.picture,o=typeof r=="string"?r:null;let i;try{const u=jr();i=await fetch(`${u}/auth/token`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({grant_type:"id_token",id_token:t})})}catch{throw cr(e),new Error("server_unreachable")}if(!i.ok){cr(e);let u="unauthorized";const p=await i.json().catch(()=>null);throw p!==null&&typeof p=="object"&&"error"in p&&typeof p.error=="string"&&(u=gR(p.error)),new Error(u)}const a=await i.json().catch(()=>null),s=a!==null&&typeof a=="object"&&"expires_in"in a&&typeof a.expires_in=="number"?a.expires_in:void 0;let c;try{c=await ss()}catch(u){cr(e);const p=typeof u=="object"&&u!==null&&"networkError"in u?u.networkError:void 0;throw new Error(p?"server_unreachable":"server_error")}if(!c)throw cr(e),new Error("account_not_found");return xa(),Id(s),n.setTokenProvider(e),n.setAvatarUrl(o),n.setAuthenticated(!0),n.setLoading(!1),Xo(c,e,o)}async function e0(t){var o;const e=((o=H.readQuery({query:qn}))==null?void 0:o.identityMe.email)??null;await H.mutate({mutation:z_,variables:{targetUserId:t}});const n=await ss();if(!n)throw new Error("Impersonation failed: no session for target user");const r=J.getState();return r.setImpersonating(!0,e),Jo(),H.resetStore(),Ba(),Xo(n,r.tokenProvider,null)}async function Uu(){J.getState().setImpersonating(!1);try{await H.mutate({mutation:q_})}catch{}Jo(),H.resetStore(),Ba()}function fR(){return J(t=>t.isImpersonating)}async function vR(){try{const t=await ss();if(!t)return J.getState().reset(),null;const e=J.getState();return xa(),Id(),e.setAuthenticated(!0),Xo(t,e.tokenProvider,e.avatarUrl)}catch(t){return tv(t)?$a():J.getState().reset(),null}}async function yR(){_o(),Ga("signedOut");try{const t=jr();await fetch(`${t}/auth/logout`,{method:"POST",credentials:"include"})}catch{}J.getState().signOut(),Ud(),Jo(),await H.clearStore(),xa()}function bR(){_o(),Ga("expired");const t=jr();fetch(`${t}/auth/logout`,{method:"POST",credentials:"include"}).catch(()=>{});const e=J.getState();cr(e.tokenProvider),Jo(),H.clearStore().catch(()=>{}),e.setError("session_expired"),e.setSessionExpired(!0)}uf(bR);const $u="brSessionReplayed",SR=Nh(({error:t,operation:e,forward:n})=>{if(rl(e,"subscription"))return;if(Jl.is(t)&&t.statusCode===403){CR();return}const r=Pd(t),o=Ka(t);if(!r&&!o)return;const i=J.getState();if(i.isAuthenticated){if(i.isImpersonating){Uu();return}if(o&&rl(e,"mutation")){Rd(t),IR();return}if(e.getContext()[$u]!==!0)return _R(e,n,t)}});function rl(t,e){const n=Ql(t.query);return n.kind==="OperationDefinition"&&n.operation===e}async function IR(){await sn({force:!0}).catch(()=>{})}function _R(t,e,n){return t.setContext({[$u]:!0}),new Mh(r=>{let o,i=!1;return sn({force:!0}).then(()=>{i||(o=e(t).subscribe(r))}).catch(a=>{Fa(a)||Rd(n),r.error(n)}),()=>{i=!0,o==null||o.unsubscribe()}})}function CR(){const t=J.getState();if(t.isAuthenticated){if(t.isImpersonating){Uu();return}t.reset()}}const TR=t=>Lh([SR,t]),wR=(t,e,{readField:n})=>{if(!t)return e;const r=p=>n("id",p)??"",o=p=>n("createdAt",p)??"",i=new Map;for(const p of t.nodes)i.set(r(p),p);for(const p of e.nodes)i.set(r(p),p);const a=Array.from(i.values()).sort((p,h)=>{const m=o(p),I=o(h);if(m!==I)return m<I?1:-1;const y=r(p),S=r(h);return y<S?1:y>S?-1:0}),s=a[a.length-1],c=s?r(s):"",u=e.nodes.some(p=>r(p)===c)?e.hasPreviousPage:t.hasPreviousPage;return{...e,nodes:a,hasPreviousPage:u}},kR={Organization:{keyFields:["id"]},User:{keyFields:["id"]},Group:{keyFields:["id"]},OrgDomain:{keyFields:["id"]},ScopeDeclarationGql:{keyFields:["scope"]},OrgInvitation:{keyFields:["organizationId","userId"],fields:{affordances:{merge:!1}}},PersonalAccessToken:{keyFields:["id"]},OrgActivityNode:{keyFields:["id"]}},AR={identityOrganizations:{merge:!1},identityUsers:{merge:!1},identityUser:{read:(t,{args:e,toReference:n})=>{if(t!==void 0)return t;const r=e==null?void 0:e.id;return typeof r!="string"?t:n({__typename:"User",id:r})}},identityUserView:{merge:!0},identityOrgMembers:{merge:!1},identityMyOrgInvitations:{merge:!1},identityGroups:{merge:!1},identityGroupMembers:{merge:!1},identityOrganizationDomains:{merge:!1},identityOrganizationActivity:{keyArgs:["orgId"],merge:wR}},ER=Object.freeze(Object.defineProperty({__proto__:null,identityQueryFields:AR,identityTypePolicies:kR},Symbol.toStringTag,{value:"Module"})),RR={Notification:{keyFields:["id"]}}
4174,PR={notifierNotifications:{keyArgs:!1,merge:!1}},DR=Object.freeze(Object.defineProperty({__proto__:null,notifierQueryFields:PR,notifierTypePolicies:RR},Symbol.toStringTag,{value:"Module"})),OR={projectsProjects:{keyArgs:!1,merge:!1}},NR=Object.freeze(Object.defineProperty({__proto__:null,projectsQueryFields:OR},Symbol.toStringTag,{value:"Module"})),MR={ServicesService:{keyFields:["id"]},ServicesDiscussionParticipant:{keyFields:["userId"]},ServicesPatchTechnicalDocuments:{keyFields:["patchVersionId"]},ServicesIntentDocument:{keyFields:["minorVersionId","kind"]},ServicesKnownTask:{keyFields:["taskId"]},ServicesKnownTaskTarget:{keyFields:!1}},LR={servicesCatalog:{merge:!1},servicesContractDiscussions:{merge:!1},servicesKnownTasks:{merge:!1}},jR=Object.freeze(Object.defineProperty({__proto__:null,servicesQueryFields:LR,servicesTypePolicies:MR},Symbol.toStringTag,{value:"Module"})),UR=Object.assign({"./identity.ts":ER,"./notifier.ts":DR,"./projects.ts":NR,"./services.ts":jR}),$R=t=>t.endsWith("TypePolicies"),xR=t=>t.endsWith("QueryFields"),FR=t=>t.endsWith("SubscriptionFields"),xu={},Fu={},Hu={};for(const t of Object.values(UR))for(const e of Object.keys(t))$R(e)?Object.assign(xu,t[e]):xR(e)?Object.assign(Fu,t[e]):FR(e)&&Object.assign(Hu,t[e]);const ol={...xu,Query:{fields:Fu},Subscription:{fields:Hu}},HR={possibleTypes:{AccountsAssignableManagersDelta:["AccountsAssignableManagersRemove","AccountsAssignableManagersReset","AccountsAssignableManagersUpsert","LanesPaused","LanesResumed"],AccountsAssignableManagersViewUnion:["AccountsAssignableManagerView"],AccountsDelta:["AccountsRemove","AccountsReset","AccountsUpsert","LanesPaused","LanesResumed"],AccountsLinkableOrgsDelta:["AccountsLinkableOrgsRemove","AccountsLinkableOrgsReset","AccountsLinkableOrgsUpsert","LanesPaused","LanesResumed"],AccountsLinkableOrgsViewUnion:["AccountsLinkableOrgView"],AccountsViewUnion:["AccountView"],JobsFleetStreamMessage:["JobsFleetSnapshot","JobsRunnerTypeDelta"],JobsJobEvent:["JobsJobAffordancesChangedEvent","JobsJobCancelledEvent","JobsJobCompletedEvent","JobsJobDeletedEvent","JobsJobFailedEvent","JobsJobQueuedEvent","JobsManualRetryStartedEvent","JobsRetryScheduledEvent","JobsRunCancelledEvent","JobsRunCompletedEvent","JobsRunDispatchedEvent","JobsRunFailedEvent","JobsRunPlanDeclaredEvent","JobsRunStartedEvent","JobsRunStepStartedEvent"],JobsJobLogStreamMessage:["JobsJobLogSnapshot","JobsRunLogAppended"],JobsJobStreamMessage:["JobsJobDelta","JobsJobSnapshot"],JobsJobsStreamMessage:["JobsJobsDelta","JobsJobsSnapshot"],NotifierNotificationEvent:["NotificationAdded","NotificationsDeleted","NotificationsRead"],ServicesServiceMember:["ServicesConsumption","ServicesContractBreach","ServicesContractDiscussion","ServicesE2eTest","ServicesIntentDocument","ServicesKnownTask","ServicesMinorVersionSummary","ServicesOffer","ServicesPatchTechnicalDocuments","ServicesPatchVersionSummary","ServicesService"],ServicesStackMember:["ServicesFramework","ServicesLanguage","ServicesPatchWorkAutomationRule"]}},ya=new Map,zu=new Set,vr=new Map;function qu(t,e){e.possibleTypes&&t.policies.addPossibleTypes(e.possibleTypes),e.typePolicies&&t.policies.addT
4174ypePolicies(e.typePolicies)}function ba(t){return Object.keys(t??{}).filter(e=>e!=="Query"&&e!=="Subscription")}function zR(t,e){for(const n of ba(e))vr.has(n)||vr.set(n,"shell");for(const n of ya.values())qu(t,n);zu.add(t)}function t0(t,e){if(ya.has(t))return;const n=ba(e.typePolicies).filter(r=>(vr.get(r)??t)!==t);if(n.length>0)throw new Error(`The "${t}" slice declares cache policies for ${n.map(r=>`"${r}" (keyed by ${vr.get(r)})`).join(", ")}.`);for(const r of ba(e.typePolicies))vr.set(r,t);ya.set(t,e);for(const r of zu)qu(r,e)}function qR(){const t=new Fh({possibleTypes:HR.possibleTypes,typePolicies:ol});return zR(t,ol),t}function VR(){const t=jr(),e=new jh({uri:`${t}/graphql`,credentials:"include"}),n=qf(),r=new Uh(n),o=$h(({query:i})=>{const a=Ql(i);return a.kind==="OperationDefinition"&&a.operation==="subscription"},r,e);return new xh({link:TR(o),cache:qR(),devtools:{enabled:!1},defaultOptions:{watchQuery:{fetchPolicy:"cache-and-network"}}})}const H=VR();function BR(t={}){const{nonce:e,locale:n,onScriptLoadSuccess:r,onScriptLoadError:o}=t,[i,a]=A.useState(!1),s=A.useRef(r);s.current=r;const c=A.useRef(o);return c.current=o,A.useEffect(()=>{const l=document.createElement("script");return l.src="https://accounts.google.com/gsi/client",n&&(l.src+=`?hl=${n}`),l.async=!0,l.defer=!0,l.nonce=e,l.onload=()=>{var u;a(!0),(u=s.current)===null||u===void 0||u.call(s)},l.onerror=()=>{var u;a(!1),(u=c.current)===null||u===void 0||u.call(c)},document.body.appendChild(l),()=>{document.body.removeChild(l)}},[e]),i}const Vu=A.createContext(null);function GR({clientId:t,nonce:e,locale:n,onScriptLoadSuccess:r,onScriptLoadError:o,children:i}){const a=BR({nonce:e,onScriptLoadSuccess:r,onScriptLoadError:o,locale:n}),s=A.useMemo(()=>({locale:n,clientId:t,scriptLoadedSuccessfully:a}),[t,a]);return E.createElement(Vu.Provider,{value:s},i)}function KR(){const t=A.useContext(Vu);if(!t)throw new Error("Google OAuth components must be used within GoogleOAuthProvider");return t}function WR(t){var e;return(e=t==null?void 0:t.clientId)!==null&&e!==void 0?e:t==null?void 0:t.client_id}const YR={large:40,medium:32,small:20};function n0({onSuccess:t,onError:e,useOneTap:n,promptMomentNotification:r,type:o="standard",theme:i="outline",size:a="large",text:s,shape:c,logo_alignment:l,width:u,click_listener:p,state:h,containerProps:m,...I}){const y=A.useRef(null),{clientId:S,locale:w,scriptLoadedSuccessfully:T}=KR(),D=A.useRef(t);D.current=t;const K=A.useRef(e);K.current=e;const W=A.useRef(r);return W.current=r,A.useEffect(()=>{var q,Ce,Ee,Re,Pe,Ne,U,xe,ve;if(T)return(Ee=(Ce=(q=window==null?void 0:window.google)===null||q===void 0?void 0:q.accounts)===null||Ce===void 0?void 0:Ce.id)===null||Ee===void 0||Ee.initialize({client_id:S,callback:ce=>{var ae;if(!(ce!=null&&ce.credential))return(ae=K.current)===null||ae===void 0?void 0:ae.call(K);const{credential:he,select_by:F}=ce;D.current({credential:he,clientId:WR(ce),select_by:F})},...I}),(Ne=(Pe=(Re=window==null?void 0:window.google)===null||Re===void 0?void 0:Re.accounts)===null||Pe===void 0?void 0:Pe.id)===null||Ne===void 0||Ne.renderButton(y.current,{type:o,theme:i,size:a,text:s,shape:c,logo_alignment:l,width:u,locale:w,click_listener:p,state:h}),n&&((ve=(xe=(U=window==null?void 0:window.google)===null||U===void 0?void 0:U.accounts)===null||xe===void 0?void 0:xe.id)===null||ve===void 0||ve.prompt(W.current)),()=>{var ce,ae,he;n&&((he=(ae=(ce=window==null?void 0:window.google)===null||ce===void 0?void 0:ce.accounts)===null||ae===void 0?void 0:ae.id)===null||he===void 0||he.cancel())}},[S,T,n,o,i,a,s,c,l,u,w]),E.createElement("div",{...m,ref:y,style:{height:YR[a],...m==null?void 0:m.style}})}/*! @azure/msal-common v15.14.1 2026-01-17 */const C={LIBRARY_NAME:"MSAL.JS",SKU:"msal.js.common",DEFAULT_AUTHORITY:"https://login.microsoftonline.com/common/",DEFAULT_AUTHORITY_HOST:"login.microsoftonline.com",DEFAULT_COMMON_TENANT:"common",ADFS:"adfs",DSTS:"dstsv2",AAD_INSTANCE_DISCOVERY_ENDPT:"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=",CIAM_AUTH_URL:".ciamlogin.com",AAD_TENANT_DOMAIN_SUFFIX:".onmicrosoft.com",RESOURCE_DELIM:"|",NO_ACCOUNT:"NO_ACCOUNT",CLAIMS:"claims",CONSUMER_UTID:"9188040d-6c67-4c5b-b112-36a304b66dad",OPENID_SCOPE:"openid",PROFILE_SCOPE:"profile",OFFLINE_ACCESS_SCOPE:"offline_access",EMAIL_SCOPE:"email",CODE_GRANT_TYPE:"authorization_code",RT_GRANT_TYPE:"refresh_token",S256_CODE_CHALLENGE_METHOD:"S256",URL_FORM_CONTENT_TYPE:"application/x-www-form-urlencoded;charset=utf-8",AUTHORIZATION_PENDING:"authorization_pending",NOT_DEFINED:"not_defined",EMPTY_STRING:"",NOT_APPLICABLE:"N/A",NOT_AVAILABLE:"Not Available",FORWARD_SLASH:"/",IMDS_ENDPOINT:"http://169.254.169.254/metadata/instance/compute/location",IMDS_VERSION:"2020-06-01",IMDS_TIMEOUT:2e3,AZURE_REGION_AUTO_DISCOVER_FLAG:"TryAutoDetect",REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX:"login.microsoft.com",KNOWN_PUBLIC_CLOUDS:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"],SHR_NONCE_VALIDITY:240,INVALID_INSTANCE:"invalid_instance"},Ut={SUCCESS:200,SUCCESS_RANGE_START:200,SUCCESS_RANGE_END:299,REDIRECT:302,CLIENT_ERROR:400,CLIENT_ERROR_RANGE_START:400,BAD_REQUEST:400,UNAUTHORIZED:401,NOT_FOUND:404,REQUEST_TIMEOUT:408,GONE:410,TOO_MANY_REQUESTS:429,CLIENT_ERROR_RANGE_END:499,SERVER_ERROR:500,SERVER_ERROR_RANGE_START:500,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,SERVER_ERROR_RANGE_END:599,MULTI_SIDED_ERROR:600},Yt={GET:"GET",POST:"POST"},Gn=[C.OPENID_SCOPE,C.PROFILE_SCOPE,C.OFFLINE_ACCESS_SCOPE],il=[...Gn,C.EMAIL_SCOPE],Le={CONTENT_TYPE:"Content-Type",CONTENT_LENGTH:"Content-Length",RETRY_AFTER:"Retry-After",CCS_HEADER:"X-AnchorMailbox",WWWAuthenticate:"WWW-Authenticate",AuthenticationInfo:"Authentication-Info",X_MS_REQUEST_ID:"x-ms-request-id",X_MS_HTTP_VERSION:"x-ms-httpver"},al={ACTIVE_ACCOUNT_FILTERS:"active-account-filters"},$t={COMMON:"common",ORGANIZATIONS:"organizations",CONSUMERS:"consumers"},Qr={ACCESS_TOKEN:"access_token",XMS_CC:"xms_cc"},ke={LOGIN:"login",SELECT_ACCOUNT:"select_account",CONSENT:"consent",NONE:"none",
4174NO_SESSION:"no_session"},cs={CODE:"code",IDTOKEN_TOKEN_REFRESHTOKEN:"id_token token refresh_token"},oi={QUERY:"query",FRAGMENT:"fragment"},JR={QUERY:"query"},Bu={AUTHORIZATION_CODE_GRANT:"authorization_code",REFRESH_TOKEN_GRANT:"refresh_token"},Xr={MSSTS_ACCOUNT_TYPE:"MSSTS",ADFS_ACCOUNT_TYPE:"ADFS",GENERIC_ACCOUNT_TYPE:"Generic"},Er={CACHE_KEY_SEPARATOR:"-",CLIENT_INFO_SEPARATOR:"."},we={ID_TOKEN:"IdToken",ACCESS_TOKEN:"AccessToken",ACCESS_TOKEN_WITH_AUTH_SCHEME:"AccessToken_With_AuthScheme",REFRESH_TOKEN:"RefreshToken"},ls="appmetadata",QR="client_info",Co="1",To={CACHE_KEY:"authority-metadata",REFRESH_TIME_SECONDS:3600*24},Be={CONFIG:"config",CACHE:"cache",NETWORK:"network",HARDCODED_VALUES:"hardcoded_values"},Te={SCHEMA_VERSION:5,MAX_LAST_HEADER_BYTES:330,MAX_CACHED_ERRORS:50,CACHE_KEY:"server-telemetry",CATEGORY_SEPARATOR:"|",VALUE_SEPARATOR:",",OVERFLOW_TRUE:"1",OVERFLOW_FALSE:"0",UNKNOWN_ERROR:"unknown_error"},Q={BEARER:"Bearer",POP:"pop",SSH:"ssh-cert"},yr={DEFAULT_THROTTLE_TIME_SECONDS:60,DEFAULT_MAX_THROTTLE_TIME_SECONDS:3600,THROTTLING_PREFIX:"throttling",X_MS_LIB_CAPABILITY_VALUE:"retry-after, h429"},sl={INVALID_GRANT_ERROR:"invalid_grant",CLIENT_MISMATCH_ERROR:"client_mismatch"},hn={FAILED_AUTO_DETECTION:"1",INTERNAL_CACHE:"2",ENVIRONMENT_VARIABLE:"3",IMDS:"4"},Hi={CONFIGURED_NO_AUTO_DETECTION:"2",AUTO_DETECTION_REQUESTED_SUCCESSFUL:"4",AUTO_DETECTION_REQUESTED_FAILED:"5"},Kt={NOT_APPLICABLE:"0",FORCE_REFRESH_OR_CLAIMS:"1",NO_CACHED_ACCESS_TOKEN:"2",CACHED_ACCESS_TOKEN_EXPIRED:"3",PROACTIVELY_REFRESHED:"4"},XR={Pop:"pop"},Gu=300;/*! @azure/msal-common v15.14.1 2026-01-17 */const wo="unexpected_error",ZR="post_request_failed";/*! @azure/msal-common v15.14.1 2026-01-17 */const cl={[wo]:"Unexpected error in authentication.",[ZR]:"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details."};class te extends Error{constructor(e,n,r){const o=n?`${e}: ${n}`:e;super(o),Object.setPrototypeOf(this,te.prototype),this.errorCode=e||C.EMPTY_STRING,this.errorMessage=n||C.EMPTY_STRING,this.subError=r||C.EMPTY_STRING,this.name="AuthError"}setCorrelationId(e){this.correlationId=e}}function Sa(t,e){return new te(t,e?`${cl[t]} ${e}`:cl[t])}/*! @azure/msal-common v15.14.1 2026-01-17 */const ds="client_info_decoding_error",Ku="client_info_empty_error",us="token_parsing_error",Wu="null_or_empty_token",Tt="endpoints_resolution_error",Yu="network_error",Ju="openid_config_error",Qu="hash_not_deserialized",$n="invalid_state",Xu="state_mismatch",Ia="state_not_found",Zu="nonce_mismatch",ps="auth_time_not_found",ep="max_age_transpired",eP="multiple_matching_tokens",tP="multiple_matching_accounts",tp="multiple_matching_appMetadata",np="request_cannot_be_made",rp="cannot_remove_empty_scope",op="cannot_append_scopeset",_a="empty_input_scopeset",nP="device_code_polling_cancelled",rP="device_code_expired",oP="device_code_unknown_error",ms="no_account_in_silent_request",ip="invalid_cache_record",hs="invalid_cache_environment",Ca="no_account_found",Ta="no_crypto_object",iP="unexpected_credential_type",aP="invalid_assertion",sP="invalid_client_credential",xt="token_refresh_required",cP="user_timeout_reached",ap="token_claims_cnf_required_for_signedjwt",sp="authorization_code_missing_from_server_response",cp="binding_key_not_removed",lp="end_session_endpoint_not_supported",gs="key_id_missing",lP="no_network_connectivity",dP="user_canceled",uP="missing_tenant_id_error",x="method_not_implemented",pP="nested_app_auth_bridge_disabled",mP="platform_broker_error";/*! @azure/msal-common v15.14.1 2026-01-17 */const ll={[ds]:"The client info could not be parsed/decoded correctly",[Ku]:"The client info was empty",[us]:"Token cannot be parsed",[Wu]:"The token is null or empty",[Tt]:"Endpoints cannot be resolved",[Yu]:"Network request failed",[Ju]:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.",[Qu]:"The hash parameters could not be deserialized",[$n]:"State was not the expected format",[Xu]:"State mismatch error",[Ia]:"State not found",[Zu]:"Nonce mismatch error",[ps]:"Max Age was requested and the ID token is missing the auth_time variable. auth_time is an optional claim and is not enabled by default - it must be enabled. See https://aka.ms/msaljs/optional-claims for more information.",[ep]:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.",[eP]:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account.",[tP]:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account",[tp]:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata",[np]:"Token request cannot be made without authorization code or refresh token.",[rp]:"Cannot remove null or empty scope from ScopeSet",[op]:"Cannot append ScopeSet",[_a]:"Empty input ScopeSet cannot be processed",[nP]:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.",[rP]:"Device code is expired.",[oP]:"Device code stopped polling for unknown reasons.",[ms]:"Please pass an account object, silent flow is not supported without account information",[ip]:"Cache record object was null or undefined.",[hs]:"Invalid environment when attempting to create cache entry",[Ca]:"No account found in cache for given key.",[Ta]:"No crypto object detected.",[iP]:"Unexpected credential type.",[aP]:"Client assertion must meet requirements described 
4174in https://tools.ietf.org/html/rfc7515",[sP]:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential",[xt]:"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.",[cP]:"User defined timeout for device code polling reached",[ap]:"Cannot generate a POP jwt if the token_claims are not populated",[sp]:"Server response does not contain an authorization code to proceed",[cp]:"Could not remove the credential's binding key from storage.",[lp]:"The provided authority does not support logout",[gs]:"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.",[lP]:"No network connectivity. Check your internet connection.",[dP]:"User cancelled the flow.",[uP]:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow.",[x]:"This method has not been implemented",[pP]:"The nested app auth bridge is disabled",[mP]:"An error occurred in the native broker. See the platformBrokerError property for details."};class fs extends te{constructor(e,n){super(e,n?`${ll[e]}: ${n}`:ll[e]),this.name="ClientAuthError",Object.setPrototypeOf(this,fs.prototype)}}function k(t,e){return new fs(t,e)}/*! @azure/msal-common v15.14.1 2026-01-17 */const ko={createNewGuid:()=>{throw k(x)},base64Decode:()=>{throw k(x)},base64Encode:()=>{throw k(x)},base64UrlEncode:()=>{throw k(x)},encodeKid:()=>{throw k(x)},async getPublicKeyThumbprint(){throw k(x)},async removeTokenBindingKey(){throw k(x)},async clearKeystore(){throw k(x)},async signJwt(){throw k(x)},async hashString(){throw k(x)}};/*! @azure/msal-common v15.14.1 2026-01-17 */var re;(function(t){t[t.Error=0]="Error",t[t.Warning=1]="Warning",t[t.Info=2]="Info",t[t.Verbose=3]="Verbose",t[t.Trace=4]="Trace"})(re||(re={}));class kt{constructor(e,n,r){this.level=re.Info;const o=()=>{},i=e||kt.createDefaultLoggerOptions();this.localCallback=i.loggerCallback||o,this.piiLoggingEnabled=i.piiLoggingEnabled||!1,this.level=typeof i.logLevel=="number"?i.logLevel:re.Info,this.correlationId=i.correlationId||C.EMPTY_STRING,this.packageName=n||C.EMPTY_STRING,this.packageVersion=r||C.EMPTY_STRING}static createDefaultLoggerOptions(){return{loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:re.Info}}clone(e,n,r){return new kt({loggerCallback:this.localCallback,piiLoggingEnabled:this.piiLoggingEnabled,logLevel:this.level,correlationId:r||this.correlationId},e,n)}logMessage(e,n){if(n.logLevel>this.level||!this.piiLoggingEnabled&&n.containsPii)return;const i=`${`[${new Date().toUTCString()}] : [${n.correlationId||this.correlationId||""}]`} : ${this.packageName}@${this.packageVersion} : ${re[n.logLevel]} - ${e}`;this.executeCallback(n.logLevel,i,n.containsPii||!1)}executeCallback(e,n,r){this.localCallback&&this.localCallback(e,n,r)}error(e,n){this.logMessage(e,{logLevel:re.Error,containsPii:!1,correlationId:n||C.EMPTY_STRING})}errorPii(e,n){this.logMessage(e,{logLevel:re.Error,containsPii:!0,correlationId:n||C.EMPTY_STRING})}warning(e,n){this.logMessage(e,{logLevel:re.Warning,containsPii:!1,correlationId:n||C.EMPTY_STRING})}warningPii(e,n){this.logMessage(e,{logLevel:re.Warning,containsPii:!0,correlationId:n||C.EMPTY_STRING})}info(e,n){this.logMessage(e,{logLevel:re.Info,containsPii:!1,correlationId:n||C.EMPTY_STRING})}infoPii(e,n){this.logMessage(e,{logLevel:re.Info,containsPii:!0,correlationId:n||C.EMPTY_STRING})}verbose(e,n){this.logMessage(e,{logLevel:re.Verbose,containsPii:!1,correlationId:n||C.EMPTY_STRING})}verbosePii(e,n){this.logMessage(e,{logLevel:re.Verbose,containsPii:!0,correlationId:n||C.EMPTY_STRING})}trace(e,n){this.logMessage(e,{logLevel:re.Trace,containsPii:!1,correlationId:n||C.EMPTY_STRING})}tracePii(e,n){this.logMessage(e,{logLevel:re.Trace,containsPii:!0,correlationId:n||C.EMPTY_STRING})}isPiiLoggingEnabled(){return this.piiLoggingEnabled||!1}}/*! @azure/msal-common v15.14.1 2026-01-17 */const dp="@azure/msal-common",vs="15.14.1";/*! @azure/msal-common v15.14.1 2026-01-17 */const ys={None:"none"};/*! @azure/msal-common v15.14.1 2026-01-17 */const up="redirect_uri_empty",hP="claims_request_parsing_error",pp="authority_uri_insecure",lr="url_parse_error",mp="empty_url_error",hp="empty_input_scopes_error",bs="invalid_claims",gp="token_request_empty",fp="logout_request_empty",gP="invalid_code_challenge_method",Ss="pkce_params_missing",Is="invalid_cloud_discovery_metadata",vp="invalid_authority_metadata",yp="untrusted_authority",ii="missing_ssh_jwk",bp="missing_ssh_kid",fP="missing_nonce_authentication_header",vP="invalid_authentication_header",Sp="cannot_set_OIDCOptions",Ip="cannot_allow_platform_broker",_p="authority_mismatch",Cp="invalid_request_method_for_EAR",Tp="invalid_authorize_post_body_parameters",wp="invalid_platform_broker_configuration";/*! @azure/msal-common v15.14.1 2026-01-17 */const yP={[up]:"A redirect URI is required for all calls, and none has been set.",[hP]:"Could not parse the given claims request object.",[pp]:"Authority URIs must use https.  Please see here for valid authority configuration options: https://docs.microsoft.com/en-us
4174/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options",[lr]:"URL could not be parsed into appropriate segments.",[mp]:"URL was empty or null.",[hp]:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.",[bs]:"Given claims parameter must be a stringified JSON object.",[gp]:"Token request was empty and not found in cache.",[fp]:"The logout request was null or undefined.",[gP]:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".',[Ss]:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request",[Is]:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields",[vp]:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.",[yp]:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.",[ii]:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.",[bp]:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.",[fP]:"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.",[vP]:"Invalid authentication header provided",[Sp]:"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.",[Ip]:"Cannot set allowPlatformBroker parameter to true when not in AAD protocol mode.",[_p]:"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority.",[Tp]:"Invalid authorize post body parameters provided. If you are using authorizePostBodyParameters, the request method must be POST. Please check the request method and parameters.",[Cp]:"Invalid request method for EAR protocol mode. The request method cannot be GET when using EAR protocol mode. Please change the request method to POST.",[wp]:"Invalid platform broker configuration. `allowPlatformBrokerWithDOM` can only be enabled when `allowPlatformBroker` is enabled."};class _s extends te{constructor(e){super(e,yP[e]),this.name="ClientConfigurationError",Object.setPrototypeOf(this,_s.prototype)}}function ee(t){return new _s(t)}/*! @azure/msal-common v15.14.1 2026-01-17 */class Ke{static isEmptyObj(e){if(e)try{const n=JSON.parse(e);return Object.keys(n).length===0}catch{}return!0}static startsWith(e,n){return e.indexOf(n)===0}static endsWith(e,n){return e.length>=n.length&&e.lastIndexOf(n)===e.length-n.length}static queryStringToObject(e){const n={},r=e.split("&"),o=i=>decodeURIComponent(i.replace(/\+/g," "));return r.forEach(i=>{if(i.trim()){const[a,s]=i.split(/=(.+)/g,2);a&&s&&(n[o(a)]=o(s))}}),n}static trimArrayEntries(e){return e.map(n=>n.trim())}static removeEmptyStringsFromArray(e){return e.filter(n=>!!n)}static jsonParseHelper(e){try{return JSON.parse(e)}catch{return null}}static matchPattern(e,n){return new RegExp(e.replace(/\\/g,"\\\\").replace(/\*/g,"[^ ]*").replace(/\?/g,"\\?")).test(n)}}/*! @azure/msal-common v15.14.1 2026-01-17 */class Se{constructor(e){const n=e?Ke.trimArrayEntries([...e]):[],r=n?Ke.removeEmptyStringsFromArray(n):[];if(!r||!r.length)throw ee(hp);this.scopes=new Set,r.forEach(o=>this.scopes.add(o))}static fromString(e){const r=(e||C.EMPTY_STRING).split(" ");return new Se(r)}static createSearchScopes(e){const n=e&&e.length>0?e:[...Gn],r=new Se(n);return r.containsOnlyOIDCScopes()?r.removeScope(C.OFFLINE_ACCESS_SCOPE):r.removeOIDCScopes(),r}containsScope(e){const n=this.printScopesLowerCase().split(" "),r=new Se(n);return e?r.scopes.has(e.toLowerCase()):!1}containsScopeSet(e){return!e||e.scopes.size<=0?!1:this.scopes.size>=e.scopes.size&&e.asArray().every(n=>this.containsScope(n))}containsOnlyOIDCScopes(){let e=0;return il.forEach(n=>{this.containsScope(n)&&(e+=1)}),this.scopes.size===e}appendScope(e){e&&this.scopes.add(e.trim())}appendScopes(e){try{e.forEach(n=>this.appendScope(n))}catch{throw k(op)}}removeScope(e){if(!e)throw k(rp);this.scopes.delete(e.trim())}
4174removeOIDCScopes(){il.forEach(e=>{this.scopes.delete(e)})}unionScopeSets(e){if(!e)throw k(_a);const n=new Set;return e.scopes.forEach(r=>n.add(r.toLowerCase())),this.scopes.forEach(r=>n.add(r.toLowerCase())),n}intersectingScopeSets(e){if(!e)throw k(_a);e.containsOnlyOIDCScopes()||e.removeOIDCScopes();const n=this.unionScopeSets(e),r=e.getScopeCount(),o=this.getScopeCount();return n.size<o+r}getScopeCount(){return this.scopes.size}asArray(){const e=[];return this.scopes.forEach(n=>e.push(n)),e}printScopes(){return this.scopes?this.asArray().join(" "):C.EMPTY_STRING}printScopesLowerCase(){return this.printScopes().toLowerCase()}}/*! @azure/msal-common v15.14.1 2026-01-17 */function Ao(t,e){if(!t)throw k(Ku);try{const n=e(t);return JSON.parse(n)}catch{throw k(ds)}}function wn(t){if(!t)throw k(ds);const e=t.split(Er.CLIENT_INFO_SEPARATOR,2);return{uid:e[0],utid:e.length<2?C.EMPTY_STRING:e[1]}}/*! @azure/msal-common v15.14.1 2026-01-17 */function dl(t,e){return!!t&&!!e&&t===e.split(".")[1]}function kn(t,e,n,r){if(r){const{oid:o,sub:i,tid:a,name:s,tfp:c,acr:l,preferred_username:u,upn:p,login_hint:h}=r,m=a||c||l||"";return{tenantId:m,localAccountId:o||i||"",name:s,username:u||p||"",loginHint:h,isHomeTenant:dl(m,t)}}else return{tenantId:n,localAccountId:e,username:"",isHomeTenant:dl(n,t)}}function Cs(t,e,n,r){let o=t;if(e){const{isHomeTenant:i,...a}=e;o={...t,...a}}if(n){const{isHomeTenant:i,...a}=kn(t.homeAccountId,t.localAccountId,t.tenantId,n);return o={...o,...a,idTokenClaims:n,idToken:r},o}return o}/*! @azure/msal-common v15.14.1 2026-01-17 */const ct={Default:0,Adfs:1,Dsts:2,Ciam:3};/*! @azure/msal-common v15.14.1 2026-01-17 */function Ts(t){return t&&(t.tid||t.tfp||t.acr)||null}/*! @azure/msal-common v15.14.1 2026-01-17 */const qe={AAD:"AAD",OIDC:"OIDC",EAR:"EAR"};/*! @azure/msal-common v15.14.1 2026-01-17 */class pe{static getAccountInfo(e){const n=e.tenantProfiles||[];return n.length===0&&e.realm&&e.localAccountId&&n.push(kn(e.homeAccountId,e.localAccountId,e.realm)),{homeAccountId:e.homeAccountId,environment:e.environment,tenantId:e.realm,username:e.username,localAccountId:e.localAccountId,loginHint:e.loginHint,name:e.name,nativeAccountId:e.nativeAccountId,authorityType:e.authorityType,tenantProfiles:new Map(n.map(r=>[r.tenantId,r])),dataBoundary:e.dataBoundary}}isSingleTenant(){return!this.tenantProfiles}static createAccount(e,n,r){var l,u,p,h,m,I,y;const o=new pe;n.authorityType===ct.Adfs?o.authorityType=Xr.ADFS_ACCOUNT_TYPE:n.protocolMode===qe.OIDC?o.authorityType=Xr.GENERIC_ACCOUNT_TYPE:o.authorityType=Xr.MSSTS_ACCOUNT_TYPE;let i;e.clientInfo&&r&&(i=Ao(e.clientInfo,r),i.xms_tdbr&&(o.dataBoundary=i.xms_tdbr==="EU"?"EU":"None")),o.clientInfo=e.clientInfo,o.homeAccountId=e.homeAccountId,o.nativeAccountId=e.nativeAccountId;const a=e.environment||n&&n.getPreferredCache();if(!a)throw k(hs);o.environment=a,o.realm=(i==null?void 0:i.utid)||Ts(e.idTokenClaims)||"",o.localAccountId=(i==null?void 0:i.uid)||((l=e.idTokenClaims)==null?void 0:l.oid)||((u=e.idTokenClaims)==null?void 0:u.sub)||"";const s=((p=e.idTokenClaims)==null?void 0:p.preferred_username)||((h=e.idTokenClaims)==null?void 0:h.upn),c=(m=e.idTokenClaims)!=null&&m.emails?e.idTokenClaims.emails[0]:null;if(o.username=s||c||"",o.loginHint=(I=e.idTokenClaims)==null?void 0:I.login_hint,o.name=((y=e.idTokenClaims)==null?void 0:y.name)||"",o.cloudGraphHostName=e.cloudGraphHostName,o.msGraphHost=e.msGraphHost,e.tenantProfiles)o.tenantProfiles=e.tenantProfiles;else{const S=kn(e.homeAccountId,o.localAccountId,o.realm,e.idTokenClaims);o.tenantProfiles=[S]}return o}static createFromAccountInfo(e,n,r){var a;const o=new pe;o.authorityType=e.authorityType||Xr.GENERIC_ACCOUNT_TYPE,o.homeAccountId=e.homeAccountId,o.localAccountId=e.localAccountId,o.nativeAccountId=e.nativeAccountId,o.realm=e.tenantId,o.environment=e.environment,o.username=e.username,o.name=e.name,o.loginHint=e.loginHint,o.cloudGraphHostName=n,o.msGraphHost=r;const i=Array.from(((a=e.tenantProfiles)==null?void 0:a.values())||[]);return i.length===0&&e.tenantId&&e.localAccountId&&i.push(kn(e.homeAccountId,e.localAccountId,e.tenantId,e.idTokenClaims)),o.tenantProfiles=i,o.dataBoundary=e.dataBoundary,o}
4174static generateHomeAccountId(e,n,r,o,i){if(!(n===ct.Adfs||n===ct.Dsts)){if(e)try{const a=Ao(e,o.base64Decode);if(a.uid&&a.utid)return`${a.uid}.${a.utid}`}catch{}r.warning("No client info in response")}return(i==null?void 0:i.sub)||""}static isAccountEntity(e){return e?e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("localAccountId")&&e.hasOwnProperty("username")&&e.hasOwnProperty("authorityType"):!1}static accountInfoIsEqual(e,n,r){if(!e||!n)return!1;let o=!0;if(r){const i=e.idTokenClaims||{},a=n.idTokenClaims||{};o=i.iat===a.iat&&i.nonce===a.nonce}return e.homeAccountId===n.homeAccountId&&e.localAccountId===n.localAccountId&&e.username===n.username&&e.tenantId===n.tenantId&&e.loginHint===n.loginHint&&e.environment===n.environment&&e.nativeAccountId===n.nativeAccountId&&o}}/*! @azure/msal-common v15.14.1 2026-01-17 */function ft(t,e){const n=bP(t);try{const r=e(n);return JSON.parse(r)}catch{throw k(us)}}function vt(t){if(!t.signin_state)return!1;const e=["kmsi","dvc_dmjd"];return t.signin_state.some(r=>e.includes(r.trim().toLowerCase()))}function bP(t){if(!t)throw k(Wu);const n=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(t);if(!n||n.length<4)throw k(us);return n[2]}function kp(t,e){if(e===0||Date.now()-3e5>t+e)throw k(ep)}/*! @azure/msal-common v15.14.1 2026-01-17 */function ul(t){if(!t)return t;let e=t.toLowerCase();return Ke.endsWith(e,"?")?e=e.slice(0,-1):Ke.endsWith(e,"?/")&&(e=e.slice(0,-2)),Ke.endsWith(e,"/")||(e+="/"),e}function Ap(t){return t.startsWith("#/")?t.substring(2):t.startsWith("#")||t.startsWith("?")?t.substring(1):t}function Eo(t){if(!t||t.indexOf("=")<0)return null;try{const e=Ap(t),n=Object.fromEntries(new URLSearchParams(e));if(n.code||n.ear_jwe||n.error||n.error_description||n.state)return n}catch{throw k(Qu)}return null}function Rr(t,e=!0,n){const r=new Array;return t.forEach((o,i)=>{!e&&n&&i in n?r.push(`${i}=${o}`):r.push(`${i}=${encodeURIComponent(o)}`)}),r.join("&")}function pl(t){if(!t)return t;const e=t.split("#")[0];try{const n=new URL(e),r=n.origin+n.pathname+n.search;return ul(r)}catch{return ul(e)}}/*! @azure/msal-common v15.14.1 2026-01-17 */class B{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,!this._urlString)throw ee(mp);e.includes("#")||(this._urlString=B.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let n=e.toLowerCase();return Ke.endsWith(n,"?")?n=n.slice(0,-1):Ke.endsWith(n,"?/")&&(n=n.slice(0,-2)),Ke.endsWith(n,"/")||(n+="/"),n}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch{throw ee(lr)}if(!e.HostNameAndPort||!e.PathSegments)throw ee(lr);if(!e.Protocol||e.Protocol.toLowerCase()!=="https:")throw ee(pp)}static appendQueryString(e,n){return n?e.indexOf("?")<0?`${e}?${n}`:`${e}&${n}`:e}static removeHashFromUrl(e){return B.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){const n=this.getUrlComponents(),r=n.PathSegments;return e&&r.length!==0&&(r[0]===$t.COMMON||r[0]===$t.ORGANIZATIONS)&&(r[0]=e),B.constructAuthorityUriFromObject(n)}getUrlComponents(){const e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),n=this.urlString.match(e);if(!n)throw ee(lr);const r={Protocol:n[1],HostNameAndPort:n[4],AbsolutePath:n[5],QueryString:n[7]};let o=r.AbsolutePath.split("/");return o=o.filter(i=>i&&i.length>0),r.PathSegments=o,r.QueryString&&r.QueryString.endsWith("/")&&(r.QueryString=r.QueryString.substring(0,r.QueryString.length-1)),r}static getDomainFromUrl(e){const n=RegExp("^([^:/?#]+://)?([^/?#]*)"),r=e.match(n);if(!r)throw ee(lr);return r[2]}static getAbsoluteUrl(e,n){if(e[0]===C.FORWARD_SLASH){const o=new B(n).getUrlComponents();return o.Protocol+"//"+o.HostNameAndPort+e}return e}static constructAuthorityUriFromObject(e){return new B(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static hashContainsKnownProperties(e){return!!Eo(e)}}/*! @azure/msal-common v15.14.1 2026-01-17 */const Ep={endpointMetadata:{"login.microsoftonline.com":{token_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.microsoftonline.com/{tenantid}/discovery/v2.0/keys",issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",authorization_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/logout"},"login.chinacloudapi.cn":{token_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.chinacloudapi.cn/{tenantid}/discovery/v2.0/keys",issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",authorization_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/logout"},"login.microsoftonline.us":{token_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.microsoftonline.us/{tenantid}/discovery/v2.0/keys",issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",authorization_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/logout"}},instanceDiscoveryMetadata:{metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]}},ml=Ep.endpointMetadata,ws=Ep.instanceDiscoveryMetadata,Rp=new Set;ws.metadata.forEach(t=>
4174{t.aliases.forEach(e=>{Rp.add(e)})});function SP(t,e){var o;let n;const r=t.canonicalAuthority;if(r){const i=new B(r).getUrlComponents().HostNameAndPort;n=hl(i,(o=t.cloudDiscoveryMetadata)==null?void 0:o.metadata,Be.CONFIG,e)||hl(i,ws.metadata,Be.HARDCODED_VALUES,e)||t.knownAuthorities}return n||[]}function hl(t,e,n,r){if(r==null||r.trace(`getAliasesFromMetadata called with source: ${n}`),t&&e){const o=Ro(e,t);if(o)return r==null||r.trace(`getAliasesFromMetadata: found cloud discovery metadata in ${n}, returning aliases`),o.aliases;r==null||r.trace(`getAliasesFromMetadata: did not find cloud discovery metadata in ${n}`)}return null}function IP(t){return Ro(ws.metadata,t)}function Ro(t,e){for(let n=0;n<t.length;n++){const r=t[n];if(r.aliases.includes(e))return r}return null}/*! @azure/msal-common v15.14.1 2026-01-17 */const Po="cache_quota_exceeded",ks="cache_error_unknown";/*! @azure/msal-common v15.14.1 2026-01-17 */const zi={[Po]:"Exceeded cache storage capacity.",[ks]:"Unexpected error occurred when using cache storage."};class An extends te{constructor(e,n){const r=n||(zi[e]?zi[e]:zi[ks]);super(`${e}: ${r}`),Object.setPrototypeOf(this,An.prototype),this.name="CacheError",this.errorCode=e,this.errorMessage=r}}function wa(t){return t instanceof Error?t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED"||t.message.includes("exceeded the quota")?new An(Po):new An(t.name,t.message):new An(ks)}/*! @azure/msal-common v15.14.1 2026-01-17 */class ka{constructor(e,n,r,o,i){this.clientId=e,this.cryptoImpl=n,this.commonLogger=r.clone(dp,vs),this.staticAuthorityOptions=i,this.performanceClient=o}getAllAccounts(e,n){return this.buildTenantProfiles(this.getAccountsFilteredBy(e,n),n,e)}getAccountInfoFilteredBy(e,n){if(Object.keys(e).length===0||Object.values(e).every(o=>!o))return this.commonLogger.warning("getAccountInfoFilteredBy: Account filter is empty or invalid, returning null"),null;const r=this.getAllAccounts(e,n);return r.length>1?r.sort(i=>i.idTokenClaims?-1:1)[0]:r.length===1?r[0]:null}getBaseAccountInfo(e,n){const r=this.getAccountsFilteredBy(e,n);return r.length>0?pe.getAccountInfo(r[0]):null}buildTenantProfiles(e,n,r){return e.flatMap(o=>this.getTenantProfilesFromAccountEntity(o,n,r==null?void 0:r.tenantId,r))}getTenantedAccountInfoByFilter(e,n,r,o,i){let a=null,s;if(i&&!this.tenantProfileMatchesFilter(r,i))return null;const c=this.getIdToken(e,o,n,r.tenantId);return c&&(s=ft(c.secret,this.cryptoImpl.base64Decode),!this.idTokenClaimsMatchTenantProfileFilter(s,i))?null:(a=Cs(e,r,s,c==null?void 0:c.secret),a)}getTenantProfilesFromAccountEntity(e,n,r,o){const i=pe.getAccountInfo(e);let a=i.tenantProfiles||new Map;const s=this.getTokenKeys();if(r){const l=a.get(r);if(l)a=new Map([[r,l]]);else return[]}const c=[];return a.forEach(l=>{const u=this.getTenantedAccountInfoByFilter(i,s,l,n,o);u&&c.push(u)}),c}tenantProfileMatchesFilter(e,n){return!(n.localAccountId&&!this.matchLocalAccountIdFromTenantProfile(e,n.localAccountId)||n.name&&e.name!==n.name||n.isHomeTenant!==void 0&&e.isHomeTenant!==n.isHomeTenant)}idTokenClaimsMatchTenantProfileFilter(e,n){return!(n&&(n.localAccountId&&!this.matchLocalAccountIdFromTokenClaims(e,n.localAccountId)||n.loginHint&&!this.matchLoginHintFromTokenClaims(e,n.loginHint)||n.username&&!this.matchUsername(e.preferred_username,n.username)||n.name&&!this.matchName(e,n.name)||n.sid&&!this.matchSid(e,n.sid)))}async saveCacheRecord(e,n,r,o,i){var a;if(!e)throw k(ip);try{e.account&&await this.setAccount(e.account,n,r,o),e.idToken&&(i==null?void 0:i.idToken)!==!1&&await this.setIdTokenCredential(e.idToken,n,r),e.accessToken&&(i==null?void 0:i.accessToken)!==!1&&await this.saveAccessToken(e.accessToken,n,r),e.refreshToken&&(i==null?void 0:i.refreshToken)!==!1&&await this.setRefreshTokenCredential(e.refreshToken,n,r),e.appMetadata&&this.setAppMetadata(e.appMetadata,n)}catch(s){throw(a=this.commonLogger)==null||a.error("CacheManager.saveCacheRecord: failed"),s instanceof te?s:wa(s)}}async saveAccessToken(e,n,r){const o={clientId:e.clientId,credentialType:e.credentialType,environment:e.environment,homeAccountId:e.homeAccountId,realm:e.realm,tokenType:e.tokenType,requestedClaimsHash:e.requestedClaimsHash},i=this.getTokenKeys(),a=Se.fromString(e.target);
4174i.accessToken.forEach(s=>{if(!this.accessTokenKeyMatchesFilter(s,o,!1))return;const c=this.getAccessTokenCredential(s,n);c&&this.credentialMatchesFilter(c,o)&&Se.fromString(c.target).intersectingScopeSets(a)&&this.removeAccessToken(s,n)}),await this.setAccessTokenCredential(e,n,r)}getAccountsFilteredBy(e,n){const r=this.getAccountKeys(),o=[];return r.forEach(i=>{var l;const a=this.getAccount(i,n);if(!a||e.homeAccountId&&!this.matchHomeAccountId(a,e.homeAccountId)||e.username&&!this.matchUsername(a.username,e.username)||e.environment&&!this.matchEnvironment(a,e.environment)||e.realm&&!this.matchRealm(a,e.realm)||e.nativeAccountId&&!this.matchNativeAccountId(a,e.nativeAccountId)||e.authorityType&&!this.matchAuthorityType(a,e.authorityType))return;const s={localAccountId:e==null?void 0:e.localAccountId,name:e==null?void 0:e.name},c=(l=a.tenantProfiles)==null?void 0:l.filter(u=>this.tenantProfileMatchesFilter(u,s));c&&c.length===0||o.push(a)}),o}credentialMatchesFilter(e,n){return!(n.clientId&&!this.matchClientId(e,n.clientId)||n.userAssertionHash&&!this.matchUserAssertionHash(e,n.userAssertionHash)||typeof n.homeAccountId=="string"&&!this.matchHomeAccountId(e,n.homeAccountId)||n.environment&&!this.matchEnvironment(e,n.environment)||n.realm&&!this.matchRealm(e,n.realm)||n.credentialType&&!this.matchCredentialType(e,n.credentialType)||n.familyId&&!this.matchFamilyId(e,n.familyId)||n.target&&!this.matchTarget(e,n.target)||(n.requestedClaimsHash||e.requestedClaimsHash)&&e.requestedClaimsHash!==n.requestedClaimsHash||e.credentialType===we.ACCESS_TOKEN_WITH_AUTH_SCHEME&&(n.tokenType&&!this.matchTokenType(e,n.tokenType)||n.tokenType===Q.SSH&&n.keyId&&!this.matchKeyId(e,n.keyId)))}getAppMetadataFilteredBy(e){const n=this.getKeys(),r={};return n.forEach(o=>{if(!this.isAppMetadata(o))return;const i=this.getAppMetadata(o);i&&(e.environment&&!this.matchEnvironment(i,e.environment)||e.clientId&&!this.matchClientId(i,e.clientId)||(r[o]=i))}),r}getAuthorityMetadataByAlias(e){const n=this.getAuthorityMetadataKeys();let r=null;return n.forEach(o=>{if(!this.isAuthorityMetadata(o)||o.indexOf(this.clientId)===-1)return;const i=this.getAuthorityMetadata(o);i&&i.aliases.indexOf(e)!==-1&&(r=i)}),r}removeAllAccounts(e){this.getAllAccounts({},e).forEach(r=>{this.removeAccount(r,e)})}removeAccount(e,n){this.removeAccountContext(e,n);const r=this.getAccountKeys(),o=i=>i.includes(e.homeAccountId)&&i.includes(e.environment);r.filter(o).forEach(i=>{this.removeItem(i,n),this.performanceClient.incrementFields({accountsRemoved:1},n)})}removeAccountContext(e,n){const r=this.getTokenKeys(),o=i=>i.includes(e.homeAccountId)&&i.includes(e.environment);r.idToken.filter(o).forEach(i=>{this.removeIdToken(i,n)}),r.accessToken.filter(o).forEach(i=>{this.removeAccessToken(i,n)}),r.refreshToken.filter(o).forEach(i=>{this.removeRefreshToken(i,n)})}removeAccessToken(e,n){const r=this.getAccessTokenCredential(e,n);if(this.removeItem(e,n),this.performanceClient.incrementFields({accessTokensRemoved:1},n),!r||r.credentialType.toLowerCase()!==we.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()||r.tokenType!==Q.POP)return;const o=r.keyId;o&&this.cryptoImpl.removeTokenBindingKey(o).catch(()=>{var i;this.commonLogger.error(`Failed to remove token binding key ${o}`,n),(i=this.performanceClient)==null||i.incrementFields({removeTokenBindingKeyFailure:1},n)})}removeAppMetadata(e){return this.getKeys().forEach(r=>{this.isAppMetadata(r)&&this.removeItem(r,e)}),!0}getIdToken(e,n,r,o,i){this.commonLogger.trace("CacheManager - getIdToken called");const a={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:we.ID_TOKEN,clientId:this.clientId,realm:o},s=this.getIdTokensByFilter(a,n,r),c=s.size;if(c<1)return this.commonLogger.info("CacheManager:getIdToken - No token found"),null;if(c>1){let l=s;if(!o){const u=new Map;s.forEach((h,m)=>{h.realm===e.tenantId&&u.set(m,h)});const p=u.size;if(p<1)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result"),s.values().next().value;if(p===1)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile"),u.values().next().value;l=u}return this.commonLogger.info("CacheManager:getIdToken - Multiple matching ID tokens found, clearing them"),l.forEach((u,p)=>{this.removeIdToken(p,n)}),i&&n&&i.addFields({multiMatchedID:s.size},n),null}return this.commonLogger.info("CacheManager:getIdToken - Returning ID token"),s.values().next().value}getIdTokensByFilter(e,n,r){const o=r&&r.idToken||this.getTokenKeys().idToken,i=new Map;return o.forEach(a=>{if(!this.idTokenKeyMatchesFilter(a,{clientId:this.clientId,...e}))return;const s=this.getIdTokenCredential(a,n);s&&this.credentialMatchesFilter(s,e)&&i.set(a,s)}),i}idTokenKeyMatchesFilter(e,n){const r=e.toLowerCase();return!(n.clientId&&r.indexOf(n.clientId.toLowerCase())===-1||n.homeAccountId&&r.indexOf(n.homeAccountId.toLowerCase())===-1)}removeIdToken(e,n){this.removeItem(e,n)}removeRefreshToken(e,n){this.removeItem(e,n)}getAccessToken(e,n,r,o){const i=n.correlationId;this.commonLogger.trace("CacheManager - getAccessToken called",i);const a=Se.createSearchScopes(n.scopes),s=n.authenticationScheme||Q.BEARER,c=s.toLowerCase()!==Q.BEARER.toLowerCase()?we.ACCESS_TOKEN_WITH_AUTH_SCHEME:we.ACCESS_TOKEN,l={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:c,clientId:this.clientId,realm:o||e.tenantId,target:a,tokenType:s,keyId:n.sshKid,requestedClaimsHash:n.requestedClaimsHash},u=r&&r.accessToken||this.getTokenKeys().accessToken,p=[];u.forEach(m=>{if(this.accessTokenKeyMatchesFilter(m,l,!0)){const I=this.getAccessTokenCredential(m,i);I&&this.credentialMatchesFilter(I,l)&&p.push(I)}});const h=p.length;return h<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found",i),null):h>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them",i),p.forEach(m=>{this.removeAccessToken(this.generateCredentialKey(m),i)}),this.performanceClient.addFields({multiMatchedAT:p.length},i),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token",i),p[0])}accessTokenKeyMatchesFilter(e,n,r){const o=e.toLowerCase();if(n.clientId&&o.indexOf(n.clientId.toLowerCase())===-1||n.homeAccountId&&o.indexOf(n.homeAccountId.toLowerCase())===-1||n.realm&&o.indexOf(n.realm.toLowerCase())===-1||n.requestedClaimsHash&&o.indexOf(n.requestedClaimsHash.toLowerCase())===-1)return!1;if(n.target){const i=n.target.asArray();for(let a=0;a<i.length;a++){if(r&&!o.includes(i[a].toLowerCase()))return!1;if(!r&&o.includes(i[a].toLowerCase()))return!0}}return!0}getAccessTokensByFilter(e,n){const r=this.getTokenKeys(),o=[];
4174return r.accessToken.forEach(i=>{if(!this.accessTokenKeyMatchesFilter(i,e,!0))return;const a=this.getAccessTokenCredential(i,n);a&&this.credentialMatchesFilter(a,e)&&o.push(a)}),o}getRefreshToken(e,n,r,o,i){this.commonLogger.trace("CacheManager - getRefreshToken called");const a=n?Co:void 0,s={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:we.REFRESH_TOKEN,clientId:this.clientId,familyId:a},c=o&&o.refreshToken||this.getTokenKeys().refreshToken,l=[];c.forEach(p=>{if(this.refreshTokenKeyMatchesFilter(p,s)){const h=this.getRefreshTokenCredential(p,r);h&&this.credentialMatchesFilter(h,s)&&l.push(h)}});const u=l.length;return u<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(u>1&&i&&r&&i.addFields({multiMatchedRT:u},r),this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),l[0])}refreshTokenKeyMatchesFilter(e,n){const r=e.toLowerCase();return!(n.familyId&&r.indexOf(n.familyId.toLowerCase())===-1||!n.familyId&&n.clientId&&r.indexOf(n.clientId.toLowerCase())===-1||n.homeAccountId&&r.indexOf(n.homeAccountId.toLowerCase())===-1)}readAppMetadataFromCache(e){const n={environment:e,clientId:this.clientId},r=this.getAppMetadataFilteredBy(n),o=Object.keys(r).map(a=>r[a]),i=o.length;if(i<1)return null;if(i>1)throw k(tp);return o[0]}isAppMetadataFOCI(e){const n=this.readAppMetadataFromCache(e);return!!(n&&n.familyId===Co)}matchHomeAccountId(e,n){return typeof e.homeAccountId=="string"&&n===e.homeAccountId}matchLocalAccountIdFromTokenClaims(e,n){const r=e.oid||e.sub;return n===r}matchLocalAccountIdFromTenantProfile(e,n){return e.localAccountId===n}matchName(e,n){var r;return n.toLowerCase()===((r=e.name)==null?void 0:r.toLowerCase())}matchUsername(e,n){return!!(e&&typeof e=="string"&&(n==null?void 0:n.toLowerCase())===e.toLowerCase())}matchUserAssertionHash(e,n){return!!(e.userAssertionHash&&n===e.userAssertionHash)}matchEnvironment(e,n){if(this.staticAuthorityOptions){const o=SP(this.staticAuthorityOptions,this.commonLogger);if(o.includes(n)&&o.includes(e.environment))return!0}const r=this.getAuthorityMetadataByAlias(n);return!!(r&&r.aliases.indexOf(e.environment)>-1)}matchCredentialType(e,n){return e.credentialType&&n.toLowerCase()===e.credentialType.toLowerCase()}matchClientId(e,n){return!!(e.clientId&&n===e.clientId)}matchFamilyId(e,n){return!!(e.familyId&&n===e.familyId)}matchRealm(e,n){var r;return((r=e.realm)==null?void 0:r.toLowerCase())===n.toLowerCase()}matchNativeAccountId(e,n){return!!(e.nativeAccountId&&n===e.nativeAccountId)}matchLoginHintFromTokenClaims(e,n){return e.login_hint===n||e.preferred_username===n||e.upn===n}matchSid(e,n){return e.sid===n}matchAuthorityType(e,n){return!!(e.authorityType&&n.toLowerCase()===e.authorityType.toLowerCase())}matchTarget(e,n){return e.credentialType!==we.ACCESS_TOKEN&&e.credentialType!==we.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target?!1:Se.fromString(e.target).containsScopeSet(n)}matchTokenType(e,n){return!!(e.tokenType&&e.tokenType===n)}matchKeyId(e,n){return!!(e.keyId&&e.keyId===n)}isAppMetadata(e){return e.indexOf(ls)!==-1}isAuthorityMetadata(e){return e.indexOf(To.CACHE_KEY)!==-1}generateAuthorityMetadataCacheKey(e){return`${To.CACHE_KEY}-${this.clientId}-${e}`}static toObject(e,n){for(const r in n)e[r]=n[r];return e}}class _P extends ka{async setAccount(){throw k(x)}getAccount(){throw k(x)}async setIdTokenCredential(){throw k(x)}getIdTokenCredential(){throw k(x)}async setAccessTokenCredential(){throw k(x)}getAccessTokenCredential(){throw k(x)}async setRefreshTokenCredential(){throw k(x)}getRefreshTokenCredential(){throw k(x)}setAppMetadata(){throw k(x)}getAppMetadata(){throw k(x)}setServerTelemetry(){throw k(x)}getServerTelemetry(){throw k(x)}setAuthorityMetadata(){throw k(x)}getAuthorityMetadata(){throw k(x)}getAuthorityMetadataKeys(){throw k(x)}setThrottlingCache(){throw k(x)}getThrottlingCache(){throw k(x)}removeItem(){throw k(x)}getKeys(){throw k(x)}getAccountKeys(){throw k(x)}getTokenKeys(){throw k(x)}generateCredentialKey(){throw k(x)}generateAccountKey(){throw k(x)}}/*! @azure/msal-common v15.14.1 2026-01-17 */const f={AcquireTokenByCode:"acquireTokenByCode",AcquireTokenByRefreshToken:"acquireTokenByRefreshToken",AcquireTokenSilent:"acquireTokenSilent",AcquireTokenSilentAsync:"acquireTokenSilentAsync",AcquireTokenPopup:"acquireTokenPopup",AcquireTokenPreRedirect:"acquireTokenPreRedirect",AcquireTokenRedirect:"acquireTokenRedirect",CryptoOptsGetPublicKeyThumbprint:"cryptoOptsGetPublicKeyThumbprint",CryptoOptsSignJwt:"cryptoOptsSignJwt",SilentCacheClientAcquireToken:"silentCacheClientAcquireToken",SilentIframeClientAcquireToken:"silentIframeClientAcquireToken",AwaitConcurrentIframe:"awaitConcurrentIframe",SilentRefreshClientAcquireToken:"silentRefreshClientAcquireToken",SsoSilent:"ssoSilent",StandardInteractionClientGetDiscoveredAuthority:"standardInteractionClientGetDiscoveredAuthority",FetchAccountIdWithNativeBroker:"fetchAccountIdWithNativeBroker",NativeInteractionClientAcquireToken:"nativeInteractionClientAcquireToken",BaseClientCreateTokenRequestHeaders:"baseClientCreateTokenRequestHeaders",NetworkClientSendPostRequestAsync:"networkClientSendPostRequestAsync",RefreshTokenClientExecutePostToTokenEndpoint:"refreshTokenClientExecutePostToTokenEndpoint",AuthorizationCodeClientExecutePostToTokenEndpoint:"authorizationCodeClientExecutePostToTokenEndpoint",BrokerHandhshake:"brokerHandshake",AcquireTokenByRefreshTokenInBroker:"acquireTokenByRefreshTokenInBroker",AcquireTokenByBroker:"acquireTokenByBroker",RefreshTokenClientExecuteTokenRequest:"refreshTokenClientExecuteTokenRequest",RefreshTokenClientAcquireToken:"refreshTokenClientAcquireToken",RefreshTokenClientAcquireTokenWithCachedRefreshToken:"refreshTokenClientAcquireTokenWithCachedRefreshToken",RefreshTokenClientAcquireTokenByRefreshToken:"refreshTokenClientAcquireTokenByRefreshToken",RefreshTokenClientCreateTokenRequestBody:"refreshTokenClientCreateTokenRequestBody",AcquireTokenFromCache:"acquireTokenFromCache",SilentFlowClientAcquireCachedToken:"silentFlowClientAcquireCachedToken",SilentFlowClientGenerateResultFromCacheRecord:"silentFlowClientGenerateResultFromCacheRecord",AcquireTokenBySilentIframe:"acquireTokenBySilentIframe",InitializeBaseRequest:"initializeBaseRequest",InitializeSilentRequest:"initializeSilentRequest",InitializeClientApplication:"initializeClientApplication",InitializeCache:"initializeCache",SilentIframeClientTokenHelper:"silentIframeClientTokenHelper",SilentHandlerInitiateAuthRequest:"silentHandlerInitiateAuthRequest",SilentHandlerMonitorIframeForHash:"silentHandlerMonitorIframeForHash",SilentHandlerLoadFrame:"silentHandlerLoadFrame",SilentHandlerLoadFrameSync:"silentHandlerLoadFrameSync",StandardInteractionClientCreateAuthCodeClient:"standardInteractionClientCreateAuthCodeClient",
4174StandardInteractionClientGetClientConfiguration:"standardInteractionClientGetClientConfiguration",StandardInteractionClientInitializeAuthorizationRequest:"standardInteractionClientInitializeAuthorizationRequest",GetAuthCodeUrl:"getAuthCodeUrl",GetStandardParams:"getStandardParams",HandleCodeResponseFromServer:"handleCodeResponseFromServer",HandleCodeResponse:"handleCodeResponse",HandleResponseEar:"handleResponseEar",HandleResponsePlatformBroker:"handleResponsePlatformBroker",HandleResponseCode:"handleResponseCode",UpdateTokenEndpointAuthority:"updateTokenEndpointAuthority",AuthClientAcquireToken:"authClientAcquireToken",AuthClientExecuteTokenRequest:"authClientExecuteTokenRequest",AuthClientCreateTokenRequestBody:"authClientCreateTokenRequestBody",PopTokenGenerateCnf:"popTokenGenerateCnf",PopTokenGenerateKid:"popTokenGenerateKid",HandleServerTokenResponse:"handleServerTokenResponse",DeserializeResponse:"deserializeResponse",AuthorityFactoryCreateDiscoveredInstance:"authorityFactoryCreateDiscoveredInstance",AuthorityResolveEndpointsAsync:"authorityResolveEndpointsAsync",AuthorityResolveEndpointsFromLocalSources:"authorityResolveEndpointsFromLocalSources",AuthorityGetCloudDiscoveryMetadataFromNetwork:"authorityGetCloudDiscoveryMetadataFromNetwork",AuthorityUpdateCloudDiscoveryMetadata:"authorityUpdateCloudDiscoveryMetadata",AuthorityGetEndpointMetadataFromNetwork:"authorityGetEndpointMetadataFromNetwork",AuthorityUpdateEndpointMetadata:"authorityUpdateEndpointMetadata",AuthorityUpdateMetadataWithRegionalInformation:"authorityUpdateMetadataWithRegionalInformation",RegionDiscoveryDetectRegion:"regionDiscoveryDetectRegion",RegionDiscoveryGetRegionFromIMDS:"regionDiscoveryGetRegionFromIMDS",RegionDiscoveryGetCurrentVersion:"regionDiscoveryGetCurrentVersion",AcquireTokenByCodeAsync:"acquireTokenByCodeAsync",GetEndpointMetadataFromNetwork:"getEndpointMetadataFromNetwork",GetCloudDiscoveryMetadataFromNetworkMeasurement:"getCloudDiscoveryMetadataFromNetworkMeasurement",HandleRedirectPromiseMeasurement:"handleRedirectPromise",HandleNativeRedirectPromiseMeasurement:"handleNativeRedirectPromise",UpdateCloudDiscoveryMetadataMeasurement:"updateCloudDiscoveryMetadataMeasurement",UsernamePasswordClientAcquireToken:"usernamePasswordClientAcquireToken",NativeMessageHandlerHandshake:"nativeMessageHandlerHandshake",NativeGenerateAuthResult:"nativeGenerateAuthResult",RemoveHiddenIframe:"removeHiddenIframe",ClearTokensAndKeysWithClaims:"clearTokensAndKeysWithClaims",CacheManagerGetRefreshToken:"cacheManagerGetRefreshToken",ImportExistingCache:"importExistingCache",SetUserData:"setUserData",LocalStorageUpdated:"localStorageUpdated",GeneratePkceCodes:"generatePkceCodes",GenerateCodeVerifier:"generateCodeVerifier",GenerateCodeChallengeFromVerifier:"generateCodeChallengeFromVerifier",Sha256Digest:"sha256Digest",GetRandomValues:"getRandomValues",GenerateHKDF:"generateHKDF",GenerateBaseKey:"generateBaseKey",Base64Decode:"base64Decode",UrlEncodeArr:"urlEncodeArr",Encrypt:"encrypt",Decrypt:"decrypt",GenerateEarKey:"generateEarKey",DecryptEarResponse:"decryptEarResponse",LoadExternalTokens:"LoadExternalTokens",LoadAccount:"loadAccount",LoadIdToken:"loadIdToken",LoadAccessToken:"loadAccessToken",LoadRefreshToken:"loadRefreshToken"},CP={InProgress:1};/*! @azure/msal-common v15.14.1 2026-01-17 */class gl{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class Pp{generateId(){return"callback-id"}startMeasurement(e,n){return{end:()=>null,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:CP.InProgress,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:n||""},measurement:new gl}}startPerformanceMeasurement(){return new gl}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}/*! @azure/msal-common v15.14.1 2026-01-17 */const Dp={tokenRenewalOffsetSeconds:Gu,preventCorsPreflight:!1},TP={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:re.Info,correlationId:C.EMPTY_STRING},wP={claimsBasedCachingEnabled:!1},kP={async sendGetRequestAsync(){throw k(x)},async sendPostRequestAsync(){throw k(x)}},AP={sku:C.SKU,version:vs,cpu:C.EMPTY_STRING,os:C.EMPTY_STRING},EP={clientSecret:C.EMPTY_STRING,clientAssertion:void 0},RP={azureCloudInstance:ys.None,tenant:`${C.DEFAULT_COMMON_TENANT}`},PP={application:{appName:"",appVersion:""}};function DP({authOptions:t,systemOptions:e,loggerOptions:n,cacheOptions:r,storageInterface:o,networkInterface:i,cryptoInterface:a,clientCredentials:s,library
4174Info:c,telemetry:l,serverTelemetryManager:u,persistencePlugin:p,serializableCache:h}){const m={...TP,...n};return{authOptions:OP(t),systemOptions:{...Dp,...e},loggerOptions:m,cacheOptions:{...wP,...r},storageInterface:o||new _P(t.clientId,ko,new kt(m),new Pp),networkInterface:i||kP,cryptoInterface:a||ko,clientCredentials:s||EP,libraryInfo:{...AP,...c},telemetry:{...PP,...l},serverTelemetryManager:u||null,persistencePlugin:p||null,serializableCache:h||null}}function OP(t){return{clientCapabilities:[],azureCloudOptions:RP,skipAuthorityMetadataCache:!1,instanceAware:!1,encodeExtraQueryParams:!1,...t}}function Op(t){return t.authOptions.authority.options.protocolMode===qe.OIDC}/*! @azure/msal-common v15.14.1 2026-01-17 */const dt={HOME_ACCOUNT_ID:"home_account_id",UPN:"UPN"};/*! @azure/msal-common v15.14.1 2026-01-17 */const Zt="client_id",Np="redirect_uri",NP="response_type",MP="response_mode",LP="grant_type",jP="claims",UP="scope",$P="refresh_token",xP="state",FP="nonce",HP="prompt",zP="code",qP="code_challenge",VP="code_challenge_method",BP="code_verifier",GP="client-request-id",KP="x-client-SKU",WP="x-client-VER",YP="x-client-OS",JP="x-client-CPU",QP="x-client-current-telemetry",XP="x-client-last-telemetry",ZP="x-ms-lib-capability",eD="x-app-name",tD="x-app-ver",nD="post_logout_redirect_uri",rD="id_token_hint",oD="client_secret",iD="client_assertion",aD="client_assertion_type",Mp="token_type",Lp="req_cnf",fl="return_spa_code",sD="nativebroker",cD="logout_hint",lD="sid",dD="login_hint",uD="domain_hint",pD="x-client-xtra-sku",Do="brk_client_id",Oo="brk_redirect_uri",Aa="instance_aware",mD="ear_jwk",hD="ear_jwe_crypto";/*! @azure/msal-common v15.14.1 2026-01-17 */function ai(t,e,n){if(!e)return;const r=t.get(Zt);r&&t.has(Do)&&(n==null||n.addFields({embeddedClientId:r,embeddedRedirectUri:t.get(Np)},e))}function As(t,e){t.set(NP,e)}function gD(t,e){t.set(MP,e||JR.QUERY)}function fD(t){t.set(sD,"1")}function Es(t,e,n=!0,r=Gn){n&&!r.includes("openid")&&!e.includes("openid")&&r.push("openid");const o=n?[...e||[],...r]:e||[],i=new Se(o);t.set(UP,i.printScopes())}function Rs(t,e){t.set(Zt,e)}function Ps(t,e){t.set(Np,e)}function vD(t,e){t.set(nD,e)}function yD(t,e){t.set(rD,e)}function bD(t,e){t.set(uD,e)}function Zr(t,e){t.set(dD,e)}function No(t,e){t.set(Le.CCS_HEADER,`UPN:${e}`)}function br(t,e){t.set(Le.CCS_HEADER,`Oid:${e.uid}@${e.utid}`)}function vl(t,e){t.set(lD,e)}function Ds(t,e,n){const r=wD(e,n);try{JSON.parse(r)}catch{throw ee(bs)}t.set(jP,r)}function Os(t,e){t.set(GP,e)}function Ns(t,e){t.set(KP,e.sku),t.set(WP,e.version),e.os&&t.set(YP,e.os),e.cpu&&t.set(JP,e.cpu)}function Ms(t,e){e!=null&&e.appName&&t.set(eD,e.appName),e!=null&&e.appVersion&&t.set(tD,e.appVersion)}function SD(t,e){t.set(HP,e)}function jp(t,e){e&&t.set(xP,e)}function ID(t,e){t.set(FP,e)}function Ls(t,e,n){if(e&&n)t.set(qP,e),t.set(VP,n);else throw ee(Ss)}function _D(t,e){t.set(zP,e)}function CD(t,e){t.set($P,e)}function TD(t,e){t.set(BP,e)}function Up(t,e){t.set(oD,e)}function $p(t,e){e&&t.set(iD,e)}function xp(t,e){e&&t.set(aD,e)}function Fp(t,e){t.set(LP,e)}function js(t){t.set(QR,"1")}function Hp(t){t.has(Aa)||t.set(Aa,"true")}function Ft(t,e){Object.entries(e).forEach(([n,r])=>{!t.has(n)&&r&&t.set(n,r)})}function wD(t,e){let n;if(!t)n={};else try{n=JSON.parse(t)}catch{throw ee(bs)}return e&&e.length>0&&(n.hasOwnProperty(Qr.ACCESS_TOKEN)||(n[Qr.ACCESS_TOKEN]={}),n[Qr.ACCESS_TOKEN][Qr.XMS_CC]={values:e}),JSON.stringify(n)}function Us(t,e){e&&(t.set(Mp,Q.POP),t.set(Lp,e))}function zp(t,e){e&&(t.set(Mp,Q.SSH),t.set(Lp,e))}function qp(t,e){t.set(QP,e.generateCurrentRequestHeaderValue()),t.set(XP,e.generateLastRequestHeaderValue())}function Vp(t){t.set(ZP,yr.X_MS_LIB_CAPABILITY_VALUE)}function kD(t,e){t.set(cD,e)}function si(t,e,n){t.has(Do)||t.set(Do,e),t.has(Oo)||t.set(Oo,n)}function AD(t,e){t.set(mD,encodeURIComponent(e)),t.set(hD,"eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0")}function ED(t,e){Object.entries(e).forEach(([n,r])=>{r&&t.set(n,r)})}/*! @azure/msal-common v15.14.1 2026-01-17 */function RD(t){return t.hasOwnProperty("authorization_endpoint")&&t.hasOwnProperty("token_endpoint")&&t.hasOwnProperty("issuer")&&t.hasOwnProperty("jwks_uri")}/*! @azure/msal-common v15.14.1 2026-01-17 */function PD(t){return t.hasOwnProperty("tenant_discovery_endpoint")&&t.hasOwnProperty("metadata")}/*! @azure/msal-common v15.14.1 2026-01-17 */function DD(t){return t.hasOwnProperty("error")&&t.hasOwnProperty("error_description")}/*! @azure/msal-common v15.14.1 2026-01-17 */const We=(t,e,n,r,o)=>(...i)=>{n.trace(`Executing function ${e}`);const a=r==null?void 0:r.startMeasurement(e,o);if(o){const s=e+"CallCount";r==null||r.incrementFields({[s]:1},o)}try{const s=t(...i);return a==null||a.end({success:!0}),n.trace(`Returning result from ${e}`),s}catch(s){n.trace(`Error occurred in ${e}`);try{n.trace(JSON.stringify(s))}catch{n.trace("Unable to print error message.")}throw a==null||a.end({success:!1},s),s}},_=(t,e,n,r,o)=>(...i)=>{n.trace(`Executing function ${e}`);const a=r==null?void 0:r.startMeasurement(e,o);if(o){const s=e+"CallCount";r==null||r.incrementFields({[s]:1},o)}return r==null||r.setPreQueueTime(e,o),t(...i).then(s=>(n.trace(`Returning result from ${e}`),a==null||a.end({success:!0}),s)).catch(s=>{n.trace(`Error occurred in ${e}`);try{n.trace(JSON.stringify(s))}catch{n.trace("Unable to print error message.")}throw a==null||a.end({success:!1},s),s})};/*! @azure/msal-common v15.14.1 2026-01-17 */class ci{constructor(e,n,r,o){this.networkInterface=e,this.logger=n,this.performanceClient=r,this.correlationId=o}async detectRegion(e,n){var o;(o=this.performanceClient)==null||o.addQueueMeasurement(f.RegionDiscoveryDetectRegion,this.correlationId);let r=e;if(r)n.region_source=hn.ENVIRONMENT_VARIABLE;else{const i=ci.IMDS_OPTIONS;try{const a=await _(this.getRegionFromIMDS.bind(this),f.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(C.IMDS_VERSION,i);if(a.status===Ut.SUCCESS&&(r=a.body,n.region_source=hn.IMDS),a.status===Ut.BAD_REQUEST){const s=await _(this.getCurrentVersion.bind(this),f.RegionDiscoveryGetCurrentVersion,this.logger,this.performanceClient,this.correlationId)(i);if(!s)return n.region_source=hn.FAILED_AUTO_DETECTION,null;const c=await _(this.getRegionFromIMDS.bind(this),f.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(s,i);c.status===Ut.SUCCESS&&(r=c.body,n.region_source=hn.IMDS)}}catch{return n.region_source=hn.FAILED_AUTO_DETECTION,null}}return r||(n.region_source=hn.FAILED_AUTO_DETECTION),r||null}async getRegionFromIMDS(e,n){var r;return(r=this.performanceClient)==null||r.addQueueMeasurement(f.RegionDiscoveryGetRegionFromIMDS,this.correlationId),this.networkInterface.sendGetRequestAsync(`${C.IMDS_ENDPOINT}?api-version=${e}&format=text`,n,C.IMDS_TIMEOUT)}async getCurrentVersion(e){var n;(n=this.performanceClient)==null||n.addQueueMeasurement(f.RegionDiscoveryGetCurrentVersion,this.correlationId);try{const r=await this.networkInterface.sendGetRequestAsync(`${C.IMDS_ENDPOINT}?format=json`,e);return r.status===Ut.BAD_REQUEST&&r.body&&r.body["newest-versions"]&&r.body["newest-versions"].length>0?r.body["newest-versions"][0]:null}catch{return null}}}ci.IMDS_OPTIONS={headers:{Metadata:"true"}};/*! @azure/msal-common v15.14.1 2026-01-17 */function $e(){return Math.round(new Date().getTime()/1e3)}function yl(t){return t.getTime()/1e3}function En(t){return t?new Date(Number(t)*1e3):new Date}function Mo(t,e){const n=Number(t)||0;return $e()+e>n}function bl(t,e){const n=Number(t)+e*24*60*60*1e3;return Date.now()>n}function OD(t){return Number(t)>$e()}/*! @azure/msal-common v15.14.1 2026-01-17 */function li(t,e,n,r,o){return{credentialType:we.ID_TOKEN,homeAccountId:t,environment:e,clientId:r,secret:n,realm:o,lastUpdatedAt:Date.now().toString()}}function di(t,e,n,r,o,i,a,s,c,l,u,p,h,m,I){var S,w;const y={homeAccountId:t,credentialType:we.ACCESS_TOKEN,secret:n,cachedAt:$e().toString(),expiresOn:a.toString(),extendedExpiresOn:s.toString(),environment:e,clientId:r,realm:o,target:i,tokenType:u||Q.BEARER,lastUpdatedAt:Date.now().toString()};if(p&&(y.userAssertionHash=p),l&&(y.refreshOn=l.toString()),m&&(y.requestedClaims=m,y.requestedClaimsHash=I),((S=y.tokenType)==null?void 0:S.toLowerCase())!==Q.BEARER.toLowerCase())switch(y.credentialType=we.ACCESS_TOKEN_WITH_AUTH_SCHEME,y.tokenType){case Q.POP:const T=ft(n,c);if(!((w=T==null?void 0:T.cnf)!=null&&w.kid))throw k(ap);y.keyId=T.cnf.kid;break;case Q.SSH:y.keyId=h}return y}function Bp(t,e,n,r,o,i,a){const s={credentialType:we.REFRESH_TOKEN,homeAccountId:t,environment:e,clientId:r,secret:n,lastUpdatedAt:Date.now().toString()};return i&&(s.userAssertionHash=i),o&&(s.familyId=o),a&&(s.expiresOn=a.toString()),s}function ui(t){return t.hasOwnProperty("homeAccountId")&&t.hasOwnProperty("environment")&&t.hasOwnProperty("credentialType")&&t.hasOwnProperty("clientId")&&t.hasOwnProperty("secret")}function Sl(t){return t?ui(t)&&t.hasOwnProperty("realm")&&t.hasOwnProperty("target")&&(t.credentialType===we.ACCESS_TOKEN||t.credentialType===we.ACCESS_TOKEN_WITH_AUTH_SCHEME):!1}function ND(t){return t?ui(t)&&t.hasOwnProperty("realm")&&t.credentialType===we.ID_TOKEN:!1}
4174function Il(t){return t?ui(t)&&t.credentialType===we.REFRESH_TOKEN:!1}function MD(t,e){const n=t.indexOf(Te.CACHE_KEY)===0;let r=!0;return e&&(r=e.hasOwnProperty("failedRequests")&&e.hasOwnProperty("errors")&&e.hasOwnProperty("cacheHits")),n&&r}function LD(t,e){let n=!1;t&&(n=t.indexOf(yr.THROTTLING_PREFIX)===0);let r=!0;return e&&(r=e.hasOwnProperty("throttleTime")),n&&r}function jD({environment:t,clientId:e}){return[ls,t,e].join(Er.CACHE_KEY_SEPARATOR).toLowerCase()}function UD(t,e){return e?t.indexOf(ls)===0&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("environment"):!1}function $D(t,e){return e?t.indexOf(To.CACHE_KEY)===0&&e.hasOwnProperty("aliases")&&e.hasOwnProperty("preferred_cache")&&e.hasOwnProperty("preferred_network")&&e.hasOwnProperty("canonical_authority")&&e.hasOwnProperty("authorization_endpoint")&&e.hasOwnProperty("token_endpoint")&&e.hasOwnProperty("issuer")&&e.hasOwnProperty("aliasesFromNetwork")&&e.hasOwnProperty("endpointsFromNetwork")&&e.hasOwnProperty("expiresAt")&&e.hasOwnProperty("jwks_uri"):!1}function _l(){return $e()+To.REFRESH_TIME_SECONDS}function eo(t,e,n){t.authorization_endpoint=e.authorization_endpoint,t.token_endpoint=e.token_endpoint,t.end_session_endpoint=e.end_session_endpoint,t.issuer=e.issuer,t.endpointsFromNetwork=n,t.jwks_uri=e.jwks_uri}function qi(t,e,n){t.aliases=e.aliases,t.preferred_cache=e.preferred_cache,t.preferred_network=e.preferred_network,t.aliasesFromNetwork=n}function Cl(t){return t.expiresAt<=$e()}/*! @azure/msal-common v15.14.1 2026-01-17 */class je{constructor(e,n,r,o,i,a,s,c){this.canonicalAuthority=e,this._canonicalAuthority.validateAsUri(),this.networkInterface=n,this.cacheManager=r,this.authorityOptions=o,this.regionDiscoveryMetadata={region_used:void 0,region_source:void 0,region_outcome:void 0},this.logger=i,this.performanceClient=s,this.correlationId=a,this.managedIdentity=c||!1,this.regionDiscovery=new ci(n,this.logger,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(C.CIAM_AUTH_URL))return ct.Ciam;const n=e.PathSegments;if(n.length)switch(n[0].toLowerCase()){case C.ADFS:return ct.Adfs;case C.DSTS:return ct.Dsts}return ct.Default}get authorityType(){return this.getAuthorityType(this.canonicalAuthorityUrlComponents)}get protocolMode(){return this.authorityOptions.protocolMode}get options(){return this.authorityOptions}get canonicalAuthority(){return this._canonicalAuthority.urlString}set canonicalAuthority(e){this._canonicalAuthority=new B(e),this._canonicalAuthority.validateAsUri(),this._canonicalAuthorityUrlComponents=null}get canonicalAuthorityUrlComponents(){return this._canonicalAuthorityUrlComponents||(this._canonicalAuthorityUrlComponents=this._canonicalAuthority.getUrlComponents()),this._canonicalAuthorityUrlComponents}get hostnameAndPort(){return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase()}get tenant(){return this.canonicalAuthorityUrlComponents.PathSegments[0]}get authorizationEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.authorization_endpoint);throw k(Tt)}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw k(Tt)}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw k(Tt)}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw k(lp);return this.replacePath(this.metadata.end_session_endpoint)}else throw k(Tt)}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw k(Tt)}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw k(Tt)}canReplaceTenant(e){return e.PathSegments.length===1&&!je.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===ct.Default&&this.protocolMode!==qe.OIDC}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let n=e;const o=new B(this.metadata.canonical_authority).getUrlComponents(),i=o.PathSegments;
4174return this.canonicalAuthorityUrlComponents.PathSegments.forEach((s,c)=>{let l=i[c];if(c===0&&this.canReplaceTenant(o)){const u=new B(this.metadata.authorization_endpoint).getUrlComponents().PathSegments[0];l!==u&&(this.logger.verbose(`Replacing tenant domain name ${l} with id ${u}`),l=u)}s!==l&&(n=n.replace(`/${l}/`,`/${s}/`))}),this.replaceTenant(n)}get defaultOpenIdConfigurationEndpoint(){const e=this.hostnameAndPort;return this.canonicalAuthority.endsWith("v2.0/")||this.authorityType===ct.Adfs||this.protocolMode===qe.OIDC&&!this.isAliasOfKnownMicrosoftAuthority(e)?`${this.canonicalAuthority}.well-known/openid-configuration`:`${this.canonicalAuthority}v2.0/.well-known/openid-configuration`}discoveryComplete(){return!!this.metadata}async resolveEndpointsAsync(){var o,i;(o=this.performanceClient)==null||o.addQueueMeasurement(f.AuthorityResolveEndpointsAsync,this.correlationId);const e=this.getCurrentMetadataEntity(),n=await _(this.updateCloudDiscoveryMetadata.bind(this),f.AuthorityUpdateCloudDiscoveryMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network);const r=await _(this.updateEndpointMetadata.bind(this),f.AuthorityUpdateEndpointMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.updateCachedMetadata(e,n,{source:r}),(i=this.performanceClient)==null||i.addFields({cloudDiscoverySource:n,authorityEndpointSource:r},this.correlationId)}getCurrentMetadataEntity(){let e=this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);return e||(e={aliases:[],preferred_cache:this.hostnameAndPort,preferred_network:this.hostnameAndPort,canonical_authority:this.canonicalAuthority,authorization_endpoint:"",token_endpoint:"",end_session_endpoint:"",issuer:"",aliasesFromNetwork:!1,endpointsFromNetwork:!1,expiresAt:_l(),jwks_uri:""}),e}updateCachedMetadata(e,n,r){n!==Be.CACHE&&(r==null?void 0:r.source)!==Be.CACHE&&(e.expiresAt=_l(),e.canonical_authority=this.canonicalAuthority);const o=this.cacheManager.generateAuthorityMetadataCacheKey(e.preferred_cache);this.cacheManager.setAuthorityMetadata(o,e),this.metadata=e}async updateEndpointMetadata(e){var o,i,a;(o=this.performanceClient)==null||o.addQueueMeasurement(f.AuthorityUpdateEndpointMetadata,this.correlationId);const n=this.updateEndpointMetadataFromLocalSources(e);if(n){if(n.source===Be.HARDCODED_VALUES&&(i=this.authorityOptions.azureRegionConfiguration)!=null&&i.azureRegion&&n.metadata){const s=await _(this.updateMetadataWithRegionalInformation.bind(this),f.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(n.metadata);eo(e,s,!1),e.canonical_authority=this.canonicalAuthority}return n.source}let r=await _(this.getEndpointMetadataFromNetwork.bind(this),f.AuthorityGetEndpointMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return(a=this.authorityOptions.azureRegionConfiguration)!=null&&a.azureRegion&&(r=await _(this.updateMetadataWithRegionalInformation.bind(this),f.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(r)),eo(e,r,!0),Be.NETWORK;throw k(Ju,this.defaultOpenIdConfigurationEndpoint)}updateEndpointMetadataFromLocalSources(e){this.logger.verbose("Attempting to get endpoint metadata from authority configuration");const n=this.getEndpointMetadataFromConfig();if(n)return this.logger.verbose("Found endpoint metadata in authority configuration"),eo(e,n,!1),{source:Be.CONFIG};if(this.logger.verbose("Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values."),this.authorityOptions.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get endpoint metadata from the network metadata cache.");else{const o=this.getEndpointMetadataFromHardcodedValues();if(o)return eo(e,o,!1),{source:Be.HARDCODED_VALUES,metadata:o};this.logger.verbose("Did not find endpoint metadata in hardcoded values... Attempting to get endpoint metadata from the network metadata cache.")}const r=Cl(e);return this.isAuthoritySameType(e)&&e.endpointsFromNetwork&&!r?(this.logger.verbose("Found endpoint metadata in the cache."),{source:Be.CACHE}):(r&&this.logger.verbose("The metadata entity is expired."),null)}isAuthoritySameType(e){return new B(e.canonical_authority).getUrlComponents().PathSegments.length===this.canonicalAuthorityUrlComponents.PathSegments.length}getEndpointMetadataFromConfig(){if(this.authorityOptions.authorityMetadata)try{return JSON.parse(this.authorityOptions.authorityMetadata)}catch{throw ee(vp)}return null}async getEndpointMetadataFromNetwork(){var r;(r=this.performanceClient)==null||r.addQueueMeasurement(f.AuthorityGetEndpointMetadataFromNetwork,this.correlationId);const e={},n=this.defaultOpenIdConfigurationEndpoint;this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: attempting to retrieve OAuth endpoints from ${n}`);try{const o=await this.networkInterface.sendGetRequestAsync(n,e);return RD(o.body)?o.body:(this.logger.verbose("Authority.getEndpointMetadataFromNetwork: could not parse response as OpenID configuration"),null)}catch(o){return this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: ${o}`),null}}getEndpointMetadataFromHardcodedValues(){return this.hostnameAndPort in ml?ml[this.hostnameAndPort]:null}async updateMetadataWithRegionalInformation(e){var r,o,i;(r=this.performanceClient)==null||r.addQueueMeasurement(f.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const n=(o=this.authorityOptions.azureRegionConfiguration)==null?void 0:o.azureRegion;if(n){if(n!==C.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=Hi.CONFIGURED_NO_AUTO_DETECTION,this.regionDiscoveryMetadata.region_used=n,je.replaceWithRegionalInformation(e,n);const a=await _(this.regionDiscovery.detectRegion.bind(this.regionDiscovery),f.RegionDiscoveryDetectRegion,this.logger,this.performanceClient,this.correlationId)((i=this.authorityOptions.azureRegionConfiguration)==null?void 0:i.environmentRegion,this.regionDiscoveryMetadata);if(a)return this.regionDiscoveryMetadata.region_outcome=Hi.AUTO_DETECTION_REQUESTED_SUCCESSFUL,this.regionDiscoveryMetadata.region_used=a,je.replaceWithRegionalInformation(e,a);this.regionDiscoveryMetadata.region_outcome=Hi.AUTO_DETECTION_REQUESTED_FAILED}return e}async updateCloudDiscoveryMetadata(e){var o;(o=this.performanceClient)==null||o.addQueueMeasurement(f.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const n=this.updateCloudDiscoveryMetadataFromLocalSources(e);if(n)return n;const r=await _(this.getCloudDiscoveryMetadataFromNetwork.bind(this),f.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return qi(e,r,!0),Be.NETWORK;throw ee(yp)}updateCloudDiscoveryMetadataFromLocalSources(e){this.logger.verbose("Attempting to get cloud discovery metadata  from authority configuration"),this.logger.verbosePii(`Known Authorities: ${this.authorityOptions.knownAuthorities||C.NOT_APPLICABLE}`),this.logger.verbosePii(`Authority Metadata: ${this.authorityOptions.authorityMetadata||C.NOT_APPLICABLE}`),this.logger.verbosePii(`Canonical Authority: ${e.canonical_authority||C.NOT_APPLICABLE}`);const n=this.getCloudDiscoveryMetadataFromConfig();if(n)return this.logger.verbose("Found cloud discovery metadata in authority configuration"),qi(e,n,!1),Be.CONFIG;if(this.logger.verbose("Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values."),this.options.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded cloud discovery metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get cloud discovery metadata from the network metadata cache.");else{const o=IP(this.hostnameAndPort);if(o)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),qi(e,o,!1),Be.HARDCODED_VALUES;this.logger.verbose("Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.")}const r=Cl(e);return this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!r?(this.logger.verbose("Found cloud discovery metadata in the cache."),Be.CACHE):(r&&this.logger.verbose("The metadata entity is expired."),null)}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===ct.Ciam)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),je.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);if(this.authorityOptions.cloudDiscoveryMetadata){this.logger.verbose("The cloud discovery metadata has been provided as a network response, in the config.");try{this.logger.verbose("Attempting to parse the cloud discovery metadata.");const e=JSON.parse(this.authorityOptions.cloudDiscoveryMetadata),n=Ro(e.metadata,this.hostnameAndPort);if(this.logger.verbose("Parsed the cloud discovery metadata."),n)return this.logger.verbose("There is returnable metadata attached to the parsed cloud discovery metadata."),n;this.logger.verbose("There is no metadata attached to the parsed cloud discovery metadata.")}catch{throw this.logger.verbose("Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error."),ee(Is)}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),je.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){var o;(o=this.performanceClient)==null||o.addQueueMeasurement(f.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId);const e=`${C.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`,n={};let r=null;try{const i=await this.networkInterface.sendGetRequestAsync(e,n);let a,s;if(PD(i.body))a=i.body,s=a.metadata,this.logger.verbosePii(`tenant_discovery_endpoint is: ${a.tenant_discovery_endpoint}`);
4174else if(DD(i.body)){if(this.logger.warning(`A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: ${i.status}`),a=i.body,a.error===C.INVALID_INSTANCE)return this.logger.error("The CloudInstanceDiscoveryErrorResponse error is invalid_instance."),null;this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error is ${a.error}`),this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error description is ${a.error_description}`),this.logger.warning("Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []"),s=[]}else return this.logger.error("AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse"),null;this.logger.verbose("Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request."),r=Ro(s,this.hostnameAndPort)}catch(i){if(i instanceof te)this.logger.error(`There was a network error while attempting to get the cloud discovery instance metadata.
4175Error: ${i.errorCode}
4176Error Description: ${i.errorMessage}`);else{const a=i;this.logger.error(`A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.
4177Error: ${a.name}
4178Error Description: ${a.message}`)}return null}return r||(this.logger.warning("The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request."),this.logger.verbose("Creating custom Authority for custom domain scenario."),r=je.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),r}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter(n=>n&&B.getDomainFromUrl(n).toLowerCase()===this.hostnameAndPort).length>0}static generateAuthority(e,n){let r;if(n&&n.azureCloudInstance!==ys.None){const o=n.tenant?n.tenant:C.DEFAULT_COMMON_TENANT;r=`${n.azureCloudInstance}/${o}/`}return r||e}static createCloudDiscoveryMetadataFromHost(e){return{preferred_network:e,preferred_cache:e,aliases:[e]}}getPreferredCache(){if(this.managedIdentity)return C.DEFAULT_AUTHORITY_HOST;if(this.discoveryComplete())return this.metadata.preferred_cache;throw k(Tt)}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return Rp.has(e)}static isPublicCloudAuthority(e){return C.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,n,r){const o=new B(e);o.validateAsUri();const i=o.getUrlComponents();let a=`${n}.${i.HostNameAndPort}`;this.isPublicCloudAuthority(i.HostNameAndPort)&&(a=`${n}.${C.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`);const s=B.constructAuthorityUriFromObject({...o.getUrlComponents(),HostNameAndPort:a}).urlString;return r?`${s}?${r}`:s}static replaceWithRegionalInformation(e,n){const r={...e};return r.authorization_endpoint=je.buildRegionalAuthorityString(r.authorization_endpoint,n),r.token_endpoint=je.buildRegionalAuthorityString(r.token_endpoint,n),r.end_session_endpoint&&(r.end_session_endpoint=je.buildRegionalAuthorityString(r.end_session_endpoint,n)),r}static transformCIAMAuthority(e){let n=e;const o=new B(e).getUrlComponents();if(o.PathSegments.length===0&&o.HostNameAndPort.endsWith(C.CIAM_AUTH_URL)){const i=o.HostNameAndPort.split(".")[0];n=`${n}${i}${C.AAD_TENANT_DOMAIN_SUFFIX}`}return n}}je.reservedTenantDomains=new Set(["{tenant}","{tenantid}",$t.COMMON,$t.CONSUMERS,$t.ORGANIZATIONS]);function xD(t){var o;const r=(o=new B(t).getUrlComponents().PathSegments.slice(-1)[0])==null?void 0:o.toLowerCase();switch(r){case $t.COMMON:case $t.ORGANIZATIONS:case $t.CONSUMERS:return;default:return r}}function Gp(t){return t.endsWith(C.FORWARD_SLASH)?t:`${t}${C.FORWARD_SLASH}`}function FD(t){const e=t.cloudDiscoveryMetadata;let n;if(e)try{n=JSON.parse(e)}catch{throw ee(Is)}return{canonicalAuthority:t.authority?Gp(t.authority):void 0,knownAuthorities:t.knownAuthorities,cloudDiscoveryMetadata:n}}/*! @azure/msal-common v15.14.1 2026-01-17 */async function $s(t,e,n,r,o,i,a){a==null||a.addQueueMeasurement(f.AuthorityFactoryCreateDiscoveredInstance,i);const s=je.transformCIAMAuthority(Gp(t)),c=new je(s,e,n,r,o,i,a);try{return await _(c.resolveEndpointsAsync.bind(c),f.AuthorityResolveEndpointsAsync,o,a,i)(),c}catch{throw k(Tt)}}/*! @azure/msal-common v15.14.1 2026-01-17 */class cn extends te{constructor(e,n,r,o,i){super(e,n,r),this.name="ServerError",this.errorNo=o,this.status=i,Object.setPrototypeOf(this,cn.prototype)}}/*! @azure/msal-common v15.14.1 2026-01-17 */function pi(t,e,n){var r;return{clientId:t,authority:e.authority,scopes:e.scopes,homeAccountIdentifier:n,claims:e.claims,authenticationScheme:e.authenticationScheme,resourceRequestMethod:e.resourceRequestMethod,resourceRequestUri:e.resourceRequestUri,shrClaims:e.shrClaims,sshKid:e.sshKid,embeddedClientId:e.embeddedClientId||((r=e.tokenBodyParameters)==null?void 0:r.clientId)}}/*! @azure/msal-common v15.14.1 2026-01-17 */class ht{static generateThrottlingStorageKey(e){return`${yr.THROTTLING_PREFIX}.${JSON.stringify(e)}`}static preProcess(e,n,r){var a;const o=ht.generateThrottlingStorageKey(n),i=e.getThrottlingCache(o);if(i){if(i.throttleTime<Date.now()){e.removeItem(o,r);return}throw new cn(((a=i.errorCodes)==null?void 0:a.join(" "))||C.EMPTY_STRING,i.errorMessage,i.subError)}}static postProcess(e,n,r,o){if(ht.checkResponseStatus(r)||ht.checkResponseForRetryAfter(r)){const i={throttleTime:ht.calculateThrottleTime(parseInt(r.headers[Le.RETRY_AFTER])),error:r.body.error,errorCodes:r.body.error_codes,errorMessage:r.body.error_description,subError:r.body.suberror};e.setThrottlingCache(ht.generateThrottlingStorageKey(n),i,o)}}static checkResponseStatus(e){return e.status===429||e.status>=500&&e.status<600}static checkResponseForRetryAfter(e){return e.headers?e.headers.hasOwnProperty(Le.RETRY_AFTER)&&(e.status<200||e.status>=300):!1}static calculateThrottleTime(e){const n=e<=0?0:e,r=Date.now()/1e3;return Math.floor(Math.min(r+(n||yr.DEFAULT_THROTTLE_TIME_SECONDS),r+yr.DEFAULT_MAX_THROTTLE_TIME_SECONDS)*1e3)}static removeThrottle(e,n,r,o){const i=pi(n,r,o),a=this.generateThrottlingStorageKey(i);e.removeItem(a,r.correlationId)}}/*! @azure/msal-common v15.14.1 2026-01-17 */class mi extends te{constructor(e,n,r){super(e.errorCode,e.errorMessage,e.subError),Object.setPrototypeOf(this,mi.prototype),this.name="NetworkError",this.error=e,this.httpStatus=n,this.responseHeaders=r}}function dr(t,e,n,r){return t.errorMessage=`${t.errorMessage}, additionalErrorInfo: error.name:${r==null?void 0:r.name}, error.message:${r==null?void 0:r.message}`,new mi(t,e,n)}/*! @azure/msal-common v15.14.1 2026-01-17 */class xs{constructor(e,n){this.config=DP(e),this.logger=new kt(this.config.loggerOptions,dp,vs),this.cryptoUtils=this.config.cryptoInterface,this.cacheManager=this.config.storageInterface,this.networkClient=this.config.networkInterface,this.serverTelemetryManager=this.config.serverTelemetryManager,this.authority=this.config.authOptions.authority,this.performanceClient=n}createTokenRequestHeaders(e){const n={};if(n[Le.CONTENT_TYPE]=C.URL_FORM_CONTENT_TYPE,!this.config.systemOptions.preventCorsPreflight&&e)switch(e.type){case dt.HOME_ACCOUNT_ID:try{const r=wn(e.credential);n[Le.CCS_HEADER]=`Oid:${r.uid}@${r.utid}`}catch(r){this.logger.verbose("Could not parse home account ID for CCS Header: "+r)}break;case dt.UPN:n[Le.CCS_HEADER]=`UPN: ${e.credential}`;break}return n}async executePostToTokenEndpoint(e,n,r,o,i,a){var c;a&&((c=this.performanceClient)==null||c.addQueueMeasurement(a,i));const s=await this.sendPostRequest(o,e,{body:n,headers:r},i);return this.config.serverTelemetryManager&&s.status<500&&s.status!==429&&this.config.serverTelemetryManager.clearTelemetryCache(),s}async sendPostRequest(e,n,r,o){var a,s,c;ht.preProcess(this.cacheManager,e,o);let i;try{i=await _(this.networkClient.sendPostRequestAsync.bind(this.networkClient),f.NetworkClientSendPostRequestAsync,this.logger,this.performanceClient,o)(n,r);const l=i.headers||{};(s=this.performanceClient)==null||s.addFields({refreshTokenSize:((a=i.body.refresh_token)==null?void 0:a.length)||0,httpVerToken:l[Le.X_MS_HTTP_VERSION]||"",requestId:l[Le.X_MS_REQUEST_ID]||""},o)}catch(l){if(l instanceof mi){const u=l.responseHeaders;throw u&&((c=this.performanceClient)==null||c.addFields({httpVerToken:u[Le.X_MS_HTTP_VERSION]||"",requestId:u[Le.X_MS_REQUEST_ID]||"",contentTypeHeader:u[Le.CONTENT_TYPE]||void 0,contentLengthHeader:u[Le.CONTENT_LENGTH]||void 0,httpStatus:l.httpStatus},o)),l.error}throw l instanceof te?l:k(Yu)}return ht.postProcess(this.cacheManager,e,i,o),i}
4178async updateAuthority(e,n){var i;(i=this.performanceClient)==null||i.addQueueMeasurement(f.UpdateTokenEndpointAuthority,n);const r=`https://${e}/${this.authority.tenant}/`,o=await $s(r,this.networkClient,this.cacheManager,this.authority.options,this.logger,n,this.performanceClient);this.authority=o}createTokenQueryParameters(e){const n=new Map;return e.embeddedClientId&&si(n,this.config.authOptions.clientId,this.config.authOptions.redirectUri),e.tokenQueryParameters&&Ft(n,e.tokenQueryParameters),Os(n,e.correlationId),ai(n,e.correlationId,this.performanceClient),Rr(n)}}/*! @azure/msal-common v15.14.1 2026-01-17 */const Lo="no_tokens_found",Kp="native_account_unavailable",Fs="refresh_token_expired",Hs="ux_not_allowed",HD="interaction_required",zD="consent_required",qD="login_required",hi="bad_token";/*! @azure/msal-common v15.14.1 2026-01-17 */const Tl=[HD,zD,qD,hi,Hs],VD=["message_only","additional_action","basic_action","user_password_expired","consent_required","bad_token"],BD={[Lo]:"No refresh token found in the cache. Please sign-in.",[Kp]:"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.",[Fs]:"Refresh token has expired.",[hi]:"Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve.",[Hs]:"`canShowUI` flag in Edge was set to false. User interaction required on web page. Please invoke an interactive API to resolve."};class pt extends te{constructor(e,n,r,o,i,a,s,c){super(e,n,r),Object.setPrototypeOf(this,pt.prototype),this.timestamp=o||C.EMPTY_STRING,this.traceId=i||C.EMPTY_STRING,this.correlationId=a||C.EMPTY_STRING,this.claims=s||C.EMPTY_STRING,this.name="InteractionRequiredAuthError",this.errorNo=c}}function Wp(t,e,n){const r=!!t&&Tl.indexOf(t)>-1,o=!!n&&VD.indexOf(n)>-1,i=!!e&&Tl.some(a=>e.indexOf(a)>-1);return r||i||o}function jo(t){return new pt(t,BD[t])}/*! @azure/msal-common v15.14.1 2026-01-17 */class Kn{static setRequestState(e,n,r){const o=Kn.generateLibraryState(e,r);return n?`${o}${C.RESOURCE_DELIM}${n}`:o}static generateLibraryState(e,n){if(!e)throw k(Ta);const r={id:e.createNewGuid()};n&&(r.meta=n);const o=JSON.stringify(r);return e.base64Encode(o)}static parseRequestState(e,n){if(!e)throw k(Ta);if(!n)throw k($n);try{const r=n.split(C.RESOURCE_DELIM),o=r[0],i=r.length>1?r.slice(1).join(C.RESOURCE_DELIM):C.EMPTY_STRING,a=e.base64Decode(o),s=JSON.parse(a);return{userRequestState:i||C.EMPTY_STRING,libraryState:s}}catch{throw k($n)}}}/*! @azure/msal-common v15.14.1 2026-01-17 */const GD={SW:"sw"};class xn{constructor(e,n){this.cryptoUtils=e,this.performanceClient=n}async generateCnf(e,n){var i;(i=this.performanceClient)==null||i.addQueueMeasurement(f.PopTokenGenerateCnf,e.correlationId);const r=await _(this.generateKid.bind(this),f.PopTokenGenerateCnf,n,this.performanceClient,e.correlationId)(e),o=this.cryptoUtils.base64UrlEncode(JSON.stringify(r));return{kid:r.kid,reqCnfString:o}}async generateKid(e){var r;return(r=this.performanceClient)==null||r.addQueueMeasurement(f.PopTokenGenerateKid,e.correlationId),{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:GD.SW}}async signPopToken(e,n,r){return this.signPayload(e,n,r)}async signPayload(e,n,r,o){const{resourceRequestMethod:i,resourceRequestUri:a,shrClaims:s,shrNonce:c,shrOptions:l}=r,u=a?new B(a):void 0,p=u==null?void 0:u.getUrlComponents();return this.cryptoUtils.signJwt({at:e,ts:$e(),m:i==null?void 0:i.toUpperCase(),u:p==null?void 0:p.HostNameAndPort,nonce:c||this.cryptoUtils.createNewGuid(),p:p==null?void 0:p.AbsolutePath,q:p!=null&&p.QueryString?[[],p.QueryString]:void 0,client_claims:s||void 0,...o},n,l,r.correlationId)}}/*! @azure/msal-common v15.14.1 2026-01-17 */class KD{constructor(e,n){this.cache=e,this.hasChanged=n}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}/*! @azure/msal-common v15.14.1 2026-01-17 */class en{constructor(e,n,r,o,i,a,s){this.clientId=e,this.cacheStorage=n,this.cryptoObj=r,this.logger=o,this.serializableCache=i,this.persistencePlugin=a,this.performanceClient=s}validateTokenResponse(e,n){var r;if(e.error||e.error_description||e.suberror){const o=`Error(s): ${e.error_codes||C.NOT_AVAILABLE} - Timestamp: ${e.timestamp||C.NOT_AVAILABLE} - Description: ${e.error_description||C.NOT_AVAILABLE} - Correlation ID: ${e.correlation_id||C.NOT_AVAILABLE} - Trace ID: ${e.trace_id||C.NOT_AVAILABLE}`,i=(r=e.error_codes)!=null&&r.length?e.error_codes[0]:void 0,a=new cn(e.error,o,e.suberror,i,e.status);if(n&&e.status&&e.status>=Ut.SERVER_ERROR_RANGE_START&&e.status<=Ut.SERVER_ERROR_RANGE_END){this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently unavailable and the access token is unable to be refreshed.
4179${a}`);return}else if(n&&e.status&&e.status>=Ut.CLIENT_ERROR_RANGE_START&&e.status<=Ut.CLIENT_ERROR_RANGE_END){this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently available but is unable to refresh the access token.
4180${a}`);return}throw Wp(e.error,e.error_description,e.suberror)?new pt(e.error,e.error_description,e.suberror,e.timestamp||C.EMPTY_STRING,e.trace_id||C.EMPTY_STRING,e.correlation_id||C.EMPTY_STRING,e.claims||C.EMPTY_STRING,i):a}}async handleServerTokenResponse(e,n,r,o,i,a,s,c,l,u){var y,S;(y=this.performanceClient)==null||y.addQueueMeasurement(f.HandleServerTokenResponse,e.correlation_id);let p;if(e.id_token){if(p=ft(e.id_token||C.EMPTY_STRING,this.cryptoObj.base64Decode),a&&a.nonce&&p.nonce!==a.nonce)throw k(Zu);if(o.maxAge||o.maxAge===0){const w=p.auth_time;if(!w)throw k(ps);kp(w,o.maxAge)}}this.homeAccountIdentifier=pe.generateHomeAccountId(e.client_info||C.EMPTY_STRING,n.authorityType,this.logger,this.cryptoObj,p);let h;a&&a.state&&(h=Kn.parseRequestState(this.cryptoObj,a.state)),e.key_id=e.key_id||o.sshKid||void 0;const m=this.generateCacheRecord(e,n,r,o,p,s,a);let I;try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),I=new KD(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(I)),c&&!l&&m.account&&this.cacheStorage.getAllAccounts({homeAccountId:m.account.homeAccountId,environment:m.account.environment},o.correlationId).length<1)return this.logger.warning("Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"),(S=this.performanceClient)==null||S.addFields({acntLoggedOut:!0},o.correlationId),await en.generateAuthenticationResult(this.cryptoObj,n,m,!1,o,p,h,void 0,u);await this.cacheStorage.saveCacheRecord(m,o.correlationId,vt(p||{}),i,o.storeInCache)}finally{this.persistencePlugin&&this.serializableCache&&I&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(I))}return en.generateAuthenticationResult(this.cryptoObj,n,m,!1,o,p,h,e,u)}generateCacheRecord(e,n,r,o,i,a,s){var y;const c=n.getPreferredCache();if(!c)throw k(hs);const l=Ts(i);let u,p;e.id_token&&i&&(u=li(this.homeAccountIdentifier,c,e.id_token,this.clientId,l||""),p=zs(this.cacheStorage,n,this.homeAccountIdentifier,this.cryptoObj.base64Decode,o.
4180correlationId,i,e.client_info,c,l,s,void 0,this.logger));let h=null;if(e.access_token){const S=e.scope?Se.fromString(e.scope):new Se(o.scopes||[]),w=(typeof e.expires_in=="string"?parseInt(e.expires_in,10):e.expires_in)||0,T=(typeof e.ext_expires_in=="string"?parseInt(e.ext_expires_in,10):e.ext_expires_in)||0,D=(typeof e.refresh_in=="string"?parseInt(e.refresh_in,10):e.refresh_in)||void 0,K=r+w,W=K+T,q=D&&D>0?r+D:void 0;h=di(this.homeAccountIdentifier,c,e.access_token,this.clientId,l||n.tenant||"",S.printScopes(),K,W,this.cryptoObj.base64Decode,q,e.token_type,a,e.key_id,o.claims,o.requestedClaimsHash)}let m=null;if(e.refresh_token){let S;if(e.refresh_token_expires_in){const w=typeof e.refresh_token_expires_in=="string"?parseInt(e.refresh_token_expires_in,10):e.refresh_token_expires_in;S=r+w,(y=this.performanceClient)==null||y.addFields({ntwkRtExpiresOnSeconds:S},o.correlationId)}m=Bp(this.homeAccountIdentifier,c,e.refresh_token,this.clientId,e.foci,a,S)}let I=null;return e.foci&&(I={clientId:this.clientId,environment:c,familyId:e.foci}),{account:p,idToken:u,accessToken:h,refreshToken:m,appMetadata:I}}static async generateAuthenticationResult(e,n,r,o,i,a,s,c,l){var D,K,W,q,Ce;let u=C.EMPTY_STRING,p=[],h=null,m,I,y=C.EMPTY_STRING;if(r.accessToken){if(r.accessToken.tokenType===Q.POP&&!i.popKid){const Ee=new xn(e),{secret:Re,keyId:Pe}=r.accessToken;if(!Pe)throw k(gs);u=await Ee.signPopToken(Re,Pe,i)}else u=r.accessToken.secret;p=Se.fromString(r.accessToken.target).asArray(),h=En(r.accessToken.expiresOn),m=En(r.accessToken.extendedExpiresOn),r.accessToken.refreshOn&&(I=En(r.accessToken.refreshOn))}r.appMetadata&&(y=r.appMetadata.familyId===Co?Co:"");const S=(a==null?void 0:a.oid)||(a==null?void 0:a.sub)||"",w=(a==null?void 0:a.tid)||"";c!=null&&c.spa_accountid&&r.account&&(r.account.nativeAccountId=c==null?void 0:c.spa_accountid);const T=r.account?Cs(pe.getAccountInfo(r.account),void 0,a,(D=r.idToken)==null?void 0:D.secret):null;return{authority:n.canonicalAuthority,uniqueId:S,tenantId:w,scopes:p,account:T,idToken:((K=r==null?void 0:r.idToken)==null?void 0:K.secret)||"",idTokenClaims:a||{},accessToken:u,fromCache:o,expiresOn:h,extExpiresOn:m,refreshOn:I,correlationId:i.correlationId,requestId:l||C.EMPTY_STRING,familyId:y,tokenType:((W=r.accessToken)==null?void 0:W.tokenType)||C.EMPTY_STRING,state:s?s.userRequestState:C.EMPTY_STRING,cloudGraphHostName:((q=r.account)==null?void 0:q.cloudGraphHostName)||C.EMPTY_STRING,msGraphHost:((Ce=r.account)==null?void 0:Ce.msGraphHost)||C.EMPTY_STRING,code:c==null?void 0:c.spa_code,fromNativeBroker:!1}}}function zs(t,e,n,r,o,i,a,s,c,l,u,p){p==null||p.verbose("setCachedAccount called");const m=t.getAccountKeys().find(T=>T.startsWith(n));let I=null;m&&(I=t.getAccount(m,o));const y=I||pe.createAccount({homeAccountId:n,idTokenClaims:i,clientInfo:a,environment:s,cloudGraphHostName:l==null?void 0:l.cloud_graph_host_name,msGraphHost:l==null?void 0:l.msgraph_host,nativeAccountId:u},e,r),S=y.tenantProfiles||[],w=c||y.realm;if(w&&!S.find(T=>T.tenantId===w)){const T=kn(n,y.localAccountId,w,i);S.push(T)}return y.tenantProfiles=S,y}/*! @azure/msal-common v15.14.1 2026-01-17 */async function Yp(t,e,n){return typeof t=="string"?t:t({clientId:e,tokenEndpoint:n})}/*! @azure/msal-common v15.14.1 2026-01-17 */class Jp extends xs{constructor(e,n){var r;super(e,n),this.includeRedirectUri=!0,this.oidcDefaultScopes=(r=this.config.authOptions.authority.options.OIDCOptions)==null?void 0:r.defaultScopes}async acquireToken(e,n,r){var c,l;if((c=this.performanceClient)==null||c.addQueueMeasurement(f.AuthClientAcquireToken,e.correlationId),!e.code)throw k(np);const o=$e(),i=await _(this.executeTokenRequest.bind(this),f.AuthClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(this.authority,e),a=(l=i.headers)==null?void 0:l[Le.X_MS_REQUEST_ID],s=new en(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return s.validateTokenResponse(i.body),_(s.handleServerTokenResponse.bind(s),f.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(i.body,this.authority,o,e,n,r,void 0,void 0,void 0,a)}getLogoutUri(e){if(!e)throw ee(fp);const n=this.createLogoutUrlQueryString(e);return B.appendQueryString(this.authority.endSessionEndpoint,n)}async executeTokenRequest(e,n){var l;(l=this.performanceClient)==null||l.addQueueMeasurement(f.AuthClientExecuteTokenRequest,n.correlationId);const r=this.createTokenQueryParameters(n),o=B.appendQueryString(e.tokenEndpoint,r),i=await _(this.createTokenRequestBody.bind(this),f.AuthClientCreateTokenRequestBody,this.logger,this.performanceClient,n.correlationId)(n);let a;if(n.clientInfo)try{const u=Ao(n.clientInfo,this.cryptoUtils.base64Decode);a={credential:`${u.uid}${Er.CLIENT_INFO_SEPARATOR}${u.utid}`,type:dt.HOME_ACCOUNT_ID}}catch(u){this.logger.verbose("Could not parse client info for CCS Header: "+u)}const s=this.createTokenRequestHeaders(a||n.ccsCredential),c=pi(this.config.authOptions.clientId,n);return _(this.executePostToTokenEndpoint.bind(this),f.AuthorizationCodeClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,n.correlationId)(o,i,s,c,n.correlationId,f.AuthorizationCodeClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){var o,i;(o=this.performanceClient)==null||o.addQueueMeasurement(f.AuthClientCreateTokenRequestBody,e.correlationId);const n=new Map;if(Rs(n,e.embeddedClientId||((i=e.tokenBodyParameters)==null?void 0:i[Zt])||this.config.authOptions.clientId),this.includeRedirectUri)Ps(n,e.redirectUri);else if(!e.redirectUri)throw ee(up);if(Es(n,e.scopes,!0,this.oidcDefaultScopes),_D(n,e.code),Ns(n,this.config.libraryInfo),Ms(n,this.config.telemetry.application),Vp(n),this.serverTelemetryManager&&!Op(this.config)&&qp(n,this.serverTelemetryManager),e.codeVerifier&&TD(n,e.codeVerifier),this.config.clientCredentials.clientSecret&&Up(n,this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const a=this.config.clientCredentials.clientAssertion;$p(n,await Yp(a.assertion,this.config.authOptions.clientId,e.resourceRequestUri)),xp(n,a.assertionType)}if(Fp(n,Bu.AUTHORIZATION_CODE_GRANT),js(n),e.authenticationScheme===Q.POP){const a=new xn(this.cryptoUtils,this.performanceClient);let s;e.popKid?s=this.cryptoUtils.encodeKid(e.popKid):s=(await _(a.generateCnf.bind(a),f.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger)).reqCnfString,Us(n,s)}else if(e.authenticationScheme===Q.SSH)if(e.sshJwk)zp(n,e.sshJwk);else throw ee(ii);(!Ke.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&Ds(n,e.claims,this.config.authOptions.clientCapabilities);let r;if(e.clientInfo)try{const a=Ao(e.clientInfo,this.cryptoUtils.base64Decode);r={credential:`${a.uid}${Er.CLIENT_INFO_SEPARATOR}${a.utid}`,type:dt.HOME_ACCOUNT_ID}}catch(a){this.logger.verbose("Could not parse client info for CCS Header: "+a)}else r=e.ccsCredential;if(this.config.systemOptions.preventCorsPreflight&&r)switch(r.type){case dt.HOME_ACCOUNT_ID:try{const a=wn(r.credential);br(n,a)}catch(a){this.logger.verbose("Could not parse home account ID for CCS Header: "+a)}break;case dt.UPN:No(n,r.credential);break}return e.embeddedClientId&&si(n,this.config.authOptions.clientId,this.config.authOptions.redirectUri),e.tokenBodyParameters&&Ft(n,e.tokenBodyParameters),e.enableSpaAuthorizationCode&&(!e.tokenBodyParameters||!e.tokenBodyParameters[fl])&&Ft(n,{[fl]:"1"}),ai(n,e.correlationId,this.performanceClient),Rr(n)}createLogoutUrlQueryString(e){const n=new Map;return e.postLogoutRedirectUri&&vD(n,e.postLogoutRedirectUri),e.correlationId&&Os(n,e.correlationId),e.idTokenHint&&yD(n,e.idTokenHint),e.state&&jp(n,e.state),e.logoutHint&&kD(n,e.logoutHint),e.extraQueryParameters&&Ft(n,e.extraQueryParameters),this.config.authOptions.instanceAware&&Hp(n),Rr(n,this.config.authOptions.encodeExtraQueryParams,e.extraQueryParameters)}}/*! @azure/msal-common v15.14.1 2026-01-17 */const WD=300;class YD extends xs{constructor(e,n){super(e,n)}async acquireToken(e,n){var s,c;(s=this.performanceClient)==null||s.addQueueMeasurement(f.RefreshTokenClientAcquireToken,e.correlationId);const r=$e(),o=await _(this.executeTokenRequest.bind(this),f.RefreshTokenClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(e,this.authority),i=(c=o.headers)==null?void 0:c[Le.X_MS_REQUEST_ID],a=new en(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return a.validateTokenResponse(o.body),_(a.handleServerTokenResponse.bind(a),f.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(o.body,this.authority,r,e,n,void 0,void 0,!0,e.forceCache,i)}async acquireTokenByRefreshToken(e,n){var o;if(!e)throw ee(gp);if((o=this.performanceClient)==null||o.addQueueMeasurement(f.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),!e.account)throw k(ms);if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return await _(this.acquireTokenWithCachedRefreshToken.bind(this),f.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!0,n)}catch(i){const a=i instanceof pt&&i.errorCode===Lo,s=i instanceof cn&&i.errorCode===sl.INVA
4180LID_GRANT_ERROR&&i.subError===sl.CLIENT_MISMATCH_ERROR;if(a||s)return _(this.acquireTokenWithCachedRefreshToken.bind(this),f.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1,n);throw i}return _(this.acquireTokenWithCachedRefreshToken.bind(this),f.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1,n)}async acquireTokenWithCachedRefreshToken(e,n,r){var a,s;(a=this.performanceClient)==null||a.addQueueMeasurement(f.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);const o=We(this.cacheManager.getRefreshToken.bind(this.cacheManager),f.CacheManagerGetRefreshToken,this.logger,this.performanceClient,e.correlationId)(e.account,n,e.correlationId,void 0,this.performanceClient);if(!o)throw jo(Lo);if(o.expiresOn){const c=e.refreshTokenExpirationOffsetSeconds||WD;if((s=this.performanceClient)==null||s.addFields({cacheRtExpiresOnSeconds:Number(o.expiresOn),rtOffsetSeconds:c},e.correlationId),Mo(o.expiresOn,c))throw jo(Fs)}const i={...e,refreshToken:o.secret,authenticationScheme:e.authenticationScheme||Q.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:dt.HOME_ACCOUNT_ID}};try{return await _(this.acquireToken.bind(this),f.RefreshTokenClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(i,r)}catch(c){if(c instanceof pt&&c.subError===hi){this.logger.verbose("acquireTokenWithRefreshToken: bad refresh token, removing from cache");const l=this.cacheManager.generateCredentialKey(o);this.cacheManager.removeRefreshToken(l,e.correlationId)}throw c}}async executeTokenRequest(e,n){var c;(c=this.performanceClient)==null||c.addQueueMeasurement(f.RefreshTokenClientExecuteTokenRequest,e.correlationId);const r=this.createTokenQueryParameters(e),o=B.appendQueryString(n.tokenEndpoint,r),i=await _(this.createTokenRequestBody.bind(this),f.RefreshTokenClientCreateTokenRequestBody,this.logger,this.performanceClient,e.correlationId)(e),a=this.createTokenRequestHeaders(e.ccsCredential),s=pi(this.config.authOptions.clientId,e);return _(this.executePostToTokenEndpoint.bind(this),f.RefreshTokenClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,e.correlationId)(o,i,a,s,e.correlationId,f.RefreshTokenClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){var r,o,i;(r=this.performanceClient)==null||r.addQueueMeasurement(f.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const n=new Map;if(Rs(n,e.embeddedClientId||((o=e.tokenBodyParameters)==null?void 0:o[Zt])||this.config.authOptions.clientId),e.redirectUri&&Ps(n,e.redirectUri),Es(n,e.scopes,!0,(i=this.config.authOptions.authority.options.OIDCOptions)==null?void 0:i.defaultScopes),Fp(n,Bu.REFRESH_TOKEN_GRANT),js(n),Ns(n,this.config.libraryInfo),Ms(n,this.config.telemetry.application),Vp(n),this.serverTelemetryManager&&!Op(this.config)&&qp(n,this.serverTelemetryManager),CD(n,e.refreshToken),this.config.clientCredentials.clientSecret&&Up(n,this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const a=this.config.clientCredentials.clientAssertion;$p(n,await Yp(a.assertion,this.config.authOptions.clientId,e.resourceRequestUri)),xp(n,a.assertionType)}if(e.authenticationScheme===Q.POP){const a=new xn(this.cryptoUtils,this.performanceClient);let s;e.popKid?s=this.cryptoUtils.encodeKid(e.popKid):s=(await _(a.generateCnf.bind(a),f.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger)).reqCnfString,Us(n,s)}else if(e.authenticationScheme===Q.SSH)if(e.sshJwk)zp(n,e.sshJwk);else throw ee(ii);if((!Ke.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&Ds(n,e.claims,this.config.authOptions.clientCapabilities),this.config.systemOptions.preventCorsPreflight&&e.ccsCredential)switch(e.ccsCredential.type){case dt.HOME_ACCOUNT_ID:try{const a=wn(e.ccsCredential.credential);br(n,a)}catch(a){this.logger.verbose("Could not parse home account ID for CCS Header: "+a)}break;case dt.UPN:No(n,e.ccsCredential.credential);break}return e.embeddedClientId&&si(n,this.config.authOptions.clientId,this.config.authOptions.redirectUri),e.tokenBodyParameters&&Ft(n,e.tokenBodyParameters),ai(n,e.correlationId,this.performanceClient),Rr(n)}}/*! @azure/msal-common v15.14.1 2026-01-17 */class JD extends xs{constructor(e,n){super(e,n)}async acquireCachedToken(e){var c;(c=this.performanceClient)==null||c.addQueueMeasurement(f.SilentFlowClientAcquireCachedToken,e.correlationId);let n=Kt.NOT_APPLICABLE;if(e.forceRefresh||!this.config.cacheOptions.claimsBasedCachingEnabled&&!Ke.isEmptyObj(e.claims))throw this.setCacheOutcome(Kt.FORCE_REFRESH_OR_CLAIMS,e.correlationId),k(xt);if(!e.account)throw k(ms);const r=e.account.tenantId||xD(e.authority),o=this.cacheManager.getTokenKeys(),i=this.cacheManager.getAccessToken(e.account,e,o,r);if(i){if(OD(i.cachedAt)||Mo(i.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.setCacheOutcome(Kt.CACHED_ACCESS_TOKEN_EXPIRED,e.correlationId),k(xt);i.refreshOn&&Mo(i.refreshOn,0)&&(n=Kt.PROACTIVELY_REFRESHED)}else throw this.setCacheOutcome(Kt.NO_CACHED_ACCESS_TOKEN,e.correlationId),k(xt);const a=e.authority||this.authority.getPreferredCache(),s={account:this.cacheManager.getAccount(this.cacheManager.generateAccountKey(e.account),e.correlationId),accessToken:i,idToken:this.cacheManager.getIdToken(e.account,e.correlationId,o,r,this.performanceClient),refreshToken:null,appMetadata:this.cacheManager.readAppMetadataFromCac
4180he(a)};return this.setCacheOutcome(n,e.correlationId),this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),[await _(this.generateResultFromCacheRecord.bind(this),f.SilentFlowClientGenerateResultFromCacheRecord,this.logger,this.performanceClient,e.correlationId)(s,e),n]}setCacheOutcome(e,n){var r,o;(r=this.serverTelemetryManager)==null||r.setCacheOutcome(e),(o=this.performanceClient)==null||o.addFields({cacheOutcome:e},n),e!==Kt.NOT_APPLICABLE&&this.logger.info(`Token refresh is required due to cache outcome: ${e}`)}async generateResultFromCacheRecord(e,n){var o;(o=this.performanceClient)==null||o.addQueueMeasurement(f.SilentFlowClientGenerateResultFromCacheRecord,n.correlationId);let r;if(e.idToken&&(r=ft(e.idToken.secret,this.config.cryptoInterface.base64Decode)),n.maxAge||n.maxAge===0){const i=r==null?void 0:r.auth_time;if(!i)throw k(ps);kp(i,n.maxAge)}return en.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,n,r)}}/*! @azure/msal-common v15.14.1 2026-01-17 */const QD={sendGetRequestAsync:()=>Promise.reject(k(x)),sendPostRequestAsync:()=>Promise.reject(k(x))};/*! @azure/msal-common v15.14.1 2026-01-17 */function XD(t,e,n,r){var s,c;const o=e.correlationId,i=new Map;Rs(i,e.embeddedClientId||((s=e.extraQueryParameters)==null?void 0:s[Zt])||t.clientId);const a=[...e.scopes||[],...e.extraScopesToConsent||[]];if(Es(i,a,!0,(c=t.authority.options.OIDCOptions)==null?void 0:c.defaultScopes),Ps(i,e.redirectUri),Os(i,o),gD(i,e.responseMode),js(i),e.prompt&&(SD(i,e.prompt),r==null||r.addFields({prompt:e.prompt},o)),e.domainHint&&(bD(i,e.domainHint),r==null||r.addFields({domainHintFromRequest:!0},o)),e.prompt!==ke.SELECT_ACCOUNT)if(e.sid&&e.prompt===ke.NONE)n.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from request"),vl(i,e.sid),r==null||r.addFields({sidFromRequest:!0},o);else if(e.account){const l=tO(e.account);let u=nO(e.account);if(u&&e.domainHint&&(n.warning('AuthorizationCodeClient.createAuthCodeUrlQueryString: "domainHint" param is set, skipping opaque "login_hint" claim. Please consider not passing domainHint'),u=null),u){n.verbose("createAuthCodeUrlQueryString: login_hint claim present on account"),Zr(i,u),r==null||r.addFields({loginHintFromClaim:!0},o);try{const p=wn(e.account.homeAccountId);br(i,p)}catch{n.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(l&&e.prompt===ke.NONE){n.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account"),vl(i,l),r==null||r.addFields({sidFromClaim:!0},o);try{const p=wn(e.account.homeAccountId);br(i,p)}catch{n.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(e.loginHint)n.verbose("createAuthCodeUrlQueryString: Adding login_hint from request"),Zr(i,e.loginHint),No(i,e.loginHint),r==null||r.addFields({loginHintFromRequest:!0},o);else if(e.account.username){n.verbose("createAuthCodeUrlQueryString: Adding login_hint from account"),Zr(i,e.account.username),r==null||r.addFields({loginHintFromUpn:!0},o);try{const p=wn(e.account.homeAccountId);br(i,p)}catch{n.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}}else e.loginHint&&(n.verbose("createAuthCodeUrlQueryString: No account, adding login_hint from request"),Zr(i,e.loginHint),No(i,e.loginHint),r==null||r.addFields({loginHintFromRequest:!0},o));else n.verbose("createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints");return e.nonce&&ID(i,e.nonce),e.state&&jp(i,e.state),(e.claims||t.clientCapabilities&&t.clientCapabilities.length>0)&&Ds(i,e.claims,t.clientCapabilities),e.embeddedClientId&&si(i,t.clientId,t.redirectUri),t.instanceAware&&(!e.extraQueryParameters||!Object.keys(e.extraQueryParameters).includes(Aa))&&Hp(i),i}function qs(t,e,n,r){const o=Rr(e,n,r);return B.appendQueryString(t.authorizationEndpoint,o)}function ZD(t,e){if(Qp(t,e),!t.code)throw k(sp);return t}function Qp(t,e){if(!t.state||!e)throw t.state?k(Ia,"Cached State"):k(Ia,"Server State");let n,r;try{n=decodeURIComponent(t.state)}catch{throw k($n,t.state)}try{r=decodeURIComponent(e)}catch{throw k($n,t.state)}if(n!==r)throw k(Xu);if(t.error||t.error_description||t.suberror){const o=eO(t);throw Wp(t.error,t.error_description,t.suberror)?new pt(t.error||"",t.error_description,t.suberror,t.timestamp||"",t.trace_id||"",t.correlation_id||"",t.claims||"",o):new cn(t.error||"",t.error_description,t.suberror,o)}}function eO(t){var r,o;
4180const e="code=",n=(r=t.error_uri)==null?void 0:r.lastIndexOf(e);return n&&n>=0?(o=t.error_uri)==null?void 0:o.substring(n+e.length):void 0}function tO(t){var e;return((e=t.idTokenClaims)==null?void 0:e.sid)||null}function nO(t){var e;return t.loginHint||((e=t.idTokenClaims)==null?void 0:e.login_hint)||null}/*! @azure/msal-common v15.14.1 2026-01-17 */const wl=",",Xp="|";function rO(t){const{skus:e,libraryName:n,libraryVersion:r,extensionName:o,extensionVersion:i}=t,a=new Map([[0,[n,r]],[2,[o,i]]]);let s=[];if(e!=null&&e.length){if(s=e.split(wl),s.length<4)return e}else s=Array.from({length:4},()=>Xp);return a.forEach((c,l)=>{var u,p;c.length===2&&((u=c[0])!=null&&u.length)&&((p=c[1])!=null&&p.length)&&oO({skuArr:s,index:l,skuName:c[0],skuVersion:c[1]})}),s.join(wl)}function oO(t){const{skuArr:e,index:n,skuName:r,skuVersion:o}=t;n>=e.length||(e[n]=[r,o].join(Xp))}class Pr{constructor(e,n){this.cacheOutcome=Kt.NOT_APPLICABLE,this.cacheManager=n,this.apiId=e.apiId,this.correlationId=e.correlationId,this.wrapperSKU=e.wrapperSKU||C.EMPTY_STRING,this.wrapperVer=e.wrapperVer||C.EMPTY_STRING,this.telemetryCacheKey=Te.CACHE_KEY+Er.CACHE_KEY_SEPARATOR+e.clientId}generateCurrentRequestHeaderValue(){const e=`${this.apiId}${Te.VALUE_SEPARATOR}${this.cacheOutcome}`,n=[this.wrapperSKU,this.wrapperVer],r=this.getNativeBrokerErrorCode();r!=null&&r.length&&n.push(`broker_error=${r}`);const o=n.join(Te.VALUE_SEPARATOR),i=this.getRegionDiscoveryFields(),a=[e,i].join(Te.VALUE_SEPARATOR);return[Te.SCHEMA_VERSION,a,o].join(Te.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){const e=this.getLastRequests(),n=Pr.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*n).join(Te.VALUE_SEPARATOR),o=e.errors.slice(0,n).join(Te.VALUE_SEPARATOR),i=e.errors.length,a=n<i?Te.OVERFLOW_TRUE:Te.OVERFLOW_FALSE,s=[i,a].join(Te.VALUE_SEPARATOR);return[Te.SCHEMA_VERSION,e.cacheHits,r,o,s].join(Te.CATEGORY_SEPARATOR)}cacheFailedRequest(e){const n=this.getLastRequests();n.errors.length>=Te.MAX_CACHED_ERRORS&&(n.failedRequests.shift(),n.failedRequests.shift(),n.errors.shift()),n.failedRequests.push(this.apiId,this.correlationId),e instanceof Error&&e&&e.toString()?e instanceof te?e.subError?n.errors.push(e.subError):e.errorCode?n.errors.push(e.errorCode):n.errors.push(e.toString()):n.errors.push(e.toString()):n.errors.push(Te.UNKNOWN_ERROR),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,n,this.correlationId)}incrementCacheHits(){const e=this.getLastRequests();return e.cacheHits+=1,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,e,this.correlationId),e.cacheHits}getLastRequests(){const e={failedRequests:[],errors:[],cacheHits:0};return this.cacheManager.getServerTelemetry(this.telemetryCacheKey)||e}clearTelemetryCache(){const e=this.getLastRequests(),n=Pr.maxErrorsToSend(e),r=e.errors.length;if(n===r)this.cacheManager.removeItem(this.telemetryCacheKey,this.correlationId);else{const o={failedRequests:e.failedRequests.slice(n*2),errors:e.errors.slice(n),cacheHits:0};this.cacheManager.setServerTelemetry(this.telemetryCacheKey,o,this.correlationId)}}static maxErrorsToSend(e){let n,r=0,o=0;const i=e.errors.length;for(n=0;n<i;n++){const a=e.failedRequests[2*n]||C.EMPTY_STRING,s=e.failedRequests[2*n+1]||C.EMPTY_STRING,c=e.errors[n]||C.EMPTY_STRING;if(o+=a.toString().length+s.toString().length+c.length+3,o<Te.MAX_LAST_HEADER_BYTES)r+=1;else break}return r}getRegionDiscoveryFields(){const e=[];return e.push(this.regionUsed||C.EMPTY_STRING),e.push(this.regionSource||C.EMPTY_STRING),e.push(this.regionOutcome||C.EMPTY_STRING),e.join(",")}updateRegionDiscoveryMetadata(e){this.regionUsed=e.region_used,this.regionSource=e.region_source,this.regionOutcome=e.region_outcome}setCacheOutcome(e){this.cacheOutcome=e}setNativeBrokerErrorCode(e){const n=this.getLastRequests();n.nativeBrokerErrorCode=e,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,n,this.correlationId)}getNativeBrokerErrorCode(){return this.getLastRequests().nativeBrokerErrorCode}clearNativeBrokerErrorCode(){const e=this.getLastRequests();delete e.nativeBrokerErrorCode,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,e,this.correlationId)}static makeExtraSkuString(e){return rO(e)}}/*! @azure/msal-common v15.14.1 2026-01-17 */const Zp="missing_kid_error",em="missing_alg_error";/*! @azure/msal-common v15.14.1 2026-01-17 */const iO={[Zp]:"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided.",[em]:"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided."};class Vs extends te{constructor(e,n){super(e,n),this.name="JoseHeaderError",Object.setPrototypeOf(this,Vs.prototype)}}function kl(t){return new Vs(t,iO[t])}/*! @azure/msal-common v15.14.1 2026-01-17 */class Bs{constructor(e){this.typ=e.typ,this.alg=e.alg,this.kid=e.kid}static getShrHeaderString(e){if(!e.kid)throw kl(Zp);if(!e.alg)throw kl(em);const n=new Bs({typ:e.typ||XR.Pop,kid:e.kid,alg:e.alg});return JSON.stringify(n)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */const Gs="pkce_not_created",Ks="ear_jwk_empty",tm="ear_jwe_empty",Ea="crypto_nonexistent",g
4180i="empty_navigate_uri",nm="hash_empty_error",Ws="no_state_in_hash",rm="hash_does_not_contain_known_properties",om="unable_to_parse_state",im="state_interaction_type_mismatch",am="interaction_in_progress",sm="popup_window_error",cm="empty_window_error",Dr="user_cancelled",aO="monitor_popup_timeout",lm="monitor_window_timeout",dm="redirect_in_iframe",um="block_iframe_reload",pm="block_nested_popups",sO="iframe_closed_prematurely",fi="silent_logout_unsupported",mm="no_account_error",cO="silent_prompt_value_error",hm="no_token_request_cache_error",gm="unable_to_parse_token_request_cache_error",lO="auth_request_not_set_error",dO="invalid_cache_type",vi="non_browser_environment",Sn="database_not_open",Uo="no_network_connectivity",fm="post_request_failed",vm="get_request_failed",Ra="failed_to_parse_response",ym="unable_to_load_token",Ys="crypto_key_not_found",bm="auth_code_required",Sm="auth_code_or_nativeAccountId_required",Im="spa_code_and_nativeAccountId_present",Js="database_unavailable",_m="unable_to_acquire_token_from_native_platform",Cm="native_handshake_timeout",Tm="native_extension_not_installed",Qs="native_connection_not_established",Sr="uninitialized_public_client_application",wm="native_prompt_not_supported",km="invalid_base64_string",Am="invalid_pop_token_request",Em="failed_to_build_headers",Rm="failed_to_parse_headers",po="failed_to_decrypt_ear_response",$o="timed_out";/*! @azure/msal-browser v4.28.1 2026-01-17 */const It="For more visit: aka.ms/msaljs/browser-errors",uO={[Gs]:"The PKCE code challenge and verifier could not be generated.",[Ks]:"No EAR encryption key provided. This is unexpected.",[tm]:"Server response does not contain ear_jwe property. This is unexpected.",[Ea]:"The crypto object or function is not available.",[gi]:"Navigation URI is empty. Please check stack trace for more info.",[nm]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${It}`,[Ws]:"Hash does not contain state. Please verify that the request originated from msal.",[rm]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash.  ${It}`,[om]:"Unable to parse state. Please verify that the request originated from msal.",[im]:"Hash contains state but the interaction type does not match the caller.",[am]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API.   ${It}`,[sm]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[cm]:"window.open returned null or undefined window object.",[Dr]:"User cancelled the flow.",[aO]:`Token acquisition in popup failed due to timeout.  ${It}`,[lm]:`Token acquisition in iframe failed due to timeout.  ${It}`,[dm]:"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.",[um]:`Request was blocked inside an iframe because MSAL detected an authentication response.  ${It}`,[pm]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[sO]:"The iframe being monitored was closed prematurely.",[fi]:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.",[mm]:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.",[cO]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[hm]:"No token request found in cache.",[gm]:"The cached token request could not be parsed.",[lO]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[dO]:"Invalid cache type",[vi]:"Login and token requests are not supported in non-browser environments.",[Sn]:"Database is not open!",[Uo]:"No network connectivity. Check your internet connection.",[fm]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[vm]:"Network request failed. Please check the network trace to determine root cause.",[Ra]:"Failed to parse network response. Check network trace.",[ym]:"Error loading token to cache.",[Ys]:"Cryptographic Key or Keypair not found in browser storage.",[bm]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[Sm]:"An authorization code or nativeAccountId must be provided to this flow.",[Im]:"Request cannot contain both spa code and native account id.",[Js]:"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.",[_m]:`Unable to acquire token from native platform.  ${It}`,[Cm]:"Timed out while attempting to establish connection to browser extension",[Tm]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[Qs]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize().  ${It}`,[Sr]:`You must call and await the initialize function before attempting to call any other MSAL API.  ${It}`,[wm]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.",[km]:"Invalid base64 encoded string.",[Am]:"Invalid PoP token request. The request should not have both a popKid value and signPopToken set to true.",[Em]:"Failed to build request headers object.",[Rm]:"Failed to parse response headers",[po]:"Failed to decrypt ear response",[$o]:"The request timed out."};class Hr extends te{constructor(e,n){super(e,uO[e],n),Object.setPrototypeOf(this,Hr.prototype),this.name="BrowserAuthError"}}function P(t,e){return new Hr(t,e)}/*! @azure/msal-browser v4.28.1 2026-01-17 */const ze={INVALID_GRANT_ERROR:"invalid_grant",POPUP_WIDTH:483,POPUP_HEIGHT:600,POPUP_NAME_PREFIX:"msal",DEFAULT_POLL_INTERVAL_MS:30,MSAL_SKU:"msal.js.browser"},Xe={CHANNEL_ID:"53ee284d-920a-4b59-9d30-a60315b26836",PREFERRED_EXTENSION_ID:"ppnbnpeolgkicgegkbkbjmhlideopiji",MATS_TELEMETRY:"MATS",MICROSOFT_ENTRA_BROKERID:"MicrosoftEntra",DOM_API_NAME:"DOM API",PLATFORM_DOM_APIS:"get-token-and-sign-out",P
4180LATFORM_DOM_PROVIDER:"PlatformAuthDOMHandler",PLATFORM_EXTENSION_PROVIDER:"PlatformAuthExtensionHandler"},nr={HandshakeRequest:"Handshake",HandshakeResponse:"HandshakeResponse",GetToken:"GetToken",Response:"Response"},Ae={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},Al={GET:"GET",POST:"POST"},jt={SIGNIN:"signin",SIGNOUT:"signout"},fe={ORIGIN_URI:"request.origin",URL_HASH:"urlHash",REQUEST_PARAMS:"request.params",VERIFIER:"code.verifier",INTERACTION_STATUS_KEY:"interaction.status",NATIVE_REQUEST:"request.native"},to={WRAPPER_SKU:"wrapper.sku",WRAPPER_VER:"wrapper.version"},z={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962,hydrateCache:963,loadExternalTokens:964},El={861:"acquireTokenRedirect",862:"acquireTokenPopup",863:"ssoSilent",864:"acquireTokenSilent_authCode",865:"handleRedirectPromise",866:"acquireTokenByCode",61:"acquireTokenSilent_silentFlow",961:"logout",962:"logoutPopup",963:"hydrateCache",964:"loadExternalTokens"},pO=t=>typeof t=="number"&&t in El?El[t]:"unknown";var N;(function(t){t.Redirect="redirect",t.Popup="popup",t.Silent="silent",t.None="none"})(N||(N={}));const be={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},Rl={scopes:Gn},Pm="jwk",mO={React:"@azure/msal-react"},Pa="msal.db",hO=1,gO=`${Pa}.keys`,Me={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5},fO=[Me.Default,Me.Skip,Me.RefreshTokenAndNetwork];/*! @azure/msal-browser v4.28.1 2026-01-17 */function no(t){return encodeURIComponent(Or(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function zt(t){return Dm(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Or(t){return Dm(new TextEncoder().encode(t))}function Dm(t){const e=Array.from(t,n=>String.fromCodePoint(n)).join("");return btoa(e)}/*! @azure/msal-browser v4.28.1 2026-01-17 */function Ue(t){return new TextDecoder().decode(Ht(t))}function Ht(t){let e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw P(km)}const n=atob(e);return Uint8Array.from(n,r=>r.codePointAt(0)||0)}/*! @azure/msal-browser v4.28.1 2026-01-17 */const vO="RSASSA-PKCS1-v1_5",Wn="AES-GCM",Om="HKDF",Xs="SHA-256",yO=2048,bO=new Uint8Array([1,0,1]),Pl="0123456789abcdef",Dl=new Uint32Array(1),Zs="raw",Nm="encrypt",ec="decrypt",SO="deriveKey",IO="crypto_subtle_undefined",tc={name:vO,hash:Xs,modulusLength:yO,publicExponent:bO};function _O(t){if(!window)throw P(vi);if(!window.crypto)throw P(Ea);if(!t&&!window.crypto.subtle)throw P(Ea,IO)}async function Mm(t,e,n){e==null||e.addQueueMeasurement(f.Sha256Digest,n);const o=new TextEncoder().encode(t);return window.crypto.subtle.digest(Xs,o)}function CO(t){return window.crypto.getRandomValues(t)}function Vi(){return window.crypto.getRandomValues(Dl),Dl[0]}function yt(){const t=Date.now(),e=Vi()*1024+(Vi()&1023),n=new Uint8Array(16),r=Math.trunc(e/2**30),o=e&2**30-1,i=Vi();n[0]=t/2**40,n[1]=t/2**32,n[2]=t/2**24,n[3]=t/2**16,n[4]=t/2**8,n[5]=t,n[6]=112|r>>>8,n[7]=r,n[8]=128|o>>>24,n[9]=o>>>16,n[10]=o>>>8,n[11]=o,n[12]=i>>>24,n[13]=i>>>16,n[14]=i>>>8,n[15]=i;let a="";for(let s=0;s<n.length;s++)a+=Pl.charAt(n[s]>>>4),a+=Pl.charAt(n[s]&15),(s===3||s===5||s===7||s===9)&&(a+="-");return a}async function TO(t,e){return window.crypto.subtle.generateKey(tc,t,e)}async function Bi(t){return window.crypto.subtle.exportKey(Pm,t)}async function wO(t,e,n){return window.crypto.subtle.importKey(Pm,t,tc,e,n)}async function kO(t,e){return window.crypto.subtle.sign(tc,t,e)}async function nc(){const t=await Lm(),n={alg:"dir",kty:"oct",k:zt(new Uint8Array(t))};return Or(JSON.stringify(n))}async function AO(t){const e=Ue(t),r=JSON.parse(e).k,o=Ht(r);return window.crypto.subtle.importKey(Zs,o,Wn,!1,[ec])}async function EO(t,e){const n=e.split(".");if(n.length!==5)throw P(po,"jwe_length");const r=await AO(t).catch(()=>{throw P(po,"import_key")});try{const o=new TextEncoder().encode(n[0]),i=Ht(n[2]),a=Ht(n[3]),s=Ht(n[4]),c=s.byteLength*8,l=new Uint8Array(a.length+s.length);l.set(a),l.set(s,a.length);
4180const u=await window.crypto.subtle.decrypt({name:Wn,iv:i,tagLength:c,additionalData:o},r,l);return new TextDecoder().decode(u)}catch{throw P(po,"decrypt")}}async function Lm(){const t=await window.crypto.subtle.generateKey({name:Wn,length:256},!0,[Nm,ec]);return window.crypto.subtle.exportKey(Zs,t)}async function Ol(t){return window.crypto.subtle.importKey(Zs,t,Om,!1,[SO])}async function jm(t,e,n){return window.crypto.subtle.deriveKey({name:Om,salt:e,hash:Xs,info:new TextEncoder().encode(n)},t,{name:Wn,length:256},!1,[Nm,ec])}async function RO(t,e,n){const r=new TextEncoder().encode(e),o=window.crypto.getRandomValues(new Uint8Array(16)),i=await jm(t,o,n),a=await window.crypto.subtle.encrypt({name:Wn,iv:new Uint8Array(12)},i,r);return{data:zt(new Uint8Array(a)),nonce:zt(o)}}async function Nl(t,e,n,r){const o=Ht(r),i=await jm(t,Ht(e),n),a=await window.crypto.subtle.decrypt({name:Wn,iv:new Uint8Array(12)},i,o);return new TextDecoder().decode(a)}async function Um(t){const e=await Mm(t),n=new Uint8Array(e);return zt(n)}/*! @azure/msal-browser v4.28.1 2026-01-17 */const yi="storage_not_supported",ye="stubbed_public_client_application_called",rc="in_mem_redirect_unavailable";/*! @azure/msal-browser v4.28.1 2026-01-17 */const mo={[yi]:"Given storage configuration option was not supported.",[ye]:"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors",[rc]:"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true."};mo[yi],mo[ye],mo[rc];class oc extends te{constructor(e,n){super(e,n),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,oc.prototype)}}function ge(t){return new oc(t,mo[t])}/*! @azure/msal-browser v4.28.1 2026-01-17 */function $m(t){t.location.hash="",typeof t.history.replaceState=="function"&&t.history.replaceState(null,"",`${t.location.origin}${t.location.pathname}${t.location.search}`)}function PO(t){const e=t.split("#");e.shift(),window.location.hash=e.length>0?e.join("#"):""}function ic(){return window.parent!==window}function DO(){return typeof window<"u"&&!!window.opener&&window.opener!==window&&typeof window.name=="string"&&window.name.indexOf(`${ze.POPUP_NAME_PREFIX}.`)===0}function wt(){return typeof window<"u"&&window.location?window.location.href.split("?")[0].split("#")[0]:""}function OO(){const e=new B(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}function NO(){if(B.hashContainsKnownProperties(window.location.hash)&&ic())throw P(um)}function MO(t){if(ic()&&!t)throw P(dm)}function LO(){if(DO())throw P(pm)}function xm(){if(typeof window>"u")throw P(vi)}function Fm(t){if(!t)throw P(Sr)}function ac(t){xm(),NO(),LO(),Fm(t)}function Ml(t,e){if(ac(t),MO(e.system.allowRedirectInIframe),e.cache.cacheLocation===Ae.MemoryStorage&&!e.cache.storeAuthStateInCookie)throw ge(rc)}function Hm(t){const e=document.createElement("link");e.rel="preconnect",e.href=new URL(t).origin,e.crossOrigin="anonymous",document.head.appendChild(e),window.setTimeout(()=>{try{document.head.removeChild(e)}catch{}},1e4)}function jO(){return yt()}/*! @azure/msal-browser v4.28.1 2026-01-17 */class xo{navigateInternal(e,n){return xo.defaultNavigateWindow(e,n)}navigateExternal(e,n){return xo.defaultNavigateWindow(e,n)}static defaultNavigateWindow(e,n){return n.noHistory?window.location.replace(e):window.location.assign(e),new Promise((r,o)=>{setTimeout(()=>{o(P($o,"failed_to_redirect"))},n.timeout)})}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class UO{async sendGetRequestAsync(e,n){let r,o={},i=0;const a=Ll(n);try{r=await fetch(e,{method:Al.GET,headers:a})}catch(s){throw dr(P(window.navigator.onLine?vm:Uo),void 0,void 0,s)}o=jl(r.headers);try{return i=r.status,{headers:o,body:await r.json(),status:i}}catch(s){throw dr(P(Ra),i,o,s)}}async sendPostRequestAsync(e,n){const r=n&&n.body||"",o=Ll(n);let i,a=0,s={};try{i=await fetch(e,{method:Al.POST,headers:o,body:r})}catch(c){throw dr(P(window.navigator.onLine?fm:Uo),void 0,void 0,c)}s=jl(i.headers);try{return a=i.status,{headers:s,body:await i.json(),status:a}}catch(c){throw dr(P(Ra),a,s,c)}}}function Ll(t){try{const e=new Headers;if(!(t&&t.headers))return e;const n=t.headers;
4180return Object.entries(n).forEach(([r,o])=>{e.append(r,o)}),e}catch(e){throw dr(P(Em),void 0,void 0,e)}}function jl(t){try{const e={};return t.forEach((n,r)=>{e[r]=n}),e}catch{throw P(Rm)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */const $O=6e4,Da=1e4,xO=3e4,zm=2e3;function FO({auth:t,cache:e,system:n,telemetry:r},o){const i={clientId:C.EMPTY_STRING,authority:`${C.DEFAULT_AUTHORITY}`,knownAuthorities:[],cloudDiscoveryMetadata:C.EMPTY_STRING,authorityMetadata:C.EMPTY_STRING,redirectUri:typeof window<"u"?wt():"",postLogoutRedirectUri:C.EMPTY_STRING,navigateToLoginRequestUrl:!0,clientCapabilities:[],protocolMode:qe.AAD,OIDCOptions:{serverResponseType:oi.FRAGMENT,defaultScopes:[C.OPENID_SCOPE,C.PROFILE_SCOPE,C.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:ys.None,tenant:C.EMPTY_STRING},skipAuthorityMetadataCache:!1,supportsNestedAppAuth:!1,instanceAware:!1,encodeExtraQueryParams:!1},a={cacheLocation:Ae.SessionStorage,cacheRetentionDays:5,temporaryCacheLocation:Ae.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!!(e&&e.cacheLocation===Ae.LocalStorage),claimsBasedCachingEnabled:!1},s={loggerCallback:()=>{},logLevel:re.Info,piiLoggingEnabled:!1},l={...{...Dp,loggerOptions:s,networkClient:o?new UO:QD,navigationClient:new xo,loadFrameTimeout:0,windowHashTimeout:(n==null?void 0:n.loadFrameTimeout)||$O,iframeHashTimeout:(n==null?void 0:n.loadFrameTimeout)||Da,navigateFrameWait:0,redirectNavigationTimeout:xO,asyncPopups:!1,allowRedirectInIframe:!1,allowPlatformBroker:!1,allowPlatformBrokerWithDOM:!1,nativeBrokerHandshakeTimeout:(n==null?void 0:n.nativeBrokerHandshakeTimeout)||zm,pollIntervalMilliseconds:ze.DEFAULT_POLL_INTERVAL_MS},...n,loggerOptions:(n==null?void 0:n.loggerOptions)||s},u={application:{appName:C.EMPTY_STRING,appVersion:C.EMPTY_STRING},client:new Pp};if((t==null?void 0:t.protocolMode)!==qe.OIDC&&(t!=null&&t.OIDCOptions)&&new kt(l.loggerOptions).warning(JSON.stringify(ee(Sp))),t!=null&&t.protocolMode&&t.protocolMode===qe.OIDC&&(l!=null&&l.allowPlatformBroker))throw ee(Ip);return{auth:{...i,...t,OIDCOptions:{...i.OIDCOptions,...t==null?void 0:t.OIDCOptions}},cache:{...a,...e},system:l,telemetry:{...u,...r}}}/*! @azure/msal-browser v4.28.1 2026-01-17 */const HO="@azure/msal-browser",tn="4.28.1";/*! @azure/msal-browser v4.28.1 2026-01-17 */const Oe="msal",qm="browser",Ul="|",De=2,ho=2,zO=`${Oe}.${qm}.log.level`,qO=`${Oe}.${qm}.log.pii`,$l=`${Oe}.version`,xl="account.keys",Fl="token.keys";function Rn(t=ho){return t<1?`${Oe}.${xl}`:`${Oe}.${t}.${xl}`}function Pn(t,e=De){return e<1?`${Oe}.${Fl}.${t}`:`${Oe}.${e}.${Fl}.${t}`}/*! @azure/msal-browser v4.28.1 2026-01-17 */class sc{static loggerCallback(e,n){switch(e){case re.Error:console.error(n);return;case re.Info:console.info(n);return;case re.Verbose:console.debug(n);return;case re.Warning:console.warn(n);return;default:console.log(n);return}}constructor(e){var c;this.browserEnvironment=typeof window<"u",this.config=FO(e,this.browserEnvironment);let n;try{n=window[Ae.SessionStorage]}catch{}const r=n==null?void 0:n.getItem(zO),o=(c=n==null?void 0:n.getItem(qO))==null?void 0:c.toLowerCase(),i=o==="true"?!0:o==="false"?!1:void 0,a={...this.config.system.loggerOptions},s=r&&Object.keys(re).includes(r)?re[r]:void 0;s&&(a.loggerCallback=sc.loggerCallback,a.logLevel=s),i!==void 0&&(a.piiLoggingEnabled=i),this.logger=new kt(a,HO,tn),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class nn extends sc{getModuleName(){return nn.MODULE_NAME}getId(){return nn.ID}async initialize(){return this.available=typeof window<"u",this.available}}nn.MODULE_NAME="";nn.ID="StandardOperatingContext";/*! @azure/msal-browser v4.28.1 2026-01-17 */class VO{constructor(){this.dbName=Pa,this.version=hO,this.tableName=gO,this.dbOpen=!1}async open(){return new Promise((e,n)=>{const r=window.indexedDB.open(this.dbName,this.version);r.addEventListener("upgradeneeded",o=>{o.target.result.createObjectStore(this.tableName)}),r.addEventListener("success",o=>
4180{const i=o;this.db=i.target.result,this.dbOpen=!0,e()}),r.addEventListener("error",()=>n(P(Js)))})}closeConnection(){const e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise((n,r)=>{if(!this.db)return r(P(Sn));const a=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);a.addEventListener("success",s=>{const c=s;this.closeConnection(),n(c.target.result)}),a.addEventListener("error",s=>{this.closeConnection(),r(s)})})}async setItem(e,n){return await this.validateDbIsOpen(),new Promise((r,o)=>{if(!this.db)return o(P(Sn));const s=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(n,e);s.addEventListener("success",()=>{this.closeConnection(),r()}),s.addEventListener("error",c=>{this.closeConnection(),o(c)})})}async removeItem(e){return await this.validateDbIsOpen(),new Promise((n,r)=>{if(!this.db)return r(P(Sn));const a=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);a.addEventListener("success",()=>{this.closeConnection(),n()}),a.addEventListener("error",s=>{this.closeConnection(),r(s)})})}async getKeys(){return await this.validateDbIsOpen(),new Promise((e,n)=>{if(!this.db)return n(P(Sn));const i=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAllKeys();i.addEventListener("success",a=>{const s=a;this.closeConnection(),e(s.target.result)}),i.addEventListener("error",a=>{this.closeConnection(),n(a)})})}async containsKey(e){return await this.validateDbIsOpen(),new Promise((n,r)=>{if(!this.db)return r(P(Sn));const a=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).count(e);a.addEventListener("success",s=>{const c=s;this.closeConnection(),n(c.target.result===1)}),a.addEventListener("error",s=>{this.closeConnection(),r(s)})})}async deleteDatabase(){return this.db&&this.dbOpen&&this.closeConnection(),new Promise((e,n)=>{const r=window.indexedDB.deleteDatabase(Pa),o=setTimeout(()=>n(!1),200);r.addEventListener("success",()=>(clearTimeout(o),e(!0))),r.addEventListener("blocked",()=>(clearTimeout(o),e(!0))),r.addEventListener("error",()=>(clearTimeout(o),n(!1)))})}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class bi{constructor(){this.cache=new Map}async initialize(){}getItem(e){return this.cache.get(e)||null}getUserData(e){return this.getItem(e)}setItem(e,n){this.cache.set(e,n)}async setUserData(e,n){this.setItem(e,n)}removeItem(e){this.cache.delete(e)}getKeys(){const e=[];return this.cache.forEach((n,r)=>{e.push(r)}),e}containsKey(e){return this.cache.has(e)}clear(){this.cache.clear()}decryptData(){return Promise.resolve(null)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class BO{constructor(e){this.inMemoryCache=new bi,this.indexedDBCache=new VO,this.logger=e}handleDatabaseAccessError(e){if(e instanceof Hr&&e.errorCode===Js)this.logger.error("Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.");else throw e}async getItem(e){const n=this.inMemoryCache.getItem(e);if(!n)try{return this.logger.verbose("Queried item not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.getItem(e)}catch(r){this.handleDatabaseAccessError(r)}return n}async setItem(e,n){this.inMemoryCache.setItem(e,n);try{await this.indexedDBCache.setItem(e,n)}catch(r){this.handleDatabaseAccessError(r)}}async removeItem(e){this.inMemoryCache.removeItem(e);try{await this.indexedDBCache.removeItem(e)}catch(n){this.handleDatabaseAccessError(n)}}async getKeys(){const e=this.inMemoryCache.getKeys();if(e.length===0)try{return this.logger.verbose("In-memory cache is empty, now querying persistent storage."),await this.indexedDBCache.getKeys()}catch(n){this.handleDatabaseAccessError(n)}return e}async containsKey(e){const n=this.inMemoryCache.containsKey(e);if(!n)try{return this.logger.verbose("Key not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.containsKey(e)}catch(r){this.handleDatabaseAccessError(r)}return n}clearInMemory(){this.logger.verbose("Deleting in-memory keystore"),this.inMemoryCache.clear(),this.logger.verbose("In-memory keystore deleted")}
4180async clearPersistent(){try{this.logger.verbose("Deleting persistent keystore");const e=await this.indexedDBCache.deleteDatabase();return e&&this.logger.verbose("Persistent keystore deleted"),e}catch(e){return this.handleDatabaseAccessError(e),!1}}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class At{constructor(e,n,r){this.logger=e,_O(r??!1),this.cache=new BO(this.logger),this.performanceClient=n}createNewGuid(){return yt()}base64Encode(e){return Or(e)}base64Decode(e){return Ue(e)}base64UrlEncode(e){return no(e)}encodeKid(e){return this.base64UrlEncode(JSON.stringify({kid:e}))}async getPublicKeyThumbprint(e){var u;const n=(u=this.performanceClient)==null?void 0:u.startMeasurement(f.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await TO(At.EXTRACTABLE,At.POP_KEY_USAGES),o=await Bi(r.publicKey),i={e:o.e,kty:o.kty,n:o.n},a=Hl(i),s=await this.hashString(a),c=await Bi(r.privateKey),l=await wO(c,!1,["sign"]);return await this.cache.setItem(s,{privateKey:l,publicKey:r.publicKey,requestMethod:e.resourceRequestMethod,requestUri:e.resourceRequestUri}),n&&n.end({success:!0}),s}async removeTokenBindingKey(e){if(await this.cache.removeItem(e),await this.cache.containsKey(e))throw k(cp)}async clearKeystore(){this.cache.clearInMemory();try{return await this.cache.clearPersistent(),!0}catch(e){return e instanceof Error?this.logger.error(`Clearing keystore failed with error: ${e.message}`):this.logger.error("Clearing keystore failed with unknown error"),!1}}async signJwt(e,n,r,o){var D;const i=(D=this.performanceClient)==null?void 0:D.startMeasurement(f.CryptoOptsSignJwt,o),a=await this.cache.getItem(n);if(!a)throw P(Ys);const s=await Bi(a.publicKey),c=Hl(s),l=no(JSON.stringify({kid:n})),u=Bs.getShrHeaderString({...r==null?void 0:r.header,alg:s.alg,kid:l}),p=no(u);e.cnf={jwk:JSON.parse(c)};const h=no(JSON.stringify(e)),m=`${p}.${h}`,y=new TextEncoder().encode(m),S=await kO(a.privateKey,y),w=zt(new Uint8Array(S)),T=`${m}.${w}`;return i&&i.end({success:!0}),T}async hashString(e){return Um(e)}}At.POP_KEY_USAGES=["sign","verify"];At.EXTRACTABLE=!0;function Hl(t){return JSON.stringify(t,Object.keys(t).sort())}/*! @azure/msal-browser v4.28.1 2026-01-17 */const GO=24*60*60*1e3,Oa={Lax:"Lax",None:"None"};class Vm{initialize(){return Promise.resolve()}getItem(e){const n=`${encodeURIComponent(e)}`,r=document.cookie.split(";");for(let o=0;o<r.length;o++){const i=r[o],[a,...s]=decodeURIComponent(i).trim().split("="),c=s.join("=");if(a===n)return c}return""}getUserData(){throw k(x)}setItem(e,n,r,o=!0,i=Oa.Lax){let a=`${encodeURIComponent(e)}=${encodeURIComponent(n)};path=/;SameSite=${i};`;if(r){const s=KO(r);a+=`expires=${s};`}(o||i===Oa.None)&&(a+="Secure;"),document.cookie=a}async setUserData(){return Promise.reject(k(x))}removeItem(e){this.setItem(e,"",-1)}getKeys(){const e=document.cookie.split(";"),n=[];return e.forEach(r=>{const o=decodeURIComponent(r).trim().split("=");n.push(o[0])}),n}containsKey(e){return this.getKeys().includes(e)}decryptData(){return Promise.resolve(null)}}function KO(t){const e=new Date;return new Date(e.getTime()+t*GO).toUTCString()}/*! @azure/msal-browser v4.28.1 2026-01-17 */function Lt(t,e){const n=t.getItem(Rn(e));return n?JSON.parse(n):[]}function st(t,e,n){const r=e.getItem(Pn(t,n));if(r){const o=JSON.parse(r);if(o&&o.hasOwnProperty("idToken")&&o.hasOwnProperty("accessToken")&&o.hasOwnProperty("refreshToken"))return o}return{idToken:[],accessToken:[],refreshToken:[]}}/*! @azure/msal-browser v4.28.1 2026-01-17 */function go(t){return t.hasOwnProperty("id")&&t.hasOwnProperty("nonce")&&t.hasOwnProperty("data")}/*! @azure/msal-browser v4.28.1 2026-01-17 */const zl="msal.cache.encryption",WO="msal.broadcast.cache";class YO{constructor(e,n,r){if(!window.localStorage)throw ge(yi);this.memoryStorage=new bi,this.initialized=!1,this.clientId=e,this.logger=n,this.performanceClient=r,this.broadcast=new BroadcastChannel(WO)}async initialize(e){const n=new Vm,r=n.getItem(zl);let o={key:"",id:""};if(r)try{o=JSON.parse(r)}catch{}if(o.key&&o.id){const i=We(Ht,f.Base64Decode,this.logger,this.performanceClient,e)(o.key);this.encryptionCookie={id:o.id,key:await _(Ol,f.GenerateHKDF,this.logger,this.performanceClient,e)(i)}}else{const i=yt(),a=await _(Lm,f.GenerateBaseKey,this.logger,this.performanceClient,e)(),s=We(zt,f.UrlEncodeArr,this.logger,this.performanceClient,e)(new Uint8Array(a));this.encryptionCookie={id:i,key:await _(Ol,f.GenerateHKDF,this.logger,this.performanceClient,e)(a)};const c={id:i,key:s};n.setItem(zl,JSON.stringify(c),0,!0,Oa.None)}await _(this.importExistingCache.bind(this),f.ImportExistingCache,this.logger,this.performanceClient,e)(e),this.broadcast.addEventListener("message",this.updateCache.bind(this)),this.initialized=!0}getItem(e){return window.localStorage.getItem(e)}getUserData(e){if(!this.initialized)throw P(Sr);return this.memoryStorage.getItem(e)}async decryptData(e,n,r){if(!this.initialized||!this.encryptionCookie)throw P(Sr);if(n.id!==this.encryptionCookie.id)return this.performanceClient.incrementFields({encryptedCacheExpiredCount:1},r),null;const o=await _(Nl,f.Decrypt,this.logger,this.performanceClient,r)(this.encryptionCookie.ke
4180y,n.nonce,this.getContext(e),n.data);if(!o)return null;try{return{...JSON.parse(o),lastUpdatedAt:n.lastUpdatedAt}}catch{return this.performanceClient.incrementFields({encryptedCacheCorruptionCount:1},r),null}}setItem(e,n){window.localStorage.setItem(e,n)}async setUserData(e,n,r,o,i){if(!this.initialized||!this.encryptionCookie)throw P(Sr);if(i)this.setItem(e,n);else{const{data:a,nonce:s}=await _(RO,f.Encrypt,this.logger,this.performanceClient,r)(this.encryptionCookie.key,n,this.getContext(e)),c={id:this.encryptionCookie.id,nonce:s,data:a,lastUpdatedAt:o};this.setItem(e,JSON.stringify(c))}this.memoryStorage.setItem(e,n),this.broadcast.postMessage({key:e,value:n,context:this.getContext(e)})}removeItem(e){this.memoryStorage.containsKey(e)&&(this.memoryStorage.removeItem(e),this.broadcast.postMessage({key:e,value:null,context:this.getContext(e)})),window.localStorage.removeItem(e)}getKeys(){return Object.keys(window.localStorage)}containsKey(e){return window.localStorage.hasOwnProperty(e)}clear(){this.memoryStorage.clear(),Lt(this).forEach(r=>this.removeItem(r));const n=st(this.clientId,this);n.idToken.forEach(r=>this.removeItem(r)),n.accessToken.forEach(r=>this.removeItem(r)),n.refreshToken.forEach(r=>this.removeItem(r)),this.getKeys().forEach(r=>{(r.startsWith(Oe)||r.indexOf(this.clientId)!==-1)&&this.removeItem(r)})}async importExistingCache(e){if(!this.encryptionCookie)return;let n=Lt(this);n=await this.importArray(n,e),n.length?this.setItem(Rn(),JSON.stringify(n)):this.removeItem(Rn());const r=st(this.clientId,this);r.idToken=await this.importArray(r.idToken,e),r.accessToken=await this.importArray(r.accessToken,e),r.refreshToken=await this.importArray(r.refreshToken,e),r.idToken.length||r.accessToken.length||r.refreshToken.length?this.setItem(Pn(this.clientId),JSON.stringify(r)):this.removeItem(Pn(this.clientId))}async getItemFromEncryptedCache(e,n){if(!this.encryptionCookie)return null;const r=this.getItem(e);if(!r)return null;let o;try{o=JSON.parse(r)}catch{return null}return go(o)?o.id!==this.encryptionCookie.id?(this.performanceClient.incrementFields({encryptedCacheExpiredCount:1},n),null):(this.performanceClient.incrementFields({encryptedCacheCount:1},n),_(Nl,f.Decrypt,this.logger,this.performanceClient,n)(this.encryptionCookie.key,o.nonce,this.getContext(e),o.data)):(this.performanceClient.incrementFields({unencryptedCacheCount:1},n),r)}async importArray(e,n){const r=[],o=[];return e.forEach(i=>{const a=this.getItemFromEncryptedCache(i,n).then(s=>{s?(this.memoryStorage.setItem(i,s),r.push(i)):this.removeItem(i)});o.push(a)}),await Promise.all(o),r}getContext(e){let n="";return e.includes(this.clientId)&&(n=this.clientId),n}updateCache(e){this.logger.trace("Updating internal cache from broadcast event");const n=this.performanceClient.startMeasurement(f.LocalStorageUpdated);n.add({isBackground:!0});const{key:r,value:o,context:i}=e.data;if(!r){this.logger.error("Broadcast event missing key"),n.end({success:!1,errorCode:"noKey"});return}if(i&&i!==this.clientId){this.logger.trace(`Ignoring broadcast event from clientId: ${i}`),n.end({success:!1,errorCode:"contextMismatch"});return}o?(this.memoryStorage.setItem(r,o),this.logger.verbose("Updated 
4180item in internal cache")):(this.memoryStorage.removeItem(r),this.logger.verbose("Removed item from internal cache")),n.end({success:!0})}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class JO{constructor(){if(!window.sessionStorage)throw ge(yi)}async initialize(){}getItem(e){return window.sessionStorage.getItem(e)}getUserData(e){return this.getItem(e)}setItem(e,n){window.sessionStorage.setItem(e,n)}async setUserData(e,n){this.setItem(e,n)}removeItem(e){window.sessionStorage.removeItem(e)}getKeys(){return Object.keys(window.sessionStorage)}containsKey(e){return window.sessionStorage.hasOwnProperty(e)}decryptData(){return Promise.resolve(null)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */const O={INITIALIZE_START:"msal:initializeStart",INITIALIZE_END:"msal:initializeEnd",ACCOUNT_ADDED:"msal:accountAdded",ACCOUNT_REMOVED:"msal:accountRemoved",ACTIVE_ACCOUNT_CHANGED:"msal:activeAccountChanged",LOGIN_START:"msal:loginStart",LOGIN_SUCCESS:"msal:loginSuccess",LOGIN_FAILURE:"msal:loginFailure",ACQUIRE_TOKEN_START:"msal:acquireTokenStart",ACQUIRE_TOKEN_SUCCESS:"msal:acquireTokenSuccess",ACQUIRE_TOKEN_FAILURE:"msal:acquireTokenFailure",ACQUIRE_TOKEN_NETWORK_START:"msal:acquireTokenFromNetworkStart",SSO_SILENT_START:"msal:ssoSilentStart",SSO_SILENT_SUCCESS:"msal:ssoSilentSuccess",SSO_SILENT_FAILURE:"msal:ssoSilentFailure",ACQUIRE_TOKEN_BY_CODE_START:"msal:acquireTokenByCodeStart",ACQUIRE_TOKEN_BY_CODE_SUCCESS:"msal:acquireTokenByCodeSuccess",ACQUIRE_TOKEN_BY_CODE_FAILURE:"msal:acquireTokenByCodeFailure",HANDLE_REDIRECT_START:"msal:handleRedirectStart",HANDLE_REDIRECT_END:"msal:handleRedirectEnd",POPUP_OPENED:"msal:popupOpened",LOGOUT_START:"msal:logoutStart",LOGOUT_SUCCESS:"msal:logoutSuccess",LOGOUT_FAILURE:"msal:logoutFailure",LOGOUT_END:"msal:logoutEnd",RESTORE_FROM_BFCACHE:"msal:restoreFromBFCache",BROKER_CONNECTION_ESTABLISHED:"msal:brokerConnectionEstablished"};/*! @azure/msal-browser v4.28.1 2026-01-17 */function Ot(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}/*! @azure/msal-browser v4.28.1 2026-01-17 */class Na extends ka{constructor(e,n,r,o,i,a,s){super(e,r,o,i,s),this.cacheConfig=n,this.logger=o,this.internalStorage=new bi,this.browserStorage=ql(e,n.cacheLocation,o,i),this.temporaryCacheStorage=ql(e,n.temporaryCacheLocation,o,i),this.cookieStorage=new Vm,this.eventHandler=a}async initialize(e){this.performanceClient.addFields({cacheLocation:this.cacheConfig.cacheLocation,cacheRetentionDays:this.cacheConfig.cacheRetentionDays},e),await this.browserStorage.initialize(e),await this.migrateExistingCache(e),this.trackVersionChanges(e)}async migrateExistingCache(e){let n=Lt(this.browserStorage),r=st(this.clientId,this.browserStorage);this.performanceClient.addFields({preMigrateAcntCount:n.length,preMigrateATCount:r.accessToken.length,preMigrateITCount:r.idToken.length,preMigrateRTCount:r.refreshToken.length},e);for(let i=0;i<ho;i++){const a=i;await this.removeStaleAccounts(i,a,e)}for(let i=0;i<De;i++){const a=i;await this.migrateIdTokens(i,a,e)}const o=this.getKMSIValues();for(let i=0;i<De;i++)await this.migrateAccessTokens(i,o,e),await this.migrateRefreshTokens(i,o,e);n=Lt(this.browserStorage),r=st(this.clientId,this.browserStorage),this.performanceClient.addFields({postMigrateAcntCount:n.length,postMigrateATCount:r.accessToken.length,postMigrateITCount:r.idToken.length,postMigrateRTCount:r.refreshToken.length},e)}async updateOldEntry(e,n){const r=this.browserStorage.getItem(e),o=this.validateAndParseJson(r||"");if(!o)return this.browserStorage.removeItem(e),null;if(!o.lastUpdatedAt)o.lastUpdatedAt=Date.now().toString(),this.setItem(e,JSON.stringify(o),n);else if(bl(o.lastUpdatedAt,this.cacheConfig.cacheRetentionDays))return this.browserStorage.removeItem(e),this.performanceClient.incrementFields({expiredCacheRemovedCount:1},n),null;const i=go(o)?await this.browserStorage.decryptData(e,o,n):o;return!i||!ui(i)?(this.performanceClient.incrementFields({invalidCacheCount:1},n),null):(Sl(i)||Il(i))&&i.expiresOn&&Mo(i.expiresOn,Gu)?(this.browserStorage.removeItem(e),this.performanceClient.incrementFields({expiredCacheRemovedCount:1},n),null):i}async removeStaleAccounts(e,n,r){const o=Lt(this.browserStorage,e);if(o.length!==0){for(const i of[...o]){this.performanceClient.incrementFields({oldAcntCount:1},r);const a=this.browserStorage.getItem(i),s=this.validateAndParseJson(a||"");if(!s){Ot(o,i);continue}if(s.lastUpdatedAt)bl(s.lastUpdatedAt,this.cacheConfig.cacheRetentionDays)&&(await this.removeAccountOldSchema(i,s,n,r),Ot(o,i));else{s.lastUpdatedAt=Date.now().toString(),this.setItem(i,JSON.stringify(s),r);continue}}this.setAccountKeys(o,r,e)}}async removeAccountOldSchema(e,n,r,o){const i=go(n)?await this.browserStorage.decryptData(e,n,o):n,a=i==null?void 0:i.homeAccountId;if(a){const s=this.getTokenKeys(r);[...s.idToken].filter(c=>
4180c.includes(a)).forEach(c=>{this.browserStorage.removeItem(c),Ot(s.idToken,c)}),[...s.accessToken].filter(c=>c.includes(a)).forEach(c=>{this.browserStorage.removeItem(c),Ot(s.accessToken,c)}),[...s.refreshToken].filter(c=>c.includes(a)).forEach(c=>{this.browserStorage.removeItem(c),Ot(s.refreshToken,c)}),this.setTokenKeys(s,o,r)}this.performanceClient.incrementFields({expiredAcntRemovedCount:1},o),this.browserStorage.removeItem(e)}getKMSIValues(){const e={},n=this.getTokenKeys().idToken;for(const r of n){const o=this.browserStorage.getUserData(r);if(o){const i=JSON.parse(o),a=ft(i.secret,Ue);a&&(e[i.homeAccountId]=vt(a))}}return e}async migrateIdTokens(e,n,r){const o=st(this.clientId,this.browserStorage,e);if(o.idToken.length===0)return;const i=st(this.clientId,this.browserStorage,De),a=Lt(this.browserStorage),s=Lt(this.browserStorage,n);for(const c of[...o.idToken]){this.performanceClient.incrementFields({oldITCount:1},r);const l=await this.updateOldEntry(c,r);if(!l){Ot(o.idToken,c);continue}const u=a.find(T=>T.includes(l.homeAccountId)),p=s.find(T=>T.includes(l.homeAccountId));let h=null;if(u)h=this.getAccount(u,r);else if(p){const T=this.browserStorage.getItem(p),D=this.validateAndParseJson(T||"");h=D&&go(D)?await this.browserStorage.decryptData(p,D,r):D}if(!h){this.performanceClient.incrementFields({skipITMigrateCount:1},r);continue}const m=ft(l.secret,Ue),I=this.generateCredentialKey(l),y=this.getIdTokenCredential(I,r),S=Object.keys(m).includes("signin_state"),w=y&&Object.keys(ft(y.secret,Ue)||{}).includes("signin_state");if(!y||l.lastUpdatedAt>y.lastUpdatedAt&&(S||!w)){const T=h.tenantProfiles||[],D=Ts(m)||h.realm;if(D&&!T.find(q=>q.tenantId===D)){const q=kn(h.homeAccountId,h.localAccountId,D,m);T.push(q)}h.tenantProfiles=T;const K=this.generateAccountKey(pe.getAccountInfo(h)),W=vt(m);await this.setUserData(K,JSON.stringify(h),r,h.lastUpdatedAt,W),a.includes(K)||a.push(K),await this.setUserData(I,JSON.stringify(l),r,l.lastUpdatedAt,W),this.performanceClient.incrementFields({migratedITCount:1},r),i.idToken.push(I)}}this.setTokenKeys(o,r,e),this.setTokenKeys(i,r),this.setAccountKeys(a,r)}async migrateAccessTokens(e,n,r){const o=st(this.clientId,this.browserStorage,e);if(o.accessToken.length===0)return;const i=st(this.clientId,this.browserStorage,De);for(const a of[...o.accessToken]){this.performanceClient.incrementFields({oldATCount:1},r);const s=await this.updateOldEntry(a,r);if(!s){Ot(o.accessToken,a);continue}if(!Object.keys(n).includes(s.homeAccountId)){this.performanceClient.incrementFields({skipATMigrateCount:1},r);continue}const c=this.generateCredentialKey(s),l=n[s.homeAccountId];if(!i.accessToken.includes(c))await this.setUserData(c,JSON.stringify(s),r,s.lastUpdatedAt,l),this.performanceClient.incrementFields({migratedATCount:1},r),i.accessToken.push(c);else{const u=this.getAccessTokenCredential(c,r);(!u||s.lastUpdatedAt>u.lastUpdatedAt)&&(await this.setUserData(c,JSON.stringify(s),r,s.lastUpdatedAt,l),this.performanceClient.incrementFields({migratedATCount:1},r))}}this.setTokenKeys(o,r,e),this.setTokenKeys(i,r)}async migrateRefreshTokens(e,n,r){const o=st(this.clientId,this.browserStorage,e);if(o.refreshToken.length===0)return;const i=st(this.clientId,this.browserStorage,De);for(const a of[...o.refreshToken]){this.performanceClient.incrementFields({oldRTCount:1},r);const s=await this.updateOldEntry(a,r);if(!s){Ot(o.refreshToken,a);continue}if(!Object.keys(n).includes(s.homeAccountId)){this.performanceClient.incrementFields({skipRTMigrateCount:1},r);continue}const c=this.generateCredentialKey(s),l=n[s.homeAccountId];if(!i.refreshToken.includes(c))await this.setUserData(c,JSON.stringify(s),r,s.lastUpdatedAt,l),this.performanceClient.incrementFields({migratedRTCount:1},r),i.refreshToken.push(c);else{const u=this.getRefreshTokenCredential(c,r);(!u||s.lastUpdatedAt>u.lastUpdatedAt)&&(await this.setUserData(c,JSON.stringify(s),r,s.lastUpdatedAt,l),this.performanceClient.incrementFields({migratedRTCount:1},r))}}this.setTokenKeys(o,r,e),this.setTokenKeys(i,r)}trackVersionChanges(e){const n=this.browserStorage.getItem($l);n&&(this.logger.info(`MSAL.js was last initialized by version: ${n}`),this.performanceClient.addFields({previousLibraryVersion:n},e)),n!==tn&&this.setItem($l,tn,e)}validateAndParseJson(e){if(!e)return null;try{const n=JSON.parse(e);return n&&typeof n=="object"?n:null}catch{return null}}setItem(e,n,r){const o=new Array(De+1).fill(0),i=[],a=20;for(let s=0;s<=a;s++)try{if(this.browserStorage.setItem(e,n),s>0)for(let c=0;c<=De;c++){const l=o.slice(0,c).reduce((p,h)=>p+h,0);if(l>=s)break;const u=s>l+o[c]?l+o[c]:s;s>l&&o[c]>0&&this.removeAccessTokenKeys(i.slice(l,u),r,c)}break}catch(c){const l=wa(c);if(l.errorCode===Po&&s<a){if(!i.length)for(let u=0;u<=De;u++)if(e===Pn(this.clientId,u)){const p=JSON.parse(n).accessToken;i.push(...p),o[u]=p.length}else{const p=this.getTokenKeys(u).accessToken;i.push(...p),o[u]=p.length}if(i.length<=s)throw l;this.removeAccessToken(i[s],r,!1)}else throw l}}async setUserData(e,n,r,o,i){const a=new Array(De+1).fill(0),s=[],c=20;for(let l=0;l<=c;l++)try{if(await _(this.browserStorage.setUserData.bind(this.browserStorage),f.SetUserData,this.logger,this.performanceClient)(e,n,r,o,i),l>0)for(let u=0;u<=De;u++){const p=a.slice(0,u).reduce((m,I)=>m+I,0);if(p>=l)break;const h=l>p+a[u]?p+a[u]:l;l>p&&a[u]>0&&this.removeAccessTokenKeys(s.slice(p,h),r,u)}break}catch(u){const p=wa(u);if(p.errorCode===Po&&l<c){if(!s.length)for(let h=0;h<=De;h++){const m=this.getTokenKeys(h).accessToken;s.push(...m),a[h]=m.length}if(s.length<=l)throw p;this.removeAccessToken(s[l],r,!1)}else throw p}}getAccount(e,n){this.logger.trace("BrowserCacheManager.getAccount called");const r=this.browserStorage.getUserData(e);if(!r)return this.removeAccountKeyFromMap(e,n),null;const o=this.validateAndParseJson(r);return!o||!pe.isAccountEntity(o)?null:(this.performanceClient.addFields({accountCachedBy:pO(o.cachedByApiId)},n),ka.toObject(new pe,o))}async setAccount(e,n,r,o){this.logger.trace("BrowserCacheManager.setAccount called");const i=this.generateAccountKey(pe.getAccountInfo(e)),a=Date.now().toString();e.lastUpdatedAt=a,e.cachedByApiId=o,await this.setUserData(i,JSON.stringify(e),n,a,r);const s=this.addAccountKeyToMap(i,n);this.performanceClient.addFields({kmsi:r},n),this.cacheConfig.cacheLocation===Ae.LocalStorage&&s&&this.eventHandler.emitEvent(O.ACCOUNT_ADDED,void 0,pe.getAccountInfo(e))}getAccountKeys(){return Lt(this.browserStorage)}setAccountKeys(e,n,r=ho){e.length===0?this.removeItem(Rn(r)):this.setItem(Rn(r),JSON.stringify(e),n)}addAccountKeyToMap(e,n){this.logger.trace("BrowserCacheManager.addAccountKeyToMap called"),this.logger.tracePii(`BrowserCacheManager.addAccountKeyToMap called with key: ${e}`);const r=this.getAccountKeys();return r.indexOf(e)===-1?(r.push(e),this.setItem(Rn(),JSON.stringify(r),n),this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key added"),!0):(this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key already exists in map"),!1)}removeAccountKeyFromMap(e,n){this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap called"),this.logger.tracePii(`BrowserCacheManager.removeAccountKeyFromMap called with key: ${e}`);const r=this.getAccountKeys(),o=r.indexOf(e);o>-1?(r.splice(o,1),this.setAccountKeys(r,n),this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap account key removed")):this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap ke
4180y not found in existing map")}removeAccount(e,n){const r=this.getActiveAccount(n);(r==null?void 0:r.homeAccountId)===e.homeAccountId&&(r==null?void 0:r.environment)===e.environment&&this.setActiveAccount(null,n),super.removeAccount(e,n),this.removeAccountKeyFromMap(this.generateAccountKey(e),n),this.browserStorage.getKeys().forEach(o=>{o.includes(e.homeAccountId)&&o.includes(e.environment)&&this.browserStorage.removeItem(o)}),this.cacheConfig.cacheLocation===Ae.LocalStorage&&this.eventHandler.emitEvent(O.ACCOUNT_REMOVED,void 0,e)}removeIdToken(e,n){super.removeIdToken(e,n);const r=this.getTokenKeys(),o=r.idToken.indexOf(e);o>-1&&(this.logger.info("idToken removed from tokenKeys map"),r.idToken.splice(o,1),this.setTokenKeys(r,n))}removeAccessToken(e,n,r=!0){super.removeAccessToken(e,n),r&&this.removeAccessTokenKeys([e],n)}removeAccessTokenKeys(e,n,r=De){this.logger.trace("removeAccessTokenKey called");const o=this.getTokenKeys(r);let i=0;if(e.forEach(a=>{const s=o.accessToken.indexOf(a);s>-1&&(o.accessToken.splice(s,1),i++)}),i>0){this.logger.info(`removed ${i} accessToken keys from tokenKeys map`),this.setTokenKeys(o,n,r);return}}removeRefreshToken(e,n){super.removeRefreshToken(e,n);const r=this.getTokenKeys(),o=r.refreshToken.indexOf(e);o>-1&&(this.logger.info("refreshToken removed from tokenKeys map"),r.refreshToken.splice(o,1),this.setTokenKeys(r,n))}getTokenKeys(e=De){return st(this.clientId,this.browserStorage,e)}setTokenKeys(e,n,r=De){if(e.idToken.length===0&&e.accessToken.length===0&&e.refreshToken.length===0){this.removeItem(Pn(this.clientId,r));return}else this.setItem(Pn(this.clientId,r),JSON.stringify(e),n)}getIdTokenCredential(e,n){const r=this.browserStorage.getUserData(e);if(!r)return this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeIdToken(e,n),null;const o=this.validateAndParseJson(r);return!o||!ND(o)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),o)}async setIdTokenCredential(e,n,r){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const o=this.generateCredentialKey(e),i=Date.now().toString();e.lastUpdatedAt=i,await this.setUserData(o,JSON.stringify(e),n,i,r);const a=this.getTokenKeys();a.idToken.indexOf(o)===-1&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),a.idToken.push(o),this.setTokenKeys(a,n))}getAccessTokenCredential(e,n){const r=this.browserStorage.getUserData(e);if(!r)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeAccessTokenKeys([e],n),null;const o=this.validateAndParseJson(r);return!o||!Sl(o)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),o)}async setAccessTokenCredential(e,n,r){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const o=this.generateCredentialKey(e),i=Date.now().toString();e.lastUpdatedAt=i,await this.setUserData(o,JSON.stringify(e),n,i,r);const a=this.getTokenKeys(),s=a.accessToken.indexOf(o);s!==-1&&a.accessToken.splice(s,1),this.logger.trace(`access token ${s===-1?"added to":"updated in"} map`),a.accessToken.push(o),this.setTokenKeys(a,n)}getRefreshTokenCredential(e,n){const r=this.browserStorage.getUserData(e);if(!r)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeRefreshToken(e,n),null;const o=this.validateAndParseJson(r);return!o||!Il(o)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),o)}async setRefreshTokenCredential(e,n,r){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const o=this.generateCredentialKey(e),i=Date.now().toString();e.lastUpdatedAt=i,await this.setUserData(o,JSON.stringify(e),n,i,r);const a=this.getTokenKeys();a.refreshToken.indexOf(o)===-1&&(this.logger.info("BrowserCacheManager: addTokenKey - refreshToken added to map"),a.refreshToken.push(o),this.setTokenKeys(a,n))}getAppMetadata(e){const n=this.browserStorage.getItem(e);if(!n)return this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(n);return!r||!UD(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),r)}setAppMetadata(e,n){this.logger.trace("BrowserCacheManager.setAppMetadata called");const r=jD(e);this.setItem(r,JSON.stringify(e),n)}getServerTelemetry(e){const n=this.browserStorage.getItem(e);if(!n)return this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null;const r=this.validateAndParseJson(n);return!r||!MD(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),r)}setServerTelemetry(e,n,r){this.logger.trace("BrowserCacheManager.setServerTelemetry called"),this.setItem(e,JSON.stringify(n),r)}getAuthorityMetadata(e){const n=this.internalStorage.getItem(e);if(!n)return this.logger.trace("BrowserCacheManager.getAuthorityMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(n);return r&&$D(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),r):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter(n=>this.isAuthorityMetadata(n))}setWrapperMetadata(e,n){this.internalStorage.setItem(to.WRAPPER_SKU,e),this.internalStorage.setItem(to.WRAPPER_VER,n)}getWrapperMetadata(){const e=this.internalStorage.getItem(to.WRAPPER_SKU)||C.EMPTY_STRING,n=this.internalStorage.getItem(to.WRAPPER_VER)||C.EMPTY_STRING;return[e,n]}setAuthorityMetadata(e,n){this.logger.trace("BrowserCacheManager.setAuthorityMetadata called"),this.internalStorage.setItem(e,JSON.stringify(n))}getActiveAccount(e){const n=this.generateCacheKey(al.ACTIVE_ACCOUNT_FILTERS),r=this.browserStorage.getItem(n);if(!r)return this.logger.trace("BrowserCacheManager.getActiveAccount: No active account filters found"),null;const o=this.validateAndParseJson(r);return o?(this.logger.trace("BrowserCacheManager.getActiveAccount: Active account filters schema found"),this.getAccountInfoFilteredBy({homeAccountId:o.homeAccountId,localAccountId:o.localAccountId,tenantId:o.tenantId},e)):(this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null)}setActiveAccount(e,n){const r=this.generateCacheKey(al.ACTIVE_ACCOUNT_FILTERS);if(e){this.logger.verbose("setActiveAccount: Active account set");const o={homeAccountId:e.homeAccountId,localAccountId:e.localAccountId,tenantId:e.tenantId,lastUpdatedAt:$e().toString()};this.setItem(r,JSON.stringify(o),n)}else this.logger.verbose("setActiveAccount: No account passed, active account not set"),this.browserStorage.removeItem(r);this.eventHandler.emitEvent(O.ACTIVE_ACCOUNT_CHANGED)}getThrottlingCache(e){const n=this.browserStorage.getItem(e);if(!n)return this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null;const r=this.validateAndParseJson(n);return!r||!LD(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),r)}setThrottlingCache(e,n,r){this.logger.trace("BrowserCacheManager.setThrottlingCache called"),this.setItem(e,JSON.stringify(n),r)}getTemporaryCache(e,n){const r=n?this.generateCacheKey(e):e;if(this.cacheConfig.storeAuthStateInCookie){const i=this.cookieStorage.getItem(r);if(i)return this.logger.trace("BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies"),i}const o=this.temporaryCacheStorage.getItem(r);if(!o){if(this.cacheConfig.cacheLocation===Ae.LocalStorage){const i=this.browserStorage.getItem(r);if(i)return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage"),i}return this.logger.trace("BrowserCacheManager.getTemporaryCache: No cache item found in local storage"),null}return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item returned"),o}setTemporaryCache(e,n,r){const o=r?this.generateCacheKey(e):e;this.temporaryCacheStorage.setItem(o,n),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie"),this.cookieStorage.setItem(o,n,void 0,this.cacheConfig.secureCookies))}removeItem(e){this.browserStorage.removeItem(e)}removeTemporaryItem(e){this.temporaryCacheStorage.removeItem(e),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie"),this.cookieStorage.removeItem(e))}getKeys(){return this.browserStorage.getKeys()}clear(e){this.removeAllAccounts(e),this.removeAppMetadata(e),this.temporaryCacheStorage.getKeys().forEac
4180h(n=>{(n.indexOf(Oe)!==-1||n.indexOf(this.clientId)!==-1)&&this.removeTemporaryItem(n)}),this.browserStorage.getKeys().forEach(n=>{(n.indexOf(Oe)!==-1||n.indexOf(this.clientId)!==-1)&&this.browserStorage.removeItem(n)}),this.internalStorage.clear()}clearTokensAndKeysWithClaims(e){this.performanceClient.addQueueMeasurement(f.ClearTokensAndKeysWithClaims,e);const n=this.getTokenKeys();let r=0;n.accessToken.forEach(o=>{const i=this.getAccessTokenCredential(o,e);i!=null&&i.requestedClaimsHash&&o.includes(i.requestedClaimsHash.toLowerCase())&&(this.removeAccessToken(o,e),r++)}),r>0&&this.logger.warning(`${r} access tokens with claims in the cache keys have been removed from the cache.`)}generateCacheKey(e){return Ke.startsWith(e,Oe)?e:`${Oe}.${this.clientId}.${e}`}generateCredentialKey(e){const n=e.credentialType===we.REFRESH_TOKEN&&e.familyId||e.clientId,r=e.tokenType&&e.tokenType.toLowerCase()!==Q.BEARER.toLowerCase()?e.tokenType.toLowerCase():"";return[`${Oe}.${De}`,e.homeAccountId,e.environment,e.credentialType,n,e.realm||"",e.target||"",e.requestedClaimsHash||"",r].join(Ul).toLowerCase()}generateAccountKey(e){const n=e.homeAccountId.split(".")[1];return[`${Oe}.${ho}`,e.homeAccountId,e.environment,n||e.tenantId||""].join(Ul).toLowerCase()}resetRequestCache(){this.logger.trace("BrowserCacheManager.resetRequestCache called"),this.removeTemporaryItem(this.generateCacheKey(fe.REQUEST_PARAMS)),this.removeTemporaryItem(this.generateCacheKey(fe.VERIFIER)),this.removeTemporaryItem(this.generateCacheKey(fe.ORIGIN_URI)),this.removeTemporaryItem(this.generateCacheKey(fe.URL_HASH)),this.removeTemporaryItem(this.generateCacheKey(fe.NATIVE_REQUEST)),this.setInteractionInProgress(!1)}cacheAuthorizeRequest(e,n){this.logger.trace("BrowserCacheManager.cacheAuthorizeRequest called");const r=Or(JSON.stringify(e));if(this.setTemporaryCache(fe.REQUEST_PARAMS,r,!0),n){const o=Or(n);this.setTemporaryCache(fe.VERIFIER,o,!0)}}getCachedRequest(){this.logger.trace("BrowserCacheManager.getCachedRequest called");const e=this.getTemporaryCache(fe.REQUEST_PARAMS,!0);if(!e)throw P(hm);const n=this.getTemporaryCache(fe.VERIFIER,!0);let r,o="";try{r=JSON.parse(Ue(e)),n&&(o=Ue(n))}catch(i){throw this.logger.errorPii(`Attempted to parse: ${e}`),this.logger.error(`Parsing cached token request threw with error: ${i}`),P(gm)}return[r,o]}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(fe.NATIVE_REQUEST,!0);if(!e)return this.logger.trace("BrowserCacheManager.getCachedNativeRequest: No cached native request found"),null;const n=this.validateAndParseJson(e);return n||(this.logger.error("BrowserCacheManager.getCachedNativeRequest: Unable to parse native request"),null)}isInteractionInProgress(e){var r;const n=(r=this.getInteractionInProgress())==null?void 0:r.clientId;return e?n===this.clientId:!!n}getInteractionInProgress(){const e=`${Oe}.${fe.INTERACTION_STATUS_KEY}`,n=this.getTemporaryCache(e,!1);try{return n?JSON.parse(n):null}catch{return this.logger.error("Cannot parse interaction status. Removing temporary cache items and clearing url hash. Retrying interaction should fix the error"),this.removeTemporaryItem(e),this.resetRequestCache(),$m(window),null}}setInteractionInProgress(e,n=jt.SIGNIN){var o;const r=`${Oe}.${fe.INTERACTION_STATUS_KEY}`;if(e){if(this.getInteractionInProgress())throw P(am);this.setTemporaryCache(r,JSON.stringify({clientId:this.clientId,type:n}),!1)}else!e&&((o=this.getInteractionInProgress())==null?void 0:o.clientId)===this.clientId&&this.removeTemporaryItem(r)}async hydrateCache(e,n){const r=li(e.account.homeAccountId,e.account.environment,e.idToken,this.clientId,e.tenantId);let o;n.claims&&(o=await this.cryptoImpl.hashString(n.claims));const i=di(e.account.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?yl(e.expiresOn):0,e.extExpiresOn?yl(e.extExpiresOn):0,Ue,void 0,e.tokenType,void 0,n.sshKid,n.claims,o),a={idToken:r,accessToken:i};return this.saveCacheRecord(a,e.correlationId,vt(ft(e.idToken,Ue)),z.hydrateCache)}
4180async saveCacheRecord(e,n,r,o,i){try{await super.saveCacheRecord(e,n,r,o,i)}catch(a){if(a instanceof An&&this.performanceClient&&n)try{const s=this.getTokenKeys();this.performanceClient.addFields({cacheRtCount:s.refreshToken.length,cacheIdCount:s.idToken.length,cacheAtCount:s.accessToken.length},n)}catch{}throw a}}}function ql(t,e,n,r){try{switch(e){case Ae.LocalStorage:return new YO(t,n,r);case Ae.SessionStorage:return new JO;case Ae.MemoryStorage:default:break}}catch(o){n.error(o)}return new bi}const QO=(t,e,n,r)=>{const o={cacheLocation:Ae.MemoryStorage,cacheRetentionDays:5,temporaryCacheLocation:Ae.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};return new Na(t,o,ko,e,n,r)};/*! @azure/msal-browser v4.28.1 2026-01-17 */function XO(t,e,n,r,o){return t.verbose("getAllAccounts called"),n?e.getAllAccounts(o||{},r):[]}function ZO(t,e,n,r){const o=n.getAccountInfoFilteredBy(t,r);return o?(e.verbose("getAccount: Account matching provided filter found, returning"),o):(e.verbose("getAccount: No matching account found, returning null"),null)}function eN(t,e,n,r){if(e.trace("getAccountByUsername called"),!t)return e.warning("getAccountByUsername: No username provided"),null;const o=n.getAccountInfoFilteredBy({username:t},r);return o?(e.verbose("getAccountByUsername: Account matching username found, returning"),e.verbosePii(`getAccountByUsername: Returning signed-in accounts matching username: ${t}`),o):(e.verbose("getAccountByUsername: No matching account found, returning null"),null)}function tN(t,e,n,r){if(e.trace("getAccountByHomeId called"),!t)return e.warning("getAccountByHomeId: No homeAccountId provided"),null;const o=n.getAccountInfoFilteredBy({homeAccountId:t},r);return o?(e.verbose("getAccountByHomeId: Account matching homeAccountId found, returning"),e.verbosePii(`getAccountByHomeId: Returning signed-in accounts matching homeAccountId: ${t}`),o):(e.verbose("getAccountByHomeId: No matching account found, returning null"),null)}function nN(t,e,n,r){if(e.trace("getAccountByLocalId called"),!t)return e.warning("getAccountByLocalId: No localAccountId provided"),null;const o=n.getAccountInfoFilteredBy({localAccountId:t},r);return o?(e.verbose("getAccountByLocalId: Account matching localAccountId found, returning"),e.verbosePii(`getAccountByLocalId: Returning signed-in accounts matching localAccountId: ${t}`),o):(e.verbose("getAccountByLocalId: No matching account found, returning null"),null)}function rN(t,e,n){e.setActiveAccount(t,n)}function oN(t,e){return t.getActiveAccount(e)}/*! @azure/msal-browser v4.28.1 2026-01-17 */const iN="msal.broadcast.event";class aN{constructor(e){this.eventCallbacks=new Map,this.logger=e||new kt({}),typeof BroadcastChannel<"u"&&(this.broadcastChannel=new BroadcastChannel(iN)),this.invokeCrossTabCallbacks=this.invokeCrossTabCallbacks.bind(this)}addEventCallback(e,n,r){if(typeof window<"u"){const o=r||jO();return this.eventCallbacks.has(o)?(this.logger.error(`Event callback with id: ${o} is already registered. Please provide a unique id or remove the existing callback and try again.`),null):(this.eventCallbacks.set(o,[e,n||[]]),this.logger.verbose(`Event callback registered with id: ${o}`),o)}return null}removeEventCallback(e){this.eventCallbacks.delete(e),this.logger.verbose(`Event callback ${e} removed.`)}emitEvent(e,n,r,o){var a;const i={eventType:e,interactionType:n||null,payload:r||null,error:o||null,timestamp:Date.now()};switch(e){case O.ACCOUNT_ADDED:case O.ACCOUNT_REMOVED:case O.ACTIVE_ACCOUNT_CHANGED:(a=this.broadcastChannel)==null||a.postMessage(i);break;default:this.invokeCallbacks(i);break}}invokeCallbacks(e){this.eventCallbacks.forEach(([n,r],o)=>{(r.length===0||r.includes(e.eventType))&&(this.logger.verbose(`Emitting event to callback ${o}: ${e.eventType}`),n.apply(null,[e]))})}invokeCrossTabCallbacks(e){const n=e.data;this.invokeCallbacks(n)}subscribeCrossTab(){var e;(e=this.broadcastChannel)==null||e.addEventListener("message",this.invokeCrossTabCallbacks)}unsubscribeCrossTab(){var e;(e=this.broadcastChannel)==null||e.removeEventListener("message",this.invokeCrossTabCallbacks)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class Bm{constructor(e,n,r,o,i,a,s,c,l){this.config=e,this.browserStorage=n,this.browserCrypto=r,this.networkClient=this.config.system.networkClient,this.eventHandler=i,this.navigationClient=a,this.platformAuthProvider=c,this.correlationId=l||yt(),this.logger=o.clone(ze.MSAL_SKU,tn,this.correlationId),this.performanceClient=s}async clearCacheOnLogout(e,n){if(n)try{this.browserStorage.removeAccount(n,e),this.logger.verbose("Cleared cache items belonging to the account provided in the logout request.")}catch{this.logger.error("Account provided in logout request was not found. Local cache unchanged.")}else try{this.logger.verbose("No account provided in logout request, clearing all cache items.",this.correlationId),this.browserStorage.clear(e),await this.browserCrypto.clearKeystore()}catch{this.logger.error("Attempted to clear all MSAL cache items and failed. Local cache unchanged.")}}getRedirectUri(e){this.logger.verbose("getRedirectUri called");const n=e||this.config.auth.redirectUri;return B.getAbsoluteUrl(n,wt())}initializeServerTelemetryManager(e,n){this.logger.verbose("initializeServerTelemetryManager called");const r={clientId:this.config.auth.clientId,correlationId:this.correlationId,apiId:e,forceRefresh:n||!1,wrapperSKU:this.browserStorage.getWrapperMetadata()[0],wrapperVer:this.browserStorage.getWrapperMetadata()[1]};return new Pr(r,this.browserStorage)}async getDiscoveredAuthority(e){const{account:n}=e,r=e.requestExtraQueryParameters&&e.requestExtraQueryParameters.hasOwnProperty("instance_aware")?e.requestExtraQueryParameters.instance_aware:void 0;this.performanceClient.addQueueMeasurement(f.StandardInteractionClientGetDiscoveredAuthority,this.correlationId);const o={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},i=e.requestAuthority||this.config.auth.authority,a=r!=null&&r.length?r==="true":this.config.auth.instanceAware,s=n&&a?this.config.auth.authority.replace(B.getDomainFromUrl(i),n.environment):i,c=je.generateAuthority(s,e.requestAzureCloudOptions||this.config.auth.azureCloudOptions),l=await _($s,f.AuthorityFactoryCreateDiscoveredInstance,this.logger,this.performanceClient,this.correlationId)(c,this.config.system.networkClient,this.browserStorage,o,this.logger,this.correlationId,this.performanceClient);if(n&&!l.isAlias(n.environment))throw ee(_p);return l}}/*! @azure/msal-browser v4.28.1 2026-01-17 */async function cc(t,e,n,r){n.addQueueMeasurement(f.InitializeBaseRequest,t.correlationId);const o=t.authority||e.auth.authority,i=[...t&&t.scopes||[]],a={...t,correlationId:t.correlationId,authority:o,scopes:i};if(!a.authenticationScheme)a.authenticationScheme=Q.BEARER,r.verbose(`Authentication Scheme wasn't explicitly set in request, defaulting to "Bearer" request`);else{if(a.authenticationScheme===Q.SSH){if(!t.sshJwk)throw ee(ii);if(!t.sshKid)throw ee(bp)}r.verbose(`Authentication Scheme set to "${a.authenticationScheme}" as configured in Auth request`)}return e.cache.claimsBasedCachingEnabled&&t.claims&&!Ke.isEmptyObj(t.claims)&&(a.requestedClaimsHash=await Um(t.claims)),a}async function sN(t,e,n,r,o){r.addQueueMeasurement(f.InitializeSilentRequest,t.correlationId);const i=await _(cc,f.InitializeBaseRequest,o,r,t.correlationId)(t,n,r,o);return{...t,...i,account:e,forceRefresh:t.forceRefresh||!1}}function Gm(t,e){let n;const r=t.httpMethod;if(e===qe.EAR){if(n=r||Yt.POST,n!==Yt.POST)throw ee(Cp)}else n=r||Yt.GET;if(t.authorizePostBodyParameters&&n!==Yt.POST)throw ee(Tp);return n}/*! @azure/msal-browser v4.28.1 2026-01-17 */class Yn extends Bm{initializeLogoutRequest
4180(e){this.logger.verbose("initializeLogoutRequest called",e==null?void 0:e.correlationId);const n={correlationId:this.correlationId||yt(),...e};if(e)if(e.logoutHint)this.logger.verbose("logoutHint has already been set in logoutRequest");else if(e.account){const r=this.getLogoutHintFromIdTokenClaims(e.account);r&&(this.logger.verbose("Setting logoutHint to login_hint ID Token Claim value for the account provided"),n.logoutHint=r)}else this.logger.verbose("logoutHint was not set and account was not passed into logout request, logoutHint will not be set");else this.logger.verbose("logoutHint will not be set since no logout request was configured");return!e||e.postLogoutRedirectUri!==null?e&&e.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to uri set on logout request",n.correlationId),n.postLogoutRedirectUri=B.getAbsoluteUrl(e.postLogoutRedirectUri,wt())):this.config.auth.postLogoutRedirectUri===null?this.logger.verbose("postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect",n.correlationId):this.config.auth.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to configured uri",n.correlationId),n.postLogoutRedirectUri=B.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,wt())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",n.correlationId),n.postLogoutRedirectUri=B.getAbsoluteUrl(wt(),wt())):this.logger.verbose("postLogoutRedirectUri passed as null, not setting post logout redirect uri",n.correlationId),n}getLogoutHintFromIdTokenClaims(e){const n=e.idTokenClaims;if(n){if(n.login_hint)return n.login_hint;this.logger.verbose("The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request")}else this.logger.verbose("The provided account does not contain ID Token Claims, logoutHint will not be added to logout request");return null}async createAuthCodeClient(e){this.performanceClient.addQueueMeasurement(f.StandardInteractionClientCreateAuthCodeClient,this.correlationId);const n=await _(this.getClientConfiguration.bind(this),f.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e);return new Jp(n,this.performanceClient)}async getClientConfiguration(e){const{serverTelemetryManager:n,requestAuthority:r,requestAzureCloudOptions:o,requestExtraQueryParameters:i,account:a}=e;this.performanceClient.addQueueMeasurement(f.StandardInteractionClientGetClientConfiguration,this.correlationId);const s=e.authority||await _(this.getDiscoveredAuthority.bind(this),f.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,this.correlationId)({requestAuthority:r,requestAzureCloudOptions:o,requestExtraQueryParameters:i,account:a}),c=this.config.system.loggerOptions;return{authOptions:{clientId:this.config.auth.clientId,authority:s,clientCapabilities:this.config.auth.clientCapabilities,redirectUri:this.config.auth.redirectUri},systemOptions:{tokenRenewalOffsetSeconds:this.config.system.tokenRenewalOffsetSeconds,preventCorsPreflight:!0},loggerOptions:{loggerCallback:c.loggerCallback,piiLoggingEnabled:c.piiLoggingEnabled,logLevel:c.logLevel,correlationId:this.correlationId},cacheOptions:{claimsBasedCachingEnabled:this.config.cache.claimsBasedCachingEnabled},cryptoInterface:this.browserCrypto,networkInterface:this.networkClient,storageInterface:this.browserStorage,serverTelemetryManager:n,libraryInfo:{sku:ze.MSAL_SKU,version:tn,cpu:C.EMPTY_STRING,os:C.EMPTY_STRING},telemetry:this.config.telemetry}}async initializeAuthorizationRequest(e,n){this.performanceClient.addQueueMeasurement(f.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId);const r=this.getRedirectUri(e.redirectUri),o={interactionType:n},i=Kn.setRequestState(this.browserCrypto,e&&e.state||C.EMPTY_STRING,o),s={...await _(cc,f.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)({...e,correlationId:this.correlationId},this.config,this.performanceClient,this.logger),redirectUri:r,state:i,nonce:e.nonce||yt(),responseMode:this.config.auth.OIDCOptions.serverResponseType},c={...s,httpMethod:Gm(s,this.config.auth.protocolMode)};if(e.loginHint||e.sid)return c;const l=e.account||this.browserStorage.getActiveAccount(this.correlationId);return l&&(this.logger.verbose("Setting validated request account",this.correlationId),this.logger.verbosePii(`Setting validated request account: ${l.homeAccountId}`,this.correlationId),c.account=l),c}}/*! @azure/msal-browser v4.28.1 2026-01-17 */function cN(t,e){if(!e)return null;try{return Kn.parseRequestState(t,e).libraryState.meta}catch{throw k($n)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */function Ir(t,e,n){const r=Eo(t);if(!r)throw Ap(t)?(n.error(`A ${e} is present in the iframe but it does not contain known properties. It's likely that the ${e} has been replaced by code running on the redirectUri page.`),n.errorPii(`The ${e} detected is: ${t}`),P(rm)):(n.error(`The request has returned to the redirectUri but a ${e} is not present. It's likely that the ${e} has been removed or the page has been redirected by code running on the redirectUri page.`),P(nm));return r}function lN(t,e,n){if(!t.state)throw P(Ws);const r=cN(e,t.state);if(!r)throw P(om);if(r.interactionType!==n)throw P(im)}/*! @azure/msal-browser v4.28.1 2026-01-17 */class Km{constructor(e,n,r,o,i){this.authModule=e,this.browserStorage=n,this.authCodeRequest=r,this.logger=o,this.performanceClient=i}async handleCodeResponse(e,n,r){this.performanceClient.addQueueMeasurement(f.HandleCodeResponse,n.correlationId);let o;try{o=ZD(e,n.state)}catch(i){throw i instanceof cn&&i.subError===Dr?P(Dr):i}return _(this.handleCodeResponseFromServer.bind(this),f.HandleCodeResponseFromServer,this.logger,this.performanceClient,n.correlationId)(o,n,r)}async handleCodeResponseFromServer(e,n,r,o=!0){if(this.performanceClient.addQueueMeasurement(f.HandleCodeResponseFromServer,n.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called"),this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&await _(this.authModule.updateAuthority.bind(this.authModule),f.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,n.correlationId)(e.cloud_instance_host_name,n.correlationId),o&&(e.nonce=n.nonce||void 0),e.state=n.state,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{const a=this.createCcsCredentials(n);
4180a&&(this.authCodeRequest.ccsCredential=a)}return await _(this.authModule.acquireToken.bind(this.authModule),f.AuthClientAcquireToken,this.logger,this.performanceClient,n.correlationId)(this.authCodeRequest,r,e)}createCcsCredentials(e){return e.account?{credential:e.account.homeAccountId,type:dt.HOME_ACCOUNT_ID}:e.loginHint?{credential:e.loginHint,type:dt.UPN}:null}}/*! @azure/msal-browser v4.28.1 2026-01-17 */const dN="ContentError",uN="PageException",Wm="user_switch";/*! @azure/msal-browser v4.28.1 2026-01-17 */const pN="USER_INTERACTION_REQUIRED",mN="USER_CANCEL",hN="NO_NETWORK",gN="DISABLED",fN="ACCOUNT_UNAVAILABLE",vN="UX_NOT_ALLOWED";/*! @azure/msal-browser v4.28.1 2026-01-17 */const yN=-2147186943,bN={[Wm]:"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again."};class gt extends te{constructor(e,n,r){super(e,n),Object.setPrototypeOf(this,gt.prototype),this.name="NativeAuthError",this.ext=r}}function In(t){if(t.ext&&t.ext.status&&t.ext.status===gN||t.ext&&t.ext.error&&t.ext.error===yN)return!0;switch(t.errorCode){case dN:case uN:return!0;default:return!1}}function Fo(t,e,n){if(n&&n.status)switch(n.status){case fN:return jo(Kp);case pN:return new pt(t,e);case mN:return P(Dr);case hN:return P(Uo);case vN:return jo(Hs)}return new gt(t,bN[t]||e,n)}/*! @azure/msal-browser v4.28.1 2026-01-17 */class Ym extends Yn{async acquireToken(e){this.performanceClient.addQueueMeasurement(f.SilentCacheClientAcquireToken,e.correlationId);const n=this.initializeServerTelemetryManager(z.acquireTokenSilent_silentFlow),r=await _(this.getClientConfiguration.bind(this),f.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:n,requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,account:e.account}),o=new JD(r,this.performanceClient);this.logger.verbose("Silent auth client created");try{const a=(await _(o.acquireCachedToken.bind(o),f.SilentFlowClientAcquireCachedToken,this.logger,this.performanceClient,e.correlationId)(e))[0];return this.performanceClient.addFields({fromCache:!0},e.correlationId),a}catch(i){throw i instanceof Hr&&i.errorCode===Ys&&this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair."),i}}logout(e){this.logger.verbose("logoutRedirect called");const n=this.initializeLogoutRequest(e);return this.clearCacheOnLogout(n.correlationId,n==null?void 0:n.account)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class fo extends Bm{constructor(e,n,r,o,i,a,s,c,l,u,p,h){super(e,n,r,o,i,a,c,l,h),this.apiId=s,this.accountId=u,this.platformAuthProvider=l,this.nativeStorageManager=p,this.silentCacheClient=new Ym(e,this.nativeStorageManager,r,o,i,a,c,l,h);const m=this.platformAuthProvider.getExtensionName();this.skus=Pr.makeExtraSkuString({libraryName:ze.MSAL_SKU,libraryVersion:tn,extensionName:m,extensionVersion:this.platformAuthProvider.getExtensionVersion()})}addRequestSKUs(e){e.extraParameters={...e.extraParameters,[pD]:this.skus}}async acquireToken(e,n){this.performanceClient.addQueueMeasurement(f.NativeInteractionClientAcquireToken,this.correlationId),this.logger.trace("NativeInteractionClient - acquireToken called.");const r=this.performanceClient.startMeasurement(f.NativeInteractionClientAcquireToken,this.correlationId),o=$e(),i=this.initializeServerTelemetryManager(this.apiId);try{const a=await this.initializeNativeRequest(e);try{const c=await this.acquireTokensFromCache(this.accountId,a);return r.end({success:!0,isNativeBroker:!1,fromCache:!0}),c}catch(c){if(n===Me.AccessToken)throw this.logger.info("MSAL internal Cache does not contain tokens, return error as per cache policy"),r.end({success:!1,brokerErrorCode:"cache_request_failed"}),c;this.logger.info("MSAL internal Cache does not contain tokens, proceed to make a native call")}const s=await this.platformAuthProvider.sendMessage(a);return await this.handleNativeResponse(s,a,o).then(c=>(r.end({success:!0,isNativeBroker:!0,requestId:c.requestId}),i.clearNativeBrokerErrorCode(),c)).catch(c=>{throw r.end({success:!1,errorCode:c.errorCode,subErrorCode:c.subError}),c})}catch(a){throw a instanceof gt&&i.setNativeBrokerErrorCode(a.errorCode),r.end({success:!1}),a}}
4180createSilentCacheRequest(e,n){return{authority:e.authority,correlationId:this.correlationId,scopes:Se.fromString(e.scope).asArray(),account:n,forceRefresh:!1}}async acquireTokensFromCache(e,n){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),k(Ca);const r=this.browserStorage.getBaseAccountInfo({nativeAccountId:e},this.correlationId);if(!r)throw k(Ca);try{const o=this.createSilentCacheRequest(n,r),i=await this.silentCacheClient.acquireToken(o),a={...r,idTokenClaims:i==null?void 0:i.idTokenClaims,idToken:i==null?void 0:i.idToken};return{...i,account:a}}catch(o){throw o}}async acquireTokenRedirect(e,n){this.logger.trace("NativeInteractionClient - acquireTokenRedirect called.");const{...r}=e;delete r.onRedirectNavigate;const o=await this.initializeNativeRequest(r);try{await this.platformAuthProvider.sendMessage(o)}catch(s){if(s instanceof gt&&(this.initializeServerTelemetryManager(this.apiId).setNativeBrokerErrorCode(s.errorCode),In(s)))throw s}this.browserStorage.setTemporaryCache(fe.NATIVE_REQUEST,JSON.stringify(o),!0);const i={apiId:z.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},a=this.config.auth.navigateToLoginRequestUrl?window.location.href:this.getRedirectUri(e.redirectUri);n.end({success:!0}),await this.navigationClient.navigateExternal(a,i)}async handleRedirectPromise(e,n){if(this.logger.trace("NativeInteractionClient - handleRedirectPromise called."),!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const r=this.browserStorage.getCachedNativeRequest();if(!r)return this.logger.verbose("NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null."),e&&n&&(e==null||e.addFields({errorCode:"no_cached_request"},n)),null;const{prompt:o,...i}=r;o&&this.logger.verbose("NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window."),this.browserStorage.removeItem(this.browserStorage.generateCacheKey(fe.NATIVE_REQUEST));const a=$e();try{this.logger.verbose("NativeInteractionClient - handleRedirectPromise sending message to native broker.");const s=await this.platformAuthProvider.sendMessage(i),c=await this.handleNativeResponse(s,i,a);return this.initializeServerTelemetryManager(this.apiId).clearNativeBrokerErrorCode(),e&&this.correlationId&&this.performanceClient.addFields({isNativeBroker:!0},this.correlationId),c}catch(s){throw s}}logout(){return this.logger.trace("NativeInteractionClient - logout called."),Promise.reject("Logout not implemented yet")}async handleNativeResponse(e,n,r){var u,p;this.logger.trace("NativeInteractionClient - handleNativeResponse called.");const o=ft(e.id_token,Ue),i=this.createHomeAccountIdentifier(e,o),a=(u=this.browserStorage.getAccountInfoFilteredBy({nativeAccountId:n.accountId},this.correlationId))==null?void 0:u.homeAccountId;if((p=n.extraParameters)!=null&&p.child_client_id&&e.account.id!==n.accountId)this.logger.info("handleNativeServerResponse: Double broker flow detected, ignoring accountId mismatch");else if(i!==a&&e.account.id!==n.accountId)throw Fo(Wm);const s=await this.getDiscoveredAuthority({requestAuthority:n.authority}),c=zs(this.browserStorage,s,i,Ue,this.correlationId,o,e.client_info,void 0,o.tid,void 0,e.account.id,this.logger);e.expires_in=Number(e.expires_in);const l=await this.generateAuthenticationResult(e,n,o,c,s.canonicalAuthority,r);return await this.cacheAccount(c,this.correlationId,vt(o)),await this.cacheNativeTokens(e,n,i,o,e.access_token,l.tenantId,r),l}createHomeAccountIdentifier(e,n){return pe.generateHomeAccountId(e.client_info||C.EMPTY_STRING,ct.Default,this.logger,this.browserCrypto,n)}generateScopes(e,n){return n?Se.fromString(n):Se.fromString(e)}async generatePopAccessToken(e,n){if(n.tokenType===Q.POP&&n.signPopToken){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new xn(this.browserCrypto),o={resourceRequestMethod:n.resourceRequestMethod,resourceRequestUri:n.resourceRequestUri,shrClaims:n.shrClaims,shrNonce:n.shrNonce};if(!n.keyId)throw k(gs);return r.signPopToken(e.access_token,n.keyId,o)}else return e.access_token}async generateAuthenticationResult(e,n,r,o,i,a){const s=this.addTelemetryFromNativeResponse(e.properties.MATS),c=this.generateScopes(n.scope,e.scope),l=e.account.properties||{},u=l.UID||r.oid||r.sub||C.EMPTY_STRING,p=l.TenantId||r.tid||C.EMPTY_STRING,h=Cs(pe.getAccountInfo(o),void 0,r,e.id_token);h.nativeAccountId!==e.account.id&&(h.nativeAccountId=e.account.id);const m=await this.generatePopAccessToken(e,n),I=n.tokenType===Q.POP?Q.POP:Q.BEARER;return{authority:i,uniqueId:u,tenantId:p,scopes:c.asArray(),account:h,idToken:e.id_token,idTokenClaims:r,accessToken:m,fromCache:s?this.isResponseFromCache(s):!1,expiresOn:En(a+e.expires_in),tokenType:I,correlationId:this.correlationId,state:e.state,fromNativeBroker:!0}}async cacheAccount(e,n,r){await this.browserStorage.setAccount(e,this.correlationId,r,this.apiId),this.browserStorage.removeAccountContext(pe.getAccountInfo(e),n)}cacheNativeTokens(e,n,r,o,i,a,s){const c=li(r,n.authority,e.id_token||"",n.clientId,o.tid||""),l=n.tokenType===Q.POP?C.SHR_NONCE_VALIDITY:(typeof e.expires_in=="str
4180ing"?parseInt(e.expires_in,10):e.expires_in)||0,u=s+l,p=this.generateScopes(e.scope,n.scope),h=di(r,n.authority,i,n.clientId,o.tid||a,p.printScopes(),u,0,Ue,void 0,n.tokenType,void 0,n.keyId),m={idToken:c,accessToken:h};return this.nativeStorageManager.saveCacheRecord(m,this.correlationId,vt(o),this.apiId,n.storeInCache)}getExpiresInValue(e,n){return e===Q.POP?C.SHR_NONCE_VALIDITY:(typeof n=="string"?parseInt(n,10):n)||0}addTelemetryFromNativeResponse(e){const n=this.getMATSFromResponse(e);return n?(this.performanceClient.addFields({extensionId:this.platformAuthProvider.getExtensionId(),extensionVersion:this.platformAuthProvider.getExtensionVersion(),matsBrokerVersion:n.broker_version,matsAccountJoinOnStart:n.account_join_on_start,matsAccountJoinOnEnd:n.account_join_on_end,matsDeviceJoin:n.device_join,matsPromptBehavior:n.prompt_behavior,matsApiErrorCode:n.api_error_code,matsUiVisible:n.ui_visible,matsSilentCode:n.silent_code,matsSilentBiSubCode:n.silent_bi_sub_code,matsSilentMessage:n.silent_message,matsSilentStatus:n.silent_status,matsHttpStatus:n.http_status,matsHttpEventCount:n.http_event_count},this.correlationId),n):null}getMATSFromResponse(e){if(e)try{return JSON.parse(e)}catch{this.logger.error("NativeInteractionClient - Error parsing MATS telemetry, returning null instead")}return null}isResponseFromCache(e){return typeof e.is_cached>"u"?(this.logger.verbose("NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false."),!1):!!e.is_cached}async initializeNativeRequest(e){this.logger.trace("NativeInteractionClient - initializeNativeRequest called");const n=await this.getCanonicalAuthority(e),{scopes:r,...o}=e,i=new Se(r||[]);i.appendScopes(Gn);const a={...o,accountId:this.accountId,clientId:this.config.auth.clientId,authority:n.urlString,scope:i.printScopes(),redirectUri:this.getRedirectUri(e.redirectUri),prompt:this.getPrompt(e.prompt),correlationId:this.correlationId,tokenType:e.authenticationScheme,windowTitleSubstring:document.title,extraParameters:{...e.extraQueryParameters,...e.tokenQueryParameters},extendedExpiryToken:!1,keyId:e.popKid};if(a.signPopToken&&e.popKid)throw P(Am);if(this.handleExtraBrokerParams(a),a.extraParameters=a.extraParameters||{},a.extraParameters.telemetry=Xe.MATS_TELEMETRY,e.authenticationScheme===Q.POP){const s={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},c=new xn(this.browserCrypto);let l;if(a.keyId)l=this.browserCrypto.base64UrlEncode(JSON.stringify({kid:a.keyId})),a.signPopToken=!1;else{const u=await _(c.generateCnf.bind(c),f.PopTokenGenerateCnf,this.logger,this.performanceClient,this.correlationId)(s,this.logger);l=u.reqCnfString,a.keyId=u.kid,a.signPopToken=!0}a.reqCnf=l}return this.addRequestSKUs(a),a}async getCanonicalAuthority(e){const n=e.authority||this.config.auth.authority;e.account&&await this.getDiscoveredAuthority({requestAuthority:n,requestAzureCloudOptions:e.azureCloudOptions,account:e.account});const r=new B(n);return r.validateAsUri(),r}getPrompt(e){switch(this.apiId){case z.ssoSilent:case z.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),ke.NONE}if(!e){this.logger.trace("initializeNativeRequest: prompt was not provided");return}switch(e){case ke.NONE:case ke.CONSENT:case ke.LOGIN:case ke.SELECT_ACCOUNT:return this.logger.trace("initializeNativeRequest: prompt is compatible with native flow"),e;default:throw this.logger.trace(`initializeNativeRequest: prompt = ${e} is not compatible with native flow`),P(wm)}}handleExtraBrokerParams(e){var i;const n=e.extraParameters&&e.extraParameters.hasOwnProperty(Do)&&e.extraParameters.hasOwnProperty(Oo)&&e.extraParameters.hasOwnProperty(Zt);if(!e.embeddedClientId&&!n)return;let r="";const o=e.redirectUri;e.embeddedClientId?(e.redirectUri=this.config.auth.redirectUri,r=e.embeddedClientId):e.extraParameters&&(e.redirectUri=e.extraParameters[Oo],r=e.extraParameters[Zt]),e.extraParameters={child_client_id:r,child_redirect_uri:o},(i=this.performanceClient)==null||i.addFields({embeddedClientId:r,embeddedRedirectUri:o},this.correlationId)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */async function lc(t,e,n,r,o){const i=XD({...t.auth,authority:e},n,r,o);if(Ns(i,{sku:ze.MSAL_SKU,version:tn,os:"",cpu:""}),t.auth.protocolMode!==qe.OIDC&&Ms(i,t.telemetry.application),n.platformBroker&&(fD(i),o.addFields({isPlatformAuthorizeRequest:!0},n.correlationId),n.authenticationScheme===Q.POP)){const a=new At(r,o),s=new xn(a);let c;n.popKid?c=a.encodeKid(n.popKid):c=(await _(s.generateCnf.bind(s),f.PopTokenGenerateCnf,r,o,n.correlationId)(n,r)).reqCnfString,Us(i,c)}return ai(i,n.correlationId,o),i}async function dc(t,e,n,r,o){if(!n.codeChallenge)throw ee(Ss);const i=await _(lc,f.GetStandardParams,r,o,n.correlationId)(t,e,n,r,o);return As(i,cs.CODE),Ls(i,n.codeChallenge,C.S256_CODE_CHALLENGE_METHOD),Ft(i,n.extraQueryParameters||{}),qs(e,i,t.auth.encodeExtraQueryParams,n.extraQueryParameters)}
4180async function uc(t,e,n,r,o,i){if(!r.earJwk)throw P(Ks);const a=await lc(e,n,r,o,i);As(a,cs.IDTOKEN_TOKEN_REFRESHTOKEN),AD(a,r.earJwk),Ls(a,r.codeChallenge,C.S256_CODE_CHALLENGE_METHOD);const s=new Map;Ft(s,r.extraQueryParameters||{});const c=qs(n,s,e.auth.encodeExtraQueryParams,r.extraQueryParameters);return Jm(t,c,a)}async function pc(t,e,n,r,o,i){const a=await lc(e,n,r,o,i);As(a,cs.CODE),Ls(a,r.codeChallenge,r.codeChallengeMethod||C.S256_CODE_CHALLENGE_METHOD),ED(a,r.authorizePostBodyParameters||{});const s=new Map;Ft(s,r.extraQueryParameters||{});const c=qs(n,s,e.auth.encodeExtraQueryParams,r.extraQueryParameters);return Jm(t,c,a)}function Jm(t,e,n){const r=t.createElement("form");return r.method="post",r.action=e,n.forEach((o,i)=>{const a=t.createElement("input");a.hidden=!0,a.name=i,a.value=o,r.appendChild(a)}),t.body.appendChild(r),r}async function Qm(t,e,n,r,o,i,a,s,c,l){if(s.verbose("Account id found, calling WAM for token"),!l)throw P(Qs);const u=new At(s,c),p=new fo(r,o,u,s,a,r.system.navigationClient,n,c,l,e,i,t.correlationId),{userRequestState:h}=Kn.parseRequestState(u,t.state);return _(p.acquireToken.bind(p),f.NativeInteractionClientAcquireToken,s,c,t.correlationId)({...t,state:h,prompt:void 0})}async function Dn(t,e,n,r,o,i,a,s,c,l,u,p){if(ht.removeThrottle(a,o.auth.clientId,t),e.accountId)return _(Qm,f.HandleResponsePlatformBroker,l,u,t.correlationId)(t,e.accountId,r,o,a,s,c,l,u,p);const h={...t,code:e.code||"",codeVerifier:n},m=new Km(i,a,h,l,u);return await _(m.handleCodeResponse.bind(m),f.HandleCodeResponse,l,u,t.correlationId)(e,t,r)}async function mc(t,e,n,r,o,i,a,s,c,l,u){if(ht.removeThrottle(i,r.auth.clientId,t),Qp(e,t.state),!e.ear_jwe)throw P(tm);if(!t.earJwk)throw P(Ks);const p=JSON.parse(await _(EO,f.DecryptEarResponse,c,l,t.correlationId)(t.earJwk,e.ear_jwe));if(p.accountId)return _(Qm,f.HandleResponsePlatformBroker,c,l,t.correlationId)(t,p.accountId,n,r,i,a,s,c,l,u);const h=new en(r.auth.clientId,i,new At(c,l),c,null,null,l);h.validateTokenResponse(p);const m={code:"",state:t.state,nonce:t.nonce,client_info:p.client_info,cloud_graph_host_name:p.cloud_graph_host_name,cloud_instance_host_name:p.cloud_instance_host_name,cloud_instance_name:p.cloud_instance_name,msgraph_host:p.msgraph_host};return await _(h.handleServerTokenResponse.bind(h),f.HandleServerTokenResponse,c,l,t.correlationId)(p,o,$e(),t,n,m,void 0,void 0,void 0,void 0)}/*! @azure/msal-browser v4.28.1 2026-01-17 */const SN=32;async function rn(t,e,n){t.addQueueMeasurement(f.GeneratePkceCodes,n);const r=We(IN,f.GenerateCodeVerifier,e,t,n)(t,e,n),o=await _(_N,f.GenerateCodeChallengeFromVerifier,e,t,n)(r,t,e,n);return{verifier:r,challenge:o}}function IN(t,e,n){try{const r=new Uint8Array(SN);return We(CO,f.GetRandomValues,e,t,n)(r),zt(r)}catch{throw P(Gs)}}async function _N(t,e,n,r){e.addQueueMeasurement(f.GenerateCodeChallengeFromVerifier,r);try{const o=await _(Mm,f.Sha256Digest,n,e,r)(t,e,r);return zt(new Uint8Array(o))}catch{throw P(Gs)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class Ho{constructor(e,n,r,o){this.logger=e,this.handshakeTimeoutMs=n,this.extensionId=o,this.resolvers=new Map,this.handshakeResolvers=new Map,this.messageChannel=new MessageChannel,this.windowListener=this.onWindowMessage.bind(this),this.performanceClient=r,this.handshakeEvent=r.startMeasurement(f.NativeMessageHandlerHandshake),this.platformAuthType=Xe.PLATFORM_EXTENSION_PROVIDER}async sendMessage(e){this.logger.trace(this.platformAuthType+" - sendMessage called.");const n={method:nr.GetToken,request:e},r={channel:Xe.CHANNEL_ID,extensionId:this.extensionId,responseId:yt(),body:n};this.logger.trace(this.platformAuthType+" - Sending request to browser extension"),this.logger.tracePii(this.platformAuthType+` - Sending request to browser extension: ${JSON.stringify(r)}`),this.messageChannel.port1.postMessage(r);const o=await new Promise((a,s)=>{this.resolvers.set(r.responseId,{resolve:a,reject:s})});return this.validatePlatformBrokerResponse(o)}static async createProvider(e,n,r){e.trace("PlatformAuthExtensionHandler - createProvider called.");try{const o=new Ho(e,n,r,Xe.PREFERRED_EXTENSION_ID);
4180return await o.sendHandshakeRequest(),o}catch{const i=new Ho(e,n,r);return await i.sendHandshakeRequest(),i}}async sendHandshakeRequest(){this.logger.trace(this.platformAuthType+" - sendHandshakeRequest called."),window.addEventListener("message",this.windowListener,!1);const e={channel:Xe.CHANNEL_ID,extensionId:this.extensionId,responseId:yt(),body:{method:nr.HandshakeRequest}};return this.handshakeEvent.add({extensionId:this.extensionId,extensionHandshakeTimeoutMs:this.handshakeTimeoutMs}),this.messageChannel.port1.onmessage=n=>{this.onChannelMessage(n)},window.postMessage(e,window.origin,[this.messageChannel.port2]),new Promise((n,r)=>{this.handshakeResolvers.set(e.responseId,{resolve:n,reject:r}),this.timeoutId=window.setTimeout(()=>{window.removeEventListener("message",this.windowListener,!1),this.messageChannel.port1.close(),this.messageChannel.port2.close(),this.handshakeEvent.end({extensionHandshakeTimedOut:!0,success:!1}),r(P(Cm)),this.handshakeResolvers.delete(e.responseId)},this.handshakeTimeoutMs)})}onWindowMessage(e){if(this.logger.trace(this.platformAuthType+" - onWindowMessage called"),e.source!==window)return;const n=e.data;if(!(!n.channel||n.channel!==Xe.CHANNEL_ID)&&!(n.extensionId&&n.extensionId!==this.extensionId)&&n.body.method===nr.HandshakeRequest){const r=this.handshakeResolvers.get(n.responseId);if(!r){this.logger.trace(this.platformAuthType+`.onWindowMessage - resolver can't be found for request ${n.responseId}`);return}this.logger.verbose(n.extensionId?`Extension with id: ${n.extensionId} not installed`:"No extension installed"),clearTimeout(this.timeoutId),this.messageChannel.port1.close(),this.messageChannel.port2.close(),window.removeEventListener("message",this.windowListener,!1),this.handshakeEvent.end({success:!1,extensionInstalled:!1}),r.reject(P(Tm))}}onChannelMessage(e){this.logger.trace(this.platformAuthType+" - onChannelMessage called.");const n=e.data,r=this.resolvers.get(n.responseId),o=this.handshakeResolvers.get(n.responseId);try{const i=n.body.method;if(i===nr.Response){if(!r)return;const a=n.body.response;if(this.logger.trace(this.platformAuthType+" - Received response from browser extension"),this.logger.tracePii(this.platformAuthType+` - Received response from browser extension: ${JSON.stringify(a)}`),a.status!=="Success")r.reject(Fo(a.code,a.description,a.ext));else if(a.result)a.result.code&&a.result.description?r.reject(Fo(a.result.code,a.result.description,a.result.ext)):r.resolve(a.result);else throw Sa(wo,"Event does not contain result.");this.resolvers.delete(n.responseId)}else if(i===nr.HandshakeResponse){if(!o){this.logger.trace(this.platformAuthType+`.onChannelMessage - resolver can't be found for request ${n.responseId}`);return}clearTimeout(this.timeoutId),window.removeEventListener("message",this.windowListener,!1),this.extensionId=n.extensionId,this.extensionVersion=n.body.version,this.logger.verbose(this.platformAuthType+` - Received HandshakeResponse from extension: ${this.extensionId}`),this.handshakeEvent.end({extensionInstalled:!0,success:!0}),o.resolve(),this.handshakeResolvers.delete(n.responseId)}}catch(i){this.logger.error("Error parsing response from WAM Extension"),this.logger.errorPii(`Error parsing response from WAM Extension: ${i}`),this.logger.errorPii(`Unable to parse ${e}`),r?r.reject(i):o&&o.reject(i)}}validatePlatformBrokerResponse(e){if(e.hasOwnProperty("access_token")&&e.hasOwnProperty("id_token")&&e.hasOwnProperty("client_info")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scope")&&e.hasOwnProperty("expires_in"))return e;throw Sa(wo,"Response missing expected properties.")}getExtensionId(){return this.extensionId}getExtensionVersion(){return this.extensionVersion}getExtensionName(){var e;return this.getExtensionId()===Xe.PREFERRED_EXTENSION_ID?"chrome":(e=this.getExtensionId())!=null&&e.length?"unknown":void 0}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class hc{constructor(e,n,r){this.logger=e,this.performanceClient=n,this.correlationId=r,this.platformAuthType=Xe.PLATFORM_DOM_PROVIDER}static async createProvider(e,n,r){var o;if(e.trace("PlatformAuthDOMHandler: createProvider called"),(o=window.navigator)!=null&&o.platformAuthentication){const i=await window.navigator.platformAuthentication.getSupportedContracts(Xe.MICROSOFT_ENTRA_BROKERID);if(i!=null&&i.includes(Xe.PLATFORM_DOM_APIS))return e.trace("Platform auth api available in DOM"),new hc(e,n,r)}}getExtensionId(){return Xe.MICROSOFT_ENTRA_BROKERID}getExtensionVersion(){return""}getExtensionName(){return Xe.DOM_API_NAME}async sendMessage(e){this.logger.trace(this.platformAuthType+" - Sending request to browser DOM API");try{const n=this.initializePlatformDOMRequest(e),r=await window.navigator.platformAuthentication.executeGetToken(n);return this.validatePlatformBrokerResponse(r)}catch(n){throw this.logger.error(this.platformAuthType+" - executeGetToken DOM API error"),n}}initializePlatformDOMRequest(e){this.logger.trace(this.platformAuthType+" - initializeNativeDOMRequest called");const{accountId:n,clientId:r,authority:o,scope:i,redirectUri:a,correlationId:s,state:c,storeInCache:l,embeddedClientId:u,extraParameters:p,...h}=e,m=this.getDOMExtraParams(h);return{accountId:n,brokerId:this.getExtensionId(),authority:o,clientId:r,correlationId:s||this.correlationId,extraParameters:{...p,...m},isSecurityTokenService:!1,redirectUri:a,scope:i,state:c,storeInCache:l,embeddedClientId:u}}validatePlatformBrokerResponse(e){if(e.hasOwnProperty("isSuccess")){if(e.hasOwnProperty("accessToken")&&e.hasOwnProperty("idToken")&&e.hasOwnProperty("clientInfo")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scopes")&&e.hasOwnProperty("expiresIn"))return this.logger.trace(this.platformAuthType+" - platform broker returned successful and valid response"),this.convertToPlatformBrokerResponse(e);if(e.hasOwnProperty("error")){const n=e;if(n.isSuccess===!1&&n.error&&n.error.code)throw this.logger.trace(this.platformAuthType+" - platform broker returned error response"),Fo(n.error.code,n.error.description,{error:parseInt(n.error.errorCode),protocol_error:n.error.protocolError,status:n.error.status,properties:n.error.properties})}}throw Sa(wo,"Response missing expected properties.")}convertToPlatformBrokerResponse(e){return this.logger.trace(this.platformAuthType+" - convertToNativeResponse called"),{access_token:e.accessToken,id_token:e.idToken,client_info:e.clientInfo,account:e.account,expires_in:e.expires
4180In,scope:e.scopes,state:e.state||"",properties:e.properties||{},extendedLifetimeToken:e.extendedLifetimeToken??!1,shr:e.proofOfPossessionPayload}}getDOMExtraParams(e){return{...Object.entries(e).reduce((o,[i,a])=>(o[i]=String(a),o),{})}}}/*! @azure/msal-browser v4.28.1 2026-01-17 */async function CN(t,e,n,r,o){t.trace("getPlatformAuthProvider called",n),t.trace("Has client allowed platform auth via DOM API: "+o);let i;try{o&&(i=await hc.createProvider(t,e,n)),i||(t.trace("Platform auth via DOM API not available, checking for extension"),i=await Ho.createProvider(t,r||zm,e))}catch(a){t.trace("Platform auth not available",a)}return i}function Nr(t,e,n,r){if(e.trace("isPlatformAuthAllowed called"),!t.system.allowPlatformBroker&&t.system.allowPlatformBrokerWithDOM)throw ee(wp);if(!t.system.allowPlatformBroker)return e.trace("isPlatformAuthAllowed: allowPlatformBroker is not enabled, returning false"),!1;if(!n)return e.trace("isPlatformAuthAllowed: Platform auth provider is not initialized, returning false"),!1;if(r)switch(r){case Q.BEARER:case Q.POP:return e.trace("isPlatformAuthAllowed: authenticationScheme is supported, returning true"),!0;default:return e.trace("isPlatformAuthAllowed: authenticationScheme is not supported, returning false"),!1}return!0}/*! @azure/msal-browser v4.28.1 2026-01-17 */class TN extends Yn{constructor(e,n,r,o,i,a,s,c,l,u){super(e,n,r,o,i,a,s,l,u),this.unloadWindow=this.unloadWindow.bind(this),this.nativeStorage=c,this.eventHandler=i}acquireToken(e,n){let r;try{if(r={popupName:this.generatePopupName(e.scopes||Gn,e.authority||this.config.auth.authority),popupWindowAttributes:e.popupWindowAttributes||{},popupWindowParent:e.popupWindowParent??window},this.performanceClient.addFields({isAsyncPopup:this.config.system.asyncPopups},this.correlationId),this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true, acquiring token"),this.acquireTokenPopupAsync(e,r,n);{const i={...e,httpMethod:Gm(e,this.config.auth.protocolMode)};return this.logger.verbose("asyncPopup set to false, opening popup before acquiring token"),r.popup=this.openSizedPopup("about:blank",r),this.acquireTokenPopupAsync(i,r,n)}}catch(o){return Promise.reject(o)}}logout(e){try{this.logger.verbose("logoutPopup called");const n=this.initializeLogoutRequest(e),r={popupName:this.generateLogoutPopupName(n),popupWindowAttributes:(e==null?void 0:e.popupWindowAttributes)||{},popupWindowParent:(e==null?void 0:e.popupWindowParent)??window},o=e&&e.authority,i=e&&e.mainWindowRedirectUri;return this.config.system.asyncPopups?(this.logger.verbose("asyncPopups set to true"),this.logoutPopupAsync(n,r,o,i)):(this.logger.verbose("asyncPopup set to false, opening popup"),r.popup=this.openSizedPopup("about:blank",r),this.logoutPopupAsync(n,r,o,i))}catch(n){return Promise.reject(n)}}async acquireTokenPopupAsync(e,n,r){this.logger.verbose("acquireTokenPopupAsync called");const o=await _(this.initializeAuthorizationRequest.bind(this),f.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(e,N.Popup);n.popup&&Hm(o.authority);const i=Nr(this.config,this.logger,this.platformAuthProvider,e.authenticationScheme);return o.platformBroker=i,this.config.auth.protocolMode===qe.EAR?this.executeEarFlow(o,n,r):this.executeCodeFlow(o,n,r)}async executeCodeFlow(e,n,r){var c;const o=e.correlationId,i=this.initializeServerTelemetryManager(z.acquireTokenPopup),a=r||await _(rn,f.GeneratePkceCodes,this.logger,this.performanceClient,o)(this.performanceClient,this.logger,o),s={...e,codeChallenge:a.challenge};try{const l=await _(this.createAuthCodeClient.bind(this),f.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,o)({serverTelemetryManager:i,requestAuthority:s.authority,requestAzureCloudOptions:s.azureCloudOptions,requestExtraQueryParameters:s.extraQueryParameters,account:s.account});if(s.httpMethod===Yt.POST)return await this.executeCodeFlowWithPost(s,n,l,a.verifier);{const u=await _(dc,f.GetAuthCodeUrl,this.logger,this.performanceClient,o)(this.config,l.authority,s,this.logger,this.performanceClient),p=this.initiateAuthRequest(u,n);this.eventHandler.emitEvent(O.POPUP_OPENED,N.Popup,{popupWindow:p},null);const h=await this.monitorPopupForHash(p,n.popupWindowParent),m=We(Ir,f.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(h,this.config.auth.OIDCOptions.serverResponseType,this.logger);return await _(Dn,f.HandleResponseCode,this.logger,this.performanceClient,o)(e,m,a.verifier,z.acquireTokenPopup,this.config,l,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}}catch(l){throw(c=n.popup)==null||c.close(),l instanceof te&&(l.setCorrelationId(this.correlationId),i.cacheFailedRequest(l)),l}}
4180async executeEarFlow(e,n,r){const o=e.correlationId,i=await _(this.getDiscoveredAuthority.bind(this),f.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,o)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),a=await _(nc,f.GenerateEarKey,this.logger,this.performanceClient,o)(),s=r||await _(rn,f.GeneratePkceCodes,this.logger,this.performanceClient,o)(this.performanceClient,this.logger,o),c={...e,earJwk:a,codeChallenge:s.challenge},l=n.popup||this.openPopup("about:blank",n);(await uc(l.document,this.config,i,c,this.logger,this.performanceClient)).submit();const p=await _(this.monitorPopupForHash.bind(this),f.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,o)(l,n.popupWindowParent),h=We(Ir,f.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(p,this.config.auth.OIDCOptions.serverResponseType,this.logger);if(!h.ear_jwe&&h.code){const m=await _(this.createAuthCodeClient.bind(this),f.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,o)({serverTelemetryManager:this.initializeServerTelemetryManager(z.acquireTokenPopup),requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account,authority:i});return _(Dn,f.HandleResponseCode,this.logger,this.performanceClient,o)(c,h,s.verifier,z.acquireTokenPopup,this.config,m,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}else return _(mc,f.HandleResponseEar,this.logger,this.performanceClient,o)(c,h,z.acquireTokenPopup,this.config,i,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}async executeCodeFlowWithPost(e,n,r,o){const i=e.correlationId,a=await _(this.getDiscoveredAuthority.bind(this),f.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,i)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),s=n.popup||this.openPopup("about:blank",n);(await pc(s.document,this.config,a,e,this.logger,this.performanceClient)).submit();const l=await _(this.monitorPopupForHash.bind(this),f.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,i)(s,n.popupWindowParent),u=We(Ir,f.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(l,this.config.auth.OIDCOptions.serverResponseType,this.logger);return _(Dn,f.HandleResponseCode,this.logger,this.performanceClient,i)(e,u,o,z.acquireTokenPopup,this.config,r,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}async logoutPopupAsync(e,n,r,o){var a,s,c;this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(O.LOGOUT_START,N.Popup,e);const i=this.initializeServerTelemetryManager(z.logoutPopup);try{await this.clearCacheOnLogout(this.correlationId,e.account);const l=await _(this.createAuthCodeClient.bind(this),f.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:i,requestAuthority:r,account:e.account||void 0});try{l.authority.endSessionEndpoint}catch{if((a=e.account)!=null&&a.homeAccountId&&e.postLogoutRedirectUri&&l.authority.protocolMode===qe.OIDC){if(this.eventHandler.emitEvent(O.LOGOUT_SUCCESS,N.Popup,e),o){const h={apiId:z.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},m=B.getAbsoluteUrl(o,wt());await this.navigationClient.navigateInternal(m,h)}(s=n.popup)==null||s.close();return}}const u=l.getLogoutUri(e);this.eventHandler.emitEvent(O.LOGOUT_SUCCESS,N.Popup,e);const p=this.openPopup(u,n);if(this.eventHandler.emitEvent(O.POPUP_OPENED,N.Popup,{popupWindow:p},null),await this.monitorPopupForHash(p,n.popupWindowParent).catch(()=>{}),o){const h={apiId:z.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},m=B.getAbsoluteUrl(o,wt());this.logger.verbose("Redirecting main window to url specified in the request"),this.logger.verbosePii(`Redirecting main window to: ${m}`),await this.navigationClient.navigateInternal(m,h)}else this.logger.verbose("No main window navigation requested")}catch(l){throw(c=n.popup)==null||c.close(),l instanceof te&&(l.setCorrelationId(this.correlationId),i.cacheFailedRequest(l)),this.eventHandler.emitEvent(O.LOGOUT_FAILURE,N.Popup,null,l),this.eventHandler.emitEvent(O.LOGOUT_END,N.Popup),l}this.eventHandler.emitEvent(O.LOGOUT_END,N.Popup)}initiateAuthRequest(e,n){if(e)return this.logger.infoPii(`Navigate to: ${e}`),this.openPopup(e,n);throw this.logger.error("Navigate url is empty"),P(gi)}monitorPopupForHash(e,n){return new Promise((r,o)=>{this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const i=setInterval(()=>{if(e.closed){this.logger.error("PopupHandler.monitorPopupForHash - window closed"),clearInterval(i),o(P(Dr));return}let a="";try{a=e.location.href}catch{}if(!a||a==="about:blank")return;clearInterval(i);let s="";const c=this.config.auth.OIDCOptions.serverResponseType;e&&(c===oi.QUERY?s=e.location.search:s=e.location.hash),this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),r(s)},this.config.system.pollIntervalMilliseconds)}).finally(()=>{this.cleanPopup(e,n)})}openPopup(e,n){try{let r;if(n.popup?(r=n.popup,this.logger.verbosePii(`Navigating popup window to: ${e}`),r.location.assign(e)):typeof n.popup>"u"&&(this.logger.verbosePii(`Opening popup window to: ${e}`),r=this.openSizedPopup(e,n)),!r)throw P(cm);
4180return r.focus&&r.focus(),this.currentWindow=r,n.popupWindowParent.addEventListener("beforeunload",this.unloadWindow),r}catch(r){throw this.logger.error("error opening popup "+r.message),P(sm)}}openSizedPopup(e,{popupName:n,popupWindowAttributes:r,popupWindowParent:o}){var m,I,y,S;const i=o.screenLeft?o.screenLeft:o.screenX,a=o.screenTop?o.screenTop:o.screenY,s=o.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,c=o.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;let l=(m=r.popupSize)==null?void 0:m.width,u=(I=r.popupSize)==null?void 0:I.height,p=(y=r.popupPosition)==null?void 0:y.top,h=(S=r.popupPosition)==null?void 0:S.left;return(!l||l<0||l>s)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),l=ze.POPUP_WIDTH),(!u||u<0||u>c)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),u=ze.POPUP_HEIGHT),(!p||p<0||p>c)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),p=Math.max(0,c/2-ze.POPUP_HEIGHT/2+a)),(!h||h<0||h>s)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),h=Math.max(0,s/2-ze.POPUP_WIDTH/2+i)),o.open(e,n,`width=${l}, height=${u}, top=${p}, left=${h}, scrollbars=yes`)}unloadWindow(e){this.currentWindow&&this.currentWindow.close(),e.preventDefault()}cleanPopup(e,n){e.close(),n.removeEventListener("beforeunload",this.unloadWindow)}generatePopupName(e,n){return`${ze.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${n}.${this.correlationId}`}generateLogoutPopupName(e){const n=e.account&&e.account.homeAccountId;return`${ze.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${n}.${this.correlationId}`}}/*! @azure/msal-browser v4.28.1 2026-01-17 */function wN(){if(typeof window>"u"||typeof window.performance>"u"||typeof window.performance.getEntriesByType!="function")return;const t=window.performance.getEntriesByType("navigation"),e=t.length?t[0]:void 0;return e==null?void 0:e.type}class kN extends Yn{constructor(e,n,r,o,i,a,s,c,l,u){super(e,n,r,o,i,a,s,l,u),this.nativeStorage=c}async acquireToken(e){const n=await _(this.initializeAuthorizationRequest.bind(this),f.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(e,N.Redirect);n.platformBroker=Nr(this.config,this.logger,this.platformAuthProvider,e.authenticationScheme);const r=i=>{i.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.resetRequestCache(),this.eventHandler.emitEvent(O.RESTORE_FROM_BFCACHE,N.Redirect))},o=this.getRedirectStartPage(e.redirectStartPage);this.logger.verbosePii(`Redirect start page: ${o}`),this.browserStorage.setTemporaryCache(fe.ORIGIN_URI,o,!0),window.addEventListener("pageshow",r);try{this.config.auth.protocolMode===qe.EAR?await this.executeEarFlow(n):await this.executeCodeFlow(n,e.onRedirectNavigate)}catch(i){throw i instanceof te&&i.setCorrelationId(this.correlationId),window.removeEventListener("pageshow",r),i}}async executeCodeFlow(e,n){const r=e.correlationId,o=this.initializeServerTelemetryManager(z.acquireTokenRedirect),i=await _(rn,f.GeneratePkceCodes,this.logger,this.performanceClient,r)(this.performanceClient,this.logger,r),a={...e,codeChallenge:i.challenge};this.browserStorage.cacheAuthorizeRequest(a,i.verifier);try{if(a.httpMethod===Yt.POST)return await this.executeCodeFlowWithPost(a);{const s=await _(this.createAuthCodeClient.bind(this),f.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:o,requestAuthority:a.authority,requestAzureCloudOptions:a.azureCloudOptions,requestExtraQueryParameters:a.extraQueryParameters,account:a.account}),c=await _(dc,f.GetAuthCodeUrl,this.logger,this.performanceClient,e.correlationId)(this.config,s.authority,a,this.logger,this.performanceClient);return await this.initiateAuthRequest(c,n)}}catch(s){throw s instanceof te&&(s.setCorrelationId(this.correlationId),o.cacheFailedRequest(s)),s}}async executeEarFlow(e){const n=e.correlationId,r=await _(this.getDiscoveredAuthority.bind(this),f.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,n)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),o=await _(nc,f.GenerateEarKey,this.logger,this.performanceClient,n)(),i=await _(rn,f.GeneratePkceCodes,this.logger,this.performanceClient,n)(this.performanceClient,this.logger,n),a={...e,earJwk:o,codeChallenge:i.challenge};return this.browserStorage.cacheAuthorizeRequest(a,i.verifier),(await uc(document,this.config,r,a,this.logger,this.performanceClient)).submit(),new Promise((c,l)=>{setTimeout(()=>{l(P($o,"failed_to_redirect"))},this.config.system.redirectNavigationTimeout)})}async executeCodeFlowWithPost(e){const n=e.correlationId,r=await _(this.getDiscoveredAuthority.bind(this),f.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,n)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account});return this.browserStorage.cacheAuthorizeRequest(e),(await pc(document,this.config,r,e,this.logger,this.performanceClient)).submit(),new Promise((i,a)=>{setTimeout(()=>{a(P($o,"failed_to_redirect"))},this.config.system.redirectNavigationTimeout)})}async handleRedirectPromise(e="",n,r,o){const i=this.initializeServerTelemetryManager(z.handleRedirectPromise);try{const[a,s]=this.getRedirectResponse(e||"");if(!a)return this.logger.info("handleRedirectPromise did not detect a response as a result of a redirect. Cleaning temporary cache."),this.browserStorage.resetRequestCache(),wN()!=="back_forward"?o.event.errorCode="no_server_response":this.logger.verbose("Back navigation event detected. Muting no_server_response error"),null;const c=this.browserStorage.getTemporaryCache(fe.ORIGIN_URI,!0)||C.EMPTY_STRING,l=pl(c),u=pl(window.location.href);if(l===u&&this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("Current page is loginRequestUrl, handling response"),c.indexOf("#")>-1&&PO(c),await this.handleResponse(a,n,r,i);if(this.config.auth.navigateToLoginRequestUrl){if(!ic()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(fe.URL_HASH,s,!0);const p={apiId:z.handleRedirectPromise,timeout:this.config.system.redirectNavigationTimeout,noHistory:!0};let h=!0;if(!c||c==="null"){const m=OO();this.browserStorage.setTemporaryCache(fe.ORIGIN_URI,m,!0),this.logger.warning("Unable to get valid login request url from cache, redirecting to home page"),h=await this.navigationClient.navigateInternal(m,p)}else this.logger.verbose(`Navigating to loginRequestUrl: ${c}`),h=await this.navigationClient.navigateInternal(c,p);if(!h)return await this.handleResponse(a,n,r,i)}}else return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling response"),await this.handleResponse(a,n,r,i);return null}catch(a){throw a instanceof te&&(a.setCorrelationId(this.correlationId),i.cacheFailedRequest(a)),a}}getRedirectResponse(e){this.logger.verbose("getRedirectResponseHash called");let n=e;n||(this.config.auth.OIDCOptions.serverResponseType===oi.QUERY?n=window.location.search:n=window.location.hash);let r=Eo(n);if(r){try{lN(r,this.browserCrypto,N.Redirect)}catch(i){return i instanceof te&&this.logger.error(`Interaction type validation failed due to ${i.errorCode}: ${i.errorMessage}`),[null,""]}return $m(window),this.logger.verbose("Hash contains known properties, returning response hash"),[r,n]}const o=this.browserStorage.getTemporaryCache(fe.URL_HASH,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(fe.URL_HASH)),o&&(r=Eo(o),r)?(this.logger.verbose("Hash does not contain known properties, returning c
4180ached hash"),[r,o]):[null,""]}async handleResponse(e,n,r,o){if(!e.state)throw P(Ws);if(e.ear_jwe){const s=await _(this.getDiscoveredAuthority.bind(this),f.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,n.correlationId)({requestAuthority:n.authority,requestAzureCloudOptions:n.azureCloudOptions,requestExtraQueryParameters:n.extraQueryParameters,account:n.account});return _(mc,f.HandleResponseEar,this.logger,this.performanceClient,n.correlationId)(n,e,z.acquireTokenRedirect,this.config,s,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}const a=await _(this.createAuthCodeClient.bind(this),f.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:o,requestAuthority:n.authority});return _(Dn,f.HandleResponseCode,this.logger,this.performanceClient,n.correlationId)(n,e,r,z.acquireTokenRedirect,this.config,a,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}async initiateAuthRequest(e,n){if(this.logger.verbose("RedirectHandler.initiateAuthRequest called"),e){this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:z.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},o=n||this.config.auth.onRedirectNavigate;if(typeof o=="function")if(this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback"),o(e)!==!1){this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"),await this.navigationClient.navigateExternal(e,r);return}else{this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation");return}else{this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"),await this.navigationClient.navigateExternal(e,r);return}}else throw this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"),P(gi)}async logout(e){var o;this.logger.verbose("logoutRedirect called");const n=this.initializeLogoutRequest(e),r=this.initializeServerTelemetryManager(z.logout);try{this.eventHandler.emitEvent(O.LOGOUT_START,N.Redirect,e),await this.clearCacheOnLogout(this.correlationId,n.account);const i={apiId:z.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},a=await _(this.createAuthCodeClient.bind(this),f.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:r,requestAuthority:e&&e.authority,requestExtraQueryParameters:e==null?void 0:e.extraQueryParameters,account:e&&e.account||void 0});if(a.authority.protocolMode===qe.OIDC)try{a.authority.endSessionEndpoint}catch{if((o=n.account)!=null&&o.homeAccountId){this.eventHandler.emitEvent(O.LOGOUT_SUCCESS,N.Redirect,n);return}}const s=a.getLogoutUri(n);if(this.eventHandler.emitEvent(O.LOGOUT_SUCCESS,N.Redirect,n),e&&typeof e.onRedirectNavigate=="function")if(e.onRedirectNavigate(s)!==!1){this.logger.verbose("Logout onRedirectNavigate did not return false, navigating"),this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0,jt.SIGNOUT),await this.navigationClient.navigateExternal(s,i);return}else this.browserStorage.setInteractionInProgress(!1),this.logger.verbose("Logout onRedirectNavigate returned false, stopping navigation");else{this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0,jt.SIGNOUT),await this.navigationClient.navigateExternal(s,i);return}}catch(i){throw i instanceof te&&(i.setCorrelationId(this.correlationId),r.cacheFailedRequest(i)),this.eventHandler.emitEvent(O.LOGOUT_FAILURE,N.Redirect,null,i),this.eventHandler.emitEvent(O.LOGOUT_END,N.Redirect),i}this.eventHandler.emitEvent(O.LOGOUT_END,N.Redirect)}getRedirectStartPage(e){const n=e||window.location.href;return B.getAbsoluteUrl(n,wt())}}/*! @azure/msal-browser v4.28.1 2026-01-17 */async function AN(t,e,n,r,o){if(e.addQueueMeasurement(f.SilentHandlerInitiateAuthRequest,r),!t)throw n.info("Navigate url is empty"),P(gi);return o?_(PN,f.SilentHandlerLoadFrame,n,e,r)(t,o,e,r):We(DN,f.SilentHandlerLoadFrameSync,n,e,r)(t)}async function EN(t,e,n,r,o){const i=Si();if(!i.contentDocument)throw"No document associated with iframe!";return(await pc(i.contentDocument,t,e,n,r,o)).submit(),i}async function RN(t,e,n,r,o){const i=Si();if(!i.contentDocument)throw"No document associated with iframe!";return(await uc(i.contentDocument,t,e,n,r,o)).submit(),i}async function Vl(t,e,n,r,o,i,a){return r.addQueueMeasurement(f.SilentHandlerMonitorIframeForHash,i),new Promise((s,c)=>{e<Da&&o.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${e}ms) than the default (${Da}ms). This may result in timeouts.`);const l=window.setTimeout(()=>{window.clearInterval(u),c(P(lm))},e),u=window.setInterval(()=>{let p="";const h=t.contentWindow;try{p=h?h.location.href:""}catch{}if(!p||p==="about:blank")return;let m="";h&&(a===oi.QUERY?m=h.location.search:m=h.location.hash),window.clearTimeout(l),window.clearInterval(u),s(m)},n)}).finally(()=>{We(ON,f.RemoveHiddenIframe,o,r,i)(t)})}function PN(t,e,n,r){return n.addQueueMeasurement(f.SilentHandlerLoadFrame,r),new Promise((o,i)=>{const a=Si();window.setTimeout(()=>{if(!a){i("Unable to load iframe");return}a.src=t,o(a)},e)})}function DN(t){const e=Si();return e.src=t,e}function Si(){const t=document.createElement("iframe");return t.className="msalSilentIframe",t.style.visibility="hidden",t.style.position="absolute",t.style.width=t.style.height="0",t.style.border="0",t.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),t.setAttribute("allow","local-network-access *"),document.body.appendChild(t),t}function ON(t){document.body===t.parentNode&&document.body.removeChild(t)}/*! @azure/msal-browser v4.28.1 2026-01-17 */class NN extends Yn{constructor(e,n,r,o,i,a,s,c,l,u,p){super(e,n,r,o,i,a,c,u,p),this.apiId=s,this.nativeStorage=l}async acquireToken(e){this.performanceClient.addQueueMeasurement(f.SilentIframeClientAcquireToken,e.correlationId),!e.loginHint&&!e.sid&&(!e.account||!e.account.username)&&this.logger.warning("No user hint provided. The authorization server may need more information to complete this request.");const n={...e};n.prompt?n.prompt!==ke.NONE&&n.prompt!==ke.NO_SESSION&&(this.logger.warning(`SilentIframeClient. Replacing invalid prompt ${n.prompt} with ${ke.NONE}`),n.prompt=ke.NONE):n.prompt=ke.NONE;const r=await _(this.initializeAuthorizationRequest.bind(this),f.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,e.correlationId)(n,N.Silent);return r.platformBroker=Nr(this.config,this.logger,this.platformAuthProvider,r.authenticationScheme),Hm(r.authority),this.config.auth.protocolMode===qe.EAR?this.executeEarFlow(r):this.executeCodeFlow(r)}async executeCodeFlow(e){let n;const r=this.initializeServerTelemetryManager(this.apiId);try{return n=await _(this.createAuthCodeClient.bind(this),f.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,e.correlationId)({serverTelemetryManager:r,requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),await _(this.silentTokenHelper.bind(this),f.SilentIframeClientTokenHelper,this.logger,this.performanceClient,e.correlationId)(n,e)}catch(o){if(o instanceof te&&(o.setCorrelationId(this.correlationId),r.cacheFailedRequest(o)),!n||!(o instanceof te)||o.errorCode!==ze.INVALID_GRANT_ERROR)throw o;return this.performanceClient.addFields({retryError:o.errorCode},this.correlationId),await _(this.silentTokenHelper.bind(this),f.SilentIframeClientTokenHelper,this.logger,this.performanceClient,this.correlationId)(n,e)}}async executeEarFlow(e){const n=e.correlationId,r=await _(this.getDiscoveredAuthority.bind(this),f.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,n)({requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account}),o=await _(nc,f.GenerateEarKey,this.logger,this.performanceClient,n)(),i=await _(rn,f.GeneratePkceCodes,this.logger,this.performanceClient,n)(this.performanceClient,this.logger,n),a={...e,earJwk:o,codeChallenge:i.challenge},s=await _(RN,f.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,n)(this.config,r,a,this.logger,this.performanceClient),c=this.config.auth.OIDCOptions.serverResponseType,l=await _(Vl,f.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,n)(s,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,n,c),u=We(Ir,f.DeserializeResponse,this.logger,this.performanceClient,n)(l,c,this.logger);if(!u.ear_jwe&&u.code){const p=await _(this.createAuthCodeClient.bind(this),f.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,n)({serverTelemetryManager:this.initializeServerTelemetryManager(this.apiId),requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account,authority:r});return _(Dn,f.HandleResponseCode,this.logger,this.performanceClient,n)(a,u,i.verifier,this.apiId,this.config,p,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}else return _(mc,f.HandleResponseEar,this.logger,this.performanceClient,n)(a,u,this.apiId,this.config,r,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}logout(){return Promise.reject(P(fi))}async silentTokenHelper(e,n){const r=n.correlationId;this.performanceClient.addQueueMeasurement(f.SilentIframeClientTokenHelper,r);const o=await _(rn,f.GeneratePkceCodes,this.logger,this.performanceClient,r)(this.performanceClient,this.logger,r),i={...n,codeChallenge:o.challenge};let a;if(n.httpMethod===Yt.POST)a=await _(EN,f.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r)(this.config,e.authority,i,this.logger,this.performanceClient);else{const u=await _(dc,f.GetAuthCodeUrl,this.logger,this.performanceClient,r)(this.config,e.authority,i,this.logger,this.performanceClient);a=await _(AN,f.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r)(u,this.performanceClient,this.logger,r,this.config.system.navigateFrameWait)}const s=this.config.auth.OIDCOptions.serverResponseType,c=await _(Vl,f.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,r)(a,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,r,s),l=We(Ir,f.DeserializeResponse,this.logger,this.performanceClient,r)(c,s,this.logger);return _(Dn,f.HandleResponseCode,this.logger,this.performanceClient,r)(n,l,o.verifier,this.apiId,this.config,e,this.browserStorage,this.nativeStorage,this.eventHandler,this.logger,this.performanceClient,this.platformAuthProvider)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class MN extends Yn{async acquireToken(e){this.performanceClient.addQueueMeasurement(f.SilentRefreshClientAcquireToken,e.correlationId);const n=await _(cc,f.InitializeBaseRequest,this.logger,this.performanceClient,e.correlationId)(e,this.config,this.performanceClient,this.logger),r={...e,...n};e.redirectUri&&(r.redirectUri=this.getRedirectUri(e.redirectUri));const o=this.initializeServerTelemetryManager(z.acquireTokenSilent_silentFlow),i=await this.createRefreshTokenClient({serverTelemetryManager:o,authorityUrl:r.authority,azureCloudOptions:r.azureCloudOptions,account:r.account});return _(i.acquireTokenByRefreshToken.bind(i),f.RefreshTokenClientAcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(r,z.acquireTokenSilent_silentFlow).catch(a=>{throw a.setCorrelationId(this.correlationId),o.cacheFailedRequest(a),a})}logout(){return Promise.reject(P(fi))}async createRefreshTokenClient(e){const n=await _(this.getClientConfiguration.bind(this),f.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:e.serverTelemetryManager,requestAuthority:e.authorityUrl,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account});return new YD(n,this.performanceClient)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class LN{constructor(e,n,r,o,i){this.isBrowserEnvironment=typeof window<"u",this.config=e,this.storage=n,this.logger=r,this.cryptoObj=o,this.performanceClient=i}async loadExternalTokens(e,n,r){if(!this.isBrowserEnvironment)throw P(vi);const o=e.correlationId||yt(),i=this.performanceClient.startMeasurement(f.LoadExternalTokens,o);try{const a=n.id_token?ft(n.id_token,Ue):void 0,s=vt(a||{}),c={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},l=e.authority||this.config.auth.authority,u=await $s(je.generateAuthority(l,e.azureCloudOptions),this.config.system.networkClient,this.storage,c,this.logger,o,this.performanceClient),p=await _(this.loadAccount.bind(this),f.LoadAccount,this.logger,this.performanceClient,o)(e,r.clientInfo||n.client_info||"",o,u,a),h=await _(this.loadIdToken.bind(this),f.LoadIdToken,this.logger,this.performanceClient,o)(n,p.homeAccountId,p.environment,p.realm,o,s),m=await _(this.loadAccessToken.bind(this),f.LoadAccessToken,this.logger,this.performanceClient,o)(e,n,p.homeAccountId,p.environment,p.realm,r,o,s),I=await _(this.loadRefreshToken.bind(this),f.LoadRefreshToken,this.logger,this.performanceClient,o)(n,p.homeAccountId,p.environment,o,s);return i.end({success:!0},void 0,pe.getAccountInfo(p)),this.generateAuthenticationResult(e,{account:p,idToken:h,accessToken:m,refreshToken:I},u,a)}catch(a){throw i.end({success:!1},a),a}}
4180async loadAccount(e,n,r,o,i){if(this.logger.verbose("TokenCache - loading account"),e.account){const l=pe.createFromAccountInfo(e.account);return await this.storage.setAccount(l,r,vt(i||{}),z.loadExternalTokens),l}else if(!n&&!i)throw this.logger.error("TokenCache - if an account is not provided on the request, clientInfo or idToken must be provided instead."),P(ym);const a=pe.generateHomeAccountId(n,o.authorityType,this.logger,this.cryptoObj,i),s=i==null?void 0:i.tid,c=zs(this.storage,o,a,Ue,r,i,n,o.getPreferredCache(),s,void 0,void 0,this.logger);return await this.storage.setAccount(c,r,vt(i||{}),z.loadExternalTokens),c}async loadIdToken(e,n,r,o,i,a){if(!e.id_token)return this.logger.verbose("TokenCache - no id token found in response"),null;this.logger.verbose("TokenCache - loading id token");const s=li(n,r,e.id_token,this.config.auth.clientId,o);return await this.storage.setIdTokenCredential(s,i,a),s}async loadAccessToken(e,n,r,o,i,a,s,c){if(n.access_token)if(n.expires_in){if(!n.scope&&(!e.scopes||!e.scopes.length))return this.logger.error("TokenCache - scopes not specified in the request or response. Cannot add token to the cache."),null}else return this.logger.error("TokenCache - no expiration set on the access token. Cannot add it to the cache."),null;else return this.logger.verbose("TokenCache - no access token found in response"),null;this.logger.verbose("TokenCache - loading access token");const l=n.scope?Se.fromString(n.scope):new Se(e.scopes),u=a.expiresOn||n.expires_in+$e(),p=a.extendedExpiresOn||(n.ext_expires_in||n.expires_in)+$e(),h=di(r,o,n.access_token,this.config.auth.clientId,i,l.printScopes(),u,p,Ue);return await this.storage.setAccessTokenCredential(h,s,c),h}async loadRefreshToken(e,n,r,o,i){if(!e.refresh_token)return this.logger.verbose("TokenCache - no refresh token found in response"),null;const a=e.refresh_token_expires_in?e.refresh_token_expires_in+$e():void 0;this.performanceClient.addFields({extRtExpiresOnSeconds:a},o),this.logger.verbose("TokenCache - loading refresh token");const s=Bp(n,r,e.refresh_token,this.config.auth.clientId,e.foci,void 0,a);return await this.storage.setRefreshTokenCredential(s,o,i),s}generateAuthenticationResult(e,n,r,o){var u,p,h;let i="",a=[],s=null,c;n!=null&&n.accessToken&&(i=n.accessToken.secret,a=Se.fromString(n.accessToken.target).asArray(),s=En(n.accessToken.expiresOn),c=En(n.accessToken.extendedExpiresOn));const l=n.account;return{authority:r?r.canonicalAuthority:"",uniqueId:n.account.localAccountId,tenantId:n.account.realm,scopes:a,account:pe.getAccountInfo(l),idToken:((u=n.idToken)==null?void 0:u.secret)||"",idTokenClaims:o||{},accessToken:i,fromCache:!0,expiresOn:s,correlationId:e.correlationId||"",requestId:"",extExpiresOn:c,familyId:((p=n.refreshToken)==null?void 0:p.familyId)||"",tokenType:((h=n==null?void 0:n.accessToken)==null?void 0:h.tokenType)||"",state:e.state||"",cloudGraphHostName:l.cloudGraphHostName||"",msGraphHost:l.msGraphHost||"",fromNativeBroker:!1}}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class jN extends Jp{constructor(e){super(e),this.includeRedirectUri=!1}}/*! @azure/msal-browser v4.28.1 2026-01-17 */class UN extends Yn{constructor(e,n,r,o,i,a,s,c,l,u){super(e,n,r,o,i,a,c,l,u),this.apiId=s}async acquireToken(e){if(!e.code)throw P(bm);const n=await _(this.initializeAuthorizationRequest.bind(this),f.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,e.correlationId)(e,N.Silent),r=this.initializeServerTelemetryManager(this.apiId);try{const o={...n,code:e.code},i=await _(this.getClientConfiguration.bind(this),f.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,e.correlationId)({serverTelemetryManager:r,requestAuthority:n.authority,requestAzureCloudOptions:n.azureCloudOptions,requestExtraQueryParameters:n.extraQueryParameters,account:n.account}),a=new jN(i);this.logger.verbose("Auth code client created");const s=new Km(a,this.browserStorage,o,this.logger,this.performanceClient);return await _(s.handleCodeResponseFromServer.bind(s),f.HandleCodeResponseFromServer,this.logger,this.performanceClient,e.correlationId)({code:e.code,msgraph_host:e.msGraphHost,cloud_graph_host_name:e.cloudGraphHostName,cloud_instance_host_name:e.cloudInstanceHostName},n,this.apiId,!1)}catch(o){throw o instanceof te&&(o.setCorrelationId(this.correlationId),r.cacheFailedRequest(o)),o}}logout(){return Promise.reject(P(fi))}}/*! @azure/msal-browser v4.28.1 2026-01-17 */function $N(t,e,n){var a;const r=((a=window.msal)==null?void 0:a.clientIds)||[],o=r.length,i=r.filter(s=>s===t).length;i>1&&n.warning("There is already an instance of MSAL.js in the window with the same client id."),e.add({msalInstanceCount:o,sameClientIdInstanceCount:i})}/*! @azure/msal-browser v4.28.1 2026-01-17 */function ro(t,e,n){try{ac(t)}catch(r){throw e.end({success:!1},r,n),r}}class Ii{constructor(e){this.operatingContext=e,this.isBrowserEnvironment=this.operatingContext.
4180isBrowserEnvironment(),this.config=e.getConfig(),this.initialized=!1,this.logger=this.operatingContext.getLogger(),this.networkClient=this.config.system.networkClient,this.navigationClient=this.config.system.navigationClient,this.redirectResponse=new Map,this.hybridAuthCodeResponses=new Map,this.performanceClient=this.config.telemetry.client,this.browserCrypto=this.isBrowserEnvironment?new At(this.logger,this.performanceClient):ko,this.eventHandler=new aN(this.logger),this.browserStorage=this.isBrowserEnvironment?new Na(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger,this.performanceClient,this.eventHandler,FD(this.config.auth)):QO(this.config.auth.clientId,this.logger,this.performanceClient,this.eventHandler);const n={cacheLocation:Ae.MemoryStorage,cacheRetentionDays:5,temporaryCacheLocation:Ae.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new Na(this.config.auth.clientId,n,this.browserCrypto,this.logger,this.performanceClient,this.eventHandler),this.tokenCache=new LN(this.config,this.browserStorage,this.logger,this.browserCrypto,this.performanceClient),this.activeSilentTokenRequests=new Map,this.trackPageVisibility=this.trackPageVisibility.bind(this),this.trackPageVisibilityWithMeasurement=this.trackPageVisibilityWithMeasurement.bind(this)}static async createController(e,n){const r=new Ii(e);return await r.initialize(n),r}trackPageVisibility(e){e&&(this.logger.info("Perf: Visibility change detected"),this.performanceClient.incrementFields({visibilityChangeCount:1},e))}async initialize(e,n){if(this.logger.trace("initialize called"),this.initialized){this.logger.info("initialize has already been called, exiting early.");return}if(!this.isBrowserEnvironment){this.logger.info("in non-browser environment, exiting early."),this.initialized=!0,this.eventHandler.emitEvent(O.INITIALIZE_END);return}const r=(e==null?void 0:e.correlationId)||this.getRequestCorrelationId(),o=this.config.system.allowPlatformBroker,i=this.performanceClient.startMeasurement(f.InitializeClientApplication,r);if(this.eventHandler.emitEvent(O.INITIALIZE_START),!n)try{this.logMultipleInstances(i)}catch{}if(await _(this.browserStorage.initialize.bind(this.browserStorage),f.InitializeCache,this.logger,this.performanceClient,r)(r),o)try{this.platformAuthProvider=await CN(this.logger,this.performanceClient,r,this.config.system.nativeBrokerHandshakeTimeout,this.config.system.allowPlatformBrokerWithDOM)}catch(a){this.logger.verbose(a)}this.config.cache.claimsBasedCachingEnabled||(this.logger.verbose("Claims-based caching is disabled. Clearing the previous cache with claims"),We(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),f.ClearTokensAndKeysWithClaims,this.logger,this.performanceClient,r)(r)),this.config.system.asyncPopups&&await this.preGeneratePkceCodes(r),this.initialized=!0,this.eventHandler.emitEvent(O.INITIALIZE_END),i.end({allowPlatformBroker:o,success:!0})}async handleRedirectPromise(e){if(this.logger.verbose("handleRedirectPromise called"),Fm(this.initialized),this.isBrowserEnvironment){const n=e||"";let r=this.redirectResponse.get(n);return typeof r>"u"?(r=this.handleRedirectPromiseInternal(e),this.redirectResponse.set(n,r),this.logger.verbose("handleRedirectPromise has been called for the first time, storing the promise")):this.logger.verbose("handleRedirectPromise has been called previously, returning the result from the first call"),r}return this.logger.verbose("handleRedirectPromise returns null, not browser environment"),null}async handleRedirectPromiseInternal(e){var c;if(!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;if(((c=this.browserStorage.getInteractionInProgress())==null?void 0:c.type)===jt.SIGNOUT)return this.logger.verbose("handleRedirectPromise removing interaction_in_progress flag and returning null after sign-out"),this.browserStorage.setInteractionInProgress(!1),Promise.resolve(null);const r=this.getAllAccounts(),o=this.browserStorage.getCachedNativeRequest(),i=o&&this.platformAuthProvider&&!e;let a;this.eventHandler.emitEvent(O.HANDLE_REDIRECT_START,N.Redirect);let s;try{if(i&&this.platformAuthProvider){a=this.performanceClient.startMeasurement(f.AcquireTokenRedirect,(o==null?void 0:o.correlationId)||""),this.logger.trace("handleRedirectPromise - acquiring token from native platform"),a.add({isPlatformBrokerRequest:!0});const l=new fo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,z.handleRedirectPromise,this.performanceClient,this.platformAuthProvider,o.accountId,this.nativeInternalStorage,o.correlationId);s=_(l.handleRedirectPromise.bind(l),f.HandleNativeRedirectPromiseMeasurement,this.logger,this.performanceClient,a.event.correlationId)(this.performanceClient,a.event.correlationId)}else{const[l,u]=this.browserStorage.getCachedRequest(),p=l.correlationId;a=this.performanceClient.startMeasurement(f.AcquireTokenRedirect,p),this.logger.trace("handleRedirectPromise - acquiring token from web flow");const h=this.createRedirectClient(p);s=_(h.handleRedirectPromise.bind(h),f.HandleRedirectPromiseMeasurement,this.logger,this.performanceClient,a.event.correlationId)(e,l,u,a)}}catch(l){throw this.browserStorage.resetRequestCache(),l}return s.then(l=>(l?(this.browserStorage.resetRequestCache(),r.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(O.LOGIN_SUCCESS,N.Redirect,l),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_SUCCESS,N.Redirect,l),this.logger.verbose("handleRedirectResponse returned result, acquire token success")),a.end({success:!0},void 0,l.account)):a.event.errorCode?a.end({success:!1},void 0):a.discard(),this.eventHandler.emitEvent(O.HANDLE_REDIRECT_END,N.Redirect),l)).catch(l=>{this.browserStorage.resetRequestCache();const u=l;throw r.length>0?this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_FAILURE,N.Redirect,null,u):this.eventHandler.emitEvent(O.LOGIN_FAILURE,N.Redirect,null,u),this.eventHandler.emitEvent(O.HANDLE_REDIRECT_END,N.Redirect),a.end({success:!1},u),l})}async acquireTokenRedirect(e){const n=this.getRequestCorrelationId(e);this.logger.verbose("acquireTokenRedirect called",n);const r=this.performanceClient.startMeasurement(f.AcquireTokenPreRedirect,n);r.add({scenarioId:e.scenarioId});const o=e.onRedirectNavigate;if(o)e.onRedirectNavigate=a=>{const s=typeof o=="function"?o(a):void 0;return r.add({navigateCallbackResult:s!==!1}),r.event=r.end({success:!0},void 0,e.account)||r.event,s};else{const a=this.config.auth.onRedirectNavigate;this.config.auth.onRedirectNavigate=s=>{const c=typeof a=="function"?a(s):void 0;return r.add({navigateCallbackResult:c!==!1}),r.event=r.end({success:!0},void 0,e.account)||r.event,c}}const i=this.getAllAccounts().length>0;try{Ml(this.initialized,this.config),this.browserStorage.setInteractionInProgress(!0,jt.SIGNIN),i?this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_START,N.Redirect,e):this.eventHandler.emitEvent(O.LOGIN_START,N.Redirect,e);let a;return this.platformAuthProvider&&this.canUsePlatformBroker(e)?a=new fo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,z.acquireTokenRedirect,this.performanceClient,this.platformAuthProvider,this.getNativeAccountId(e),this.nativeInternalStorage,n).acquireTokenRedirect(e,r).catch(c=>{if(r.add({brokerErrorName:c.name,brokerErrorCode:c.errorCode}),c instanceof gt&&In(c))return this.platformAuthProvider=void 0,this.createRedirectClient(n).acquireToken(e);if(c instanceof pt)return this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow"),this.createRedirectClient(n).acquireToken(e);throw c}):a=this.createRedirectClient(n).acquireToken(e),await a}catch(a){throw this.browserStorage.resetRequestCache(),r.event.status===2?this.performanceClient.startMeasurement(f.AcquireTokenRedirect,n).end({success:!1},a,e.account):r.end({success:!1},a,e.account),i?this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_FAILURE,N.Redirect,null,a):this.eventHandler.emitEvent(O.LOGIN_FAILURE,N.Redirect,null,a),a}}acquireTokenPopup(e){const n=this.getRequestCorrelationId(e),r=this.performanceClient.startMeasurement(f.AcquireTokenPopup,n);r.add({scenarioId:e.scenarioId});try{this.logger.verbose("acquireTokenPopup called",n),ro(this.initialized,r,e.account),this.browserStorage.setInteractionInProgress(!0,jt.SIGNIN)}catch(s){return Promise.reject(s)}const o=this.getAllAccounts();o.length>0?this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_START,N.Popup,e):this.eventHandler.emitEvent(O.LOGIN_START,N.Popup,e);let i;const a=this.getPreGeneratedPkceCodes(n);return this.canUsePlatformBroker(e)?(r.add({isPlatformBrokerRequest:!0}),i=this.acquireTokenNative({...e,correlationId:n},z.acquireTokenPopup).then(s=>(r.end({success:!0},void 0,s.account),s)).catch(s=>{if(r.add({brokerErrorName:s.name,brokerErrorCode:s.errorCode}),s instanceof gt&&In(s))return this.platformAuthProvider=void 0,this.createPopupClient(n).acquireToken(e,a);if(s instanceof pt)return this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow"),this.createPopupClient(n).acquireToken(e,a);throw s})):i=this.createPopupClient(n).acquireToken(e,a),i.then(s=>(o.length<this.getAllAccounts().length?this.eventHandler.emitEvent(O.LOGIN_SUCCESS,N.Popup,s):this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_SUCCESS,N.Popup,s),r.end({success:!0,accessTokenSize:s.accessToken.length,idTokenSize:s.idToken.length},void 0,s.account),s)).catch(s=>(o.length>0?this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_FAILURE,N.Popup,null,s):this.eventHandler.emitEvent(O.LOGIN_FAILURE,N.Popup,null,s),r.end({success:!1},s,e.account),Promise.reject(s))).finally(async()=>{this.browserStorage.setInteractionInProgress(!1),this.config.system.asyncPopups&&await this.preGeneratePkceCodes(n)})}trackPageVisibilityWithMeasurement(){const e=this.ssoSilentMeasurement||this.acquireTokenByCodeAsyncMeasurement;e&&(this.logger.info("Perf: Visibility change detected in ",e.event.name),e.increment({visibilityChangeCount:1}))}async ssoSilent(e){var i,a,s;const n=this.getRequestCorrelationId(e),r={...e,prompt:e.prompt,correlationId:n};this.ssoSilentMeasurement=this.performanceClient.startMeasurement(f.SsoSilent,n),(i=this.ssoSilentMeasurement)==null||i.add({scenarioId:e.scenarioId}),ro(this.initialized,this.ssoSilentMeasurement,e.account),(a=this.ssoSilentMeasurement)==null||a.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",n),this.eventHandler.emitEvent(O.SSO_SILENT_START,N.Silent,r);let o;return this.canUsePlatformBroker(r)?((s=this.ssoSilentMeasurement)==null||s.add({isPlatformBrokerRequest:!0}),o=this.acquireTokenNative(r,z.ssoSilent).catch(c=>{var l;if((l=this.ssoSilentMeasurement)==null||l.add({brokerErrorName:c.name,brokerErrorCode:c.errorCode}),c instanceof gt&&In(c))return this.platformAuthProvider=void 0,this.createSilentIframeClient(r.correlationId).acquireToken(r);throw c})):o=this.createSilentIframeClient(r.correlationId).acquireToken(r),o.then(c=>{var l;return this.eventHandler.emitEvent(O.SSO_SILENT_SUCCESS,N.Silent,c),(l=this.ssoSilentMeasurement)==null||l.end({success:!0,accessTokenSize:c.accessToken.length,idTokenSize:c.idToken.length},void 0,c.account),c}).catch(c=>{var l;throw this.eventHandler.emitEvent(O.SSO_SILENT_FAILURE,N.Silent,null,c),(l=this.ssoSilentMeasurement)==null||l.end({success:!1},c,e.account),c}).finally(()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)})}async acquireTokenByCode(e){const n=this.getRequestCorrelationId(e);this.logger.trace("acquireTokenByCode called",n);const r=this.performanceClient.startMeasurement(f.AcquireTokenByCode,n);ro(this.initialized,r),this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_BY_CODE_START,N.Silent,e),r.add({scenarioId:e.scenarioId});try{if(e.code&&e.nativeAccountId)throw P(Im);if(e.code){const o=e.code;let i=this.hybridAuthCodeResponses.get(o);return i?(this.logger.verbose("Existing acquireTokenByCode request found",n),r.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",n),i=this.acquireTokenByCodeAsync({...e,correlationId:n}).then(a=>(this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_BY_CODE_SUCCESS,N.Silent,a),this.hybridAuthCodeResponses.delete(o),r.end({success:!0,accessTokenSize:a.accessToken.length,idTokenSize:a.idToken.length},void 0,a.account),a)).catch(a=>{throw this.hybridAuthCodeResponses.delete(o),this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_BY_CODE_FAILURE,N.Silent,null,a),r.end({success:!1},a),a}),this.hybridAuthCodeResponses.set(o,i)),await i}else if(e.nativeAccountId)if(this.canUsePlatformBroker(e,e.nativeAccountId)){r.add({isPlatformBrokerRequest:!0});const o=await this.acquireTokenNative({...e,correlationId:n},z.acquireTokenByCode,e.nativeAccountId).catch(i=>{throw i instanceof gt&&In(i)&&(this.platformAuthProvider=void 0),r.add({brokerErrorName:i.name,brokerErrorCode:i.errorCode}),i});return r.end({success:!0},void 0,o.account),o}else throw P(_m);else throw P(Sm)}catch(o){throw this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_BY_CODE_FAILURE,N.Silent,null,o),r.end({success:!1},o),o}}async acquireTokenByCodeAsync(e){var o;return this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement(f.AcquireTokenByCodeAsync,e.correlationId),(o=this.acquireTokenByCodeAsyncMeasurement)==null||o.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),await this.createSilentAuthCodeClient(e.correlationId).acquireToken(e).then(i=>{var a;return(a=this.acquireTokenByCodeAsyncMeasurement)==null||a.end({success:!0,fromCache:i.fromCache}),i}).catch(i=>{var a;throw(a=this.acquireTokenByCodeAsyncMeasurement)==null||a.end({success:!1},i),i}).finally(()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)})}async acquireTokenFromCache(e,n){switch(this.performanceClient.addQueueMeasurement(f.AcquireTokenFromCache,e.correlationId),n){case Me.Default:case Me.AccessToken:case Me.AccessTokenAndRefreshToken:const r=this.createSilentCacheClient(e.correlationId);return _(r.acquireToken.bind(r),f.SilentCacheClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw k(xt)}}async acquireTokenByRefreshToken(e,n){switch(this.performanceClient.addQueueMeasurement(f.AcquireTokenByRefreshToken,e.correlationId),n){case Me.Default:case Me.AccessTokenAndRefreshToken:case Me.RefreshToken:case Me.RefreshTokenAndNetwork:const r=this.createSilentRefreshClient(e.correlationId);return _(r.acquireToken.bind(r),f.SilentRefreshClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw k(xt)}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(f.AcquireTokenBySilentIframe,e.correlationId);const n=this.createSilentIframeClient(e.correlationId);return _(n.acquireToken.bind(n),f.SilentIframeClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e)}async logout(e){const n=this.getRequestCorrelationId(e);return this.logger.warning("logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.",n),this.logoutRedirect({correlationId:n,...e})}async logoutRedirect(e){const n=this.getRequestCorrelationId(e);return Ml(this.initialized,this.config),this.browserStorage.setInteractionInProgress(!0,jt.SIGNOUT),this.createRedirectClient(n).logout(e)}logoutPopup(e){try{const n=this.getRequestCorrelationId(e);return ac(this.initialized),this.browserStorage.setInteractionInProgress(!0,jt.SIGNOUT),this.createPopupClient(n).logout(e).finally(()=>{this.browserStorage.setInteractionInProgress(!1)})}catch(n){return Promise.reject(n)}}async clearCache(e){if(!this.isBrowserEnvironment){this.logger.info("in non-browser environment, returning early.");return}const n=this.getRequestCorrelationId(e);return this.createSilentCacheClient(n).logout(e)}g
4180etAllAccounts(e){const n=this.getRequestCorrelationId();return XO(this.logger,this.browserStorage,this.isBrowserEnvironment,n,e)}getAccount(e){const n=this.getRequestCorrelationId();return ZO(e,this.logger,this.browserStorage,n)}getAccountByUsername(e){const n=this.getRequestCorrelationId();return eN(e,this.logger,this.browserStorage,n)}getAccountByHomeId(e){const n=this.getRequestCorrelationId();return tN(e,this.logger,this.browserStorage,n)}getAccountByLocalId(e){const n=this.getRequestCorrelationId();return nN(e,this.logger,this.browserStorage,n)}setActiveAccount(e){const n=this.getRequestCorrelationId();rN(e,this.browserStorage,n)}getActiveAccount(){const e=this.getRequestCorrelationId();return oN(this.browserStorage,e)}async hydrateCache(e,n){this.logger.verbose("hydrateCache called");const r=pe.createFromAccountInfo(e.account,e.cloudGraphHostName,e.msGraphHost);return await this.browserStorage.setAccount(r,e.correlationId,vt(e.idTokenClaims),z.hydrateCache),e.fromNativeBroker?(this.logger.verbose("Response was from native broker, storing in-memory"),this.nativeInternalStorage.hydrateCache(e,n)):this.browserStorage.hydrateCache(e,n)}async acquireTokenNative(e,n,r,o){if(this.logger.trace("acquireTokenNative called"),!this.platformAuthProvider)throw P(Qs);return new fo(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,n,this.performanceClient,this.platformAuthProvider,r||this.getNativeAccountId(e),this.nativeInternalStorage,e.correlationId).acquireToken(e,o)}canUsePlatformBroker(e,n){if(this.logger.trace("canUsePlatformBroker called"),!this.platformAuthProvider)return this.logger.trace("canUsePlatformBroker: platform broker unavilable, returning false"),!1;if(!Nr(this.config,this.logger,this.platformAuthProvider,e.authenticationScheme))return this.logger.trace("canUsePlatformBroker: isBrokerAvailable returned false, returning false"),!1;if(e.prompt)switch(e.prompt){case ke.NONE:case ke.CONSENT:case ke.LOGIN:case ke.SELECT_ACCOUNT:this.logger.trace("canUsePlatformBroker: prompt is compatible with platform broker flow");break;default:return this.logger.trace(`canUsePlatformBroker: prompt = ${e.prompt} is not compatible with platform broker flow, returning false`),!1}return!n&&!this.getNativeAccountId(e)?(this.logger.trace("canUsePlatformBroker: nativeAccountId is not available, returning false"),!1):!0}getNativeAccountId(e){const n=e.account||this.getAccount({loginHint:e.loginHint,sid:e.sid})||this.getActiveAccount();return n&&n.nativeAccountId||""}createPopupClient(e){return new TN(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.platformAuthProvider,e)}createRedirectClient(e){return new kN(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.platformAuthProvider,e)}createSilentIframeClient(e){return new NN(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,z.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.platformAuthProvider,e)}createSilentCacheClient(e){return new Ym(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.platformAuthProvider,e)}createSilentRefreshClient(e){return new MN(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.platformAuthProvider,e)}createSilentAuthCodeClient(e){return new UN(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,z.acquireTokenByCode,this.performanceClient,this.platformAuthProvider,e)}addEventCallback(e,n){return this.eventHandler.addEventCallback(e,n)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return xm(),this.performanceClient.addPerformanceCallback(e)}removePerformanceCallback(e){return this.performanceClient.removePerformanceCallback(e)}
4180enableAccountStorageEvents(){if(this.config.cache.cacheLocation!==Ae.LocalStorage){this.logger.info("Account storage events are only available when cacheLocation is set to localStorage");return}this.eventHandler.subscribeCrossTab()}disableAccountStorageEvents(){if(this.config.cache.cacheLocation!==Ae.LocalStorage){this.logger.info("Account storage events are only available when cacheLocation is set to localStorage");return}this.eventHandler.unsubscribeCrossTab()}getTokenCache(){return this.tokenCache}getLogger(){return this.logger}setLogger(e){this.logger=e}initializeWrapperLibrary(e,n){this.browserStorage.setWrapperMetadata(e,n)}setNavigationClient(e){this.navigationClient=e}getConfiguration(){return this.config}getPerformanceClient(){return this.performanceClient}isBrowserEnv(){return this.isBrowserEnvironment}getRequestCorrelationId(e){return e!=null&&e.correlationId?e.correlationId:this.isBrowserEnvironment?yt():C.EMPTY_STRING}async loginRedirect(e){const n=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",n),this.acquireTokenRedirect({correlationId:n,...e||Rl})}loginPopup(e){const n=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",n),this.acquireTokenPopup({correlationId:n,...e||Rl})}async acquireTokenSilent(e){const n=this.getRequestCorrelationId(e),r=this.performanceClient.startMeasurement(f.AcquireTokenSilent,n);r.add({cacheLookupPolicy:e.cacheLookupPolicy,scenarioId:e.scenarioId}),ro(this.initialized,r,e.account),this.logger.verbose("acquireTokenSilent called",n);const o=e.account||this.getActiveAccount();if(!o)throw P(mm);return this.acquireTokenSilentDeduped(e,o,n).then(i=>(r.end({success:!0,fromCache:i.fromCache,accessTokenSize:i.accessToken.length,idTokenSize:i.idToken.length},void 0,i.account),{...i,state:e.state,correlationId:n})).catch(i=>{throw i instanceof te&&i.setCorrelationId(n),r.end({success:!1},i,o),i})}async acquireTokenSilentDeduped(e,n,r){const o=pi(this.config.auth.clientId,{...e,authority:e.authority||this.config.auth.authority},n.homeAccountId),i=JSON.stringify(o),a=this.activeSilentTokenRequests.get(i);if(typeof a>"u"){this.logger.verbose("acquireTokenSilent called for the first time, storing active request",r),this.performanceClient.addFields({deduped:!1},r);const s=_(this.acquireTokenSilentAsync.bind(this),f.AcquireTokenSilentAsync,this.logger,this.performanceClient,r)({...e,correlationId:r},n);return this.activeSilentTokenRequests.set(i,s),s.finally(()=>{this.activeSilentTokenRequests.delete(i)})}else return this.logger.verbose("acquireTokenSilent has been called previously, returning the result from the first call",r),this.performanceClient.addFields({deduped:!0},r),a}async acquireTokenSilentAsync(e,n){const r=()=>this.trackPageVisibility(e.correlationId);this.performanceClient.addQueueMeasurement(f.AcquireTokenSilentAsync,e.correlationId),this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_START,N.Silent,e),e.correlationId&&this.performanceClient.incrementFields({visibilityChangeCount:0},e.correlationId),document.addEventListener("visibilitychange",r);const o=await _(sN,f.InitializeSilentRequest,this.logger,this.performanceClient,e.correlationId)(e,n,this.config,this.performanceClient,this.logger),i=e.cacheLookupPolicy||Me.Default;return this.acquireTokenSilentNoIframe(o,i).catch(async s=>{if(xN(s,i))if(this.activeIframeRequest)if(i!==Me.Skip){const[l,u]=this.activeIframeRequest;this.logger.verbose(`Iframe request is already in progress, awaiting resolution for request with correlationId: ${u}`,o.correlationId);const p=this.performanceClient.startMeasurement(f.AwaitConcurrentIframe,o.correlationId);p.add({awaitIframeCorrelationId:u});const h=await l;if(p.end({success:h}),h)return this.logger.verbose(`Parallel iframe request with correlationId: ${u} succeeded. Retrying cache and/or RT redemption`,o.correlationId),this.acquireTokenSilentNoIframe(o,i);throw this.logger.info(`Iframe request with correlationId: ${u} failed. Interaction is required.`),s}else return this.logger.warning("Another iframe request is currently in progress and CacheLookupPolicy is set to Skip. This may result in degraded performance and/or reliability for both calls. Please consider changing the CacheLookupPolicy to take advantage of request queuing and token cache.",o.correlationId),_(this.acquireTokenBySilentIframe.bind(this),f.AcquireTokenBySilentIframe,this.logger,this.performanceClient,o.correlationId)(o);else{let l;return this.activeIframeRequest=[new Promise(u=>{l=u}),o.correlationId],this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",o.correlationId),_(this.acquireTokenBySilentIframe.bind(this),f.AcquireTokenBySilentIframe,this.logger,this.performanceClient,o.correlationId)(o).then(u=>(l(!0),u)).catch(u=>{throw l(!1),u}).finally(()=>{this.activeIframeRequest=void 0})}else throw s}).then(s=>(this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_SUCCESS,N.Silent,s),this.performanceClient.addFields({fromCache:s.fromCache},e.correlationId),s)).catch(s=>{throw this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_FAILURE,N.Silent,null,s),s}).finally(()=>{document.removeEventListener("visibilitychange",r)})}async acquireTokenSilentNoIframe(e,n){return Nr(this.config,this.logger,this.platformAuthProvider,e.authenticationScheme)&&e.account.nativeAccountId?(this.logger.verbose("acquireTokenSilent - attempting to acquire token from native platform"),this.performanceClient.addFields({isPlatformBrokerRequest:!0},e.correlationId),this.acquireTokenNative(e,z.acquireTokenSilent_silentFlow,e.account.nativeAccountId,n).catch(async r=>{throw this.performanceClient.addFields({brokerErrorName:r.name,brokerErrorCode:r.errorCode},e.correlationId),r instanceof gt&&In(r)?(this.logger.verbose("acquireTokenSilent - native platform unavailable, falling back to web flow"),this.platformAuthProvider=void 0,k(xt)):r})):(this.logger.verbose("acquireTokenSilent - attempting to acquire token from web flow"),n===Me.AccessToken&&this.logger.verbose("acquireTokenSilent - cache lookup policy set to AccessToken, attempting to acquire token from local cache"),_(this.acquireTokenFromCache.bind(this),f.AcquireTokenFromCache,this.logger,this.performanceClient,e.correlationId)(e,n).catch(r=>{if(n===Me.AccessToken)throw r;return this.eventHandler.emitEvent(O.ACQUIRE_TOKEN_NETWORK_START,N.Silent,e),_(this.acquireTokenByRefreshToken.bind(this),f.AcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,n)}))}async preGeneratePkceCodes(e){return this.logger.verbose("Generating new PKCE codes"),this.pkceCode=await _(rn,f.GeneratePkceCodes,this.logger,this.performanceClient,e)(this.performanceClient,this.logger,e),Promise.resolve()}getPreGeneratedPkceCodes(e){this.logger.verbose("Attempting to pick up pre-generated PKCE codes");const n=this.pkceCode?{...this.pkceCode}:void 0;return this.pkceCode=void 0,this.logger.verbose(`${n?"Found":"Did not find"} pre-generated PKCE codes`),this.performanceClient.addFields({usePreGeneratedPkce:!!n},e),n}logMultipleInstances(e){const n=this.config.auth.clientId;if(!window)return;window.msal=window.msal||{},window.msal.clientIds=window.msal.clientIds||[],window.msal.clientIds.length>0&&this.logger.verbose("There is already an instance of MSAL.js in the window."),window.msal.clientIds.push(n),$N(n,e,this.logger)}}
4180function xN(t,e){const n=!(t instanceof pt&&t.subError!==hi),r=t.errorCode===ze.INVALID_GRANT_ERROR||t.errorCode===xt,o=n&&r||t.errorCode===Lo||t.errorCode===Fs,i=fO.includes(e);return o&&i}/*! @azure/msal-browser v4.28.1 2026-01-17 */async function FN(t,e){const n=new nn(t);return await n.initialize(),Ii.createController(n,e)}/*! @azure/msal-browser v4.28.1 2026-01-17 */class gc{static async createPublicClientApplication(e){const n=await FN(e);return new gc(e,n)}constructor(e,n){this.isBroker=!1,this.controller=n||new Ii(new nn(e))}async initialize(e){return this.controller.initialize(e,this.isBroker)}async acquireTokenPopup(e){return this.controller.acquireTokenPopup(e)}acquireTokenRedirect(e){return this.controller.acquireTokenRedirect(e)}acquireTokenSilent(e){return this.controller.acquireTokenSilent(e)}acquireTokenByCode(e){return this.controller.acquireTokenByCode(e)}addEventCallback(e,n){return this.controller.addEventCallback(e,n)}removeEventCallback(e){return this.controller.removeEventCallback(e)}addPerformanceCallback(e){return this.controller.addPerformanceCallback(e)}removePerformanceCallback(e){return this.controller.removePerformanceCallback(e)}enableAccountStorageEvents(){this.controller.enableAccountStorageEvents()}disableAccountStorageEvents(){this.controller.disableAccountStorageEvents()}getAccount(e){return this.controller.getAccount(e)}getAccountByHomeId(e){return this.controller.getAccountByHomeId(e)}getAccountByLocalId(e){return this.controller.getAccountByLocalId(e)}getAccountByUsername(e){return this.controller.getAccountByUsername(e)}getAllAccounts(e){return this.controller.getAllAccounts(e)}handleRedirectPromise(e){return this.controller.handleRedirectPromise(e)}loginPopup(e){return this.controller.loginPopup(e)}loginRedirect(e){return this.controller.loginRedirect(e)}logout(e){return this.controller.logout(e)}logoutRedirect(e){return this.controller.logoutRedirect(e)}logoutPopup(e){return this.controller.logoutPopup(e)}ssoSilent(e){return this.controller.ssoSilent(e)}getTokenCache(){return this.controller.getTokenCache()}getLogger(){return this.controller.getLogger()}setLogger(e){this.controller.setLogger(e)}setActiveAccount(e){this.controller.setActiveAccount(e)}getActiveAccount(){return this.controller.getActiveAccount()}initializeWrapperLibrary(e,n){return this.controller.initializeWrapperLibrary(e,n)}setNavigationClient(e){this.controller.setNavigationClient(e)}getConfiguration(){return this.controller.getConfiguration()}async hydrateCache(e,n){return this.controller.hydrateCache(e,n)}clearCache(e){return this.controller.clearCache(e)}}/*! @azure/msal-browser v4.28.1 2026-01-17 */const HN={initialize:()=>Promise.reject(ge(ye)),acquireTokenPopup:()=>Promise.reject(ge(ye)),acquireTokenRedirect:()=>Promise.reject(ge(ye)),acquireTokenSilent:()=>Promise.reject(ge(ye)),acquireTokenByCode:()=>Promise.reject(ge(ye)),getAllAccounts:()=>[],getAccount:()=>null,getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(ge(ye)),loginPopup:()=>Promise.reject(ge(ye)),loginRedirect:()=>Promise.reject(ge(ye)),logout:()=>Promise.reject(ge(ye)),logoutRedirect:()=>Promise.reject(ge(ye)),logoutPopup:()=>Promise.reject(ge(ye)),ssoSilent:()=>Promise.reject(ge(ye)),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw ge(ye)},getLogger:()=>{throw ge(ye)},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw ge(ye)},hydrateCache:()=>Promise.reject(ge(ye)),clearCache:()=>Promise.reject(ge(ye))};/*! @azure/msal-browser v4.28.1 2026-01-17 */class zN{static getInteractionStatusFromEvent(e,n){switch(e.eventType){case O.LOGIN_START:return be.Login;case O.SSO_SILENT_START:return be.SsoSilent;case O.ACQUIRE_TOKEN_START:if(e.interactionType===N.Redirect||e.interactionType===N.Popup)return be.AcquireToken;break;case O.HANDLE_REDIRECT_START:return be.HandleRedirect;case O.LOGOUT_START:return be.Logout;case O.SSO_SILENT_SUCCESS:case O.SSO_SILENT_FAILURE:if(n&&n!==be.SsoSilent)break;return be.None;case O.LOGOUT_END:if(n&&n!==be.Logout)break;return be.None;case O.HANDLE_REDIRECT_END:if(n&&n!==be.HandleRedirect)break;return be.None;case O.LOGIN_SUCCESS:case O.LOGIN_FAILURE:case O.ACQUIRE_TOKEN_SUCCESS:case O.ACQUIRE_TOKEN_FAILURE:case O.RESTORE_FROM_BFCACHE:if(e.interactionType===N.Redirect||e.
4180interactionType===N.Popup){if(n&&n!==be.Login&&n!==be.AcquireToken)break;return be.None}break}return null}}/*! @azure/msal-react v3.0.25 2026-01-17 */const qN={instance:HN,inProgress:be.None,accounts:[],logger:new kt({})},fc=A.createContext(qN);fc.Consumer;/*! @azure/msal-react v3.0.25 2026-01-17 */function Bl(t,e){if(t.length!==e.length)return!1;const n=[...e];return t.every(r=>{const o=n.shift();return!r||!o?!1:r.homeAccountId===o.homeAccountId&&r.localAccountId===o.localAccountId&&r.username===o.username})}/*! @azure/msal-react v3.0.25 2026-01-17 */const VN="@azure/msal-react",Gl="3.0.25";/*! @azure/msal-react v3.0.25 2026-01-17 */const zo={UNBLOCK_INPROGRESS:"UNBLOCK_INPROGRESS",EVENT:"EVENT"},BN=(t,e)=>{const{type:n,payload:r}=e;let o=t.inProgress;switch(n){case zo.UNBLOCK_INPROGRESS:t.inProgress===be.Startup&&(o=be.None,r.logger.info("MsalProvider - handleRedirectPromise resolved, setting inProgress to 'none'"));break;case zo.EVENT:const a=r.message,s=zN.getInteractionStatusFromEvent(a,t.inProgress);s&&(r.logger.info(`MsalProvider - ${a.eventType} results in setting inProgress from ${t.inProgress} to ${s}`),o=s);break;default:throw new Error(`Unknown action type: ${n}`)}if(o===be.Startup)return t;const i=r.instance.getAllAccounts();return o!==t.inProgress&&!Bl(i,t.accounts)?{...t,inProgress:o,accounts:i}:o!==t.inProgress?{...t,inProgress:o}:Bl(i,t.accounts)?t:{...t,accounts:i}};function GN({instance:t,children:e}){A.useEffect(()=>{t.initializeWrapperLibrary(mO.React,Gl)},[t]);const n=A.useMemo(()=>t.getLogger().clone(VN,Gl),[t]),[r,o]=A.useReducer(BN,void 0,()=>({inProgress:be.Startup,accounts:[]}));A.useEffect(()=>{const a=t.addEventCallback(s=>{o({payload:{instance:t,logger:n,message:s},type:zo.EVENT})});return n.verbose(`MsalProvider - Registered event callback with id: ${a}`),t.initialize().then(()=>{t.handleRedirectPromise().catch(()=>{}).finally(()=>{o({payload:{instance:t,logger:n},type:zo.UNBLOCK_INPROGRESS})})}).catch(()=>{}),()=>{a&&(n.verbose(`MsalProvider - Removing event callback ${a}`),t.removeEventCallback(a))}},[t,n]);const i={instance:t,inProgress:r.inProgress,accounts:r.accounts,logger:n};return E.createElement(fc.Provider,{value:i},e)}/*! @azure/msal-react v3.0.25 2026-01-17 */const KN=()=>A.useContext(fc),Xm="br-locale";function WN(){if(typeof window>"u")return null;const t=localStorage.getItem(Xm);return Ur.includes(t)?t:null}function YN(t){typeof window>"u"||localStorage.setItem(Xm,t)}function Gi(){const t=WN();if(t)return t;const e=navigator.language.split("-")[0];return Ur.includes(e)?e:Od}function vc(){const{lang:t}=ja(),e=Bo(),n=on(),r=Ur.includes(t)?t:$r(n.pathname);return{t:A.useMemo(()=>Nd(Dd[r],r),[r]),locale:r,changeLanguage:s=>{YN(s);const c=n.pathname.replace(/^\/(en|fr|ja)/,""),l=`/${s}${c||""}`;e(l)},localePath:s=>s.startsWith("/")?`/${r}${s}`:`/${r}/${s}`}}function Zm(t,e){t.writeQuery({query:qn,data:{identityMe:e}})}function JN(t,e,n){Zm(t,{...e,affordances:n})}function r0(t,e){const n=t.readQuery({query:qn});n!=null&&n.identityMe&&Zm(t,{...n.identityMe,...e})}function QN(t,e,n,r){t.writeQuery({query:lu,variables:{id:e,orgId:n},data:{identityUserView:{__typename:"UserView",user:r.entity,affordances:{__typename:"UserAffordances",actions:r.entity.affordances}}}})}function o0(t,e,n,r){const o=t.readQuery({query:lu,variables:{id:e,orgId:n}}),i=o==null?void 0:o.identityUserView;i&&QN(t,e,n,{entity:{...i.user,...r}})}function i0(t,e,n){t.writeQuery({query:sa,variables:e,data:{identityUserScopes:n.scopes,identityUserRoles:n.roles,identityResolveScopes:n.resolvedScopes}})}function a0(t,e,n,r,o){const i=t.readQuery({query:sa,variables:e});if(!i)return;const a=n==="scope"?i.identityUserScopes:i.identityUserRoles,s=a.includes(r);if(o===s)return;const c=o?[...a,r]:a.filter(l=>l!==r);t.writeQuery({query:sa,variables:e,data:{identityUserScopes:n==="scope"?c:i.identityUserScopes,identityUserRoles:n==="role"?c:i.identityUserRoles,identityResolveScopes:i.identityResolveScopes}})}function s0(t,e,n){const r=t.identify({__typename:"User",id:e});r&&t.modify({id:r,fields:Object.fromEntries(Object.entries(n).map(([o,i])=>[o,()=>i]))})}function c0(t,e,n){t.writeQuery({query:cu,variables:{orgId:e},data:{identityOrgMembers:n}})}function l0(t,e){t.writeQuery({query:su,variables:{guestsOnly:!0},data:{identityUsers:e}})}function eh(){const t=J(o=>o.isAuthenticated),{data:e,loading:n,error:r}
4180=Y_({skip:!t,fetchPolicy:"cache-first"});return{me:(e==null?void 0:e.identityMe)??null,loading:n,error:r}}const XN=oR("identity:me",V_,{fold:(t,e)=>{const{entity:n,affordances:r}=e.identityMeChanged;JN(t.cache,n,r)},snapshot:t=>t.query({query:qn,fetchPolicy:"network-only"})});function ZN(){const t=J(e=>e.isAuthenticated);pR(XN,{skip:!t})}function eM(){return"650769089372-vdvi6eutv4cmm2rucrtnpllnoqhm9kls.apps.googleusercontent.com"||""}function tM(){return"d33460ff-3ae1-41e6-9ab7-36a8c7759067"}function nM(){return{auth:{clientId:tM(),authority:"https://login.microsoftonline.com/common",redirectUri:`${window.location.origin}/auth-redirect.html`,postLogoutRedirectUri:window.location.origin},cache:{cacheLocation:"sessionStorage",storeAuthStateInCookie:!1},system:{loggerOptions:{logLevel:re.Error,loggerCallback:(e,n)=>{e===re.Error&&console.error("[MSAL]",n)}}}}}const rM={scopes:["openid","email","profile","User.Read"]};function oM(){const{pathname:t,search:e,hash:n}=on(),r=A.useRef(`${t}${e}${n}`);return A.useEffect(()=>{r.current=`${t}${e}${n}`},[t,e,n]),r}const qo="workspaceAccessDenied";function iM(t){return typeof t!="object"||t===null||!(qo in t)?!1:t[qo]===!0}function aM(t){if(typeof t!="object"||t===null)return null;const e={};for(const[n,r]of Object.entries(t))n!==qo&&(e[n]=r);return Object.keys(e).length>0?e:null}function th(t,e){if(t===e)return!0;if(!t.startsWith(e))return!1;const n=t.charAt(e.length);return n==="/"||n==="?"||n==="#"}function sM(){const t=Bo(),e=oM();return A.useCallback(n=>{const r=rI();if(Qo(n).can(Nn.enterWorkspace)){const o=e.current,i=`/${ZS(o)}/app`,a=th(o,i)?o:r??i;t(a,{replace:!0});return}t(e.current,{replace:!0,state:{[qo]:!0}})},[t,e])}async function cM(){try{await sn({force:!0})}catch(t){if(Fa(t))return}await vR()}const Ma=new gc(nM());let Ct=null;const lM=Ma.initialize().then(async()=>{Ct=await Ma.handleRedirectPromise().catch(()=>null)}),dM=({children:t})=>{const e=J(w=>w.isAuthenticated),n=J(w=>w.isLoading),r=J(w=>w.error),o=J(w=>w.tokenProvider),i=J(w=>w.avatarUrl);fR(),ZN();const{me:a}=eh(),s=A.useMemo(()=>a?Xo(a,o,i):null,[a,o,i]),{instance:c}=KN(),{t:l}=vc(),{pathname:u}=on();A.useEffect(()=>{if(!r)return;r==="session_expired"&&th(u,`/${$r(u)}/app`)||So.error(l("auth.error"),{description:l(`auth.errors.${r}`)}),J.getState().setError(null)},[r,l,u]),A.useEffect(()=>{if(Ct!=null&&Ct.idToken)return;J.getState().isAuthenticated&&cM()},[]);const p=Qo(s).can(Nn.enterWorkspace);A.useEffect(()=>(e&&p?JE():_o(),()=>_o()),[e,p]);const h=sM(),m=A.useCallback(async w=>{const T=J.getState();T.setLoading(!0);try{const D=await nl(w,"google");h(D)}catch(D){T.setError(D instanceof Error?D.message:"unauthorized")}},[h]);A.useEffect(()=>{if(Ct!=null&&Ct.idToken){const w=J.getState();w.setLoading(!0),nl(Ct.idToken,"entra").then(h).catch(T=>{w.setError(T instanceof Error?T.message:"unauthorized")}),Ct=null}},[h]);const I=A.useCallback(async()=>{const w=J.getState();w.setLoading(!0);try{await c.loginRedirect(rM)}catch(T){w.setError(T instanceof Error?T.message:"unauthorized")}},[c]),y=A.useCallback(()=>{J.getState().tokenProvider==="entra"&&c.clearCache(),yR()},[c]),S=A.useMemo(()=>({user:s,isAuthenticated:e,isLoading:n,error:r,loginWithEntra:I,logout:y,handleGoogleCredential:m}),[s,e,n,r,I,y,m]);return R.jsx($d.Provider,{value:S,children:t})},uM=({children:t})=>{const e=df(),[n,r]=A.useState(!1),{pathname:o}=on(),i=$r(o);return A.useEffect(()=>{lM.then(()=>r(!0)).catch(a=>{r(!0)})},[]),!n||!e?null:R.jsx(GR,{clientId:eM(),locale:i,children:R.jsx(GN,{instance:Ma,children:R.jsx(dM,{children:t})})})};var Kl=["light","dark"],pM="(prefers-color-scheme: dark)",mM=A.createContext(void 0),hM={setTheme:t=>{},themes:[]},gM=()=>{var t;return(t=A.useContext(mM))!=null?t:hM};A.memo(({forcedTheme:t,storageKey:e,attribute:n,enableSystem:r,enableColorScheme:o,defaultTheme:i,value:a,attrs:s,nonce:c})=>{let l=i==="system",u=n==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${s.map(I=>`'${I}'`).join(",")})`};`:`var d=document.documentElement,n='${n}',s='setAttribute';`,p=o?Kl.includes(i)&&i?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${i}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=(I,y=!1,S=!0)=>{let w=a?a[I]:I,T=y?I+"|| ''":`'${w}'`,D="";return o&&S&&!y&&Kl.includes(I)&&(D+=`d.style.colorScheme = '${I}';`),n==="class"?y||w?D+=`c.add(${T})`:D+="null":w&&(D+=`d[s](n,${T})`),D},m=t?`!function(){${u}${h(t)}}()`:r?`!function(){try{${u}var e=localStorage.getItem('${e}');if('system'===e||(!e&&${l})){var t='${pM}',m=window.matchMedia(t);if(m.media!==t||m.matches){${h("dark")}}else{${h("light")}}}else if(e){${a?`var x=${JSON.stringify(a)};`:""}${h(a?"x[e]":"e",!0)}}
4180${l?"":"else{"+h(i,!1,!1)+"}"}${p}}catch(e){}}()`:`!function(){try{${u}var e=localStorage.getItem('${e}');if(e){${a?`var x=${JSON.stringify(a)};`:""}${h(a?"x[e]":"e",!0)}}else{${h(i,!1,!1)};}${p}}catch(t){}}();`;return A.createElement("script",{nonce:c,dangerouslySetInnerHTML:{__html:m}})});const fM=({...t})=>{const{theme:e="system"}=gM();return R.jsx(IE,{theme:e,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...t})};function nh(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var o=t.length;for(e=0;e<o;e++)t[e]&&(n=nh(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function vM(){for(var t,e,n=0,r="",o=arguments.length;n<o;n++)(t=arguments[n])&&(e=nh(t))&&(r&&(r+=" "),r+=e);return r}const yc="-",yM=t=>{const e=SM(t),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=t;return{getClassGroupId:a=>{const s=a.split(yc);return s[0]===""&&s.length!==1&&s.shift(),rh(s,e)||bM(a)},getConflictingClassGroupIds:(a,s)=>{const c=n[a]||[];return s&&r[a]?[...c,...r[a]]:c}}},rh=(t,e)=>{var a;if(t.length===0)return e.classGroupId;const n=t[0],r=e.nextPart.get(n),o=r?rh(t.slice(1),r):void 0;if(o)return o;if(e.validators.length===0)return;const i=t.join(yc);return(a=e.validators.find(({validator:s})=>s(i)))==null?void 0:a.classGroupId},Wl=/^\[(.+)\]$/,bM=t=>{if(Wl.test(t)){const e=Wl.exec(t)[1],n=e==null?void 0:e.substring(0,e.indexOf(":"));if(n)return"arbitrary.."+n}},SM=t=>{const{theme:e,prefix:n}=t,r={nextPart:new Map,validators:[]};return _M(Object.entries(t.classGroups),n).forEach(([i,a])=>{La(a,r,i,e)}),r},La=(t,e,n,r)=>{t.forEach(o=>{if(typeof o=="string"){const i=o===""?e:Yl(e,o);i.classGroupId=n;return}if(typeof o=="function"){if(IM(o)){La(o(r),e,n,r);return}e.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([i,a])=>{La(a,Yl(e,i),n,r)})})},Yl=(t,e)=>{let n=t;return e.split(yc).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},IM=t=>t.isThemeGetter,_M=(t,e)=>e?t.map(([n,r])=>{const o=r.map(i=>typeof i=="string"?e+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([a,s])=>[e+a,s])):i);return[n,o]}):t,CM=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,n=new Map,r=new Map;const o=(i,a)=>{n.set(i,a),e++,e>t&&(e=0,r=n,n=new Map)};return{get(i){let a=n.get(i);if(a!==void 0)return a;if((a=r.get(i))!==void 0)return o(i,a),a},set(i,a){n.has(i)?n.set(i,a):o(i,a)}}},oh="!",TM=t=>{const{separator:e,experimentalParseClassName:n}=t,r=e.length===1,o=e[0],i=e.length,a=s=>{const c=[];let l=0,u=0,p;for(let S=0;S<s.length;S++){let w=s[S];if(l===0){if(w===o&&(r||s.slice(S,S+i)===e)){c.push(s.slice(u,S)),u=S+i;continue}if(w==="/"){p=S;continue}}w==="["?l++:w==="]"&&l--}const h=c.length===0?s:s.substring(u),m=h.startsWith(oh),I=m?h.substring(1):h,y=p&&p>u?p-u:void 0;return{modifiers:c,hasImportantModifier:m,baseClassName:I,maybePostfixModifierPosition:y}};return n?s=>n({className:s,parseClassName:a}):a},wM=t=>{if(t.length<=1)return t;const e=[];let n=[];return t.forEach(r=>{r[0]==="["?(e.push(...n.sort(),r),n=[]):n.push(r)}),e.push(...n.sort()),e},kM=t=>({cache:CM(t.cacheSize),parseClassName:TM(t),...yM(t)}),AM=/\s+/,EM=(t,e)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=e,i=[],a=t.trim().split(AM);let s="";for(let c=a.length-1;c>=0;c-=1){const l=a[c],{modifiers:u,hasImportantModifier:p,baseClassName:h,maybePostfixModifierPosition:m}=n(l);let I=!!m,y=r(I?h.substring(0,m):h);if(!y){if(!I){s=l+(s.length>0?" "+s:s);continue}if(y=r(h),!y){s=l+(s.length>0?" "+s:s);continue}I=!1}const S=wM(u).join(":"),w=p?S+oh:S,T=w+y;if(i.includes(T))continue;i.push(T);const D=o(y,I);for(let K=0;K<D.length;++K){const W=D[K];i.push(w+W)}s=l+(s.length>0?" "+s:s)}return s};function RM(){let t=0,e,n,r="";for(;t<arguments.length;)(e=arguments[t++])&&(n=ih(e))&&(r&&(r+=" "),r+=n);return r}const ih=t=>{if(typeof t=="string")return t;let e,n="";for(let r=0;r<t.length;r++)t[r]&&(e=ih(t[r]))&&(n&&(n+=" "),n+=e);return n};function PM(t,...e){let n,r,o,i=a;function a(c){const l=e.reduce((u,p)=>p(u),t());return n=kM(l),r=n.cache.get,o=n.cache.set,i=s,s(c)}function s(c){const l=r(c);if(l)return l;const u=EM(c,n);return o(c,u),u}return function(){return i(RM.apply(null,arguments))}}const ie=t=>{const e=n=>n[t]||[];return e.isThemeGetter=!0,e},ah=/^\[(?:([a-z-]+):)?(.+)\]$/i,DM=/^\d+\/\d+$/,OM=new Set(["px","full","screen"]),NM=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,MM=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,LM=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,jM=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,UM=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,_t=t=>On(t)||OM.has(t)||DM.test(t),Nt=t=>Jn(t,"length",BM),On=t=>!!t&&!Number.isNaN(Number(t)),Ki=t=>Jn(t,"number",On),rr=t=>!!t&&Number.isInteger(Number(t)),$M=t=>t.endsWith("%")&&On(t.slice(0,-1)),$=t=>ah.test(t),Mt=t=>NM.test(t),xM=new Set(["length","size","percentage"]),FM=t=>Jn(t,xM,sh),HM=t=>Jn(t,"position",sh),zM=new Set(["image","url"]),qM=t=>Jn(t,zM,KM),VM=t=>Jn(t,"",GM),or=()=>!0,Jn=(t,e,n)=>{const r=ah.exec(t);return r?r[1]?typeof e=="string"?r[1]===e:e.has(r[1]):n(r[2]):!1},BM=t=>MM.test(t)&&!LM.test(t),sh=()=>!1,GM=t=>jM.test(t),KM=t=>UM.test(t),WM=()=>{const t=ie("colors"),e=ie("spacing"),n=ie("blur"),r=ie("brightness"),o=ie("borderColor"),i=ie("borderRadius"),a=ie("borderSpacing"),s=ie("borderWidth"),c=ie("contrast"),l=ie("grayscale"),u=ie("hueRotate"),p=ie("invert"),h=ie("gap"),m=ie("gradientColorStops"),I=ie("gradientColorStopPositions"),y=ie("inset"),S=ie("margin"),w=ie("opacity"),T=ie("padding"),D=ie("saturate"),K=ie("scale"),W=ie("sepia"),q=ie("skew"),Ce=ie("space"),Ee=ie("translate"),Re=()=>["auto","contain","none"],Pe=()=>["auto","hidden","clip","visible","scroll"],Ne=()=>["auto",$,e],U=()=>[$,e],xe=()=>["",_t,Nt],ve=()=>["auto",On,$],ce=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],ae=()=>["solid","dashed","dotted","double","none"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],F=()=>["start","end","center","between","around","evenly","stretch"],M=()=>["","0",$],ne=()=>["auto","avoid","all","avoid-page","page","left","right","column"],oe=()=>[On,$];return{cacheSize:500,separator:":",theme:{colors:[or],spacing:[_t,Nt],blur:["none","",Mt,$],brightness:oe(),borderColor:[t],borderRadius:["n
4180one","","full",Mt,$],borderSpacing:U(),borderWidth:xe(),contrast:oe(),grayscale:M(),hueRotate:oe(),invert:M(),gap:U(),gradientColorStops:[t],gradientColorStopPositions:[$M,Nt],inset:Ne(),margin:Ne(),opacity:oe(),padding:U(),saturate:oe(),scale:oe(),sepia:M(),skew:oe(),space:U(),translate:U()},classGroups:{aspect:[{aspect:["auto","square","video",$]}],container:["container"],columns:[{columns:[Mt]}],"break-after":[{"break-after":ne()}],"break-before":[{"break-before":ne()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...ce(),$]}],overflow:[{overflow:Pe()}],"overflow-x":[{"overflow-x":Pe()}],"overflow-y":[{"overflow-y":Pe()}],overscroll:[{overscroll:Re()}],"overscroll-x":[{"overscroll-x":Re()}],"overscroll-y":[{"overscroll-y":Re()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[y]}],"inset-x":[{"inset-x":[y]}],"inset-y":[{"inset-y":[y]}],start:[{start:[y]}],end:[{end:[y]}],top:[{top:[y]}],right:[{right:[y]}],bottom:[{bottom:[y]}],left:[{left:[y]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",rr,$]}],basis:[{basis:Ne()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",$]}],grow:[{grow:M()}],shrink:[{shrink:M()}],order:[{order:["first","last","none",rr,$]}],"grid-cols":[{"grid-cols":[or]}],"col-start-end":[{col:["auto",{span:["full",rr,$]},$]}],"col-start":[{"col-start":ve()}],"col-end":[{"col-end":ve()}],"grid-rows":[{"grid-rows":[or]}],"row-start-end":[{row:["auto",{span:[rr,$]},$]}],"row-start":[{"row-start":ve()}],"row-end":[{"row-end":ve()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",$]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",$]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...F()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...F(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...F(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[T]}],px:[{px:[T]}],py:[{py:[T]}],ps:[{ps:[T]}],pe:[{pe:[T]}],pt:[{pt:[T]}],pr:[{pr:[T]}],pb:[{pb:[T]}],pl:[{pl:[T]}],m:[{m:[S]}],mx:[{mx:[S]}],my:[{my:[S]}],ms:[{ms:[S]}],me:[{me:[S]}],mt:[{mt:[S]}],mr:[{mr:[S]}],mb:[{mb:[S]}],ml:[{ml:[S]}],"space-x":[{"space-x":[Ce]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[Ce]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",$,e]}],"min-w":[{"min-w":[$,e,"min","max","fit"]}],"max-w":[{"max-w":[$,e,"none","full","min","max","fit","prose",{screen:[Mt]},Mt]}],h:[{h:[$,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[$,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[$,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[$,e,"auto","min","max","fit"]}],"font-size":[{text:["base",Mt,Nt]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Ki]}],"font-family":[{font:[or]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",$]}],"line-clamp":[{"line-clamp":["none",On,Ki]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",_t,$]}],"list-image":[{"list-image":["none",$]}],"list-style-type":[{list:["none","disc","decimal",$]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[w]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[w]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ae(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",_t,Nt]}],"underline-offset":[{"underline-offset":["auto",_t,$]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:U()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",$]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",$]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[w]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...ce(),HM]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",FM]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},qM]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[I]}
vendor: 5,182 bytes, line 4180
4180],"gradient-via-pos":[{via:[I]}],"gradient-to-pos":[{to:[I]}],"gradient-from":[{from:[m]}],"gradient-via":[{via:[m]}],"gradient-to":[{to:[m]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[w]}],"border-style":[{border:[...ae(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[w]}],"divide-style":[{divide:ae()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...ae()]}],"outline-offset":[{"outline-offset":[_t,$]}],"outline-w":[{outline:[_t,Nt]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:xe()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[w]}],"ring-offset-w":[{"ring-offset":[_t,Nt]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",Mt,VM]}],"shadow-color":[{shadow:[or]}],opacity:[{opacity:[w]}],"mix-blend":[{"mix-blend":[...he(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":he()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",Mt,$]}],grayscale:[{grayscale:[l]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[p]}],saturate:[{saturate:[D]}],sepia:[{sepia:[W]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[w]}],"backdrop-saturate":[{"backdrop-saturate":[D]}],"backdrop-sepia":[{"backdrop-sepia":[W]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",$]}],duration:[{duration:oe()}],ease:[{ease:["linear","in","out","in-out",$]}],delay:[{delay:oe()}],animate:[{animate:["none","spin","ping","pulse","bounce",$]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[K]}],"scale-x":[{"scale-x":[K]}],"scale-y":[{"scale-y":[K]}],rotate:[{rotate:[rr,$]}],"translate-x":[{"translate-x":[Ee]}],"translate-y":[{"translate-y":[Ee]}],"skew-x":[{"skew-x":[q]}],"skew-y":[{"skew-y":[q]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",$]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",$]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":U()}],"scroll-mx":[{"scroll-mx":U()}],"scroll-my":[{"scroll-my":U()}],"scroll-ms":[{"scroll-ms":U()}],"scroll-me":[{"scroll-me":U()}],"scroll-mt":[{"scroll-mt":U()}],"scroll-mr":[{"scroll-mr":U()}],"scroll-mb":[{"scroll-mb":U()}],"scroll-ml":[{"scroll-ml":U()}],"scroll-p":[{"scroll-p":U()}],"scroll-px":[{"scroll-px":U()}],"scroll-py":[{"scroll-py":U()}],"scroll-ps":[{"scroll-ps":U()}],"scroll-pe":[{"scroll-pe":U()}],"scroll-pt":[{"scroll-pt":U()}],"scroll-pr":[{"scroll-pr":U()}],"scroll-pb":[{"scroll-pb":U()}],"scroll-pl":[{"scroll-pl":U()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
4180],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",$]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[_t,Nt,Ki]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},YM=PM(WM);function JM(...t){return YM(vM(t))}const QM=t=>R.jsx(Bh,{container:aI(),...t}),XM=100,ZM=300,ch=({delayDuration:t=XM,skipDelayDuration:e=ZM,...n})=>R.jsx(Gh,{delayDuration:t,skipDelayDuration:e,...n});ch.displayName="TooltipProvider";const d0=qh,u0=Vh,eL=A.forwardRef(({className:t,sideOffset:e=4,...n},r)=>R.jsx(QM,{children:R.jsx(Xl,{ref:r,sideOffset:e,className:JM("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...n})}));eL.displayName=Xl.displayName;function tL({client:t,router:e,session:n,children:r}){return R.jsx(Hh,{client:t,children:R.jsx(ch,{children:R.jsx(e,{children:R.jsxs(n,{children:[R.jsx(fM,{}),r]})})})})}
4180class nL extends E.Component{constructor(n){super(n);rt(this,"handleReload",()=>{window.location.reload()});this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){}render(){if(this.state.hasError){const n=Xt();return R.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:R.jsxs("div",{className:"text-center p-8 max-w-md",children:[R.jsx("h1",{className:"text-2xl font-bold text-destructive mb-4",children:n("errors.crashTitle")}),R.jsx("p",{className:"text-muted-foreground mb-6",children:n("errors.crashDescription")}),!1,R.jsx("button",{onClick:this.handleReload,className:"px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:n("errors.crashReload")})]})})}return this.props.children}}const rL=()=>{const{pathname:t}=on();return A.useEffect(()=>{window.scrollTo({top:0,left:0,behavior:"instant"})},[t]),null},oL="workspace-access-denied",iL=1e4,aL=()=>{const t=on(),e=Bo(),{t:n}=vc(),{me:r,loading:o}=eh(),i=iM(t.state),a=(r==null?void 0:r.email)??null,{pathname:s,search:c,hash:l,state:u}=t,p=uI(Qo(r),Nn.enterWorkspace,n)??n("affordances.reasons.generic_blocked");return A.useEffect(()=>{!i||o||(So.warning(n("auth.workspaceAccess.title"),{id:oL,description:a?n("auth.workspaceAccess.description",{email:a,reason:p}):p,duration:iL,closeButton:!0}),e(`${s}${c}${l}`,{replace:!0,state:aM(u)}))},[i,o,a,p,s,c,l,u,e,n]),null},sL=()=>{const t=Bo(),{localePath:e}=vc(),n=os(o=>o.armed),r=dI().can(Nn.enterWorkspace);return A.useEffect(()=>{!n||!r||OA()&&t(e("/app"))},[n,r,t,e]),null},cL=new RegExp(`^(/(?:${Ur.join("|")})/app)(?:/|$)`);function lL(t,e){const n=cL.exec(t);return n?n[1]:t+e}const dL=()=>{const{pathname:t,search:e}=on();A.useEffect(()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"virtualPageView",pagePath:lL(t,e),pageTitle:document.title,environment:an()})},[t,e])};function uL(t){return t==="1"}const pL=uL("false"),mL=A.lazy(()=>j(()=>import("./Home-Buh6Tc41.js"),__vite__mapDeps([127,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,103,131,132,133,134,11]))),hL=A.lazy(()=>j(()=>import("./Solutions-BiWHWR6g.js"),__vite__mapDeps([135,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,131,103,133,134,11])));A.lazy(()=>j(()=>import("./Insights-C6OOkyau.js"),__vite__mapDeps([136,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,133,134,11])));A.lazy(()=>j(()=>import("./InsightArticle-Czn2hSHd.js"),__vite__mapDeps([137,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,79,134,11])));const gL=A.lazy(()=>j(()=>import("./BlogPost-TuI3jVCj.js"),__vite__mapDeps([138,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,134,139,140,11]))),fL=A.lazy(()=>j(()=>import("./Stories-BA9JEjdp.js"),__vite__mapDeps([141,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,140,79,134,132,39,34,11]))),vL=A.lazy(()=>j(()=>import("./About-Z5aINhaX.js"),__vite__mapDeps([142,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,134,132,11]))),yL=A.lazy(()=>j(()=>import("./Careers-CH4YdNmF.js"),__vite__mapDeps([143,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,144,134,133,57,11]))),bL=A.lazy(()=>j(()=>import("./JobDetail-CjDshtjU.js").then(t=>t.J),__vite__mapDeps([145,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,144,134]))),SL=A.lazy(()=>j(()=>import("./Contact-mnrpWYMX.js"),__vite__mapDeps([146,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,134,28,63,67,34,139,11]))),IL=A.lazy(()=>j(()=>import("./Legal-Dbf5kzaM.js"),__vite__mapDeps([147,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,134,11]))),_L=A.lazy(()=>j(()=>import("./Privacy-gwAIWmay.js"),__vite__mapDeps([148,1,128,129,5,6,7,130,76,2,33,10,24,8,9,25,15,16,17,18,19,20,21,14,22,23,26,77,134,11]))),CL=A.lazy(()=>j(()=>import("./NotFound-C72723Un.js"),__vite__mapDeps([149,1,10,129,134,7,6,11,2]))),TL=A.lazy(()=>j(()=>import("./AuthCallback-BmkyTo9Q.js"),__vite__mapDeps([150,1,10,7,6,11,2]))),wL=A.lazy(()=>j(()=>import("./WorkspacePage-Bxe62DUb.js"),__vite__mapDeps([151,1,130,5,6,7,76,2,129,33,10,152,8,9,40,17,41,77,24,25,13,14,18,103,4,11]))),kL=()=>{const{lang:t}=ja();return R.jsx(ur,{to:`/${t||"en"}/app`,replace:!0})},AL=()=>{const{lang:t,slug:e}=ja();return R.jsx(ur,{to:`/${t||"en"}/stories/${e}`,replace:!0})},EL=()=>R.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:R.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"})}),RL=({children:t})=>(dL(),R.jsx(R.Fragment,{children:t})),PL=({children:t})=>R.jsx(Eh,{future:{v7_startTransition:!0,v7_relativeSplatPath:!0},children:t}),DL=()=>R.jsx(nL,{children:R.jsx(dd,{children:R.jsxs(tL,{client:H,router:PL,session:uM,children:[R.jsx(rL,{}),R.jsx(aL,{}),R.jsx(sL,{}),R.jsx(RL,{children:R.jsx(A.Suspense,{fallback:R.jsx(EL,{}),children:R.jsxs(Ah,{children:[R.jsx(Ie,{path:"/",element:R.jsx(ur,{to:`/${Gi()}`,replace:!0})}),R.jsx(Ie,{path:"/auth/callback",element:R.jsx(TL,{})}),R.jsx(Ie,{path:"/:lang",element:R.jsx(mL,{})}),R.jsx(Ie,{path:"/:lang/our-process",element:R.jsx(hL,{})}),pL,R.jsx(Ie,{path:"/:lang/stories",element:R.jsx(fL,{})}),R.jsx(Ie,{path:"/:lang/stories/:slug",element:R.jsx(gL,{})}),R.jsx(Ie,{path:"/:lang/blog",element:R.jsx(ur,{to:`/${Gi()}/stories`,replace:!0})}),R.jsx(Ie,{path:"/:lang/blog/:slug",element:R.jsx(AL,{})}),R.jsx(Ie,{path:"/:lang/news",element:R.jsx(ur,{to:`/${Gi()}/stories`,replace:!0})}),R.jsx(Ie,{path:"/:lang/about",element:R.jsx(vL,{})}),R.jsx(Ie,{path:"/:lang/careers",element:R.jsx(yL,{})}),R.jsx(Ie,{path:"/:lang/careers/:slug",element:R.jsx(bL,{})}),R.jsx(Ie,{path:"/:lang/contact",element:R.jsx(SL,{})}),R.jsx(Ie,{path:"/:lang/legal",element:R.jsx(IL,{})}),R.jsx(Ie,{path:"/:lang/privacy",element:R.jsx(_L,{})}),R.jsx(Ie,{path:"/:lang/app/*",element:R.jsx(wL,{})}),R.jsx(Ie,{path:"/:lang/admin/*",element:R.jsx(kL,{})}),R.jsx(Ie,{path:"*",element:R.jsx(CL,{})})]})})})]})})}
4180),lh={prod:null,unknown:null,dev:"bg-amber-500 text-amber-950 hover:bg-amber-500",test:"bg-blue-500 text-blue-950 hover:bg-blue-500",uat:"bg-violet-500 text-violet-950 hover:bg-violet-500",local:"bg-emerald-500 text-emerald-950 hover:bg-emerald-500"};function p0(t=an()){return lh[t]}function OL(t=an()){return lh[t]!==null}function NL(t=an()){return!OL(t)||zg()?"":`[${t.toUpperCase()}] `}function ML(t,e=an()){const n=NL(e);return n===""||t.startsWith(n)?t:`${n}${t}`}function LL(){document.title=ML(document.title)}LL();kh(document.getElementById("root")).render(R.jsx(DL,{}));export{r0 as $,ri as A,eL as B,DI as C,fR as D,Uu as E,So as F,WA as G,qL as H,pL as I,aI as J,AF as K,EF as L,Nn as M,RF as N,kF as O,Vn as P,Zk as Q,n0 as R,zg as S,Bc as T,p0 as U,an as V,qo as W,Hg as X,KL as Y,GL as Z,j as _,mt as a,zj as a$,xd as a0,tj as a1,LF as a2,jF as a3,jn as a4,JL as a5,NA as a6,bj as a7,aj as a8,oj as a9,hj as aA,fj as aB,nj as aC,ij as aD,rj as aE,qF as aF,jA as aG,qd as aH,$I as aI,LI as aJ,UA as aK,$j as aL,jj as aM,oR as aN,rC as aO,Uj as aP,pR as aQ,Hj as aR,Jj as aS,NI as aT,Kj as aU,xj as aV,Wj as aW,Yj as aX,Qj as aY,Gj as aZ,Fj as a_,QL as aa,zF as ab,XL as ac,ZL as ad,YL as ae,s0 as af,VF as ag,l0 as ah,Un as ai,QN as aj,BF as ak,o0 as al,GF as am,pI as an,i0 as ao,a0 as ap,e0 as aq,DF as ar,c0 as as,Ln as at,OF as au,NF as av,ej as aw,kj as ax,vj as ay,gj as az,sI as b,$C as b$,eU as b0,tU as b1,nU as b2,Xj as b3,Zj as b4,jI as b5,rU as b6,oU as b7,iU as b8,aU as b9,qt as bA,af as bB,iI as bC,ud as bD,BE as bE,qE as bF,gd as bG,t0 as bH,TF as bI,ca as bJ,Ij as bK,wF as bL,Ja as bM,mI as bN,Fr as bO,oI as bP,wj as bQ,B_ as bR,_j as bS,Cj as bT,Tj as bU,Lj as bV,nC as bW,Bd as bX,eh as bY,sj as bZ,Xt as b_,sU as ba,VA as bb,UI as bc,MI as bd,lU as be,dU as bf,uU as bg,pU as bh,cU as bi,qj as bj,Vj as bk,Bj as bl,vM as bm,KF as bn,ga as bo,Yo as bp,Nd as bq,ZF as br,QF as bs,JF as bt,mR as bu,H as bv,hI as bw,cj as bx,YF as by,WF as bz,JM as c,uF as c$,QC as c0,i_ as c1,l$ as c2,CT as c3,d$ as c4,qA as c5,uj as c6,gx as c7,fx as c8,vx as c9,Fx as cA,xI as cB,u$ as cC,GI as cD,VI as cE,yU as cF,SU as cG,CU as cH,TU as cI,wU as cJ,kU as cK,AU as cL,EU as cM,RU as cN,IU as cO,_U as cP,hx as cQ,tF as cR,nF as cS,rF as cT,oF as cU,iF as cV,aF as cW,sF as cX,cF as cY,lF as cZ,dF as c_,yx as ca,bx as cb,Sx as cc,Ix as cd,_x as ce,Cx as cf,Tx as cg,wx as ch,Ax as ci,kx as cj,Ex as ck,Rx as cl,Px as cm,Dx as cn,Ox as co,Nx as cp,Mx as cq,Lx as cr,jx as cs,jU as ct,UU as cu,$U as cv,xU as cw,Ux as cx,$x as cy,xx as cz,pj as d,Kc as d$,pF as d0,mF as d1,hF as d2,Hx as d3,zx as d4,qx as d5,Vx as d6,Bx as d7,Gx as d8,Kx as d9,QI as dA,BI as dB,NU as dC,LU as dD,WI as dE,p$ as dF,m$ as dG,Zx as dH,eF as dI,SF as dJ,IF as dK,yu as dL,H$ as dM,z$ as dN,q$ as dO,V$ as dP,B$ as dQ,G$ as dR,X$ as dS,K$ as dT,W$ as dU,Y$ as dV,J$ as dW,Q$ as dX,gF as dY,fF as dZ,Z$ as d_,Wx as da,Yx as db,j$ as dc,T$ as dd,bu as de,DU as df,JI as dg,a$ as dh,s$ as di,r_ as dj,o_ as dk,YI as dl,XI as dm,KI as dn,HI as dp,FI as dq,xF as dr,$F as ds,CF as dt,ZI as du,qI as dv,Wc as dw,UF as dx,_F as dy,t_ as dz,mj as e,o$ as e$,Qt as e0,F$ as e1,U$ as e2,bU as e3,FA as e4,HF as e5,FF as e6,ex as e7,tx as e8,nx as e9,Jx as eA,Qx as eB,Xx as eC,n_ as eD,e_ as eE,zI as eF,_T as eG,AT as eH,IT as eI,c$ as eJ,HU as eK,zU as eL,qU as eM,VU as eN,BU as eO,GU as eP,KU as eQ,e$ as eR,t$ as eS,n$ as eT,WU as eU,YU as eV,JU as eW,QU as eX,XU as eY,ZU as eZ,r$ as e_,rx as ea,ox as eb,ix as ec,ax as ed,sx as ee,cx as ef,lx as eg,dx as eh,ux as ei,px as ej,vF as ek,yF as el,bF as em,mx as en,x$ as eo,w$ as ep,k$ as eq,A$ as er,E$ as es,R$ as et,P$ as eu,D$ as ev,O$ as ew,N$ as ex,M$ as ey,L$ as ez,Et as f,i$ as f0,vn as f1,du as f2,uu as f3,NC as f4,a_ as f5,OU as f6,MU as f7,mU as f8,FU as f9,v$ as fA,I$ as fB,_$ as fC,C$ as fD,S$ as fE,g$ as fF,b$ as fG,hU as fa,gU as fb,fU as fc,vU as fd,PU as fe,f$ as ff,y$ as fg,MF as fh,OI as fi,Qo as fj,yj as fk,Sj as fl,WL as fm,Aj as fn,os as fo,J_ as fp,Dj as fq,Oj as fr,Nj as fs,Mj as ft,Ej as fu,Rj as fv,Pj as fw,Q_ as fx,$$ as fy,h$ as fz,ML as g,Gi as h,XF as i,J as j,df as k,VL as l,dI as m,Ve as n,kr as o,dj as p,ns as q,BL as r,lj as s,ei as t,vc as u,Ur as v,PF as w,bt as x,d0 as y,u0 as z};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.