Skip to content

Commit bbfffcc

Browse files
committed
Harden and document the cross-host agent plugin
1 parent 6a9e80a commit bbfffcc

29 files changed

Lines changed: 1244 additions & 700 deletions

.codex-plugin/plugin.json

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "beatapi-agent-plugin",
33
"version": "0.3.0",
4-
"description": "Create and manage BeatAPI text, image, video, Effect, workflow, analysis, and realtime APIs from Codex.",
4+
"description": "Create and manage BeatAPI text, image, video, Effect, workflow, and analysis APIs from Codex.",
55
"author": {
66
"name": "BeatAPI",
77
"email": "support@beatapi.io",
@@ -26,8 +26,8 @@
2626
"mcpServers": "./.mcp.json",
2727
"interface": {
2828
"displayName": "BeatAPI",
29-
"shortDescription": "Manage BeatAPI text, media, workflows, and realtime",
30-
"longDescription": "Use one existing BeatAPI account and API key from Codex to discover models and Effects, create text responses, upload inputs, check USD balance and concurrency, create image, video, Effect, Video Analysis, Music Video, and Ecommerce Video tasks, manage short-lived Realtime Video sessions, monitor progress, retrieve hosted results, and configure webhooks.",
29+
"shortDescription": "Manage BeatAPI text, media, and workflows",
30+
"longDescription": "Use one existing BeatAPI account and API key from Codex to discover models and Effects, create text responses, upload explicitly approved inputs, check USD balance and concurrency, create image, video, Effect, Video Analysis, Music Video, and Ecommerce Video tasks, monitor progress, retrieve hosted results, and manage existing Realtime sessions and webhooks.",
3131
"developerName": "BeatAPI",
3232
"category": "Creativity",
3333
"capabilities": [
@@ -38,15 +38,9 @@
3838
"privacyPolicyURL": "https://beatapi.io/privacy-policy",
3939
"termsOfServiceURL": "https://beatapi.io/terms-of-service",
4040
"defaultPrompt": [
41-
"Use $beatapi-video to create a music video from my images and audio.",
42-
"Use $beatapi-video to turn my product images into a vertical ad.",
43-
"Use $beatapi-video to generate an image with Nano Banana Pro.",
44-
"Use $beatapi-video to create a Seedance 2.5 video.",
45-
"Use $beatapi-video to list current Effects for this portrait.",
46-
"Use $beatapi-video to create a 60-second realtime session for my web app.",
47-
"Use $beatapi-video to check my USD balance and task status.",
48-
"Use $beatapi-video to list BeatAPI text models and summarize this note.",
49-
"Use $beatapi-video to analyze this product-demo video."
41+
"Use $beatapi-video to turn these product images into a vertical ad.",
42+
"Use $beatapi-video to list current models, then generate from this prompt.",
43+
"Use $beatapi-video to check my balance and the status of task task_...."
5044
],
5145
"brandColor": "#2563FF",
5246
"composerIcon": "./assets/icon.png",

.cursor-plugin/plugin.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "beatapi-agent-plugin",
33
"version": "0.3.0",
4-
"description": "Use BeatAPI text, image, video, Effects, workflows, analysis, and realtime APIs from Cursor and Grok Bot.",
4+
"description": "Use BeatAPI text, image, video, Effects, workflows, and analysis APIs from Cursor and Grok Bot.",
55
"author": {
66
"name": "BeatAPI",
77
"email": "support@beatapi.io"
@@ -34,6 +34,16 @@
3434
"title": "BeatAPI base URL",
3535
"description": "Optional API base URL override. Keep the default unless BeatAPI support gave you another endpoint.",
3636
"default": "https://api.beatapi.io"
37+
},
38+
"BEATAPI_TRUST_CUSTOM_BASE_URL": {
39+
"type": "string",
40+
"title": "Trust custom API origin",
41+
"description": "Leave empty for the official API. Set exactly 1 only when BeatAPI support gave you the custom HTTPS origin above."
42+
},
43+
"BEATAPI_UPLOAD_ROOTS": {
44+
"type": "string",
45+
"title": "Approved upload directories",
46+
"description": "Optional path-list of directories containing files you explicitly want the plugin to upload. Use colon separators on macOS/Linux and semicolons on Windows."
3747
}
3848
},
3949
"required": [

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ jobs:
1111
verify:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v4
15-
- uses: actions/setup-node@v4
14+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
15+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
1616
with:
1717
node-version: 22
1818
cache: npm
1919
- run: npm ci
2020
- run: npm run verify
21-
- uses: actions/upload-artifact@v4
21+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
2222
with:
2323
name: beatapi-plugin-artifacts
2424
path: |

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ jobs:
1212
release:
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v4
16-
- uses: actions/setup-node@v4
15+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
16+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
1717
with:
1818
node-version: 22
1919
cache: npm
2020
- run: npm ci
2121
- run: npm run verify
22-
- uses: softprops/action-gh-release@v2
22+
- uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2
2323
with:
2424
files: |
2525
dist/beatapi-agent-plugin-marketplace.zip

.grok-plugin/plugin.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"name": "beatapi-agent-plugin",
3+
"version": "0.3.0",
4+
"description": "Use BeatAPI text, image, video, Effects, workflows, and analysis APIs from Grok Build.",
5+
"author": {
6+
"name": "BeatAPI",
7+
"url": "https://beatapi.io"
8+
},
9+
"homepage": "https://beatapi.io",
10+
"repository": "https://github.com/BeatAPI/beatapi-agent-plugin",
11+
"license": "MIT",
12+
"keywords": [
13+
"beatapi",
14+
"beatapi agent toolkit",
15+
"beatapi video",
16+
"beatapi image",
17+
"beatapi workflows"
18+
],
19+
"logo": "./assets/logo.png",
20+
"skills": "./skills/",
21+
"mcpServers": "./.mcp.json"
22+
}

.mcp.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
"env_vars": [
1010
"BEATAPI_API_KEY",
1111
"BEATAPI_BASE_URL",
12+
"BEATAPI_TRUST_CUSTOM_BASE_URL",
1213
"BEATAPI_CLI_PATH",
13-
"BEATAPI_DATA_HOME",
14-
"CODEX_HOME"
14+
"BEATAPI_UPLOAD_ROOTS"
1515
],
16-
"tool_timeout_sec": 900
16+
"tool_timeout_sec": 4500
1717
}
1818
}
1919
}

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,17 @@
1111
generation-model discovery, generic image/video generation, versioned
1212
Effects, and Video Analysis.
1313
- Synchronized the canonical Skill, typed client runtime, and OpenAPI snapshot
14-
with the complete 29-operation contract and USD-denominated usage semantics.
14+
with the complete 30-operation contract and USD-denominated usage semantics.
1515
- Replaced hardcoded image/video model unions with a stable `model` plus
1616
`parameters` interface so newly published model IDs do not require a plugin
1717
release.
1818
- Added host Configure guidance for `BEATAPI_API_KEY` and kept credentials out
1919
of tool arguments and model-visible results.
20+
- Confined uploads to configured trusted roots, rejected credential material in
21+
open-ended parameters, validated custom API origins, reduced CLI environment
22+
inheritance, and pinned release workflow dependencies.
23+
- Removed Realtime-session and webhook creation from agent-visible surfaces
24+
until hosts provide an opaque secret broker.
2025

2126
## 0.2.0 - 2026-07-31
2227

0 commit comments

Comments
 (0)