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
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
*--------------------------------------------------------------------------------------------*/

import { ChatParticipantToolToken, LanguageModelTextPart } from 'vscode';
import { ILogService } from '../../../platform/log/common/logService';
import { CancellationToken } from '../../../util/vs/base/common/cancellation';
import { ToolName } from '../../tools/common/toolNames';
import { IToolsService } from '../../tools/common/toolsService';
import { IQuestion, IQuestionAnswer, IUserQuestionHandler } from '../copilotcli/node/userInputHelpers';
import { ILogService } from '../../../../platform/log/common/logService';
import { CancellationToken } from '../../../../util/vs/base/common/cancellation';
import { ToolName } from '../../../tools/common/toolNames';
import { IToolsService } from '../../../tools/common/toolsService';
import { IQuestion, IQuestionAnswer, IUserQuestionHandler } from '../../copilotcli/node/userInputHelpers';


export interface IAskQuestionsParams {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@

import * as vscode from 'vscode';
import { Uri } from 'vscode';
import { IVSCodeExtensionContext } from '../../../platform/extContext/common/extensionContext';
import { createDirectoryIfNotExists, IFileSystemService } from '../../../platform/filesystem/common/fileSystemService';
import { ILogService } from '../../../platform/log/common/logService';
import { findLast } from '../../../util/vs/base/common/arraysFind';
import { SequencerByKey, ThrottledDelayer } from '../../../util/vs/base/common/async';
import { Disposable } from '../../../util/vs/base/common/lifecycle';
import { dirname } from '../../../util/vs/base/common/resources';
import { ChatSessionMetadataFile, IChatSessionMetadataStore, RepositoryProperties, RequestDetails, WorkspaceFolderEntry } from '../common/chatSessionMetadataStore';
import { ChatSessionWorktreeProperties } from '../common/chatSessionWorktreeService';
import { isUntitledSessionId } from '../common/utils';
import { IWorkspaceInfo } from '../common/workspaceInfo';
import { getCopilotBulkMetadataFile, getCopilotCLISessionDir } from '../copilotcli/node/cliHelpers';
import { ICopilotCLIAgents } from '../copilotcli/node/copilotCli';
import { IVSCodeExtensionContext } from '../../../../platform/extContext/common/extensionContext';
import { createDirectoryIfNotExists, IFileSystemService } from '../../../../platform/filesystem/common/fileSystemService';
import { ILogService } from '../../../../platform/log/common/logService';
import { findLast } from '../../../../util/vs/base/common/arraysFind';
import { SequencerByKey, ThrottledDelayer } from '../../../../util/vs/base/common/async';
import { Disposable } from '../../../../util/vs/base/common/lifecycle';
import { dirname } from '../../../../util/vs/base/common/resources';
import { ChatSessionMetadataFile, IChatSessionMetadataStore, RepositoryProperties, RequestDetails, WorkspaceFolderEntry } from '../../common/chatSessionMetadataStore';
import { ChatSessionWorktreeProperties } from '../../common/chatSessionWorktreeService';
import { isUntitledSessionId } from '../../common/utils';
import { IWorkspaceInfo } from '../../common/workspaceInfo';
import { getCopilotBulkMetadataFile, getCopilotCLISessionDir } from '../../copilotcli/node/cliHelpers';
import { ICopilotCLIAgents } from '../../copilotcli/node/copilotCli';

// const WORKSPACE_FOLDER_MEMENTO_KEY = 'github.copilot.cli.sessionWorkspaceFolders';
// const WORKTREE_MEMENTO_KEY = 'github.copilot.cli.sessionWorktrees';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@
import type { SweCustomAgent } from '@github/copilot/sdk';
import * as l10n from '@vscode/l10n';
import * as vscode from 'vscode';
import { ConfigKey, IConfigurationService } from '../../../platform/configuration/common/configurationService';
import { ILogService } from '../../../platform/log/common/logService';
import { IPromptsService, ParsedPromptFile } from '../../../platform/promptFiles/common/promptsService';
import { IWorkspaceService } from '../../../platform/workspace/common/workspaceService';
import { createServiceIdentifier } from '../../../util/common/services';
import { DisposableStore, IReference } from '../../../util/vs/base/common/lifecycle';
import { URI } from '../../../util/vs/base/common/uri';
import { ChatVariablesCollection, extractDebugTargetSessionIds, isPromptFile } from '../../prompt/common/chatVariablesCollection';
import { FolderRepositoryInfo, IFolderRepositoryManager, IsolationMode } from '../common/folderRepositoryManager';
import { emptyWorkspaceInfo, getWorkingDirectory, isIsolationEnabled, IWorkspaceInfo } from '../common/workspaceInfo';
import { SessionIdForCLI } from '../copilotcli/common/utils';
import { COPILOT_CLI_REASONING_EFFORT_PROPERTY, ICopilotCLIAgents, ICopilotCLIModels } from '../copilotcli/node/copilotCli';
import { ICopilotCLISession } from '../copilotcli/node/copilotcliSession';
import { ICopilotCLISessionService } from '../copilotcli/node/copilotcliSessionService';
import { buildMcpServerMappings, McpServerMappings } from '../copilotcli/node/mcpHandler';
import { ConfigKey, IConfigurationService } from '../../../../platform/configuration/common/configurationService';
import { ILogService } from '../../../../platform/log/common/logService';
import { IPromptsService, ParsedPromptFile } from '../../../../platform/promptFiles/common/promptsService';
import { IWorkspaceService } from '../../../../platform/workspace/common/workspaceService';
import { createServiceIdentifier } from '../../../../util/common/services';
import { DisposableStore, IReference } from '../../../../util/vs/base/common/lifecycle';
import { URI } from '../../../../util/vs/base/common/uri';
import { ChatVariablesCollection, extractDebugTargetSessionIds, isPromptFile } from '../../../prompt/common/chatVariablesCollection';
import { FolderRepositoryInfo, IFolderRepositoryManager, IsolationMode } from '../../common/folderRepositoryManager';
import { emptyWorkspaceInfo, getWorkingDirectory, isIsolationEnabled, IWorkspaceInfo } from '../../common/workspaceInfo';
import { SessionIdForCLI } from '../../copilotcli/common/utils';
import { COPILOT_CLI_REASONING_EFFORT_PROPERTY, ICopilotCLIAgents, ICopilotCLIModels } from '../../copilotcli/node/copilotCli';
import { ICopilotCLISession } from '../../copilotcli/node/copilotcliSession';
import { ICopilotCLISessionService } from '../../copilotcli/node/copilotcliSessionService';
import { buildMcpServerMappings, McpServerMappings } from '../../copilotcli/node/mcpHandler';

function isReasoningEffortFeatureEnabled(configurationService: IConfigurationService): boolean {
return configurationService.getConfig(ConfigKey.Advanced.CLIThinkingEffortEnabled);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@

import * as l10n from '@vscode/l10n';
import * as vscode from 'vscode';
import { ICustomInstructionsService } from '../../../platform/customInstructions/common/customInstructionsService';
import { IFileSystemService } from '../../../platform/filesystem/common/fileSystemService';
import { ILogService } from '../../../platform/log/common/logService';
import { IPromptsService } from '../../../platform/promptFiles/common/promptsService';
import { IWorkspaceService } from '../../../platform/workspace/common/workspaceService';
import { CancellationToken } from '../../../util/vs/base/common/cancellation';
import { isCancellationError } from '../../../util/vs/base/common/errors';
import { Emitter } from '../../../util/vs/base/common/event';
import { Disposable } from '../../../util/vs/base/common/lifecycle';
import { basename } from '../../../util/vs/base/common/resources';
import { URI } from '../../../util/vs/base/common/uri';
import { ICopilotCLIAgents, isEnabledForCopilotCLI } from '../copilotcli/node/copilotCli';
import { ICustomInstructionsService } from '../../../../platform/customInstructions/common/customInstructionsService';
import { IFileSystemService } from '../../../../platform/filesystem/common/fileSystemService';
import { ILogService } from '../../../../platform/log/common/logService';
import { IPromptsService } from '../../../../platform/promptFiles/common/promptsService';
import { IWorkspaceService } from '../../../../platform/workspace/common/workspaceService';
import { CancellationToken } from '../../../../util/vs/base/common/cancellation';
import { isCancellationError } from '../../../../util/vs/base/common/errors';
import { Emitter } from '../../../../util/vs/base/common/event';
import { Disposable } from '../../../../util/vs/base/common/lifecycle';
import { basename } from '../../../../util/vs/base/common/resources';
import { URI } from '../../../../util/vs/base/common/uri';
import { ICopilotCLIAgents, isEnabledForCopilotCLI } from '../../copilotcli/node/copilotCli';

export class CopilotCLICustomizationProvider extends Disposable implements vscode.ChatSessionCustomizationProvider {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@
import type { Attachment } from '@github/copilot/sdk';
import * as l10n from '@vscode/l10n';
import type { ChatPromptReference } from 'vscode';
import { isLocation } from '../../../util/common/types';
import { coalesce } from '../../../util/vs/base/common/arrays';
import { Codicon } from '../../../util/vs/base/common/codicons';
import { ResourceSet } from '../../../util/vs/base/common/map';
import { basename } from '../../../util/vs/base/common/resources';
import { isNumber, isString } from '../../../util/vs/base/common/types';
import { URI } from '../../../util/vs/base/common/uri';
import { Range as InternalRange } from '../../../util/vs/editor/common/core/range';
import { SymbolKind } from '../../../util/vs/workbench/api/common/extHostTypes/symbolInformation';
import { ChatReferenceDiagnostic, Diagnostic, DiagnosticRelatedInformation, DiagnosticSeverity, Range, Uri } from '../../../vscodeTypes';
import { PromptFileIdPrefix } from '../../prompt/common/chatVariablesCollection';
import { isLocation } from '../../../../util/common/types';
import { coalesce } from '../../../../util/vs/base/common/arrays';
import { Codicon } from '../../../../util/vs/base/common/codicons';
import { ResourceSet } from '../../../../util/vs/base/common/map';
import { basename } from '../../../../util/vs/base/common/resources';
import { isNumber, isString } from '../../../../util/vs/base/common/types';
import { URI } from '../../../../util/vs/base/common/uri';
import { Range as InternalRange } from '../../../../util/vs/editor/common/core/range';
import { SymbolKind } from '../../../../util/vs/workbench/api/common/extHostTypes/symbolInformation';
import { ChatReferenceDiagnostic, Diagnostic, DiagnosticRelatedInformation, DiagnosticSeverity, Range, Uri } from '../../../../vscodeTypes';
import { PromptFileIdPrefix } from '../../../prompt/common/chatVariablesCollection';

/**
* Converts a ChatPromptReference into a PromptVariable entry that is used in VS code.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@

import { describe, expect, it, vi } from 'vitest';
import { LanguageModelToolInvocationOptions } from 'vscode';
import { mock } from '../../../../util/common/test/simpleMock';
import { CancellationToken } from '../../../../util/vs/base/common/cancellation';
import { LanguageModelTextPart, LanguageModelToolResult, LanguageModelToolResult2 } from '../../../../vscodeTypes';
import { ICopilotTool } from '../../../tools/common/toolsRegistry';
import { IToolsService } from '../../../tools/common/toolsService';
import { IQuestion } from '../../copilotcli/node/userInputHelpers';
import { mock } from '../../../../../util/common/test/simpleMock';
import { CancellationToken } from '../../../../../util/vs/base/common/cancellation';
import { LanguageModelTextPart, LanguageModelToolResult, LanguageModelToolResult2 } from '../../../../../vscodeTypes';
import { ICopilotTool } from '../../../../tools/common/toolsRegistry';
import { IToolsService } from '../../../../tools/common/toolsService';
import { IQuestion } from '../../../copilotcli/node/userInputHelpers';
import { IAnswerResult, UserQuestionHandler } from '../askUserQuestionHandler';

function makeAskQuestionsTool(invokeResult: LanguageModelToolResult | undefined, resolveInput?: unknown): ICopilotTool<unknown> {
Expand All @@ -28,7 +28,7 @@ function makeToolsService(tool: ICopilotTool<unknown> | undefined): IToolsServic
}();
}

const logService = new class extends mock<import('../../../../platform/log/common/logService').ILogService>() {
const logService = new class extends mock<import('../../../../../platform/log/common/logService').ILogService>() {
override trace = vi.fn();
override warn = vi.fn();
}();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@
import type { SweCustomAgent } from '@github/copilot/sdk';
import { beforeEach, describe, expect, it, vi } from 'vitest';
import type * as vscode from 'vscode';
import { IConfigurationService } from '../../../../platform/configuration/common/configurationService';
import { ILogService } from '../../../../platform/log/common/logService';
import { IPromptsService } from '../../../../platform/promptFiles/common/promptsService';
import { IWorkspaceService, NullWorkspaceService } from '../../../../platform/workspace/common/workspaceService';
import { mock } from '../../../../util/common/test/simpleMock';
import { CancellationToken } from '../../../../util/vs/base/common/cancellation';
import { DisposableStore, IReference } from '../../../../util/vs/base/common/lifecycle';
import { URI } from '../../../../util/vs/base/common/uri';
import { IChatSessionMetadataStore } from '../../common/chatSessionMetadataStore';
import { IChatSessionWorkspaceFolderService } from '../../common/chatSessionWorkspaceFolderService';
import { IChatSessionWorktreeService } from '../../common/chatSessionWorktreeService';
import { FolderRepositoryInfo, IFolderRepositoryManager, IsolationMode } from '../../common/folderRepositoryManager';
import { IWorkspaceInfo } from '../../common/workspaceInfo';
import { ICopilotCLIAgents, ICopilotCLIModels } from '../../copilotcli/node/copilotCli';
import { ICopilotCLISession } from '../../copilotcli/node/copilotcliSession';
import { ICopilotCLISessionService } from '../../copilotcli/node/copilotcliSessionService';
import { IConfigurationService } from '../../../../../platform/configuration/common/configurationService';
import { ILogService } from '../../../../../platform/log/common/logService';
import { IPromptsService } from '../../../../../platform/promptFiles/common/promptsService';
import { IWorkspaceService, NullWorkspaceService } from '../../../../../platform/workspace/common/workspaceService';
import { mock } from '../../../../../util/common/test/simpleMock';
import { CancellationToken } from '../../../../../util/vs/base/common/cancellation';
import { DisposableStore, IReference } from '../../../../../util/vs/base/common/lifecycle';
import { URI } from '../../../../../util/vs/base/common/uri';
import { IChatSessionMetadataStore } from '../../../common/chatSessionMetadataStore';
import { IChatSessionWorkspaceFolderService } from '../../../common/chatSessionWorkspaceFolderService';
import { IChatSessionWorktreeService } from '../../../common/chatSessionWorktreeService';
import { FolderRepositoryInfo, IFolderRepositoryManager, IsolationMode } from '../../../common/folderRepositoryManager';
import { IWorkspaceInfo } from '../../../common/workspaceInfo';
import { ICopilotCLIAgents, ICopilotCLIModels } from '../../../copilotcli/node/copilotCli';
import { ICopilotCLISession } from '../../../copilotcli/node/copilotcliSession';
import { ICopilotCLISessionService } from '../../../copilotcli/node/copilotcliSessionService';
import { CopilotCLIChatSessionInitializer } from '../copilotCLIChatSessionInitializer';

// ─── Test Helpers ────────────────────────────────────────────────
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import * as vscode from 'vscode';
import { Uri } from 'vscode';
import { IVSCodeExtensionContext } from '../../../../platform/extContext/common/extensionContext';
import { MockFileSystemService } from '../../../../platform/filesystem/node/test/mockFileSystemService';
import { ILogService } from '../../../../platform/log/common/logService';
import { mock } from '../../../../util/common/test/simpleMock';
import { Emitter } from '../../../../util/vs/base/common/event';
import { URI } from '../../../../util/vs/base/common/uri';
import { ChatSessionWorktreeProperties } from '../../common/chatSessionWorktreeService';
import { IWorkspaceInfo } from '../../common/workspaceInfo';
import { getCopilotCLISessionDir } from '../../copilotcli/node/cliHelpers';
import { NullCopilotCLIAgents } from '../../copilotcli/node/test/testHelpers';
import { IVSCodeExtensionContext } from '../../../../../platform/extContext/common/extensionContext';
import { MockFileSystemService } from '../../../../../platform/filesystem/node/test/mockFileSystemService';
import { ILogService } from '../../../../../platform/log/common/logService';
import { mock } from '../../../../../util/common/test/simpleMock';
import { Emitter } from '../../../../../util/vs/base/common/event';
import { URI } from '../../../../../util/vs/base/common/uri';
import { ChatSessionWorktreeProperties } from '../../../common/chatSessionWorktreeService';
import { IWorkspaceInfo } from '../../../common/workspaceInfo';
import { getCopilotCLISessionDir } from '../../../copilotcli/node/cliHelpers';
import { NullCopilotCLIAgents } from '../../../copilotcli/node/test/testHelpers';
import { ChatSessionMetadataStore } from '../chatSessionMetadataStoreImpl';

// Hoisted holder lets each test point the JSONL helper at its own mock path.
Expand All @@ -24,8 +24,8 @@ const jsonlPathHolder = vi.hoisted(() => {
return { get: () => p };
});

vi.mock('../../copilotcli/node/cliHelpers', async (importOriginal) => {
const actual = await importOriginal<typeof import('../../copilotcli/node/cliHelpers')>();
vi.mock('../../../copilotcli/node/cliHelpers', async (importOriginal) => {
const actual = await importOriginal<typeof import('../../../copilotcli/node/cliHelpers')>();
return {
...actual,
getCopilotCLISessionDir: (sessionId: string) => `/mock/session-state/${sessionId}`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
import type { SweCustomAgent } from '@github/copilot/sdk';
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
import * as vscode from 'vscode';
import { ILogService } from '../../../../platform/log/common/logService';
import { MockCustomInstructionsService } from '../../../../platform/test/common/testCustomInstructionsService';
import { mock } from '../../../../util/common/test/simpleMock';
import { Emitter } from '../../../../util/vs/base/common/event';
import { DisposableStore } from '../../../../util/vs/base/common/lifecycle';
import { URI } from '../../../../util/vs/base/common/uri';
import { CLIAgentInfo, ICopilotCLIAgents } from '../../copilotcli/node/copilotCli';
import { ILogService } from '../../../../../platform/log/common/logService';
import { MockCustomInstructionsService } from '../../../../../platform/test/common/testCustomInstructionsService';
import { mock } from '../../../../../util/common/test/simpleMock';
import { Emitter } from '../../../../../util/vs/base/common/event';
import { DisposableStore } from '../../../../../util/vs/base/common/lifecycle';
import { URI } from '../../../../../util/vs/base/common/uri';
import { CLIAgentInfo, ICopilotCLIAgents } from '../../../copilotcli/node/copilotCli';
import { CopilotCLICustomizationProvider } from '../copilotCLICustomizationProvider';
import { MockPromptsService } from '../../../../platform/promptFiles/test/common/mockPromptsService';
import { MockPromptsService } from '../../../../../platform/promptFiles/test/common/mockPromptsService';

class FakeChatSessionCustomizationType {
static readonly Agent = new FakeChatSessionCustomizationType('agent');
Expand Down
Loading
Loading