@neta-art/cohub 5.9.0 → 5.10.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/board/animation.js +34 -5
- package/dist/board/codec.js +1 -1
- package/dist/board/export/index.d.ts +6 -0
- package/dist/board/export/index.js +6 -3
- package/dist/board/export/scene.d.ts +6 -0
- package/dist/board/export/scene.js +26 -2
- package/dist/board/geometry.d.ts +27 -1
- package/dist/board/geometry.js +92 -1
- package/dist/board/headless/index.d.ts +7 -1
- package/dist/board/headless/index.js +6 -2
- package/dist/board/index.d.ts +6 -4
- package/dist/board/index.js +7 -5
- package/dist/board/mutation.d.ts +21 -0
- package/dist/board/mutation.js +104 -0
- package/dist/board/render/css-color.d.ts +4 -0
- package/dist/board/render/css-color.js +36 -0
- package/dist/board/render/index.d.ts +2 -1
- package/dist/board/render/index.js +2 -1
- package/dist/board/render/renderers/base-card-renderer.js +3 -20
- package/dist/board/render/themes/clean-theme.js +6 -3
- package/dist/chunks/http.d.ts +16 -4
- package/dist/chunks/http.js +152 -14
- package/dist/chunks/websocket.d.ts +69 -3
- package/dist/http.d.ts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +33 -6
- package/dist/protocol/dist/board-constants.d.ts +2 -1
- package/dist/protocol/dist/board-constants.js +61 -6
- package/dist/protocol/dist/board-document.d.ts +28 -2
- package/dist/protocol/dist/board-document.js +16 -3
- package/dist/protocol/dist/board-node.d.ts +2 -1
- package/dist/protocol/dist/board-url.d.ts +2 -1
- package/dist/protocol/dist/board-url.js +8 -3
- package/dist/protocol/dist/board.d.ts +136 -4
- package/dist/protocol/dist/board.js +42 -1
- package/dist/protocol/dist/index.d.ts +3 -3
- package/dist/protocol/dist/index.js +2 -2
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { DOMAdapter } from "pixi.js";
|
|
2
|
+
//#region src/board/render/css-color.ts
|
|
3
|
+
const CACHE_LIMIT = 256;
|
|
4
|
+
const cache = /* @__PURE__ */ new Map();
|
|
5
|
+
let canvas = null;
|
|
6
|
+
function parseBoardCssColor(value) {
|
|
7
|
+
const key = value.trim();
|
|
8
|
+
if (!key) return null;
|
|
9
|
+
const cached = cache.get(key);
|
|
10
|
+
if (cached !== void 0 || cache.has(key)) return cached ?? null;
|
|
11
|
+
let result = null;
|
|
12
|
+
try {
|
|
13
|
+
const direct = /^#([0-9a-f]{6})$/i.exec(key);
|
|
14
|
+
if (direct?.[1]) result = Number.parseInt(direct[1], 16);
|
|
15
|
+
else {
|
|
16
|
+
canvas ??= DOMAdapter.get().createCanvas(1, 1);
|
|
17
|
+
const context = canvas.getContext("2d");
|
|
18
|
+
if (context) {
|
|
19
|
+
context.fillStyle = "#010203";
|
|
20
|
+
context.fillStyle = key;
|
|
21
|
+
const first = String(context.fillStyle);
|
|
22
|
+
context.fillStyle = "#040506";
|
|
23
|
+
context.fillStyle = key;
|
|
24
|
+
const match = first === String(context.fillStyle) ? /^#([0-9a-f]{6})$/i.exec(first) : null;
|
|
25
|
+
if (match?.[1]) result = Number.parseInt(match[1], 16);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
} catch {
|
|
29
|
+
result = null;
|
|
30
|
+
}
|
|
31
|
+
if (cache.size >= CACHE_LIMIT) cache.clear();
|
|
32
|
+
cache.set(key, result);
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { parseBoardCssColor };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ConnectionLayer, ConnectionRenderInput, createConnectionLayer, framesFromItems } from "./connection-layer.js";
|
|
2
|
+
import { parseBoardCssColor } from "./css-color.js";
|
|
2
3
|
import { BoardMediaAction, boardMediaActionAt, mediaPlayBadgeHit, mediaPlayBadgeVisible } from "./media-interaction.js";
|
|
3
4
|
import { BoardCardRenderer, BoardRenderContext, BoardRenderPalette, boardCardRenderersForTest, getBoardCardRenderer, registerBoardCardRenderer } from "./renderers/board-renderer-registry.js";
|
|
4
5
|
import { defaultBoardPalette } from "./palette.js";
|
|
@@ -7,4 +8,4 @@ import { ensureBoardTextMeasurement, installBoardTextMeasurement } from "./text-
|
|
|
7
8
|
import { getBoardResolution, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket } from "./text-resolution.js";
|
|
8
9
|
import { BoardThemeContext, BoardThemeRenderer, getBoardThemeRenderer, registerBoardThemeRenderer } from "./themes/board-theme-registry.js";
|
|
9
10
|
import { VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize, loadVideoThumbnailTexture, videoTextureNaturalSize, videoThumbnailSize } from "./video-thumbnail.js";
|
|
10
|
-
export { BoardCardRenderer, BoardMediaAction, BoardRenderContext, BoardRenderPalette, BoardThemeContext, BoardThemeRenderer, ConnectionLayer, ConnectionRenderInput, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize, boardCardRenderersForTest, boardMediaActionAt, createConnectionLayer, defaultBoardPalette, ensureBoardTextMeasurement, framesFromItems, getBoardCardRenderer, getBoardResolution, getBoardThemeRenderer, installBoardTextMeasurement, loadVideoThumbnailTexture, mediaPlayBadgeHit, mediaPlayBadgeVisible, registerBoardCardRenderer, registerBoardThemeRenderer, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, videoTextureNaturalSize, videoThumbnailSize };
|
|
11
|
+
export { BoardCardRenderer, BoardMediaAction, BoardRenderContext, BoardRenderPalette, BoardThemeContext, BoardThemeRenderer, ConnectionLayer, ConnectionRenderInput, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize, boardCardRenderersForTest, boardMediaActionAt, createConnectionLayer, defaultBoardPalette, ensureBoardTextMeasurement, framesFromItems, getBoardCardRenderer, getBoardResolution, getBoardThemeRenderer, installBoardTextMeasurement, loadVideoThumbnailTexture, mediaPlayBadgeHit, mediaPlayBadgeVisible, parseBoardCssColor, registerBoardCardRenderer, registerBoardThemeRenderer, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, videoTextureNaturalSize, videoThumbnailSize };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseBoardCssColor } from "./css-color.js";
|
|
1
2
|
import { getBoardResolution, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket } from "./text-resolution.js";
|
|
2
3
|
import { createConnectionLayer, framesFromItems } from "./connection-layer.js";
|
|
3
4
|
import { TASK_CARD_FULL_DETAIL_ZOOM } from "./renderers/task-card-renderer.js";
|
|
@@ -7,4 +8,4 @@ import { ensureBoardTextMeasurement, installBoardTextMeasurement } from "./text-
|
|
|
7
8
|
import { boardCardRenderersForTest, getBoardCardRenderer, registerBoardCardRenderer } from "./renderers/board-renderer-registry.js";
|
|
8
9
|
import { getBoardThemeRenderer, registerBoardThemeRenderer } from "./themes/board-theme-registry.js";
|
|
9
10
|
import { VIDEO_THUMBNAIL_MAX_EDGE, loadVideoThumbnailTexture, videoTextureNaturalSize, videoThumbnailSize } from "./video-thumbnail.js";
|
|
10
|
-
export { TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, boardCardRenderersForTest, boardMediaActionAt, createConnectionLayer, defaultBoardPalette, ensureBoardTextMeasurement, framesFromItems, getBoardCardRenderer, getBoardResolution, getBoardThemeRenderer, installBoardTextMeasurement, loadVideoThumbnailTexture, mediaPlayBadgeHit, mediaPlayBadgeVisible, registerBoardCardRenderer, registerBoardThemeRenderer, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, videoTextureNaturalSize, videoThumbnailSize };
|
|
11
|
+
export { TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, boardCardRenderersForTest, boardMediaActionAt, createConnectionLayer, defaultBoardPalette, ensureBoardTextMeasurement, framesFromItems, getBoardCardRenderer, getBoardResolution, getBoardThemeRenderer, installBoardTextMeasurement, loadVideoThumbnailTexture, mediaPlayBadgeHit, mediaPlayBadgeVisible, parseBoardCssColor, registerBoardCardRenderer, registerBoardThemeRenderer, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, videoTextureNaturalSize, videoThumbnailSize };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BOARD_FONT_STACK } from "../../../protocol/dist/board-constants.js";
|
|
2
|
+
import { parseBoardCssColor } from "../css-color.js";
|
|
2
3
|
import { getBoardResolution } from "../text-resolution.js";
|
|
3
|
-
import { Container,
|
|
4
|
+
import { Container, Graphics, Text } from "pixi.js";
|
|
4
5
|
//#region src/board/render/renderers/base-card-renderer.ts
|
|
5
6
|
const CARD_RADIUS = 10;
|
|
6
7
|
const CARD_PADDING = 12;
|
|
@@ -11,7 +12,7 @@ const TEXT_OPTIONS = {
|
|
|
11
12
|
};
|
|
12
13
|
function emphasisColor(item, palette) {
|
|
13
14
|
if (item.style?.accentColor) {
|
|
14
|
-
const normalized =
|
|
15
|
+
const normalized = parseBoardCssColor(item.style.accentColor);
|
|
15
16
|
if (normalized != null) return normalized;
|
|
16
17
|
}
|
|
17
18
|
switch (item.style?.emphasis) {
|
|
@@ -21,24 +22,6 @@ function emphasisColor(item, palette) {
|
|
|
21
22
|
default: return palette.brand;
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Normalise any CSS color to a number by letting a 2D context parse it.
|
|
26
|
-
*
|
|
27
|
-
* Goes through `DOMAdapter` rather than `document` so a headless export resolves
|
|
28
|
-
* accent colors exactly as the browser does; without it, custom accents would
|
|
29
|
-
* silently fall back to the emphasis palette only when exporting.
|
|
30
|
-
*/
|
|
31
|
-
function parseCssColor(value) {
|
|
32
|
-
try {
|
|
33
|
-
const context = DOMAdapter.get().createCanvas(1, 1).getContext("2d");
|
|
34
|
-
if (!context) return null;
|
|
35
|
-
context.fillStyle = value;
|
|
36
|
-
const match = /^#([0-9a-f]{6})$/i.exec(String(context.fillStyle));
|
|
37
|
-
return match?.[1] ? Number.parseInt(match[1], 16) : null;
|
|
38
|
-
} catch {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
25
|
function createLabel(text, style) {
|
|
43
26
|
return new Text({
|
|
44
27
|
...TEXT_OPTIONS,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseBoardCssColor } from "../css-color.js";
|
|
1
2
|
import { Container, Graphics, RenderTexture, TilingSprite } from "pixi.js";
|
|
2
3
|
//#region src/board/render/themes/clean-theme.ts
|
|
3
4
|
const partsByContainer = /* @__PURE__ */ new WeakMap();
|
|
@@ -31,16 +32,18 @@ function sync(parts, context) {
|
|
|
31
32
|
const { app, document, viewport, palette } = context;
|
|
32
33
|
const width = app.screen.width;
|
|
33
34
|
const height = app.screen.height;
|
|
35
|
+
const declaredBackground = document.appearance.background;
|
|
36
|
+
const bgColor = declaredBackground.color ? parseBoardCssColor(declaredBackground.color) ?? palette.bg : palette.bg;
|
|
34
37
|
const bgAlpha = context.hasImageBackground ? 0 : 1;
|
|
35
|
-
if (parts.lastWidth !== width || parts.lastHeight !== height || parts.lastBg !==
|
|
38
|
+
if (parts.lastWidth !== width || parts.lastHeight !== height || parts.lastBg !== bgColor || parts.lastBgAlpha !== bgAlpha) {
|
|
36
39
|
parts.fill.clear();
|
|
37
40
|
parts.fill.rect(0, 0, width, height).fill({
|
|
38
|
-
color:
|
|
41
|
+
color: bgColor,
|
|
39
42
|
alpha: bgAlpha
|
|
40
43
|
});
|
|
41
44
|
parts.lastWidth = width;
|
|
42
45
|
parts.lastHeight = height;
|
|
43
|
-
parts.lastBg =
|
|
46
|
+
parts.lastBg = bgColor;
|
|
44
47
|
parts.lastBgAlpha = bgAlpha;
|
|
45
48
|
}
|
|
46
49
|
const appearance = document.appearance;
|
package/dist/chunks/http.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as CreateInvitationInput, $n as SpaceFsPreparingFile,
|
|
1
|
+
import { $ as CreateInvitationInput, $n as SpaceFsPreparingFile, Aa as BoardTransaction, Ar as SpaceTurnAuthorFilter, At as MeResponse, Bn as SpaceDefaultResponse, Cr as SpacePublicProfile, Ct as LabelItemsResponse, Dn as SpaceCommerceBenefit, Dt as LabelResourceType, Ei as SessionTurnPatchEvent, En as SpaceCheckpointDetailResponse, G as CheckpointDiffFileResponse, Ga as BoardConnectionRecord, Gn as SpaceFsCreateUploadInput, Gt as ReferenceAggregateResponse, H as Channel, Hn as SpaceFsCompleteUploadInput, Hr as UserProfile, In as SpaceConfigInput, Ir as TaskRunDetailResponse, Ji as UiCommandError, Jr as ChannelHealth, Jt as ReferenceQueryResponse, Ki as UiCommand, Kn as SpaceFsCreateUploadResponse, Kr as UserSessionsResponse, Kt as ReferenceDirection, Ln as SpaceConfigResponse, Lr as TaskRunRecord, Lt as PromptTemplateCatalogResponse, Mi as WorkArtifactDescriptor, Mn as SpaceCommerceProduct, Mt as PatchResourceLabelsInput, Nn as SpaceCommerceProductBenefitBinding, Nt as PatchResourceLabelsResponse, Oa as BoardSummary, On as SpaceCommerceBuyerProfile, Pr as SpaceUsageResponse, Pt as Permission, Q as ClaimReferralResponse, Qn as SpaceFsMoveInput, Qt as ReferralDashboard, Ri as WorkContentKind, Rn as SpaceConfigUpdateResponse, Rr as UserActivityQuery, Rt as PublicReferral, Sa as BoardPlaybackCommand, St as LabelAssignmentRecord, Ta as BoardPlaybackSnapshot, Tr as SpaceRole, Tt as LabelListItem, Ua as BoardConnection, Un as SpaceFsCompleteUploadResponse, Ur as UserRulesResponse, Vn as SpaceEnvInput, Vr as UserActivityResponse, Wa as BoardConnectionDirection, Wt as ReferenceAggregateGroupBy, X as CheckpointDiffSummary, Xa as MessageRecord, Xi as UiCommandStatus, Ya as SpacePublicEndpoints, Yi as UiCommandRecord, Yt as ReferenceQueryableType, Z as CheckpointRecord, Za as SessionForkRecord, Zn as SpaceFsFileResponse, _n as SkillCatalogResponse, _o as RequestSource, a as WebsocketClientOptions, at as CreateSpaceSessionInput, bn as SpaceAccessPolicy, br as SpacePendingDiffSummary, cn as SessionMessagesResponse, ct as CronJobUpdatePatch, d as BatchUserProfilesResponse, di as GenerationContentBlock, dn as SessionTurnResponse, do as Usage, dr as SpaceFsWriteFileInput, eo as SessionTurnRecord, et as CreateInvitationResponse, fa as BoardCreateInput, fi as GenerationModelDeclaration, fn as SessionTurnSignedUrlsResponse, fo as BillingPayload, ga as BoardInspectInput, gi as BoardTransactionAppliedEvent$1, gr as SpaceMember, gt as InvitationDetail, hi as BoardPlaybackChangedEvent$1, hn as SessionTurnsPaginatedResponse, ht as GlobalSearchType, it as CreateSpacePromptResponse, ja as BoardValidationResult, ji as BoardAwarenessUpdate, jn as SpaceCommerceOrder, jt as ModelCatalogEntry, kr as SpaceSessionsResponse, l as AcceptInvitationResponse, ln as SessionRecord, lo as SpaceCompletionResult, lt as CursorPageInfo, mi as BoardAwarenessUpdatedEvent$1, mn as SessionTurnWindowResponse, nr as SpaceFsReadFilesResponse, oa as BoardBootstrap, on as SessionMessageResponse, pn as SessionTurnStreamSnapshotResponse, po as ContentBlock, pr as SpaceInvitationListResponse, pt as GlobalSearchResponse, qr as ChannelConfig, qt as ReferenceKind, r as WebsocketClient, rr as SpaceFsTreeResponse, rt as CreateSpacePromptInput, s as WebsocketEventPayload, sn as SessionMessagesPaginatedResponse, so as CreateSpaceCompletionInput, st as CronJobRecord, to as SpaceTurnsResponse, tt as CreateSpaceInput, ua as BoardCapabilities, un as SessionTurnIndexResponse, uo as SpaceCompletionStreamEvent, ur as SpaceFsUploadResponse, vr as SpaceModListItem, wr as SpaceRecord, xa as BoardOperation, xr as SpacePresenceSnapshot, yi as RealtimePatchOperation, yr as SpacePendingDiffFileResponse, zn as SpaceCreateResponse, zt as PublicUserPageResponse } from "./websocket.js";
|
|
2
2
|
import { n as CohubEnvironment } from "./environment.js";
|
|
3
3
|
import { a as VoiceInputCreateOptions } from "./voice-input.js";
|
|
4
4
|
//#region ../protocol/dist/model/status.d.ts
|
|
@@ -969,6 +969,11 @@ declare class BoardTransactionError extends Error {
|
|
|
969
969
|
get isVersionConflict(): boolean;
|
|
970
970
|
}
|
|
971
971
|
type BoardTransactionInput = Omit<BoardTransaction, "boardId">;
|
|
972
|
+
type BoardMutationInput = {
|
|
973
|
+
include?: BoardInspectInput["include"];
|
|
974
|
+
retries?: number;
|
|
975
|
+
build: (current: BoardBootstrap) => BoardOperation[] | Promise<BoardOperation[]>;
|
|
976
|
+
};
|
|
972
977
|
type BoardTransactionAppliedEvent = BoardTransactionAppliedEvent$1;
|
|
973
978
|
type BoardAwarenessUpdatedEvent = BoardAwarenessUpdatedEvent$1;
|
|
974
979
|
type BoardPlaybackChangedEvent = BoardPlaybackChangedEvent$1;
|
|
@@ -1511,8 +1516,12 @@ declare class BoardClient {
|
|
|
1511
1516
|
constructor(spaceId: string, id: string, transport: HttpTransport, websocketClient: WebsocketClient | null);
|
|
1512
1517
|
inspect(input?: BoardInspectInput, customFetch?: Fetch): Promise<BoardBootstrap>;
|
|
1513
1518
|
capabilities(customFetch?: Fetch): Promise<BoardCapabilities>;
|
|
1519
|
+
summary(customFetch?: Fetch): Promise<BoardSummary>;
|
|
1520
|
+
mutate(input: BoardMutationInput): Promise<BoardBootstrap>;
|
|
1514
1521
|
validate(transaction: BoardTransactionInput): Promise<BoardValidationResult>;
|
|
1515
|
-
apply(transaction: BoardTransactionInput
|
|
1522
|
+
apply(transaction: BoardTransactionInput, options?: {
|
|
1523
|
+
compact?: boolean;
|
|
1524
|
+
}): Promise<BoardBootstrap>;
|
|
1516
1525
|
updateAwareness(seq: number, update: BoardAwarenessUpdate): Promise<void>;
|
|
1517
1526
|
playback(command: BoardPlaybackCommand): Promise<BoardPlaybackSnapshot>;
|
|
1518
1527
|
/**
|
|
@@ -1596,9 +1605,12 @@ declare class SpaceBoardsApi {
|
|
|
1596
1605
|
byId(boardId: string): BoardClient;
|
|
1597
1606
|
create(input: BoardCreateInput): Promise<BoardBootstrap>;
|
|
1598
1607
|
inspect(boardId: string, input?: BoardInspectInput, customFetch?: Fetch): Promise<BoardBootstrap>;
|
|
1608
|
+
summary(boardId: string, customFetch?: Fetch): Promise<BoardSummary>;
|
|
1599
1609
|
capabilities(boardId: string, customFetch?: Fetch): Promise<BoardCapabilities>;
|
|
1600
1610
|
validate(transaction: BoardTransaction): Promise<BoardValidationResult>;
|
|
1601
|
-
apply(transaction: BoardTransaction
|
|
1611
|
+
apply(transaction: BoardTransaction, options?: {
|
|
1612
|
+
compact?: boolean;
|
|
1613
|
+
}): Promise<BoardBootstrap>;
|
|
1602
1614
|
playback(boardId: string, command: BoardPlaybackCommand): Promise<BoardPlaybackSnapshot>;
|
|
1603
1615
|
play(boardId: string, command: Omit<Extract<BoardPlaybackCommand, {
|
|
1604
1616
|
type: "play";
|
|
@@ -2246,4 +2258,4 @@ declare class CohubHttpClient {
|
|
|
2246
2258
|
}
|
|
2247
2259
|
declare const createHttpClient: (options?: CohubClientOptions) => CohubHttpClient;
|
|
2248
2260
|
//#endregion
|
|
2249
|
-
export {
|
|
2261
|
+
export { BoardTransactionAppliedEvent as $, ModelsApi as $t, WorkResolveResponse as A, PublicFileUploadEntryInput as An, parseAssistantMessageCommit as At, ReferralsApi as B, ModelStatusEntry as Bn, SearchApi as Bt, WorkPromotionProvider as C, createSlugWorkIdResolver as Cn, GenerationStreamOutOfSyncEvent as Ct, WorkPublicOwnerRecord as D, PublicFileCreateUploadResponse as Dn, GenerationStreamTurnUpdatedEvent as Dt, WorkPromotionStatsResponse as E, PublicFileCreateUploadInput as En, GenerationStreamSubscriptionHandlers as Et, WorkVersionRecord as F, CreateGenerationTaskResponse as Fn, SessionPatchStatus as Ft, WaitForUiCommandOptions as G, PublicAssetUploadProgress as Gt, UserApi as H, CreatePublicAssetUploadResponse as Ht, WorkViewSource as I, GenerationTaskResult as In, createSessionPatchReducer as It, BoardClient as J, UploadChatAttachmentInput as Jt, TasksApi as K, PublicAssetUploadProtocol as Kt, WorkViewStatsResponse as L, GenerationUsageBilling as Ln, SessionAccessApi as Lt, WorkStatus as M, PublicFileUrlResponse as Mn, SessionPatchApplyResult as Mt, WorkTargetType as N, SpaceStartupResponse as Nn, SessionPatchReducer as Nt, WorkPublicSpaceRecord as O, PublicFileListEntry as On, SessionGenerationStreamClient as Ot, WorkUpdateInput as P, CreateGenerationTaskRequest as Pn, SessionPatchState as Pt, BoardSubscriptionHandlers as Q, PromptsApi as Qt, WorkVisibility as R, ListGenerationModelsResponse as Rn, ReferenceResourceSelector as Rt, WorkPromotionEventResponse as S, WorkRuntimeTransport as Sn, GenerationStreamLifecycleEvent as St, WorkPromotionRecord as T, resolveWorkTransport as Tn, GenerationStreamSubscribeOptions as Tt, CreateUiCommandInput as U, PublicAssetMimeType as Ut, UsersApi as V, ModelStatusResponse as Vn, CreatePublicAssetUploadInput as Vt, UiCommandsApi as W, PublicAssetPurpose as Wt, BoardMutationInput as X, UploadPublicAssetInput as Xt, BoardEventName as Y, UploadChatImageAttachmentInput as Yt, BoardPlaybackChangedEvent as Z, SkillsApi as Zt, WorkExtractedPageMeta as _, WorkRuntimeCheckoutState as _n, GenerationStreamCommitEvent as _t, WorkCommerceCreditConsumeResponse as a, HttpError as an, SpaceClient as at, WorkPresentationMeta as b, WorkRuntimeModeConfig as bn, GenerationStreamFinalizedEvent as bt, WorkCommerceEntitlementsResponse as c, RawHttpResponse as cn, SpaceTurnListOptions as ct, WorkCommercePurchaseResponse as d, matchesUnauthorizedErrorToken as dn, BuildSpaceInvitePathInput as dt, GenerationsApi as en, BoardTransactionError as et, WorkAuthorizeResponse as f, sanitizeAccessToken as fn, BuildSpacePathInput as ft, WorkDetailResponse as g, WorkRuntimeApi as gn, AssistantMessageCommit as gt, WorkCreateInput as h, WorkIdResolver as hn, buildSpacePath as ht, WorkCommerceCheckoutStatus as i, Fetch as in, SpaceChannelBindingRecord as it, WorkSessionResponse as j, PublicFileUploadPlanEntry as jn, SessionPatchApplyInput as jt, WorkRecord as k, PublicFileListResponse as kn, createSessionGenerationStreamClient as kt, WorkCommerceOrder as l, UnauthorizedContext as ln, SpacesApi as lt, WorkContentDownload as m, PopupBrokerTransport as mn, buildSpaceInvitePath as mt, createHttpClient as n, ChannelsApi as nn, SessionEventName as nt, WorkCommerceCreditConsumeStatus as o, HttpTraceContext as on, SpaceEventName as ot, WorkContent as p, ParentBridgeTransport as pn, PublicInviteApi as pt, BoardAwarenessUpdatedEvent as q, PublicAssetsApi as qt, WorkCommerceApi as r, CohubClientOptions as rn, SessionSubscriptionHandlers as rt, WorkCommerceEntitlement as s, HttpTransport as sn, SpacePublicFilesApi as st, CohubHttpClient as t, CronJobsApi as tn, BoardTransactionInput as tt, WorkCommerceProductResolveResponse as u, joinApiUrl as un, WebSocketConnectionState as ut, WorkGetResponse as v, WorkRuntimeCheckoutStatus as vn, GenerationStreamErrorEvent as vt, WorkPromotionProviderStatus as w, createWorkRuntime as wn, GenerationStreamStateEvent as wt, WorkPromotionCreateInput as x, WorkRuntimeRequestOptions as xn, GenerationStreamIntermediateMessage as xt, WorkMeta as y, WorkRuntimeContext as yn, GenerationStreamEvent as yt, WorksApi as z, PublicGenerationDeclaration as zn, ReferencesApi as zt };
|
package/dist/chunks/http.js
CHANGED
|
@@ -466,6 +466,7 @@ const BOARD_BUILTIN_CLIP_KINDS = [
|
|
|
466
466
|
"effects.color",
|
|
467
467
|
"camera.pan",
|
|
468
468
|
"camera.zoom",
|
|
469
|
+
"camera.focus",
|
|
469
470
|
"camera.shake"
|
|
470
471
|
];
|
|
471
472
|
const BOARD_BUILTIN_EFFECT_KINDS = ["effects.pulse", "effects.float"];
|
|
@@ -475,12 +476,66 @@ function clampBoardStrokeSize(size) {
|
|
|
475
476
|
if (!Number.isFinite(size)) return BOARD_CONNECTION_STROKE_SIZE;
|
|
476
477
|
return Math.min(64, Math.max(1, size));
|
|
477
478
|
}
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
479
|
+
function clipSchema(id) {
|
|
480
|
+
switch (id) {
|
|
481
|
+
case "motion.keyframes": return { params: {
|
|
482
|
+
x: {
|
|
483
|
+
coordinateSpace: "world-offset",
|
|
484
|
+
unit: "board"
|
|
485
|
+
},
|
|
486
|
+
y: {
|
|
487
|
+
coordinateSpace: "world-offset",
|
|
488
|
+
unit: "board"
|
|
489
|
+
}
|
|
490
|
+
} };
|
|
491
|
+
case "motion.path": return { params: { points: {
|
|
492
|
+
coordinateSpace: "world-offset",
|
|
493
|
+
unit: "board"
|
|
494
|
+
} } };
|
|
495
|
+
case "effects.particles": return { params: { bounds: {
|
|
496
|
+
coordinateSpace: "world",
|
|
497
|
+
unit: "board"
|
|
498
|
+
} } };
|
|
499
|
+
case "camera.pan": return { params: {
|
|
500
|
+
x: {
|
|
501
|
+
coordinateSpace: "screen-offset",
|
|
502
|
+
unit: "css-px"
|
|
503
|
+
},
|
|
504
|
+
y: {
|
|
505
|
+
coordinateSpace: "screen-offset",
|
|
506
|
+
unit: "css-px"
|
|
507
|
+
}
|
|
508
|
+
} };
|
|
509
|
+
case "camera.zoom": return { params: { scale: { unit: "ratio" } } };
|
|
510
|
+
case "camera.focus": return { params: {
|
|
511
|
+
focus: {
|
|
512
|
+
coordinateSpace: "world",
|
|
513
|
+
unit: "board"
|
|
514
|
+
},
|
|
515
|
+
padding: {
|
|
516
|
+
coordinateSpace: "screen",
|
|
517
|
+
unit: "css-px"
|
|
518
|
+
},
|
|
519
|
+
minZoom: { unit: "ratio" },
|
|
520
|
+
maxZoom: { unit: "ratio" }
|
|
521
|
+
} };
|
|
522
|
+
case "camera.shake": return { params: { amount: {
|
|
523
|
+
coordinateSpace: "screen-offset",
|
|
524
|
+
unit: "css-px"
|
|
525
|
+
} } };
|
|
526
|
+
default: return;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
const BOARD_BUILTIN_CAPABILITIES = [...BOARD_BUILTIN_CLIP_KINDS.map((id) => {
|
|
530
|
+
const schema = clipSchema(id);
|
|
531
|
+
return {
|
|
532
|
+
kind: "clip",
|
|
533
|
+
id,
|
|
534
|
+
version: 1,
|
|
535
|
+
renderers: ["webgpu", "webgl"],
|
|
536
|
+
...schema ? { schema } : {}
|
|
537
|
+
};
|
|
538
|
+
}), ...BOARD_BUILTIN_EFFECT_KINDS.map((id) => ({
|
|
484
539
|
kind: "effect",
|
|
485
540
|
id,
|
|
486
541
|
version: 1,
|
|
@@ -671,6 +726,47 @@ const BoardTargetSchema = z.discriminatedUnion("type", [
|
|
|
671
726
|
z.object({ type: z.literal("board") }),
|
|
672
727
|
z.object({ type: z.literal("camera") })
|
|
673
728
|
]);
|
|
729
|
+
z.object({
|
|
730
|
+
centerX: finiteSchema$1,
|
|
731
|
+
centerY: finiteSchema$1,
|
|
732
|
+
zoom: finiteSchema$1.positive()
|
|
733
|
+
});
|
|
734
|
+
const BoardCameraFocusSchema = z.discriminatedUnion("type", [
|
|
735
|
+
z.object({
|
|
736
|
+
type: z.literal("rect"),
|
|
737
|
+
rect: z.object({
|
|
738
|
+
x: finiteSchema$1,
|
|
739
|
+
y: finiteSchema$1,
|
|
740
|
+
width: finiteSchema$1.positive(),
|
|
741
|
+
height: finiteSchema$1.positive()
|
|
742
|
+
})
|
|
743
|
+
}),
|
|
744
|
+
z.object({
|
|
745
|
+
type: z.literal("node"),
|
|
746
|
+
nodeId: idSchema$1
|
|
747
|
+
}),
|
|
748
|
+
z.object({
|
|
749
|
+
type: z.literal("nodes"),
|
|
750
|
+
nodeIds: z.array(idSchema$1).min(1).max(1e3)
|
|
751
|
+
}),
|
|
752
|
+
z.object({
|
|
753
|
+
type: z.literal("frame"),
|
|
754
|
+
frameId: idSchema$1
|
|
755
|
+
})
|
|
756
|
+
]);
|
|
757
|
+
const BoardCameraFocusParamsSchema = z.object({
|
|
758
|
+
focus: BoardCameraFocusSchema,
|
|
759
|
+
fit: z.enum(["contain", "cover"]).default("contain"),
|
|
760
|
+
padding: finiteSchema$1.nonnegative().default(32),
|
|
761
|
+
minZoom: finiteSchema$1.positive().optional(),
|
|
762
|
+
maxZoom: finiteSchema$1.positive().optional()
|
|
763
|
+
}).superRefine((value, context) => {
|
|
764
|
+
if (value.minZoom !== void 0 && value.maxZoom !== void 0 && value.minZoom > value.maxZoom) context.addIssue({
|
|
765
|
+
code: "custom",
|
|
766
|
+
message: "minZoom must not exceed maxZoom",
|
|
767
|
+
path: ["minZoom"]
|
|
768
|
+
});
|
|
769
|
+
});
|
|
674
770
|
const BoardAssetRefSchema = z.object({
|
|
675
771
|
type: z.enum(["space-file", "extension"]),
|
|
676
772
|
ref: z.string().min(1).max(4096),
|
|
@@ -916,11 +1012,16 @@ function isBlockedIpv6(host) {
|
|
|
916
1012
|
if ((first & 65280) === 65280) return true;
|
|
917
1013
|
return parts[0] === "2001" && parts[1] === "0db8";
|
|
918
1014
|
}
|
|
1015
|
+
function isPublicBoardRemoteAddress(value) {
|
|
1016
|
+
const address = value.toLowerCase().replace(/^\[|\]$/g, "").replace(/\.$/, "");
|
|
1017
|
+
if (parseIpv4(address)) return !isBlockedIpv4(address);
|
|
1018
|
+
return address.includes(":") && !isBlockedIpv6(address);
|
|
1019
|
+
}
|
|
919
1020
|
function isBlockedHost(hostname) {
|
|
920
1021
|
const host = hostname.toLowerCase().replace(/^\[|\]$/g, "").replace(/\.$/, "");
|
|
921
1022
|
if (host === "localhost" || host.endsWith(".localhost") || host.endsWith(".local") || host.endsWith(".internal")) return true;
|
|
922
|
-
if (parseIpv4(host)) return
|
|
923
|
-
return
|
|
1023
|
+
if (parseIpv4(host) || host.includes(":")) return !isPublicBoardRemoteAddress(host);
|
|
1024
|
+
return false;
|
|
924
1025
|
}
|
|
925
1026
|
/**
|
|
926
1027
|
* Normalize a browser-loadable public HTTP(S) URL. This blocks explicit local
|
|
@@ -974,7 +1075,20 @@ const BoardAppearanceSchema = z.object({
|
|
|
974
1075
|
"custom"
|
|
975
1076
|
]).default("dots"),
|
|
976
1077
|
color: z.string().optional(),
|
|
977
|
-
imageUrl:
|
|
1078
|
+
imageUrl: BoardRemoteUrlSchema.optional(),
|
|
1079
|
+
fit: z.enum([
|
|
1080
|
+
"cover",
|
|
1081
|
+
"contain",
|
|
1082
|
+
"repeat"
|
|
1083
|
+
]).optional(),
|
|
1084
|
+
position: z.enum([
|
|
1085
|
+
"center",
|
|
1086
|
+
"top",
|
|
1087
|
+
"bottom",
|
|
1088
|
+
"left",
|
|
1089
|
+
"right"
|
|
1090
|
+
]).optional(),
|
|
1091
|
+
opacity: z.number().finite().min(0).max(1).optional()
|
|
978
1092
|
}).default({ kind: "solid" }),
|
|
979
1093
|
grid: z.object({
|
|
980
1094
|
visible: z.boolean().default(false),
|
|
@@ -4265,17 +4379,38 @@ var BoardClient = class {
|
|
|
4265
4379
|
capabilities(customFetch) {
|
|
4266
4380
|
return this.boards.capabilities(this.id, customFetch);
|
|
4267
4381
|
}
|
|
4382
|
+
summary(customFetch) {
|
|
4383
|
+
return this.boards.summary(this.id, customFetch);
|
|
4384
|
+
}
|
|
4385
|
+
async mutate(input) {
|
|
4386
|
+
const retries = input.retries ?? 1;
|
|
4387
|
+
if (!Number.isSafeInteger(retries) || retries < 0 || retries > 3) throw new RangeError("Board mutation retries must be an integer from 0 to 3");
|
|
4388
|
+
for (let attempt = 0;; attempt += 1) {
|
|
4389
|
+
const current = await this.inspect({ include: input.include ?? [] });
|
|
4390
|
+
const operations = await input.build(current);
|
|
4391
|
+
if (operations.length === 0) return current;
|
|
4392
|
+
try {
|
|
4393
|
+
return await this.apply({
|
|
4394
|
+
txId: randomBoardId(),
|
|
4395
|
+
baseVersion: current.board.version,
|
|
4396
|
+
operations
|
|
4397
|
+
}, { compact: true });
|
|
4398
|
+
} catch (cause) {
|
|
4399
|
+
if (!(cause instanceof BoardTransactionError) || !cause.isVersionConflict || attempt >= retries) throw cause;
|
|
4400
|
+
}
|
|
4401
|
+
}
|
|
4402
|
+
}
|
|
4268
4403
|
validate(transaction) {
|
|
4269
4404
|
return this.boards.validate({
|
|
4270
4405
|
...transaction,
|
|
4271
4406
|
boardId: this.id
|
|
4272
4407
|
});
|
|
4273
4408
|
}
|
|
4274
|
-
apply(transaction) {
|
|
4409
|
+
apply(transaction, options) {
|
|
4275
4410
|
return this.boards.apply({
|
|
4276
4411
|
...transaction,
|
|
4277
4412
|
boardId: this.id
|
|
4278
|
-
});
|
|
4413
|
+
}, options);
|
|
4279
4414
|
}
|
|
4280
4415
|
updateAwareness(seq, update) {
|
|
4281
4416
|
if (!this.websocketClient) return Promise.resolve();
|
|
@@ -4419,6 +4554,9 @@ var SpaceBoardsApi = class {
|
|
|
4419
4554
|
const query = params.toString();
|
|
4420
4555
|
return this.transport.request(`/api/spaces/${this.spaceId}/boards/${boardId}${query ? `?${query}` : ""}`, { fetch: customFetch });
|
|
4421
4556
|
}
|
|
4557
|
+
summary(boardId, customFetch) {
|
|
4558
|
+
return this.transport.request(`/api/spaces/${this.spaceId}/boards/${boardId}/summary`, { fetch: customFetch });
|
|
4559
|
+
}
|
|
4422
4560
|
capabilities(boardId, customFetch) {
|
|
4423
4561
|
return this.transport.request(`/api/spaces/${this.spaceId}/boards/${boardId}/capabilities`, { fetch: customFetch });
|
|
4424
4562
|
}
|
|
@@ -4429,10 +4567,10 @@ var SpaceBoardsApi = class {
|
|
|
4429
4567
|
body: JSON.stringify(transaction)
|
|
4430
4568
|
});
|
|
4431
4569
|
}
|
|
4432
|
-
async apply(transaction) {
|
|
4570
|
+
async apply(transaction, options) {
|
|
4433
4571
|
assertBoardTransactionNodeCreates(transaction.operations);
|
|
4434
4572
|
try {
|
|
4435
|
-
return await this.transport.request(`/api/spaces/${this.spaceId}/boards/${transaction.boardId}/transactions`, {
|
|
4573
|
+
return await this.transport.request(`/api/spaces/${this.spaceId}/boards/${transaction.boardId}/transactions${options?.compact ? "?compact=1" : ""}`, {
|
|
4436
4574
|
method: "POST",
|
|
4437
4575
|
headers: { "Content-Type": "application/json" },
|
|
4438
4576
|
body: JSON.stringify(transaction)
|
|
@@ -5221,4 +5359,4 @@ var CohubHttpClient = class {
|
|
|
5221
5359
|
};
|
|
5222
5360
|
const createHttpClient = (options) => new CohubHttpClient(options);
|
|
5223
5361
|
//#endregion
|
|
5224
|
-
export { parseUsername as $, WORK_SURFACE_READY_TIMEOUT_MS as A, parseWorkSurfaceRequest as B, BoardInputError as C, WORK_COMPOSER_CHIP_CONTENT_MAX_BYTES as D, validateBoardNodes as E, buildWorkSurfaceRequest as F, UI_COMMAND_PENDING_TTL_SECONDS as G, UI_COMMAND_DEFAULT_TIMEOUT_MS as H, buildWorkSurfaceResponse as I, UI_COMMAND_VERSION as J, UI_COMMAND_SETTLEMENT_GRACE_SECONDS as K, parseWorkComposerChipClear as L, buildWorkComposerChipClear as M, buildWorkComposerChipSet as N, WORK_COMPOSER_CHIP_KEY_MAX_LENGTH as O, buildWorkSurfaceReady as P, parseSpaceSlug as Q, parseWorkComposerChipSet as R, createSessionPatchReducer as S, createBoardNode as T, UI_COMMAND_MAX_TIMEOUT_MS as U, parseWorkSurfaceResponse as V, UI_COMMAND_PAYLOAD_MAX_BYTES as W, isUiSurfaceMethod as X, isTerminalUiCommandStatus as Y, parseUiCommand as Z, buildSpacePath as _,
|
|
5362
|
+
export { parseUsername as $, WORK_SURFACE_READY_TIMEOUT_MS as A, parseWorkSurfaceRequest as B, BoardInputError as C, WORK_COMPOSER_CHIP_CONTENT_MAX_BYTES as D, validateBoardNodes as E, buildWorkSurfaceRequest as F, UI_COMMAND_PENDING_TTL_SECONDS as G, UI_COMMAND_DEFAULT_TIMEOUT_MS as H, buildWorkSurfaceResponse as I, UI_COMMAND_VERSION as J, UI_COMMAND_SETTLEMENT_GRACE_SECONDS as K, parseWorkComposerChipClear as L, buildWorkComposerChipClear as M, buildWorkComposerChipSet as N, WORK_COMPOSER_CHIP_KEY_MAX_LENGTH as O, buildWorkSurfaceReady as P, parseSpaceSlug as Q, parseWorkComposerChipSet as R, createSessionPatchReducer as S, createBoardNode as T, UI_COMMAND_MAX_TIMEOUT_MS as U, parseWorkSurfaceResponse as V, UI_COMMAND_PAYLOAD_MAX_BYTES as W, isUiSurfaceMethod as X, isTerminalUiCommandStatus as Y, parseUiCommand as Z, buildSpacePath as _, PromptsApi as _t, ReferralsApi as a, validateBoardNodeInput as at, parseAssistantMessageCommit as b, CronJobsApi as bt, UiCommandsApi as c, parseBoardPlaybackPolicy as ct, BoardTransactionError as d, DEFAULT_BOARD_RENDER_LIMITS as dt, BoardAwarenessClientPayloadSchema as et, SpaceClient as f, SessionAccessApi as ft, buildSpaceInvitePath as g, SkillsApi as gt, PublicInviteApi as h, PublicAssetsApi as ht, WorksApi as i, BOARD_NODE_CONTRACT as it, WORK_SURFACE_REQUEST_TIMEOUT_MS as j, WORK_COMPOSER_CHIP_LABEL_MAX_LENGTH as k, TasksApi as l, ensureRealtimeConnected as lt, SpacesApi as m, SearchApi as mt, createHttpClient as n, BOARD_GEO_KINDS as nt, UsersApi as o, BoardCameraFocusParamsSchema as ot, SpacePublicFilesApi as p, ReferencesApi as pt, UI_COMMAND_TERMINAL_TTL_SECONDS as q, WorkCommerceApi as r, BOARD_NATIVE_NODE_TYPES as rt, UserApi as s, BoardPlaybackPolicySchema as st, CohubHttpClient as t, BOARD_COLOR_IDS as tt, BoardClient as u, BOARD_BUILTIN_CAPABILITIES as ut, SessionGenerationStreamClient as v, ModelsApi as vt, assertBoardNodes as w, SessionPatchReducer as x, ChannelsApi as xt, createSessionGenerationStreamClient as y, GenerationsApi as yt, parseWorkSurfaceReady as z };
|
|
@@ -488,6 +488,7 @@ type SpacePublicEndpoint = {
|
|
|
488
488
|
type SpacePublicEndpoints = Record<string, SpacePublicEndpoint>;
|
|
489
489
|
//#endregion
|
|
490
490
|
//#region ../protocol/dist/board-constants.d.ts
|
|
491
|
+
type BoardCoordinateSpace = "world" | "frame-local" | "world-offset" | "screen" | "screen-offset" | "normalized";
|
|
491
492
|
type BoardRenderCost = {
|
|
492
493
|
particles: number;
|
|
493
494
|
vertices: number;
|
|
@@ -696,7 +697,7 @@ type BoardNodeValidationDiagnostic = {
|
|
|
696
697
|
expected?: string;
|
|
697
698
|
received?: unknown;
|
|
698
699
|
allowedValues?: readonly string[];
|
|
699
|
-
coordinateSpace?:
|
|
700
|
+
coordinateSpace?: BoardCoordinateSpace;
|
|
700
701
|
};
|
|
701
702
|
type BoardJsonSchema = Record<string, unknown>;
|
|
702
703
|
type BoardNodeContract = {
|
|
@@ -760,6 +761,56 @@ declare const BoardTargetSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
760
761
|
}, z.core.$strip>, z.ZodObject<{
|
|
761
762
|
type: z.ZodLiteral<"camera">;
|
|
762
763
|
}, z.core.$strip>], "type">;
|
|
764
|
+
declare const BoardCameraStateSchema: z.ZodObject<{
|
|
765
|
+
centerX: z.ZodNumber;
|
|
766
|
+
centerY: z.ZodNumber;
|
|
767
|
+
zoom: z.ZodNumber;
|
|
768
|
+
}, z.core.$strip>;
|
|
769
|
+
declare const BoardCameraFocusSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
770
|
+
type: z.ZodLiteral<"rect">;
|
|
771
|
+
rect: z.ZodObject<{
|
|
772
|
+
x: z.ZodNumber;
|
|
773
|
+
y: z.ZodNumber;
|
|
774
|
+
width: z.ZodNumber;
|
|
775
|
+
height: z.ZodNumber;
|
|
776
|
+
}, z.core.$strip>;
|
|
777
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
778
|
+
type: z.ZodLiteral<"node">;
|
|
779
|
+
nodeId: z.ZodString;
|
|
780
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
781
|
+
type: z.ZodLiteral<"nodes">;
|
|
782
|
+
nodeIds: z.ZodArray<z.ZodString>;
|
|
783
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
784
|
+
type: z.ZodLiteral<"frame">;
|
|
785
|
+
frameId: z.ZodString;
|
|
786
|
+
}, z.core.$strip>], "type">;
|
|
787
|
+
declare const BoardCameraFocusParamsSchema: z.ZodObject<{
|
|
788
|
+
focus: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
789
|
+
type: z.ZodLiteral<"rect">;
|
|
790
|
+
rect: z.ZodObject<{
|
|
791
|
+
x: z.ZodNumber;
|
|
792
|
+
y: z.ZodNumber;
|
|
793
|
+
width: z.ZodNumber;
|
|
794
|
+
height: z.ZodNumber;
|
|
795
|
+
}, z.core.$strip>;
|
|
796
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
797
|
+
type: z.ZodLiteral<"node">;
|
|
798
|
+
nodeId: z.ZodString;
|
|
799
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
800
|
+
type: z.ZodLiteral<"nodes">;
|
|
801
|
+
nodeIds: z.ZodArray<z.ZodString>;
|
|
802
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
803
|
+
type: z.ZodLiteral<"frame">;
|
|
804
|
+
frameId: z.ZodString;
|
|
805
|
+
}, z.core.$strip>], "type">;
|
|
806
|
+
fit: z.ZodDefault<z.ZodEnum<{
|
|
807
|
+
contain: "contain";
|
|
808
|
+
cover: "cover";
|
|
809
|
+
}>>;
|
|
810
|
+
padding: z.ZodDefault<z.ZodNumber>;
|
|
811
|
+
minZoom: z.ZodOptional<z.ZodNumber>;
|
|
812
|
+
maxZoom: z.ZodOptional<z.ZodNumber>;
|
|
813
|
+
}, z.core.$strip>;
|
|
763
814
|
declare const BoardAssetRefSchema: z.ZodObject<{
|
|
764
815
|
type: z.ZodEnum<{
|
|
765
816
|
extension: "extension";
|
|
@@ -872,6 +923,9 @@ declare const BoardSequenceSchema: z.ZodObject<{
|
|
|
872
923
|
revision: z.ZodNumber;
|
|
873
924
|
}, z.core.$strip>;
|
|
874
925
|
type BoardTarget = z.infer<typeof BoardTargetSchema>;
|
|
926
|
+
type BoardCameraState = z.infer<typeof BoardCameraStateSchema>;
|
|
927
|
+
type BoardCameraFocus = z.infer<typeof BoardCameraFocusSchema>;
|
|
928
|
+
type BoardCameraFocusParams = z.infer<typeof BoardCameraFocusParamsSchema>;
|
|
875
929
|
type BoardAssetRef = z.infer<typeof BoardAssetRefSchema>;
|
|
876
930
|
type BoardKeyframe = z.infer<typeof BoardKeyframeSchema>;
|
|
877
931
|
type BoardClip = z.infer<typeof BoardClipSchema>;
|
|
@@ -921,6 +975,7 @@ type BoardOperation = (BoardOperationBase & {
|
|
|
921
975
|
patch: {
|
|
922
976
|
title?: string;
|
|
923
977
|
metadata?: Record<string, unknown>;
|
|
978
|
+
metadataPatch?: Record<string, unknown>;
|
|
924
979
|
};
|
|
925
980
|
};
|
|
926
981
|
}) | (BoardOperationBase & {
|
|
@@ -987,6 +1042,17 @@ type BoardTransaction = {
|
|
|
987
1042
|
undoGroupId?: string | null;
|
|
988
1043
|
operations: BoardOperation[];
|
|
989
1044
|
};
|
|
1045
|
+
type BoardSummary = {
|
|
1046
|
+
board: BoardRecord;
|
|
1047
|
+
counts: {
|
|
1048
|
+
nodes: number;
|
|
1049
|
+
connections: number;
|
|
1050
|
+
effects: number;
|
|
1051
|
+
sequences: number;
|
|
1052
|
+
clips: number;
|
|
1053
|
+
};
|
|
1054
|
+
playback: BoardPlaybackSnapshot | null;
|
|
1055
|
+
};
|
|
990
1056
|
type BoardBootstrap = {
|
|
991
1057
|
board: BoardRecord;
|
|
992
1058
|
nodes: BoardNodeRecord[];
|
|
@@ -1219,7 +1285,7 @@ type BoardDiagnostic = {
|
|
|
1219
1285
|
expected?: string;
|
|
1220
1286
|
received?: unknown;
|
|
1221
1287
|
allowedValues?: readonly string[];
|
|
1222
|
-
coordinateSpace?:
|
|
1288
|
+
coordinateSpace?: BoardCoordinateSpace;
|
|
1223
1289
|
};
|
|
1224
1290
|
type BoardValidationResult = {
|
|
1225
1291
|
valid: boolean;
|
|
@@ -4259,4 +4325,4 @@ declare class WebsocketClient {
|
|
|
4259
4325
|
}
|
|
4260
4326
|
declare const createWebsocketClient: (options?: WebsocketClientOptions) => WebsocketClient;
|
|
4261
4327
|
//#endregion
|
|
4262
|
-
export { CreateInvitationInput as $,
|
|
4328
|
+
export { CreateInvitationInput as $, SessionTurnIndexItem as $a, UiPreviewTarget as $i, SpaceFsPreparingFile as $n, GenerationModelPolicy as $r, ReferralListItem as $t, BillingPluginStatus as A, BoardTransaction as Aa, BoardAwarenessStateUpdate as Ai, SpaceCommerceFeatureBenefit as An, SpaceTurnAuthorFilter as Ar, MeResponse as At, BillingSubscriptionHistoryStatus as B, BoardNodeContract as Ba, UI_COMMAND_MAX_TIMEOUT_MS as Bi, SpaceDefaultResponse as Bn, UserActivityRankings as Br, PublicUserProfile as Bt, BillingCreditStatus as C, BoardPlaybackPolicy as Ca, RealtimeServerEvent as Ci, SpaceBootstrapStage as Cn, mergeRequestSourceIntoMeta as Co, SpacePublicProfile as Cr, LabelItemsResponse as Ct, BillingDiscountPricing as D, BoardSequence as Da, WorkVersionPublishedEvent as Di, SpaceCommerceBenefit as Dn, requestSourceToHeaders as Do, SpaceSandboxConfig as Dr, LabelResourceType as Dt, BillingDiscountOfferRef as E, BoardRecord as Ea, SessionTurnPatchEvent as Ei, SpaceCheckpointDetailResponse as En, readRequestSourceFromEnv as Eo, SpaceSandboxAutoDestroyPolicy as Er, LabelRecord as Et, BillingProductPricing as F, BOARD_NATIVE_NODE_TYPES as Fa, WorkArtifactManifestFile as Fi, SpaceConfig as Fn, SpaceUsageSummary as Fr, PromptAccessMode as Ft, CheckpointDiffFileResponse as G, BoardConnectionRecord as Ga, UI_COMMAND_VERSION as Gi, SpaceFsCreateUploadInput as Gn, UserSessionSpaceSummary as Gr, ReferenceAggregateResponse as Gt, Channel as H, validateBoardNodeInput as Ha, UI_COMMAND_PENDING_TTL_SECONDS as Hi, SpaceFsCompleteUploadInput as Hn, UserProfile as Hr, PublicUserWorkItem as Ht, BillingPromotionCodePreview as I, BOARD_NODE_CONTRACT as Ia, WorkBoardArtifactManifest as Ii, SpaceConfigInput as In, TaskRunDetailResponse as Ir, PromptTemplateCatalogEntry as It, CheckpointDiffStats as J, BoardRenderCost as Ja, UiCommandError as Ji, SpaceFsEncoding as Jn, ChannelHealth as Jr, ReferenceQueryResponse as Jt, CheckpointDiffPatchKind as K, BoardCapability as Ka, UiCommand as Ki, SpaceFsCreateUploadResponse as Kn, UserSessionsResponse as Kr, ReferenceDirection as Kt, BillingRedemptionResult as L, BoardColorId as La, WorkBoardAsset as Li, SpaceConfigResponse as Ln, TaskRunRecord as Lr, PromptTemplateCatalogResponse as Lt, BillingProductCreditBenefit as M, parseBoardPlaybackPolicy as Ma, WorkArtifactDescriptor as Mi, SpaceCommerceProduct as Mn, SpaceTurnsResponse as Mr, PatchResourceLabelsInput as Mt, BillingProductDisplay as N, BOARD_COLOR_IDS as Na, WorkArtifactDownloadDescriptor as Ni, SpaceCommerceProductBenefitBinding as Nn, SpaceUsageHourlyStat as Nr, PatchResourceLabelsResponse as Nt, BillingHistoryPagination as O, BoardSummary as Oa, BoardAwarenessGesture as Oi, SpaceCommerceBuyerProfile as On, resolveRequestSourceChannel as Oo, SpaceSandboxProvider as Or, LabelScopeType as Ot, BillingProductKind as P, BOARD_GEO_KINDS as Pa, WorkArtifactManifest as Pi, SpaceCommerceProductCreditBenefit as Pn, SpaceUsageResponse as Pr, Permission as Pt, ClaimReferralResponse as Q, SessionTurnSegmentRecord as Qa, UiPreviewShowCommand as Qi, SpaceFsMoveInput as Qn, FeishuChannelConfig as Qr, ReferralDashboard as Qt, BillingResponsePayload as R, BoardGeoKind as Ra, WorkContentKind as Ri, SpaceConfigUpdateResponse as Rn, UserActivityQuery as Rr, PublicReferral as Rt, BillingCreditGrantStatus as S, BoardPlaybackCommand as Sa, RealtimeRoomMember as Si, SpaceBootstrapSource as Sn, isRequestSourceUuid as So, SpacePresenceUser as Sr, LabelAssignmentRecord as St, BillingDiscountOffer as T, BoardPlaybackSnapshot as Ta, RealtimeWorkVersionRecord as Ti, SpaceChannelBindingInput as Tn, parseRequestSourceFromHeaders as To, SpaceRole as Tr, LabelListItem as Tt, CheckpointDiffDelivery as U, BoardConnection as Ua, UI_COMMAND_SETTLEMENT_GRACE_SECONDS as Ui, SpaceFsCompleteUploadResponse as Un, UserRulesResponse as Ur, ReferenceAggregateGroup as Ut, BillingSubscriptionSummary as V, BoardNodeValidationDiagnostic as Va, UI_COMMAND_PAYLOAD_MAX_BYTES as Vi, SpaceEnvInput as Vn, UserActivityResponse as Vr, PublicUserSpaceItem as Vt, CheckpointDiffFile as W, BoardConnectionDirection as Wa, UI_COMMAND_TERMINAL_TTL_SECONDS as Wi, SpaceFsCreateDirectoryInput as Wn, UserSessionListItem as Wr, ReferenceAggregateGroupBy as Wt, CheckpointDiffSummary as X, MessageRecord as Xa, UiCommandStatus as Xi, SpaceFsFileKind as Xn, ChannelRuntimeState as Xr, ReferenceRecord as Xt, CheckpointDiffStatus as Y, SpacePublicEndpoints as Ya, UiCommandRecord as Yi, SpaceFsEntry as Yn, ChannelHealthReasonCode as Yr, ReferenceQueryableType as Yt, CheckpointRecord as Z, SessionForkRecord as Za, UiFilePreviewTarget as Zi, SpaceFsFileResponse as Zn, DiscordChannelConfig as Zr, ReferenceResourceType as Zt, BillingCatalogProduct as _, BoardKeyframe as _a, ChannelEnvelope as _i, SkillCatalogResponse as _n, RequestSource as _o, SpaceMeta as _r, JsonObject as _t, WebsocketClientOptions as a, BoardAssetRef as aa, encodeGenerationPolicy as ai, SessionBindingRecord as an, CompletionThinkingLevel as ao, SpaceFsUploadEntry as ar, CreateSpaceSessionInput as at, BillingConversionIntent as b, BoardNodeRecord as ba, RealtimeRoomDescriptor as bi, SpaceAccessPolicy as bn, isRequestSourceClientId as bo, SpacePendingDiffSummary as br, LabelAssignmentListItem as bt, createWebsocketClient as c, BoardCameraFocusParams as ca, getAllowedGenerationModelIds as ci, SessionMessagesResponse as cn, ModelThinkingLevel as co, SpaceFsUploadPlanEntryInput as cr, CronJobUpdatePatch as ct, BatchUserProfilesResponse as d, BoardClip as da, GenerationContentBlock as di, SessionTurnResponse as dn, Usage as do, SpaceFsWriteFileInput as dr, GenerationUsageHourlyStat as dt, UiSurfaceRequest as ea, GenerationParameterConstraint as ei, ReferralReward as en, SessionTurnRecord as eo, SpaceFsReadFilesError as er, CreateInvitationResponse as et, BillingBalanceActivity as f, BoardCreateInput as fa, GenerationModelDeclaration as fi, SessionTurnSignedUrlsResponse as fn, BillingPayload as fo, SpaceInvitation as fr, GenerationUsageSummary as ft, BillingCatalog as g, BoardInspectInput as ga, BoardTransactionAppliedEvent as gi, SkillCatalogEntry as gn, REQUEST_SOURCE_VIA_MAX_LENGTH as go, SpaceMember as gr, InvitationDetail as gt, BillingBalanceActivityStatus as h, BoardEffect as ha, BoardPlaybackChangedEvent as hi, SessionTurnsPaginatedResponse as hn, COHUB_SOURCE_HEADER_NAMES as ho, SpaceListItem as hr, GlobalSearchType as ht, WebsocketClientEvents as i, parseUiCommand as ia, decodeGenerationPolicy as ii, SendMessageCronJobPayload as in, CompletionMessageRole as io, SpaceFsUploadDestination as ir, CreateSpacePromptResponse as it, BillingProductBillingInterval as j, BoardValidationResult as ja, BoardAwarenessUpdate as ji, SpaceCommerceOrder as jn, SpaceTurnListItem as jr, ModelCatalogEntry as jt, BillingPaymentStatus as k, BoardTarget as ka, BoardAwarenessNodePreview as ki, SpaceCommerceCreditsBenefit as kn, SpaceSessionsResponse as kr, LabelSource as kt, AcceptInvitationResponse as l, BoardCameraState as la, normalizeGenerationPolicy as li, SessionRecord as ln, SpaceCompletionResult as lo, SpaceFsUploadProgress as lr, CursorPageInfo as lt, BillingBalanceActivityList as m, BoardDiagnostic as ma, BoardAwarenessUpdatedEvent as mi, SessionTurnWindowResponse as mn, COHUB_SOURCE_HEADER as mo, SpaceInvitationLocation as mr, GlobalSearchResult as mt, WebSocketLike as n, isTerminalUiCommandStatus as na, GenerationPolicyError as ni, ResourceLabelsResponse as nn, CompletionAssistantMessage as no, SpaceFsReadFilesResponse as nr, CreateSpaceModInput as nt, WebsocketClientState as o, BoardBootstrap as oa, filterGenerationDeclarationsByPolicy as oi, SessionMessageResponse as on, CompletionUsage as oo, SpaceFsUploadError as or, CronJobPayload as ot, BillingBalanceActivityKind as p, BoardDeleteReason as pa, GenerationResult as pi, SessionTurnStreamSnapshotResponse as pn, ContentBlock as po, SpaceInvitationListResponse as pr, GlobalSearchResponse as pt, CheckpointDiffPatchLine as q, BoardCoordinateSpace as qa, UiCommandDispatchedPayload as qi, SpaceFsDeleteNodeInput as qn, ChannelConfig as qr, ReferenceKind as qt, WebsocketClient as r, isUiSurfaceMethod as ra, assertGenerationRequestAllowedByPolicy as ri, SandboxSpecId as rn, CompletionMessage as ro, SpaceFsTreeResponse as rr, CreateSpacePromptInput as rt, WebsocketEventPayload as s, BoardCameraFocus as sa, findGenerationModelPolicy as si, SessionMessagesPaginatedResponse as sn, CreateSpaceCompletionInput as so, SpaceFsUploadPlanEntry as sr, CronJobRecord as st, WebSocketConstructor as t, UiWorkPreviewTarget as ta, GenerationPolicy as ti, ReferralStatus as tn, SpaceTurnsResponse$1 as to, SpaceFsReadFilesInput as tr, CreateSpaceInput as tt, ApiError as u, BoardCapabilities as ua, parseGenerationPolicyFromEnv as ui, SessionTurnIndexResponse as un, SpaceCompletionStreamEvent as uo, SpaceFsUploadResponse as ur, GenerationUsageBlock as ut, BillingCheckoutActionState as v, BoardManifest as va, LabelAssignmentsUpdatedEvent as vi, SkillCatalogSource as vn, RequestSourceVia as vo, SpaceModListItem as vr, JsonPrimitive as vt, BillingCreditUnit as w, BoardPlaybackPolicySchema as wa, RealtimeWorkRecord as wi, SpaceBootstrapStatus as wn, normalizeRequestSource as wo, SpaceRecord as wr, LabelItemsSessionFork as wt, BillingCreditExpiryGroup as x, BoardOperation as xa, RealtimeRoomEvent as xi, SpaceBootstrapMeta as xn, isRequestSourceEmpty as xo, SpacePresenceSnapshot as xr, LabelAssignmentPageInfo as xt, BillingCheckoutResult as y, BoardNodeInput as ya, RealtimePatchOperation as yi, SpaceAccess as yn, hasRequestSourceIdentity as yo, SpacePendingDiffFileResponse as yr, JsonValue as yt, BillingSubscriptionHistoryList as z, BoardNativeNodeType as za, UI_COMMAND_DEFAULT_TIMEOUT_MS as zi, SpaceCreateResponse as zn, UserActivityRange as zr, PublicUserPageResponse as zt };
|