@pixerate/editor 0.147.0 → 0.149.0
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/dist/agent/index.cjs +8 -4
- package/dist/agent/index.js +6 -2
- package/dist/animation-editor/effect-tools.d.cts +5 -0
- package/dist/animation-editor/effect-tools.d.ts +5 -0
- package/dist/animation-editor/index.cjs +4 -4
- package/dist/animation-editor/index.js +4 -4
- package/dist/animation-editor/playback.d.cts +3 -2
- package/dist/animation-editor/playback.d.ts +3 -2
- package/dist/animation-editor/tools.d.cts +5 -0
- package/dist/animation-editor/tools.d.ts +5 -0
- package/dist/chart/index.cjs +2 -2
- package/dist/chart/index.js +2 -2
- package/dist/chart/playback.d.cts +2 -2
- package/dist/chart/playback.d.ts +2 -2
- package/dist/chart/tools.d.cts +5 -0
- package/dist/chart/tools.d.ts +5 -0
- package/dist/{chunk-HUHBJWTD.js → chunk-3EVMUYF4.js} +16 -0
- package/dist/{chunk-D2ENR3LB.cjs → chunk-FR7GHH2K.cjs} +33 -17
- package/dist/{chunk-SA37RU2O.js → chunk-OOV64UEB.js} +1 -1
- package/dist/{chunk-AG2EXVCR.cjs → chunk-ZCFHPORF.cjs} +2 -2
- package/dist/commands/index.cjs +2 -2
- package/dist/commands/index.js +1 -1
- package/dist/effects/authoring-session.d.cts +25 -0
- package/dist/effects/authoring-session.d.ts +25 -0
- package/dist/effects/authoring-tools.d.cts +31 -0
- package/dist/effects/authoring-tools.d.ts +31 -0
- package/dist/effects/authoring.d.cts +152 -0
- package/dist/effects/authoring.d.ts +152 -0
- package/dist/effects/conformance.d.cts +2 -0
- package/dist/effects/conformance.d.ts +2 -0
- package/dist/effects/fake.d.cts +2 -0
- package/dist/effects/fake.d.ts +2 -0
- package/dist/effects/index.cjs +1216 -9
- package/dist/effects/index.d.cts +3 -0
- package/dist/effects/index.d.ts +3 -0
- package/dist/effects/index.js +1210 -3
- package/dist/effects/types.d.cts +9 -2
- package/dist/effects/types.d.ts +9 -2
- package/dist/effects/ui.d.cts +8 -0
- package/dist/effects/ui.d.ts +8 -0
- package/dist/image-editor/index.cjs +4 -4
- package/dist/image-editor/index.js +4 -4
- package/dist/image-editor/playback.d.cts +2 -2
- package/dist/image-editor/playback.d.ts +2 -2
- package/dist/image-editor/provider-effect-tools.d.cts +5 -0
- package/dist/image-editor/provider-effect-tools.d.ts +5 -0
- package/dist/image-editor/tools.d.cts +5 -0
- package/dist/image-editor/tools.d.ts +5 -0
- package/dist/paint-editor/effect-tools.d.cts +5 -0
- package/dist/paint-editor/effect-tools.d.ts +5 -0
- package/dist/paint-editor/index.cjs +3 -3
- package/dist/paint-editor/index.js +3 -3
- package/dist/paint-editor/playback.d.cts +2 -2
- package/dist/paint-editor/playback.d.ts +2 -2
- package/dist/paint-editor/tools.d.cts +5 -0
- package/dist/paint-editor/tools.d.ts +5 -0
- package/dist/tools/index.cjs +7 -3
- package/dist/tools/index.js +6 -2
- package/dist/tools/playback.d.cts +28 -0
- package/dist/tools/playback.d.ts +28 -0
- package/dist/video-editor/effect-tools.d.cts +5 -0
- package/dist/video-editor/effect-tools.d.ts +5 -0
- package/dist/video-editor/index.cjs +4 -4
- package/dist/video-editor/index.js +4 -4
- package/dist/video-editor/playback.d.cts +3 -2
- package/dist/video-editor/playback.d.ts +3 -2
- package/dist/video-editor/tools.d.cts +5 -0
- package/dist/video-editor/tools.d.ts +5 -0
- package/package.json +1 -1
- package/skills/README.md +1 -0
- package/skills/pixerate-effect-authoring/SKILL.md +80 -0
package/dist/effects/types.d.cts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { JsonSchema } from '../tools/schema.cjs';
|
|
10
10
|
import type { FlairSvgAnimation } from '../animation-editor/flair.cjs';
|
|
11
|
+
import type { EffectAuthoringSession, EffectAuthoringSource } from './authoring.cjs';
|
|
11
12
|
/** How an effect is drawn: a pixel shader, an animated vector picture, or motion applied to someone else's vector art. */
|
|
12
13
|
export type EffectKind = 'shader' | 'vector' | 'motion';
|
|
13
14
|
/**
|
|
@@ -166,8 +167,10 @@ export interface EffectProviderCapabilities {
|
|
|
166
167
|
supportsVector: boolean;
|
|
167
168
|
/** Largest width or height a renderer accepts (px). */
|
|
168
169
|
maxSize?: number;
|
|
170
|
+
/** Implements `openAuthoring`: effects can be edited, not only used. */
|
|
171
|
+
supportsAuthoring?: boolean;
|
|
169
172
|
}
|
|
170
|
-
type MaybePromise<T> = T | Promise<T>;
|
|
173
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
171
174
|
/**
|
|
172
175
|
* A source of effects. Implementations live outside this library (for example Flair's
|
|
173
176
|
* `flairEffects()`); `createFakeEffectProvider` is a small reference implementation.
|
|
@@ -194,5 +197,9 @@ export interface EffectProvider {
|
|
|
194
197
|
* effect cannot use with `EffectUnsupportedError`.
|
|
195
198
|
*/
|
|
196
199
|
applyVectorEffect?(id: string, target: EffectVectorTarget, values?: EffectValues): MaybePromise<EffectVectorMotion>;
|
|
200
|
+
/**
|
|
201
|
+
* Opens an effect for editing. Present when `capabilities.supportsAuthoring`. Unknown ids throw
|
|
202
|
+
* `UnknownEffectError`; an effect the provider cannot edit throws `EffectUnsupportedError`.
|
|
203
|
+
*/
|
|
204
|
+
openAuthoring?(from: EffectAuthoringSource): MaybePromise<EffectAuthoringSession>;
|
|
197
205
|
}
|
|
198
|
-
export {};
|
package/dist/effects/types.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { JsonSchema } from '../tools/schema.js';
|
|
10
10
|
import type { FlairSvgAnimation } from '../animation-editor/flair.js';
|
|
11
|
+
import type { EffectAuthoringSession, EffectAuthoringSource } from './authoring.js';
|
|
11
12
|
/** How an effect is drawn: a pixel shader, an animated vector picture, or motion applied to someone else's vector art. */
|
|
12
13
|
export type EffectKind = 'shader' | 'vector' | 'motion';
|
|
13
14
|
/**
|
|
@@ -166,8 +167,10 @@ export interface EffectProviderCapabilities {
|
|
|
166
167
|
supportsVector: boolean;
|
|
167
168
|
/** Largest width or height a renderer accepts (px). */
|
|
168
169
|
maxSize?: number;
|
|
170
|
+
/** Implements `openAuthoring`: effects can be edited, not only used. */
|
|
171
|
+
supportsAuthoring?: boolean;
|
|
169
172
|
}
|
|
170
|
-
type MaybePromise<T> = T | Promise<T>;
|
|
173
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
171
174
|
/**
|
|
172
175
|
* A source of effects. Implementations live outside this library (for example Flair's
|
|
173
176
|
* `flairEffects()`); `createFakeEffectProvider` is a small reference implementation.
|
|
@@ -194,5 +197,9 @@ export interface EffectProvider {
|
|
|
194
197
|
* effect cannot use with `EffectUnsupportedError`.
|
|
195
198
|
*/
|
|
196
199
|
applyVectorEffect?(id: string, target: EffectVectorTarget, values?: EffectValues): MaybePromise<EffectVectorMotion>;
|
|
200
|
+
/**
|
|
201
|
+
* Opens an effect for editing. Present when `capabilities.supportsAuthoring`. Unknown ids throw
|
|
202
|
+
* `UnknownEffectError`; an effect the provider cannot edit throws `EffectUnsupportedError`.
|
|
203
|
+
*/
|
|
204
|
+
openAuthoring?(from: EffectAuthoringSource): MaybePromise<EffectAuthoringSession>;
|
|
197
205
|
}
|
|
198
|
-
export {};
|
package/dist/effects/ui.d.cts
CHANGED
|
@@ -23,6 +23,14 @@ export declare const effectFieldValue: (field: ParameterField, value: unknown) =
|
|
|
23
23
|
* differ, for a transition's two sides).
|
|
24
24
|
*/
|
|
25
25
|
export declare function effectSamplePicture(width: number, height: number, variant?: number): EffectPixels;
|
|
26
|
+
/**
|
|
27
|
+
* Sample pictures for an effect's image inputs (`effectSamplePicture`; a transition's `to` gets
|
|
28
|
+
* the second variant), so previews of filters and transitions have something to change.
|
|
29
|
+
*/
|
|
30
|
+
export declare function effectSampleInputs(description: Pick<EffectDescription, 'inputs'>, size: {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
}): Record<string, EffectPixels>;
|
|
26
34
|
/**
|
|
27
35
|
* A small preview of an effect from the provider's own renderer: filters run on a sample picture,
|
|
28
36
|
* transitions go half way between two, generators and overlays draw at `time` (default half
|
package/dist/effects/ui.d.ts
CHANGED
|
@@ -23,6 +23,14 @@ export declare const effectFieldValue: (field: ParameterField, value: unknown) =
|
|
|
23
23
|
* differ, for a transition's two sides).
|
|
24
24
|
*/
|
|
25
25
|
export declare function effectSamplePicture(width: number, height: number, variant?: number): EffectPixels;
|
|
26
|
+
/**
|
|
27
|
+
* Sample pictures for an effect's image inputs (`effectSamplePicture`; a transition's `to` gets
|
|
28
|
+
* the second variant), so previews of filters and transitions have something to change.
|
|
29
|
+
*/
|
|
30
|
+
export declare function effectSampleInputs(description: Pick<EffectDescription, 'inputs'>, size: {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
}): Record<string, EffectPixels>;
|
|
26
34
|
/**
|
|
27
35
|
* A small preview of an effect from the provider's own renderer: filters run on a sample picture,
|
|
28
36
|
* transitions go half way between two, generators and overlays draw at `time` (default half
|
|
@@ -9300,12 +9300,12 @@ function planImageToolPlayback(tool, args) {
|
|
|
9300
9300
|
}
|
|
9301
9301
|
return steps.length ? steps : null;
|
|
9302
9302
|
}
|
|
9303
|
-
function withImagePlayback(provider, surface
|
|
9303
|
+
function withImagePlayback(provider, surface) {
|
|
9304
9304
|
const plan = (tool) => tool.plan || tool.playback !== void 0 ? tool : { ...tool, plan: (args) => planImageToolPlayback(tool.name, args) };
|
|
9305
9305
|
const tools = provider.tools;
|
|
9306
9306
|
return {
|
|
9307
9307
|
...provider,
|
|
9308
|
-
playbackSurface: _nullishCoalesce(provider.playbackSurface, () => (
|
|
9308
|
+
playbackSurface: _nullishCoalesce(_nullishCoalesce(surface, () => ( provider.playbackSurface)), () => ( "image")),
|
|
9309
9309
|
tools: typeof tools === "function" ? () => tools().map(plan) : tools.map(plan)
|
|
9310
9310
|
};
|
|
9311
9311
|
}
|
|
@@ -13275,7 +13275,7 @@ function createImageEditorToolProvider(controller, options = {}) {
|
|
|
13275
13275
|
..._chunkGNK7SESQcjs.createPigmentTools.call(void 0, ),
|
|
13276
13276
|
...createImagePsdTools(controller)
|
|
13277
13277
|
]
|
|
13278
|
-
});
|
|
13278
|
+
}, options.playbackSurface);
|
|
13279
13279
|
}
|
|
13280
13280
|
|
|
13281
13281
|
// src/image-editor/curve-editing.ts
|
|
@@ -15172,7 +15172,7 @@ function createImageEffectsToolProvider(controller, options = {}) {
|
|
|
15172
15172
|
}
|
|
15173
15173
|
}
|
|
15174
15174
|
]
|
|
15175
|
-
}));
|
|
15175
|
+
}), options.playbackSurface);
|
|
15176
15176
|
}
|
|
15177
15177
|
|
|
15178
15178
|
|
|
@@ -9300,12 +9300,12 @@ function planImageToolPlayback(tool, args) {
|
|
|
9300
9300
|
}
|
|
9301
9301
|
return steps.length ? steps : null;
|
|
9302
9302
|
}
|
|
9303
|
-
function withImagePlayback(provider, surface
|
|
9303
|
+
function withImagePlayback(provider, surface) {
|
|
9304
9304
|
const plan = (tool) => tool.plan || tool.playback !== void 0 ? tool : { ...tool, plan: (args) => planImageToolPlayback(tool.name, args) };
|
|
9305
9305
|
const tools = provider.tools;
|
|
9306
9306
|
return {
|
|
9307
9307
|
...provider,
|
|
9308
|
-
playbackSurface: provider.playbackSurface ??
|
|
9308
|
+
playbackSurface: surface ?? provider.playbackSurface ?? "image",
|
|
9309
9309
|
tools: typeof tools === "function" ? () => tools().map(plan) : tools.map(plan)
|
|
9310
9310
|
};
|
|
9311
9311
|
}
|
|
@@ -13275,7 +13275,7 @@ function createImageEditorToolProvider(controller, options = {}) {
|
|
|
13275
13275
|
...createPigmentTools(),
|
|
13276
13276
|
...createImagePsdTools(controller)
|
|
13277
13277
|
]
|
|
13278
|
-
});
|
|
13278
|
+
}, options.playbackSurface);
|
|
13279
13279
|
}
|
|
13280
13280
|
|
|
13281
13281
|
// src/image-editor/curve-editing.ts
|
|
@@ -15172,7 +15172,7 @@ function createImageEffectsToolProvider(controller, options = {}) {
|
|
|
15172
15172
|
}
|
|
15173
15173
|
}
|
|
15174
15174
|
]
|
|
15175
|
-
}));
|
|
15175
|
+
}), options.playbackSurface);
|
|
15176
15176
|
}
|
|
15177
15177
|
export {
|
|
15178
15178
|
ADJUSTMENT_KEYS,
|
|
@@ -16,7 +16,7 @@ export declare function createImagePlaybackLocator(controller: Pick<ImageEditorC
|
|
|
16
16
|
export declare function planImageToolPlayback(tool: string, args: Record<string, any>): PlaybackStep[] | null;
|
|
17
17
|
/**
|
|
18
18
|
* Gives an image tool provider agent playback: each write tool plans its steps with
|
|
19
|
-
* `planImageToolPlayback` and every call plays on
|
|
20
|
-
* `ImageEditor` attaches itself).
|
|
19
|
+
* `planImageToolPlayback` and every call plays on `surface`. An explicit `surface` wins over the
|
|
20
|
+
* provider's own `playbackSurface`; with neither, it is `image` (where `ImageEditor` attaches itself).
|
|
21
21
|
*/
|
|
22
22
|
export declare function withImagePlayback(provider: AgentToolProvider, surface?: string): AgentToolProvider;
|
|
@@ -16,7 +16,7 @@ export declare function createImagePlaybackLocator(controller: Pick<ImageEditorC
|
|
|
16
16
|
export declare function planImageToolPlayback(tool: string, args: Record<string, any>): PlaybackStep[] | null;
|
|
17
17
|
/**
|
|
18
18
|
* Gives an image tool provider agent playback: each write tool plans its steps with
|
|
19
|
-
* `planImageToolPlayback` and every call plays on
|
|
20
|
-
* `ImageEditor` attaches itself).
|
|
19
|
+
* `planImageToolPlayback` and every call plays on `surface`. An explicit `surface` wins over the
|
|
20
|
+
* provider's own `playbackSurface`; with neither, it is `image` (where `ImageEditor` attaches itself).
|
|
21
21
|
*/
|
|
22
22
|
export declare function withImagePlayback(provider: AgentToolProvider, surface?: string): AgentToolProvider;
|
|
@@ -16,6 +16,11 @@ export interface ImageEffectsToolProviderOptions {
|
|
|
16
16
|
namespace?: string;
|
|
17
17
|
/** The document cannot be edited: write tools are hidden. A string is the reason. */
|
|
18
18
|
readOnly?: boolean | string | (() => boolean | string);
|
|
19
|
+
/**
|
|
20
|
+
* The agent playback surface its calls are acted out on (default `image`, where `ImageEditor` attaches).
|
|
21
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
22
|
+
*/
|
|
23
|
+
playbackSurface?: string;
|
|
19
24
|
}
|
|
20
25
|
/** A layer's provider effects as the tools report them: an effect layer's own effect, then its effect smart filters. */
|
|
21
26
|
export declare function imageLayerAppliedEffects(layer: ImageLayer): AppliedEffectInfo[];
|
|
@@ -16,6 +16,11 @@ export interface ImageEffectsToolProviderOptions {
|
|
|
16
16
|
namespace?: string;
|
|
17
17
|
/** The document cannot be edited: write tools are hidden. A string is the reason. */
|
|
18
18
|
readOnly?: boolean | string | (() => boolean | string);
|
|
19
|
+
/**
|
|
20
|
+
* The agent playback surface its calls are acted out on (default `image`, where `ImageEditor` attaches).
|
|
21
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
22
|
+
*/
|
|
23
|
+
playbackSurface?: string;
|
|
19
24
|
}
|
|
20
25
|
/** A layer's provider effects as the tools report them: an effect layer's own effect, then its effect smart filters. */
|
|
21
26
|
export declare function imageLayerAppliedEffects(layer: ImageLayer): AppliedEffectInfo[];
|
|
@@ -5,6 +5,11 @@ export interface ImageEditorToolProviderOptions {
|
|
|
5
5
|
id?: string;
|
|
6
6
|
/** Tool-name prefix (`<namespace>__<name>`); defaults to the provider id, `''` for bare names. */
|
|
7
7
|
namespace?: string;
|
|
8
|
+
/**
|
|
9
|
+
* The agent playback surface its calls are acted out on (default `image`, where `ImageEditor` attaches).
|
|
10
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
11
|
+
*/
|
|
12
|
+
playbackSurface?: string;
|
|
8
13
|
}
|
|
9
14
|
/**
|
|
10
15
|
* Agent tools for an image editor, for a `ToolRegistry`:
|
|
@@ -5,6 +5,11 @@ export interface ImageEditorToolProviderOptions {
|
|
|
5
5
|
id?: string;
|
|
6
6
|
/** Tool-name prefix (`<namespace>__<name>`); defaults to the provider id, `''` for bare names. */
|
|
7
7
|
namespace?: string;
|
|
8
|
+
/**
|
|
9
|
+
* The agent playback surface its calls are acted out on (default `image`, where `ImageEditor` attaches).
|
|
10
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
11
|
+
*/
|
|
12
|
+
playbackSurface?: string;
|
|
8
13
|
}
|
|
9
14
|
/**
|
|
10
15
|
* Agent tools for an image editor, for a `ToolRegistry`:
|
|
@@ -13,6 +13,11 @@ export interface PaintEffectsToolProviderOptions {
|
|
|
13
13
|
namespace?: string;
|
|
14
14
|
/** The painting cannot be edited: write tools are hidden. A string is the reason. */
|
|
15
15
|
readOnly?: boolean | string | (() => boolean | string);
|
|
16
|
+
/**
|
|
17
|
+
* The agent playback surface its calls are acted out on (default `paint`, where `PaintEditor` attaches).
|
|
18
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
19
|
+
*/
|
|
20
|
+
playbackSurface?: string;
|
|
16
21
|
}
|
|
17
22
|
/** The target id of the effect paper. */
|
|
18
23
|
export declare const PAPER_TARGET = "paper";
|
|
@@ -13,6 +13,11 @@ export interface PaintEffectsToolProviderOptions {
|
|
|
13
13
|
namespace?: string;
|
|
14
14
|
/** The painting cannot be edited: write tools are hidden. A string is the reason. */
|
|
15
15
|
readOnly?: boolean | string | (() => boolean | string);
|
|
16
|
+
/**
|
|
17
|
+
* The agent playback surface its calls are acted out on (default `paint`, where `PaintEditor` attaches).
|
|
18
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
19
|
+
*/
|
|
20
|
+
playbackSurface?: string;
|
|
16
21
|
}
|
|
17
22
|
/** The target id of the effect paper. */
|
|
18
23
|
export declare const PAPER_TARGET = "paper";
|
|
@@ -6046,7 +6046,7 @@ function withPaintPlayback(provider, options) {
|
|
|
6046
6046
|
const tools = provider.tools;
|
|
6047
6047
|
return {
|
|
6048
6048
|
...provider,
|
|
6049
|
-
playbackSurface: _nullishCoalesce(_nullishCoalesce(
|
|
6049
|
+
playbackSurface: _nullishCoalesce(_nullishCoalesce(options.surface, () => ( provider.playbackSurface)), () => ( "paint")),
|
|
6050
6050
|
tools: typeof tools === "function" ? () => tools().map(plan) : tools.map(plan)
|
|
6051
6051
|
};
|
|
6052
6052
|
}
|
|
@@ -7836,7 +7836,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7836
7836
|
description: "Natural-media painting: paper and grain, dry and wet brushes, the brush library, strokes as data, pigment mixing, stencils, guides, layers and export.",
|
|
7837
7837
|
skill: "pixerate-paint-editor",
|
|
7838
7838
|
tools
|
|
7839
|
-
}, { director: !!options.director });
|
|
7839
|
+
}, { director: !!options.director, surface: options.playbackSurface });
|
|
7840
7840
|
}
|
|
7841
7841
|
|
|
7842
7842
|
// src/paint-editor/ui.ts
|
|
@@ -8554,7 +8554,7 @@ function createPaintEffectsToolProvider(controller, options = {}) {
|
|
|
8554
8554
|
}
|
|
8555
8555
|
}
|
|
8556
8556
|
]
|
|
8557
|
-
}), { director: false });
|
|
8557
|
+
}), { director: false, surface: options.playbackSurface });
|
|
8558
8558
|
}
|
|
8559
8559
|
|
|
8560
8560
|
|
|
@@ -6046,7 +6046,7 @@ function withPaintPlayback(provider, options) {
|
|
|
6046
6046
|
const tools = provider.tools;
|
|
6047
6047
|
return {
|
|
6048
6048
|
...provider,
|
|
6049
|
-
playbackSurface:
|
|
6049
|
+
playbackSurface: options.surface ?? provider.playbackSurface ?? "paint",
|
|
6050
6050
|
tools: typeof tools === "function" ? () => tools().map(plan) : tools.map(plan)
|
|
6051
6051
|
};
|
|
6052
6052
|
}
|
|
@@ -7836,7 +7836,7 @@ function createPaintEditorToolProvider(controller, options = {}) {
|
|
|
7836
7836
|
description: "Natural-media painting: paper and grain, dry and wet brushes, the brush library, strokes as data, pigment mixing, stencils, guides, layers and export.",
|
|
7837
7837
|
skill: "pixerate-paint-editor",
|
|
7838
7838
|
tools
|
|
7839
|
-
}, { director: !!options.director });
|
|
7839
|
+
}, { director: !!options.director, surface: options.playbackSurface });
|
|
7840
7840
|
}
|
|
7841
7841
|
|
|
7842
7842
|
// src/paint-editor/ui.ts
|
|
@@ -8554,7 +8554,7 @@ function createPaintEffectsToolProvider(controller, options = {}) {
|
|
|
8554
8554
|
}
|
|
8555
8555
|
}
|
|
8556
8556
|
]
|
|
8557
|
-
}), { director: false });
|
|
8557
|
+
}), { director: false, surface: options.playbackSurface });
|
|
8558
8558
|
}
|
|
8559
8559
|
export {
|
|
8560
8560
|
BLEND_MENU_GROUPS,
|
|
@@ -7,8 +7,8 @@ export declare function paintPlaybackPanel(tool: string): PaintPlaybackPanel | n
|
|
|
7
7
|
/** The cursor steps for one paint tool call (by bare name), or null to fall back to the ids it names. */
|
|
8
8
|
export declare function planPaintToolPlayback(tool: string, _args: Record<string, any>): PlaybackStep[] | null;
|
|
9
9
|
/**
|
|
10
|
-
* Gives a paint tool provider agent playback on `surface
|
|
11
|
-
* attaches). With a director, strokes, fills and replays play through it (`playback: 'self'`).
|
|
10
|
+
* Gives a paint tool provider agent playback on `surface`. An explicit `surface` wins over the
|
|
11
|
+
* provider's own `playbackSurface`; with neither, it is `paint` (where `PaintEditor` attaches). With a director, strokes, fills and replays play through it (`playback: 'self'`).
|
|
12
12
|
*/
|
|
13
13
|
export declare function withPaintPlayback(provider: AgentToolProvider, options: {
|
|
14
14
|
director: boolean;
|
|
@@ -7,8 +7,8 @@ export declare function paintPlaybackPanel(tool: string): PaintPlaybackPanel | n
|
|
|
7
7
|
/** The cursor steps for one paint tool call (by bare name), or null to fall back to the ids it names. */
|
|
8
8
|
export declare function planPaintToolPlayback(tool: string, _args: Record<string, any>): PlaybackStep[] | null;
|
|
9
9
|
/**
|
|
10
|
-
* Gives a paint tool provider agent playback on `surface
|
|
11
|
-
* attaches). With a director, strokes, fills and replays play through it (`playback: 'self'`).
|
|
10
|
+
* Gives a paint tool provider agent playback on `surface`. An explicit `surface` wins over the
|
|
11
|
+
* provider's own `playbackSurface`; with neither, it is `paint` (where `PaintEditor` attaches). With a director, strokes, fills and replays play through it (`playback: 'self'`).
|
|
12
12
|
*/
|
|
13
13
|
export declare function withPaintPlayback(provider: AgentToolProvider, options: {
|
|
14
14
|
director: boolean;
|
|
@@ -20,6 +20,11 @@ export interface PaintEditorToolProviderOptions {
|
|
|
20
20
|
director?: PaintDirector;
|
|
21
21
|
/** The agent's cursor (default `{ id: 'agent', name: 'Agent' }`). */
|
|
22
22
|
actor?: PresenceActorInfo;
|
|
23
|
+
/**
|
|
24
|
+
* The agent playback surface its calls are acted out on (default `paint`, where `PaintEditor` attaches).
|
|
25
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
26
|
+
*/
|
|
27
|
+
playbackSurface?: string;
|
|
23
28
|
}
|
|
24
29
|
/** Agent tools for one paint editor. */
|
|
25
30
|
export declare function createPaintEditorToolProvider(controller: PaintEditorController, options?: PaintEditorToolProviderOptions): AgentToolProvider;
|
|
@@ -20,6 +20,11 @@ export interface PaintEditorToolProviderOptions {
|
|
|
20
20
|
director?: PaintDirector;
|
|
21
21
|
/** The agent's cursor (default `{ id: 'agent', name: 'Agent' }`). */
|
|
22
22
|
actor?: PresenceActorInfo;
|
|
23
|
+
/**
|
|
24
|
+
* The agent playback surface its calls are acted out on (default `paint`, where `PaintEditor` attaches).
|
|
25
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
26
|
+
*/
|
|
27
|
+
playbackSurface?: string;
|
|
23
28
|
}
|
|
24
29
|
/** Agent tools for one paint editor. */
|
|
25
30
|
export declare function createPaintEditorToolProvider(controller: PaintEditorController, options?: PaintEditorToolProviderOptions): AgentToolProvider;
|
package/dist/tools/index.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkZCFHPORFcjs = require('../chunk-ZCFHPORF.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -38,7 +38,9 @@ var _chunkY4BWZB6Jcjs = require('../chunk-Y4BWZB6J.cjs');
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
var _chunkFR7GHH2Kcjs = require('../chunk-FR7GHH2K.cjs');
|
|
42
44
|
|
|
43
45
|
|
|
44
46
|
|
|
@@ -171,4 +173,6 @@ var _chunkWOFXZ3XUcjs = require('../chunk-WOFXZ3XU.cjs');
|
|
|
171
173
|
|
|
172
174
|
|
|
173
175
|
|
|
174
|
-
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
exports.AgentPlayback = _chunkFR7GHH2Kcjs.AgentPlayback; exports.CAPTURE_EXCLUDE_SELECTOR = _chunkSVFEVKLFcjs.CAPTURE_EXCLUDE_SELECTOR; exports.CAPTURE_OVERLAY_SELECTORS = _chunkSVFEVKLFcjs.CAPTURE_OVERLAY_SELECTORS; exports.EDITOR_CANVAS_TOOLS = _chunkSVFEVKLFcjs.EDITOR_CANVAS_TOOLS; exports.EDITOR_MCP_TOOLS = _chunkSVFEVKLFcjs.EDITOR_MCP_TOOLS; exports.EDITOR_PROMPT_TOOLS = _chunkSVFEVKLFcjs.EDITOR_PROMPT_TOOLS; exports.EDIT_OPERATION_REQUIRED_ARGUMENTS = _chunkSVFEVKLFcjs.EDIT_OPERATION_REQUIRED_ARGUMENTS; exports.EXPORT_EXCLUDED_SELECTORS = _chunkSVFEVKLFcjs.EXPORT_EXCLUDED_SELECTORS; exports.JSON_RPC_ERRORS = _chunkY4BWZB6Jcjs.JSON_RPC_ERRORS; exports.MCP_PROTOCOL_VERSIONS = _chunkY4BWZB6Jcjs.MCP_PROTOCOL_VERSIONS; exports.MCP_TOOL_CANVAS_ADD_NODE = _chunkSVFEVKLFcjs.MCP_TOOL_CANVAS_ADD_NODE; exports.MCP_TOOL_CANVAS_CONNECT = _chunkSVFEVKLFcjs.MCP_TOOL_CANVAS_CONNECT; exports.MCP_TOOL_CANVAS_HIGHLIGHT = _chunkSVFEVKLFcjs.MCP_TOOL_CANVAS_HIGHLIGHT; exports.MCP_TOOL_CANVAS_LAYOUT = _chunkSVFEVKLFcjs.MCP_TOOL_CANVAS_LAYOUT; exports.MCP_TOOL_CANVAS_REMOVE_NODES = _chunkSVFEVKLFcjs.MCP_TOOL_CANVAS_REMOVE_NODES; exports.MCP_TOOL_CANVAS_SELECT = _chunkSVFEVKLFcjs.MCP_TOOL_CANVAS_SELECT; exports.MCP_TOOL_CANVAS_UPDATE_NODE = _chunkSVFEVKLFcjs.MCP_TOOL_CANVAS_UPDATE_NODE; exports.MCP_TOOL_EDIT_CANVAS = _chunkSVFEVKLFcjs.MCP_TOOL_EDIT_CANVAS; exports.MCP_TOOL_EDIT_PROMPT = _chunkSVFEVKLFcjs.MCP_TOOL_EDIT_PROMPT; exports.MCP_TOOL_GET_EDITOR_STATE = _chunkSVFEVKLFcjs.MCP_TOOL_GET_EDITOR_STATE; exports.MCP_TOOL_PROMPT_INSERT_TEXT = _chunkSVFEVKLFcjs.MCP_TOOL_PROMPT_INSERT_TEXT; exports.MCP_TOOL_PROMPT_REPLACE_RANGE = _chunkSVFEVKLFcjs.MCP_TOOL_PROMPT_REPLACE_RANGE; exports.MCP_TOOL_PROMPT_SELECT = _chunkSVFEVKLFcjs.MCP_TOOL_PROMPT_SELECT; exports.MCP_TOOL_PROMPT_SET_VARIABLE = _chunkSVFEVKLFcjs.MCP_TOOL_PROMPT_SET_VARIABLE; exports.MCP_TOOL_VIEW_EDITOR = _chunkSVFEVKLFcjs.MCP_TOOL_VIEW_EDITOR; exports.PRESENCE_COLORS = _chunkUJGAA6AKcjs.PRESENCE_COLORS; exports.PerformanceQueue = _chunkUJGAA6AKcjs.PerformanceQueue; exports.PresenceStore = _chunkUJGAA6AKcjs.PresenceStore; exports.TOOL_BRIDGE_DEFAULT_PORT = _chunkY4BWZB6Jcjs.TOOL_BRIDGE_DEFAULT_PORT; exports.TOOL_BRIDGE_PROTOCOL = _chunkY4BWZB6Jcjs.TOOL_BRIDGE_PROTOCOL; exports.TOOL_DISCOVERY_TOOLS = _chunkY4BWZB6Jcjs.TOOL_DISCOVERY_TOOLS; exports.TOOL_NAMESPACE_SEPARATOR = _chunkY4BWZB6Jcjs.TOOL_NAMESPACE_SEPARATOR; exports.ToolRegistry = _chunkY4BWZB6Jcjs.ToolRegistry; exports.ToolRegistryError = _chunkY4BWZB6Jcjs.ToolRegistryError; exports.ToolRegistryView = _chunkY4BWZB6Jcjs.ToolRegistryView; exports.UNSAFE_JSON_KEYS = _chunk2BSBFBOAcjs.UNSAFE_JSON_KEYS; exports.baseToolName = _chunkY4BWZB6Jcjs.baseToolName; exports.captureInputSchema = _chunkN2FGYZ4Qcjs.captureInputSchema; exports.captureOutputSize = _chunkN2FGYZ4Qcjs.captureOutputSize; exports.cloneElementWithStyles = _chunkSVFEVKLFcjs.cloneElementWithStyles; exports.connectToolBridge = _chunkY4BWZB6Jcjs.connectToolBridge; exports.createAgentPlayback = _chunkFR7GHH2Kcjs.createAgentPlayback; exports.createCaptureTool = _chunkN2FGYZ4Qcjs.createCaptureTool; exports.createCaptureToolProvider = _chunkN2FGYZ4Qcjs.createCaptureToolProvider; exports.createElementCaptureSurface = _chunkSVFEVKLFcjs.createElementCaptureSurface; exports.createInstantPresenceClock = _chunkUJGAA6AKcjs.createInstantPresenceClock; exports.createMcpServer = _chunkY4BWZB6Jcjs.createMcpServer; exports.createPlaybackToolProvider = _chunkFR7GHH2Kcjs.createPlaybackToolProvider; exports.createToolRegistry = _chunkY4BWZB6Jcjs.createToolRegistry; exports.derivePlaybackSteps = _chunkFR7GHH2Kcjs.derivePlaybackSteps; exports.elementToSvg = _chunkSVFEVKLFcjs.elementToSvg; exports.errorResult = _chunkY4BWZB6Jcjs.errorResult; exports.isUnsafeJsonKey = _chunk2BSBFBOAcjs.isUnsafeJsonKey; exports.listSkills = _chunkY4BWZB6Jcjs.listSkills; exports.locatePlaybackChrome = _chunkFR7GHH2Kcjs.locatePlaybackChrome; exports.parseSkillFrontmatter = _chunkY4BWZB6Jcjs.parseSkillFrontmatter; exports.playbackRectFromClient = _chunkFR7GHH2Kcjs.playbackRectFromClient; exports.playbackRefsFromArgs = _chunkFR7GHH2Kcjs.playbackRefsFromArgs; exports.playbackRefsFromResult = _chunkFR7GHH2Kcjs.playbackRefsFromResult; exports.rasterizeElement = _chunkSVFEVKLFcjs.rasterizeElement; exports.readSkillFile = _chunkY4BWZB6Jcjs.readSkillFile; exports.readingTime = _chunkFR7GHH2Kcjs.readingTime; exports.realPresenceClock = _chunkUJGAA6AKcjs.realPresenceClock; exports.resolveCaptureRequest = _chunkN2FGYZ4Qcjs.resolveCaptureRequest; exports.runToolScript = _chunkZCFHPORFcjs.runToolScript; exports.searchTokens = _chunkY4BWZB6Jcjs.searchTokens; exports.searchTools = _chunkY4BWZB6Jcjs.searchTools; exports.stripPrototypeKeys = _chunk2BSBFBOAcjs.stripPrototypeKeys; exports.summarize = _chunkY4BWZB6Jcjs.summarize; exports.toCapturedImageData = _chunkN2FGYZ4Qcjs.toCapturedImageData; exports.toToolResult = _chunkY4BWZB6Jcjs.toToolResult; exports.toolResultError = _chunkZCFHPORFcjs.toolResultError; exports.toolResultValue = _chunkZCFHPORFcjs.toolResultValue; exports.toolsetInstructions = _chunkY4BWZB6Jcjs.toolsetInstructions; exports.toolsetName = _chunkY4BWZB6Jcjs.toolsetName; exports.tweenPresenceCursor = _chunkUJGAA6AKcjs.tweenPresenceCursor; exports.unionCaptureRects = _chunkN2FGYZ4Qcjs.unionCaptureRects; exports.unionRects = _chunkFR7GHH2Kcjs.unionRects; exports.unknownToolMessage = _chunkY4BWZB6Jcjs.unknownToolMessage; exports.validateJsonSchema = _chunkWOFXZ3XUcjs.validateJsonSchema;
|
package/dist/tools/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
runToolScript,
|
|
3
3
|
toolResultError,
|
|
4
4
|
toolResultValue
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-OOV64UEB.js";
|
|
6
6
|
import {
|
|
7
7
|
JSON_RPC_ERRORS,
|
|
8
8
|
MCP_PROTOCOL_VERSIONS,
|
|
@@ -34,11 +34,13 @@ import {
|
|
|
34
34
|
createAgentPlayback,
|
|
35
35
|
createPlaybackToolProvider,
|
|
36
36
|
derivePlaybackSteps,
|
|
37
|
+
locatePlaybackChrome,
|
|
38
|
+
playbackRectFromClient,
|
|
37
39
|
playbackRefsFromArgs,
|
|
38
40
|
playbackRefsFromResult,
|
|
39
41
|
readingTime,
|
|
40
42
|
unionRects
|
|
41
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-3EVMUYF4.js";
|
|
42
44
|
import {
|
|
43
45
|
CAPTURE_EXCLUDE_SELECTOR,
|
|
44
46
|
CAPTURE_OVERLAY_SELECTORS,
|
|
@@ -147,7 +149,9 @@ export {
|
|
|
147
149
|
errorResult,
|
|
148
150
|
isUnsafeJsonKey,
|
|
149
151
|
listSkills,
|
|
152
|
+
locatePlaybackChrome,
|
|
150
153
|
parseSkillFrontmatter,
|
|
154
|
+
playbackRectFromClient,
|
|
151
155
|
playbackRefsFromArgs,
|
|
152
156
|
playbackRefsFromResult,
|
|
153
157
|
rasterizeElement,
|
|
@@ -150,6 +150,34 @@ export declare function derivePlaybackSteps(args: unknown, defaultKind?: string)
|
|
|
150
150
|
export declare function readingTime(text: string): number;
|
|
151
151
|
/** Smallest rectangle around `rects`, or null. */
|
|
152
152
|
export declare function unionRects(rects: readonly (PlaybackRect | null | undefined)[]): PlaybackRect | null;
|
|
153
|
+
/** A box in client (viewport) pixels, as `Element.getBoundingClientRect()` returns it. */
|
|
154
|
+
export interface PlaybackClientRect {
|
|
155
|
+
left: number;
|
|
156
|
+
top: number;
|
|
157
|
+
width: number;
|
|
158
|
+
height: number;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* A client-pixel box (e.g. `element.getBoundingClientRect()`) in a surface's coordinates, through
|
|
162
|
+
* its `fromViewport` (identity without one). Null for an empty box (a hidden element).
|
|
163
|
+
*/
|
|
164
|
+
export declare function playbackRectFromClient(rect: PlaybackClientRect | null | undefined, fromViewport?: (point: PlaybackPoint) => PlaybackPoint): PlaybackRect | null;
|
|
165
|
+
/**
|
|
166
|
+
* How a host's own chrome (a HUD, toolbar or panel over or beside an editor) answers a surface's
|
|
167
|
+
* refs. The canvas and element playback surfaces take these options; their own locator runs first.
|
|
168
|
+
*/
|
|
169
|
+
export interface PlaybackChromeOptions {
|
|
170
|
+
/** Where `ref` is, in the surface's coordinates (flow units on a canvas, element pixels on an element surface), or null. */
|
|
171
|
+
locate?(ref: PlaybackRef): PlaybackRect | null;
|
|
172
|
+
/** The element that shows `ref` anywhere on the page, or null; its client box is mapped to surface coordinates. */
|
|
173
|
+
locateElement?(ref: PlaybackRef): {
|
|
174
|
+
getBoundingClientRect(): PlaybackClientRect;
|
|
175
|
+
} | null;
|
|
176
|
+
/** Show `ref` for an `open` step (switch to a tab, expand a panel). Without it, `open` steps are skipped. */
|
|
177
|
+
open?(ref: PlaybackRef): void | Promise<void>;
|
|
178
|
+
}
|
|
179
|
+
/** Finds `ref` through `chrome.locate`, then `chrome.locateElement` (mapped with `fromViewport`), or null. */
|
|
180
|
+
export declare function locatePlaybackChrome(ref: PlaybackRef, chrome: PlaybackChromeOptions | null | undefined, fromViewport?: (point: PlaybackPoint) => PlaybackPoint): PlaybackRect | null;
|
|
153
181
|
/**
|
|
154
182
|
* Acts out tool calls on attached surfaces. Install it on a registry (`registry.use(playback.middleware)`
|
|
155
183
|
* or `playback.install(registry)`); editors attach their surfaces while mounted. Results never change:
|
package/dist/tools/playback.d.ts
CHANGED
|
@@ -150,6 +150,34 @@ export declare function derivePlaybackSteps(args: unknown, defaultKind?: string)
|
|
|
150
150
|
export declare function readingTime(text: string): number;
|
|
151
151
|
/** Smallest rectangle around `rects`, or null. */
|
|
152
152
|
export declare function unionRects(rects: readonly (PlaybackRect | null | undefined)[]): PlaybackRect | null;
|
|
153
|
+
/** A box in client (viewport) pixels, as `Element.getBoundingClientRect()` returns it. */
|
|
154
|
+
export interface PlaybackClientRect {
|
|
155
|
+
left: number;
|
|
156
|
+
top: number;
|
|
157
|
+
width: number;
|
|
158
|
+
height: number;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* A client-pixel box (e.g. `element.getBoundingClientRect()`) in a surface's coordinates, through
|
|
162
|
+
* its `fromViewport` (identity without one). Null for an empty box (a hidden element).
|
|
163
|
+
*/
|
|
164
|
+
export declare function playbackRectFromClient(rect: PlaybackClientRect | null | undefined, fromViewport?: (point: PlaybackPoint) => PlaybackPoint): PlaybackRect | null;
|
|
165
|
+
/**
|
|
166
|
+
* How a host's own chrome (a HUD, toolbar or panel over or beside an editor) answers a surface's
|
|
167
|
+
* refs. The canvas and element playback surfaces take these options; their own locator runs first.
|
|
168
|
+
*/
|
|
169
|
+
export interface PlaybackChromeOptions {
|
|
170
|
+
/** Where `ref` is, in the surface's coordinates (flow units on a canvas, element pixels on an element surface), or null. */
|
|
171
|
+
locate?(ref: PlaybackRef): PlaybackRect | null;
|
|
172
|
+
/** The element that shows `ref` anywhere on the page, or null; its client box is mapped to surface coordinates. */
|
|
173
|
+
locateElement?(ref: PlaybackRef): {
|
|
174
|
+
getBoundingClientRect(): PlaybackClientRect;
|
|
175
|
+
} | null;
|
|
176
|
+
/** Show `ref` for an `open` step (switch to a tab, expand a panel). Without it, `open` steps are skipped. */
|
|
177
|
+
open?(ref: PlaybackRef): void | Promise<void>;
|
|
178
|
+
}
|
|
179
|
+
/** Finds `ref` through `chrome.locate`, then `chrome.locateElement` (mapped with `fromViewport`), or null. */
|
|
180
|
+
export declare function locatePlaybackChrome(ref: PlaybackRef, chrome: PlaybackChromeOptions | null | undefined, fromViewport?: (point: PlaybackPoint) => PlaybackPoint): PlaybackRect | null;
|
|
153
181
|
/**
|
|
154
182
|
* Acts out tool calls on attached surfaces. Install it on a registry (`registry.use(playback.middleware)`
|
|
155
183
|
* or `playback.install(registry)`); editors attach their surfaces while mounted. Results never change:
|
|
@@ -15,6 +15,11 @@ export interface VideoEffectsToolProviderOptions {
|
|
|
15
15
|
namespace?: string;
|
|
16
16
|
/** The project cannot be edited: write tools are hidden. A string is the reason. */
|
|
17
17
|
readOnly?: boolean | string | (() => boolean | string);
|
|
18
|
+
/**
|
|
19
|
+
* The agent playback surface its calls are acted out on (default `video`, where `VideoTimeline` attaches).
|
|
20
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
21
|
+
*/
|
|
22
|
+
playbackSurface?: string;
|
|
18
23
|
}
|
|
19
24
|
/** A clip's effects as the tools report them: its effect clip picture, its effect transition, then its stack. */
|
|
20
25
|
export declare function videoClipAppliedEffects(clip: VideoClip): AppliedEffectInfo[];
|
|
@@ -15,6 +15,11 @@ export interface VideoEffectsToolProviderOptions {
|
|
|
15
15
|
namespace?: string;
|
|
16
16
|
/** The project cannot be edited: write tools are hidden. A string is the reason. */
|
|
17
17
|
readOnly?: boolean | string | (() => boolean | string);
|
|
18
|
+
/**
|
|
19
|
+
* The agent playback surface its calls are acted out on (default `video`, where `VideoTimeline` attaches).
|
|
20
|
+
* Set it when one registry holds several editors of this kind, each attached under its own surface id.
|
|
21
|
+
*/
|
|
22
|
+
playbackSurface?: string;
|
|
18
23
|
}
|
|
19
24
|
/** A clip's effects as the tools report them: its effect clip picture, its effect transition, then its stack. */
|
|
20
25
|
export declare function videoClipAppliedEffects(clip: VideoClip): AppliedEffectInfo[];
|
|
@@ -3267,12 +3267,12 @@ function planVideoToolPlayback(tool, args) {
|
|
|
3267
3267
|
if (str2(args.marker)) return click({ kind: "marker", id: args.marker });
|
|
3268
3268
|
return null;
|
|
3269
3269
|
}
|
|
3270
|
-
function withVideoPlayback(provider, surface
|
|
3270
|
+
function withVideoPlayback(provider, surface) {
|
|
3271
3271
|
const plan = (tool) => tool.plan || tool.playback !== void 0 ? tool : { ...tool, plan: (args) => planVideoToolPlayback(tool.name, args) };
|
|
3272
3272
|
const tools = provider.tools;
|
|
3273
3273
|
return {
|
|
3274
3274
|
...provider,
|
|
3275
|
-
playbackSurface: _nullishCoalesce(provider.playbackSurface, () => (
|
|
3275
|
+
playbackSurface: _nullishCoalesce(_nullishCoalesce(surface, () => ( provider.playbackSurface)), () => ( "video")),
|
|
3276
3276
|
tools: typeof tools === "function" ? () => tools().map(plan) : tools.map(plan)
|
|
3277
3277
|
};
|
|
3278
3278
|
}
|
|
@@ -4686,7 +4686,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
4686
4686
|
}
|
|
4687
4687
|
});
|
|
4688
4688
|
}
|
|
4689
|
-
});
|
|
4689
|
+
}, options.playbackSurface);
|
|
4690
4690
|
}
|
|
4691
4691
|
|
|
4692
4692
|
// src/video-editor/effect-tools.ts
|
|
@@ -4861,7 +4861,7 @@ function createVideoEffectsToolProvider(controller, options = {}) {
|
|
|
4861
4861
|
}
|
|
4862
4862
|
}
|
|
4863
4863
|
]
|
|
4864
|
-
}));
|
|
4864
|
+
}), options.playbackSurface);
|
|
4865
4865
|
}
|
|
4866
4866
|
|
|
4867
4867
|
|
|
@@ -3267,12 +3267,12 @@ function planVideoToolPlayback(tool, args) {
|
|
|
3267
3267
|
if (str2(args.marker)) return click({ kind: "marker", id: args.marker });
|
|
3268
3268
|
return null;
|
|
3269
3269
|
}
|
|
3270
|
-
function withVideoPlayback(provider, surface
|
|
3270
|
+
function withVideoPlayback(provider, surface) {
|
|
3271
3271
|
const plan = (tool) => tool.plan || tool.playback !== void 0 ? tool : { ...tool, plan: (args) => planVideoToolPlayback(tool.name, args) };
|
|
3272
3272
|
const tools = provider.tools;
|
|
3273
3273
|
return {
|
|
3274
3274
|
...provider,
|
|
3275
|
-
playbackSurface: provider.playbackSurface ??
|
|
3275
|
+
playbackSurface: surface ?? provider.playbackSurface ?? "video",
|
|
3276
3276
|
tools: typeof tools === "function" ? () => tools().map(plan) : tools.map(plan)
|
|
3277
3277
|
};
|
|
3278
3278
|
}
|
|
@@ -4686,7 +4686,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
4686
4686
|
}
|
|
4687
4687
|
});
|
|
4688
4688
|
}
|
|
4689
|
-
});
|
|
4689
|
+
}, options.playbackSurface);
|
|
4690
4690
|
}
|
|
4691
4691
|
|
|
4692
4692
|
// src/video-editor/effect-tools.ts
|
|
@@ -4861,7 +4861,7 @@ function createVideoEffectsToolProvider(controller, options = {}) {
|
|
|
4861
4861
|
}
|
|
4862
4862
|
}
|
|
4863
4863
|
]
|
|
4864
|
-
}));
|
|
4864
|
+
}), options.playbackSurface);
|
|
4865
4865
|
}
|
|
4866
4866
|
export {
|
|
4867
4867
|
VIDEO_BLEND_MODES,
|
|
@@ -14,7 +14,8 @@ export declare function parseVideoTimeRef(ref: PlaybackRef): VideoPlaybackTime |
|
|
|
14
14
|
export declare function planVideoToolPlayback(tool: string, args: Record<string, any>): PlaybackStep[] | null;
|
|
15
15
|
/**
|
|
16
16
|
* Gives a video tool provider agent playback: each write tool plans its steps with
|
|
17
|
-
* `planVideoToolPlayback` and every call plays on `surface
|
|
18
|
-
*
|
|
17
|
+
* `planVideoToolPlayback` and every call plays on `surface`. An explicit `surface` wins over the
|
|
18
|
+
* provider's own `playbackSurface`; with neither, it is `video` (where `VideoTimeline` attaches
|
|
19
|
+
* itself). `seek_video` (a read in name only) and `edit_video` (a batch) play too.
|
|
19
20
|
*/
|
|
20
21
|
export declare function withVideoPlayback(provider: AgentToolProvider, surface?: string): AgentToolProvider;
|