@github/copilot-language-server 1.532.1 → 1.532.2
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 +2 -2
- package/package.json +8 -8
package/dist/main.js
CHANGED
|
@@ -1944,7 +1944,7 @@ ${r}+- `:"";return e+this.description+o}}},T0=class{constructor(e,r,n,o){this.la
|
|
|
1944
1944
|
(using_declaration)
|
|
1945
1945
|
(alias_declaration)
|
|
1946
1946
|
(static_assert_declaration)
|
|
1947
|
-
] @statement`}};var zO=class{constructor(e,r,n){this.languageId=e;this.prefix=r;this.completion=n}static{a(this,"BlockTrimmer")}static isSupported(e){return T0.isSupported(e)}static isTrimmedByDefault(e){return T0.isTrimmedByDefault(e)}async withParsedStatementTree(e){var n=[];try{let r=sNt(n,T0.create(this.languageId,this.prefix+this.completion,this.prefix.length,this.prefix.length+this.completion.length));await r.build();return await e(r)}catch(o){var s=o,c=!0}finally{aNt(n,s,c)}}trimmedCompletion(e){return e===void 0?this.completion:this.completion.substring(0,e)}getStatementAtCursor(e){return e.statementAt(Math.max(this.prefix.length-1,0))??e.statements[0]}getContainingBlockOffset(e){let r;if(e&&this.isCompoundStatement(e))r=e;else if(e){let n=e.parent;for(;n&&!this.isCompoundStatement(n);)n=n.parent;r=n}if(r){let n=this.asCompletionOffset(r.node.endIndex);if(n&&this.completion.substring(n).trim()!=="")return n}}hasNonStatementContentAfter(e){if(!e||!e.nextSibling)return!1;let r=this.asCompletionOffset(e.node.endIndex),n=this.asCompletionOffset(e.nextSibling.node.startIndex);return this.completion.substring(Math.max(0,r??0),Math.max(0,n??0)).trim()!==""}asCompletionOffset(e){return e===void 0?void 0:e-this.prefix.length}isCompoundStatement(e){return e.isCompoundStatementType||e.children.length>0}};var Sze=class extends zO{constructor(r,n,o,s=3,c=7){super(r,n,o);this.lineLimit=s;this.lookAhead=c;let l=[...this.completion.matchAll(/\n/g)],u=this.lineLimit+this.lookAhead;l.length>=this.lineLimit&&this.lineLimit>0&&(this.limitOffset=l[this.lineLimit-1].index),l.length>=u&&u>0&&(this.lookAheadOffset=l[u-1].index)}static{a(this,"TerseBlockTrimmer")}async getCompletionTrimOffset(){return await this.withParsedStatementTree(r=>{let n=r.statementAt(this.stmtStartPos()),o=this.getContainingBlockOffset(n);return o=this.trimAtFirstBlankLine(o),n&&(o=this.trimAtStatementChange(n,o)),this.limitOffset&&this.lookAheadOffset&&(o===void 0||o>this.lookAheadOffset)?this.limitOffset:o})}stmtStartPos(){let r=this.completion.match(/\S/);return r&&r.index!==void 0?this.prefix.length+r.index:Math.max(this.prefix.length-1,0)}trimAtFirstBlankLine(r){let n=[...this.trimmedCompletion(r).matchAll(/\r?\n\s*\r?\n/g)];for(;n.length>0&&(r===void 0||r>n[0].index);){let o=n.shift();if(this.completion.substring(0,o.index).trim()!=="")return o.index}return r}trimAtStatementChange(r,n){let o=this.prefix.length,s=this.prefix.length+(n??this.completion.length);if(r.node.endIndex>o&&this.isCompoundStatement(r))return r.nextSibling&&r.node.endIndex<s?this.asCompletionOffset(r.node.endIndex):n;let c=r,l=r.nextSibling;for(;l&&l.node.endIndex<=s&&!this.hasNonStatementContentAfter(c)&&!this.isCompoundStatement(l);)c=l,l=l.nextSibling;return l&&c.node.endIndex>o&&c.node.endIndex<s?this.asCompletionOffset(c.node.endIndex):n}};async function m0n(t,e){var l=[];try{let r=t.getText();let n=t.offsetAt(e);let o=sNt(l,T0.create(t.detectedLanguageId,r,0,r.length));await o.build();let s=o.statementAt(n);if(!s)return"non-block";if(!s.isCompoundStatementType&&s.children.length===0)return s.parent&&!s.nextSibling&&s.node.endPosition.row<=e.line?"block-end":s.parent?"mid-block":"non-block";if(s.children.length===0)return"empty-block";let c=s.children[s.children.length-1];if(n<c.node.startIndex)return"mid-block";return"block-end"}catch(u){var d=u,f=!0}finally{aNt(l,d,f)}}a(m0n,"getBlockPositionType");p();function mQo(t){return t.HTTPS_PROXY||t.https_proxy||t.HTTP_PROXY||t.http_proxy}a(mQo,"getProxyFromEnvironment");function gQo(t){return t.NODE_TLS_REJECT_UNAUTHORIZED!=="0"}a(gQo,"getRejectUnauthorizedFromEnvironment");var g0n=b.Object({proxy:b.Optional(b.String()),proxyStrictSSL:b.Optional(b.Boolean()),proxyAuthorization:b.Optional(b.String()),proxyKerberosServicePrincipal:b.Optional(b.String()),noProxy:b.Optional(b.Array(b.String()))});function A0n(t){let e=mQo(t),r=swe({proxy:e,proxyStrictSSL:gQo(t)}),n=t.GH_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.GITHUB_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.AGENT_KERBEROS_SERVICE_PRINCIPAL;return n&&(r.proxyKerberosServicePrincipal=n),r}a(A0n,"getHttpSettingsFromEnvironment");function swe(t){if(!t.proxy)return{...t,proxy:""};try{let{protocol:e,host:r,username:n,password:o,pathname:s,search:c,hash:l}=new URL(t.proxy);return{...t,proxy:`${e}//${r}${s}${c}${l}`,proxyAuthorization:t.proxyAuthorization||AQo(n,o),noProxy:t.noProxy||[]}}catch{return{...t,proxy:""}}}a(swe,"normalizeHttpSettings");function AQo(t,e){return!t||!e?"":`${decodeURIComponent(t)}:${decodeURIComponent(e)}`}a(AQo,"getAuth");var awe={};Bi(awe,{anthropicClaude:()=>TQo,build:()=>CQo,buildType:()=>bQo,default:()=>PQo,dependencies:()=>wQo,description:()=>_Qo,devDependencies:()=>xQo,displayName:()=>EQo,engines:()=>SQo,name:()=>yQo,overrides:()=>RQo,overridesComments:()=>kQo,scripts:()=>IQo,version:()=>vQo});var yQo="copilot",EQo="GitHub Copilot",_Qo="Your AI pair programmer",vQo="1.532.1",CQo="96",bQo="prod",SQo={node:">=22.13.0",npm:">=11.6.0 <12.0.0"},TQo={cliPackageVersion:"2.1.159"},IQo={build:"tsx esbuild.ts",clean:"./script/build/clean.sh",compress:"tsx ./script/compressTokenizer.ts",generate_languages:"tsx script/generateLanguages.ts && prettier --write lib/src/language/generatedLanguages.ts",get_token:"tsx script/deviceFlow.ts --save-as-test-token",lint:'run-p --aggregate-output "lint:*"',"lint:deps":"depcruise -c .dependency-cruiser.js .","lint:eslint":"eslint -f visualstudio --quiet --cache .","lint:gdpr":"tsx script/checkGdprComments.ts","lint:overrides":"tsx script/checkOverridesDocumented.ts","lint:prettier":"prettier --check . 2>&1","lint:types":"tsc --noEmit",inspect_auth_db:"tsx script/inspectAuthDb.ts",prebuild:"npm install",pretest:"npm run build","pretest:headless":"npm run build","pretest:agent-e2e":"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: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:agent-e2e":'mocha "agent/e2e/**/*.test.{ts,tsx}"',"test:lib":'mocha "lib/src/**/*.test.{ts,tsx}" "script/**/*.test.{ts,tsx}" --exclude "lib/src/**/*.int.test.ts"',"test:lib-int":'mocha "lib/src/**/*.int.test.ts"',"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:pkg-runtime":"tsx script/smokeCopilotRuntimePkg.ts","test:prompt":'mocha "prompt/test/**/*.test.{ts,tsx}"',"test:prepare-msbench":"tsx script/setupMsbench.ts","test:run-msbench":"tsx lsp-client/test/msbench/agent/index.ts",watch:'run-p "watch:esbuild --ignore-scripts" "watch:types -- --preserveWatchOutput"',"watch:esbuild":"tsx esbuild.ts --watch","watch:types":"tsc --noEmit --watch"},xQo={"@azure/identity":"^4.13.1","@azure/keyvault-secrets":"^4.11.2","@github/prettier-config":"0.0.6","@limegrass/eslint-plugin-import-alias":"^1.6.1","@types/crypto-js":"^4.2.2","@types/diff":"^8.0.0","@types/git-url-parse":"^16.0.2","@types/js-yaml":"^4.0.6","@types/kerberos":"^1.1.2","@types/markdown-it":"^14.1.2","@types/mocha":"^10.0.10","@types/node":"~22.13.0","@types/semver":"^7.7.1","@types/sinon":"^22.0.0","@types/toposort":"^2.0.7","@types/vscode":"1.125.0","@types/which":"^3.0.0","@types/yargs":"^17.0.35","@vscode/tree-sitter-wasm":"0.0.5-php.2","@yao-pkg/pkg":"^6.22.0",boxen:"^8.0.1",chalk:"^5.6.2","dependency-cruiser":"^18.1.1",esbuild:"^0.28.1","esbuild-plugin-copy":"^2.1.1",eslint:"^9.39.5","eslint-formatter-visualstudio":"^9.0.1","eslint-plugin-mocha":"^10.5.0",globals:"^17.9.0","js-yaml":"^4.2.0",mocha:"^11.7.6","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","npm-run-all":"^4.1.5",openai:"^7.3.0",prettier:"^3.5.3","prettier-plugin-organize-imports":"^4.2.0","simple-git":"^3.36.0",sinon:"^22.1.0","tree-sitter-bash":"^0.23.0","tree-sitter-powershell":"0.25.9","ts-dedent":"^2.3.0",tsx:"^4.23.4",typescript:"^5.9.3","typescript-eslint":"^8.39.1","vscode-dts":"^0.3.3"},wQo={"@adobe/helix-fetch":"github:devm33/helix-fetch#2a08fa939591a0e14f34f611adcc3ed767579e9a","@agentclientprotocol/sdk":"^0.22.1","@anthropic-ai/claude-agent-sdk":"0.3.159","@anthropic-ai/sdk":"^0.98.0","@github/copilot":"1.0.78","@github/copilot-sdk":"1.0.9","@github/keytar":"7.10.6","@github/memoize":"1.1.5","@microsoft/1ds-core-js":"^4.3.10","@microsoft/1ds-post-js":"^4.3.10","@microsoft/applicationinsights-web-basic":"^3.3.11","@microsoft/mxc-sdk":"0.7.0","@modelcontextprotocol/sdk":"^1.29.0","@octokit/graphql":"^9.0.4","@octokit/rest":"^22.0.1","@parcel/watcher":"^2.6.0","@sinclair/typebox":"^0.34.52","@vscode/chat-lib":"0.60.0","@vscode/codicons":"^0.0.45","@vscode/deviceid":"github:ghc-jetbrains/vscode-deviceid#f0e5738cd362ef20a09aeb30c3a8be99a9a710f5","@vscode/policy-watcher":"^1.4.0","@vscode/prompt-tsx":"^0.4.0-alpha.9","@vscode/webview-ui-toolkit":"^1.3.1","crypto-js":"^4.2.0",diff:"^9.0.0",dldr:"^0.0.10",events:"^3.3.0","git-url-parse":"^16.1.0",glob:"^11.1.0","jsonc-parser":"^3.3.1",kerberos:"^2.2.0","mac-ca":"^3.1.3","markdown-it":"^15.0.0",minimatch:"^10.2.6",open:"^10.2.0",semver:"^7.8.5",shiki:"~1.15.0","source-map-support":"^0.5.21",toposort:"^2.0.2",undici:"^7.29.0",uuid:"^14.0.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.23.0",which:"^7.0.0","windows-ca-certs":"^0.2.2",ws:"^8.21.1",yargs:"^18.1.0"},RQo={fsevents:"<0","@github/copilot-linuxmusl-arm64":"<0","@github/copilot-linuxmusl-x64":"<0",bindings:"npm:bundled-bindings@^1.5.0",jws:"^3.2.3",tar:"7.5.21","serialize-javascript":"^7.0.5",uuid:"^14.0.0","ip-address":"^10.1.1","fast-uri":"^3.1.5"},kQo={"//":"Rationale for each entry in `overrides`. Required by `npm run lint:overrides` (script/checkOverridesDocumented.ts). Each value should cover: why (CVE/GHSA or build-hack reason), which direct dep pulls in the vulnerable transitive, and the remove-when condition.",fsevents:"Build hack: macOS-only optional native dep; '<0' is an impossible semver that force-skips install on Linux/Windows pkg builds. Permanent \u2014 keep until @yao-pkg/pkg handles macOS-only optionalDependencies natively. See commit d635096c.","@github/copilot-linuxmusl-arm64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.","@github/copilot-linuxmusl-x64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.",bindings:"Build hack: alias to bundled-bindings fork that resolves .node native addon paths after pkg/esbuild bundling. Required by kerberos. Drop when upstream `bindings` adopts platform-specific path resolution. See commits c4461665 and b55ece83.",jws:"CVE GHSA-869p-cjfg-cm3x (Improperly Verifies HMAC Signature). Pulled in by jsonwebtoken-family deps. Drop when all transitive consumers pin jws >= 3.2.3. See commit 2b5dc766.",tar:"CVE GHSA-9ppj-qmqm-q256 + GHSA-qffp-2rhf-9h96 (Symlink/Hardlink Path Traversal via Drive-Relative Linkpath), plus the 7.5.12..7.5.20 advisory run: GHSA-23hp-3jrh-7fpw / CVE-2026-59873 (critical, decompression DoS via unlimited input), GHSA-8x88-c5mf-7j5w / CVE-2026-59874 (infinite loop on negative entry size), GHSA-w8wr-v893-vjvp / CVE-2026-59871 (PAX numeric path type confusion), GHSA-gvwx-54wh-qm9j / CVE-2026-59875 (NUL byte in PAX path records), GHSA-vmf3-w455-68vh / CVE-2026-53655 (GNU long-name PAX size override file smuggling), GHSA-r292-9mhp-454m (uncontrolled recursion in mapHas/filesFilter). Pulled in by @yao-pkg/pkg (tar ^7.5.7) and node-gyp / native-build deps. Drop when transitive consumers bump tar >= 7.5.21. Dependabot alerts #170, #169, #179, #171, #168, #146. See commit e2dff0f3.","serialize-javascript":"CVE GHSA-5c6j-r48x-rmvq (RCE via RegExp.flags / Date.toISOString) + GHSA-qj8w-gfj5-8c6v (ReDoS). Pulled in by mocha 11.x (^6.0.2). Dev-only. Drop when mocha bumps to a release that carries serialize-javascript >= 7.0.3. See commit d49f75fd.",uuid:"CVE GHSA-w5hq-g745-h8pq (missing buffer bounds checks in v3/v5/v6). Pulled in by msal-node and @vscode/deviceid as uuid 8.x/9.x. Drop when both upgrade to uuid >= 14. Dependabot alert #128. See commit 6315f3f8.","ip-address":"CVE GHSA-v2v4-37r5-5v8g (XSS in Address6 HTML-emitting methods: group/link/spanAll and AddressError.parseMessage). Pulled in by @modelcontextprotocol/sdk -> express-rate-limit. Not exploitable here (we don't render HTML or call the affected methods), but the override clears the alert. Drop when express-rate-limit bumps to a release carrying ip-address >= 10.1.1. Dependabot alert #129. See PR #854.","fast-uri":"CVE-2026-6321 GHSA-q3j6-qgpj-74h6 (host confusion via percent-encoded authority delimiters) + CVE-2026-6322 GHSA-v39h-62p7-jpjc (path traversal via percent-encoded dot segments). Pulled in by @modelcontextprotocol/sdk -> ajv -> fast-uri. Drop when ajv bumps to a release carrying fast-uri >= 3.1.2. Dependabot alerts #132, #133."},PQo={name:yQo,displayName:EQo,description:_Qo,version:vQo,build:CQo,buildType:bQo,engines:SQo,anthropicClaude:TQo,scripts:IQo,devDependencies:xQo,dependencies:wQo,overrides:RQo,overridesComments:kQo};var ze={Enable:"enable",UserSelectedCompletionModel:"selectedCompletionModel",EnableQuotaThresholdWarning:"quota.enableThresholdWarning",ShowEditorCompletions:"editor.showEditorCompletions",EnableAutoCompletions:"editor.enableAutoCompletions",DelayCompletions:"editor.delayCompletions",FilterCompletions:"editor.filterCompletions",FetchStrategy:"fetchStrategy",ToolConfirmAutoApprove:"agent.toolConfirmAutoApprove",AutoApproveUnmatchedTerminal:"agent.autoApproveUnmatchedTerminal",AutoApproveUnmatchedFileOp:"agent.autoApproveUnmatchedFileOp",TrustToolAnnotations:"agent.trustToolAnnotations",AutoApproveYoloMode:"agent.autoApproveYoloMode",EditorHandlesAllConfirmation:"agent.editorHandlesAllConfirmation",MaxToolCallingLoop:"agent.maxToolCallingLoop",AutoCompress:"agent.autoCompress",AnthropicThinkingBudgetToken:"agent.anthropicThinkingBudgetToken",EnableSkills:"agent.enableSkills",EnableHooks:"agent.enableHooks",EnableSandbox:"agent.sandbox.enabled",SandboxAddCurrentWorkingDirectory:"agent.sandbox.addCurrentWorkingDirectory",SandboxUserPolicy:"agent.sandbox.userPolicy",EnablePlugins:"agent.enablePlugins",EnableCustomAgents:"agent.enableCustomAgents",EnableOrgCustomAgents:"agent.enableOrgCustomAgents",UseAgentsMd:"agent.useAgentsMdFile",UseNestedAgentsMd:"agent.useNestedAgentsMdFiles",UseClaudeMd:"agent.useClaudeMdFile",UseNestedClaudeMd:"agent.useNestedClaudeMdFiles",CompletionsDelay:"completionsDelay",CompletionsDebounce:"completionsDebounce",EnableThinking:"agent.enableThinking",TranscriptDirectory:"agent.transcriptDirectory",AgentDebugLogsDirectory:"agent.agentDebugLogsDirectory",ClaudeCliPath:"agent.claude.cliPath",CodexCliPath:"agent.codex.cliPath",OtelEnabled:"agent.otel.enabled",OtelEndpoint:"agent.otel.otlpEndpoint",OtelCaptureContent:"agent.otel.captureContent",OtelExporterType:"agent.otel.exporterType",OtelProtocol:"agent.otel.protocol",OtelOutfile:"agent.otel.outfile",OtelServiceName:"agent.otel.serviceName",OtelResourceAttributes:"agent.otel.resourceAttributes",NESExtendedRange:"nextEditSuggestions.extendedRange",NESEagerness:"nextEditSuggestions.eagerness",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",AlwaysRequestMultiline:"internal.alwaysRequestMultiline",ModelAlwaysTerminatesSingleline:"internal.modelAlwaysTerminatesSingleline",TrimCompletionsAggressively:"internal.trimCompletionsAggressively",UseWorkspaceContextCoordinator:"internal.useWorkspaceContextCoordinator",ShowWorkspaceContextDebugger:"internal.showWorkspaceContextDebugger",IncludeNeighboringFiles:"internal.includeNeighboringFiles",ExcludeRelatedFiles:"internal.excludeRelatedFiles",DebugOverrideCppHeadersEnableSwitch:"internal.cppHeadersEnableSwitch",NESXTab:"internal.useXTab",NESUseExplicitRejection:"internal.nesUseExplicitRejection",NESModelConfiguration:"internal.nesModelConfiguration",UseSplitContextPrompt:"internal.useSplitContextPrompt",UseCompletionsComparisonPanel:"internal.useCompletionsComparisonPanel",ComparisonPanelModelIds:"internal.comparisonPanelModelIds",ComparisonPanelRandomizedMode:"internal.comparisonPanelRandomizedMode",UseFetchFetcher:"internal.useFetchFetcher",UseChatLibCompletions:"internal.useChatLibCompletions",HookErrorOccurredStackTrace:"internal.hookErrorOccurredStackTrace",AppendPromptTokenCache:"internal.appendPromptTokenCache",PromptPersistBasePath:"internal.promptPersistBasePath",AnthropicMessagesEndpoint:"internal.anthropic.messagesEndpoint",UseHelixFetcher:"internal.useHelixFetcher",EnableMapCodeFallback:"internal.enableMapCodeFallback",SearchAgent:"internal.searchAgent",PerfEnabled:"internal.perf.enabled",AuthTokenEncryption:"internal.auth.tokenEncryption",EnableWorkspaceIndex:"workspaceIndex.enabled"};function y0n(t){return["server","parsingandserver"].includes(t)}a(y0n,"shouldDoServerTrimming");var pD=class{static{a(this,"BlockModeConfig")}},Cue=class extends pD{static{a(this,"ConfigBlockModeConfig")}forLanguage(e,r,n){let o=e.get(rr).overrideBlockMode(n);if(o)return s7t(o,r);let s=e.get(rr).enableProgressiveReveal(n);return(kt(e,ze.AlwaysRequestMultiline)??s)||zO.isTrimmedByDefault(r)?s7t("moremultiline",r):r=="ruby"?"parsing":yI(r)?"parsingandserver":"server"}};function DQo(t){return["parsing","parsingandserver","moremultiline"].includes(t)}a(DQo,"blockModeRequiresTreeSitter");function s7t(t,e){return t==="moremultiline"&&T0.isSupported(e)?t:DQo(t)&&!yI(e)?"server":t}a(s7t,"toApplicableBlockMode");var Go=class{static{a(this,"ConfigProvider")}requireReady(){return Promise.resolve()}},bue=class extends Go{constructor(){super(...arguments);this.onDidChangeCopilotSettings=a(()=>({dispose:a(()=>{},"dispose")}),"onDidChangeCopilotSettings");this.onDidChangeHttpSettings=this.onDidChangeCopilotSettings}static{a(this,"DefaultsOnlyConfigProvider")}getConfig(r){return NQo(r)}getOptionalConfig(r){return MQo(r)}dumpForTelemetry(){return{}}getExplicitlySetConfigs(){return new Map}getHttpSettings(){return{proxy:""}}},KK=class extends Go{constructor(r,n){super();this.baseConfigProvider=r;this.overrides=n;this.copilotEmitter=new to;this.onDidChangeCopilotSettings=this.copilotEmitter.event;this.didChangeHttpSettingsEmitter=new to;this.onDidChangeHttpSettings=this.didChangeHttpSettingsEmitter.event;this.httpSettings=this.baseConfigProvider.getHttpSettings()}static{a(this,"InMemoryConfigProvider")}getOptionalOverride(r){return this.overrides.get(r)}getConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getConfig(r)}getOptionalConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getOptionalConfig(r)}setConfig(r,n){this.setCopilotSettings({[r]:n})}setCopilotSettings(r){for(let[n,o]of Object.entries(r))o!==void 0?this.overrides.set(n,o):this.overrides.delete(n);this.copilotEmitter.fire(this)}getExplicitlySetConfigs(){let r=new Map(this.baseConfigProvider.getExplicitlySetConfigs());for(let[n,o]of this.overrides)r.set(n,o);return r}getHttpSettings(){return this.httpSettings}setHttpSettings(r){let n=swe(r);this.httpSettings=n,this.didChangeHttpSettingsEmitter.fire(this.getHttpSettings())}dumpForTelemetry(){let r=this.baseConfigProvider.dumpForTelemetry();for(let n of[ze.ShowEditorCompletions,ze.EnableAutoCompletions,ze.DelayCompletions,ze.FilterCompletions]){let o=this.overrides.get(n);o!==void 0&&(r[n]=JSON.stringify(o))}return r}};function E0n(t,e){let r=t,n=[];for(let o of e.split(".")){let s=[...n,o].join(".");r&&typeof r=="object"&&s in r?(r=r[s],n.length=0):n.push(o)}if(!(r===void 0||n.length>0))return r}a(E0n,"getConfigKeyRecursively");function NQo(t){if(Tze.has(t))return Tze.get(t);throw new Error(`Missing config default value: ${uNt}.${t}`)}a(NQo,"getConfigDefaultForKey");function MQo(t){return Tze.get(t)}a(MQo,"getOptionalConfigDefaultForKey");function cwe(t){return t.get(Go).getExplicitlySetConfigs()}a(cwe,"getExplicitlySetConfigs");var OQo={[ze.DebugOverrideCppHeadersEnableSwitch]:!1,[ze.RelatedFilesVSCodeCSharp]:!1,[ze.RelatedFilesVSCodeTypeScript]:!1,[ze.RelatedFilesVSCode]:!1,[ze.IncludeNeighboringFiles]:!1,[ze.ExcludeRelatedFiles]:!1,[ze.ContextProviders]:[],[ze.DebugUseEditorFetcher]:null,[ze.DebugUseElectronFetcher]:null,[ze.DebugOverrideLogLevels]:{},[ze.DebugSnippyOverrideUrl]:"",[ze.AgentDebugLogsDirectory]:void 0,[ze.ClaudeCliPath]:void 0,[ze.CodexCliPath]:void 0,[ze.OtelEnabled]:!1,[ze.OtelEndpoint]:void 0,[ze.OtelCaptureContent]:!1,[ze.OtelExporterType]:"otlp-http",[ze.OtelProtocol]:"",[ze.OtelOutfile]:"",[ze.OtelServiceName]:"",[ze.OtelResourceAttributes]:{},[ze.FetchStrategy]:"auto",[ze.ToolConfirmAutoApprove]:!1,[ze.AutoApproveUnmatchedTerminal]:void 0,[ze.AutoApproveUnmatchedFileOp]:void 0,[ze.TrustToolAnnotations]:!1,[ze.AutoApproveYoloMode]:!1,[ze.EditorHandlesAllConfirmation]:!1,[ze.MaxToolCallingLoop]:25,[ze.AutoCompress]:!1,[ze.AnthropicThinkingBudgetToken]:1024,[ze.EnableSkills]:!1,[ze.EnableHooks]:!1,[ze.EnableSandbox]:!1,[ze.SandboxAddCurrentWorkingDirectory]:void 0,[ze.SandboxUserPolicy]:void 0,[ze.EnablePlugins]:!1,[ze.EnableCustomAgents]:!0,[ze.EnableOrgCustomAgents]:!0,[ze.UseAgentsMd]:!1,[ze.UseNestedAgentsMd]:!1,[ze.UseClaudeMd]:!1,[ze.UseNestedClaudeMd]:!1,[ze.UseSubsetMatching]:null,[ze.ContextProviderTimeBudget]:void 0,[ze.DebugOverrideCapiUrl]:"",[ze.DebugTestOverrideCapiUrl]:"",[ze.DebugOverrideProxyUrl]:"",[ze.DebugTestOverrideProxyUrl]:"",[ze.DebugOverrideEngine]:"",[ze.AlwaysRequestMultiline]:void 0,[ze.ModelAlwaysTerminatesSingleline]:void 0,[ze.TrimCompletionsAggressively]:void 0,[ze.CompletionsDebounce]:void 0,[ze.NESXTab]:void 0,[ze.UseWorkspaceContextCoordinator]:void 0,[ze.ShowWorkspaceContextDebugger]:!1,[ze.CompletionsDelay]:void 0,[ze.UseSplitContextPrompt]:void 0,[ze.UseCompletionsComparisonPanel]:void 0,[ze.ComparisonPanelModelIds]:void 0,[ze.ComparisonPanelRandomizedMode]:void 0,[ze.UseFetchFetcher]:void 0,[ze.UseChatLibCompletions]:void 0,[ze.TranscriptDirectory]:void 0,[ze.EnableThinking]:!0,[ze.ShowEditorCompletions]:void 0,[ze.EnableAutoCompletions]:void 0,[ze.DelayCompletions]:void 0,[ze.FilterCompletions]:void 0,[ze.Enable]:{"*":!0,plaintext:!1,markdown:!1,scminput:!1},[ze.UserSelectedCompletionModel]:"",[ze.EnableQuotaThresholdWarning]:!0,[ze.DebugFilterLogCategories]:[],[ze.DebugOverrideEngineLegacy]:"",[ze.DebugTestOverrideProxyUrlLegacy]:"",[ze.DebugOverrideProxyUrlLegacy]:"",[ze.DebugTestOverrideCapiUrlLegacy]:"",[ze.DebugOverrideCapiUrlLegacy]:"",[ze.HookErrorOccurredStackTrace]:!1,[ze.NESUseExplicitRejection]:!1,[ze.NESModelConfiguration]:void 0,[ze.AppendPromptTokenCache]:"",[ze.PromptPersistBasePath]:void 0,[ze.AnthropicMessagesEndpoint]:"",[ze.UseHelixFetcher]:"",[ze.EnableMapCodeFallback]:"enabled",[ze.SearchAgent]:"",[ze.PerfEnabled]:"",[ze.NESExtendedRange]:!1,[ze.NESEagerness]:"auto",[ze.AuthTokenEncryption]:"",[ze.EnableWorkspaceIndex]:!1},Tze=new Map(Object.entries(OQo));for(let t of Object.values(ze))if(!Tze.has(t))throw new Error(`Missing config default value ${uNt}.${t}`);function kt(t,e){return t.get(Go).getConfig(e)}a(kt,"getConfig");function av(t){let e=kt(t,ze.EnableWorkspaceIndex);return e===!0||e==="true"}a(av,"isSemanticSearchEnabled");function crn(t){return t.get(Go).dumpForTelemetry()}a(crn,"dumpForTelemetry");var _s=class{constructor(){this.packageJson=awe}static{a(this,"BuildInfo")}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 m5t(t){return t.get(_s).isProduction()}a(m5t,"isProduction");function han(t){return t.get(_s).getBuildType()==="dev"}a(han,"isDevBuild");function P7(t){return t.get(_s).getBuildType()}a(P7,"getBuildType");function lrn(t){return t.get(_s).getBuild()}a(lrn,"getBuild");function MT(t){return t.get(_s).getVersion()}a(MT,"getVersion");var za=class{constructor(e,r,n,o="none",s="desktop"){this.sessionId=e;this.machineId=r;this.devDeviceId=n;this.remoteName=o;this.uiKind=s}static{a(this,"EditorSession")}};function CT({name:t,version:e}){return`${t}/${e}`}a(CT,"formatNameAndVersion");var Ir=class{static{a(this,"EditorAndPluginInfo")}getCopilotIntegrationId(){}getEditorPluginSpecificFilters(){return[]}getEditorIdentity(){return tVr({editor:this.getEditorInfo(),plugin:this.getEditorPluginInfo()})}isEditorPluginInfoKnown(){return!0}};function zWe(t){let e=t.getCopilotIntegrationId();if(e)return e;switch(t.getEditorPluginInfo().name){case"copilot-intellij":return"jetbrains-chat";case"copilot":case"copilot-vs":return;default:return"jetbrains-chat"}}a(zWe,"getIntegrationId");function pE(t){let e=t.get(Ir);return{"Editor-Version":CT(e.getEditorInfo()),"Editor-Plugin-Version":CT(e.getEditorPluginInfo()),"Copilot-Language-Server-Version":MT(t)}}a(pE,"editorVersionHeaders");var _0n="Iv1.b507a08c87ecfe98",BQo="350ee525b5da0e4a54c6e8e043edc1b99cc02f19",lle="Ov23liV9UpD7Rnfnskm3",LQo="5509a52e4c525cd594a6fba9147ff6cc2388dd9f",FQo={[_0n]:BQo,[lle]:LQo},fh=class{static{a(this,"GitHubAppInfo")}findAppIdToAuthenticate(){return this.githubAppId??_0n}findAppSecretToAuthenticate(){let e=this.findAppIdToAuthenticate(),r=FQo[e];if(!r)throw new Error(`GitHubAppInfo: No app secret found for app ID: ${e}`);return r}};function v0n(t){return kt(t,ze.AuthTokenEncryption)==="false"}a(v0n,"isAuthTokenEncryptionDisabled");p();var w0n=fe(require("node:crypto"));var mq=new pe("KeytarMasterKey"),S0n="copilot-language-server",T0n="oauth-token-key",I0n=5e3,R0n=32,a7t;function qQo(t){return a7t??=jQo(t).finally(()=>{a7t=void 0}),a7t}a(qQo,"resolveMasterKey");async function jQo(t){mq.info(t,"keytar-master-key: resolving master key");let e;try{e=await l7t.loadKeytar(),mq.info(t,"keytar-master-key: module loaded")}catch(n){return mq.warn(t,"keytar-master-key: @github/keytar failed to load",n),{diagnostics:c7t("loadModule",n)}}let r;try{r=await GQo(t,e)}catch(n){return n instanceof Ize?(mq.error(t,"keytar-master-key: existing entry is corrupt; refusing to overwrite",n),{diagnostics:c7t("corruptExistingEntry",n)}):(mq.warn(t,"keytar-master-key: master-key resolution failed",n),{diagnostics:c7t("getOrCreateMasterKey",n)})}return mq.info(t,`keytar-master-key: resolved (source=${r.source})`),{masterKey:r.key,diagnostics:{available:!0,masterKeySource:r.source}}}a(jQo,"doResolveMasterKey");function HQo(){return Promise.resolve().then(()=>fe(b0n()))}a(HQo,"loadKeytar");var l7t={resolveMasterKey:qQo,loadKeytar:HQo};async function GQo(t,e){let r=await x0n(e.getPassword(S0n,T0n),I0n,"getMasterKey");if(mq.info(t,`keytar-master-key: getPassword returned (found=${r!=null})`),r){let o=$Qo(r);if(o)return{key:o,source:"useExisting"};throw new Ize}let n=w0n.randomBytes(R0n);return await x0n(e.setPassword(S0n,T0n,n.toString("base64")),I0n,"setMasterKey"),mq.info(t,"keytar-master-key: setPassword (new key) completed"),{key:n,source:"createNew"}}a(GQo,"getOrCreateMasterKey");function x0n(t,e,r){return new Promise((n,o)=>{let s=setTimeout(()=>o(new Error(`${r}: timeout after ${e}ms`)),e);s.unref?.(),t.then(c=>{clearTimeout(s),n(c)},c=>{clearTimeout(s),o(c instanceof Error?c:new Error(`${r}: ${String(c)}`))})})}a(x0n,"withTimeout");var Ize=class extends Error{static{a(this,"CorruptMasterKeyError")}constructor(){super("keytar master-key entry present but undecodable"),this.name="CorruptMasterKeyError"}};function c7t(t,e){return{available:!1,errorPhase:t,error:e}}a(c7t,"unavailable");function $Qo(t){let e=Buffer.from(t,"base64");return e.length===R0n?e:void 0}a($Qo,"decodeMasterKey");p();var Sue=fe(require("node:crypto"));var VQo=0,f7t=1,JK=class extends Error{constructor(r,n,o){super(r,o?.cause!==void 0?{cause:o.cause}:void 0);this.kind=n;this.name="SecretUnwrapError"}static{a(this,"SecretUnwrapError")}},wze=class{static{a(this,"SecretCodec")}},d7t=class extends wze{constructor(){super(...arguments);this.schemaVersion=VQo}static{a(this,"PlaintextCodec")}encode(r){return Buffer.from(r,"utf8")}decode(r){return Buffer.from(r).toString("utf8")}},xze=12,u7t=16,k0n=32,Rze=class extends wze{constructor(r){super();this.key=r;this.schemaVersion=f7t;if(r.length!==k0n)throw new Error(`AesGcmCodec requires a ${k0n}-byte key, got ${r.length}`)}static{a(this,"AesGcmCodec")}encode(r){let n=Sue.randomBytes(xze),o=Sue.createCipheriv("aes-256-gcm",this.key,n),s=Buffer.concat([o.update(Buffer.from(r,"utf8")),o.final()]);return Buffer.concat([n,s,o.getAuthTag()])}decode(r){let n=Buffer.from(r);if(n.length<xze+u7t)throw new JK("decode: v1 ciphertext too short","malformed");let o=n.subarray(0,xze),s=n.subarray(n.length-u7t),c=n.subarray(xze,n.length-u7t);try{let l=Sue.createDecipheriv("aes-256-gcm",this.key,o);return l.setAuthTag(s),Buffer.concat([l.update(c),l.final()]).toString("utf8")}catch(l){throw new JK("decode: AES-GCM verification failed","tagMismatch",{cause:l})}}},p3=class t{constructor(e){this.readers=new Map;this.writer=e,this.readers.set(e.schemaVersion,e)}static{a(this,"SecretStorage")}addReader(e){this.readers.set(e.schemaVersion,e)}setWriter(e){this.writer=e,this.readers.set(e.schemaVersion,e)}wrap(e){return{schemaVersion:this.writer.schemaVersion,ciphertext:this.writer.encode(e)}}unwrap(e){let r=this.readers.get(e.schemaVersion);if(!r)throw new JK(`unwrap: unknown schemaVersion ${e.schemaVersion}`,"unknownVersion");return r.decode(e.ciphertext)}static plaintextOnly(){return new t(new d7t)}};p();p();function P0n(t){return{upsertToken:t.prepare(`
|
|
1947
|
+
] @statement`}};var zO=class{constructor(e,r,n){this.languageId=e;this.prefix=r;this.completion=n}static{a(this,"BlockTrimmer")}static isSupported(e){return T0.isSupported(e)}static isTrimmedByDefault(e){return T0.isTrimmedByDefault(e)}async withParsedStatementTree(e){var n=[];try{let r=sNt(n,T0.create(this.languageId,this.prefix+this.completion,this.prefix.length,this.prefix.length+this.completion.length));await r.build();return await e(r)}catch(o){var s=o,c=!0}finally{aNt(n,s,c)}}trimmedCompletion(e){return e===void 0?this.completion:this.completion.substring(0,e)}getStatementAtCursor(e){return e.statementAt(Math.max(this.prefix.length-1,0))??e.statements[0]}getContainingBlockOffset(e){let r;if(e&&this.isCompoundStatement(e))r=e;else if(e){let n=e.parent;for(;n&&!this.isCompoundStatement(n);)n=n.parent;r=n}if(r){let n=this.asCompletionOffset(r.node.endIndex);if(n&&this.completion.substring(n).trim()!=="")return n}}hasNonStatementContentAfter(e){if(!e||!e.nextSibling)return!1;let r=this.asCompletionOffset(e.node.endIndex),n=this.asCompletionOffset(e.nextSibling.node.startIndex);return this.completion.substring(Math.max(0,r??0),Math.max(0,n??0)).trim()!==""}asCompletionOffset(e){return e===void 0?void 0:e-this.prefix.length}isCompoundStatement(e){return e.isCompoundStatementType||e.children.length>0}};var Sze=class extends zO{constructor(r,n,o,s=3,c=7){super(r,n,o);this.lineLimit=s;this.lookAhead=c;let l=[...this.completion.matchAll(/\n/g)],u=this.lineLimit+this.lookAhead;l.length>=this.lineLimit&&this.lineLimit>0&&(this.limitOffset=l[this.lineLimit-1].index),l.length>=u&&u>0&&(this.lookAheadOffset=l[u-1].index)}static{a(this,"TerseBlockTrimmer")}async getCompletionTrimOffset(){return await this.withParsedStatementTree(r=>{let n=r.statementAt(this.stmtStartPos()),o=this.getContainingBlockOffset(n);return o=this.trimAtFirstBlankLine(o),n&&(o=this.trimAtStatementChange(n,o)),this.limitOffset&&this.lookAheadOffset&&(o===void 0||o>this.lookAheadOffset)?this.limitOffset:o})}stmtStartPos(){let r=this.completion.match(/\S/);return r&&r.index!==void 0?this.prefix.length+r.index:Math.max(this.prefix.length-1,0)}trimAtFirstBlankLine(r){let n=[...this.trimmedCompletion(r).matchAll(/\r?\n\s*\r?\n/g)];for(;n.length>0&&(r===void 0||r>n[0].index);){let o=n.shift();if(this.completion.substring(0,o.index).trim()!=="")return o.index}return r}trimAtStatementChange(r,n){let o=this.prefix.length,s=this.prefix.length+(n??this.completion.length);if(r.node.endIndex>o&&this.isCompoundStatement(r))return r.nextSibling&&r.node.endIndex<s?this.asCompletionOffset(r.node.endIndex):n;let c=r,l=r.nextSibling;for(;l&&l.node.endIndex<=s&&!this.hasNonStatementContentAfter(c)&&!this.isCompoundStatement(l);)c=l,l=l.nextSibling;return l&&c.node.endIndex>o&&c.node.endIndex<s?this.asCompletionOffset(c.node.endIndex):n}};async function m0n(t,e){var l=[];try{let r=t.getText();let n=t.offsetAt(e);let o=sNt(l,T0.create(t.detectedLanguageId,r,0,r.length));await o.build();let s=o.statementAt(n);if(!s)return"non-block";if(!s.isCompoundStatementType&&s.children.length===0)return s.parent&&!s.nextSibling&&s.node.endPosition.row<=e.line?"block-end":s.parent?"mid-block":"non-block";if(s.children.length===0)return"empty-block";let c=s.children[s.children.length-1];if(n<c.node.startIndex)return"mid-block";return"block-end"}catch(u){var d=u,f=!0}finally{aNt(l,d,f)}}a(m0n,"getBlockPositionType");p();function mQo(t){return t.HTTPS_PROXY||t.https_proxy||t.HTTP_PROXY||t.http_proxy}a(mQo,"getProxyFromEnvironment");function gQo(t){return t.NODE_TLS_REJECT_UNAUTHORIZED!=="0"}a(gQo,"getRejectUnauthorizedFromEnvironment");var g0n=b.Object({proxy:b.Optional(b.String()),proxyStrictSSL:b.Optional(b.Boolean()),proxyAuthorization:b.Optional(b.String()),proxyKerberosServicePrincipal:b.Optional(b.String()),noProxy:b.Optional(b.Array(b.String()))});function A0n(t){let e=mQo(t),r=swe({proxy:e,proxyStrictSSL:gQo(t)}),n=t.GH_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.GITHUB_COPILOT_KERBEROS_SERVICE_PRINCIPAL??t.AGENT_KERBEROS_SERVICE_PRINCIPAL;return n&&(r.proxyKerberosServicePrincipal=n),r}a(A0n,"getHttpSettingsFromEnvironment");function swe(t){if(!t.proxy)return{...t,proxy:""};try{let{protocol:e,host:r,username:n,password:o,pathname:s,search:c,hash:l}=new URL(t.proxy);return{...t,proxy:`${e}//${r}${s}${c}${l}`,proxyAuthorization:t.proxyAuthorization||AQo(n,o),noProxy:t.noProxy||[]}}catch{return{...t,proxy:""}}}a(swe,"normalizeHttpSettings");function AQo(t,e){return!t||!e?"":`${decodeURIComponent(t)}:${decodeURIComponent(e)}`}a(AQo,"getAuth");var awe={};Bi(awe,{anthropicClaude:()=>TQo,build:()=>CQo,buildType:()=>bQo,default:()=>PQo,dependencies:()=>wQo,description:()=>_Qo,devDependencies:()=>xQo,displayName:()=>EQo,engines:()=>SQo,name:()=>yQo,overrides:()=>RQo,overridesComments:()=>kQo,scripts:()=>IQo,version:()=>vQo});var yQo="copilot",EQo="GitHub Copilot",_Qo="Your AI pair programmer",vQo="1.532.2",CQo="97",bQo="prod",SQo={node:">=22.13.0",npm:">=11.6.0 <12.0.0"},TQo={cliPackageVersion:"2.1.159"},IQo={build:"tsx esbuild.ts",clean:"./script/build/clean.sh",compress:"tsx ./script/compressTokenizer.ts",generate_languages:"tsx script/generateLanguages.ts && prettier --write lib/src/language/generatedLanguages.ts",get_token:"tsx script/deviceFlow.ts --save-as-test-token",lint:'run-p --aggregate-output "lint:*"',"lint:deps":"depcruise -c .dependency-cruiser.js .","lint:eslint":"eslint -f visualstudio --quiet --cache .","lint:gdpr":"tsx script/checkGdprComments.ts","lint:overrides":"tsx script/checkOverridesDocumented.ts","lint:prettier":"prettier --check . 2>&1","lint:types":"tsc --noEmit",inspect_auth_db:"tsx script/inspectAuthDb.ts",prebuild:"npm install",pretest:"npm run build","pretest:headless":"npm run build","pretest:agent-e2e":"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: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:agent-e2e":'mocha "agent/e2e/**/*.test.{ts,tsx}"',"test:lib":'mocha "lib/src/**/*.test.{ts,tsx}" "script/**/*.test.{ts,tsx}" --exclude "lib/src/**/*.int.test.ts"',"test:lib-int":'mocha "lib/src/**/*.int.test.ts"',"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:pkg-runtime":"tsx script/smokeCopilotRuntimePkg.ts","test:prompt":'mocha "prompt/test/**/*.test.{ts,tsx}"',"test:prepare-msbench":"tsx script/setupMsbench.ts","test:run-msbench":"tsx lsp-client/test/msbench/agent/index.ts",watch:'run-p "watch:esbuild --ignore-scripts" "watch:types -- --preserveWatchOutput"',"watch:esbuild":"tsx esbuild.ts --watch","watch:types":"tsc --noEmit --watch"},xQo={"@azure/identity":"^4.13.1","@azure/keyvault-secrets":"^4.11.2","@github/prettier-config":"0.0.6","@limegrass/eslint-plugin-import-alias":"^1.6.1","@types/crypto-js":"^4.2.2","@types/diff":"^8.0.0","@types/git-url-parse":"^16.0.2","@types/js-yaml":"^4.0.6","@types/kerberos":"^1.1.2","@types/markdown-it":"^14.1.2","@types/mocha":"^10.0.10","@types/node":"~22.13.0","@types/semver":"^7.7.1","@types/sinon":"^22.0.0","@types/toposort":"^2.0.7","@types/vscode":"1.125.0","@types/which":"^3.0.0","@types/yargs":"^17.0.35","@vscode/tree-sitter-wasm":"0.0.5-php.2","@yao-pkg/pkg":"^6.22.0",boxen:"^8.0.1",chalk:"^5.6.2","dependency-cruiser":"^18.1.1",esbuild:"^0.28.1","esbuild-plugin-copy":"^2.1.1",eslint:"^9.39.5","eslint-formatter-visualstudio":"^9.0.1","eslint-plugin-mocha":"^10.5.0",globals:"^17.9.0","js-yaml":"^4.2.0",mocha:"^11.7.6","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","npm-run-all":"^4.1.5",openai:"^7.3.0",prettier:"^3.5.3","prettier-plugin-organize-imports":"^4.2.0","simple-git":"^3.36.0",sinon:"^22.1.0","tree-sitter-bash":"^0.23.0","tree-sitter-powershell":"0.25.9","ts-dedent":"^2.3.0",tsx:"^4.23.4",typescript:"^5.9.3","typescript-eslint":"^8.39.1","vscode-dts":"^0.3.3"},wQo={"@adobe/helix-fetch":"github:devm33/helix-fetch#2a08fa939591a0e14f34f611adcc3ed767579e9a","@agentclientprotocol/sdk":"^0.22.1","@anthropic-ai/claude-agent-sdk":"0.3.159","@anthropic-ai/sdk":"^0.98.0","@github/copilot":"1.0.78","@github/copilot-sdk":"1.0.9","@github/keytar":"7.10.6","@github/memoize":"1.1.5","@microsoft/1ds-core-js":"^4.3.10","@microsoft/1ds-post-js":"^4.3.10","@microsoft/applicationinsights-web-basic":"^3.3.11","@microsoft/mxc-sdk":"0.7.0","@modelcontextprotocol/sdk":"^1.29.0","@octokit/graphql":"^9.0.4","@octokit/rest":"^22.0.1","@parcel/watcher":"^2.6.0","@sinclair/typebox":"^0.34.52","@vscode/chat-lib":"0.60.0","@vscode/codicons":"^0.0.45","@vscode/deviceid":"github:ghc-jetbrains/vscode-deviceid#f0e5738cd362ef20a09aeb30c3a8be99a9a710f5","@vscode/policy-watcher":"^1.4.0","@vscode/prompt-tsx":"^0.4.0-alpha.9","@vscode/webview-ui-toolkit":"^1.3.1","crypto-js":"^4.2.0",diff:"^9.0.0",dldr:"^0.0.10",events:"^3.3.0","git-url-parse":"^16.1.0",glob:"^11.1.0","jsonc-parser":"^3.3.1",kerberos:"^2.2.0","mac-ca":"^3.1.3","markdown-it":"^15.0.0",minimatch:"^10.2.6",open:"^10.2.0",semver:"^7.8.5",shiki:"~1.15.0","source-map-support":"^0.5.21",toposort:"^2.0.2",undici:"^7.29.0",uuid:"^14.0.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.23.0",which:"^7.0.0","windows-ca-certs":"^0.2.2",ws:"^8.21.1",yargs:"^18.1.0"},RQo={fsevents:"<0","@github/copilot-linuxmusl-arm64":"<0","@github/copilot-linuxmusl-x64":"<0",bindings:"npm:bundled-bindings@^1.5.0",jws:"^3.2.3",tar:"7.5.21","serialize-javascript":"^7.0.5",uuid:"^14.0.0","ip-address":"^10.1.1","fast-uri":"^3.1.5"},kQo={"//":"Rationale for each entry in `overrides`. Required by `npm run lint:overrides` (script/checkOverridesDocumented.ts). Each value should cover: why (CVE/GHSA or build-hack reason), which direct dep pulls in the vulnerable transitive, and the remove-when condition.",fsevents:"Build hack: macOS-only optional native dep; '<0' is an impossible semver that force-skips install on Linux/Windows pkg builds. Permanent \u2014 keep until @yao-pkg/pkg handles macOS-only optionalDependencies natively. See commit d635096c.","@github/copilot-linuxmusl-arm64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.","@github/copilot-linuxmusl-x64":"Build hack: @github/copilot declares a Linux musl optional runtime package, but CLS does not support musl. '<0' prevents npm from installing the unsupported runtime. Drop only if CLS adds musl support.",bindings:"Build hack: alias to bundled-bindings fork that resolves .node native addon paths after pkg/esbuild bundling. Required by kerberos. Drop when upstream `bindings` adopts platform-specific path resolution. See commits c4461665 and b55ece83.",jws:"CVE GHSA-869p-cjfg-cm3x (Improperly Verifies HMAC Signature). Pulled in by jsonwebtoken-family deps. Drop when all transitive consumers pin jws >= 3.2.3. See commit 2b5dc766.",tar:"CVE GHSA-9ppj-qmqm-q256 + GHSA-qffp-2rhf-9h96 (Symlink/Hardlink Path Traversal via Drive-Relative Linkpath), plus the 7.5.12..7.5.20 advisory run: GHSA-23hp-3jrh-7fpw / CVE-2026-59873 (critical, decompression DoS via unlimited input), GHSA-8x88-c5mf-7j5w / CVE-2026-59874 (infinite loop on negative entry size), GHSA-w8wr-v893-vjvp / CVE-2026-59871 (PAX numeric path type confusion), GHSA-gvwx-54wh-qm9j / CVE-2026-59875 (NUL byte in PAX path records), GHSA-vmf3-w455-68vh / CVE-2026-53655 (GNU long-name PAX size override file smuggling), GHSA-r292-9mhp-454m (uncontrolled recursion in mapHas/filesFilter). Pulled in by @yao-pkg/pkg (tar ^7.5.7) and node-gyp / native-build deps. Drop when transitive consumers bump tar >= 7.5.21. Dependabot alerts #170, #169, #179, #171, #168, #146. See commit e2dff0f3.","serialize-javascript":"CVE GHSA-5c6j-r48x-rmvq (RCE via RegExp.flags / Date.toISOString) + GHSA-qj8w-gfj5-8c6v (ReDoS). Pulled in by mocha 11.x (^6.0.2). Dev-only. Drop when mocha bumps to a release that carries serialize-javascript >= 7.0.3. See commit d49f75fd.",uuid:"CVE GHSA-w5hq-g745-h8pq (missing buffer bounds checks in v3/v5/v6). Pulled in by msal-node and @vscode/deviceid as uuid 8.x/9.x. Drop when both upgrade to uuid >= 14. Dependabot alert #128. See commit 6315f3f8.","ip-address":"CVE GHSA-v2v4-37r5-5v8g (XSS in Address6 HTML-emitting methods: group/link/spanAll and AddressError.parseMessage). Pulled in by @modelcontextprotocol/sdk -> express-rate-limit. Not exploitable here (we don't render HTML or call the affected methods), but the override clears the alert. Drop when express-rate-limit bumps to a release carrying ip-address >= 10.1.1. Dependabot alert #129. See PR #854.","fast-uri":"CVE-2026-6321 GHSA-q3j6-qgpj-74h6 (host confusion via percent-encoded authority delimiters) + CVE-2026-6322 GHSA-v39h-62p7-jpjc (path traversal via percent-encoded dot segments). Pulled in by @modelcontextprotocol/sdk -> ajv -> fast-uri. Drop when ajv bumps to a release carrying fast-uri >= 3.1.2. Dependabot alerts #132, #133."},PQo={name:yQo,displayName:EQo,description:_Qo,version:vQo,build:CQo,buildType:bQo,engines:SQo,anthropicClaude:TQo,scripts:IQo,devDependencies:xQo,dependencies:wQo,overrides:RQo,overridesComments:kQo};var ze={Enable:"enable",UserSelectedCompletionModel:"selectedCompletionModel",EnableQuotaThresholdWarning:"quota.enableThresholdWarning",ShowEditorCompletions:"editor.showEditorCompletions",EnableAutoCompletions:"editor.enableAutoCompletions",DelayCompletions:"editor.delayCompletions",FilterCompletions:"editor.filterCompletions",FetchStrategy:"fetchStrategy",ToolConfirmAutoApprove:"agent.toolConfirmAutoApprove",AutoApproveUnmatchedTerminal:"agent.autoApproveUnmatchedTerminal",AutoApproveUnmatchedFileOp:"agent.autoApproveUnmatchedFileOp",TrustToolAnnotations:"agent.trustToolAnnotations",AutoApproveYoloMode:"agent.autoApproveYoloMode",EditorHandlesAllConfirmation:"agent.editorHandlesAllConfirmation",MaxToolCallingLoop:"agent.maxToolCallingLoop",AutoCompress:"agent.autoCompress",AnthropicThinkingBudgetToken:"agent.anthropicThinkingBudgetToken",EnableSkills:"agent.enableSkills",EnableHooks:"agent.enableHooks",EnableSandbox:"agent.sandbox.enabled",SandboxAddCurrentWorkingDirectory:"agent.sandbox.addCurrentWorkingDirectory",SandboxUserPolicy:"agent.sandbox.userPolicy",EnablePlugins:"agent.enablePlugins",EnableCustomAgents:"agent.enableCustomAgents",EnableOrgCustomAgents:"agent.enableOrgCustomAgents",UseAgentsMd:"agent.useAgentsMdFile",UseNestedAgentsMd:"agent.useNestedAgentsMdFiles",UseClaudeMd:"agent.useClaudeMdFile",UseNestedClaudeMd:"agent.useNestedClaudeMdFiles",CompletionsDelay:"completionsDelay",CompletionsDebounce:"completionsDebounce",EnableThinking:"agent.enableThinking",TranscriptDirectory:"agent.transcriptDirectory",AgentDebugLogsDirectory:"agent.agentDebugLogsDirectory",ClaudeCliPath:"agent.claude.cliPath",CodexCliPath:"agent.codex.cliPath",OtelEnabled:"agent.otel.enabled",OtelEndpoint:"agent.otel.otlpEndpoint",OtelCaptureContent:"agent.otel.captureContent",OtelExporterType:"agent.otel.exporterType",OtelProtocol:"agent.otel.protocol",OtelOutfile:"agent.otel.outfile",OtelServiceName:"agent.otel.serviceName",OtelResourceAttributes:"agent.otel.resourceAttributes",NESExtendedRange:"nextEditSuggestions.extendedRange",NESEagerness:"nextEditSuggestions.eagerness",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",AlwaysRequestMultiline:"internal.alwaysRequestMultiline",ModelAlwaysTerminatesSingleline:"internal.modelAlwaysTerminatesSingleline",TrimCompletionsAggressively:"internal.trimCompletionsAggressively",UseWorkspaceContextCoordinator:"internal.useWorkspaceContextCoordinator",ShowWorkspaceContextDebugger:"internal.showWorkspaceContextDebugger",IncludeNeighboringFiles:"internal.includeNeighboringFiles",ExcludeRelatedFiles:"internal.excludeRelatedFiles",DebugOverrideCppHeadersEnableSwitch:"internal.cppHeadersEnableSwitch",NESXTab:"internal.useXTab",NESUseExplicitRejection:"internal.nesUseExplicitRejection",NESModelConfiguration:"internal.nesModelConfiguration",UseSplitContextPrompt:"internal.useSplitContextPrompt",UseCompletionsComparisonPanel:"internal.useCompletionsComparisonPanel",ComparisonPanelModelIds:"internal.comparisonPanelModelIds",ComparisonPanelRandomizedMode:"internal.comparisonPanelRandomizedMode",UseFetchFetcher:"internal.useFetchFetcher",UseChatLibCompletions:"internal.useChatLibCompletions",HookErrorOccurredStackTrace:"internal.hookErrorOccurredStackTrace",AppendPromptTokenCache:"internal.appendPromptTokenCache",PromptPersistBasePath:"internal.promptPersistBasePath",AnthropicMessagesEndpoint:"internal.anthropic.messagesEndpoint",UseHelixFetcher:"internal.useHelixFetcher",EnableMapCodeFallback:"internal.enableMapCodeFallback",SearchAgent:"internal.searchAgent",PerfEnabled:"internal.perf.enabled",AuthTokenEncryption:"internal.auth.tokenEncryption",EnableWorkspaceIndex:"workspaceIndex.enabled"};function y0n(t){return["server","parsingandserver"].includes(t)}a(y0n,"shouldDoServerTrimming");var pD=class{static{a(this,"BlockModeConfig")}},Cue=class extends pD{static{a(this,"ConfigBlockModeConfig")}forLanguage(e,r,n){let o=e.get(rr).overrideBlockMode(n);if(o)return s7t(o,r);let s=e.get(rr).enableProgressiveReveal(n);return(kt(e,ze.AlwaysRequestMultiline)??s)||zO.isTrimmedByDefault(r)?s7t("moremultiline",r):r=="ruby"?"parsing":yI(r)?"parsingandserver":"server"}};function DQo(t){return["parsing","parsingandserver","moremultiline"].includes(t)}a(DQo,"blockModeRequiresTreeSitter");function s7t(t,e){return t==="moremultiline"&&T0.isSupported(e)?t:DQo(t)&&!yI(e)?"server":t}a(s7t,"toApplicableBlockMode");var Go=class{static{a(this,"ConfigProvider")}requireReady(){return Promise.resolve()}},bue=class extends Go{constructor(){super(...arguments);this.onDidChangeCopilotSettings=a(()=>({dispose:a(()=>{},"dispose")}),"onDidChangeCopilotSettings");this.onDidChangeHttpSettings=this.onDidChangeCopilotSettings}static{a(this,"DefaultsOnlyConfigProvider")}getConfig(r){return NQo(r)}getOptionalConfig(r){return MQo(r)}dumpForTelemetry(){return{}}getExplicitlySetConfigs(){return new Map}getHttpSettings(){return{proxy:""}}},KK=class extends Go{constructor(r,n){super();this.baseConfigProvider=r;this.overrides=n;this.copilotEmitter=new to;this.onDidChangeCopilotSettings=this.copilotEmitter.event;this.didChangeHttpSettingsEmitter=new to;this.onDidChangeHttpSettings=this.didChangeHttpSettingsEmitter.event;this.httpSettings=this.baseConfigProvider.getHttpSettings()}static{a(this,"InMemoryConfigProvider")}getOptionalOverride(r){return this.overrides.get(r)}getConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getConfig(r)}getOptionalConfig(r){return this.getOptionalOverride(r)??this.baseConfigProvider.getOptionalConfig(r)}setConfig(r,n){this.setCopilotSettings({[r]:n})}setCopilotSettings(r){for(let[n,o]of Object.entries(r))o!==void 0?this.overrides.set(n,o):this.overrides.delete(n);this.copilotEmitter.fire(this)}getExplicitlySetConfigs(){let r=new Map(this.baseConfigProvider.getExplicitlySetConfigs());for(let[n,o]of this.overrides)r.set(n,o);return r}getHttpSettings(){return this.httpSettings}setHttpSettings(r){let n=swe(r);this.httpSettings=n,this.didChangeHttpSettingsEmitter.fire(this.getHttpSettings())}dumpForTelemetry(){let r=this.baseConfigProvider.dumpForTelemetry();for(let n of[ze.ShowEditorCompletions,ze.EnableAutoCompletions,ze.DelayCompletions,ze.FilterCompletions]){let o=this.overrides.get(n);o!==void 0&&(r[n]=JSON.stringify(o))}return r}};function E0n(t,e){let r=t,n=[];for(let o of e.split(".")){let s=[...n,o].join(".");r&&typeof r=="object"&&s in r?(r=r[s],n.length=0):n.push(o)}if(!(r===void 0||n.length>0))return r}a(E0n,"getConfigKeyRecursively");function NQo(t){if(Tze.has(t))return Tze.get(t);throw new Error(`Missing config default value: ${uNt}.${t}`)}a(NQo,"getConfigDefaultForKey");function MQo(t){return Tze.get(t)}a(MQo,"getOptionalConfigDefaultForKey");function cwe(t){return t.get(Go).getExplicitlySetConfigs()}a(cwe,"getExplicitlySetConfigs");var OQo={[ze.DebugOverrideCppHeadersEnableSwitch]:!1,[ze.RelatedFilesVSCodeCSharp]:!1,[ze.RelatedFilesVSCodeTypeScript]:!1,[ze.RelatedFilesVSCode]:!1,[ze.IncludeNeighboringFiles]:!1,[ze.ExcludeRelatedFiles]:!1,[ze.ContextProviders]:[],[ze.DebugUseEditorFetcher]:null,[ze.DebugUseElectronFetcher]:null,[ze.DebugOverrideLogLevels]:{},[ze.DebugSnippyOverrideUrl]:"",[ze.AgentDebugLogsDirectory]:void 0,[ze.ClaudeCliPath]:void 0,[ze.CodexCliPath]:void 0,[ze.OtelEnabled]:!1,[ze.OtelEndpoint]:void 0,[ze.OtelCaptureContent]:!1,[ze.OtelExporterType]:"otlp-http",[ze.OtelProtocol]:"",[ze.OtelOutfile]:"",[ze.OtelServiceName]:"",[ze.OtelResourceAttributes]:{},[ze.FetchStrategy]:"auto",[ze.ToolConfirmAutoApprove]:!1,[ze.AutoApproveUnmatchedTerminal]:void 0,[ze.AutoApproveUnmatchedFileOp]:void 0,[ze.TrustToolAnnotations]:!1,[ze.AutoApproveYoloMode]:!1,[ze.EditorHandlesAllConfirmation]:!1,[ze.MaxToolCallingLoop]:25,[ze.AutoCompress]:!1,[ze.AnthropicThinkingBudgetToken]:1024,[ze.EnableSkills]:!1,[ze.EnableHooks]:!1,[ze.EnableSandbox]:!1,[ze.SandboxAddCurrentWorkingDirectory]:void 0,[ze.SandboxUserPolicy]:void 0,[ze.EnablePlugins]:!1,[ze.EnableCustomAgents]:!0,[ze.EnableOrgCustomAgents]:!0,[ze.UseAgentsMd]:!1,[ze.UseNestedAgentsMd]:!1,[ze.UseClaudeMd]:!1,[ze.UseNestedClaudeMd]:!1,[ze.UseSubsetMatching]:null,[ze.ContextProviderTimeBudget]:void 0,[ze.DebugOverrideCapiUrl]:"",[ze.DebugTestOverrideCapiUrl]:"",[ze.DebugOverrideProxyUrl]:"",[ze.DebugTestOverrideProxyUrl]:"",[ze.DebugOverrideEngine]:"",[ze.AlwaysRequestMultiline]:void 0,[ze.ModelAlwaysTerminatesSingleline]:void 0,[ze.TrimCompletionsAggressively]:void 0,[ze.CompletionsDebounce]:void 0,[ze.NESXTab]:void 0,[ze.UseWorkspaceContextCoordinator]:void 0,[ze.ShowWorkspaceContextDebugger]:!1,[ze.CompletionsDelay]:void 0,[ze.UseSplitContextPrompt]:void 0,[ze.UseCompletionsComparisonPanel]:void 0,[ze.ComparisonPanelModelIds]:void 0,[ze.ComparisonPanelRandomizedMode]:void 0,[ze.UseFetchFetcher]:void 0,[ze.UseChatLibCompletions]:void 0,[ze.TranscriptDirectory]:void 0,[ze.EnableThinking]:!0,[ze.ShowEditorCompletions]:void 0,[ze.EnableAutoCompletions]:void 0,[ze.DelayCompletions]:void 0,[ze.FilterCompletions]:void 0,[ze.Enable]:{"*":!0,plaintext:!1,markdown:!1,scminput:!1},[ze.UserSelectedCompletionModel]:"",[ze.EnableQuotaThresholdWarning]:!0,[ze.DebugFilterLogCategories]:[],[ze.DebugOverrideEngineLegacy]:"",[ze.DebugTestOverrideProxyUrlLegacy]:"",[ze.DebugOverrideProxyUrlLegacy]:"",[ze.DebugTestOverrideCapiUrlLegacy]:"",[ze.DebugOverrideCapiUrlLegacy]:"",[ze.HookErrorOccurredStackTrace]:!1,[ze.NESUseExplicitRejection]:!1,[ze.NESModelConfiguration]:void 0,[ze.AppendPromptTokenCache]:"",[ze.PromptPersistBasePath]:void 0,[ze.AnthropicMessagesEndpoint]:"",[ze.UseHelixFetcher]:"",[ze.EnableMapCodeFallback]:"enabled",[ze.SearchAgent]:"",[ze.PerfEnabled]:"",[ze.NESExtendedRange]:!1,[ze.NESEagerness]:"auto",[ze.AuthTokenEncryption]:"",[ze.EnableWorkspaceIndex]:!1},Tze=new Map(Object.entries(OQo));for(let t of Object.values(ze))if(!Tze.has(t))throw new Error(`Missing config default value ${uNt}.${t}`);function kt(t,e){return t.get(Go).getConfig(e)}a(kt,"getConfig");function av(t){let e=kt(t,ze.EnableWorkspaceIndex);return e===!0||e==="true"}a(av,"isSemanticSearchEnabled");function crn(t){return t.get(Go).dumpForTelemetry()}a(crn,"dumpForTelemetry");var _s=class{constructor(){this.packageJson=awe}static{a(this,"BuildInfo")}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 m5t(t){return t.get(_s).isProduction()}a(m5t,"isProduction");function han(t){return t.get(_s).getBuildType()==="dev"}a(han,"isDevBuild");function P7(t){return t.get(_s).getBuildType()}a(P7,"getBuildType");function lrn(t){return t.get(_s).getBuild()}a(lrn,"getBuild");function MT(t){return t.get(_s).getVersion()}a(MT,"getVersion");var za=class{constructor(e,r,n,o="none",s="desktop"){this.sessionId=e;this.machineId=r;this.devDeviceId=n;this.remoteName=o;this.uiKind=s}static{a(this,"EditorSession")}};function CT({name:t,version:e}){return`${t}/${e}`}a(CT,"formatNameAndVersion");var Ir=class{static{a(this,"EditorAndPluginInfo")}getCopilotIntegrationId(){}getEditorPluginSpecificFilters(){return[]}getEditorIdentity(){return tVr({editor:this.getEditorInfo(),plugin:this.getEditorPluginInfo()})}isEditorPluginInfoKnown(){return!0}};function zWe(t){let e=t.getCopilotIntegrationId();if(e)return e;switch(t.getEditorPluginInfo().name){case"copilot-intellij":return"jetbrains-chat";case"copilot":case"copilot-vs":return;default:return"jetbrains-chat"}}a(zWe,"getIntegrationId");function pE(t){let e=t.get(Ir);return{"Editor-Version":CT(e.getEditorInfo()),"Editor-Plugin-Version":CT(e.getEditorPluginInfo()),"Copilot-Language-Server-Version":MT(t)}}a(pE,"editorVersionHeaders");var _0n="Iv1.b507a08c87ecfe98",BQo="350ee525b5da0e4a54c6e8e043edc1b99cc02f19",lle="Ov23liV9UpD7Rnfnskm3",LQo="5509a52e4c525cd594a6fba9147ff6cc2388dd9f",FQo={[_0n]:BQo,[lle]:LQo},fh=class{static{a(this,"GitHubAppInfo")}findAppIdToAuthenticate(){return this.githubAppId??_0n}findAppSecretToAuthenticate(){let e=this.findAppIdToAuthenticate(),r=FQo[e];if(!r)throw new Error(`GitHubAppInfo: No app secret found for app ID: ${e}`);return r}};function v0n(t){return kt(t,ze.AuthTokenEncryption)==="false"}a(v0n,"isAuthTokenEncryptionDisabled");p();var w0n=fe(require("node:crypto"));var mq=new pe("KeytarMasterKey"),S0n="copilot-language-server",T0n="oauth-token-key",I0n=5e3,R0n=32,a7t;function qQo(t){return a7t??=jQo(t).finally(()=>{a7t=void 0}),a7t}a(qQo,"resolveMasterKey");async function jQo(t){mq.info(t,"keytar-master-key: resolving master key");let e;try{e=await l7t.loadKeytar(),mq.info(t,"keytar-master-key: module loaded")}catch(n){return mq.warn(t,"keytar-master-key: @github/keytar failed to load",n),{diagnostics:c7t("loadModule",n)}}let r;try{r=await GQo(t,e)}catch(n){return n instanceof Ize?(mq.error(t,"keytar-master-key: existing entry is corrupt; refusing to overwrite",n),{diagnostics:c7t("corruptExistingEntry",n)}):(mq.warn(t,"keytar-master-key: master-key resolution failed",n),{diagnostics:c7t("getOrCreateMasterKey",n)})}return mq.info(t,`keytar-master-key: resolved (source=${r.source})`),{masterKey:r.key,diagnostics:{available:!0,masterKeySource:r.source}}}a(jQo,"doResolveMasterKey");function HQo(){return Promise.resolve().then(()=>fe(b0n()))}a(HQo,"loadKeytar");var l7t={resolveMasterKey:qQo,loadKeytar:HQo};async function GQo(t,e){let r=await x0n(e.getPassword(S0n,T0n),I0n,"getMasterKey");if(mq.info(t,`keytar-master-key: getPassword returned (found=${r!=null})`),r){let o=$Qo(r);if(o)return{key:o,source:"useExisting"};throw new Ize}let n=w0n.randomBytes(R0n);return await x0n(e.setPassword(S0n,T0n,n.toString("base64")),I0n,"setMasterKey"),mq.info(t,"keytar-master-key: setPassword (new key) completed"),{key:n,source:"createNew"}}a(GQo,"getOrCreateMasterKey");function x0n(t,e,r){return new Promise((n,o)=>{let s=setTimeout(()=>o(new Error(`${r}: timeout after ${e}ms`)),e);s.unref?.(),t.then(c=>{clearTimeout(s),n(c)},c=>{clearTimeout(s),o(c instanceof Error?c:new Error(`${r}: ${String(c)}`))})})}a(x0n,"withTimeout");var Ize=class extends Error{static{a(this,"CorruptMasterKeyError")}constructor(){super("keytar master-key entry present but undecodable"),this.name="CorruptMasterKeyError"}};function c7t(t,e){return{available:!1,errorPhase:t,error:e}}a(c7t,"unavailable");function $Qo(t){let e=Buffer.from(t,"base64");return e.length===R0n?e:void 0}a($Qo,"decodeMasterKey");p();var Sue=fe(require("node:crypto"));var VQo=0,f7t=1,JK=class extends Error{constructor(r,n,o){super(r,o?.cause!==void 0?{cause:o.cause}:void 0);this.kind=n;this.name="SecretUnwrapError"}static{a(this,"SecretUnwrapError")}},wze=class{static{a(this,"SecretCodec")}},d7t=class extends wze{constructor(){super(...arguments);this.schemaVersion=VQo}static{a(this,"PlaintextCodec")}encode(r){return Buffer.from(r,"utf8")}decode(r){return Buffer.from(r).toString("utf8")}},xze=12,u7t=16,k0n=32,Rze=class extends wze{constructor(r){super();this.key=r;this.schemaVersion=f7t;if(r.length!==k0n)throw new Error(`AesGcmCodec requires a ${k0n}-byte key, got ${r.length}`)}static{a(this,"AesGcmCodec")}encode(r){let n=Sue.randomBytes(xze),o=Sue.createCipheriv("aes-256-gcm",this.key,n),s=Buffer.concat([o.update(Buffer.from(r,"utf8")),o.final()]);return Buffer.concat([n,s,o.getAuthTag()])}decode(r){let n=Buffer.from(r);if(n.length<xze+u7t)throw new JK("decode: v1 ciphertext too short","malformed");let o=n.subarray(0,xze),s=n.subarray(n.length-u7t),c=n.subarray(xze,n.length-u7t);try{let l=Sue.createDecipheriv("aes-256-gcm",this.key,o);return l.setAuthTag(s),Buffer.concat([l.update(c),l.final()]).toString("utf8")}catch(l){throw new JK("decode: AES-GCM verification failed","tagMismatch",{cause:l})}}},p3=class t{constructor(e){this.readers=new Map;this.writer=e,this.readers.set(e.schemaVersion,e)}static{a(this,"SecretStorage")}addReader(e){this.readers.set(e.schemaVersion,e)}setWriter(e){this.writer=e,this.readers.set(e.schemaVersion,e)}wrap(e){return{schemaVersion:this.writer.schemaVersion,ciphertext:this.writer.encode(e)}}unwrap(e){let r=this.readers.get(e.schemaVersion);if(!r)throw new JK(`unwrap: unknown schemaVersion ${e.schemaVersion}`,"unknownVersion");return r.decode(e.ciphertext)}static plaintextOnly(){return new t(new d7t)}};p();p();function P0n(t){return{upsertToken:t.prepare(`
|
|
1948
1948
|
INSERT INTO oauth_tokens (
|
|
1949
1949
|
auth_authority, oauth_client_id, user_login, scopes,
|
|
1950
1950
|
token_ciphertext, token_schema_version, source_editor_id,
|
|
@@ -4011,7 +4011,7 @@ ${r.diff}`).join(`
|
|
|
4011
4011
|
|
|
4012
4012
|
`)}a(G3c,"summarizeFileChangeDiff");function $3c(t,e){if(t.length===1){let r=t[0];switch(r.kind){case"add":return`Create file ${r.path}`;case"delete":return`Delete file ${r.path}`;default:return`Modify file ${r.path}`}}return t.length>1?`Apply file changes to ${t.length} files`:e!==void 0?`Modify file ${e}`:"Apply file changes"}a($3c,"describeWriteIntention");function ixt(t){return typeof t=="string"?t:JSON.stringify(t)??""}a(ixt,"stringifyToolResult");p();var gM=fe(require("path"));function BYi(t,e){let r=gM.relative(t,e);return r===""||!r.startsWith("..")&&!gM.isAbsolute(r)}a(BYi,"isEqualOrChild");function LYi(t,e,r){if(!e||!r||!gM.isAbsolute(t))return t;let n=gM.resolve(e),o=gM.resolve(r),s=gM.resolve(t);if(n===o||!BYi(n,s))return t;let c=gM.resolve(o,gM.relative(n,s));return BYi(o,c)?c:t}a(LYi,"remapCodexReferencePath");var Eoe=fe(require("path"));Co();var lc=new pe("CodexAgentService");function UW(t){if(!t)return;let e=$o(t);return e||(Eoe.isAbsolute(t)?Eoe.normalize(t):void 0)}a(UW,"resolveWorkspaceCwd");function Aoe(t,e){return UW(t.cwd??t.thread.cwd)??e}a(Aoe,"resolveThreadCwd");var yoe=class{constructor(e){this.ctx=e;this.initialized=!1;this.processGeneration=0;this.sessions=new Map;this.stateService=new Ave,this.proxyServer=new X1t(e,this.stateService),this.notificationSender=e.get(ls),this.codexPath=this.resolveCodexPath()}static{a(this,"CodexAgentService")}async reattachSessionToCurrentProcess(e){try{let r=await this.processManager.sendRequest("thread/resume",{threadId:e.threadId,...e.cwd&&{cwd:e.cwd}});e.threadId=r.thread.id,e.cwd=Aoe(r,e.cwd)}catch(r){lc.warn(this.ctx,"Failed to reattach stale Codex session, creating fresh thread",{sessionId:e.sessionId,error:String(r)});let n=await this.processManager.sendRequest("thread/start",e.cwd?{cwd:e.cwd}:{});e.threadId=n.thread.id,e.cwd=Aoe(n,e.cwd)}e.processGeneration=this.processGeneration}resolveWorkspaceRootForCwd(e){if(e)try{return this.ctx.get(Qr).getWorkspaceFolders().map(n=>UW(n.uri)).filter(n=>n!==void 0).filter(n=>{let o=Eoe.relative(n,e);return o===""||!o.startsWith("..")&&!Eoe.isAbsolute(o)}).sort((n,o)=>o.length-n.length)[0]??e}catch(r){return lc.debug(this.ctx,"resolveWorkspaceRootForCwd: falling back to cwd",{cwd:e,error:String(r)}),e}}resolveCodexPath(){let e=kt(this.ctx,ze.CodexCliPath);if(e)return e;let r=process.env.CODEX_CLI_PATH;return r||(process.platform==="win32"?"codex.exe":"codex")}async ensureRunning(){if(this.processManager?.isRunning())return;if(this.codexPath=this.resolveCodexPath(),this.initialized=!1,!this.workspaceCwd)try{let r=this.ctx.get(Qr).getWorkspaceFolders();r.length>0&&(this.workspaceCwd=UW(r[0].uri))}catch{}let e=await this.proxyServer.start();this.processGeneration++,this.processManager=new Z1t(this.ctx,this.codexPath,e,this.workspaceCwd),this.processManager.onNotification((r,n)=>{this.handleNotification(r,n)}),this.processManager.onServerRequest("item/tool/requestUserInput",(r,n)=>{this.handleNotification("item/tool/requestUserInput",r,n)});for(let r of FYi)this.processManager.onServerRequest(r,(n,o)=>{this.handleNotification(r,n,o)});this.processManager.on("error",r=>{lc.error(this.ctx,"Codex process died",{error:r.message}),this.initialized=!1,this.emitErrorToAllSessions(r.message)}),this.processManager.start(),await new Promise(r=>setTimeout(r,1e3))}async ensureInitialized(){if(await this.ensureRunning(),!this.initialized)try{await this.processManager.sendRequest("initialize",{clientInfo:{name:"copilot-jetbrains",title:"GitHub Copilot for JetBrains",version:"1.0.0"},capabilities:{experimentalApi:!0}}),this.processManager.sendNotification("initialized",{}),this.initialized=!0,await new Promise(e=>setTimeout(e,300))}catch(e){let r=e instanceof Error?e.message:String(e);throw new Error(`Failed to initialize Codex process: ${r}`)}}async createSession(e){return kh(this.ctx,"codexAgent.createSession",async r=>{lc.info(this.ctx,"createSession",{clientSessionId:e.sessionId,model:e.model});let n=UW(e.workspaceFolder?.uri),o=UW(e.mcpDirectory);!this.workspaceCwd&&n&&(this.workspaceCwd=n),await this.ensureInitialized();let s=await this.processManager.sendRequest("thread/start",{...n&&{cwd:n}}),c=Aoe(s,n),l=s.thread.id,u=new Date().toISOString();return this.sessions.set(l,{sessionId:l,threadId:s.thread.id,workspacePath:e.workspaceFolder?.uri,workspaceRoot:n,originalProjectRoot:o,cwd:c,processGeneration:this.processGeneration,model:e.model,reasoningEffort:e.reasoningEffort,startTime:u,modifiedTime:u,translatorState:yve()}),r.properties.sessionId=l,r.properties.modelId=e.model??"",{sessionId:l,workspacePath:e.workspaceFolder?.uri}})}async resumeSession(e){return kh(this.ctx,"codexAgent.resumeSession",async r=>{let n=e.sessionId;lc.info(this.ctx,"resumeSession",{threadId:n}),r.properties.sessionId=n;let o=UW(e.workspaceFolder?.uri),s=UW(e.mcpDirectory),c=this.sessions.get(n);if(c){let d=!1;e.workspaceFolder?.uri&&(c.workspacePath=e.workspaceFolder.uri),s&&(c.originalProjectRoot=s),o&&xg(o)!==xg(c.workspaceRoot??"")&&(c.workspaceRoot=o,c.cwd=o,d=!0),!this.processManager?.isRunning()&&c.cwd&&(this.workspaceCwd=c.cwd),await this.ensureInitialized(),(c.processGeneration!==this.processGeneration||d)&&await this.reattachSessionToCurrentProcess(c),r.properties.reason="inMemory";let f=await this.loadHistoricalEvents(c.sessionId,r,e.model??c.model);return r.measurements.eventCount=f?.length??0,{sessionId:c.sessionId,workspacePath:c.workspacePath,events:f}}let l=o??this.workspaceCwd;!this.workspaceCwd&&l&&(this.workspaceCwd=l),await this.ensureInitialized();try{let d=await this.processManager.sendRequest("thread/resume",{threadId:n,...l&&{cwd:l}}),f=Aoe(d,l),h=new Date().toISOString();this.sessions.set(n,{sessionId:n,threadId:d.thread.id,workspacePath:e.workspaceFolder?.uri,workspaceRoot:o??f,originalProjectRoot:s,cwd:f,processGeneration:this.processGeneration,model:e.model,reasoningEffort:e.reasoningEffort,startTime:h,modifiedTime:h,summary:"(resumed)",translatorState:yve()})}catch(d){let f=d instanceof Error?d.message:String(d);lc.warn(this.ctx,"resumeSession: thread/resume failed, creating fresh thread",{threadId:n,error:f});let h=await this.processManager.sendRequest("thread/start",l?{cwd:l}:{}),m=Aoe(h,l),g=new Date().toISOString();this.sessions.set(n,{sessionId:n,threadId:h.thread.id,workspacePath:e.workspaceFolder?.uri,workspaceRoot:o??m,originalProjectRoot:s,cwd:m,processGeneration:this.processGeneration,model:e.model,reasoningEffort:e.reasoningEffort,startTime:g,modifiedTime:g,summary:"(resumed - fresh)",translatorState:yve()}),r.properties.freshThread="true"}let u=await this.loadHistoricalEvents(n,r,e.model);return r.measurements.eventCount=u?.length??0,{sessionId:n,workspacePath:e.workspaceFolder?.uri,events:u}})}async loadHistoricalEvents(e,r,n){try{let o=await txt(e);if(!o){r.properties.rolloutMissing="true",lc.debug(this.ctx,"loadHistoricalEvents: rollout file not found",{threadId:e});return}let s=await rxt(o);if(!s){r.properties.rolloutReadFailed="true",lc.warn(this.ctx,"loadHistoricalEvents: rollout translation returned null",{threadId:e,rolloutPath:o});return}if(n)for(let c of s)c.type==="assistant.usage"&&c.data&&(c.data.model=n);return s}catch(o){let s=o instanceof Error?o.message:String(o);r.properties.rolloutReadFailed="true",lc.warn(this.ctx,"loadHistoricalEvents: error reading rollout",{threadId:e,error:s});return}}async sendMessage(e,r){return kh(this.ctx,"codexAgent.sendMessage",async n=>{lc.info(this.ctx,"sendMessage",{sessionId:e.sessionId}),n.properties.sessionId=e.sessionId,n.properties.modelId=e.model??"";let o=this.sessions.get(e.sessionId);if(!this.processManager?.isRunning()&&o?.cwd&&(this.workspaceCwd=o.cwd),await this.ensureInitialized(),o&&o.processGeneration!==this.processGeneration&&await this.reattachSessionToCurrentProcess(o),!o){lc.info(this.ctx,"sendMessage: session not in memory, auto-recovering");try{let d=await this.processManager.sendRequest("thread/resume",{threadId:e.sessionId}),f=Aoe(d,this.workspaceCwd),h=this.resolveWorkspaceRootForCwd(f),m=new Date().toISOString();o={sessionId:e.sessionId,threadId:d.thread.id,workspacePath:h?Po(h):void 0,workspaceRoot:h,cwd:f,processGeneration:this.processGeneration,model:e.model,reasoningEffort:e.reasoningEffort,startTime:m,modifiedTime:m,translatorState:yve()},this.sessions.set(e.sessionId,o)}catch(d){lc.warn(this.ctx,"sendMessage: thread/resume failed, creating fresh thread",{error:String(d)});let f=await this.processManager.sendRequest("thread/start",this.workspaceCwd?{cwd:this.workspaceCwd}:{}),h=Aoe(f,this.workspaceCwd),m=this.resolveWorkspaceRootForCwd(h),g=new Date().toISOString();o={sessionId:e.sessionId,threadId:f.thread.id,workspacePath:m?Po(m):void 0,workspaceRoot:m,cwd:h,processGeneration:this.processGeneration,model:e.model,reasoningEffort:e.reasoningEffort,startTime:g,modifiedTime:g,translatorState:yve()},this.sessions.set(e.sessionId,o)}}let s=[];if(e.references?.length){let d=e.references.filter(f=>f.type==="file").map(f=>{let h=UW(f.uri)??f.uri;return LYi(h,o.originalProjectRoot,o.workspaceRoot)});d.length>0&&s.push({type:"text",text:`[Referenced files: ${d.join(", ")}]
|
|
4013
4013
|
|
|
4014
|
-
`})}s.push({type:"text",text:e.message});let c=e.model||o.model,l=e.reasoningEffort??o.reasoningEffort;this.stateService.setActiveThread(o.threadId);let u=await this.processManager.sendRequest("turn/start",{...c?{model:c}:{},...l?{effort:l}:{},threadId:o.threadId,input:s});return o.turnId=u.turnId,e.model&&(o.model=e.model),e.reasoningEffort&&(o.reasoningEffort=e.reasoningEffort),o.modifiedTime=new Date().toISOString(),o.summary||(o.summary=e.message.slice(0,100)),n.measurements.messageCharLen=e.message.length,{messageId:u.turnId}})}truncateHistory(e){return Promise.reject(new Error("truncateHistory is not supported for Codex sessions"))}forkSession(e){return Promise.reject(new Error("forkSession is not supported for Codex sessions"))}async stopSession(e){let r=this.sessions.get(e);r&&(this.drainAndCloseUserInputs(r,!0),this.drainPendingPermissions(e,!0),r.turnId&&(await this.processManager?.sendRequest("turn/interrupt",{threadId:r.threadId,turnId:r.turnId}),lc.info(this.ctx,"CodexAgentService.stopSession",{sessionId:e})))}destroySession(e){let r=this.sessions.get(e.sessionId);return r&&(this.drainAndCloseUserInputs(r,!0),this.drainPendingPermissions(e.sessionId,!0),this.stateService.clear(r.threadId)),this.sessions.delete(e.sessionId),lc.info(this.ctx,"CodexAgentService.destroySession",{sessionId:e.sessionId}),Promise.resolve({success:!0})}listSessions(e){let r=Array.from(this.sessions.values()).map(n=>({sessionId:n.sessionId,startTime:n.startTime,modifiedTime:n.modifiedTime,summary:n.summary,isRemote:!1,context:n.cwd?{cwd:n.cwd}:void 0}));return r.sort((n,o)=>o.modifiedTime.localeCompare(n.modifiedTime)),lc.info(this.ctx,`CodexAgentService.listSessions: ${r.length} sessions`),Promise.resolve({sessions:r})}async listModels(e){try{let o=(await this.ctx.get(vs).getMetadata(e)).filter(s=>s.supported_endpoints?.includes(JWe.Responses)&&s.model_picker_enabled&&s.capabilities.type==="chat"&&s.vendor!==void 0&&s.vendor.toLowerCase().includes("openai"));if(o.length>0){let s=o.map(_pe);return s.forEach(V3c),lc.info(this.ctx,`CodexAgentService.listModels: ${s.length} responses-capable models from CAPI`),{models:s}}lc.warn(this.ctx,"CodexAgentService.listModels: no responses-capable models found in CAPI")}catch(r){let n=r instanceof Error?r.message:String(r);lc.warn(this.ctx,`CodexAgentService.listModels: CAPI query failed: ${n}, using fallback`)}return{models:[{id:"codex-default",name:"Codex (Default)",preview:!1,capabilities:{family:"codex",supports:{vision:!1},limits:{max_context_window_tokens:128e3}}}]}}handleInteraction(e){lc.info(this.ctx,"handleInteraction",{sessionId:e.sessionId,requestId:e.requestId,type:e.type});let r=this.sessions.get(e.sessionId);if(!r)return lc.warn(this.ctx,"handleInteraction: unknown session",{sessionId:e.sessionId}),Promise.resolve({success:!1});switch(e.type){case"user_input":return this.handleUserInputInteraction(r,e);case"permission":return this.handlePermissionInteraction(r,e);default:return lc.warn(this.ctx,"handleInteraction: unsupported type for Codex",{sessionId:e.sessionId,type:e.type}),Promise.resolve({success:!1})}}handleUserInputInteraction(e,r){let n=e.translatorState,o=n.pendingUserInputs.get(r.requestId);if(!o)return lc.warn(this.ctx,"handleInteraction: user_input for unknown requestId",{sessionId:r.sessionId,requestId:r.requestId}),Promise.resolve({success:!1});n.pendingUserInputs.delete(r.requestId),this.emitUserInputCompleted(e.sessionId,r.requestId,r.response);let s=n.pendingUserInputAggregates.get(o.itemId);if(!s)return lc.warn(this.ctx,"handleInteraction: user_input aggregate missing",{sessionId:r.sessionId,requestId:r.requestId,itemId:o.itemId}),Promise.resolve({success:!1});if(s.answers.set(o.questionId,{answer:r.response.answer,wasFreeform:r.response.wasFreeform}),s.answers.size<s.expectedQuestionIds.size)return Promise.resolve({success:!0});n.pendingUserInputAggregates.delete(o.itemId);let c={};for(let[u,d]of s.answers)c[u]={answers:[d.answer]};let l={answers:c};try{return this.processManager?.sendRawResponse(s.requestJsonRpcId,l)??!1?Promise.resolve({success:!0}):(lc.error(this.ctx,"handleInteraction: Codex process refused user_input response",{sessionId:r.sessionId,requestId:r.requestId}),this.emitSessionError(e.sessionId,"process_write_failed","Codex process is not accepting input; the answer could not be delivered. Send a new message to retry."),Promise.resolve({success:!1}))}catch(u){let d=u instanceof Error?u.message:String(u);return lc.error(this.ctx,"handleInteraction: failed to deliver user_input response to Codex",{sessionId:r.sessionId,requestId:r.requestId,error:d}),this.emitSessionError(e.sessionId,"process_write_failed",d),Promise.resolve({success:!1})}}getPlanPath(e){return Promise.resolve(null)}handlePermissionInteraction(e,r){let n=this.stateService.takePendingPermission(e.sessionId,r.requestId);if(!n)return lc.warn(this.ctx,"handleInteraction: permission for unknown requestId",{sessionId:e.sessionId,requestId:r.requestId}),Promise.resolve({success:!1});let o=r.result.kind==="approve-once",s=UYi(n,o);if(n.codexJsonRpcId===void 0)return lc.warn(this.ctx,"handleInteraction: permission has no codexJsonRpcId, skipping reply",{sessionId:e.sessionId,requestId:r.requestId}),this.emitPermissionCompleted(e.sessionId,r.requestId,o?"approved":"denied"),Promise.resolve({success:!0});try{return this.processManager?.sendRawResponse(n.codexJsonRpcId,s)??!1?(this.emitPermissionCompleted(e.sessionId,r.requestId,o?"approved":"denied"),Promise.resolve({success:!0})):(lc.error(this.ctx,"handleInteraction: Codex process refused permission response",{sessionId:e.sessionId,requestId:r.requestId}),this.emitPermissionCompleted(e.sessionId,r.requestId,"denied"),this.emitSessionError(e.sessionId,"process_write_failed","Codex process is not accepting input; the permission response could not be delivered. Send a new message to retry."),Promise.resolve({success:!1}))}catch(c){let l=c instanceof Error?c.message:String(c);return lc.error(this.ctx,"handleInteraction: failed to deliver permission response to Codex",{sessionId:e.sessionId,requestId:r.requestId,error:l}),this.emitPermissionCompleted(e.sessionId,r.requestId,"denied"),this.emitSessionError(e.sessionId,"process_write_failed",l),Promise.resolve({success:!1})}}async enableRemote(e){await this.ensureInitialized();try{return await this.processManager.sendRequest("remoteControl/enable",{}),{remoteSteerable:!0}}catch{throw new Error("Codex remote control not available")}}async disableRemote(e){await this.ensureInitialized(),await this.processManager.sendRequest("remoteControl/disable",{})}getRemoteStatus(e){return{remoteSteerable:!1}}async compactHistory(e){await this.ensureInitialized();let r=this.sessions.get(e);return r?(await this.processManager.sendRequest("thread/compact/start",{threadId:r.threadId}),{success:!0,tokensRemoved:0,messagesRemoved:0,summaryContent:""}):{success:!1,tokensRemoved:0,messagesRemoved:0,summaryContent:""}}async stopCompactHistory(e){let r=this.sessions.get(e);return!r||!r.turnId?{aborted:!1}:(await this.processManager?.sendRequest("turn/interrupt",{threadId:r.threadId,turnId:r.turnId}),{aborted:!0})}handleNotification(e,r,n){lc.debug(this.ctx,`handleNotification: method=${e} requestJsonRpcId=${JSON.stringify(n)}`,{params:JSON.stringify(r).slice(0,500)});let s=r?.threadId;if(!s){lc.warn(this.ctx,`handleNotification: no threadId in params for method=${e}`);return}let c=this.findSessionByThreadId(s);if(!c)return;if(FYi.includes(e)){if(n===void 0)return;let f=r?.itemId;if(typeof f=="string"&&f.length>0){let h=r8r(e),m=n8r(f,h);this.stateService.setPendingPermission(c.sessionId,m,{codexJsonRpcId:n,method:e})}else lc.warn(this.ctx,`handleNotification: approval ${e} missing itemId, cannot correlate reply`)}if(e==="turn/started"){let f=r;f.turn?.id&&(c.turnId=f.turn.id)}let l;e==="turn/completed"&&(l={copilotUsageNanoAiu:this.stateService.takeCopilotUsageNanoAiuForThread(s)},this.stateService.setActiveThread(void 0));let u=MYi(e,r,c.translatorState,n,l);if(!u)return;let d=Array.isArray(u)?u:[u];for(let f of d)f.type==="assistant.usage"&&f.data&&c.model&&(f.data.model=c.model),this.notificationSender.sendBackgroundAgentSessionUpdate(c.sessionId,f,"CODEX")}findSessionByThreadId(e){for(let r of this.sessions.values())if(r.threadId===e)return r}emitUserInputCompleted(e,r,n){let o={id:Pt(),timestamp:new Date().toISOString(),type:"user_input.completed",data:{requestId:r,answer:n.answer,wasFreeform:n.wasFreeform}};this.notificationSender.sendBackgroundAgentSessionUpdate(e,o,"CODEX")}emitPermissionCompleted(e,r,n){let o={id:Pt(),timestamp:new Date().toISOString(),type:"permission.completed",data:{requestId:r,result:{kind:n}}};this.notificationSender.sendBackgroundAgentSessionUpdate(e,o,"CODEX")}emitSessionError(e,r,n){let o={id:Pt(),timestamp:new Date().toISOString(),type:"session.error",data:{errorType:r,message:n}};this.notificationSender.sendBackgroundAgentSessionUpdate(e,o,"CODEX");let s={id:Pt(),timestamp:new Date().toISOString(),type:"session.idle"};this.notificationSender.sendBackgroundAgentSessionUpdate(e,s,"CODEX")}drainAndCloseUserInputs(e,r){let n=e.translatorState;if(n.pendingUserInputAggregates.size===0){n.pendingUserInputs.clear();return}for(let[o,s]of n.pendingUserInputAggregates){if(r&&this.processManager?.isRunning()){let c={};for(let l of s.expectedQuestionIds)c[l]={answers:[]};try{this.processManager.sendRawResponse(s.requestJsonRpcId,{answers:c})}catch(l){let u=l instanceof Error?l.message:String(l);lc.warn(this.ctx,"drainAndCloseUserInputs: failed to notify Codex",{sessionId:e.sessionId,itemId:o,error:u})}}for(let c of s.expectedQuestionIds)this.emitUserInputCompleted(e.sessionId,e8r(o,c),{answer:"",wasFreeform:!1})}n.pendingUserInputs.clear(),n.pendingUserInputAggregates.clear()}drainPendingPermissions(e,r){let n=this.stateService.takeAllPendingPermissionsForSession(e);for(let[o,s]of n){if(r&&this.processManager?.isRunning()&&s.codexJsonRpcId!==void 0)try{this.processManager.sendRawResponse(s.codexJsonRpcId,UYi(s,!1))}catch(c){let l=c instanceof Error?c.message:String(c);lc.warn(this.ctx,"drainPendingPermissions: failed to notify Codex",{sessionId:e,requestId:o,error:l})}this.emitPermissionCompleted(e,o,"denied")}}emitErrorToAllSessions(e){for(let r of this.sessions.values())this.drainAndCloseUserInputs(r,!1),this.drainPendingPermissions(r.sessionId,!1),this.emitSessionError(r.sessionId,"process_crash",`Codex process terminated unexpectedly: ${e}. Send a new message to retry.`)}async dispose(){for(let e of this.sessions.values())this.drainAndCloseUserInputs(e,!1),this.drainPendingPermissions(e.sessionId,!1);await this.processManager?.stop(),await this.proxyServer.stop()}};function V3c(t){let e=t.billing?.token_prices;if(!e||!("long_context"in e))return;let{long_context:r,...n}=e;Object.keys(n).length>0?t.billing.token_prices=n:(delete t.billing.token_prices,Object.keys(t.billing).length===0&&delete t.billing)}a(V3c,"stripLongContextPricing");var FYi=["item/commandExecution/requestApproval","item/fileChange/requestApproval","item/permissions/requestApproval"];function UYi(t,e){return{decision:e?"accept":"decline"}}a(UYi,"responseFor");var QYi=new pe("AgentRouter"),qYi="AgentRouter";function ax(t){return t.agentProvider??"BACKGROUND"}a(ax,"resolveProvider");var Va=class{constructor(e){this.ctx=e}static{a(this,"AgentRouter")}serviceFor(e){switch(e){case"BACKGROUND":return this.ctx.get(ws);case"CLAUDE":return this.ctx.get(f8);case"CODEX":return this.ctx.get(yoe);case"CLOUD":return this.ctx.get(goe)}}logDispatch(e,r){QYi.debug(this.ctx,`${qYi}.${e}`,r)}create(e){this.logDispatch("create",e);let r=ax(e);return this.serviceFor(r).createSession(e)}resume(e){this.logDispatch("resume",e);let r=ax(e);return this.serviceFor(r).resumeSession(e)}send(e,r){this.logDispatch("send",e);let n=ax(e);return this.serviceFor(n).sendMessage(e,r)}truncateHistory(e){this.logDispatch("truncateHistory",e);let r=e.providerName;return this.serviceFor(r).truncateHistory({sessionId:e.sessionId,eventId:e.eventId,providerName:e.providerName})}forkSession(e){this.logDispatch("forkSession",e);let r=e.providerName;return this.serviceFor(r).forkSession(e)}stop(e){this.logDispatch("stop",e);let r=ax(e);return this.serviceFor(r).stopSession(e.sessionId)}destroy(e){this.logDispatch("destroy",e);let r=ax(e);return this.serviceFor(r).destroySession(e)}listSessions(e){this.logDispatch("listSessions",e);let r=ax(e);return this.serviceFor(r).listSessions(e)}listModels(e){this.logDispatch("listModels",e);let r=ax(e);return this.serviceFor(r).listModels(e.forceRefresh)}interaction(e){this.logDispatch("interaction",e);let r=ax(e);return this.serviceFor(r).handleInteraction(e)}async getPlanPath(e){this.logDispatch("getPlanPath",e);let r=ax(e);return{path:await this.serviceFor(r).getPlanPath(e.sessionId)}}enableRemote(e){this.logDispatch("enableRemote",e);let r=ax(e);return this.serviceFor(r).enableRemote(e.sessionId)}async disableRemote(e){this.logDispatch("disableRemote",e);let r=ax(e);return await this.serviceFor(r).disableRemote(e.sessionId),{success:!0}}getRemoteStatus(e){this.logDispatch("getRemoteStatus",e);let r=ax(e);try{return Promise.resolve(this.serviceFor(r).getRemoteStatus(e.sessionId))}catch(n){return Promise.reject(n instanceof Error?n:new Error(String(n)))}}async compactHistory(e,r){this.logDispatch("compactHistory",e);let n=ax(e),o=this.serviceFor(n),s=r?.onCancellationRequested(()=>{QYi.info(this.ctx,`${qYi}.compactHistory: cancellation requested, aborting compaction`,{sessionId:e.sessionId}),o.stopCompactHistory(e.sessionId)});try{return await o.compactHistory(e.sessionId)}finally{s?.dispose()}}};p();p();var W3c=b.Union([b.String(),b.Number()]),Ii=b.String(),_ve=b.Optional(b.String()),z3c=b.Object({name:b.String(),description:b.String(),title:b.Optional(b.String()),parameters:b.Optional(b.Record(b.String(),b.Unknown())),overridesBuiltInTool:b.Optional(b.Boolean()),skipPermission:b.Optional(b.Boolean())}),i8r=b.Array(z3c),TUe=b.Union([b.Literal("default"),b.Literal("long_context")]),o8r=b.String({minLength:1,pattern:"\\S"}),s8r=b.String({minLength:1,pattern:"\\S"}),vve=b.Object({model:o8r,modelProvider:b.Optional(s8r),reasoningEffort:_ve,workspaceFolder:b.Object({uri:b.String(),name:b.Optional(b.String())}),sessionWorkspaceFolders:b.Optional(b.Array(b.Object({uri:b.String(),name:b.Optional(b.String())}))),globalAgentsMdInstructions:b.Optional(b.String()),globalClaudeMdInstructions:b.Optional(b.String()),externalToolDefinitions:b.Optional(i8r),useAgentsMdFile:b.Optional(b.Boolean()),useNestedAgentsMdFiles:b.Optional(b.Boolean()),useClaudeMdFile:b.Optional(b.Boolean()),useNestedClaudeMdFiles:b.Optional(b.Boolean()),inlineConfinedFile:b.Optional(b.String()),mcpDirectory:b.Optional(b.String())});async function ai(t){try{return[await t(),null]}catch(e){let r=rB(e),n=e instanceof dH?e.data:void 0;return[null,{code:Je.InternalError,message:r,...n!==void 0?{data:n}:{}}]}}a(ai,"withServiceErrorHandling");var jYi=new pe("BackgroundAgent.compactHistory"),Y3c=b.Object({sessionId:Ii});async function a8r(t,e,r){jYi.info(t,"handleBackgroundAgentCompactHistory called",{sessionId:r.sessionId});let n=t.get(ws),o=e.onCancellationRequested(()=>{jYi.info(t,"handleBackgroundAgentCompactHistory: cancellation requested, aborting compaction",{sessionId:r.sessionId}),n.stopCompactHistory(r.sessionId)});try{return await ai(async()=>n.compactHistory(r.sessionId))}finally{o.dispose()}}a(a8r,"handleBackgroundAgentCompactHistoryChecked");var pmh=xe(Y3c,a8r);p();var IUe=b.Union(Object.values(uf).map(t=>b.Literal(t))),ol=b.Optional(IUe),oxt=b.Intersect([b.Omit(vve,["model","modelProvider"]),b.Object({model:b.Optional(b.String()),modelProvider:b.Optional(b.String()),agentProvider:ol})]);var HYi=new pe("BackgroundAgent.compactHistory"),K3c=b.Object({sessionId:Ii,agentProvider:ol});async function J3c(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return a8r(t,e,r);HYi.info(t,"handleAgentCompactHistory called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.compactHistory(s,e);return HYi.info(t,"compactHistory succeeded"),c})}a(J3c,"handleAgentCompactHistoryChecked");var GYi=xe(K3c,J3c);p();p();var $Yi=new pe("BackgroundAgent.create"),Z3c=b.Intersect([b.Object({sessionId:b.Optional(b.String())}),vve]);async function X3c(t,e,r){$Yi.info(t,"handleBackgroundAgentCreate called",{model:r.model,workspaceFolder:r.workspaceFolder});let n=t.get(ws),o={sessionId:r.sessionId,model:r.model,modelProvider:r.modelProvider,reasoningEffort:r.reasoningEffort,workspaceFolder:r.workspaceFolder,sessionWorkspaceFolders:r.sessionWorkspaceFolders,globalAgentsMdInstructions:r.globalAgentsMdInstructions,globalClaudeMdInstructions:r.globalClaudeMdInstructions,externalToolDefinitions:r.externalToolDefinitions,useAgentsMdFile:r.useAgentsMdFile,useNestedAgentsMdFiles:r.useNestedAgentsMdFiles,useClaudeMdFile:r.useClaudeMdFile,useNestedClaudeMdFiles:r.useNestedClaudeMdFiles,inlineConfinedFile:r.inlineConfinedFile,mcpDirectory:r.mcpDirectory};return ai(async()=>{let s=await n.createSession(o);return $Yi.info(t,"createSession succeeded:",s.sessionId),{sessionId:s.sessionId,workspacePath:s.workspacePath}})}a(X3c,"handleBackgroundAgentCreateChecked");var VYi=xe(Z3c,X3c);var WYi=new pe("BackgroundAgent.create"),eUc=b.Intersect([b.Object({sessionId:b.Optional(b.String())}),oxt]);async function tUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return VYi(t,e,r);WYi.info(t,"handleAgentCreate called",{agentProvider:r.agentProvider,model:r.model,workspaceFolder:r.workspaceFolder});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.create(s);return WYi.info(t,"create succeeded:",c.sessionId),c})}a(tUc,"handleAgentCreateChecked");var zYi=xe(eUc,tUc);p();p();var rUc=b.Object({sessionId:Ii});async function c8r(t,e,r){let n=t.get(ws);return ai(async()=>({success:(await n.destroySession({sessionId:r.sessionId})).success}))}a(c8r,"handleBackgroundAgentDestroyChecked");var sgh=xe(rUc,c8r);var nUc=new pe("BackgroundAgent.destroy"),iUc=b.Object({sessionId:Ii,agentProvider:ol});async function oUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return c8r(t,e,r);nUc.info(t,"handleAgentDestroy called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>o.destroy(s))}a(oUc,"handleAgentDestroyChecked");var YYi=xe(iUc,oUc);p();p();var sUc=new pe("BackgroundAgent.disableRemote"),aUc=b.Object({sessionId:Ii});async function l8r(t,e,r){sUc.info(t,"handleBackgroundAgentDisableRemote called",{sessionId:r.sessionId});let n=t.get(ws);return ai(async()=>(await n.disableRemote(r.sessionId),{success:!0}))}a(l8r,"handleBackgroundAgentDisableRemoteChecked");var xgh=xe(aUc,l8r);var KYi=new pe("BackgroundAgent.disableRemote"),cUc=b.Object({sessionId:Ii,agentProvider:ol});async function lUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return l8r(t,e,r);KYi.info(t,"handleAgentDisableRemote called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.disableRemote(s);return KYi.info(t,"disableRemote succeeded"),c})}a(lUc,"handleAgentDisableRemoteChecked");var JYi=xe(cUc,lUc);p();p();var uUc=new pe("BackgroundAgent.enableRemote"),dUc=b.Object({sessionId:Ii});async function u8r(t,e,r){uUc.info(t,"handleBackgroundAgentEnableRemote called",{sessionId:r.sessionId});let n=t.get(ws);return ai(async()=>n.enableRemote(r.sessionId))}a(u8r,"handleBackgroundAgentEnableRemoteChecked");var zgh=xe(dUc,u8r);var ZYi=new pe("BackgroundAgent.enableRemote"),fUc=b.Object({sessionId:Ii,agentProvider:ol});async function pUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return u8r(t,e,r);ZYi.info(t,"handleAgentEnableRemote called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.enableRemote(s);return ZYi.info(t,"enableRemote succeeded"),c})}a(pUc,"handleAgentEnableRemoteChecked");var XYi=xe(fUc,pUc);p();var hUc=b.Object({sessionId:Ii,toEventId:b.Optional(b.String()),name:b.Optional(b.String()),agentProvider:IUe});async function mUc(t,e,r){let n=t.get(Va);return ai(async()=>n.forkSession({sessionId:r.sessionId,toEventId:r.toEventId,name:r.name,providerName:r.agentProvider}))}a(mUc,"handleAgentForkChecked");var eKi=xe(hUc,mUc);p();p();var gUc=b.Object({sessionId:Ii});async function d8r(t,e,r){let n=t.get(ws);return ai(async()=>({path:await n.getPlanPath(r.sessionId)}))}a(d8r,"handleBackgroundAgentGetPlanPathChecked");var C0h=xe(gUc,d8r);var AUc=new pe("BackgroundAgent.getPlanPath"),yUc=b.Object({sessionId:Ii,agentProvider:ol});async function EUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return d8r(t,e,r);AUc.info(t,"handleAgentGetPlanPath called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>o.getPlanPath(s))}a(EUc,"handleAgentGetPlanPathChecked");var tKi=xe(yUc,EUc);p();p();var _Uc=new pe("BackgroundAgent.getRemoteStatus"),vUc=b.Object({sessionId:Ii});async function f8r(t,e,r){_Uc.info(t,"handleBackgroundAgentGetRemoteStatus called",{sessionId:r.sessionId});let n=t.get(ws);return ai(()=>Promise.resolve(n.getRemoteStatus(r.sessionId)))}a(f8r,"handleBackgroundAgentGetRemoteStatusChecked");var H0h=xe(vUc,f8r);var CUc=new pe("BackgroundAgent.getRemoteStatus"),bUc=b.Object({sessionId:Ii,agentProvider:ol});async function SUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return f8r(t,e,r);CUc.info(t,"handleAgentGetRemoteStatus called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>o.getRemoteStatus(s))}a(SUc,"handleAgentGetRemoteStatusChecked");var rKi=xe(bUc,SUc);p();p();var TUc=new pe("BackgroundAgent.interaction"),IUc=b.Union([b.Object({kind:b.Literal("approve-once")}),b.Object({kind:b.Literal("denied-by-rules"),rules:b.Array(b.Unknown())}),b.Object({kind:b.Literal("denied-no-approval-rule-and-could-not-request-from-user")}),b.Object({kind:b.Literal("denied-interactively-by-user"),feedback:b.Optional(b.String())}),b.Object({kind:b.Literal("denied-by-content-exclusion-policy"),path:b.String(),message:b.String()})]),xUc=b.Object({answer:b.String(),wasFreeform:b.Boolean()}),wUc=b.Object({action:b.Union([b.Literal("accept"),b.Literal("decline"),b.Literal("cancel")]),content:b.Optional(b.Record(b.String(),b.Union([b.String(),b.Number(),b.Boolean(),b.Array(b.String())])))}),RUc=b.Object({approved:b.Boolean(),selectedAction:b.Optional(b.Union([b.Literal("exit_only"),b.Literal("interactive"),b.Literal("autopilot"),b.Literal("autopilot_fleet")])),autoApproveEdits:b.Optional(b.Boolean()),feedback:b.Optional(b.String())}),kUc=b.Union([b.Object({handled:b.Literal(!0),stopProcessingQueue:b.Optional(b.Boolean())}),b.Object({handled:b.Literal(!1)})]),PUc=b.Union([b.String(),b.Object({textResultForLlm:b.String(),binaryResultsForLlm:b.Optional(b.Array(b.Object({data:b.String(),mimeType:b.String(),type:b.Union([b.Literal("resource"),b.Literal("image")]),description:b.Optional(b.String())}))),resultType:b.Union([b.Literal("success"),b.Literal("failure"),b.Literal("rejected"),b.Literal("denied")]),error:b.Optional(b.String())})]),DUc=b.Union([b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("permission"),result:IUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("user_input"),response:xUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("elicitation"),response:wUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("exit_plan_mode"),response:RUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("queued_command"),result:kUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("external_tool"),result:PUc})]);async function p8r(t,e,r){TUc.info(t,"handleBackgroundAgentInteraction called",{sessionId:r.sessionId,type:r.type,requestId:r.requestId});let n=t.get(ws);return ai(async()=>await n.handleInteraction(r))}a(p8r,"handleBackgroundAgentInteractionChecked");var uAh=xe(DUc,p8r);var nKi=new pe("BackgroundAgent.interaction"),NUc=b.Union([b.Object({kind:b.Literal("approve-once")}),b.Object({kind:b.Literal("denied-by-rules"),rules:b.Array(b.Unknown())}),b.Object({kind:b.Literal("denied-no-approval-rule-and-could-not-request-from-user")}),b.Object({kind:b.Literal("denied-interactively-by-user"),feedback:b.Optional(b.String())}),b.Object({kind:b.Literal("denied-by-content-exclusion-policy"),path:b.String(),message:b.String()})]),MUc=b.Object({answer:b.String(),wasFreeform:b.Boolean()}),OUc=b.Object({action:b.Union([b.Literal("accept"),b.Literal("decline"),b.Literal("cancel")]),content:b.Optional(b.Record(b.String(),b.Union([b.String(),b.Number(),b.Boolean(),b.Array(b.String())])))}),BUc=b.Object({approved:b.Boolean(),selectedAction:b.Optional(b.Union([b.Literal("exit_only"),b.Literal("interactive"),b.Literal("autopilot"),b.Literal("autopilot_fleet")])),autoApproveEdits:b.Optional(b.Boolean()),feedback:b.Optional(b.String())}),LUc=b.Union([b.Object({handled:b.Literal(!0),stopProcessingQueue:b.Optional(b.Boolean())}),b.Object({handled:b.Literal(!1)})]),FUc=b.Union([b.String(),b.Object({textResultForLlm:b.String(),binaryResultsForLlm:b.Optional(b.Array(b.Object({data:b.String(),mimeType:b.String(),type:b.Union([b.Literal("resource"),b.Literal("image")]),description:b.Optional(b.String())}))),resultType:b.Union([b.Literal("success"),b.Literal("failure"),b.Literal("rejected"),b.Literal("denied")]),error:b.Optional(b.String())})]),UUc=b.Union([b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("permission"),result:NUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("user_input"),response:MUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("elicitation"),response:OUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("exit_plan_mode"),response:BUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("queued_command"),result:LUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("external_tool"),result:FUc,agentProvider:ol})]);async function QUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return p8r(t,e,r);nKi.info(t,"handleAgentInteraction called",{agentProvider:r.agentProvider,sessionId:r.sessionId,type:r.type,requestId:r.requestId});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.interaction(s);return nKi.info(t,"interaction succeeded"),c})}a(QUc,"handleAgentInteractionChecked");var iKi=xe(UUc,QUc);p();p();var oKi=new pe("BackgroundAgent.listSessions"),qUc=b.Object({cwd:b.Optional(b.String()),gitRoot:b.Optional(b.String()),repository:b.Optional(b.String()),branch:b.Optional(b.String())});async function h8r(t,e,r){oKi.info(t,"handleBackgroundAgentSessionsList called",r);let n=t.get(ws);return ai(async()=>{let o=await n.listSessions(r);return oKi.info(t,"listSessions succeeded, returning",o.sessions.length,"sessions"),o})}a(h8r,"handleBackgroundAgentSessionsListChecked");var DAh=xe(qUc,h8r);var m8r=new pe("BackgroundAgent.listSessions"),jUc=b.Object({cwd:b.Optional(b.String()),gitRoot:b.Optional(b.String()),repository:b.Optional(b.String()),branch:b.Optional(b.String()),agentProvider:ol}),HUc=new Set(Object.values(uf));async function GUc(t,e,r){let n=r.agentProvider??"BACKGROUND";if(!HUc.has(n))return m8r.info(t,`listSessions: no sessions for unsupported provider '${n}', returning empty`),[{sessions:[]},null];if(r.cwd=r.cwd&&$o(r.cwd),r.gitRoot=r.gitRoot&&$o(r.gitRoot),n==="BACKGROUND")return h8r(t,e,r);m8r.info(t,"handleAgentSessionsList called",r);let o=t.get(Va),s=r;return ai(async()=>{let c=await o.listSessions(s);return m8r.info(t,"listSessions succeeded, returning",c.sessions.length,"sessions"),c})}a(GUc,"handleAgentSessionsListChecked");var sKi=xe(jUc,GUc);p();p();var aKi=new pe("BackgroundAgent.listModels"),$Uc=b.Object({forceRefresh:b.Optional(b.Boolean())});async function g8r(t,e,r){aKi.info(t,"handleBackgroundAgentListModels called",{forceRefresh:r.forceRefresh});let n=t.get(ws);return ai(async()=>{let o=await n.listModels(r.forceRefresh);return aKi.info(t,"listModels succeeded, returning",o.models.length,"models"),o})}a(g8r,"handleBackgroundAgentListModelsChecked");var tyh=xe($Uc,g8r);var cKi=new pe("BackgroundAgent.listModels"),VUc=b.Object({forceRefresh:b.Optional(b.Boolean()),agentProvider:ol});async function WUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return g8r(t,e,r);cKi.info(t,"handleAgentListModels called",{agentProvider:r.agentProvider,forceRefresh:r.forceRefresh});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.listModels(s);return cKi.info(t,"listModels succeeded, returning",c.models.length,"models"),c})}a(WUc,"handleAgentListModelsChecked");var lKi=xe(VUc,WUc);p();p();var uKi=new pe("BackgroundAgent.resume"),zUc=b.Intersect([b.Object({sessionId:Ii}),vve]);async function YUc(t,e,r){uKi.info(t,"handleBackgroundAgentResume called",{sessionId:r.sessionId,model:r.model});let n=t.get(ws),o={sessionId:r.sessionId,model:r.model,modelProvider:r.modelProvider,reasoningEffort:r.reasoningEffort,workspaceFolder:r.workspaceFolder,sessionWorkspaceFolders:r.sessionWorkspaceFolders,globalAgentsMdInstructions:r.globalAgentsMdInstructions,globalClaudeMdInstructions:r.globalClaudeMdInstructions,externalToolDefinitions:r.externalToolDefinitions,useAgentsMdFile:r.useAgentsMdFile,useNestedAgentsMdFiles:r.useNestedAgentsMdFiles,useClaudeMdFile:r.useClaudeMdFile,useNestedClaudeMdFiles:r.useNestedClaudeMdFiles,mcpDirectory:r.mcpDirectory};return ai(async()=>{let s=await n.resumeSession(o);return uKi.info(t,"resumeSession succeeded:",s.sessionId),{sessionId:s.sessionId,workspacePath:s.workspacePath,events:s.events}})}a(YUc,"handleBackgroundAgentResumeChecked");var dKi=xe(zUc,YUc);var fKi=new pe("BackgroundAgent.resume"),KUc=b.Intersect([b.Object({sessionId:Ii}),oxt]);async function JUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return dKi(t,e,r);fKi.info(t,"handleAgentResume called",{agentProvider:r.agentProvider,sessionId:r.sessionId,model:r.model});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.resume(s);return fKi.info(t,"resume succeeded:",c.sessionId),c})}a(JUc,"handleAgentResumeChecked");var pKi=xe(KUc,JUc);p();p();var ZUc=["interactive","plan","autopilot"],XUc=b.Union(ZUc.map(t=>b.Literal(t))),e8c=b.String({minLength:1}),t8c=b.Object({sessionId:Ii,message:b.String(),model:o8r,modelProvider:b.Optional(s8r),reasoningEffort:_ve,references:b.Optional(b.Array(R5)),agentMode:b.Optional(XUc),chatMode:b.Optional(e8c),contextTier:b.Optional(TUe),sendMode:b.Optional(b.Union([b.Literal("enqueue"),b.Literal("immediate")]))});async function r8c(t,e,r){let n=t.get(ws),o={sessionId:r.sessionId,message:r.message,model:r.model,modelProvider:r.modelProvider,reasoningEffort:r.reasoningEffort,references:r.references,agentMode:r.agentMode,chatMode:r.chatMode,contextTier:r.contextTier,sendMode:r.sendMode};return ai(async()=>({messageId:(await n.sendMessage(o,e)).messageId}))}a(r8c,"handleBackgroundAgentSendChecked");var hKi=xe(t8c,r8c);var mKi=new pe("BackgroundAgent.send"),n8c=b.String(),i8c=b.String(),o8c=b.String({minLength:1}),s8c=b.Object({sessionId:Ii,message:b.String(),model:b.Optional(b.String()),modelProvider:b.Optional(n8c),reasoningEffort:_ve,references:b.Optional(b.Array(R5)),agentMode:b.Optional(i8c),chatMode:b.Optional(o8c),contextTier:b.Optional(TUe),agentProvider:ol});async function a8c(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return hKi(t,e,r);mKi.info(t,"handleAgentSend called",{agentProvider:r.agentProvider,sessionId:r.sessionId,model:r.model});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.send(s,e);return mKi.info(t,"resume succeeded:",c.messageId),c})}a(a8c,"handleAgentSendChecked");var gKi=xe(s8c,a8c);p();p();var c8c=new pe("BackgroundAgent.stop"),l8c=b.Object({sessionId:Ii});async function A8r(t,e,r){c8c.info(t,"handleBackgroundAgentStop called",{sessionId:r.sessionId});let n=t.get(ws);return ai(async()=>(await n.stopSession(r.sessionId),{success:!0}))}a(A8r,"handleBackgroundAgentStopChecked");var uEh=xe(l8c,A8r);var u8c=new pe("BackgroundAgent.stop"),d8c=b.Object({sessionId:Ii,agentProvider:ol});async function f8c(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND"){let[,c]=await A8r(t,e,r);return c?[null,c]:[void 0,null]}u8c.info(t,"handleAgentStop called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>o.stop(s))}a(f8c,"handleAgentStopChecked");var AKi=xe(d8c,f8c);p();var p8c=b.Object({sessionId:Ii,eventId:b.String(),agentProvider:IUe});async function h8c(t,e,r){let n=t.get(Va),o={sessionId:r.sessionId,eventId:r.eventId,providerName:r.agentProvider};return ai(async()=>n.truncateHistory(o))}a(h8c,"handleAgentTruncateHistoryChecked");var yKi=xe(p8c,h8c);p();var m8c=b.Object({});async function g8c(t,e,r){return e.isCancellationRequested?[null,{code:Je.RequestCancelled,message:"Request was cancelled"}]:[{tokens:await t.get(Ur).listAvailableTokens()},null]}a(g8c,"handleListAvailableTokensChecked");var EKi=xe(m8c,g8c);p();var A8c=b.Object({tokenId:b.Number()});async function y8c(t,e,r){return e.isCancellationRequested?[null,{code:Je.RequestCancelled,message:"Request was cancelled"}]:(await t.get(Ur).revokeTokenById(r.tokenId,"user_action"),[null,null])}a(y8c,"handleRemoveTokenChecked");var _Ki=xe(A8c,y8c);p();var E8c=b.Object({tokenId:b.Number()});async function _8c(t,e,r){return e.isCancellationRequested?[null,{code:Je.RequestCancelled,message:"Request was cancelled"}]:[await t.get(Ur).useExistingToken(r.tokenId),null]}a(_8c,"handleUseExistingTokenChecked");var vKi=xe(E8c,_8c);p();var v8c=new pe("BackgroundAgent.listCLIModels"),C8c=b.Object({forceRefresh:b.Optional(b.Boolean())});async function b8c(t,e,r){let n=t.get(ws);return ai(async()=>{let o=await n.listCLIModels(r.forceRefresh);return v8c.info(t,"listCLIModels succeeded, returning",o.length,"models"),o})}a(b8c,"handleBackgroundAgentListCLIModelsChecked");var CKi=xe(C8c,b8c);p();var bKi=b.Object({bridgeId:b.String({minLength:1}),ideName:b.String({minLength:1}),ideProcessId:b.Integer({minimum:1}),workspaceFolders:b.Array(b.String()),isTrusted:b.Boolean()}),S8c=b.Object({bridgeId:b.String({minLength:1})});async function T8c(t,e,r){return await t.get(Vv).register(r),[{success:!0},null]}a(T8c,"register");async function I8c(t,e,r){return await t.get(Vv).update(r),[{success:!0},null]}a(I8c,"update");async function x8c(t,e,r){return await t.get(Vv).unregister(r.bridgeId),[{success:!0},null]}a(x8c,"unregister");var SKi=xe(bKi,T8c),TKi=xe(bKi,I8c),IKi=xe(S8c,x8c);p();var w8c=b.Object({providerName:b.String()});async function R8c(t,e,r){try{let{providerName:n}=r,o=c5(n);if(o!==0)return[null,{code:Je.InvalidParams,message:`deleteApiKey is only supported for providers with GlobalApiKey auth type. Provider ${n} has auth type: ${o}`}];let s=new us(t.get(jn));return await s.removeAllModelConfigs(n),await s.deleteAPIKey(n,o),await s.deleteProviderConfig(n),[{success:!0,message:`API key and all model configurations deleted successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to delete API key: ${n instanceof Error?n.message:String(n)}`}]}}a(R8c,"handleBYOKDeleteApiKeyChecked");var xKi=xe(w8c,R8c);p();var k8c=b.Object({providerName:b.String(),modelId:b.String()});async function P8c(t,e,r){try{let n=new us(t.get(jn)),{providerName:o,modelId:s}=r,c=c5(o);return await n.removeModelConfig(o,s),c===1&&await n.deleteAPIKey(o,c,s),[{success:!0,message:`Model ${s} deleted successfully for provider ${o}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to delete model: ${n instanceof Error?n.message:String(n)}`}]}}a(P8c,"handleBYOKDeleteModelChecked");var wKi=xe(k8c,P8c);p();var D8c=b.Object({providerName:b.String()});async function N8c(t,e,r){try{let{providerName:n}=r;if(!n)return[null,{code:Je.InvalidRequest,message:"Provider name must not be empty."}];if(!gb(n))return[null,{code:Je.InvalidRequest,message:`Provider-level config deletion is not supported for the '${n}' provider.`}];let o=new us(t.get(jn));return await o.removeAllModelConfigs(n),await o.deleteProviderConfig(n),[{success:!0,message:`Provider config and all model configurations deleted successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to delete provider config: ${n instanceof Error?n.message:String(n)}`}]}}a(N8c,"handleBYOKDeleteProviderConfigChecked");var RKi=xe(D8c,N8c);p();var M8c=b.Object({providerName:b.Optional(b.String()),modelId:b.Optional(b.String())}),kKi="-api-key";async function O8c(t,e){let r=await e.listKeys("byok"),n=new Set(await t.listCustomProviderNames()),o=new Set(Object.keys(await t.getStoredModelConfigs(bi.Azure))),s=new Set(Object.values(bi).filter(u=>u!==bi.Azure)),c=`${bi.Azure}-`,l=[];for(let u of r){if(!u.endsWith(kKi))continue;let d=await e.read("byok",u);if(!d)continue;let f=u.slice(0,-kKi.length),h=f.startsWith(c)?f.slice(c.length):void 0;if(h!==void 0&&o.has(h)&&!n.has(f)){l.push({providerName:bi.Azure,modelId:h,apiKey:d});continue}(s.has(f)||n.has(f))&&l.push({providerName:f,apiKey:d})}return l}a(O8c,"listAllApiKeys");async function B8c(t,e,r){try{let n=new us(t.get(jn)),{providerName:o,modelId:s}=r;return o?[{apiKeys:[{apiKey:await n.getAPIKey(o,s)||void 0,providerName:o,modelId:s}]},null]:[{apiKeys:await O8c(n,t.get(jn))},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to get API key: ${n instanceof Error?n.message:String(n)}`}]}}a(B8c,"handleBYOKListApiKeysChecked");var PKi=xe(M8c,B8c);p();var L8c=b.Object({providerName:b.Optional(b.String())});async function F8c(t,e,r){try{let n=new us(t.get(jn)),o=r.providerName?TD(r.providerName)?[r.providerName]:[]:await n.listCustomProviderNames(),s=[];for(let c of o){let l=await n.getProviderConfig(c);s.push({providerName:c,groupName:l?.groupName,apiType:l?.apiType})}return[{providers:s},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to list provider configs: ${n instanceof Error?n.message:String(n)}`}]}}a(F8c,"handleBYOKListCustomProviderConfigsChecked");var DKi=xe(L8c,F8c);p();p();p();a6r();var pwt=class extends Ab{static{a(this,"AnthropicProvider")}constructor(e){super(bi.Anthropic,e)}async getAllModels(){await this.ensureKnownModelsCache();let e=await new us(this.ctx.get(jn)).getAPIKey(this.providerName);if(!e)throw new Error(`API key not found for provider: ${this.providerName}`);let r=new k4({apiKey:e,fetch:q9c(this.ctx.get(Zt))});try{let n=await r.models.list(),o=[];for(let s of n.data){let c=this._knownModels?.[s.id];c&&o.push({providerName:this.providerName,modelId:s.id,isRegistered:!1,isCustomModel:!1,modelCapabilities:c})}return o}catch(n){throw wJe.error(this.ctx,`Error fetching models from ${this.providerName} provider:`,n),n}}};function q9c(t){return async(e,r)=>{let n=j9c(e,r),o=G9c(r),s=await t.fetch(n,o);return V9c(s)}}a(q9c,"createAnthropicFetchAdapter");function j9c(t,e){return t instanceof Request?(H9c(t,e),t.url):t instanceof URL?t.toString():t}a(j9c,"convertInputToString");function H9c(t,e){e&&(e.headers??=t.headers,e.method??=t.method,!e.body&&!t.bodyUsed&&(e.body=t.body))}a(H9c,"mergeRequestInit");function G9c(t){let e;return t?.headers&&(e=$9c(t.headers)),{method:t?.method||"GET",headers:e,body:t?.body,signal:t?.signal||void 0}}a(G9c,"convertToFetchOptions");function $9c(t){let e={};if(t instanceof Headers)for(let[r,n]of t.entries())e[r]=n;else if(Array.isArray(t))for(let[r,n]of t)e[r]=n;else return t;return e}a($9c,"convertHeaders");async function V9c(t){let e=t.body(),r=null;if(e)r=W9c(e);else{let n=await t.text();r=Y9c(n)}return new globalThis.Response(r,{status:t.status,statusText:t.statusText,headers:new Headers(t.headers)})}a(V9c,"convertToWebResponse");function W9c(t){return new ReadableStream({start(e){let r=z9c(t,e);return()=>r()},cancel(){"destroy"in t&&typeof t.destroy=="function"&&t.destroy()}})}a(W9c,"createReadableStreamFromNodeStream");function z9c(t,e){let r=a(c=>{e.enqueue(new Uint8Array(c))},"onData"),n=a(()=>{e.close(),s()},"onEnd"),o=a(c=>{e.error(c),s()},"onError"),s=a(()=>{t.off("data",r),t.off("end",n),t.off("error",o)},"cleanup");return t.on("data",r),t.on("end",n),t.on("error",o),s}a(z9c,"setupStreamHandlers");function Y9c(t){return new ReadableStream({start(e){e.enqueue(new TextEncoder().encode(t)),e.close()}})}a(Y9c,"createReadableStreamFromText");p();var hwt=class extends Ab{static{a(this,"GeminiProvider")}constructor(e){super(bi.Gemini,e)}};p();var mwt=class extends Ab{static{a(this,"GroqProvider")}constructor(e){super(bi.Groq,e)}};p();var u9r=new pe("ollamaProvider"),d9r="0.6.4",K9c=32768,eXi=4096,gwt=class extends Ab{constructor(r){super(bi.Ollama,r);this._modelCache=new Map}static{a(this,"OllamaProvider")}async getAllModels(r){let n=Djt(r);await this._checkOllamaVersion(n);let o;try{let c=await this.ctx.get(Zt).fetch(`${n}/api/tags`,{method:"GET"});if(!c.ok)throw new Error(`Failed to fetch models: ${c.status} ${c.statusText}`);o=await c.json()}catch(c){throw u9r.error(this.ctx,`Error fetching models from Ollama at ${n}:`,c),new Error("Failed to fetch models from Ollama. Please ensure Ollama is running. If Ollama is on another host, configure the endpoint URL for the Ollama provider.")}return(await Promise.all((o.models??[]).map(c=>this._resolveModelInfo(n,c)))).filter(c=>c!==void 0)}async _resolveModelInfo(r,n){let o=n.model;if(!o)return;let s=`${r}/${o}`,c=this._modelCache.get(s),l=c!==void 0&&n.digest!==void 0&&c.digest===n.digest,u;if(l)u=c.capabilities;else{try{u=await this._getOllamaModelInfo(r,o)}catch(d){u9r.error(this.ctx,`Failed to fetch Ollama model info for '${o}':`,d);return}this._modelCache.set(s,{digest:n.digest,capabilities:u})}return{providerName:this.providerName,modelId:o,deploymentUrl:r,isRegistered:!1,isCustomModel:!1,modelCapabilities:u}}async _getOllamaModelInfo(r,n){let o=await this._fetchOllamaModelInformation(r,n),s=o.model_info?.["general.architecture"],c=(s?o.model_info?.[`${s}.context_length`]:void 0)??K9c,l=c<eXi?Math.floor(c/2):eXi,u=o.capabilities??[];return{name:n,maxInputTokens:Math.max(0,c-l),maxOutputTokens:l,vision:u.includes("vision"),toolCalling:u.includes("tools")}}async _fetchOllamaModelInformation(r,n){let o=await this.ctx.get(Zt).fetch(`${r}/api/show`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:n})});if(!o.ok)throw new Error(`Failed to fetch model info: ${o.status} ${o.statusText}`);return await o.json()}async _checkOllamaVersion(r){let n;try{let o=await this.ctx.get(Zt).fetch(`${r}/api/version`,{method:"GET"});if(!o.ok)throw new Error(`${o.status} ${o.statusText}`);n=(await o.json()).version}catch(o){throw u9r.error(this.ctx,`Unable to verify Ollama server version at ${r}:`,o),new Error(`Unable to verify Ollama server version. Please ensure Ollama version ${d9r} or higher is installed and running.`)}if(!J9c(n))throw new Error(`Ollama server version ${n} is not supported. Please upgrade to version ${d9r} or higher.`)}};function J9c(t){let e=t.trim();if(e==="0.0.0")return!0;let r=a(s=>{let l=s.trim().replace(/^v/i,"").split(/[+-]/,1)[0].split(".").map(u=>Number(u));return l.length>0&&l.every(u=>Number.isFinite(u))?l:void 0},"parseParts"),n=r(e),o=r(d9r);if(!n||!o)return!1;for(let s=0;s<Math.max(n.length,o.length);s++){let c=n[s]??0,l=o[s]??0;if(c>l)return!0;if(c<l)return!1}return!0}a(J9c,"isVersionSupported");p();var Awt=class extends Ab{static{a(this,"OpenAIProvider")}constructor(e){super(bi.OpenAI,e)}};p();var tXi=16e3,ywt=class extends Ab{static{a(this,"OpenRouterProvider")}constructor(e){super(bi.OpenRouter,e)}getFetchModelUrl(){return`${this.getBaseUrl()}/models?supported_parameters=tools`}resolveModelCapabilities(e){let r=e,n=r.top_provider?.context_length;if(typeof r.name!="string"||typeof n!="number")return;let o=r.supported_parameters??[],s=o.includes("reasoning")||o.includes("reasoning_effort")?["low","medium","high"]:void 0;return{name:r.name,maxInputTokens:Math.max(0,n-tXi),maxOutputTokens:tXi,toolCalling:o.includes("tools"),vision:r.architecture?.input_modalities?.includes("image")??!1,supportsReasoningEffort:s}}};var Uoe=class{static{a(this,"BYOKProviderFactory")}constructor(e){this.providers=new Map([[bi.OpenAI,new Awt(e)],[bi.Gemini,new hwt(e)],[bi.Groq,new mwt(e)],[bi.OpenRouter,new ywt(e)],[bi.Anthropic,new pwt(e)],[bi.Ollama,new gwt(e)]])}getBYOKProvider(e){return this.providers.get(e)}};var Z9c=b.Object({providerName:b.Optional(b.String()),enableFetchUrl:b.Optional(b.Boolean())});function f9r(t,e){if(!e)return e;let r=tRe(t);return{...e,maxInputTokens:e.maxInputTokens??r.maxInputTokens,maxOutputTokens:e.maxOutputTokens??r.maxOutputTokens}}a(f9r,"withDefaultTokenLimits");async function X9c(t,e,r){try{let{providerName:n,enableFetchUrl:o}=r,s=new us(t.get(jn)),c=[];if(n)if(o){let l=gb(n);if(!qJ(n)&&!l)return[null,{code:Je.InvalidRequest,message:`enableFetchUrl is not supported for the ${n} provider`}];if(!await s.getAPIKey(n)&&!l)return[null,{code:Je.InvalidRequest,message:`API key is required to fetch models from ${n}`}];let d=t.get(Uoe).getBYOKProvider(n);if(d){let f;if(l&&(f=(await s.getProviderConfig(n))?.url,!f))return[null,{code:Je.InvalidRequest,message:`No endpoint URL configured for the ${n} provider. Set one via saveProviderConfig before fetching models.`}];let h=await d.getAllModels(f),m=new Map;h.forEach(y=>{let E=`${y.providerName}_${y.modelId}`;m.set(E,y)});let g=await s.getStoredModelConfigs(n),A=[];for(let[y,E]of Object.entries(g)){if(l&&!m.has(`${n}_${y}`)){await s.removeModelConfig(n,y);continue}A.push({providerName:n,modelId:y,deploymentUrl:E.deploymentUrl,isRegistered:E.isRegistered,isCustomModel:E.isCustomModel,modelCapabilities:f9r(n,E.modelCapabilities)})}A.forEach(y=>{let E=`${y.providerName}_${y.modelId}`;m.set(E,y)}),c.push(...m.values())}}else{let l=await s.getStoredModelConfigs(n);Object.entries(l).forEach(([u,d])=>{c.push({providerName:n,modelId:u,deploymentUrl:d.deploymentUrl,isRegistered:d.isRegistered,isCustomModel:d.isCustomModel,modelCapabilities:f9r(n,d.modelCapabilities)})})}else{let l=await s.listAllProviderNames();for(let u of l){let d=await s.getStoredModelConfigs(u);Object.entries(d).forEach(([f,h])=>{c.push({providerName:u,modelId:f,deploymentUrl:h.deploymentUrl,isRegistered:h.isRegistered,isCustomModel:h.isCustomModel,modelCapabilities:f9r(u,h.modelCapabilities)})})}}return[{models:c},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to get models: ${n instanceof Error?n.message:String(n)}`}]}}a(X9c,"handleBYOKListModelsChecked");var rXi=xe(Z9c,X9c);p();var e7c=b.Object({providerName:b.Optional(b.String())}),t7c=[bi.Ollama];async function r7c(t,e,r){try{let n=new us(t.get(jn)),o;r.providerName?o=gb(r.providerName)?[r.providerName]:[]:o=t7c;let s=[];for(let c of o){let l=await n.getProviderConfig(c);l&&s.push({providerName:c,url:l.url})}return[{providers:s},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to list provider configs: ${n instanceof Error?n.message:String(n)}`}]}}a(r7c,"handleBYOKListProviderConfigsChecked");var nXi=xe(e7c,r7c);p();var n7c=b.Object({providerName:b.String(),apiKey:b.String(),modelId:b.Optional(b.String())});async function i7c(t,e,r){try{let n=new us(t.get(jn)),{providerName:o,apiKey:s,modelId:c}=r,l=c5(o);if(l===1&&!c)return[null,{code:Je.InvalidRequest,message:"modelId is required for PerModelDeployment auth type"}];await n.storeAPIKey(o,s,l,c,{clearNonCustomModelsOnUpdate:!0});let u=`API key saved successfully for provider ${o}`;return[{success:!0,message:c?`${u} and model ${c}`:u},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to save API key: ${n instanceof Error?n.message:String(n)}`}]}}a(i7c,"handleBYOKSaveApiKeyChecked");var iXi=xe(n7c,i7c);p();var o7c=b.Object({providerName:b.String(),apiKey:b.String(),groupName:b.String(),apiType:b.Optional(b.Union([b.Literal("chatCompletions"),b.Literal("responses"),b.Literal("messages")]))});async function s7c(t,e,r){try{let n=r.providerName,{apiKey:o,groupName:s,apiType:c}=r;if(!n)return[null,{code:Je.InvalidRequest,message:"Provider name must not be empty."}];if(!o)return[null,{code:Je.InvalidRequest,message:"API key must not be empty."}];if(!TD(n))return[null,{code:Je.InvalidRequest,message:`Provider '${n}' is a built-in provider; custom provider config is only supported for user-named providers.`}];let l=new us(t.get(jn));return await l.storeAPIKey(n,o,c5(n)),await l.saveProviderConfig(n,{groupName:s,apiType:c}),[{success:!0,message:`Provider config saved successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to save provider config: ${n instanceof Error?n.message:String(n)}`}]}}a(s7c,"handleBYOKSaveCustomProviderConfigChecked");var oXi=xe(o7c,s7c);p();var a7c=b.Object({providerName:b.String(),modelId:b.String(),isRegistered:b.Boolean(),isCustomModel:b.Boolean(),deploymentUrl:b.Optional(b.String()),apiKey:b.Optional(b.String()),modelCapabilities:b.Optional(b.Object({name:b.String(),maxInputTokens:b.Optional(b.Number()),maxOutputTokens:b.Optional(b.Number()),toolCalling:b.Boolean(),vision:b.Boolean(),thinking:b.Optional(b.Boolean())}))});async function c7c(t,e,r){try{let{providerName:n,modelId:o,isRegistered:s,isCustomModel:c,deploymentUrl:l,apiKey:u,modelCapabilities:d}=r,f=new us(t.get(jn)),h=c5(n);if(h===1&&!l)return[null,{code:Je.InvalidRequest,message:`deploymentUrl is required for the ${n} provider`}];if(TD(n)){if(!l)return[null,{code:Je.InvalidRequest,message:`deploymentUrl is required for custom endpoint provider '${n}'`}];if(!await f.getProviderConfig(n))return[null,{code:Je.InvalidRequest,message:`Custom endpoint provider '${n}' must be configured via saveCustomProviderConfig before registering models.`}]}if(l||d){let m={deploymentUrl:l,isRegistered:s,isCustomModel:c,modelCapabilities:d};await f.saveModelConfig(n,o,m,u,h)}else u!==void 0&&await f.storeAPIKey(n,u,h,o);return[{success:!0,message:`Model ${o} saved successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to save model: ${n instanceof Error?n.message:String(n)}`}]}}a(c7c,"handleBYOKSaveModelChecked");var sXi=xe(a7c,c7c);p();var l7c=b.Object({providerName:b.String(),url:b.Optional(b.String())});async function u7c(t,e,r){try{let{providerName:n,url:o}=r;if(!n)return[null,{code:Je.InvalidRequest,message:"Provider name must not be empty."}];if(!gb(n))return[null,{code:Je.InvalidRequest,message:`Provider-level endpoint URL is not supported for the '${n}' provider.`}];let s=new us(t.get(jn)),c=await s.getProviderConfig(n);return await s.saveProviderConfig(n,{...c,groupName:c?.groupName??n,url:o}),[{success:!0,message:`Provider config saved successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to save provider config: ${n instanceof Error?n.message:String(n)}`}]}}a(u7c,"handleBYOKSaveProviderConfigChecked");var aXi=xe(l7c,u7c);p();var d7c=b.Object({cliPath:b.String()});async function f7c(t,e,r){return[await Gge.check(r.cliPath),null]}a(f7c,"handleCheckClaudeCliCompatibilityChecked");var cXi=xe(d7c,f7c);p();p();var uXi=fe(oD()),lXi="0.135.0",Ewt=new Hge({displayName:"Codex CLI",notConfiguredMessage:"Codex CLI path is not configured. Install the Codex CLI (e.g. `npm install -g @openai/codex`), then set the Codex CLI Path in your editor's Copilot settings to the absolute path of the `codex` binary.",validateVersionOutput(t){if(!/^\s*codex-cli(?:\s|$)/i.test(t))return{severity:"error",message:'The input path does not appear to be the Codex CLI. Expected --version output to start with "codex-cli".'}},validateVersion(t){if(uXi.lt(t,lXi))return{severity:"error",message:`Codex CLI at the input path reports version ${t.version}, but version ${lXi} or later is required. Run \`npm install -g @openai/codex\` to upgrade.`}}});var p7c=b.Object({cliPath:b.String()});async function h7c(t,e,r){return[await Ewt.check(r.cliPath),null]}a(h7c,"handleCheckCodexCliCompatibilityChecked");var dXi=xe(p7c,h7c);p();var m7c=b.Object({uri:b.String({minLength:1})});async function g7c(t,e,r){let n=await t.get(ui).getOrReadTextDocument(r);return[{status:hd(n),...n.status==="invalid"&&{reason:n.reason},...n.status==="notfound"&&{reason:n.message}},null]}a(g7c,"handleCheckFileStatusChecked");var fXi=xe(m7c,g7c);p();var A7c=b.Object({});function pXi(t,e){return typeof t!="number"||typeof e!="number"||e===0?0:Math.max(0,Math.min(100,t/e*100))}a(pXi,"calculatePercentRemaining");function p9r(t){return{percentRemaining:t?.percent_remaining??100,unlimited:t?.unlimited??!1,overagePermitted:t?.overage_permitted??!1,overageCount:t?.overage_count,overageEntitlement:t?.overage_entitlement,creditsUsed:t?.credits_used,entitlement:t?.entitlement,quotaRemaining:t?.quota_remaining,timeStamp:t?.timestamp_utc}}a(p9r,"buildQuotaSnapshot");async function y7c(t,e,r){let n=await t.get(Ur).resolveSession();if(!n)return[null,{code:Je.InternalError,message:"Not signed in"}];let o=await dTe(t,n);if(o.ok){let s=await o.json();return t.get(Du).processUserInfoQuotaSnapshot(s),s.token_based_billing?[{chat:p9r(s.quota_snapshots?.chat),completions:p9r(s.quota_snapshots?.completions),premiumInteractions:p9r(s.quota_snapshots?.premium_interactions),resetDate:s.quota_reset_date??"",resetDateUtc:s.quota_reset_date_utc,copilotPlan:s.access_type_sku==="free_limited_copilot"?"free":s.copilot_plan,tokenBasedBillingEnabled:!0,canUpgradePlan:s.can_upgrade_plan},null]:s.access_type_sku==="free_limited_copilot"?[{chat:{percentRemaining:pXi(s.limited_user_quotas?.chat,s.monthly_quotas?.chat),unlimited:!1,overagePermitted:!1},completions:{percentRemaining:pXi(s.limited_user_quotas?.completions,s.monthly_quotas?.completions),unlimited:!1,overagePermitted:!1},premiumInteractions:{percentRemaining:0,unlimited:!1,overagePermitted:!1},resetDate:s.limited_user_reset_date??"",copilotPlan:"free",tokenBasedBillingEnabled:!1,canUpgradePlan:s.can_upgrade_plan},null]:[{chat:{percentRemaining:s.quota_snapshots?.chat?.percent_remaining??100,unlimited:s.quota_snapshots?.chat?.unlimited??!1,overagePermitted:s.quota_snapshots?.chat?.overage_permitted??!1},completions:{percentRemaining:s.quota_snapshots?.completions?.percent_remaining??100,unlimited:s.quota_snapshots?.completions?.unlimited??!1,overagePermitted:s.quota_snapshots?.completions?.overage_permitted??!1},premiumInteractions:{percentRemaining:s.quota_snapshots?.premium_interactions?.percent_remaining??100,unlimited:s.quota_snapshots?.premium_interactions?.unlimited??!1,overagePermitted:s.quota_snapshots?.premium_interactions?.overage_permitted??!1},resetDate:s.quota_reset_date??"",copilotPlan:s.copilot_plan,tokenBasedBillingEnabled:!1,canUpgradePlan:s.can_upgrade_plan},null]}return[null,{code:Je.InternalError,message:"Failed to fetch quota info"}]}a(y7c,"handleCheckQuotaChecked");var hXi=xe(A7c,y7c);p();var E7c=b.Object({options:b.Optional(b.Object({localChecksOnly:b.Optional(b.Boolean()),forceRefresh:b.Optional(b.Boolean())}))});async function _7c(t,e,r){return[await t.get(Ur).checkAndUpdateStatus(r.options),null]}a(_7c,"handleCheckStatusChecked");var mXi=xe(E7c,_7c);p();var v7c=b.Object({pullRequestNumber:b.Integer({minimum:1}),repoOwner:b.String({minLength:1}),repoName:b.String({minLength:1}),body:b.String({minLength:1})});async function C7c(t,e,r){try{if(e.isCancellationRequested)return[null,{code:Je.RequestCancelled,message:"Request was cancelled"}];let o=await new Cm(t).addPullRequestComment(r.repoOwner,r.repoName,r.pullRequestNumber,r.body);return wc(t,"cloudAgent.addPullRequestComment",{result:"success"}),[{html_url:o.html_url},null]}catch(n){if(op(t,"cloudAgent.addPullRequestComment",n,{result:"error"}),n instanceof OE)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof md&&n.isClientError())return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(C7c,"handleCloudAgentAddPullRequestCommentChecked");var gXi=xe(v7c,C7c);p();var b7c=b.Object({pullRequestId:b.Number(),repoOwner:b.String({minLength:1}),repoName:b.String({minLength:1})});async function S7c(t,e,r){try{let o=await new bb(t).getAllSessions(r.pullRequestId,e);if(!o||o.length===0)return[null,{code:Je.InvalidRequest,message:"No session found for this pull request"}];let s=o[0];return s.state==="completed"?(ft(t,"githubApi.cancelCodingAgent",$t.createAndMarkAsIssued()),Yt(t,"githubApi.cancelCodingAgent"),[{success:!0},null]):s.workflow_run_id?(await new Cm(t).cancelWorkflow(r.repoOwner,r.repoName,s.workflow_run_id),ft(t,"githubApi.cancelCodingAgent",$t.createAndMarkAsIssued()),Yt(t,"githubApi.cancelCodingAgent"),[{success:!0},null]):[null,{code:Je.InternalError,message:"No workflow run ID found in session"}]}catch(n){if(Ma(t,n,"githubApi.cancelCodingAgent"),Vs(t,"githubApi.cancelCodingAgent",n),n instanceof jw)return[null,{code:Je.NoCopilotToken,message:n.message}];if(n instanceof Cp)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof vm)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof OE)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof md&&n.isClientError())return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(S7c,"handleCancelCodingAgentChecked");var AXi=xe(b7c,S7c);p();var T7c=b.Object({problemStatement:b.String({minLength:1}),workspaceFolder:b.Optional(b.String({minLength:1})),workspaceFolders:b.Optional(b.Array(Pc))});function I7c(t){if(t.workspaceFolders&&t.workspaceFolders.length>0)return{uri:t.workspaceFolders[0].uri};if(t.workspaceFolder)return{uri:t.workspaceFolder}}a(I7c,"pickWorkspaceFolder");async function x7c(t,e,r){try{let n=I7c(r);if(!n)return[null,{code:Je.InvalidRequest,message:"No workspace folder provided \u2014 cannot create a cloud agent job."}];let s=await new Of(t).getRepo(n);if(!s||!s.isGitHub())return[null,{code:Je.InvalidRequest,message:"No GitHub repository found in the workspace folder."}];if(!s.owner||!s.name)return[null,{code:Je.InvalidRequest,message:"Could not determine repository owner and name."}];let l=await new S5([new T5,new I5]).getBranchInfo(t,n);if(!l?.currentBranch||l.isDetachedHead)return[null,{code:Je.InvalidRequest,message:"No current branch found or detached HEAD state \u2014 cannot create a cloud agent job."}];let u=l.currentBranch,d=Rde(r.problemStatement);if(e.isCancellationRequested)return[null,{code:Je.RequestCancelled,message:"Request was cancelled"}];let h=await new bb(t).createCodingTask(d,r.problemStatement,s.owner,s.name,u,e);return wc(t,"cloudAgent.createJob",{result:"success"}),[h,null]}catch(n){if(op(t,"cloudAgent.createJob",n,{result:"error"}),nRe(n))return[null,{code:Je.RequestCancelled,message:"Request was cancelled"}];if(n instanceof jw)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof Cp)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof vm)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof OE)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof md&&n.isClientError())return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(x7c,"handleCloudAgentCreateJobChecked");var yXi=xe(T7c,x7c);p();var w7c=b.Object({sessionId:b.String({minLength:1})});async function R7c(t,e,r){try{let o=await new bb(t).getSessionLogs(r.sessionId,e);return wc(t,"cloudAgent.getSessionLogs",{result:"success"}),[{logs:o},null]}catch(n){if(op(t,"cloudAgent.getSessionLogs",n,{result:"error"}),n instanceof jw)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof Cp||n instanceof vm)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(R7c,"handleCloudAgentGetSessionLogsChecked");var EXi=xe(w7c,R7c);p();var k7c=b.Object({pullRequestId:b.Integer()});async function P7c(t,e,r){try{let o=await new bb(t).getAllSessions(r.pullRequestId,e);return wc(t,"cloudAgent.listSessions",void 0,{totalSessions:o?.length??0}),[{sessions:o??[]},null]}catch(n){if(op(t,"cloudAgent.listSessions",n),n instanceof jw)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof Cp||n instanceof vm)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(P7c,"handleCloudAgentListSessionsChecked");var _Xi=xe(k7c,P7c);p();var D7c=b.Object({});async function N7c(t,e,r){return[(await Qw(t)).map(s=>({slug:s.slug,name:s.name,description:s.description,avatarUrl:s.avatarUrl})),null]}a(N7c,"handleConversationAgentsChecked");var vXi=xe(D7c,N7c);p();p();var f8e=fe(Yc());function M7c(t,e,r){let n=$t.createAndMarkAsIssued({languageId:String(e.detectedLanguageId),requestedDocumentVersion:String(r),actualDocumentVersion:String(e.version)});return ft(t,"getCompletions.docVersionMismatch",n)}a(M7c,"telemetryVersionMismatch");async function x9(t,e,r){let o=t.get(Qr).getTextDocumentUnsafe(e);if(!o)throw new f8e.ResponseError(Je.InvalidParams,`Document for URI could not be found: ${e.uri}`);let s=await Yue(t,e,o.getText());if(s.status==="invalid")throw t.get(Ms).setClsInactive(s.reason),new f8e.ResponseError(Je.CopilotNotAvailable,s.reason);if(e.version!==void 0&&o.version!==e.version)throw r?.isCancellationRequested||(M7c(t,o,e.version),vo.debug(t,`Requested document version was ${e.version} but actual document version was ${o.version}.`)),new f8e.ResponseError(Je.ContentModified,"Document Version Mismatch");return o}a(x9,"getTextDocument");async function P4(t,e,r){let n=e.textDocument??e.doc;if(n)try{return await x9(t,n,r)}catch(o){if(o instanceof f8e.ResponseError){if(o.code===Je.CopilotNotAvailable)return;if(o.code===Je.InvalidParams){vo.warn(t,`Document not found for conversation: ${n.uri}. Continuing without this file.`);return}}throw o}}a(P4,"getTextDocumentIfAvailable");var O7c=b.Union([b.Literal("keyboard"),b.Literal("toolbar")]),B7c=b.Object({turnId:fZ,codeBlockIndex:b.Number(),source:O7c,copiedCharacters:b.Number(),totalCharacters:b.Number(),copiedText:b.String(),doc:b.Optional(qXe),textDocument:b.Optional(Cb),position:b.Optional(Pg),conversationSource:b.Optional(k5)});async function L7c(t,e,r){let n=await P4(t,r,e),o={totalCharacters:r.totalCharacters,copiedCharacters:r.copiedCharacters},s=r.position??r.doc?.position;n&&s&&(o={...o,currentLine:s.line});let c=ej(r.conversationSource),l=t.get(rs).findByTurnId(r.turnId),u=await pl(t,l,{languageId:n?.detectedLanguageId??""});return PI(t,n,{codeBlockIndex:r.codeBlockIndex.toString(),source:r.source,uiKind:c,mode:l?.turn.getChatModeForTelemetry()??"unknown",modelId:l?.turn.getResolvedModelId()??"unknown"},o,`${DE(c)}.acceptedCopy`,u),["OK",null]}a(L7c,"handleConversationCodeCopyChecked");var CXi=xe(B7c,L7c);p();var F7c=b.Union([b.Literal("keyboard"),b.Literal("toolbar"),b.Literal("diff")]),U7c=b.Object({turnId:fZ,source:F7c,codeBlockIndex:b.Number(),acceptedLength:b.Optional(b.Number()),totalCharacters:b.Number(),newFile:b.Optional(b.Boolean()),doc:b.Optional(qXe),textDocument:b.Optional(Cb),position:b.Optional(Pg),conversationSource:b.Optional(k5)});async function Q7c(t,e,r){let n=await P4(t,r,e),o={totalCharacters:r.totalCharacters,acceptedLength:r.acceptedLength??r.totalCharacters},s=r.position??r.doc?.position;n&&s&&(o={...o,insertionOffset:n.offsetAt(s),currentLine:s.line});let c=ej(r.conversationSource),l=t.get(rs).findByTurnId(r.turnId),u=await pl(t,l,{languageId:n?.detectedLanguageId??""});return PI(t,n,{codeBlockIndex:r.codeBlockIndex.toString(),source:r.source,uiKind:c,compType:r.acceptedLength&&r.acceptedLength<r.totalCharacters?"partial":"full",mode:l?.turn.getChatModeForTelemetry()??"unknown",modelId:l?.turn.getResolvedModelId()??"unknown"},o,`${DE(c)}.acceptedInsert`,u),["OK",null]}a(Q7c,"handleConversationCodeInsertChecked");var bXi=xe(U7c,Q7c);p();p();var px=class{static{a(this,"CompressionNotifier")}},_wt=class extends px{static{a(this,"NullCompressionNotifier")}async notifyCompressionStarted(e){}async notifyCompressionCompleted(e){}};p();var zk=class{constructor(e,r){this.summaryManager=e;this.ctx=r;this.transcriptPersistence=new Og(r)}static{a(this,"ConversationPartitionCompressor")}async compressCurrentPartition(e,r,n,o){let s=Date.now(),c=e.id,l=e.currentPartitionId;try{if(e.turns.length===0)throw new Error("Cannot compress partition with no turns");if(ot.debug(this.ctx,`Starting partition compression: conversationId=${c}, partitionId=${l}, turnCount=${e.turns.length}`),this.sendStartedTelemetry(c,l,e.turns.length,s,r.modelId),n.isCancellationRequested)return this.sendCancelledTelemetry(c,l,s,r.modelId),{success:!1,archivedPartitionId:l,newPartitionId:l,summaryTurnNumber:0,error:"Compression cancelled"};let u=l===1?1:await this.calculateStartTurnNumber(c,l),d=u+e.turns.length-1,f={conversationId:c,partitionId:l,turns:[...e.turns],status:"active",createdAt:Date.now(),startTurnNumber:u,endTurnNumber:d,turnCount:e.turns.length};if(f.status="archived",ot.debug(this.ctx,`Archived partition: conversationId=${c}, partitionId=${l}`),this.sendArchivedTelemetry(c,l,e.turns.length,r.modelId),n.isCancellationRequested)return ot.warn(this.ctx,`Compression cancelled after archiving: conversationId=${c}, partitionId=${l}`),this.sendCancelledTelemetry(c,l,s,r.modelId),{success:!1,archivedPartitionId:l,newPartitionId:l,summaryTurnNumber:0,error:"Compression cancelled after archiving"};let h=e.turns[e.turns.length-1],m=lNn(h?.chatMode?.kind),g;try{g=await this.summaryManager.generateSummary(f,r,n,m,o),(!g||g.trim().length===0)&&(ot.warn(this.ctx,`Summary generation returned empty: conversationId=${c}, partitionId=${l}`),g=`[Summary unavailable for partition ${l}]`),ot.debug(this.ctx,`Generated summary: conversationId=${c}, partitionId=${l}, length=${g.length}`),this.sendSummarizedTelemetry(c,l,g.length,r.modelId)}catch(v){ot.error(this.ctx,`Summary generation failed: conversationId=${c}, partitionId=${l}, error=${v instanceof Error?v.message:String(v)}`),g=`[Summary generation failed for partition ${l}]`,this.sendSummarizedTelemetry(c,l,0,r.modelId)}if(g=this.appendTodoListState(g,e),n.isCancellationRequested)return ot.warn(this.ctx,`Compression cancelled after summary generation: conversationId=${c}, partitionId=${l}`),this.sendCancelledTelemetry(c,l,s,r.modelId),{success:!1,archivedPartitionId:l,newPartitionId:l,summaryTurnNumber:0,error:"Compression cancelled after summary generation"};let A=l+1,y=d+1,E=new gp({message:g,type:"meta",references:[]});E.response={message:"",type:"model"},E.status="success";let _={conversationId:c,partitionId:A,turns:[E],status:"active",createdAt:Date.now(),compressedFrom:l,startTurnNumber:y,endTurnNumber:y,turnCount:1};try{await this.recordPartitionTranscriptEvents(c,l,A,g,E.id),e.currentPartitionId=A,e.turns=[E],ot.debug(this.ctx,`Created new partition: conversationId=${c}, partitionId=${A}`);let v=Date.now()-s;return this.sendCompletedTelemetry(c,l,A,f.turnCount,g.length,v,r.modelId),{success:!0,archivedPartitionId:l,newPartitionId:A,summaryTurnNumber:y}}catch(v){ot.error(this.ctx,`Failed to initialize new partition transcript: conversationId=${c}, error=${v instanceof Error?v.message:String(v)}`),e.currentPartitionId=A,e.turns=[E];let S=Date.now()-s;return this.sendCompletedTelemetry(c,l,A,f.turnCount,g.length,S,r.modelId),{success:!0,archivedPartitionId:l,newPartitionId:A,summaryTurnNumber:y}}}catch(u){let d=u instanceof Error?u.message:String(u);ot.exception(this.ctx,u,`Compression failed: conversationId=${c}, partitionId=${l}`);let f=Date.now()-s;return this.sendFailedTelemetry(c,l,d,f,r.modelId),{success:!1,archivedPartitionId:l,newPartitionId:l,summaryTurnNumber:0,error:d}}}async calculateStartTurnNumber(e,r){if(r===1)return 1;let n=r-1,o=await this.transcriptPersistence.buildPartitionFromTranscript(e,n);return o?o.endTurnNumber+1:(ot.warn(this.ctx,`Could not load previous partition to calculate turn numbers: conversationId=${e}, partitionId=${n}`),(r-1)*10+1)}appendTodoListState(e,r){let o=this.ctx.get(Lg).getTodos(r);return o.length>0&&(e+=`
|
|
4014
|
+
`})}s.push({type:"text",text:e.message});let c=e.model||o.model,l=e.reasoningEffort??o.reasoningEffort;this.stateService.setActiveThread(o.threadId);let u=await this.processManager.sendRequest("turn/start",{...c?{model:c}:{},...l?{effort:l}:{},threadId:o.threadId,input:s});return o.turnId=u.turnId,e.model&&(o.model=e.model),e.reasoningEffort&&(o.reasoningEffort=e.reasoningEffort),o.modifiedTime=new Date().toISOString(),o.summary||(o.summary=e.message.slice(0,100)),n.measurements.messageCharLen=e.message.length,{messageId:u.turnId}})}truncateHistory(e){return Promise.reject(new Error("truncateHistory is not supported for Codex sessions"))}forkSession(e){return Promise.reject(new Error("forkSession is not supported for Codex sessions"))}async stopSession(e){let r=this.sessions.get(e);r&&(this.drainAndCloseUserInputs(r,!0),this.drainPendingPermissions(e,!0),r.turnId&&(await this.processManager?.sendRequest("turn/interrupt",{threadId:r.threadId,turnId:r.turnId}),lc.info(this.ctx,"CodexAgentService.stopSession",{sessionId:e})))}destroySession(e){let r=this.sessions.get(e.sessionId);return r&&(this.drainAndCloseUserInputs(r,!0),this.drainPendingPermissions(e.sessionId,!0),this.stateService.clear(r.threadId)),this.sessions.delete(e.sessionId),lc.info(this.ctx,"CodexAgentService.destroySession",{sessionId:e.sessionId}),Promise.resolve({success:!0})}listSessions(e){let r=Array.from(this.sessions.values()).map(n=>({sessionId:n.sessionId,startTime:n.startTime,modifiedTime:n.modifiedTime,summary:n.summary,isRemote:!1,context:n.cwd?{cwd:n.cwd}:void 0}));return r.sort((n,o)=>o.modifiedTime.localeCompare(n.modifiedTime)),lc.info(this.ctx,`CodexAgentService.listSessions: ${r.length} sessions`),Promise.resolve({sessions:r})}async listModels(e){try{let o=(await this.ctx.get(vs).getMetadata(e)).filter(s=>s.supported_endpoints?.includes(JWe.Responses)&&s.model_picker_enabled&&s.capabilities.type==="chat"&&s.vendor!==void 0&&s.vendor.toLowerCase().includes("openai"));if(o.length>0){let s=o.map(_pe);return s.forEach(V3c),lc.info(this.ctx,`CodexAgentService.listModels: ${s.length} responses-capable models from CAPI`),{models:s}}lc.warn(this.ctx,"CodexAgentService.listModels: no responses-capable models found in CAPI")}catch(r){let n=r instanceof Error?r.message:String(r);lc.warn(this.ctx,`CodexAgentService.listModels: CAPI query failed: ${n}, using fallback`)}return{models:[{id:"codex-default",name:"Codex (Default)",preview:!1,capabilities:{family:"codex",supports:{vision:!1},limits:{max_context_window_tokens:128e3}}}]}}handleInteraction(e){lc.info(this.ctx,"handleInteraction",{sessionId:e.sessionId,requestId:e.requestId,type:e.type});let r=this.sessions.get(e.sessionId);if(!r)return lc.warn(this.ctx,"handleInteraction: unknown session",{sessionId:e.sessionId}),Promise.resolve({success:!1});switch(e.type){case"user_input":return this.handleUserInputInteraction(r,e);case"permission":return this.handlePermissionInteraction(r,e);default:return lc.warn(this.ctx,"handleInteraction: unsupported type for Codex",{sessionId:e.sessionId,type:e.type}),Promise.resolve({success:!1})}}handleUserInputInteraction(e,r){let n=e.translatorState,o=n.pendingUserInputs.get(r.requestId);if(!o)return lc.warn(this.ctx,"handleInteraction: user_input for unknown requestId",{sessionId:r.sessionId,requestId:r.requestId}),Promise.resolve({success:!1});n.pendingUserInputs.delete(r.requestId),this.emitUserInputCompleted(e.sessionId,r.requestId,r.response);let s=n.pendingUserInputAggregates.get(o.itemId);if(!s)return lc.warn(this.ctx,"handleInteraction: user_input aggregate missing",{sessionId:r.sessionId,requestId:r.requestId,itemId:o.itemId}),Promise.resolve({success:!1});if(s.answers.set(o.questionId,{answer:r.response.answer,wasFreeform:r.response.wasFreeform}),s.answers.size<s.expectedQuestionIds.size)return Promise.resolve({success:!0});n.pendingUserInputAggregates.delete(o.itemId);let c={};for(let[u,d]of s.answers)c[u]={answers:[d.answer]};let l={answers:c};try{return this.processManager?.sendRawResponse(s.requestJsonRpcId,l)??!1?Promise.resolve({success:!0}):(lc.error(this.ctx,"handleInteraction: Codex process refused user_input response",{sessionId:r.sessionId,requestId:r.requestId}),this.emitSessionError(e.sessionId,"process_write_failed","Codex process is not accepting input; the answer could not be delivered. Send a new message to retry."),Promise.resolve({success:!1}))}catch(u){let d=u instanceof Error?u.message:String(u);return lc.error(this.ctx,"handleInteraction: failed to deliver user_input response to Codex",{sessionId:r.sessionId,requestId:r.requestId,error:d}),this.emitSessionError(e.sessionId,"process_write_failed",d),Promise.resolve({success:!1})}}getPlanPath(e){return Promise.resolve(null)}handlePermissionInteraction(e,r){let n=this.stateService.takePendingPermission(e.sessionId,r.requestId);if(!n)return lc.warn(this.ctx,"handleInteraction: permission for unknown requestId",{sessionId:e.sessionId,requestId:r.requestId}),Promise.resolve({success:!1});let o=r.result.kind==="approve-once",s=UYi(n,o);if(n.codexJsonRpcId===void 0)return lc.warn(this.ctx,"handleInteraction: permission has no codexJsonRpcId, skipping reply",{sessionId:e.sessionId,requestId:r.requestId}),this.emitPermissionCompleted(e.sessionId,r.requestId,o?"approved":"denied"),Promise.resolve({success:!0});try{return this.processManager?.sendRawResponse(n.codexJsonRpcId,s)??!1?(this.emitPermissionCompleted(e.sessionId,r.requestId,o?"approved":"denied"),Promise.resolve({success:!0})):(lc.error(this.ctx,"handleInteraction: Codex process refused permission response",{sessionId:e.sessionId,requestId:r.requestId}),this.emitPermissionCompleted(e.sessionId,r.requestId,"denied"),this.emitSessionError(e.sessionId,"process_write_failed","Codex process is not accepting input; the permission response could not be delivered. Send a new message to retry."),Promise.resolve({success:!1}))}catch(c){let l=c instanceof Error?c.message:String(c);return lc.error(this.ctx,"handleInteraction: failed to deliver permission response to Codex",{sessionId:e.sessionId,requestId:r.requestId,error:l}),this.emitPermissionCompleted(e.sessionId,r.requestId,"denied"),this.emitSessionError(e.sessionId,"process_write_failed",l),Promise.resolve({success:!1})}}async enableRemote(e){await this.ensureInitialized();try{return await this.processManager.sendRequest("remoteControl/enable",{}),{remoteSteerable:!0}}catch{throw new Error("Codex remote control not available")}}async disableRemote(e){await this.ensureInitialized(),await this.processManager.sendRequest("remoteControl/disable",{})}getRemoteStatus(e){return{remoteSteerable:!1}}async compactHistory(e){await this.ensureInitialized();let r=this.sessions.get(e);return r?(await this.processManager.sendRequest("thread/compact/start",{threadId:r.threadId}),{success:!0,tokensRemoved:0,messagesRemoved:0,summaryContent:""}):{success:!1,tokensRemoved:0,messagesRemoved:0,summaryContent:""}}async stopCompactHistory(e){let r=this.sessions.get(e);return!r||!r.turnId?{aborted:!1}:(await this.processManager?.sendRequest("turn/interrupt",{threadId:r.threadId,turnId:r.turnId}),{aborted:!0})}handleNotification(e,r,n){lc.debug(this.ctx,`handleNotification: method=${e} requestJsonRpcId=${JSON.stringify(n)}`,{params:JSON.stringify(r).slice(0,500)});let s=r?.threadId;if(!s){lc.warn(this.ctx,`handleNotification: no threadId in params for method=${e}`);return}let c=this.findSessionByThreadId(s);if(!c)return;if(FYi.includes(e)){if(n===void 0)return;let f=r?.itemId;if(typeof f=="string"&&f.length>0){let h=r8r(e),m=n8r(f,h);this.stateService.setPendingPermission(c.sessionId,m,{codexJsonRpcId:n,method:e})}else lc.warn(this.ctx,`handleNotification: approval ${e} missing itemId, cannot correlate reply`)}if(e==="turn/started"){let f=r;f.turn?.id&&(c.turnId=f.turn.id)}let l;e==="turn/completed"&&(l={copilotUsageNanoAiu:this.stateService.takeCopilotUsageNanoAiuForThread(s)},this.stateService.setActiveThread(void 0));let u=MYi(e,r,c.translatorState,n,l);if(!u)return;let d=Array.isArray(u)?u:[u];for(let f of d)f.type==="assistant.usage"&&f.data&&c.model&&(f.data.model=c.model),this.notificationSender.sendBackgroundAgentSessionUpdate(c.sessionId,f,"CODEX")}findSessionByThreadId(e){for(let r of this.sessions.values())if(r.threadId===e)return r}emitUserInputCompleted(e,r,n){let o={id:Pt(),timestamp:new Date().toISOString(),type:"user_input.completed",data:{requestId:r,answer:n.answer,wasFreeform:n.wasFreeform}};this.notificationSender.sendBackgroundAgentSessionUpdate(e,o,"CODEX")}emitPermissionCompleted(e,r,n){let o={id:Pt(),timestamp:new Date().toISOString(),type:"permission.completed",data:{requestId:r,result:{kind:n}}};this.notificationSender.sendBackgroundAgentSessionUpdate(e,o,"CODEX")}emitSessionError(e,r,n){let o={id:Pt(),timestamp:new Date().toISOString(),type:"session.error",data:{errorType:r,message:n}};this.notificationSender.sendBackgroundAgentSessionUpdate(e,o,"CODEX");let s={id:Pt(),timestamp:new Date().toISOString(),type:"session.idle"};this.notificationSender.sendBackgroundAgentSessionUpdate(e,s,"CODEX")}drainAndCloseUserInputs(e,r){let n=e.translatorState;if(n.pendingUserInputAggregates.size===0){n.pendingUserInputs.clear();return}for(let[o,s]of n.pendingUserInputAggregates){if(r&&this.processManager?.isRunning()){let c={};for(let l of s.expectedQuestionIds)c[l]={answers:[]};try{this.processManager.sendRawResponse(s.requestJsonRpcId,{answers:c})}catch(l){let u=l instanceof Error?l.message:String(l);lc.warn(this.ctx,"drainAndCloseUserInputs: failed to notify Codex",{sessionId:e.sessionId,itemId:o,error:u})}}for(let c of s.expectedQuestionIds)this.emitUserInputCompleted(e.sessionId,e8r(o,c),{answer:"",wasFreeform:!1})}n.pendingUserInputs.clear(),n.pendingUserInputAggregates.clear()}drainPendingPermissions(e,r){let n=this.stateService.takeAllPendingPermissionsForSession(e);for(let[o,s]of n){if(r&&this.processManager?.isRunning()&&s.codexJsonRpcId!==void 0)try{this.processManager.sendRawResponse(s.codexJsonRpcId,UYi(s,!1))}catch(c){let l=c instanceof Error?c.message:String(c);lc.warn(this.ctx,"drainPendingPermissions: failed to notify Codex",{sessionId:e,requestId:o,error:l})}this.emitPermissionCompleted(e,o,"denied")}}emitErrorToAllSessions(e){for(let r of this.sessions.values())this.drainAndCloseUserInputs(r,!1),this.drainPendingPermissions(r.sessionId,!1),this.emitSessionError(r.sessionId,"process_crash",`Codex process terminated unexpectedly: ${e}. Send a new message to retry.`)}async dispose(){for(let e of this.sessions.values())this.drainAndCloseUserInputs(e,!1),this.drainPendingPermissions(e.sessionId,!1);await this.processManager?.stop(),await this.proxyServer.stop()}};function V3c(t){let e=t.billing?.token_prices;if(!e||!("long_context"in e))return;let{long_context:r,...n}=e;Object.keys(n).length>0?t.billing.token_prices=n:(delete t.billing.token_prices,Object.keys(t.billing).length===0&&delete t.billing)}a(V3c,"stripLongContextPricing");var FYi=["item/commandExecution/requestApproval","item/fileChange/requestApproval","item/permissions/requestApproval"];function UYi(t,e){return{decision:e?"accept":"decline"}}a(UYi,"responseFor");var QYi=new pe("AgentRouter"),qYi="AgentRouter";function ax(t){return t.agentProvider??"BACKGROUND"}a(ax,"resolveProvider");var Va=class{constructor(e){this.ctx=e}static{a(this,"AgentRouter")}serviceFor(e){switch(e){case"BACKGROUND":return this.ctx.get(ws);case"CLAUDE":return this.ctx.get(f8);case"CODEX":return this.ctx.get(yoe);case"CLOUD":return this.ctx.get(goe)}}logDispatch(e,r){QYi.debug(this.ctx,`${qYi}.${e}`,r)}create(e){this.logDispatch("create",e);let r=ax(e);return this.serviceFor(r).createSession(e)}resume(e){this.logDispatch("resume",e);let r=ax(e);return this.serviceFor(r).resumeSession(e)}send(e,r){this.logDispatch("send",e);let n=ax(e);return this.serviceFor(n).sendMessage(e,r)}truncateHistory(e){this.logDispatch("truncateHistory",e);let r=e.providerName;return this.serviceFor(r).truncateHistory({sessionId:e.sessionId,eventId:e.eventId,providerName:e.providerName})}forkSession(e){this.logDispatch("forkSession",e);let r=e.providerName;return this.serviceFor(r).forkSession(e)}stop(e){this.logDispatch("stop",e);let r=ax(e);return this.serviceFor(r).stopSession(e.sessionId)}destroy(e){this.logDispatch("destroy",e);let r=ax(e);return this.serviceFor(r).destroySession(e)}listSessions(e){this.logDispatch("listSessions",e);let r=ax(e);return this.serviceFor(r).listSessions(e)}listModels(e){this.logDispatch("listModels",e);let r=ax(e);return this.serviceFor(r).listModels(e.forceRefresh)}interaction(e){this.logDispatch("interaction",e);let r=ax(e);return this.serviceFor(r).handleInteraction(e)}async getPlanPath(e){this.logDispatch("getPlanPath",e);let r=ax(e);return{path:await this.serviceFor(r).getPlanPath(e.sessionId)}}enableRemote(e){this.logDispatch("enableRemote",e);let r=ax(e);return this.serviceFor(r).enableRemote(e.sessionId)}async disableRemote(e){this.logDispatch("disableRemote",e);let r=ax(e);return await this.serviceFor(r).disableRemote(e.sessionId),{success:!0}}getRemoteStatus(e){this.logDispatch("getRemoteStatus",e);let r=ax(e);try{return Promise.resolve(this.serviceFor(r).getRemoteStatus(e.sessionId))}catch(n){return Promise.reject(n instanceof Error?n:new Error(String(n)))}}async compactHistory(e,r){this.logDispatch("compactHistory",e);let n=ax(e),o=this.serviceFor(n),s=r?.onCancellationRequested(()=>{QYi.info(this.ctx,`${qYi}.compactHistory: cancellation requested, aborting compaction`,{sessionId:e.sessionId}),o.stopCompactHistory(e.sessionId)});try{return await o.compactHistory(e.sessionId)}finally{s?.dispose()}}};p();p();var W3c=b.Union([b.String(),b.Number()]),Ii=b.String(),_ve=b.Optional(b.String()),z3c=b.Object({name:b.String(),description:b.String(),title:b.Optional(b.String()),parameters:b.Optional(b.Record(b.String(),b.Unknown())),overridesBuiltInTool:b.Optional(b.Boolean()),skipPermission:b.Optional(b.Boolean())}),i8r=b.Array(z3c),TUe=b.Union([b.Literal("default"),b.Literal("long_context")]),o8r=b.String({minLength:1,pattern:"\\S"}),s8r=b.String({minLength:1,pattern:"\\S"}),vve=b.Object({model:o8r,modelProvider:b.Optional(s8r),reasoningEffort:_ve,workspaceFolder:b.Object({uri:b.String(),name:b.Optional(b.String())}),sessionWorkspaceFolders:b.Optional(b.Array(b.Object({uri:b.String(),name:b.Optional(b.String())}))),globalAgentsMdInstructions:b.Optional(b.String()),globalClaudeMdInstructions:b.Optional(b.String()),externalToolDefinitions:b.Optional(i8r),useAgentsMdFile:b.Optional(b.Boolean()),useNestedAgentsMdFiles:b.Optional(b.Boolean()),useClaudeMdFile:b.Optional(b.Boolean()),useNestedClaudeMdFiles:b.Optional(b.Boolean()),inlineConfinedFile:b.Optional(b.String()),mcpDirectory:b.Optional(b.String())});async function ai(t){try{return[await t(),null]}catch(e){let r=rB(e),n=e instanceof dH?e.data:void 0;return[null,{code:Je.InternalError,message:r,...n!==void 0?{data:n}:{}}]}}a(ai,"withServiceErrorHandling");var jYi=new pe("BackgroundAgent.compactHistory"),Y3c=b.Object({sessionId:Ii});async function a8r(t,e,r){jYi.info(t,"handleBackgroundAgentCompactHistory called",{sessionId:r.sessionId});let n=t.get(ws),o=e.onCancellationRequested(()=>{jYi.info(t,"handleBackgroundAgentCompactHistory: cancellation requested, aborting compaction",{sessionId:r.sessionId}),n.stopCompactHistory(r.sessionId)});try{return await ai(async()=>n.compactHistory(r.sessionId))}finally{o.dispose()}}a(a8r,"handleBackgroundAgentCompactHistoryChecked");var pmh=xe(Y3c,a8r);p();var IUe=b.Union(Object.values(uf).map(t=>b.Literal(t))),ol=b.Optional(IUe),oxt=b.Intersect([b.Omit(vve,["model","modelProvider"]),b.Object({model:b.Optional(b.String()),modelProvider:b.Optional(b.String()),agentProvider:ol})]);var HYi=new pe("BackgroundAgent.compactHistory"),K3c=b.Object({sessionId:Ii,agentProvider:ol});async function J3c(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return a8r(t,e,r);HYi.info(t,"handleAgentCompactHistory called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.compactHistory(s,e);return HYi.info(t,"compactHistory succeeded"),c})}a(J3c,"handleAgentCompactHistoryChecked");var GYi=xe(K3c,J3c);p();p();var $Yi=new pe("BackgroundAgent.create"),Z3c=b.Intersect([b.Object({sessionId:b.Optional(b.String())}),vve]);async function X3c(t,e,r){$Yi.info(t,"handleBackgroundAgentCreate called",{model:r.model,workspaceFolder:r.workspaceFolder});let n=t.get(ws),o={sessionId:r.sessionId,model:r.model,modelProvider:r.modelProvider,reasoningEffort:r.reasoningEffort,workspaceFolder:r.workspaceFolder,sessionWorkspaceFolders:r.sessionWorkspaceFolders,globalAgentsMdInstructions:r.globalAgentsMdInstructions,globalClaudeMdInstructions:r.globalClaudeMdInstructions,externalToolDefinitions:r.externalToolDefinitions,useAgentsMdFile:r.useAgentsMdFile,useNestedAgentsMdFiles:r.useNestedAgentsMdFiles,useClaudeMdFile:r.useClaudeMdFile,useNestedClaudeMdFiles:r.useNestedClaudeMdFiles,inlineConfinedFile:r.inlineConfinedFile,mcpDirectory:r.mcpDirectory};return ai(async()=>{let s=await n.createSession(o);return $Yi.info(t,"createSession succeeded:",s.sessionId),{sessionId:s.sessionId,workspacePath:s.workspacePath}})}a(X3c,"handleBackgroundAgentCreateChecked");var VYi=xe(Z3c,X3c);var WYi=new pe("BackgroundAgent.create"),eUc=b.Intersect([b.Object({sessionId:b.Optional(b.String())}),oxt]);async function tUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return VYi(t,e,r);WYi.info(t,"handleAgentCreate called",{agentProvider:r.agentProvider,model:r.model,workspaceFolder:r.workspaceFolder});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.create(s);return WYi.info(t,"create succeeded:",c.sessionId),c})}a(tUc,"handleAgentCreateChecked");var zYi=xe(eUc,tUc);p();p();var rUc=b.Object({sessionId:Ii});async function c8r(t,e,r){let n=t.get(ws);return ai(async()=>({success:(await n.destroySession({sessionId:r.sessionId})).success}))}a(c8r,"handleBackgroundAgentDestroyChecked");var sgh=xe(rUc,c8r);var nUc=new pe("BackgroundAgent.destroy"),iUc=b.Object({sessionId:Ii,agentProvider:ol});async function oUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return c8r(t,e,r);nUc.info(t,"handleAgentDestroy called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>o.destroy(s))}a(oUc,"handleAgentDestroyChecked");var YYi=xe(iUc,oUc);p();p();var sUc=new pe("BackgroundAgent.disableRemote"),aUc=b.Object({sessionId:Ii});async function l8r(t,e,r){sUc.info(t,"handleBackgroundAgentDisableRemote called",{sessionId:r.sessionId});let n=t.get(ws);return ai(async()=>(await n.disableRemote(r.sessionId),{success:!0}))}a(l8r,"handleBackgroundAgentDisableRemoteChecked");var xgh=xe(aUc,l8r);var KYi=new pe("BackgroundAgent.disableRemote"),cUc=b.Object({sessionId:Ii,agentProvider:ol});async function lUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return l8r(t,e,r);KYi.info(t,"handleAgentDisableRemote called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.disableRemote(s);return KYi.info(t,"disableRemote succeeded"),c})}a(lUc,"handleAgentDisableRemoteChecked");var JYi=xe(cUc,lUc);p();p();var uUc=new pe("BackgroundAgent.enableRemote"),dUc=b.Object({sessionId:Ii});async function u8r(t,e,r){uUc.info(t,"handleBackgroundAgentEnableRemote called",{sessionId:r.sessionId});let n=t.get(ws);return ai(async()=>n.enableRemote(r.sessionId))}a(u8r,"handleBackgroundAgentEnableRemoteChecked");var zgh=xe(dUc,u8r);var ZYi=new pe("BackgroundAgent.enableRemote"),fUc=b.Object({sessionId:Ii,agentProvider:ol});async function pUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return u8r(t,e,r);ZYi.info(t,"handleAgentEnableRemote called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.enableRemote(s);return ZYi.info(t,"enableRemote succeeded"),c})}a(pUc,"handleAgentEnableRemoteChecked");var XYi=xe(fUc,pUc);p();var hUc=b.Object({sessionId:Ii,toEventId:b.Optional(b.String()),name:b.Optional(b.String()),agentProvider:IUe});async function mUc(t,e,r){let n=t.get(Va);return ai(async()=>n.forkSession({sessionId:r.sessionId,toEventId:r.toEventId,name:r.name,providerName:r.agentProvider}))}a(mUc,"handleAgentForkChecked");var eKi=xe(hUc,mUc);p();p();var gUc=b.Object({sessionId:Ii});async function d8r(t,e,r){let n=t.get(ws);return ai(async()=>({path:await n.getPlanPath(r.sessionId)}))}a(d8r,"handleBackgroundAgentGetPlanPathChecked");var C0h=xe(gUc,d8r);var AUc=new pe("BackgroundAgent.getPlanPath"),yUc=b.Object({sessionId:Ii,agentProvider:ol});async function EUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return d8r(t,e,r);AUc.info(t,"handleAgentGetPlanPath called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>o.getPlanPath(s))}a(EUc,"handleAgentGetPlanPathChecked");var tKi=xe(yUc,EUc);p();p();var _Uc=new pe("BackgroundAgent.getRemoteStatus"),vUc=b.Object({sessionId:Ii});async function f8r(t,e,r){_Uc.info(t,"handleBackgroundAgentGetRemoteStatus called",{sessionId:r.sessionId});let n=t.get(ws);return ai(()=>Promise.resolve(n.getRemoteStatus(r.sessionId)))}a(f8r,"handleBackgroundAgentGetRemoteStatusChecked");var H0h=xe(vUc,f8r);var CUc=new pe("BackgroundAgent.getRemoteStatus"),bUc=b.Object({sessionId:Ii,agentProvider:ol});async function SUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return f8r(t,e,r);CUc.info(t,"handleAgentGetRemoteStatus called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>o.getRemoteStatus(s))}a(SUc,"handleAgentGetRemoteStatusChecked");var rKi=xe(bUc,SUc);p();p();var TUc=new pe("BackgroundAgent.interaction"),IUc=b.Union([b.Object({kind:b.Literal("approve-once")}),b.Object({kind:b.Literal("denied-by-rules"),rules:b.Array(b.Unknown())}),b.Object({kind:b.Literal("denied-no-approval-rule-and-could-not-request-from-user")}),b.Object({kind:b.Literal("denied-interactively-by-user"),feedback:b.Optional(b.String())}),b.Object({kind:b.Literal("denied-by-content-exclusion-policy"),path:b.String(),message:b.String()})]),xUc=b.Object({answer:b.String(),wasFreeform:b.Boolean()}),wUc=b.Object({action:b.Union([b.Literal("accept"),b.Literal("decline"),b.Literal("cancel")]),content:b.Optional(b.Record(b.String(),b.Union([b.String(),b.Number(),b.Boolean(),b.Array(b.String())])))}),RUc=b.Object({approved:b.Boolean(),selectedAction:b.Optional(b.Union([b.Literal("exit_only"),b.Literal("interactive"),b.Literal("autopilot"),b.Literal("autopilot_fleet")])),autoApproveEdits:b.Optional(b.Boolean()),feedback:b.Optional(b.String())}),kUc=b.Union([b.Object({handled:b.Literal(!0),stopProcessingQueue:b.Optional(b.Boolean())}),b.Object({handled:b.Literal(!1)})]),PUc=b.Union([b.String(),b.Object({textResultForLlm:b.String(),binaryResultsForLlm:b.Optional(b.Array(b.Object({data:b.String(),mimeType:b.String(),type:b.Union([b.Literal("resource"),b.Literal("image")]),description:b.Optional(b.String())}))),resultType:b.Union([b.Literal("success"),b.Literal("failure"),b.Literal("rejected"),b.Literal("denied")]),error:b.Optional(b.String())})]),DUc=b.Union([b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("permission"),result:IUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("user_input"),response:xUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("elicitation"),response:wUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("exit_plan_mode"),response:RUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("queued_command"),result:kUc}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("external_tool"),result:PUc})]);async function p8r(t,e,r){TUc.info(t,"handleBackgroundAgentInteraction called",{sessionId:r.sessionId,type:r.type,requestId:r.requestId});let n=t.get(ws);return ai(async()=>await n.handleInteraction(r))}a(p8r,"handleBackgroundAgentInteractionChecked");var uAh=xe(DUc,p8r);var nKi=new pe("BackgroundAgent.interaction"),NUc=b.Union([b.Object({kind:b.Literal("approve-once")}),b.Object({kind:b.Literal("denied-by-rules"),rules:b.Array(b.Unknown())}),b.Object({kind:b.Literal("denied-no-approval-rule-and-could-not-request-from-user")}),b.Object({kind:b.Literal("denied-interactively-by-user"),feedback:b.Optional(b.String())}),b.Object({kind:b.Literal("denied-by-content-exclusion-policy"),path:b.String(),message:b.String()})]),MUc=b.Object({answer:b.String(),wasFreeform:b.Boolean()}),OUc=b.Object({action:b.Union([b.Literal("accept"),b.Literal("decline"),b.Literal("cancel")]),content:b.Optional(b.Record(b.String(),b.Union([b.String(),b.Number(),b.Boolean(),b.Array(b.String())])))}),BUc=b.Object({approved:b.Boolean(),selectedAction:b.Optional(b.Union([b.Literal("exit_only"),b.Literal("interactive"),b.Literal("autopilot"),b.Literal("autopilot_fleet")])),autoApproveEdits:b.Optional(b.Boolean()),feedback:b.Optional(b.String())}),LUc=b.Union([b.Object({handled:b.Literal(!0),stopProcessingQueue:b.Optional(b.Boolean())}),b.Object({handled:b.Literal(!1)})]),FUc=b.Union([b.String(),b.Object({textResultForLlm:b.String(),binaryResultsForLlm:b.Optional(b.Array(b.Object({data:b.String(),mimeType:b.String(),type:b.Union([b.Literal("resource"),b.Literal("image")]),description:b.Optional(b.String())}))),resultType:b.Union([b.Literal("success"),b.Literal("failure"),b.Literal("rejected"),b.Literal("denied")]),error:b.Optional(b.String())})]),UUc=b.Union([b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("permission"),result:NUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("user_input"),response:MUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("elicitation"),response:OUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("exit_plan_mode"),response:BUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("queued_command"),result:LUc,agentProvider:ol}),b.Object({sessionId:Ii,requestId:b.String(),type:b.Literal("external_tool"),result:FUc,agentProvider:ol})]);async function QUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return p8r(t,e,r);nKi.info(t,"handleAgentInteraction called",{agentProvider:r.agentProvider,sessionId:r.sessionId,type:r.type,requestId:r.requestId});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.interaction(s);return nKi.info(t,"interaction succeeded"),c})}a(QUc,"handleAgentInteractionChecked");var iKi=xe(UUc,QUc);p();p();var oKi=new pe("BackgroundAgent.listSessions"),qUc=b.Object({cwd:b.Optional(b.String()),gitRoot:b.Optional(b.String()),repository:b.Optional(b.String()),branch:b.Optional(b.String())});async function h8r(t,e,r){oKi.info(t,"handleBackgroundAgentSessionsList called",r);let n=t.get(ws);return ai(async()=>{let o=await n.listSessions(r);return oKi.info(t,"listSessions succeeded, returning",o.sessions.length,"sessions"),o})}a(h8r,"handleBackgroundAgentSessionsListChecked");var DAh=xe(qUc,h8r);var m8r=new pe("BackgroundAgent.listSessions"),jUc=b.Object({cwd:b.Optional(b.String()),gitRoot:b.Optional(b.String()),repository:b.Optional(b.String()),branch:b.Optional(b.String()),agentProvider:ol}),HUc=new Set(Object.values(uf));async function GUc(t,e,r){let n=r.agentProvider??"BACKGROUND";if(!HUc.has(n))return m8r.info(t,`listSessions: no sessions for unsupported provider '${n}', returning empty`),[{sessions:[]},null];if(n!=="CLOUD"&&(r.cwd=r.cwd&&$o(r.cwd),r.gitRoot=r.gitRoot&&$o(r.gitRoot)),n==="BACKGROUND")return h8r(t,e,r);m8r.info(t,"handleAgentSessionsList called",r);let o=t.get(Va),s=r;return ai(async()=>{let c=await o.listSessions(s);return m8r.info(t,"listSessions succeeded, returning",c.sessions.length,"sessions"),c})}a(GUc,"handleAgentSessionsListChecked");var sKi=xe(jUc,GUc);p();p();var aKi=new pe("BackgroundAgent.listModels"),$Uc=b.Object({forceRefresh:b.Optional(b.Boolean())});async function g8r(t,e,r){aKi.info(t,"handleBackgroundAgentListModels called",{forceRefresh:r.forceRefresh});let n=t.get(ws);return ai(async()=>{let o=await n.listModels(r.forceRefresh);return aKi.info(t,"listModels succeeded, returning",o.models.length,"models"),o})}a(g8r,"handleBackgroundAgentListModelsChecked");var tyh=xe($Uc,g8r);var cKi=new pe("BackgroundAgent.listModels"),VUc=b.Object({forceRefresh:b.Optional(b.Boolean()),agentProvider:ol});async function WUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return g8r(t,e,r);cKi.info(t,"handleAgentListModels called",{agentProvider:r.agentProvider,forceRefresh:r.forceRefresh});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.listModels(s);return cKi.info(t,"listModels succeeded, returning",c.models.length,"models"),c})}a(WUc,"handleAgentListModelsChecked");var lKi=xe(VUc,WUc);p();p();var uKi=new pe("BackgroundAgent.resume"),zUc=b.Intersect([b.Object({sessionId:Ii}),vve]);async function YUc(t,e,r){uKi.info(t,"handleBackgroundAgentResume called",{sessionId:r.sessionId,model:r.model});let n=t.get(ws),o={sessionId:r.sessionId,model:r.model,modelProvider:r.modelProvider,reasoningEffort:r.reasoningEffort,workspaceFolder:r.workspaceFolder,sessionWorkspaceFolders:r.sessionWorkspaceFolders,globalAgentsMdInstructions:r.globalAgentsMdInstructions,globalClaudeMdInstructions:r.globalClaudeMdInstructions,externalToolDefinitions:r.externalToolDefinitions,useAgentsMdFile:r.useAgentsMdFile,useNestedAgentsMdFiles:r.useNestedAgentsMdFiles,useClaudeMdFile:r.useClaudeMdFile,useNestedClaudeMdFiles:r.useNestedClaudeMdFiles,mcpDirectory:r.mcpDirectory};return ai(async()=>{let s=await n.resumeSession(o);return uKi.info(t,"resumeSession succeeded:",s.sessionId),{sessionId:s.sessionId,workspacePath:s.workspacePath,events:s.events}})}a(YUc,"handleBackgroundAgentResumeChecked");var dKi=xe(zUc,YUc);var fKi=new pe("BackgroundAgent.resume"),KUc=b.Intersect([b.Object({sessionId:Ii}),oxt]);async function JUc(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return dKi(t,e,r);fKi.info(t,"handleAgentResume called",{agentProvider:r.agentProvider,sessionId:r.sessionId,model:r.model});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.resume(s);return fKi.info(t,"resume succeeded:",c.sessionId),c})}a(JUc,"handleAgentResumeChecked");var pKi=xe(KUc,JUc);p();p();var ZUc=["interactive","plan","autopilot"],XUc=b.Union(ZUc.map(t=>b.Literal(t))),e8c=b.String({minLength:1}),t8c=b.Object({sessionId:Ii,message:b.String(),model:o8r,modelProvider:b.Optional(s8r),reasoningEffort:_ve,references:b.Optional(b.Array(R5)),agentMode:b.Optional(XUc),chatMode:b.Optional(e8c),contextTier:b.Optional(TUe),sendMode:b.Optional(b.Union([b.Literal("enqueue"),b.Literal("immediate")]))});async function r8c(t,e,r){let n=t.get(ws),o={sessionId:r.sessionId,message:r.message,model:r.model,modelProvider:r.modelProvider,reasoningEffort:r.reasoningEffort,references:r.references,agentMode:r.agentMode,chatMode:r.chatMode,contextTier:r.contextTier,sendMode:r.sendMode};return ai(async()=>({messageId:(await n.sendMessage(o,e)).messageId}))}a(r8c,"handleBackgroundAgentSendChecked");var hKi=xe(t8c,r8c);var mKi=new pe("BackgroundAgent.send"),n8c=b.String(),i8c=b.String(),o8c=b.String({minLength:1}),s8c=b.Object({sessionId:Ii,message:b.String(),model:b.Optional(b.String()),modelProvider:b.Optional(n8c),reasoningEffort:_ve,references:b.Optional(b.Array(R5)),agentMode:b.Optional(i8c),chatMode:b.Optional(o8c),contextTier:b.Optional(TUe),agentProvider:ol});async function a8c(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND")return hKi(t,e,r);mKi.info(t,"handleAgentSend called",{agentProvider:r.agentProvider,sessionId:r.sessionId,model:r.model});let o=t.get(Va),s=r;return ai(async()=>{let c=await o.send(s,e);return mKi.info(t,"resume succeeded:",c.messageId),c})}a(a8c,"handleAgentSendChecked");var gKi=xe(s8c,a8c);p();p();var c8c=new pe("BackgroundAgent.stop"),l8c=b.Object({sessionId:Ii});async function A8r(t,e,r){c8c.info(t,"handleBackgroundAgentStop called",{sessionId:r.sessionId});let n=t.get(ws);return ai(async()=>(await n.stopSession(r.sessionId),{success:!0}))}a(A8r,"handleBackgroundAgentStopChecked");var uEh=xe(l8c,A8r);var u8c=new pe("BackgroundAgent.stop"),d8c=b.Object({sessionId:Ii,agentProvider:ol});async function f8c(t,e,r){if((r.agentProvider??"BACKGROUND")==="BACKGROUND"){let[,c]=await A8r(t,e,r);return c?[null,c]:[void 0,null]}u8c.info(t,"handleAgentStop called",{agentProvider:r.agentProvider,sessionId:r.sessionId});let o=t.get(Va),s=r;return ai(async()=>o.stop(s))}a(f8c,"handleAgentStopChecked");var AKi=xe(d8c,f8c);p();var p8c=b.Object({sessionId:Ii,eventId:b.String(),agentProvider:IUe});async function h8c(t,e,r){let n=t.get(Va),o={sessionId:r.sessionId,eventId:r.eventId,providerName:r.agentProvider};return ai(async()=>n.truncateHistory(o))}a(h8c,"handleAgentTruncateHistoryChecked");var yKi=xe(p8c,h8c);p();var m8c=b.Object({});async function g8c(t,e,r){return e.isCancellationRequested?[null,{code:Je.RequestCancelled,message:"Request was cancelled"}]:[{tokens:await t.get(Ur).listAvailableTokens()},null]}a(g8c,"handleListAvailableTokensChecked");var EKi=xe(m8c,g8c);p();var A8c=b.Object({tokenId:b.Number()});async function y8c(t,e,r){return e.isCancellationRequested?[null,{code:Je.RequestCancelled,message:"Request was cancelled"}]:(await t.get(Ur).revokeTokenById(r.tokenId,"user_action"),[null,null])}a(y8c,"handleRemoveTokenChecked");var _Ki=xe(A8c,y8c);p();var E8c=b.Object({tokenId:b.Number()});async function _8c(t,e,r){return e.isCancellationRequested?[null,{code:Je.RequestCancelled,message:"Request was cancelled"}]:[await t.get(Ur).useExistingToken(r.tokenId),null]}a(_8c,"handleUseExistingTokenChecked");var vKi=xe(E8c,_8c);p();var v8c=new pe("BackgroundAgent.listCLIModels"),C8c=b.Object({forceRefresh:b.Optional(b.Boolean())});async function b8c(t,e,r){let n=t.get(ws);return ai(async()=>{let o=await n.listCLIModels(r.forceRefresh);return v8c.info(t,"listCLIModels succeeded, returning",o.length,"models"),o})}a(b8c,"handleBackgroundAgentListCLIModelsChecked");var CKi=xe(C8c,b8c);p();var bKi=b.Object({bridgeId:b.String({minLength:1}),ideName:b.String({minLength:1}),ideProcessId:b.Integer({minimum:1}),workspaceFolders:b.Array(b.String()),isTrusted:b.Boolean()}),S8c=b.Object({bridgeId:b.String({minLength:1})});async function T8c(t,e,r){return await t.get(Vv).register(r),[{success:!0},null]}a(T8c,"register");async function I8c(t,e,r){return await t.get(Vv).update(r),[{success:!0},null]}a(I8c,"update");async function x8c(t,e,r){return await t.get(Vv).unregister(r.bridgeId),[{success:!0},null]}a(x8c,"unregister");var SKi=xe(bKi,T8c),TKi=xe(bKi,I8c),IKi=xe(S8c,x8c);p();var w8c=b.Object({providerName:b.String()});async function R8c(t,e,r){try{let{providerName:n}=r,o=c5(n);if(o!==0)return[null,{code:Je.InvalidParams,message:`deleteApiKey is only supported for providers with GlobalApiKey auth type. Provider ${n} has auth type: ${o}`}];let s=new us(t.get(jn));return await s.removeAllModelConfigs(n),await s.deleteAPIKey(n,o),await s.deleteProviderConfig(n),[{success:!0,message:`API key and all model configurations deleted successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to delete API key: ${n instanceof Error?n.message:String(n)}`}]}}a(R8c,"handleBYOKDeleteApiKeyChecked");var xKi=xe(w8c,R8c);p();var k8c=b.Object({providerName:b.String(),modelId:b.String()});async function P8c(t,e,r){try{let n=new us(t.get(jn)),{providerName:o,modelId:s}=r,c=c5(o);return await n.removeModelConfig(o,s),c===1&&await n.deleteAPIKey(o,c,s),[{success:!0,message:`Model ${s} deleted successfully for provider ${o}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to delete model: ${n instanceof Error?n.message:String(n)}`}]}}a(P8c,"handleBYOKDeleteModelChecked");var wKi=xe(k8c,P8c);p();var D8c=b.Object({providerName:b.String()});async function N8c(t,e,r){try{let{providerName:n}=r;if(!n)return[null,{code:Je.InvalidRequest,message:"Provider name must not be empty."}];if(!gb(n))return[null,{code:Je.InvalidRequest,message:`Provider-level config deletion is not supported for the '${n}' provider.`}];let o=new us(t.get(jn));return await o.removeAllModelConfigs(n),await o.deleteProviderConfig(n),[{success:!0,message:`Provider config and all model configurations deleted successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to delete provider config: ${n instanceof Error?n.message:String(n)}`}]}}a(N8c,"handleBYOKDeleteProviderConfigChecked");var RKi=xe(D8c,N8c);p();var M8c=b.Object({providerName:b.Optional(b.String()),modelId:b.Optional(b.String())}),kKi="-api-key";async function O8c(t,e){let r=await e.listKeys("byok"),n=new Set(await t.listCustomProviderNames()),o=new Set(Object.keys(await t.getStoredModelConfigs(bi.Azure))),s=new Set(Object.values(bi).filter(u=>u!==bi.Azure)),c=`${bi.Azure}-`,l=[];for(let u of r){if(!u.endsWith(kKi))continue;let d=await e.read("byok",u);if(!d)continue;let f=u.slice(0,-kKi.length),h=f.startsWith(c)?f.slice(c.length):void 0;if(h!==void 0&&o.has(h)&&!n.has(f)){l.push({providerName:bi.Azure,modelId:h,apiKey:d});continue}(s.has(f)||n.has(f))&&l.push({providerName:f,apiKey:d})}return l}a(O8c,"listAllApiKeys");async function B8c(t,e,r){try{let n=new us(t.get(jn)),{providerName:o,modelId:s}=r;return o?[{apiKeys:[{apiKey:await n.getAPIKey(o,s)||void 0,providerName:o,modelId:s}]},null]:[{apiKeys:await O8c(n,t.get(jn))},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to get API key: ${n instanceof Error?n.message:String(n)}`}]}}a(B8c,"handleBYOKListApiKeysChecked");var PKi=xe(M8c,B8c);p();var L8c=b.Object({providerName:b.Optional(b.String())});async function F8c(t,e,r){try{let n=new us(t.get(jn)),o=r.providerName?TD(r.providerName)?[r.providerName]:[]:await n.listCustomProviderNames(),s=[];for(let c of o){let l=await n.getProviderConfig(c);s.push({providerName:c,groupName:l?.groupName,apiType:l?.apiType})}return[{providers:s},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to list provider configs: ${n instanceof Error?n.message:String(n)}`}]}}a(F8c,"handleBYOKListCustomProviderConfigsChecked");var DKi=xe(L8c,F8c);p();p();p();a6r();var pwt=class extends Ab{static{a(this,"AnthropicProvider")}constructor(e){super(bi.Anthropic,e)}async getAllModels(){await this.ensureKnownModelsCache();let e=await new us(this.ctx.get(jn)).getAPIKey(this.providerName);if(!e)throw new Error(`API key not found for provider: ${this.providerName}`);let r=new k4({apiKey:e,fetch:q9c(this.ctx.get(Zt))});try{let n=await r.models.list(),o=[];for(let s of n.data){let c=this._knownModels?.[s.id];c&&o.push({providerName:this.providerName,modelId:s.id,isRegistered:!1,isCustomModel:!1,modelCapabilities:c})}return o}catch(n){throw wJe.error(this.ctx,`Error fetching models from ${this.providerName} provider:`,n),n}}};function q9c(t){return async(e,r)=>{let n=j9c(e,r),o=G9c(r),s=await t.fetch(n,o);return V9c(s)}}a(q9c,"createAnthropicFetchAdapter");function j9c(t,e){return t instanceof Request?(H9c(t,e),t.url):t instanceof URL?t.toString():t}a(j9c,"convertInputToString");function H9c(t,e){e&&(e.headers??=t.headers,e.method??=t.method,!e.body&&!t.bodyUsed&&(e.body=t.body))}a(H9c,"mergeRequestInit");function G9c(t){let e;return t?.headers&&(e=$9c(t.headers)),{method:t?.method||"GET",headers:e,body:t?.body,signal:t?.signal||void 0}}a(G9c,"convertToFetchOptions");function $9c(t){let e={};if(t instanceof Headers)for(let[r,n]of t.entries())e[r]=n;else if(Array.isArray(t))for(let[r,n]of t)e[r]=n;else return t;return e}a($9c,"convertHeaders");async function V9c(t){let e=t.body(),r=null;if(e)r=W9c(e);else{let n=await t.text();r=Y9c(n)}return new globalThis.Response(r,{status:t.status,statusText:t.statusText,headers:new Headers(t.headers)})}a(V9c,"convertToWebResponse");function W9c(t){return new ReadableStream({start(e){let r=z9c(t,e);return()=>r()},cancel(){"destroy"in t&&typeof t.destroy=="function"&&t.destroy()}})}a(W9c,"createReadableStreamFromNodeStream");function z9c(t,e){let r=a(c=>{e.enqueue(new Uint8Array(c))},"onData"),n=a(()=>{e.close(),s()},"onEnd"),o=a(c=>{e.error(c),s()},"onError"),s=a(()=>{t.off("data",r),t.off("end",n),t.off("error",o)},"cleanup");return t.on("data",r),t.on("end",n),t.on("error",o),s}a(z9c,"setupStreamHandlers");function Y9c(t){return new ReadableStream({start(e){e.enqueue(new TextEncoder().encode(t)),e.close()}})}a(Y9c,"createReadableStreamFromText");p();var hwt=class extends Ab{static{a(this,"GeminiProvider")}constructor(e){super(bi.Gemini,e)}};p();var mwt=class extends Ab{static{a(this,"GroqProvider")}constructor(e){super(bi.Groq,e)}};p();var u9r=new pe("ollamaProvider"),d9r="0.6.4",K9c=32768,eXi=4096,gwt=class extends Ab{constructor(r){super(bi.Ollama,r);this._modelCache=new Map}static{a(this,"OllamaProvider")}async getAllModels(r){let n=Djt(r);await this._checkOllamaVersion(n);let o;try{let c=await this.ctx.get(Zt).fetch(`${n}/api/tags`,{method:"GET"});if(!c.ok)throw new Error(`Failed to fetch models: ${c.status} ${c.statusText}`);o=await c.json()}catch(c){throw u9r.error(this.ctx,`Error fetching models from Ollama at ${n}:`,c),new Error("Failed to fetch models from Ollama. Please ensure Ollama is running. If Ollama is on another host, configure the endpoint URL for the Ollama provider.")}return(await Promise.all((o.models??[]).map(c=>this._resolveModelInfo(n,c)))).filter(c=>c!==void 0)}async _resolveModelInfo(r,n){let o=n.model;if(!o)return;let s=`${r}/${o}`,c=this._modelCache.get(s),l=c!==void 0&&n.digest!==void 0&&c.digest===n.digest,u;if(l)u=c.capabilities;else{try{u=await this._getOllamaModelInfo(r,o)}catch(d){u9r.error(this.ctx,`Failed to fetch Ollama model info for '${o}':`,d);return}this._modelCache.set(s,{digest:n.digest,capabilities:u})}return{providerName:this.providerName,modelId:o,deploymentUrl:r,isRegistered:!1,isCustomModel:!1,modelCapabilities:u}}async _getOllamaModelInfo(r,n){let o=await this._fetchOllamaModelInformation(r,n),s=o.model_info?.["general.architecture"],c=(s?o.model_info?.[`${s}.context_length`]:void 0)??K9c,l=c<eXi?Math.floor(c/2):eXi,u=o.capabilities??[];return{name:n,maxInputTokens:Math.max(0,c-l),maxOutputTokens:l,vision:u.includes("vision"),toolCalling:u.includes("tools")}}async _fetchOllamaModelInformation(r,n){let o=await this.ctx.get(Zt).fetch(`${r}/api/show`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:n})});if(!o.ok)throw new Error(`Failed to fetch model info: ${o.status} ${o.statusText}`);return await o.json()}async _checkOllamaVersion(r){let n;try{let o=await this.ctx.get(Zt).fetch(`${r}/api/version`,{method:"GET"});if(!o.ok)throw new Error(`${o.status} ${o.statusText}`);n=(await o.json()).version}catch(o){throw u9r.error(this.ctx,`Unable to verify Ollama server version at ${r}:`,o),new Error(`Unable to verify Ollama server version. Please ensure Ollama version ${d9r} or higher is installed and running.`)}if(!J9c(n))throw new Error(`Ollama server version ${n} is not supported. Please upgrade to version ${d9r} or higher.`)}};function J9c(t){let e=t.trim();if(e==="0.0.0")return!0;let r=a(s=>{let l=s.trim().replace(/^v/i,"").split(/[+-]/,1)[0].split(".").map(u=>Number(u));return l.length>0&&l.every(u=>Number.isFinite(u))?l:void 0},"parseParts"),n=r(e),o=r(d9r);if(!n||!o)return!1;for(let s=0;s<Math.max(n.length,o.length);s++){let c=n[s]??0,l=o[s]??0;if(c>l)return!0;if(c<l)return!1}return!0}a(J9c,"isVersionSupported");p();var Awt=class extends Ab{static{a(this,"OpenAIProvider")}constructor(e){super(bi.OpenAI,e)}};p();var tXi=16e3,ywt=class extends Ab{static{a(this,"OpenRouterProvider")}constructor(e){super(bi.OpenRouter,e)}getFetchModelUrl(){return`${this.getBaseUrl()}/models?supported_parameters=tools`}resolveModelCapabilities(e){let r=e,n=r.top_provider?.context_length;if(typeof r.name!="string"||typeof n!="number")return;let o=r.supported_parameters??[],s=o.includes("reasoning")||o.includes("reasoning_effort")?["low","medium","high"]:void 0;return{name:r.name,maxInputTokens:Math.max(0,n-tXi),maxOutputTokens:tXi,toolCalling:o.includes("tools"),vision:r.architecture?.input_modalities?.includes("image")??!1,supportsReasoningEffort:s}}};var Uoe=class{static{a(this,"BYOKProviderFactory")}constructor(e){this.providers=new Map([[bi.OpenAI,new Awt(e)],[bi.Gemini,new hwt(e)],[bi.Groq,new mwt(e)],[bi.OpenRouter,new ywt(e)],[bi.Anthropic,new pwt(e)],[bi.Ollama,new gwt(e)]])}getBYOKProvider(e){return this.providers.get(e)}};var Z9c=b.Object({providerName:b.Optional(b.String()),enableFetchUrl:b.Optional(b.Boolean())});function f9r(t,e){if(!e)return e;let r=tRe(t);return{...e,maxInputTokens:e.maxInputTokens??r.maxInputTokens,maxOutputTokens:e.maxOutputTokens??r.maxOutputTokens}}a(f9r,"withDefaultTokenLimits");async function X9c(t,e,r){try{let{providerName:n,enableFetchUrl:o}=r,s=new us(t.get(jn)),c=[];if(n)if(o){let l=gb(n);if(!qJ(n)&&!l)return[null,{code:Je.InvalidRequest,message:`enableFetchUrl is not supported for the ${n} provider`}];if(!await s.getAPIKey(n)&&!l)return[null,{code:Je.InvalidRequest,message:`API key is required to fetch models from ${n}`}];let d=t.get(Uoe).getBYOKProvider(n);if(d){let f;if(l&&(f=(await s.getProviderConfig(n))?.url,!f))return[null,{code:Je.InvalidRequest,message:`No endpoint URL configured for the ${n} provider. Set one via saveProviderConfig before fetching models.`}];let h=await d.getAllModels(f),m=new Map;h.forEach(y=>{let E=`${y.providerName}_${y.modelId}`;m.set(E,y)});let g=await s.getStoredModelConfigs(n),A=[];for(let[y,E]of Object.entries(g)){if(l&&!m.has(`${n}_${y}`)){await s.removeModelConfig(n,y);continue}A.push({providerName:n,modelId:y,deploymentUrl:E.deploymentUrl,isRegistered:E.isRegistered,isCustomModel:E.isCustomModel,modelCapabilities:f9r(n,E.modelCapabilities)})}A.forEach(y=>{let E=`${y.providerName}_${y.modelId}`;m.set(E,y)}),c.push(...m.values())}}else{let l=await s.getStoredModelConfigs(n);Object.entries(l).forEach(([u,d])=>{c.push({providerName:n,modelId:u,deploymentUrl:d.deploymentUrl,isRegistered:d.isRegistered,isCustomModel:d.isCustomModel,modelCapabilities:f9r(n,d.modelCapabilities)})})}else{let l=await s.listAllProviderNames();for(let u of l){let d=await s.getStoredModelConfigs(u);Object.entries(d).forEach(([f,h])=>{c.push({providerName:u,modelId:f,deploymentUrl:h.deploymentUrl,isRegistered:h.isRegistered,isCustomModel:h.isCustomModel,modelCapabilities:f9r(u,h.modelCapabilities)})})}}return[{models:c},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to get models: ${n instanceof Error?n.message:String(n)}`}]}}a(X9c,"handleBYOKListModelsChecked");var rXi=xe(Z9c,X9c);p();var e7c=b.Object({providerName:b.Optional(b.String())}),t7c=[bi.Ollama];async function r7c(t,e,r){try{let n=new us(t.get(jn)),o;r.providerName?o=gb(r.providerName)?[r.providerName]:[]:o=t7c;let s=[];for(let c of o){let l=await n.getProviderConfig(c);l&&s.push({providerName:c,url:l.url})}return[{providers:s},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to list provider configs: ${n instanceof Error?n.message:String(n)}`}]}}a(r7c,"handleBYOKListProviderConfigsChecked");var nXi=xe(e7c,r7c);p();var n7c=b.Object({providerName:b.String(),apiKey:b.String(),modelId:b.Optional(b.String())});async function i7c(t,e,r){try{let n=new us(t.get(jn)),{providerName:o,apiKey:s,modelId:c}=r,l=c5(o);if(l===1&&!c)return[null,{code:Je.InvalidRequest,message:"modelId is required for PerModelDeployment auth type"}];await n.storeAPIKey(o,s,l,c,{clearNonCustomModelsOnUpdate:!0});let u=`API key saved successfully for provider ${o}`;return[{success:!0,message:c?`${u} and model ${c}`:u},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to save API key: ${n instanceof Error?n.message:String(n)}`}]}}a(i7c,"handleBYOKSaveApiKeyChecked");var iXi=xe(n7c,i7c);p();var o7c=b.Object({providerName:b.String(),apiKey:b.String(),groupName:b.String(),apiType:b.Optional(b.Union([b.Literal("chatCompletions"),b.Literal("responses"),b.Literal("messages")]))});async function s7c(t,e,r){try{let n=r.providerName,{apiKey:o,groupName:s,apiType:c}=r;if(!n)return[null,{code:Je.InvalidRequest,message:"Provider name must not be empty."}];if(!o)return[null,{code:Je.InvalidRequest,message:"API key must not be empty."}];if(!TD(n))return[null,{code:Je.InvalidRequest,message:`Provider '${n}' is a built-in provider; custom provider config is only supported for user-named providers.`}];let l=new us(t.get(jn));return await l.storeAPIKey(n,o,c5(n)),await l.saveProviderConfig(n,{groupName:s,apiType:c}),[{success:!0,message:`Provider config saved successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to save provider config: ${n instanceof Error?n.message:String(n)}`}]}}a(s7c,"handleBYOKSaveCustomProviderConfigChecked");var oXi=xe(o7c,s7c);p();var a7c=b.Object({providerName:b.String(),modelId:b.String(),isRegistered:b.Boolean(),isCustomModel:b.Boolean(),deploymentUrl:b.Optional(b.String()),apiKey:b.Optional(b.String()),modelCapabilities:b.Optional(b.Object({name:b.String(),maxInputTokens:b.Optional(b.Number()),maxOutputTokens:b.Optional(b.Number()),toolCalling:b.Boolean(),vision:b.Boolean(),thinking:b.Optional(b.Boolean())}))});async function c7c(t,e,r){try{let{providerName:n,modelId:o,isRegistered:s,isCustomModel:c,deploymentUrl:l,apiKey:u,modelCapabilities:d}=r,f=new us(t.get(jn)),h=c5(n);if(h===1&&!l)return[null,{code:Je.InvalidRequest,message:`deploymentUrl is required for the ${n} provider`}];if(TD(n)){if(!l)return[null,{code:Je.InvalidRequest,message:`deploymentUrl is required for custom endpoint provider '${n}'`}];if(!await f.getProviderConfig(n))return[null,{code:Je.InvalidRequest,message:`Custom endpoint provider '${n}' must be configured via saveCustomProviderConfig before registering models.`}]}if(l||d){let m={deploymentUrl:l,isRegistered:s,isCustomModel:c,modelCapabilities:d};await f.saveModelConfig(n,o,m,u,h)}else u!==void 0&&await f.storeAPIKey(n,u,h,o);return[{success:!0,message:`Model ${o} saved successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to save model: ${n instanceof Error?n.message:String(n)}`}]}}a(c7c,"handleBYOKSaveModelChecked");var sXi=xe(a7c,c7c);p();var l7c=b.Object({providerName:b.String(),url:b.Optional(b.String())});async function u7c(t,e,r){try{let{providerName:n,url:o}=r;if(!n)return[null,{code:Je.InvalidRequest,message:"Provider name must not be empty."}];if(!gb(n))return[null,{code:Je.InvalidRequest,message:`Provider-level endpoint URL is not supported for the '${n}' provider.`}];let s=new us(t.get(jn)),c=await s.getProviderConfig(n);return await s.saveProviderConfig(n,{...c,groupName:c?.groupName??n,url:o}),[{success:!0,message:`Provider config saved successfully for provider ${n}`},null]}catch(n){return[null,{code:Je.InternalError,message:`Failed to save provider config: ${n instanceof Error?n.message:String(n)}`}]}}a(u7c,"handleBYOKSaveProviderConfigChecked");var aXi=xe(l7c,u7c);p();var d7c=b.Object({cliPath:b.String()});async function f7c(t,e,r){return[await Gge.check(r.cliPath),null]}a(f7c,"handleCheckClaudeCliCompatibilityChecked");var cXi=xe(d7c,f7c);p();p();var uXi=fe(oD()),lXi="0.135.0",Ewt=new Hge({displayName:"Codex CLI",notConfiguredMessage:"Codex CLI path is not configured. Install the Codex CLI (e.g. `npm install -g @openai/codex`), then set the Codex CLI Path in your editor's Copilot settings to the absolute path of the `codex` binary.",validateVersionOutput(t){if(!/^\s*codex-cli(?:\s|$)/i.test(t))return{severity:"error",message:'The input path does not appear to be the Codex CLI. Expected --version output to start with "codex-cli".'}},validateVersion(t){if(uXi.lt(t,lXi))return{severity:"error",message:`Codex CLI at the input path reports version ${t.version}, but version ${lXi} or later is required. Run \`npm install -g @openai/codex\` to upgrade.`}}});var p7c=b.Object({cliPath:b.String()});async function h7c(t,e,r){return[await Ewt.check(r.cliPath),null]}a(h7c,"handleCheckCodexCliCompatibilityChecked");var dXi=xe(p7c,h7c);p();var m7c=b.Object({uri:b.String({minLength:1})});async function g7c(t,e,r){let n=await t.get(ui).getOrReadTextDocument(r);return[{status:hd(n),...n.status==="invalid"&&{reason:n.reason},...n.status==="notfound"&&{reason:n.message}},null]}a(g7c,"handleCheckFileStatusChecked");var fXi=xe(m7c,g7c);p();var A7c=b.Object({});function pXi(t,e){return typeof t!="number"||typeof e!="number"||e===0?0:Math.max(0,Math.min(100,t/e*100))}a(pXi,"calculatePercentRemaining");function p9r(t){return{percentRemaining:t?.percent_remaining??100,unlimited:t?.unlimited??!1,overagePermitted:t?.overage_permitted??!1,overageCount:t?.overage_count,overageEntitlement:t?.overage_entitlement,creditsUsed:t?.credits_used,entitlement:t?.entitlement,quotaRemaining:t?.quota_remaining,timeStamp:t?.timestamp_utc}}a(p9r,"buildQuotaSnapshot");async function y7c(t,e,r){let n=await t.get(Ur).resolveSession();if(!n)return[null,{code:Je.InternalError,message:"Not signed in"}];let o=await dTe(t,n);if(o.ok){let s=await o.json();return t.get(Du).processUserInfoQuotaSnapshot(s),s.token_based_billing?[{chat:p9r(s.quota_snapshots?.chat),completions:p9r(s.quota_snapshots?.completions),premiumInteractions:p9r(s.quota_snapshots?.premium_interactions),resetDate:s.quota_reset_date??"",resetDateUtc:s.quota_reset_date_utc,copilotPlan:s.access_type_sku==="free_limited_copilot"?"free":s.copilot_plan,tokenBasedBillingEnabled:!0,canUpgradePlan:s.can_upgrade_plan},null]:s.access_type_sku==="free_limited_copilot"?[{chat:{percentRemaining:pXi(s.limited_user_quotas?.chat,s.monthly_quotas?.chat),unlimited:!1,overagePermitted:!1},completions:{percentRemaining:pXi(s.limited_user_quotas?.completions,s.monthly_quotas?.completions),unlimited:!1,overagePermitted:!1},premiumInteractions:{percentRemaining:0,unlimited:!1,overagePermitted:!1},resetDate:s.limited_user_reset_date??"",copilotPlan:"free",tokenBasedBillingEnabled:!1,canUpgradePlan:s.can_upgrade_plan},null]:[{chat:{percentRemaining:s.quota_snapshots?.chat?.percent_remaining??100,unlimited:s.quota_snapshots?.chat?.unlimited??!1,overagePermitted:s.quota_snapshots?.chat?.overage_permitted??!1},completions:{percentRemaining:s.quota_snapshots?.completions?.percent_remaining??100,unlimited:s.quota_snapshots?.completions?.unlimited??!1,overagePermitted:s.quota_snapshots?.completions?.overage_permitted??!1},premiumInteractions:{percentRemaining:s.quota_snapshots?.premium_interactions?.percent_remaining??100,unlimited:s.quota_snapshots?.premium_interactions?.unlimited??!1,overagePermitted:s.quota_snapshots?.premium_interactions?.overage_permitted??!1},resetDate:s.quota_reset_date??"",copilotPlan:s.copilot_plan,tokenBasedBillingEnabled:!1,canUpgradePlan:s.can_upgrade_plan},null]}return[null,{code:Je.InternalError,message:"Failed to fetch quota info"}]}a(y7c,"handleCheckQuotaChecked");var hXi=xe(A7c,y7c);p();var E7c=b.Object({options:b.Optional(b.Object({localChecksOnly:b.Optional(b.Boolean()),forceRefresh:b.Optional(b.Boolean())}))});async function _7c(t,e,r){return[await t.get(Ur).checkAndUpdateStatus(r.options),null]}a(_7c,"handleCheckStatusChecked");var mXi=xe(E7c,_7c);p();var v7c=b.Object({pullRequestNumber:b.Integer({minimum:1}),repoOwner:b.String({minLength:1}),repoName:b.String({minLength:1}),body:b.String({minLength:1})});async function C7c(t,e,r){try{if(e.isCancellationRequested)return[null,{code:Je.RequestCancelled,message:"Request was cancelled"}];let o=await new Cm(t).addPullRequestComment(r.repoOwner,r.repoName,r.pullRequestNumber,r.body);return wc(t,"cloudAgent.addPullRequestComment",{result:"success"}),[{html_url:o.html_url},null]}catch(n){if(op(t,"cloudAgent.addPullRequestComment",n,{result:"error"}),n instanceof OE)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof md&&n.isClientError())return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(C7c,"handleCloudAgentAddPullRequestCommentChecked");var gXi=xe(v7c,C7c);p();var b7c=b.Object({pullRequestId:b.Number(),repoOwner:b.String({minLength:1}),repoName:b.String({minLength:1})});async function S7c(t,e,r){try{let o=await new bb(t).getAllSessions(r.pullRequestId,e);if(!o||o.length===0)return[null,{code:Je.InvalidRequest,message:"No session found for this pull request"}];let s=o[0];return s.state==="completed"?(ft(t,"githubApi.cancelCodingAgent",$t.createAndMarkAsIssued()),Yt(t,"githubApi.cancelCodingAgent"),[{success:!0},null]):s.workflow_run_id?(await new Cm(t).cancelWorkflow(r.repoOwner,r.repoName,s.workflow_run_id),ft(t,"githubApi.cancelCodingAgent",$t.createAndMarkAsIssued()),Yt(t,"githubApi.cancelCodingAgent"),[{success:!0},null]):[null,{code:Je.InternalError,message:"No workflow run ID found in session"}]}catch(n){if(Ma(t,n,"githubApi.cancelCodingAgent"),Vs(t,"githubApi.cancelCodingAgent",n),n instanceof jw)return[null,{code:Je.NoCopilotToken,message:n.message}];if(n instanceof Cp)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof vm)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof OE)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof md&&n.isClientError())return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(S7c,"handleCancelCodingAgentChecked");var AXi=xe(b7c,S7c);p();var T7c=b.Object({problemStatement:b.String({minLength:1}),workspaceFolder:b.Optional(b.String({minLength:1})),workspaceFolders:b.Optional(b.Array(Pc))});function I7c(t){if(t.workspaceFolders&&t.workspaceFolders.length>0)return{uri:t.workspaceFolders[0].uri};if(t.workspaceFolder)return{uri:t.workspaceFolder}}a(I7c,"pickWorkspaceFolder");async function x7c(t,e,r){try{let n=I7c(r);if(!n)return[null,{code:Je.InvalidRequest,message:"No workspace folder provided \u2014 cannot create a cloud agent job."}];let s=await new Of(t).getRepo(n);if(!s||!s.isGitHub())return[null,{code:Je.InvalidRequest,message:"No GitHub repository found in the workspace folder."}];if(!s.owner||!s.name)return[null,{code:Je.InvalidRequest,message:"Could not determine repository owner and name."}];let l=await new S5([new T5,new I5]).getBranchInfo(t,n);if(!l?.currentBranch||l.isDetachedHead)return[null,{code:Je.InvalidRequest,message:"No current branch found or detached HEAD state \u2014 cannot create a cloud agent job."}];let u=l.currentBranch,d=Rde(r.problemStatement);if(e.isCancellationRequested)return[null,{code:Je.RequestCancelled,message:"Request was cancelled"}];let h=await new bb(t).createCodingTask(d,r.problemStatement,s.owner,s.name,u,e);return wc(t,"cloudAgent.createJob",{result:"success"}),[h,null]}catch(n){if(op(t,"cloudAgent.createJob",n,{result:"error"}),nRe(n))return[null,{code:Je.RequestCancelled,message:"Request was cancelled"}];if(n instanceof jw)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof Cp)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof vm)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof OE)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof md&&n.isClientError())return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(x7c,"handleCloudAgentCreateJobChecked");var yXi=xe(T7c,x7c);p();var w7c=b.Object({sessionId:b.String({minLength:1})});async function R7c(t,e,r){try{let o=await new bb(t).getSessionLogs(r.sessionId,e);return wc(t,"cloudAgent.getSessionLogs",{result:"success"}),[{logs:o},null]}catch(n){if(op(t,"cloudAgent.getSessionLogs",n,{result:"error"}),n instanceof jw)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof Cp||n instanceof vm)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(R7c,"handleCloudAgentGetSessionLogsChecked");var EXi=xe(w7c,R7c);p();var k7c=b.Object({pullRequestId:b.Integer()});async function P7c(t,e,r){try{let o=await new bb(t).getAllSessions(r.pullRequestId,e);return wc(t,"cloudAgent.listSessions",void 0,{totalSessions:o?.length??0}),[{sessions:o??[]},null]}catch(n){if(op(t,"cloudAgent.listSessions",n),n instanceof jw)return[null,{code:Je.NoGitHubToken,message:n.message}];if(n instanceof Cp||n instanceof vm)return[null,{code:Je.InvalidRequest,message:n.message}];if(n instanceof Error)return[null,{code:Je.InternalError,message:`Unexpected error happened: ${n.message}`}];let o=JSON.stringify(n)??String(n);return[null,{code:Je.InternalError,message:`Unexpected error happened: ${o}`}]}}a(P7c,"handleCloudAgentListSessionsChecked");var _Xi=xe(k7c,P7c);p();var D7c=b.Object({});async function N7c(t,e,r){return[(await Qw(t)).map(s=>({slug:s.slug,name:s.name,description:s.description,avatarUrl:s.avatarUrl})),null]}a(N7c,"handleConversationAgentsChecked");var vXi=xe(D7c,N7c);p();p();var f8e=fe(Yc());function M7c(t,e,r){let n=$t.createAndMarkAsIssued({languageId:String(e.detectedLanguageId),requestedDocumentVersion:String(r),actualDocumentVersion:String(e.version)});return ft(t,"getCompletions.docVersionMismatch",n)}a(M7c,"telemetryVersionMismatch");async function x9(t,e,r){let o=t.get(Qr).getTextDocumentUnsafe(e);if(!o)throw new f8e.ResponseError(Je.InvalidParams,`Document for URI could not be found: ${e.uri}`);let s=await Yue(t,e,o.getText());if(s.status==="invalid")throw t.get(Ms).setClsInactive(s.reason),new f8e.ResponseError(Je.CopilotNotAvailable,s.reason);if(e.version!==void 0&&o.version!==e.version)throw r?.isCancellationRequested||(M7c(t,o,e.version),vo.debug(t,`Requested document version was ${e.version} but actual document version was ${o.version}.`)),new f8e.ResponseError(Je.ContentModified,"Document Version Mismatch");return o}a(x9,"getTextDocument");async function P4(t,e,r){let n=e.textDocument??e.doc;if(n)try{return await x9(t,n,r)}catch(o){if(o instanceof f8e.ResponseError){if(o.code===Je.CopilotNotAvailable)return;if(o.code===Je.InvalidParams){vo.warn(t,`Document not found for conversation: ${n.uri}. Continuing without this file.`);return}}throw o}}a(P4,"getTextDocumentIfAvailable");var O7c=b.Union([b.Literal("keyboard"),b.Literal("toolbar")]),B7c=b.Object({turnId:fZ,codeBlockIndex:b.Number(),source:O7c,copiedCharacters:b.Number(),totalCharacters:b.Number(),copiedText:b.String(),doc:b.Optional(qXe),textDocument:b.Optional(Cb),position:b.Optional(Pg),conversationSource:b.Optional(k5)});async function L7c(t,e,r){let n=await P4(t,r,e),o={totalCharacters:r.totalCharacters,copiedCharacters:r.copiedCharacters},s=r.position??r.doc?.position;n&&s&&(o={...o,currentLine:s.line});let c=ej(r.conversationSource),l=t.get(rs).findByTurnId(r.turnId),u=await pl(t,l,{languageId:n?.detectedLanguageId??""});return PI(t,n,{codeBlockIndex:r.codeBlockIndex.toString(),source:r.source,uiKind:c,mode:l?.turn.getChatModeForTelemetry()??"unknown",modelId:l?.turn.getResolvedModelId()??"unknown"},o,`${DE(c)}.acceptedCopy`,u),["OK",null]}a(L7c,"handleConversationCodeCopyChecked");var CXi=xe(B7c,L7c);p();var F7c=b.Union([b.Literal("keyboard"),b.Literal("toolbar"),b.Literal("diff")]),U7c=b.Object({turnId:fZ,source:F7c,codeBlockIndex:b.Number(),acceptedLength:b.Optional(b.Number()),totalCharacters:b.Number(),newFile:b.Optional(b.Boolean()),doc:b.Optional(qXe),textDocument:b.Optional(Cb),position:b.Optional(Pg),conversationSource:b.Optional(k5)});async function Q7c(t,e,r){let n=await P4(t,r,e),o={totalCharacters:r.totalCharacters,acceptedLength:r.acceptedLength??r.totalCharacters},s=r.position??r.doc?.position;n&&s&&(o={...o,insertionOffset:n.offsetAt(s),currentLine:s.line});let c=ej(r.conversationSource),l=t.get(rs).findByTurnId(r.turnId),u=await pl(t,l,{languageId:n?.detectedLanguageId??""});return PI(t,n,{codeBlockIndex:r.codeBlockIndex.toString(),source:r.source,uiKind:c,compType:r.acceptedLength&&r.acceptedLength<r.totalCharacters?"partial":"full",mode:l?.turn.getChatModeForTelemetry()??"unknown",modelId:l?.turn.getResolvedModelId()??"unknown"},o,`${DE(c)}.acceptedInsert`,u),["OK",null]}a(Q7c,"handleConversationCodeInsertChecked");var bXi=xe(U7c,Q7c);p();p();var px=class{static{a(this,"CompressionNotifier")}},_wt=class extends px{static{a(this,"NullCompressionNotifier")}async notifyCompressionStarted(e){}async notifyCompressionCompleted(e){}};p();var zk=class{constructor(e,r){this.summaryManager=e;this.ctx=r;this.transcriptPersistence=new Og(r)}static{a(this,"ConversationPartitionCompressor")}async compressCurrentPartition(e,r,n,o){let s=Date.now(),c=e.id,l=e.currentPartitionId;try{if(e.turns.length===0)throw new Error("Cannot compress partition with no turns");if(ot.debug(this.ctx,`Starting partition compression: conversationId=${c}, partitionId=${l}, turnCount=${e.turns.length}`),this.sendStartedTelemetry(c,l,e.turns.length,s,r.modelId),n.isCancellationRequested)return this.sendCancelledTelemetry(c,l,s,r.modelId),{success:!1,archivedPartitionId:l,newPartitionId:l,summaryTurnNumber:0,error:"Compression cancelled"};let u=l===1?1:await this.calculateStartTurnNumber(c,l),d=u+e.turns.length-1,f={conversationId:c,partitionId:l,turns:[...e.turns],status:"active",createdAt:Date.now(),startTurnNumber:u,endTurnNumber:d,turnCount:e.turns.length};if(f.status="archived",ot.debug(this.ctx,`Archived partition: conversationId=${c}, partitionId=${l}`),this.sendArchivedTelemetry(c,l,e.turns.length,r.modelId),n.isCancellationRequested)return ot.warn(this.ctx,`Compression cancelled after archiving: conversationId=${c}, partitionId=${l}`),this.sendCancelledTelemetry(c,l,s,r.modelId),{success:!1,archivedPartitionId:l,newPartitionId:l,summaryTurnNumber:0,error:"Compression cancelled after archiving"};let h=e.turns[e.turns.length-1],m=lNn(h?.chatMode?.kind),g;try{g=await this.summaryManager.generateSummary(f,r,n,m,o),(!g||g.trim().length===0)&&(ot.warn(this.ctx,`Summary generation returned empty: conversationId=${c}, partitionId=${l}`),g=`[Summary unavailable for partition ${l}]`),ot.debug(this.ctx,`Generated summary: conversationId=${c}, partitionId=${l}, length=${g.length}`),this.sendSummarizedTelemetry(c,l,g.length,r.modelId)}catch(v){ot.error(this.ctx,`Summary generation failed: conversationId=${c}, partitionId=${l}, error=${v instanceof Error?v.message:String(v)}`),g=`[Summary generation failed for partition ${l}]`,this.sendSummarizedTelemetry(c,l,0,r.modelId)}if(g=this.appendTodoListState(g,e),n.isCancellationRequested)return ot.warn(this.ctx,`Compression cancelled after summary generation: conversationId=${c}, partitionId=${l}`),this.sendCancelledTelemetry(c,l,s,r.modelId),{success:!1,archivedPartitionId:l,newPartitionId:l,summaryTurnNumber:0,error:"Compression cancelled after summary generation"};let A=l+1,y=d+1,E=new gp({message:g,type:"meta",references:[]});E.response={message:"",type:"model"},E.status="success";let _={conversationId:c,partitionId:A,turns:[E],status:"active",createdAt:Date.now(),compressedFrom:l,startTurnNumber:y,endTurnNumber:y,turnCount:1};try{await this.recordPartitionTranscriptEvents(c,l,A,g,E.id),e.currentPartitionId=A,e.turns=[E],ot.debug(this.ctx,`Created new partition: conversationId=${c}, partitionId=${A}`);let v=Date.now()-s;return this.sendCompletedTelemetry(c,l,A,f.turnCount,g.length,v,r.modelId),{success:!0,archivedPartitionId:l,newPartitionId:A,summaryTurnNumber:y}}catch(v){ot.error(this.ctx,`Failed to initialize new partition transcript: conversationId=${c}, error=${v instanceof Error?v.message:String(v)}`),e.currentPartitionId=A,e.turns=[E];let S=Date.now()-s;return this.sendCompletedTelemetry(c,l,A,f.turnCount,g.length,S,r.modelId),{success:!0,archivedPartitionId:l,newPartitionId:A,summaryTurnNumber:y}}}catch(u){let d=u instanceof Error?u.message:String(u);ot.exception(this.ctx,u,`Compression failed: conversationId=${c}, partitionId=${l}`);let f=Date.now()-s;return this.sendFailedTelemetry(c,l,d,f,r.modelId),{success:!1,archivedPartitionId:l,newPartitionId:l,summaryTurnNumber:0,error:d}}}async calculateStartTurnNumber(e,r){if(r===1)return 1;let n=r-1,o=await this.transcriptPersistence.buildPartitionFromTranscript(e,n);return o?o.endTurnNumber+1:(ot.warn(this.ctx,`Could not load previous partition to calculate turn numbers: conversationId=${e}, partitionId=${n}`),(r-1)*10+1)}appendTodoListState(e,r){let o=this.ctx.get(Lg).getTodos(r);return o.length>0&&(e+=`
|
|
4015
4015
|
|
|
4016
4016
|
## Latest Todo List
|
|
4017
4017
|
\`\`\`json
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"url": "git+https://github.com/github/copilot-language-server-release.git"
|
|
12
12
|
},
|
|
13
13
|
"license": "MIT",
|
|
14
|
-
"version": "1.532.
|
|
14
|
+
"version": "1.532.2",
|
|
15
15
|
"bin": {
|
|
16
16
|
"copilot-language-server": "../dist/language-server.js"
|
|
17
17
|
},
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
"vscode-languageserver-protocol": "^3.17.5"
|
|
43
43
|
},
|
|
44
44
|
"optionalDependencies": {
|
|
45
|
-
"@github/copilot-language-server-win32-x64": "1.532.
|
|
46
|
-
"@github/copilot-language-server-win32-arm64": "1.532.
|
|
47
|
-
"@github/copilot-language-server-linux-x64": "1.532.
|
|
48
|
-
"@github/copilot-language-server-linux-arm64": "1.532.
|
|
49
|
-
"@github/copilot-language-server-darwin-x64": "1.532.
|
|
50
|
-
"@github/copilot-language-server-darwin-arm64": "1.532.
|
|
45
|
+
"@github/copilot-language-server-win32-x64": "1.532.2",
|
|
46
|
+
"@github/copilot-language-server-win32-arm64": "1.532.2",
|
|
47
|
+
"@github/copilot-language-server-linux-x64": "1.532.2",
|
|
48
|
+
"@github/copilot-language-server-linux-arm64": "1.532.2",
|
|
49
|
+
"@github/copilot-language-server-darwin-x64": "1.532.2",
|
|
50
|
+
"@github/copilot-language-server-darwin-arm64": "1.532.2",
|
|
51
51
|
"@github/copilot-win32-x64": "1.0.78",
|
|
52
52
|
"@github/copilot-win32-arm64": "1.0.78",
|
|
53
53
|
"@github/copilot-linux-x64": "1.0.78",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"@github/copilot-darwin-arm64": "1.0.78"
|
|
57
57
|
},
|
|
58
58
|
"buildType": "prod",
|
|
59
|
-
"build": "
|
|
59
|
+
"build": "97"
|
|
60
60
|
}
|