{
  "name": "ForgeComm",
  "language": "swift",
  "version": "Swift package source snapshot",
  "description": "Swift ForgeComm library product.",
  "manifest": "forge-swift/Package.swift",
  "manifestSha256": "8579cd038904d9101db7b7714fa006f94144a6f951c0535512114bb00d4a3128",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/swift/ForgeComm",
  "features": {},
  "files": [
    {
      "path": "forge-swift/Sources/ForgeComm/AgentMessage.swift",
      "sha256": "e088d2adeb494f8164b1bb6555ea85e7299548b6dd57c95967b7e85cec900d7b",
      "artifactSha256": "e45092244ae41eb33141c63c65962856472db1bcef78af824c933834458626c3",
      "url": "/reference/source/forge-swift/Sources/ForgeComm/AgentMessage.swift.txt",
      "declarations": [
        {
          "name": "public struct AgentCommMessage: Codable, Sendable, Equatable",
          "line": 24,
          "signature": "public struct AgentCommMessage: Codable, Sendable, Equatable",
          "documentation": ""
        },
        {
          "name": "public let id: String",
          "line": 26,
          "signature": "public let id: String\n\n/// Correlation ID for linking related messages (request/response pairs).\n///\n/// When a message is a reply, `correlationId` matches the original\n/// message's `id`. This enables reliable request/response pairing\n/// across async transports.\npublic let correlationId: String?\n\n/// The message ID this message is a reply to.\n///\n/// Used in conjunction with `correlationId` for explicit reply chains.\npublic let replyTo: String?\n\n/// The sender agent's DID.\npublic let sender: String\n\n/// The recipient agent's DID.\npublic let recipient: String\n\n/// The communication protocol identifier.\n///\n/// Examples: `\"forge.delegation.v1\"`, `\"forge.heartbeat.v1\"`,\n/// `\"forge.task.v1\"`.\npublic let `protocol`: String\n",
          "documentation": ""
        },
        {
          "name": "public let correlationId: String?",
          "line": 33,
          "signature": "public let correlationId: String?\n\n/// The message ID this message is a reply to.\n///\n/// Used in conjunction with `correlationId` for explicit reply chains.\npublic let replyTo: String?\n\n/// The sender agent's DID.\npublic let sender: String\n\n/// The recipient agent's DID.\npublic let recipient: String\n\n/// The communication protocol identifier.\n///\n/// Examples: `\"forge.delegation.v1\"`, `\"forge.heartbeat.v1\"`,\n/// `\"forge.task.v1\"`.\npublic let `protocol`: String\n\n/// The message type within the protocol.\n///\n/// Examples: `\"request\"`, `\"response\"`, `\"notification\"`,\n/// `\"task_assign\"`, `\"task_result\"`.\npublic let messageType: String\n\n/// The message payload.",
          "documentation": ""
        },
        {
          "name": "public let replyTo: String?",
          "line": 38,
          "signature": "public let replyTo: String?\n\n/// The sender agent's DID.\npublic let sender: String\n\n/// The recipient agent's DID.\npublic let recipient: String\n\n/// The communication protocol identifier.\n///\n/// Examples: `\"forge.delegation.v1\"`, `\"forge.heartbeat.v1\"`,\n/// `\"forge.task.v1\"`.\npublic let `protocol`: String\n\n/// The message type within the protocol.\n///\n/// Examples: `\"request\"`, `\"response\"`, `\"notification\"`,\n/// `\"task_assign\"`, `\"task_result\"`.\npublic let messageType: String\n\n/// The message payload.\npublic let payload: JSONValue\n\n/// Optional Ed25519 signature over the message content.\n///\n/// When present, the signature covers the canonical JSON serialization",
          "documentation": ""
        },
        {
          "name": "public let sender: String",
          "line": 41,
          "signature": "public let sender: String\n\n/// The recipient agent's DID.\npublic let recipient: String\n\n/// The communication protocol identifier.\n///\n/// Examples: `\"forge.delegation.v1\"`, `\"forge.heartbeat.v1\"`,\n/// `\"forge.task.v1\"`.\npublic let `protocol`: String\n\n/// The message type within the protocol.\n///\n/// Examples: `\"request\"`, `\"response\"`, `\"notification\"`,\n/// `\"task_assign\"`, `\"task_result\"`.\npublic let messageType: String\n\n/// The message payload.\npublic let payload: JSONValue\n\n/// Optional Ed25519 signature over the message content.\n///\n/// When present, the signature covers the canonical JSON serialization\n/// of (id, correlationId, sender, recipient, protocol, messageType, payload).\n/// Verification uses the sender's public key from their OAS DID document.\npublic let signature: String?",
          "documentation": ""
        },
        {
          "name": "public let recipient: String",
          "line": 44,
          "signature": "public let recipient: String\n\n/// The communication protocol identifier.\n///\n/// Examples: `\"forge.delegation.v1\"`, `\"forge.heartbeat.v1\"`,\n/// `\"forge.task.v1\"`.\npublic let `protocol`: String\n\n/// The message type within the protocol.\n///\n/// Examples: `\"request\"`, `\"response\"`, `\"notification\"`,\n/// `\"task_assign\"`, `\"task_result\"`.\npublic let messageType: String\n\n/// The message payload.\npublic let payload: JSONValue\n\n/// Optional Ed25519 signature over the message content.\n///\n/// When present, the signature covers the canonical JSON serialization\n/// of (id, correlationId, sender, recipient, protocol, messageType, payload).\n/// Verification uses the sender's public key from their OAS DID document.\npublic let signature: String?\n\n/// When the message was created.\npublic let timestamp: Timestamp",
          "documentation": ""
        },
        {
          "name": "public let `protocol`: String",
          "line": 50,
          "signature": "public let `protocol`: String\n\n/// The message type within the protocol.\n///\n/// Examples: `\"request\"`, `\"response\"`, `\"notification\"`,\n/// `\"task_assign\"`, `\"task_result\"`.\npublic let messageType: String\n\n/// The message payload.\npublic let payload: JSONValue\n\n/// Optional Ed25519 signature over the message content.\n///\n/// When present, the signature covers the canonical JSON serialization\n/// of (id, correlationId, sender, recipient, protocol, messageType, payload).\n/// Verification uses the sender's public key from their OAS DID document.\npublic let signature: String?\n\n/// When the message was created.\npublic let timestamp: Timestamp\n\n/// Creates a new agent communication message.\n///\n/// - Parameters:\n///   - id: Unique message identifier. Defaults to a new UUID.\n///   - correlationId: Optional correlation ID for request/response pairing.",
          "documentation": ""
        },
        {
          "name": "public let messageType: String",
          "line": 56,
          "signature": "public let messageType: String\n\n/// The message payload.\npublic let payload: JSONValue\n\n/// Optional Ed25519 signature over the message content.\n///\n/// When present, the signature covers the canonical JSON serialization\n/// of (id, correlationId, sender, recipient, protocol, messageType, payload).\n/// Verification uses the sender's public key from their OAS DID document.\npublic let signature: String?\n\n/// When the message was created.\npublic let timestamp: Timestamp\n\n/// Creates a new agent communication message.\n///\n/// - Parameters:\n///   - id: Unique message identifier. Defaults to a new UUID.\n///   - correlationId: Optional correlation ID for request/response pairing.\n///   - replyTo: Optional message ID this message replies to.\n///   - sender: The sender agent's DID.\n///   - recipient: The recipient agent's DID.\n///   - protocol: The communication protocol identifier.\n///   - messageType: The message type within the protocol.\n///   - payload: The message payload.",
          "documentation": ""
        },
        {
          "name": "public let payload: JSONValue",
          "line": 59,
          "signature": "public let payload: JSONValue\n\n/// Optional Ed25519 signature over the message content.\n///\n/// When present, the signature covers the canonical JSON serialization\n/// of (id, correlationId, sender, recipient, protocol, messageType, payload).\n/// Verification uses the sender's public key from their OAS DID document.\npublic let signature: String?\n\n/// When the message was created.\npublic let timestamp: Timestamp\n\n/// Creates a new agent communication message.\n///\n/// - Parameters:\n///   - id: Unique message identifier. Defaults to a new UUID.\n///   - correlationId: Optional correlation ID for request/response pairing.\n///   - replyTo: Optional message ID this message replies to.\n///   - sender: The sender agent's DID.\n///   - recipient: The recipient agent's DID.\n///   - protocol: The communication protocol identifier.\n///   - messageType: The message type within the protocol.\n///   - payload: The message payload.\n///   - signature: Optional Ed25519 signature.\n///   - timestamp: Message creation time. Defaults to now.\npublic init(",
          "documentation": ""
        },
        {
          "name": "public let signature: String?",
          "line": 66,
          "signature": "public let signature: String?\n\n/// When the message was created.\npublic let timestamp: Timestamp\n\n/// Creates a new agent communication message.\n///\n/// - Parameters:\n///   - id: Unique message identifier. Defaults to a new UUID.\n///   - correlationId: Optional correlation ID for request/response pairing.\n///   - replyTo: Optional message ID this message replies to.\n///   - sender: The sender agent's DID.\n///   - recipient: The recipient agent's DID.\n///   - protocol: The communication protocol identifier.\n///   - messageType: The message type within the protocol.\n///   - payload: The message payload.\n///   - signature: Optional Ed25519 signature.\n///   - timestamp: Message creation time. Defaults to now.\npublic init(\nid: String;",
          "documentation": ""
        },
        {
          "name": "public let timestamp: Timestamp",
          "line": 69,
          "signature": "public let timestamp: Timestamp\n\n/// Creates a new agent communication message.\n///\n/// - Parameters:\n///   - id: Unique message identifier. Defaults to a new UUID.\n///   - correlationId: Optional correlation ID for request/response pairing.\n///   - replyTo: Optional message ID this message replies to.\n///   - sender: The sender agent's DID.\n///   - recipient: The recipient agent's DID.\n///   - protocol: The communication protocol identifier.\n///   - messageType: The message type within the protocol.\n///   - payload: The message payload.\n///   - signature: Optional Ed25519 signature.\n///   - timestamp: Message creation time. Defaults to now.\npublic init(\nid: String;",
          "documentation": ""
        },
        {
          "name": "public init(",
          "line": 84,
          "signature": "public init(\nid: String;",
          "documentation": ""
        },
        {
          "name": "public func reply(",
          "line": 119,
          "signature": "public func reply(\nmessageType: String,\npayload: JSONValue,\nsignature: String?;",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeComm/ChannelTransport.swift",
      "sha256": "146d33daeae7a2b3457f50b7848abdedfea30e282d001e3c8187f4ddf61ff082",
      "artifactSha256": "576c47af76982cce62d6ffa58d4fb0b5a00f2260a17a8b1bb7fbdc6e01029e49",
      "url": "/reference/source/forge-swift/Sources/ForgeComm/ChannelTransport.swift.txt",
      "declarations": [
        {
          "name": "public func createChannelPair() -> (ChannelTransport, ChannelTransport)",
          "line": 27,
          "signature": "public func createChannelPair() -> (ChannelTransport, ChannelTransport)",
          "documentation": ""
        },
        {
          "name": "public final class ChannelTransport: MessageTransport, @unchecked Sendable",
          "line": 40,
          "signature": "public final class ChannelTransport: MessageTransport, @unchecked Sendable",
          "documentation": ""
        },
        {
          "name": "public func send(_ message: AgentCommMessage) async throws",
          "line": 57,
          "signature": "public func send(_ message: AgentCommMessage) async throws",
          "documentation": ""
        },
        {
          "name": "public func receive() async throws -> AgentCommMessage?",
          "line": 72,
          "signature": "public func receive() async throws -> AgentCommMessage?",
          "documentation": ""
        },
        {
          "name": "public func close() async",
          "line": 84,
          "signature": "public func close() async",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeComm/CommError.swift",
      "sha256": "89104fd6dfe9249620b935c3fb7f3709e58526c0b9f50b914eddfa47da08195d",
      "artifactSha256": "622f5c5c4aefa4e8125fcaf01efb53dbf23f94587f608102e67cfd84e9f31b9f",
      "url": "/reference/source/forge-swift/Sources/ForgeComm/CommError.swift.txt",
      "declarations": [
        {
          "name": "public enum CommError: Error, Sendable, Equatable",
          "line": 19,
          "signature": "public enum CommError: Error, Sendable, Equatable",
          "documentation": ""
        },
        {
          "name": "public var errorDescription: String?",
          "line": 58,
          "signature": "public var errorDescription: String?",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeComm/MessageTransport.swift",
      "sha256": "5b24d5739ad5d938e87df0829359da6bb617a9a0106bac46917a254a37580672",
      "artifactSha256": "abf9793397d1f55dff2b92aeeb4b6deaff8fe4e4c9913174440dc39ebe8b3efa",
      "url": "/reference/source/forge-swift/Sources/ForgeComm/MessageTransport.swift.txt",
      "declarations": [
        {
          "name": "public protocol MessageTransport: Sendable",
          "line": 24,
          "signature": "public protocol MessageTransport: Sendable",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeComm/NoopTransport.swift",
      "sha256": "7136095dd4d4a1ff977946024ebb9ec22c3e9b8da0051ba377f067e4e073003f",
      "artifactSha256": "9b6c2fbeb7261e9a83230324ccb36eb2c2216fc18720a4a1033920dcfc4c92a6",
      "url": "/reference/source/forge-swift/Sources/ForgeComm/NoopTransport.swift.txt",
      "declarations": [
        {
          "name": "public final class NoopTransport: MessageTransport, @unchecked Sendable",
          "line": 24,
          "signature": "public final class NoopTransport: MessageTransport, @unchecked Sendable",
          "documentation": ""
        },
        {
          "name": "public init()",
          "line": 29,
          "signature": "public init()",
          "documentation": ""
        },
        {
          "name": "public func send(_ message: AgentCommMessage) async throws",
          "line": 35,
          "signature": "public func send(_ message: AgentCommMessage) async throws",
          "documentation": ""
        },
        {
          "name": "public func receive() async throws -> AgentCommMessage?",
          "line": 46,
          "signature": "public func receive() async throws -> AgentCommMessage?",
          "documentation": ""
        },
        {
          "name": "public func close() async",
          "line": 51,
          "signature": "public func close() async",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeComm/ProtocolNegotiation.swift",
      "sha256": "c61ee77620f6ce6f7d75d854c6ed73f8489b87fb8ee724aa17336b81c3cadadd",
      "artifactSha256": "5f4b3fd5adbf5e400e3e1be75a437fc0b89d21a70da8fd4e9c762a9e986cf28a",
      "url": "/reference/source/forge-swift/Sources/ForgeComm/ProtocolNegotiation.swift.txt",
      "declarations": [
        {
          "name": "public struct ProtocolOffer: Codable, Sendable, Equatable",
          "line": 21,
          "signature": "public struct ProtocolOffer: Codable, Sendable, Equatable",
          "documentation": ""
        },
        {
          "name": "public let offererDid: String",
          "line": 23,
          "signature": "public let offererDid: String\n/// The list of supported protocol identifiers, in preference order.\npublic let protocols: [String]\n/// When the offer was created.\npublic let timestamp: Timestamp\n\n/// Creates a new protocol offer.\n///\n/// - Parameters:\n///   - offererDid: The offering agent's DID.\n///   - protocols: Supported protocol identifiers in preference order.\n///   - timestamp: Offer creation time. Defaults to now.\npublic init(\noffererDid: String,\nprotocols: [String],\ntimestamp: Timestamp;",
          "documentation": ""
        },
        {
          "name": "public let protocols: [String]",
          "line": 25,
          "signature": "public let protocols: [String]\n/// When the offer was created.\npublic let timestamp: Timestamp\n\n/// Creates a new protocol offer.\n///\n/// - Parameters:\n///   - offererDid: The offering agent's DID.\n///   - protocols: Supported protocol identifiers in preference order.\n///   - timestamp: Offer creation time. Defaults to now.\npublic init(\noffererDid: String,\nprotocols: [String],\ntimestamp: Timestamp;",
          "documentation": ""
        },
        {
          "name": "public let timestamp: Timestamp",
          "line": 27,
          "signature": "public let timestamp: Timestamp\n\n/// Creates a new protocol offer.\n///\n/// - Parameters:\n///   - offererDid: The offering agent's DID.\n///   - protocols: Supported protocol identifiers in preference order.\n///   - timestamp: Offer creation time. Defaults to now.\npublic init(\noffererDid: String,\nprotocols: [String],\ntimestamp: Timestamp;",
          "documentation": ""
        },
        {
          "name": "public init(",
          "line": 35,
          "signature": "public init(\noffererDid: String,\nprotocols: [String],\ntimestamp: Timestamp;",
          "documentation": ""
        },
        {
          "name": "public struct ProtocolAccept: Codable, Sendable, Equatable",
          "line": 51,
          "signature": "public struct ProtocolAccept: Codable, Sendable, Equatable",
          "documentation": ""
        },
        {
          "name": "public let accepterDid: String",
          "line": 53,
          "signature": "public let accepterDid: String\n/// The selected protocol identifier.\npublic let selectedProtocol: String\n/// When the acceptance was created.\npublic let timestamp: Timestamp\n\n/// Creates a new protocol acceptance.\n///\n/// - Parameters:\n///   - accepterDid: The accepting agent's DID.\n///   - selectedProtocol: The selected protocol identifier.\n///   - timestamp: Acceptance creation time. Defaults to now.\npublic init(\naccepterDid: String,\nselectedProtocol: String,\ntimestamp: Timestamp;",
          "documentation": ""
        },
        {
          "name": "public let selectedProtocol: String",
          "line": 55,
          "signature": "public let selectedProtocol: String\n/// When the acceptance was created.\npublic let timestamp: Timestamp\n\n/// Creates a new protocol acceptance.\n///\n/// - Parameters:\n///   - accepterDid: The accepting agent's DID.\n///   - selectedProtocol: The selected protocol identifier.\n///   - timestamp: Acceptance creation time. Defaults to now.\npublic init(\naccepterDid: String,\nselectedProtocol: String,\ntimestamp: Timestamp;",
          "documentation": ""
        },
        {
          "name": "public let timestamp: Timestamp",
          "line": 57,
          "signature": "public let timestamp: Timestamp\n\n/// Creates a new protocol acceptance.\n///\n/// - Parameters:\n///   - accepterDid: The accepting agent's DID.\n///   - selectedProtocol: The selected protocol identifier.\n///   - timestamp: Acceptance creation time. Defaults to now.\npublic init(\naccepterDid: String,\nselectedProtocol: String,\ntimestamp: Timestamp;",
          "documentation": ""
        },
        {
          "name": "public init(",
          "line": 65,
          "signature": "public init(\naccepterDid: String,\nselectedProtocol: String,\ntimestamp: Timestamp;",
          "documentation": ""
        },
        {
          "name": "public func negotiateProtocol(",
          "line": 89,
          "signature": "public func negotiateProtocol(\noffer: ProtocolOffer,\nsupportedProtocols: [String],\nresponderDid: String\n) throws -> ProtocolAccept",
          "documentation": ""
        }
      ]
    }
  ]
}
