[codex] fix media skill profile auth and run events (#965)

* fix media skill profile auth and run events

* test bridge run profile context
This commit is contained in:
ekko
2026-05-24 12:52:14 +08:00
committed by GitHub
parent 3e8f84aa65
commit 634a622934
20 changed files with 368 additions and 97 deletions
+20 -4
View File
@@ -1,6 +1,6 @@
---
name: apikey-image-gen
description: "Generate or edit images through Hermes Web UI using the active profile's fun-codex provider from config.yaml."
description: "Generate or edit images through Hermes Web UI using the selected/requested profile's fun-codex provider from config.yaml."
version: 1.0.0
author: Ekko
license: MIT
@@ -16,7 +16,9 @@ prerequisites:
Use this skill when the user wants to generate an image, generate an image from a reference image, or edit an existing image.
Always call Hermes Web UI's media endpoint. Do not call `api.apikey.fun` directly, and do not ask the user for an API key. The server reads the active profile's `config.yaml` and uses the `custom_providers` entry named `fun-codex`:
Always call Hermes Web UI's media endpoint. Do not call `api.apikey.fun` directly, and do not ask the user for an API key. The server reads the selected/requested profile's `config.yaml` and uses the `custom_providers` entry named `fun-codex`:
Do not use any built-in image generation tool as a fallback. If the Hermes Web UI endpoint returns `401`, `403`, connection failure, or any other error, stop and report the Hermes Web UI error to the user.
```yaml
custom_providers:
@@ -43,7 +45,7 @@ When Hermes Web UI is running from Docker Compose, the default external URL is `
Authentication:
Send the Hermes Web UI bearer token.
Send the Hermes Web UI server bearer token. This token is accepted only by Hermes Web UI media generation endpoints for agent skills; it is not a general Web UI login token.
Resolve the token in this order:
@@ -52,6 +54,20 @@ Resolve the token in this order:
3. `${HERMES_WEBUI_STATE_DIR}/.token`, if `HERMES_WEBUI_STATE_DIR` is set.
4. `~/.hermes-web-ui/.token`.
Profile selection:
Use the current Hermes profile from the run instructions by sending `X-Hermes-Profile`.
If the run instructions include `[Current Hermes profile: <name>]`, include:
```bash
-H "X-Hermes-Profile: <name>"
```
Replace `<name>` with the exact profile name from the run instructions. Never send a placeholder value such as `<name>` or `<current-hermes-profile>`.
If no current profile is provided, omit the header and let the server fall back to the current Hermes active profile.
## Modes
### Text To Image
@@ -163,4 +179,4 @@ Successful responses include:
}
```
If the response code is `missing_fun_codex_provider`, tell the user to configure `fun-codex` in the active profile's `config.yaml`.
If the response code is `missing_fun_codex_provider`, tell the user to configure `fun-codex` in the selected/requested profile's `config.yaml`.
+17 -1
View File
@@ -16,6 +16,8 @@ prerequisites:
Use this skill when the user wants to animate a local image into a short video with xAI Grok Imagine.
Do not use any built-in image or video generation tool as a fallback. If the Hermes Web UI endpoint returns `401`, `403`, connection failure, or any other error, stop and report the Hermes Web UI error to the user.
## Workflow
Call the local Hermes Web UI media endpoint. Pass a local image path; the server will check for xAI credentials, read the file, convert it to a base64 data URI, call xAI, poll until completion, and optionally save the generated mp4.
@@ -36,7 +38,7 @@ When Hermes Web UI is running from the provided Docker Compose setup, the defaul
Authentication:
The endpoint is protected by Hermes Web UI auth. Always send the Web UI bearer token.
The endpoint is protected by Hermes Web UI auth. Always send the Hermes Web UI server bearer token. This token is accepted only by Hermes Web UI media generation endpoints for agent skills; it is not a general Web UI login token.
Resolve the token in this order:
@@ -45,6 +47,20 @@ Resolve the token in this order:
3. `${HERMES_WEBUI_STATE_DIR}/.token`, if `HERMES_WEBUI_STATE_DIR` is set.
4. `~/.hermes-web-ui/.token`.
Profile selection:
Use the current Hermes profile from the run instructions by sending `X-Hermes-Profile`.
If the run instructions include `[Current Hermes profile: <name>]`, include:
```bash
-H "X-Hermes-Profile: <name>"
```
Replace `<name>` with the exact profile name from the run instructions. Never send a placeholder value such as `<name>` or `<current-hermes-profile>`.
If no current profile is provided, omit the header and let the server fall back to the current Hermes active profile.
Required JSON fields:
- `image_path`: local path to a png, jpeg, or webp image.