@acedatacloud/skills 2026.703.11 → 2026.703.13

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.703.11",
3
+ "version": "2026.703.13",
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",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: nano-banana-image
3
- description: Generate and edit AI images with NanoBanana (Gemini-based) via AceDataCloud API. Use when creating images from text prompts or editing existing images with text instructions. Supports nano-banana, nano-banana-2, and nano-banana-pro models.
3
+ description: Generate and edit AI images with NanoBanana (Gemini-based) via AceDataCloud API. Use when creating images from text prompts or editing existing images with text instructions. Supports nano-banana, nano-banana-2, nano-banana-pro and their :official variants.
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: acedatacloud
@@ -31,6 +31,9 @@ curl -X POST https://api.acedata.cloud/nano-banana/images \
31
31
  | `nano-banana` | Standard image generation (default) |
32
32
  | `nano-banana-2` | Improved quality, second generation |
33
33
  | `nano-banana-pro` | Highest quality, most detailed output |
34
+ | `nano-banana:official` | Official channel variant of `nano-banana` |
35
+ | `nano-banana-2:official` | Official channel variant of `nano-banana-2` |
36
+ | `nano-banana-pro:official` | Official channel variant of `nano-banana-pro` |
34
37
 
35
38
  ## Workflows
36
39
 
@@ -66,7 +69,7 @@ POST /nano-banana/images
66
69
  | Parameter | Values | Description |
67
70
  |-----------|--------|-------------|
68
71
  | `action` | `"generate"`, `"edit"` | Operation mode |
69
- | `model` | `"nano-banana"`, `"nano-banana-2"`, `"nano-banana-pro"` | Model to use |
72
+ | `model` | `"nano-banana"`, `"nano-banana-2"`, `"nano-banana-pro"`, `"nano-banana:official"`, `"nano-banana-2:official"`, `"nano-banana-pro:official"` | Model to use |
70
73
  | `prompt` | string | Image description or editing instruction |
71
74
  | `image_urls` | array of strings | Source image URLs (required for edit action) |
72
75
  | `aspect_ratio` | `"1:1"`, `"3:2"`, `"2:3"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"` | Output aspect ratio |
@@ -78,6 +81,7 @@ POST /nano-banana/images
78
81
  - Editing does **NOT** require a mask — just describe the change in natural language
79
82
  - Editing uses the same `/nano-banana/images` endpoint with `action: "edit"` and `image_urls` array (not a separate `/edit` path)
80
83
  - `nano-banana-2` is the second-generation model; `nano-banana-pro` offers the highest quality
84
+ - `:official` variants (e.g., `nano-banana:official`) route through the official channel
81
85
  - Task polling uses `id` (not `task_id`) in the `/nano-banana/tasks` request body
82
86
  - Aspect ratio uses colon notation (e.g., `"16:9"`) not pixel dimensions
