import{h as e,j7 as t,j8 as n,ae as o,a3 as s,j9 as r}from"./c818056db-BBpc4u6S.js";import{u as a}from"./vendor-query-AdjnXGiH.js";import{r as i}from"./vendor-react-RSDKEZ60.js";import{cD as c}from"./ca9c256b9-B7ADeATc.js";const u=e=>t=>{if(!t)return;const n=t.pages.length-1;return{...t,pages:t.pages.map((t,o)=>e(t,o===n))}},l=(e,t)=>e[t]??[],d=(e,t,n)=>({...e,[t]:n}),f=(e,t)=>u((n,o)=>o?d(n,e,[...l(n,e),t]):n),p=(e,t)=>u(n=>d(n,e,l(n,e).filter(e=>!t(e)))),g=(e,t)=>u(n=>d(n,e,l(n,e).map(t))),h="anthropic_recommended",_={office_agent:["claude-opus-4-8","claude-sonnet-5","claude-opus-4-7","claude-opus-4-6"]};function m(e){return["org_model_settings_list",e]}function v(){const{activeOrganization:o}=e(),r=o?.uuid,a=t(),i=n();return s(`/api/organizations/${r}/model_settings`,{queryKey:m(r),enabled:(a||i)&&!!r,meta:{noToast:!0}})}function w(e,t){const{data:n,isLoading:o,isError:s}=function(){const{data:e,isLoading:t,isError:n}=v();return{data:i.useMemo(()=>e?new Map(e.settings.map(e=>[e.principal_id,e])):void 0,[e]),isLoading:t,isError:n}}();return!!e&&(t?.enabled??!0)?{data:n?n.get(e)??null:void 0,isLoading:o,isError:s}:{data:void 0,isLoading:!1,isError:!1}}function y(e){const{data:t,isLoading:n,isError:o}=v();return{settingsByRole:i.useMemo(()=>{const n=new Map;if(!t)return n;const o=new Map(t.settings.filter(e=>"rbac_role"===e.principal_type).map(e=>[e.principal_id,e]));for(const t of e)n.set(t,o.get(t)??null);return n},[t,e]),isLoading:n,isError:o}}function b(o){const{activeOrganization:r}=e(),a=r?.uuid,i=t(),c=n();return s(`/api/organizations/${a}/model_settings_configuration`,{...o,queryKey:["org_model_settings_configuration",a],enabled:(i||c)&&!!a&&(o?.enabled??!0),meta:{noToast:!0}})}function S(s={}){const{activeOrganization:r}=e(),i=r?.uuid,c=t(),u=n(),l=a();return o(e=>`/api/organizations/${i}/model_settings/${e.principalId}`,"PUT",{...s,enabled:(c||u)&&!!i&&(s.enabled??!0),transformVariables:e=>e.configuration,onSuccess(e,t,n){l.setQueryData(m(i),t=>function(e,t){const n=e?.settings??[],o=n.findIndex(e=>e.principal_id===t.principal_id);return{...e,settings:o>=0?n.map((e,n)=>n===o?t:e):[...n,t]}}(t,e)),l.setQueryData(function(e,t){return["org_model_settings",e,t]}(i,t.principalId),e),s.onSuccess?.(e,t,n)}})}const T=(e,t)=>{const{items:n,queryKey:o,enabled:s,pageParamName:a,nextPageField:c,headers:u,meta:l}=t,{data:d,isPending:f,isError:p,error:g,isFetchNextPageError:h,hasNextPage:_,isFetchingNextPage:m,fetchNextPage:v,refetch:w}=r(e,{queryKey:o,pageParamName:a??"page_token",nextPageField:c??"next_page_token",enabled:s,headers:u,meta:l});i.useEffect(()=>{!_||m||p||g||v({cancelRefetch:!1})},[_,m,p,g,v]);const y=i.useMemo(()=>d&&!_?d.pages.flatMap(n):void 0,[d,_,n]),b=p||h;return{data:y,isPending:void 0===y,isLoading:!(!s||!f&&(!_||b)),isError:b,error:g,refetch:w}},$="roles_list",k="role",P=t=>{const{activeOrganization:n}=e(),o=n?.uuid,r=new URLSearchParams;t?.pageSize&&r.set("page_size",String(t.pageSize)),t?.pageToken&&r.set("page_token",t.pageToken),t?.sourceType&&r.set("source_type",t.sourceType);const a=t?.filter;switch(a?.kind){case"byNamePrefix":r.set("name_prefix",a.namePrefix);break;case"byAction":r.set("action",a.action),r.set("resource_type",a.resourceType??"organization")}const i=r.toString();return s(`/api/organizations/${o}/roles${i?`?${i}`:""}`,{queryKey:[$,o,a,t?.sourceType,t?.pageSize,t?.pageToken],enabled:!!o&&(t?.enabled??!0)})},U=e=>e.roles??[],z=(t,n)=>{const{activeOrganization:o}=e(),s=o?.uuid;return T(`/api/organizations/${s}/roles?page_size=100&source_type=${t}`,{queryKey:[$,s,t,...n?.cacheScope?[n.cacheScope]:[]],enabled:!!s&&(n?.enabled??!0),items:U})},M=e=>z("admin_created",e),x=e=>z("anthropic_granted",e),L=(t={})=>{const{activeOrganization:n}=e(),s=n?.uuid,r=a();return o(`/api/organizations/${s}/roles`,"POST",{enabled:!!s,...t,onSuccess(e,n,o){r.setQueryData([$,s,"admin_created"],f("roles",e)),r.invalidateQueries({queryKey:m(s)}),t.onSuccess?.(e,n,o)}})},O=(t,n={})=>{const{activeOrganization:s}=e(),r=s?.uuid,i=a();return o(`/api/organizations/${r}/roles/${t}`,"PUT",{enabled:!!r&&!!t,...n,onSuccess(e,o,s){i.setQueryData([$,r,"admin_created"],g("roles",n=>n.role_uuid===t?e:n)),i.setQueryData([k,r,t],e),n.onSuccess?.(e,o,s)}})},E=(t,n={})=>{const{activeOrganization:s}=e(),r=s?.uuid,i=a();return o(`/api/organizations/${r}/roles/${t}`,"DELETE",{enabled:!!r&&!!t,...n,onSuccess(e,o,s){i.setQueryData([$,r,"admin_created"],p("roles",e=>e.role_uuid===t)),i.removeQueries({queryKey:[k,r,t]}),i.setQueryData(m(r),e=>e?{...e,settings:e.settings.filter(e=>e.principal_id!==t)}:e),n.onSuccess?.(e,o,s)}})},W="connector_tool",q="use",A="always_allow",C=new Set([q,A]),D="connector_auth",Q="connector_scope",j="_ALL_",B=32,I="interactive",K="managed",N=new Set([I,K]);function R(e){const t=xe(e);return null!==t&&C.has(t.action)}const G="_ALL_",F="_ALL_";function H(e,t){return`${e}|${t}`}function V(e){return H(e,G)}const Z=H(F,G);function J(e,t){return`${D}|${e}|${t}`}function X(e){return J(e,K)}function Y(e){return J(e,I)}function ee(e){if(!e.startsWith(`${D}|`))return null;const[,t,n]=e.split("|");return t&&n?{serverUuid:t,action:n}:null}const te=`${Q}|`;function ne(e,t){return`${te}${e}|${t}`}function oe(e){if(!e.startsWith(te))return null;const t=e.slice(te.length),n=t.indexOf("|");return n<=0?null:{serverUuid:t.slice(0,n),tail:t.slice(n+1)}}const se="_ORG_",re=ne(F,j);function ae(e){return e.tail===j&&(e.serverUuid===F||e.serverUuid.startsWith(se))}function ie(e){for(const t of e){const e=oe(t);if(null!==e&&ae(e))return!0}return!1}function ce(e,t){let n=!1;const o=new Set;for(const s of e){const t=oe(s);null!==t&&(ae(t)?(e.delete(s),n=!0):o.add(t.serverUuid))}if(n)for(const s of t)o.has(s)||e.add(ne(s,j))}function ue(e,t,n){null!==_e(e,t)||null!==_e(n,t)||ie(e)||e.add(ne(t,j))}function le(e,t,n){e.has(n)&&!t.has(n)&&(e.delete(n),function(e,t,n){const o=oe(n);if(null===o)return;for(const s of t){const t=oe(s);null===t||t.serverUuid!==o.serverUuid||e.has(s)||e.add(s)}}(e,t,n))}function de(e,t){for(const o of e){const n=oe(o);null===n||n.tail!==j||t.has(o)||e.delete(o)}const n=new Set;for(const o of e){const e=oe(o);null===e||e.tail===j||t.has(o)||n.add(e.serverUuid)}for(const o of t){const t=oe(o);null===t||e.has(o)||(!ae(t)&&n.has(t.serverUuid)||e.add(o))}}function fe(e,t,n){(function(e,t){for(const n of e){const e=oe(n);if(null!==e&&e.tail!==j&&!t.has(n))return!0}return!1})(e,t)&&ce(e,n)}function pe(e,t,n){t.has(X(F))||function(e,t,n){const o=new Set(t);let s=!1;for(const a of n){const e=oe(a);if(null!==e&&ae(e)){s=!0;break}}const r=new Set;if(!s)for(const a of o)n.has(X(a))&&null===_e(n,a)&&r.add(a);if(0!==r.size){for(const t of e){const n=oe(t);null!==n&&(ae(n)||o.has(n.serverUuid)&&!r.has(n.serverUuid))&&e.delete(t)}for(const t of o)r.has(t)||e.add(ne(t,j))}else{for(const t of e){const n=oe(t);null!==n&&(ae(n)||o.has(n.serverUuid))&&e.delete(t)}e.add(re)}}(e,n,t),fe(e,t,n)}function ge(e,t){for(const n of e){const e=ee(n);if(null!==e&&e.action===K&&(e.serverUuid===F||t.has(e.serverUuid)))return!0}return!1}function he(e,t){return(e.has(X(t))||e.has(X(F)))&&null===_e(e,t)&&!ie(e)}function _e(e,t){const n=[];for(const o of e){const e=oe(o);e?.serverUuid===t&&n.push(e.tail)}return n.length>0?n:null}function me(e,t,n){const o=new Set(e);for(const s of o)oe(s)?.serverUuid===t&&o.delete(s);for(const s of n)s!==j&&o.add(ne(t,s));return o}function ve(e,t,n,o){const s=new Set(e);if(n===j)return s;const r=ne(t,n);return o?(s.delete(ne(t,j)),s.add(r)):s.delete(r),s}const we=/^[a-zA-Z0-9_-]+$/,ye=/^[a-zA-Z0-9_-]{0,16}_[0-9a-f]{32}$/;function be(e){return e!==j&&!ye.test(e)&&!/\s/.test(e)&&e.length>0&&e.length<=512}async function Se(e){if(we.test(e)&&!ye.test(e)&&e!==j)return e;const t=e.toLowerCase().replace(/[^a-z0-9]/g,"").slice(0,16),n=(new TextEncoder).encode(e),o=await crypto.subtle.digest("SHA-256",n);return`${t}_${Array.from(new Uint8Array(o).slice(0,16),e=>e.toString(16).padStart(2,"0")).join("")}`}async function Te(e){const t=await Promise.all(e.map(async e=>[await Se(e),e]));return new Map(t)}function $e(e,t,n){if(ie(e))return!0;const o=t.indexOf("|");if(o<=0)return!1;const s=t.slice(0,o);return s===F||s.startsWith(se)?!n:!!e.has(ne(s,j))||t.slice(o+1)===j&&!n}function ke(e){const t=ee(e);if(t)return N.has(t.action)?{resource_type:D,resource_id:t.serverUuid,action:t.action}:null;const n=oe(e);if(n)return{resource_type:Q,resource_id:`${n.serverUuid}|${n.tail}`,action:"grant"};const o=xe(e);return o?{resource_type:W,resource_id:o.resourceId,action:o.action}:null}const Pe=new Set([W,D,Q]);function Ue(e){return Pe.has(e)}function ze(e){if(e.resource_type===D)return J(e.resource_id,e.action);if(e.resource_type===Q){const t=e.resource_id.indexOf("|");return t<=0?null:ne(e.resource_id.slice(0,t),e.resource_id.slice(t+1))}return e.resource_type===W?Me(e.resource_id,e.action):null}function Me(e,t){return`${e}|${t}`}function xe(e){if(e.startsWith(`${D}|`)||e.startsWith(te))return null;const t=e.lastIndexOf("|");return t<=0?null:{resourceId:e.slice(0,t),action:e.slice(t+1)}}function Le(e){const t=e.indexOf("|");return t<=0?null:{serverUuid:e.slice(0,t),toolPart:e.slice(t+1)}}function Oe(e){return e?.has(q)??!1?e?.has(A)?"allow":"ask":"blocked"}function Ee(e,t){const n=new Map,o=new Set;for(const a of e){const e=xe(a);if(!e)continue;const t=Le(e.resourceId);if(t&&C.has(e.action))if(t.toolPart===G){const o=n.get(t.serverUuid)??new Set;o.add(e.action),n.set(t.serverUuid,o)}else o.add(t.serverUuid)}const s=Oe(n.get(F)),r=new Map;r.set(F,s);for(const a of t)if(o.has(a))r.set(a,"custom");else{const e=n.get(a);r.set(a,e?Oe(e):s)}return r}const We={blocked:0,ask:1,allow:2};function qe(e,t){const n=new Map;for(const[s,r]of e){const e=new Map,o=new Map;for(const n of r){const s=xe(n);if(!s)continue;const r=Le(s.resourceId);if(r)if(r.toolPart===G){const t=e.get(r.serverUuid)??new Set;t.add(s.action),e.set(r.serverUuid,t)}else if(r.serverUuid===F)for(const e of t){const t=o.get(e)??new Set;t.add(s.action),o.set(e,t)}else{const e=o.get(r.serverUuid)??new Set;e.add(s.action),o.set(r.serverUuid,e)}}const a=e.get(F),i=new Map,c=new Map;for(const n of t){const t=e.get(n),o=new Set(a??[]);for(const e of t??[])o.add(e);c.set(n,o),i.set(n,Oe(o))}const u=new Map;for(const[t,n]of o){const e=new Set(n);for(const n of c.get(t)??[])e.add(n);u.set(t,Oe(e))}n.set(s,{wildcardTier:i,perToolMax:u})}const o=new Map;for(const s of t){let e,t="blocked";const r=new Map,a=new Map,i=[];for(const[o,l]of n){const n=l.wildcardTier.get(s)??"blocked",c=l.perToolMax.get(s);r.set(o,void 0!==c?"custom":n),a.set(o,n),void 0!==c&&(i.push(o),(void 0===e||We[c]>We[e])&&(e=c)),We[n]>We[t]&&(t=n)}const c=[];if("blocked"!==t)for(const[n,o]of a)o===t&&c.push(n);const u="allow"===t?[]:i;o.set(s,{effectiveBlanket:t,displayChoice:"blocked"===t&&u.length>0?"custom":t,blanketRoles:c,byRole:r,rolesWithPerToolGrants:u,hasPerToolContributors:i.length>0,perToolMaxTier:e,orgCapped:!1})}return o}function Ae(e,t){if(void 0===t)return e;const n=void 0!==e.perToolMaxTier&&We[e.perToolMaxTier]>We[e.effectiveBlanket]?e.perToolMaxTier:e.effectiveBlanket;let o=t.blanket;for(const u of t.policies)We[u.max_permission]<We[o]&&(o=u.max_permission);const s=We[o]<We[n];if("allow"===t.blanket&&!t.hasPerToolPolicy)return e;const r="blocked"!==e.effectiveBlanket||e.rolesWithPerToolGrants.length>0;if(t.hasPerToolPolicy)return r?{...e,displayChoice:"custom",orgCapped:s}:e;const a=t.blanket,i=We[a]<We[e.effectiveBlanket]?a:e.effectiveBlanket,c=We[a]<=We[i]?[]:e.rolesWithPerToolGrants;return{...e,effectiveBlanket:i,displayChoice:"blocked"===i&&c.length>0?"custom":i,rolesWithPerToolGrants:c,orgCapped:s}}function Ce(e,t,n,o){const s=new Map;for(const[c,u]of e){const e={perTool:new Map,wildcard:new Set};for(const n of u){const o=xe(n);if(!o)continue;const s=Le(o.resourceId);if(s&&(s.serverUuid===t||s.serverUuid===F))if(s.toolPart===G)e.wildcard.add(o.action);else{const t=e.perTool.get(s.toolPart)??new Set;t.add(o.action),e.perTool.set(s.toolPart,t)}}s.set(c,e)}const r=new Map;let a="allow";for(const u of o)u.tool_name===c?a=u.max_permission:r.set(u.tool_name,u.max_permission);const i=new Map;for(const c of n){let e="blocked";const t=new Map;for(const[r,a]of s){const n=new Set(a.wildcard);for(const e of a.perTool.get(c)??[])n.add(e);const o=Oe(n);t.set(r,o),We[o]>We[e]&&(e=o)}const n=r.get(c)??a,o=We[n]<We[e]?n:e,u="blocked"!==o?o:e,l=[];if("blocked"!==e)for(const[s,r]of t)We[r]>=We[u]&&l.push(s);i.set(c,{effective:o,grantedByRoles:l,orgCapped:o!==e})}return i}function De(e,t){const n=`${t}|`,o=[];for(const s of e)s.startsWith(n)&&R(s)&&o.push(s);return o.sort().join(",")}const Qe="role_permissions",je=e=>e.permissions??[],Be=(t,n)=>{const{activeOrganization:o}=e(),s=o?.uuid;return T(`/api/organizations/${s}/roles/${t}/permissions?page_size=100`,{queryKey:[Qe,s,t],enabled:!!s&&!!t&&(n?.enabled??!0),items:je})},Ie=(e,t,n,o)=>{e.setQueryData([Qe,t,n],e=>({pages:[{permissions:o(e?.pages.flatMap(e=>e.permissions??[])),next_page_token:""}],pageParams:[void 0]}))};function Ke(e,t,n=50){if(e.length<=n&&t.length<=n)return e.length>0||t.length>0?[{adds:[...e],removes:[...t]}]:[];const o=[];for(let s=0;s<t.length;s+=n)o.push({adds:[],removes:t.slice(s,s+n)});for(let s=0;s<e.length;s+=n)o.push({adds:e.slice(s,s+n),removes:[]});return o}function Ne(e,t,n,o=50){if(e.length<=o&&t.length<=o)return Ke(e,t,o);const s=[],r=[];for(const a of e)(a.resource_type===Q&&n(a)?s:r).push(a);return[...Ke(s,[],o),...Ke([],t,o),...Ke(r,[],o)]}const Re=()=>{const{activeOrganization:t}=e(),n=t?.uuid;return o(e=>`/api/organizations/${n}/roles/${e.roleUuid}/permissions`,"PATCH",{enabled:!!n,transformVariables:e=>({adds:e.adds,removes:e.removes})})};export{Be as $,de as A,le as B,ge as C,ue as D,fe as E,oe as F,ce as G,ne as H,me as I,ve as J,_e as K,A as L,B as M,y as N,Z as O,S as P,h as Q,Qe as R,_ as S,C as T,q as U,ke as V,j as W,he as X,Re as Y,L as Z,O as _,$ as a,Ue as a0,ze as a1,w as a2,Ne as a3,Ie as a4,Ke as a5,$e as a6,W as a7,E as a8,Ee as a9,De as aa,D as ab,K as ac,p as ad,f as ae,g as af,k as b,T as c,x as d,M as e,b as f,be as g,Te as h,G as i,ie as j,qe as k,Ae as l,Le as m,F as n,Oe as o,xe as p,Me as q,Ce as r,R as s,H as t,P as u,X as v,V as w,Y as x,ee as y,pe as z};
