@neta-art/cohub 8.5.0 → 8.6.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.
Files changed (37) hide show
  1. package/README.md +1 -1
  2. package/dist/board/core/draw-geometry.d.ts +21 -4
  3. package/dist/board/core/draw-geometry.js +93 -4
  4. package/dist/board/core/file-preview.js +1 -1
  5. package/dist/board/geometry.js +4 -3
  6. package/dist/board/index.d.ts +2 -2
  7. package/dist/board/index.js +2 -2
  8. package/dist/board/render/renderers/draw-card-renderer.js +25 -18
  9. package/dist/board/render/renderers/file-card-renderer.js +1 -1
  10. package/dist/board/render/renderers/geo-card-renderer.js +1 -2
  11. package/dist/board/render/renderers/task-card-renderer.js +7 -8
  12. package/dist/board/render/renderers/text-card-renderer.js +2 -1
  13. package/dist/board/render/renderers/unknown-card-renderer.js +1 -1
  14. package/dist/board/render/text-resolution.js +1 -1
  15. package/dist/board/render/themes/clean-theme.js +2 -1
  16. package/dist/chunks/http.d.ts +1 -1
  17. package/dist/chunks/http.js +15 -14
  18. package/dist/chunks/transport.js +1 -1
  19. package/dist/chunks/websocket.d.ts +14 -8
  20. package/dist/debugger.d.ts +2 -0
  21. package/dist/debugger.js +48 -38
  22. package/dist/http.d.ts +1 -1
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.js +5 -6
  25. package/dist/protocol/dist/app-catalog.d.ts +1 -0
  26. package/dist/protocol/dist/board-authoring.d.ts +2 -2
  27. package/dist/protocol/dist/board-capability-registry.js +1 -2
  28. package/dist/protocol/dist/board-codec.d.ts +2 -1
  29. package/dist/protocol/dist/board-codec.js +21 -3
  30. package/dist/protocol/dist/board-composition.js +3 -3
  31. package/dist/protocol/dist/board-constants.js +2 -3
  32. package/dist/protocol/dist/board.js +1 -2
  33. package/dist/protocol/dist/index.d.ts +4 -3
  34. package/dist/protocol/dist/realtime/types.d.ts +2 -0
  35. package/dist/voice-input.js +1 -1
  36. package/package.json +8 -8
  37. /package/docs/{work-runtime-guide.md → app-runtime-guide.md} +0 -0
@@ -1,12 +1,30 @@
1
1
  import { BoardAuthoringItemSchema, BoardItemPatchSchema } from "./board-authoring.js";
2
2
  //#region ../protocol/dist/board-codec.js
3
+ var BoardItemValidationError = class extends Error {
4
+ diagnostics;
5
+ constructor(diagnostics) {
6
+ super(diagnostics[0]?.message ?? "invalid Board item");
7
+ this.diagnostics = diagnostics;
8
+ this.name = "BoardItemValidationError";
9
+ }
10
+ };
11
+ function authoringSchemaDiagnostics(error, path) {
12
+ return error.issues.slice(0, 32).map((issue) => ({
13
+ severity: "error",
14
+ code: "INVALID_BOARD_NODE",
15
+ message: issue.message,
16
+ path: `${path}.${issue.path.map(String).join(".") || "item"}`
17
+ }));
18
+ }
3
19
  const isRecord = (value) => Boolean(value && typeof value === "object" && !Array.isArray(value));
