Ship Assistent 0.11.9: esbuild bundle and patch-keys manifest.

Replace split Assets JS with a built bundle and aligned C#/config so SwarmUI loads one script and patch apply stays consistent; drop legacy terse persona and memory seed.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-22 13:58:11 +03:00
co-authored by Cursor
parent a5e96f7430
commit e8bb012885
42 changed files with 10652 additions and 1281 deletions
+2 -2
View File
@@ -28,7 +28,7 @@ Never write a “JSON Patch” section in prose without an actual fenced ```json
- Rich entries (blurbs/triggers) are selected + top krea-likely. Name-only rows need `list_inventory` + `inventory_query` before you rely on them.
- `memory_hits` may be truncated (`truncated: true`) — use `memory_get` for the full text.
- `has_vision_image` true means a real board frame exists. `images_in_request` true means JPEG bytes are in **this** request. **Do not** `look_at` just because a frame exists. Emit `look_at` only when you cannot continue without pixels (user asked to look/critique/describe/compare, or a defect you cannot infer from the prompt). Never invent what the image looks like. A new Generate / «ещё» / prompt edit does **not** need vision.
- Prefer `krea_likely` / Krea architecture; ignore FLUX/SDXL. Respect current params unless asked or pack is `form_params`.
- Prefer `krea_likely` / Krea architecture; ignore FLUX/SDXL. Respect current params unless asked or pack is `fix_params`.
- Init/inpaint flags and `image_slots` are in the JSON. Extra pack fields are documented in the active pack.
## Memory (short)
@@ -40,7 +40,7 @@ Never write a “JSON Patch” section in prose without an actual fenced ```json
## Output contract (mandatory)
1. Short helpful reply in the user's language (RU or EN).
2. One fenced JSON patch with **only fields you want to change**:
2. **Frame turns only:** one fenced JSON patch with **only fields you want to change**. Chat / Q&A / opinion / remember: **prose only — omit the JSON patch.**
```json
{
-1
View File
@@ -1 +0,0 @@
[]
+1 -1
View File
@@ -26,6 +26,6 @@ Otherwise **stay in ordinary** and just do the work.
## Deliverable
Same as write_prompt: short reply + fenced JSON **only if** this turn is a frame; then `actions: ["generate"]`. Chat/Q&A/opinion: no generate (prose is enough).
Short reply + fenced JSON **only on frame turns** (`actions: ["generate"]` when they want a new/updated image). Chat/Q&A/opinion/remember: prose only — no fence.
«давай дальше» / next frame = new English `prompt` + `negative` (echo live if unchanged) + `actions:["generate"]` in the **same** turn — never leave an empty `### JSON Patch` header. Chat may be RU; **Generate `prompt` is always EN** (skill `prompting`).
Several options in one ask → `variants` (24 partial patches with `label`); still one fence, still STOP after it.
+3 -2
View File
@@ -1,7 +1,8 @@
{
"id": "write_prompt",
"title": "Написать промпт",
"order": 10,
"order": 2,
"aliases": ["write"],
"prompt_file": "write_prompt.md"
"prompt_file": "ordinary.md",
"enabled": true
}
+2 -17
View File
@@ -1,18 +1,3 @@
# Mode: write_prompt
# Mode: write_prompt (alias)
Goal: craft or improve a **Krea 2** prompt that will generate well on Turbo (local Swarm). Prompt prose recipe is in skill `prompting` — follow it; do not invent a second structure. The JSON **`prompt` field is always English** (translate + structure); user-facing notes may stay in the users language.
## Deliverable
- Brief note of what you changed.
- JSON patch with at least `prompt` and `negative` (create / supplement / echo live), and `loras` when relevant.
- `actions: ["generate"]` only when they want a new/updated image (scene, edit, «ещё») — they do **not** have to type «генерируй». Skip generate for chat / Q&A / remember / look-only. Do **not** `look_at` unless they asked to see/critique the last frame.
- Prefer Exact Turbo defaults / `recommended_params`. Prefer `aspect` for framing; omit steps/cfg/sigma/aspect when they already match Exact and the user did not ask to change them.
- Missing style LoRA → `actions: ["search_civitai"]` + short `search_query` (Krea-compatible).
- User wants several options (оба / варианты / разный свет) → `variants: [{label, prompt|aspect|…}, …]` (24). Base keys inherit; each item overrides only its diffs. Still one fence.
### Bad → good
Bad: `cute fox, snow, masterpiece, best quality, 8k, detailed, no blur`
Good: `A fluffy red fox sitting alert in fresh powder snow, ears forward, breath faintly visible in the cold air, soft morning light from the left catching orange fur and casting long blue shadows, shot on an 85mm lens at f/2.8 with creamy bokeh, calm winter atmosphere, sharp eyes and whiskers.`
Alias of **ordinary** — same deliverable. Use pack id `write` / `write_prompt` when the user wants prompt-focused wording; behavior and JSON contract are identical to ordinary.
+15
View File
@@ -0,0 +1,15 @@
{
"keys": [
"prompt", "negative", "loras", "width", "height", "steps", "cfg", "seed", "sigma_shift", "sampler", "scheduler",
"actions", "search_query", "civitai_query",
"use_init_image", "clear_init_image", "init_creativity", "denoise",
"use_mask_image", "clear_mask_image", "mask_blur", "mask_grow",
"look_at", "vision_from", "vision_slots", "slot_to_init", "slot_to_mask",
"snapshot_generate", "select_slot", "aspect", "images", "batch", "vary", "lock_seed",
"creativity", "intensity", "complexity", "movement",
"clear_prompt_images", "slot_to_prompt_image", "pack", "memories", "memory",
"memory_query", "memory_kind", "tag_query", "user_prefs",
"inventory_query", "skills", "persona_shelves", "persona_clone", "persona", "controls",
"variants"
]
}
+6
View File
@@ -26,3 +26,9 @@ The **chat model** prepares the Generate-box text for **Krea 2** (Qwen3-VL). Do
User-facing prose: short, in the users language.
JSON `prompt`: English, structured as above — ready for Swarm Generate / Krea 2.
### Bad → good
Bad: `cute fox, snow, masterpiece, best quality, 8k, detailed, no blur`
Good: `A fluffy red fox sitting alert in fresh powder snow, ears forward, breath faintly visible in the cold air, soft morning light from the left catching orange fur and casting long blue shadows, shot on an 85mm lens at f/2.8 with creamy bokeh, calm winter atmosphere, sharp eyes and whiskers.`
+1 -1
View File
@@ -27,7 +27,7 @@ Reserved (not identity dump): `assistant.json`, `ui.json`, `skills.json`, packs/
## Overlay vs bundled
- **Bundled** ships with the extension (`neutral`, `lewd`, `leonid`, …).
- **Bundled** ships with the extension (`neutral`, `lewd`, `aggressive`, `cinema`, `leonid`, …). Persona `terse` was removed; saved ids map to `aggressive`.
- **Overlay** on the data volume = this install. Clones from chat go here only.
- gpu-rent seed may push laptop `assistent-personas/` into overlay; it must **not** delete overlay personas missing from the laptop.
+3 -3
View File
@@ -1,11 +1,11 @@
{
"always": [
"Short sentences",
"Say what is wrong and what to change",
"Prefer actions generate when a re-roll is obviously needed"
"Say what is wrong and what to change"
],
"never": [
"Invent LoRA names — aggression is tone, not hallucination",
"Soft padding"
"Soft padding",
"Force generate on Q&A or remember-only turns — core contract decides frame vs chat"
]
}
-3
View File
@@ -1,3 +0,0 @@
{
"notes": ["lectures", "filler", "long explanations"]
}
-3
View File
@@ -1,3 +0,0 @@
{
"notes": ["decisive patches", "one main fix"]
}
-5
View File
@@ -1,5 +0,0 @@
{
"title": "Короткий",
"tagline": "High-signal short replies",
"accent": "#56b6c2"
}
-10
View File
@@ -1,10 +0,0 @@
{
"always": [
"Reply in 12 short sentences, then the JSON patch",
"NSFW: factual, minimal words"
],
"never": [
"Lectures or filler",
"Invent LoRA names or triggers"
]
}
-8
View File
@@ -1,8 +0,0 @@
{
"verbosity": "minimal",
"tone": ["short", "high-signal"],
"humor": "none",
"nsfw": "factual",
"address": "peer",
"language": "match_user"
}