@neta-art/cohub 5.9.0 → 6.0.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/README.md +42 -46
- package/dist/board/animation.d.ts +156 -67
- package/dist/board/animation.js +162 -277
- 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 +8 -6
- package/dist/board/index.js +7 -6
- package/dist/board/mutation.d.ts +15 -0
- package/dist/board/mutation.js +67 -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 +30 -7
- package/dist/chunks/http.js +785 -289
- package/dist/chunks/websocket.d.ts +2675 -187
- package/dist/http.d.ts +3 -3
- package/dist/index.d.ts +158 -299
- package/dist/index.js +164 -279
- package/dist/protocol/dist/board-authoring.d.ts +1 -0
- package/dist/protocol/dist/board-authoring.js +217 -0
- package/dist/protocol/dist/board-capability-registry.d.ts +2 -0
- package/dist/protocol/dist/board-capability-registry.js +74 -0
- package/dist/protocol/dist/board-codec.d.ts +2 -0
- package/dist/protocol/dist/board-codec.js +4 -0
- package/dist/protocol/dist/board-composition.d.ts +258 -0
- package/dist/protocol/dist/board-composition.js +318 -0
- package/dist/protocol/dist/board-constants.d.ts +2 -1
- package/dist/protocol/dist/board-constants.js +40 -10
- 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 +1 -11
- package/dist/protocol/dist/board-node.js +1 -81
- package/dist/protocol/dist/board-upgrade.d.ts +1 -0
- package/dist/protocol/dist/board-upgrade.js +2 -0
- 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 +135 -76
- package/dist/protocol/dist/board.js +50 -69
- package/dist/protocol/dist/index.d.ts +9 -4
- package/dist/protocol/dist/index.js +9 -4
- package/dist/types.d.ts +3 -2
- package/docs/work-runtime-guide.md +19 -3
- package/package.json +3 -2
- package/dist/board/nodes.d.ts +0 -113
- package/dist/board/nodes.js +0 -154
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BoardCapability, BoardRenderCost } from "./board-constants.js";
|
|
2
|
-
import "./board-connection.js";
|
|
1
|
+
import { BoardCapability, BoardCoordinateSpace, BoardRenderCost } from "./board-constants.js";
|
|
2
|
+
import { BoardConnectionInput, BoardConnectionPatch } from "./board-connection.js";
|
|
3
|
+
import { BoardComposition } from "./board-composition.js";
|
|
3
4
|
import "./board-node.js";
|
|
4
5
|
import { z } from "zod";
|
|
5
6
|
//#region ../protocol/dist/board.d.ts
|
|
@@ -18,17 +19,56 @@ declare class InvalidBoardFileError extends Error {
|
|
|
18
19
|
}
|
|
19
20
|
declare function parseBoardManifest(input: string | unknown): BoardManifest;
|
|
20
21
|
declare function serializeBoardManifest(manifest: BoardManifest): string;
|
|
21
|
-
declare const
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
declare const BoardCameraStateSchema: z.ZodObject<{
|
|
23
|
+
centerX: z.ZodNumber;
|
|
24
|
+
centerY: z.ZodNumber;
|
|
25
|
+
zoom: z.ZodNumber;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
declare const BoardCameraFocusSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
28
|
+
type: z.ZodLiteral<"rect">;
|
|
29
|
+
rect: z.ZodObject<{
|
|
30
|
+
x: z.ZodNumber;
|
|
31
|
+
y: z.ZodNumber;
|
|
32
|
+
width: z.ZodNumber;
|
|
33
|
+
height: z.ZodNumber;
|
|
34
|
+
}, z.core.$strip>;
|
|
24
35
|
}, z.core.$strip>, z.ZodObject<{
|
|
25
|
-
type: z.ZodLiteral<"
|
|
26
|
-
|
|
36
|
+
type: z.ZodLiteral<"item">;
|
|
37
|
+
itemId: z.ZodString;
|
|
27
38
|
}, z.core.$strip>, z.ZodObject<{
|
|
28
|
-
type: z.ZodLiteral<"
|
|
39
|
+
type: z.ZodLiteral<"items">;
|
|
40
|
+
itemIds: z.ZodArray<z.ZodString>;
|
|
29
41
|
}, z.core.$strip>, z.ZodObject<{
|
|
30
|
-
type: z.ZodLiteral<"
|
|
42
|
+
type: z.ZodLiteral<"frame">;
|
|
43
|
+
frameId: z.ZodString;
|
|
31
44
|
}, z.core.$strip>], "type">;
|
|
45
|
+
declare const BoardCameraFocusParamsSchema: z.ZodObject<{
|
|
46
|
+
focus: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
47
|
+
type: z.ZodLiteral<"rect">;
|
|
48
|
+
rect: z.ZodObject<{
|
|
49
|
+
x: z.ZodNumber;
|
|
50
|
+
y: z.ZodNumber;
|
|
51
|
+
width: z.ZodNumber;
|
|
52
|
+
height: z.ZodNumber;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
55
|
+
type: z.ZodLiteral<"item">;
|
|
56
|
+
itemId: z.ZodString;
|
|
57
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
58
|
+
type: z.ZodLiteral<"items">;
|
|
59
|
+
itemIds: z.ZodArray<z.ZodString>;
|
|
60
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
61
|
+
type: z.ZodLiteral<"frame">;
|
|
62
|
+
frameId: z.ZodString;
|
|
63
|
+
}, z.core.$strip>], "type">;
|
|
64
|
+
fit: z.ZodDefault<z.ZodEnum<{
|
|
65
|
+
contain: "contain";
|
|
66
|
+
cover: "cover";
|
|
67
|
+
}>>;
|
|
68
|
+
padding: z.ZodDefault<z.ZodNumber>;
|
|
69
|
+
minZoom: z.ZodOptional<z.ZodNumber>;
|
|
70
|
+
maxZoom: z.ZodOptional<z.ZodNumber>;
|
|
71
|
+
}, z.core.$strip>;
|
|
32
72
|
declare const BoardAssetRefSchema: z.ZodObject<{
|
|
33
73
|
type: z.ZodEnum<{
|
|
34
74
|
extension: "extension";
|
|
@@ -37,63 +77,15 @@ declare const BoardAssetRefSchema: z.ZodObject<{
|
|
|
37
77
|
ref: z.ZodString;
|
|
38
78
|
digest: z.ZodOptional<z.ZodString>;
|
|
39
79
|
}, z.core.$strip>;
|
|
40
|
-
declare const BoardClipSchema: z.ZodObject<{
|
|
41
|
-
id: z.ZodString;
|
|
42
|
-
sequenceId: z.ZodString;
|
|
43
|
-
kind: z.ZodString;
|
|
44
|
-
kindVersion: z.ZodNumber;
|
|
45
|
-
target: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
46
|
-
type: z.ZodLiteral<"node">;
|
|
47
|
-
nodeId: z.ZodString;
|
|
48
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
49
|
-
type: z.ZodLiteral<"effect">;
|
|
50
|
-
effectId: z.ZodString;
|
|
51
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
52
|
-
type: z.ZodLiteral<"board">;
|
|
53
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
54
|
-
type: z.ZodLiteral<"camera">;
|
|
55
|
-
}, z.core.$strip>], "type">;
|
|
56
|
-
start: z.ZodNumber;
|
|
57
|
-
duration: z.ZodNumber;
|
|
58
|
-
layer: z.ZodDefault<z.ZodEnum<{
|
|
59
|
-
behind: "behind";
|
|
60
|
-
content: "content";
|
|
61
|
-
front: "front";
|
|
62
|
-
screen: "screen";
|
|
63
|
-
}>>;
|
|
64
|
-
fill: z.ZodDefault<z.ZodEnum<{
|
|
65
|
-
backwards: "backwards";
|
|
66
|
-
both: "both";
|
|
67
|
-
forwards: "forwards";
|
|
68
|
-
none: "none";
|
|
69
|
-
}>>;
|
|
70
|
-
easing: z.ZodDefault<z.ZodString>;
|
|
71
|
-
params: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
72
|
-
keyframes: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
73
|
-
at: z.ZodNumber;
|
|
74
|
-
value: z.ZodUnknown;
|
|
75
|
-
easing: z.ZodOptional<z.ZodString>;
|
|
76
|
-
}, z.core.$strip>>>;
|
|
77
|
-
assetRefs: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
78
|
-
type: z.ZodEnum<{
|
|
79
|
-
extension: "extension";
|
|
80
|
-
"space-file": "space-file";
|
|
81
|
-
}>;
|
|
82
|
-
ref: z.ZodString;
|
|
83
|
-
digest: z.ZodOptional<z.ZodString>;
|
|
84
|
-
}, z.core.$strip>>>;
|
|
85
|
-
seed: z.ZodString;
|
|
86
|
-
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
87
|
-
}, z.core.$strip>;
|
|
88
80
|
declare const BoardEffectSchema: z.ZodObject<{
|
|
89
81
|
id: z.ZodString;
|
|
90
82
|
boardId: z.ZodString;
|
|
91
83
|
target: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
92
|
-
type: z.ZodLiteral<"
|
|
93
|
-
|
|
94
|
-
}, z.core.$
|
|
84
|
+
type: z.ZodLiteral<"item">;
|
|
85
|
+
itemId: z.ZodString;
|
|
86
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
95
87
|
type: z.ZodLiteral<"board">;
|
|
96
|
-
}, z.core.$
|
|
88
|
+
}, z.core.$strict>], "type">;
|
|
97
89
|
kind: z.ZodString;
|
|
98
90
|
kindVersion: z.ZodNumber;
|
|
99
91
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -125,21 +117,11 @@ declare const BoardEffectSchema: z.ZodObject<{
|
|
|
125
117
|
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
126
118
|
revision: z.ZodNumber;
|
|
127
119
|
}, z.core.$strip>;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
name: z.ZodString;
|
|
132
|
-
duration: z.ZodNumber;
|
|
133
|
-
seed: z.ZodString;
|
|
134
|
-
restPose: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
135
|
-
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
136
|
-
revision: z.ZodNumber;
|
|
137
|
-
}, z.core.$strip>;
|
|
138
|
-
type BoardTarget = z.infer<typeof BoardTargetSchema>;
|
|
120
|
+
type BoardCameraState = z.infer<typeof BoardCameraStateSchema>;
|
|
121
|
+
type BoardCameraFocus = z.infer<typeof BoardCameraFocusSchema>;
|
|
122
|
+
type BoardCameraFocusParams = z.infer<typeof BoardCameraFocusParamsSchema>;
|
|
139
123
|
type BoardAssetRef = z.infer<typeof BoardAssetRefSchema>;
|
|
140
|
-
type BoardClip = z.infer<typeof BoardClipSchema>;
|
|
141
124
|
type BoardEffect = z.infer<typeof BoardEffectSchema>;
|
|
142
|
-
type BoardSequence = z.infer<typeof BoardSequenceSchema>;
|
|
143
125
|
type BoardRecord = {
|
|
144
126
|
id: string;
|
|
145
127
|
spaceId: string;
|
|
@@ -171,6 +153,77 @@ type BoardNodeRecord = {
|
|
|
171
153
|
updatedAt: string | null;
|
|
172
154
|
};
|
|
173
155
|
type BoardNodeInput = Omit<BoardNodeRecord, "boardId" | "version" | "createdAt" | "updatedAt">;
|
|
156
|
+
declare const BOARD_DELETE_REASONS: readonly ["user-delete", "orphan-cleanup", "layout-replace", "placeholder-cascade", "node-cascade"];
|
|
157
|
+
type BoardDeleteReason = (typeof BOARD_DELETE_REASONS)[number] | (string & {});
|
|
158
|
+
type BoardOperationBase = {
|
|
159
|
+
opId?: string;
|
|
160
|
+
/** Optional local undo hint. Servers recompute authoritative inverse data. */
|
|
161
|
+
inverse?: Record<string, unknown>;
|
|
162
|
+
};
|
|
163
|
+
type BoardOperation = (BoardOperationBase & {
|
|
164
|
+
type: "board.patch";
|
|
165
|
+
payload: {
|
|
166
|
+
patch: {
|
|
167
|
+
title?: string;
|
|
168
|
+
metadata?: Record<string, unknown>;
|
|
169
|
+
metadataPatch?: Record<string, unknown>;
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
}) | (BoardOperationBase & {
|
|
173
|
+
type: "node.create";
|
|
174
|
+
payload: {
|
|
175
|
+
node: BoardNodeInput;
|
|
176
|
+
};
|
|
177
|
+
}) | (BoardOperationBase & {
|
|
178
|
+
type: "node.patch";
|
|
179
|
+
payload: {
|
|
180
|
+
nodeId: string;
|
|
181
|
+
patch: Partial<BoardNodeInput>;
|
|
182
|
+
};
|
|
183
|
+
}) | (BoardOperationBase & {
|
|
184
|
+
type: "node.delete";
|
|
185
|
+
payload: {
|
|
186
|
+
nodeId: string;
|
|
187
|
+
reason?: BoardDeleteReason;
|
|
188
|
+
};
|
|
189
|
+
}) | (BoardOperationBase & {
|
|
190
|
+
type: "connection.create";
|
|
191
|
+
payload: {
|
|
192
|
+
connection: BoardConnectionInput;
|
|
193
|
+
};
|
|
194
|
+
}) | (BoardOperationBase & {
|
|
195
|
+
type: "connection.patch";
|
|
196
|
+
payload: {
|
|
197
|
+
connectionId: string;
|
|
198
|
+
patch: BoardConnectionPatch;
|
|
199
|
+
};
|
|
200
|
+
}) | (BoardOperationBase & {
|
|
201
|
+
type: "connection.delete";
|
|
202
|
+
payload: {
|
|
203
|
+
connectionId: string;
|
|
204
|
+
reason?: BoardDeleteReason;
|
|
205
|
+
};
|
|
206
|
+
}) | (BoardOperationBase & {
|
|
207
|
+
type: "effect.upsert";
|
|
208
|
+
payload: {
|
|
209
|
+
effect: Omit<BoardEffect, "boardId" | "revision">;
|
|
210
|
+
};
|
|
211
|
+
}) | (BoardOperationBase & {
|
|
212
|
+
type: "effect.delete";
|
|
213
|
+
payload: {
|
|
214
|
+
effectId: string;
|
|
215
|
+
};
|
|
216
|
+
}) | (BoardOperationBase & {
|
|
217
|
+
type: "composition.apply";
|
|
218
|
+
payload: {
|
|
219
|
+
composition: Omit<BoardComposition, "revision">;
|
|
220
|
+
};
|
|
221
|
+
}) | (BoardOperationBase & {
|
|
222
|
+
type: "composition.delete";
|
|
223
|
+
payload: {
|
|
224
|
+
compositionId: string;
|
|
225
|
+
};
|
|
226
|
+
});
|
|
174
227
|
type BoardDiagnostic = {
|
|
175
228
|
severity: "info" | "warning" | "error";
|
|
176
229
|
code: string;
|
|
@@ -180,13 +233,19 @@ type BoardDiagnostic = {
|
|
|
180
233
|
expected?: string;
|
|
181
234
|
received?: unknown;
|
|
182
235
|
allowedValues?: readonly string[];
|
|
183
|
-
coordinateSpace?:
|
|
236
|
+
coordinateSpace?: BoardCoordinateSpace;
|
|
184
237
|
};
|
|
185
238
|
type BoardValidationResult = {
|
|
186
239
|
valid: boolean;
|
|
187
240
|
diagnostics: BoardDiagnostic[];
|
|
188
241
|
peakCost: BoardRenderCost;
|
|
189
242
|
};
|
|
243
|
+
/** Persisted on `boards.metadata.playback`: how a Board plays when opened. */
|
|
244
|
+
declare const BoardPlaybackPolicySchema: z.ZodObject<{
|
|
245
|
+
compositionId: z.ZodString;
|
|
246
|
+
delayMs: z.ZodDefault<z.ZodNumber>;
|
|
247
|
+
}, z.core.$strip>;
|
|
248
|
+
type BoardPlaybackPolicy = z.infer<typeof BoardPlaybackPolicySchema>;
|
|
190
249
|
declare function isBoardPath(path: string): boolean;
|
|
191
250
|
//#endregion
|
|
192
|
-
export { BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BoardAssetRef, BoardAssetRefSchema,
|
|
251
|
+
export { BOARD_DELETE_REASONS, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BoardAssetRef, BoardAssetRefSchema, BoardCameraFocus, BoardCameraFocusParams, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraState, BoardCameraStateSchema, type BoardCapability, BoardDeleteReason, BoardDiagnostic, BoardEffect, BoardEffectSchema, BoardManifest, BoardManifestSchema, BoardNodeInput, BoardNodeRecord, BoardOperation, BoardPlaybackPolicy, BoardPlaybackPolicySchema, BoardRecord, type BoardRenderCost, BoardValidationResult, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest };
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import "./board-constants.js";
|
|
1
|
+
import { BOARD_BUILTIN_CAPABILITIES, DEFAULT_BOARD_RENDER_LIMITS } from "./board-constants.js";
|
|
2
2
|
import { BoardConnectionSchema } from "./board-connection.js";
|
|
3
|
+
import { BoardCompositionInputSchema } from "./board-composition.js";
|
|
4
|
+
import { BoardAuthoringItemSchema } from "./board-authoring.js";
|
|
3
5
|
import { z } from "zod";
|
|
4
6
|
//#region ../protocol/dist/board.js
|
|
5
7
|
const BOARD_EXTENSION = ".board";
|
|
@@ -36,62 +38,59 @@ function parseBoardManifest(input) {
|
|
|
36
38
|
function serializeBoardManifest(manifest) {
|
|
37
39
|
return `${JSON.stringify(BoardManifestSchema.parse(manifest), null, 2)}\n`;
|
|
38
40
|
}
|
|
39
|
-
const
|
|
41
|
+
const BoardCameraStateSchema = z.object({
|
|
42
|
+
centerX: finiteSchema,
|
|
43
|
+
centerY: finiteSchema,
|
|
44
|
+
zoom: finiteSchema.positive()
|
|
45
|
+
});
|
|
46
|
+
const BoardCameraFocusSchema = z.discriminatedUnion("type", [
|
|
47
|
+
z.object({
|
|
48
|
+
type: z.literal("rect"),
|
|
49
|
+
rect: z.object({
|
|
50
|
+
x: finiteSchema,
|
|
51
|
+
y: finiteSchema,
|
|
52
|
+
width: finiteSchema.positive(),
|
|
53
|
+
height: finiteSchema.positive()
|
|
54
|
+
})
|
|
55
|
+
}),
|
|
40
56
|
z.object({
|
|
41
|
-
type: z.literal("
|
|
42
|
-
|
|
57
|
+
type: z.literal("item"),
|
|
58
|
+
itemId: idSchema
|
|
43
59
|
}),
|
|
44
60
|
z.object({
|
|
45
|
-
type: z.literal("
|
|
46
|
-
|
|
61
|
+
type: z.literal("items"),
|
|
62
|
+
itemIds: z.array(idSchema).min(1).max(1e3)
|
|
47
63
|
}),
|
|
48
|
-
z.object({
|
|
49
|
-
|
|
64
|
+
z.object({
|
|
65
|
+
type: z.literal("frame"),
|
|
66
|
+
frameId: idSchema
|
|
67
|
+
})
|
|
50
68
|
]);
|
|
69
|
+
const BoardCameraFocusParamsSchema = z.object({
|
|
70
|
+
focus: BoardCameraFocusSchema,
|
|
71
|
+
fit: z.enum(["contain", "cover"]).default("contain"),
|
|
72
|
+
padding: finiteSchema.nonnegative().default(32),
|
|
73
|
+
minZoom: finiteSchema.positive().optional(),
|
|
74
|
+
maxZoom: finiteSchema.positive().optional()
|
|
75
|
+
}).superRefine((value, context) => {
|
|
76
|
+
if (value.minZoom !== void 0 && value.maxZoom !== void 0 && value.minZoom > value.maxZoom) context.addIssue({
|
|
77
|
+
code: "custom",
|
|
78
|
+
message: "minZoom must not exceed maxZoom",
|
|
79
|
+
path: ["minZoom"]
|
|
80
|
+
});
|
|
81
|
+
});
|
|
51
82
|
const BoardAssetRefSchema = z.object({
|
|
52
83
|
type: z.enum(["space-file", "extension"]),
|
|
53
84
|
ref: z.string().min(1).max(4096),
|
|
54
85
|
digest: z.string().min(16).max(160).optional()
|
|
55
86
|
});
|
|
56
|
-
const BoardKeyframeSchema = z.object({
|
|
57
|
-
at: finiteSchema.nonnegative(),
|
|
58
|
-
value: z.unknown(),
|
|
59
|
-
easing: z.string().min(1).max(80).optional()
|
|
60
|
-
});
|
|
61
|
-
const BoardClipSchema = z.object({
|
|
62
|
-
id: idSchema,
|
|
63
|
-
sequenceId: idSchema,
|
|
64
|
-
kind: extensionIdSchema,
|
|
65
|
-
kindVersion: z.number().int().positive(),
|
|
66
|
-
target: BoardTargetSchema,
|
|
67
|
-
start: finiteSchema.nonnegative(),
|
|
68
|
-
duration: finiteSchema.positive(),
|
|
69
|
-
layer: z.enum([
|
|
70
|
-
"behind",
|
|
71
|
-
"content",
|
|
72
|
-
"front",
|
|
73
|
-
"screen"
|
|
74
|
-
]).default("content"),
|
|
75
|
-
fill: z.enum([
|
|
76
|
-
"none",
|
|
77
|
-
"backwards",
|
|
78
|
-
"forwards",
|
|
79
|
-
"both"
|
|
80
|
-
]).default("none"),
|
|
81
|
-
easing: z.string().min(1).max(80).default("linear"),
|
|
82
|
-
params: jsonObjectSchema.default({}),
|
|
83
|
-
keyframes: z.array(BoardKeyframeSchema).default([]),
|
|
84
|
-
assetRefs: z.array(BoardAssetRefSchema).default([]),
|
|
85
|
-
seed: z.string().min(1).max(160),
|
|
86
|
-
metadata: jsonObjectSchema.default({})
|
|
87
|
-
});
|
|
88
87
|
const BoardEffectSchema = z.object({
|
|
89
88
|
id: idSchema,
|
|
90
89
|
boardId: z.string().uuid(),
|
|
91
90
|
target: z.discriminatedUnion("type", [z.object({
|
|
92
|
-
type: z.literal("
|
|
93
|
-
|
|
94
|
-
}), z.object({ type: z.literal("board") })]),
|
|
91
|
+
type: z.literal("item"),
|
|
92
|
+
itemId: idSchema
|
|
93
|
+
}).strict(), z.object({ type: z.literal("board") }).strict()]),
|
|
95
94
|
kind: extensionIdSchema,
|
|
96
95
|
kindVersion: z.number().int().positive(),
|
|
97
96
|
enabled: z.boolean().default(true),
|
|
@@ -116,17 +115,7 @@ const BoardEffectSchema = z.object({
|
|
|
116
115
|
metadata: jsonObjectSchema.default({}),
|
|
117
116
|
revision: z.number().int().nonnegative()
|
|
118
117
|
});
|
|
119
|
-
|
|
120
|
-
id: idSchema,
|
|
121
|
-
boardId: z.string().uuid(),
|
|
122
|
-
name: z.string().min(1).max(255),
|
|
123
|
-
duration: finiteSchema.nonnegative(),
|
|
124
|
-
seed: z.string().min(1).max(160),
|
|
125
|
-
restPose: jsonObjectSchema.default({}),
|
|
126
|
-
metadata: jsonObjectSchema.default({}),
|
|
127
|
-
revision: z.number().int().nonnegative()
|
|
128
|
-
});
|
|
129
|
-
const BoardNodeInputSchema = z.object({
|
|
118
|
+
z.object({
|
|
130
119
|
nodeId: idSchema,
|
|
131
120
|
type: z.string().min(1).max(40),
|
|
132
121
|
parentId: idSchema.nullable(),
|
|
@@ -149,27 +138,20 @@ z.object({
|
|
|
149
138
|
mutationId: z.string().max(128).optional(),
|
|
150
139
|
title: z.string().min(1).max(255).optional(),
|
|
151
140
|
metadata: jsonObjectSchema.optional(),
|
|
152
|
-
|
|
141
|
+
items: z.array(BoardAuthoringItemSchema).max(5e4).optional(),
|
|
153
142
|
connections: z.array(BoardConnectionSchema).max(5e4).optional(),
|
|
154
143
|
effects: z.array(BoardEffectSchema.omit({
|
|
155
144
|
boardId: true,
|
|
156
145
|
revision: true
|
|
157
146
|
})).optional(),
|
|
158
|
-
|
|
159
|
-
sequence: BoardSequenceSchema.omit({
|
|
160
|
-
boardId: true,
|
|
161
|
-
revision: true
|
|
162
|
-
}),
|
|
163
|
-
clips: z.array(BoardClipSchema.omit({ sequenceId: true }))
|
|
164
|
-
})).optional()
|
|
147
|
+
compositions: z.array(BoardCompositionInputSchema).optional()
|
|
165
148
|
});
|
|
166
149
|
z.object({
|
|
167
150
|
include: z.array(z.enum([
|
|
168
151
|
"nodes",
|
|
169
152
|
"connections",
|
|
170
153
|
"effects",
|
|
171
|
-
"
|
|
172
|
-
"clips",
|
|
154
|
+
"compositions",
|
|
173
155
|
"playback"
|
|
174
156
|
])).optional(),
|
|
175
157
|
viewport: z.object({
|
|
@@ -180,16 +162,15 @@ z.object({
|
|
|
180
162
|
}).optional()
|
|
181
163
|
});
|
|
182
164
|
z.object({
|
|
183
|
-
|
|
165
|
+
compositionId: idSchema,
|
|
184
166
|
/** Delay before the first local playback after opening the Board, in milliseconds. */
|
|
185
|
-
delayMs: finiteSchema.nonnegative().default(0)
|
|
186
|
-
loop: z.boolean().default(false)
|
|
167
|
+
delayMs: finiteSchema.nonnegative().default(0)
|
|
187
168
|
});
|
|
188
169
|
z.discriminatedUnion("type", [
|
|
189
170
|
z.object({
|
|
190
171
|
commandId: idSchema,
|
|
191
172
|
type: z.literal("play"),
|
|
192
|
-
|
|
173
|
+
compositionId: idSchema,
|
|
193
174
|
position: finiteSchema.nonnegative().optional(),
|
|
194
175
|
timeScale: finiteSchema.positive().max(4).optional(),
|
|
195
176
|
shared: z.boolean().optional(),
|
|
@@ -216,4 +197,4 @@ function isBoardPath(path) {
|
|
|
216
197
|
return path.toLowerCase().endsWith(BOARD_EXTENSION);
|
|
217
198
|
}
|
|
218
199
|
//#endregion
|
|
219
|
-
export { BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_MANIFEST_KIND, BoardAssetRefSchema,
|
|
200
|
+
export { BOARD_BUILTIN_CAPABILITIES, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_MANIFEST_KIND, BoardAssetRefSchema, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraStateSchema, BoardEffectSchema, BoardManifestSchema, DEFAULT_BOARD_RENDER_LIMITS, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest };
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { BoardCapability, BoardRenderCost } from "./board-constants.js";
|
|
1
|
+
import { BoardCapability, BoardCoordinateSpace, BoardRenderCost } from "./board-constants.js";
|
|
2
2
|
import { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BoardConnection, BoardConnectionAnchor, BoardConnectionAnchorSchema, BoardConnectionDirection, BoardConnectionEndpoint, BoardConnectionEndpointSchema, BoardConnectionInput, BoardConnectionLine, BoardConnectionPatch, BoardConnectionPatchSchema, BoardConnectionRecord, BoardConnectionRouting, BoardConnectionRoutingConfig, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionSide, BoardConnectionStyle, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardRelationSchema, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, connectionNodeIds, connectionOtherNodeId, connectionTouchesNode, createBoardConnection, flipBoardConnection, normalizeBoardConnectionStyle } from "./board-connection.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { BoardAnimationTarget, BoardAnimationTargetSchema, BoardComposition, BoardCompositionSchema, BoardEasing, BoardEasingSchema, BoardProceduralClip, BoardProceduralClipSchema, BoardTimelineMarker, BoardTimelineMarkerSchema, BoardTrack, BoardTrackInterpolation, BoardTrackSchema } from "./board-composition.js";
|
|
4
|
+
import { BOARD_COLOR_IDS, BOARD_GEO_KINDS, BoardColorId, BoardGeoKind } from "./board-node.js";
|
|
5
|
+
import { BOARD_DELETE_REASONS, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BoardAssetRef, BoardAssetRefSchema, BoardCameraFocus, BoardCameraFocusParams, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraState, BoardCameraStateSchema, BoardDeleteReason, BoardDiagnostic, BoardEffect, BoardEffectSchema, BoardManifest, BoardManifestSchema, BoardNodeInput, BoardNodeRecord, BoardOperation, BoardPlaybackPolicy, BoardPlaybackPolicySchema, BoardRecord, BoardValidationResult, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest } from "./board.js";
|
|
6
|
+
import "./board-authoring.js";
|
|
7
|
+
import "./board-capability-registry.js";
|
|
8
|
+
import "./board-codec.js";
|
|
5
9
|
import "./board-content.js";
|
|
10
|
+
import "./board-upgrade.js";
|
|
6
11
|
import "./realtime/board-awareness.js";
|
|
7
12
|
import "./work.js";
|
|
8
13
|
import "./realtime/types.js";
|
|
9
|
-
export { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_COLOR_IDS, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_GEO_KINDS, BoardAssetRef, BoardAssetRefSchema,
|
|
14
|
+
export { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_COLOR_IDS, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BOARD_DELETE_REASONS, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_GEO_KINDS, BoardAnimationTarget, BoardAnimationTargetSchema, BoardAssetRef, BoardAssetRefSchema, BoardCameraFocus, BoardCameraFocusParams, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraState, BoardCameraStateSchema, type BoardCapability, BoardColorId, BoardComposition, BoardCompositionSchema, BoardConnection, BoardConnectionAnchor, BoardConnectionAnchorSchema, BoardConnectionDirection, BoardConnectionEndpoint, BoardConnectionEndpointSchema, BoardConnectionInput, BoardConnectionLine, BoardConnectionPatch, BoardConnectionPatchSchema, BoardConnectionRecord, BoardConnectionRouting, BoardConnectionRoutingConfig, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionSide, BoardConnectionStyle, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardDeleteReason, BoardDiagnostic, BoardEasing, BoardEasingSchema, BoardEffect, BoardEffectSchema, BoardGeoKind, BoardManifest, BoardManifestSchema, BoardNodeInput, BoardNodeRecord, BoardOperation, BoardPlaybackPolicy, BoardPlaybackPolicySchema, BoardProceduralClip, BoardProceduralClipSchema, BoardRecord, BoardRelationSchema, type BoardRenderCost, BoardTimelineMarker, BoardTimelineMarkerSchema, BoardTrack, BoardTrackInterpolation, BoardTrackSchema, BoardValidationResult, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, InvalidBoardFileError, connectionNodeIds, connectionOtherNodeId, connectionTouchesNode, createBoardConnection, flipBoardConnection, isBoardPath, normalizeBoardConnectionStyle, parseBoardManifest, serializeBoardManifest };
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import "./board-constants.js";
|
|
1
|
+
import { BOARD_BUILTIN_CAPABILITIES, DEFAULT_BOARD_RENDER_LIMITS } from "./board-constants.js";
|
|
2
2
|
import { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BoardConnectionAnchorSchema, BoardConnectionEndpointSchema, BoardConnectionPatchSchema, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardRelationSchema, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, connectionNodeIds, connectionOtherNodeId, connectionTouchesNode, createBoardConnection, flipBoardConnection, normalizeBoardConnectionStyle } from "./board-connection.js";
|
|
3
|
-
import {
|
|
3
|
+
import { BOARD_ANIMATION_CHANNELS, BOARD_EASINGS, BoardAnimationTargetSchema, BoardCompositionInputSchema, BoardCompositionPlaybackSchema, BoardCompositionSchema, BoardEasingSchema, BoardProceduralClipSchema, BoardTimelineMarkerSchema, BoardTimelineSchema, BoardTrackSchema, parseBoardCompositionInput } from "./board-composition.js";
|
|
4
|
+
import { BoardArrowAuthoringItemSchema, BoardAudioAuthoringItemSchema, BoardAuthoringItemSchema, BoardBuiltinAuthoringItemSchema, BoardDrawAuthoringItemSchema, BoardExtensionAuthoringItemSchema, BoardFileAuthoringItemSchema, BoardFrameAuthoringItemSchema, BoardGeoAuthoringItemSchema, BoardImageAuthoringItemSchema, BoardItemPatchSchema, BoardItemSourceSchema, BoardItemStyleSchema, BoardSemanticCommandSchema, BoardTaskAuthoringItemSchema, BoardTextAuthoringItemSchema, BoardVideoAuthoringItemSchema, isSafeBoardSourcePath } from "./board-authoring.js";
|
|
5
|
+
import { BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_MANIFEST_KIND, BoardAssetRefSchema, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraStateSchema, BoardEffectSchema, BoardManifestSchema, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest } from "./board.js";
|
|
6
|
+
import { estimateBuiltinBoardClipCost, validateBuiltinBoardClip } from "./board-capability-registry.js";
|
|
7
|
+
import { BOARD_COLOR_IDS, BOARD_GEO_KINDS, BOARD_NATIVE_NODE_TYPES, BoardColorIdSchema, BoardGeoKindSchema } from "./board-node.js";
|
|
8
|
+
import "./board-codec.js";
|
|
4
9
|
import { BOARD_CONTENT_KINDS, BoardContentKindSchema, BoardPortSchema } from "./board-content.js";
|
|
5
|
-
import
|
|
10
|
+
import "./board-upgrade.js";
|
|
6
11
|
import { BoardAwarenessDrawPointSchema, BoardAwarenessFrameSchema, BoardAwarenessGestureSchema, BoardAwarenessNodePreviewSchema, BoardAwarenessPointSchema, BoardAwarenessStateUpdateSchema, BoardAwarenessUpdateSchema } from "./realtime/board-awareness.js";
|
|
7
12
|
import { SHORT_UUID_PATTERN, UUID_OR_SHORT_UUID_PATTERN, UUID_PATTERN, UUID_SHAPE_PATTERN } from "./identifiers.js";
|
|
8
13
|
import { COHUB_SOURCE_HEADER } from "./provenance.js";
|
|
@@ -11,4 +16,4 @@ import "./ui-command.js";
|
|
|
11
16
|
import "./work-surface.js";
|
|
12
17
|
import "./work-view-stats.js";
|
|
13
18
|
import { WORK_PROMOTION_EVENT_KEYS } from "./work-promotion-stats.js";
|
|
14
|
-
export { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_COLOR_IDS, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BOARD_CONTENT_KINDS, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_GEO_KINDS, BOARD_MANIFEST_KIND, BOARD_NATIVE_NODE_TYPES, BoardAssetRefSchema, BoardAwarenessDrawPointSchema, BoardAwarenessFrameSchema, BoardAwarenessGestureSchema, BoardAwarenessNodePreviewSchema, BoardAwarenessPointSchema, BoardAwarenessStateUpdateSchema, BoardAwarenessUpdateSchema,
|
|
19
|
+
export { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_ANIMATION_CHANNELS, BOARD_BUILTIN_CAPABILITIES, BOARD_COLOR_IDS, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BOARD_CONTENT_KINDS, BOARD_DOCUMENT_KIND, BOARD_EASINGS, BOARD_EXTENSION, BOARD_GEO_KINDS, BOARD_MANIFEST_KIND, BOARD_NATIVE_NODE_TYPES, BoardAnimationTargetSchema, BoardArrowAuthoringItemSchema, BoardAssetRefSchema, BoardAudioAuthoringItemSchema, BoardAuthoringItemSchema, BoardAwarenessDrawPointSchema, BoardAwarenessFrameSchema, BoardAwarenessGestureSchema, BoardAwarenessNodePreviewSchema, BoardAwarenessPointSchema, BoardAwarenessStateUpdateSchema, BoardAwarenessUpdateSchema, BoardBuiltinAuthoringItemSchema, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraStateSchema, BoardColorIdSchema, BoardCompositionInputSchema, BoardCompositionPlaybackSchema, BoardCompositionSchema, BoardConnectionAnchorSchema, BoardConnectionEndpointSchema, BoardConnectionPatchSchema, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardContentKindSchema, BoardDrawAuthoringItemSchema, BoardEasingSchema, BoardEffectSchema, BoardExtensionAuthoringItemSchema, BoardFileAuthoringItemSchema, BoardFrameAuthoringItemSchema, BoardGeoAuthoringItemSchema, BoardGeoKindSchema, BoardImageAuthoringItemSchema, BoardItemPatchSchema, BoardItemSourceSchema, BoardItemStyleSchema, BoardManifestSchema, BoardPortSchema, BoardProceduralClipSchema, BoardRelationSchema, BoardSemanticCommandSchema, BoardTaskAuthoringItemSchema, BoardTextAuthoringItemSchema, BoardTimelineMarkerSchema, BoardTimelineSchema, BoardTrackSchema, BoardVideoAuthoringItemSchema, COHUB_SOURCE_HEADER, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, DEFAULT_BOARD_RENDER_LIMITS, InvalidBoardFileError, RESERVED_PLATFORM_PATH_SEGMENTS, SHORT_UUID_PATTERN, UUID_OR_SHORT_UUID_PATTERN, UUID_PATTERN, UUID_SHAPE_PATTERN, WORK_PROMOTION_EVENT_KEYS, connectionNodeIds, connectionOtherNodeId, connectionTouchesNode, createBoardConnection, estimateBuiltinBoardClipCost, flipBoardConnection, isBoardPath, isSafeBoardSourcePath, normalizeBoardConnectionStyle, parseBoardCompositionInput, parseBoardManifest, serializeBoardManifest, validateBuiltinBoardClip };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BoardCapability, BoardRenderCost } from "./protocol/dist/board-constants.js";
|
|
2
|
-
import {
|
|
1
|
+
import { BoardCapability, BoardCoordinateSpace, BoardRenderCost } from "./protocol/dist/board-constants.js";
|
|
2
|
+
import { BoardAnimationTarget, BoardComposition, BoardEasing, BoardProceduralClip, BoardTimelineMarker, BoardTrack } from "./protocol/dist/board-composition.js";
|
|
3
|
+
import { BoardAssetRef, BoardCameraFocus, BoardCameraFocusParams, BoardCameraState, BoardDeleteReason, BoardDiagnostic, BoardEffect, BoardManifest, BoardNodeInput, BoardNodeRecord, BoardOperation, BoardPlaybackPolicy, BoardRecord, BoardValidationResult } from "./protocol/dist/board.js";
|
|
3
4
|
import "./protocol/dist/index.js";
|
|
4
5
|
//#region src/types.d.ts
|
|
5
6
|
type UserProfile = {
|
|
@@ -83,10 +83,24 @@ The Work runs inside a Cohub-hosted iframe (`window.parent !== window`). The
|
|
|
83
83
|
SDK communicates with the parent window via `postMessage` to request tokens
|
|
84
84
|
and context. This is the normal case when a viewer opens a Work through Cohub.
|
|
85
85
|
|
|
86
|
-
- `client.context()` returns the **real** `space.id`, `work.id`,
|
|
87
|
-
permission scopes from the host.
|
|
86
|
+
- `client.context()` returns the **real** `space.id`, `work.id`, current viewer,
|
|
87
|
+
and permission scopes from the host.
|
|
88
|
+
- A Work opened through `cohub ui preview` also receives an `invocation`
|
|
89
|
+
snapshot with the originating `spaceId`, `sessionId`, `turnId`, and
|
|
90
|
+
`toolCallId` when available. The invocation Space may differ from the Work's
|
|
91
|
+
own `space.id`.
|
|
88
92
|
- `client.auth.request()` triggers an in-shell consent flow (no popup window).
|
|
89
93
|
|
|
94
|
+
```js
|
|
95
|
+
const ctx = await client.context();
|
|
96
|
+
console.log(ctx.viewer?.userUuid ?? null);
|
|
97
|
+
console.log(ctx.invocation?.sessionId ?? null);
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Invocation fields describe where the preview came from. They are identifiers,
|
|
101
|
+
not authorization: API access remains controlled by the Work session token and
|
|
102
|
+
its scopes.
|
|
103
|
+
|
|
90
104
|
### Broker mode (standalone deployment)
|
|
91
105
|
|
|
92
106
|
The Work is accessed as a standalone page (`window.parent === window`), e.g.
|
|
@@ -183,6 +197,7 @@ but **not active** until the viewer approves them through a consent dialog
|
|
|
183
197
|
triggered by `client.auth.request()`. These are **action** permissions.
|
|
184
198
|
|
|
185
199
|
```
|
|
200
|
+
taskrun.view — read Task Runs the viewer can already access
|
|
186
201
|
session.prompt.readonly — send read-only prompts (no side effects)
|
|
187
202
|
session.prompt.fullaccess — send prompts with full access (write, create sessions)
|
|
188
203
|
generation.create — create generation tasks (image/video/audio)
|
|
@@ -199,7 +214,8 @@ user.usage.read — read the viewer's aggregated usage
|
|
|
199
214
|
`session.prompt.fullaccess` lets you **send** a prompt, but does **not** let
|
|
200
215
|
you **read** the result — that needs `session.view` (a work scope).
|
|
201
216
|
`generation.create` lets you **create** a generation task, but reading its
|
|
202
|
-
result needs `taskrun.view
|
|
217
|
+
result needs `taskrun.view`, either from the publishing Space's work scopes or
|
|
218
|
+
from viewer authorization checked against the requested Space or Session.
|
|
203
219
|
|
|
204
220
|
### Complete API → scope mapping
|
|
205
221
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neta-art/cohub",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"description": "Cohub SDK for spaces, sessions, boards, and realtime agent collaboration.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"private": false,
|
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
"tsdown": "^0.22.7",
|
|
83
83
|
"tsx": "4.23.1",
|
|
84
84
|
"typescript": "^7.0.2",
|
|
85
|
+
"@cohub/core": "1.1.1",
|
|
85
86
|
"@cohub/protocol": "2.0.0"
|
|
86
87
|
},
|
|
87
88
|
"peerDependencies": {
|
|
@@ -100,7 +101,7 @@
|
|
|
100
101
|
"build": "tsdown",
|
|
101
102
|
"lint": "biome lint .",
|
|
102
103
|
"lint:fix": "biome lint --write .",
|
|
103
|
-
"test": "node ../../scripts/test/run.mjs 'src/**/*.test.ts' 'tests/**/*.test.ts'",
|
|
104
|
+
"test": "node ../../scripts/test/run.mjs --test-concurrency=2 'src/**/*.test.ts' 'tests/**/*.test.ts'",
|
|
104
105
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
105
106
|
}
|
|
106
107
|
}
|