@kolbo/mcp 1.83.2 → 1.83.3
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
package/skill/GENERATED.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AUTO-GENERATED — do not edit
|
|
2
2
|
|
|
3
|
-
This tree is mirrored from kolbo-code@
|
|
3
|
+
This tree is mirrored from kolbo-code@3a5d6b7, the single source of truth.
|
|
4
4
|
Canonical source: packages/opencode/skills/kolbo/
|
|
5
5
|
Distribution: .github/workflows/sync-skill-to-plugin.yml
|
|
6
6
|
|
package/skill/SKILL.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
version: 0.9.
|
|
2
|
+
version: 0.9.12
|
|
3
3
|
name: kolbo
|
|
4
4
|
description: |
|
|
5
5
|
Generate, edit, analyze, and direct creative media through Kolbo AI: images,
|
|
@@ -53,7 +53,7 @@ Then generate **only** with the confirmed parameters. If the user changes an opt
|
|
|
53
53
|
|
|
54
54
|
**Cost rules** (full tables + formulas in `references/workflows/cost-and-validation.md`):
|
|
55
55
|
|
|
56
|
-
- **Video/lipsync `credit` is per-SECOND, not per-clip**: `total = credit ×
|
|
56
|
+
- **Video/lipsync `credit` is per-SECOND, not per-clip**: normally `total = credit × output_duration`. If video references are attached and `video_input_credit` is present, use the alternate provider tariff instead: `video_input_credit × (sum ceil(each input video duration) + output seconds) × video_input_resolution_multiplier`. Dedicated Seedance Edit uses its selected source duration as output; Extend uses the requested added duration. The other carve-out is `flat_credit_by_resolution`.
|
|
57
57
|
- **Batch totalling 100+ credits**: run `check_credits` first.
|
|
58
58
|
- **Quote real cost**: when the user approves the result, log its actual `credits_used` (from the tool result) to `.kolbo/production.md` — never `base × count`.
|
|
59
59
|
- **Never state "credits remaining" from arithmetic** (opening balance − generation costs). Coding/chat usage deducts credits too, so the math is always wrong. Report cost only; if the user asks for their balance, call `check_credits` fresh at that moment.
|
package/skill/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.9.
|
|
1
|
+
0.9.12
|
|
@@ -12,7 +12,7 @@ Creative generations bill against the user's Kolbo credit balance. **Billing uni
|
|
|
12
12
|
| **Image edit** | per image (flat) | 2–20 cr | |
|
|
13
13
|
| **Video** | **cr/s × duration** | 2–30 cr/s | Kandinsky 5 Fast × 5s = 10 cr; Seedance 2.0 × 10s = 300 cr. Check `resolution_multipliers` + `sound_credit_multiplier`. |
|
|
14
14
|
| **Video from image** | **cr/s × duration** | 4–30 cr/s | Same per-second rule. |
|
|
15
|
-
| **Elements (ref-to-video)** |
|
|
15
|
+
| **Elements (ref-to-video)** | output seconds normally; combined input + output seconds when `video_input_credit` exists and video is attached | 4–40 cr/s | Read both pricing profiles from `list_models type="elements"`. |
|
|
16
16
|
| **Lipsync** | **cr/s × duration** | 5–20 cr/s | |
|
|
17
17
|
| **Music** | per generation (flat) | 15–60 cr | Suno v5 = 15 cr; ElevenLabs Music = 60 cr |
|
|
18
18
|
| **Speech (TTS)** | per 100 characters | 2–5 cr/100 chars | ElevenLabs (5) × 500 chars = 25 cr |
|
|
@@ -24,7 +24,8 @@ Creative generations bill against the user's Kolbo credit balance. **Billing uni
|
|
|
24
24
|
|
|
25
25
|
Apply when confirming cost before firing:
|
|
26
26
|
|
|
27
|
-
- **Video / Lipsync**: `total = model_credit_per_second ×
|
|
27
|
+
- **Video / Lipsync**: normally `total = model_credit_per_second × output_duration_seconds`. Never assume the credit shown is a flat per-generation cost for these types.
|
|
28
|
+
- **Video-input tariff**: when the request contains one or more video inputs and the model returns `video_input_credit`, use `ceil(video_input_credit × (sum ceil(each input video duration) + output_seconds) × video_input_resolution_multipliers[resolution])`. Dedicated Seedance Video Edit output seconds follow the selected source clip; Seedance Extend output seconds are only the requested added duration. Do not also apply the ordinary `credit` profile.
|
|
28
29
|
- **Music**: flat per generation — `total = model_credit` (duration does not change cost).
|
|
29
30
|
- **TTS**: `total = model_credit × ceil(character_count / 100)`. Count actual characters first. 1000 chars with ElevenLabs = 50 credits.
|
|
30
31
|
- **Images / 3D / Sound effects**: `total = model_credit × quantity`.
|
|
@@ -60,7 +61,7 @@ Before submitting:
|
|
|
60
61
|
1. Call `list_models type=<tool-type>` (text mode is enough for picking; `format: "json"` for programmatic comparison).
|
|
61
62
|
2. For each input array (refs / DNAs / elements) — check `length <= <cap>` from the canonical field reference below. If over, drop the lowest-priority entries OR ask the user.
|
|
62
63
|
3. For each enumerated value (`aspect_ratio` / `resolution` / `duration`) — check it's in `supported_*`. If not, **do not silently substitute**; show the user the allowed set and ask.
|
|
63
|
-
4. For each duration-bearing file (
|
|
64
|
+
4. For each duration-bearing file (source/reference video for elements/v2v/extend, audio for lipsync/elements) — pre-check duration against the min/max range. Use ffmpeg if needed. Seedance 2/2.5 video inputs are rejected below `min_video_duration` (currently 4 seconds).
|
|
64
65
|
5. For uploads — pre-check size against `max_file_size`.
|
|
65
66
|
|
|
66
67
|
The MCP tool descriptions also embed the cap field name on the relevant parameter (e.g. `reference_images: "...Cap: pass at most max_reference_images..."`) — use those as inline reminders.
|
|
@@ -82,7 +83,7 @@ The same conceptual slot (e.g. "max reference images") lives under **different f
|
|
|
82
83
|
| `aspect_ratio` | any | `supported_aspect_ratios` (or `_by_type[<type>]` when multimodal) | empty → `default_aspect_ratio` if set |
|
|
83
84
|
| `resolution` | any | `supported_resolutions` (+ `resolution_multipliers` for cost) | empty → no resolution tiering |
|
|
84
85
|
| `duration` (video output) | video tools | `supported_durations`, else `min_output_duration`–`max_output_duration` | both null → omit and let server default |
|
|
85
|
-
| **input** video duration | `lipsync-video`, `generate_video_from_video` | `min_video_duration` – `max_video_duration` | outside range → reject |
|
|
86
|
+
| **input** video duration | `lipsync-video`, `generate_video_from_video`, `generate_elements` with video refs | `min_video_duration` – `max_video_duration` | outside range → reject |
|
|
86
87
|
| input audio duration | `generate_lipsync`, `generate_elements` audio | `min_audio_duration` – `max_audio_duration` (+ `audio_max_follows_video_duration` for lipsync) | outside range → reject |
|
|
87
88
|
| audio file format | any audio input | `supported_audio_formats` (e.g. `["mp3","wav","m4a"]`; empty = all) | pre-validate before upload |
|
|
88
89
|
| recording duration | `text_to_speech` recording UX | `min_recording_duration` – `max_recording_duration` | usually null for plain TTS |
|
|
@@ -92,7 +93,7 @@ The same conceptual slot (e.g. "max reference images") lives under **different f
|
|
|
92
93
|
| sound on/off | video tools | `sound_generation_type` (`"native"` vs `"none"`), `sound_enabled_by_default`, `sound_credit_multiplier` | not `"native"` → can't emit synced audio |
|
|
93
94
|
| capability gate | route decision | `supports_visual_dna`, `supports_first_last_frame`, `supports_audio_input` | `false` → the controller silently drops that param |
|
|
94
95
|
|
|
95
|
-
|
|
96
|
+
Normal cost formula: `final_cost = credit × output_seconds × resolution_multipliers[resolution] × (sound_enabled ? sound_credit_multiplier : 1)`, multiplied by `num_images` / `scene_count` as applicable. When `video_input_credit` applies, replace it with the combined input/output formula above and use `video_input_resolution_multipliers`.
|
|
96
97
|
|
|
97
98
|
## Decision Rule for Resolution
|
|
98
99
|
|