@acedatacloud/skills 2026.516.0 → 2026.606.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acedatacloud/skills",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.606.0",
|
|
4
4
|
"description": "Agent Skills for AceDataCloud AI services — music, image, video generation, LLM chat, web search. Compatible with Claude Code, GitHub Copilot, Gemini CLI, OpenAI Codex, and 30+ AI coding agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-skills",
|
package/skills/ai-chat/SKILL.md
CHANGED
|
@@ -62,6 +62,7 @@ print(response.choices[0].message.content)
|
|
|
62
62
|
|
|
63
63
|
| Model | Type | Best For |
|
|
64
64
|
|-------|------|----------|
|
|
65
|
+
| `claude-opus-4-8` | Latest Opus | Highest capability |
|
|
65
66
|
| `claude-opus-4-6` | Latest Opus | Highest capability |
|
|
66
67
|
| `claude-sonnet-4-6` | Latest Sonnet | Balanced quality/speed |
|
|
67
68
|
| `claude-opus-4-5-20251101` | Opus 4.5 | Premium tasks |
|
|
@@ -183,10 +184,10 @@ POST /v1/chat/completions
|
|
|
183
184
|
|
|
184
185
|
## Stateful Conversations Endpoint
|
|
185
186
|
|
|
186
|
-
For stateful, session-based chat (no need to send the full history each time), use
|
|
187
|
+
For stateful, session-based chat (no need to send the full history each time), use `POST /aichat2/conversations` (recommended). `POST /aichat/conversations` remains available for legacy compatibility.
|
|
187
188
|
|
|
188
189
|
```bash
|
|
189
|
-
curl -X POST https://api.acedata.cloud/
|
|
190
|
+
curl -X POST https://api.acedata.cloud/aichat2/conversations \
|
|
190
191
|
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
|
|
191
192
|
-H "Content-Type: application/json" \
|
|
192
193
|
-d '{"model": "gpt-4.1", "question": "What is quantum computing?", "stateful": true}'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: flux-image
|
|
3
|
-
description: Generate and edit images with Flux (Black Forest Labs) via AceDataCloud API. Use when creating images from text prompts, editing existing images with text instructions, or when high-quality image generation is needed. Supports multiple Flux models including dev, pro,
|
|
3
|
+
description: Generate and edit images with Flux (Black Forest Labs) via AceDataCloud API. Use when creating images from text prompts, editing existing images with text instructions, or when high-quality image generation is needed. Supports multiple Flux models including dev, pro, Flux 2 variants, and kontext for editing.
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: acedatacloud
|
|
@@ -23,7 +23,7 @@ curl -X POST https://api.acedata.cloud/flux/images \
|
|
|
23
23
|
-d '{"prompt": "a cat wearing a space helmet, photorealistic", "model": "flux-dev", "callback_url": "https://api.acedata.cloud/health"}'
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
> **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /flux/tasks` with `{"
|
|
26
|
+
> **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /flux/tasks` with `{"id": "..."}`.
|
|
27
27
|
|
|
28
28
|
## Models
|
|
29
29
|
|
|
@@ -31,8 +31,9 @@ curl -X POST https://api.acedata.cloud/flux/images \
|
|
|
31
31
|
|-------|---------|-------|-------|----------|
|
|
32
32
|
| `flux-dev` | Good | Fast | 256–1440px | Quick generation (default) |
|
|
33
33
|
| `flux-pro` | High | Medium | 256–1440px | Production work |
|
|
34
|
-
| `flux-
|
|
35
|
-
| `flux-pro
|
|
34
|
+
| `flux-2-flex` | High | Fast | 256–1440px | Faster high-quality generation |
|
|
35
|
+
| `flux-2-pro` | Higher | Medium | 256–1440px | Better prompt following |
|
|
36
|
+
| `flux-2-max` | Highest | Slow | 256–1440px | Maximum quality generation |
|
|
36
37
|
| `flux-kontext-pro` | High | Medium | Aspect ratios | Image editing |
|
|
37
38
|
| `flux-kontext-max` | Highest | Slow | Aspect ratios | Complex editing |
|
|
38
39
|
|
|
@@ -43,7 +44,7 @@ POST /flux/images
|
|
|
43
44
|
{
|
|
44
45
|
"prompt": "a minimalist logo of a mountain",
|
|
45
46
|
"action": "generate",
|
|
46
|
-
"model": "flux-pro
|
|
47
|
+
"model": "flux-2-pro",
|
|
47
48
|
"size": "1024x1024",
|
|
48
49
|
"count": 1
|
|
49
50
|
}
|
|
@@ -51,10 +52,10 @@ POST /flux/images
|
|
|
51
52
|
|
|
52
53
|
### Size Options
|
|
53
54
|
|
|
54
|
-
**For dev/pro/
|
|
55
|
+
**For dev/pro/flux-2** (pixel dimensions):
|
|
55
56
|
- `"1024x1024"`, `"1344x768"`, `"768x1344"`, `"1024x576"`, `"576x1024"`
|
|
56
57
|
|
|
57
|
-
**For
|
|
58
|
+
**For kontext** (aspect ratios):
|
|
58
59
|
- `"1:1"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"3:2"`, `"2:3"`, `"21:9"`, `"9:21"`
|
|
59
60
|
|
|
60
61
|
## Edit Images
|
|
@@ -73,10 +74,10 @@ POST /flux/images
|
|
|
73
74
|
|
|
74
75
|
## Gotchas
|
|
75
76
|
|
|
76
|
-
- Use pixel dimensions (e.g., `"1024x1024"`) with dev/pro models, aspect ratios (e.g., `"16:9"`) with
|
|
77
|
+
- Use pixel dimensions (e.g., `"1024x1024"`) with dev/pro/flux-2 models, aspect ratios (e.g., `"16:9"`) with kontext models
|
|
77
78
|
- Editing requires kontext models (`flux-kontext-pro` or `flux-kontext-max`) — other models only support generation
|
|
78
79
|
- `count` parameter generates multiple images in one request (increases cost proportionally)
|
|
79
|
-
-
|
|
80
|
-
- All generation is async — always set `"callback_url"` to get a
|
|
80
|
+
- `flux-2-max` produces highest quality but is slowest — use dev/flex for iteration and max for final output
|
|
81
|
+
- All generation is async — always set `"callback_url"` to get a task id immediately, then poll `/flux/tasks` using `{"id":"<task_id>"}` or `{"ids":[...],"action":"retrieve_batch"}`
|
|
81
82
|
|
|
82
83
|
> **MCP:** `pip install mcp-flux-pro` | Hosted: `https://flux.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)
|
|
@@ -132,9 +132,17 @@ curl -sS -H "Authorization: Bearer $GOOGLE_GMAIL_TOKEN" \
|
|
|
132
132
|
--get "https://gmail.googleapis.com/gmail/v1/users/me/messages" \
|
|
133
133
|
--data-urlencode 'q=is:unread in:inbox newer_than:7d' \
|
|
134
134
|
--data-urlencode 'maxResults=20' \
|
|
135
|
-
| jq '.messages[]'
|
|
135
|
+
| jq '.messages // [] | .[]'
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
+
**Always default `.messages` to `[]`** — Gmail's `messages.list` omits the
|
|
139
|
+
field entirely when there are zero matches (the response is just
|
|
140
|
+
`{"resultSizeEstimate": 0}`), so a bare `.messages[]` will crash jq
|
|
141
|
+
with `Cannot iterate over null (null)` and exit 5. Same applies to
|
|
142
|
+
`.threads`, `.labels`, `.drafts` on their list endpoints. If the result
|
|
143
|
+
is empty, tell the user plainly (e.g. "No unread mail in the last 7
|
|
144
|
+
days") instead of retrying.
|
|
145
|
+
|
|
138
146
|
The `messages.list` endpoint returns only `{id, threadId}` — you have
|
|
139
147
|
to fan out to `messages.get` for headers / body. Cheap pattern: list
|
|
140
148
|
ids → get with `format=metadata&metadataHeaders=From,Subject,Date` for
|
|
@@ -147,8 +155,10 @@ IDS=$(curl -sS -H "Authorization: Bearer $GOOGLE_GMAIL_TOKEN" \
|
|
|
147
155
|
--get "https://gmail.googleapis.com/gmail/v1/users/me/messages" \
|
|
148
156
|
--data-urlencode 'q=is:unread in:inbox' \
|
|
149
157
|
--data-urlencode 'maxResults=10' \
|
|
150
|
-
| jq -r '.messages[].id')
|
|
158
|
+
| jq -r '.messages // [] | .[].id')
|
|
151
159
|
|
|
160
|
+
# If $IDS is empty the for-loop below runs zero times — tell the user
|
|
161
|
+
# "no unread mail" rather than echoing an empty result.
|
|
152
162
|
for ID in $IDS; do
|
|
153
163
|
curl -sS -H "Authorization: Bearer $GOOGLE_GMAIL_TOKEN" \
|
|
154
164
|
--get "https://gmail.googleapis.com/gmail/v1/users/me/messages/$ID" \
|
|
@@ -195,7 +205,7 @@ curl -sS -H "Authorization: Bearer $GOOGLE_GMAIL_TOKEN" \
|
|
|
195
205
|
--data-urlencode 'metadataHeaders=From' \
|
|
196
206
|
--data-urlencode 'metadataHeaders=Subject' \
|
|
197
207
|
--data-urlencode 'metadataHeaders=Date' \
|
|
198
|
-
| jq '{id, historyId, messages: [.messages[] | {id, snippet, from: (.payload.headers | from_entries.From), date: (.payload.headers | from_entries.Date)}]}'
|
|
208
|
+
| jq '{id, historyId, messages: [(.messages // [])[] | {id, snippet, from: (.payload.headers | from_entries.From), date: (.payload.headers | from_entries.Date)}]}'
|
|
199
209
|
```
|
|
200
210
|
|
|
201
211
|
### Search by Gmail query
|
|
@@ -23,7 +23,7 @@ curl -X POST https://api.acedata.cloud/suno/audios \
|
|
|
23
23
|
-d '{"prompt": "a happy pop song about coding", "model": "chirp-v5-5", "callback_url": "https://api.acedata.cloud/health"}'
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
> **Async:** All generation is async. See [async task polling](../_shared/async-tasks.md). Poll via `POST /suno/tasks` with `{"
|
|
26
|
+
> **Async:** All generation is async. See [async task polling](../_shared/async-tasks.md). Poll via `POST /suno/tasks` with `{"id": "<task_id>"}` every 3-5 seconds.
|
|
27
27
|
|
|
28
28
|
## Available Models
|
|
29
29
|
|
|
@@ -103,7 +103,7 @@ For best results follow this multi-step workflow:
|
|
|
103
103
|
1. **Generate lyrics** — `POST /suno/lyrics` with a topic/prompt
|
|
104
104
|
2. **Optimize style** — `POST /suno/style` to refine style description
|
|
105
105
|
3. **Generate music** — `POST /suno/audios` with custom action, lyrics + style
|
|
106
|
-
4. **Poll task** — `POST /suno/tasks` with
|
|
106
|
+
4. **Poll task** — `POST /suno/tasks` with `id` (or `ids` for batch) until status is complete
|
|
107
107
|
5. **Optional: Extend** — Use extend action to add more sections
|
|
108
108
|
6. **Optional: Concat** — Use concat action to merge extended segments
|
|
109
109
|
7. **Optional: Convert** — Get WAV (`/suno/wav`), MIDI (`/suno/midi`), or MP4 (`/suno/mp4`)
|
|
@@ -149,7 +149,7 @@ For best results follow this multi-step workflow:
|
|
|
149
149
|
|
|
150
150
|
| Parameter | Type | Description |
|
|
151
151
|
|-----------|------|-------------|
|
|
152
|
-
| `lyric_prompt` |
|
|
152
|
+
| `lyric_prompt` | object | Structured prompt payload for auto-generating lyrics (used when `custom: true` without explicit `lyric`) |
|
|
153
153
|
| `style_negative` | string | Style tags to avoid (e.g., `"heavy metal, distortion"`) |
|
|
154
154
|
| `style_influence` | number | Strength of style influence (advanced custom mode, v5+ only) |
|
|
155
155
|
| `audio_weight` | number | Weight for audio reference when covering (advanced, v5+ only) |
|
|
@@ -174,7 +174,7 @@ Ending lyrics
|
|
|
174
174
|
|
|
175
175
|
## Gotchas
|
|
176
176
|
|
|
177
|
-
- All generation is **async** — always set `"callback_url"` to get a
|
|
177
|
+
- All generation is **async** — always set `"callback_url"` to get a task id immediately, then poll `/suno/tasks` using `{"id":"<task_id>"}` or `{"ids":[...],"action":"retrieve_batch"}`
|
|
178
178
|
- **CRITICAL:** Check the `state` field — only `state: "complete"` with `success: true` means done. During `pending`, the API may return intermediate `audio_url` values (streaming previews). Do NOT stop polling just because `audio_url` is non-empty
|
|
179
179
|
- Lyrics max ~3000 characters. For longer songs, use the **extend** workflow
|
|
180
180
|
- Style tags are descriptive phrases, not enum values (e.g., "Synthwave, Electronic, Dreamy")
|