@tensnap/protocol 0.2.0 → 0.2.1

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/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/asset.ts", "../src/binary.ts", "../src/chart.ts", "../src/codec.ts", "../src/schemas.ts", "../src/controls.ts"],
4
- "sourcesContent": ["import { z } from 'zod';\n\n/**\n * Asset identifiers and metadata are protocol payloads, not renderer cache\n * objects. Renderers may resolve them into blob URLs or local buffers, but the\n * wire contract stays content-addressed by id plus hash.\n */\nexport const AssetIdSchema = z.string();\n\nexport type AssetId = z.infer<typeof AssetIdSchema>;\n\nexport const AssetMetaSchema = z.object({\n id: AssetIdSchema,\n hash: z.string(),\n mime: z.string(),\n size: z.number(),\n label: z.string().optional(),\n});\n\nexport type AssetMeta = z.infer<typeof AssetMetaSchema>;\n", "const BASE64_DATA_URL_MARKER = ';base64,';\n\ninterface BufferEncoderResult {\n toString(encoding: 'base64'): string;\n}\n\ninterface BufferLike {\n from(data: Uint8Array): BufferEncoderResult;\n from(data: string, encoding: 'base64'): ArrayLike<number>;\n}\n\nexport interface DecodedBinaryString {\n bytes: Uint8Array;\n mime?: string;\n encoding: 'base64' | 'data-url';\n}\n\nfunction getGlobalBuffer(): BufferLike | undefined {\n return (globalThis as { Buffer?: BufferLike }).Buffer;\n}\n\nexport function encodeBytesAsBase64(bytes: Uint8Array): string {\n const buffer = getGlobalBuffer();\n if (buffer) {\n return buffer.from(bytes).toString('base64');\n }\n\n if (typeof btoa === 'function') {\n let binary = '';\n for (let index = 0; index < bytes.length; index += 1) {\n binary += String.fromCharCode(bytes[index]);\n }\n return btoa(binary);\n }\n\n throw new Error('No base64 encoder is available in this runtime.');\n}\n\nexport function encodeBytesAsDataUrl(\n bytes: Uint8Array,\n mime = 'application/octet-stream',\n): string {\n return `data:${mime};base64,${encodeBytesAsBase64(bytes)}`;\n}\n\nexport function decodeBinaryString(value: string): DecodedBinaryString {\n const decoded = tryDecodeBinaryString(value);\n if (!decoded) {\n throw new Error('Expected a base64 string or a base64 data URL.');\n }\n return decoded;\n}\n\nexport function isEncodedBinaryString(value: string): boolean {\n return tryDecodeBinaryString(value) !== null;\n}\n\nfunction tryDecodeBinaryString(value: string): DecodedBinaryString | null {\n if (value.startsWith('data:')) {\n const dataUrl = tryDecodeBase64DataUrl(value);\n if (dataUrl) {\n return dataUrl;\n }\n }\n\n const bytes = tryDecodeBase64(value);\n if (!bytes) {\n return null;\n }\n\n return {\n bytes,\n encoding: 'base64',\n };\n}\n\nfunction tryDecodeBase64DataUrl(value: string): DecodedBinaryString | null {\n const markerIndex = value.indexOf(BASE64_DATA_URL_MARKER);\n if (markerIndex === -1) {\n return null;\n }\n\n const mime = value.slice(5, markerIndex) || undefined;\n const base64 = value.slice(markerIndex + BASE64_DATA_URL_MARKER.length);\n const bytes = tryDecodeBase64(base64);\n if (!bytes) {\n return null;\n }\n\n return {\n bytes,\n mime,\n encoding: 'data-url',\n };\n}\n\nfunction tryDecodeBase64(value: string): Uint8Array | null {\n const normalized = value.replace(/\\s+/g, '');\n if (!normalized || normalized.length % 4 !== 0 || /[^A-Za-z0-9+/=]/.test(normalized)) {\n return null;\n }\n\n try {\n const buffer = getGlobalBuffer();\n if (buffer) {\n return new Uint8Array(buffer.from(normalized, 'base64'));\n }\n\n if (typeof atob === 'function') {\n const binary = atob(normalized);\n const bytes = new Uint8Array(binary.length);\n for (let index = 0; index < binary.length; index += 1) {\n bytes[index] = binary.charCodeAt(index);\n }\n return bytes;\n }\n } catch {\n return null;\n }\n\n throw new Error('No base64 decoder is available in this runtime.');\n}\n", "import { z } from 'zod';\n\n/**\n * Protocol-level chart types describe series identity and updates only. Chart\n * rendering config, layouts, and UI-specific storage live in renderer packages.\n */\nexport const ChartMetadataSchema = z.object({\n id: z.string(),\n label: z.string(),\n color: z.string().optional(),\n});\n\nexport type ChartMetadata = z.infer<typeof ChartMetadataSchema>;\n\nexport const ChartGroupMetadataSchema = ChartMetadataSchema.extend({\n dataList: z.array(ChartMetadataSchema).optional(),\n});\n\nexport type ChartGroupMetadata = z.infer<typeof ChartGroupMetadataSchema>;\n\nexport const ChartUpdateDataSchema = z.object({\n id: z.string(),\n time: z.number().optional(),\n value: z.unknown(),\n});\n\nexport type ChartUpdateData = z.infer<typeof ChartUpdateDataSchema>;\n\nexport const ChartUpdateOperationSchema = z.object({\n id: z.string(),\n operation: z.literal('clear'),\n});\n\nexport type ChartUpdateOperation = z.infer<typeof ChartUpdateOperationSchema>;\n", "import { decode, encode } from '@msgpack/msgpack';\nimport { decodeBinaryString, encodeBytesAsDataUrl } from './binary';\nimport {\n AssetDataPayloadSchema,\n ScreenshotResponsePayloadSchema,\n} from './schemas';\nimport type { AnyProtocolMessage } from './types';\n\nexport type ProtocolEncoding = 'json' | 'msgpack';\n\nexport function detectProtocolEncoding(data: string | Uint8Array | ArrayBuffer): ProtocolEncoding {\n return typeof data === 'string' ? 'json' : 'msgpack';\n}\n\n/**\n * Encode semantic protocol messages for a transport.\n *\n * JSON cannot carry bytes directly, so binary semantic fields become data URLs.\n * MessagePack keeps those fields as Uint8Array values.\n */\nexport function encodeProtocolMessage(\n message: AnyProtocolMessage,\n encoding: ProtocolEncoding,\n): string | Uint8Array {\n const normalized = normalizeBinarySemanticMessage(message, encoding);\n return encoding === 'json' ? JSON.stringify(normalized) : encode(normalized);\n}\n\nexport function decodeProtocolMessage(data: string | Uint8Array | ArrayBuffer): AnyProtocolMessage {\n if (typeof data === 'string') {\n return normalizeDecodedBinarySemanticMessage(JSON.parse(data) as AnyProtocolMessage);\n }\n\n const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);\n return normalizeDecodedBinarySemanticMessage(decode(bytes) as AnyProtocolMessage);\n}\n\nfunction normalizeBinarySemanticMessage(\n message: AnyProtocolMessage,\n encoding: ProtocolEncoding,\n): AnyProtocolMessage {\n switch (message.type) {\n case 'asset_data': {\n const payload = AssetDataPayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: normalizeBinaryDataForEncoding(payload.data, payload.mime, encoding),\n },\n };\n }\n case 'screenshot_response': {\n const payload = ScreenshotResponsePayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'undefined'\n ? undefined\n : normalizeBinaryDataForEncoding(payload.data, payload.mime, encoding),\n },\n };\n }\n default:\n return message;\n }\n}\n\nfunction normalizeDecodedBinarySemanticMessage(message: AnyProtocolMessage): AnyProtocolMessage {\n switch (message.type) {\n case 'asset_data': {\n const payload = AssetDataPayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'string' ? decodeBinaryString(payload.data).bytes : payload.data,\n },\n };\n }\n case 'screenshot_response': {\n const payload = ScreenshotResponsePayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'string' ? decodeBinaryString(payload.data).bytes : payload.data,\n },\n };\n }\n default:\n return message;\n }\n}\n\nfunction normalizeBinaryDataForEncoding(\n value: string | Uint8Array,\n mime: string | undefined,\n encoding: ProtocolEncoding,\n): string | Uint8Array {\n if (encoding === 'json') {\n return typeof value === 'string'\n ? value\n : encodeBytesAsDataUrl(value, mime ?? 'application/octet-stream');\n }\n\n return typeof value === 'string' ? decodeBinaryString(value).bytes : value;\n}\n", "import { z } from 'zod';\nimport { AssetMetaSchema } from './asset';\nimport {\n ChartGroupMetadataSchema,\n ChartMetadataSchema,\n ChartUpdateDataSchema,\n ChartUpdateOperationSchema,\n} from './chart';\nimport { ActionSchema, ParameterSchema } from './controls';\nimport { isEncodedBinaryString } from './binary';\n\nconst BinaryPayloadStringSchema = z.string().refine(\n (value) => isEncodedBinaryString(value),\n 'Expected a base64 string or a base64 data URL for binary payload data.',\n);\n\nconst BinaryPayloadDataSchema = z.union([BinaryPayloadStringSchema, z.instanceof(Uint8Array)]);\n\nexport const ItemSchema = z.record(z.string(), z.unknown());\nexport const ItemDiffSchema = z.record(z.string(), z.unknown());\nexport const ItemKeySchema = z.record(z.string(), z.unknown());\nexport const PrimitiveItemKeySchema = z.union([z.string(), z.number()]);\n\nexport const MetadataUpdatePayloadSchema = z.object({\n time: z.number().optional(),\n}).loose();\n\nexport const StateSyncBoundaryPayloadSchema = z.object({\n request_id: z.string().optional(),\n});\n\nexport const TickTimingBreakdownSchema = z.object({\n simulate_ms: z.number().nonnegative().optional(),\n communicate_ms: z.number().nonnegative().optional(),\n render_ms: z.number().nonnegative().optional(),\n}).catchall(z.number().nonnegative());\n\nexport const ActionEndPayloadSchema = z.object({\n id: z.string(),\n tick_id: z.string().optional(),\n continue: z.boolean().optional(),\n timings: TickTimingBreakdownSchema.optional(),\n});\n\nexport const ActionDeletePayloadSchema = z.object({ id: z.string() });\n\nexport const EnvCreatePayloadSchema = z.object({\n id: z.string(),\n type: z.enum(['uniform', '2d']),\n});\n\nexport const EnvDeletePayloadSchema = z.object({ id: z.string() });\n\nexport const EnvLayerCreatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n layer_type: z.string(),\n dependency_layer_ids: z.record(z.string(), z.string()).optional(),\n data: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const EnvLayerUpdatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n data: z.record(z.string(), z.unknown()),\n});\n\nexport const EnvLayerDeletePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n});\n\nexport const ItemCreatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.array(ItemSchema),\n});\n\nexport const ItemUpdatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.array(ItemDiffSchema),\n});\n\nexport const ItemDeletePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.union([z.array(PrimitiveItemKeySchema), z.array(ItemKeySchema)]),\n});\n\nexport const ParameterDeletePayloadSchema = z.object({ id: z.string() });\n\nexport const ParameterSyncPayloadSchema = z.object({\n id: z.string(),\n value: z.unknown(),\n});\n\nexport const ChartDeletePayloadSchema = z.object({ id: z.string() });\n\nexport const ChartUpdatePayloadSchema = z.object({\n updates: z.array(ChartUpdateDataSchema).optional(),\n operations: z.array(ChartUpdateOperationSchema).optional(),\n});\n\nexport const LogLevelSchema = z.enum(['debug', 'info', 'warning', 'error', 'critical']);\n\nexport const LogPayloadSchema = z.object({\n message: z.string(),\n level: LogLevelSchema.optional(),\n target: z.string().optional(),\n timestamp: z.number().optional(),\n data: z.unknown().optional(),\n});\n\nexport const ErrorPayloadSchema = z.object({ error: z.string() });\n\nexport const AssetMetaPayloadSchema = z.object({\n assets: z.array(AssetMetaSchema),\n});\n\nexport const AssetDataPayloadSchema = z.object({\n id: z.string(),\n hash: z.string(),\n mime: z.string(),\n data: BinaryPayloadDataSchema,\n});\n\nexport const AssetDeletePayloadSchema = z.object({\n ids: z.array(z.string()),\n});\n\nexport const AssetSyncPayloadSchema = z.object({\n assets: z.record(z.string(), z.string()),\n});\n\nexport const ScreenshotRequestPayloadSchema = z.object({\n request_id: z.string(),\n env_id: z.string().optional(),\n chart_id: z.string().optional(),\n format: z.enum(['png', 'jpeg']).optional(),\n quality: z.number().min(0).max(1).optional(),\n});\n\nexport const ScreenshotResponsePayloadSchema = z.object({\n request_id: z.string(),\n data: BinaryPayloadDataSchema.optional(),\n mime: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const StateSyncRequestSchema = z.object({\n request_id: z.string().optional(),\n parameters: z.array(ParameterSchema),\n actions: z.array(ActionSchema),\n envs: z.array(z.object({\n id: z.string(),\n type: z.string(),\n layers: z.array(z.object({ layer_id: z.string(), layer_type: z.string() })),\n })),\n charts: z.array(ChartMetadataSchema),\n});\n\nexport const ParameterChangePayloadSchema = z.object({\n id: z.string(),\n value: z.unknown(),\n});\n\nexport const ActionStartPayloadSchema = z.object({\n id: z.string(),\n tick_id: z.string().optional(),\n continuous: z.boolean().optional(),\n});\n\nexport const SimulatorToRendererMessageSchema = z.object({\n type: z.enum([\n 'metadata_update',\n 'state_sync_begin',\n 'state_sync_end',\n 'action_end',\n 'action_create',\n 'action_update',\n 'action_delete',\n 'env_create',\n 'env_delete',\n 'env_layer_create',\n 'env_layer_update',\n 'env_layer_delete',\n 'item_create',\n 'item_update',\n 'item_delete',\n 'param_create',\n 'param_update',\n 'param_delete',\n 'param_sync',\n 'chart_create',\n 'chart_update',\n 'chart_delete',\n 'asset_meta',\n 'asset_data',\n 'asset_delete',\n 'screenshot_request',\n 'log',\n 'error',\n ]),\n payload: z.unknown(),\n timestamp: z.number().optional(),\n});\n\nexport const RendererToSimulatorMessageSchema = z.object({\n type: z.enum([\n 'state_sync',\n 'param_change',\n 'action_start',\n 'asset_sync',\n 'screenshot_response',\n 'error',\n ]),\n payload: z.unknown(),\n timestamp: z.number().optional(),\n});\n\nexport const AnyProtocolMessageSchema = z.union([\n SimulatorToRendererMessageSchema,\n RendererToSimulatorMessageSchema,\n]);\n\nexport const getPayloadSchema = (type: string) => {\n switch (type) {\n case 'metadata_update': return MetadataUpdatePayloadSchema;\n case 'state_sync_begin': return StateSyncBoundaryPayloadSchema;\n case 'state_sync_end': return StateSyncBoundaryPayloadSchema;\n case 'action_end': return ActionEndPayloadSchema;\n case 'action_create': return ActionSchema;\n case 'action_update': return ActionSchema;\n case 'action_delete': return ActionDeletePayloadSchema;\n case 'env_create': return EnvCreatePayloadSchema;\n case 'env_delete': return EnvDeletePayloadSchema;\n case 'env_layer_create': return EnvLayerCreatePayloadSchema;\n case 'env_layer_update': return EnvLayerUpdatePayloadSchema;\n case 'env_layer_delete': return EnvLayerDeletePayloadSchema;\n case 'item_create': return ItemCreatePayloadSchema;\n case 'item_update': return ItemUpdatePayloadSchema;\n case 'item_delete': return ItemDeletePayloadSchema;\n case 'param_create': return ParameterSchema;\n case 'param_update': return ParameterSchema;\n case 'param_delete': return ParameterDeletePayloadSchema;\n case 'param_sync': return ParameterSyncPayloadSchema;\n case 'chart_create': return ChartGroupMetadataSchema;\n case 'chart_update': return ChartUpdatePayloadSchema;\n case 'chart_delete': return ChartDeletePayloadSchema;\n case 'asset_meta': return AssetMetaPayloadSchema;\n case 'asset_data': return AssetDataPayloadSchema;\n case 'asset_delete': return AssetDeletePayloadSchema;\n case 'screenshot_request': return ScreenshotRequestPayloadSchema;\n case 'screenshot_response': return ScreenshotResponsePayloadSchema;\n case 'log': return LogPayloadSchema;\n case 'error': return ErrorPayloadSchema;\n case 'state_sync': return StateSyncRequestSchema;\n case 'param_change': return ParameterChangePayloadSchema;\n case 'action_start': return ActionStartPayloadSchema;\n case 'asset_sync': return AssetSyncPayloadSchema;\n default: return z.unknown();\n }\n};\n", "import { z } from 'zod';\n\n/**\n * Parameters describe mutable simulator configuration exposed to the renderer.\n * Actions are intentionally separate in protocol v0.2: they have their own\n * lifecycle and renderer-driven continuous loop semantics.\n */\nexport const ParameterTypeSchema = z.enum(['number', 'enum', 'boolean', 'string']);\n\nexport type ParameterType = z.infer<typeof ParameterTypeSchema>;\n\nexport const ParameterBaseSchema = z.object({\n id: z.string(),\n type: ParameterTypeSchema,\n label: z.string(),\n allowRuntimeChange: z.boolean().optional(),\n});\n\nexport type ParameterBase = z.infer<typeof ParameterBaseSchema>;\n\nexport const NumberParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('number'),\n value: z.number(),\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n});\n\nexport type NumberParameter = z.infer<typeof NumberParameterSchema>;\n\nexport const EnumParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('enum'),\n value: z.string(),\n options: z.array(z.string()),\n labels: z.record(z.string(), z.string()).optional(),\n});\n\nexport type EnumParameter = z.infer<typeof EnumParameterSchema>;\n\nexport const BooleanParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('boolean'),\n value: z.boolean(),\n});\n\nexport type BooleanParameter = z.infer<typeof BooleanParameterSchema>;\n\nexport const StringParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('string'),\n value: z.string(),\n});\n\nexport type StringParameter = z.infer<typeof StringParameterSchema>;\n\nexport const ParameterSchema = z.union([\n NumberParameterSchema,\n EnumParameterSchema,\n BooleanParameterSchema,\n StringParameterSchema,\n]);\n\nexport type Parameter = z.infer<typeof ParameterSchema>;\n\nexport const ActionSchema = z.object({\n id: z.string(),\n label: z.string(),\n continuous: z.boolean().optional(),\n allowRuntimeChange: z.boolean().optional(),\n});\n\n/** A renderer-visible command exposed by the simulator. */\nexport type Action = z.infer<typeof ActionSchema>;\n"],
5
- "mappings": "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",
6
- "names": ["z", "z", "z", "z"]
3
+ "sources": ["../src/asset.ts", "../src/binary.ts", "../src/chart.ts", "../src/codec.ts", "../src/schemas.ts", "../src/controls.ts", "../src/layers.ts"],
4
+ "sourcesContent": ["import { z } from 'zod';\n\n/**\n * Asset identifiers and metadata are protocol payloads, not renderer cache\n * objects. Renderers may resolve them into blob URLs or local buffers, but the\n * wire contract stays content-addressed by id plus hash.\n */\nexport const AssetIdSchema = z.string();\n\nexport type AssetId = z.infer<typeof AssetIdSchema>;\n\nexport const AssetMetaSchema = z.object({\n id: AssetIdSchema,\n hash: z.string(),\n mime: z.string(),\n size: z.number(),\n label: z.string().optional(),\n});\n\nexport type AssetMeta = z.infer<typeof AssetMetaSchema>;\n", "const BASE64_DATA_URL_MARKER = ';base64,';\n\ninterface BufferEncoderResult {\n toString(encoding: 'base64'): string;\n}\n\ninterface BufferLike {\n from(data: Uint8Array): BufferEncoderResult;\n from(data: string, encoding: 'base64'): ArrayLike<number>;\n}\n\nexport interface DecodedBinaryString {\n bytes: Uint8Array;\n mime?: string;\n encoding: 'base64' | 'data-url';\n}\n\nfunction getGlobalBuffer(): BufferLike | undefined {\n return (globalThis as { Buffer?: BufferLike }).Buffer;\n}\n\nexport function encodeBytesAsBase64(bytes: Uint8Array): string {\n const buffer = getGlobalBuffer();\n if (buffer) {\n return buffer.from(bytes).toString('base64');\n }\n\n if (typeof btoa === 'function') {\n let binary = '';\n for (let index = 0; index < bytes.length; index += 1) {\n binary += String.fromCharCode(bytes[index]);\n }\n return btoa(binary);\n }\n\n throw new Error('No base64 encoder is available in this runtime.');\n}\n\nexport function encodeBytesAsDataUrl(\n bytes: Uint8Array,\n mime = 'application/octet-stream',\n): string {\n return `data:${mime};base64,${encodeBytesAsBase64(bytes)}`;\n}\n\nexport function decodeBinaryString(value: string): DecodedBinaryString {\n const decoded = tryDecodeBinaryString(value);\n if (!decoded) {\n throw new Error('Expected a base64 string or a base64 data URL.');\n }\n return decoded;\n}\n\nexport function isEncodedBinaryString(value: string): boolean {\n return tryDecodeBinaryString(value) !== null;\n}\n\nfunction tryDecodeBinaryString(value: string): DecodedBinaryString | null {\n if (value.startsWith('data:')) {\n const dataUrl = tryDecodeBase64DataUrl(value);\n if (dataUrl) {\n return dataUrl;\n }\n }\n\n const bytes = tryDecodeBase64(value);\n if (!bytes) {\n return null;\n }\n\n return {\n bytes,\n encoding: 'base64',\n };\n}\n\nfunction tryDecodeBase64DataUrl(value: string): DecodedBinaryString | null {\n const markerIndex = value.indexOf(BASE64_DATA_URL_MARKER);\n if (markerIndex === -1) {\n return null;\n }\n\n const mime = value.slice(5, markerIndex) || undefined;\n const base64 = value.slice(markerIndex + BASE64_DATA_URL_MARKER.length);\n const bytes = tryDecodeBase64(base64);\n if (!bytes) {\n return null;\n }\n\n return {\n bytes,\n mime,\n encoding: 'data-url',\n };\n}\n\nfunction tryDecodeBase64(value: string): Uint8Array | null {\n const normalized = value.replace(/\\s+/g, '');\n if (!normalized || normalized.length % 4 !== 0 || /[^A-Za-z0-9+/=]/.test(normalized)) {\n return null;\n }\n\n try {\n const buffer = getGlobalBuffer();\n if (buffer) {\n return new Uint8Array(buffer.from(normalized, 'base64'));\n }\n\n if (typeof atob === 'function') {\n const binary = atob(normalized);\n const bytes = new Uint8Array(binary.length);\n for (let index = 0; index < binary.length; index += 1) {\n bytes[index] = binary.charCodeAt(index);\n }\n return bytes;\n }\n } catch {\n return null;\n }\n\n throw new Error('No base64 decoder is available in this runtime.');\n}\n", "import { z } from 'zod';\n\n/**\n * Protocol-level chart types describe series identity and updates only. Chart\n * rendering config, layouts, and UI-specific storage live in renderer packages.\n */\nexport const ChartMetadataSchema = z.object({\n id: z.string(),\n label: z.string(),\n color: z.string().optional(),\n});\n\nexport type ChartMetadata = z.infer<typeof ChartMetadataSchema>;\n\nexport const ChartGroupMetadataSchema = ChartMetadataSchema.extend({\n dataList: z.array(ChartMetadataSchema).optional(),\n});\n\nexport type ChartGroupMetadata = z.infer<typeof ChartGroupMetadataSchema>;\n\nexport const ChartUpdateDataSchema = z.object({\n id: z.string(),\n time: z.number().optional(),\n value: z.unknown(),\n});\n\nexport type ChartUpdateData = z.infer<typeof ChartUpdateDataSchema>;\n\nexport const ChartUpdateOperationSchema = z.object({\n id: z.string(),\n operation: z.literal('clear'),\n});\n\nexport type ChartUpdateOperation = z.infer<typeof ChartUpdateOperationSchema>;\n", "import { decode, encode } from '@msgpack/msgpack';\nimport { decodeBinaryString, encodeBytesAsDataUrl } from './binary';\nimport {\n AssetDataPayloadSchema,\n ScreenshotResponsePayloadSchema,\n} from './schemas';\nimport type { AnyProtocolMessage } from './types';\n\nexport type ProtocolEncoding = 'json' | 'msgpack';\n\nexport function detectProtocolEncoding(data: string | Uint8Array | ArrayBuffer): ProtocolEncoding {\n return typeof data === 'string' ? 'json' : 'msgpack';\n}\n\n/**\n * Encode semantic protocol messages for a transport.\n *\n * JSON cannot carry bytes directly, so binary semantic fields become data URLs.\n * MessagePack keeps those fields as Uint8Array values.\n */\nexport function encodeProtocolMessage(\n message: AnyProtocolMessage,\n encoding: ProtocolEncoding,\n): string | Uint8Array {\n const normalized = normalizeBinarySemanticMessage(message, encoding);\n return encoding === 'json' ? JSON.stringify(normalized) : encode(normalized);\n}\n\nexport function decodeProtocolMessage(data: string | Uint8Array | ArrayBuffer): AnyProtocolMessage {\n if (typeof data === 'string') {\n return normalizeDecodedBinarySemanticMessage(JSON.parse(data) as AnyProtocolMessage);\n }\n\n const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);\n return normalizeDecodedBinarySemanticMessage(decode(bytes) as AnyProtocolMessage);\n}\n\nfunction normalizeBinarySemanticMessage(\n message: AnyProtocolMessage,\n encoding: ProtocolEncoding,\n): AnyProtocolMessage {\n switch (message.type) {\n case 'asset_data': {\n const payload = AssetDataPayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: normalizeBinaryDataForEncoding(payload.data, payload.mime, encoding),\n },\n };\n }\n case 'screenshot_response': {\n const payload = ScreenshotResponsePayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'undefined'\n ? undefined\n : normalizeBinaryDataForEncoding(payload.data, payload.mime, encoding),\n },\n };\n }\n default:\n return message;\n }\n}\n\nfunction normalizeDecodedBinarySemanticMessage(message: AnyProtocolMessage): AnyProtocolMessage {\n switch (message.type) {\n case 'asset_data': {\n const payload = AssetDataPayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'string' ? decodeBinaryString(payload.data).bytes : payload.data,\n },\n };\n }\n case 'screenshot_response': {\n const payload = ScreenshotResponsePayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'string' ? decodeBinaryString(payload.data).bytes : payload.data,\n },\n };\n }\n default:\n return message;\n }\n}\n\nfunction normalizeBinaryDataForEncoding(\n value: string | Uint8Array,\n mime: string | undefined,\n encoding: ProtocolEncoding,\n): string | Uint8Array {\n if (encoding === 'json') {\n return typeof value === 'string'\n ? value\n : encodeBytesAsDataUrl(value, mime ?? 'application/octet-stream');\n }\n\n return typeof value === 'string' ? decodeBinaryString(value).bytes : value;\n}\n", "import { z } from 'zod';\nimport { AssetMetaSchema } from './asset';\nimport {\n ChartGroupMetadataSchema,\n ChartMetadataSchema,\n ChartUpdateDataSchema,\n ChartUpdateOperationSchema,\n} from './chart';\nimport { ActionSchema, ParameterSchema } from './controls';\nimport { isEncodedBinaryString } from './binary';\n\nconst BinaryPayloadStringSchema = z.string().refine(\n (value) => isEncodedBinaryString(value),\n 'Expected a base64 string or a base64 data URL for binary payload data.',\n);\n\nconst BinaryPayloadDataSchema = z.union([BinaryPayloadStringSchema, z.instanceof(Uint8Array)]);\n\nexport const ItemSchema = z.record(z.string(), z.unknown());\nexport const ItemDiffSchema = z.record(z.string(), z.unknown());\nexport const ItemKeySchema = z.record(z.string(), z.unknown());\nexport const PrimitiveItemKeySchema = z.union([z.string(), z.number()]);\n\n/**\n * `metadata_update` carries scenario-wide metadata, including the current\n * simulation time. It replaces the old split between time-step start and end\n * events, and may carry additional simulator-defined metadata fields.\n */\nexport const MetadataUpdatePayloadSchema = z.object({\n time: z.number().optional(),\n}).loose();\n\n/**\n * `state_sync_begin` and `state_sync_end` bracket a simulator replay triggered\n * by `state_sync`. When present, `request_id` is generated by the renderer and\n * echoed by the simulator so initial sync and reconnect transactions can be\n * correlated without making Scenario transport-aware.\n */\nexport const StateSyncBoundaryPayloadSchema = z.object({\n request_id: z.string().optional(),\n});\n\n/** Optional per-action timing buckets used for tick diagnostics. */\nexport const TickTimingBreakdownSchema = z.object({\n simulate_ms: z.number().nonnegative().optional(),\n communicate_ms: z.number().nonnegative().optional(),\n render_ms: z.number().nonnegative().optional(),\n}).catchall(z.number().nonnegative());\n\n/**\n * `action_end` signals completion of one simulator action execution. Simulators\n * should emit state mutations caused by the action before the matching\n * `action_end`. For continuous actions, explicit `continue: false` stops the\n * renderer-driven loop; `tick_id` should echo the renderer-supplied id.\n */\nexport const ActionEndPayloadSchema = z.object({\n id: z.string(),\n tick_id: z.string().optional(),\n continue: z.boolean().optional(),\n timings: TickTimingBreakdownSchema.optional(),\n});\n\n/** `action_delete` removes a renderer-visible action by id. */\nexport const ActionDeletePayloadSchema = z.object({ id: z.string() });\n\n/**\n * `env_create` creates a scenario environment container. `2d` covers grid-like\n * and graph-like scenes; rendering semantics are expressed by layers.\n */\nexport const EnvCreatePayloadSchema = z.object({\n id: z.string(),\n type: z.enum(['uniform', '2d']),\n});\n\n/** `env_delete` removes a scenario environment container by id. */\nexport const EnvDeletePayloadSchema = z.object({ id: z.string() });\n\n/**\n * `env_layer_create` creates an environment-local layer with fixed topology and\n * optional metadata. `dependency_layer_ids` is create-time topology; simulators\n * should recreate the layer or environment if dependencies need to change.\n */\nexport const EnvLayerCreatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n layer_type: z.string(),\n dependency_layer_ids: z.record(z.string(), z.string()).optional(),\n data: z.record(z.string(), z.unknown()).optional(),\n});\n\n/**\n * `env_layer_update` replaces layer metadata as a whole object. It is not an\n * item diff channel and must not be used to mutate dependency topology.\n */\nexport const EnvLayerUpdatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n data: z.record(z.string(), z.unknown()),\n});\n\n/** `env_layer_delete` removes one layer from an environment. */\nexport const EnvLayerDeletePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n});\n\n/**\n * `item_create` creates layer-owned items. The exact item schema and primary\n * key are provided by the layer registry entry for the target layer type.\n */\nexport const ItemCreatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.array(ItemSchema),\n});\n\n/**\n * `item_update` carries field-level diffs for existing layer-owned items.\n * Diffs must include the layer registry primary key fields so the renderer can\n * identify each target item.\n */\nexport const ItemUpdatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.array(ItemDiffSchema),\n});\n\n/**\n * `item_delete` removes layer-owned items. Single-key layers may delete by\n * primitive id; multi-key layers, such as edge layers keyed by source/target,\n * delete by object keys matching the registry primary key fields.\n */\nexport const ItemDeletePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.union([z.array(PrimitiveItemKeySchema), z.array(ItemKeySchema)]),\n});\n\n/** `param_delete` removes a renderer-visible parameter by id. */\nexport const ParameterDeletePayloadSchema = z.object({ id: z.string() });\n\n/**\n * `param_sync` pushes a simulator-side value correction after an optimistic\n * renderer edit. A simulator should not emit `param_sync` for every accepted\n * `param_change`; it should emit one only when it rejects the edit or coerces it\n * to a different canonical value. Definition changes, including enum option or\n * label-list changes, are sent with full `param_update` payloads instead.\n */\nexport const ParameterSyncPayloadSchema = z.object({\n id: z.string(),\n value: z.unknown(),\n});\n\n/** `chart_delete` removes a chart or chart series by id. */\nexport const ChartDeletePayloadSchema = z.object({ id: z.string() });\n\n/**\n * `chart_update` carries incremental data points and chart operations such as\n * `clear`. Chart metadata is maintained separately through `chart_create`.\n */\nexport const ChartUpdatePayloadSchema = z.object({\n updates: z.array(ChartUpdateDataSchema).optional(),\n operations: z.array(ChartUpdateOperationSchema).optional(),\n});\n\nexport const LogLevelSchema = z.enum(['debug', 'info', 'warning', 'error', 'critical']);\n\n/** `log` is a diagnostic event emitted by either runtime side. */\nexport const LogPayloadSchema = z.object({\n message: z.string(),\n level: LogLevelSchema.optional(),\n target: z.string().optional(),\n timestamp: z.number().optional(),\n data: z.unknown().optional(),\n});\n\n/** `error` reports a protocol-level or runtime error. */\nexport const ErrorPayloadSchema = z.object({ error: z.string() });\n\n/** `asset_meta` announces cacheable asset descriptors without sending bytes. */\nexport const AssetMetaPayloadSchema = z.object({\n assets: z.array(AssetMetaSchema),\n});\n\n/**\n * `asset_data` sends one asset's bytes. JSON transports carry base64/data URL\n * strings, while binary transports may carry raw `Uint8Array` values.\n */\nexport const AssetDataPayloadSchema = z.object({\n id: z.string(),\n hash: z.string(),\n mime: z.string(),\n data: BinaryPayloadDataSchema,\n});\n\n/** `asset_delete` removes cached renderer-side assets by id. */\nexport const AssetDeletePayloadSchema = z.object({\n ids: z.array(z.string()),\n});\n\n/** `asset_sync` reports the renderer's currently held asset hashes. */\nexport const AssetSyncPayloadSchema = z.object({\n assets: z.record(z.string(), z.string()),\n});\n\n/**\n * `screenshot_request` asks the renderer to capture an environment or chart.\n * Exactly one of `env_id` or `chart_id` should identify the target. `format`\n * defaults to `png`; `quality` is a 0-1 JPEG hint.\n */\nexport const ScreenshotRequestPayloadSchema = z.object({\n request_id: z.string(),\n env_id: z.string().optional(),\n chart_id: z.string().optional(),\n format: z.enum(['png', 'jpeg']).optional(),\n quality: z.number().min(0).max(1).optional(),\n});\n\n/**\n * `screenshot_response` returns a captured image or an error to the simulator.\n * JSON mode uses base64/data URL strings; binary mode may use raw bytes.\n */\nexport const ScreenshotResponsePayloadSchema = z.object({\n request_id: z.string(),\n data: BinaryPayloadDataSchema.optional(),\n mime: z.string().optional(),\n error: z.string().optional(),\n});\n\n/**\n * `state_sync` is sent by the renderer on connect or reconnect. It summarizes\n * renderer-held definitions so the simulator can replay create, update, and\n * delete messages between `state_sync_begin` and `state_sync_end`; simulators\n * do not answer with a reverse `state_sync`.\n */\nexport const StateSyncRequestSchema = z.object({\n request_id: z.string().optional(),\n parameters: z.array(ParameterSchema),\n actions: z.array(ActionSchema),\n envs: z.array(z.object({\n id: z.string(),\n type: z.string(),\n layers: z.array(z.object({ layer_id: z.string(), layer_type: z.string() })),\n })),\n charts: z.array(ChartMetadataSchema),\n});\n\n/**\n * `param_change` is a renderer-side optimistic parameter edit. The simulator is\n * expected to apply accepted values without emitting any sync message. If the\n * edit is rejected or normalized to a different value, the simulator sends\n * `param_sync`; if the parameter definition changes, such as enum options, it\n * sends a full `param_update`.\n */\nexport const ParameterChangePayloadSchema = z.object({\n id: z.string(),\n value: z.unknown(),\n});\n\n/**\n * `action_start` starts one action execution. `continuous` requests a\n * renderer-driven loop, and `tick_id` lets the renderer correlate the eventual\n * `action_end` with one in-flight dispatch.\n */\nexport const ActionStartPayloadSchema = z.object({\n id: z.string(),\n tick_id: z.string().optional(),\n continuous: z.boolean().optional(),\n});\n\n/**\n * Simulator-to-renderer messages mutate renderer-owned Scenario state or ask\n * renderer-side facilities, such as asset cache and screenshots, to do work.\n */\nexport const SimulatorToRendererMessageSchema = z.object({\n type: z.enum([\n 'metadata_update',\n 'state_sync_begin',\n 'state_sync_end',\n 'action_end',\n 'action_create',\n 'action_update',\n 'action_delete',\n 'env_create',\n 'env_delete',\n 'env_layer_create',\n 'env_layer_update',\n 'env_layer_delete',\n 'item_create',\n 'item_update',\n 'item_delete',\n 'param_create',\n 'param_update',\n 'param_delete',\n 'param_sync',\n 'chart_create',\n 'chart_update',\n 'chart_delete',\n 'asset_meta',\n 'asset_data',\n 'asset_delete',\n 'screenshot_request',\n 'log',\n 'error',\n ]),\n payload: z.unknown(),\n timestamp: z.number().optional(),\n});\n\n/**\n * Renderer-to-simulator messages express renderer intent, renderer state\n * summary, or renderer-generated output.\n */\nexport const RendererToSimulatorMessageSchema = z.object({\n type: z.enum([\n 'state_sync',\n 'param_change',\n 'action_start',\n 'asset_sync',\n 'screenshot_response',\n 'error',\n ]),\n payload: z.unknown(),\n timestamp: z.number().optional(),\n});\n\nexport const AnyProtocolMessageSchema = z.union([\n SimulatorToRendererMessageSchema,\n RendererToSimulatorMessageSchema,\n]);\n\nexport const getPayloadSchema = (type: string) => {\n switch (type) {\n case 'metadata_update': return MetadataUpdatePayloadSchema;\n case 'state_sync_begin': return StateSyncBoundaryPayloadSchema;\n case 'state_sync_end': return StateSyncBoundaryPayloadSchema;\n case 'action_end': return ActionEndPayloadSchema;\n case 'action_create': return ActionSchema;\n case 'action_update': return ActionSchema;\n case 'action_delete': return ActionDeletePayloadSchema;\n case 'env_create': return EnvCreatePayloadSchema;\n case 'env_delete': return EnvDeletePayloadSchema;\n case 'env_layer_create': return EnvLayerCreatePayloadSchema;\n case 'env_layer_update': return EnvLayerUpdatePayloadSchema;\n case 'env_layer_delete': return EnvLayerDeletePayloadSchema;\n case 'item_create': return ItemCreatePayloadSchema;\n case 'item_update': return ItemUpdatePayloadSchema;\n case 'item_delete': return ItemDeletePayloadSchema;\n case 'param_create': return ParameterSchema;\n case 'param_update': return ParameterSchema;\n case 'param_delete': return ParameterDeletePayloadSchema;\n case 'param_sync': return ParameterSyncPayloadSchema;\n case 'chart_create': return ChartGroupMetadataSchema;\n case 'chart_update': return ChartUpdatePayloadSchema;\n case 'chart_delete': return ChartDeletePayloadSchema;\n case 'asset_meta': return AssetMetaPayloadSchema;\n case 'asset_data': return AssetDataPayloadSchema;\n case 'asset_delete': return AssetDeletePayloadSchema;\n case 'screenshot_request': return ScreenshotRequestPayloadSchema;\n case 'screenshot_response': return ScreenshotResponsePayloadSchema;\n case 'log': return LogPayloadSchema;\n case 'error': return ErrorPayloadSchema;\n case 'state_sync': return StateSyncRequestSchema;\n case 'param_change': return ParameterChangePayloadSchema;\n case 'action_start': return ActionStartPayloadSchema;\n case 'asset_sync': return AssetSyncPayloadSchema;\n default: return z.unknown();\n }\n};\n", "import { z } from 'zod';\n\n/**\n * Parameters describe mutable simulator configuration exposed to the renderer.\n * Actions are intentionally separate in protocol v0.2: they have their own\n * lifecycle and renderer-driven continuous loop semantics.\n */\nexport const ParameterTypeSchema = z.enum(['number', 'enum', 'boolean', 'string']);\n\nexport type ParameterType = z.infer<typeof ParameterTypeSchema>;\n\nexport const ParameterBaseSchema = z.object({\n id: z.string(),\n type: ParameterTypeSchema,\n label: z.string(),\n allowRuntimeChange: z.boolean().optional(),\n});\n\nexport type ParameterBase = z.infer<typeof ParameterBaseSchema>;\n\nexport const NumberParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('number'),\n value: z.number(),\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n});\n\nexport type NumberParameter = z.infer<typeof NumberParameterSchema>;\n\nexport const EnumParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('enum'),\n value: z.string(),\n options: z.array(z.string()),\n labels: z.record(z.string(), z.string()).optional(),\n});\n\nexport type EnumParameter = z.infer<typeof EnumParameterSchema>;\n\nexport const BooleanParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('boolean'),\n value: z.boolean(),\n});\n\nexport type BooleanParameter = z.infer<typeof BooleanParameterSchema>;\n\nexport const StringParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('string'),\n value: z.string(),\n});\n\nexport type StringParameter = z.infer<typeof StringParameterSchema>;\n\nexport const ParameterSchema = z.union([\n NumberParameterSchema,\n EnumParameterSchema,\n BooleanParameterSchema,\n StringParameterSchema,\n]);\n\nexport type Parameter = z.infer<typeof ParameterSchema>;\n\nexport const ActionSchema = z.object({\n id: z.string(),\n label: z.string(),\n continuous: z.boolean().optional(),\n allowRuntimeChange: z.boolean().optional(),\n});\n\n/** A renderer-visible command exposed by the simulator. */\nexport type Action = z.infer<typeof ActionSchema>;\n", "import { z } from 'zod';\n\n/**\n * The five layer types built into the default TenSnap renderer registry.\n * Third-party layer types may still use open `layer_type` strings in the\n * generic protocol payloads.\n */\nexport const BuiltinLayerTypeSchema = z.enum(['background', 'grid', 'edge', 'trajectory', 'agent']);\n\nexport type BuiltinLayerType = z.infer<typeof BuiltinLayerTypeSchema>;\n\n/** Agent ids are stable layer item keys and may be strings or numbers. */\nexport const AgentIdSchema = z.union([z.string(), z.number()]);\n\nexport type AgentId = z.infer<typeof AgentIdSchema>;\n\nexport const BUILTIN_AGENT_ICONS = [\n 'arrow',\n 'circle',\n 'square',\n 'triangle',\n 'diamond',\n 'star',\n 'hexagon',\n 'cross',\n 'plus',\n 'pentagon',\n] as const;\n\n/** Built-in symbolic agent icons rendered by the default agent layer. */\nexport const BuiltinAgentIconSchema = z.enum(BUILTIN_AGENT_ICONS);\n\n/** Asset-backed icons use the `asset:<asset_id>` reference form. */\nexport const AssetAgentIconSchema = z.string().regex(/^asset:.+$/);\n\nexport const AgentIconSchema = z.union([BuiltinAgentIconSchema, AssetAgentIconSchema]);\n\nexport type BuiltinAgentIcon = z.infer<typeof BuiltinAgentIconSchema>;\nexport type AssetAgentIcon = z.infer<typeof AssetAgentIconSchema>;\nexport type AgentIcon = z.infer<typeof AgentIconSchema>;\n\n/**\n * Common metadata accepted by all built-in layers. Dependencies are create-time\n * topology and live on `env_layer_create.dependency_layer_ids`, not in metadata.\n */\nexport const BaseLayerMetadataSchema = z.object({\n dependency_layer_ids: z.never().optional(),\n z_index: z.number().optional(),\n}).loose();\n\nexport type BaseLayerMetadata = z.infer<typeof BaseLayerMetadataSchema>;\n\n/**\n * Agent layer metadata. `coord_offset` selects integer grid-cell coordinates or\n * floating scene coordinates for x/y agent positions.\n */\nexport const AgentLayerMetadataSchema = BaseLayerMetadataSchema.extend({\n width: z.number().optional(),\n height: z.number().optional(),\n coord_offset: z.enum(['int', 'float']).optional(),\n}).loose();\n\nexport type AgentLayerMetadata = z.infer<typeof AgentLayerMetadataSchema>;\n\n/**\n * Agent items are keyed by `id`. They can represent grid agents or graph nodes;\n * graph-force fields (`vx`, `vy`, `fx`, `fy`) are renderer-maintained hints.\n */\nexport const AgentItemSchema = z.object({\n id: AgentIdSchema,\n color: z.string().optional(),\n icon: AgentIconSchema.optional(),\n size: z.number().optional(),\n x: z.number().optional(),\n y: z.number().optional(),\n vx: z.number().optional(),\n vy: z.number().optional(),\n fx: z.number().nullable().optional(),\n fy: z.number().nullable().optional(),\n heading: z.number().optional(),\n data: z.record(z.string(), z.unknown()).optional(),\n}).loose();\n\nexport type AgentItem = z.infer<typeof AgentItemSchema>;\n\n/** Agent item updates are keyed by `id` and may carry any changed fields. */\nexport const AgentItemDiffSchema = z.object({\n id: AgentIdSchema,\n}).loose();\n\nexport type AgentItemDiff = z.infer<typeof AgentItemDiffSchema>;\n\n/**\n * Edge layer metadata configures graph layout forces and edge rendering\n * defaults. Edge layers depend on an agent layer through dependency key\n * `agent`.\n */\nexport const EdgeLayerMetadataSchema = BaseLayerMetadataSchema.extend({\n link_distance: z.number().optional(),\n charge_strength: z.number().optional(),\n centering_strength: z.number().optional(),\n collision_radius: z.number().optional(),\n max_component_distance: z.number().optional(),\n component_spacing: z.number().optional(),\n}).loose();\n\nexport type EdgeLayerMetadata = z.infer<typeof EdgeLayerMetadataSchema>;\n\n/** Edge items are keyed by the ordered pair (`source`, `target`). */\nexport const EdgeItemSchema = z.object({\n source: AgentIdSchema,\n target: AgentIdSchema,\n directed: z.boolean().optional(),\n style: z.enum(['solid', 'dashed', 'dotted']).optional(),\n width: z.number().optional(),\n color: z.string().optional(),\n}).loose();\n\nexport type EdgeItem = z.infer<typeof EdgeItemSchema>;\n\n/** Edge item updates are keyed by `source` and `target`. */\nexport const EdgeItemDiffSchema = z.object({\n source: AgentIdSchema,\n target: AgentIdSchema,\n}).loose();\n\nexport type EdgeItemDiff = z.infer<typeof EdgeItemDiffSchema>;\n\n/** Delete key for one edge item. */\nexport const EdgeItemKeySchema = z.object({\n source: AgentIdSchema,\n target: AgentIdSchema,\n});\n\nexport type EdgeItemKey = z.infer<typeof EdgeItemKeySchema>;\n\n/**\n * Trajectory layer metadata sets defaults for per-agent trajectory traces.\n * Trajectory layers depend on an agent layer through dependency key `agent`.\n */\nexport const TrajectoryLayerMetadataSchema = BaseLayerMetadataSchema.extend({\n length: z.number().optional(),\n width: z.number().optional(),\n color: z.string().optional(),\n}).loose();\n\nexport type TrajectoryLayerMetadata = z.infer<typeof TrajectoryLayerMetadataSchema>;\n\n/** Per-agent trajectory config items are keyed by agent `id`. */\nexport const TrajectoryItemSchema = z.object({\n id: AgentIdSchema,\n length: z.number().optional(),\n width: z.number().optional(),\n color: z.string().optional(),\n}).loose();\n\nexport type TrajectoryItem = z.infer<typeof TrajectoryItemSchema>;\n\n/** Trajectory item updates are keyed by `id`. */\nexport const TrajectoryItemDiffSchema = z.object({\n id: AgentIdSchema,\n}).loose();\n\nexport type TrajectoryItemDiff = z.infer<typeof TrajectoryItemDiffSchema>;\n\n/** One historical trajectory sample stored by the renderer. */\nexport const TrajectoryPointSchema = z.object({\n x: z.number(),\n y: z.number(),\n time: z.number(),\n color: z.string().optional(),\n});\n\nexport type TrajectoryPoint = z.infer<typeof TrajectoryPointSchema>;\n\n/** Grid layer metadata controls parametric grid lines and optional scene size. */\nexport const GridLayerMetadataSchema = BaseLayerMetadataSchema.extend({\n width: z.number().optional(),\n height: z.number().optional(),\n x_origin: z.number().optional(),\n x_unit: z.number().optional(),\n x_interval: z.number().optional(),\n x_ratio: z.number().int().min(2).optional(),\n y_origin: z.number().optional(),\n y_unit: z.number().optional(),\n y_interval: z.number().optional(),\n y_ratio: z.number().int().min(2).optional(),\n stroke_color: z.string().optional(),\n}).loose();\n\nexport type GridLayerMetadata = z.infer<typeof GridLayerMetadataSchema>;\n\nexport const BackgroundInterpolationSchema = z.enum(['nearest', 'linear']);\n\nexport type BackgroundInterpolation = z.infer<typeof BackgroundInterpolationSchema>;\n\n/** Background image references point to a previously announced protocol asset. */\nexport const BackgroundAssetReferenceSchema = z.object({\n asset_id: z.string(),\n interpolation: BackgroundInterpolationSchema.optional(),\n});\n\nexport type BackgroundAssetReference = z.infer<typeof BackgroundAssetReferenceSchema>;\n\n/** Raw background source accepted by the built-in background layer metadata. */\nexport const BackgroundSourceSchema = z.union([\n z.string(),\n z.instanceof(Uint8Array),\n BackgroundAssetReferenceSchema,\n]);\n\nexport type BackgroundSource = z.infer<typeof BackgroundSourceSchema>;\n\n/** Background layer metadata stores color/image/asset source and interpolation. */\nexport const BackgroundLayerMetadataSchema = BaseLayerMetadataSchema.extend({\n background: BackgroundSourceSchema.optional(),\n interpolation: BackgroundInterpolationSchema.optional(),\n}).loose();\n\nexport type BackgroundLayerMetadata = z.infer<typeof BackgroundLayerMetadataSchema>;\n\n/** Dependency map shape used by edge and trajectory layers. */\nexport const AgentDependencyLayerIdsSchema = z.object({\n agent: z.string(),\n}).loose();\n\nexport type AgentDependencyLayerIds = z.infer<typeof AgentDependencyLayerIdsSchema>;\n\nconst BuiltinLayerCreateBaseSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n});\n\nconst ItemPayloadBaseSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n});\n\n/** Built-in `agent` layer create payload. Agent layers do not require dependency layers. */\nexport const AgentLayerCreatePayloadSchema = BuiltinLayerCreateBaseSchema.extend({\n layer_type: z.literal('agent'),\n data: AgentLayerMetadataSchema.optional(),\n});\n\nexport type AgentLayerCreatePayload = z.infer<typeof AgentLayerCreatePayloadSchema>;\n\n/** Built-in `edge` layer create payload. `dependency_layer_ids.agent` names the source agent layer. */\nexport const EdgeLayerCreatePayloadSchema = BuiltinLayerCreateBaseSchema.extend({\n layer_type: z.literal('edge'),\n dependency_layer_ids: AgentDependencyLayerIdsSchema,\n data: EdgeLayerMetadataSchema.optional(),\n});\n\nexport type EdgeLayerCreatePayload = z.infer<typeof EdgeLayerCreatePayloadSchema>;\n\n/** Built-in `trajectory` layer create payload. `dependency_layer_ids.agent` names the traced agent layer. */\nexport const TrajectoryLayerCreatePayloadSchema = BuiltinLayerCreateBaseSchema.extend({\n layer_type: z.literal('trajectory'),\n dependency_layer_ids: AgentDependencyLayerIdsSchema,\n data: TrajectoryLayerMetadataSchema.optional(),\n});\n\nexport type TrajectoryLayerCreatePayload = z.infer<typeof TrajectoryLayerCreatePayloadSchema>;\n\n/** Built-in `grid` layer create payload. Grid layers use metadata only and do not accept item messages. */\nexport const GridLayerCreatePayloadSchema = BuiltinLayerCreateBaseSchema.extend({\n layer_type: z.literal('grid'),\n data: GridLayerMetadataSchema.optional(),\n});\n\nexport type GridLayerCreatePayload = z.infer<typeof GridLayerCreatePayloadSchema>;\n\n/** Built-in `background` layer create payload. Background layers use metadata only and do not accept item messages. */\nexport const BackgroundLayerCreatePayloadSchema = BuiltinLayerCreateBaseSchema.extend({\n layer_type: z.literal('background'),\n data: BackgroundLayerMetadataSchema.optional(),\n});\n\nexport type BackgroundLayerCreatePayload = z.infer<typeof BackgroundLayerCreatePayloadSchema>;\n\n/** Union of the five built-in layer create payload specializations. */\nexport const BuiltinLayerCreatePayloadSchema = z.union([\n BackgroundLayerCreatePayloadSchema,\n GridLayerCreatePayloadSchema,\n EdgeLayerCreatePayloadSchema,\n TrajectoryLayerCreatePayloadSchema,\n AgentLayerCreatePayloadSchema,\n]);\n\nexport type BuiltinLayerCreatePayload = z.infer<typeof BuiltinLayerCreatePayloadSchema>;\n\n/** `item_create` payload specialization for built-in agent layers. */\nexport const AgentItemCreatePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(AgentItemSchema),\n});\n\nexport type AgentItemCreatePayload = z.infer<typeof AgentItemCreatePayloadSchema>;\n\n/** `item_update` payload specialization for built-in agent layers. */\nexport const AgentItemUpdatePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(AgentItemDiffSchema),\n});\n\nexport type AgentItemUpdatePayload = z.infer<typeof AgentItemUpdatePayloadSchema>;\n\n/** `item_delete` payload specialization for built-in agent layers, keyed by agent id. */\nexport const AgentItemDeletePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(AgentIdSchema),\n});\n\nexport type AgentItemDeletePayload = z.infer<typeof AgentItemDeletePayloadSchema>;\n\n/** `item_create` payload specialization for built-in edge layers. */\nexport const EdgeItemCreatePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(EdgeItemSchema),\n});\n\nexport type EdgeItemCreatePayload = z.infer<typeof EdgeItemCreatePayloadSchema>;\n\n/** `item_update` payload specialization for built-in edge layers. */\nexport const EdgeItemUpdatePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(EdgeItemDiffSchema),\n});\n\nexport type EdgeItemUpdatePayload = z.infer<typeof EdgeItemUpdatePayloadSchema>;\n\n/** `item_delete` payload specialization for built-in edge layers, keyed by source/target pairs. */\nexport const EdgeItemDeletePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(EdgeItemKeySchema),\n});\n\nexport type EdgeItemDeletePayload = z.infer<typeof EdgeItemDeletePayloadSchema>;\n\n/** `item_create` payload specialization for built-in trajectory layers. */\nexport const TrajectoryItemCreatePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(TrajectoryItemSchema),\n});\n\nexport type TrajectoryItemCreatePayload = z.infer<typeof TrajectoryItemCreatePayloadSchema>;\n\n/** `item_update` payload specialization for built-in trajectory layers. */\nexport const TrajectoryItemUpdatePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(TrajectoryItemDiffSchema),\n});\n\nexport type TrajectoryItemUpdatePayload = z.infer<typeof TrajectoryItemUpdatePayloadSchema>;\n\n/** `item_delete` payload specialization for built-in trajectory layers, keyed by agent id. */\nexport const TrajectoryItemDeletePayloadSchema = ItemPayloadBaseSchema.extend({\n items: z.array(AgentIdSchema),\n});\n\nexport type TrajectoryItemDeletePayload = z.infer<typeof TrajectoryItemDeletePayloadSchema>;\n\n/** Union of built-in layer `item_create` payload specializations. Grid and background layers have no items. */\nexport const BuiltinLayerItemCreatePayloadSchema = z.union([\n AgentItemCreatePayloadSchema,\n EdgeItemCreatePayloadSchema,\n TrajectoryItemCreatePayloadSchema,\n]);\n\nexport type BuiltinLayerItemCreatePayload = z.infer<typeof BuiltinLayerItemCreatePayloadSchema>;\n\n/** Union of built-in layer `item_update` payload specializations. Grid and background layers have no items. */\nexport const BuiltinLayerItemUpdatePayloadSchema = z.union([\n AgentItemUpdatePayloadSchema,\n EdgeItemUpdatePayloadSchema,\n TrajectoryItemUpdatePayloadSchema,\n]);\n\nexport type BuiltinLayerItemUpdatePayload = z.infer<typeof BuiltinLayerItemUpdatePayloadSchema>;\n\n/** Union of built-in layer `item_delete` payload specializations. Grid and background layers have no items. */\nexport const BuiltinLayerItemDeletePayloadSchema = z.union([\n AgentItemDeletePayloadSchema,\n EdgeItemDeletePayloadSchema,\n TrajectoryItemDeletePayloadSchema,\n]);\n\nexport type BuiltinLayerItemDeletePayload = z.infer<typeof BuiltinLayerItemDeletePayloadSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["z", "z", "z", "z", "z"]
7
7
  }