{
  "name": "github.com/l1fe-labs/forge-go/tool",
  "language": "go",
  "version": "module source snapshot",
  "description": "Go tool package.",
  "manifest": "forge-go/go.mod",
  "manifestSha256": "dee97864d07a64c4c93c79104137d155f0cbae6962945f3b56ceb7744a03cc82",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/go/tool",
  "features": {},
  "files": [
    {
      "path": "forge-go/tool/approval.go",
      "sha256": "cfdd204ea12bfec8e881ad5a8d8281f74bda92c1c2d58eb61296f1425750c230",
      "artifactSha256": "f6a046a0c33e735ea8df173678890c282304e0aa468be85ea9c6529a55c44c4a",
      "url": "/reference/source/forge-go/tool/approval.go.txt",
      "declarations": [
        {
          "name": "func AutoApproveHandler(_ core.ToolCall, _ core.ToolDefinition) core.ToolApproval",
          "line": 7,
          "signature": "func AutoApproveHandler(_ core.ToolCall, _ core.ToolDefinition) core.ToolApproval",
          "documentation": ""
        },
        {
          "name": "func DenyAllHandler(_ core.ToolCall, _ core.ToolDefinition) core.ToolApproval",
          "line": 13,
          "signature": "func DenyAllHandler(_ core.ToolCall, _ core.ToolDefinition) core.ToolApproval",
          "documentation": ""
        },
        {
          "name": "func TierBasedHandler(externalApprover core.ToolApprovalHandler) core.ToolApprovalHandler",
          "line": 25,
          "signature": "func TierBasedHandler(externalApprover core.ToolApprovalHandler) core.ToolApprovalHandler",
          "documentation": ""
        },
        {
          "name": "func AllowListHandler(allowed map[string]bool) core.ToolApprovalHandler",
          "line": 43,
          "signature": "func AllowListHandler(allowed map[string]bool) core.ToolApprovalHandler",
          "documentation": ""
        },
        {
          "name": "func DenyListHandler(denied map[string]bool) core.ToolApprovalHandler",
          "line": 54,
          "signature": "func DenyListHandler(denied map[string]bool) core.ToolApprovalHandler",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/tool/definition.go",
      "sha256": "e7def1796247ab4b0733ea352eb40d8eef8495f3b03b805c3b1f5ea46183f4d1",
      "artifactSha256": "f14982d0f74f5c1ef019f7e4a33b6429b3db859301d624617b842ef6042f19c9",
      "url": "/reference/source/forge-go/tool/definition.go.txt",
      "declarations": [
        {
          "name": "type DefinitionBuilder struct",
          "line": 8,
          "signature": "type DefinitionBuilder struct",
          "documentation": ""
        },
        {
          "name": "func NewDefinitionBuilder(name string) *DefinitionBuilder",
          "line": 16,
          "signature": "func NewDefinitionBuilder(name string) *DefinitionBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *DefinitionBuilder) Description(desc string) *DefinitionBuilder",
          "line": 21,
          "signature": "func (b *DefinitionBuilder) Description(desc string) *DefinitionBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *DefinitionBuilder) Tier(tier core.ToolTier) *DefinitionBuilder",
          "line": 27,
          "signature": "func (b *DefinitionBuilder) Tier(tier core.ToolTier) *DefinitionBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *DefinitionBuilder) Parameters(schema *core.JsonSchema) *DefinitionBuilder",
          "line": 33,
          "signature": "func (b *DefinitionBuilder) Parameters(schema *core.JsonSchema) *DefinitionBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *DefinitionBuilder) Build() (core.ToolDefinition, error)",
          "line": 39,
          "signature": "func (b *DefinitionBuilder) Build() (core.ToolDefinition, error)",
          "documentation": ""
        },
        {
          "name": "func (b *DefinitionBuilder) MustBuild() core.ToolDefinition",
          "line": 45,
          "signature": "func (b *DefinitionBuilder) MustBuild() core.ToolDefinition",
          "documentation": ""
        },
        {
          "name": "func PlatformTool(name, description string, params *core.JsonSchema) (core.ToolDefinition, error)",
          "line": 57,
          "signature": "func PlatformTool(name, description string, params *core.JsonSchema) (core.ToolDefinition, error)",
          "documentation": ""
        },
        {
          "name": "func ExternalTool(name, description string, params *core.JsonSchema) (core.ToolDefinition, error)",
          "line": 65,
          "signature": "func ExternalTool(name, description string, params *core.JsonSchema) (core.ToolDefinition, error)",
          "documentation": ""
        },
        {
          "name": "func EmbeddedTool(name, description string, params *core.JsonSchema) (core.ToolDefinition, error)",
          "line": 73,
          "signature": "func EmbeddedTool(name, description string, params *core.JsonSchema) (core.ToolDefinition, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/tool/execution.go",
      "sha256": "8ef0418c43a6866f27386a1d3ecab07b1430eee45c1aa1c74ed16fe43223af66",
      "artifactSha256": "811e8392427b2ef41901a8e27d186ae6de7fcc19e3175e0b77bc10f2ec2c52c0",
      "url": "/reference/source/forge-go/tool/execution.go.txt",
      "declarations": [
        {
          "name": "type ExecutionResult struct",
          "line": 11,
          "signature": "type ExecutionResult struct",
          "documentation": ""
        },
        {
          "name": "func ExecuteTool(ctx context.Context, registry *Registry, call core.ToolCall, approvalHandler core.ToolApprovalHandler) (*ExecutionResult, error)",
          "line": 32,
          "signature": "func ExecuteTool(ctx context.Context, registry *Registry, call core.ToolCall, approvalHandler core.ToolApprovalHandler) (*ExecutionResult, error)",
          "documentation": ""
        },
        {
          "name": "func ExecuteToolCalls(ctx context.Context, registry *Registry, calls []core.ToolCall, approvalHandler core.ToolApprovalHandler) []core.ToolResult",
          "line": 96,
          "signature": "func ExecuteToolCalls(ctx context.Context, registry *Registry, calls []core.ToolCall, approvalHandler core.ToolApprovalHandler) []core.ToolResult",
          "documentation": ""
        },
        {
          "name": "func BuildToolResultMessage(results []core.ToolResult) core.ModelMessage",
          "line": 112,
          "signature": "func BuildToolResultMessage(results []core.ToolResult) core.ModelMessage",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/tool/registry.go",
      "sha256": "0a23844aabaf7dbffba7ecc80680577c053bf6d17ef5a45289fd544cde4bdf61",
      "artifactSha256": "011d9faa5ed33fe8cf24424d4e7f846b219ff918f7243ad2454e24f6b29c3991",
      "url": "/reference/source/forge-go/tool/registry.go.txt",
      "declarations": [
        {
          "name": "type Handler func(arguments string) (string, error)",
          "line": 17,
          "signature": "type Handler func(arguments string) (string, error)\n\n// Registration bundles a tool definition with its execution handler.\ntype Registration struct",
          "documentation": ""
        },
        {
          "name": "type Registration struct",
          "line": 20,
          "signature": "type Registration struct",
          "documentation": ""
        },
        {
          "name": "type Registry struct",
          "line": 33,
          "signature": "type Registry struct",
          "documentation": ""
        },
        {
          "name": "func NewRegistry() *Registry",
          "line": 39,
          "signature": "func NewRegistry() *Registry",
          "documentation": ""
        },
        {
          "name": "func (r *Registry) Register(def core.ToolDefinition, handler Handler) error",
          "line": 49,
          "signature": "func (r *Registry) Register(def core.ToolDefinition, handler Handler) error",
          "documentation": ""
        },
        {
          "name": "func (r *Registry) Unregister(name string) bool",
          "line": 65,
          "signature": "func (r *Registry) Unregister(name string) bool",
          "documentation": ""
        },
        {
          "name": "func (r *Registry) Get(name string) (Registration, bool)",
          "line": 77,
          "signature": "func (r *Registry) Get(name string) (Registration, bool)",
          "documentation": ""
        },
        {
          "name": "func (r *Registry) Has(name string) bool",
          "line": 85,
          "signature": "func (r *Registry) Has(name string) bool",
          "documentation": ""
        },
        {
          "name": "func (r *Registry) Definitions() []core.ToolDefinition",
          "line": 94,
          "signature": "func (r *Registry) Definitions() []core.ToolDefinition",
          "documentation": ""
        },
        {
          "name": "func (r *Registry) Names() []string",
          "line": 105,
          "signature": "func (r *Registry) Names() []string",
          "documentation": ""
        },
        {
          "name": "func (r *Registry) Count() int",
          "line": 116,
          "signature": "func (r *Registry) Count() int",
          "documentation": ""
        }
      ]
    }
  ]
}
