@github/copilot 0.0.349-14 → 0.0.349-15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/package.json +2 -2
package/index.js
CHANGED
|
@@ -2404,7 +2404,7 @@ Run `+Jl.cyan("{updateCommand}")+" to update",I=e.message||r;e.boxenOptions??={p
|
|
|
2404
2404
|
`).map(l=>l.trim()).filter(l=>l&&!l.startsWith("#")).map(l=>l.endsWith("/")?l.slice(0,-1)+"/**":l)}shouldIgnore(e){try{let l=dzn(this.rootPath,e);return l==="."||l.startsWith("..")?!1:this.ig.ignores(l)}catch{return!1}}getDirectoryFilter(){return e=>{if(!e||e===".")return!1;let l=e.startsWith("./")?e.slice(2):e;return!l||l==="."?!1:this.ig.ignores(l)}}getFileFilter(){return e=>{if(!e||e===".")return!1;let l=e.startsWith("./")?e.slice(2):e;return!l||l==="."?!1:this.ig.ignores(l)}}updateFingerprint(){this.fingerprint=JSON.stringify(this.patterns)}getFingerprint(){return this.fingerprint}getPatterns(){return[...this.patterns]}};var ydl=2e4,Dtt=class extends Error{constructor(e="Search aborted"){super(e),this.name="AbortError"}};async function Edl(t,e,l,n){let r=(0,Ydl.default)(e,{dot:!0,contains:!0,nocase:!0}),I=[];for(let[a,s]of t.entries()){if(a%1e3===0&&(await new Promise(o=>setImmediate(o)),l?.aborted))throw new Dtt;if(r(s)&&I.push(s),I.length>=n)break}return I.sort((a,s)=>{let o=a.endsWith(AT),d=s.endsWith(AT);return o&&!d?-1:!o&&d?1:a<s?-1:a>s?1:0}),I}var ibe=class{rootPath;ignorePatterns;maxResults;cacheTimeout;indexFileStats;maxStatConcurrency;includeDirsInIndex;allFiles=[];visiblePaths=[];fileCache=[];fileByRelative=new Map;lastCacheUpdate=0;isIndexing=!1;indexingPromise=null;isIndexed=!1;strategy="v2";fzf;onIndexingStart;onIndexingComplete;logger;constructor(e={}){this.rootPath=e.rootPath||process.cwd(),this.ignorePatterns=new obe(this.rootPath),this.maxResults=e.maxResults||50,this.cacheTimeout=e.cacheTimeout??5*6e4,this.indexFileStats=e.indexFileStats??!1,this.maxStatConcurrency=e.maxStatConcurrency??64,this.includeDirsInIndex=e.includeDirsInIndex??!1,this.onIndexingStart=e.onIndexingStart,this.onIndexingComplete=e.onIndexingComplete,this.logger=e.logger||new fc}async search(e){if(await this.ensureFileIndex(),this.fileCache.length===0)return[];if(!e.trim()){let l=this.fileCache;return l.slice(0,this.maxResults).map((n,r)=>({path:n.path,score:1-r/Math.max(l.length,1),relativePath:n.relativePath}))}if(e.includes("*")){let l=await Edl(this.visiblePaths,e,void 0,this.maxResults),n=[],r=this.fileByRelative;for(let[I,a]of l.entries()){if(I%1e3===0&&await new Promise(o=>setImmediate(o)),n.length>=this.maxResults)break;if(a===".")continue;let s=r.get(a);if(s){let o=this.calculateScore(s.relativePath,e);n.push({path:s.path,score:o,relativePath:s.relativePath})}}return n.sort((I,a)=>a.score-I.score),n}else{this.fzf||(this.fzf=new aCe(this.visiblePaths,{fuzzy:this.visiblePaths.length>ydl?"v1":"v2"}));let l=[];try{l=await this.fzf.find(e)}catch{l=(await Edl(this.visiblePaths,e,void 0,this.maxResults)).map(a=>({item:a,score:1,start:0,end:0,positions:new Set}))}let n=l.slice(0,this.maxResults).map((I,a)=>({rel:I.item,idx:a})),r=[];for(let{rel:I,idx:a}of n){if(I===".")continue;let s=this.fileByRelative.get(I);s&&r.push({file:s,idx:a,bucket:this.exactBucket(s.relativePath,e),score:this.calculateScore(s.relativePath,e)})}return r.sort((I,a)=>a.bucket-I.bucket||I.idx-a.idx),r.map(I=>({path:I.file.path,relativePath:I.file.relativePath,score:I.score}))}}exactBucket(e,l){let n=e.toLowerCase(),r=l.toLowerCase();if(n===r)return 3;let I=n.lastIndexOf(AT),a=I===-1?n:n.slice(I+1);return a===r?2:a.startsWith(r)?1:0}calculateScore(e,l){let n=e.toLowerCase(),r=l.toLowerCase();if(n===r)return 1;let I=e.lastIndexOf(AT),s=(I===-1?e:e.slice(I+1)).toLowerCase();if(s===r)return .95;if(s.startsWith(r))return .85;if(n.startsWith(r))return .75;let o=n.indexOf(r);return o===-1?.5:Math.max(.1,.7-o/n.length)}async refresh(){this.invalidateCache(),await this.ensureFileIndex()}invalidateCache(){this.lastCacheUpdate=0,this.isIndexed=!1,this.indexingPromise=null,this.fileCache=[],this.allFiles=[],this.fzf=void 0,this.visiblePaths=[],this.fileByRelative.clear()}getCacheInfo(){return{fileCount:this.fileCache.length,lastUpdated:this.lastCacheUpdate,isIndexing:this.isIndexing,strategy:this.strategy,isIndexed:this.isIndexed}}async ensureFileIndex(){let e=Date.now();if(!(this.isIndexed&&this.fileCache.length>0&&e-this.lastCacheUpdate<this.cacheTimeout))return this.indexingPromise?this.indexingPromise:(this.isIndexing=!0,this.indexingPromise=this.buildFileIndex().finally(()=>{this.isIndexing=!1,this.indexingPromise=null}),this.indexingPromise)}async buildFileIndex(){let e=Date.now();this.onIndexingStart?.();try{await this.ignorePatterns.loadPatterns(),this.allFiles=await this.performCrawl();let l=await this.filterFilesConcurrently(this.allFiles),n=l.map(I=>({path:mzn(this.rootPath,I),relativePath:I,lastModified:0}));this.indexFileStats&&n.length&&await this.fillStatsConcurrently(n,this.maxStatConcurrency),n.sort((I,a)=>I.relativePath.localeCompare(a.relativePath)),this.fileCache=n,this.visiblePaths=l,this.fileByRelative=new Map(n.map(I=>[I.relativePath,I])),this.lastCacheUpdate=Date.now(),this.isIndexed=!0,this.strategy=this.visiblePaths.length>ydl?"v1":"v2";let r=Date.now()-e;this.onIndexingComplete?.(this.fileCache.length,r)}catch(l){this.logger.error(`Error building file index: ${l}`),this.fileCache=[],this.allFiles=[],this.visiblePaths=[],this.fileByRelative.clear(),this.isIndexed=!1;let n=Date.now()-e;this.onIndexingComplete?.(0,n)}}async fillStatsConcurrently(e,l){let n=0,r=new Array(Math.min(l,e.length)).fill(0).map(async()=>{for(;;){let I=n++;if(I>=e.length)break;let a=e[I];try{let s=await uzn(a.path);a.lastModified=s.mtime.getTime()}catch{}I%2e3===0&&await new Promise(s=>setImmediate(s))}});await Promise.all(r)}async filterFilesConcurrently(e,l=50){let n=this.ignorePatterns.getFileFilter(),r=[];for(let I=0;I<e.length;I+=l){let a=e.slice(I,I+l),s=a.map(o=>!n(o));a.forEach((o,d)=>{s[d]&&r.push(o)}),await new Promise(o=>setImmediate(o))}return r}async performCrawl(){let e=this.ignorePatterns.getDirectoryFilter(),l=new Rdl.fdir().withRelativePaths().withPathSeparator(AT).exclude((n,r)=>{let I=bzn(this.rootPath,r);if(I==="."||I==="")return!1;let a=I.endsWith(AT)?I:`${I}${AT}`;return e(a)});return this.includeDirsInIndex&&l.withDirs(),l.crawl(this.rootPath).withPromise()}getRootPath(){return this.rootPath}async setRootPath(e){this.rootPath=e,this.ignorePatterns=new obe(e),this.invalidateCache()}},_tt=null;function Vdl(){return _tt||(_tt=new ibe),_tt}function wdl(t,e,l){let[n,r]=(0,QL.useState)([]),[I,a]=(0,QL.useState)(0),[s,o]=(0,QL.useState)(new Map),d=e||Vdl(),u=(0,QL.useMemo)(()=>{let{text:w,cursorPosition:H}=t,J=-1;for(let O=H-1;O>=0;O--){let U=w[O];if(U==="@"){if(O===0||w[O-1]===" "||w[O-1]===`
|
|
2405
2405
|
`||w[O-1]===" "){J=O;break}}else if(U===" "||U===`
|
|
2406
2406
|
`||U===" ")break}if(J===-1)return{isAtMention:!1,atPosition:-1,query:""};let S=w.slice(J+1,H);return S.includes(" ")||S.includes(`
|
|
2407
|
-
`)||S.includes(" ")?{isAtMention:!1,atPosition:-1,query:""}:{isAtMention:!0,atPosition:J,query:S}},[t.text,t.cursorPosition]);(0,QL.useEffect)(()=>{if(!u.isAtMention){r([]),a(0);return}let w=!1,H=async()=>{try{let S=await d.search(u.query),O=[...S];u.query===""&&l&&(O=[...l.getDirectories().map(T=>({path:T,relativePath:`[DIR] ${T}`,score:1})),...S]),w||(r(O),a(0))}catch{w||(r([]),a(0))}},J=setTimeout(()=>{H()},200);return()=>{w=!0,clearTimeout(J)}},[u.query,u.isAtMention,d]);let b=()=>{n.length!==0&&a(w=>w>0?w-1:n.length-1)},p=()=>{n.length!==0&&a(w=>w<n.length-1?w+1:0)},h=()=>{if(!u.isAtMention||n.length===0)return null;let w=n[I];if(!w)return null;let H=`@${w.relativePath}`,J=`${H} `,{text:S,cursorPosition:O}=t,U=S.slice(0,u.atPosition),j=S.slice(O),T=U+J+j,z={displayText:H,fullPath:w.path,type:w.relativePath.startsWith("[DIR]")?"directory":"file",startIndex:u.atPosition};return o(se=>{let de=new Map(se);return de.set(z.startIndex,z),de}),t.setText(T),t.setCursorPosition(u.atPosition+J.length),w.relativePath},Z=()=>{r([]),a(0)},N=()=>{o(new Map)};return[{isActive:u.isAtMention&&n.length>0,query:u.query,suggestions:n,selectedIndex:I,atPosition:u.atPosition,storedMentions:s},{navigateUp:b,navigateDown:p,complete:h,reset:Z,clearStoredMentions:N}]}c();var iCe=nt($t(),1),qdl=nt(jxe(),1);import{readdir as Szn,readFile as Bzn}from"node:fs/promises";import Ozn,{join as Kdl}from"node:path";c();function ZT(t,e){if(e instanceof Error)return`${t}: ${e.message}`;if(typeof e=="object"&&e!==null)try{return`${t}: ${JSON.stringify(e)}`}catch{return`${t}: [object with circular reference]`}else return`${t}: ${String(e)}`}c();var oCe=nt($t(),1);c();var _dl=nt(Mdl(),1);function jtt(t){try{let e=(0,_dl.default)(t.FetchURL);return e.source!=="github.com"||!e.owner||!e.name?null:{owner:e.owner,name:e.name,host:"github.com"}}catch{return null}}async function sCe(t){let e=await d_t(t);if(e.length===0)return null;if(e.length===1)return jtt(e[0]);let l=e.find(n=>n.Name==="origin");return jtt(l||e[0])}function Ddl(t){let[e,l]=(0,oCe.useState)(null);return(0,oCe.useEffect)(()=>{(async()=>{let n=await Ktt(t);l(r=>!r||r.kind!==n.kind||r.path!==n.path||n.kind==="git"&&r.kind==="git"&&(r.repo?.owner!==n.repo?.owner||r.repo?.name!==n.repo?.name)?n:r)})()},[t]),e}async function Ktt(t){let e=await af(t);if(!e.found)return{kind:"plain",path:t};try{let l=await sCe(e.gitRoot);return{kind:"git",path:e.gitRoot,repo:l}}catch{return{kind:"git",path:e.gitRoot,repo:null}}}function $dl(t,e,l,n,r,I){let[a,s]=(0,iCe.useState)({selected:null,available:[],warnings:[]}),o=Ddl(I);return(0,iCe.useEffect)(()=>{if(!t)return;(async()=>{let{agents:u,warnings:b}=await qtt(e,l,n,Ozn.join(r,"agents"),o);s({selected:null,available:u,warnings:b})})()},[t,e,l,n,r,o]),{customAgents:a,selectCustomAgent:async d=>{if(!t)throw new Error("attempted to use disabled feature flagged feature");let u=a.available.find(p=>p.id===d);if(!u)throw new Error(`attempted to select unknown custom agent: ${d} from ${a.available.map(p=>p.id).join(", ")}`);let b=await u.prompt().then(p=>({kind:"success",prompt:p}),p=>({kind:"error",message:ZT("loading custom agent prompt",p)}));return b.kind==="error"?{kind:"error",message:b.message}:(s(p=>({...p,selected:{id:u.id,displayName:u.displayName,prompt:b.prompt}})),{kind:"success"})}}}function zdl(t){let e=new Set,l=[];for(let n of t)e.has(n.id)||(e.add(n.id),l.push(n));return l}async function qtt(t,e,l,n,r){let I=await Pdl(n);if(r===null)return{agents:I.agents,warnings:I.warnings};let a=await Pdl(Kdl(r.path,".github","agents")),s=zdl([...I.agents,...a.agents]),o=[...I.warnings,...a.warnings];if(r.kind!=="git")return{agents:s,warnings:o};if(!r.repo)return{agents:s,warnings:[...o,"could not load remote agents, no github.com remote found"]};if(!l)return{agents:s,warnings:[...o,Kq(r.repo,"no authentication available")]};let d=await Tzn(t,e,l,r.repo);return{agents:zdl([...s,...d.agents]),warnings:[...o,...d.warnings]}}function Kq(t,e){return`could not load remote agents for ${t.owner}/${t.name}: ${e}`}async function Tzn(t,e,l,n){let r=P2(l,{onHMACAuthInfo:()=>$ee,onEnvAuthInfo:Z=>Z.host,onGhCliAuthInfo:Z=>Z.host,onUserAuthInfo:Z=>Z.host,onApiKeyAuthInfo:Z=>Z.host}),{host:I}=new URL(r);if(I!=="github.com")return{agents:[],warnings:[Kq(n,"auth info does not target github.com")]};let a=await DW(l);if(!a)return{agents:[],warnings:[Kq(n,"no usable token for accessing repo contents found")]};let s=await eul(()=>d0(r,a),Z=>ZT("fetching copilot URL",Z));if(s.kind==="error")return{agents:[],warnings:[Kq(n,s.message)]};let o=`${s.value}/agents/swe/custom-agents/${n.owner}/${n.name}`,d={Authorization:`Bearer ${a}`},u=await nC(o,{method:"GET",headers:d},t);if(!u.ok)return t.warning(`Failed to load custom agents for ${n.owner}/${n.name}: ${await u.text()}`),{agents:[],warnings:[Kq(n,`server returned ${u.status}: ${u.statusText}`)]};let b=await u.json(),h=ka.object({agents:ka.array(tul)}).safeParse(b);return h.success?{agents:h.data.agents.map(Z=>({id:Z.name,displayName:Z.display_name,prompt:async()=>{let N=await Pzn({logger:t,integrationId:e,sweAgentsEndpoint:`${s.value}/agents/swe`,token:a,repoOwner:Z.repo_owner,repoName:Z.repo_name,customAgentName:Z.name});if(!N)throw new Error(`Failed to load prompt for agent ${Z.name}`);return N.prompt}})),warnings:[]}:{agents:[],warnings:[Kq(n,ZT("parsing http response into schema",h.error))]}}async function Pdl(t){let e=await Szn(t,{withFileTypes:!0}).then(r=>({kind:"success",dirEntries:r})).catch(r=>r.code==="ENOENT"?{kind:"success",dirEntries:[]}:{kind:"error",message:ZT(t,r)});if(e.kind==="error")return{agents:[],warnings:[]};let l=[],n=[];for(let r of e.dirEntries)if(r.isFile()&&r.name.endsWith(".md")){let I=Kdl(t,r.name),a=r.name.slice(0,-3),s=await jdl(I);if(s.kind==="error"){n.push(s.message);continue}l.push({id:a,displayName:s.agent.name,prompt:async()=>{let o=await jdl(I);if(o.kind==="error")throw new Error(o.message);return await o.agent.prompt()}})}return{agents:l,warnings:n}}async function jdl(t){let e=await eul(()=>Bzn(t,"utf-8"),n=>ZT(t,n));if(e.kind==="error")return{kind:"error",message:e.message};let l=Uzn(e.value);return l.kind==="error"?{kind:"error",message:`${t}: ${l.message}`}:{kind:"success",agent:l.agent}}var Uzn=t=>{let e=ka.object({name:ka.string(),description:ka.string(),tools:ka.array(ka.string()).optional()}).strict(),l=/^---\s*\n([\s\S]*?)\n---\s*\n?/,n=t.match(l);if(!n)return{kind:"error",message:"custom agent markdown frontmatter is malformed"};let r=n[1];try{let I=(0,qdl.parse)(r),a=e.safeParse(I);if(!a.success)return{kind:"error",message:Mzn(a.error)};let s=t.slice(n[0].length);return{kind:"success",agent:{name:a.data.name,description:a.data.description,tools:a.data.tools||["*"],prompt:()=>Promise.resolve(s)}}}catch(I){return{kind:"error",message:ZT("failed to parse front matter",I)}}};function Mzn(t){return t.issues.map(e=>`${e.path.join(".")||"(root)"}: ${e.message}`).join(", ")}async function eul(t,e){try{return{kind:"success",value:await t()}}catch(l){return{kind:"error",message:e(l)}}}var _zn=ka.object({command:ka.string(),args:ka.array(ka.string()),env:ka.record(ka.string(),ka.string()).optional(),tools:ka.array(ka.string()),type:ka.enum(["local","stdio"]).optional()}),Dzn=ka.object({url:ka.string(),headers:ka.record(ka.string(),ka.string()).optional(),tools:ka.array(ka.string()),type:ka.enum(["http","sse"])}),tul=ka.object({name:ka.string(),repo_owner:ka.string(),repo_name:ka.string(),display_name:ka.string(),description:ka.string(),tools:ka.array(ka.string()),version:ka.string(),mcp_servers:ka.record(ka.string(),ka.union([_zn,Dzn])).optional().nullable()}),zzn=tul.extend({prompt:ka.string()});async function Pzn(t){t.logger.info(`Reading custom agent "${t.customAgentName}" from ${t.repoOwner}/${t.repoName}`);try{let e={"Copilot-Integration-Id":t.integrationId,Authorization:`Bearer ${t.token}`,"X-GitHub-Job-Nonce":t.jobNonce??""},l=await nC(`${t.sweAgentsEndpoint}/custom-agents/${t.repoOwner}/${t.repoName}/${t.customAgentName}`,{method:"GET",headers:e},t.logger,"get custom agent config");if(!l.ok){if(l.status===404)return null;throw new Error(`Failed to get custom agent config: ${l.status} ${l.statusText}`)}let n=await l.json();return zzn.parse(n)}catch(e){let l=e,n=l?.requestId||"unknown";throw t.logger.error(`Failed to get custom agent config (request ID: ${n}): ${l}`),l}}c();var $W=nt($t(),1);function lul(t){let{cliModel:e,session:l,currentWorkingDirectory:n,customAgentName:r,stdoutColumns:I,models:a}=t,[s,o]=(0,$W.useState)({gitRoot:"",found:!1}),[d,u]=(0,$W.useState)(null);(0,$W.useEffect)(()=>{(async()=>{u(null);let w=await af(n);o(w)})()},[n]);let b=(0,$W.useCallback)(async()=>{if(!s.found){u(null);return}let Y=await m_t(s.gitRoot);if(!Y){u(null);return}let w=await u_t(s.gitRoot);u(H=>H?.branch===Y&&H?.hasChanges===w?H:{branch:Y,hasChanges:w})},[s]),p=(0,$W.useMemo)(()=>kye(n),[n]),[h,Z]=(0,$W.useState)("");(0,$W.useEffect)(()=>{(async()=>{if(!a||a.type!=="success")return;let w=await YO(e,l,a.list);w&&Z(H=>H===w?H:w)})()},[e,l,a]);let N=(0,$W.useMemo)(()=>{if(!d||!d.branch)return null;let Y=I||80,w=h.length,H=r?.length||0,J=p.length,S=d.hasChanges?6:5,U=w+J+S+4+H,T=Math.max(8,Y-U)-3;return`[\u2387 ${d.branch.length>T?d.branch.substring(0,T)+"...":d.branch}${d.hasChanges?"*":""}]`},[d,I,p,h]),y=(0,$W.useMemo)(()=>{if(!h)return h;let Y=a&&a.type==="success"?a.list:void 0,w=k8(h,Y);return`${h} (${w}x)`},[h,a]);return{displayCwd:p,gitBranchInfo:N,selectedModel:h,selectedModelDisplay:y,setSelectedModel:Z,updateGitStatus:b}}c();var gZ=nt($t(),1),jzn=3*1e3;function nul(){let[t,e]=(0,gZ.useState)("idle"),[l,n]=(0,gZ.useState)(0),[r,I]=(0,gZ.useState)(0),[a,s]=(0,gZ.useState)(!1),o=(0,gZ.useRef)(null);(0,gZ.useEffect)(()=>()=>{o.current&&clearTimeout(o.current)},[]);let d=(0,gZ.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),e("indexing"),n(0),I(0),s(!0)},[]),u=(0,gZ.useCallback)((Z,N)=>{e("completed"),n(Z),I(N),s(!0),o.current=setTimeout(()=>{s(!1),o.current=null},jzn)},[]),b=(0,gZ.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),e("idle"),n(0),I(0),s(!1)},[]),p={state:t,fileCount:l,durationMs:r,isVisible:a},h=(0,gZ.useMemo)(()=>({startIndexing:d,completeIndexing:u,reset:b}),[d,u,b]);return[p,h]}c();var cCe=nt($t(),1);function rul(t,e,l,n){let[r,I]=(0,cCe.useState)();return(0,cCe.useEffect)(()=>{async function a(){if(!l)return;let s=await $tt(t,e,l,n);I(s)}a()},[l,e,n]),{models:r}}async function $tt(t,e,l,n){if(aL())return{type:"success",list:[]};try{if(l.type==="hmac")return{type:"success",list:await S9.createWithHmac(t,$ee,n,l.hmac,e).listModels()};let r=await DW(l);if(!r)return{type:"noauth"};let I=await d0(l.host,r);return{type:"success",list:await S9.createWithOAuthToken(t,I,n,r,e).listModels()}}catch(r){return{type:"error",error:r}}}c();var Dw=nt($t(),1);function Iul(t=3){let[e,l]=(0,Dw.useState)(!1),n=(0,Dw.useRef)(null),r=(0,Dw.useRef)(t*1e3);(0,Dw.useEffect)(()=>{r.current=t*1e3},[t]),(0,Dw.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]);let I=(0,Dw.useCallback)(a=>{n.current&&(clearTimeout(n.current),n.current=null),l(!0);let s=a!==void 0?a*1e3:r.current;n.current=setTimeout(()=>{l(!1),n.current=null},s)},[]);return[e,I]}c();var cbe=nt($t(),1);function aul({builtInSlashCommands:t,logger:e,currentWorkingDirectory:l,setCurrentWorkingDirectory:n,fileSearch:r,authManager:I,mcpHost:a,loginStatus:s,setLoginStatus:o,addEntryToSession:d,clearSessionHistory:u,getSessionUsageOutput:b,pathManager:p,resetSessionToolApprovals:h,clearTimeline:Z,clearHeader:N,clearContextWindowMetrics:y,setThemePreference:Y,refreshStatic:w,hasAvailableCustomAgents:H,slashCommandResultActions:J}){let S=(0,cbe.useMemo)(()=>({logger:e,slashCommands:t,hasAvailableCustomAgents:H,mcp:{host:a,config:async()=>await K2.load()||{mcpServers:{}},hasServer:async j=>(await S.mcp.config())?.mcpServers[j]!==void 0,deleteServer:async j=>{let T=await S.mcp.config();delete T.mcpServers[j],await K2.write(T)}},auth:{availableAuthMethods:()=>SMt(I,s.authInfo),loginStatus:s,logout:async()=>{let j=await I.logout();return o({status:"NotLoggedIn"}),j}},session:{addTimelineEntry:d,clearHistory:u,usageOutput:b},permissions:{allowedDirs:p.getDirectories.bind(p),addAllowedDirectory:p.addDirectory.bind(p),resetSessionToolApprovals:h},process:{cwd:l,chdir:async j=>{process.chdir(j),await p.updatePrimaryDirectory(j),n(j),await r.setRootPath(j)}},ui:{getThemePreference:BVe,setThemePreference:Y,clear:()=>{Z(),N(),y(),w()}}}),[t,e,l,n,r,I,a,s,o,d,u,b,p,h,N,y,Y,w,H]),O=(0,cbe.useCallback)(async j=>{let T=Bd(()=>{let ee=j.trim();return ee==="?"?"/help":ee});if(!T.startsWith("/"))return{handled:!1};let z=T.split(" ")[0],se=t.find(ee=>ee.name===z||ee.aliases?.includes(z));if(!se)return{handled:!1};let de=T.substring(se.name.length).trim().split(" ").filter(ee=>ee),Ze=await se.execute(S,de);if(!Ze)return{handled:!0};switch(Ze.kind){case"exit":return J.exit(),{handled:!0};case"add-timeline-entry":return d(Ze.entry),{handled:!0};case"show-dialog":switch(Ze.dialog.kind){case"custom-agent-picker":J.showCustomAgentPickerDialog();break;case"feedback":J.showFeedbackDialog();break;case"login":J.showLoginDialog();break;case"mcp":J.showMCPDialog(Ze.dialog.mode,Ze.dialog.serverName);break;case"model-picker":J.showModelPickerDialog();break;case"session":J.showSessionDialog();break;case"user-switcher":J.showUserSwitcherDialog();break;default:ob(Ze.dialog,`Unknown dialog kind: ${Ze.dialog}`)}return{handled:!0};case"set-model":return J.setModel(Ze.model),{handled:!0};case"noop":return{handled:!0};case"start-remote-delegate":return J.startRemoteDelegation(Ze.prompt),{handled:!0};default:ob(Ze,`Unknown slash command result kind: ${Ze}`)}},[t,d,J,S]),U=(0,cbe.useCallback)(j=>wue(t,j),[t]);return{slashCommands:t,handleSlashCommand:O,matchingSlashCommands:U}}c();var dCe=nt($t(),1);function sul(t,e,l){let n=(0,dCe.useMemo)(()=>new Map,[]);(0,dCe.useEffect)(()=>{(async()=>{if(Object.keys(t).length===0||t.staff!==void 0||!e)return;let I=await DW(e),a=e.type==="hmac"?void 0:e.host;if(!I||a!==nL)return;let s=n.get(I)??DUt(a,I).catch(()=>!1);n.set(I,s),await s&&(await Jr.writeKey("staff",!0),await Jr.writeKey("log_level","all"),l({type:"info",text:"Staff mode activated! Restart the app to enable staff features \u2728"}))})()},[t,e,l])}c();var FL=nt($t(),1);function oul(t,e,l){let[n,r]=(0,FL.useState)(null),I=(0,FL.useRef)("");return(0,FL.useEffect)(()=>{e.text!==I.current&&(n?.availableOptions.some(o=>e.text===o.name)||r(null),I.current=e.text)},[e.text,n]),{handleTabCompletion:(0,FL.useCallback)(()=>{let s=o=>{let d=o.indexOf(" ");return d===-1?!1:o.slice(d+1).trim().length>0};if(n){if(s(e.text)){r(null);return}let o=(n.currentIndex+1)%n.availableOptions.length,d=n.availableOptions[o];e.setText(d.name),r({...n,currentIndex:o}),l.setSlashCommandPickerIndex(o)}else{if(s(e.text))return;let o=wue(t,e.text);if(o.length===1){let d=o[0],u=d.name;for(let b=u.length-1;b>=2;b--){let p=u.slice(0,b),h=wue(t,p);if(h.length>1){let Z=h.findIndex(Y=>Y.name===d.name);r({originalInput:p,availableOptions:h,currentIndex:Z>=0?Z:0});let N=(Z+1)%h.length,y=h[N];e.setText(y.name),r({originalInput:p,availableOptions:h,currentIndex:N}),l.setSlashCommandPickerIndex(N);return}}}o.length>1?(r({originalInput:e.text,availableOptions:o,currentIndex:0}),e.setText(o[0].name),l.setSlashCommandPickerIndex(0)):o.length===1&&e.setText(o[0].name)}},[n,e,l]),tabCyclingState:n}}c();var kf=nt($t(),1);function iul(){let[t,e]=(0,kf.useState)({columns:process.stdout.columns,rows:process.stdout.rows}),l=(0,kf.useRef)(()=>{}),n=(0,kf.useCallback)(I=>{l.current=I||(()=>{})},[]),r=(0,kf.useCallback)(()=>{let{columns:I,rows:a}=process.stdout;e({columns:I,rows:a}),l.current(I,a)},[]);return(0,kf.useEffect)(()=>(process.stdout.on("resize",r),()=>{process.stdout.off("resize",r)}),[]),{...t,setOnResize:n}}c();var $q=nt($t(),1);var CL=t=>/\s/.test(t);function Kzn(t,e){if(e>=t.length)return t.length;let l=e;for(;l<t.length&&CL(t[l]);)l+=t[l].length;for(;l<t.length&&!CL(t[l]);)l+=t[l].length;return l}function cul(t,e){if(e===0)return 0;let l=e-1;for(;l>=0&&CL(t[l]);)l-=t[l].length;if(l<0)return 0;for(;l>=0&&!CL(t[l]);)l-=t[l].length;return l+1}function qzn(t,e){if(e>=t.length)return t.length;let l=e;for(;l<t.length&&!CL(t[l]);)l+=t[l].length;for(;l<t.length&&CL(t[l]);)l+=t[l].length;return l}function gT(t,e){if(e<=0)return[t];let l=t.split(`
|
|
2407
|
+
`)||S.includes(" ")?{isAtMention:!1,atPosition:-1,query:""}:{isAtMention:!0,atPosition:J,query:S}},[t.text,t.cursorPosition]);(0,QL.useEffect)(()=>{if(!u.isAtMention){r([]),a(0);return}let w=!1,H=async()=>{try{let S=await d.search(u.query),O=[...S];u.query===""&&l&&(O=[...l.getDirectories().map(T=>({path:T,relativePath:`[DIR] ${T}`,score:1})),...S]),w||(r(O),a(0))}catch{w||(r([]),a(0))}},J=setTimeout(()=>{H()},200);return()=>{w=!0,clearTimeout(J)}},[u.query,u.isAtMention,d]);let b=()=>{n.length!==0&&a(w=>w>0?w-1:n.length-1)},p=()=>{n.length!==0&&a(w=>w<n.length-1?w+1:0)},h=()=>{if(!u.isAtMention||n.length===0)return null;let w=n[I];if(!w)return null;let H=`@${w.relativePath}`,J=`${H} `,{text:S,cursorPosition:O}=t,U=S.slice(0,u.atPosition),j=S.slice(O),T=U+J+j,z={displayText:H,fullPath:w.path,type:w.relativePath.startsWith("[DIR]")?"directory":"file",startIndex:u.atPosition};return o(se=>{let de=new Map(se);return de.set(z.startIndex,z),de}),t.setText(T),t.setCursorPosition(u.atPosition+J.length),w.relativePath},Z=()=>{r([]),a(0)},N=()=>{o(new Map)};return[{isActive:u.isAtMention&&n.length>0,query:u.query,suggestions:n,selectedIndex:I,atPosition:u.atPosition,storedMentions:s},{navigateUp:b,navigateDown:p,complete:h,reset:Z,clearStoredMentions:N}]}c();var iCe=nt($t(),1),qdl=nt(jxe(),1);import{readdir as Szn,readFile as Bzn}from"node:fs/promises";import Ozn,{join as Kdl}from"node:path";c();function ZT(t,e){if(e instanceof Error)return`${t}: ${e.message}`;if(typeof e=="object"&&e!==null)try{return`${t}: ${JSON.stringify(e)}`}catch{return`${t}: [object with circular reference]`}else return`${t}: ${String(e)}`}c();var oCe=nt($t(),1);c();var _dl=nt(Mdl(),1);function jtt(t){try{let e=(0,_dl.default)(t.FetchURL);return e.source!=="github.com"||!e.owner||!e.name?null:{owner:e.owner,name:e.name,host:"github.com"}}catch{return null}}async function sCe(t){let e=await d_t(t);if(e.length===0)return null;if(e.length===1)return jtt(e[0]);let l=e.find(n=>n.Name==="origin");return jtt(l||e[0])}function Ddl(t){let[e,l]=(0,oCe.useState)(null);return(0,oCe.useEffect)(()=>{(async()=>{let n=await Ktt(t);l(r=>!r||r.kind!==n.kind||r.path!==n.path||n.kind==="git"&&r.kind==="git"&&(r.repo?.owner!==n.repo?.owner||r.repo?.name!==n.repo?.name)?n:r)})()},[t]),e}async function Ktt(t){let e=await af(t);if(!e.found)return{kind:"plain",path:t};try{let l=await sCe(e.gitRoot);return{kind:"git",path:e.gitRoot,repo:l}}catch{return{kind:"git",path:e.gitRoot,repo:null}}}function $dl(t,e,l,n,r,I){let[a,s]=(0,iCe.useState)({selected:null,available:[],warnings:[]}),o=Ddl(I);return(0,iCe.useEffect)(()=>{if(!t)return;(async()=>{let{agents:u,warnings:b}=await qtt(e,l,n,Ozn.join(r,"agents"),o);s({selected:null,available:u,warnings:b})})()},[t,e,l,n,r,o]),{customAgents:a,selectCustomAgent:async d=>{if(!t)throw new Error("attempted to use disabled feature flagged feature");let u=a.available.find(p=>p.id===d);if(!u)throw new Error(`attempted to select unknown custom agent: ${d} from ${a.available.map(p=>p.id).join(", ")}`);let b=await u.prompt().then(p=>({kind:"success",prompt:p}),p=>({kind:"error",message:ZT("loading custom agent prompt",p)}));return b.kind==="error"?{kind:"error",message:b.message}:(s(p=>({...p,selected:{id:u.id,displayName:u.displayName,prompt:b.prompt}})),{kind:"success"})}}}function zdl(t){let e=new Set,l=[];for(let n of t)e.has(n.id)||(e.add(n.id),l.push(n));return l}async function qtt(t,e,l,n,r){let I=await Pdl(n);if(r===null)return{agents:I.agents,warnings:I.warnings};let a=await Pdl(Kdl(r.path,".github","agents")),s=zdl([...I.agents,...a.agents]),o=[...I.warnings,...a.warnings];if(r.kind!=="git")return{agents:s,warnings:o};if(!r.repo)return{agents:s,warnings:[...o,"could not load remote agents, no github.com remote found"]};if(!l)return{agents:s,warnings:[...o,Kq(r.repo,"no authentication available")]};let d=await Tzn(t,e,l,r.repo);return{agents:zdl([...s,...d.agents]),warnings:[...o,...d.warnings]}}function Kq(t,e){return`could not load remote agents for ${t.owner}/${t.name}: ${e}`}async function Tzn(t,e,l,n){let r=P2(l,{onHMACAuthInfo:()=>$ee,onEnvAuthInfo:Z=>Z.host,onGhCliAuthInfo:Z=>Z.host,onUserAuthInfo:Z=>Z.host,onApiKeyAuthInfo:Z=>Z.host}),{host:I}=new URL(r);if(I!=="github.com")return{agents:[],warnings:[Kq(n,"auth info does not target github.com")]};let a=await DW(l);if(!a)return{agents:[],warnings:[Kq(n,"no usable token for accessing repo contents found")]};let s=await eul(()=>d0(r,a),Z=>ZT("fetching copilot URL",Z));if(s.kind==="error")return{agents:[],warnings:[Kq(n,s.message)]};let o=`${s.value}/agents/swe/custom-agents/${n.owner}/${n.name}?exclude_invalid_config=true`,d={Authorization:`Bearer ${a}`},u=await nC(o,{method:"GET",headers:d},t);if(!u.ok)return t.warning(`Failed to load custom agents for ${n.owner}/${n.name}: ${await u.text()}`),{agents:[],warnings:[Kq(n,`server returned ${u.status}: ${u.statusText}`)]};let b=await u.json(),h=ka.object({agents:ka.array(tul)}).safeParse(b);return h.success?{agents:h.data.agents.map(Z=>({id:Z.name,displayName:Z.display_name,prompt:async()=>{let N=await Pzn({logger:t,integrationId:e,sweAgentsEndpoint:`${s.value}/agents/swe`,token:a,repoOwner:Z.repo_owner,repoName:Z.repo_name,customAgentName:Z.name});if(!N)throw new Error(`Failed to load prompt for agent ${Z.name}`);return N.prompt}})),warnings:[]}:{agents:[],warnings:[Kq(n,ZT("parsing http response into schema",h.error))]}}async function Pdl(t){let e=await Szn(t,{withFileTypes:!0}).then(r=>({kind:"success",dirEntries:r})).catch(r=>r.code==="ENOENT"?{kind:"success",dirEntries:[]}:{kind:"error",message:ZT(t,r)});if(e.kind==="error")return{agents:[],warnings:[]};let l=[],n=[];for(let r of e.dirEntries)if(r.isFile()&&r.name.endsWith(".md")){let I=Kdl(t,r.name),a=r.name.slice(0,-3),s=await jdl(I);if(s.kind==="error"){n.push(s.message);continue}l.push({id:a,displayName:s.agent.name,prompt:async()=>{let o=await jdl(I);if(o.kind==="error")throw new Error(o.message);return await o.agent.prompt()}})}return{agents:l,warnings:n}}async function jdl(t){let e=await eul(()=>Bzn(t,"utf-8"),n=>ZT(t,n));if(e.kind==="error")return{kind:"error",message:e.message};let l=Uzn(e.value);return l.kind==="error"?{kind:"error",message:`${t}: ${l.message}`}:{kind:"success",agent:l.agent}}var Uzn=t=>{let e=ka.object({name:ka.string(),description:ka.string(),tools:ka.array(ka.string()).optional()}).strict(),l=/^---\s*\n([\s\S]*?)\n---\s*\n?/,n=t.match(l);if(!n)return{kind:"error",message:"custom agent markdown frontmatter is malformed"};let r=n[1];try{let I=(0,qdl.parse)(r),a=e.safeParse(I);if(!a.success)return{kind:"error",message:Mzn(a.error)};let s=t.slice(n[0].length);return{kind:"success",agent:{name:a.data.name,description:a.data.description,tools:a.data.tools||["*"],prompt:()=>Promise.resolve(s)}}}catch(I){return{kind:"error",message:ZT("failed to parse front matter",I)}}};function Mzn(t){return t.issues.map(e=>`${e.path.join(".")||"(root)"}: ${e.message}`).join(", ")}async function eul(t,e){try{return{kind:"success",value:await t()}}catch(l){return{kind:"error",message:e(l)}}}var _zn=ka.object({command:ka.string(),args:ka.array(ka.string()),env:ka.record(ka.string(),ka.string()).optional(),tools:ka.array(ka.string()),type:ka.enum(["local","stdio"]).optional()}),Dzn=ka.object({url:ka.string(),headers:ka.record(ka.string(),ka.string()).optional(),tools:ka.array(ka.string()),type:ka.enum(["http","sse"])}),tul=ka.object({name:ka.string(),repo_owner:ka.string(),repo_name:ka.string(),display_name:ka.string(),description:ka.string(),tools:ka.array(ka.string()),version:ka.string(),mcp_servers:ka.record(ka.string(),ka.union([_zn,Dzn])).optional().nullable()}),zzn=tul.extend({prompt:ka.string()});async function Pzn(t){t.logger.info(`Reading custom agent "${t.customAgentName}" from ${t.repoOwner}/${t.repoName}`);try{let e={"Copilot-Integration-Id":t.integrationId,Authorization:`Bearer ${t.token}`,"X-GitHub-Job-Nonce":t.jobNonce??""},l=await nC(`${t.sweAgentsEndpoint}/custom-agents/${t.repoOwner}/${t.repoName}/${t.customAgentName}`,{method:"GET",headers:e},t.logger,"get custom agent config");if(!l.ok){if(l.status===404)return null;throw new Error(`Failed to get custom agent config: ${l.status} ${l.statusText}`)}let n=await l.json();return zzn.parse(n)}catch(e){let l=e,n=l?.requestId||"unknown";throw t.logger.error(`Failed to get custom agent config (request ID: ${n}): ${l}`),l}}c();var $W=nt($t(),1);function lul(t){let{cliModel:e,session:l,currentWorkingDirectory:n,customAgentName:r,stdoutColumns:I,models:a}=t,[s,o]=(0,$W.useState)({gitRoot:"",found:!1}),[d,u]=(0,$W.useState)(null);(0,$W.useEffect)(()=>{(async()=>{u(null);let w=await af(n);o(w)})()},[n]);let b=(0,$W.useCallback)(async()=>{if(!s.found){u(null);return}let Y=await m_t(s.gitRoot);if(!Y){u(null);return}let w=await u_t(s.gitRoot);u(H=>H?.branch===Y&&H?.hasChanges===w?H:{branch:Y,hasChanges:w})},[s]),p=(0,$W.useMemo)(()=>kye(n),[n]),[h,Z]=(0,$W.useState)("");(0,$W.useEffect)(()=>{(async()=>{if(!a||a.type!=="success")return;let w=await YO(e,l,a.list);w&&Z(H=>H===w?H:w)})()},[e,l,a]);let N=(0,$W.useMemo)(()=>{if(!d||!d.branch)return null;let Y=I||80,w=h.length,H=r?.length||0,J=p.length,S=d.hasChanges?6:5,U=w+J+S+4+H,T=Math.max(8,Y-U)-3;return`[\u2387 ${d.branch.length>T?d.branch.substring(0,T)+"...":d.branch}${d.hasChanges?"*":""}]`},[d,I,p,h]),y=(0,$W.useMemo)(()=>{if(!h)return h;let Y=a&&a.type==="success"?a.list:void 0,w=k8(h,Y);return`${h} (${w}x)`},[h,a]);return{displayCwd:p,gitBranchInfo:N,selectedModel:h,selectedModelDisplay:y,setSelectedModel:Z,updateGitStatus:b}}c();var gZ=nt($t(),1),jzn=3*1e3;function nul(){let[t,e]=(0,gZ.useState)("idle"),[l,n]=(0,gZ.useState)(0),[r,I]=(0,gZ.useState)(0),[a,s]=(0,gZ.useState)(!1),o=(0,gZ.useRef)(null);(0,gZ.useEffect)(()=>()=>{o.current&&clearTimeout(o.current)},[]);let d=(0,gZ.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),e("indexing"),n(0),I(0),s(!0)},[]),u=(0,gZ.useCallback)((Z,N)=>{e("completed"),n(Z),I(N),s(!0),o.current=setTimeout(()=>{s(!1),o.current=null},jzn)},[]),b=(0,gZ.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),e("idle"),n(0),I(0),s(!1)},[]),p={state:t,fileCount:l,durationMs:r,isVisible:a},h=(0,gZ.useMemo)(()=>({startIndexing:d,completeIndexing:u,reset:b}),[d,u,b]);return[p,h]}c();var cCe=nt($t(),1);function rul(t,e,l,n){let[r,I]=(0,cCe.useState)();return(0,cCe.useEffect)(()=>{async function a(){if(!l)return;let s=await $tt(t,e,l,n);I(s)}a()},[l,e,n]),{models:r}}async function $tt(t,e,l,n){if(aL())return{type:"success",list:[]};try{if(l.type==="hmac")return{type:"success",list:await S9.createWithHmac(t,$ee,n,l.hmac,e).listModels()};let r=await DW(l);if(!r)return{type:"noauth"};let I=await d0(l.host,r);return{type:"success",list:await S9.createWithOAuthToken(t,I,n,r,e).listModels()}}catch(r){return{type:"error",error:r}}}c();var Dw=nt($t(),1);function Iul(t=3){let[e,l]=(0,Dw.useState)(!1),n=(0,Dw.useRef)(null),r=(0,Dw.useRef)(t*1e3);(0,Dw.useEffect)(()=>{r.current=t*1e3},[t]),(0,Dw.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]);let I=(0,Dw.useCallback)(a=>{n.current&&(clearTimeout(n.current),n.current=null),l(!0);let s=a!==void 0?a*1e3:r.current;n.current=setTimeout(()=>{l(!1),n.current=null},s)},[]);return[e,I]}c();var cbe=nt($t(),1);function aul({builtInSlashCommands:t,logger:e,currentWorkingDirectory:l,setCurrentWorkingDirectory:n,fileSearch:r,authManager:I,mcpHost:a,loginStatus:s,setLoginStatus:o,addEntryToSession:d,clearSessionHistory:u,getSessionUsageOutput:b,pathManager:p,resetSessionToolApprovals:h,clearTimeline:Z,clearHeader:N,clearContextWindowMetrics:y,setThemePreference:Y,refreshStatic:w,hasAvailableCustomAgents:H,slashCommandResultActions:J}){let S=(0,cbe.useMemo)(()=>({logger:e,slashCommands:t,hasAvailableCustomAgents:H,mcp:{host:a,config:async()=>await K2.load()||{mcpServers:{}},hasServer:async j=>(await S.mcp.config())?.mcpServers[j]!==void 0,deleteServer:async j=>{let T=await S.mcp.config();delete T.mcpServers[j],await K2.write(T)}},auth:{availableAuthMethods:()=>SMt(I,s.authInfo),loginStatus:s,logout:async()=>{let j=await I.logout();return o({status:"NotLoggedIn"}),j}},session:{addTimelineEntry:d,clearHistory:u,usageOutput:b},permissions:{allowedDirs:p.getDirectories.bind(p),addAllowedDirectory:p.addDirectory.bind(p),resetSessionToolApprovals:h},process:{cwd:l,chdir:async j=>{process.chdir(j),await p.updatePrimaryDirectory(j),n(j),await r.setRootPath(j)}},ui:{getThemePreference:BVe,setThemePreference:Y,clear:()=>{Z(),N(),y(),w()}}}),[t,e,l,n,r,I,a,s,o,d,u,b,p,h,N,y,Y,w,H]),O=(0,cbe.useCallback)(async j=>{let T=Bd(()=>{let ee=j.trim();return ee==="?"?"/help":ee});if(!T.startsWith("/"))return{handled:!1};let z=T.split(" ")[0],se=t.find(ee=>ee.name===z||ee.aliases?.includes(z));if(!se)return{handled:!1};let de=T.substring(se.name.length).trim().split(" ").filter(ee=>ee),Ze=await se.execute(S,de);if(!Ze)return{handled:!0};switch(Ze.kind){case"exit":return J.exit(),{handled:!0};case"add-timeline-entry":return d(Ze.entry),{handled:!0};case"show-dialog":switch(Ze.dialog.kind){case"custom-agent-picker":J.showCustomAgentPickerDialog();break;case"feedback":J.showFeedbackDialog();break;case"login":J.showLoginDialog();break;case"mcp":J.showMCPDialog(Ze.dialog.mode,Ze.dialog.serverName);break;case"model-picker":J.showModelPickerDialog();break;case"session":J.showSessionDialog();break;case"user-switcher":J.showUserSwitcherDialog();break;default:ob(Ze.dialog,`Unknown dialog kind: ${Ze.dialog}`)}return{handled:!0};case"set-model":return J.setModel(Ze.model),{handled:!0};case"noop":return{handled:!0};case"start-remote-delegate":return J.startRemoteDelegation(Ze.prompt),{handled:!0};default:ob(Ze,`Unknown slash command result kind: ${Ze}`)}},[t,d,J,S]),U=(0,cbe.useCallback)(j=>wue(t,j),[t]);return{slashCommands:t,handleSlashCommand:O,matchingSlashCommands:U}}c();var dCe=nt($t(),1);function sul(t,e,l){let n=(0,dCe.useMemo)(()=>new Map,[]);(0,dCe.useEffect)(()=>{(async()=>{if(Object.keys(t).length===0||t.staff!==void 0||!e)return;let I=await DW(e),a=e.type==="hmac"?void 0:e.host;if(!I||a!==nL)return;let s=n.get(I)??DUt(a,I).catch(()=>!1);n.set(I,s),await s&&(await Jr.writeKey("staff",!0),await Jr.writeKey("log_level","all"),l({type:"info",text:"Staff mode activated! Restart the app to enable staff features \u2728"}))})()},[t,e,l])}c();var FL=nt($t(),1);function oul(t,e,l){let[n,r]=(0,FL.useState)(null),I=(0,FL.useRef)("");return(0,FL.useEffect)(()=>{e.text!==I.current&&(n?.availableOptions.some(o=>e.text===o.name)||r(null),I.current=e.text)},[e.text,n]),{handleTabCompletion:(0,FL.useCallback)(()=>{let s=o=>{let d=o.indexOf(" ");return d===-1?!1:o.slice(d+1).trim().length>0};if(n){if(s(e.text)){r(null);return}let o=(n.currentIndex+1)%n.availableOptions.length,d=n.availableOptions[o];e.setText(d.name),r({...n,currentIndex:o}),l.setSlashCommandPickerIndex(o)}else{if(s(e.text))return;let o=wue(t,e.text);if(o.length===1){let d=o[0],u=d.name;for(let b=u.length-1;b>=2;b--){let p=u.slice(0,b),h=wue(t,p);if(h.length>1){let Z=h.findIndex(Y=>Y.name===d.name);r({originalInput:p,availableOptions:h,currentIndex:Z>=0?Z:0});let N=(Z+1)%h.length,y=h[N];e.setText(y.name),r({originalInput:p,availableOptions:h,currentIndex:N}),l.setSlashCommandPickerIndex(N);return}}}o.length>1?(r({originalInput:e.text,availableOptions:o,currentIndex:0}),e.setText(o[0].name),l.setSlashCommandPickerIndex(0)):o.length===1&&e.setText(o[0].name)}},[n,e,l]),tabCyclingState:n}}c();var kf=nt($t(),1);function iul(){let[t,e]=(0,kf.useState)({columns:process.stdout.columns,rows:process.stdout.rows}),l=(0,kf.useRef)(()=>{}),n=(0,kf.useCallback)(I=>{l.current=I||(()=>{})},[]),r=(0,kf.useCallback)(()=>{let{columns:I,rows:a}=process.stdout;e({columns:I,rows:a}),l.current(I,a)},[]);return(0,kf.useEffect)(()=>(process.stdout.on("resize",r),()=>{process.stdout.off("resize",r)}),[]),{...t,setOnResize:n}}c();var $q=nt($t(),1);var CL=t=>/\s/.test(t);function Kzn(t,e){if(e>=t.length)return t.length;let l=e;for(;l<t.length&&CL(t[l]);)l+=t[l].length;for(;l<t.length&&!CL(t[l]);)l+=t[l].length;return l}function cul(t,e){if(e===0)return 0;let l=e-1;for(;l>=0&&CL(t[l]);)l-=t[l].length;if(l<0)return 0;for(;l>=0&&!CL(t[l]);)l-=t[l].length;return l+1}function qzn(t,e){if(e>=t.length)return t.length;let l=e;for(;l<t.length&&!CL(t[l]);)l+=t[l].length;for(;l<t.length&&CL(t[l]);)l+=t[l].length;return l}function gT(t,e){if(e<=0)return[t];let l=t.split(`
|
|
2408
2408
|
`).map(r=>r+" "),n=[];for(let r of l){if(r.length<=e){n.push(r);continue}let I=r;for(;I.length>e;){let a=e;if(CL(I.slice(0,e)))for(let o=e-1;o>=Math.max(0,e-20)&&!CL(I[o]);o--)a=o;let s=I.slice(0,a);n.push(s),I=I.slice(a)}I.length>0&&n.push(I)}return n}function e7(t,e){if(e.length===0)return{line:0,column:0};let l=0;for(let r=0;r<e.length;r++){let I=e[r],a=l+I.length;if(t<a)return{line:r,column:t-l};l=a}let n=e.length-1;return{line:n,column:e[n].length}}function qq(t,e,l,n){if(t.length===0)return 0;let r=0;for(let I=0;I<Math.min(e,t.length);I++)r+=t[I].length;return e<t.length?r+=Math.min(l,t[e].length):r=n.length,Math.min(r,n.length)}function $zn(t,e){switch(e.type){case"set_text":return{text:e.payload,cursorPosition:e.payload.length,width:t.width};case"set_cursor_position":return{...t,cursorPosition:Math.max(0,Math.min(e.payload,t.text.length))};case"set_cursor_line_position":{let{line:l,column:n}=e.payload,r=gT(t.text,t.width),I=qq(r,l,n,t.text);return{...t,cursorPosition:I}}case"set_width":return t.width===e.payload?t:{...t,width:e.payload};case"insert_input":{let{text:l,cursorPosition:n}=t,{input:r,callback:I}=e.payload,a=r.replace(/\r\n/g,`
|
|
2409
2409
|
`).replace(/\r/g,`
|
|
2410
2410
|
`),s=l.slice(0,n),o=l.slice(n),d=s+a+o,u=n+a.length;return I?.(d),{text:d,cursorPosition:u,width:t.width}}case"backspace":return t.cursorPosition===0?t:{text:t.text.slice(0,t.cursorPosition-1)+t.text.slice(t.cursorPosition),cursorPosition:t.cursorPosition-1,width:t.width};case"forward_delete":{if(t.cursorPosition>=t.text.length)return t;let l=t.text.slice(0,t.cursorPosition)+t.text.slice(t.cursorPosition+1);return{...t,text:l}}case"backspace_word":{let{text:l,cursorPosition:n}=t;if(n===0)return t;let r=cul(l,n);return{text:l.slice(0,r)+l.slice(n),cursorPosition:r,width:t.width}}case"forward_delete_word":{let{text:l,cursorPosition:n}=t;if(n>=l.length)return t;let r=Kzn(l,n),I=l.slice(0,n)+l.slice(r);return{...t,text:I}}case"move_word_left":{let{text:l,cursorPosition:n}=t;if(n===0)return t;let r=cul(l,n);return{...t,cursorPosition:r}}case"move_word_right":{let{text:l,cursorPosition:n}=t;if(n>=l.length)return t;let r=qzn(l,n);return{...t,cursorPosition:r}}case"move_right":return t.cursorPosition===t.text.length?t:{...t,cursorPosition:t.cursorPosition+1};case"move_left":return t.cursorPosition===0?t:{...t,cursorPosition:t.cursorPosition-1};case"move_up":{let{text:l,cursorPosition:n,width:r}=t,I=gT(l,r),a=e7(n,I);if(a.line>0){let s=a.line-1,o=Math.min(a.column,I[s].length-1),d=qq(I,s,o,l);return{...t,cursorPosition:d}}return t}case"move_down":{let{text:l,cursorPosition:n,width:r}=t,I=gT(l,r),a=e7(n,I);if(a.line<I.length-1){let s=a.line+1,o=Math.min(a.column,I[s].length-1),d=qq(I,s,o,l);return{...t,cursorPosition:d}}return t}case"clear":return{text:"",cursorPosition:0,width:t.width};case"clear_before_cursor":{let{text:l,cursorPosition:n,width:r}=t,I=gT(l,r),a=e7(n,I),s=qq(I,a.line,0,l);return{text:l.slice(0,s)+l.slice(n),cursorPosition:s,width:r}}case"clear_after_cursor":{let{text:l,cursorPosition:n}=t,r=l.indexOf(`
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@github/copilot",
|
|
3
3
|
"description": "GitHub Copilot CLI brings the power of Copilot coding agent directly to your terminal.",
|
|
4
|
-
"version": "0.0.349-
|
|
4
|
+
"version": "0.0.349-15",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"worker/**/*"
|
|
36
36
|
],
|
|
37
37
|
"buildMetadata": {
|
|
38
|
-
"gitCommit": "
|
|
38
|
+
"gitCommit": "3469b3e"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"sharp": "^0.34.3"
|