119 lines
2.6 KiB
Go
119 lines
2.6 KiB
Go
package toolconv
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/QuantumNous/new-api/relaykit/types"
|
|
)
|
|
|
|
type Kind string
|
|
|
|
const (
|
|
KindFunction Kind = "function"
|
|
KindWebSearch Kind = "web_search"
|
|
KindFileSearch Kind = "file_search"
|
|
KindWebFetch Kind = "web_fetch"
|
|
KindCodeExecution Kind = "code_execution"
|
|
KindComputerUse Kind = "computer_use"
|
|
KindURLContext Kind = "url_context"
|
|
KindMCP Kind = "mcp"
|
|
KindImage Kind = "image_generation"
|
|
KindNative Kind = "native"
|
|
)
|
|
|
|
type Execution string
|
|
|
|
const (
|
|
ExecutionClient Execution = "client"
|
|
ExecutionServer Execution = "server"
|
|
)
|
|
|
|
type Function struct {
|
|
Name string
|
|
Description string
|
|
Parameters any
|
|
Strict *bool
|
|
}
|
|
|
|
type ApproximateLocation struct {
|
|
City string
|
|
Region string
|
|
Country string
|
|
Timezone string
|
|
}
|
|
|
|
type WebSearch struct {
|
|
Location *ApproximateLocation
|
|
AllowedDomains []string
|
|
BlockedDomains []string
|
|
SearchContextSize string
|
|
MaxUses *int
|
|
AllowedCallers []string
|
|
ResponseInclusion string
|
|
ExternalWebAccess *bool
|
|
ReturnTokenBudget json.RawMessage
|
|
}
|
|
|
|
type Definition struct {
|
|
Kind Kind
|
|
Execution Execution
|
|
NativeType string
|
|
Name string
|
|
Function *Function
|
|
WebSearch *WebSearch
|
|
Raw json.RawMessage
|
|
Group int
|
|
}
|
|
|
|
type ChoiceMode string
|
|
|
|
const (
|
|
ChoiceAuto ChoiceMode = "auto"
|
|
ChoiceNone ChoiceMode = "none"
|
|
ChoiceRequired ChoiceMode = "required"
|
|
ChoiceNamed ChoiceMode = "named"
|
|
ChoiceOpaque ChoiceMode = "opaque"
|
|
)
|
|
|
|
type Choice struct {
|
|
Mode ChoiceMode
|
|
Kind Kind
|
|
Name string
|
|
AllowedNames []string
|
|
NativeType string
|
|
DisableParallelToolUse *bool
|
|
Raw json.RawMessage
|
|
}
|
|
|
|
type Set struct {
|
|
Source types.RelayFormat
|
|
Definitions []Definition
|
|
Choice *Choice
|
|
ParallelAllowed *bool
|
|
NativeToolConfig json.RawMessage
|
|
History []HostedHistoryItem
|
|
}
|
|
|
|
func (s Set) Empty() bool {
|
|
return len(s.Definitions) == 0 && s.Choice == nil && s.ParallelAllowed == nil && len(s.NativeToolConfig) == 0 && len(s.History) == 0
|
|
}
|
|
|
|
type HostedHistoryItem struct {
|
|
Kind Kind
|
|
NativeType string
|
|
Role string
|
|
MessageIndex int
|
|
BlockIndex int
|
|
MessageHasRegular bool
|
|
Sequence int
|
|
ID string
|
|
CallID string
|
|
Name string
|
|
ServerName string
|
|
Status string
|
|
Action json.RawMessage
|
|
Results json.RawMessage
|
|
Caller json.RawMessage
|
|
Raw json.RawMessage
|
|
}
|