package api
type NewFuncRequest struct {
Name string `json:"name"` // no need to be unique
JsCode string `json:"js_code,omitempty"` // LLM2 must be nil
LLM2 *LLMFunc `json:"llm2,omitempty"` // JSCode must be ""
}
type NewFuncResponse struct {
Name string `json:"name"`
DateCreated string `json:"date_created"` // RFC8601 with millis
}
type DeleteFuncRequest struct {
Name string `json:"name"`
}
type DeleteFuncResponse struct {
}
type FuncVersion struct {
// Hash is the globally unique ID of this immutable object.
Hash string `json:"hash"`
// Date is the time of creation, according to the server's clock.
Date string `json:"date"`
// JS is JavaScript code that implements this function.
JS string `json:"js,omitempty"`
// LLM is the old "provider:model" string. Deprecated.
LLM string `json:"llm,omitempty"`
// LLM2 confugures where an how the LLM is run.
LLM2 *LLMFunc `json:"llm2,omitempty"`
}
type LLMFunc struct {
// Provider is "openai", "anthropic", "fireworks", etc.
Provider string `json:"provider"`
// Model is the provider-assigned name of the LLM.
Model string `json:"model"`
CanSeeImages bool `json:"can_see_images"`
CanHaveSystemPromps bool `json:"can_have_system_prompts"`
CanUseTools bool `json:"can_use_tools"`
}
type Func struct {
Name string `json:"name"`
Versions []FuncVersion `json:"versions"`
}
type ListFuncsResponse struct {
Funcs []Func `json:"funcs"`
}