Public declaration syntax from forge-go/core/tool.go Original source SHA-256: 318aa768e82b58d97de7d95dda0a64da41813c9ddd51220862de819bf1a2c3aa Function bodies and constant values are omitted. This is not the complete implementation. Source line 10 type ToolTier int const ( // ToolTierPlatform (Tier 1) tools run inside the sandbox and are always // available without authorization. Examples: clock, crypto, logging, random. ToolTierPlatform ToolTier; Source line 28 func (t ToolTier) String() string Source line 46 func (t ToolTier) RequiresAuthorization() bool Source line 51 func (t ToolTier) MarshalJSON() ([]byte, error) Source line 56 func (t *ToolTier) UnmarshalJSON(data []byte) error Source line 81 type ToolDefinition struct Source line 106 func NewToolDefinition(name, description string, tier ToolTier, parameters *JsonSchema) (ToolDefinition, error) Source line 125 type ToolCall struct Source line 140 func (tc ToolCall) ParseArguments(target any) error Source line 152 type ToolResult struct Source line 164 func NewToolResult(callID, content string) ToolResult Source line 173 func NewToolResultError(callID, errMsg string) ToolResult Source line 186 type ToolApproval struct Source line 199 type ApprovalDecision int const ( // ApprovalApprove allows the tool call to proceed as-is. ApprovalApprove ApprovalDecision; Source line 211 func (d ApprovalDecision) String() string Source line 225 func Approve() ToolApproval Source line 230 func Deny(reason string) ToolApproval Source line 235 func Modify(modifiedArgs string) ToolApproval Source line 246 type ToolApprovalHandler func(call ToolCall, def ToolDefinition) ToolApproval