Add inbound A2A peer support with trust model and idle notifications#232
Open
rockfordlhotka wants to merge 1 commit intomainfrom
Open
Add inbound A2A peer support with trust model and idle notifications#232rockfordlhotka wants to merge 1 commit intomainfrom
rockfordlhotka wants to merge 1 commit intomainfrom
Conversation
…99) Make RockBot a full A2A peer so external agents can discover it and send it tasks. Implements pluggable identity verification (IAgentIdentityVerifier), a four-level per-caller trust model (Observe/Learn/Propose/Act), and an idle-aware notification queue that batches inbound A2A results for the user. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
Closes #99 — makes RockBot a full A2A peer so external agents can discover it and send it tasks.
IAgentIdentityVerifierinterface receives the fullMessageEnvelopeand returnsVerifiedAgentIdentity. Ships withNameBasedAgentIdentityVerifier(trusts Source string); future implementations can plug in JWT, OAuth, OBO tokens, or registry-backed verification via DI replacement.AgentTrustLevel(Observe → Learn → Propose → Act) withFileAgentTrustStorefor JSON persistence. Each caller progresses independently. New callers start at Observe.RockBotTaskHandler— implementsIAgentTaskHandlerwith trust-level-aware dispatch:notify-user,query-availability) autonomouslynotify-user(pass-through notification) andquery-availability(deterministic busy/available/away) bypass the LLM loopInboundNotificationServicemonitors user activity and batches A2A notifications for delivery after ~2 minutes of idle timeMessageCategory.A2AActivitywith distinct "Inbound A2A" label, blue accent, and 🔗 header indicatorArchitecture
Test plan
dotnet build RockBot.slnx— 0 errorsdotnet test RockBot.slnx— 849 tests passing, 0 failuresIdentityVerificationTests(3),IdentityVerificationMiddlewareTests(3),TrustStoreTests(6),InboundNotificationQueueTests(4)AgentCardpublished ondiscovery.announceagent-trust.jsoncreated after first inbound task🤖 Generated with Claude Code