Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions extensions/copilot/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion extensions/copilot/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6352,7 +6352,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.24",
"@github/copilot": "^1.0.28",
"@google/genai": "^1.22.0",
"@humanwhocodes/gitignore-to-minimatch": "1.0.2",
"@microsoft/tiktokenizer": "^1.0.10",
Expand Down
4 changes: 2 additions & 2 deletions extensions/copilot/script/postinstall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,9 @@ async function copyCopilotCliPrebuildFiles() {
await fs.promises.cp(sourceDir, targetDir, {
recursive: true, force: true, filter: (src) => {
try {
// Only copy computer.node and win_error_mode.node files
// Only copy computer.node and win32.node files
if (fs.statSync(src).isFile()) {
return src.endsWith('computer.node') || src.endsWith('win_error_mode.node');
return src.endsWith('computer.node') || src.endsWith('win32.node');
}
return true;
} catch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ export class CopilotCLISessionService extends Disposable implements ICopilotCLIS
this.monitorSessionFiles();
this._sessionManager = new Lazy<Promise<internal.LocalSessionManager>>(async () => {
try {
const { internal, createLocalFeatureFlagService, noopTelemetryBinder } = await this.getSDKPackage();
const { internal, createLocalFeatureFlagService } = await this.getSDKPackage();
// Always enable SDK OTel so the debug panel receives native spans via the bridge.
// When user OTel is disabled, we force file exporter to /dev/null so the SDK
// creates OtelSessionTracker (for debug panel) but doesn't export to any collector.
Expand Down Expand Up @@ -205,7 +205,6 @@ export class CopilotCLISessionService extends Disposable implements ICopilotCLIS
return new internal.LocalSessionManager({
featureFlagService: createLocalFeatureFlagService(),
telemetryService: new internal.NoopTelemetryService(),
telemetryBinder: noopTelemetryBinder
}, { flushDebounceMs: undefined, settings: undefined, version: undefined });
}
catch (error) {
Expand All @@ -217,8 +216,8 @@ export class CopilotCLISessionService extends Disposable implements ICopilotCLIS
}

private async getSDKPackage() {
const { internal, LocalSession, createLocalFeatureFlagService, noopTelemetryBinder } = await this.copilotCLISDK.getPackage();
return { internal, LocalSession, createLocalFeatureFlagService, noopTelemetryBinder };
const { internal, LocalSession, createLocalFeatureFlagService } = await this.copilotCLISDK.getPackage();
return { internal, LocalSession, createLocalFeatureFlagService };
}

getSessionWorkingDirectory(sessionId: string): Uri | undefined {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -326,7 +326,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();
Expand Down Expand Up @@ -477,7 +477,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();
Expand All @@ -496,7 +496,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();
Expand All @@ -516,7 +516,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();
Expand Down Expand Up @@ -568,7 +568,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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ describe('CopilotCLI permissionHelpers', () => {
});

it('maps write requests with filename', async () => {
const result = await getConfirmationToolParams(instaService, { kind: 'write', fileName: 'foo.ts', diff: '', intention: '' });
const result = await getConfirmationToolParams(instaService, { kind: 'write', fileName: 'foo.ts', diff: '', intention: '', canOfferSessionApproval: false });
assert(!!result);
expect(result.tool).toBe(ToolName.CoreConfirmationTool);
const input = result.input as any;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ describe('CopilotCLI SDK Upgrade', function () {
path.join('prebuilds', 'linux-x64', 'computer.node'),
path.join('prebuilds', 'win32-arm64', 'computer.node'),
path.join('prebuilds', 'win32-x64', 'computer.node'),
// win_error_mode
path.join('prebuilds', 'win32-arm64', 'win_error_mode.node'),
path.join('prebuilds', 'win32-x64', 'win_error_mode.node'),
// win32
path.join('prebuilds', 'win32-arm64', 'win32.node'),
path.join('prebuilds', 'win32-x64', 'win32.node'),
path.join('ripgrep', 'bin', 'darwin-arm64', 'rg'),
path.join('ripgrep', 'bin', 'darwin-x64', 'rg'),
path.join('ripgrep', 'bin', 'linux-x64', 'rg'),
Expand Down
Loading