* issue-reporter-main merge into branch (#13)
* laying the groundwork for issue reporter API
* working version 1
* added additional support, checkbox
* smol change with disabling edits and cleanup
* added blocker, timeout of 5 seconds, instead of rejecting we return
* added working template data as well
* removed test code
* cleaning up commit
* working with injecting template and allowing editing
* cleanup pass 1
* added progress bar and code cleanup
* cleanup and adding docs
* added default data in issuereporter test
* extension data hidden by default, better loading indication
* cleanup
* added codicons
* added codicon styling, removed progress bar:
* code cleanup
* better preview button handling
* cleaning up part 4
Co-authored-by: Tyler James Leonhardt <me@tylerleonhardt.com>
---------
Co-authored-by: Tyler James Leonhardt <me@tylerleonhardt.com>
* speech - scaffold a basic core service for registration
* speech - scaffold a basic extension API for speech providers
* cleanup
* speech - improve API to work with events
* simplify
* better api
* cleanup
* Add notes on chat agent API
* Add request ID to context
* variables
* Add partial implementation for another option for a chat agent API
* update
* Notes from api sync
* More notes
* Can invoke an agent and get the response
* Provide a real request
* Notes
* add `slashCommandProvider` - not yet hooked up
* add metadata properties inline, some comments
* some more notes
* Put the new API side-by-side with the old one
* Fix agent title in response
* Fix agent display
* Send slashCommand to request
* Hook up variables
* Get rid of package.json registration option
* Start to implement followups provider
* Add comment
* make it `slashCommandProvider` all the way, use updateAgent for updates icon, fullName, description
* update docs
* only ask for slash command completions when completing a slash-word
* use complex completion item label for command/agent completions
* add `promptText` to `IParsedChatRequestPart` so that some parts don't make it into the prompt (like agent and slash commands)
* only allow agent and slash command at the beginning of the prompt
* remove unused method
* some jsdoc, many renames so that stuff starts with `ChatAgent...`
* reduce `createChatAgent` to the minimum, let the rest be set via setters
* in the renderer know if an agent has slash command and follow ups, safes IPC calls
* use `iconPath` to align with other APIs
* more jsdoc and more obvious TODOs
* fix chat parser with "late" command
* handle error so that the request stops. where is the rendering tho?
* Show error message in response properly
* Don't blow up global / list
* Change proposal name
* Inline followup types
* fix type
* Remove brace in error msg
---------
Co-authored-by: Johannes <johannes.rieken@gmail.com>
* shift nb codeaction filter to editor layer
* readability
* revised API, clearer typings, filter out autosave triggers
* quick lil rename bc i kept confusing myself
* revert back to boolean setting. wait for editor enum
* Very basic chat agent API/UX
* Add custom name/avatar, and restore them in persisted sessions
* Show agent subcommands on the top level
* Show editor decorations for subcommands
* Fix unit tests
* Implement unregister
* Revert slash command content widget change, still used by inline editor
* Remove content widget reference
* Fix leaked disposable
- Implements the proposal in #190277 by adding a `contextValue` to
TestMessages added to test runs.
- Make the `FloatingClickMenu` reusable outside the editor, and uses
it to implement a `testing/message/content` contribution point.
With this extensions can do things like:

This adds support for nesting remote authorities via passing through
ExecServers.
- An authority like `wsl+Ubuntu@tunnel+my-pc` is parsed into
the chain `tunnel+my-pc` -> `wsl+Ubuntu`
- An extension for the `tunnel` prefixed is resolved. We expect the
resolver to implement the new `resolveExecServer` method.
- Resolution continues. `wsl+Ubuntu` is the last resolver, so the
`resolve()` method is called and the exec server is passed in its
`RemoteAuthorityResolverContext`
Currently the ExecServer is typed as `unknown` in the API. _Maybe_ we
want to make it real API in the future, but I don't want to do this
until it's generalized beyond a single consumer (WSL).
This also has adds utility method `getRemoteExecServer` to get an exec
server for a given remote. This is used by WSL to probe information
about a tunneled machine even when WSL isn't opened (e.g. to get the
list of distros to shop.)
The new `@` handling should not break remotes. WSL doesn't use `@` in
its remotes, SSH and containers both hex-encode information contained
in authorities. Codespaces does put the codespace name in the remote
authority, but it doesn't seem like it's possible to get `@` in those
names, since they're generated either randomly when opening a template
or from a repo name (where @ is not allowed).