ollie/toolsrv/protocol/types.go

40 lines
1.1 KiB
Go

// types.go - Shared types for toolsrv
package protocol
import "encoding/json"
// ToolInfo describes a tool provided by a server.
type ToolInfo struct {
Server string
Name string
Description string
InputSchema json.RawMessage
Prompt string
Tier string
Scope string
OutputFormat string
Timeout int // default execution timeout; 0 = no timeout, -1 = use server default
}
// ToolResult is the structured result from a tool execution.
type ToolResult struct {
Content []ToolResultContent `json:"content"`
IsError bool `json:"isError,omitempty"`
}
// ToolResultContent is a single content item in a tool result.
type ToolResultContent struct {
Type string `json:"type"`
Text string `json:"text,omitempty"`
MediaType string `json:"mediaType,omitempty"`
Data string `json:"data,omitempty"`
}
// BypassRequest represents a bypass request from toolsrv.
type BypassRequest struct {
ID string `json:"id"`
Cmd string `json:"cmd"`
Cwd string `json:"cwd"`
Env map[string]string `json:"env,omitempty"`
}