Skip to content

Conversation

@koureasstavros
Copy link

@koureasstavros koureasstavros commented Nov 3, 2025

For Provider "Azure" there are two improvements:

Next Steps:

  • Additional operations like externalEdit need to be implemented as proposed into vscode.proposed.chatParticipantAdditions.d.ts into vscode ChatResponseStream

What fixes this PR provides:

  • Closes #274318
  • Closes #274315
  • Closes #251251

This changes the format of settings needed in settings.json

  • Instructions has been provided, switched from full endpoint using path to attribute style setting, this is because responses api do not has the deploymentName and apiVersion into the url path.

From this azure setting:

"gpt-5": {
	"name": "GPT5",
 	"url": "https://<my-host-name>/openai/deployments/<deployment_name>/chat/completions?api-version=<api-version>",
	 "maxInputTokens": 272000,
	"maxOutputTokens": 128000,
	"toolCalling": true,
	"vision": true
}

To this azure setting:

"gpt-5": {
	"name": "GPT5",
	"url": "<my-host-name>",
	"deploymentName": "<deployment_name>",
	"deploymentType": "<your-api-type>",
	"apiVersion": "<api-version>",
	"maxInputTokens": 272000,
	"maxOutputTokens": 128000,
	"toolCalling": true,
	"temperature": <your-temperature>,
	"thinking: true,
	"vision": true
}

Here are some more information about implementation:

  1. name is the display name in your VS Code GitHub Copilot Chat
  2. deploymentName is the actual deployment name in Azure (if not provided it will fallback to modelId)
  3. deploymentType is the way to switch betweem previous completions api and the newer responses api
  4. temperature is now configurable for your convinient but also mandatory to change for some models

Copilot AI review requested due to automatic review settings November 3, 2025 11:02
@koureasstavros
Copy link
Author

@koureasstavros please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (2)

src/extension/byok/vscode-node/azureProvider.ts:1

  • Temperature assignment on line 301 occurs after delete body.temperature on line 295. If a thinking model has a temperature value already set in the body, it will be deleted and then potentially re-added if this._temperature is defined. The condition on line 300 should prevent this, but the logic is confusing. Consider moving the temperature application before the thinking model check or ensuring the temperature is only set when not a thinking model to avoid the delete-then-potentially-add pattern.
/*---------------------------------------------------------------------------------------------

src/extension/byok/vscode-node/azureProvider.ts:1

  • The no-op function is unnecessarily wrapped in parentheses and uses 'any' type assertion. This should be simplified to return (() => {}) as any; or better yet, use a more specific type assertion based on the return type of ChatResponseStream[K].
/*---------------------------------------------------------------------------------------------

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

package.json:3170

  • The customOAIModels schema is missing the temperature property definition. While the TypeScript types in configurationService.ts (line 815) include temperature?: number, the JSON schema lacks this field, which means VS Code won't provide autocomplete or validation for this property. Add a temperature property with type number, description, and min/max constraints (0-2) similar to the azureModels schema.
							},
							"required": [
								"name",
								"url",
								"toolCalling",
								"vision",
								"maxInputTokens",
								"maxOutputTokens",
								"requiresAPIKey"
							],
							"additionalProperties": false

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (1)

package.json:3159

  • The temperature field is missing from the customOAIModels schema in package.json, but it's present in the azureModels schema and implemented throughout the codebase (lines 814-815 in configurationService.ts). This inconsistency means the temperature feature won't have JSON schema validation or autocomplete for customOAIModels. Add the temperature field to the customOAIModels schema after line 3152 with the same definition as in azureModels (type: number, minimum: 0, maximum: 2, with appropriate description).
								"requestHeaders": {
									"type": "object",
									"description": "Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.",
									"additionalProperties": {
										"type": "string"
									}
								}

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

@koureasstavros
Copy link
Author

@bryanchen-d, I have completed with the changes to support these two additions.
Let me know if something else is needed in order to proceed with tests, etc...

@roblourens roblourens assigned lramos15 and unassigned bryanchen-d Nov 4, 2025
@lramos15 lramos15 assigned eleanorjboyd and unassigned lramos15 Nov 4, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 9 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (1)

package.json:3087

  • Missing property in schema: The requiresAPIKey property is missing from the azureModels schema, but it's present in the TypeScript AzureModelConfig interface (line 33 in azureProvider.ts) and in the documentation (line 32 of azure-provider-settings.instructions.md). This property should be added to the schema to provide IntelliSense support for users configuring Azure models. Add it after the vision property:
"requiresAPIKey": {
  "type": "boolean",
  "description": "Whether the model requires an API key for authentication",
  "default": true
}
								"requestHeaders": {
									"type": "object",
									"description": "Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.",
									"additionalProperties": {
										"type": "string"
									}
								}

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

@koureasstavros
Copy link
Author

@eleanorjboyd I had to correct a few things based on Copilot suggestions, as it seems that AzureProvider, CustomOpenAIProvider and OpenAIProvider are dependent in this implementation.

@koureasstavros
Copy link
Author

@lramos15 just checking in — I’d love feedback on this PR whenever you get a chance. Thanks for all your work on the project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants