Commit Graph

1169 Commits

Author SHA1 Message Date
Connor Peet
11ef18e302 Merge remote-tracking branch 'origin/main' into dev/bhavyau/tools-model 2026-01-14 11:59:00 -08:00
Logan Ramos
6b31b753c7 Support streaming of partial tool data (#278640)
* Start work on handling tool stream

* Start working on rendering tool progress

* Handle complete better

* Inovcation message

* Revert "Inovcation message"

This reverts commit f502d22d9a.

* Reapply "Inovcation message"

This reverts commit 855668653f.

* Revert "Reapply "Inovcation message""

This reverts commit 4c4db3ac36.

* Handle updating progress

* Better messages

* Have progress re-render if content changes

* Fix import

* Move prepare to view layer

* Clean up diff

* Pass tool call id through

* Pin it

* Modify the progress tool flow to use the same part + observables

* Some more debug logs

* Address feedback

* Plumb tool call id through to invoke

* Address connor's typing feedback

* Fix import

* Fix session operation log

* Update src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Remove debug logging

* fix wrong enums

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-14 13:27:49 -05:00
Alex Ross
17523c000e Revert recent merges affecting chat session functionality (#287734)
* Revert "Merge pull request #287668 from mjbvz/dev/mjbvz/eventual-sparrow"

This reverts commit 81f7af4b9f, reversing
changes made to 85a14f966c.

* Revert "Merge pull request #286642 from microsoft/dev/mjbvz/chat-session-item-controller"

This reverts commit b39ecc3960, reversing
changes made to 45aced5935.
2026-01-14 10:18:42 +00:00
Connor Peet
8d3270de42 chat: wip on model-specific tools
This is a rethinking of the initial API proposed in `languageModelToolSupportsModel.d.ts`.

1. This switches to `models?: LanguageModelChatSelector[];` to control enablement.
   definitely open to switching this out, but I think a synchronously-analyzable
   expression is important to retain the data flows in core without too many races.
2. The extension is able to define a tool at runtime via registerToolDefinition. This
   should let us have entirely service-driven tools from model providers without
   requiring a static definition for each one. We can also have model-specific
   variants of tools without a ton of package.json work for each variant of the tool
   (as initially proposed using `when` clauses)

This then propagates that down into the tools service. Currently I have this as just
compiling to a `when` expression once it reaches the main thread. Then, for the tools
service, it takes an IContextKeyService in cases where tools should be enumerated,
and the chat input sets the model keys in its scoped context key service. This allows
the tools to be filtered correctly in the tool picker.

I initially thought about allowing multiple definitions be registered for the same tool
name/id for model-specific variants of tools but I realized that gets really gnarly and
we already have a `toolReferenceName` that multiple tools can register into.

Todo for tomorrow morning:
- Tools don't make it to the ChatRequest yet, or something, still need to investigate
- Need to make sure tools in prompts/models all work. For a first pass I think we can
  let prompts/modes reference all tools by toolReferenceName.
- Validate that multiple tools actually can safely share a reference name (and do
  some priority ordering?)
- General further validation
- Some unit tests
2026-01-13 16:02:29 -08:00
Matt Bierner
b39ecc3960 Merge pull request #286642 from microsoft/dev/mjbvz/chat-session-item-controller
Explore a controller based chat session item API
2026-01-13 15:35:48 -08:00
Connor Peet
d94a1fb7f5 Merge remote-tracking branch 'origin/main' into dev/bhavyau/tools-model 2026-01-13 10:53:28 -08:00
Matt Bierner
93ff336d51 Cleanup 2026-01-12 15:39:35 -08:00
Matt Bierner
25bdc74f90 Cleanup 2026-01-12 13:44:43 -08:00
Matt Bierner
e45ac30b90 Hookup basic proxy impl 2026-01-12 11:46:29 -08:00
Paul
88d46fe33a Add proposed API for prompt files providers (#280426) 2026-01-09 11:30:02 -08:00
Rob Lourens
792929f336 Get chat session transferring working on the ChatSessionStore (#283512)
* Get chat session transferring working on the ChatSessionStore

* fix comment

* Fix tests, validate location

* Tests

* IChatTransferredSessionData is just a URI

* Fix leak
2025-12-20 16:31:46 -08:00
Ladislau Szomoru
b81bd1a1d1 SCM - hide worktrees created by Copilot Chat (#284462) 2025-12-19 15:02:54 +00:00
Osvaldo Ortega
1eea41f3b8 Apply and file changes part for worktree (#281410)
* api idea

* iterate

* start hacking

* wip

* use the right menu

* update

* update

* Fixes

* Fix test and override

---------

Co-authored-by: Connor Peet <connor@peet.io>
2025-12-05 02:55:35 +00:00
Paul
8edd662c60 Custom agent provider cleanups (#280391) 2025-12-01 19:44:17 +00:00
Johannes Rieken
ce9c9c3931 chore - have ChatRequestEditorData#editor and let it eventually replace document/selection/wholeRange (#280259) 2025-12-01 08:52:02 +00:00
Dmitriy Vasyura
1d9c1b271a Make use of glob patterns by file system watchers case-aware (#277501)
* Make use of glob patterns by file system watcher case-aware

* Fix build break

* Fix unit-tests

* Added unit-tests for case-insensitive glob matching.

* PR feedback

* Add jdoc comments on GlobCaseSensitivity enum.

* Simplify toGlobCaseSensitivity per PR feedback

* PR feedback

* Revert changes to support case sensitivity option.

* Remove unneeded unit-tests.

* Test updates

* Revert unrelated changes.

* Revert more unrelated changes.

---------

Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
2025-11-27 06:15:12 +01:00
Paul
d2865ebb0c Add support for GH Custom Agents (#278251) 2025-11-26 12:57:19 -08:00
bhavyaus
6d7b8fc9ef Update invokeTool to support Language 2025-11-24 17:33:37 -08:00
Alex Ross
db6ff2b3b9 Chat context provider API changes (#278135)
* Chat context provider API changes
Part of #271104

* Implement workspace chat context
Part of #271104

* Fix some tests

* actually fix the test
2025-11-19 13:44:18 +01:00
Megan Rogge
6293b5452c undo finalization of terminal completion provider API (#276174)
addresses #276142 in main
2025-11-07 13:05:48 -08:00
Logan Ramos
411f0c8970 Hydrate machine id for device id in contexts where device id is undefined (i.e. web) (#274826) 2025-11-03 18:20:26 +00:00
Alex Ross
005cfa9290 Move chat context provider into chat namespace (#274794) 2025-11-03 16:35:36 +00:00
Alex Ross
70de2c9318 Contributable chat context (#273736)
* Contributable chat context

* Copilot feedback

* Matt and Ben feedback

* Also resolve for resources

* Clean up API

* More polish

* Fix double context
2025-11-03 16:49:32 +01:00
Connor Peet
7516634330 fixup 2025-10-29 16:26:42 -07:00
Matt Bierner
fb6055cb58 Use URIs to identify sessions (#272013)
* Start work on using URIs to identify sessions

This starts switching us from id+types to use uris to identify chat sessions. I already added very basic support for this but in this next step I think we need a breaking change so that we can avoid adding more and more hacks and complexity to support this

* More work

* Add docs

* Fix indent

* Bump api

* Fix quotes

* Fix tests

* fix compile errors for mockChatSessionService

* Fix mockChatSessionService

* Update getChatSessionType

* Make sure resolver also registers any initial schemes

* add ChatSessionService.hasAnySessionOptions()

---------

Co-authored-by: Peng Lyu <penn.lv@gmail.com>
Co-authored-by: Josh Spicer <23246594+joshspicer@users.noreply.github.com>
2025-10-23 15:16:46 -07:00
Megan Rogge
a1b4ecaa32 finalize terminal completion provider API (#271338) 2025-10-23 08:57:05 -07:00
Connor Peet
c8f6138825 tools: initial proposal for static mcp tool definitions (#271716)
* tools: initial proposal for static mcp tool definitions

* finish implementation

* up distro
2025-10-17 15:04:50 -07:00
Rob Lourens
ec8586ef25 Add isModelProxyAvailable (#271872)
* Add isModelProxyAvailable

* tests
2025-10-16 21:11:11 -07:00
Rob Lourens
aa462d08c7 Add languageModelProxy proposal (#271436) 2025-10-15 04:26:27 +00:00
Justin Chen
9116007eee finalize languageModelDataPart and tools api (#265537)
* finalize datapart and tools api

* remove test fo languagemodel part 2

* delete languagemodeldata part, move to thinking for now

* bump version of chatprovider

* update api comments

* add aliases for languyagemodelToolresult and part

* Add to impl

* fix some finalization commentx

* remove extra instance check

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @mjbvz

Co-authored-by: Matt Bierner <12821956+mjbvz@users.noreply.github.com>

* Apply suggestion from @mjbvz

Co-authored-by: Matt Bierner <12821956+mjbvz@users.noreply.github.com>

* Apply suggestion from @mjbvz

Co-authored-by: Matt Bierner <12821956+mjbvz@users.noreply.github.com>

* Apply suggestion from @mjbvz

Co-authored-by: Matt Bierner <12821956+mjbvz@users.noreply.github.com>

* Apply suggestion from @mjbvz

Co-authored-by: Matt Bierner <12821956+mjbvz@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Matt Bierner <12821956+mjbvz@users.noreply.github.com>
2025-10-14 15:12:05 -07:00
Megan Rogge
75ff485ed9 rm ID from terminal completion provider (#270094) 2025-10-06 13:44:25 -07:00
Matt Bierner
360c9fd134 Add lint rule for as any and bulk ignore all existing breaks
For #269213

This adds a new eslint rule for `as any` and `<any>({... })`. We'd like to remove almost all of these, however right now the first goal is to prevent them in new code. That's why with this first PR I simply add `eslint-disable` comments for all breaks

Trying to get this change in soon after branching off for release to hopefully minimize disruption during debt week work
2025-10-02 23:38:33 -07:00
Josh Spicer
fc4d4d8ee5 chatSessions API redesign/experiment (#268089)
* adapt API to provide a chatParticipant

* initial tidy up to support agent in extension

* untitled prototype

* onDidCreateChatSessionIte

* tidy

* tidy

* names

* onDidCommitChatSessionItemEmitter and bump proposed api version

* deprecated note

* untitled with uuid to prevent collision

* pick correct editor group
2025-09-25 20:14:51 -07:00
Tyler James Leonhardt
b4c1eaa7c8 Finalize Auth Challenges caller API (#268006)
Fixes https://github.com/microsoft/vscode/issues/260156
2025-09-23 10:21:21 -07:00
Megan Rogge
5e4fa79ff8 address API feedback for terminal completion provider (#266073) 2025-09-11 15:17:31 -07:00
Alex Ross
9562ac0f24 Only do forwarding for local extension host if there's a tunnel provider (#266014) 2025-09-10 09:43:15 +00:00
Tyler James Leonhardt
3e2f34ebe8 Address API sync feedback for challenges API (#265921)
* Address API sync feedback for challenges API

* use `fallbackScopes` instead of `scopes`
* `WWW`-> `Www`

ref https://github.com/microsoft/vscode/issues/260156

* adopt the change
2025-09-09 17:05:43 -04:00
Benjamin Pasero
8a48ecc72b chat - towards experimental anonymous access (#265806) 2025-09-09 14:15:50 +00:00
Alexandru Dima
2617e6ca16 Add proposed API for code and model inline completions unification (#265101)
* Add proposed API for code and model inline completions unification

* Remove the assertion from the event

* Allow api tests to use new API
2025-09-04 11:23:57 +02:00
Josh Spicer
509d9f4ab1 chatSessions supportHotReload (#263701)
chatSessions supportHotReload (https://github.com/microsoft/vscode/issues/259967)
2025-08-27 23:59:17 +00:00
Logan Ramos
a18d41e90a Finalize LM API (#263415)
* Finalize BYOK API

* More byok

* Fix compile errors

* Feedback

* Fix fat fingering

* Fix capabilities

* Bump version

* Rename contrib point + activation events

* Update test

* Add proposed api check to require authorization

* Change comment
2025-08-27 17:25:34 +00:00
Tyler James Leonhardt
5eaa23c2a9 Update challenges proposal shape (#263484)
ref https://github.com/microsoft/vscode/issues/260156
2025-08-26 15:40:35 -07:00
Don Jayamanne
296ca9c6fa Support next edits suggestions for different text documents (#261714) 2025-08-18 11:07:14 +02:00
Tyler James Leonhardt
cf433b58e5 Ability to pass down WWW-Authenticate challenges down to Auth Providers (#261717)
* Initial plan

* Implement authentication challenges support for mandatory MFA

Co-authored-by: TylerLeonhardt <2644648+TylerLeonhardt@users.noreply.github.com>

* Add documentation and integration test for authentication challenges

Co-authored-by: TylerLeonhardt <2644648+TylerLeonhardt@users.noreply.github.com>

* Add validation script and finalize implementation

Co-authored-by: TylerLeonhardt <2644648+TylerLeonhardt@users.noreply.github.com>

* Update authentication challenges API to use AuthenticationConstraint interface

Co-authored-by: TylerLeonhardt <2644648+TylerLeonhardt@users.noreply.github.com>

* Get it compiling... who knows if it works

* New parseWWWAuthenticateHeader behavior

* works

* let's go with this for now

* Good shape

* bye

* final polish

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2025-08-14 18:10:05 -07:00
Logan Ramos
f6b2bec410 Modify LM api based on feedback (#261645)
* API feedback

* Some further API cleanup

* Some API stuff

* Try more cleanup

* CI please pass

* READONLY
2025-08-14 16:59:44 -04:00
Copilot
533e889ea9 Add description and status properties to ChatSessionItem interface (#261292)
* Initial plan

* Add description and status properties to ChatSessionItem interface

Co-authored-by: osortega <48293249+osortega@users.noreply.github.com>

* Update extHostChatSessions to pass through new description and status properties

Co-authored-by: osortega <48293249+osortega@users.noreply.github.com>

* Two line

* Support for tooltip

* API update

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: osortega <48293249+osortega@users.noreply.github.com>
Co-authored-by: Osvaldo Ortega <osortega@microsoft.com>
2025-08-13 23:02:19 +00:00
Justin Chen
43a9dc0df3 chain of thought API (#259939)
* cot api and rendering

* working progress streaminig

* streaming working

* collapsable thinking block

* some better styling

* fix merge conflict

* some cleaned up styling, removing copilot css

* label updates

* some vibe coded timer work

* fix anotha merge conflict

* thinking part with timer better

* render tools inside thinking container

* render markdown in container

* revert and remove majority ui changes

* fix some merge conflicts

* some cleanup

* hygiene
2025-08-06 00:47:36 -07:00
Connor Peet
929f67b87d api: generalize ToolResultAudience->LanguageModelTextPart (#259273)
- Generalize as these parts are used in chat responses as well as tool
  results.
- Add a new 'extension' type for internal-only use.
2025-08-04 11:25:47 +02:00
Rob Lourens
67212013a4 Add the ability to clear a ChatResponseStream, passing in a reason which results in a warning being displayed (#257271) (#259370)
* Add the ability to clear a ChatResponseStream, passing in a reason which results in a warning being displayed

* Changing ChatResponseStream.clear to ChatResponseStream.clearToPreviousToolInvocation and only clearing up to the last tool invocation

* Remove unnecessary code block

Co-authored-by: James Wang <120431051+jwangxx@users.noreply.github.com>
2025-08-04 02:37:35 +02:00
Peng Lyu
9b64bd6376 Support contributed file changes/diff part 2025-07-25 14:43:31 -07:00