@github/copilot-language-server 1.331.0 → 1.332.0

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/dist/main.js CHANGED
@@ -371,7 +371,7 @@ ${n}+- `:"";return e+this.description+i}}},qc=class{constructor(e,n,r,i){this.la
371
371
  (using_declaration)
372
372
  (alias_declaration)
373
373
  (static_assert_declaration)
374
- ] @statement`}};var rte={};i1(rte,{activationEvents:()=>jut,badges:()=>Hut,browser:()=>Vut,bugs:()=>Fut,build:()=>kut,buildType:()=>But,categories:()=>Wut,contributes:()=>ite,default:()=>Zut,dependencies:()=>Jut,description:()=>Sut,devDependencies:()=>Kut,displayName:()=>_ut,enabledApiProposals:()=>zut,engines:()=>qut,extensionPack:()=>Uut,homepage:()=>Nut,icon:()=>Qut,keywords:()=>Gut,license:()=>Lut,main:()=>$ut,name:()=>wut,overrides:()=>Xut,preview:()=>Put,pricing:()=>Out,publisher:()=>Dut,qna:()=>Mut,scripts:()=>Yut,version:()=>Rut});var wut="copilot",_ut="GitHub Copilot",Sut="Your AI pair programmer",Rut="1.331.0",kut="1613",But="prod",Dut="GitHub",Put=!1,Nut="https://github.com/features/copilot?editor=vscode",Lut="https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features",Fut={url:"https://github.com/microsoft/vscode-copilot-release/issues"},Mut="https://github.com/github-community/community/discussions/categories/copilot",Qut="assets/Copilot-App-Icon.png",Out="Trial",Uut=["GitHub.copilot-chat","GitHub.copilot"],qut={vscode:"^1.98.0",node:">=20.0.0",npm:">=9.0.0"},Wut=["AI","Chat","Programming Languages","Machine Learning"],Gut=["ai","openai","codex","pilot","snippets","documentation","autocomplete","intellisense","refactor","javascript","python","typescript","php","go","golang","ruby","c++","c#","java","kotlin","co-pilot"],Hut=[{url:"https://img.shields.io/badge/GitHub%20Copilot-Subscription%20Required-orange",href:"https://github.com/github-copilot/signup?editor=vscode",description:"Sign up for GitHub Copilot"},{url:"https://img.shields.io/github/stars/github/copilot-docs?style=social",href:"https://github.com/github/copilot-docs",description:"Star Copilot on GitHub"},{url:"https://img.shields.io/youtube/channel/views/UC7c3Kb6jYCRj4JOHHZTxKsQ?style=social",href:"https://www.youtube.com/@GitHub/search?query=copilot",description:"Check out GitHub on Youtube"},{url:"https://img.shields.io/twitter/follow/github?style=social",href:"https://twitter.com/github",description:"Follow GitHub on Twitter"}],jut=["onStartupFinished"],Vut="./dist/web",$ut="./dist/extension",zut=["inlineCompletionsAdditions"],ite={commands:[{command:"github.copilot.toggleStatusMenu",title:"Open Status Menu",category:"GitHub Copilot"},{command:"github.copilot.signIn",title:"Sign In",category:"GitHub Copilot",enablement:"!github.copilot.activated"},{command:"github.copilot.acceptCursorPanelSolution",title:"Accept Panel Suggestion at the Cursor",enablement:"github.copilot.panelVisible",category:"GitHub Copilot"},{command:"github.copilot.previousPanelSolution",title:"Navigate to the Previous Panel Suggestion",enablement:"github.copilot.panelVisible",category:"GitHub Copilot"},{command:"github.copilot.nextPanelSolution",title:"Navigate to the Next Panel Suggestion",enablement:"github.copilot.panelVisible",category:"GitHub Copilot"},{command:"github.copilot.generate",title:"Open Completions Panel",enablement:"github.copilot.activated && !isWeb",category:"GitHub Copilot"},{command:"github.copilot.completions.disable",title:"Disable Completions",enablement:"github.copilot.activated && config.editor.inlineSuggest.enabled && github.copilot.completions.enabled",category:"GitHub Copilot"},{command:"github.copilot.completions.enable",title:"Enable Completions",enablement:"github.copilot.activated && !(config.editor.inlineSuggest.enabled && github.copilot.completions.enabled)",category:"GitHub Copilot"},{command:"github.copilot.completions.toggle",title:"Toggle (Enable/Disable) Completions",enablement:"github.copilot.activated",category:"GitHub Copilot"},{command:"github.copilot.sendFeedback",title:"Send Feedback",category:"GitHub Copilot"},{command:"github.copilot.collectDiagnostics",title:"Collect Diagnostics",category:"GitHub Copilot",enablement:"!isWeb"},{command:"github.copilot.openLogs",title:"Open Logs",category:"GitHub Copilot"},{command:"github.copilot.openModelPicker",title:"Change Completions Model",category:"GitHub Copilot",enablement:"!isWeb"},{command:"github.copilot.sendCompletionFeedback",title:"Send Copilot Completion Feedback",category:"GitHub Copilot",enablement:"!isWeb"}],keybindings:[{command:"github.copilot.acceptCursorPanelSolution",key:"ctrl+/",mac:"ctrl+/",when:"activeWebviewPanelId == 'GitHub Copilot Suggestions'"},{command:"github.copilot.previousPanelSolution",key:"alt+[",mac:"alt+[",when:"activeWebviewPanelId == 'GitHub Copilot Suggestions'"},{command:"github.copilot.nextPanelSolution",key:"alt+]",mac:"alt+]",when:"activeWebviewPanelId == 'GitHub Copilot Suggestions'"},{command:"editor.action.inlineSuggest.trigger",key:"alt+\\",when:"editorTextFocus && !editorHasSelection && !inlineSuggestionsVisible"}],configuration:[{title:"GitHub Copilot",properties:{"github.copilot.selectedCompletionModel":{type:"string",default:"",markdownDescription:'The currently selected completion model ID. To select from a list of available models, use the __"Change Completion Model"__ command or open the model picker from the Copilot menu. The value must be a valid model ID. An empty value indicates that the default model will be used.'},"github.copilot.advanced":{type:"object",title:"Advanced Settings",properties:{authProvider:{type:"string",enum:["github","github-enterprise"],enumDescriptions:["GitHub.com","GitHub Enterprise"],default:"github",description:"The GitHub identity to use for Copilot"},authPermissions:{type:"string",enum:["default","minimal"],markdownEnumDescriptions:["Default (recommended) - The default permissions enable the best that Copilot has to offer including, but not limited to, faster repo indexing and the power of the `@github` agent.","Minimal - The minimal permissions required for Copilot functionality."],default:"default",markdownDescription:"Controls what kind of permissions are asked for when signing in to Copilot. The options are\n* `default` - (strongly recommended) The default permissions enable the best that Copilot has to offer including, but not limited to, faster repo indexing and the power of the `@github` agent.\n* `minimal` - The minimal permissions are the least that Copilot needs to function. Some features may behave slower or not at all."},useLanguageServer:{type:"boolean",default:!1,description:"Experimental: Use language server"},"debug.overrideEngine":{type:"string",default:"",description:"Override engine name"},"debug.overrideProxyUrl":{type:"string",default:"",description:"Override GitHub authentication proxy full URL"},"debug.testOverrideProxyUrl":{type:"string",default:"",description:"Override GitHub authentication proxy URL when running tests"},"debug.overrideCapiUrl":{type:"string",default:"",description:"Override GitHub Copilot API full URL"},"debug.testOverrideCapiUrl":{type:"string",default:"",description:"Override GitHub Copilot API URL when running tests"},"debug.filterLogCategories":{type:"array",default:[],deprecationMessage:"Set overrideLogLevels.* to ERROR to filter out unwanted categories.",description:"Show only log categories listed in this setting. If an array is empty, show all loggers"}}},"github.copilot.enable":{type:"object",scope:"window",default:{"*":!0,plaintext:!1,markdown:!1,scminput:!1},additionalProperties:{type:"boolean"},markdownDescription:"Enable or disable Copilot completions for specified [languages](https://code.visualstudio.com/docs/languages/identifiers)"},"github.copilot.inlineSuggest.enable":{type:"boolean",default:!0,deprecationMessage:"This setting has no effect. Please use github.copilot.enable instead.",description:"Show inline suggestions"},"github.copilot.editor.enableAutoCompletions":{type:"boolean",scope:"language-overridable",default:!0,deprecationMessage:"This setting has no effect. Please use github.copilot.enable instead.",description:"Automatically show inline completions"}}}],configurationDefaults:{"editor.tokenColorCustomizations":{"[*Light*]":{textMateRules:[{scope:"ref.matchtext",settings:{foreground:"#000"}}]},"[*Dark*]":{textMateRules:[{scope:"ref.matchtext",settings:{foreground:"#fff"}}]}}},languages:[{id:"code-referencing"}],grammars:[{language:"code-referencing",scopeName:"text.ref",path:"./syntaxes/ref.tmGrammar.json"}],iconFonts:[{id:"copilot-font",src:[{path:"assets/copilot.woff",format:"woff"}]}]},Yut={build:"tsx esbuild.ts",clean:"./script/build/clean.sh",compress:"tsx ./script/compressTokenizer.ts","forbid-sources-content:extension":"node script/forbid-sources-content.js --extension",generate_languages:"tsx script/generateLanguages.ts && prettier --write lib/src/language/generatedLanguages.ts",get_token:"tsx script/getToken.ts",lint:'run-p --aggregate-output "lint:*"',"lint:deps":"depcruise -c .dependency-cruiser.js .","lint:eslint":"eslint -f visualstudio --quiet --cache .","lint:prettier":"prettier --check . 2>&1","lint:types":"tsc --noEmit && tsc --noEmit -p extension/src/copilotPanel/webview",prebuild:"npm install",pretest:"npm run build","pretest:headless":"npm run build","pretest:extension":"npm run build","pretest:lsp-client":"npm run build","pretest:lib-e2e":"npm run build",prewatch:"npm run build","prewatch:esbuild":"npm run build",start:"npm run watch",test:'npm-run-all "test:extension --ignore-scripts" "test:headless --ignore-scripts" lint',"test:headless":'npm-run-all test:lib test:agent "test:lib-e2e --ignore-scripts" test:prompt "test:lsp-client --ignore-scripts" lint',"test:agent":'mocha "agent/src/**/*.test.{ts,tsx}"',"test:extension":"tsx extension/test/runTest.ts","test:lib":'mocha "lib/src/**/*.test.{ts,tsx}"',"test:lib-e2e":'mocha "lib/e2e/src/**/*.test.{ts,tsx}" --exclude "lib/e2e/src/prompt/**/*.test.ts"',"test:lib-e2e-no-ci":'mocha "lib/e2e/no-ci/**/*.test.{ts,tsx}"',"test:lib-prompt-e2e":'mocha "lib/e2e/src/prompt/prompt.test.ts"',"test:lib-prompt-e2e-perf":"INCLUDE_PERFORMANCE=true npm run test:lib-prompt-e2e","test:lsp-client":'mocha "lsp-client/test/*.test.{ts,tsx}"',"test:prompt":'mocha "prompt/test/**/*.test.{ts,tsx}"',"vscode-dts":"vscode-dts dev && mv vscode.proposed.*.ts extension/src","vscode:prepublish":'run-s "build --ignore-scripts" forbid-sources-content:extension',"vscode:uninstall":"node dist/extensionUninstalled.js",vsix:"vsce package --allow-missing-repository",watch:'run-p "watch:esbuild --ignore-scripts" "watch:types -- --preserveWatchOutput"',"watch:esbuild":"tsx esbuild.ts --watch","watch:types":"tsc --noEmit --watch"},Kut={"@datadog/datadog-ci":"^3.5.0","@github/prettier-config":"0.0.6","@limegrass/eslint-plugin-import-alias":"^1.5.1","@parcel/watcher":"^2.5.1","@types/benchmark":"^2.1.5","@types/crypto-js":"^4.2.2","@types/diff":"^7.0.2","@types/git-url-parse":"^16.0.0","@types/js-yaml":"^4.0.6","@types/kerberos":"^1.1.2","@types/mocha":"^10.0.10","@types/node":"~20.8.0","@types/semver":"^7.7.0","@types/sinon":"^17.0.4","@types/uuid":"^10.0.0","@types/vscode":"1.98.0","@types/yargs":"^17.0.24","@vscode/test-electron":"^2.5.2","@vscode/vsce":"^3.3.2","@yao-pkg/pkg":"^6.4.1",benchmark:"^2.1.4",boxen:"^8.0.1",chalk:"^5.4.1","dependency-cruiser":"^16.10.2",electron:"^28.1.4",esbuild:"^0.25.4","esbuild-plugin-copy":"^2.1.1",eslint:"^9.26.0","eslint-formatter-visualstudio":"^8.40.0","eslint-plugin-mocha":"^10.5.0",fantasticon:"^3.0.0",glob:"^11.0.2",globals:"^16.1.0","js-yaml":"^4.1.0",mocha:"^11.2.2","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","npm-run-all":"^4.1.5",prettier:"^3.5.3","prettier-plugin-organize-imports":"^4.1.0",proxy:"^2.1.1","simple-git":"^3.27.0",sinon:"^20.0.0","ts-dedent":"^2.2.0",tsx:"^4.19.4",typescript:"^5.8.3","typescript-eslint":"^8.32.0","vscode-dts":"^0.3.3"},Jut={"@adobe/helix-fetch":"github:devm33/helix-fetch#1088e599270f36632703f138d88c2100cbe468db","@github/memoize":"1.1.5","@microsoft/1ds-post-js":"^4.3.6","@microsoft/applicationinsights-web-basic":"^3.3.6","@microsoft/tiktokenizer":"^1.0.10","@modelcontextprotocol/sdk":"^1.11.1","@sinclair/typebox":"^0.34.33","@types/vscode-webview":"^1.57.4","@vscode/codicons":"^0.0.36","@vscode/prompt-tsx":"0.4.0-alpha.1","@vscode/webview-ui-toolkit":"^1.3.1","await-lock":"^2.2.2","crypto-js":"^4.2.0",diff:"^7.0.0",dldr:"^0.0.10","get-stream":"^6.0.1","git-url-parse":"^16.0.3",kerberos:"^2.2.0","mac-ca":"^3.1.1",microjob:"^0.7.0",minimatch:"^9.0.3",open:"^10.1.2","os-browserify":"^0.3.0","path-browserify":"^1.0.1",semver:"^7.7.1",shiki:"~1.15.0","source-map-support":"^0.5.21",sqlite3:"^5.1.7",uuid:"^11.1.0","vscode-languageclient":"^9.0.0","vscode-languageserver":"^9.0.0","vscode-languageserver-protocol":"^3.17","vscode-languageserver-textdocument":"~1.0.11","vscode-uri":"^3.1.0","web-tree-sitter":"^0.20.8","windows-ca-certs":"^0.1.0",yargs:"^17.7.2"},Xut={fsevents:"<0",bindings:"npm:bundled-bindings@^1.5.0"},Zut={name:wut,displayName:_ut,description:Sut,version:Rut,build:kut,buildType:But,publisher:Dut,preview:Put,homepage:Nut,license:Lut,bugs:Fut,qna:Mut,icon:Qut,pricing:Out,extensionPack:Uut,engines:qut,categories:Wut,keywords:Gut,badges:Hut,activationEvents:jut,browser:Vut,main:$ut,enabledApiProposals:zut,contributes:ite,scripts:Yut,devDependencies:Kut,dependencies:Jut,overrides:Xut};var ft={Enable:"enable",UserSelectedCompletionModel:"selectedCompletionModel",ShowEditorCompletions:"editor.showEditorCompletions",EnableAutoCompletions:"editor.enableAutoCompletions",DelayCompletions:"editor.delayCompletions",FilterCompletions:"editor.filterCompletions",FetchStrategy:"fetchStrategy",RelatedFilesVSCodeCSharp:"advanced.relatedFilesVSCodeCSharp",RelatedFilesVSCodeTypeScript:"advanced.relatedFilesVSCodeTypeScript",RelatedFilesVSCode:"advanced.relatedFilesVSCode",ContextProviders:"advanced.contextProviders",DebugOverrideLogLevels:"advanced.debug.overrideLogLevels",DebugFilterLogCategories:"advanced.debug.filterLogCategories",DebugSnippyOverrideUrl:"advanced.debug.codeRefOverrideUrl",DebugUseElectronFetcher:"advanced.debug.useElectronFetcher",DebugUseEditorFetcher:"advanced.debug.useEditorFetcher",UseSubsetMatching:"advanced.useSubsetMatching",ContextProviderTimeBudget:"advanced.contextProviderTimeBudget",DebugOverrideCapiUrl:"internal.capiUrl",DebugOverrideCapiUrlLegacy:"advanced.debug.overrideCapiUrl",DebugTestOverrideCapiUrl:"internal.capiTestUrl",DebugTestOverrideCapiUrlLegacy:"advanced.debug.testOverrideCapiUrl",DebugOverrideProxyUrl:"internal.completionsUrl",DebugOverrideProxyUrlLegacy:"advanced.debug.overrideProxyUrl",DebugTestOverrideProxyUrl:"internal.completionsTestUrl",DebugTestOverrideProxyUrlLegacy:"advanced.debug.testOverrideProxyUrl",DebugOverrideEngine:"internal.completionModel",DebugOverrideEngineLegacy:"advanced.debug.overrideEngine",UseAsyncCompletions:"internal.useAsyncCompletions",EnableSpeculativeRequests:"internal.enableSpeculativeRequests",CompletionsDelay:"internal.completionsDelay",AlwaysRequestMultiline:"internal.alwaysRequestMultiline",ModelAlwaysTerminatesSingleline:"internal.modelAlwaysTerminatesSingleline",TrimCompletionsAggressively:"internal.trimCompletionsAggressively",VSCodeDebounceThreshold:"internal.vscodeDebounceThreshold",RecentEditsInPrompt:"internal.recentEditsInPrompt",RecentEditsEditCount:"internal.recentEditsEditCount",RecentEditsMaxFiles:"internal.recentEditsMaxFiles",RecentEditsContextLines:"internal.recentEditsContextLines",RecentEditsEditMergeLineDistance:"internal.recentEditsEditMergeLineDistance",RecentEditsRemoveDeletedLines:"internal.recentEditsRemoveDeletedLines",InsertionsBeforeDeletions:"internal.recentEditsInsertionsBeforeDeletions",RecentEditsAppendNoReplyMarker:"internal.recentEditsAppendNoReplyMarker",RecentEditsMaxLinesBetweenEdits:"internal.recentEditsMaxLinesBetweenEdits",RecentEditsActiveDocDistanceLimitFromCursor:"internal.recentEditsActiveDocDistanceLimitFromCursor",RecentEditsSummarizationFormat:"internal.recentEditsSummarizationFormat",RecentEditsMaxLinesPerEdit:"internal.recentEditsMaxLinesPerEdit",RecentEditsMaxCharsPerEdit:"internal.recentEditsMaxCharsPerEdit",RecentEditsDebounceTimeout:"internal.recentEditsDebounceTimeout",UseWorkspaceContextCoordinator:"internal.useWorkspaceContextCoordinator",IncludeNeighboringFiles:"internal.includeNeighboringFiles",ExcludeRelatedFiles:"internal.excludeRelatedFiles",DebugOverrideCppHeadersEnableSwitch:"internal.cppHeadersEnableSwitch",MultilineAfterAccept:"internal.multilineAfterAccept",NESXTab:"internal.useXTab"};function ZIe(t){return["server","parsingandserver"].includes(t)}s(ZIe,"shouldDoServerTrimming");var gm=class{static{s(this,"BlockModeConfig")}},vS=class extends gm{static{s(this,"ConfigBlockModeConfig")}forLanguage(e,n,r){let i=e.get(Bt).overrideBlockMode(r);if(i)return JIe(i,n);let o=e.get(Bt).enableProgressiveReveal(r);return sr(e,ft.AlwaysRequestMultiline)??o?JIe("moremultiline",n):n=="ruby"?"parsing":f0(n)?"parsingandserver":"server"}};function edt(t){return["parsing","parsingandserver","moremultiline"].includes(t)}s(edt,"blockModeRequiresTreeSitter");function JIe(t,e){return t==="moremultiline"&&qc.isSupported(e)?t:edt(t)&&!f0(e)?"server":t}s(JIe,"toApplicableBlockMode");var dg=class{static{s(this,"ConfigProvider")}},bS=class extends dg{static{s(this,"DefaultsOnlyConfigProvider")}getConfig(e){return ndt(e)}getOptionalConfig(e){return rdt(e)}dumpForTelemetry(){return{}}},xI=class extends dg{constructor(n,r){super();this.baseConfigProvider=n;this.overrides=r}static{s(this,"InMemoryConfigProvider")}getOptionalOverride(n){return this.overrides.get(n)}getConfig(n){return this.getOptionalOverride(n)??this.baseConfigProvider.getConfig(n)}getOptionalConfig(n){return this.getOptionalOverride(n)??this.baseConfigProvider.getOptionalConfig(n)}setConfig(n,r){r!==void 0?this.overrides.set(n,r):this.overrides.delete(n)}dumpForTelemetry(){let n=this.baseConfigProvider.dumpForTelemetry();for(let r of[ft.ShowEditorCompletions,ft.EnableAutoCompletions,ft.DelayCompletions,ft.FilterCompletions]){let i=this.overrides.get(r);i!==void 0&&(n[r]=JSON.stringify(i))}return n}};function tdt(t){return t?.type==="object"&&"properties"in t}s(tdt,"isContributesObject");function e2e(t,e){let n=t,r=[];for(let i of e.split(".")){let o=[...r,i].join(".");n&&typeof n=="object"&&o in n?(n=n[o],r.length=0):r.push(i)}if(!(n===void 0||r.length>0))return n}s(e2e,"getConfigKeyRecursively");function ndt(t){if(xS.has(t))return xS.get(t);throw new Error(`Missing config default value: ${Vk}.${t}`)}s(ndt,"getConfigDefaultForKey");function rdt(t){return xS.get(t)}s(rdt,"getOptionalConfigDefaultForKey");var xS=new Map([[ft.DebugOverrideCppHeadersEnableSwitch,!1],[ft.RelatedFilesVSCodeCSharp,!1],[ft.RelatedFilesVSCodeTypeScript,!1],[ft.RelatedFilesVSCode,!1],[ft.IncludeNeighboringFiles,!1],[ft.ExcludeRelatedFiles,!1],[ft.ContextProviders,[]],[ft.DebugUseEditorFetcher,null],[ft.DebugUseElectronFetcher,null],[ft.DebugOverrideLogLevels,{}],[ft.DebugSnippyOverrideUrl,""],[ft.FetchStrategy,"auto"],[ft.UseSubsetMatching,null],[ft.ContextProviderTimeBudget,void 0],[ft.DebugOverrideCapiUrl,""],[ft.DebugTestOverrideCapiUrl,""],[ft.DebugOverrideProxyUrl,""],[ft.DebugTestOverrideProxyUrl,""],[ft.DebugOverrideEngine,""],[ft.UseAsyncCompletions,void 0],[ft.EnableSpeculativeRequests,void 0],[ft.AlwaysRequestMultiline,void 0],[ft.ModelAlwaysTerminatesSingleline,void 0],[ft.TrimCompletionsAggressively,void 0],[ft.VSCodeDebounceThreshold,void 0],[ft.RecentEditsInPrompt,void 0],[ft.RecentEditsEditCount,void 0],[ft.RecentEditsMaxFiles,void 0],[ft.RecentEditsContextLines,void 0],[ft.RecentEditsEditMergeLineDistance,void 0],[ft.RecentEditsRemoveDeletedLines,void 0],[ft.InsertionsBeforeDeletions,void 0],[ft.RecentEditsAppendNoReplyMarker,void 0],[ft.RecentEditsMaxLinesBetweenEdits,void 0],[ft.RecentEditsActiveDocDistanceLimitFromCursor,void 0],[ft.RecentEditsSummarizationFormat,void 0],[ft.RecentEditsMaxLinesPerEdit,void 0],[ft.RecentEditsMaxCharsPerEdit,void 0],[ft.RecentEditsDebounceTimeout,void 0],[ft.MultilineAfterAccept,void 0],[ft.NESXTab,void 0],[ft.UseWorkspaceContextCoordinator,void 0],[ft.CompletionsDelay,void 0],[ft.ShowEditorCompletions,void 0],[ft.DelayCompletions,void 0],[ft.FilterCompletions,void 0]]);for(let t of Object.values(ft)){let e=ite.configuration[0],n=[],r=`${Vk}.${t}`.split(".");for(;r.length>0;){n.push(r.shift());let i=e.properties[n.join(".")];if(tdt(i))n.length=0,e=i;else if(r.length==0&&i?.default!==void 0){if(xS.has(t))throw new Error(`Duplicate config default value ${Vk}.${t}`);xS.set(t,i.default)}}if(!xS.has(t))throw new Error(`Missing config default value ${Vk}.${t}`)}function sr(t,e){return t.get(dg).getConfig(e)}s(sr,"getConfig");function Gbe(t){return t.get(dg).dumpForTelemetry()}s(Gbe,"dumpForTelemetry");var uo=class{constructor(){this.packageJson=rte}static{s(this,"BuildInfo")}isPreRelease(){return this.getBuildType()==="nightly"}isProduction(){return this.getBuildType()!=="dev"}getBuildType(){return this.packageJson.buildType}getVersion(){return this.packageJson.version}getDisplayVersion(){return this.getBuildType()==="dev"?`${this.getVersion()}-dev`:this.getVersion()}getBuild(){return this.packageJson.build}getName(){return this.packageJson.name}};function PF(t){return t.get(uo).isProduction()}s(PF,"isProduction");function kEe(t){return t.get(uo).getBuildType()==="dev"}s(kEe,"isDevBuild");function kf(t){return t.get(uo).getBuildType()}s(kf,"getBuildType");function Hbe(t){return t.get(uo).getBuild()}s(Hbe,"getBuild");function lI(t){return t.get(uo).getVersion()}s(lI,"getVersion");var Rs=class{constructor(e,n,r="none",i="desktop"){this.sessionId=e;this.machineId=n;this.remoteName=r;this.uiKind=i}static{s(this,"EditorSession")}};function zh({name:t,version:e}){return`${t}/${e}`}s(zh,"formatNameAndVersion");var ur=class{static{s(this,"EditorAndPluginInfo")}getCopilotIntegrationId(){}},yf="2025-05-01";function Jd(t){let e=t.get(ur);return{"Editor-Version":zh(e.getEditorInfo()),"Editor-Plugin-Version":zh(e.getEditorPluginInfo()),"Copilot-Language-Server-Version":lI(t)}}s(Jd,"editorVersionHeaders");var XIe="Iv1.b507a08c87ecfe98",Ia=class{static{s(this,"GitHubAppInfo")}findAppIdToAuthenticate(){return this.githubAppId??XIe}fallbackAppId(){return XIe}};f();f();f();var vI={abap:{extensions:[".abap"]},aspdotnet:{extensions:[".asax",".ascx",".ashx",".asmx",".aspx",".axd"]},bat:{extensions:[".bat",".cmd"]},bibtex:{extensions:[".bib",".bibtex"]},blade:{extensions:[".blade",".blade.php"]},BluespecSystemVerilog:{extensions:[".bsv"]},c:{extensions:[".c",".cats",".h",".h.in",".idc"]},csharp:{extensions:[".cake",".cs",".cs.pp",".csx",".linq"]},cpp:{extensions:[".c++",".cc",".cp",".cpp",".cppm",".cxx",".h",".h++",".hh",".hpp",".hxx",".idl",".inc",".inl",".ino",".ipp",".ixx",".rc",".re",".tcc",".tpp",".txx",".i"]},cobol:{extensions:[".cbl",".ccp",".cob",".cobol",".cpy"]},css:{extensions:[".css",".wxss"]},clojure:{extensions:[".bb",".boot",".cl2",".clj",".cljc",".cljs",".cljs.hl",".cljscm",".cljx",".edn",".hic"],filenames:["riemann.config"]},ql:{extensions:[".ql",".qll"]},coffeescript:{extensions:["._coffee",".cake",".cjsx",".coffee",".iced"],filenames:["Cakefile"]},cuda:{extensions:[".cu",".cuh"]},dart:{extensions:[".dart"]},dockerfile:{extensions:[".containerfile",".dockerfile"],filenames:["Containerfile","Dockerfile"]},dotenv:{extensions:[".env"],filenames:[".env",".env.ci",".env.dev",".env.development",".env.development.local",".env.example",".env.local",".env.prod",".env.production",".env.sample",".env.staging",".env.test",".env.testing"]},html:{extensions:[".ect",".ejs",".ejs.t",".jst",".hta",".htm",".html",".html.hl",".html5",".inc",".jsp",".njk",".tpl",".twig",".wxml",".xht",".xhtml",".phtml",".liquid"]},elixir:{extensions:[".ex",".exs"],filenames:["mix.lock"]},erlang:{extensions:[".app",".app.src",".erl",".es",".escript",".hrl",".xrl",".yrl"],filenames:["Emakefile","rebar.config","rebar.config.lock","rebar.lock"]},fsharp:{extensions:[".fs",".fsi",".fsx"]},go:{extensions:[".go"]},groovy:{extensions:[".gradle",".groovy",".grt",".gtpl",".gvy",".jenkinsfile"],filenames:["Jenkinsfile","Jenkinsfile"]},graphql:{extensions:[".gql",".graphql",".graphqls"]},terraform:{extensions:[".hcl",".nomad",".tf",".tfvars",".workflow"]},hlsl:{extensions:[".cginc",".fx",".fxh",".hlsl",".hlsli"]},erb:{extensions:[".erb",".erb.deface",".rhtml"]},razor:{extensions:[".cshtml",".razor"]},haml:{extensions:[".haml",".haml.deface"]},handlebars:{extensions:[".handlebars",".hbs"]},haskell:{extensions:[".hs",".hs-boot",".hsc"]},ini:{extensions:[".cfg",".cnf",".dof",".ini",".lektorproject",".prefs",".pro",".properties",".url"],filenames:[".buckconfig",".coveragerc",".flake8",".pylintrc","HOSTS","buildozer.spec","hosts","pylintrc","vlcrc"]},json:{extensions:[".4DForm",".4DProject",".JSON-tmLanguage",".avsc",".geojson",".gltf",".har",".ice",".json",".json.example",".jsonl",".mcmeta",".sarif",".tact",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".all-contributorsrc",".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","MODULE.bazel.lock","Package.resolved","Pipfile.lock","bun.lock","composer.lock","deno.lock","flake.lock","mcmod.info"]},jsonc:{extensions:[".code-snippets",".code-workspace",".jsonc",".sublime-build",".sublime-color-scheme",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[".babelrc",".devcontainer.json",".eslintrc.json",".jscsrc",".jshintrc",".jslintrc",".swcrc","api-extractor.json","argv.json","devcontainer.json","extensions.json","jsconfig.json","keybindings.json","language-configuration.json","launch.json","profiles.json","settings.json","tasks.json","tsconfig.json","tslint.json"]},java:{extensions:[".jav",".java",".jsh"]},javascript:{extensions:["._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".js",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib"],filenames:["Jakefile"]},julia:{extensions:[".jl"]},kotlin:{extensions:[".kt",".ktm",".kts"]},less:{extensions:[".less"]},lua:{extensions:[".fcgi",".lua",".luau",".nse",".p8",".pd_lua",".rbxs",".rockspec",".wlua"],filenames:[".luacheckrc"]},makefile:{extensions:[".d",".mak",".make",".makefile",".mk",".mkfile"],filenames:["BSDmakefile","GNUmakefile","Kbuild","Makefile","Makefile.am","Makefile.boot","Makefile.frag","Makefile.in","Makefile.inc","Makefile.wat","makefile","makefile.sco","mkfile"]},markdown:{extensions:[".livemd",".markdown",".md",".mdown",".mdwn",".mdx",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr"]},"objective-c":{extensions:[".h",".m"]},"objective-cpp":{extensions:[".mm"]},php:{extensions:[".aw",".ctp",".fcgi",".inc",".install",".module",".php",".php3",".php4",".php5",".phps",".phpt",".theme"],filenames:[".php",".php_cs",".php_cs.dist","Phakefile"]},perl:{extensions:[".al",".cgi",".fcgi",".perl",".ph",".pl",".plx",".pm",".psgi",".t"],filenames:[".latexmkrc","Makefile.PL","Rexfile","ack","cpanfile","latexmkrc"]},powershell:{extensions:[".ps1",".psd1",".psm1"]},pug:{extensions:[".jade",".pug"]},python:{extensions:[".cgi",".codon",".fcgi",".gyp",".gypi",".lmi",".py",".py3",".pyde",".pyi",".pyp",".pyt",".pyw",".rpy",".sage",".spec",".tac",".wsgi",".xpy"],filenames:[".gclient","DEPS","SConscript","SConstruct","wscript"]},r:{extensions:[".r",".rd",".rsx"],filenames:[".Rprofile","expr-dist"]},ruby:{extensions:[".builder",".eye",".fcgi",".gemspec",".god",".jbuilder",".mspec",".pluginspec",".podspec",".prawn",".rabl",".rake",".rb",".rbi",".rbuild",".rbw",".rbx",".ru",".ruby",".spec",".thor",".watchr"],filenames:[".irbrc",".pryrc",".simplecov","Appraisals","Berksfile","Brewfile","Buildfile","Capfile","Dangerfile","Deliverfile","Fastfile","Gemfile","Guardfile","Jarfile","Mavenfile","Podfile","Puppetfile","Rakefile","Snapfile","Steepfile","Thorfile","Vagrantfile","buildfile"]},rust:{extensions:[".rs",".rs.in"]},scss:{extensions:[".scss"]},sql:{extensions:[".cql",".ddl",".inc",".mysql",".prc",".sql",".tab",".udf",".viw"]},sass:{extensions:[".sass"]},scala:{extensions:[".kojo",".sbt",".sc",".scala"]},shellscript:{extensions:[".bash",".bats",".cgi",".command",".fcgi",".fish",".ksh",".sh",".sh.in",".tmux",".tool",".trigger",".zsh",".zsh-theme"],filenames:[".bash_aliases",".bash_functions",".bash_history",".bash_logout",".bash_profile",".bashrc",".cshrc",".envrc",".flaskenv",".kshrc",".login",".profile",".tmux.conf",".zlogin",".zlogout",".zprofile",".zshenv",".zshrc","9fs","PKGBUILD","bash_aliases","bash_logout","bash_profile","bashrc","cshrc","gradlew","kshrc","login","man","profile","tmux.conf","zlogin","zlogout","zprofile","zshenv","zshrc"]},slang:{extensions:[".fxc",".hlsl",".s",".slang",".slangh",".usf",".ush",".vfx"]},slim:{extensions:[".slim"]},solidity:{extensions:[".sol"]},stylus:{extensions:[".styl"]},svelte:{extensions:[".svelte"]},swift:{extensions:[".swift"]},systemverilog:{extensions:[".sv",".svh",".vh"]},typescriptreact:{extensions:[".tsx"]},latex:{extensions:[".aux",".bbx",".cbx",".cls",".dtx",".ins",".lbx",".ltx",".mkii",".mkiv",".mkvi",".sty",".tex",".toc"]},typescript:{extensions:[".cts",".mts",".ts"]},verilog:{extensions:[".v",".veo"]},vim:{extensions:[".vba",".vim",".vimrc",".vmb"],filenames:[".exrc",".gvimrc",".nvimrc",".vimrc","_vimrc","gvimrc","nvimrc","vimrc"]},vb:{extensions:[".vb",".vbhtml",".Dsr",".bas",".cls",".ctl",".frm",".vbs"]},vue:{extensions:[".nvue",".vue"]},xml:{extensions:[".adml",".admx",".ant",".axaml",".axml",".builds",".ccproj",".ccxml",".clixml",".cproject",".cscfg",".csdef",".csl",".csproj",".ct",".depproj",".dita",".ditamap",".ditaval",".dll.config",".dotsettings",".filters",".fsproj",".fxml",".glade",".gml",".gmx",".gpx",".grxml",".gst",".hzp",".iml",".ivy",".jelly",".jsproj",".kml",".launch",".mdpolicy",".mjml",".mod",".mojo",".mxml",".natvis",".ncl",".ndproj",".nproj",".nuspec",".odd",".osm",".pkgproj",".plist",".pluginspec",".proj",".props",".ps1xml",".psc1",".pt",".pubxml",".qhelp",".rdf",".res",".resx",".rss",".sch",".scxml",".sfproj",".shproj",".srdf",".storyboard",".sublime-snippet",".svg",".sw",".targets",".tml",".typ",".ui",".urdf",".ux",".vbproj",".vcxproj",".vsixmanifest",".vssettings",".vstemplate",".vxml",".wixproj",".workflow",".wsdl",".wsf",".wxi",".wxl",".wxs",".x3d",".xacro",".xaml",".xib",".xlf",".xliff",".xmi",".xml",".xml.dist",".xmp",".xproj",".xsd",".xspec",".xul",".zcml"],filenames:[".classpath",".cproject",".project","App.config","NuGet.config","Settings.StyleCop","Web.Debug.config","Web.Release.config","Web.config","packages.config"]},xsl:{extensions:[".xsl",".xslt"]},yaml:{extensions:[".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".clangd",".gemrc","CITATION.cff","glide.lock","pixi.lock","yarn.lock"]},javascriptreact:{extensions:[".jsx"]},legend:{extensions:[".pure"]}};f();f();var t2e=[".ejs",".erb",".haml",".hbs",".j2",".jinja",".jinja2",".liquid",".mustache",".njk",".php",".pug",".slim",".webc"],n2e={".php":[".blade"]},t8=Object.keys(vI).flatMap(t=>vI[t].extensions);var ote=Ve(require("node:path"));var IS=class{constructor(e,n,r){this.languageId=e;this.isGuess=n;this.fileExtension=r}static{s(this,"Language")}},n8=class{static{s(this,"LanguageDetection")}},ste=new Map,ES=new Map;for(let[t,{extensions:e,filenames:n}]of Object.entries(vI)){for(let r of e)ste.set(r,[...ste.get(r)??[],t]);for(let r of n??[])ES.set(r,[...ES.get(r)??[],t])}var ate=class extends n8{static{s(this,"FilenameAndExensionLanguageDetection")}detectLanguage(e){let n=Ti(e.uri),r=ote.extname(n).toLowerCase(),i=this.extensionWithoutTemplateLanguage(n,r),o=this.detectLanguageId(n,i),a=this.computeFullyQualifiedExtension(r,i);return o?new IS(o.languageId,o.isGuess,a):new IS(e.languageId,!0,a)}extensionWithoutTemplateLanguage(e,n){if(t2e.includes(n)){let r=e.substring(0,e.lastIndexOf(".")),i=ote.extname(r).toLowerCase();if(i.length>0&&t8.includes(i)&&this.isExtensionValidForTemplateLanguage(n,i))return i}return n}isExtensionValidForTemplateLanguage(e,n){let r=n2e[e];return!r||r.includes(n)}detectLanguageId(e,n){if(ES.has(e))return{languageId:ES.get(e)[0],isGuess:!1};let r=ste.get(n)??[];if(r.length>0)return{languageId:r[0],isGuess:r.length>1};for(;e.includes(".");)if(e=e.replace(/\.[^.]*$/,""),ES.has(e))return{languageId:ES.get(e)[0],isGuess:!1}}computeFullyQualifiedExtension(e,n){return e!==n?n+e:e}},lte=class extends n8{constructor(n){super();this.delegate=n}static{s(this,"GroupingLanguageDetection")}detectLanguage(n){let r=this.delegate.detectLanguage(n),i=r.languageId;return i==="c"||i==="cpp"?new IS("cpp",r.isGuess,r.fileExtension):r}},cte=class extends n8{constructor(n){super();this.delegate=n}static{s(this,"ClientProvidedLanguageDetection")}detectLanguage(n){return n.uri.startsWith("untitled:")||n.uri.startsWith("vscode-notebook-cell:")?new IS(n.languageId,!0,""):this.delegate.detectLanguage(n)}},idt=new lte(new cte(new ate));function Gx({uri:t,languageId:e}){let n=idt.detectLanguage({uri:t,languageId:"UNKNOWN"});return n.languageId==="UNKNOWN"?e:n.languageId}s(Gx,"detectLanguage");f();f();f();f();function w1(t){if(t.isCancellationRequested)throw new RM}s(w1,"throwIfCancellationRequested");function BM(t){return t instanceof RM?!0:t instanceof Error&&t.name===ute&&t.message===ute}s(BM,"isCancellationError");var RM=class extends Error{static{s(this,"CancellationError")}constructor(){super(ute),this.name=this.message}},ute="Canceled",kM=class{constructor(){this.items=[]}static{s(this,"Stack")}push(e){this.items.push(e)}pop(){return this.items.pop()}peek(){return this.items[this.items.length-1]}tryPeek(){return this.items.length>0}toArray(){return this.items}};function bI(t){switch(t){case 0:case 2:case 7:case 8:case 11:case 12:case 13:case 14:return!0;default:return!1}}s(bI,"isTypeDefinition");var Wc=class t{static{s(this,"TextRange")}static{this.empty=new t(0,0)}constructor(e,n){this.start=e,this.length=n}static fromBounds(e,n){return new t(e,n-e)}get end(){return this.start+this.length}contains(e){return this.start<=e&&this.end>=e}containsRange(e){return this.start<=e.start&&this.end>=e.end}equals(e){return this.start===e.start&&this.length===e.length}getText(e){return e.slice(this.start,this.end)}getTextWithIndentation(e,n){let r=[],i=this.start;for(i=i2e(e,e.length,i),r2e(r,n);i<this.end;)e[i]!=="\r"&&e[i]!==`
374
+ ] @statement`}};var rte={};i1(rte,{activationEvents:()=>jut,badges:()=>Hut,browser:()=>Vut,bugs:()=>Fut,build:()=>kut,buildType:()=>But,categories:()=>Wut,contributes:()=>ite,default:()=>Zut,dependencies:()=>Jut,description:()=>Sut,devDependencies:()=>Kut,displayName:()=>_ut,enabledApiProposals:()=>zut,engines:()=>qut,extensionPack:()=>Uut,homepage:()=>Nut,icon:()=>Qut,keywords:()=>Gut,license:()=>Lut,main:()=>$ut,name:()=>wut,overrides:()=>Xut,preview:()=>Put,pricing:()=>Out,publisher:()=>Dut,qna:()=>Mut,scripts:()=>Yut,version:()=>Rut});var wut="copilot",_ut="GitHub Copilot",Sut="Your AI pair programmer",Rut="1.332.0",kut="1614",But="prod",Dut="GitHub",Put=!1,Nut="https://github.com/features/copilot?editor=vscode",Lut="https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features",Fut={url:"https://github.com/microsoft/vscode-copilot-release/issues"},Mut="https://github.com/github-community/community/discussions/categories/copilot",Qut="assets/Copilot-App-Icon.png",Out="Trial",Uut=["GitHub.copilot-chat","GitHub.copilot"],qut={vscode:"^1.98.0",node:">=20.0.0",npm:">=9.0.0"},Wut=["AI","Chat","Programming Languages","Machine Learning"],Gut=["ai","openai","codex","pilot","snippets","documentation","autocomplete","intellisense","refactor","javascript","python","typescript","php","go","golang","ruby","c++","c#","java","kotlin","co-pilot"],Hut=[{url:"https://img.shields.io/badge/GitHub%20Copilot-Subscription%20Required-orange",href:"https://github.com/github-copilot/signup?editor=vscode",description:"Sign up for GitHub Copilot"},{url:"https://img.shields.io/github/stars/github/copilot-docs?style=social",href:"https://github.com/github/copilot-docs",description:"Star Copilot on GitHub"},{url:"https://img.shields.io/youtube/channel/views/UC7c3Kb6jYCRj4JOHHZTxKsQ?style=social",href:"https://www.youtube.com/@GitHub/search?query=copilot",description:"Check out GitHub on Youtube"},{url:"https://img.shields.io/twitter/follow/github?style=social",href:"https://twitter.com/github",description:"Follow GitHub on Twitter"}],jut=["onStartupFinished"],Vut="./dist/web",$ut="./dist/extension",zut=["inlineCompletionsAdditions"],ite={commands:[{command:"github.copilot.toggleStatusMenu",title:"Open Status Menu",category:"GitHub Copilot"},{command:"github.copilot.signIn",title:"Sign In",category:"GitHub Copilot",enablement:"!github.copilot.activated"},{command:"github.copilot.acceptCursorPanelSolution",title:"Accept Panel Suggestion at the Cursor",enablement:"github.copilot.panelVisible",category:"GitHub Copilot"},{command:"github.copilot.previousPanelSolution",title:"Navigate to the Previous Panel Suggestion",enablement:"github.copilot.panelVisible",category:"GitHub Copilot"},{command:"github.copilot.nextPanelSolution",title:"Navigate to the Next Panel Suggestion",enablement:"github.copilot.panelVisible",category:"GitHub Copilot"},{command:"github.copilot.generate",title:"Open Completions Panel",enablement:"github.copilot.activated && !isWeb",category:"GitHub Copilot"},{command:"github.copilot.completions.disable",title:"Disable Completions",enablement:"github.copilot.activated && config.editor.inlineSuggest.enabled && github.copilot.completions.enabled",category:"GitHub Copilot"},{command:"github.copilot.completions.enable",title:"Enable Completions",enablement:"github.copilot.activated && !(config.editor.inlineSuggest.enabled && github.copilot.completions.enabled)",category:"GitHub Copilot"},{command:"github.copilot.completions.toggle",title:"Toggle (Enable/Disable) Completions",enablement:"github.copilot.activated",category:"GitHub Copilot"},{command:"github.copilot.sendFeedback",title:"Send Feedback",category:"GitHub Copilot"},{command:"github.copilot.collectDiagnostics",title:"Collect Diagnostics",category:"GitHub Copilot",enablement:"!isWeb"},{command:"github.copilot.openLogs",title:"Open Logs",category:"GitHub Copilot"},{command:"github.copilot.openModelPicker",title:"Change Completions Model",category:"GitHub Copilot",enablement:"!isWeb"},{command:"github.copilot.sendCompletionFeedback",title:"Send Copilot Completion Feedback",category:"GitHub Copilot",enablement:"!isWeb"}],keybindings:[{command:"github.copilot.acceptCursorPanelSolution",key:"ctrl+/",mac:"ctrl+/",when:"activeWebviewPanelId == 'GitHub Copilot Suggestions'"},{command:"github.copilot.previousPanelSolution",key:"alt+[",mac:"alt+[",when:"activeWebviewPanelId == 'GitHub Copilot Suggestions'"},{command:"github.copilot.nextPanelSolution",key:"alt+]",mac:"alt+]",when:"activeWebviewPanelId == 'GitHub Copilot Suggestions'"},{command:"editor.action.inlineSuggest.trigger",key:"alt+\\",when:"editorTextFocus && !editorHasSelection && !inlineSuggestionsVisible"}],configuration:[{title:"GitHub Copilot",properties:{"github.copilot.selectedCompletionModel":{type:"string",default:"",markdownDescription:'The currently selected completion model ID. To select from a list of available models, use the __"Change Completion Model"__ command or open the model picker from the Copilot menu. The value must be a valid model ID. An empty value indicates that the default model will be used.'},"github.copilot.advanced":{type:"object",title:"Advanced Settings",properties:{authProvider:{type:"string",enum:["github","github-enterprise"],enumDescriptions:["GitHub.com","GitHub Enterprise"],default:"github",description:"The GitHub identity to use for Copilot"},authPermissions:{type:"string",enum:["default","minimal"],markdownEnumDescriptions:["Default (recommended) - The default permissions enable the best that Copilot has to offer including, but not limited to, faster repo indexing and the power of the `@github` agent.","Minimal - The minimal permissions required for Copilot functionality."],default:"default",markdownDescription:"Controls what kind of permissions are asked for when signing in to Copilot. The options are\n* `default` - (strongly recommended) The default permissions enable the best that Copilot has to offer including, but not limited to, faster repo indexing and the power of the `@github` agent.\n* `minimal` - The minimal permissions are the least that Copilot needs to function. Some features may behave slower or not at all."},useLanguageServer:{type:"boolean",default:!1,description:"Experimental: Use language server"},"debug.overrideEngine":{type:"string",default:"",description:"Override engine name"},"debug.overrideProxyUrl":{type:"string",default:"",description:"Override GitHub authentication proxy full URL"},"debug.testOverrideProxyUrl":{type:"string",default:"",description:"Override GitHub authentication proxy URL when running tests"},"debug.overrideCapiUrl":{type:"string",default:"",description:"Override GitHub Copilot API full URL"},"debug.testOverrideCapiUrl":{type:"string",default:"",description:"Override GitHub Copilot API URL when running tests"},"debug.filterLogCategories":{type:"array",default:[],deprecationMessage:"Set overrideLogLevels.* to ERROR to filter out unwanted categories.",description:"Show only log categories listed in this setting. If an array is empty, show all loggers"}}},"github.copilot.enable":{type:"object",scope:"window",default:{"*":!0,plaintext:!1,markdown:!1,scminput:!1},additionalProperties:{type:"boolean"},markdownDescription:"Enable or disable Copilot completions for specified [languages](https://code.visualstudio.com/docs/languages/identifiers)"},"github.copilot.inlineSuggest.enable":{type:"boolean",default:!0,deprecationMessage:"This setting has no effect. Please use github.copilot.enable instead.",description:"Show inline suggestions"},"github.copilot.editor.enableAutoCompletions":{type:"boolean",scope:"language-overridable",default:!0,deprecationMessage:"This setting has no effect. Please use github.copilot.enable instead.",description:"Automatically show inline completions"}}}],configurationDefaults:{"editor.tokenColorCustomizations":{"[*Light*]":{textMateRules:[{scope:"ref.matchtext",settings:{foreground:"#000"}}]},"[*Dark*]":{textMateRules:[{scope:"ref.matchtext",settings:{foreground:"#fff"}}]}}},languages:[{id:"code-referencing"}],grammars:[{language:"code-referencing",scopeName:"text.ref",path:"./syntaxes/ref.tmGrammar.json"}],iconFonts:[{id:"copilot-font",src:[{path:"assets/copilot.woff",format:"woff"}]}]},Yut={build:"tsx esbuild.ts",clean:"./script/build/clean.sh",compress:"tsx ./script/compressTokenizer.ts","forbid-sources-content:extension":"node script/forbid-sources-content.js --extension",generate_languages:"tsx script/generateLanguages.ts && prettier --write lib/src/language/generatedLanguages.ts",get_token:"tsx script/getToken.ts",lint:'run-p --aggregate-output "lint:*"',"lint:deps":"depcruise -c .dependency-cruiser.js .","lint:eslint":"eslint -f visualstudio --quiet --cache .","lint:prettier":"prettier --check . 2>&1","lint:types":"tsc --noEmit && tsc --noEmit -p extension/src/copilotPanel/webview",prebuild:"npm install",pretest:"npm run build","pretest:headless":"npm run build","pretest:extension":"npm run build","pretest:lsp-client":"npm run build","pretest:lib-e2e":"npm run build",prewatch:"npm run build","prewatch:esbuild":"npm run build",start:"npm run watch",test:'npm-run-all "test:extension --ignore-scripts" "test:headless --ignore-scripts" lint',"test:headless":'npm-run-all test:lib test:agent "test:lib-e2e --ignore-scripts" test:prompt "test:lsp-client --ignore-scripts" lint',"test:agent":'mocha "agent/src/**/*.test.{ts,tsx}"',"test:extension":"tsx extension/test/runTest.ts","test:lib":'mocha "lib/src/**/*.test.{ts,tsx}"',"test:lib-e2e":'mocha "lib/e2e/src/**/*.test.{ts,tsx}" --exclude "lib/e2e/src/prompt/**/*.test.ts"',"test:lib-e2e-no-ci":'mocha "lib/e2e/no-ci/**/*.test.{ts,tsx}"',"test:lib-prompt-e2e":'mocha "lib/e2e/src/prompt/prompt.test.ts"',"test:lib-prompt-e2e-perf":"INCLUDE_PERFORMANCE=true npm run test:lib-prompt-e2e","test:lsp-client":'mocha "lsp-client/test/*.test.{ts,tsx}"',"test:prompt":'mocha "prompt/test/**/*.test.{ts,tsx}"',"vscode-dts":"vscode-dts dev && mv vscode.proposed.*.ts extension/src","vscode:prepublish":'run-s "build --ignore-scripts" forbid-sources-content:extension',"vscode:uninstall":"node dist/extensionUninstalled.js",vsix:"vsce package --allow-missing-repository",watch:'run-p "watch:esbuild --ignore-scripts" "watch:types -- --preserveWatchOutput"',"watch:esbuild":"tsx esbuild.ts --watch","watch:types":"tsc --noEmit --watch"},Kut={"@datadog/datadog-ci":"^3.5.0","@github/prettier-config":"0.0.6","@limegrass/eslint-plugin-import-alias":"^1.5.1","@parcel/watcher":"^2.5.1","@types/benchmark":"^2.1.5","@types/crypto-js":"^4.2.2","@types/diff":"^7.0.2","@types/git-url-parse":"^16.0.0","@types/js-yaml":"^4.0.6","@types/kerberos":"^1.1.2","@types/mocha":"^10.0.10","@types/node":"~20.8.0","@types/semver":"^7.7.0","@types/sinon":"^17.0.4","@types/uuid":"^10.0.0","@types/vscode":"1.98.0","@types/yargs":"^17.0.24","@vscode/test-electron":"^2.5.2","@vscode/vsce":"^3.3.2","@yao-pkg/pkg":"^6.4.1",benchmark:"^2.1.4",boxen:"^8.0.1",chalk:"^5.4.1","dependency-cruiser":"^16.10.2",electron:"^28.1.4",esbuild:"^0.25.4","esbuild-plugin-copy":"^2.1.1",eslint:"^9.26.0","eslint-formatter-visualstudio":"^8.40.0","eslint-plugin-mocha":"^10.5.0",fantasticon:"^3.0.0",glob:"^11.0.2",globals:"^16.1.0","js-yaml":"^4.1.0",mocha:"^11.2.2","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","npm-run-all":"^4.1.5",prettier:"^3.5.3","prettier-plugin-organize-imports":"^4.1.0",proxy:"^2.1.1","simple-git":"^3.27.0",sinon:"^20.0.0","ts-dedent":"^2.2.0",tsx:"^4.19.4",typescript:"^5.8.3","typescript-eslint":"^8.32.0","vscode-dts":"^0.3.3"},Jut={"@adobe/helix-fetch":"github:devm33/helix-fetch#1088e599270f36632703f138d88c2100cbe468db","@github/memoize":"1.1.5","@microsoft/1ds-post-js":"^4.3.6","@microsoft/applicationinsights-web-basic":"^3.3.6","@microsoft/tiktokenizer":"^1.0.10","@modelcontextprotocol/sdk":"^1.11.1","@sinclair/typebox":"^0.34.33","@types/vscode-webview":"^1.57.4","@vscode/codicons":"^0.0.36","@vscode/prompt-tsx":"0.4.0-alpha.1","@vscode/webview-ui-toolkit":"^1.3.1","await-lock":"^2.2.2","crypto-js":"^4.2.0",diff:"^7.0.0",dldr:"^0.0.10","get-stream":"^6.0.1","git-url-parse":"^16.0.3",kerberos:"^2.2.0","mac-ca":"^3.1.1",microjob:"^0.7.0",minimatch:"^9.0.3",open:"^10.1.2","os-browserify":"^0.3.0","path-browserify":"^1.0.1",semver:"^7.7.1",shiki:"~1.15.0","source-map-support":"^0.5.21",sqlite3:"^5.1.7",uuid:"^11.1.0","vscode-languageclient":"^9.0.0","vscode-languageserver":"^9.0.0","vscode-languageserver-protocol":"^3.17","vscode-languageserver-textdocument":"~1.0.11","vscode-uri":"^3.1.0","web-tree-sitter":"^0.20.8","windows-ca-certs":"^0.1.0",yargs:"^17.7.2"},Xut={fsevents:"<0",bindings:"npm:bundled-bindings@^1.5.0"},Zut={name:wut,displayName:_ut,description:Sut,version:Rut,build:kut,buildType:But,publisher:Dut,preview:Put,homepage:Nut,license:Lut,bugs:Fut,qna:Mut,icon:Qut,pricing:Out,extensionPack:Uut,engines:qut,categories:Wut,keywords:Gut,badges:Hut,activationEvents:jut,browser:Vut,main:$ut,enabledApiProposals:zut,contributes:ite,scripts:Yut,devDependencies:Kut,dependencies:Jut,overrides:Xut};var ft={Enable:"enable",UserSelectedCompletionModel:"selectedCompletionModel",ShowEditorCompletions:"editor.showEditorCompletions",EnableAutoCompletions:"editor.enableAutoCompletions",DelayCompletions:"editor.delayCompletions",FilterCompletions:"editor.filterCompletions",FetchStrategy:"fetchStrategy",RelatedFilesVSCodeCSharp:"advanced.relatedFilesVSCodeCSharp",RelatedFilesVSCodeTypeScript:"advanced.relatedFilesVSCodeTypeScript",RelatedFilesVSCode:"advanced.relatedFilesVSCode",ContextProviders:"advanced.contextProviders",DebugOverrideLogLevels:"advanced.debug.overrideLogLevels",DebugFilterLogCategories:"advanced.debug.filterLogCategories",DebugSnippyOverrideUrl:"advanced.debug.codeRefOverrideUrl",DebugUseElectronFetcher:"advanced.debug.useElectronFetcher",DebugUseEditorFetcher:"advanced.debug.useEditorFetcher",UseSubsetMatching:"advanced.useSubsetMatching",ContextProviderTimeBudget:"advanced.contextProviderTimeBudget",DebugOverrideCapiUrl:"internal.capiUrl",DebugOverrideCapiUrlLegacy:"advanced.debug.overrideCapiUrl",DebugTestOverrideCapiUrl:"internal.capiTestUrl",DebugTestOverrideCapiUrlLegacy:"advanced.debug.testOverrideCapiUrl",DebugOverrideProxyUrl:"internal.completionsUrl",DebugOverrideProxyUrlLegacy:"advanced.debug.overrideProxyUrl",DebugTestOverrideProxyUrl:"internal.completionsTestUrl",DebugTestOverrideProxyUrlLegacy:"advanced.debug.testOverrideProxyUrl",DebugOverrideEngine:"internal.completionModel",DebugOverrideEngineLegacy:"advanced.debug.overrideEngine",UseAsyncCompletions:"internal.useAsyncCompletions",EnableSpeculativeRequests:"internal.enableSpeculativeRequests",CompletionsDelay:"internal.completionsDelay",AlwaysRequestMultiline:"internal.alwaysRequestMultiline",ModelAlwaysTerminatesSingleline:"internal.modelAlwaysTerminatesSingleline",TrimCompletionsAggressively:"internal.trimCompletionsAggressively",VSCodeDebounceThreshold:"internal.vscodeDebounceThreshold",RecentEditsInPrompt:"internal.recentEditsInPrompt",RecentEditsEditCount:"internal.recentEditsEditCount",RecentEditsMaxFiles:"internal.recentEditsMaxFiles",RecentEditsContextLines:"internal.recentEditsContextLines",RecentEditsEditMergeLineDistance:"internal.recentEditsEditMergeLineDistance",RecentEditsRemoveDeletedLines:"internal.recentEditsRemoveDeletedLines",InsertionsBeforeDeletions:"internal.recentEditsInsertionsBeforeDeletions",RecentEditsAppendNoReplyMarker:"internal.recentEditsAppendNoReplyMarker",RecentEditsMaxLinesBetweenEdits:"internal.recentEditsMaxLinesBetweenEdits",RecentEditsActiveDocDistanceLimitFromCursor:"internal.recentEditsActiveDocDistanceLimitFromCursor",RecentEditsSummarizationFormat:"internal.recentEditsSummarizationFormat",RecentEditsMaxLinesPerEdit:"internal.recentEditsMaxLinesPerEdit",RecentEditsMaxCharsPerEdit:"internal.recentEditsMaxCharsPerEdit",RecentEditsDebounceTimeout:"internal.recentEditsDebounceTimeout",UseWorkspaceContextCoordinator:"internal.useWorkspaceContextCoordinator",IncludeNeighboringFiles:"internal.includeNeighboringFiles",ExcludeRelatedFiles:"internal.excludeRelatedFiles",DebugOverrideCppHeadersEnableSwitch:"internal.cppHeadersEnableSwitch",MultilineAfterAccept:"internal.multilineAfterAccept",NESXTab:"internal.useXTab"};function ZIe(t){return["server","parsingandserver"].includes(t)}s(ZIe,"shouldDoServerTrimming");var gm=class{static{s(this,"BlockModeConfig")}},vS=class extends gm{static{s(this,"ConfigBlockModeConfig")}forLanguage(e,n,r){let i=e.get(Bt).overrideBlockMode(r);if(i)return JIe(i,n);let o=e.get(Bt).enableProgressiveReveal(r);return sr(e,ft.AlwaysRequestMultiline)??o?JIe("moremultiline",n):n=="ruby"?"parsing":f0(n)?"parsingandserver":"server"}};function edt(t){return["parsing","parsingandserver","moremultiline"].includes(t)}s(edt,"blockModeRequiresTreeSitter");function JIe(t,e){return t==="moremultiline"&&qc.isSupported(e)?t:edt(t)&&!f0(e)?"server":t}s(JIe,"toApplicableBlockMode");var dg=class{static{s(this,"ConfigProvider")}},bS=class extends dg{static{s(this,"DefaultsOnlyConfigProvider")}getConfig(e){return ndt(e)}getOptionalConfig(e){return rdt(e)}dumpForTelemetry(){return{}}},xI=class extends dg{constructor(n,r){super();this.baseConfigProvider=n;this.overrides=r}static{s(this,"InMemoryConfigProvider")}getOptionalOverride(n){return this.overrides.get(n)}getConfig(n){return this.getOptionalOverride(n)??this.baseConfigProvider.getConfig(n)}getOptionalConfig(n){return this.getOptionalOverride(n)??this.baseConfigProvider.getOptionalConfig(n)}setConfig(n,r){r!==void 0?this.overrides.set(n,r):this.overrides.delete(n)}dumpForTelemetry(){let n=this.baseConfigProvider.dumpForTelemetry();for(let r of[ft.ShowEditorCompletions,ft.EnableAutoCompletions,ft.DelayCompletions,ft.FilterCompletions]){let i=this.overrides.get(r);i!==void 0&&(n[r]=JSON.stringify(i))}return n}};function tdt(t){return t?.type==="object"&&"properties"in t}s(tdt,"isContributesObject");function e2e(t,e){let n=t,r=[];for(let i of e.split(".")){let o=[...r,i].join(".");n&&typeof n=="object"&&o in n?(n=n[o],r.length=0):r.push(i)}if(!(n===void 0||r.length>0))return n}s(e2e,"getConfigKeyRecursively");function ndt(t){if(xS.has(t))return xS.get(t);throw new Error(`Missing config default value: ${Vk}.${t}`)}s(ndt,"getConfigDefaultForKey");function rdt(t){return xS.get(t)}s(rdt,"getOptionalConfigDefaultForKey");var xS=new Map([[ft.DebugOverrideCppHeadersEnableSwitch,!1],[ft.RelatedFilesVSCodeCSharp,!1],[ft.RelatedFilesVSCodeTypeScript,!1],[ft.RelatedFilesVSCode,!1],[ft.IncludeNeighboringFiles,!1],[ft.ExcludeRelatedFiles,!1],[ft.ContextProviders,[]],[ft.DebugUseEditorFetcher,null],[ft.DebugUseElectronFetcher,null],[ft.DebugOverrideLogLevels,{}],[ft.DebugSnippyOverrideUrl,""],[ft.FetchStrategy,"auto"],[ft.UseSubsetMatching,null],[ft.ContextProviderTimeBudget,void 0],[ft.DebugOverrideCapiUrl,""],[ft.DebugTestOverrideCapiUrl,""],[ft.DebugOverrideProxyUrl,""],[ft.DebugTestOverrideProxyUrl,""],[ft.DebugOverrideEngine,""],[ft.UseAsyncCompletions,void 0],[ft.EnableSpeculativeRequests,void 0],[ft.AlwaysRequestMultiline,void 0],[ft.ModelAlwaysTerminatesSingleline,void 0],[ft.TrimCompletionsAggressively,void 0],[ft.VSCodeDebounceThreshold,void 0],[ft.RecentEditsInPrompt,void 0],[ft.RecentEditsEditCount,void 0],[ft.RecentEditsMaxFiles,void 0],[ft.RecentEditsContextLines,void 0],[ft.RecentEditsEditMergeLineDistance,void 0],[ft.RecentEditsRemoveDeletedLines,void 0],[ft.InsertionsBeforeDeletions,void 0],[ft.RecentEditsAppendNoReplyMarker,void 0],[ft.RecentEditsMaxLinesBetweenEdits,void 0],[ft.RecentEditsActiveDocDistanceLimitFromCursor,void 0],[ft.RecentEditsSummarizationFormat,void 0],[ft.RecentEditsMaxLinesPerEdit,void 0],[ft.RecentEditsMaxCharsPerEdit,void 0],[ft.RecentEditsDebounceTimeout,void 0],[ft.MultilineAfterAccept,void 0],[ft.NESXTab,void 0],[ft.UseWorkspaceContextCoordinator,void 0],[ft.CompletionsDelay,void 0],[ft.ShowEditorCompletions,void 0],[ft.DelayCompletions,void 0],[ft.FilterCompletions,void 0]]);for(let t of Object.values(ft)){let e=ite.configuration[0],n=[],r=`${Vk}.${t}`.split(".");for(;r.length>0;){n.push(r.shift());let i=e.properties[n.join(".")];if(tdt(i))n.length=0,e=i;else if(r.length==0&&i?.default!==void 0){if(xS.has(t))throw new Error(`Duplicate config default value ${Vk}.${t}`);xS.set(t,i.default)}}if(!xS.has(t))throw new Error(`Missing config default value ${Vk}.${t}`)}function sr(t,e){return t.get(dg).getConfig(e)}s(sr,"getConfig");function Gbe(t){return t.get(dg).dumpForTelemetry()}s(Gbe,"dumpForTelemetry");var uo=class{constructor(){this.packageJson=rte}static{s(this,"BuildInfo")}isPreRelease(){return this.getBuildType()==="nightly"}isProduction(){return this.getBuildType()!=="dev"}getBuildType(){return this.packageJson.buildType}getVersion(){return this.packageJson.version}getDisplayVersion(){return this.getBuildType()==="dev"?`${this.getVersion()}-dev`:this.getVersion()}getBuild(){return this.packageJson.build}getName(){return this.packageJson.name}};function PF(t){return t.get(uo).isProduction()}s(PF,"isProduction");function kEe(t){return t.get(uo).getBuildType()==="dev"}s(kEe,"isDevBuild");function kf(t){return t.get(uo).getBuildType()}s(kf,"getBuildType");function Hbe(t){return t.get(uo).getBuild()}s(Hbe,"getBuild");function lI(t){return t.get(uo).getVersion()}s(lI,"getVersion");var Rs=class{constructor(e,n,r="none",i="desktop"){this.sessionId=e;this.machineId=n;this.remoteName=r;this.uiKind=i}static{s(this,"EditorSession")}};function zh({name:t,version:e}){return`${t}/${e}`}s(zh,"formatNameAndVersion");var ur=class{static{s(this,"EditorAndPluginInfo")}getCopilotIntegrationId(){}},yf="2025-05-01";function Jd(t){let e=t.get(ur);return{"Editor-Version":zh(e.getEditorInfo()),"Editor-Plugin-Version":zh(e.getEditorPluginInfo()),"Copilot-Language-Server-Version":lI(t)}}s(Jd,"editorVersionHeaders");var XIe="Iv1.b507a08c87ecfe98",Ia=class{static{s(this,"GitHubAppInfo")}findAppIdToAuthenticate(){return this.githubAppId??XIe}fallbackAppId(){return XIe}};f();f();f();var vI={abap:{extensions:[".abap"]},aspdotnet:{extensions:[".asax",".ascx",".ashx",".asmx",".aspx",".axd"]},bat:{extensions:[".bat",".cmd"]},bibtex:{extensions:[".bib",".bibtex"]},blade:{extensions:[".blade",".blade.php"]},BluespecSystemVerilog:{extensions:[".bsv"]},c:{extensions:[".c",".cats",".h",".h.in",".idc"]},csharp:{extensions:[".cake",".cs",".cs.pp",".csx",".linq"]},cpp:{extensions:[".c++",".cc",".cp",".cpp",".cppm",".cxx",".h",".h++",".hh",".hpp",".hxx",".idl",".inc",".inl",".ino",".ipp",".ixx",".rc",".re",".tcc",".tpp",".txx",".i"]},cobol:{extensions:[".cbl",".ccp",".cob",".cobol",".cpy"]},css:{extensions:[".css",".wxss"]},clojure:{extensions:[".bb",".boot",".cl2",".clj",".cljc",".cljs",".cljs.hl",".cljscm",".cljx",".edn",".hic"],filenames:["riemann.config"]},ql:{extensions:[".ql",".qll"]},coffeescript:{extensions:["._coffee",".cake",".cjsx",".coffee",".iced"],filenames:["Cakefile"]},cuda:{extensions:[".cu",".cuh"]},dart:{extensions:[".dart"]},dockerfile:{extensions:[".containerfile",".dockerfile"],filenames:["Containerfile","Dockerfile"]},dotenv:{extensions:[".env"],filenames:[".env",".env.ci",".env.dev",".env.development",".env.development.local",".env.example",".env.local",".env.prod",".env.production",".env.sample",".env.staging",".env.test",".env.testing"]},html:{extensions:[".ect",".ejs",".ejs.t",".jst",".hta",".htm",".html",".html.hl",".html5",".inc",".jsp",".njk",".tpl",".twig",".wxml",".xht",".xhtml",".phtml",".liquid"]},elixir:{extensions:[".ex",".exs"],filenames:["mix.lock"]},erlang:{extensions:[".app",".app.src",".erl",".es",".escript",".hrl",".xrl",".yrl"],filenames:["Emakefile","rebar.config","rebar.config.lock","rebar.lock"]},fsharp:{extensions:[".fs",".fsi",".fsx"]},go:{extensions:[".go"]},groovy:{extensions:[".gradle",".groovy",".grt",".gtpl",".gvy",".jenkinsfile"],filenames:["Jenkinsfile","Jenkinsfile"]},graphql:{extensions:[".gql",".graphql",".graphqls"]},terraform:{extensions:[".hcl",".nomad",".tf",".tfvars",".workflow"]},hlsl:{extensions:[".cginc",".fx",".fxh",".hlsl",".hlsli"]},erb:{extensions:[".erb",".erb.deface",".rhtml"]},razor:{extensions:[".cshtml",".razor"]},haml:{extensions:[".haml",".haml.deface"]},handlebars:{extensions:[".handlebars",".hbs"]},haskell:{extensions:[".hs",".hs-boot",".hsc"]},ini:{extensions:[".cfg",".cnf",".dof",".ini",".lektorproject",".prefs",".pro",".properties",".url"],filenames:[".buckconfig",".coveragerc",".flake8",".pylintrc","HOSTS","buildozer.spec","hosts","pylintrc","vlcrc"]},json:{extensions:[".4DForm",".4DProject",".JSON-tmLanguage",".avsc",".geojson",".gltf",".har",".ice",".json",".json.example",".jsonl",".mcmeta",".sarif",".tact",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".all-contributorsrc",".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","MODULE.bazel.lock","Package.resolved","Pipfile.lock","bun.lock","composer.lock","deno.lock","flake.lock","mcmod.info"]},jsonc:{extensions:[".code-snippets",".code-workspace",".jsonc",".sublime-build",".sublime-color-scheme",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[".babelrc",".devcontainer.json",".eslintrc.json",".jscsrc",".jshintrc",".jslintrc",".swcrc","api-extractor.json","argv.json","devcontainer.json","extensions.json","jsconfig.json","keybindings.json","language-configuration.json","launch.json","profiles.json","settings.json","tasks.json","tsconfig.json","tslint.json"]},java:{extensions:[".jav",".java",".jsh"]},javascript:{extensions:["._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".js",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib"],filenames:["Jakefile"]},julia:{extensions:[".jl"]},kotlin:{extensions:[".kt",".ktm",".kts"]},less:{extensions:[".less"]},lua:{extensions:[".fcgi",".lua",".luau",".nse",".p8",".pd_lua",".rbxs",".rockspec",".wlua"],filenames:[".luacheckrc"]},makefile:{extensions:[".d",".mak",".make",".makefile",".mk",".mkfile"],filenames:["BSDmakefile","GNUmakefile","Kbuild","Makefile","Makefile.am","Makefile.boot","Makefile.frag","Makefile.in","Makefile.inc","Makefile.wat","makefile","makefile.sco","mkfile"]},markdown:{extensions:[".livemd",".markdown",".md",".mdown",".mdwn",".mdx",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr"]},"objective-c":{extensions:[".h",".m"]},"objective-cpp":{extensions:[".mm"]},php:{extensions:[".aw",".ctp",".fcgi",".inc",".install",".module",".php",".php3",".php4",".php5",".phps",".phpt",".theme"],filenames:[".php",".php_cs",".php_cs.dist","Phakefile"]},perl:{extensions:[".al",".cgi",".fcgi",".perl",".ph",".pl",".plx",".pm",".psgi",".t"],filenames:[".latexmkrc","Makefile.PL","Rexfile","ack","cpanfile","latexmkrc"]},powershell:{extensions:[".ps1",".psd1",".psm1"]},pug:{extensions:[".jade",".pug"]},python:{extensions:[".cgi",".codon",".fcgi",".gyp",".gypi",".lmi",".py",".py3",".pyde",".pyi",".pyp",".pyt",".pyw",".rpy",".sage",".spec",".tac",".wsgi",".xpy"],filenames:[".gclient","DEPS","SConscript","SConstruct","wscript"]},r:{extensions:[".r",".rd",".rsx"],filenames:[".Rprofile","expr-dist"]},ruby:{extensions:[".builder",".eye",".fcgi",".gemspec",".god",".jbuilder",".mspec",".pluginspec",".podspec",".prawn",".rabl",".rake",".rb",".rbi",".rbuild",".rbw",".rbx",".ru",".ruby",".spec",".thor",".watchr"],filenames:[".irbrc",".pryrc",".simplecov","Appraisals","Berksfile","Brewfile","Buildfile","Capfile","Dangerfile","Deliverfile","Fastfile","Gemfile","Guardfile","Jarfile","Mavenfile","Podfile","Puppetfile","Rakefile","Snapfile","Steepfile","Thorfile","Vagrantfile","buildfile"]},rust:{extensions:[".rs",".rs.in"]},scss:{extensions:[".scss"]},sql:{extensions:[".cql",".ddl",".inc",".mysql",".prc",".sql",".tab",".udf",".viw"]},sass:{extensions:[".sass"]},scala:{extensions:[".kojo",".sbt",".sc",".scala"]},shellscript:{extensions:[".bash",".bats",".cgi",".command",".fcgi",".fish",".ksh",".sh",".sh.in",".tmux",".tool",".trigger",".zsh",".zsh-theme"],filenames:[".bash_aliases",".bash_functions",".bash_history",".bash_logout",".bash_profile",".bashrc",".cshrc",".envrc",".flaskenv",".kshrc",".login",".profile",".tmux.conf",".zlogin",".zlogout",".zprofile",".zshenv",".zshrc","9fs","PKGBUILD","bash_aliases","bash_logout","bash_profile","bashrc","cshrc","gradlew","kshrc","login","man","profile","tmux.conf","zlogin","zlogout","zprofile","zshenv","zshrc"]},slang:{extensions:[".fxc",".hlsl",".s",".slang",".slangh",".usf",".ush",".vfx"]},slim:{extensions:[".slim"]},solidity:{extensions:[".sol"]},stylus:{extensions:[".styl"]},svelte:{extensions:[".svelte"]},swift:{extensions:[".swift"]},systemverilog:{extensions:[".sv",".svh",".vh"]},typescriptreact:{extensions:[".tsx"]},latex:{extensions:[".aux",".bbx",".cbx",".cls",".dtx",".ins",".lbx",".ltx",".mkii",".mkiv",".mkvi",".sty",".tex",".toc"]},typescript:{extensions:[".cts",".mts",".ts"]},verilog:{extensions:[".v",".veo"]},vim:{extensions:[".vba",".vim",".vimrc",".vmb"],filenames:[".exrc",".gvimrc",".nvimrc",".vimrc","_vimrc","gvimrc","nvimrc","vimrc"]},vb:{extensions:[".vb",".vbhtml",".Dsr",".bas",".cls",".ctl",".frm",".vbs"]},vue:{extensions:[".nvue",".vue"]},xml:{extensions:[".adml",".admx",".ant",".axaml",".axml",".builds",".ccproj",".ccxml",".clixml",".cproject",".cscfg",".csdef",".csl",".csproj",".ct",".depproj",".dita",".ditamap",".ditaval",".dll.config",".dotsettings",".filters",".fsproj",".fxml",".glade",".gml",".gmx",".gpx",".grxml",".gst",".hzp",".iml",".ivy",".jelly",".jsproj",".kml",".launch",".mdpolicy",".mjml",".mod",".mojo",".mxml",".natvis",".ncl",".ndproj",".nproj",".nuspec",".odd",".osm",".pkgproj",".plist",".pluginspec",".proj",".props",".ps1xml",".psc1",".pt",".pubxml",".qhelp",".rdf",".res",".resx",".rss",".sch",".scxml",".sfproj",".shproj",".srdf",".storyboard",".sublime-snippet",".svg",".sw",".targets",".tml",".typ",".ui",".urdf",".ux",".vbproj",".vcxproj",".vsixmanifest",".vssettings",".vstemplate",".vxml",".wixproj",".workflow",".wsdl",".wsf",".wxi",".wxl",".wxs",".x3d",".xacro",".xaml",".xib",".xlf",".xliff",".xmi",".xml",".xml.dist",".xmp",".xproj",".xsd",".xspec",".xul",".zcml"],filenames:[".classpath",".cproject",".project","App.config","NuGet.config","Settings.StyleCop","Web.Debug.config","Web.Release.config","Web.config","packages.config"]},xsl:{extensions:[".xsl",".xslt"]},yaml:{extensions:[".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".clangd",".gemrc","CITATION.cff","glide.lock","pixi.lock","yarn.lock"]},javascriptreact:{extensions:[".jsx"]},legend:{extensions:[".pure"]}};f();f();var t2e=[".ejs",".erb",".haml",".hbs",".j2",".jinja",".jinja2",".liquid",".mustache",".njk",".php",".pug",".slim",".webc"],n2e={".php":[".blade"]},t8=Object.keys(vI).flatMap(t=>vI[t].extensions);var ote=Ve(require("node:path"));var IS=class{constructor(e,n,r){this.languageId=e;this.isGuess=n;this.fileExtension=r}static{s(this,"Language")}},n8=class{static{s(this,"LanguageDetection")}},ste=new Map,ES=new Map;for(let[t,{extensions:e,filenames:n}]of Object.entries(vI)){for(let r of e)ste.set(r,[...ste.get(r)??[],t]);for(let r of n??[])ES.set(r,[...ES.get(r)??[],t])}var ate=class extends n8{static{s(this,"FilenameAndExensionLanguageDetection")}detectLanguage(e){let n=Ti(e.uri),r=ote.extname(n).toLowerCase(),i=this.extensionWithoutTemplateLanguage(n,r),o=this.detectLanguageId(n,i),a=this.computeFullyQualifiedExtension(r,i);return o?new IS(o.languageId,o.isGuess,a):new IS(e.languageId,!0,a)}extensionWithoutTemplateLanguage(e,n){if(t2e.includes(n)){let r=e.substring(0,e.lastIndexOf(".")),i=ote.extname(r).toLowerCase();if(i.length>0&&t8.includes(i)&&this.isExtensionValidForTemplateLanguage(n,i))return i}return n}isExtensionValidForTemplateLanguage(e,n){let r=n2e[e];return!r||r.includes(n)}detectLanguageId(e,n){if(ES.has(e))return{languageId:ES.get(e)[0],isGuess:!1};let r=ste.get(n)??[];if(r.length>0)return{languageId:r[0],isGuess:r.length>1};for(;e.includes(".");)if(e=e.replace(/\.[^.]*$/,""),ES.has(e))return{languageId:ES.get(e)[0],isGuess:!1}}computeFullyQualifiedExtension(e,n){return e!==n?n+e:e}},lte=class extends n8{constructor(n){super();this.delegate=n}static{s(this,"GroupingLanguageDetection")}detectLanguage(n){let r=this.delegate.detectLanguage(n),i=r.languageId;return i==="c"||i==="cpp"?new IS("cpp",r.isGuess,r.fileExtension):r}},cte=class extends n8{constructor(n){super();this.delegate=n}static{s(this,"ClientProvidedLanguageDetection")}detectLanguage(n){return n.uri.startsWith("untitled:")||n.uri.startsWith("vscode-notebook-cell:")?new IS(n.languageId,!0,""):this.delegate.detectLanguage(n)}},idt=new lte(new cte(new ate));function Gx({uri:t,languageId:e}){let n=idt.detectLanguage({uri:t,languageId:"UNKNOWN"});return n.languageId==="UNKNOWN"?e:n.languageId}s(Gx,"detectLanguage");f();f();f();f();function w1(t){if(t.isCancellationRequested)throw new RM}s(w1,"throwIfCancellationRequested");function BM(t){return t instanceof RM?!0:t instanceof Error&&t.name===ute&&t.message===ute}s(BM,"isCancellationError");var RM=class extends Error{static{s(this,"CancellationError")}constructor(){super(ute),this.name=this.message}},ute="Canceled",kM=class{constructor(){this.items=[]}static{s(this,"Stack")}push(e){this.items.push(e)}pop(){return this.items.pop()}peek(){return this.items[this.items.length-1]}tryPeek(){return this.items.length>0}toArray(){return this.items}};function bI(t){switch(t){case 0:case 2:case 7:case 8:case 11:case 12:case 13:case 14:return!0;default:return!1}}s(bI,"isTypeDefinition");var Wc=class t{static{s(this,"TextRange")}static{this.empty=new t(0,0)}constructor(e,n){this.start=e,this.length=n}static fromBounds(e,n){return new t(e,n-e)}get end(){return this.start+this.length}contains(e){return this.start<=e&&this.end>=e}containsRange(e){return this.start<=e.start&&this.end>=e.end}equals(e){return this.start===e.start&&this.length===e.length}getText(e){return e.slice(this.start,this.end)}getTextWithIndentation(e,n){let r=[],i=this.start;for(i=i2e(e,e.length,i),r2e(r,n);i<this.end;)e[i]!=="\r"&&e[i]!==`
375
375
  `?r.push(e[i++]):e[i]==="\r"&&i<e.length&&e[i+1]!==`
376
376
  `||e[i]===`
377
377
  `?(r.push(`
@@ -968,7 +968,7 @@ The developer was working on a section of code within the tags \`code_to_edit\`
968
968
  `+this._getLineContent(n.endLineNumber).substring(0,n.endColumn-1),r}getLineLength(n){return this._getLineContent(n).length}get length(){let n=this._getLineContent(this._lineCount);return new Ll(this._lineCount-1,n.length)}},nT=class extends Gue{static{s(this,"ArrayText")}constructor(e){super(n=>e[n-1],e.length)}},Hue=class extends YH{constructor(n){super();this.value=n;this._t=new K2(this.value)}static{s(this,"StringText")}getValueOfRange(n){return this._t.getOffsetRange(n).substring(this.value)}get length(){return this._t.textLength}};f();var rR=class{constructor(e,n,r){this.changes=e;this.moves=n;this.hitTimeout=r}static{s(this,"LinesDiff")}},iR=class t{static{s(this,"MovedText")}constructor(e,n){this.lineRangeMapping=e,this.changes=n}flip(){return new t(this.lineRangeMapping.flip(),this.changes.map(e=>e.flip()))}};f();var gp=class t{static{s(this,"LineRangeMapping")}static inverse(e,n,r){let i=[],o=1,a=1;for(let c of e){let u=new t(new Yt(o,c.original.startLineNumber),new Yt(a,c.modified.startLineNumber));u.modified.isEmpty||i.push(u),o=c.original.endLineNumberExclusive,a=c.modified.endLineNumberExclusive}let l=new t(new Yt(o,n+1),new Yt(a,r+1));return l.modified.isEmpty||i.push(l),i}static clip(e,n,r){let i=[];for(let o of e){let a=o.original.intersect(n),l=o.modified.intersect(r);a&&!a.isEmpty&&l&&!l.isEmpty&&i.push(new t(a,l))}return i}constructor(e,n){this.original=e,this.modified=n}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new t(this.modified,this.original)}join(e){return new t(this.original.join(e.original),this.modified.join(e.modified))}get changedLineCount(){return Math.max(this.original.length,this.modified.length)}toRangeMapping(){let e=this.original.toInclusiveRange(),n=this.modified.toInclusiveRange();if(e&&n)return new Fd(e,n);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new Cr("not a valid diff");return new Fd(new zt(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new zt(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new Fd(new zt(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new zt(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(e,n){if(YMe(this.original.endLineNumberExclusive,e)&&YMe(this.modified.endLineNumberExclusive,n))return new Fd(new zt(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new zt(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new Fd(zt.fromPositions(new ir(this.original.startLineNumber,1),oR(new ir(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),zt.fromPositions(new ir(this.modified.startLineNumber,1),oR(new ir(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),n)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new Fd(zt.fromPositions(oR(new ir(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),e),oR(new ir(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),zt.fromPositions(oR(new ir(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),n),oR(new ir(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),n)));throw new Cr}};function oR(t,e){if(t.lineNumber<1)return new ir(1,1);if(t.lineNumber>e.length)return new ir(e.length,e[e.length-1].length+1);let n=e[t.lineNumber-1];return t.column>n.length+1?new ir(t.lineNumber,n.length+1):t}s(oR,"normalizePosition");function YMe(t,e){return t>=1&&t<=e.length}s(YMe,"isValidLineNumber");var gb=class t extends gp{static{s(this,"DetailedLineRangeMapping")}static fromRangeMappings(e){let n=Yt.join(e.map(i=>Yt.fromRangeInclusive(i.originalRange))),r=Yt.join(e.map(i=>Yt.fromRangeInclusive(i.modifiedRange)));return new t(n,r,e)}constructor(e,n,r){super(e,n),this.innerChanges=r}flip(){return new t(this.modified,this.original,this.innerChanges?.map(e=>e.flip()))}withInnerChangesFromLineRanges(){return new t(this.original,this.modified,[this.toRangeMapping()])}},Fd=class t{static{s(this,"RangeMapping")}static fromEdit(e){let n=e.getNewRanges();return e.edits.map((i,o)=>new t(i.range,n[o]))}static fromEditJoin(e){let n=e.getNewRanges(),r=e.edits.map((i,o)=>new t(i.range,n[o]));return t.join(r)}static join(e){if(e.length===0)throw new Cr("Cannot join an empty list of range mappings");let n=e[0];for(let r=1;r<e.length;r++)n=n.join(e[r]);return n}static assertSorted(e){for(let n=1;n<e.length;n++){let r=e[n-1],i=e[n];if(!(r.originalRange.getEndPosition().isBeforeOrEqual(i.originalRange.getStartPosition())&&r.modifiedRange.getEndPosition().isBeforeOrEqual(i.modifiedRange.getStartPosition())))throw new Cr("Range mappings must be sorted")}}constructor(e,n){this.originalRange=e,this.modifiedRange=n}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new t(this.modifiedRange,this.originalRange)}toTextEdit(e){let n=e.getValueOfRange(this.modifiedRange);return new sA(this.originalRange,n)}join(e){return new t(this.originalRange.plusRange(e.originalRange),this.modifiedRange.plusRange(e.modifiedRange))}};function jue(t,e,n,r=!1){let i=[];for(let o of WS(t.map(a=>r8t(a,e,n)),(a,l)=>a.original.overlapOrTouch(l.original)||a.modified.overlapOrTouch(l.modified))){let a=o[0],l=o[o.length-1];i.push(new gb(a.original.join(l.original),a.modified.join(l.modified),o.map(c=>c.innerChanges[0])))}return ku(()=>!r&&i.length>0&&(i[0].modified.startLineNumber!==i[0].original.startLineNumber||n.length.lineCount-i[i.length-1].modified.endLineNumberExclusive!==e.length.lineCount-i[i.length-1].original.endLineNumberExclusive)?!1:cv(i,(o,a)=>a.original.startLineNumber-o.original.endLineNumberExclusive===a.modified.startLineNumber-o.modified.endLineNumberExclusive&&o.original.endLineNumberExclusive<a.original.startLineNumber&&o.modified.endLineNumberExclusive<a.modified.startLineNumber)),i}s(jue,"lineRangeMappingFromRangeMappings");function r8t(t,e,n){let r=0,i=0;t.modifiedRange.endColumn===1&&t.originalRange.endColumn===1&&t.originalRange.startLineNumber+r<=t.originalRange.endLineNumber&&t.modifiedRange.startLineNumber+r<=t.modifiedRange.endLineNumber&&(i=-1),t.modifiedRange.startColumn-1>=n.getLineLength(t.modifiedRange.startLineNumber)&&t.originalRange.startColumn-1>=e.getLineLength(t.originalRange.startLineNumber)&&t.originalRange.startLineNumber<=t.originalRange.endLineNumber+i&&t.modifiedRange.startLineNumber<=t.modifiedRange.endLineNumber+i&&(r=1);let o=new Yt(t.originalRange.startLineNumber+r,t.originalRange.endLineNumber+1+i),a=new Yt(t.modifiedRange.startLineNumber+r,t.modifiedRange.endLineNumber+1+i);return new gb(o,a,[t])}s(r8t,"getLineRangeMapping");f();var lA=class t{constructor(e,n){this.diffs=e;this.hitTimeout=n}static{s(this,"DiffAlgorithmResult")}static trivial(e,n){return new t([new zo(Rt.ofLength(e.length),Rt.ofLength(n.length))],!1)}static trivialTimedOut(e,n){return new t([new zo(Rt.ofLength(e.length),Rt.ofLength(n.length))],!0)}},zo=class t{constructor(e,n){this.seq1Range=e;this.seq2Range=n}static{s(this,"SequenceDiff")}static invert(e,n){let r=[];return Owe(e,(i,o)=>{r.push(t.fromOffsetPairs(i?i.getEndExclusives():aA.zero,o?o.getStarts():new aA(n,(i?i.seq2Range.endExclusive-i.seq1Range.endExclusive:0)+n)))}),r}static fromOffsetPairs(e,n){return new t(new Rt(e.offset1,n.offset1),new Rt(e.offset2,n.offset2))}static assertSorted(e){let n;for(let r of e){if(n&&!(n.seq1Range.endExclusive<=r.seq1Range.start&&n.seq2Range.endExclusive<=r.seq2Range.start))throw new Cr("Sequence diffs must be sorted");n=r}}swap(){return new t(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new t(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new t(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new t(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new t(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(e){let n=this.seq1Range.intersect(e.seq1Range),r=this.seq2Range.intersect(e.seq2Range);if(!(!n||!r))return new t(n,r)}getStarts(){return new aA(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new aA(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},aA=class t{constructor(e,n){this.offset1=e;this.offset2=n}static{s(this,"OffsetPair")}static{this.zero=new t(0,0)}static{this.max=new t(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new t(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},Ab=class t{static{s(this,"InfiniteTimeout")}static{this.instance=new t}isValid(){return!0}},KH=class{constructor(e){this.timeout=e;this.startTime=Date.now();this.valid=!0;if(e<=0)throw new Cr("timeout must be positive")}static{s(this,"DateTimeout")}isValid(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),this.valid}disable(){this.timeout=Number.MAX_SAFE_INTEGER,this.isValid=()=>!0,this.valid=!0}};f();f();var sR=class{constructor(e,n){this.width=e;this.height=n;this.array=[];this.array=new Array(e*n)}static{s(this,"Array2D")}get(e,n){return this.array[e+n*this.width]}set(e,n,r){this.array[e+n*this.width]=r}};function l9(t){return t===32||t===9}s(l9,"isSpace");var a9=class t{constructor(e,n,r){this.range=e;this.lines=n;this.source=r;this.histogram=[];let i=0;for(let o=e.startLineNumber-1;o<e.endLineNumberExclusive-1;o++){let a=n[o];for(let c=0;c<a.length;c++){i++;let u=a[c],d=t.getKey(u);this.histogram[d]=(this.histogram[d]||0)+1}i++;let l=t.getKey(`
969
969
  `);this.histogram[l]=(this.histogram[l]||0)+1}this.totalCount=i}static{s(this,"LineRangeFragment")}static{this.chrKeys=new Map}static getKey(e){let n=this.chrKeys.get(e);return n===void 0&&(n=this.chrKeys.size,this.chrKeys.set(e,n)),n}computeSimilarity(e){let n=0,r=Math.max(this.histogram.length,e.histogram.length);for(let i=0;i<r;i++)n+=Math.abs((this.histogram[i]??0)-(e.histogram[i]??0));return 1-n/(this.totalCount+e.totalCount)}};var JH=class{static{s(this,"DynamicProgrammingDiffing")}compute(e,n,r=Ab.instance,i){if(e.length===0||n.length===0)return lA.trivial(e,n);let o=new sR(e.length,n.length),a=new sR(e.length,n.length),l=new sR(e.length,n.length);for(let g=0;g<e.length;g++)for(let y=0;y<n.length;y++){if(!r.isValid())return lA.trivialTimedOut(e,n);let v=g===0?0:o.get(g-1,y),b=y===0?0:o.get(g,y-1),E;e.getElement(g)===n.getElement(y)?(g===0||y===0?E=0:E=o.get(g-1,y-1),g>0&&y>0&&a.get(g-1,y-1)===3&&(E+=l.get(g-1,y-1)),E+=i?i(g,y):1):E=-1;let _=Math.max(v,b,E);if(_===E){let k=g>0&&y>0?l.get(g-1,y-1):0;l.set(g,y,k+1),a.set(g,y,3)}else _===v?(l.set(g,y,0),a.set(g,y,1)):_===b&&(l.set(g,y,0),a.set(g,y,2));o.set(g,y,_)}let c=[],u=e.length,d=n.length;function p(g,y){(g+1!==u||y+1!==d)&&c.push(new zo(new Rt(g+1,u),new Rt(y+1,d))),u=g,d=y}s(p,"reportDecreasingAligningPositions");let m=e.length-1,h=n.length-1;for(;m>=0&&h>=0;)a.get(m,h)===3?(p(m,h),m--,h--):a.get(m,h)===1?m--:h--;return p(-1,-1),c.reverse(),new lA(c,!1)}};f();var aR=class{static{s(this,"MyersDiffAlgorithm")}compute(e,n,r=Ab.instance){if(e.length===0||n.length===0)return lA.trivial(e,n);let i=e,o=n;function a(y,v){for(;y<i.length&&v<o.length&&i.getElement(y)===o.getElement(v);)y++,v++;return y}s(a,"getXAfterSnake");let l=0,c=new Vue;c.set(0,a(0,0));let u=new $ue;u.set(0,c.get(0)===0?null:new XH(null,0,0,c.get(0)));let d=0;e:for(;;){if(l++,!r.isValid())return lA.trivialTimedOut(i,o);let y=-Math.min(l,o.length+l%2),v=Math.min(l,i.length+l%2);for(d=y;d<=v;d+=2){let b=0,E=d===v?-1:c.get(d+1),_=d===y?-1:c.get(d-1)+1;b++;let k=Math.min(Math.max(E,_),i.length),D=k-d;if(b++,k>i.length||D>o.length)continue;let N=a(k,D);c.set(d,N);let Q=k===E?u.get(d+1):u.get(d-1);if(u.set(d,N!==k?new XH(Q,k,D,N-k):Q),c.get(d)===i.length&&c.get(d)-d===o.length)break e}}let p=u.get(d),m=[],h=i.length,g=o.length;for(;;){let y=p?p.x+p.length:0,v=p?p.y+p.length:0;if((y!==h||v!==g)&&m.push(new zo(new Rt(y,h),new Rt(v,g))),!p)break;h=p.x,g=p.y,p=p.prev}return m.reverse(),new lA(m,!1)}},XH=class{constructor(e,n,r,i){this.prev=e;this.x=n;this.y=r;this.length=i}static{s(this,"SnakePath")}},Vue=class{constructor(){this.positiveArr=new Int32Array(10);this.negativeArr=new Int32Array(10)}static{s(this,"FastInt32Array")}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,n){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let r=this.negativeArr;this.negativeArr=new Int32Array(r.length*2),this.negativeArr.set(r)}this.negativeArr[e]=n}else{if(e>=this.positiveArr.length){let r=this.positiveArr;this.positiveArr=new Int32Array(r.length*2),this.positiveArr.set(r)}this.positiveArr[e]=n}}},$ue=class{constructor(){this.positiveArr=[];this.negativeArr=[]}static{s(this,"FastArrayNegativeIndices")}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,n){e<0?(e=-e-1,this.negativeArr[e]=n):this.positiveArr[e]=n}};f();f();var yb=class{constructor(e,n,r){this.lines=e;this.range=n;this.considerWhitespaceChanges=r;this.elements=[];this.firstElementOffsetByLineIdx=[];this.lineStartOffsets=[];this.trimmedWsLengthsByLineIdx=[];this.firstElementOffsetByLineIdx.push(0);for(let i=this.range.startLineNumber;i<=this.range.endLineNumber;i++){let o=e[i-1],a=0;i===this.range.startLineNumber&&this.range.startColumn>1&&(a=this.range.startColumn-1,o=o.substring(a)),this.lineStartOffsets.push(a);let l=0;if(!r){let u=o.trimStart();l=o.length-u.length,o=u.trimEnd()}this.trimmedWsLengthsByLineIdx.push(l);let c=i===this.range.endLineNumber?Math.min(this.range.endColumn-1-a-l,o.length):o.length;for(let u=0;u<c;u++)this.elements.push(o.charCodeAt(u));i<this.range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}static{s(this,"LinesSliceCharSequence")}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new Rt(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(n=>String.fromCharCode(n)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let n=XMe(e>0?this.elements[e-1]:-1),r=XMe(e<this.elements.length?this.elements[e]:-1);if(n===7&&r===8)return 0;if(n===8)return 150;let i=0;return n!==r&&(i+=10,n===0&&r===1&&(i+=1)),i+=JMe(n),i+=JMe(r),i}translateOffset(e,n="right"){let r=C0(this.firstElementOffsetByLineIdx,o=>o<=e),i=e-this.firstElementOffsetByLineIdx[r];return new ir(this.range.startLineNumber+r,1+this.lineStartOffsets[r]+i+(i===0&&n==="left"?0:this.trimmedWsLengthsByLineIdx[r]))}translateRange(e){let n=this.translateOffset(e.start,"right"),r=this.translateOffset(e.endExclusive,"left");return r.isBefore(n)?zt.fromPositions(r,r):zt.fromPositions(n,r)}findWordContaining(e){if(e<0||e>=this.elements.length||!lR(this.elements[e]))return;let n=e;for(;n>0&&lR(this.elements[n-1]);)n--;let r=e;for(;r<this.elements.length&&lR(this.elements[r]);)r++;return new Rt(n,r)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!lR(this.elements[e]))return;let n=e;for(;n>0&&lR(this.elements[n-1])&&!KMe(this.elements[n]);)n--;let r=e;for(;r<this.elements.length&&lR(this.elements[r])&&!KMe(this.elements[r]);)r++;return new Rt(n,r)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,n){return this.elements[e]===this.elements[n]}extendToFullLines(e){let n=R1(this.firstElementOffsetByLineIdx,i=>i<=e.start)??0,r=Lwe(this.firstElementOffsetByLineIdx,i=>e.endExclusive<=i)??this.elements.length;return new Rt(n,r)}};function lR(t){return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57}s(lR,"isWordChar");function KMe(t){return t>=65&&t<=90}s(KMe,"isUpperCase");var i8t={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function JMe(t){return i8t[t]}s(JMe,"getCategoryBoundaryScore");function XMe(t){return t===10?8:t===13?7:l9(t)?6:t>=97&&t<=122?0:t>=65&&t<=90?1:t>=48&&t<=57?2:t===-1?3:t===44||t===59?5:4}s(XMe,"getCategory");function eQe(t,e,n,r,i,o){let{moves:a,excludedChanges:l}=s8t(t,e,n,o);if(!o.isValid())return[];let c=t.filter(d=>!l.has(d)),u=a8t(c,r,i,e,n,o);return Wwe(a,u),a=l8t(a),a=a.filter(d=>{let p=d.original.toOffsetRange().slice(e).map(h=>h.trim());return p.join(`
970
970
  `).length>=15&&o8t(p,h=>h.length>=2)>=2}),a=c8t(t,a),a}s(eQe,"computeMovedLines");function o8t(t,e){let n=0;for(let r of t)e(r)&&n++;return n}s(o8t,"countWhere");function s8t(t,e,n,r){let i=[],o=t.filter(c=>c.modified.isEmpty&&c.original.length>=3).map(c=>new a9(c.original,e,c)),a=new Set(t.filter(c=>c.original.isEmpty&&c.modified.length>=3).map(c=>new a9(c.modified,n,c))),l=new Set;for(let c of o){let u=-1,d;for(let p of a){let m=c.computeSimilarity(p);m>u&&(u=m,d=p)}if(u>.9&&d&&(a.delete(d),i.push(new gp(c.range,d.range)),l.add(c.source),l.add(d.source)),!r.isValid())return{moves:i,excludedChanges:l}}return{moves:i,excludedChanges:l}}s(s8t,"computeMovesFromSimpleDeletionsToSimpleInsertions");function a8t(t,e,n,r,i,o){let a=[],l=new GS;for(let m of t)for(let h=m.original.startLineNumber;h<m.original.endLineNumberExclusive-2;h++){let g=`${e[h-1]}:${e[h+1-1]}:${e[h+2-1]}`;l.add(g,{range:new Yt(h,h+3)})}let c=[];t.sort(x0(m=>m.modified.startLineNumber,v0));for(let m of t){let h=[];for(let g=m.modified.startLineNumber;g<m.modified.endLineNumberExclusive-2;g++){let y=`${n[g-1]}:${n[g+1-1]}:${n[g+2-1]}`,v=new Yt(g,g+3),b=[];l.forEach(y,({range:E})=>{for(let k of h)if(k.originalLineRange.endLineNumberExclusive+1===E.endLineNumberExclusive&&k.modifiedLineRange.endLineNumberExclusive+1===v.endLineNumberExclusive){k.originalLineRange=new Yt(k.originalLineRange.startLineNumber,E.endLineNumberExclusive),k.modifiedLineRange=new Yt(k.modifiedLineRange.startLineNumber,v.endLineNumberExclusive),b.push(k);return}let _={modifiedLineRange:v,originalLineRange:E};c.push(_),b.push(_)}),h=b}if(!o.isValid())return[]}c.sort(Hwe(x0(m=>m.modifiedLineRange.length,v0)));let u=new e2,d=new e2;for(let m of c){let h=m.modifiedLineRange.startLineNumber-m.originalLineRange.startLineNumber,g=u.subtractFrom(m.modifiedLineRange),y=d.subtractFrom(m.originalLineRange).getWithDelta(h),v=g.getIntersection(y);for(let b of v.ranges){if(b.length<3)continue;let E=b,_=b.delta(-h);a.push(new gp(_,E)),u.addRange(E),d.addRange(_)}}a.sort(x0(m=>m.original.startLineNumber,v0));let p=new w8(t);for(let m=0;m<a.length;m++){let h=a[m],g=p.findLastMonotonous(N=>N.original.startLineNumber<=h.original.startLineNumber),y=R1(t,N=>N.modified.startLineNumber<=h.modified.startLineNumber),v=Math.max(h.original.startLineNumber-g.original.startLineNumber,h.modified.startLineNumber-y.modified.startLineNumber),b=p.findLastMonotonous(N=>N.original.startLineNumber<h.original.endLineNumberExclusive),E=R1(t,N=>N.modified.startLineNumber<h.modified.endLineNumberExclusive),_=Math.max(b.original.endLineNumberExclusive-h.original.endLineNumberExclusive,E.modified.endLineNumberExclusive-h.modified.endLineNumberExclusive),k;for(k=0;k<v;k++){let N=h.original.startLineNumber-k-1,Q=h.modified.startLineNumber-k-1;if(N>r.length||Q>i.length||u.contains(Q)||d.contains(N)||!ZMe(r[N-1],i[Q-1],o))break}k>0&&(d.addRange(new Yt(h.original.startLineNumber-k,h.original.startLineNumber)),u.addRange(new Yt(h.modified.startLineNumber-k,h.modified.startLineNumber)));let D;for(D=0;D<_;D++){let N=h.original.endLineNumberExclusive+D,Q=h.modified.endLineNumberExclusive+D;if(N>r.length||Q>i.length||u.contains(Q)||d.contains(N)||!ZMe(r[N-1],i[Q-1],o))break}D>0&&(d.addRange(new Yt(h.original.endLineNumberExclusive,h.original.endLineNumberExclusive+D)),u.addRange(new Yt(h.modified.endLineNumberExclusive,h.modified.endLineNumberExclusive+D))),(k>0||D>0)&&(a[m]=new gp(new Yt(h.original.startLineNumber-k,h.original.endLineNumberExclusive+D),new Yt(h.modified.startLineNumber-k,h.modified.endLineNumberExclusive+D)))}return a}s(a8t,"computeUnchangedMoves");function ZMe(t,e,n){if(t.trim()===e.trim())return!0;if(t.length>300&&e.length>300)return!1;let i=new aR().compute(new yb([t],new zt(1,1,1,t.length),!1),new yb([e],new zt(1,1,1,e.length),!1),n),o=0,a=zo.invert(i.diffs,t.length);for(let d of a)d.seq1Range.forEach(p=>{l9(t.charCodeAt(p))||o++});function l(d){let p=0;for(let m=0;m<t.length;m++)l9(d.charCodeAt(m))||p++;return p}s(l,"countNonWsChars");let c=l(t.length>e.length?t:e);return o/c>.6&&c>10}s(ZMe,"areLinesSimilar");function l8t(t){if(t.length===0)return t;t.sort(x0(n=>n.original.startLineNumber,v0));let e=[t[0]];for(let n=1;n<t.length;n++){let r=e[e.length-1],i=t[n],o=i.original.startLineNumber-r.original.endLineNumberExclusive,a=i.modified.startLineNumber-r.modified.endLineNumberExclusive;if(o>=0&&a>=0&&o+a<=2){e[e.length-1]=r.join(i);continue}e.push(i)}return e}s(l8t,"joinCloseConsecutiveMoves");function c8t(t,e){let n=new w8(t);return e=e.filter(r=>{let i=n.findLastMonotonous(l=>l.original.startLineNumber<r.original.endLineNumberExclusive)||new gp(new Yt(1,1),new Yt(1,1)),o=R1(t,l=>l.modified.startLineNumber<r.modified.endLineNumberExclusive);return i!==o}),e}s(c8t,"removeMovesInSameDiff");f();function zue(t,e,n){let r=n;return r=tQe(t,e,r),r=tQe(t,e,r),r=u8t(t,e,r),r}s(zue,"optimizeSequenceDiffs");function tQe(t,e,n){if(n.length===0)return n;let r=[];r.push(n[0]);for(let o=1;o<n.length;o++){let a=r[r.length-1],l=n[o];if(l.seq1Range.isEmpty||l.seq2Range.isEmpty){let c=l.seq1Range.start-a.seq1Range.endExclusive,u;for(u=1;u<=c&&!(t.getElement(l.seq1Range.start-u)!==t.getElement(l.seq1Range.endExclusive-u)||e.getElement(l.seq2Range.start-u)!==e.getElement(l.seq2Range.endExclusive-u));u++);if(u--,u===c){r[r.length-1]=new zo(new Rt(a.seq1Range.start,l.seq1Range.endExclusive-c),new Rt(a.seq2Range.start,l.seq2Range.endExclusive-c));continue}l=l.delta(-u)}r.push(l)}let i=[];for(let o=0;o<r.length-1;o++){let a=r[o+1],l=r[o];if(l.seq1Range.isEmpty||l.seq2Range.isEmpty){let c=a.seq1Range.start-l.seq1Range.endExclusive,u;for(u=0;u<c&&!(!t.isStronglyEqual(l.seq1Range.start+u,l.seq1Range.endExclusive+u)||!e.isStronglyEqual(l.seq2Range.start+u,l.seq2Range.endExclusive+u));u++);if(u===c){r[o+1]=new zo(new Rt(l.seq1Range.start+c,a.seq1Range.endExclusive),new Rt(l.seq2Range.start+c,a.seq2Range.endExclusive));continue}u>0&&(l=l.delta(u))}i.push(l)}return r.length>0&&i.push(r[r.length-1]),i}s(tQe,"joinSequenceDiffsByShifting");function u8t(t,e,n){if(!t.getBoundaryScore||!e.getBoundaryScore)return n;for(let r=0;r<n.length;r++){let i=r>0?n[r-1]:void 0,o=n[r],a=r+1<n.length?n[r+1]:void 0,l=new Rt(i?i.seq1Range.endExclusive+1:0,a?a.seq1Range.start-1:t.length),c=new Rt(i?i.seq2Range.endExclusive+1:0,a?a.seq2Range.start-1:e.length);o.seq1Range.isEmpty?n[r]=nQe(o,t,e,l,c):o.seq2Range.isEmpty&&(n[r]=nQe(o.swap(),e,t,c,l).swap())}return n}s(u8t,"shiftSequenceDiffs");function nQe(t,e,n,r,i){let a=1;for(;t.seq1Range.start-a>=r.start&&t.seq2Range.start-a>=i.start&&n.isStronglyEqual(t.seq2Range.start-a,t.seq2Range.endExclusive-a)&&a<100;)a++;a--;let l=0;for(;t.seq1Range.start+l<r.endExclusive&&t.seq2Range.endExclusive+l<i.endExclusive&&n.isStronglyEqual(t.seq2Range.start+l,t.seq2Range.endExclusive+l)&&l<100;)l++;if(a===0&&l===0)return t;let c=0,u=-1;for(let d=-a;d<=l;d++){let p=t.seq2Range.start+d,m=t.seq2Range.endExclusive+d,h=t.seq1Range.start+d,g=e.getBoundaryScore(h)+n.getBoundaryScore(p)+n.getBoundaryScore(m);g>u&&(u=g,c=d)}return t.delta(c)}s(nQe,"shiftDiffToBetterPosition");function rQe(t,e,n){let r=[];for(let i of n){let o=r[r.length-1];if(!o){r.push(i);continue}i.seq1Range.start-o.seq1Range.endExclusive<=2||i.seq2Range.start-o.seq2Range.endExclusive<=2?r[r.length-1]=new zo(o.seq1Range.join(i.seq1Range),o.seq2Range.join(i.seq2Range)):r.push(i)}return r}s(rQe,"removeShortMatches");function Yue(t,e,n,r,i=!1){let o=zo.invert(n,t.length),a=[],l=new aA(0,0);function c(d,p){if(d.offset1<l.offset1||d.offset2<l.offset2)return;let m=r(t,d.offset1),h=r(e,d.offset2);if(!m||!h)return;let g=new zo(m,h),y=g.intersect(p),v=y.seq1Range.length,b=y.seq2Range.length;for(;o.length>0;){let E=o[0];if(!(E.seq1Range.intersects(g.seq1Range)||E.seq2Range.intersects(g.seq2Range)))break;let k=r(t,E.seq1Range.start),D=r(e,E.seq2Range.start),N=new zo(k,D),Q=N.intersect(E);if(v+=Q.seq1Range.length,b+=Q.seq2Range.length,g=g.join(N),g.seq1Range.endExclusive>=E.seq1Range.endExclusive)o.shift();else break}(i&&v+b<g.seq1Range.length+g.seq2Range.length||v+b<(g.seq1Range.length+g.seq2Range.length)*2/3)&&a.push(g),l=g.getEndExclusives()}for(s(c,"scanWord");o.length>0;){let d=o.shift();d.seq1Range.isEmpty||(c(d.getStarts(),d),c(d.getEndExclusives().delta(-1),d))}return d8t(n,a)}s(Yue,"extendDiffsToEntireWordIfAppropriate");function d8t(t,e){let n=[];for(;t.length>0||e.length>0;){let r=t[0],i=e[0],o;r&&(!i||r.seq1Range.start<i.seq1Range.start)?o=t.shift():o=e.shift(),n.length>0&&n[n.length-1].seq1Range.endExclusive>=o.seq1Range.start?n[n.length-1]=n[n.length-1].join(o):n.push(o)}return n}s(d8t,"mergeSequenceDiffs");function iQe(t,e,n){let r=n;if(r.length===0)return r;let i=0,o;do{o=!1;let l=[r[0]];for(let c=1;c<r.length;c++){let p=function(h,g){let y=new Rt(d.seq1Range.endExclusive,u.seq1Range.start);return t.getText(y).replace(/\s/g,"").length<=4&&(h.seq1Range.length+h.seq2Range.length>5||g.seq1Range.length+g.seq2Range.length>5)};var a=p;s(p,"shouldJoinDiffs");let u=r[c],d=l[l.length-1];p(d,u)?(o=!0,l[l.length-1]=l[l.length-1].join(u)):l.push(u)}r=l}while(i++<10&&o);return r}s(iQe,"removeVeryShortMatchingLinesBetweenDiffs");function oQe(t,e,n){let r=n;if(r.length===0)return r;let i=0,o;do{o=!1;let c=[r[0]];for(let u=1;u<r.length;u++){let m=function(g,y){let v=new Rt(p.seq1Range.endExclusive,d.seq1Range.start);if(t.countLinesIn(v)>5||v.length>500)return!1;let E=t.getText(v).trim();if(E.length>20||E.split(/\r\n|\r|\n/).length>1)return!1;let _=t.countLinesIn(g.seq1Range),k=g.seq1Range.length,D=e.countLinesIn(g.seq2Range),N=g.seq2Range.length,Q=t.countLinesIn(y.seq1Range),K=y.seq1Range.length,pe=e.countLinesIn(y.seq2Range),ie=y.seq2Range.length,H=2*40+50;function U(oe){return Math.min(oe,H)}return s(U,"cap"),Math.pow(Math.pow(U(_*40+k),1.5)+Math.pow(U(D*40+N),1.5),1.5)+Math.pow(Math.pow(U(Q*40+K),1.5)+Math.pow(U(pe*40+ie),1.5),1.5)>(H**1.5)**1.5*1.3};var l=m;s(m,"shouldJoinDiffs");let d=r[u],p=c[c.length-1];m(p,d)?(o=!0,c[c.length-1]=c[c.length-1].join(d)):c.push(d)}r=c}while(i++<10&&o);let a=[];return Uwe(r,(c,u,d)=>{let p=u;function m(E){return E.length>0&&E.trim().length<=3&&u.seq1Range.length+u.seq2Range.length>100}s(m,"shouldMarkAsChanged");let h=t.extendToFullLines(u.seq1Range),g=t.getText(new Rt(h.start,u.seq1Range.start));m(g)&&(p=p.deltaStart(-g.length));let y=t.getText(new Rt(u.seq1Range.endExclusive,h.endExclusive));m(y)&&(p=p.deltaEnd(y.length));let v=zo.fromOffsetPairs(c?c.getEndExclusives():aA.zero,d?d.getStarts():aA.max),b=p.intersect(v);a.length>0&&b.getStarts().equals(a[a.length-1].getEndExclusives())?a[a.length-1]=a[a.length-1].join(b):a.push(b)}),a}s(oQe,"removeVeryShortMatchingTextBetweenLongDiffs");f();var c9=class{constructor(e,n){this.trimmedHash=e;this.lines=n}static{s(this,"LineSequence")}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){let n=e===0?0:sQe(this.lines[e-1]),r=e===this.lines.length?0:sQe(this.lines[e]);return 1e3-(n+r)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
971
- `)}isStronglyEqual(e,n){return this.lines[e]===this.lines[n]}};function sQe(t){let e=0;for(;e<t.length&&(t.charCodeAt(e)===32||t.charCodeAt(e)===9);)e++;return e}s(sQe,"getIndentation");var ZH=class{constructor(){this.dynamicProgrammingDiffing=new JH;this.myersDiffingAlgorithm=new aR}static{s(this,"DefaultLinesDiffComputer")}computeDiff(e,n,r){if(e.length<=1&&HI(e,n,(D,N)=>D===N))return new rR([],[],!1);if(e.length===1&&e[0].length===0||n.length===1&&n[0].length===0)return new rR([new gb(new Yt(1,e.length+1),new Yt(1,n.length+1),[new Fd(new zt(1,1,e.length,e[e.length-1].length+1),new zt(1,1,n.length,n[n.length-1].length+1))])],[],!1);let i=r.maxComputationTimeMs===0?Ab.instance:new KH(r.maxComputationTimeMs),o=!r.ignoreTrimWhitespace,a=new Map;function l(D){let N=a.get(D);return N===void 0&&(N=a.size,a.set(D,N)),N}s(l,"getOrCreateHash");let c=e.map(D=>l(D.trim())),u=n.map(D=>l(D.trim())),d=new c9(c,e),p=new c9(u,n),m=d.length+p.length<1700?this.dynamicProgrammingDiffing.compute(d,p,i,(D,N)=>e[D]===n[N]?n[N].length===0?.1:1+Math.log(1+n[N].length):.99):this.myersDiffingAlgorithm.compute(d,p,i),h=m.diffs,g=m.hitTimeout;h=zue(d,p,h),h=iQe(d,p,h);let y=[],v=s(D=>{if(o)for(let N=0;N<D;N++){let Q=b+N,K=E+N;if(e[Q]!==n[K]){let pe=this.refineDiff(e,n,new zo(new Rt(Q,Q+1),new Rt(K,K+1)),i,o,r);for(let ie of pe.mappings)y.push(ie);pe.hitTimeout&&(g=!0)}}},"scanForWhitespaceChanges"),b=0,E=0;for(let D of h){ku(()=>D.seq1Range.start-b===D.seq2Range.start-E);let N=D.seq1Range.start-b;v(N),b=D.seq1Range.endExclusive,E=D.seq2Range.endExclusive;let Q=this.refineDiff(e,n,D,i,o,r);Q.hitTimeout&&(g=!0);for(let K of Q.mappings)y.push(K)}v(e.length-b);let _=jue(y,new nT(e),new nT(n)),k=[];return r.computeMoves&&(k=this.computeMoves(_,e,n,c,u,i,o,r)),ku(()=>{function D(Q,K){if(Q.lineNumber<1||Q.lineNumber>K.length)return!1;let pe=K[Q.lineNumber-1];return!(Q.column<1||Q.column>pe.length+1)}s(D,"validatePosition");function N(Q,K){return!(Q.startLineNumber<1||Q.startLineNumber>K.length+1||Q.endLineNumberExclusive<1||Q.endLineNumberExclusive>K.length+1)}s(N,"validateRange");for(let Q of _){if(!Q.innerChanges)return!1;for(let K of Q.innerChanges)if(!(D(K.modifiedRange.getStartPosition(),n)&&D(K.modifiedRange.getEndPosition(),n)&&D(K.originalRange.getStartPosition(),e)&&D(K.originalRange.getEndPosition(),e)))return!1;if(!N(Q.modified,n)||!N(Q.original,e))return!1}return!0}),new rR(_,k,g)}computeMoves(e,n,r,i,o,a,l,c){return eQe(e,n,r,i,o,a).map(p=>{let m=this.refineDiff(n,r,new zo(p.original.toOffsetRange(),p.modified.toOffsetRange()),a,l,c),h=jue(m.mappings,new nT(n),new nT(r),!0);return new iR(p,h)})}refineDiff(e,n,r,i,o,a){let c=f8t(r).toRangeMapping2(e,n),u=new yb(e,c.originalRange,o),d=new yb(n,c.modifiedRange,o),p=u.length+d.length<500?this.dynamicProgrammingDiffing.compute(u,d,i):this.myersDiffingAlgorithm.compute(u,d,i),m=!1,h=p.diffs;m&&zo.assertSorted(h),h=zue(u,d,h),m&&zo.assertSorted(h),h=Yue(u,d,h,(y,v)=>y.findWordContaining(v)),m&&zo.assertSorted(h),a.extendToSubwords&&(h=Yue(u,d,h,(y,v)=>y.findSubWordContaining(v),!0),m&&zo.assertSorted(h)),h=rQe(u,d,h),m&&zo.assertSorted(h),h=oQe(u,d,h),m&&zo.assertSorted(h);let g=h.map(y=>new Fd(u.translateRange(y.seq1Range),d.translateRange(y.seq2Range)));return m&&Fd.assertSorted(g),{mappings:g,hitTimeout:p.hitTimeout}}};function f8t(t){return new gp(new Yt(t.seq1Range.start+1,t.seq1Range.endExclusive+1),new Yt(t.seq2Range.start+1,t.seq2Range.endExclusive+1))}s(f8t,"toLineRangeMapping");var ej=class{static{s(this,"DiffServiceImpl")}constructor(){}dispose(){}async computeDiff(e,n,r){let i=await p8t(e,n,r);return{identical:i.identical,quitEarly:i.quitEarly,changes:a(i.changes),moves:i.moves.map(l=>new iR(new gp(new Yt(l[0],l[1]),new Yt(l[2],l[3])),a(l[4])))};function a(l){return l.map(c=>new gb(new Yt(c[0],c[1]),new Yt(c[2],c[3]),c[4]?.map(u=>new Fd(new zt(u[0],u[1],u[2],u[3]),new zt(u[4],u[5],u[6],u[7])))))}}};async function p8t(t,e,n){let r=t.split(/\r\n|\r|\n/),i=e.split(/\r\n|\r|\n/),a=new ZH().computeDiff(r,i,n),l=a.changes.length>0?!1:t===e;function c(u){return u.map(d=>[d.original.startLineNumber,d.original.endLineNumberExclusive,d.modified.startLineNumber,d.modified.endLineNumberExclusive,d.innerChanges?.map(p=>[p.originalRange.startLineNumber,p.originalRange.startColumn,p.originalRange.endLineNumber,p.originalRange.endColumn,p.modifiedRange.startLineNumber,p.modifiedRange.startColumn,p.modifiedRange.endLineNumber,p.modifiedRange.endColumn])])}return s(c,"getLineChanges"),{identical:l,quitEarly:a.hitTimeout,changes:c(a.changes),moves:a.moves.map(u=>[u.lineRangeMapping.original.startLineNumber,u.lineRangeMapping.original.endLineNumberExclusive,u.lineRangeMapping.modified.startLineNumber,u.lineRangeMapping.modified.endLineNumberExclusive,c(u.changes)])}}s(p8t,"computeDiff");f();var Kue=Ve(require("crypto"));var u9=Kue.randomUUID.bind(Kue);var hQe=Ve(Ym()),tde=Ve(BP());f();var tj=q0("ISnippyService");f();f();var d9=new RegExp("[_\\p{L}\\p{Nd}]+|====+|----+|####+|////+|\\*\\*\\*\\*+|[\\p{P}\\p{S}]","gu"),nj=65;function m8t(t){let e=0,n;d9.lastIndex=0;do if(n=d9.exec(t),n&&(e+=1),e>=nj)break;while(n);return e}s(m8t,"lexemeLength");function h8t(t,e){let n=0,r;d9.lastIndex=0;do if(r=d9.exec(t),r&&(n+=1,n>=e))return d9.lastIndex;while(r);return t.length}s(h8t,"offsetFirstLexemes");function aQe(t,e){let n=t.split("").reverse().join(""),r=h8t(n,e);return n.length-r}s(aQe,"offsetLastLexemes");function Jue(t){return m8t(t)>=nj}s(Jue,"hasMinLexemeLength");f();f();var lQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.matched_source=="string"&&typeof n.occurrences=="string"&&typeof n.capped=="boolean"&&typeof n.cursor=="string"&&typeof n.github_url=="string"}e.is=t,s(t,"is")})(lQe||={});var Xue;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.kind=="string"&&typeof n.reason=="string"&&typeof n.code=="number"&&typeof n.msg=="string"}e.is=t,s(t,"is")})(Xue||={});var cQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&"snippets"in n&&Array.isArray(n.snippets)&&n.snippets.every(lQe.is)}e.is=t,s(t,"is")})(cQe||={});var Zue;(e=>{function t(n){if(Xue.is(n))return Mo.error(n);if(cQe.is(n))return Mo.ok(n)}e.to=t,s(t,"to")})(Zue||={});var uQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.commit_id=="string"&&typeof n.license=="string"&&typeof n.nwo=="string"&&typeof n.path=="string"&&typeof n.url=="string"}e.is=t,s(t,"is")})(uQe||={});var dQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.has_next_page=="boolean"&&typeof n.cursor=="string"}e.is=t,s(t,"is")})(dQe||={});var fQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.count=="object"&&Object.values(n.count).every(r=>typeof r=="string")}e.is=t,s(t,"is")})(fQe||={});var pQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&"file_matches"in n&&Array.isArray(n.file_matches)&&n.file_matches.every(uQe.is)&&"page_info"in n&&dQe.is(n.page_info)&&"license_stats"in n&&fQe.is(n.license_stats)}e.is=t,s(t,"is")})(pQe||={});var ede;(e=>{function t(n){if(Xue.is(n))return Mo.error(n);if(pQe.is(n))return Mo.ok(n)}e.to=t,s(t,"to")})(ede||={});var rj=class t{static{s(this,"SnippyFetchService")}static{this.TWIRP_URL="twirp/github.snippy.v1.SnippyAPI"}constructor(e){this.ctx=e}async fetchMatch(e){let n={source:e};return this.fetch("Match",n,Zue.to)}async fetchFilesForMatch(e){let n={cursor:e};return this.fetch("FilesForMatch",n,ede.to)}async fetch(e,n,r){let i=this.ctx.get(rr),o=await this.ctx.get(Qn).getToken(),a=Fx(this.ctx,o,"origin-tracker",`${t.TWIRP_URL}/${e}`),l={Authorization:`Bearer ${o.token}`,...Jd(this.ctx),"X-GitHub-Api-Version":yf},c=i.makeAbortController(),u=await i.fetch(a,{method:"POST",headers:l,json:n,signal:c.signal});if(!u.ok)throw new Error(`Failed with status ${u.status} and body: ${await u.text()}`);let d=await u.json();return r(d)}};var mQe=new _t("[CODE REFERENCING]"),cR=class{constructor(e,n){this.instantiationService=n;this.ctx=e,this.fetcher=this.instantiationService.createInstance(rj,this.ctx)}static{s(this,"SnippyService")}async handlePostInsertion(e,n,r){let i=this.computeSourceToCheck(n,r);if(!i)return;let a=await this.ctx.get(kn).getTextDocument({uri:e.toString()});if(!a){mQe.error(this.ctx,"Unable to raise IP code citation notification: could not determine document version.");return}let l=a.version,c;try{c=await this.fetcher.fetchMatch(i.source)}catch(h){throw h}if(!c)throw new Error(`Failed to parse match response: ${c}`);if(c.isError())throw new Error(`Failed to match: ${c.err}`);if(c.val.snippets.length===0)return;let{snippets:u}=c.val,d=u.map(async h=>{let g=await this.fetcher.fetchFilesForMatch(h.cursor);if(!g||g.isError())return;let{file_matches:y,license_stats:v}=g.val;return{match:h,files:y,licenseStats:v}}),m=(await Promise.all(d)).filter(h=>!!h);if(m.length===0){mQe.error(this.ctx,"Should never happen as per https://github.com/github/copilot-client/blob/34cae5c581d662525eb3305d58f0762e952f866d/extension/src/codeReferencing/handlePostInsertion.ts#L138");return}for(let h of m){let g=new Set(Object.keys(h.licenseStats?.count??{}));g.delete("NOASSERTION")&&g.add("unknown");let y=Array.from(g).sort(),v=`${h.match.matched_source.slice(0,100).replace(/[\r\n\t]+|^[ \t]+/gm," ").trim()}...`,b={inDocumentUri:e.toString(),offsetStart:i.startOffset,offsetEnd:i.endOffset,matchingText:v,location:{start:{line:i.startPosition.lineNumber,character:i.startPosition.column},end:{line:i.endPosition.lineNumber,character:i.endPosition.column}},version:l,details:y.map(E=>({license:E,url:`${h.match.github_url}`}))};await this.ctx.get(y0).handleIPCodeCitation(this.ctx,b)}}computeSourceToCheck(e,n){if(n.newText==="")return;let r=ys.single(n),o=r.getNewRanges().reduce((m,h)=>m.join(h)),a=e.apply(r),l=o.start,c=a.value.substring(o.start,o.endExclusive);if(!Jue(c)){let m=a.value.slice(0,o.start),h=aQe(m,nj);l=h,c=a.value.slice(h,o.start+n.newText.length)}if(!Jue(c))return;let u=a.getTransformer(),d=u.getPosition(l),p=u.getPosition(o.endExclusive);return{source:c,startOffset:l,endOffset:o.endExclusive,startPosition:d,endPosition:p}}};cR=mu([Gs(1,iA)],cR);async function gQe(t){let e=new EH;return e.define(TH,new nde(t)),e.define(jH,new ej),e.define(yy,new W0(rde,[!0])),e.define(tj,new W0(cR,[t])),e.define(Xm,await ide.Create(t)),e.define(r9,new W0(ode)),e.seal()}s(gQe,"createInstantiationService");var nde=class{constructor(e){this.ctx=e;this.ctx=e}static{s(this,"TelemetrySender")}sendTelemetryEvent(e,n,r){let i=Object.fromEntries(Object.entries(n??{}).filter(([l,c])=>c!==void 0)),o=Object.fromEntries(Object.entries(r??{}).filter(([l,c])=>c!==void 0)),a=or.createAndMarkAsIssued(i,o);kt(this.ctx,e,a)}},rde=class{static{s(this,"ParserServiceImpl")}getTreeSitterAST(e){}},ide=class t{constructor(e,n){this.ctx=e;this.modelConfiguration=n}static{s(this,"CLSChatMLFetcher")}static async Create(e){let n=await Co.getModelConfiguration(e,"nesStubs");return new t(e,n)}get tokenBudget(){return this.modelConfiguration.maxRequestTokens}get tokenizerName(){return this.modelConfiguration.tokenizer}async fetchOne(e,n,r,i,o){let a=e.map(u=>t.chatMessageToClsChatMessage(u)),l=u9(),c=await this.ctx.get(Cd).fetchAndStreamChat(this.ctx,a,og.createEmptyConfigForTesting(),"nextEditSuggestion",l,async(u,d)=>{if(n)return await n(u,0,{text:d.text})},r,i,o);if(c.type==="success"){let u=[];if(n)for await(let p of c.choices)if(p.finishReason!=="snippy")await n(p.completionText,0,{text:p.completionText}),u.push(p.completionText);else return{type:"filtered",reason:"snippy",category:"snippy",requestId:l,serverRequestId:p.requestId.headerRequestId};let d=u.join("");return{type:"success",value:d}}else return{type:t.clsResponseTypeToResponseType(c.type),reason:c.type}}static chatMessageToClsChatMessage(e){switch(e.role){case"system":return{role:"system",content:qMe(e.content)};case"user":if(typeof e.content!="string"&&e.content.some(n=>n.type!=="text"))throw new Error("CLS only supports text content in user messages");return{role:"user",content:e.content};default:throw new Error(`Unsupported chat role: ${e.role}`)}}static clsResponseTypeToResponseType(e){switch(e){case"success":return"success";case"successMultiple":return"success";case"offTopic":return"offTopic";case"canceled":return"canceled";case"filtered":return"filtered";case"length":return"length";case"failed":return"failed";case"agentAuthRequired":return"agent_unauthorized";default:return"unknown"}}},ode=class t{constructor(){this.tokenizers=new Map;this.cl100kTokenizer=new ij("cl100k_base")}static{s(this,"CLSTokenizerProvider")}acquireTokenizer(e){let n=this.tokenizers.get(e.tokenizer);return n||(n=new ij(t.typeToName(e.tokenizer)),this.tokenizers.set(e.tokenizer,n)),n}static typeToName(e){switch(e){case"cl100k_base":return"cl100k_base";case"o200k_base":return"o200k_base";case"llama3":throw new Error("Llama3 tokenizer is not supported");default:throw new Error(`Unknown tokenizer type: ${e}`)}}},ij=class{constructor(e){this.mode=hQe.OutputMode.Raw;this.tokenizer=Bo(e)}static{s(this,"CLSTokenizer")}tokenLength(e){if(typeof e=="string")return this.tokenizer.tokenLength(e);if(e.type===tde.ChatCompletionContentPartKind.Text)return this.tokenizer.tokenLength(e.text);throw new Error(`Unsupported content part type: ${e.type}`)}countMessageTokens(e){let n=0;if(typeof e.content=="string")return this.tokenLength(e.content);if(Array.isArray(e.content))for(let r of e.content)if(r.type===tde.ChatCompletionContentPartKind.Text)n+=this.tokenLength(r.text);else throw new Error(`Unsupported message content part type: ${r.type}`);else throw new Error("Unsupported message content type");return n}countMessagesTokens(e){let n=0;for(let r of e)n+=this.countMessageTokens(r);return n}countToolTokens(e){throw new Error("Method not implemented.")}};f();f();var oj=class extends Go{constructor(n){super();this.workspace=n;this._garbageCollector=new lde(20);this._documentCaches=new Map;I0(this,n.openDocuments,(r,i)=>{let o=new sde(r.id,r.value.get(),this._garbageCollector);this._documentCaches.set(o.docId,o),i.add(Eg(this,{value:r.value,selection:r.selection,languageId:r.languageId},a=>{for(let l of a.value.changes)o.handleEdit(l)})),i.add(_a(()=>{this._documentCaches.delete(r.id)}))}).recomputeInitiallyAndOnChange(this._store)}static{s(this,"RejectionCollector")}reject(n,r){let i=this._documentCaches.get(n);i&&i.reject(r)}isRejected(n,r){let i=this._documentCaches.get(n);return i?i.isRejected(r):!1}},sde=class{constructor(e,n,r){this.docId=e;this._garbageCollector=r;this._rejectedEdits=new Set}static{s(this,"DocumentRejectionTracker")}handleEdit(e){for(let n of[...this._rejectedEdits])n.handleEdit(e)}reject(e){if(this.isRejected(e))return;let n=new ade(e.toEdit(),()=>{this._rejectedEdits.delete(n)});this._rejectedEdits.add(n),this._garbageCollector.put(n)}isRejected(e){for(let n of this._rejectedEdits)if(n.isRejected(e))return!0;return!1}},ade=class{constructor(e,n){this._edit=e;this._onDispose=n}static{s(this,"RejectedEdit")}handleEdit(e){let n=this._edit.tryRebase(e);n?this._edit=n:this.dispose()}isRejected(e){return this._edit.equals(e.toEdit())}dispose(){this._onDispose()}},lde=class{constructor(e){this._maxSize=e;this._disposables=[]}static{s(this,"LRUGarbageCollector")}put(e){this._disposables.push(e),this._disposables.length>this._maxSize&&this._disposables.shift().dispose()}dispose(){for(let e of this._disposables)e.dispose();this._disposables=[]}};f();f();f();var f9=class{constructor(e,n){this.prev=null;this.next=null;this.key=e,this.value=n}static{s(this,"Node")}},sj=class{static{s(this,"LRUCache")}constructor(e=10){if(e<1)throw new Error("Cache size must be at least 1");this._capacity=e,this._cache=new Map,this._head=new f9("",null),this._tail=new f9("",null),this._head.next=this._tail,this._tail.prev=this._head}_addNode(e){e.prev=this._head,e.next=this._head.next,this._head.next.prev=e,this._head.next=e}_removeNode(e){let n=e.prev,r=e.next;n.next=r,r.prev=n}_moveToHead(e){this._removeNode(e),this._addNode(e)}_popTail(){let e=this._tail.prev;return this._removeNode(e),e}clear(){this._cache.clear(),this._head.next=this._tail,this._tail.prev=this._head}deleteKey(e){let n=this._cache.get(e);if(n)return this._removeNode(n),this._cache.delete(e),n.value}get(e){let n=this._cache.get(e);if(n)return this._moveToHead(n),n.value}keys(){let e=[],n=this._head.next;for(;n!==this._tail;)e.push(n.key),n=n.next;return e}getValues(){let e=[],n=this._head.next;for(;n!==this._tail;)e.push(n.value),n=n.next;return e}put(e,n){let r=this._cache.get(e);if(r)r.value=n,this._moveToHead(r);else if(r=new f9(e,n),this._cache.set(e,r),this._addNode(r),this._cache.size>this._capacity){let i=this._popTail();return this._cache.delete(i.key),[i.key,i.value]}}};var aj=class extends Go{constructor(n){super();this.workspace=n;this._documentCaches=new Map;this._sharedCache=new sj(50);I0(this,n.openDocuments,(r,i)=>{let o=new cde(r.id,r.value.get(),this._sharedCache);this._documentCaches.set(o.docId,o),i.add(Eg(this,{value:r.value,selection:r.selection,languageId:r.languageId},a=>{for(let l of a.value.changes)o.handleEdit(l)})),i.add(_a(()=>{this._documentCaches.delete(r.id)}))}).recomputeInitiallyAndOnChange(this._store)}static{s(this,"NextEditCache")}setNextEdits(n,r,i){let o=this._documentCaches.get(n);o&&o.setNextEdits(r,i)}lookupNextEdit(n){let r=this._documentCaches.get(n);if(r)return r.lookupNextEdit()}},cde=class{constructor(e,n,r){this.docId=e;this._sharedCache=r;this._value=n}static{s(this,"DocumentEditCache")}handleEdit(e){this._value=this._value.apply(e)}setNextEdits(e,n){let r=this._value;for(let i=0;i<e.edits.length;i++){let o=e.edits[i],a=this._getKey(r.value);this._sharedCache.put(a,{edit:o,subsequentN:i,source:n,documentBeforeEdit:r}),r=r.apply(o.toEdit())}}lookupNextEdit(){let e=this._getKey(this._value.value),n=this._sharedCache.get(e);if(n)return n}_getKey(e){return JSON.stringify([this.docId.uri,e])}};f();var lj=class t{constructor(e){this._providerId=e;this._isFromCache=!1;this._wasPreviouslyRejected=!1;this._isShown=!1;this._acceptance="notAccepted";this._startTime=Date.now(),this._requestN=++t.requestN}static{s(this,"NextEditProviderTelemetryBuilder")}static{this.requestN=0}build(){let e,n,r,i,o,a;if(this._request){let c=this._request.getActiveDocument();e=this._request.documents.length,n=this._request.documents.reduce((u,d)=>u+d.recentEdits.edits.length,0),r=c.recentEdits.edits.length,i=c.languageId,o=c.lineCountBeforeClipping,a=c.clippingRange.length}let l=this._statelessNextEditTelemetry?.fetchStartedAt===void 0?void 0:this._statelessNextEditTelemetry.fetchStartedAt-this._startTime;return{opportunityId:this._opportunityId||"",headerRequestId:this._headerRequestId||"",requestN:this._requestN,providerId:this._providerId,nextEditProviderDuration:this._duration||0,isFromCache:this._isFromCache,subsequentEditOrder:this._subsequentEditOrder,documentShorteningStrategy:this._documentShorteningStrategy,documentsCount:e,editsCount:n,activeDocumentEditsCount:r,activeDocumentLanguageId:i,activeDocumentOriginalLineCount:o,activeDocumentShortenedLineCount:a,fetchStartedAfterMs:l,wasPreviouslyRejected:this._wasPreviouslyRejected,isShown:this._isShown,acceptance:this._acceptance,...this._statelessNextEditTelemetry}}setOpportunityId(e){return this._opportunityId=e,this}setHeaderRequestId(e){return this._headerRequestId=e,this}setIsFromCache(){return this._isFromCache=!0,this}setSubsequentEditOrder(e){return this._subsequentEditOrder=e,this}setDocumentShorteningStrategy(e){return this._documentShorteningStrategy=e,this}setRequest(e){return this._request=e,this}setStatelessNextEditTelemetry(e){return this._statelessNextEditTelemetry=e,this}setWasPreviouslyRejected(){return this._wasPreviouslyRejected=!0,this}markEndTime(){return this._duration=Date.now()-this._startTime,this}setAsShown(){return this._isShown=!0,this}setAcceptance(e){return this._acceptance=e,this}},uR=class{constructor(e){this.telemetrySender=e;this._map=new Map}static{s(this,"TelemetrySender")}markNextEditResultAsShown(e){let n=this._map.get(e);n&&n.builder.setAsShown()}scheduleSendingTelemetry(e,n){let r=setTimeout(()=>{this._doSendTelemetry(n),this._map.delete(e)},12e4);this._map.set(e,{builder:n,timeout:r})}sendTelemetryFor(e,n){let r=this._map.get(e);if(!r)return;this._map.delete(e),clearTimeout(r.timeout);let i=r.builder;i.setAcceptance(n),this._doSendTelemetry(i)}sendTelemetry(e){this._doSendTelemetry(e)}_doSendTelemetry(e){let n=e.build(),{opportunityId:r,headerRequestId:i,requestN:o,providerId:a,hadStatelessNextEditProviderCall:l,statelessNextEditProviderDuration:c,nextEditProviderDuration:u,isFromCache:d,subsequentEditOrder:p,documentShorteningStrategy:m,activeDocumentLanguageId:h,activeDocumentOriginalLineCount:g,activeDocumentShortenedLineCount:y,wasPreviouslyRejected:v,isShown:b,acceptance:E,logProbThreshold:_,documentsCount:k,editsCount:D,activeDocumentEditsCount:N,promptLineCount:Q,promptCharCount:K,isDefaultEndpoint:pe,hadLowLogProbSuggestion:ie,nonTerminatingError:H,nEditsSuggested:U,kthEditPicked:oe,lineDistanceToMostRecentEdit:ne,debounceTime:j,hasNextEdit:W,nextEditLogprob:Y,maxLinesPerEdit:ee,noNextEditReasonKind:fe,noNextEditReasonMessage:te,firstEditStrategy:de,firstPickStrategyOverride:me,fetchTime:Ne,fetchResult:Re,fetchError:Je,fetchStartedAfterMs:Me}=n;this._sendTelemetryToBoth({opportunityId:r,headerRequestId:i,providerId:a,documentShorteningStrategy:m,activeDocumentLanguageId:h,acceptance:E,nonTerminatingError:H,noNextEditReasonKind:fe,noNextEditReasonMessage:te,firstEditStrategy:de,firstPickStrategyOverride:me,fetchResult:Re,fetchError:Je},{requestN:o,hadStatelessNextEditProviderCall:this._boolToNum(l),statelessNextEditProviderDuration:c,nextEditProviderDuration:u,isFromCache:this._boolToNum(d),subsequentEditOrder:p,isDefaultEndpoint:this._boolToNum(pe),activeDocumentOriginalLineCount:g,activeDocumentShortenedLineCount:y,wasPreviouslyRejected:this._boolToNum(v),isShown:this._boolToNum(b),logProbThreshold:_,documentsCount:k,editsCount:D,activeDocumentEditsCount:N,promptLineCount:Q,promptCharCount:K,hadLowLogProbSuggestion:this._boolToNum(ie),nEditsSuggested:U,kthEditPicked:oe,lineDistanceToMostRecentEdit:ne,debounceTime:j,fetchStartedAfterMs:Me,fetchTime:Ne,hasNextEdit:this._boolToNum(W),nextEditLogprob:Y,maxLinesPerEdit:ee})}_sendTelemetryToBoth(e,n){this.telemetrySender.sendTelemetryEvent("copilot-nes/provideInlineEdit",e,n)}_boolToNum(e){return e===void 0?void 0:e?1:0}};uR=mu([Gs(0,TH)],uR);f();var dR=class{constructor(e){this.result=e}static{s(this,"NextEditResult")}};var rT=!1,AQe=300,fR=class extends Go{constructor(n,r,i,o,a,l,c){super();this._workspace=n;this._statelessNextEditProvider=r;this._historyContextProvider=i;this._xtabHistoryTracker=o;this._parseService=a;this._instantiationService=l;this._snippyService=c;this._rejectionCollector=new oj(this._workspace);this._nextEditCache=new aj(this._workspace);this._recentlyShownCache=new fde;this._pendingStatelessNextEditRequest=null;this._lastShownTime=0;this._lastRejectionTime=0;this._lastTriggerTime=0;I0(this,this._workspace.openDocuments,(u,d)=>{d.add(Kre(u.value,p=>{this._cancelPendingRequestDueToDocChange(u.id,p)}))}).recomputeInitiallyAndOnChange(this._store),this._telemetrySender=this._instantiationService.createInstance(uR)}static{s(this,"NextEditProvider")}get lastRejectionTime(){return this._lastRejectionTime}get lastTriggerTime(){return this._lastTriggerTime}_cancelPendingRequestDueToDocChange(n,r){if(this._pendingStatelessNextEditRequest===null)return;let i=this._pendingStatelessNextEditRequest.getActiveDocument();i.id===n&&i.documentAfterEditsNoShortening.value!==r.value&&this._pendingStatelessNextEditRequest.cancellationTokenSource.cancel()}async getNextEdit(n,r,i){this._lastTriggerTime=Date.now();let o=await this._workspace.getDocument(n);if(!o)return{result:void 0};let a=o.value.get(),l=new lj(this._statelessNextEditProvider.ID);l.setOpportunityId(r.requestUuid??u9());let c=this._recentlyShownCache.get(n,a),u=this._nextEditCache.lookupNextEdit(n),d,p,m,h;if(c)d=c[0],h=c[1],p=a,l.setHeaderRequestId(h.headerRequestId),l.setIsFromCache(),await Ay(AQe);else if(u)d=u.edit,h=u.source,p=u.documentBeforeEdit,l.setHeaderRequestId(h.headerRequestId),l.setIsFromCache(),l.setSubsequentEditOrder(u.subsequentN),await Ay(AQe);else{h=new dde,l.setHeaderRequestId(h.headerRequestId);let v=o.value.get();p=v;let b=await this.fetchNextEdit(h,n,l,i),E=v.value!==o.value.get().value;if(b.isError())switch(b.err.kind){case"activeDocumentHasNoEdits":case"noSuggestions":case"gotCancelled":case"filteredOut":case"uncategorized":break;case"fetchFailure":case"unexpected":m=b.err.error;break;default:K8(b.err)}else if(!E){let _=b.val;_.isEmpty()||(d=_.edits[0],(!this._statelessNextEditProvider.dependsOnSelection||_.edits.length>1)&&this._nextEditCache.setNextEdits(n,_,h))}}if(l.markEndTime(),m)throw this._telemetrySender.sendTelemetry(l),m;if(!d)return this._telemetrySender.sendTelemetry(l),new dR(void 0);if(this._rejectionCollector.isRejected(n,d))return l.setWasPreviouslyRejected(),this._telemetrySender.sendTelemetry(l),new dR(void 0);Nl(p!==void 0,"should be defined if edit is defined");let g=this._statelessNextEditProvider.showNextEditPreference??"aroundEdit",y=new dR({edit:d,showRangePreference:g,documentBeforeEdits:p});return this._telemetrySender.scheduleSendingTelemetry(y,l),d.isNeutral()||this._recentlyShownCache.add(n,a,[d,h]),y}async _shortenDocument(n,r){let i=n.lastEdit.getEditedState(),{document:o,clippedRange:a}=r==="noShortening"?this.getProjectedDocumentNoShortening(n.lastEdit):r==="clipping"?this.getProjectedDocumentClipping(n.lastEdit):await this.getProjectedDocumentSummarizedDocument(n.languageId,n.lastEdit),l=ys.fromOffsetEdit(o.edits).inverseOnString(o.originalText),{edits:c,editLast:u}=ude(n.lastEdits.swap(l)),d=c.compose(),p=new X2(new Zm(n.lastEdits.apply(o.originalText)),u.toOffsetEdit().inverse(c.apply(o.text))),m=new Fl(o.text),g=wg.fromEdit(new $c(m,d)).removeCommonSuffixPrefixLines(),y=c.edits.at(-1)?.getNewRanges().at(0),v;y&&(v=new Fl(p.text).getTransformer().getRange(y));let b=n.lastSelection?p.projectOffsetRange(n.lastSelection):void 0,E=this._workspace.getWorkspaceRoot(n.docId),_=s(Q=>{let pe=new wg(new Fl(p.text),Q).toEdit();return yQe(pe,p)},"toEditOnDocumentAfterEditsNoShortening"),k=s(Q=>p.projectBack(Q),"toOffsetOnDocumentAfterEditsNoShortening"),D=s(Q=>p.project(Q),"toProjectedOffset"),N=new YP(n.docId,E,n.languageId,g.base.getLines(),g.edit,v,m,c,i,_,k,D,n.lastEdit.base.getTextLength().lineCount,a,b);return{recentEdit:n.lastEdit,nextEditDoc:N,projectedDocument:p}}async fetchNextEdit(n,r,i,o){let a=await this._historyContextProvider.getHistoryContext(r);if(!a)return Mo.error({kind:"unexpected",error:new Error("DocumentMissingInHistoryContext")});let l=ude(a.getDocumentAndIdx(r)),c=this.getDocumentShorteningStrategy();i.setDocumentShorteningStrategy(c);let u=await Promise.all(a.documents.map(Q=>this._shortenDocument(Q,c))),d=u[l.idx],p=this._xtabHistoryTracker.getHistory(),m=new yH(n.headerRequestId,u.map(Q=>Q.nextEditDoc),l.idx,p,this.nextEditOptions),h=this._findExistingPendingRequest(m),g,y;if(h){g=h,rT&&console.log(`=> reusing an existing request ${g.seqid}`),i.setHeaderRequestId(h.id),i.setIsFromCache(),i.setRequest(g);let Q=this._hookupCancellation(g,o);try{y=await g.result}finally{Q.dispose()}}else{g=m,this._pendingStatelessNextEditRequest&&(this._pendingStatelessNextEditRequest.cancellationTokenSource.cancel(),this._pendingStatelessNextEditRequest=null),this._pendingStatelessNextEditRequest=g;let Q=s(()=>{this._pendingStatelessNextEditRequest===g&&(this._pendingStatelessNextEditRequest=null)},"removeFromPending");i.setRequest(g);let K=this._hookupCancellation(g,o);try{y=await this._statelessNextEditProvider.provideNextEdit(g,g.cancellationTokenSource.token),g.setResult(y)}catch(pe){throw g.setResultError(pe),pe}finally{K.dispose(),Q()}}i.setStatelessNextEditTelemetry(y.telemetry);let v=y.nextEdit;if(v.isError())return v;let b=v.val.edit;if(b.edits.length===0)return Mo.error({kind:"noSuggestions"});let _=new wg(new Fl(d.projectedDocument.text),b).toEdit(),k=yQe(_,d.projectedDocument),D=_.edits.length===k.edits.length?v.val.permutation:void 0,N=k.decompose(D);return Mo.ok(N)}_hookupCancellation(n,r){let i=new wu,o=!1,a=s(()=>{o||(o=!0,n.liveDependentants--)},"removeDependant"),l=i.add(new gH);return i.add(r.onCancellationRequested(()=>{if(a(),n.liveDependentants>0){rT&&console.log(`=> ignoring UI cancellation signal for ${n.seqid} because others depend on this request`);return}if(!n.fetchIssued){rT&&console.log(`=> canceling ${n.seqid} due to UI cancellation signal`),n.cancellationTokenSource.cancel();return}l.setIfNotSet(()=>{if(n.liveDependentants>0){rT&&console.log(`=> ignoring timer cancellation signal for ${n.seqid} because others depend on this request`);return}rT&&console.log(`=> canceling ${n.seqid} due to timer after UI cancellation signal`),n.cancellationTokenSource.cancel()},500)})),i.add(_a(()=>{a()})),n.liveDependentants++,i}_findExistingPendingRequest(n){if(this._statelessNextEditProvider.canReuseResult&&this._pendingStatelessNextEditRequest&&!this._pendingStatelessNextEditRequest.cancellationTokenSource.token.isCancellationRequested&&this._statelessNextEditProvider.canReuseResult(this._pendingStatelessNextEditRequest,n))return this._pendingStatelessNextEditRequest}handleShown(n){this._lastShownTime=Date.now(),this._telemetrySender.markNextEditResultAsShown(n)}handleAcceptance(n,r){this._telemetrySender.sendTelemetryFor(r,"accepted"),this.runSnippy(n,r),this._statelessNextEditProvider.handleAcceptance?.()}handleRejection(n,r){_H(r.result,"@ulugbekna: undefined edit cannot be rejected?"),Date.now()-this._lastShownTime>1e3&&r.result&&(this._recentlyShownCache.remove(r.result.edit),this._rejectionCollector.reject(n,r.result.edit)),this._lastRejectionTime=Date.now(),this._telemetrySender.sendTelemetryFor(r,"rejected")}getProjectedDocumentNoShortening(n){return{document:new X2(new Zm(n.base.value),new Zf([])),clippedRange:new Yt(1,n.base.getTextLength().lineCount+1)}}getProjectedDocumentClipping(n){let r=n.base.getTransformer(),i=r.getRange(n.edit.getRange()??new Rt(0,0)),o=Yt.fromRange(i);function a(p,m){return new Yt(p.startLineNumber-m,p.endLineNumberExclusive+m)}s(a,"extendRange");let l=new Yt(1,r.textLength.lineCount+1),c=ude(l.intersect(a(o,100))),u=Yt.subtract(l,c);return{document:new X2(new Zm(n.base.value),new Zf(u.map(p=>Ka.delete(r.getOffsetRange(new zt(p.startLineNumber,1,p.endLineNumberExclusive,1)))))),clippedRange:c}}getDocumentShorteningStrategy(){return this._statelessNextEditProvider.documentShorteningStrategy??"clipping"}get nextEditOptions(){return new zP("firstByLineNumber",8)}async getProjectedDocumentSummarizedDocument(n,r){let i=await C8t(this._parseService,{getText:s(()=>r.base.value,"getText"),languageId:n});if(!i)return this.getProjectedDocumentClipping(r);let o=new Zm(r.base.value),a=r.edit.edits.at(0)?.range??new Rt(0,0),l;if(r.edit.edits.length!==0){let h=r.edit.edits.at(0),g=r.edit.edits.at(-1);l=o.offsetRangeToRange(new Rt(h.range.start,g.range.endExclusive))}let c=CQe(o.offsetRangeToRange(a)),u=NH(200*50,{costFnOverride:s((h,g,y)=>{let v=CQe(y.offsetRangeToRange(h.range)),b=y8t(c,v);return b>100?!1:b},"costFnOverride")},[{overlayNodeRoot:i,document:o,selection:l}])[0],d=u.projectBack(1)-1,p=r.base.getTransformer().getPosition(d).lineNumber,m=new Yt(p,p+u.lineCount);return{document:u,clippedRange:m}}async runSnippy(n,r){r.result!==void 0&&this._snippyService.handlePostInsertion(n.toUri(),r.result.documentBeforeEdits,r.result.edit)}};fR=mu([Gs(4,yy),Gs(5,iA),Gs(6,tj)],fR);function yQe(t,e){let n=e.projectBackOffsetEdit(t.toOffsetEdit());return ys.fromOffsetEdit(n)}s(yQe,"projectBackEdit");function CQe(t){return new Yt(t.start.line+1,t.end.line+1)}s(CQe,"lineRangeFromVSCodeRange");function y8t(t,e){return t.endLineNumberExclusive<=e.startLineNumber?e.startLineNumber-t.endLineNumberExclusive:e.endLineNumberExclusive<=t.startLineNumber?t.startLineNumber-e.endLineNumberExclusive:0}s(y8t,"lineRangeDist");async function C8t(t,e){return await t.getTreeSitterAST(e)?.getStructure()}s(C8t,"getStructure");function ude(t){if(!t)throw new Cr("expected value to be defined, but it was not");return t}s(ude,"assertDefined");var dde=class{constructor(){this.headerRequestId=u9()}static{s(this,"NextEditFetchRequest")}},fde=class{constructor(){this._cache=new pO(10)}static{s(this,"RecentlyShownCache")}add(e,n,r){let i=this._key(e,n);this._cache.set(i,r)}get(e,n){let r=this._key(e,n);return this._cache.get(r)}remove(e){for(let n of this._cache)if(n[1][0]===e){this._cache.delete(n[0]);break}}_key(e,n){return e.uri+";"+n.value}};f();f();f();f();var iT=0;function cj(t){return t===0}s(cj,"lengthIsZero");var H0=2**26;function pR(t,e){return t*H0+e}s(pR,"toLength");function vy(t){let e=t,n=Math.floor(e/H0),r=e-n*H0;return new Ll(n,r)}s(vy,"lengthToObj");function p9(t,e){let n=t+e;return e>=H0&&(n=n-t%H0),n}s(p9,"lengthAdd");function xQe(t,e){return t.reduce((n,r)=>p9(n,e(r)),iT)}s(xQe,"sumLengths");function pde(t,e){return t===e}s(pde,"lengthEquals");function m9(t,e){let n=t,r=e;if(r-n<=0)return iT;let o=Math.floor(n/H0),a=Math.floor(r/H0),l=r-a*H0;if(o===a){let c=n-o*H0;return pR(0,l-c)}else return pR(a-o,l)}s(m9,"lengthDiffNonNegative");function vQe(t,e){let n=t,r=Math.floor(n/H0),i=n-r*H0,o=e,a=Math.floor(o/H0),l=o-a*H0;return new zt(r+1,i+1,a+1,l+1)}s(vQe,"lengthsToRange");f();var mR=class{constructor(e,n,r){this.startOffset=e;this.endOffset=n;this.newLength=r}static{s(this,"TextEditInfo")}toString(){return`[${vy(this.startOffset)}...${vy(this.endOffset)}) -> ${vy(this.newLength)}`}};function EQe(t,e){if(t.length===0)return e;if(e.length===0)return t;let n=new dO(bQe(t)),r=bQe(e);r.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let i=n.dequeue();function o(u){if(u===void 0){let p=n.takeWhile(m=>!0)||[];return i&&p.unshift(i),p}let d=[];for(;i&&!cj(u);){let[p,m]=i.splitAt(u);d.push(p),u=m9(p.lengthAfter,u),i=m??n.dequeue()}return cj(u)||d.push(new h9(!1,u,u)),d}s(o,"nextS0ToS1MapWithS1LengthOf");let a=[];function l(u,d,p){if(a.length>0&&pde(a[a.length-1].endOffset,u)){let m=a[a.length-1];a[a.length-1]=new mR(m.startOffset,d,p9(m.newLength,p))}else a.push({startOffset:u,endOffset:d,newLength:p})}s(l,"pushEdit");let c=iT;for(let u of r){let d=o(u.lengthBefore);if(u.modified){let p=xQe(d,h=>h.lengthBefore),m=p9(c,p);l(c,m,u.lengthAfter),c=m}else for(let p of d){let m=c;c=p9(c,p.lengthBefore),p.modified&&l(m,c,p.lengthAfter)}}return a}s(EQe,"combineTextEditInfos");var h9=class t{constructor(e,n,r){this.modified=e;this.lengthBefore=n;this.lengthAfter=r}static{s(this,"LengthMapping")}splitAt(e){let n=m9(e,this.lengthAfter);return pde(n,iT)?[this,void 0]:this.modified?[new t(this.modified,this.lengthBefore,e),new t(this.modified,iT,n)]:[new t(this.modified,e,e),new t(this.modified,n,n)]}toString(){return`${this.modified?"M":"U"}:${vy(this.lengthBefore)} -> ${vy(this.lengthAfter)}`}};function bQe(t){let e=[],n=iT;for(let r of t){let i=m9(n,r.startOffset);cj(i)||e.push(new h9(!1,i,i));let o=m9(r.startOffset,r.endOffset);e.push(new h9(!0,o,r.newLength)),n=r.endOffset}return e}s(bQe,"toLengthMapping");var g9=class t{constructor(e){this.edits=e}static{s(this,"TextLengthEdit")}static{this.empty=new t([])}static fromTextEdit(e){let n=e.edits.map(r=>new uj(r.range,Ll.ofText(r.newText)));return new t(n)}static _fromTextEditInfo(e){let n=e.map(r=>{let i=vy(r.newLength);return new uj(vQe(r.startOffset,r.endOffset),new Ll(i.lineCount,i.columnCount))});return new t(n)}_toTextEditInfo(){return this.edits.map(e=>new mR(pR(e.range.startLineNumber-1,e.range.startColumn-1),pR(e.range.endLineNumber-1,e.range.endColumn-1),pR(e.newLength.lineCount,e.newLength.columnCount)))}compose(e){let n=this._toTextEditInfo(),r=e._toTextEditInfo(),i=EQe(n,r);return t._fromTextEditInfo(i)}getRange(){if(this.edits.length!==0)return zt.fromPositions(this.edits[0].range.getStartPosition(),this.edits.at(-1).range.getEndPosition())}toString(){return`[${this.edits.join(", ")}]`}},uj=class{constructor(e,n){this.range=e;this.newLength=n}static{s(this,"SingleTextEditLength")}toString(){return`{ range: ${this.range}, newLength: ${this.newLength} }`}};f();var dj=class{constructor(e){this.documents=e;Nl(e.length>0)}static{s(this,"HistoryContext")}getMostRecentDocument(){return this.documents.at(-1)}getDocument(e){return this.documents.find(n=>n.docId===e)}getDocumentAndIdx(e){let n=this.documents.findIndex(r=>r.docId.uri===e.uri);if(n!==-1)return{doc:this.documents[n],idx:n}}},fj=class{constructor(e,n,r,i,o){this.docId=e;this.languageId=n;this.base=r;this.lastEdits=i;this.lastSelection=o;this.lastEdit=new $c(this.base,this.lastEdits.compose())}static{s(this,"DocumentHistory")}};f();var pj=class extends Go{constructor(){super();this.branch=wm("branchName",void 0);this._register(zre((n,r)=>{this.init(r)}))}static{s(this,"ObservableGitStub")}async init(n){}};var hj=class extends Go{constructor(n,r=!1){super();this._documentState=new Map;this._lastDocuments=new hde(50);this.workspace=n,this._lastGitCheckout=void 0,this._started=!1,r||this.start()}static{s(this,"NesHistoryContextProvider")}start(){if(this._started)return;this._started=!0;let n=new pj;this._register(JI(r=>{r.readObservable(n.branch)!==void 0&&(this._lastGitCheckout=g5(),this._documentState.forEach(o=>o.applyAllEdits()))})),I0(this,this.workspace.openDocuments,(r,i)=>{let o=r.selection.get().at(0),a=new mde(r.id,r.value.get().value,r.languageId.get(),o);this._documentState.set(a.docId,a),o&&this._lastDocuments.push(a),i.add(Eg(this,{value:r.value,selection:r.selection,languageId:r.languageId},l=>{l.languageId.changes.length>0&&(a.languageId=l.languageId.value);let c=this._isAwaitingGitCheckoutCooldown();for(let u of l.value.changes)this._lastDocuments.push(a),a.handleEdit(u,c);l.selection.changes.length>0&&(a.handleSelection(l.selection.value.at(0)),this._lastDocuments.push(a))})),i.add(_a(()=>{let l=this._documentState.get(r.id);l&&this._lastDocuments.remove(l),this._documentState.delete(r.id)}))},r=>r.id).recomputeInitiallyAndOnChange(this._store)}async getHistoryContext(n,r=5,i=100){let o=this._documentState.get(n);if(!o||!this._lastDocuments.has(o)||!await this.workspace.getDocument(n))return;let a=[],l=!1;for(let c of this._lastDocuments.getItemsReversed()){let u=c.getRecentEdit(r,i);if(u!==void 0){if(u.editCount===0&&l)break;if(await this.workspace.getDocument(c.docId)&&(c.docId===n&&(l=!0),a.push(u.history),r-=u.editCount,r<=0))break}}if(a.reverse(),!!a.some(c=>c.docId===n))return new dj(a)}_isAwaitingGitCheckoutCooldown(){if(!this._lastGitCheckout)return!1;let n=g5()-this._lastGitCheckout<2*1e3;return n||(this._lastGitCheckout=void 0),n}getRecentDocumentUris(){return this._lastDocuments.getItems().map(n=>n.docId.uri)}},mde=class t{constructor(e,n,r,i){this.docId=e;this.languageId=r;this._edits=[];this._isUserDocument=!1;this._baseValue=new Fl(n),this._currentValue=this._baseValue,this.handleSelection(i)}static{s(this,"DocumentState")}static{this.MAX_EDITED_LINES_PER_EDIT=10}static{this.MAX_EDITED_CHARS_PER_EDIT=5e3}getSelection(){return this._selection}handleSelection(e){e&&(this._isUserDocument=!0),this._selection=e}handleEdit(e,n){if(e.isEmpty())return;this._currentValue=this._currentValue.apply(e);let r=A5.fromEdit(e,this._currentValue),i=g9.fromTextEdit(r);if(n){this._baseValue=this._currentValue,this._edits=[];return}function o(l){return mj(l.edits,c=>c.newText.length)}s(o,"editInsertSize");let a=this._edits.at(-1);a&&o(a.edit)<200&&x8t(e,a.edit)?(a.edit=a.edit.compose(e),a.textLengthEdit=a.textLengthEdit.compose(i),a.instant=g5(),a.edit.isEmpty()&&this._edits.pop()):this._edits.push({edit:e,textLengthEdit:i,instant:g5()})}getRecentEdit(e,n){if(!this._isUserDocument)return;let{editCount:r}=this._applyStaleEdits(e,n),i=new _g(this._edits.map(o=>o.edit));return{history:new fj(this.docId,this.languageId,this._baseValue,i,this._selection),editCount:r}}applyAllEdits(){this._baseValue=this._currentValue,this._edits=[]}_applyStaleEdits(e,n){let r=this._currentValue,i=ys.empty,o=g9.empty,a,l=0,c=ys.empty;for(a=this._edits.length-1;a>=0;a--){let u=this._edits[a];if(g5()-u.instant>10*60*1e3)break;let d=u.textLengthEdit.compose(o),p=d.getRange();_H(p,"we only compose non-empty Edits");let m=p.endLineNumber-p.startLineNumber;if(n>0&&m>n)break;let h=mj(u.textLengthEdit.edits,D=>D.range.endLineNumber-D.range.startLineNumber+D.newLength.lineCount);if(h>t.MAX_EDITED_LINES_PER_EDIT||mj(u.edit.edits,D=>D.newText.length)>t.MAX_EDITED_CHARS_PER_EDIT||mj(u.edit.edits,D=>D.range.length)>t.MAX_EDITED_CHARS_PER_EDIT)break;if(a===this._edits.length-1)c=u.edit;else{let D=ys.trySwap(u.edit,c);if(D)c=D.e1;else{if(h>=2)break;c=u.edit.compose(c)}}let v=u.edit.inverseOnString(r.value);r=r.apply(v);let b=u.edit.compose(i),E=Po.fromEdit(new $c(r,b)),k=new wg(r,E).removeCommonSuffixPrefixLines().edit.edits.length;if(k>e)break;l=k,i=b,o=d}for(let u=0;u<=a;u++){let d=this._edits[u];this._baseValue=this._baseValue.apply(d.edit)}return this._edits=this._edits.slice(a+1),{editCount:l}}toString(){return new _g(this._edits.map(e=>e.edit)).toHumanReadablePatch(this._baseValue)}};function mj(t,e){let n=0;for(let r of t)n+=e(r);return n}s(mj,"sum");function x8t(t,e){let n=e.getNewRanges();return t.edits.every(r=>v8t(r.range,n))}s(x8t,"editExtends");function v8t(t,e){return e.some(n=>t.start===n.endExclusive||t.endExclusive===n.start)}s(v8t,"doesTouch");var hde=class{constructor(e){this.maxSize=e;this._arr=[]}static{s(this,"FifoSet")}push(e){let n=this._arr.indexOf(e);n!==-1?this._arr.splice(n,1):this._arr.length>=this.maxSize&&this._arr.shift(),this._arr.push(e)}remove(e){let n=this._arr.indexOf(e);n!==-1&&this._arr.splice(n,1)}getItems(){return this._arr}getItemsReversed(){let e=[...this._arr];return e.reverse(),e}has(e){return this._arr.indexOf(e)!==-1}};var IQe=10,eh=class{constructor(e){this.lastResultsById=new Jn(IQe);this.lastResultsByUri=new Jn(IQe);this.ctx=e}static{s(this,"NextEditSuggestionsManager")}async handleNextEditRequest(e,n,r){let i=await(this.nextEditProvider??=this.createNextEditProvider()),o=this.lastResultsByUri.get(e);o&&(this.lastResultsByUri.delete(e),this.lastResultsById.delete(o.resultId),i.handleRejection(o.documentId,o.nextEditResult));let a=Sm.create(e),l=await i.getNextEdit(a,{triggerKind:1},r);if(l.result==null)return;let c=await this.ctx.get(kn).getTextDocument({uri:e});if(!c)return;let u=c.positionAt(l.result.edit.range.start),d=c.positionAt(l.result.edit.range.endExclusive),p=an(),m={resultId:p,nextEditResult:l,documentId:a};return this.lastResultsById.set(p,m),this.lastResultsByUri.set(e,m),[{edit:{text:l.result?.edit.newText??"",range:{start:u,end:d},textDocument:{uri:e,version:n}},id:p}]}async handleAcceptance(e){let n=await this.nextEditProvider,r=this.lastResultsById.get(e);!n||!r||r.resultId===e&&(this.lastResultsByUri.delete(r.resultId),this.lastResultsById.delete(r.resultId),await n.handleAcceptance(r.documentId,r.nextEditResult))}async handleShown(e){let n=await this.nextEditProvider,r=this.lastResultsById.get(e);!n||!r||r.resultId===e&&n.handleShown(r.nextEditResult)}async createNextEditProvider(){let e=await gQe(this.ctx),n;try{let o=await this.ctx.get(Bt).updateExPValuesAndAssignments(),a=b8t(this.ctx,o);n=e.createInstance(a?oA:xy)}catch{n=e.createInstance(xy)}let r=this.ctx.get(Ig),i=new hj(r);return e.createInstance(fR,r,n,i,new $H(r))}};function b8t(t,e){let n=sr(t,ft.NESXTab);return n!==void 0?n:t.get(Bt).enableNESXTab(e)}s(b8t,"shouldUseXTab");f();var Cb=require("fs"),TQe=require("os"),wQe=Ve(require("path")),hR=require("process");var Cc=class{static{s(this,"PersistenceManager")}},gde=class extends Cc{constructor(n){super();this.directory=n}static{s(this,"FilePersistenceManager")}async read(n,r){try{return(await this.readJsonObject(n))[r]}catch{return}}async update(n,r,i){await Cb.promises.mkdir(this.directory,{recursive:!0,mode:448});let o=`${this.directory}/${n}.json`,a=await this.readJsonObject(n);a[r]=i,await Cb.promises.writeFile(o,JSON.stringify(a)+`
971
+ `)}isStronglyEqual(e,n){return this.lines[e]===this.lines[n]}};function sQe(t){let e=0;for(;e<t.length&&(t.charCodeAt(e)===32||t.charCodeAt(e)===9);)e++;return e}s(sQe,"getIndentation");var ZH=class{constructor(){this.dynamicProgrammingDiffing=new JH;this.myersDiffingAlgorithm=new aR}static{s(this,"DefaultLinesDiffComputer")}computeDiff(e,n,r){if(e.length<=1&&HI(e,n,(D,N)=>D===N))return new rR([],[],!1);if(e.length===1&&e[0].length===0||n.length===1&&n[0].length===0)return new rR([new gb(new Yt(1,e.length+1),new Yt(1,n.length+1),[new Fd(new zt(1,1,e.length,e[e.length-1].length+1),new zt(1,1,n.length,n[n.length-1].length+1))])],[],!1);let i=r.maxComputationTimeMs===0?Ab.instance:new KH(r.maxComputationTimeMs),o=!r.ignoreTrimWhitespace,a=new Map;function l(D){let N=a.get(D);return N===void 0&&(N=a.size,a.set(D,N)),N}s(l,"getOrCreateHash");let c=e.map(D=>l(D.trim())),u=n.map(D=>l(D.trim())),d=new c9(c,e),p=new c9(u,n),m=d.length+p.length<1700?this.dynamicProgrammingDiffing.compute(d,p,i,(D,N)=>e[D]===n[N]?n[N].length===0?.1:1+Math.log(1+n[N].length):.99):this.myersDiffingAlgorithm.compute(d,p,i),h=m.diffs,g=m.hitTimeout;h=zue(d,p,h),h=iQe(d,p,h);let y=[],v=s(D=>{if(o)for(let N=0;N<D;N++){let Q=b+N,K=E+N;if(e[Q]!==n[K]){let pe=this.refineDiff(e,n,new zo(new Rt(Q,Q+1),new Rt(K,K+1)),i,o,r);for(let ie of pe.mappings)y.push(ie);pe.hitTimeout&&(g=!0)}}},"scanForWhitespaceChanges"),b=0,E=0;for(let D of h){ku(()=>D.seq1Range.start-b===D.seq2Range.start-E);let N=D.seq1Range.start-b;v(N),b=D.seq1Range.endExclusive,E=D.seq2Range.endExclusive;let Q=this.refineDiff(e,n,D,i,o,r);Q.hitTimeout&&(g=!0);for(let K of Q.mappings)y.push(K)}v(e.length-b);let _=jue(y,new nT(e),new nT(n)),k=[];return r.computeMoves&&(k=this.computeMoves(_,e,n,c,u,i,o,r)),ku(()=>{function D(Q,K){if(Q.lineNumber<1||Q.lineNumber>K.length)return!1;let pe=K[Q.lineNumber-1];return!(Q.column<1||Q.column>pe.length+1)}s(D,"validatePosition");function N(Q,K){return!(Q.startLineNumber<1||Q.startLineNumber>K.length+1||Q.endLineNumberExclusive<1||Q.endLineNumberExclusive>K.length+1)}s(N,"validateRange");for(let Q of _){if(!Q.innerChanges)return!1;for(let K of Q.innerChanges)if(!(D(K.modifiedRange.getStartPosition(),n)&&D(K.modifiedRange.getEndPosition(),n)&&D(K.originalRange.getStartPosition(),e)&&D(K.originalRange.getEndPosition(),e)))return!1;if(!N(Q.modified,n)||!N(Q.original,e))return!1}return!0}),new rR(_,k,g)}computeMoves(e,n,r,i,o,a,l,c){return eQe(e,n,r,i,o,a).map(p=>{let m=this.refineDiff(n,r,new zo(p.original.toOffsetRange(),p.modified.toOffsetRange()),a,l,c),h=jue(m.mappings,new nT(n),new nT(r),!0);return new iR(p,h)})}refineDiff(e,n,r,i,o,a){let c=f8t(r).toRangeMapping2(e,n),u=new yb(e,c.originalRange,o),d=new yb(n,c.modifiedRange,o),p=u.length+d.length<500?this.dynamicProgrammingDiffing.compute(u,d,i):this.myersDiffingAlgorithm.compute(u,d,i),m=!1,h=p.diffs;m&&zo.assertSorted(h),h=zue(u,d,h),m&&zo.assertSorted(h),h=Yue(u,d,h,(y,v)=>y.findWordContaining(v)),m&&zo.assertSorted(h),a.extendToSubwords&&(h=Yue(u,d,h,(y,v)=>y.findSubWordContaining(v),!0),m&&zo.assertSorted(h)),h=rQe(u,d,h),m&&zo.assertSorted(h),h=oQe(u,d,h),m&&zo.assertSorted(h);let g=h.map(y=>new Fd(u.translateRange(y.seq1Range),d.translateRange(y.seq2Range)));return m&&Fd.assertSorted(g),{mappings:g,hitTimeout:p.hitTimeout}}};function f8t(t){return new gp(new Yt(t.seq1Range.start+1,t.seq1Range.endExclusive+1),new Yt(t.seq2Range.start+1,t.seq2Range.endExclusive+1))}s(f8t,"toLineRangeMapping");var ej=class{static{s(this,"DiffServiceImpl")}constructor(){}dispose(){}async computeDiff(e,n,r){let i=await p8t(e,n,r);return{identical:i.identical,quitEarly:i.quitEarly,changes:a(i.changes),moves:i.moves.map(l=>new iR(new gp(new Yt(l[0],l[1]),new Yt(l[2],l[3])),a(l[4])))};function a(l){return l.map(c=>new gb(new Yt(c[0],c[1]),new Yt(c[2],c[3]),c[4]?.map(u=>new Fd(new zt(u[0],u[1],u[2],u[3]),new zt(u[4],u[5],u[6],u[7])))))}}};async function p8t(t,e,n){let r=t.split(/\r\n|\r|\n/),i=e.split(/\r\n|\r|\n/),a=new ZH().computeDiff(r,i,n),l=a.changes.length>0?!1:t===e;function c(u){return u.map(d=>[d.original.startLineNumber,d.original.endLineNumberExclusive,d.modified.startLineNumber,d.modified.endLineNumberExclusive,d.innerChanges?.map(p=>[p.originalRange.startLineNumber,p.originalRange.startColumn,p.originalRange.endLineNumber,p.originalRange.endColumn,p.modifiedRange.startLineNumber,p.modifiedRange.startColumn,p.modifiedRange.endLineNumber,p.modifiedRange.endColumn])])}return s(c,"getLineChanges"),{identical:l,quitEarly:a.hitTimeout,changes:c(a.changes),moves:a.moves.map(u=>[u.lineRangeMapping.original.startLineNumber,u.lineRangeMapping.original.endLineNumberExclusive,u.lineRangeMapping.modified.startLineNumber,u.lineRangeMapping.modified.endLineNumberExclusive,c(u.changes)])}}s(p8t,"computeDiff");f();var Kue=Ve(require("crypto"));var u9=Kue.randomUUID.bind(Kue);var hQe=Ve(Ym()),tde=Ve(BP());f();var tj=q0("ISnippyService");f();f();var d9=new RegExp("[_\\p{L}\\p{Nd}]+|====+|----+|####+|////+|\\*\\*\\*\\*+|[\\p{P}\\p{S}]","gu"),nj=65;function m8t(t){let e=0,n;d9.lastIndex=0;do if(n=d9.exec(t),n&&(e+=1),e>=nj)break;while(n);return e}s(m8t,"lexemeLength");function h8t(t,e){let n=0,r;d9.lastIndex=0;do if(r=d9.exec(t),r&&(n+=1,n>=e))return d9.lastIndex;while(r);return t.length}s(h8t,"offsetFirstLexemes");function aQe(t,e){let n=t.split("").reverse().join(""),r=h8t(n,e);return n.length-r}s(aQe,"offsetLastLexemes");function Jue(t){return m8t(t)>=nj}s(Jue,"hasMinLexemeLength");f();f();var lQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.matched_source=="string"&&typeof n.occurrences=="string"&&typeof n.capped=="boolean"&&typeof n.cursor=="string"&&typeof n.github_url=="string"}e.is=t,s(t,"is")})(lQe||={});var Xue;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.kind=="string"&&typeof n.reason=="string"&&typeof n.code=="number"&&typeof n.msg=="string"}e.is=t,s(t,"is")})(Xue||={});var cQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&"snippets"in n&&Array.isArray(n.snippets)&&n.snippets.every(lQe.is)}e.is=t,s(t,"is")})(cQe||={});var Zue;(e=>{function t(n){if(Xue.is(n))return Mo.error(n);if(cQe.is(n))return Mo.ok(n)}e.to=t,s(t,"to")})(Zue||={});var uQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.commit_id=="string"&&typeof n.license=="string"&&typeof n.nwo=="string"&&typeof n.path=="string"&&typeof n.url=="string"}e.is=t,s(t,"is")})(uQe||={});var dQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.has_next_page=="boolean"&&typeof n.cursor=="string"}e.is=t,s(t,"is")})(dQe||={});var fQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.count=="object"&&Object.values(n.count).every(r=>typeof r=="string")}e.is=t,s(t,"is")})(fQe||={});var pQe;(e=>{function t(n){return typeof n=="object"&&n!==null&&"file_matches"in n&&Array.isArray(n.file_matches)&&n.file_matches.every(uQe.is)&&"page_info"in n&&dQe.is(n.page_info)&&"license_stats"in n&&fQe.is(n.license_stats)}e.is=t,s(t,"is")})(pQe||={});var ede;(e=>{function t(n){if(Xue.is(n))return Mo.error(n);if(pQe.is(n))return Mo.ok(n)}e.to=t,s(t,"to")})(ede||={});var rj=class t{static{s(this,"SnippyFetchService")}static{this.TWIRP_URL="twirp/github.snippy.v1.SnippyAPI"}constructor(e){this.ctx=e}async fetchMatch(e){let n={source:e};return this.fetch("Match",n,Zue.to)}async fetchFilesForMatch(e){let n={cursor:e};return this.fetch("FilesForMatch",n,ede.to)}async fetch(e,n,r){let i=this.ctx.get(rr),o=await this.ctx.get(Qn).getToken(),a=Fx(this.ctx,o,"origin-tracker",`${t.TWIRP_URL}/${e}`),l={Authorization:`Bearer ${o.token}`,...Jd(this.ctx),"X-GitHub-Api-Version":yf},c=i.makeAbortController(),u=await i.fetch(a,{method:"POST",headers:l,json:n,signal:c.signal});if(!u.ok)throw new Error(`Failed with status ${u.status} and body: ${await u.text()}`);let d=await u.json();return r(d)}};var mQe=new _t("[CODE REFERENCING]"),cR=class{constructor(e,n){this.instantiationService=n;this.ctx=e,this.fetcher=this.instantiationService.createInstance(rj,this.ctx)}static{s(this,"SnippyService")}async handlePostInsertion(e,n,r){let i=this.computeSourceToCheck(n,r);if(!i)return;let a=await this.ctx.get(kn).getTextDocument({uri:e.toString()});if(!a){mQe.error(this.ctx,"Unable to raise IP code citation notification: could not determine document version.");return}let l=a.version,c;try{c=await this.fetcher.fetchMatch(i.source)}catch(h){throw h}if(!c)throw new Error(`Failed to parse match response: ${c}`);if(c.isError())throw new Error(`Failed to match: ${c.err}`);if(c.val.snippets.length===0)return;let{snippets:u}=c.val,d=u.map(async h=>{let g=await this.fetcher.fetchFilesForMatch(h.cursor);if(!g||g.isError())return;let{file_matches:y,license_stats:v}=g.val;return{match:h,files:y,licenseStats:v}}),m=(await Promise.all(d)).filter(h=>!!h);if(m.length===0){mQe.error(this.ctx,"Should never happen as per https://github.com/github/copilot-client/blob/34cae5c581d662525eb3305d58f0762e952f866d/extension/src/codeReferencing/handlePostInsertion.ts#L138");return}for(let h of m){let g=new Set(Object.keys(h.licenseStats?.count??{}));g.delete("NOASSERTION")&&g.add("unknown");let y=Array.from(g).sort(),v=`${h.match.matched_source.slice(0,100).replace(/[\r\n\t]+|^[ \t]+/gm," ").trim()}...`,b={inDocumentUri:e.toString(),offsetStart:i.startOffset,offsetEnd:i.endOffset,matchingText:v,location:{start:{line:i.startPosition.lineNumber,character:i.startPosition.column},end:{line:i.endPosition.lineNumber,character:i.endPosition.column}},version:l,details:y.map(E=>({license:E,url:`${h.match.github_url}`}))};await this.ctx.get(y0).handleIPCodeCitation(this.ctx,b)}}computeSourceToCheck(e,n){if(n.newText==="")return;let r=ys.single(n),o=r.getNewRanges().reduce((m,h)=>m.join(h)),a=e.apply(r),l=o.start,c=a.value.substring(o.start,o.endExclusive);if(!Jue(c)){let m=a.value.slice(0,o.start),h=aQe(m,nj);l=h,c=a.value.slice(h,o.start+n.newText.length)}if(!Jue(c))return;let u=a.getTransformer(),d=u.getPosition(l),p=u.getPosition(o.endExclusive);return{source:c,startOffset:l,endOffset:o.endExclusive,startPosition:d,endPosition:p}}};cR=mu([Gs(1,iA)],cR);async function gQe(t){let e=new EH;return e.define(TH,new nde(t)),e.define(jH,new ej),e.define(yy,new W0(rde,[!0])),e.define(tj,new W0(cR,[t])),e.define(Xm,await ide.Create(t)),e.define(r9,new W0(ode)),e.seal()}s(gQe,"createInstantiationService");var nde=class{constructor(e){this.ctx=e;this.ctx=e}static{s(this,"TelemetrySender")}sendTelemetryEvent(e,n,r){let i=Object.fromEntries(Object.entries(n??{}).filter(([l,c])=>c!==void 0)),o=Object.fromEntries(Object.entries(r??{}).filter(([l,c])=>c!==void 0)),a=or.createAndMarkAsIssued(i,o);kt(this.ctx,e,a)}},rde=class{static{s(this,"ParserServiceImpl")}getTreeSitterAST(e){}},ide=class t{constructor(e,n){this.ctx=e;this.modelConfiguration=n}static{s(this,"CLSChatMLFetcher")}static async Create(e){let n=await Co.getModelConfiguration(e,"nesStubs");return new t(e,n)}get tokenBudget(){return this.modelConfiguration.maxRequestTokens}get tokenizerName(){return this.modelConfiguration.tokenizer}async fetchOne(e,n,r,i,o){let a=e.map(u=>t.chatMessageToClsChatMessage(u)),l=u9(),c=await this.ctx.get(Cd).fetchAndStreamChat(this.ctx,a,og.createEmptyConfigForTesting(),"nextEditSuggestion",l,async(u,d)=>{if(n)return await n(u,0,{text:d.text})},r,i,o);if(c.type==="success"){let u=[];if(n)for await(let p of c.choices)if(p.finishReason!=="snippy")await n(p.completionText,0,{text:p.completionText}),u.push(p.completionText);else return{type:"filtered",reason:"snippy",category:"snippy",requestId:l,serverRequestId:p.requestId.headerRequestId};let d=u.join("");return{type:"success",value:d}}else return{type:t.clsResponseTypeToResponseType(c.type),reason:c.type}}static chatMessageToClsChatMessage(e){switch(e.role){case"system":return{role:"system",content:qMe(e.content)};case"user":if(typeof e.content!="string"&&e.content.some(n=>n.type!=="text"))throw new Error("CLS only supports text content in user messages");return{role:"user",content:e.content};default:throw new Error(`Unsupported chat role: ${e.role}`)}}static clsResponseTypeToResponseType(e){switch(e){case"success":return"success";case"successMultiple":return"success";case"offTopic":return"offTopic";case"canceled":return"canceled";case"filtered":return"filtered";case"length":return"length";case"failed":return"failed";case"agentAuthRequired":return"agent_unauthorized";default:return"unknown"}}},ode=class t{constructor(){this.tokenizers=new Map;this.cl100kTokenizer=new ij("cl100k_base")}static{s(this,"CLSTokenizerProvider")}acquireTokenizer(e){let n=this.tokenizers.get(e.tokenizer);return n||(n=new ij(t.typeToName(e.tokenizer)),this.tokenizers.set(e.tokenizer,n)),n}static typeToName(e){switch(e){case"cl100k_base":return"cl100k_base";case"o200k_base":return"o200k_base";case"llama3":throw new Error("Llama3 tokenizer is not supported");default:throw new Error(`Unknown tokenizer type: ${e}`)}}},ij=class{constructor(e){this.mode=hQe.OutputMode.Raw;this.tokenizer=Bo(e)}static{s(this,"CLSTokenizer")}tokenLength(e){if(typeof e=="string")return this.tokenizer.tokenLength(e);if(e.type===tde.ChatCompletionContentPartKind.Text)return this.tokenizer.tokenLength(e.text);throw new Error(`Unsupported content part type: ${e.type}`)}countMessageTokens(e){let n=0;if(typeof e.content=="string")return this.tokenLength(e.content);if(Array.isArray(e.content))for(let r of e.content)if(r.type===tde.ChatCompletionContentPartKind.Text)n+=this.tokenLength(r.text);else throw new Error(`Unsupported message content part type: ${r.type}`);else throw new Error("Unsupported message content type");return n}countMessagesTokens(e){let n=0;for(let r of e)n+=this.countMessageTokens(r);return n}countToolTokens(e){throw new Error("Method not implemented.")}};f();f();var oj=class extends Go{constructor(n){super();this.workspace=n;this._garbageCollector=new lde(20);this._documentCaches=new Map;I0(this,n.openDocuments,(r,i)=>{let o=new sde(r.id,r.value.get(),this._garbageCollector);this._documentCaches.set(o.docId,o),i.add(Eg(this,{value:r.value,selection:r.selection,languageId:r.languageId},a=>{for(let l of a.value.changes)o.handleEdit(l)})),i.add(_a(()=>{this._documentCaches.delete(r.id)}))}).recomputeInitiallyAndOnChange(this._store)}static{s(this,"RejectionCollector")}reject(n,r){let i=this._documentCaches.get(n);i&&i.reject(r)}isRejected(n,r){let i=this._documentCaches.get(n);return i?i.isRejected(r):!1}},sde=class{constructor(e,n,r){this.docId=e;this._garbageCollector=r;this._rejectedEdits=new Set}static{s(this,"DocumentRejectionTracker")}handleEdit(e){for(let n of[...this._rejectedEdits])n.handleEdit(e)}reject(e){if(this.isRejected(e))return;let n=new ade(e.toEdit(),()=>{this._rejectedEdits.delete(n)});this._rejectedEdits.add(n),this._garbageCollector.put(n)}isRejected(e){for(let n of this._rejectedEdits)if(n.isRejected(e))return!0;return!1}},ade=class{constructor(e,n){this._edit=e;this._onDispose=n}static{s(this,"RejectedEdit")}handleEdit(e){let n=this._edit.tryRebase(e);n?this._edit=n:this.dispose()}isRejected(e){return this._edit.equals(e.toEdit())}dispose(){this._onDispose()}},lde=class{constructor(e){this._maxSize=e;this._disposables=[]}static{s(this,"LRUGarbageCollector")}put(e){this._disposables.push(e),this._disposables.length>this._maxSize&&this._disposables.shift().dispose()}dispose(){for(let e of this._disposables)e.dispose();this._disposables=[]}};f();f();f();var f9=class{constructor(e,n){this.prev=null;this.next=null;this.key=e,this.value=n}static{s(this,"Node")}},sj=class{static{s(this,"LRUCache")}constructor(e=10){if(e<1)throw new Error("Cache size must be at least 1");this._capacity=e,this._cache=new Map,this._head=new f9("",null),this._tail=new f9("",null),this._head.next=this._tail,this._tail.prev=this._head}_addNode(e){e.prev=this._head,e.next=this._head.next,this._head.next.prev=e,this._head.next=e}_removeNode(e){let n=e.prev,r=e.next;n.next=r,r.prev=n}_moveToHead(e){this._removeNode(e),this._addNode(e)}_popTail(){let e=this._tail.prev;return this._removeNode(e),e}clear(){this._cache.clear(),this._head.next=this._tail,this._tail.prev=this._head}deleteKey(e){let n=this._cache.get(e);if(n)return this._removeNode(n),this._cache.delete(e),n.value}get(e){let n=this._cache.get(e);if(n)return this._moveToHead(n),n.value}keys(){let e=[],n=this._head.next;for(;n!==this._tail;)e.push(n.key),n=n.next;return e}getValues(){let e=[],n=this._head.next;for(;n!==this._tail;)e.push(n.value),n=n.next;return e}put(e,n){let r=this._cache.get(e);if(r)r.value=n,this._moveToHead(r);else if(r=new f9(e,n),this._cache.set(e,r),this._addNode(r),this._cache.size>this._capacity){let i=this._popTail();return this._cache.delete(i.key),[i.key,i.value]}}};var aj=class extends Go{constructor(n){super();this.workspace=n;this._documentCaches=new Map;this._sharedCache=new sj(50);I0(this,n.openDocuments,(r,i)=>{let o=new cde(r.id,r.value.get(),this._sharedCache);this._documentCaches.set(o.docId,o),i.add(Eg(this,{value:r.value,selection:r.selection,languageId:r.languageId},a=>{for(let l of a.value.changes)o.handleEdit(l)})),i.add(_a(()=>{this._documentCaches.delete(r.id)}))}).recomputeInitiallyAndOnChange(this._store)}static{s(this,"NextEditCache")}setNextEdits(n,r,i){let o=this._documentCaches.get(n);o&&o.setNextEdits(r,i)}lookupNextEdit(n){let r=this._documentCaches.get(n);if(r)return r.lookupNextEdit()}},cde=class{constructor(e,n,r){this.docId=e;this._sharedCache=r;this._value=n}static{s(this,"DocumentEditCache")}handleEdit(e){this._value=this._value.apply(e)}setNextEdits(e,n){let r=this._value;for(let i=0;i<e.edits.length;i++){let o=e.edits[i],a=this._getKey(r.value);this._sharedCache.put(a,{edit:o,subsequentN:i,source:n,documentBeforeEdit:r}),r=r.apply(o.toEdit())}}lookupNextEdit(){let e=this._getKey(this._value.value),n=this._sharedCache.get(e);if(n)return n}_getKey(e){return JSON.stringify([this.docId.uri,e])}};f();var lj=class t{constructor(e){this._providerId=e;this._isFromCache=!1;this._wasPreviouslyRejected=!1;this._isShown=!1;this._acceptance="notAccepted";this._startTime=Date.now(),this._requestN=++t.requestN}static{s(this,"NextEditProviderTelemetryBuilder")}static{this.requestN=0}build(){let e,n,r,i,o,a;if(this._request){let c=this._request.getActiveDocument();e=this._request.documents.length,n=this._request.documents.reduce((u,d)=>u+d.recentEdits.edits.length,0),r=c.recentEdits.edits.length,i=c.languageId,o=c.lineCountBeforeClipping,a=c.clippingRange.length}let l=this._statelessNextEditTelemetry?.fetchStartedAt===void 0?void 0:this._statelessNextEditTelemetry.fetchStartedAt-this._startTime;return{opportunityId:this._opportunityId||"",headerRequestId:this._headerRequestId||"",requestN:this._requestN,providerId:this._providerId,nextEditProviderDuration:this._duration||0,isFromCache:this._isFromCache,subsequentEditOrder:this._subsequentEditOrder,documentShorteningStrategy:this._documentShorteningStrategy,documentsCount:e,editsCount:n,activeDocumentEditsCount:r,activeDocumentLanguageId:i,activeDocumentOriginalLineCount:o,activeDocumentShortenedLineCount:a,fetchStartedAfterMs:l,wasPreviouslyRejected:this._wasPreviouslyRejected,isShown:this._isShown,acceptance:this._acceptance,...this._statelessNextEditTelemetry}}setOpportunityId(e){return this._opportunityId=e,this}setHeaderRequestId(e){return this._headerRequestId=e,this}setIsFromCache(){return this._isFromCache=!0,this}setSubsequentEditOrder(e){return this._subsequentEditOrder=e,this}setDocumentShorteningStrategy(e){return this._documentShorteningStrategy=e,this}setRequest(e){return this._request=e,this}setStatelessNextEditTelemetry(e){return this._statelessNextEditTelemetry=e,this}setWasPreviouslyRejected(){return this._wasPreviouslyRejected=!0,this}markEndTime(){return this._duration=Date.now()-this._startTime,this}setAsShown(){return this._isShown=!0,this}setAcceptance(e){return this._acceptance=e,this}},uR=class{constructor(e){this.telemetrySender=e;this._map=new Map}static{s(this,"TelemetrySender")}markNextEditResultAsShown(e){let n=this._map.get(e);n&&n.builder.setAsShown()}scheduleSendingTelemetry(e,n){let r=setTimeout(()=>{this._doSendTelemetry(n),this._map.delete(e)},12e4);this._map.set(e,{builder:n,timeout:r})}sendTelemetryFor(e,n){let r=this._map.get(e);if(!r)return;this._map.delete(e),clearTimeout(r.timeout);let i=r.builder;i.setAcceptance(n),this._doSendTelemetry(i)}sendTelemetry(e){this._doSendTelemetry(e)}_doSendTelemetry(e){let n=e.build(),{opportunityId:r,headerRequestId:i,requestN:o,providerId:a,hadStatelessNextEditProviderCall:l,statelessNextEditProviderDuration:c,nextEditProviderDuration:u,isFromCache:d,subsequentEditOrder:p,documentShorteningStrategy:m,activeDocumentLanguageId:h,activeDocumentOriginalLineCount:g,activeDocumentShortenedLineCount:y,wasPreviouslyRejected:v,isShown:b,acceptance:E,logProbThreshold:_,documentsCount:k,editsCount:D,activeDocumentEditsCount:N,promptLineCount:Q,promptCharCount:K,isDefaultEndpoint:pe,hadLowLogProbSuggestion:ie,nonTerminatingError:H,nEditsSuggested:U,kthEditPicked:oe,lineDistanceToMostRecentEdit:ne,debounceTime:j,hasNextEdit:W,nextEditLogprob:Y,maxLinesPerEdit:ee,noNextEditReasonKind:fe,noNextEditReasonMessage:te,firstEditStrategy:de,firstPickStrategyOverride:me,fetchTime:Ne,fetchResult:Re,fetchError:Je,fetchStartedAfterMs:Me}=n;this._sendTelemetryToBoth({opportunityId:r,headerRequestId:i,providerId:a,documentShorteningStrategy:m,activeDocumentLanguageId:h,acceptance:E,nonTerminatingError:H,noNextEditReasonKind:fe,noNextEditReasonMessage:te,firstEditStrategy:de,firstPickStrategyOverride:me,fetchResult:Re,fetchError:Je},{requestN:o,hadStatelessNextEditProviderCall:this._boolToNum(l),statelessNextEditProviderDuration:c,nextEditProviderDuration:u,isFromCache:this._boolToNum(d),subsequentEditOrder:p,isDefaultEndpoint:this._boolToNum(pe),activeDocumentOriginalLineCount:g,activeDocumentShortenedLineCount:y,wasPreviouslyRejected:this._boolToNum(v),isShown:this._boolToNum(b),logProbThreshold:_,documentsCount:k,editsCount:D,activeDocumentEditsCount:N,promptLineCount:Q,promptCharCount:K,hadLowLogProbSuggestion:this._boolToNum(ie),nEditsSuggested:U,kthEditPicked:oe,lineDistanceToMostRecentEdit:ne,debounceTime:j,fetchStartedAfterMs:Me,fetchTime:Ne,hasNextEdit:this._boolToNum(W),nextEditLogprob:Y,maxLinesPerEdit:ee})}_sendTelemetryToBoth(e,n){this.telemetrySender.sendTelemetryEvent("copilot-nes/provideInlineEdit",e,n)}_boolToNum(e){return e===void 0?void 0:e?1:0}};uR=mu([Gs(0,TH)],uR);f();var dR=class{constructor(e){this.result=e}static{s(this,"NextEditResult")}};var rT=!1,AQe=300,fR=class extends Go{constructor(n,r,i,o,a,l,c){super();this._workspace=n;this._statelessNextEditProvider=r;this._historyContextProvider=i;this._xtabHistoryTracker=o;this._parseService=a;this._instantiationService=l;this._snippyService=c;this._rejectionCollector=new oj(this._workspace);this._nextEditCache=new aj(this._workspace);this._recentlyShownCache=new fde;this._pendingStatelessNextEditRequest=null;this._lastShownTime=0;this._lastRejectionTime=0;this._lastTriggerTime=0;I0(this,this._workspace.openDocuments,(u,d)=>{d.add(Kre(u.value,p=>{this._cancelPendingRequestDueToDocChange(u.id,p)}))}).recomputeInitiallyAndOnChange(this._store),this._telemetrySender=this._instantiationService.createInstance(uR)}static{s(this,"NextEditProvider")}get lastRejectionTime(){return this._lastRejectionTime}get lastTriggerTime(){return this._lastTriggerTime}_cancelPendingRequestDueToDocChange(n,r){if(this._pendingStatelessNextEditRequest===null)return;let i=this._pendingStatelessNextEditRequest.getActiveDocument();i.id===n&&i.documentAfterEditsNoShortening.value!==r.value&&this._pendingStatelessNextEditRequest.cancellationTokenSource.cancel()}async getNextEdit(n,r,i){this._lastTriggerTime=Date.now();let o=await this._workspace.getDocument(n);if(!o)return{result:void 0};let a=o.value.get(),l=new lj(this._statelessNextEditProvider.ID);l.setOpportunityId(r.requestUuid??u9());let c=this._recentlyShownCache.get(n,a),u=this._nextEditCache.lookupNextEdit(n),d,p,m,h;if(c)d=c[0],h=c[1],p=a,l.setHeaderRequestId(h.headerRequestId),l.setIsFromCache(),await Ay(AQe);else if(u)d=u.edit,h=u.source,p=u.documentBeforeEdit,l.setHeaderRequestId(h.headerRequestId),l.setIsFromCache(),l.setSubsequentEditOrder(u.subsequentN),await Ay(AQe);else{h=new dde,l.setHeaderRequestId(h.headerRequestId);let v=o.value.get();p=v;let b=await this.fetchNextEdit(h,n,l,i),E=v.value!==o.value.get().value;if(b.isError())switch(b.err.kind){case"activeDocumentHasNoEdits":case"noSuggestions":case"gotCancelled":case"filteredOut":case"uncategorized":break;case"fetchFailure":case"unexpected":m=b.err.error;break;default:K8(b.err)}else if(!E){let _=b.val;_.isEmpty()||(d=_.edits[0],(!this._statelessNextEditProvider.dependsOnSelection||_.edits.length>1)&&this._nextEditCache.setNextEdits(n,_,h))}}if(l.markEndTime(),m)throw this._telemetrySender.sendTelemetry(l),m;if(!d)return this._telemetrySender.sendTelemetry(l),new dR(void 0);if(this._rejectionCollector.isRejected(n,d))return l.setWasPreviouslyRejected(),this._telemetrySender.sendTelemetry(l),new dR(void 0);Nl(p!==void 0,"should be defined if edit is defined");let g=this._statelessNextEditProvider.showNextEditPreference??"aroundEdit",y=new dR({edit:d,showRangePreference:g,documentBeforeEdits:p});return this._telemetrySender.scheduleSendingTelemetry(y,l),d.isNeutral()||this._recentlyShownCache.add(n,a,[d,h]),y}async _shortenDocument(n,r){let i=n.lastEdit.getEditedState(),{document:o,clippedRange:a}=r==="noShortening"?this.getProjectedDocumentNoShortening(n.lastEdit):r==="clipping"?this.getProjectedDocumentClipping(n.lastEdit):await this.getProjectedDocumentSummarizedDocument(n.languageId,n.lastEdit),l=ys.fromOffsetEdit(o.edits).inverseOnString(o.originalText),{edits:c,editLast:u}=ude(n.lastEdits.swap(l)),d=c.compose(),p=new X2(new Zm(n.lastEdits.apply(o.originalText)),u.toOffsetEdit().inverse(c.apply(o.text))),m=new Fl(o.text),g=wg.fromEdit(new $c(m,d)).removeCommonSuffixPrefixLines(),y=c.edits.at(-1)?.getNewRanges().at(0),v;y&&(v=new Fl(p.text).getTransformer().getRange(y));let b=n.lastSelection?p.projectOffsetRange(n.lastSelection):void 0,E=this._workspace.getWorkspaceRoot(n.docId),_=s(Q=>{let pe=new wg(new Fl(p.text),Q).toEdit();return yQe(pe,p)},"toEditOnDocumentAfterEditsNoShortening"),k=s(Q=>p.projectBack(Q),"toOffsetOnDocumentAfterEditsNoShortening"),D=s(Q=>p.project(Q),"toProjectedOffset"),N=new YP(n.docId,E,n.languageId,g.base.getLines(),g.edit,v,m,c,i,_,k,D,n.lastEdit.base.getTextLength().lineCount,a,b);return{recentEdit:n.lastEdit,nextEditDoc:N,projectedDocument:p}}async fetchNextEdit(n,r,i,o){let a=await this._historyContextProvider.getHistoryContext(r);if(!a)return Mo.error({kind:"unexpected",error:new Error("DocumentMissingInHistoryContext")});let l=ude(a.getDocumentAndIdx(r)),c=this.getDocumentShorteningStrategy();i.setDocumentShorteningStrategy(c);let u=await Promise.all(a.documents.map(Q=>this._shortenDocument(Q,c))),d=u[l.idx],p=this._xtabHistoryTracker.getHistory(),m=new yH(n.headerRequestId,u.map(Q=>Q.nextEditDoc),l.idx,p,this.nextEditOptions),h=this._findExistingPendingRequest(m),g,y;if(h){g=h,rT&&console.log(`=> reusing an existing request ${g.seqid}`),i.setHeaderRequestId(h.id),i.setIsFromCache(),i.setRequest(g);let Q=this._hookupCancellation(g,o);try{y=await g.result}finally{Q.dispose()}}else{g=m,this._pendingStatelessNextEditRequest&&(this._pendingStatelessNextEditRequest.cancellationTokenSource.cancel(),this._pendingStatelessNextEditRequest=null),this._pendingStatelessNextEditRequest=g;let Q=s(()=>{this._pendingStatelessNextEditRequest===g&&(this._pendingStatelessNextEditRequest=null)},"removeFromPending");i.setRequest(g);let K=this._hookupCancellation(g,o);try{y=await this._statelessNextEditProvider.provideNextEdit(g,g.cancellationTokenSource.token),g.setResult(y)}catch(pe){throw g.setResultError(pe),pe}finally{K.dispose(),Q()}}i.setStatelessNextEditTelemetry(y.telemetry);let v=y.nextEdit;if(v.isError())return v;let b=v.val.edit;if(b.edits.length===0)return Mo.error({kind:"noSuggestions"});let _=new wg(new Fl(d.projectedDocument.text),b).toEdit(),k=yQe(_,d.projectedDocument),D=_.edits.length===k.edits.length?v.val.permutation:void 0,N=k.decompose(D);return Mo.ok(N)}_hookupCancellation(n,r){let i=new wu,o=!1,a=s(()=>{o||(o=!0,n.liveDependentants--)},"removeDependant"),l=i.add(new gH);return i.add(r.onCancellationRequested(()=>{if(a(),n.liveDependentants>0){rT&&console.log(`=> ignoring UI cancellation signal for ${n.seqid} because others depend on this request`);return}if(!n.fetchIssued){rT&&console.log(`=> canceling ${n.seqid} due to UI cancellation signal`),n.cancellationTokenSource.cancel();return}l.setIfNotSet(()=>{if(n.liveDependentants>0){rT&&console.log(`=> ignoring timer cancellation signal for ${n.seqid} because others depend on this request`);return}rT&&console.log(`=> canceling ${n.seqid} due to timer after UI cancellation signal`),n.cancellationTokenSource.cancel()},500)})),i.add(_a(()=>{a()})),n.liveDependentants++,i}_findExistingPendingRequest(n){if(this._statelessNextEditProvider.canReuseResult&&this._pendingStatelessNextEditRequest&&!this._pendingStatelessNextEditRequest.cancellationTokenSource.token.isCancellationRequested&&this._statelessNextEditProvider.canReuseResult(this._pendingStatelessNextEditRequest,n))return this._pendingStatelessNextEditRequest}handleShown(n){this._lastShownTime=Date.now(),this._telemetrySender.markNextEditResultAsShown(n)}handleAcceptance(n,r){this._telemetrySender.sendTelemetryFor(r,"accepted"),this.runSnippy(n,r),this._statelessNextEditProvider.handleAcceptance?.()}handleRejection(n,r){_H(r.result,"@ulugbekna: undefined edit cannot be rejected?"),Date.now()-this._lastShownTime>1e3&&r.result&&(this._recentlyShownCache.remove(r.result.edit),this._rejectionCollector.reject(n,r.result.edit)),this._lastRejectionTime=Date.now(),this._telemetrySender.sendTelemetryFor(r,"rejected")}getProjectedDocumentNoShortening(n){return{document:new X2(new Zm(n.base.value),new Zf([])),clippedRange:new Yt(1,n.base.getTextLength().lineCount+1)}}getProjectedDocumentClipping(n){let r=n.base.getTransformer(),i=r.getRange(n.edit.getRange()??new Rt(0,0)),o=Yt.fromRange(i);function a(p,m){return new Yt(p.startLineNumber-m,p.endLineNumberExclusive+m)}s(a,"extendRange");let l=new Yt(1,r.textLength.lineCount+1),c=ude(l.intersect(a(o,100))),u=Yt.subtract(l,c);return{document:new X2(new Zm(n.base.value),new Zf(u.map(p=>Ka.delete(r.getOffsetRange(new zt(p.startLineNumber,1,p.endLineNumberExclusive,1)))))),clippedRange:c}}getDocumentShorteningStrategy(){return this._statelessNextEditProvider.documentShorteningStrategy??"clipping"}get nextEditOptions(){return new zP("firstByLineNumber",8)}async getProjectedDocumentSummarizedDocument(n,r){let i=await C8t(this._parseService,{getText:s(()=>r.base.value,"getText"),languageId:n});if(!i)return this.getProjectedDocumentClipping(r);let o=new Zm(r.base.value),a=r.edit.edits.at(0)?.range??new Rt(0,0),l;if(r.edit.edits.length!==0){let h=r.edit.edits.at(0),g=r.edit.edits.at(-1);l=o.offsetRangeToRange(new Rt(h.range.start,g.range.endExclusive))}let c=CQe(o.offsetRangeToRange(a)),u=NH(200*50,{costFnOverride:s((h,g,y)=>{let v=CQe(y.offsetRangeToRange(h.range)),b=y8t(c,v);return b>100?!1:b},"costFnOverride")},[{overlayNodeRoot:i,document:o,selection:l}])[0],d=u.projectBack(1)-1,p=r.base.getTransformer().getPosition(d).lineNumber,m=new Yt(p,p+u.lineCount);return{document:u,clippedRange:m}}async runSnippy(n,r){r.result!==void 0&&this._snippyService.handlePostInsertion(n.toUri(),r.result.documentBeforeEdits,r.result.edit)}};fR=mu([Gs(4,yy),Gs(5,iA),Gs(6,tj)],fR);function yQe(t,e){let n=e.projectBackOffsetEdit(t.toOffsetEdit());return ys.fromOffsetEdit(n)}s(yQe,"projectBackEdit");function CQe(t){return new Yt(t.start.line+1,t.end.line+1)}s(CQe,"lineRangeFromVSCodeRange");function y8t(t,e){return t.endLineNumberExclusive<=e.startLineNumber?e.startLineNumber-t.endLineNumberExclusive:e.endLineNumberExclusive<=t.startLineNumber?t.startLineNumber-e.endLineNumberExclusive:0}s(y8t,"lineRangeDist");async function C8t(t,e){return await t.getTreeSitterAST(e)?.getStructure()}s(C8t,"getStructure");function ude(t){if(!t)throw new Cr("expected value to be defined, but it was not");return t}s(ude,"assertDefined");var dde=class{constructor(){this.headerRequestId=u9()}static{s(this,"NextEditFetchRequest")}},fde=class{constructor(){this._cache=new pO(10)}static{s(this,"RecentlyShownCache")}add(e,n,r){let i=this._key(e,n);this._cache.set(i,r)}get(e,n){let r=this._key(e,n);return this._cache.get(r)}remove(e){for(let n of this._cache)if(n[1][0]===e){this._cache.delete(n[0]);break}}_key(e,n){return e.uri+";"+n.value}};f();f();f();f();var iT=0;function cj(t){return t===0}s(cj,"lengthIsZero");var H0=2**26;function pR(t,e){return t*H0+e}s(pR,"toLength");function vy(t){let e=t,n=Math.floor(e/H0),r=e-n*H0;return new Ll(n,r)}s(vy,"lengthToObj");function p9(t,e){let n=t+e;return e>=H0&&(n=n-t%H0),n}s(p9,"lengthAdd");function xQe(t,e){return t.reduce((n,r)=>p9(n,e(r)),iT)}s(xQe,"sumLengths");function pde(t,e){return t===e}s(pde,"lengthEquals");function m9(t,e){let n=t,r=e;if(r-n<=0)return iT;let o=Math.floor(n/H0),a=Math.floor(r/H0),l=r-a*H0;if(o===a){let c=n-o*H0;return pR(0,l-c)}else return pR(a-o,l)}s(m9,"lengthDiffNonNegative");function vQe(t,e){let n=t,r=Math.floor(n/H0),i=n-r*H0,o=e,a=Math.floor(o/H0),l=o-a*H0;return new zt(r+1,i+1,a+1,l+1)}s(vQe,"lengthsToRange");f();var mR=class{constructor(e,n,r){this.startOffset=e;this.endOffset=n;this.newLength=r}static{s(this,"TextEditInfo")}toString(){return`[${vy(this.startOffset)}...${vy(this.endOffset)}) -> ${vy(this.newLength)}`}};function EQe(t,e){if(t.length===0)return e;if(e.length===0)return t;let n=new dO(bQe(t)),r=bQe(e);r.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let i=n.dequeue();function o(u){if(u===void 0){let p=n.takeWhile(m=>!0)||[];return i&&p.unshift(i),p}let d=[];for(;i&&!cj(u);){let[p,m]=i.splitAt(u);d.push(p),u=m9(p.lengthAfter,u),i=m??n.dequeue()}return cj(u)||d.push(new h9(!1,u,u)),d}s(o,"nextS0ToS1MapWithS1LengthOf");let a=[];function l(u,d,p){if(a.length>0&&pde(a[a.length-1].endOffset,u)){let m=a[a.length-1];a[a.length-1]=new mR(m.startOffset,d,p9(m.newLength,p))}else a.push({startOffset:u,endOffset:d,newLength:p})}s(l,"pushEdit");let c=iT;for(let u of r){let d=o(u.lengthBefore);if(u.modified){let p=xQe(d,h=>h.lengthBefore),m=p9(c,p);l(c,m,u.lengthAfter),c=m}else for(let p of d){let m=c;c=p9(c,p.lengthBefore),p.modified&&l(m,c,p.lengthAfter)}}return a}s(EQe,"combineTextEditInfos");var h9=class t{constructor(e,n,r){this.modified=e;this.lengthBefore=n;this.lengthAfter=r}static{s(this,"LengthMapping")}splitAt(e){let n=m9(e,this.lengthAfter);return pde(n,iT)?[this,void 0]:this.modified?[new t(this.modified,this.lengthBefore,e),new t(this.modified,iT,n)]:[new t(this.modified,e,e),new t(this.modified,n,n)]}toString(){return`${this.modified?"M":"U"}:${vy(this.lengthBefore)} -> ${vy(this.lengthAfter)}`}};function bQe(t){let e=[],n=iT;for(let r of t){let i=m9(n,r.startOffset);cj(i)||e.push(new h9(!1,i,i));let o=m9(r.startOffset,r.endOffset);e.push(new h9(!0,o,r.newLength)),n=r.endOffset}return e}s(bQe,"toLengthMapping");var g9=class t{constructor(e){this.edits=e}static{s(this,"TextLengthEdit")}static{this.empty=new t([])}static fromTextEdit(e){let n=e.edits.map(r=>new uj(r.range,Ll.ofText(r.newText)));return new t(n)}static _fromTextEditInfo(e){let n=e.map(r=>{let i=vy(r.newLength);return new uj(vQe(r.startOffset,r.endOffset),new Ll(i.lineCount,i.columnCount))});return new t(n)}_toTextEditInfo(){return this.edits.map(e=>new mR(pR(e.range.startLineNumber-1,e.range.startColumn-1),pR(e.range.endLineNumber-1,e.range.endColumn-1),pR(e.newLength.lineCount,e.newLength.columnCount)))}compose(e){let n=this._toTextEditInfo(),r=e._toTextEditInfo(),i=EQe(n,r);return t._fromTextEditInfo(i)}getRange(){if(this.edits.length!==0)return zt.fromPositions(this.edits[0].range.getStartPosition(),this.edits.at(-1).range.getEndPosition())}toString(){return`[${this.edits.join(", ")}]`}},uj=class{constructor(e,n){this.range=e;this.newLength=n}static{s(this,"SingleTextEditLength")}toString(){return`{ range: ${this.range}, newLength: ${this.newLength} }`}};f();var dj=class{constructor(e){this.documents=e;Nl(e.length>0)}static{s(this,"HistoryContext")}getMostRecentDocument(){return this.documents.at(-1)}getDocument(e){return this.documents.find(n=>n.docId===e)}getDocumentAndIdx(e){let n=this.documents.findIndex(r=>r.docId.uri===e.uri);if(n!==-1)return{doc:this.documents[n],idx:n}}},fj=class{constructor(e,n,r,i,o){this.docId=e;this.languageId=n;this.base=r;this.lastEdits=i;this.lastSelection=o;this.lastEdit=new $c(this.base,this.lastEdits.compose())}static{s(this,"DocumentHistory")}};f();var pj=class extends Go{constructor(){super();this.branch=wm("branchName",void 0);this._register(zre((n,r)=>{this.init(r)}))}static{s(this,"ObservableGitStub")}async init(n){}};var hj=class extends Go{constructor(n,r=!1){super();this._documentState=new Map;this._lastDocuments=new hde(50);this.workspace=n,this._lastGitCheckout=void 0,this._started=!1,r||this.start()}static{s(this,"NesHistoryContextProvider")}start(){if(this._started)return;this._started=!0;let n=new pj;this._register(JI(r=>{r.readObservable(n.branch)!==void 0&&(this._lastGitCheckout=g5(),this._documentState.forEach(o=>o.applyAllEdits()))})),I0(this,this.workspace.openDocuments,(r,i)=>{let o=r.selection.get().at(0),a=new mde(r.id,r.value.get().value,r.languageId.get(),o);this._documentState.set(a.docId,a),o&&this._lastDocuments.push(a),i.add(Eg(this,{value:r.value,selection:r.selection,languageId:r.languageId},l=>{l.languageId.changes.length>0&&(a.languageId=l.languageId.value);let c=this._isAwaitingGitCheckoutCooldown();for(let u of l.value.changes)this._lastDocuments.push(a),a.handleEdit(u,c);l.selection.changes.length>0&&(a.handleSelection(l.selection.value.at(0)),this._lastDocuments.push(a))})),i.add(_a(()=>{let l=this._documentState.get(r.id);l&&this._lastDocuments.remove(l),this._documentState.delete(r.id)}))},r=>r.id).recomputeInitiallyAndOnChange(this._store)}async getHistoryContext(n,r=5,i=100){let o=this._documentState.get(n);if(!o||!this._lastDocuments.has(o)||!await this.workspace.getDocument(n))return;let a=[],l=!1;for(let c of this._lastDocuments.getItemsReversed()){let u=c.getRecentEdit(r,i);if(u!==void 0){if(u.editCount===0&&l)break;if(await this.workspace.getDocument(c.docId)&&(c.docId===n&&(l=!0),a.push(u.history),r-=u.editCount,r<=0))break}}if(a.reverse(),!!a.some(c=>c.docId===n))return new dj(a)}_isAwaitingGitCheckoutCooldown(){if(!this._lastGitCheckout)return!1;let n=g5()-this._lastGitCheckout<2*1e3;return n||(this._lastGitCheckout=void 0),n}getRecentDocumentUris(){return this._lastDocuments.getItems().map(n=>n.docId.uri)}},mde=class t{constructor(e,n,r,i){this.docId=e;this.languageId=r;this._edits=[];this._isUserDocument=!1;this._baseValue=new Fl(n),this._currentValue=this._baseValue,this.handleSelection(i)}static{s(this,"DocumentState")}static{this.MAX_EDITED_LINES_PER_EDIT=10}static{this.MAX_EDITED_CHARS_PER_EDIT=5e3}getSelection(){return this._selection}handleSelection(e){e&&(this._isUserDocument=!0),this._selection=e}handleEdit(e,n){if(e.isEmpty())return;this._currentValue=this._currentValue.apply(e);let r=A5.fromEdit(e,this._currentValue),i=g9.fromTextEdit(r);if(n){this._baseValue=this._currentValue,this._edits=[];return}function o(l){return mj(l.edits,c=>c.newText.length)}s(o,"editInsertSize");let a=this._edits.at(-1);a&&o(a.edit)<200&&x8t(e,a.edit)?(a.edit=a.edit.compose(e),a.textLengthEdit=a.textLengthEdit.compose(i),a.instant=g5(),a.edit.isEmpty()&&this._edits.pop()):this._edits.push({edit:e,textLengthEdit:i,instant:g5()})}getRecentEdit(e,n){if(!this._isUserDocument)return;let{editCount:r}=this._applyStaleEdits(e,n),i=new _g(this._edits.map(o=>o.edit));return{history:new fj(this.docId,this.languageId,this._baseValue,i,this._selection),editCount:r}}applyAllEdits(){this._baseValue=this._currentValue,this._edits=[]}_applyStaleEdits(e,n){let r=this._currentValue,i=ys.empty,o=g9.empty,a,l=0,c=ys.empty;for(a=this._edits.length-1;a>=0;a--){let u=this._edits[a];if(g5()-u.instant>10*60*1e3)break;let d=u.textLengthEdit.compose(o),p=d.getRange();_H(p,"we only compose non-empty Edits");let m=p.endLineNumber-p.startLineNumber;if(n>0&&m>n)break;let h=mj(u.textLengthEdit.edits,D=>D.range.endLineNumber-D.range.startLineNumber+D.newLength.lineCount);if(h>t.MAX_EDITED_LINES_PER_EDIT||mj(u.edit.edits,D=>D.newText.length)>t.MAX_EDITED_CHARS_PER_EDIT||mj(u.edit.edits,D=>D.range.length)>t.MAX_EDITED_CHARS_PER_EDIT)break;if(a===this._edits.length-1)c=u.edit;else{let D=ys.trySwap(u.edit,c);if(D)c=D.e1;else{if(h>=2)break;c=u.edit.compose(c)}}let v=u.edit.inverseOnString(r.value);r=r.apply(v);let b=u.edit.compose(i),E=Po.fromEdit(new $c(r,b)),k=new wg(r,E).removeCommonSuffixPrefixLines().edit.edits.length;if(k>e)break;l=k,i=b,o=d}for(let u=0;u<=a;u++){let d=this._edits[u];this._baseValue=this._baseValue.apply(d.edit)}return this._edits=this._edits.slice(a+1),{editCount:l}}toString(){return new _g(this._edits.map(e=>e.edit)).toHumanReadablePatch(this._baseValue)}};function mj(t,e){let n=0;for(let r of t)n+=e(r);return n}s(mj,"sum");function x8t(t,e){let n=e.getNewRanges();return t.edits.every(r=>v8t(r.range,n))}s(x8t,"editExtends");function v8t(t,e){return e.some(n=>t.start===n.endExclusive||t.endExclusive===n.start)}s(v8t,"doesTouch");var hde=class{constructor(e){this.maxSize=e;this._arr=[]}static{s(this,"FifoSet")}push(e){let n=this._arr.indexOf(e);n!==-1?this._arr.splice(n,1):this._arr.length>=this.maxSize&&this._arr.shift(),this._arr.push(e)}remove(e){let n=this._arr.indexOf(e);n!==-1&&this._arr.splice(n,1)}getItems(){return this._arr}getItemsReversed(){let e=[...this._arr];return e.reverse(),e}has(e){return this._arr.indexOf(e)!==-1}};var IQe=10,eh=class{constructor(e){this.lastResultsById=new Jn(IQe);this.lastResultsByUri=new Jn(IQe);this.ctx=e}static{s(this,"NextEditSuggestionsManager")}async handleNextEditRequest(e,n,r){let i=await(this.nextEditProvider??=this.createNextEditProvider()),o=this.lastResultsByUri.get(e);o&&(this.lastResultsByUri.delete(e),this.lastResultsById.delete(o.resultId),o.isShown&&i.handleRejection(o.documentId,o.nextEditResult));let a=Sm.create(e),l=await i.getNextEdit(a,{triggerKind:1},r);if(l.result==null)return;let c=await this.ctx.get(kn).getTextDocument({uri:e});if(!c)return;let u=c.positionAt(l.result.edit.range.start),d=c.positionAt(l.result.edit.range.endExclusive),p=an(),m={resultId:p,nextEditResult:l,documentId:a,isShown:!1};return this.lastResultsById.set(p,m),this.lastResultsByUri.set(e,m),[{edit:{text:l.result?.edit.newText??"",range:{start:u,end:d},textDocument:{uri:e,version:n}},id:p}]}async handleAcceptance(e){let n=await this.nextEditProvider,r=this.lastResultsById.get(e);!n||!r||r.resultId===e&&(this.lastResultsByUri.delete(r.documentId.uri),this.lastResultsById.delete(r.resultId),await n.handleAcceptance(r.documentId,r.nextEditResult))}async handleShown(e){let n=await this.nextEditProvider,r=this.lastResultsById.get(e);!n||!r||r.resultId===e&&(r.isShown=!0,n.handleShown(r.nextEditResult))}async createNextEditProvider(){let e=await gQe(this.ctx),n;try{let o=await this.ctx.get(Bt).updateExPValuesAndAssignments(),a=b8t(this.ctx,o);n=e.createInstance(a?oA:xy)}catch{n=e.createInstance(xy)}let r=this.ctx.get(Ig),i=new hj(r);return e.createInstance(fR,r,n,i,new $H(r))}};function b8t(t,e){let n=sr(t,ft.NESXTab);return n!==void 0?n:t.get(Bt).enableNESXTab(e)}s(b8t,"shouldUseXTab");f();var Cb=require("fs"),TQe=require("os"),wQe=Ve(require("path")),hR=require("process");var Cc=class{static{s(this,"PersistenceManager")}},gde=class extends Cc{constructor(n){super();this.directory=n}static{s(this,"FilePersistenceManager")}async read(n,r){try{return(await this.readJsonObject(n))[r]}catch{return}}async update(n,r,i){await Cb.promises.mkdir(this.directory,{recursive:!0,mode:448});let o=`${this.directory}/${n}.json`,a=await this.readJsonObject(n);a[r]=i,await Cb.promises.writeFile(o,JSON.stringify(a)+`
972
972
  `,{encoding:"utf8"})}async delete(n,r){let i=`${this.directory}/${n}.json`;try{let o=await this.readJsonObject(n);delete o[r];let a=JSON.stringify(o)+`
973
973
  `;a===`{}
974
974
  `?await Cb.promises.rm(i):await Cb.promises.writeFile(i,a,{encoding:"utf8"})}catch{}}async deleteSetting(n){let r=`${this.directory}/${n}.json`;try{await Cb.promises.rm(r)}catch{}}async listSettings(){try{return(await Cb.promises.readdir(this.directory)).filter(r=>r.endsWith(".json")).map(r=>r.slice(0,-5))}catch{return[]}}async listKeys(n){return Object.keys(await this.readJsonObject(n))}async readJsonObject(n){let r=`${this.directory}/${n}.json`;try{let i=await Cb.promises.readFile(r,{encoding:"utf8"});return JSON.parse(i)}catch{return{}}}};function E8t(){return hR.env.XDG_CONFIG_HOME&&wQe.isAbsolute(hR.env.XDG_CONFIG_HOME)?hR.env.XDG_CONFIG_HOME+"/github-copilot":(0,TQe.platform)()==="win32"?hR.env.USERPROFILE+"\\AppData\\Local\\github-copilot":hR.env.HOME+"/.config/github-copilot"}s(E8t,"getXdgConfigPath");function _Qe(){return new gde(E8t())}s(_Qe,"makeXdgPersistenceManager");f();var SQe=require("crypto"),cA=Ve(require("fs/promises")),RQe=require("os"),by=Ve(require("path"));var Ey=class{constructor(e){this.ctx=e;this.logger=new _t("ripgrep")}static{s(this,"RipgrepPathResolver")}async resolvePath(){if(this.rgPath)return this.rgPath;let e=process.platform,n=process.arch;return this.rgPath=await this.resolvePathByOs(e,n),this.rgPath}async resolvePathByOs(e,n){if(this.logger.debug(this.ctx,`Start resolving ripgrep path for platform: ${e} and architecture: ${n}`),n!=="arm64"&&n!=="x64")throw new Error(`Unsupported architecture: ${n}`);let r=e==="win32"?"rg.exe":"rg";this.logger.debug(this.ctx,`__filename is ${__filename}, __dirname is ${__dirname}`);let i=by.extname(__filename)===".ts"?by.resolve(__dirname,"../../../packages/ripgrep/bin"):by.resolve(__dirname,"./bin"),o=by.resolve(i,e,n,r);if("pkg"in process){this.logger.debug(this.ctx,"Running inside pkg binary, start to copy ripgrep to a temporary location");let a=await cA.readFile(o),l=(0,SQe.createHash)("sha256").update(a).digest("hex"),c=by.join((0,RQe.homedir)(),".cache/pkg",l);await cA.mkdir(c,{recursive:!0});let u=Ti(cl(o)),d=by.join(c,u);try{await cA.stat(d)}catch{await cA.copyFile(o,d),this.logger.debug(this.ctx,`Copied ripgrep to ${d}`)}o=d,e!=="win32"&&await cA.chmod(o,493).catch(p=>{this.logger.error(this.ctx,`Failed to set executable permission for ${o}: ${p}`)})}return o}};f();var kQe=require("child_process"),Ade=require("perf_hooks");var Iy=new _t("ripgrepProcessManager"),th=class{constructor(e,n,r){this.ctx=e;this.defaultTimeoutInMs=30*1e3;this.maxProcesses=4;this.maxPendingTasks=20;this.taskQueue=[];this.activeProcesses=new Set;this.maxProcesses=n??this.maxProcesses,this.maxPendingTasks=r??this.maxPendingTasks,Iy.debug(this.ctx,`initialized with maxProcesses: ${this.maxProcesses} and maxPendingTasks: ${this.maxPendingTasks}`)}static{s(this,"RipgrepProcessManager")}dispose(){Iy.debug(this.ctx,`Disposing ripgrep process manager with ${this.activeProcesses.size} active processes`),this.activeProcesses.forEach(e=>{if(!e.killed)try{e.kill()}catch(n){Iy.error(this.ctx,"Failed to kill process. ",n)}}),this.activeProcesses.clear()}execute(e,n,r,i,o){return new Promise((a,l)=>{if(this.taskQueue.length>=this.maxPendingTasks){Iy.error(this.ctx,`Task queue limit reached: ${this.maxPendingTasks}`),l(new Error(`Task queue limit of ${this.maxPendingTasks} reached`));return}if(o!==void 0&&o<=0){Iy.error(this.ctx,`Invalid timeout value: ${o}`),l(new Error(`Invalid timeout value: ${o}`));return}Iy.debug(this.ctx,`Adding task to queue: ${e} ${n.join(" ")}`),this.taskQueue.push({id:DG(),command:e,args:n,options:i,resolve:a,reject:l,timeoutInMs:o??this.defaultTimeoutInMs,token:r});let c=this.taskQueue.map(u=>this.getTaskSimpleInfo(u)).join(`