feat: add custom AI provider icons and instance-based model picker grouping (#27026)

This commit is contained in:
Danielle Maywood
2026-07-06 23:00:09 +01:00
committed by GitHub
parent 581f906947
commit d51762440b
53 changed files with 543 additions and 165 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ We track the following resources:
| <b>Resource<b> | | |
|-----------------------------------------------------------------|----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| AIGatewayKey<br><i>create, delete</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody> | <tr><td>created_at</td><td>false</td></tr><tr><td>hashed_secret</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>last_heartbeat_at</td><td>false</td></tr><tr><td>name</td><td>true</td></tr><tr><td>secret_prefix</td><td>true</td></tr></tbody></table> |
| AIProvider<br><i>create, write, delete</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody> | <tr><td>base_url</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>deleted</td><td>true</td></tr><tr><td>display_name</td><td>true</td></tr><tr><td>enabled</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>settings</td><td>true</td></tr><tr><td>settings_key_id</td><td>false</td></tr><tr><td>type</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr></tbody></table> |
| AIProvider<br><i>create, write, delete</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody> | <tr><td>base_url</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>deleted</td><td>true</td></tr><tr><td>display_name</td><td>true</td></tr><tr><td>enabled</td><td>true</td></tr><tr><td>icon</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>settings</td><td>true</td></tr><tr><td>settings_key_id</td><td>false</td></tr><tr><td>type</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr></tbody></table> |
| AIProviderKey<br><i>create, delete</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody> | <tr><td>api_key</td><td>true</td></tr><tr><td>api_key_key_id</td><td>false</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>id</td><td>true</td></tr><tr><td>provider_id</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr></tbody></table> |
| AISeatState<br><i>create</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody> | <tr><td>first_used_at</td><td>true</td></tr><tr><td>last_event_description</td><td>true</td></tr><tr><td>last_event_type</td><td>true</td></tr><tr><td>last_used_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>user_id</td><td>true</td></tr></tbody></table> |
| APIKey<br><i>login, logout, register, create, write, delete</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody> | <tr><td>allow_list</td><td>false</td></tr><tr><td>created_at</td><td>true</td></tr><tr><td>expires_at</td><td>true</td></tr><tr><td>hashed_secret</td><td>false</td></tr><tr><td>id</td><td>false</td></tr><tr><td>ip_address</td><td>false</td></tr><tr><td>last_used</td><td>true</td></tr><tr><td>lifetime_seconds</td><td>false</td></tr><tr><td>login_type</td><td>false</td></tr><tr><td>scopes</td><td>false</td></tr><tr><td>token_name</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>user_id</td><td>true</td></tr></tbody></table> |
+7
View File
@@ -31,6 +31,7 @@ curl -X GET http://coder-server:8080/api/v2/ai/providers \
"created_at": "2019-08-24T14:15:22Z",
"display_name": "string",
"enabled": true,
"icon": "string",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"settings": {},
@@ -61,6 +62,7 @@ Status Code **200**
| `» created_at` | string(date-time) | false | | |
| `» display_name` | string | false | | |
| `» enabled` | boolean | false | | |
| `» icon` | string | false | | |
| `» id` | string(uuid) | false | | |
| `» name` | string | false | | |
| `» settings` | [codersdk.AIProviderSettings](schemas.md#codersdkaiprovidersettings) | false | | |
@@ -99,6 +101,7 @@ curl -X POST http://coder-server:8080/api/v2/ai/providers \
"base_url": "string",
"display_name": "string",
"enabled": true,
"icon": "string",
"name": "string",
"settings": {},
"type": "openai"
@@ -128,6 +131,7 @@ curl -X POST http://coder-server:8080/api/v2/ai/providers \
"created_at": "2019-08-24T14:15:22Z",
"display_name": "string",
"enabled": true,
"icon": "string",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"settings": {},
@@ -180,6 +184,7 @@ curl -X GET http://coder-server:8080/api/v2/ai/providers/{idOrName} \
"created_at": "2019-08-24T14:15:22Z",
"display_name": "string",
"enabled": true,
"icon": "string",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"settings": {},
@@ -249,6 +254,7 @@ curl -X PATCH http://coder-server:8080/api/v2/ai/providers/{idOrName} \
"base_url": "string",
"display_name": "string",
"enabled": true,
"icon": "string",
"settings": {}
}
```
@@ -277,6 +283,7 @@ curl -X PATCH http://coder-server:8080/api/v2/ai/providers/{idOrName} \
"created_at": "2019-08-24T14:15:22Z",
"display_name": "string",
"enabled": true,
"icon": "string",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"settings": {},
+6
View File
@@ -1020,6 +1020,7 @@
"created_at": "2019-08-24T14:15:22Z",
"display_name": "string",
"enabled": true,
"icon": "string",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"settings": {},
@@ -1037,6 +1038,7 @@
| `created_at` | string | false | | |
| `display_name` | string | false | | |
| `enabled` | boolean | false | | |
| `icon` | string | false | | |
| `id` | string | false | | |
| `name` | string | false | | |
| `settings` | [codersdk.AIProviderSettings](#codersdkaiprovidersettings) | false | | |
@@ -4327,6 +4329,7 @@ AuthorizationObject can represent a "set" of objects, such as: all workspaces in
"base_url": "string",
"display_name": "string",
"enabled": true,
"icon": "string",
"name": "string",
"settings": {},
"type": "openai"
@@ -4341,6 +4344,7 @@ AuthorizationObject can represent a "set" of objects, such as: all workspaces in
| `base_url` | string | false | | |
| `display_name` | string | false | | |
| `enabled` | boolean | false | | |
| `icon` | string | false | | |
| `name` | string | false | | |
| `settings` | [codersdk.AIProviderSettings](#codersdkaiprovidersettings) | false | | |
| `type` | [codersdk.AIProviderType](#codersdkaiprovidertype) | false | | |
@@ -13090,6 +13094,7 @@ Restarts will only happen on weekdays in this list on weeks which line up with W
"base_url": "string",
"display_name": "string",
"enabled": true,
"icon": "string",
"settings": {}
}
```
@@ -13102,6 +13107,7 @@ Restarts will only happen on weekdays in this list on weeks which line up with W
| `base_url` | string | false | | |
| `display_name` | string | false | | |
| `enabled` | boolean | false | | |
| `icon` | string | false | | |
| `settings` | [codersdk.AIProviderSettings](#codersdkaiprovidersettings) | false | | |
## codersdk.UpdateActiveTemplateVersion