Public declaration syntax from forge-ts/packages/forge-agent/src/messaging.ts Original source SHA-256: f8f29bcc0045c4ccd0bbfa8f2c4d855d955b398354270db1bd60a7fdaff20ad0 Function bodies and constant values are omitted. This is not the complete implementation. Source line 34 export interface AgentMessage { /** Unique message identifier. */ readonly id: string; /** The OAS DID of the sending agent. */ readonly senderDid: string; /** The OAS DID of the recipient agent. */ readonly recipientDid: string; /** The message payload (arbitrary JSON-serializable data). */ readonly payload: unknown; /** The UTC timestamp when the message was created. */ readonly timestamp: Timestamp; } Source line 52 export const MessageType /* type inferred in source */; Source line 64 export type MessageType = (typeof MessageType)[keyof typeof MessageType]; Source line 78 export interface TypedMessage extends AgentMessage { /** The message type discriminator. */ readonly messageType: MessageType; /** Optional correlation ID for request-response pairing. */ readonly correlationId?: string; } Source line 107 export class AgentChannel { constructor(capacity: number = 1000); send(message: AgentMessage): void; receive(): AgentMessage | undefined; drain(): AgentMessage[]; get size(): number; get isEmpty(): boolean; get capacity(): number; } Source line 207 export function createAgentMessage( senderDid: string, recipientDid: string, payload: unknown ): AgentMessage; Source line 231 export function createTypedMessage( senderDid: string, recipientDid: string, payload: unknown, messageType: MessageType, correlationId?: string ): TypedMessage;