4
- function applyBoardItemPatch(current, value) {
20
+ function applyBoardItemPatch(current, value, path = "item") {
5
21
  const merged = mergePatch(current, BoardItemPatchSchema.parse(value));
6
22
  merged.id = current.id;
7
23
  merged.type = current.type;
8
24
  if ("kindVersion" in current) merged.kindVersion = current.kindVersion;
9
- return BoardAuthoringItemSchema.parse(merged);
25
+ const parsed = BoardAuthoringItemSchema.safeParse(merged);
26
+ if (!parsed.success) throw new BoardItemValidationError(authoringSchemaDiagnostics(parsed.error, path));
27
+ return parsed.data;
10
28
  }
11
29
  function mergePatch(current, patch) {
12
30
  if (!isRecord(patch)) return patch;
@@ -16,4 +34,4 @@ function mergePatch(current, patch) {
16
34
  return result;
17
35
  }
18
36
  //#endregion
19
- export { applyBoardItemPatch };
37
+ export { BoardItemValidationError, applyBoardItemPatch, authoringSchemaDiagnostics };
@@ -31,9 +31,9 @@ const vector2Schema = z.object({
31
31
  x: finiteSchema,
32
32
  y: finiteSchema
33
33
  }).strict();
34
- const scaleSchema = z.union([finiteSchema.positive(), z.object({
35
- x: finiteSchema.positive(),
36
- y: finiteSchema.positive()
34
+ const scaleSchema = z.union([finiteSchema.nonnegative(), z.object({
35
+ x: finiteSchema.nonnegative(),
36
+ y: finiteSchema.nonnegative()
37
37
  }).strict()]);
38
38
  const BOARD_ANIMATION_CHANNELS = {
39
39
  "transform.translation": {
@@ -6,14 +6,13 @@ const DEFAULT_BOARD_RENDER_LIMITS = {
6
6
  drawCalls: 400,
7
7
  filterPasses: 24,
8
8
  renderTexturePixels: 16777216,
9
- textureBytes: 512 * 1024 * 1024,
10
- bufferBytes: 256 * 1024 * 1024,
9
+ textureBytes: 536870912,
10
+ bufferBytes: 268435456,
11
11
  simulationSteps: 1e5
12
12
  };
13
13
  const BOARD_BUILTIN_CLIP_KINDS = [
14
14
  "motion.path",
15
15
  "draw.reveal",
16
- "draw.handwrite",
17
16
  "text.reveal",
18
17
  "effects.particles",
19
18
  "effects.trail",
@@ -1,4 +1,3 @@
1
- import { BOARD_BUILTIN_CAPABILITIES, DEFAULT_BOARD_RENDER_LIMITS } from "./board-constants.js";
2
1
  import { BoardConnectionSchema } from "./board-connection.js";
3
2
  import { BoardCompositionInputSchema } from "./board-composition.js";
4
3
  import { BoardEffectInputSchema } from "./board-effect.js";
@@ -196,4 +195,4 @@ function isBoardPath(path) {
196
195
  return path.toLowerCase().endsWith(BOARD_EXTENSION);
197
196
  }
198
197
  //#endregion
199
- export { BOARD_AUTHORING_SCHEMAS, BOARD_BUILTIN_CAPABILITIES, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_MANIFEST_KIND, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraStateSchema, BoardCreateInputSchema, BoardManifestSchema, DEFAULT_BOARD_RENDER_LIMITS, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest };
198
+ export { BOARD_AUTHORING_SCHEMAS, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_MANIFEST_KIND, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraStateSchema, BoardCreateInputSchema, BoardManifestSchema, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest };
@@ -1,14 +1,15 @@
1
- import { BoardCapability, BoardCoordinateSpace, BoardRenderCost } from "./board-constants.js";
1
+ import { BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, BoardCapability, BoardCoordinateSpace, BoardRenderCost, clampBoardStrokeSize } 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, connectionItemIds, connectionOtherItemId, connectionTouchesItem, createBoardConnection, flipBoardConnection, normalizeBoardConnectionStyle } from "./board-connection.js";
3
3
  import { BoardAnimationTarget, BoardAnimationTargetSchema, BoardComposition, BoardCompositionInput, BoardCompositionInputSchema, BoardCompositionSchema, BoardEasing, BoardEasingSchema, BoardProceduralClip, BoardProceduralClipSchema, BoardTimelineMarker, BoardTimelineMarkerSchema, BoardTrack, BoardTrackInterpolation, BoardTrackSchema } from "./board-composition.js";
4
4
  import { BoardAssetRef, BoardAssetRefSchema, BoardEffect, BoardEffectInput, BoardEffectInputSchema, BoardEffectSchema } from "./board-effect.js";
5
5
  import { BoardAuthoringItem, BoardAuthoringItemSchema, BoardAuthoringSnapshot, BoardSemanticCommand, BoardSemanticCommandSchema } from "./board-authoring.js";
6
6
  import { BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BoardCameraFocus, BoardCameraFocusParams, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraState, BoardCameraStateSchema, BoardDiagnostic, BoardManifest, BoardManifestSchema, BoardMutationReceipt, BoardPlaybackSnapshot, BoardPlaybackStatus, BoardValidationResult, isBoardPath, parseBoardManifest, serializeBoardManifest } from "./board.js";
7
7
  import "./board-capability-registry.js";
8
+ import { BOARD_COLOR_IDS, BOARD_GEO_KINDS, BoardColorId, BoardGeoKind } from "./board-node.js";
8
9
  import "./board-codec.js";
9
10
  import "./board-content.js";
10
- import { BOARD_COLOR_IDS, BOARD_GEO_KINDS, BoardColorId, BoardGeoKind } from "./board-node.js";
11
11
  import "./realtime/board-awareness.js";
12
12
  import "./app.js";
13
13
  import "./realtime/types.js";
14
- 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, BoardAnimationTarget, BoardAnimationTargetSchema, type BoardAssetRef, BoardAuthoringItem, BoardAuthoringItemSchema, BoardAuthoringSnapshot, BoardCameraFocus, BoardCameraFocusParams, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraState, BoardCameraStateSchema, type BoardCapability, BoardColorId, BoardComposition, BoardCompositionInput, BoardCompositionInputSchema, BoardCompositionSchema, BoardConnection, BoardConnectionAnchor, BoardConnectionAnchorSchema, BoardConnectionDirection, BoardConnectionEndpoint, BoardConnectionEndpointSchema, BoardConnectionInput, BoardConnectionLine, BoardConnectionPatch, BoardConnectionPatchSchema, BoardConnectionRecord, BoardConnectionRouting, BoardConnectionRoutingConfig, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionSide, BoardConnectionStyle, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardDiagnostic, BoardEasing, BoardEasingSchema, type BoardEffect, BoardGeoKind, BoardManifest, BoardManifestSchema, BoardMutationReceipt, BoardPlaybackSnapshot, BoardPlaybackStatus, BoardProceduralClip, BoardProceduralClipSchema, BoardRelationSchema, type BoardRenderCost, BoardSemanticCommand, BoardSemanticCommandSchema, BoardTimelineMarker, BoardTimelineMarkerSchema, BoardTrack, BoardTrackInterpolation, BoardTrackSchema, BoardValidationResult, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, connectionItemIds, connectionOtherItemId, connectionTouchesItem, createBoardConnection, flipBoardConnection, isBoardPath, normalizeBoardConnectionStyle, parseBoardManifest, serializeBoardManifest };
14
+ import "./app-catalog.js";
15
+ 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, BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, BoardAnimationTarget, BoardAnimationTargetSchema, type BoardAssetRef, BoardAuthoringItem, BoardAuthoringItemSchema, BoardAuthoringSnapshot, BoardCameraFocus, BoardCameraFocusParams, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraState, BoardCameraStateSchema, BoardCapability, BoardColorId, BoardComposition, BoardCompositionInput, BoardCompositionInputSchema, BoardCompositionSchema, BoardConnection, BoardConnectionAnchor, BoardConnectionAnchorSchema, BoardConnectionDirection, BoardConnectionEndpoint, BoardConnectionEndpointSchema, BoardConnectionInput, BoardConnectionLine, BoardConnectionPatch, BoardConnectionPatchSchema, BoardConnectionRecord, BoardConnectionRouting, BoardConnectionRoutingConfig, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionSide, BoardConnectionStyle, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardDiagnostic, BoardEasing, BoardEasingSchema, type BoardEffect, BoardGeoKind, BoardManifest, BoardManifestSchema, BoardMutationReceipt, BoardPlaybackSnapshot, BoardPlaybackStatus, BoardProceduralClip, BoardProceduralClipSchema, BoardRelationSchema, BoardRenderCost, BoardSemanticCommand, BoardSemanticCommandSchema, BoardTimelineMarker, BoardTimelineMarkerSchema, BoardTrack, BoardTrackInterpolation, BoardTrackSchema, BoardValidationResult, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, clampBoardStrokeSize, connectionItemIds, connectionOtherItemId, connectionTouchesItem, createBoardConnection, flipBoardConnection, isBoardPath, normalizeBoardConnectionStyle, parseBoardManifest, serializeBoardManifest };
@@ -1,3 +1,5 @@
1
+ import "../board-composition.js";
2
+ import "../board-effect.js";
1
3
  import "../board.js";
2
4
  import "./board-awareness.js";
3
5
  import "../app.js";
@@ -3,7 +3,7 @@ import { s as resolveVoiceInputWebsocketUrl } from "./chunks/environment.js";
3
3
  const TARGET_SAMPLE_RATE = 16e3;
4
4
  const CHUNK_SAMPLES = TARGET_SAMPLE_RATE * 200 / 1e3;
5
5
  const DEFAULT_CONNECTION_TIMEOUT_MS = 1e4;
6
- const DEFAULT_IDLE_CONNECTION_TIMEOUT_MS = 30 * 6e4;
6
+ const DEFAULT_IDLE_CONNECTION_TIMEOUT_MS = 18e5;
7
7
  const WEBSOCKET_OPEN = 1;
8
8
  const getDefaultWebSocket = () => {
9
9
  const WebSocketImpl = globalThis.WebSocket;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neta-art/cohub",
3
- "version": "8.5.0",
3
+ "version": "8.6.0",
4
4
  "description": "Cohub SDK for spaces, sessions, boards, and realtime agent collaboration.",
5
5
  "license": "Apache-2.0",
6
6
  "private": false,
@@ -72,15 +72,15 @@
72
72
  ],
73
73
  "dependencies": {
74
74
  "perfect-freehand": "1.2.3",
75
- "zod": "^4.4.3"
75
+ "zod": "^4.5.4"
76
76
  },
77
77
  "devDependencies": {
78
- "@biomejs/biome": "2.5.3",
79
- "@napi-rs/canvas": "^1.0.2",
80
- "@types/node": "26.1.1",
81
- "pixi.js": "^8.19.0",
82
- "tsdown": "^0.22.7",
83
- "tsx": "4.23.1",
78
+ "@biomejs/biome": "2.5.11",
79
+ "@napi-rs/canvas": "^1.0.8",
80
+ "@types/node": "26.4.0",
81
+ "pixi.js": "^8.20.1",
82
+ "tsdown": "^0.22.14",
83
+ "tsx": "4.23.13",
84
84
  "typescript": "^7.0.2",
85
85
  "@cohub/protocol": "2.0.0"
86
86
  },