{
  "name": "ForgeTool",
  "language": "swift",
  "version": "Swift package source snapshot",
  "description": "Swift ForgeTool library product.",
  "manifest": "forge-swift/Package.swift",
  "manifestSha256": "8579cd038904d9101db7b7714fa006f94144a6f951c0535512114bb00d4a3128",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/swift/ForgeTool",
  "features": {},
  "files": [
    {
      "path": "forge-swift/Sources/ForgeTool/Approval.swift",
      "sha256": "2cd6183d1ad370d357fbb2c0ddaa13e1d67370beb5cc9715b573f951ed58d534",
      "artifactSha256": "875498d9027cc4027801804a42920c7f26426bc90afb2a3898791ff05a903a96",
      "url": "/reference/source/forge-swift/Sources/ForgeTool/Approval.swift.txt",
      "declarations": [
        {
          "name": "public protocol ToolApprovalHandler: Sendable",
          "line": 19,
          "signature": "public protocol ToolApprovalHandler: Sendable",
          "documentation": ""
        },
        {
          "name": "public struct AutoApprovalHandler: ToolApprovalHandler, Sendable",
          "line": 33,
          "signature": "public struct AutoApprovalHandler: ToolApprovalHandler, Sendable",
          "documentation": ""
        },
        {
          "name": "public init()",
          "line": 34,
          "signature": "public init()",
          "documentation": ""
        },
        {
          "name": "public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval",
          "line": 36,
          "signature": "public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval",
          "documentation": ""
        },
        {
          "name": "public struct DenyAllHandler: ToolApprovalHandler, Sendable",
          "line": 44,
          "signature": "public struct DenyAllHandler: ToolApprovalHandler, Sendable",
          "documentation": ""
        },
        {
          "name": "public init(reason: String;",
          "line": 50,
          "signature": "public init(reason: String;",
          "documentation": ""
        },
        {
          "name": "public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval",
          "line": 54,
          "signature": "public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval",
          "documentation": ""
        },
        {
          "name": "public struct PlatformOnlyHandler: ToolApprovalHandler, Sendable",
          "line": 62,
          "signature": "public struct PlatformOnlyHandler: ToolApprovalHandler, Sendable",
          "documentation": ""
        },
        {
          "name": "public init()",
          "line": 63,
          "signature": "public init()",
          "documentation": ""
        },
        {
          "name": "public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval",
          "line": 65,
          "signature": "public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeTool/Definition.swift",
      "sha256": "8fac770dc3026bc7abd5e1e87f847a83571ff87db67e79bb29e6eb89270c99c3",
      "artifactSha256": "7df35ba2c1b4be95d85714f393dc19d9cb89960db2810eae9075a0e0815979ab",
      "url": "/reference/source/forge-swift/Sources/ForgeTool/Definition.swift.txt",
      "declarations": [
        {
          "name": "public struct ForgeToolBuilder: Sendable",
          "line": 28,
          "signature": "public struct ForgeToolBuilder: Sendable",
          "documentation": ""
        },
        {
          "name": "public init(_ name: String)",
          "line": 38,
          "signature": "public init(_ name: String)",
          "documentation": ""
        },
        {
          "name": "public func description(_ desc: String) -> ForgeToolBuilder",
          "line": 46,
          "signature": "public func description(_ desc: String) -> ForgeToolBuilder",
          "documentation": ""
        },
        {
          "name": "public func parameters(_ schema: JsonSchema) -> ForgeToolBuilder",
          "line": 56,
          "signature": "public func parameters(_ schema: JsonSchema) -> ForgeToolBuilder",
          "documentation": ""
        },
        {
          "name": "public func tier(_ tier: ToolTier) -> ForgeToolBuilder",
          "line": 66,
          "signature": "public func tier(_ tier: ToolTier) -> ForgeToolBuilder",
          "documentation": ""
        },
        {
          "name": "public func handler(_ handler: @escaping ToolHandler) -> ForgeToolBuilder",
          "line": 76,
          "signature": "public func handler(_ handler: @escaping ToolHandler) -> ForgeToolBuilder",
          "documentation": ""
        },
        {
          "name": "public func build() -> RegisteredTool",
          "line": 86,
          "signature": "public func build() -> RegisteredTool",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeTool/Execution.swift",
      "sha256": "8b5d5351a07d0632e9067e89cbb6433768fdaee54ff3d24a3d95a27f6642459c",
      "artifactSha256": "f052d8a97d86220d42d716bdedce12af535518ca42094bfdc9f39673c052ff25",
      "url": "/reference/source/forge-swift/Sources/ForgeTool/Execution.swift.txt",
      "declarations": [
        {
          "name": "public func executeTool(",
          "line": 30,
          "signature": "public func executeTool(\ncall: ToolCall,\nregistry: ToolRegistry,\napprovalHandler: any ToolApprovalHandler;",
          "documentation": ""
        },
        {
          "name": "public func executeTools(",
          "line": 99,
          "signature": "public func executeTools(\ncalls: [ToolCall],\nregistry: ToolRegistry,\napprovalHandler: any ToolApprovalHandler;",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-swift/Sources/ForgeTool/Registry.swift",
      "sha256": "80d32a25ee49ab2a0702efe3859e7db2c50fdfbfd49966331fb1824ea791f543",
      "artifactSha256": "e08df9c45ee12f70137e05733308e663b4b11f4a190217b146c261079647680f",
      "url": "/reference/source/forge-swift/Sources/ForgeTool/Registry.swift.txt",
      "declarations": [
        {
          "name": "public typealias ToolHandler;",
          "line": 15,
          "signature": "public typealias ToolHandler;",
          "documentation": ""
        },
        {
          "name": "public struct RegisteredTool: Sendable",
          "line": 18,
          "signature": "public struct RegisteredTool: Sendable",
          "documentation": ""
        },
        {
          "name": "public let definition: ToolDefinition",
          "line": 20,
          "signature": "public let definition: ToolDefinition\n/// The handler that executes the tool.\npublic let handler: ToolHandler\n\npublic init(definition: ToolDefinition, handler: @escaping ToolHandler)",
          "documentation": ""
        },
        {
          "name": "public let handler: ToolHandler",
          "line": 22,
          "signature": "public let handler: ToolHandler\n\npublic init(definition: ToolDefinition, handler: @escaping ToolHandler)",
          "documentation": ""
        },
        {
          "name": "public init(definition: ToolDefinition, handler: @escaping ToolHandler)",
          "line": 24,
          "signature": "public init(definition: ToolDefinition, handler: @escaping ToolHandler)",
          "documentation": ""
        },
        {
          "name": "public final class ToolRegistry: @unchecked Sendable",
          "line": 36,
          "signature": "public final class ToolRegistry: @unchecked Sendable",
          "documentation": ""
        },
        {
          "name": "public init()",
          "line": 41,
          "signature": "public init()",
          "documentation": ""
        },
        {
          "name": "public func register(definition: ToolDefinition, handler: @escaping ToolHandler) throws",
          "line": 49,
          "signature": "public func register(definition: ToolDefinition, handler: @escaping ToolHandler) throws",
          "documentation": ""
        },
        {
          "name": "public func get(_ name: String) -> RegisteredTool?",
          "line": 62,
          "signature": "public func get(_ name: String) -> RegisteredTool?",
          "documentation": ""
        },
        {
          "name": "public func definitions() -> [ToolDefinition]",
          "line": 71,
          "signature": "public func definitions() -> [ToolDefinition]",
          "documentation": ""
        },
        {
          "name": "public func definitions(forTier tier: ToolTier) -> [ToolDefinition]",
          "line": 81,
          "signature": "public func definitions(forTier tier: ToolTier) -> [ToolDefinition]",
          "documentation": ""
        },
        {
          "name": "public var count: Int",
          "line": 90,
          "signature": "public var count: Int",
          "documentation": ""
        },
        {
          "name": "public var isEmpty: Bool",
          "line": 97,
          "signature": "public var isEmpty: Bool",
          "documentation": ""
        },
        {
          "name": "public func remove(_ name: String) -> RegisteredTool?",
          "line": 108,
          "signature": "public func remove(_ name: String) -> RegisteredTool?",
          "documentation": ""
        }
      ]
    }
  ]
}
