Add OAuth2/OpenID Connect authorization server
Implement a full OAuth2 2.0 and OpenID Connect 1.0 authorization server with support for authorization code flow (with PKCE), refresh token rotation, device authorization grant, dynamic client registration, token introspection, and token revocation. Includes database schema, coredata layer, service logic, HTTP handlers, OIDC discovery endpoint, and JWKS publishing. Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
// Code generated by genmodels; DO NOT EDIT.
|
||||
// Source: https://openrouter.ai/api/v1/models
|
||||
// Generated: 2026-04-13T15:17:27Z
|
||||
// Generated: 2026-04-15T06:30:41Z
|
||||
|
||||
package llm
|
||||
|
||||
@@ -62,7 +62,7 @@ var generatedModels = map[string]ModelDefinition{
|
||||
"google/gemma-4-26b-a4b-it": {
|
||||
Name: "Google: Gemma 4 26B A4B ",
|
||||
ContextLength: 262144,
|
||||
MaxOutputTokens: 262144,
|
||||
MaxOutputTokens: 0,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
@@ -102,7 +102,7 @@ var generatedModels = map[string]ModelDefinition{
|
||||
"google/gemma-4-31b-it": {
|
||||
Name: "Google: Gemma 4 31B",
|
||||
ContextLength: 262144,
|
||||
MaxOutputTokens: 131072,
|
||||
MaxOutputTokens: 0,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
@@ -2939,46 +2939,6 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"meta-llama/llama-3.2-1b-instruct": {
|
||||
Name: "Meta: Llama 3.2 1B Instruct",
|
||||
ContextLength: 60000,
|
||||
MaxOutputTokens: 0,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: true,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: false,
|
||||
Seed: true,
|
||||
MaxTokens: true,
|
||||
ToolChoice: false,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: false,
|
||||
StructuredOutputs: false,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"meta-llama/llama-3.2-11b-vision-instruct": {
|
||||
Name: "Meta: Llama 3.2 11B Vision Instruct",
|
||||
ContextLength: 131072,
|
||||
MaxOutputTokens: 16384,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: true,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: true,
|
||||
Seed: true,
|
||||
MaxTokens: true,
|
||||
ToolChoice: false,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: true,
|
||||
StructuredOutputs: false,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"meta-llama/llama-3.2-3b-instruct:free": {
|
||||
Name: "Meta: Llama 3.2 3B Instruct (free)",
|
||||
ContextLength: 131072,
|
||||
@@ -3019,6 +2979,46 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"meta-llama/llama-3.2-1b-instruct": {
|
||||
Name: "Meta: Llama 3.2 1B Instruct",
|
||||
ContextLength: 60000,
|
||||
MaxOutputTokens: 0,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: true,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: false,
|
||||
Seed: true,
|
||||
MaxTokens: true,
|
||||
ToolChoice: false,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: false,
|
||||
StructuredOutputs: false,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"meta-llama/llama-3.2-11b-vision-instruct": {
|
||||
Name: "Meta: Llama 3.2 11B Vision Instruct",
|
||||
ContextLength: 131072,
|
||||
MaxOutputTokens: 16384,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: true,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: true,
|
||||
Seed: true,
|
||||
MaxTokens: true,
|
||||
ToolChoice: false,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: true,
|
||||
StructuredOutputs: false,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-4o-2024-08-06": {
|
||||
Name: "OpenAI: GPT-4o (2024-08-06)",
|
||||
ContextLength: 128000,
|
||||
@@ -3159,26 +3159,6 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"google/gemma-2-9b-it": {
|
||||
Name: "Google: Gemma 2 9B",
|
||||
ContextLength: 8192,
|
||||
MaxOutputTokens: 0,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: true,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: false,
|
||||
Seed: false,
|
||||
MaxTokens: true,
|
||||
ToolChoice: false,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: false,
|
||||
StructuredOutputs: false,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-4o-2024-05-13": {
|
||||
Name: "OpenAI: GPT-4o (2024-05-13)",
|
||||
ContextLength: 128000,
|
||||
@@ -3359,9 +3339,9 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-3.5-turbo-0613": {
|
||||
Name: "OpenAI: GPT-3.5 Turbo (older v0613)",
|
||||
ContextLength: 4095,
|
||||
"openai/gpt-4-turbo-preview": {
|
||||
Name: "OpenAI: GPT-4 Turbo Preview",
|
||||
ContextLength: 128000,
|
||||
MaxOutputTokens: 4096,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
@@ -3379,9 +3359,9 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-4-turbo-preview": {
|
||||
Name: "OpenAI: GPT-4 Turbo Preview",
|
||||
ContextLength: 128000,
|
||||
"openai/gpt-3.5-turbo-0613": {
|
||||
Name: "OpenAI: GPT-3.5 Turbo (older v0613)",
|
||||
ContextLength: 4095,
|
||||
MaxOutputTokens: 4096,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
@@ -3439,26 +3419,6 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"mistralai/mistral-7b-instruct-v0.1": {
|
||||
Name: "Mistral: Mistral 7B Instruct v0.1",
|
||||
ContextLength: 2824,
|
||||
MaxOutputTokens: 0,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: true,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: false,
|
||||
Seed: true,
|
||||
MaxTokens: true,
|
||||
ToolChoice: false,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: false,
|
||||
StructuredOutputs: false,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-3.5-turbo-instruct": {
|
||||
Name: "OpenAI: GPT-3.5 Turbo Instruct",
|
||||
ContextLength: 4095,
|
||||
@@ -3479,6 +3439,26 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"mistralai/mistral-7b-instruct-v0.1": {
|
||||
Name: "Mistral: Mistral 7B Instruct v0.1",
|
||||
ContextLength: 2824,
|
||||
MaxOutputTokens: 0,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: true,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: false,
|
||||
Seed: true,
|
||||
MaxTokens: true,
|
||||
ToolChoice: false,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: false,
|
||||
StructuredOutputs: false,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-3.5-turbo-16k": {
|
||||
Name: "OpenAI: GPT-3.5 Turbo 16k",
|
||||
ContextLength: 16385,
|
||||
@@ -3519,26 +3499,6 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-3.5-turbo": {
|
||||
Name: "OpenAI: GPT-3.5 Turbo",
|
||||
ContextLength: 16385,
|
||||
MaxOutputTokens: 4096,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: false,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: true,
|
||||
Seed: true,
|
||||
MaxTokens: true,
|
||||
ToolChoice: true,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: true,
|
||||
StructuredOutputs: true,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-4": {
|
||||
Name: "OpenAI: GPT-4",
|
||||
ContextLength: 8191,
|
||||
@@ -3559,4 +3519,24 @@ var generatedModels = map[string]ModelDefinition{
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
"openai/gpt-3.5-turbo": {
|
||||
Name: "OpenAI: GPT-3.5 Turbo",
|
||||
ContextLength: 16385,
|
||||
MaxOutputTokens: 4096,
|
||||
Supports: SupportedParameters{
|
||||
Temperature: true,
|
||||
TopP: true,
|
||||
TopK: false,
|
||||
FrequencyPenalty: true,
|
||||
PresencePenalty: true,
|
||||
Stop: true,
|
||||
Seed: true,
|
||||
MaxTokens: true,
|
||||
ToolChoice: true,
|
||||
ParallelToolCalls: false,
|
||||
ResponseFormat: true,
|
||||
StructuredOutputs: true,
|
||||
Reasoning: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user