Repository navigation
Add session-scoped extension permission requests - #564
Draft
Joaquín Ruales (jruales) wants to merge 5 commits into
Draft
Joaquín Ruales (jruales) wants to merge 5 commits into
Joaquín Ruales (jruales) wants to merge 5 commits into
Conversation
Agent extensions can request capabilities, such as registering hooks, while they start and before any chat turn exists. Add an `extensionPermission` session input request and a client-dispatchable `session/permissionResponded` action so hosts can ask the user and receive the answer on the session channel. Co-authored-by: Copilot <[email protected]>
AHP 1.1.0 is unreleased, so clients may still negotiate 1.0.0. Add an opt-in `extensionPermissions` client capability so hosts can deliver session-owned extension permission requests only to clients that can answer them. Co-authored-by: Copilot <[email protected]>
Go, Rust, .NET, Kotlin and Swift reducers now track extension permission requests, apply `session/permissionResponded`, and restore the chats' activity once no request blocks the session, matching the TypeScript reducer. Adds a shared reducer fixture for an extension permission request on an idle session. Co-authored-by: Copilot <[email protected]>
Preserve running-peer precedence when extension consent completes, and keep an explicitly empty extensionPermissions capability distinct from an absent capability. Add shared reducer and round-trip fixtures across native clients. Co-authored-by: Copilot <[email protected]>
Register the wire type used by the shared extension-permission capability fixtures in the TypeScript client corpus runner. Co-authored-by: Copilot <[email protected]>
This branch has not been deployed
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
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.
Extension consent can be requested before any chat turn exists, but
inputNeededonly models chat-owned requests. Hosts need a session-owned request and response path.Changes
SessionInputRequestKind.ExtensionPermission, carrying the extension name, requested capabilities, and optional choices without achat.session/permissionRespondedaction in 1.1.0.ClientCapabilities.extensionPermissionscapability. Hosts must hide these requests and response actions from clients that omit it.InputNeeded→InProgress→ default/latest chat precedence when consent completes. Peer errors do not override the default chat.{}) instead of omitting it.Validation
npm run generate: passed.npm test: passed (637 tests; coverage gate passed).cd clients/typescript && npm run typecheck && npm test: passed (77 tests).VS Code implementation: microsoft/vscode#346208.
🤖 Written by GitHub Copilot on behalf of Joaquín Ruales (@jruales).