mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-27 04:34:22 +01:00
integrate with models.dev
This commit is contained in:
@@ -401,10 +401,25 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/Provider.Info"
|
||||
}
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"providers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/Provider.Info"
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"providers",
|
||||
"default"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1080,13 +1095,9 @@
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"options": {
|
||||
"type": "object",
|
||||
"additionalProperties": {}
|
||||
},
|
||||
"models": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/Provider.Model"
|
||||
}
|
||||
}
|
||||
@@ -1106,6 +1117,12 @@
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"attachment": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"reasoning": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"cost": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -1129,24 +1146,27 @@
|
||||
"outputCached"
|
||||
]
|
||||
},
|
||||
"contextWindow": {
|
||||
"type": "number"
|
||||
},
|
||||
"maxOutputTokens": {
|
||||
"type": "number"
|
||||
},
|
||||
"attachment": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"reasoning": {
|
||||
"type": "boolean"
|
||||
"limit": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"context": {
|
||||
"type": "number"
|
||||
},
|
||||
"output": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"context",
|
||||
"output"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"attachment",
|
||||
"cost",
|
||||
"contextWindow",
|
||||
"attachment"
|
||||
"limit"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,26 +203,27 @@ type MessageToolInvocationToolResult struct {
|
||||
|
||||
// ProviderInfo defines model for Provider.Info.
|
||||
type ProviderInfo struct {
|
||||
Id string `json:"id"`
|
||||
Models []ProviderModel `json:"models"`
|
||||
Name string `json:"name"`
|
||||
Options *map[string]interface{} `json:"options,omitempty"`
|
||||
Id string `json:"id"`
|
||||
Models map[string]ProviderModel `json:"models"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// ProviderModel defines model for Provider.Model.
|
||||
type ProviderModel struct {
|
||||
Attachment bool `json:"attachment"`
|
||||
ContextWindow float32 `json:"contextWindow"`
|
||||
Cost struct {
|
||||
Attachment bool `json:"attachment"`
|
||||
Cost struct {
|
||||
Input float32 `json:"input"`
|
||||
InputCached float32 `json:"inputCached"`
|
||||
Output float32 `json:"output"`
|
||||
OutputCached float32 `json:"outputCached"`
|
||||
} `json:"cost"`
|
||||
Id string `json:"id"`
|
||||
MaxOutputTokens *float32 `json:"maxOutputTokens,omitempty"`
|
||||
Name *string `json:"name,omitempty"`
|
||||
Reasoning *bool `json:"reasoning,omitempty"`
|
||||
Id string `json:"id"`
|
||||
Limit struct {
|
||||
Context float32 `json:"context"`
|
||||
Output float32 `json:"output"`
|
||||
} `json:"limit"`
|
||||
Name *string `json:"name,omitempty"`
|
||||
Reasoning *bool `json:"reasoning,omitempty"`
|
||||
}
|
||||
|
||||
// PermissionInfo defines model for permission.info.
|
||||
@@ -1815,7 +1816,10 @@ func (r PostPathGetResponse) StatusCode() int {
|
||||
type PostProviderListResponse struct {
|
||||
Body []byte
|
||||
HTTPResponse *http.Response
|
||||
JSON200 *[]ProviderInfo
|
||||
JSON200 *struct {
|
||||
Default map[string]string `json:"default"`
|
||||
Providers []ProviderInfo `json:"providers"`
|
||||
}
|
||||
}
|
||||
|
||||
// Status returns HTTPResponse.Status
|
||||
@@ -2299,7 +2303,10 @@ func ParsePostProviderListResponse(rsp *http.Response) (*PostProviderListRespons
|
||||
|
||||
switch {
|
||||
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
||||
var dest []ProviderInfo
|
||||
var dest struct {
|
||||
Default map[string]string `json:"default"`
|
||||
Providers []ProviderInfo `json:"providers"`
|
||||
}
|
||||
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user