feat(leg): leg exchange — one baton.message/v1 round-trip with nested baton.exchange/v1
Problem
leg must be drivable as an ExternalAgentParticipant by baton serve --agent-cmd "leg exchange" without adaptation.
Approach
leg exchange: one baton.message/v1 round-trip with nested baton.exchange/v1 provider record, same envelope as baton.
- Keep the infallible
Participant contract (delivery error → kind:"error" envelope, never Err).
- Prove end-to-end under
baton serve --agent-cmd "leg exchange".
Acceptance
leg exchange round-trips a baton.message/v1 envelope with a nested provider record.
- Consumable by
baton serve --agent-cmd "leg exchange" without adaptation (cross-repo integration proof).
- Delivery errors surface as
kind:"error" envelopes, never Err.
Part of
SHUKE-LABS/baton#338 (umbrella). Depends on leg#2.
feat(leg):
leg exchange— onebaton.message/v1round-trip with nestedbaton.exchange/v1Problem
legmust be drivable as anExternalAgentParticipantbybaton serve --agent-cmd "leg exchange"without adaptation.Approach
leg exchange: onebaton.message/v1round-trip with nestedbaton.exchange/v1provider record, same envelope as baton.Participantcontract (delivery error →kind:"error"envelope, neverErr).baton serve --agent-cmd "leg exchange".Acceptance
leg exchangeround-trips abaton.message/v1envelope with a nested provider record.baton serve --agent-cmd "leg exchange"without adaptation (cross-repo integration proof).kind:"error"envelopes, neverErr.Part of
SHUKE-LABS/baton#338 (umbrella). Depends on leg#2.