performance.mark("js-parse-end:6478-da13673e7c9225ff.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["6478"],{44093(e,t,a){a.d(t,{L:()=>o});var s=a(7909),r=a(78597),i=a(5045);class o{static warmCachesLoopSetup=!1;static warmResolve;static warm=new Promise(e=>{o.warmResolve=e});async setupWarmCachesLoop(){(0,s.M3)()&&(o.warmCachesLoopSetup?await o.warm:(o.warmCachesLoopSetup=!0,await this.warmCaches()))}async warmCaches(){let e=54e4;try{let t=await (0,r.lS)("/search/warm_blackbird_caches",{headers:{Accept:"application/json",...(0,i.kt)()}}),a=await t.json();e=new Date(a.userCacheExpiresAt).getTime()-Date.now()-3e4,(isNaN(e)||e<=5)&&(e=3e4)}catch{}o.warmResolve(),setTimeout(()=>{this.warmCaches()},e)}}},4216(e,t,a){a.d(t,{$d:()=>d,xR:()=>h});var s=a(74848),r=a(16522),i=a(73537),o=a(96540),n=a(38297),l=a(20331),c=a(49685);let u=(0,o.createContext)(void 0);function d(e){let t,a,o,d,h,p,m,f,w,k=(0,r.c)(30),{children:y,initialLicenseType:g,initialPlan:T,initialQuotas:I}=e,[C,R]=(0,n.Z2)(g,T,I),v=C.licenseType,P=C.plan??null;k[0]!==C?(t=C.chatQuotaRemaining()??1/0,k[0]=C,k[1]=t):t=k[1];let _=t;k[2]!==C?(a=C.premiumInteractionsQuotaRemaining()??1/0,k[2]=C,k[3]=a):a=k[3];let q=a;k[4]!==C.quotas?(o=C.quotas?.resetDate?new Date(C.quotas.resetDate).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}):"",k[4]=C.quotas,k[5]=o):o=k[5];let b=o;k[6]===Symbol.for("react.memo_cache_sentinel")?(d=(0,i.G7)("copilot_simulate_quota_exceeded"),k[6]=d):d=k[6];let A=d,S=A||v===l.mF.LicensedLimited;k[7]!==C?(h=C.canPurchaseAdditionalQuota(),k[7]=C,k[8]=h):h=k[8];let E=h;k[9]!==C?(p=C.canUpgradePlan(),k[9]=C,k[10]=p):p=k[10];let $=p,L=A||S&&_<=0,D=c.W.premiumRequestQuotasEnabled&&!S&&q<=0,j=C.quotas?.overagesEnabled??!1;k[11]!==C?(m=C.eligibleForTrial(),k[11]=C,k[12]=m):m=k[12];let F=m;k[13]!==E||k[14]!==$||k[15]!==L||k[16]!==_||k[17]!==F||k[18]!==S||k[19]!==v||k[20]!==j||k[21]!==P||k[22]!==q||k[23]!==D||k[24]!==R||k[25]!==b?(f={licenseType:v,chatQuotaRemaining:_,premiumChatQuotaRemaining:q,resetDate:b,isLicensedLimited:S,chatQuotaExceeded:L,premiumInteractionsQuotaExceeded:D,reloadQuota:R,plan:P,canPurchaseAdditionalQuota:E,canUpgradePlan:$,overagesEnabled:j,eligibleForTrial:F},k[13]=E,k[14]=$,k[15]=L,k[16]=_,k[17]=F,k[18]=S,k[19]=v,k[20]=j,k[21]=P,k[22]=q,k[23]=D,k[24]=R,k[25]=b,k[26]=f):f=k[26];let x=f;return k[27]!==y||k[28]!==x?(w=(0,s.jsx)(u,{value:x,children:y}),k[27]=y,k[28]=x,k[29]=w):w=k[29],w}u.displayName="EntitlementContext",d.displayName="EntitlementProvider";let h=()=>{let e=(0,o.use)(u);if(!e)throw Error("useEntitlement must be used within EntitlementProvider");return e}},70155(e,t,a){a.d(t,{c:()=>l,n:()=>n});var s=a(74848),r=a(16522),i=a(96540);let o=(0,i.createContext)(null);function n(e){let t,a=(0,r.c)(3),{children:i,value:n}=e;return a[0]!==i||a[1]!==n?(t=(0,s.jsx)(o,{value:n,children:i}),a[0]=i,a[1]=n,a[2]=t):t=a[2],t}function l(){let e=(0,i.use)(o);if(!e||!e.current)throw Error("useGetTraceState can only be used inside a TraceProvider");return(0,i.useCallback)(()=>e.current.value,[e])}o.displayName="ObservableTraceStateContext",n.displayName="ObservableTraceStateProvider"},71047(e,t,a){a.d(t,{Q:()=>p,y:()=>m});var s=a(74848),r=a(16522),i=a(96540),o=a(70155),n=a(51189),l=a(51261),c=a(49685),u=a(96978);class d{dispatch;service;getTraceState;constructor(e,t,a,s){this.dispatch=e,this.service=new l.k(a,s),this.getTraceState=t}showTraceDisplay=async(e,t)=>{e&&t&&await this.fetchAndLoadTraces(t),this.dispatch({type:"SET_TRACE_INFO",traceInfo:{visible:e,threadId:t??void 0}})};async fetchAndLoadTraces(e,t){if(!c.W.requestTracing||!(0,n.Xl)())return;let a=this.getTraceState();if(!a.traceInfo?.loadedThreadIds?.has(e))try{let s=await this.service.fetchTracesByThreadID(e,t);s.ok&&s.payload.length>0?this.addTracesToState(a,s,e):this.dispatch({type:"SET_TRACE_INFO",traceInfo:{threadId:e}})}catch{}}addTracesToState(e,t,a){let s=new Map(e.traceInfo?.traces||[]);for(let e of t.payload)for(let[,t]of(0,u.r)(e.spans).entries()){let r=new Date(t.startTime).toISOString(),i=`${a}:${r}`;s.set(i,{spanNode:t,threadId:a,actualTraceId:e.id,timestamp:r})}this.dispatch({type:"SET_TRACE_INFO",traceInfo:{traces:s,threadId:a}})}async fetchCoffeTrace(e){if(!c.W.requestTracing||!(0,n.Xl)())return{ok:!1,status:403,error:"Tracing not available"};let t=this.getTraceState(),a=await this.service.fetchCoffeTrace(e);if(a.ok&&a.payload.length>0)return this.addTracesToState(t,a,e),a;throw Error(`Failed to load COFFE trace: ${a.status}`)}async deleteTraceSpansForGivenThread(e){let t=await this.service.deleteTracesForThread(e);return t.ok&&this.dispatch({type:"REMOVE_TRACES_FOR_THREAD",threadID:e}),t}async deleteTrace(e,t){let a=await this.service.deleteTrace(e,t);return a.ok&&this.dispatch({type:"REMOVE_TRACE",traceID:t}),a}}let h=(0,i.createContext)(null);function p(e){let t,a,i=(0,r.c)(8),{apiURL:n,children:l,dispatch:c,ssoOrgs:u}=e,p=(0,o.c)();i[0]!==n||i[1]!==c||i[2]!==p||i[3]!==u?(t=new d(c,p,n,u),i[0]=n,i[1]=c,i[2]=p,i[3]=u,i[4]=t):t=i[4];let m=t;return i[5]!==l||i[6]!==m?(a=(0,s.jsx)(h,{value:m,children:l}),i[5]=l,i[6]=m,i[7]=a):a=i[7],a}function m(){let e=(0,i.use)(h);if(null===e)throw Error("useTraceManager must be used within a TraceManagerProvider");return e}h.displayName="TraceManagerContext",p.displayName="TraceManagerProvider"},21341(e,t,a){a.d(t,{hh:()=>m,Kf:()=>f,jR:()=>w});var s=a(74848),r=a(16522),i=a(13865),o=a(96540),n=a(70155),l=a(71047);let c=new Map,u=new Set;function d(e,t){switch(t.type){case"SET_TRACE_INFO":{let{visible:a,spanNode:s,messageId:r,threadId:i,actualTraceId:o,traces:n}=t.traceInfo,l=e.traceInfo?.traces||c,d=e.traceInfo?.loadedThreadIds||u;if(n&&n.size>0){let e=new Map(l);for(let[t,a]of n)e.set(t,a);l=e}else if(s&&r&&i){let e=new Map(l),t=new Date(s.startTime).toISOString();e.set(r,{spanNode:s,threadId:i,actualTraceId:o||"",timestamp:t}),l=e}if(i&&!d.has(i)){let e=new Set(d);e.add(i),d=e}let h=void 0!==a?a:e.traceInfo?.visible||!1;return{...e,traceInfo:{visible:h,traces:l,loadedThreadIds:d}}}case"REMOVE_TRACE":{let a=new Map(e.traceInfo?.traces||[]);for(let[e,s]of a)if(s.actualTraceId===t.traceID){a.delete(e);break}return{...e,traceInfo:{visible:e.traceInfo?.visible||!1,traces:a,loadedThreadIds:e.traceInfo?.loadedThreadIds||new Set}}}case"REMOVE_TRACES_FOR_THREAD":{let a=new Map(e.traceInfo?.traces||[]);for(let[e,s]of a)s.threadId===t.threadID&&a.delete(e);return{...e,traceInfo:{visible:e.traceInfo?.visible||!1,traces:a,loadedThreadIds:e.traceInfo?.loadedThreadIds||new Set}}}}}let h=(0,o.createContext)(null);h.displayName="TraceStateContext";let p=(0,o.createContext)(null);function m(e){let t,a,c,u,m,f,w=(0,r.c)(20),{apiURL:k,children:y,ssoOrgs:g,testReducerState:T}=e;w[0]!==T?(t=T||{},w[0]=T,w[1]=t):t=w[1];let I=t,[C,R]=(0,o.useReducer)(d,I),[v,P]=(0,i.XG)(C);return w[2]!==P||w[3]!==C||w[4]!==v.current.value?(a=()=>{C!==v.current.value&&P(C)},w[2]=P,w[3]=C,w[4]=v.current.value,w[5]=a):a=w[5],w[6]!==P||w[7]!==C||w[8]!==v?(c=[C,v,P],w[6]=P,w[7]=C,w[8]=v,w[9]=c):c=w[9],(0,o.useLayoutEffect)(a,c),w[10]!==k||w[11]!==y||w[12]!==g?(u=(0,s.jsx)(l.Q,{apiURL:k,dispatch:R,ssoOrgs:g,children:y}),w[10]=k,w[11]=y,w[12]=g,w[13]=u):u=w[13],w[14]!==v||w[15]!==u?(m=(0,s.jsx)(p,{value:R,children:(0,s.jsx)(n.n,{value:v,children:u})}),w[14]=v,w[15]=u,w[16]=m):m=w[16],w[17]!==C||w[18]!==m?(f=(0,s.jsx)(h,{value:C,children:m}),w[17]=C,w[18]=m,w[19]=f):f=w[19],f}function f(){let e=(0,o.use)(h);if(!e)throw Error("useTraceState must be used within a TraceContext");return e}function w(){return(0,o.use)(p)}p.displayName="TraceDispatchContext",m.displayName="TraceProvider"},94991(e,t,a){a.d(t,{d:()=>s});class s{separator="-!-";cache=new Map;fetchFn;constructor(e){this.fetchFn=e}async get(...e){let t=e.join(this.separator),a=this.cache.get(t);if(a)return a;{let a=this.fetchFn(...e);return this.cache.set(t,a),(await a).ok||this.cache.delete(t),a}}}},38297(e,t,a){a.d(t,{U1:()=>m,Z2:()=>d});var s=a(16522),r=a(66743),i=a(97665),o=a(97286),n=a(78597),l=a(11515),c=a(20331),u=a(49685);function d(e,t,a){let n,d,m,f,w,k,y,g=(0,s.c)(24),T=(0,i.jE)();g[0]!==T?(n=()=>T.invalidateQueries({queryKey:["copilot-chat","entitlement"]}),g[0]=T,g[1]=n):n=g[1];let I=n;g[2]===Symbol.for("react.memo_cache_sentinel")?(d=["copilot-chat","entitlement"],g[2]=d):d=g[2];let C=e===c.mF.LicensedLimited||e===c.mF.LicensedFull&&u.W.premiumRequestQuotasEnabled;g[3]!==e||g[4]!==t||g[5]!==a?(m={licenseType:e,plan:t,quotas:a},g[3]=e,g[4]=t,g[5]=a,g[6]=m):m=g[6],g[7]!==C||g[8]!==m?(f={queryKey:d,queryFn:h,enabled:C,placeholderData:m,staleTime:3e5},g[7]=C,g[8]=m,g[9]=f):f=g[9];let{data:R}=(0,o.I)(f),v=R?.licenseType??e,P=R?.plan??t,_=R?.quotas??a,q=_?.remaining.chatPercentage,b=_?.remaining.premiumInteractionsPercentage;g[10]!==e||g[11]!==I||g[12]!==v||g[13]!==q||g[14]!==b?(w=t=>{(e===c.mF.LicensedLimited||e===c.mF.LicensedFull&&u.W.premiumRequestQuotasEnabled)&&(u.W.reduceChatQuotaChecks&&v===c.mF.LicensedLimited&&void 0!==q&&q>l.fG||v===c.mF.LicensedFull&&void 0!==b&&b>l.mF||(I(),(0,r.BI)("dotcom_chat.activate",{target:"ENTITLEMENTS_RELOAD",origin:t})))},g[10]=e,g[11]=I,g[12]=v,g[13]=q,g[14]=b,g[15]=w):w=g[15];let A=w,S=R?.quotas,E=R?.trial;return g[16]!==v||g[17]!==P||g[18]!==S||g[19]!==E?(k=new p(v,P,S,E),g[16]=v,g[17]=P,g[18]=S,g[19]=E,g[20]=k):k=g[20],g[21]!==A||g[22]!==k?(y=[k,A],g[21]=A,g[22]=k,g[23]=y):y=g[23],y}async function h(){let e=await (0,n.lS)("/github-copilot/chat/entitlement");if(!e.ok)throw Error(`Failed to retrieve Copilot chat entitlement (${e.status} on ${e.url})`);return await e.json()}class p{licenseType;plan;quotas;trial;constructor(e,t,a,s){this.licenseType=e,this.plan=t,this.quotas=a,this.trial=s}isLicensed(){return this.licenseType&&this.licenseType!==c.mF.Unlicensed}canPurchaseAdditionalQuota(){return this.licenseType!==c.mF.LicensedLimited&&u.W.premiumRequestQuotasEnabled&&(this.plan===c.UH.IndividualPro||this.plan===c.UH.IndividualProPlus||this.plan===c.UH.IndividualStudent)}canUpgradePlan(){return this.licenseType===c.mF.LicensedLimited||u.W.premiumRequestQuotasEnabled&&(this.plan===c.UH.IndividualPro||this.plan===c.UH.IndividualStudent)}chatQuotaRemaining(){return u.W.premiumRequestQuotasEnabled&&this.quotas?.remaining.chatPercentage!==void 0?this.quotas?.remaining.chatPercentage??0:this.quotas?.remaining.chat??0}premiumInteractionsQuotaRemaining(){return this.quotas?.remaining.premiumInteractionsPercentage??0}eligibleForTrial(){return this.trial?.eligible??!1}}function m(e){return!!(e&&e!==c.UH.IndividualFree)}},51261(e,t,a){a.d(t,{k:()=>f});var s=a(44093),r=a(17917),i=a(23666),o=a(78597),n=a(94991),l=a(11515),c=a(49685),u=a(10506),d=a(81830),h=a(9544),p=a(12104);let m=new Set(["snippet","file","symbol","repository"]);class f{apiURL;urlPathPrefix="/github-copilot/chat";repoDetailsCache=new Map;listMessagesCache=void 0;copilotAuthTokenProvider;blackbirdCaches=new s.L;realIp;apiVersion=void 0;constructor(e,t,a,s){this.apiURL=e,this.copilotAuthTokenProvider=new r.JR(t.map(e=>e.id)),this.realIp=a||"",this.apiVersion=s}async fetchThreads(e={}){let t=new URLSearchParams;"string"==typeof e.name&&t.set("name",e.name);let a=`/threads?${t.toString()}`,s=await this.makeCAPIRequest(a,"GET");if(!s.ok)return s;let r=(await s.json()).threads||[];return{status:s.status,ok:!0,payload:r}}async fetchSharedThreads(){let e=await this.makeCAPIRequest("/threads?shared","GET");if(!e.ok)return e;let t=(await e.json()).threads||[];return{status:e.status,ok:!0,payload:t}}async fetchLatestThread(e){let t=new URLSearchParams;"string"==typeof e&&t.set("thread_id",e);let a=await this.makeCAPIRequest(`/threads/latest?${t.toString()}`,"GET");if(!a.ok)return a;let s=(await a.json()).thread;return{status:a.status,ok:!0,payload:s}}async createThread(e,t){let a={custom_copilot_id:e?.id,custom_copilot_owner:e?.owner,scope_id:t},s=await this.makeCAPIRequest("/threads","POST",a);if(!s.ok)return s;let r=(await s.json()).thread;return{status:s.status,ok:!0,payload:r}}async deleteThread(e){let t=await this.makeCAPIRequest(`/threads/${e}`,"DELETE");return t.ok?{status:t.status,ok:!0,payload:null}:t}async deleteAllThreads(e){let t=await this.makeCAPIRequest("/threads","DELETE",e);return t.ok?{status:t.status,ok:!0,payload:null}:t}async renameThread(e,t){let a=await this.makeCAPIRequest(`/threads/${e}/name`,"PATCH",{generate:!1,name:t});if(!a.ok)return a;let s=(await a.json()).name||"";return{status:a.status,ok:!0,payload:s}}async clearThread(e){let t=await this.makeCAPIRequest(`/threads/${e}/clear`,"PATCH");return t.ok?{status:t.status,ok:!0,payload:null}:t}async shareThread(e,t){let a=await this.makeCAPIRequest(`/threads/${e}/share`,"PATCH",{shared_message_id:t});if(!a.ok)return a;let s=(await a.json()).thread;return{status:a.status,ok:!0,payload:s}}async unshareThread(e){let t=await this.makeCAPIRequest(`/threads/${e}/unshare`,"PATCH");if(!t.ok)return t;let a=(await t.json()).thread;return{status:t.status,ok:!0,payload:a}}async unshareAllThreads(){let e=await this.makeCAPIRequest("/threads/unshare","POST");return e.ok?{status:e.status,ok:!0,payload:null}:e}async continueSharedThread(e){let t=await this.makeCAPIRequest(`/shared/${e}/duplicate`,"POST");return t.ok?{status:200,ok:!0,payload:await t.json()}:t}async generateThreadName(e){let t=await this.makeCAPIRequest(`/threads/${e}/name`,"PATCH",{generate:!0,name:""});if(!t.ok)return t;let a=(await t.json()).name||"";return{status:t.status,ok:!0,payload:a}}async getSystemPrompt(e){let t=await this.makeCAPIRequest(`/system_prompt/${e}`,"GET");if(!t.ok)return t;let a=await t.json();return{status:t.status,ok:!0,payload:a}}async listMessages(e){if(this.listMessagesCache?.thread.id===e)return{status:200,ok:!0,payload:this.listMessagesCache};let t=await this.makeCAPIRequest(`/threads/${e}/messages`,"GET");return this.handleListMessages(t,!0)}async listSharedThreadMessages(e){let t=await this.makeCAPIRequest(`/shared/${e}/messages`,"GET");return this.handleListMessages(t,!1)}async handleListMessages(e,t){if(!e.ok)if(!(404===e.status&&e.response?.headers.has("Content-Type"))||"application/json"!==e.response.headers.get("Content-Type"))return e;else{let t=await e.response.json();return{...e,payload:t}}let a=await e.json();return t&&(Array.isArray(a.messages)&&(a.messages=a.messages.map(e=>(e.references=(0,d.q)(e.references),e))),this.listMessagesCache=a),{status:e.status,ok:!0,payload:a}}async createMessage(e,t,a,s,r,i,o){this.listMessagesCache=void 0;let n=await this.makeCAPIRequest(`/threads/${e}/messages`,"POST",{content:t,mediaContent:a,intent:s,references:r,currentURL:window.location.href,customInstructions:i,model:o,settings:u.Jt.settings??void 0});if(!n.ok)return n;let l=(await n.json()).message;return{status:n.status,ok:!0,payload:l}}async createMessageStreaming({threadID:e,messageID:t,content:a,mediaContent:s,intent:r,mode:i,references:o,context:n,confirmations:l,customInstructions:d,model:h,customCopilotID:p,parentMessageID:m,signal:f,skillOptions:k}){this.listMessagesCache=void 0,p&&(i="custom-copilots");let y=c.W.domPageContext&&"immersive"!==i&&"custom-copilots"!==i?function(){let e=(document.querySelector("main")||document.body).cloneNode(!0);for(let t of["script","style","svg","iframe","textarea",".js-header-wrapper",".footer",".sr-only",".react-code-file-contents"])for(let a of e.querySelectorAll(t))a.remove();for(let t of e.querySelectorAll("*")){if(!t.textContent?.trim()){t.remove();continue}let e=window.getComputedStyle(t);("none"===e.display||"hidden"===e.visibility)&&t.remove()}let t=e.querySelectorAll("p, h1, h2, h3, h4, li, td, th, blockquote, pre, code:not(pre code)"),a=[];for(let e of t){let t=w(e);t&&a.push(t)}let s=a.join("\n");return(s.length<=16e3?s:`${s.substring(0,16e3)} Content was truncated. Use the API to get full content.`).replace(/\s{2,}/g," ").trim()}():void 0,g={responseMessageID:t,content:a,intent:r,references:o,context:n,currentURL:window.location.href,streaming:!0,confirmations:l,customInstructions:d,model:h,mode:i,settings:u.Jt.settings??void 0,customCopilotID:p?.id,customCopilotOwner:p?.owner,parentMessageID:m,mediaContent:s,skillOptions:k,pageContext:y,requestTrace:u.Jt.getTracingRequestedFlag()},T=this.processQueryParams(new URLSearchParams(window.location.search)),I=await this.makeCAPIRequest(`/threads/${e}/messages?${T.toString()}`,"POST",g,!0,void 0,f);return I.ok?{status:I.status,ok:!0,response:I}:I}processQueryParams(e){let t=["instruction_prompt"],a=new URLSearchParams;for(let[s,r]of e)t.includes(s)&&a.append(s,r);return a}async listModels(){let e=await this.makeCAPIRequest("/models","GET",void 0,!1,"");if(!e.ok)return e;let t=await e.json();return{status:e.status,ok:!0,payload:t.data}}async setModelPolicyState(e,t){let a=await this.makeCAPIRequest(`/models/${e}/policy`,"POST",{state:t},!1,"");if(!a.ok)return Promise.reject(Error(`Failed to update model policy state: ${a.status}`))}async getSimpleCompletion(e,t){let a=(0,p.wv)(),s=t??a.id,r=await this.makeCAPIRequest("/chat/completions","POST",{messages:[{role:"user",content:e}],selectedModel:s,stream:!1},!1,"");if(!r.ok)return r;let i=(await r.json()).choices[0]?.message?.content||"";return{status:r.status,ok:!0,payload:i}}async sendFeedback({feedback:e,feedbackChoice:t,messageId:a,threadId:s,textResponse:r}){let i=await this.makeDotcomRequest(`${this.urlPathPrefix}/feedback`,"POST",{feedback:e,feedback_choice:t,message_id:a,thread_id:s,text_response:r});return i.ok?{status:i.status,ok:!0,payload:null}:i}async listRepoFiles(e,t=!1){let a=(0,i.ClY)({repo:e,commitOid:e.commitOID,includeDirectories:t});return this.repoFilesCache.get(a)}listRepoFilesImpl=async e=>{let t=await this.makeDotcomRequest(e,"GET");return t.ok?{status:200,ok:!0,payload:await t.json()}:t};repoFilesCache=new n.d(this.listRepoFilesImpl);async querySymbols(e,t){return await this.blackbirdCaches.setupWarmCachesLoop(),this.querySymbolsCache.get(e.ownerLogin,e.name,t)}querySymbolsImpl=async(e,t,a)=>{let s=await this.makeDotcomRequest(`/search/suggestions?query=repo:${e}/${t} ${a}`,"GET");return s.ok?{status:200,ok:!0,payload:(await s.json()).suggestions.filter(e=>"SUGGESTION_KIND_SYMBOL"===e.kind)}:s};querySymbolsCache=new n.d(this.querySymbolsImpl);async fetchImplicitContext(e,t,a){let s=await this.makeDotcomRequest(`${this.urlPathPrefix}/implicit-context/${t}/${a}/${encodeURIComponent(e)}`,"GET");return s.ok?{status:s.status,ok:s.ok,payload:await s.json()}:s}async fetchReferenceDetails(e,t,a,s){let r=await this.makeDotcomRequest(`/copilot/chat/reference/${e}/${t}/${a}/${s}`,"GET");return r.ok?{status:r.status,ok:r.ok,payload:await r.json()}:r}getCachedRepo(e){return this.repoDetailsCache.get(e)}async fetchRepo(e){let t;if(this.repoDetailsCache.has(e))t=this.repoDetailsCache.get(e);else{let a=await this.makeDotcomRequest(`${this.urlPathPrefix}/repositories/${e}`,"GET");if(!a.ok)return a;t=await a.json(),this.repoDetailsCache.set(e,t)}return{status:200,ok:!0,payload:t}}async fetchFileContents(e,t,a){let s=await this.makeDotcomRequest(`${this.urlPathPrefix}/file_contents/${e}/${t}/${a}`,"GET");return s.ok?{status:200,ok:!0,payload:await s.json()}:s}async fetchFileContentsNwo(e,t,a,s){let r;return(r=s?await this.makeDotcomRequest(`${this.urlPathPrefix}/file_contents_nwo/${e}/${t}/${encodeURIComponent(s)}/${a}`,"GET"):await this.makeDotcomRequest(`${this.urlPathPrefix}/file_contents_nwo/${e}/${t}/${a}`,"GET")).ok?{status:200,ok:!0,payload:await r.json()}:r}async listAgents(e){let t=await (0,o.lS)(e);if(!t.ok)return{status:t.status,ok:!1,error:l.nN[t.status]||l.DW};let a=await t.json();return{status:t.status,ok:t.ok,payload:a}}async listCustomCopilots(){let e=await (0,o.lS)(`${this.urlPathPrefix}/custom_copilots`);if(!e.ok)return{status:e.status,ok:!1,error:l.nN[e.status]||l.DW};let t=await e.json();return{status:e.status,ok:!0,payload:t}}async fetchCopilotSpace(e){let t,{owner:a,id:s}=e;t=a?`${this.urlPathPrefix}/custom_copilots/${a}/${s}`:`${this.urlPathPrefix}/custom_copilots/${s}`;let r=await (0,o.lS)(t);if(!r.ok)return{status:r.status,ok:!1,error:l.nN[r.status]||l.DW};let i=await r.json();return{status:r.status,ok:!0,payload:i}}async fetchCustomAgents(e,t){let a=await this.makeCAPIRequest(`/agents/swe/custom-agents/${e}/${t}`,"GET",void 0,void 0,"");if(!a.ok)return 404===a.status?{status:a.status,ok:!0,payload:[]}:{status:a.status,ok:!1,error:l.nN[a.status]||l.DW};let s=(await a.json()).agents;return{status:a.status,ok:!0,payload:s}}async hydrateReference(e){if(!m.has(e.type))return{status:204,ok:!0,payload:e};let t=await this.makeDotcomRequest(`${this.urlPathPrefix}/reference_details`,"POST",{reference:e});return t.ok?{status:t.status,ok:t.ok,payload:await t.json()}:t}async fetchLanguageForFileReference(e){let{repoOwner:t,repoName:a}=e,s=window.btoa(e.path),r=(0,i.RT3)({ownerLogin:t,name:a},s,!0),o=await this.makeDotcomRequest(r,"GET");return o.ok?{status:o.status,ok:o.ok,payload:await o.json()}:o}async fetchAutocompleteIssues(e,t){let a=await this.makeDotcomRequest(`/copilot/chat/autocomplete/issues?repo=${e}&q=${t}`,"GET");return a.ok?await a.json():[]}async fetchAutocompletePullRequests(e,t){let a=await this.makeDotcomRequest(`/copilot/chat/autocomplete/pulls?repo=${e}&q=${t}`,"GET");return a.ok?await a.json():[]}async fetchAutocompleteDiscussions(e,t){let a=await this.makeDotcomRequest(`/copilot/chat/autocomplete/discussions?repo=${e}&q=${t}`,"GET");return a.ok?await a.json():[]}async fetchRepositoriesSearch(e,t,a=!0,s,r){let i=new URLSearchParams;e&&i.set("q",e),t&&i.set("limit",t.toString()),a||i.set("includeForks","false"),s&&i.set("currentRepoId",s.toString()),r&&i.set("owner",r);let o=await this.makeDotcomRequest(`${this.urlPathPrefix}/repositories_search?${i.toString()}`,"GET");return o.ok?(await o.json()).repositories.map(e=>({databaseId:e.databaseId,isInOrganization:e.isInOrganization,name:e.name,nwo:e.nameWithOwner,ownerLogin:e.ownerLogin,ownerAvatarUrl:e.ownerAvatar})):[]}async fetchTopRepositories(e=10,t=!0,a,s){return this.fetchRepositoriesSearch(void 0,e,t,a,s)}async makeDotcomRequest(e,t,a){let s={};for(let e of(0,h.f)()){let t=e.split("="),a=t[0]?.replaceAll("_","-"),r="1";t.length>1&&(r=t[1]),s[`X-Experiment-${a}`]=r}let r=await this.copilotAuthTokenProvider.getAuthToken();s["X-Copilot-Api-Token"]=r.value;try{let r=await (0,o.lS)(e,{method:t,body:a,headers:s});if(r.ok)return r;return{status:r.status,ok:!1,error:l.nN[r.status]||l.DW}}catch{return{status:500,ok:!1,error:l.DW}}}get directConnectConfiguration(){return{integrationID:"copilot-chat"}}async makeCAPIRequest(e,t,a,s=!1,r="/github/chat",i){let o=this.apiURL,n=await this.copilotAuthTokenProvider.getAuthToken();return await (0,l.p)({basePath:o+r,path:e,method:t,body:a,streamingResponse:s,authToken:n,integrationId:this.directConnectConfiguration.integrationID,realIp:this.realIp,signal:i,apiVersion:this.apiVersion})}async fetchTracesByThreadID(e,t){let a=`/thread/${e}`;t&&(a+=`?sharedID=${encodeURIComponent(t)}`);let s=await this.makeCAPIRequest(a,"GET",void 0,!1,"/traces");if(!s.ok)return s;let r=await this.processTracesResponse(s);return{status:s.status,ok:!0,payload:r}}async fetchCoffeTrace(e){let t=await this.makeCAPIRequest(`/evaluation/thread/${e}`,"GET",void 0,!1,"/traces");if(!t.ok)return t;let a=await this.processTracesResponse(t);return{status:t.status,ok:!0,payload:a}}async processTracesResponse(e){let t=await e.json(),a=[];for(let e of t)e.spans&&Array.isArray(e.spans)&&e.id&&a.push({id:e.id,spans:e.spans});return a}async deleteTrace(e,t){let a=await this.makeCAPIRequest(`/thread/${e}/trace/${t}`,"DELETE",void 0,!1,"/traces");return a.ok?{status:a.status,ok:!0,payload:null}:a}async deleteTracesForThread(e){let t=await this.makeCAPIRequest(`/thread/${e}`,"DELETE",void 0,!1,"/traces");return t.ok?{status:t.status,ok:!0,payload:null}:t}}let w=e=>{let t=e.tagName.toLowerCase(),a=e.textContent;if(!a||!a.trim())return null;let s=a.trim();switch(t){case"h1":return`# ${s}`;case"h2":return`## ${s}`;case"h3":return`### ${s}`;case"h4":return`#### ${s}`;case"p":default:return s;case"li":return`\u{2022} ${s}`;case"code":return`\`${s}\``;case"pre":return`\`\`\` ${s} \`\`\``;case"blockquote":return`> ${s}`}}},81830(e,t,a){a.d(t,{q:()=>s});function s(e){return Array.isArray(e)?e.filter(e=>!("refOrigin"in e&&"custom_copilot"===e.refOrigin)&&!("type"in e&&"custom-instructions"===e.type)):e}},12104(e,t,a){a.d(t,{GF:()=>d,QA:()=>c,ZL:()=>f,eW:()=>p,fZ:()=>h,wv:()=>u});var s=a(16522),r=a(4216),i=a(20331),o=a(49685);let n="/images/modules/marketplace/models/families/openai-logo.svg",l=new Map([["Azure OpenAI",n],["OpenAI",n],["Anthropic","/images/modules/marketplace/models/families/anthropic.svg"],["Google","/images/modules/marketplace/models/families/gemini.svg"],["xAI","/images/modules/marketplace/models/families/xai.svg"]]),c="copilot-base";function u(){return{capabilities:{family:"gpt-4.1",limits:{max_prompt_tokens:128e3,vision:{supported_media_types:["image/jpeg","image/png","image/webp","image/gif"]}},supports:{parallel_tool_calls:!0,tool_calls:!0},tokenizer:"o200k_base",type:"chat"},id:"gpt-4.1",name:"GPT-4.1",displayName:"GPT-4.1",model_picker_enabled:!0,preview:!1,vendor:"OpenAI",logoURL:n,isThirdParty:!1,hasLimitedCapabilities:!1,version:"gpt-4.1-2025-04-14"}}function d(e){let t,a=(0,s.c)(5),{plan:i,premiumInteractionsQuotaExceeded:o,overagesEnabled:n}=(0,r.xR)();return a[0]!==e||a[1]!==n||a[2]!==i||a[3]!==o?(t=h(e,i,o,n),a[0]=e,a[1]=n,a[2]=i,a[3]=o,a[4]=t):t=a[4],t}function h(e,t,a,s){var r,l;let c;return o.W.forceLegacyChatDefaultModel?{capabilities:{family:"gpt-4o",limits:{max_prompt_tokens:2e4,vision:{supported_media_types:["image/jpeg","image/png","image/webp","image/gif"]}},supports:{parallel_tool_calls:!0,tool_calls:!0},tokenizer:"o200k_base",type:"chat"},id:"gpt-4o",name:"GPT 4o",version:"gpt-4o-2024-05-13",displayName:"GPT 4o",vendor:"Azure OpenAI",logoURL:n,hasLimitedCapabilities:!1,preview:!1,isThirdParty:!1,model_picker_enabled:!0}:(r=!!a,l=!!s,(c=o.W.premiumRequestQuotasEnabled&&t!==i.UH.IndividualFree&&r&&!l?e?.find(e=>!0===e.is_chat_fallback):e?.find(e=>!0===e.is_chat_default))||u())}function p(e){return(e??[u()]).map(m).filter(e=>!!e).filter(e=>e.model_picker_enabled)}function m(e){var t,a,s;if("chat"!==e.capabilities.type||!((t=e).model_picker_enabled&&(!t.policy||"enabled"===t.policy.state||t.policy.terms)))return null;let r=l.get(e.vendor);return"xAI"===e.vendor&&null!==document.querySelector('[data-color-mode="dark"]')&&(r="/images/modules/marketplace/models/families/xai-dark.svg"),{...e,displayName:function(e){for(let t of w)if(e.name.endsWith(t))return e.name.replace(t,"").trim();return e.name}(e),hasLimitedCapabilities:(a=e,s=o.W.copilotChatO1Tools,"o1-ga"===a.capabilities.family?!s:"o3"===a.capabilities.family||!a.capabilities.supports.tool_calls),isThirdParty:"Azure OpenAI"!==e.vendor,logoURL:r}}function f(e){return null!=e.custom_model}let w=["(Beta)","(Preview)"]},96978(e,t,a){a.d(t,{r:()=>s});function s(e){let t=new Map,a=[];return e.map(e=>{let s={name:e.name,spanId:e.spanId,attributes:e.attributes,startTime:e.startTime,endTime:e.endTime,children:[],sessionId:e.sessionId,userId:e.userId,input:e.input,output:e.output,metadata:e.metadata};t.set(s.spanId,s);let r=e.parentId&&t.get(e.parentId);return r?r.children.push(s):a.push(s),s}),a}}}]); //# sourceMappingURL=6478-da13673e7c9225ff-1c95bd2925684609.js.map