-
Notifications
You must be signed in to change notification settings - Fork 650
Initial extension interaction service #9927
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
adamint
merged 25 commits into
dotnet:main
from
adamint:dev/adamint/extension-interaction-service
Jun 25, 2025
Merged
Initial extension interaction service #9927
adamint
merged 25 commits into
dotnet:main
from
adamint:dev/adamint/extension-interaction-service
Jun 25, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
davidfowl
reviewed
Jun 18, 2025
mitchdenny
reviewed
Jun 18, 2025
… ValidatePromptInputStringAsync to rpc target, implement prompting apis
mitchdenny
reviewed
Jun 23, 2025
mitchdenny
reviewed
Jun 23, 2025
# Conflicts: # extension/src/server/interactionService.ts # extension/src/server/rpcServer.ts # extension/src/test/rpc/e2eServerTests.test.ts
mitchdenny
approved these changes
Jun 24, 2025
radical
added a commit
to radical/aspire
that referenced
this pull request
Jun 25, 2025
This reverts commit 6ab1e17. Build broke - dotnet#10029
JamesNK
pushed a commit
that referenced
this pull request
Jun 25, 2025
adamint
added a commit
that referenced
this pull request
Jun 25, 2025
* Reapply "Initial extension interaction service (#9927)" (#10030) This reverts commit aab8668. * Update ExtensionBackchannel to be AOT compatible Reuse the same Json source generation context. Add ExtensionBackchannel types to it. Need to suppress a RDC warning due to EventHandlers on the Rpc Target object needing to call MakeGenericMethod, but we aren't using EventHandlers so it can be suppressed. * Fix new AOT warnings: Remove Exception from the wire payload since it can't be safely STJ serialized using the source generator. Enable Configuration Binder source generator in the Aspire.Cli. * untrack generated files * subclass OperationCanceledException for ExtensionInteractionService --------- Co-authored-by: Adam Ratzman <adam@adamratzman.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a basic interaction service implementation on the CLI and fixes some of the rpc connection logic between CLI and extension.
Specifically,
ExtensionBackchannel
ExtensionBackchannelConnector
background service that attempts backchannel connection immediately after CLI program start and provides a method to wait for connectionExtensionRpcTarget
to provide CLI versioning and prompt verification argumentsExtensionInputCanceledException
(thrown if a user cancels instead of confirming/entering information in VS code) in commandsExtensionInteractionService
. for now, this impl will call the console interaction service for allh non-prompting invocations, and calls into the extension for prompting and confirmation methodsYou can test the e2e connection by building the aspire.cli project and then running the extension (open
extension
in vs code and f5).