@vibeframe/cli 0.107.1 → 0.108.1

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.
@@ -85,6 +85,25 @@ export declare function isEpsilonOverlapFinding(finding: LintFinding): boolean;
85
85
  * findings pass through unchanged.
86
86
  */
87
87
  export declare function filterSubCompFalsePositives(findings: LintFinding[], isSubComposition: boolean): LintFinding[];
88
+ /**
89
+ * VibeFrame-side finding: inner phase clips inside a sub-composition.
90
+ *
91
+ * The producer's screenshot render mode does NOT toggle the visibility of
92
+ * `.clip` elements INSIDE a sub-composition by their `data-start` window —
93
+ * a scene split into clip phases (0-10s, 10-26s) renders BOTH phases
94
+ * simultaneously and text stacks on top of itself. Root index.html clips
95
+ * are unaffected (their windows work); this rule only applies to
96
+ * sub-composition internals. Phase changes must instead be driven by GSAP
97
+ * (animate the old phase out with autoAlpha, the new one in) inside
98
+ * full-window clips.
99
+ */
100
+ export declare function findInternalPhaseClipFindings(html: string): LintFinding[];
101
+ /**
102
+ * Append VibeFrame-side findings for sub-composition HTML. Call at every
103
+ * lint site (batch composer, scene_submit, scene repair, project lint) so
104
+ * all authoring paths share the exact same contract.
105
+ */
106
+ export declare function withVibeframeSubCompFindings(findings: LintFinding[], html: string, isSubComposition: boolean): LintFinding[];
88
107
  /**
89
108
  * Apply mechanical `--fix` rewrites for known-safe finding codes. Returns the
90
109
  * (possibly unchanged) HTML and the list of codes that were fixed at least
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @module _shared/scene-submit
3
+ *
4
+ * Host-authored scene submission — the missing half of agent-mode compose
5
+ * for hosts that cannot write files (Claude Desktop and other MCP-only
6
+ * surfaces). `build --mode agent` already returns a `needs-author` plan with
7
+ * per-beat compose prompts; this executor accepts the HTML the host agent
8
+ * authored, validates it with the SAME lint the batch composer uses, and
9
+ * writes `compositions/scene-<id>.html` on pass. On lint errors nothing is
10
+ * written and the findings are returned so the agent can fix and resubmit.
11
+ *
12
+ * Shared by the `vibe scene submit` CLI command and the `scene_submit`
13
+ * MCP/agent tool.
14
+ */
15
+ import { type LintFinding } from "./scene-lint.js";
16
+ export interface SceneSubmitOptions {
17
+ projectDir: string;
18
+ beatId: string;
19
+ /** Scene HTML — a bare `<template>` fragment, optionally ```html-fenced. */
20
+ html: string;
21
+ /** Lint only; never write. */
22
+ validateOnly?: boolean;
23
+ }
24
+ export interface SceneSubmitResult {
25
+ success: boolean;
26
+ beatId: string;
27
+ /** Project-relative path of the scene file. */
28
+ scenePath: string;
29
+ written: boolean;
30
+ /** Lint codes auto-repaired before validation. */
31
+ mechanicalFixes: string[];
32
+ lint: {
33
+ errorCount: number;
34
+ warningCount: number;
35
+ findings: LintFinding[];
36
+ };
37
+ warnings: string[];
38
+ retryWith: string[];
39
+ error?: string;
40
+ }
41
+ export declare function executeSceneSubmit(opts: SceneSubmitOptions): Promise<SceneSubmitResult>;
@@ -0,0 +1 @@
1
+ export {};
@@ -12,6 +12,8 @@ export interface StoryboardValidationResult {
12
12
  beats: Beat[];
13
13
  issues: StoryboardValidationIssue[];
14
14
  }
15
+ /** Beats beyond this render as static, overstuffed scenes. */
16
+ export declare const MAX_RECOMMENDED_BEAT_SEC = 15;
15
17
  export declare function validateStoryboardMarkdown(markdown: string): StoryboardValidationResult;
16
18
  export declare function getStoryboardBeat(markdown: string, beatId: string): Beat | null;
17
19
  export declare function setStoryboardCue(markdown: string, opts: {