Forge documentation
Library referenceSwift

ForgeTool

Swift ForgeTool library product.

Swift ForgeTool library product.

Package contract

FieldValue
Languageswift
Source versionSwift package source snapshot
Manifestforge-swift/Package.swift
Source files4
EvidenceSource reference; registry publication and runtime conformance are separate checks

Import boundary

import ForgeTool

Use a source checkout or your verified private registry. Manifest coordinates identify the package; they do not establish that a public registry release exists.

Source reference

Download package reference JSON. Each original source file and generated declaration artifact has its own SHA-256 digest. Function bodies and constant values are omitted from downloads. These are source declaration inventories, not compiler-resolved rustdoc, TypeDoc, DocC, or Dokka output. Private modules can contain public declarations that are not reachable through the package boundary; consult the entry point before importing.

Approval.swift

Read declaration text · 10 declaration entries

public protocol ToolApprovalHandler: Sendable

public struct AutoApprovalHandler: ToolApprovalHandler, Sendable

public init()

public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval

public struct DenyAllHandler: ToolApprovalHandler, Sendable

public init(reason: String;

public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval

public struct PlatformOnlyHandler: ToolApprovalHandler, Sendable

public init()

public func approve(call: ToolCall, definition: ToolDefinition) async -> ToolApproval

Definition.swift

Read declaration text · 7 declaration entries

public struct ForgeToolBuilder: Sendable

public init(_ name: String)

public func description(_ desc: String) -> ForgeToolBuilder

public func parameters(_ schema: JsonSchema) -> ForgeToolBuilder

public func tier(_ tier: ToolTier) -> ForgeToolBuilder

public func handler(_ handler: @escaping ToolHandler) -> ForgeToolBuilder

public func build() -> RegisteredTool

Execution.swift

Read declaration text · 2 declaration entries

public func executeTool(
call: ToolCall,
registry: ToolRegistry,
approvalHandler: any ToolApprovalHandler;

public func executeTools(
calls: [ToolCall],
registry: ToolRegistry,
approvalHandler: any ToolApprovalHandler;

Registry.swift

Read declaration text · 14 declaration entries

public typealias ToolHandler;

public struct RegisteredTool: Sendable

public let definition: ToolDefinition
/// The handler that executes the tool.
public let handler: ToolHandler

public init(definition: ToolDefinition, handler: @escaping ToolHandler)

public let handler: ToolHandler

public init(definition: ToolDefinition, handler: @escaping ToolHandler)

public init(definition: ToolDefinition, handler: @escaping ToolHandler)

public final class ToolRegistry: @unchecked Sendable

public init()

public func register(definition: ToolDefinition, handler: @escaping ToolHandler) throws

public func get(_ name: String) -> RegisteredTool?

public func definitions() -> [ToolDefinition]

public func definitions(forTier tier: ToolTier) -> [ToolDefinition]

public var count: Int

public var isEmpty: Bool

public func remove(_ name: String) -> RegisteredTool?

Continue

On this page