Public declaration syntax from forge-ts/packages/forge-comm/src/protocol.ts Original source SHA-256: 5e4956a7fb9cd79747123256861dd9f58148ff445fa5965d992eb5e6e303a801 Function bodies and constant values are omitted. This is not the complete implementation. Source line 34 export interface ProtocolOffer { /** The protocol identifier (e.g., "anvil.task"). */ readonly protocol: string; /** The versions the offering agent supports, ordered by preference. */ readonly versions: readonly string[]; /** Optional extensions the offering agent supports. */ readonly extensions: readonly string[]; } Source line 60 export interface ProtocolAccept { /** The agreed-upon protocol identifier. */ readonly protocol: string; /** The agreed-upon version string. */ readonly version: string; /** The extensions active for this protocol session. */ readonly extensions: readonly string[]; } Source line 96 export function negotiateProtocol( offered: ProtocolOffer, supportedVersions: readonly string[] ): ProtocolAccept;