@kolbo/mcp 1.81.8 → 1.81.10
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@9c91cff, 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
|
|
|
@@ -30,6 +30,15 @@ Read [routing.md](references/filmmaking/routing.md) for the full decision rules.
|
|
|
30
30
|
| Revise one failed behavior without losing what worked | Workbench | `validation.md` and the relevant craft reference |
|
|
31
31
|
| Multi-scene, episode, commercial, music video, or feature workflow | Production | `production-bible.md`, `workflows.md`, `validation.md` |
|
|
32
32
|
|
|
33
|
+
Craft packs named in the table above (load only what the shot needs):
|
|
34
|
+
[scene-engine.md](references/filmmaking/scene-engine.md) ·
|
|
35
|
+
[asset-preproduction.md](references/filmmaking/asset-preproduction.md) ·
|
|
36
|
+
[acting-direction.md](references/filmmaking/acting-direction.md) ·
|
|
37
|
+
[blocking-continuity.md](references/filmmaking/blocking-continuity.md) ·
|
|
38
|
+
[cinematography.md](references/filmmaking/cinematography.md) ·
|
|
39
|
+
[physics-action.md](references/filmmaking/physics-action.md) ·
|
|
40
|
+
[audio-dialogue-music.md](references/filmmaking/audio-dialogue-music.md)
|
|
41
|
+
|
|
33
42
|
For Seedance 2.5, always read [seedance-2-5.md](references/models/seedance25.md) before final compilation. Treat capability numbers as a dated adapter snapshot and verify them against current provider/catalog truth when real money or production delivery depends on them.
|
|
34
43
|
|
|
35
44
|
## Keep two layers separate
|
package/src/apps/html.js
CHANGED
|
@@ -173,6 +173,9 @@ function bindPeekHits(root) {
|
|
|
173
173
|
};
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
|
+
// Whether THIS peek took the iframe fullscreen (vs. opening inside a card the
|
|
177
|
+
// user had already fullscreened) — only then does closing it hand the mode back.
|
|
178
|
+
var peekWentFullscreen = false;
|
|
176
179
|
function openPeek(url, kind, cap) {
|
|
177
180
|
if (!url) return;
|
|
178
181
|
var box = ensurePeek();
|
|
@@ -184,6 +187,23 @@ function openPeek(url, kind, cap) {
|
|
|
184
187
|
el('peek-cap').textContent = cap || '';
|
|
185
188
|
box.hidden = false;
|
|
186
189
|
if (window.kolbo && window.kolbo.notifySize) window.kolbo.notifySize();
|
|
190
|
+
// Go big when the host allows it: the overlay is ALREADY visible inside the
|
|
191
|
+
// card, so a host that refuses fullscreen (or never answers the request)
|
|
192
|
+
// still shows the preview — the failure mode is "smaller", never "nothing".
|
|
193
|
+
// Skip the request when the card itself is fullscreen; the overlay covers it.
|
|
194
|
+
if (!window.kolbo || !window.kolbo.requestDisplayMode) return;
|
|
195
|
+
if (document.documentElement.classList.contains('k-fullscreen')) return;
|
|
196
|
+
try {
|
|
197
|
+
window.kolbo.requestDisplayMode('fullscreen').then(function (res) {
|
|
198
|
+
// The user may have closed the peek before the host answered — hand the
|
|
199
|
+
// grant straight back instead of fullscreening an empty card.
|
|
200
|
+
if (!(res && res.mode === 'fullscreen')) return;
|
|
201
|
+
if (box.hidden) { window.kolbo.requestDisplayMode('inline').catch(function () {}); return; }
|
|
202
|
+
peekWentFullscreen = true;
|
|
203
|
+
document.documentElement.classList.add('k-peek-fs');
|
|
204
|
+
if (window.kolbo.setFullscreen) window.kolbo.setFullscreen(true);
|
|
205
|
+
}).catch(function () {});
|
|
206
|
+
} catch (e) {}
|
|
187
207
|
}
|
|
188
208
|
function closePeek() {
|
|
189
209
|
var box = el('peek');
|
|
@@ -192,6 +212,12 @@ function closePeek() {
|
|
|
192
212
|
el('peek-img').removeAttribute('src');
|
|
193
213
|
var vid = el('peek-video');
|
|
194
214
|
if (vid) { try { vid.pause(); } catch (e) {} vid.removeAttribute('src'); }
|
|
215
|
+
if (peekWentFullscreen) {
|
|
216
|
+
peekWentFullscreen = false;
|
|
217
|
+
document.documentElement.classList.remove('k-peek-fs');
|
|
218
|
+
try { window.kolbo.requestDisplayMode('inline').catch(function () {}); } catch (e) {}
|
|
219
|
+
if (window.kolbo.setFullscreen) window.kolbo.setFullscreen(false);
|
|
220
|
+
}
|
|
195
221
|
if (window.kolbo && window.kolbo.notifySize) window.kolbo.notifySize();
|
|
196
222
|
}
|
|
197
223
|
document.addEventListener('keydown', function (e) { if (e.key === 'Escape') closePeek(); });
|
package/src/apps/theme.js
CHANGED
|
@@ -155,6 +155,10 @@ body {
|
|
|
155
155
|
display: inline-flex; align-items: center; justify-content: center;
|
|
156
156
|
}
|
|
157
157
|
.k-peek-cap { font-size: 12px; color: var(--text-muted); text-align: center; max-width: 100%; word-break: break-word; }
|
|
158
|
+
/* Peek granted host fullscreen: the overlay owns the whole viewport, not the card. */
|
|
159
|
+
html.k-peek-fs, html.k-peek-fs body { height: 100%; overflow: hidden; }
|
|
160
|
+
html.k-peek-fs .k-peek { position: fixed; inset: 0; z-index: 50; }
|
|
161
|
+
html.k-peek-fs .k-peek img, html.k-peek-fs .k-peek video { max-height: calc(100vh - 72px); }
|
|
158
162
|
/* Visual DNA chips: the character's face, so you can see WHICH DNA is locked in. */
|
|
159
163
|
.k-dna-face { width: 18px; height: 18px; border-radius: 999px; object-fit: cover; margin-left: -3px; background: var(--border-strong); }
|
|
160
164
|
.k-dna-stack .k-dna-stack-item { display: inline-flex; }
|