@kolbo/kolbo-code-linux-arm64
Advanced tools
+1
-1
| { | ||
| "name": "@kolbo/kolbo-code-linux-arm64", | ||
| "version": "2.4.21", | ||
| "version": "2.4.22", | ||
| "os": [ | ||
@@ -5,0 +5,0 @@ "linux" |
@@ -117,4 +117,13 @@ --- | ||
| Then compile that craft into the Kolbo Locked Intro (`Total: Xs / N shots / AR` → `[GLOBAL LOOK]` → `[CAST]` with `@DNAName` → `[LOCATION]` → `SHOT N`) before calling `generate_elements`. | ||
| Then compile that craft into the Kolbo Locked Intro before calling `generate_elements` / `generate_video`: | ||
| 1. `N connected cinematic shots, Xs total, AR, Multishot ON` | ||
| 2. `Total: Xs / N shots / AR` | ||
| 3. `[GLOBAL LOOK]` → `[CAST]` (`@DNAName` per person) → `[LOCATION]` → LOCATION MAP / CONTINUITY / PHYSICS | ||
| 4. `SHOT N — 0:00–0:02 — …` with ranges that **sum to Xs** | ||
| 5. Closing `Total: Xs / N shots / AR` | ||
| 6. Pass MCP `duration: X` equal to that Total | ||
| A compile without Total / Multishot / summing shot ranges is incomplete — fix it before the tool call. Full rules: `references/models/seedance.md` (+ `seedance25.md` for 2.5). | ||
| #### Optimization | ||
@@ -121,0 +130,0 @@ Point out the defects or "problems" of the original prompt that do not conform to the generation rules of large models (e.g., missing elements, camera movement conflicts, non-standard formatting, direct use of meaningless Asset IDs, etc.). |
@@ -18,4 +18,11 @@ <!-- PARITY: this file mirrors getSeedancePromptSystemPrompt() in | ||
| - **Rewrites never thin out or rename anchors.** "`@X anchors Odysseus`" is NOT a reference line, and `Odysseus` must never replace `@X` later. Every referenced asset keeps its exact literal tag plus a full role line on every rewrite. Re-use the exact DNA tag in every shot it participates in. A compile that dropped `@gal_suit` / `@yonatan` / `#Board` is a failed turn. | ||
| - **First line ALWAYS declares shot structure**: total duration, shot count, aspect ratio. Example: `Total: 15s / 6 shots / 16:9`. Put it at the BOTTOM of the prompt too. For connected narrative sequences the proven phrasing is `N connected cinematic shots, 15 seconds total, 16:9, Multishot ON` — use it and keep `Multishot ON` for any multi-shot story. | ||
| - **Then the Locked Intro** — `[GLOBAL LOOK]` / `[CAST]` / `[LOCATION]` — before any shot. A one-liner `same character throughout` is not a character lock. | ||
| - **DURATION + SHOT STRUCTURE (HARD — same as help widget):** every text-to-video / Elements prompt MUST open AND close with total duration, shot count, and aspect. Omit only for video-edit tasks (source duration is locked). Required first lines: | ||
| 1. `N connected cinematic shots, Xs total, AR, Multishot ON` | ||
| 2. `Total: Xs / N shots / AR` | ||
| Then Locked Intro, then `SHOT N — 0:00–0:02 — Size / camera` beats whose ranges **sum exactly to Xs**. Last line repeats `Total: Xs / N shots / AR`. | ||
| - Example (15s / 6 shots): `6 connected cinematic shots, 15 seconds total, 16:9, Multishot ON` + `Total: 15s / 6 shots / 16:9` | ||
| - UGC / phone vertical: `N connected phone shots, Xs total, 9:16, Multishot ON` (never the word "cinematic"). | ||
| - A prompt with only shot body and no Total / Multishot header is a **failed turn** — rewrite before calling `generate_*`. | ||
| - **MCP `duration` must match the Total line.** Pass `duration: X` (whole seconds) on `generate_video` / `generate_elements` / `generate_video_from_image` equal to the `Xs` in `Total: Xs / …`. Mismatch = wrong-length clip. | ||
| - **Then the Locked Intro** — `[GLOBAL LOOK]` / `[CAST]` / `[LOCATION]` (+ LOCATION MAP / CONTINUITY / PHYSICS for multi-shot) — before any shot. A one-liner `same character throughout` is not a character lock. | ||
| - **Order inside each shot**: Subject → Action → Camera → Constraints → (Audio/SFX if relevant). Do NOT restack GLOBAL LOOK style inside the shot. | ||
@@ -36,7 +43,7 @@ - **Prompt length**: simple single-idea pieces ~120–280 words. Locked-intro cinematic typically 400–900 words. Shorter than ~120 words = random output. The 8000-char cap below always wins. | ||
| After the Total line, every multi-shot prompt — and any piece with recurring people or a recurring place — opens with three locked blocks. Skip only for: true single-shot POV/orb, 3×3 grid-panel mode, or video-edit tasks. | ||
| After the Total lines, every multi-shot prompt — and any piece with recurring people or a recurring place — opens with the locked blocks. Skip only for: true single-shot POV/orb, 3×3 grid-panel mode, or video-edit tasks. | ||
| ``` | ||
| N connected cinematic shots, Xs total, AR, Multishot ON | ||
| Total: Xs / N shots / AR | ||
| N connected cinematic shots, Xs total, AR, Multishot ON | ||
@@ -53,6 +60,17 @@ [GLOBAL LOOK – LOCKED, APPLIES TO EVERY SHOT] | ||
| [LOCATION MAP] | ||
| Named seats / sides in SCREEN language (screen-left armchair, center couch, door camera-left). | ||
| [CONTINUITY – LOCKED ACROSS EVERY CUT] | ||
| Axis / camera side of the line. Screen direction. Eyelines. Floor props stay. Which hand holds what. No teleport. | ||
| [PHYSICS] | ||
| Weight into furniture, props resting, cloth/hair settle, no float. | ||
| SHOT 1 — 0:00–0:02 — Medium / camera position | ||
| (physical verbs, timed acting, quoted dialogue) | ||
| … | ||
| SHOT 2 — 0:02–0:05 — … | ||
| … (ranges MUST sum to Xs) | ||
| Total: Xs / N shots / AR | ||
| POSITIVE LOCKS: <2–4 sentences restating positions / mouth / optical signature> | ||
| ``` | ||
@@ -62,2 +80,14 @@ | ||
| ## OUTPUT CONTRACT (WINS — same as help widget) | ||
| ONE fenced prompt. Required shape or the turn failed: | ||
| 1. `N connected cinematic shots, Xs total, AR, Multishot ON` | ||
| 2. `Total: Xs / N shots / AR` | ||
| 3. GLOBAL LOOK → CAST → LOCATION → LOCATION MAP → CONTINUITY → PHYSICS (dense, before any shot) | ||
| 4. `SHOT 1 — 0:00–0:02 — …` through SHOT N; timecodes sum to Xs; continuity bridge after SHOT 1 | ||
| 5. Closing `Total: Xs / N shots / AR` + short POSITIVE LOCKS | ||
| 6. Tool call `duration` = Xs | ||
| FORBIDDEN: omitting Total / Multishot; "same character throughout" as the only lock; one fence per shot; `[0s]`/`[3s]` stubs; splitting a ≤15s story into multiple generations unless the user asks. | ||
| ## The 5 Formats | ||
@@ -64,0 +94,0 @@ |
@@ -26,18 +26,42 @@ <!-- PARITY: this file mirrors getSeedance25PromptSystemPrompt() in | ||
| ## Universal Rules (HARD — same as help widget OUTPUT CONTRACT) | ||
| - **First lines ALWAYS declare shot structure** (text-to-video / Elements / reference gen — NOT video-edit): | ||
| 1. `N connected cinematic shots, Xs total, AR, Multishot ON` | ||
| 2. `Total: Xs / N shots / AR` | ||
| Example: `12 connected cinematic shots, 30 seconds total, 16:9, Multishot ON` + `Total: 30s / 12 shots / 16:9` | ||
| UGC phone: `N connected phone shots, Xs total, 9:16, Multishot ON` — never the word "cinematic"; restate `9:16 vertical phone frame` in every shot. | ||
| - **Last line repeats** `Total: Xs / N shots / AR` + short POSITIVE LOCKS. | ||
| - **Shot timecodes MUST sum to Xs.** `SHOT 1 — 0:00–0:02` … through SHOT N ending at Xs. Never `[0s]` / `[3s]` stubs. | ||
| - **MCP `duration` = Xs** on the generate call. Mismatch is a failed turn. | ||
| - Duration range **4–30s**; shot count **≤30** in one generation. Do not split a ≤30s story into multiple 10s clips unless the user asks. | ||
| - Omit Total / Multishot / shot-count headers only for **video editing** (source duration locked) — use Edit Goal blocks instead. | ||
| ## Locked Intro (DEFAULT — same shape as Seedance 2) | ||
| After the Total line, every multi-shot cinematic opens with: | ||
| ``` | ||
| N connected cinematic shots, Xs total, AR, Multishot ON | ||
| Total: Xs / N shots / AR | ||
| ``` | ||
| [GLOBAL LOOK – LOCKED, APPLIES TO EVERY SHOT] | ||
| [CAST – IDENTICAL IN EVERY SHOT] | ||
| [LOCATION] | ||
| [LOCATION MAP] | ||
| [CONTINUITY – LOCKED ACROSS EVERY CUT] | ||
| [PHYSICS] | ||
| SHOT 1 — 0:00–0:02 — Medium / camera position | ||
| … | ||
| Total: Xs / N shots / AR | ||
| ``` | ||
| then timecoded `SHOT N — 0:00–0:02 — Medium / camera position` beats. Full skeleton, acting rules, and optical craft: `models/seedance.md`. | ||
| Full acting / continuity craft: `models/seedance.md`. Do not skip the Total lines or the three look/cast/location blocks. Do not restack GLOBAL LOOK inside shots. | ||
| 2.5 is where this format earns its keep: 15 shots timed to 30s, ~5k characters, one locked look so every cut matches camera / grade / cast. Do not skip the three blocks. Do not restack GLOBAL LOOK inside shots. | ||
| 2.5 is where this format earns its keep: 15 shots timed to 30s, ~5k characters, one locked look so every cut matches camera / grade / cast. | ||
| UGC / phone vertical (full craft: `workflows/ugc-smartphone.md`): NEVER write "cinematic". GLOBAL LOOK is phone-native. Use `N connected phone shots, Xs total, 9:16, Multishot ON` and restate `9:16 vertical phone frame` inside every shot. | ||
| ## OUTPUT CONTRACT (WINS — mirror of help widget) | ||
| ONE fenced prompt. Missing Total / Multishot / summing timecodes / matching `duration` = failed skill turn. | ||
| FORBIDDEN: "same character throughout" as the only lock; one fence per shot; claiming you followed the skill while omitting GLOBAL LOOK / CAST / LOCATION / Multishot ON. | ||
| ## Prompt length | ||
@@ -44,0 +68,0 @@ |
@@ -7,4 +7,6 @@ # Production Log — `.kolbo/production.md` | ||
| Every URL, id, and brief produced by a Kolbo MCP tool MUST be recorded in `.kolbo/production.md` in the user's workspace. This file — not chat history — is your source of truth for prior artifacts: URLs scattered across `tool_result` blobs are unreliable to re-scan and disappear entirely on context compaction. If the user named a model, write that name into `## 🎯 Now` and keep using that family on every follow-up — compaction is not permission to cheapest-swap. | ||
| Every URL, id, and brief produced by a Kolbo MCP tool MUST be recorded in `.kolbo/production.md` in the user's workspace. This file is **your** (agent) source of truth for prior artifacts across turns — not chat history (unreliable / compacted) and not a substitute for the user's **Library** gallery. URLs scattered across `tool_result` blobs are unreliable to re-scan and disappear entirely on context compaction. If the user named a model, write that name into `## 🎯 Now` and keep using that family on every follow-up — compaction is not permission to cheapest-swap. | ||
| **User vs agent SoT:** finished media for the human → **Library → This session**. Job state while in flight → `get_generation_status`. Your memory → this file. Chat cards are progress UI only. | ||
| ## When to READ it | ||
@@ -11,0 +13,0 @@ |
@@ -29,2 +29,6 @@ # Troubleshooting | ||
| ## Black / empty chat card while "Generating" | ||
| **Not a bug and not a failure.** The chat generation card's preview stays dark until the job has media. Library shows a K/logo placeholder tile for the same in-flight job. Do **not** re-fire `generate_*`, do **not** `list_media` to "find" it. Wait, or call `get_generation_status` once with `wait=true`. When complete, the result appears in Library (This session) — that is the user-facing source of truth. | ||
| ## "Rate limited" (429 errors) | ||
@@ -51,2 +55,4 @@ | ||
| **Credit guard:** after a generate tool returns `submitted` / `_timed_out`, do not keep thinking or editing files while the card spins — that burns coding credits. End the turn, or make **one** `wait=true` status call if you need the URLs next. | ||
| ## Failure envelope from `get_generation_status` | ||
@@ -53,0 +59,0 @@ |
@@ -66,7 +66,8 @@ # Visual DNA — Character / Style Consistency | ||
| After a generation tool returns its URLs, those URLs are **already** in the canvas (the desktop app's gallery panel) and in `.kolbo/production.md`. Do **NOT** call `list_media`, `get_media`, `get_media_stats`, `list_visual_dnas`, or `chat_send_message` with `media_urls` on those URLs just to "verify" or "fetch thumbnails of the results": | ||
| After a generation tool returns its URLs, those URLs are **already** in **Library** (right panel — This session) and in `.kolbo/production.md`. Do **NOT** call `list_media`, `get_media`, `get_media_stats`, `list_visual_dnas`, or `chat_send_message` with `media_urls` on those URLs just to "verify" or "fetch thumbnails of the results": | ||
| - It burns credits and time for zero new information. | ||
| - Every such tool call streams partial output into the session, which forces the desktop canvas to re-evaluate (visible flicker on the gallery tiles). | ||
| - Every such tool call streams partial output into the session, which forces Library to re-evaluate (visible flicker on the gallery tiles). | ||
| - The thumbnails returned by `list_media` / `get_media` are the SAME asset you just generated. | ||
| - A black chat generation card while `Generating` is normal — do not treat it as missing output. | ||
@@ -73,0 +74,0 @@ **Only call list/get media tools when:** |
| --- | ||
| version: 0.9.3 | ||
| version: 0.9.6 | ||
| name: kolbo | ||
@@ -23,4 +23,26 @@ description: | | ||
| > 🚫 **Don't dump generated URLs as bare text or markdown links in chat** — the UI already renders artifacts as a gallery tile + canvas. Refer by description ("the rainy scene"), store URLs in `.kolbo/production.md`. INLINE `` images ARE allowed for catalog-style replies (per-item thumbs in numbered lists). | ||
| > 🚫 **Don't dump generated URLs as bare text or markdown links in chat** — the UI already shows results in **Library** (right panel) and on the generation card. Refer by description ("the rainy scene"), store URLs in `.kolbo/production.md`. INLINE `` images ARE allowed for catalog-style replies (per-item thumbs in numbered lists). | ||
| ## ⚠️ Source of truth for generations (HARD RULE — read this) | ||
| Agents keep getting confused because three UIs show the same job. Use this map — never invent a fourth: | ||
| | Surface | What it is | Trust it for | | ||
| |---|---|---| | ||
| | **Library** (right panel — "This session" / "All media") | User-facing gallery of **completed** media | "Is the user's output there?" Point humans here. Finished clips/images land automatically — do **not** `list_media` / `get_media` just to verify a `generate_*` you just ran. | | ||
| | **Chat generation card** | Progress chrome while a job is in flight | Status badge only (`Generating` / done). A **black / empty preview while Generating is NORMAL** — the iframe has nothing to paint yet. It is **not** failure, not "lost", not a reason to re-fire. | | ||
| | **`get_generation_status`** (MCP) | Agent API for job state | Whether the server job is `completed` / `failed` / still running, and the final `urls`. This is your SoT for in-flight work — **not** the card pixels. | | ||
| | **`.kolbo/production.md`** | Your private log across turns | Ids + URLs after success. Compaction-safe memory — not the user gallery. | | ||
| **Do NOT:** | ||
| - Treat an empty/black chat card as "generation failed" or "nothing produced". | ||
| - Re-call `generate_*` because Library still shows a K/logo spinner tile while the job is running — that tile **is** the in-progress placeholder for the same job. | ||
| - Call `list_media` / `get_media` / `list_session_generations` to "check if it worked" after a generate you already submitted — that burns credits/context and can pollute the session. | ||
| - Tell the user to look at chat history for finals — tell them **Library → This session**. | ||
| **Do:** | ||
| - After `submitted` / `_timed_out`: end the turn, or one `get_generation_status(..., wait=true)`. | ||
| - When done: say the result is in Library; log URLs to `.kolbo/production.md`. | ||
| - If the user asks "where is it?" → Library (This session). If they ask "is it done?" and you don't have urls yet → `get_generation_status` once. | ||
| This file is the **always-loaded core**: tool inventory + universal hard rules + routing index. For any model-specific prompt rules, Visual DNA workflow, production log format, marketing workflow, cost validation, etc., **Read the matching `references/` file from the index below**. Don't try to remember the rules — load the file when you need them. | ||
@@ -222,3 +244,3 @@ | ||
| `Total: Xs / N shots / AR` → `[GLOBAL LOOK – LOCKED, APPLIES TO EVERY SHOT]` → `[CAST – IDENTICAL IN EVERY SHOT]` (each person is `@DNAName`) → `[LOCATION]` → `SHOT N — 0:00–0:02 — …` | ||
| `N connected cinematic shots, Xs total, AR, Multishot ON` → `Total: Xs / N shots / AR` → `[GLOBAL LOOK – LOCKED, APPLIES TO EVERY SHOT]` → `[CAST – IDENTICAL IN EVERY SHOT]` (each person is `@DNAName`) → `[LOCATION]` → LOCATION MAP / CONTINUITY / PHYSICS → `SHOT N — 0:00–0:02 — …` (ranges sum to Xs) → closing `Total: Xs / N shots / AR`. Pass MCP `duration: X` matching that Total. Omitting Total / Multishot is a failed compile — same contract as the Kolbo help widget. | ||
@@ -273,5 +295,9 @@ Write the beats at FULL DEPTH. The cap is 15,000 characters on Seedance 2.5 (10,000 on 2.0) — a 30s / 8+ shot compile should land around 4k–9k, and every beat carries its own camera move, a performance task for the speaker AND the listeners, prop/hand state, and the sound in that beat. A one-line shot beat is under-written; the structure alone is not the craft. Read `references/models/seedance25.md` before compiling. | ||
| 5. **Validate inputs** against model caps — see `references/workflows/cost-and-validation.md`. | ||
| 6. **How calls work**: each tool blocks until generation is fully complete. Images: seconds. Video: minutes. Multiple tool calls in one response run concurrently. On hosts with live widgets the tool instead returns `submitted` instantly — the card updates on its own; you only need `get_generation_status` when a follow-up step needs the output URLs. | ||
| 7. **Checking status — NEVER poll in a loop**: `get_generation_status` takes `wait=true` (blocks server-side until done, ~3 min) and `generation_ids` (check MANY generations in ONE call — returns `all_done` + which are still running). One `wait=true` call replaces any polling loop. If it comes back with some still processing, call it ONCE more with `wait=true` and the remaining ids. | ||
| 8. **Share the URL** after success. Never fabricate URLs. | ||
| 6. **How calls work**: each tool blocks until generation is fully complete. Images: seconds. Video: minutes. Multiple tool calls in one response run concurrently. On hosts with live widgets the tool instead returns `submitted` (or `_timed_out`) instantly — the card updates on its own. | ||
| 7. **🛑 After `submitted` / `_timed_out` — END THE TURN (credit guard)**: Do **not** keep thinking, writing skills, editing files, or planning "next steps" while a generation is still running. That burns the user's coding/chat credits for nothing. Either: | ||
| - **Stop immediately** after telling the user it's generating in Library / the card above (preferred when you do not need the output URLs yet), OR | ||
| - If the **next** required step needs those URLs, call `get_generation_status` **once** with `wait=true` (and `generation_ids` for a batch) as the **only** follow-up — no parallel Write/Edit/Think while it waits. | ||
| - A black preview on the chat card is expected until URLs exist — not a signal to retry. | ||
| 8. **Checking status — NEVER poll in a loop**: `get_generation_status` takes `wait=true` (blocks server-side until done, ~3 min) and `generation_ids` (check MANY generations in ONE call — returns `all_done` + which are still running). One `wait=true` call replaces any polling loop. If it comes back with some still processing, call it ONCE more with `wait=true` and the remaining ids. | ||
| 9. **Share the URL** after success. Never fabricate URLs. | ||
@@ -324,3 +350,4 @@ Model types for `list_models`: `text_to_img`, `image_editing`, `text_to_video`, `img_to_video`, `draw_to_video`, `video_to_video`, `elements`, `firstlastgenerations`, `lipsync-image`, `lipsync-video`, `music_gen`, `text_to_speech`, `text_to_sound`, `stt`, `text`, `3d_text_to_model`, `3d_image_to_model`, `3d_multi_image_to_model`, `3d_world`. | ||
| - `generate_image`: 30/min. All other generation tools: 10/min per type. 300/min global. `upload_media`: 300/min, no credit cost. | ||
| - **⚠️ NEVER re-fire a generation you already called.** Aborted / timed-out calls still process server-side. Run `get_generation_status` (with `wait=true`) before retrying. | ||
| - **⚠️ NEVER re-fire a generation you already called.** Aborted / timed-out / `submitted` calls still process server-side. Finish with `get_generation_status` (`wait=true`) — never a second `generate_*`. A black chat card or Library K-tile is not a missing job. | ||
| - **⚠️ NEVER keep working while a generation is in flight.** After `submitted` / `_timed_out`, end the turn or block on one `wait=true` status call. Writing production.md / skills / "merge decisions" while the card spins wastes coding credits. | ||
| - **Tracking a batch**: check ALL in-flight ids in ONE `get_generation_status` call with `generation_ids` + `wait=true`. Read `all_done` / `still_processing` from the response — do not check ids one by one, and never re-call without `wait`. | ||
@@ -394,5 +421,5 @@ - **Batch ≤10 items**: output ALL tool calls in one response — they run concurrently. | ||
| - **Catalog-style replies** (numbered lists of characters / scenes / products): embed `` so each item shows inline. | ||
| - **Conversational replies** ("4 shots ready"): keep prose short; canvas chip already shows gallery. | ||
| - **Conversational replies** ("4 shots ready"): keep prose short; Library already shows the gallery. | ||
| Avoid bare URL dumps and HTML `<table>` grids — canvas already provides a gallery. | ||
| Avoid bare URL dumps and HTML `<table>` grids — Library already provides a gallery. | ||
@@ -399,0 +426,0 @@ **After `generate_creative_director` completes** — share results as individual URLs, one per scene. Do NOT create an HTML grid artifact. |
@@ -1,1 +0,1 @@ | ||
| 0.9.3 | ||
| 0.9.6 |
Sorry, the diff of this file is not supported yet
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
171090600
0.03%