diff --git a/extensions/copilot/package-lock.json b/extensions/copilot/package-lock.json index 6523df8579bc3..7561623678093 100644 --- a/extensions/copilot/package-lock.json +++ b/extensions/copilot/package-lock.json @@ -13,7 +13,7 @@ "@anthropic-ai/claude-agent-sdk": "0.2.98", "@anthropic-ai/sdk": "^0.82.0", "@github/blackbird-external-ingest-utils": "^0.3.0", - "@github/copilot": "^1.0.26", + "@github/copilot": "^1.0.28", "@google/genai": "^1.22.0", "@humanwhocodes/gitignore-to-minimatch": "1.0.2", "@microsoft/tiktokenizer": "^1.0.10", @@ -3203,26 +3203,26 @@ "license": "MIT" }, "node_modules/@github/copilot": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.26.tgz", - "integrity": "sha512-F7P6yimFzjvWxOF/A0F6k//vcpSVcVusQjaybb3IKyrEDhnd/LOv2tD+x6W0IoxCftGDDhkzBA2aon3rL9lPhQ==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.28.tgz", + "integrity": "sha512-S1Y+KnhywjIsK1DzskoCqPVC3uURohvCRyDkGPWXvMw+lXO5ryOJvHFZDDw7MSRjT7ea7T0m8e3yKdK0OxJhnw==", "license": "SEE LICENSE IN LICENSE.md", "bin": { "copilot": "npm-loader.js" }, "optionalDependencies": { - "@github/copilot-darwin-arm64": "1.0.26", - "@github/copilot-darwin-x64": "1.0.26", - "@github/copilot-linux-arm64": "1.0.26", - "@github/copilot-linux-x64": "1.0.26", - "@github/copilot-win32-arm64": "1.0.26", - "@github/copilot-win32-x64": "1.0.26" + "@github/copilot-darwin-arm64": "1.0.28", + "@github/copilot-darwin-x64": "1.0.28", + "@github/copilot-linux-arm64": "1.0.28", + "@github/copilot-linux-x64": "1.0.28", + "@github/copilot-win32-arm64": "1.0.28", + "@github/copilot-win32-x64": "1.0.28" } }, "node_modules/@github/copilot-darwin-arm64": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.26.tgz", - "integrity": "sha512-eV+jDMj4vnjdGcG+c4zg11zZKVAp94Hm4sK4f9LnyWw8MumTfS5F2Yyse9zt7A3oGlegyczmJopKwuwZbQd4ww==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.28.tgz", + "integrity": "sha512-Bkis5dkOsdgaK95j/8mgIGSxHlRuL211Wa3S4MeeYGrilZweaG20sa0jktzagL6XFxfPRKBC87E+fDFyXz1L3g==", "cpu": [ "arm64" ], @@ -3236,9 +3236,9 @@ } }, "node_modules/@github/copilot-darwin-x64": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.26.tgz", - "integrity": "sha512-2AAgu19F3scDlYhsiHxCn0cz4ZkINq8gxnqW0an8VQn6p15lDcah6PqHw+RJ+12qiYX5L5NNACty9UOkIK7Kzg==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.28.tgz", + "integrity": "sha512-0RIabmr05KgPPUcD4kpKNBGg/eRwJF2NrYtibDUCIRFWKZu7q0m9c9EURpW0wOO32cXZtAQ+BmJIGlqfCkt6gA==", "cpu": [ "x64" ], @@ -3252,9 +3252,9 @@ } }, "node_modules/@github/copilot-linux-arm64": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.26.tgz", - "integrity": "sha512-SnM7+TGAZ/i9dim5FfHM7+ii01hdpHJzzh8vnnA1Fa7RPFJaQ2KTOdTDJFgfv6e/jLhKXZEelYIidgCA3vSQCQ==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.28.tgz", + "integrity": "sha512-A/zQ4ifN+FSSEHdPHajv5UwygS5BOQ8l1AJMYdVBnnuqVX9bCcRAJJ4S/F60AnaDimzDvVuYSe3lYXRYxz3M5A==", "cpu": [ "arm64" ], @@ -3268,9 +3268,9 @@ } }, "node_modules/@github/copilot-linux-x64": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.26.tgz", - "integrity": "sha512-x76vcwVbi0j03hFMhiQs+Eqefd9Xmc4qJoaj44YA2VsJuDbZw2Yv7ZBq7Vyxd/shJwJZjaKv36MHcx5bVUMBJQ==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.28.tgz", + "integrity": "sha512-0VqoW9hj7qKj+eH2un9E7zn9AbassTZHkKQPsd8yPvLsmPaNJgsHMYDrCCNZNol2ZSGt/XskTfmWQaQM6BoBfg==", "cpu": [ "x64" ], @@ -3284,9 +3284,9 @@ } }, "node_modules/@github/copilot-win32-arm64": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.26.tgz", - "integrity": "sha512-enVRcy7W9RD1bwYkF+mcxR+biXsG/X5m46XBaD0opvfDeiBHceDnI8hEI0O1A5PYvRo88AZFvDEmEW3Gdj6+rQ==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.28.tgz", + "integrity": "sha512-f28NKudBtIXTpIliHGJbRhEfCItsXKWNzXzgqgmP8FZB+JYrqG/ysU2qCUCxhpv3PLjMLWqnsWs+mIvVLTH9zw==", "cpu": [ "arm64" ], @@ -3300,9 +3300,9 @@ } }, "node_modules/@github/copilot-win32-x64": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.26.tgz", - "integrity": "sha512-DpJF6C1x4+sYIXUx5+vWCu6cFAbD2YlrXQ/BRttf2MMdc0DHwdgJxrttBBF2qCvmpfzjSE8cr5G0kt5EUk7FGw==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.28.tgz", + "integrity": "sha512-b9ZEx2i5P7DZTP66FXTfwf81r5kbAqs2GEJjDdevCwxH7cRexqM9eBxQGj1zGtm4qXF7JGK2eH6Ay7NC28m1Iw==", "cpu": [ "x64" ], diff --git a/extensions/copilot/package.json b/extensions/copilot/package.json index 5d9658dc046a8..96978976902e4 100644 --- a/extensions/copilot/package.json +++ b/extensions/copilot/package.json @@ -6331,7 +6331,7 @@ "@anthropic-ai/claude-agent-sdk": "0.2.98", "@anthropic-ai/sdk": "^0.82.0", "@github/blackbird-external-ingest-utils": "^0.3.0", - "@github/copilot": "^1.0.26", + "@github/copilot": "^1.0.28", "@google/genai": "^1.22.0", "@humanwhocodes/gitignore-to-minimatch": "1.0.2", "@microsoft/tiktokenizer": "^1.0.10", diff --git a/extensions/copilot/src/extension/chatSessions/copilotcli/node/test/copilotcliSession.spec.ts b/extensions/copilot/src/extension/chatSessions/copilotcli/node/test/copilotcliSession.spec.ts index aea13fb28cce1..42db2ac617c7b 100644 --- a/extensions/copilot/src/extension/chatSessions/copilotcli/node/test/copilotcliSession.spec.ts +++ b/extensions/copilot/src/extension/chatSessions/copilotcli/node/test/copilotcliSession.spec.ts @@ -9,8 +9,8 @@ import type { ChatParticipantToolToken } from 'vscode'; import { ConfigKey, IConfigurationService } from '../../../../../platform/configuration/common/configurationService'; import { ILogService } from '../../../../../platform/log/common/logService'; import { NoopOTelService, resolveOTelConfig } from '../../../../../platform/otel/common/index'; -import { NullRequestLogger } from '../../../../../platform/requestLogger/node/nullRequestLogger'; import { IRequestLogger } from '../../../../../platform/requestLogger/common/requestLogger'; +import { NullRequestLogger } from '../../../../../platform/requestLogger/node/nullRequestLogger'; import { TestWorkspaceService } from '../../../../../platform/test/node/testWorkspaceService'; import { IWorkspaceService } from '../../../../../platform/workspace/common/workspaceService'; import { CancellationToken } from '../../../../../util/vs/base/common/cancellation'; @@ -349,7 +349,7 @@ describe('CopilotCLISession', () => { sdkSession.send = async ({ prompt }: any) => { sdkSession.emit('assistant.turn_start', {}); sdkSession.emit('assistant.message', { content: `Echo: ${prompt}` }); - result = await sdkSession.emitPermissionRequest({ kind: 'write', fileName: sessionFilePath, intention: 'Write plan', diff: '' }); + result = await sdkSession.emitPermissionRequest({ kind: 'write', fileName: sessionFilePath, intention: 'Write plan', diff: '', canOfferSessionApproval: false }); sdkSession.emit('assistant.turn_end', {}); }; const session = await createSession(); @@ -500,7 +500,7 @@ describe('CopilotCLISession', () => { sdkSession.emit('assistant.turn_start', {}); sdkSession.emit('assistant.message', { content: `Echo: ${prompt}` }); // Mid way through, make it look like the sdk requested permission while emitting other messages. - result = await sdkSession.emitPermissionRequest({ kind: 'write', fileName: 'a.ts', intention: 'Update file', diff: '' }); + result = await sdkSession.emitPermissionRequest({ kind: 'write', fileName: 'a.ts', intention: 'Update file', diff: '', canOfferSessionApproval: false }); sdkSession.emit('assistant.turn_end', {}); }; const stream = new MockChatResponseStream(); @@ -519,7 +519,7 @@ describe('CopilotCLISession', () => { sdkSession.emit('assistant.turn_start', {}); sdkSession.emit('assistant.message', { content: `Echo: ${prompt}` }); // Mid way through, make it look like the sdk requested permission while emitting other messages. - result = await sdkSession.emitPermissionRequest({ kind: 'write', fileName: 'b.ts', intention: 'Update file', diff: '' }); + result = await sdkSession.emitPermissionRequest({ kind: 'write', fileName: 'b.ts', intention: 'Update file', diff: '', canOfferSessionApproval: false }); sdkSession.emit('assistant.turn_end', {}); }; const stream = new MockChatResponseStream(); @@ -539,7 +539,7 @@ describe('CopilotCLISession', () => { sdkSession.emit('assistant.turn_start', {}); sdkSession.emit('assistant.message', { content: `Echo: ${prompt}` }); // Mid way through, make it look like the sdk requested permission while emitting other messages. - result = await sdkSession.emitPermissionRequest({ kind: 'write', fileName: 'err.ts', intention: 'Update file', diff: '' }); + result = await sdkSession.emitPermissionRequest({ kind: 'write', fileName: 'err.ts', intention: 'Update file', diff: '', canOfferSessionApproval: false }); sdkSession.emit('assistant.turn_end', {}); }; const stream = new MockChatResponseStream(); @@ -591,7 +591,8 @@ describe('CopilotCLISession', () => { fileName: filePath, intention: 'Apply edit', diff: '', - toolCallId: String(i) + toolCallId: String(i), + canOfferSessionApproval: false }); permissionResults.push(result); // Complete the edit so the tracker (if it were real) would finish; emit completion event