* sessions - fix chat input shrinking at narrow widths (#299498)
style - set width to 100% for `interactive-input-part`
* modal - force focus into first modal editor always
* fix: update precondition for FixDiagnosticsAction and hide input widget on command execution (#299499)
fixes https://github.com/microsoft/vscode/issues/299251
* refactor: remove workspace context service dependency from FolderPicker
* Add logging for agent feedback actions
* modal - some fixes to actions and layout
* modal - surface some editor actions in a new toolbar (#299582)
* modal - surface some editor actions in a new toolbar
* ccr
* keybindings - remove "Edit as JSON" as its now available from the title menu
* settings - remove "Edit as JSON" as its now available from the title menu
* update hover fixes
* terminal fixes
* terminal improvements
* Sessions: fix auth scopes of gh FSP
* sessions customizations: make it easier to scan mcp/plugin marketplac… (#299636)
sessions customizations: make it easier to scan mcp/plugin marketplace list
* sessions: add built-in prompt files with override support (#299629)
* sessions: add built-in prompt files with override support
Ship bundled .prompt.md files with the Sessions app that appear as
slash commands out of the box. Built-in prompts use a BUILTIN_STORAGE
constant (cast as PromptsStorage) defined in the aiCustomization layer,
avoiding changes to the core PromptsStorage enum and prompt service types.
- AgenticPromptsService discovers prompts from vs/sessions/prompts/
at runtime via FileAccess and injects them into the listing pipeline
- Override logic: user/workspace prompts with matching names take
precedence over built-in ones
- Built-in prompts open as read-only in the management editor
- Sessions tree view, workspace service, and counts handle BUILTIN_STORAGE
- Add /create-pr as the first built-in prompt
- Bundle prompt files via gulpfile resource includes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* sessions: use AICustomizationPromptsStorage type for builtin storage
Adopt the new AICustomizationPromptsStorage union type in the sessions
tree view method signature. Use string-keyed Records and targeted casts
at the PromptsStorage boundary to stay type-safe.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: remove PromptsStorage casts, widen IStorageSourceFilter
Use AICustomizationPromptsStorage in sessions-local interfaces
(IAICustomizationGroupItem, IAICustomizationFileItem) and widen
IStorageSourceFilter.sources to readonly string[] so BUILTIN_STORAGE
flows through without casts. The only remaining cast is at the
IPromptPath creation boundary in AgenticPromptsService.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: move BUILTIN_STORAGE to sessions common layer
Move AICustomizationPromptsStorage type and BUILTIN_STORAGE constant
from the workbench browser UI module to sessions/contrib/chat/common
so that AgenticPromptsService (a service) does not depend on UI code.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* sessions: fix ESLint dangerous type assertion in builtin prompts (#299663)
Replace the `as IPromptPath` cast in discoverBuiltinPrompts with a
createBuiltinPromptPath factory function that contains the type
narrowing in one place, satisfying the code-no-dangerous-type-assertions
ESLint rule.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Enhance Agent Sessions Control and Renderer with observable active session resource
* fix terminal
* Enable model management in NewChatWidget
* review feedback
* different competion settings for copilot markdown and plaintext
---------
Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
Co-authored-by: Johannes Rieken <johannes.rieken@gmail.com>
Co-authored-by: BeniBenj <besimmonds@microsoft.com>
Co-authored-by: Osvaldo Ortega <osortega@microsoft.com>
Co-authored-by: Josh Spicer <23246594+joshspicer@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Make sure we still always type check using `tsgo --noEmit`
- Align names of esbuild files
- Convert all esbuild files to typescript. We use the `.mts` extension to avoid annoying node warnings about using pacakges
For #271167
This makes it so our built-in extensions can mostly be built using `tsc` on the command line. Previously the extensions were picking up a lot of typing info from the root `node_modules` that meant they weren't truly independent
Fixes#243454
This restores the previous behavior. If the default security settings are used, scripts will still block blocked by the CSP. If you fully disable the security settings, then we'll try to run them
Fixes#30066
This finalizes the documentPaste api. This api allows extensions to attach metadata on text copy and change how content is pasted. Some examples:
- Updating imports for pasted code
- Inserting an image as an attachment in notebooks
- Pasting files converts them to relative text paths
* feat: move from yarn to npm
* chore: skip yarn.lock files
* fix: playwright download
* chore: fix compile and hygiene
* chore: bump vsce@2.17.0
Refs 8b49e9dfdf
* test: update results for bat and sh colorizer tests
* fix: add missing lock files for windows
* fix: switch to legacy-peer-deps
* chore: update markdown-it@14.1.0
Refs 737c95a129
esbuild step in extensions-ci-pr was previously using markdown-it
from root which had userland punycode and was able to compile successfully.
* ci: increase pr timeout for windows integration tests
* chore: fix product build
* build: ignore extension dev dependency for rcedit
* build: fix working directory inside container
* build: fix dependency generation
* npm: update dependencies
* ci: use global npmrc
* ci: update cache
* ci: setup global npmrc for private npm auth
* build: fix extension bundling
* chore: sync npm dependencies
* ci: debug env variables for container
* ci: fix win32 cli pipeline
* build: fix npmrc config usage for build/ and remote/ dirs
* fix: windows build
* fix: container builds
* fix: markdown-language-features tests and bundling
```
[03:58:22] Error: Command failed: /Users/demohan/.nvm/versions/node/v20.15.1/bin/node /Users/demohan/github/vscode/extensions/markdown-language-features/esbuild-notebook.js --outputRoot /Users/demohan/github/vscode/.build/extensions/markdown-language-features
✘ [ERROR] Could not resolve "punycode"
extensions/markdown-language-features/node_modules/markdown-it/lib/index.js:14:27:
14 │ var punycode = require('punycode');
╵ ~~~~~~~~~~
The package "punycode" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
```
Adds userland package based on beed9aee2c
* fix: container builds for distro
* chore: update yarn occurrences
* fixup! chore: bump vsce@2.17.0
Uses the closest version to `main` branch that does not
include d3cc84cdec
while still having the fix 8b49e9dfdf
* chore: sync npm dependencies
* chore: sync npm dependencies
* chore: sync npm dependencies
* chore: throw error when yarn is used for installation
* chore: add review feedback
* chore: switch exec => run where needed
* chore: npm sync dependencies
* fix: markdown-language-features bundling
```
✘ [ERROR] Could not resolve "punycode"
extensions/markdown-language-features/node_modules/markdown-it/lib/index.js:14:27:
14 │ var punycode = require('punycode');
╵ ~~~~~~~~~~
The package "punycode" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
```
Adds missing userland package based on markdown-it/markdown-it@beed9ae,
can be removed once we update markdown-it >= 14.1.0
* ci: rename no-yarn-lock-changes.yml
* chore: sync npm dependencies
* ci: restore no-yarn-lock-changes.yml
We can disable it in a separate PR to keep the required
checks happy and also need workflow edit perms.
* chore: sync npm dependencies
* ci: rebuild cache
* ci: fix no-package-lock-changes.yml
* chore: bump distro
* chore: rm yarn.lock files
* chore: rm yarn.lock files without dependencies
* chore: add vscode-selfhost-import-aid to postinstall dirs
* chore: bump distro
* Move MD server into own package
* Remove a few more refs
* Try glob
* Move glob
* More glob
* Add logging
* Tweak glob again
* Use webpack to copy over files
* Remove a few more refs to server
* Fix debug check
Fixes#188863Fixes#188958Fixes#188868
This is more reliable than using the regular expressions. However the regular expressions are still needed for inline elements
Fixes#184980
This refactors much of the logic around markdown paste/drop. PR got a little large but the main highlights are:
- Allow using a custom snippet for inserted audio/video
- Merge the drop/paste resource provider classes since these are so similar
- Enable smart pasting of url text by default
- Refactor url paste logic
- For now, disable the behavior where url paste could paste a combination of markdown and plain uris. In practice this is confusing, especially because our labels for this were wrong. We can always reintroduce this later if multicursor users find it useful