83
87
  - The Gemini-based model excels at understanding complex, conversational editing instructions
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: vk
3
+ description: Publish posts to your VK (ВКонтакте) profile or community wall and read your own recent posts, via the official VK API (wall.post / wall.get). Use when the user wants to post to VK, cross-post an article for a Russian-speaking audience, or list their own recent VK wall posts with engagement. Auth uses a VK access token (community access key recommended).
4
+ when_to_use: |
5
+ Trigger when the user wants to publish content to their VK wall or community,
6
+ or review their own recent VK posts. VK's user-token OAuth flows were disabled
7
+ in June 2024, so the connector stores a long-lived **community access key**
8
+ (VK community → Manage → Settings → API usage, with the `wall` right). Posting
9
+ to a community wall uses a negative owner_id + from_group=1. Confirm the post
10
+ text with the user before publishing.
11
+ connections: [vk]
12
+ allowed_tools: [Bash]
13
+ license: Apache-2.0
14
+ metadata:
15
+ author: acedatacloud
16
+ version: "1.0"
17
+ ---
18
+
19
+ Call the **VK API** with `curl + jq`. The token is injected as `$VK_ACCESS_TOKEN`
20
+ and is passed in the `Authorization: Bearer` header. **Every** VK API call also
21
+ requires the `v` (API version) query parameter — use `v=5.199`. Base URL:
22
+ `https://api.vk.com/method/<method>`.
23
+
24
+ VK always returns HTTP 200; success is `{"response": ...}` and failure is
25
+ `{"error":{"error_code":<n>,"error_msg":"<detail>"}}` — always check for `.error`
26
+ and show `error_msg` verbatim. Common codes: `5` = auth failed (token wrong or
27
+ revoked → user must re-connect the VK connector), `214` = access to adding post
28
+ denied (the token lacks the `wall` right — a community access key with `wall` is
29
+ required), `15`/`203` = access denied to that owner.
30
+
31
+ ## Step 1 — identify who you can post as
32
+
33
+ A **community access key** posts on the community wall: `owner_id` must be the
34
+ **negative** community id and you pass `from_group=1`. Resolve the community id
35
+ from the token:
36
+
37
+ ```bash
38
+ curl -sS "https://api.vk.com/method/groups.getById?v=5.199" \
39
+ -H "Authorization: Bearer $VK_ACCESS_TOKEN" \
40
+ | jq '.response, .error'
41
+ ```
42
+
43
+ Take the group `id` (e.g. `123456`) → `owner_id` is `-123456`. (For a personal
44
+ user token, `owner_id` is your positive user id from `users.get`, and you omit
45
+ `from_group`.)
46
+
47
+ ## Post to the wall
48
+
49
+ **Confirm the message text with the user before posting.** The post must have
50
+ text and/or attachments.
51
+
52
+ ```bash
53
+ OWNER_ID="-123456" # negative = community; from_group=1 posts as the community
54
+ MSG="Пример поста через VK API. #ai"
55
+ curl -sS -G "https://api.vk.com/method/wall.post" \
56
+ -H "Authorization: Bearer $VK_ACCESS_TOKEN" \
57
+ --data-urlencode "v=5.199" \
58
+ --data-urlencode "owner_id=$OWNER_ID" \
59
+ --data-urlencode "from_group=1" \
60
+ --data-urlencode "message=$MSG" \
61
+ | jq '.response, .error'
62
+ ```
63
+
64
+ Success returns `{"response":{"post_id":<id>}}`. The public URL is
65
+ `https://vk.com/wall<OWNER_ID>_<post_id>` (e.g. `https://vk.com/wall-123456_17`).
66
+
67
+ - Hashtags (`#tag`) and plain URLs in `message` are rendered/clickable natively —
68
+ no facet/offset handling needed (unlike Bluesky).
69
+ - Attach media/links with `attachments` (comma-separated), format
70
+ `{type}{owner_id}_{media_id}` (e.g. `photo-123456_789`) or a single external
71
+ URL. Only **one** link may be attached; more than one link → error 222.
72
+ - `publish_date` (Unix timestamp) schedules a deferred post.
73
+ - Always send Cyrillic `message` via `--data-urlencode` so it isn't mangled.
74
+
75
+ ## List my recent wall posts + engagement
76
+
77
+ ```bash
78
+ OWNER_ID="-123456"
79
+ curl -sS -G "https://api.vk.com/method/wall.get" \
80
+ -H "Authorization: Bearer $VK_ACCESS_TOKEN" \
81
+ --data-urlencode "v=5.199" \
82
+ --data-urlencode "owner_id=$OWNER_ID" \
83
+ --data-urlencode "count=20" \
84
+ | jq '.error, (.response.items[]? | {id,
85
+ text,
86
+ likes: .likes.count,
87
+ reposts: .reposts.count,
88
+ comments: .comments.count,
89
+ views: .views.count,
90
+ date})'
91
+ ```
92
+
93
+ `count` max 100. Combine `owner_id` + a post `id` to build the URL
94
+ `https://vk.com/wall<owner_id>_<id>`.
95
+
96
+ ## Delete a post
97
+
98
+ ```bash
99
+ OWNER_ID="-123456"; POST_ID="17"
100
+ curl -sS -G "https://api.vk.com/method/wall.delete" \
101
+ -H "Authorization: Bearer $VK_ACCESS_TOKEN" \
102
+ --data-urlencode "v=5.199" \
103
+ --data-urlencode "owner_id=$OWNER_ID" \
104
+ --data-urlencode "post_id=$POST_ID" \
105
+ | jq '.response, .error'
106
+ ```
107
+
108
+ ## Gotchas
109
+
110
+ - **`v` is mandatory** on every call — omitting it returns an error.
111
+ - **User tokens can't be freshly minted via OAuth** (Implicit / Authorization
112
+ Code flows for user tokens were disabled 2024-06); use a **community access
113
+ key** (unlimited lifetime, created in the community's API settings) with the
114
+ `wall` right.
115
+ - Posting as the community requires both `owner_id` negative **and**
116
+ `from_group=1`.
117
+ - Rate/anti-spam: repeated identical posts or too-frequent posting can hit codes
118
+ like `214`/`219` — space posts out.