@forgeax-extension/wb-asset-canvas
v0.2.3
Published
ForgeaX workbench for composing asset-generation workflows on a shared canvas.
Readme
Asset Canvas Workbench Extension
@forgeax-extension/wb-asset-canvas is a portable first-level Workbench extension
for composing asset-generation workflows. It owns the canvas UI, tools, and
Arrival/Kino service-binding factory; the media.video.generate@1 provider is
published separately as @forgeax-extension/kino-video-provider.
Install the reviewed artifact
Install the exact release artifact in the product host that loads Workbench extensions:
npm install forgeax-extension-wb-asset-canvas-0.2.0.tgzThe same forgeax-extension-wb-asset-canvas-0.2.0.tgz artifact is used by both
Arrival Studio and ForgeaX Studio. The host loads its forgeax-extension.json,
frontend, backend, tools, and kino-binding export. Install the independent
forgeax-extension-kino-video-provider-0.2.0.tgz artifact and register it at the
Host composition root.
Register the Arrival/Kino service binding
The product host owns its Arrival identity, upstream base URL, output-origin allowlist, and credentials. It passes only the safe service abstraction to this extension; do not expose credentials or signed URLs to the browser.
import { createKinoServiceBinding, type KinoServiceBindingOptions } from "@forgeax-extension/wb-asset-canvas/kino-binding";
import { providerExtension as kinoVideoProvider } from "@forgeax-extension/kino-video-provider";
import {
createWorkbenchHost,
type RuntimeDescriptor,
type RuntimeRegistry
} from "@forgeax/workbench-host/node";
import type {
MediaCapability,
VersionAdapter,
WorkspaceAdapter
} from "@forgeax/workbench-host/contracts";
export function createProductWorkbenchHost(options: {
// Product-owned composition-root dependencies.
registry: RuntimeRegistry;
workspace: WorkspaceAdapter;
versioning: VersionAdapter;
isExtensionTrusted: (extension: RuntimeDescriptor) => boolean | Promise<boolean>;
media: MediaCapability;
kino: KinoServiceBindingOptions;
}) {
return createWorkbenchHost({
registry: options.registry,
workspace: options.workspace,
versioning: options.versioning,
isExtensionTrusted: options.isExtensionTrusted,
media: options.media,
serviceBindings: [createKinoServiceBinding(options.kino)],
providerExtensions: [kinoVideoProvider],
capabilitySelections: [{
id: "media.video.generate",
version: 1,
providerId: "arrival-kino"
}]
});
}options.kino is supplied by the host's protected configuration (base URL,
output-origin allowlist, game scope, and identity headers). This example intentionally
contains no credential values.
Video capability behavior
Tools that require media.video.generate@1 are resolved by the host to its
selected provider. The provider creates an asynchronous host Job and returns only
host-managed media asset IDs to extensions. In phase 1, reference_audio is not
supported by the Arrival/Kino provider; use image, frame, or video references.
