a7e6cc94c7ca77ae11d77854aa45f366b0d5f7b2
Introduce ResponseEnvelope as a first-class concept for uniform operation result handling across MCP, OpenAPI, and local adapters. Key decisions: - ResponseEnvelope<T> wraps every result with typed metadata (LocalResponseMeta, HTTPResponseMeta, MCPResponseMeta) - CallHandler becomes sole publisher of call.responded (handler responsibility shift from publish-to-return) - Envelope detection via closed-set string discriminant (isResponseEnvelope) — no Symbols, JSON-serializable - MCP isError:true no longer throws; wraps in envelope with meta.isError flag preserving error content for consumers - outputSchema validates envelope.data, not the full envelope - PendingRequestMap.respond() validates envelope at runtime - Factory functions (localEnvelope, httpEnvelope, mcpEnvelope) ensure consistent construction - Breaking change: execute() returns ResponseEnvelope<TOutput>, call.responded.output is ResponseEnvelopeSchema - No Client abstraction yet (ADR-014)
Description
No description provided
Languages
TypeScript
100%