@inf-monkeys-tech/monkeys 1.0.2 → 1.0.3
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 +3 -1
- package/lib/esm/contracts/index.mjs +4564 -0
- package/lib/esm/contracts/index.mjs.map +1 -0
- package/lib/esm/index.mjs +5868 -0
- package/lib/esm/index.mjs.map +1 -0
- package/lib/esm/runtime/index.mjs +5245 -0
- package/lib/esm/runtime/index.mjs.map +1 -0
- package/lib/esm/schemas/index.mjs +4601 -0
- package/lib/esm/schemas/index.mjs.map +1 -0
- package/package.json +11 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/tool.ts","../../src/types/workflow.ts","../../src/contracts/artifact.ts","../../src/contracts/common.ts","../../src/contracts/capability.ts","../../src/contracts/render.ts","../../src/contracts/context.ts","../../src/contracts/continuity.ts","../../src/contracts/data.ts","../../src/contracts/page.ts","../../src/contracts/semantic.ts","../../src/contracts/tenant.ts","../../src/contracts/theme.ts","../../src/theme-tokens/core.ts","../../src/contracts/dtcg-format.schema.json","../../src/contracts/trend.ts","../../src/contracts/workflow-definition.ts","../../src/schemas/index.ts","../../src/runtime/capability-registry.ts","../../src/runtime/declaration-compiler.ts","../../src/runtime/view-provider-registry.ts","../../src/runtime/page-compiler.ts","../../src/runtime/product-runtime.ts","../../src/runtime/render-tree-compiler.ts","../../src/runtime/tenant-config.ts","../../src/runtime/tenant-runtime-bindings.ts","../../src/runtime/view-render-model.ts","../../src/runtime/workflow-compiler.ts"],"sourcesContent":["import { I18nValue } from \"./i18n\";\n\nexport type IJSONValue = string | number | boolean | IJSONObject | IJSONArray;\nexport type IJSONArray = Array<IJSONValue>;\nexport interface IJSONObject {\n [x: string]: IJSONValue;\n}\n\nexport type ToolPropertyTypes =\n | \"string\"\n | \"file\"\n | \"number\"\n | \"boolean\"\n | \"options\"\n | \"json\"\n | \"notice\"\n | \"canvas-assist\";\n\nexport const CODE_LANGUAGES = [\"javaScript\", \"json\", \"python\", \"sql\"] as const;\n\nexport type EditorType =\n | \"code\"\n | \"codeNodeEditor\"\n | \"htmlEditor\"\n | \"sqlEditor\"\n | \"json\";\nexport type CodeNodeEditorLanguage = (typeof CODE_LANGUAGES)[number];\n\nexport interface ToolPropertyTypeOptions {\n editor?: EditorType; // Supported by: string\n editorLanguage?: CodeNodeEditorLanguage; // Supported by: string in combination with editor: codeNodeEditor\n maxValue?: number; // Supported by: number\n minValue?: number; // Supported by: number\n multipleValues?: boolean; // Supported by: <All>\n multipleValueButtonText?: string; // Supported when \"multipleValues\" set to true\n numberPrecision?: number; // Supported by: number\n password?: boolean; // Supported by: string\n rows?: number; // Supported by: string\n assetType?: AssetType;\n accept?: string;\n max?: number;\n\n [key: string]: any;\n}\n\nexport type ToolPropertyParameterValue =\n | string\n | number\n | boolean\n | undefined\n | null;\n\nexport type ResourceLocatorModes = \"id\" | \"url\" | \"list\" | string;\nexport interface IResourceLocatorResult {\n name: string;\n value: string;\n url?: string;\n}\n\nexport interface ToolParameter {\n [key: string]: ToolParameterValueType;\n}\nexport type ToolParameterValueType =\n // TODO: Later also has to be possible to add multiple ones with the name name. So array has to be possible\n | ToolPropertyParameterValue\n | ToolParameter\n | ToolPropertyParameterValue[]\n | ToolParameter[];\n\nexport interface ToolPropertyDisplayOptions {\n hide?: {\n [key: string]: ToolPropertyParameterValue[] | undefined;\n };\n show?: {\n [key: string]: ToolPropertyParameterValue[] | undefined;\n };\n}\n\nexport interface ToolPropertyOptions {\n name: string | I18nValue;\n value: string | number | boolean;\n action?: string;\n description?: string | I18nValue;\n}\n\nexport interface ToolPropertyCollection {\n displayName: string;\n name: string;\n values: ToolProperty[];\n}\n\nexport interface ToolPropertyValueExtractorBase {\n type: string;\n}\n\nexport interface ToolPropertyValueExtractorRegex {\n type: \"regex\";\n regex: string | RegExp;\n}\n\nexport type AssetType =\n | \"llm-model\"\n | \"sd-model\"\n | \"workflow\"\n | \"workflow-association\"\n | \"design-project\"\n | \"design-association\"\n | \"design-board\"\n | \"workflow-view\"\n | \"media-file\"\n | \"sql-knowledge-base-table\"\n | \"sql-knowledge-base\"\n | \"knowledge-base\"\n | \"canvas\"\n | \"workflow-template\"\n | \"fork-join-branch\"\n | \"workflow-version\"\n | \"tools\"\n | \"comfyui-server\"\n | \"comfyui-workflow\"\n | \"comfyui-model-type\"\n | \"comfyui-model\"\n | \"llm-channel\"\n | \"conversation-app\"\n | \"oneapi-model\"\n | \"leaderboard\"\n | \"model-training\";\n\nexport interface ToolProperty {\n displayName: string | I18nValue;\n name: string;\n type: ToolPropertyTypes;\n typeOptions?: ToolPropertyTypeOptions;\n default?: ToolParameterValueType;\n description?: string | I18nValue;\n hint?: string;\n displayOptions?: ToolPropertyDisplayOptions;\n options?: Array<ToolPropertyOptions | ToolProperty | ToolPropertyCollection>;\n placeholder?: string | I18nValue;\n isNodeSetting?: boolean;\n noDataExpression?: boolean;\n required?: boolean;\n example?: string;\n extractValue?: ToolPropertyValueExtractorRegex;\n properties?: ToolProperty[];\n assetType?: AssetType;\n flag?: boolean;\n}\n\nexport type ToolCategory =\n | \"image\" // 图像处理\n | \"text\" // 文本处理\n | \"file\" // 文件处理\n | \"gen-image\" // 图像生成\n | \"gen-text\" // 文本生成\n | \"train-model\" // 模型训练\n | \"process\" // 流程控制\n | \"auto\" // 自动化\n | \"bio\" // 生命科学\n | \"human\" // 用户交互\n | \"query\" // 搜索增强\n | \"db\" // 数据存储\n | \"extra\"; // 扩展能力\n\nexport enum ToolType {\n SIMPLE = \"SIMPLE\",\n FORK_JOIN = \"FORK_JOIN\",\n JOIN = \"JOIN\",\n DO_WHILE = \"DO_WHILE\",\n SWITCH = \"SWITCH\",\n DYNAMIC = \"DYNAMIC\",\n FORK_JOIN_DYNAMIC = \"FORK_JOIN_DYNAMIC\",\n TERMINATE = \"TERMINATE\",\n HUMAN = \"HUMAN\",\n SUB_WORKFLOW = \"SUB_WORKFLOW\",\n INLINE = \"INLINE\",\n SET_VARIABLE = \"SET_VARIABLE\",\n}\n\nexport interface ToolRuleItem {\n type: string;\n [x: string]: any;\n}\n\nexport interface ToolExtraInfo {\n [x: string]: any;\n}\n\nexport interface ToolCredentialItem {\n name: string;\n required: boolean;\n}\n\nexport interface ToolDef {\n type: ToolType;\n name: string;\n displayName: string | I18nValue;\n description?: string | I18nValue;\n icon?: string;\n input: ToolProperty[];\n output: ToolProperty[];\n categories?: ToolCategory[];\n rules?: ToolRuleItem[];\n extra?: ToolExtraInfo;\n credentials?: ToolCredentialItem[];\n}\n","export enum ValidationIssueType {\n ERROR = 'ERROR',\n WANTING = 'WANTING',\n}\n\nexport enum ValidationReasonType {\n VALUE_REQUIRED = 'VALUE_REQUIRED',\n VALUE_TYPE_NOT_MATCH = 'VALUE_TYPE_NOT_MATCH',\n DO_WHILE_EMPTY_LOOP_OVER = 'DO_WHILE_EMPTY_LOOP_OVER',\n}\n\nexport interface ValidationIssueReason {\n type: ValidationReasonType;\n name: string;\n}\n\nexport interface WorkflowValidationIssue {\n taskReferenceName: string;\n issueType: ValidationIssueType;\n detailReason: ValidationIssueReason;\n humanMessage: {\n en: string;\n zh: string;\n };\n}\n\nexport interface WorkflowTriggerConfig {\n triggerType: WorkflowTriggerType;\n cron?: string;\n}\n\nexport enum WorkflowTriggerType {\n MANUALLY = 'MANUAL',\n SCHEDULER = 'SCHEDULER',\n WEBHOOK = 'WEBHOOK',\n}\n \n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n EntityRefSchema,\n IsoDateTimeSchema,\n JsonValueSchema,\n Sha256Schema,\n} from './common';\n\nexport const StorageLocatorSchema = z\n .object({\n provider: ContractIdentifierSchema,\n bucket: ContractIdentifierSchema.optional(),\n key: ContractIdentifierSchema,\n region: ContractIdentifierSchema.optional(),\n url: z.string().url().optional(),\n expiresAt: IsoDateTimeSchema.optional(),\n })\n .strict();\n\nexport const ArtifactAccessSchema = z\n .object({\n tenantId: ContractIdentifierSchema.optional(),\n teamId: ContractIdentifierSchema.optional(),\n ownerRef: EntityRefSchema.optional(),\n visibility: z.enum(['private', 'team', 'tenant', 'public']),\n })\n .strict();\n\nexport const ArtifactManifestSchema = z\n .object({\n contract: z.literal('ArtifactManifest'),\n artifactId: ContractIdentifierSchema,\n kind: ContractIdentifierSchema,\n mimeType: z.string().trim().min(1),\n byteSize: z.number().int().nonnegative().optional(),\n sha256: Sha256Schema,\n storage: StorageLocatorSchema,\n sourceRef: EntityRefSchema.optional(),\n runRef: EntityRefSchema,\n outputRef: EntityRefSchema,\n producer: z\n .object({\n service: ContractIdentifierSchema,\n version: ContractIdentifierSchema,\n capabilityRef: EntityRefSchema.optional(),\n })\n .strict(),\n access: ArtifactAccessSchema,\n metadata: z.record(z.string(), JsonValueSchema).default({}),\n createdAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const OutputRecordSchema = z\n .object({\n contract: z.literal('OutputRecord'),\n outputId: ContractIdentifierSchema,\n runRef: EntityRefSchema,\n outputPort: ContractIdentifierSchema,\n value: JsonValueSchema.optional(),\n artifactRefs: z.array(EntityRefSchema).default([]),\n schemaRef: ContractIdentifierSchema.optional(),\n createdAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport type StorageLocator = z.infer<typeof StorageLocatorSchema>;\nexport type ArtifactAccess = z.infer<typeof ArtifactAccessSchema>;\nexport type ArtifactManifest = z.infer<typeof ArtifactManifestSchema>;\nexport type OutputRecord = z.infer<typeof OutputRecordSchema>;\n","import { z } from 'zod';\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | JsonValue[] | { [key: string]: JsonValue };\n\nexport const JsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([\n z.string(),\n z.number().finite(),\n z.boolean(),\n z.null(),\n z.array(JsonValueSchema),\n z.record(z.string(), JsonValueSchema),\n ]),\n);\n\nexport const JsonObjectSchema = z.record(z.string(), JsonValueSchema);\nexport const ContractIdentifierSchema = z.string().trim().min(1).max(256);\nexport const ContractVersionSchema = z.number().int().positive();\nexport const IsoDateTimeSchema = z.string().datetime({ offset: true });\nexport const Sha256Schema = z.string().regex(/^[a-f0-9]{64}$/i, 'Expected a SHA-256 hex digest.');\n\nexport const LocaleIdentifierSchema = z\n .string()\n .regex(/^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-\\d{3})?$/, 'Expected a BCP 47 locale identifier.');\n\nexport const LocalizedTextSchema = z.union([\n z.string().trim().min(1),\n z\n .record(LocaleIdentifierSchema, z.string().trim().min(1))\n .refine((value) => Object.keys(value).length > 0, 'Localized text must contain at least one locale.'),\n]);\n\nexport const ContractMetadataSchema = z\n .object({\n id: ContractIdentifierSchema,\n version: ContractVersionSchema,\n name: z.string().trim().min(1).optional(),\n description: z.string().optional(),\n labels: z.record(z.string(), z.string()).optional(),\n createdAt: IsoDateTimeSchema.optional(),\n updatedAt: IsoDateTimeSchema.optional(),\n })\n .strict();\n\nexport const EntityRefSchema = z\n .object({\n kind: ContractIdentifierSchema,\n id: ContractIdentifierSchema,\n version: z.union([ContractVersionSchema, z.string().trim().min(1)]).optional(),\n ownerRepo: ContractIdentifierSchema.optional(),\n })\n .strict();\n\nexport type ContractMetadata = z.infer<typeof ContractMetadataSchema>;\nexport type EntityRef = z.infer<typeof EntityRefSchema>;\nexport type LocalizedText = z.infer<typeof LocalizedTextSchema>;\n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n EntityRefSchema,\n} from './common';\nimport { ProductContextSchema } from './render';\n\nexport const ContractPortSchema = z\n .object({\n name: ContractIdentifierSchema,\n schemaRef: ContractIdentifierSchema,\n required: z.boolean().default(false),\n multiple: z.boolean().default(false),\n description: z.string().optional(),\n })\n .strict();\n\nexport const CapabilityProviderBindingSchema = z\n .object({\n providerRef: EntityRefSchema,\n productContexts: z.array(ProductContextSchema).default([]),\n priority: z.number().int().default(0),\n })\n .strict();\n\nexport const CapabilityManifestSchema = z\n .object({\n contract: z.literal('CapabilityManifest'),\n id: ContractIdentifierSchema,\n capabilityVersion: ContractIdentifierSchema,\n ownerRepo: ContractIdentifierSchema,\n kind: z.enum(['primitive', 'composite', 'view', 'professional-provider', 'tool', 'workflow']),\n displayName: z.string().trim().min(1),\n description: z.string().optional(),\n ports: z\n .object({\n inputs: z.array(ContractPortSchema).default([]),\n outputs: z.array(ContractPortSchema).default([]),\n })\n .strict(),\n runtime: z\n .object({\n providerBindings: z.array(CapabilityProviderBindingSchema).min(1),\n loading: z.enum(['eager', 'lazy', 'viewport', 'on-activation']),\n fallbackCapabilityRef: EntityRefSchema.optional(),\n stateOwner: z.enum(['host', 'provider', 'external']),\n stateSchemaRef: ContractIdentifierSchema.optional(),\n sideEffects: z\n .array(z.enum(['network', 'storage', 'navigation', 'worker', 'websocket']))\n .default([]),\n })\n .strict(),\n placement: z\n .object({\n surfaces: z.array(ContractIdentifierSchema).min(1),\n slots: z.array(ContractIdentifierSchema).default([]),\n variants: z.array(ContractIdentifierSchema).default([]),\n tokenRefs: z.array(ContractIdentifierSchema).default([]),\n })\n .strict(),\n accessibility: z\n .object({\n keyboardModel: ContractIdentifierSchema,\n focusModel: ContractIdentifierSchema,\n labelContract: ContractIdentifierSchema,\n })\n .strict(),\n observability: z\n .object({\n eventNamespace: ContractIdentifierSchema,\n metrics: z.array(ContractIdentifierSchema).default([]),\n evidenceRefs: z.array(ContractIdentifierSchema).default([]),\n performanceBudgetMs: z.number().positive().optional(),\n })\n .strict(),\n })\n .strict()\n .superRefine((manifest, context) => {\n const providerIds = new Set<string>();\n manifest.runtime.providerBindings.forEach((binding, index) => {\n const providerIdentity = `${binding.providerRef.kind}:${binding.providerRef.id}@${String(binding.providerRef.version)}:${binding.providerRef.ownerRepo ?? ''}`;\n if (providerIds.has(providerIdentity)) {\n context.addIssue({ code: 'custom', path: ['runtime', 'providerBindings', index], message: `Duplicate capability provider binding: ${providerIdentity}` });\n }\n providerIds.add(providerIdentity);\n if (!['view', 'professional-provider'].includes(manifest.kind)) return;\n if (binding.providerRef.kind !== 'view-provider') {\n context.addIssue({ code: 'custom', path: ['runtime', 'providerBindings', index, 'providerRef', 'kind'], message: 'View capabilities must resolve to view providers.' });\n }\n if (binding.providerRef.version === undefined) {\n context.addIssue({ code: 'custom', path: ['runtime', 'providerBindings', index, 'providerRef', 'version'], message: 'View capability providers must pin a provider version.' });\n }\n if (binding.providerRef.ownerRepo === undefined) {\n context.addIssue({ code: 'custom', path: ['runtime', 'providerBindings', index, 'providerRef', 'ownerRepo'], message: 'View capability providers must declare their owner repository.' });\n }\n });\n });\n\nexport const CapabilitySourceTypeSchema = z.enum([\n 'tool-manifest',\n 'plugin-manifest',\n 'openapi',\n 'workflow',\n 'comfyui',\n]);\n\nexport const CapabilityRegistrySourceSchema = z\n .object({\n sourceType: CapabilitySourceTypeSchema,\n sourceId: ContractIdentifierSchema,\n ownerRepo: ContractIdentifierSchema,\n })\n .strict();\n\nexport const CapabilityRegistryEntrySchema = z\n .object({\n manifest: CapabilityManifestSchema,\n sources: z.array(CapabilityRegistrySourceSchema).min(1),\n })\n .strict();\n\nexport const CapabilityRegistryDocumentSchema = z\n .object({\n contract: z.literal('CapabilityRegistry'),\n entries: z.array(CapabilityRegistryEntrySchema),\n })\n .strict()\n .superRefine((registry, context) => {\n const ids = new Set<string>();\n registry.entries.forEach((entry, index) => {\n if (ids.has(entry.manifest.id)) {\n context.addIssue({\n code: 'custom',\n path: ['entries', index, 'manifest', 'id'],\n message: `Duplicate capability id: ${entry.manifest.id}`,\n });\n }\n ids.add(entry.manifest.id);\n });\n });\n\nexport type ContractPort = z.infer<typeof ContractPortSchema>;\nexport type CapabilityProviderBinding = z.infer<typeof CapabilityProviderBindingSchema>;\nexport type CapabilityManifest = z.infer<typeof CapabilityManifestSchema>;\nexport type CapabilitySourceType = z.infer<typeof CapabilitySourceTypeSchema>;\nexport type CapabilityRegistrySource = z.infer<typeof CapabilityRegistrySourceSchema>;\nexport type CapabilityRegistryEntry = z.infer<typeof CapabilityRegistryEntrySchema>;\nexport type CapabilityRegistryDocument = z.infer<typeof CapabilityRegistryDocumentSchema>;\n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n ContractVersionSchema,\n EntityRefSchema,\n IsoDateTimeSchema,\n JsonObjectSchema,\n} from './common';\n\nexport const ProductContextSchema = z.enum(['studio', 'kernel', 'compute']);\n\nexport const RenderNodeStateSchema = z.enum([\n 'idle',\n 'loading',\n 'empty',\n 'error',\n 'success',\n 'disabled',\n 'selected',\n]);\n\nexport const RenderNodeKindSchema = z.enum([\n 'shell',\n 'page',\n 'navigation',\n 'view',\n 'record',\n 'control',\n 'detail',\n 'action',\n 'overlay',\n 'professional-provider',\n]);\n\nexport const RenderSurfaceSchema = z\n .object({\n frameOwner: z.enum(['host', 'provider', 'none']),\n tone: ContractIdentifierSchema.optional(),\n density: z.enum(['compact', 'default', 'comfortable']),\n })\n .strict();\n\nexport const RenderScrollSchema = z\n .object({\n owner: z.enum(['page', 'surface', 'provider']),\n axis: z.enum(['x', 'y', 'both', 'none']),\n restoreKey: ContractIdentifierSchema.optional(),\n virtualizationBoundary: z.boolean(),\n })\n .strict()\n .superRefine((scroll, context) => {\n if (scroll.owner === 'provider' && scroll.restoreKey) {\n context.addIssue({\n code: 'custom',\n path: ['restoreKey'],\n message: 'Provider-owned scroll state cannot declare a host restoreKey.',\n });\n }\n if (scroll.virtualizationBoundary && scroll.owner !== 'provider') {\n context.addIssue({\n code: 'custom',\n path: ['owner'],\n message: 'A virtualization boundary must keep scroll ownership in the provider.',\n });\n }\n });\n\nexport const RenderActivationSchema = z\n .object({\n activationId: ContractIdentifierSchema,\n mode: z.enum(['navigate', 'select', 'drawer', 'modal', 'fullscreen', 'inline']),\n targetPath: z.string().trim().regex(/^\\/(?!\\/)/, 'Expected an application-relative path.').optional(),\n history: z.enum(['push', 'replace']).optional(),\n })\n .strict()\n .superRefine((activation, context) => {\n if (activation.mode === 'navigate' && !activation.targetPath) {\n context.addIssue({ code: 'custom', path: ['targetPath'], message: 'Navigate activation requires an application-relative targetPath.' });\n }\n if (activation.mode !== 'navigate' && activation.targetPath) {\n context.addIssue({ code: 'custom', path: ['targetPath'], message: 'Only navigate activation may declare targetPath.' });\n }\n });\n\nexport const RenderLifecycleSchema = z\n .object({\n mountPolicy: z.enum(['always', 'when-visible', 'when-active']),\n queryPolicy: z.enum(['always', 'when-visible', 'when-active', 'manual']),\n retainOnDeactivate: z.boolean(),\n deepLink: z.boolean(),\n focusReturn: z.boolean(),\n })\n .strict();\n\nexport const RenderLayoutSchema = z\n .object({\n mode: z.enum(['contents', 'block', 'flex', 'grid', 'absolute']),\n direction: z.enum(['row', 'column']).optional(),\n columns: z.number().int().positive().optional(),\n align: z.enum(['start', 'center', 'end', 'stretch']).optional(),\n justify: z.enum(['start', 'center', 'end', 'between', 'around']).optional(),\n gapTokenRef: EntityRefSchema.optional(),\n })\n .strict()\n .superRefine((layout, context) => {\n if (layout.direction && layout.mode !== 'flex') {\n context.addIssue({ code: 'custom', path: ['direction'], message: 'direction is only valid for flex layout.' });\n }\n if (layout.columns && layout.mode !== 'grid') {\n context.addIssue({ code: 'custom', path: ['columns'], message: 'columns is only valid for grid layout.' });\n }\n if (layout.gapTokenRef && layout.gapTokenRef.kind !== 'design-token') {\n context.addIssue({ code: 'custom', path: ['gapTokenRef', 'kind'], message: 'gapTokenRef must reference design-token.' });\n }\n });\n\nexport const RenderResponsiveRuleSchema = z\n .object({\n minWidthPx: z.number().nonnegative().optional(),\n maxWidthPx: z.number().positive().optional(),\n layout: RenderLayoutSchema,\n })\n .strict()\n .superRefine((rule, context) => {\n if (rule.minWidthPx === undefined && rule.maxWidthPx === undefined) {\n context.addIssue({ code: 'custom', path: [], message: 'Responsive rule must declare minWidthPx or maxWidthPx.' });\n }\n if (rule.minWidthPx !== undefined && rule.maxWidthPx !== undefined && rule.minWidthPx > rule.maxWidthPx) {\n context.addIssue({ code: 'custom', path: ['maxWidthPx'], message: 'maxWidthPx must be greater than or equal to minWidthPx.' });\n }\n });\n\nconst requireRef = (\n reference: z.infer<typeof EntityRefSchema> | undefined,\n expectedKind: string,\n path: (string | number)[],\n context: z.RefinementCtx,\n) => {\n if (!reference) return;\n if (reference.kind !== expectedKind) {\n context.addIssue({\n code: 'custom',\n path: [...path, 'kind'],\n message: `${path.join('.')} must reference ${expectedKind}.`,\n });\n }\n};\n\nconst requirePinnedOwnedRef = (\n reference: z.infer<typeof EntityRefSchema> | undefined,\n expectedKind: string,\n path: (string | number)[],\n context: z.RefinementCtx,\n) => {\n requireRef(reference, expectedKind, path, context);\n if (!reference) return;\n if (reference.version === undefined) {\n context.addIssue({\n code: 'custom',\n path: [...path, 'version'],\n message: `${path.join('.')} must pin a version.`,\n });\n }\n if (reference.ownerRepo === undefined) {\n context.addIssue({\n code: 'custom',\n path: [...path, 'ownerRepo'],\n message: `${path.join('.')} must declare its owner repository.`,\n });\n }\n};\n\nexport const RenderNodeSchema = z\n .object({\n contract: z.literal('RenderNode'),\n nodeId: ContractIdentifierSchema,\n kind: RenderNodeKindSchema,\n version: ContractVersionSchema,\n ownerRepo: ContractIdentifierSchema,\n parentNodeId: ContractIdentifierSchema.optional(),\n children: z.array(ContractIdentifierSchema),\n slot: ContractIdentifierSchema.optional(),\n pageRef: EntityRefSchema,\n semanticRef: EntityRefSchema.optional(),\n dataContextRef: EntityRefSchema.optional(),\n capabilityRef: EntityRefSchema,\n providerRef: EntityRefSchema.optional(),\n stateRef: EntityRefSchema.optional(),\n surface: RenderSurfaceSchema,\n scroll: RenderScrollSchema,\n activation: RenderActivationSchema,\n lifecycle: RenderLifecycleSchema,\n layout: RenderLayoutSchema,\n responsive: z.array(RenderResponsiveRuleSchema),\n accessRef: EntityRefSchema.optional(),\n evidenceRef: EntityRefSchema.optional(),\n state: RenderNodeStateSchema,\n renderModel: JsonObjectSchema,\n })\n .strict()\n .superRefine((node, context) => {\n requireRef(node.pageRef, 'page', ['pageRef'], context);\n requirePinnedOwnedRef(node.capabilityRef, 'capability', ['capabilityRef'], context);\n requirePinnedOwnedRef(node.providerRef, 'view-provider', ['providerRef'], context);\n requireRef(node.accessRef, 'access-policy', ['accessRef'], context);\n requireRef(node.evidenceRef, 'evidence', ['evidenceRef'], context);\n if (node.parentNodeId === node.nodeId) {\n context.addIssue({\n code: 'custom',\n path: ['parentNodeId'],\n message: 'RenderNode cannot be its own parent.',\n });\n }\n if (new Set(node.children).size !== node.children.length) {\n context.addIssue({ code: 'custom', path: ['children'], message: 'RenderNode children must be unique.' });\n }\n if (node.children.includes(node.nodeId)) {\n context.addIssue({ code: 'custom', path: ['children'], message: 'RenderNode cannot be its own child.' });\n }\n if (node.surface.frameOwner === 'provider' && !node.providerRef) {\n context.addIssue({\n code: 'custom',\n path: ['providerRef'],\n message: 'Provider-owned surfaces require providerRef.',\n });\n }\n });\n\nexport const RenderTreeSchema = z\n .object({\n contract: z.literal('RenderTree'),\n treeId: ContractIdentifierSchema,\n product: ProductContextSchema,\n rootNodeId: ContractIdentifierSchema,\n nodes: z.array(RenderNodeSchema).min(1),\n })\n .strict();\n\nexport const OverlayZIndexLaneSchema = z.enum([\n 'popover',\n 'drawer',\n 'modal',\n 'fullscreen',\n 'system',\n]);\n\nexport const OverlayNodeSchema = z\n .object({\n contract: z.literal('OverlayNode'),\n overlayId: ContractIdentifierSchema,\n renderNode: RenderNodeSchema,\n presentation: z.enum(['drawer', 'modal', 'fullscreen']),\n zIndexLane: OverlayZIndexLaneSchema,\n url: z\n .object({\n parameter: ContractIdentifierSchema,\n value: ContractIdentifierSchema,\n openMode: z.enum(['push', 'replace']),\n closeMode: z.enum(['back', 'replace']),\n })\n .strict(),\n focus: z\n .object({\n initial: z.enum(['first-interactive', 'container', 'explicit']),\n trap: z.boolean(),\n })\n .strict(),\n close: z\n .object({\n escape: z.boolean(),\n backdrop: z.boolean(),\n })\n .strict(),\n })\n .strict()\n .superRefine((value, context) => {\n if (value.renderNode.kind !== 'overlay') {\n context.addIssue({\n code: 'custom',\n path: ['renderNode', 'kind'],\n message: 'OverlayNode renderNode.kind must be overlay.',\n });\n }\n if (value.renderNode.activation.mode !== value.presentation) {\n context.addIssue({\n code: 'custom',\n path: ['renderNode', 'activation', 'mode'],\n message: 'OverlayNode presentation must match the RenderNode activation mode.',\n });\n }\n if (value.presentation === 'drawer' && value.zIndexLane !== 'drawer') {\n context.addIssue({\n code: 'custom',\n path: ['zIndexLane'],\n message: 'Drawer overlays must use the drawer z-index lane.',\n });\n }\n if (value.presentation === 'modal' && value.zIndexLane !== 'modal') {\n context.addIssue({\n code: 'custom',\n path: ['zIndexLane'],\n message: 'Modal overlays must use the modal z-index lane.',\n });\n }\n if (value.presentation === 'fullscreen' && value.zIndexLane !== 'fullscreen' && value.zIndexLane !== 'system') {\n context.addIssue({\n code: 'custom',\n path: ['zIndexLane'],\n message: 'Fullscreen overlays must use the fullscreen or system z-index lane.',\n });\n }\n });\n\nconst ProductPathSchema = z\n .string()\n .trim()\n .regex(/^\\/(?!\\/)/, 'Expected an application-relative path.');\n\nexport const ApplicationHandoffEndpointSchema = z\n .object({\n product: ProductContextSchema,\n pageId: ContractIdentifierSchema,\n viewId: ContractIdentifierSchema.optional(),\n objectRef: EntityRefSchema.optional(),\n runtimeRef: EntityRefSchema.optional(),\n activationId: ContractIdentifierSchema.optional(),\n path: ProductPathSchema,\n })\n .strict();\n\nexport const ApplicationHandoffSchema = z\n .object({\n contract: z.literal('ApplicationHandoff'),\n handoffId: ContractIdentifierSchema,\n source: ApplicationHandoffEndpointSchema,\n target: ApplicationHandoffEndpointSchema,\n returnTarget: ApplicationHandoffEndpointSchema.optional(),\n traceId: ContractIdentifierSchema.optional(),\n createdAt: IsoDateTimeSchema,\n })\n .strict()\n .superRefine((value, context) => {\n if (value.source.product === value.target.product && value.source.pageId === value.target.pageId) {\n context.addIssue({\n code: 'custom',\n path: ['target'],\n message: 'ApplicationHandoff target must identify a different product page.',\n });\n }\n });\n\nexport const ViewProviderDescriptorSchema = z\n .object({\n contract: z.literal('ViewProviderDescriptor'),\n providerId: ContractIdentifierSchema,\n providerVersion: ContractIdentifierSchema,\n ownerRepo: ContractIdentifierSchema,\n capabilityRef: EntityRefSchema,\n rendererKey: ContractIdentifierSchema,\n renderModelSchemaRef: ContractIdentifierSchema,\n intentSchemaRef: ContractIdentifierSchema.optional(),\n loading: z.enum(['eager', 'lazy', 'viewport', 'on-activation']),\n stateOwner: z.enum(['host', 'provider', 'external']),\n supportedPageTypes: z.array(ContractIdentifierSchema).min(1),\n supportedSurfaces: z\n .array(z.enum(['page', 'workspace', 'view', 'record', 'action', 'overlay', 'agent']))\n .min(1),\n frameOwner: z.enum(['host', 'provider', 'none']),\n sideEffects: z\n .array(z.enum(['network', 'storage', 'navigation', 'worker', 'websocket'])),\n sideEffectAdapterRef: EntityRefSchema.optional(),\n lifecycle: z\n .object({\n preserveMount: z.boolean(),\n preserveScroll: z.boolean(),\n focusModel: ContractIdentifierSchema,\n })\n .strict(),\n performance: z\n .object({\n lazy: z.boolean(),\n virtualized: z.boolean(),\n budgetMs: z.number().positive().optional(),\n })\n .strict(),\n accessRef: EntityRefSchema.optional(),\n evidenceRef: EntityRefSchema.optional(),\n })\n .strict()\n .superRefine((provider, context) => {\n requirePinnedOwnedRef(provider.capabilityRef, 'capability', ['capabilityRef'], context);\n requirePinnedOwnedRef(provider.sideEffectAdapterRef, 'side-effect-adapter', ['sideEffectAdapterRef'], context);\n requireRef(provider.accessRef, 'access-policy', ['accessRef'], context);\n requireRef(provider.evidenceRef, 'evidence', ['evidenceRef'], context);\n if (provider.capabilityRef.version === undefined) {\n context.addIssue({\n code: 'custom',\n path: ['capabilityRef', 'version'],\n message: 'Provider capabilityRef must pin an active capability version.',\n });\n }\n if (provider.frameOwner === 'provider' && provider.stateOwner === 'host' && !provider.lifecycle.preserveMount) {\n context.addIssue({\n code: 'custom',\n path: ['lifecycle', 'preserveMount'],\n message: 'Host-owned state on a provider-owned frame must preserve the provider mount.',\n });\n }\n if (provider.sideEffects.length > 0 && !provider.sideEffectAdapterRef) {\n context.addIssue({ code: 'custom', path: ['sideEffectAdapterRef'], message: 'Providers with side effects require a pinned side-effect adapter.' });\n }\n if (provider.sideEffects.length === 0 && provider.sideEffectAdapterRef) {\n context.addIssue({ code: 'custom', path: ['sideEffectAdapterRef'], message: 'Pure providers cannot declare a side-effect adapter.' });\n }\n });\n\nexport type ProductContext = z.infer<typeof ProductContextSchema>;\nexport type RenderNodeState = z.infer<typeof RenderNodeStateSchema>;\nexport type RenderNodeKind = z.infer<typeof RenderNodeKindSchema>;\nexport type RenderSurface = z.infer<typeof RenderSurfaceSchema>;\nexport type RenderScroll = z.infer<typeof RenderScrollSchema>;\nexport type RenderActivation = z.infer<typeof RenderActivationSchema>;\nexport type RenderLifecycle = z.infer<typeof RenderLifecycleSchema>;\nexport type RenderLayout = z.infer<typeof RenderLayoutSchema>;\nexport type RenderResponsiveRule = z.infer<typeof RenderResponsiveRuleSchema>;\nexport type RenderNode = z.infer<typeof RenderNodeSchema>;\nexport type RenderTree = z.infer<typeof RenderTreeSchema>;\nexport type OverlayZIndexLane = z.infer<typeof OverlayZIndexLaneSchema>;\nexport type OverlayNode = z.infer<typeof OverlayNodeSchema>;\nexport type ApplicationHandoffEndpoint = z.infer<typeof ApplicationHandoffEndpointSchema>;\nexport type ApplicationHandoff = z.infer<typeof ApplicationHandoffSchema>;\nexport type ViewProviderDescriptor = z.infer<typeof ViewProviderDescriptorSchema>;\n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n EntityRefSchema,\n IsoDateTimeSchema,\n JsonValueSchema,\n} from './common';\n\nexport const ActorRefSchema = z\n .object({\n kind: z.enum(['human', 'agent', 'service', 'tenant', 'public']),\n id: ContractIdentifierSchema.optional(),\n userId: ContractIdentifierSchema.optional(),\n agentId: ContractIdentifierSchema.optional(),\n serviceId: ContractIdentifierSchema.optional(),\n })\n .strict();\n\nexport const AuthorityScopeSchema = z\n .object({\n resource: ContractIdentifierSchema,\n actions: z.array(ContractIdentifierSchema).min(1),\n constraints: z.record(z.string(), JsonValueSchema).optional(),\n })\n .strict();\n\nexport const RequestScopeSchema = z\n .object({\n contract: z.literal('RequestScope'),\n requestId: ContractIdentifierSchema,\n traceId: ContractIdentifierSchema.optional(),\n appId: ContractIdentifierSchema,\n tenantId: ContractIdentifierSchema.optional(),\n teamId: ContractIdentifierSchema.optional(),\n actor: ActorRefSchema,\n session: z\n .object({\n authType: ContractIdentifierSchema,\n authenticated: z.boolean(),\n membershipVerified: z.boolean(),\n })\n .strict(),\n permissionCodes: z.array(ContractIdentifierSchema).default([]),\n authority: z.array(AuthorityScopeSchema).default([]),\n issuedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const ExecutionLinkSchema = z\n .object({\n contract: z.literal('ExecutionLink'),\n requestId: ContractIdentifierSchema,\n traceId: ContractIdentifierSchema.optional(),\n correlationId: ContractIdentifierSchema.optional(),\n causationId: ContractIdentifierSchema.optional(),\n workflowRef: EntityRefSchema.optional(),\n runRef: EntityRefSchema,\n taskRef: EntityRefSchema.optional(),\n parentRunRef: EntityRefSchema.optional(),\n })\n .strict();\n\nexport const CompletionHeaderSchema = z\n .object({\n contract: z.literal('CompletionHeader'),\n eventId: ContractIdentifierSchema,\n runtimeEventId: ContractIdentifierSchema,\n idempotencyKey: ContractIdentifierSchema,\n sequence: z.number().int().nonnegative(),\n execution: ExecutionLinkSchema,\n producer: z\n .object({\n service: ContractIdentifierSchema,\n runtime: ContractIdentifierSchema,\n version: ContractIdentifierSchema,\n })\n .strict(),\n status: z.enum(['SUCCEEDED', 'FAILED', 'CANCELLED', 'TIMED_OUT']),\n occurredAt: IsoDateTimeSchema,\n payloadSchemaRef: ContractIdentifierSchema.optional(),\n })\n .strict();\n\nexport const CompletionEventSchema = z\n .object({\n header: CompletionHeaderSchema,\n payload: JsonValueSchema.optional(),\n })\n .strict();\n\nexport const AgentRuntimeEventSchema = z\n .object({\n contract: z.literal('AgentRuntimeEvent'),\n runtimeEventId: ContractIdentifierSchema,\n streamId: ContractIdentifierSchema,\n sequence: z.number().int().nonnegative(),\n requestId: ContractIdentifierSchema,\n teamId: ContractIdentifierSchema,\n threadId: ContractIdentifierSchema.optional(),\n eventType: z.enum(['messages:append', 'messages:update', 'thread:update', 'tool-call:upsert']),\n payload: JsonValueSchema,\n occurredAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport type ActorRef = z.infer<typeof ActorRefSchema>;\nexport type AuthorityScope = z.infer<typeof AuthorityScopeSchema>;\nexport type RequestScope = z.infer<typeof RequestScopeSchema>;\nexport type ExecutionLink = z.infer<typeof ExecutionLinkSchema>;\nexport type CompletionHeader = z.infer<typeof CompletionHeaderSchema>;\nexport type CompletionEvent = z.infer<typeof CompletionEventSchema>;\nexport type AgentRuntimeEvent = z.infer<typeof AgentRuntimeEventSchema>;\n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n ContractVersionSchema,\n EntityRefSchema,\n IsoDateTimeSchema,\n JsonObjectSchema,\n} from './common';\n\nexport const DataContinuityEnvelopeSchema = z\n .object({\n contract: z.literal('DataContinuityEnvelope'),\n tenantId: ContractIdentifierSchema,\n teamId: ContractIdentifierSchema,\n sourceRef: EntityRefSchema.optional(),\n bodyRef: EntityRefSchema.optional(),\n runRef: EntityRefSchema.optional(),\n outputRef: EntityRefSchema.optional(),\n artifactRef: EntityRefSchema.optional(),\n requestId: ContractIdentifierSchema,\n actorRef: EntityRefSchema,\n schemaVersion: ContractVersionSchema,\n })\n .strict()\n .refine(\n value => Boolean(value.sourceRef || value.bodyRef || value.runRef || value.outputRef || value.artifactRef),\n 'At least one continuity ref is required.',\n );\n\nexport const BodyRelationRecordSchema = z\n .object({\n contract: z.literal('BodyRelationRecord'),\n relationId: ContractIdentifierSchema,\n relationKind: ContractIdentifierSchema,\n subjectRef: EntityRefSchema,\n objectRef: EntityRefSchema,\n ownerRepo: ContractIdentifierSchema,\n authorityScope: z.enum(['tenant', 'team', 'global']),\n properties: JsonObjectSchema.default({}),\n createdAt: IsoDateTimeSchema,\n updatedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const ApplicationRunSchema = z\n .object({\n contract: z.literal('ApplicationRun'),\n runId: ContractIdentifierSchema,\n definitionRef: EntityRefSchema,\n runtimeLedgerRef: EntityRefSchema,\n requestId: ContractIdentifierSchema,\n actorRef: EntityRefSchema,\n status: z.enum(['PENDING', 'RUNNING', 'COMPLETED', 'FAILED', 'CANCELLED', 'EXPIRED']),\n inputRefs: z.array(EntityRefSchema).default([]),\n outputRefs: z.array(EntityRefSchema).default([]),\n startedAt: IsoDateTimeSchema.optional(),\n completedAt: IsoDateTimeSchema.optional(),\n expiresAt: IsoDateTimeSchema.optional(),\n metadata: JsonObjectSchema.default({}),\n })\n .strict();\n\nexport const ExpiringAccessGrantSchema = z\n .object({\n contract: z.literal('ExpiringAccessGrant'),\n grantId: ContractIdentifierSchema,\n subjectRef: EntityRefSchema,\n resourceRef: EntityRefSchema,\n permissions: z.array(ContractIdentifierSchema).min(1),\n issuedAt: IsoDateTimeSchema,\n expiresAt: IsoDateTimeSchema,\n revokedAt: IsoDateTimeSchema.optional(),\n })\n .strict()\n .refine(value => Date.parse(value.expiresAt) > Date.parse(value.issuedAt), 'expiresAt must be after issuedAt');\n\nexport type DataContinuityEnvelope = z.infer<typeof DataContinuityEnvelopeSchema>;\nexport type BodyRelationRecord = z.infer<typeof BodyRelationRecordSchema>;\nexport type ApplicationRun = z.infer<typeof ApplicationRunSchema>;\nexport type ExpiringAccessGrant = z.infer<typeof ExpiringAccessGrantSchema>;\n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n EntityRefSchema,\n IsoDateTimeSchema,\n JsonValueSchema,\n Sha256Schema,\n} from './common';\n\nexport const SourceRecordRefSchema = z\n .object({\n sourceId: ContractIdentifierSchema,\n recordId: ContractIdentifierSchema,\n recordVersion: z.union([z.number().int().nonnegative(), ContractIdentifierSchema]),\n hash: Sha256Schema,\n })\n .strict();\n\nexport const OntologyDefinitionSchema = z\n .object({\n contract: z.literal('OntologyDefinition'),\n ontologyId: ContractIdentifierSchema,\n dataSpaceId: ContractIdentifierSchema,\n ownerRepo: ContractIdentifierSchema,\n bodySchemaRef: ContractIdentifierSchema,\n authority: z\n .object({\n service: ContractIdentifierSchema,\n storage: ContractIdentifierSchema,\n scope: z.enum(['tenant', 'team', 'user', 'global']),\n })\n .strict(),\n relationKinds: z.array(ContractIdentifierSchema).default([]),\n metricKinds: z.array(ContractIdentifierSchema).default([]),\n })\n .strict();\n\nexport const ProjectionSpecSchema = z\n .object({\n contract: z.literal('ProjectionSpec'),\n projectionId: ContractIdentifierSchema,\n ontologyIds: z.array(ContractIdentifierSchema).min(1),\n outputSchemaRef: ContractIdentifierSchema,\n operator: z\n .object({\n kind: z.enum(['query', 'aggregate', 'relationship', 'search', 'custom']),\n configuration: z.record(z.string(), JsonValueSchema).default({}),\n })\n .strict(),\n materialization: z.enum(['on-demand', 'event-driven', 'scheduled']),\n invalidationEvents: z.array(ContractIdentifierSchema).default([]),\n rebuildable: z.literal(true),\n lineagePolicy: z\n .object({\n sourceRecords: z.boolean(),\n bodyVersions: z.boolean(),\n runRefs: z.boolean(),\n actorRefs: z.boolean(),\n })\n .strict(),\n })\n .strict();\n\nexport const LineageRecordSchema = z\n .object({\n contract: z.literal('LineageRecord'),\n lineageId: ContractIdentifierSchema,\n subjectRef: EntityRefSchema,\n sourceRecords: z.array(SourceRecordRefSchema).default([]),\n bodyRefs: z.array(EntityRefSchema).default([]),\n runRefs: z.array(EntityRefSchema).default([]),\n outputRefs: z.array(EntityRefSchema).default([]),\n artifactRefs: z.array(EntityRefSchema).default([]),\n actorRefs: z.array(EntityRefSchema).default([]),\n evidenceRefs: z.array(EntityRefSchema).default([]),\n recordedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const DomainEventSchema = z\n .object({\n contract: z.literal('DomainEvent'),\n eventId: ContractIdentifierSchema,\n eventType: ContractIdentifierSchema,\n aggregateRef: EntityRefSchema,\n aggregateVersion: z.number().int().nonnegative(),\n requestId: ContractIdentifierSchema,\n actorRef: EntityRefSchema,\n payload: JsonValueSchema,\n occurredAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport type SourceRecordRef = z.infer<typeof SourceRecordRefSchema>;\nexport type OntologyDefinition = z.infer<typeof OntologyDefinitionSchema>;\nexport type ProjectionSpec = z.infer<typeof ProjectionSpecSchema>;\nexport type LineageRecord = z.infer<typeof LineageRecordSchema>;\nexport type DomainEvent = z.infer<typeof DomainEventSchema>;\n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n EntityRefSchema,\n JsonObjectSchema,\n LocalizedTextSchema,\n} from './common';\n\nexport const PageTypeSchema = z.enum([\n 'page',\n 'workspace',\n 'view',\n 'record',\n 'action',\n 'overlay',\n 'agent',\n 'process',\n 'log',\n 'chat',\n 'preview',\n 'api',\n 'enhanced',\n 'agent-chat',\n 'agent-config',\n 'agent-log',\n 'design-board',\n 'global-design-board',\n 'iframe',\n]);\n\nexport const PageVisibilitySchema = z\n .object({\n authenticated: z.boolean().default(true),\n permissionAllOf: z.array(ContractIdentifierSchema).default([]),\n permissionAnyOf: z.array(ContractIdentifierSchema).default([]),\n featureFlags: z.array(ContractIdentifierSchema).default([]),\n productContexts: z.array(z.enum(['studio', 'kernel', 'compute'])).min(1),\n })\n .strict();\n\nexport const PageRoutePathSchema = z\n .string()\n .trim()\n .regex(/^\\/(?!\\/)/, 'Expected an application-relative route path.');\n\nconst requireCapabilityReference = (\n reference: z.infer<typeof EntityRefSchema>,\n path: (string | number)[],\n context: z.RefinementCtx,\n) => {\n if (reference.kind !== 'capability') {\n context.addIssue({\n code: 'custom',\n path: [...path, 'kind'],\n message: 'Page capability references must use kind capability.',\n });\n }\n if (reference.version === undefined) {\n context.addIssue({\n code: 'custom',\n path: [...path, 'version'],\n message: 'Page capability references must pin an active capability version.',\n });\n }\n if (reference.ownerRepo === undefined) {\n context.addIssue({\n code: 'custom',\n path: [...path, 'ownerRepo'],\n message: 'Page capability references must declare their owner repository.',\n });\n }\n};\n\nexport const PageDefinitionSchema = z\n .object({\n contract: z.literal('PageDefinition'),\n pageId: ContractIdentifierSchema,\n ownerRepo: ContractIdentifierSchema,\n title: LocalizedTextSchema,\n pageType: PageTypeSchema,\n ownership: z.object({\n teamId: ContractIdentifierSchema.optional(),\n creatorRef: EntityRefSchema.optional(),\n studioId: ContractIdentifierSchema.optional(),\n builtIn: z.boolean(),\n }).strict(),\n record: z.object({\n createdTimestamp: z.number().int().nonnegative().optional(),\n updatedTimestamp: z.number().int().nonnegative().optional(),\n deleted: z.boolean().default(false),\n }).strict(),\n surface: z.enum(['page', 'workspace', 'view', 'record', 'action', 'overlay', 'agent']),\n routeId: ContractIdentifierSchema,\n routePath: PageRoutePathSchema,\n rendererKey: ContractIdentifierSchema,\n capabilityRef: EntityRefSchema,\n capabilityRefs: z.array(EntityRefSchema).default([]),\n workflowRef: EntityRefSchema.optional(),\n binding: z\n .object({\n sourceRef: ContractIdentifierSchema.optional(),\n ontologyId: ContractIdentifierSchema.optional(),\n projectionRef: ContractIdentifierSchema.optional(),\n stateRef: ContractIdentifierSchema.optional(),\n })\n .strict(),\n access: z.object({\n actions: z.array(z.enum(['read', 'write', 'execute', 'manage-permissions'])).default([]),\n }).strict(),\n rendererConfig: z.object({\n schemaRef: ContractIdentifierSchema,\n value: JsonObjectSchema,\n }).strict(),\n navigation: z\n .object({\n label: LocalizedTextSchema,\n iconRef: ContractIdentifierSchema.optional(),\n parentPageId: ContractIdentifierSchema.optional(),\n order: z.number().int().optional(),\n hidden: z.boolean().default(false),\n pinned: z.boolean().default(false),\n })\n .strict(),\n visibility: PageVisibilitySchema,\n })\n .strict()\n .superRefine((page, context) => {\n const capabilities = [page.capabilityRef, ...page.capabilityRefs];\n const capabilityIdentities = new Set<string>();\n capabilities.forEach((reference, index) => {\n const path = index === 0 ? ['capabilityRef'] : ['capabilityRefs', index - 1];\n requireCapabilityReference(reference, path, context);\n const identity = `${reference.id}@${String(reference.version)}:${reference.ownerRepo ?? ''}`;\n if (capabilityIdentities.has(identity)) {\n context.addIssue({\n code: 'custom',\n path,\n message: `Duplicate page capability reference: ${identity}`,\n });\n }\n capabilityIdentities.add(identity);\n });\n if (page.workflowRef && page.workflowRef.kind !== 'workflow') context.addIssue({ code: 'custom', path: ['workflowRef', 'kind'], message: 'workflowRef must reference a workflow.' });\n });\n\nexport const PageRuntimeDescriptorSchema = z\n .object({\n contract: z.literal('PageRuntimeDescriptor'),\n page: PageDefinitionSchema,\n nodeId: ContractIdentifierSchema,\n parentNodeId: ContractIdentifierSchema.optional(),\n slot: ContractIdentifierSchema.optional(),\n semanticRef: ContractIdentifierSchema.optional(),\n dataContextRef: ContractIdentifierSchema.optional(),\n providerRef: EntityRefSchema.optional(),\n surface: z\n .object({\n frameOwner: ContractIdentifierSchema,\n tone: ContractIdentifierSchema.optional(),\n density: z.enum(['compact', 'default', 'comfortable']).default('default'),\n })\n .strict(),\n scroll: z\n .object({\n owner: z.enum(['page', 'surface', 'provider']),\n axis: z.enum(['x', 'y', 'both', 'none']),\n restoreKey: ContractIdentifierSchema.optional(),\n virtualized: z.boolean().default(false),\n })\n .strict(),\n activation: z.enum(['navigate', 'select', 'drawer', 'modal', 'fullscreen']),\n lifecycle: z\n .object({\n mountPolicy: z.enum(['always', 'when-visible', 'when-active']),\n queryPolicy: z.enum(['always', 'when-visible', 'when-active', 'manual']),\n deepLink: z.boolean(),\n focusReturn: z.boolean(),\n })\n .strict(),\n })\n .strict();\n\nexport const PageRouteProjectionSchema = z.object({\n pageId: ContractIdentifierSchema,\n routeId: ContractIdentifierSchema,\n path: PageRoutePathSchema,\n}).strict();\n\nexport const PageNavigationProjectionSchema = z.object({\n pageId: ContractIdentifierSchema,\n routeId: ContractIdentifierSchema,\n path: PageRoutePathSchema,\n label: LocalizedTextSchema,\n iconRef: ContractIdentifierSchema.optional(),\n parentPageId: ContractIdentifierSchema.optional(),\n order: z.number().int().optional(),\n pinned: z.boolean(),\n}).strict();\n\nexport const PageGuardProjectionSchema = z.object({\n pageId: ContractIdentifierSchema,\n authenticated: z.boolean(),\n permissionAllOf: z.array(ContractIdentifierSchema),\n permissionAnyOf: z.array(ContractIdentifierSchema),\n featureFlags: z.array(ContractIdentifierSchema),\n actions: z.array(z.enum(['read', 'write', 'execute', 'manage-permissions'])),\n}).strict();\n\nexport const PageRendererProjectionSchema = z\n .object({\n pageId: ContractIdentifierSchema,\n surface: z.enum(['page', 'workspace', 'view', 'record', 'action', 'overlay', 'agent']),\n rendererKey: ContractIdentifierSchema,\n capabilityRef: EntityRefSchema,\n capabilityRefs: z.array(EntityRefSchema),\n providerRef: EntityRefSchema,\n binding: PageDefinitionSchema.shape.binding,\n rendererConfig: PageDefinitionSchema.shape.rendererConfig,\n workflowRef: EntityRefSchema.optional(),\n })\n .strict()\n .superRefine((renderer, context) => {\n requireCapabilityReference(renderer.capabilityRef, ['capabilityRef'], context);\n renderer.capabilityRefs.forEach((reference, index) => {\n requireCapabilityReference(reference, ['capabilityRefs', index], context);\n });\n if (renderer.providerRef.kind !== 'view-provider') {\n context.addIssue({\n code: 'custom',\n path: ['providerRef', 'kind'],\n message: 'Renderer providerRef must use kind view-provider.',\n });\n }\n if (renderer.providerRef.version === undefined) {\n context.addIssue({\n code: 'custom',\n path: ['providerRef', 'version'],\n message: 'Renderer providerRef must pin a provider version.',\n });\n }\n if (renderer.providerRef.ownerRepo === undefined) {\n context.addIssue({\n code: 'custom',\n path: ['providerRef', 'ownerRepo'],\n message: 'Renderer providerRef must declare its owner repository.',\n });\n }\n });\n\nconst duplicateProjectionIdentity = <T>(\n values: readonly T[],\n identity: (value: T) => string,\n): string | undefined => {\n const seen = new Set<string>();\n for (const value of values) {\n const key = identity(value);\n if (seen.has(key)) return key;\n seen.add(key);\n }\n return undefined;\n};\n\nexport const PageRuntimeProjectionSchema = z\n .object({\n contract: z.literal('PageRuntimeProjection'),\n product: z.enum(['studio', 'kernel', 'compute']),\n routes: z.array(PageRouteProjectionSchema),\n navigation: z.array(PageNavigationProjectionSchema),\n guards: z.array(PageGuardProjectionSchema),\n renderers: z.array(PageRendererProjectionSchema),\n })\n .strict()\n .superRefine((projection, context) => {\n const tables = [\n ['routes', projection.routes.map((value) => value.pageId)],\n ['navigation', projection.navigation.map((value) => value.pageId)],\n ['guards', projection.guards.map((value) => value.pageId)],\n ['renderers', projection.renderers.map((value) => value.pageId)],\n ] as const;\n for (const [table, values] of tables) {\n const duplicate = duplicateProjectionIdentity(values, (value) => value);\n if (duplicate) {\n context.addIssue({ code: 'custom', path: [table], message: `Duplicate ${table} pageId: ${duplicate}` });\n }\n }\n\n for (const identity of [\n ['routeId', duplicateProjectionIdentity(projection.routes, (route) => route.routeId)],\n ['path', duplicateProjectionIdentity(projection.routes, (route) => route.path)],\n ] as const) {\n if (identity[1]) {\n context.addIssue({ code: 'custom', path: ['routes'], message: `Duplicate route ${identity[0]}: ${identity[1]}` });\n }\n }\n\n const routesByPageId = new Map(projection.routes.map((route) => [route.pageId, route]));\n const guardPageIds = new Set(projection.guards.map((guard) => guard.pageId));\n const rendererPageIds = new Set(projection.renderers.map((renderer) => renderer.pageId));\n for (const route of projection.routes) {\n if (!guardPageIds.has(route.pageId)) {\n context.addIssue({ code: 'custom', path: ['guards'], message: `Missing guard projection for ${route.pageId}.` });\n }\n if (!rendererPageIds.has(route.pageId)) {\n context.addIssue({ code: 'custom', path: ['renderers'], message: `Missing renderer projection for ${route.pageId}.` });\n }\n }\n for (const guard of projection.guards) {\n if (!routesByPageId.has(guard.pageId)) {\n context.addIssue({ code: 'custom', path: ['guards'], message: `Guard references unknown page ${guard.pageId}.` });\n }\n }\n for (const renderer of projection.renderers) {\n if (!routesByPageId.has(renderer.pageId)) {\n context.addIssue({ code: 'custom', path: ['renderers'], message: `Renderer references unknown page ${renderer.pageId}.` });\n }\n }\n for (const navigation of projection.navigation) {\n const route = routesByPageId.get(navigation.pageId);\n if (!route || route.routeId !== navigation.routeId || route.path !== navigation.path) {\n context.addIssue({\n code: 'custom',\n path: ['navigation'],\n message: `Navigation route projection for ${navigation.pageId} does not match its route table entry.`,\n });\n }\n }\n });\n\nexport type PageVisibility = z.infer<typeof PageVisibilitySchema>;\nexport type PageType = z.infer<typeof PageTypeSchema>;\nexport type PageDefinition = z.infer<typeof PageDefinitionSchema>;\nexport type PageRuntimeDescriptor = z.infer<typeof PageRuntimeDescriptorSchema>;\nexport type PageRouteProjection = z.infer<typeof PageRouteProjectionSchema>;\nexport type PageNavigationProjection = z.infer<typeof PageNavigationProjectionSchema>;\nexport type PageGuardProjection = z.infer<typeof PageGuardProjectionSchema>;\nexport type PageRendererProjection = z.infer<typeof PageRendererProjectionSchema>;\nexport type PageRuntimeProjection = z.infer<typeof PageRuntimeProjectionSchema>;\n","import { z } from 'zod';\nimport { CapabilityManifestSchema } from './capability';\nimport {\n ContractIdentifierSchema,\n EntityRefSchema,\n IsoDateTimeSchema,\n JsonObjectSchema,\n} from './common';\nimport { OntologyDefinitionSchema, ProjectionSpecSchema } from './data';\nimport { PageDefinitionSchema } from './page';\n\nexport const ConceptRelationshipSchema = z\n .object({\n kind: ContractIdentifierSchema,\n targetConceptId: ContractIdentifierSchema,\n cardinality: z.enum(['one', 'optional', 'many']),\n })\n .strict();\n\nexport const ConceptDefinitionSchema = z\n .object({\n contract: z.literal('ConceptDefinition'),\n conceptId: ContractIdentifierSchema,\n ownerRepo: ContractIdentifierSchema,\n displayName: z.string().trim().min(1),\n description: z.string().optional(),\n schemaRef: ContractIdentifierSchema,\n ontologyId: ContractIdentifierSchema.optional(),\n capabilityIds: z.array(ContractIdentifierSchema).default([]),\n commandNames: z.array(ContractIdentifierSchema).default([]),\n relationships: z.array(ConceptRelationshipSchema).default([]),\n })\n .strict();\n\nexport const DomainCommandDefinitionSchema = z\n .object({\n contract: z.literal('DomainCommandDefinition'),\n commandName: ContractIdentifierSchema,\n ownerRepo: ContractIdentifierSchema,\n displayName: z.string().trim().min(1),\n description: z.string().optional(),\n targetKinds: z.array(ContractIdentifierSchema).min(1),\n inputSchemaRef: ContractIdentifierSchema,\n outputSchemaRef: ContractIdentifierSchema.optional(),\n requiredPermissionCodes: z.array(ContractIdentifierSchema).default([]),\n handlerRef: EntityRefSchema,\n sideEffects: z\n .array(z.enum(['data-write', 'execution', 'navigation', 'notification', 'external-call']))\n .default([]),\n })\n .strict();\n\nexport const DomainCommandSchema = z\n .object({\n contract: z.literal('DomainCommand'),\n commandId: ContractIdentifierSchema,\n commandName: ContractIdentifierSchema,\n requestId: ContractIdentifierSchema,\n traceId: ContractIdentifierSchema,\n idempotencyKey: ContractIdentifierSchema,\n targetRef: EntityRefSchema,\n actorRef: EntityRefSchema,\n source: z\n .object({\n product: z.enum(['studio', 'kernel', 'compute', 'agent', 'mcp', 'service']),\n pageId: ContractIdentifierSchema.optional(),\n capabilityId: ContractIdentifierSchema.optional(),\n })\n .strict(),\n payload: JsonObjectSchema,\n issuedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const ProductDeclarationSchema = z\n .object({\n contract: z.literal('ProductDeclaration'),\n declarationId: ContractIdentifierSchema,\n ownerRepo: ContractIdentifierSchema,\n concepts: z.array(ConceptDefinitionSchema).default([]),\n ontologies: z.array(OntologyDefinitionSchema).default([]),\n projections: z.array(ProjectionSpecSchema).default([]),\n commands: z.array(DomainCommandDefinitionSchema).default([]),\n capabilities: z.array(CapabilityManifestSchema).default([]),\n pages: z.array(PageDefinitionSchema).default([]),\n })\n .strict();\n\nexport const DeclarationGraphEdgeSchema = z\n .object({\n from: EntityRefSchema,\n to: EntityRefSchema,\n relation: z.enum([\n 'uses-ontology',\n 'uses-projection',\n 'uses-capability',\n 'uses-command',\n 'relates-to-concept',\n ]),\n })\n .strict();\n\nexport const ChangeImpactSchema = z\n .object({\n changedRef: EntityRefSchema,\n affectedRefs: z.array(EntityRefSchema),\n reasons: z.array(ContractIdentifierSchema).min(1),\n })\n .strict();\n\nexport const ChangeImpactGraphSchema = z\n .object({\n contract: z.literal('ChangeImpactGraph'),\n declarationId: ContractIdentifierSchema,\n nodes: z.array(EntityRefSchema),\n edges: z.array(DeclarationGraphEdgeSchema),\n impacts: z.array(ChangeImpactSchema),\n generatedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport type ConceptRelationship = z.infer<typeof ConceptRelationshipSchema>;\nexport type ConceptDefinition = z.infer<typeof ConceptDefinitionSchema>;\nexport type DomainCommandDefinition = z.infer<typeof DomainCommandDefinitionSchema>;\nexport type DomainCommand = z.infer<typeof DomainCommandSchema>;\nexport type ProductDeclaration = z.infer<typeof ProductDeclarationSchema>;\nexport type DeclarationGraphEdge = z.infer<typeof DeclarationGraphEdgeSchema>;\nexport type ChangeImpact = z.infer<typeof ChangeImpactSchema>;\nexport type ChangeImpactGraph = z.infer<typeof ChangeImpactGraphSchema>;\n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n JsonObjectSchema,\n LocaleIdentifierSchema,\n LocalizedTextSchema,\n} from './common';\nimport { PageDefinitionSchema } from './page';\nimport { ResolvedThemeTokensSchema, ThemeTokensSchema } from './theme';\n\nconst DesignTokenFileSourceSchema = z\n .object({\n type: z.literal('file'),\n path: z.string().trim().min(1).superRefine((source, context) => {\n if (/^[a-z][a-z\\d+.-]*:/i.test(source)) {\n context.addIssue({\n code: 'custom',\n message: 'Design token file sources must use local file paths.',\n });\n }\n }),\n })\n .strict();\n\nconst DesignTokenUrlSourceSchema = z\n .object({\n type: z.literal('url'),\n url: z.string().trim().min(1).superRefine((source, context) => {\n if (!/^https?:\\/\\//i.test(source)) {\n context.addIssue({\n code: 'custom',\n message: 'Design token URL sources must use HTTP(S).',\n });\n }\n }),\n })\n .strict();\n\nconst DesignTokenInlineSourceSchema = z\n .object({\n type: z.literal('inline'),\n document: ThemeTokensSchema,\n })\n .strict();\n\n/** One explicitly ordered input to the tenant design-token release. */\nexport const DesignTokenSourceSchema = z.discriminatedUnion('type', [\n DesignTokenFileSourceSchema,\n DesignTokenUrlSourceSchema,\n DesignTokenInlineSourceSchema,\n]);\n\nexport const TenantDesignTokensConfigSchema = z\n .object({\n /** Ordered tenant overrides. The backend always applies the product default first. */\n tokenSources: z.array(DesignTokenSourceSchema),\n })\n .strict();\n\n/** Browser-safe reference to an authentication provider and its public policy. */\nexport const TenantAuthBindingSchema = z\n .object({\n kind: z.literal('auth-provider'),\n providerId: ContractIdentifierSchema,\n policyRef: ContractIdentifierSchema.optional(),\n })\n .strict();\n\n/** Browser-safe reference to a data provider or an owned projection. */\nexport const TenantDataBindingSchema = z\n .discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('data-provider'),\n providerId: ContractIdentifierSchema,\n domainRef: ContractIdentifierSchema.optional(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('projection'),\n projectionRef: ContractIdentifierSchema,\n domainRef: ContractIdentifierSchema.optional(),\n })\n .strict(),\n ]);\n\nexport const TenantAuthBindingsSchema = z.record(\n ContractIdentifierSchema,\n TenantAuthBindingSchema,\n);\n\nexport const TenantDataBindingsSchema = z.record(\n ContractIdentifierSchema,\n TenantDataBindingSchema,\n);\n\nconst AssetVariantsSchema = z\n .object({\n light: z.string().optional(),\n dark: z.string().optional(),\n })\n .strict();\n\nconst ThemeHeadbarSchema = z\n .object({\n theme: z.enum(['fixed', 'card', 'glassy', 'ghost', 'bsd-blue']).optional(),\n navPosition: z.enum(['left', 'center', 'right']).optional(),\n actions: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]).optional(),\n profile: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]).optional(),\n showTeamQuota: z.boolean().optional(),\n })\n .strict();\n\nconst KernelHeadbarSchema = z\n .object({\n theme: z.literal('card').optional(),\n layoutMode: z.enum(['boxed', 'full-bleed']).optional(),\n heightPx: z.number().positive().optional(),\n navPosition: z.enum(['left', 'center', 'right']).optional(),\n brandTitle: z.string().optional(),\n menuRadius: z.enum(['default', 'none', 'sm', 'md', 'lg', 'xl', 'full']).optional(),\n })\n .strict();\n\nconst CustomIconSchema = z\n .object({\n color: z.string().optional(),\n url: z.string().optional(),\n type: z.enum(['svg', 'image']).optional(),\n hintTextColor: z.string().optional(),\n })\n .strict();\n\nconst WorkbenchCustomerToolSchema = z.object({\n id: ContractIdentifierSchema,\n label: z.union([z.string(), z.record(LocaleIdentifierSchema, z.string())]).optional(),\n fixed: z.boolean().optional(),\n}).strict();\n\nconst WorkbenchStudioOverrideSchema = z.object({\n studioName: z.string().trim().min(1),\n dropdownToolsDefault: z.array(ContractIdentifierSchema).optional(),\n existingToolsDefault: z.array(ContractIdentifierSchema).optional(),\n historyColumnsDefault: z.number().int().min(1).max(6).optional(),\n}).strict();\n\nexport const TenantWorkbenchPageContextSchema = z\n .object({\n workflow: JsonObjectSchema.optional(),\n agent: JsonObjectSchema.optional(),\n agentId: ContractIdentifierSchema.optional(),\n designProject: JsonObjectSchema.optional(),\n designMetadataId: ContractIdentifierSchema.optional(),\n iframeUrl: z.string().trim().min(1).optional(),\n info: z\n .object({\n displayName: LocalizedTextSchema.optional(),\n description: LocalizedTextSchema.optional(),\n iconUrl: z.string().trim().min(1).optional(),\n })\n .strict()\n .optional(),\n isBuiltinPinned: z.boolean().optional(),\n isBuiltinReadonly: z.boolean().optional(),\n })\n .strict();\n\n/**\n * Tenant-declared workbench pages use the same canonical declaration envelope\n * as server-owned pinned pages. Context is provider input only; renderer and\n * capability identity must live in the PageDefinition.\n */\nexport const TenantWorkbenchPageEnvelopeSchema = z\n .object({\n definition: PageDefinitionSchema,\n context: TenantWorkbenchPageContextSchema,\n })\n .strict()\n .superRefine(({ definition }, context) => {\n if (definition.surface !== 'view') {\n context.addIssue({\n code: 'custom',\n path: ['definition', 'surface'],\n message: 'Tenant workbench pages must render on the view surface.',\n });\n }\n if (!definition.ownership.builtIn) {\n context.addIssue({\n code: 'custom',\n path: ['definition', 'ownership', 'builtIn'],\n message: 'Tenant workbench pages must be declared as built-in pages.',\n });\n }\n if (!definition.navigation.pinned) {\n context.addIssue({\n code: 'custom',\n path: ['definition', 'navigation', 'pinned'],\n message: 'Tenant workbench pages must be pinned in workbench navigation.',\n });\n }\n if (!definition.visibility.productContexts.includes('studio')) {\n context.addIssue({\n code: 'custom',\n path: ['definition', 'visibility', 'productContexts'],\n message: 'Tenant workbench pages must include the studio product context.',\n });\n }\n });\n\nexport const TenantWorkbenchPageGroupSchema = z\n .object({\n id: ContractIdentifierSchema,\n pageIds: z.array(ContractIdentifierSchema),\n displayName: LocalizedTextSchema,\n isBuiltIn: z.boolean(),\n iconUrl: z.string().optional(),\n sortIndex: z.number().int().nullable().optional(),\n presetRelationId: ContractIdentifierSchema.optional(),\n relationKey: ContractIdentifierSchema.nullable().optional(),\n studioId: ContractIdentifierSchema.optional(),\n })\n .strict();\n\nexport const TenantWorkbenchConfigSchema = z.object({\n pages: z.array(TenantWorkbenchPageEnvelopeSchema),\n pageGroups: z.array(TenantWorkbenchPageGroupSchema),\n catalog: z.object({ enabled: z.boolean().optional(), defaultEntry: z.boolean().optional() }).strict().optional(),\n quickSwitcherMaxItems: z.number().int().nonnegative().optional(),\n defaultOrder: z.object({\n groups: z.array(ContractIdentifierSchema),\n pages: z.record(ContractIdentifierSchema, z.array(ContractIdentifierSchema)),\n }).strict().optional(),\n customers: z.object({\n dropdownToolsDefault: z.array(ContractIdentifierSchema).optional(),\n layoutManagerTools: z.array(WorkbenchCustomerToolSchema).optional(),\n studioTabsMode: z.enum(['dropdown', 'tabs']).optional(),\n historyWatermark: z.object({\n svgUrl: z.string().optional(),\n coverage: z.array(z.enum(['list', 'detail', 'download'])).optional(),\n maxLongEdgeRatio: z.number().positive().optional(),\n sizing: z.object({\n mode: ContractIdentifierSchema,\n heightRatio: z.number().positive().optional(),\n minHeightPx: z.number().nonnegative().optional(),\n maxHeightPx: z.number().nonnegative().optional(),\n }).strict().optional(),\n enhance: z.object({\n enabled: z.boolean().optional(),\n backgroundLumaThreshold: z.number().min(0).max(1).optional(),\n stroke: z.object({\n color: z.string().optional(), opacity: z.number().min(0).max(1).optional(), widthRatio: z.number().nonnegative().optional(), blurRatio: z.number().nonnegative().optional(), steps: z.number().int().positive().optional(),\n }).strict().optional(),\n }).strict().optional(),\n }).strict().optional(),\n layoutManagerEnabled: z.boolean().optional(),\n existingToolsDefault: z.array(ContractIdentifierSchema).optional(),\n historyColumnsDefault: z.number().int().min(1).max(6).optional(),\n studioOverrides: z.array(WorkbenchStudioOverrideSchema).optional(),\n }).strict().optional(),\n}).strict().superRefine(({ pages, pageGroups }, context) => {\n const pageIds = pages.map(({ definition }) => definition.pageId);\n const pageIdSet = new Set(pageIds);\n if (pageIdSet.size !== pageIds.length) {\n context.addIssue({ code: 'custom', path: ['pages'], message: 'Tenant workbench page ids must be unique.' });\n }\n\n const groupIds = pageGroups.map(({ id }) => id);\n if (new Set(groupIds).size !== groupIds.length) {\n context.addIssue({ code: 'custom', path: ['pageGroups'], message: 'Tenant workbench page group ids must be unique.' });\n }\n\n pageGroups.forEach((group, groupIndex) => {\n group.pageIds.forEach((pageId, pageIndex) => {\n if (!pageIdSet.has(pageId)) {\n context.addIssue({\n code: 'custom',\n path: ['pageGroups', groupIndex, 'pageIds', pageIndex],\n message: `Tenant workbench page group references undeclared page ${pageId}.`,\n });\n }\n });\n });\n});\n\nconst LoginPageSchema = z\n .object({\n background: z\n .object({ imageUrl: z.string().optional(), gradient: z.string().optional() })\n .strict()\n .optional(),\n logo: z\n .object({\n url: z.string().optional(),\n lightUrl: z.string().optional(),\n darkUrl: z.string().optional(),\n position: z.enum(['top', 'middle', 'bottom']).optional(),\n scale: z.number().positive().optional(),\n })\n .strict()\n .optional(),\n customCss: z.string().optional(),\n })\n .strict();\n\n/** Public, application-specific values that are intentionally safe for browser clients. */\nexport const TenantApplicationConfigSchema = z\n .object({\n theme: z\n .object({\n id: z.string().optional(),\n name: z.string().optional(),\n title: z.string().optional(),\n favicon: AssetVariantsSchema.optional(),\n logo: AssetVariantsSchema.optional(),\n pwaIcon: z.string().optional(),\n form: z.object({ variant: z.enum(['bento', 'ghost']) }).strict().optional(),\n toast: z\n .object({\n position: z.enum(['top-right', 'top-left', 'bottom-right', 'bottom-left', 'top-center', 'bottom-center']),\n })\n .strict()\n .optional(),\n icons: z.object({ error: CustomIconSchema.optional(), empty: CustomIconSchema.optional() }).strict().optional(),\n views: z\n .object({\n form: z\n .object({\n toast: z.object({ afterCreate: z.boolean(), afterDelete: z.boolean() }).strict(),\n progress: z.enum(['estimate', 'infinite']),\n onlyResult: z.boolean(),\n tabular: z.object({ theme: z.enum(['default', 'tentiary', 'primary']) }).strict(),\n })\n .strict(),\n })\n .strict()\n .optional(),\n loginPage: LoginPageSchema.optional(),\n extraLanguageURL: z.record(z.string(), z.string()).optional(),\n hideSpaceHeader: z.boolean().optional(),\n showSidebarTeamSelector: z.boolean().optional(),\n showWorkbenchSidebar: z.boolean().optional(),\n workbenchViewTheme: z.enum(['default', 'bsd-blue']).optional(),\n defaults: z\n .object({\n showFormInImageDetail: z.boolean().optional(),\n darkMode: z.enum(['light', 'dark', 'auto']).optional(),\n language: z.enum(['en-US', 'zh-CN', 'ja-JP']).optional(),\n showDarkModeToggle: z.boolean().optional(),\n showLanguageToggle: z.boolean().optional(),\n })\n .strict()\n .optional(),\n modules: z\n .object({\n monkeysSpaceSidebar: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]).optional(),\n monkeysSpaceHeadbar: z\n .union([\n z.literal('*'),\n z.array(\n z\n .object({\n id: ContractIdentifierSchema,\n extraInfo: z.boolean().optional(),\n displayName: z.union([z.string(), z.record(LocaleIdentifierSchema, z.string())]).optional(),\n visible: z.boolean().optional(),\n disabled: z.boolean().optional(),\n icon: z.string().optional(),\n showQuickSwitcher: z.boolean().optional(),\n showSidebar: z.boolean().optional(),\n })\n .strict(),\n ),\n ])\n .optional(),\n settingsSidebar: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]).optional(),\n })\n .strict()\n .optional(),\n headbar: ThemeHeadbarSchema.optional(),\n kernelLayout: z\n .object({\n navigationMode: z.enum(['sidebar', 'topbar']).optional(),\n allowNavigationModeSwitch: z.boolean().optional(),\n headbar: KernelHeadbarSchema.optional(),\n })\n .strict()\n .optional(),\n paginationPosition: z.enum(['left', 'right']).optional(),\n ugcViewIconOnlyMode: z.boolean().optional(),\n workflowPreviewExecutionGrid: z\n .object({\n selectionModeDisplayType: z.enum(['operation-button', 'dropdown-menu']).optional(),\n clickBehavior: z.enum(['preview', 'select', 'fill-form', 'none']).optional(),\n showErrorFilter: z.boolean().optional(),\n displayType: z.enum(['grid', 'masonry']).optional(),\n showDetailButton: z.boolean().optional(),\n })\n .strict()\n .optional(),\n workbenchSidebarDefaultOpen: z.boolean().optional(),\n workbenchSidebarMoreAction: z.boolean().optional(),\n workbenchSidebarApart: z.boolean().optional(),\n workbenchSidebarToggleGroupDetail: z.boolean().optional(),\n workbenchSidebarViewType: z.boolean().optional(),\n workbenchSidebarFormViewEmbed: z.boolean().optional(),\n workbenchSidebarModernMode: z.boolean().optional(),\n ugc: z.object({ onItemClick: z.boolean(), subtitle: z.boolean().optional() }).strict().optional(),\n uniImagePreview: z.boolean().optional(),\n imagePreviewStyle: z.union([z.literal(false), z.enum(['simple', 'normal', 'uni'])]).optional(),\n teamAsUser: z.boolean().optional(),\n themeMode: z.enum(['shadow', 'border']).optional(),\n density: z.enum(['compact', 'default', 'comfortable']).optional(),\n pageZoom: z.number().positive().optional(),\n miniMode: z.object({ showPreviewViewExecutionResultGrid: z.boolean() }).strict().optional(),\n workflow: z.object({ allowConcurrentRuns: z.boolean() }).strict().optional(),\n historyResult: z.object({ display: z.boolean() }).strict().optional(),\n uploader: z\n .object({\n orientation: z.enum(['vertical', 'horizontal']),\n pasteButton: z.boolean(),\n statusText: z.boolean(),\n })\n .strict()\n .optional(),\n designProjects: z\n .object({\n oneOnOne: z.boolean(),\n newTabOpenBoard: z.boolean(),\n defaultShowGrid: z.boolean().optional(),\n createDefaultFrame: z.boolean(),\n showPageMenu: z.boolean(),\n showMainMenu: z.boolean(),\n showStylePanel: z.boolean(),\n showToolbar: z.boolean(),\n toolbarPosition: z.enum(['bottom', 'left']).optional(),\n showContextMenu: z.boolean(),\n showActionsMenu: z.boolean(),\n showPageAndLayerSidebar: z.boolean().optional(),\n showBoardOperationSidebar: z.boolean().optional(),\n showMiniToolsToolbar: z.boolean().optional(),\n showRightSidebar: z.boolean().optional(),\n showRealtimeDrawing: z.boolean().optional(),\n showWorkflow: z.boolean().optional(),\n showVersionManager: z.boolean().optional(),\n showAgent: z.boolean().optional(),\n AgentTools: z.array(ContractIdentifierSchema).optional(),\n })\n .strict()\n .optional(),\n workbench: TenantWorkbenchConfigSchema.optional(),\n visionProWorkflows: z.array(ContractIdentifierSchema).optional(),\n initTeam: z.boolean().optional(),\n imageThumbnail: z.boolean().optional(),\n pages: z\n .object({\n allowPageKeys: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]),\n defaultPageKey: ContractIdentifierSchema.optional(),\n })\n .strict()\n .optional(),\n agent: z\n .object({\n brandDisplayMode: z.enum(['auto', 'logo-only', 'logo-name', 'name-only']).optional(),\n density: z.enum(['compact', 'default', 'comfortable']).optional(),\n })\n .strict()\n .optional(),\n })\n .strict(),\n auth: z\n .object({\n enabled: z.array(ContractIdentifierSchema).default([]),\n oidc: z\n .object({ buttonText: z.string().optional(), autoSignin: z.boolean().optional() })\n .strict()\n .optional(),\n password: z\n .object({ disableAutoRegister: z.boolean().optional() })\n .strict()\n .optional(),\n hideAuthToast: z.boolean().optional(),\n autoReload: z.boolean().optional(),\n defaultOtherTeam: z.boolean().optional(),\n })\n .strict(),\n endpoints: z.record(ContractIdentifierSchema, z.string()),\n module: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]),\n behavior: z\n .object({\n clearWorkflowFormStorageAfterUpdate: z.boolean().optional(),\n autoApproveOAuth: z.boolean().optional(),\n rememberWorkflowModelSelection: z.boolean().optional(),\n })\n .strict(),\n dataManagement: z\n .object({\n favoriteBucketId: z.string().optional(),\n pairedBucketId: z.string().optional(),\n galleryBucketId: z.string().optional(),\n dataBrowserDefaultBucketId: z.string().optional(),\n workflowResultBucketId: z.string().optional(),\n homeAdvertisement: z.object({\n bucketId: ContractIdentifierSchema, viewId: ContractIdentifierSchema.optional(), viewType: z.enum(['filter', 'container', 'share_link']).optional(), teamId: ContractIdentifierSchema.optional(), teamOnly: z.boolean().optional(), pageSize: z.number().int().positive().optional(), sortBy: z.enum(['pin_order', 'asset_id', 'updated_timestamp', 'created_timestamp']).optional(), sortOrder: z.enum(['asc', 'desc']).optional(), fieldMap: z.record(z.string(), z.string()).optional(), columnIds: z.record(z.string(), z.string()).optional(),\n }).strict().optional(),\n homeTrendAssistant: z.object({\n bucketId: ContractIdentifierSchema.optional(), viewId: ContractIdentifierSchema.optional(), viewInstanceId: ContractIdentifierSchema.optional(), viewName: z.string().optional(), teamId: ContractIdentifierSchema.optional(), designOptionsWorkflowId: ContractIdentifierSchema.optional(),\n tep: z.object({ baseUrl: z.string().optional(), timeoutMs: z.number().int().positive().optional() }).strict().optional(),\n runtime: z.object({ appId: ContractIdentifierSchema, tepBaseUrlConfigured: z.boolean(), tepAuthorizationConfigured: z.boolean(), tepCookieConfigured: z.boolean() }).strict().optional(),\n }).strict().optional(),\n sharing: z.object({\n silentViewLinks: z.object({ enabled: z.boolean().optional(), placement: z.object({ mode: z.enum(['sourceBucket', 'bucket']).optional(), bucketId: ContractIdentifierSchema.optional(), parentId: ContractIdentifierSchema.optional(), navId: ContractIdentifierSchema.optional() }).strict().optional() }).strict().optional(),\n shareAccess: z.object({ publicLinksEnabled: z.boolean().optional(), passwordGateEnabled: z.boolean().optional(), passwordAccessTtlSeconds: z.number().int().positive().optional(), defaultViewTreeDelivery: z.enum(['manual', 'auto']).optional() }).strict().optional(),\n shareDialog: z.object({\n audience: z.object({ enabled: z.boolean().optional(), allowed: z.array(z.enum(['user', 'team', 'public'])).optional(), default: z.enum(['user', 'team', 'public']).optional() }).strict().optional(),\n accessLevel: z.object({ enabled: z.boolean().optional(), allowed: z.array(z.enum(['read', 'write'])).optional(), default: z.enum(['read', 'write']).optional() }).strict().optional(),\n viewTreeDelivery: z.object({ enabled: z.boolean().optional(), allowed: z.array(z.enum(['manual', 'auto'])).optional(), default: z.enum(['manual', 'auto']).optional() }).strict().optional(),\n }).strict().optional(),\n }).strict().optional(),\n })\n .strict()\n .optional(),\n compute: z\n .object({\n integrations: z\n .object({\n harbor: z.object({ endpoint: z.string().optional(), projectScopes: z.array(z.string()).optional(), authMode: z.string().optional(), principal: z.string().optional(), autoSync: z.boolean().optional(), proxyUrl: z.string().optional() }).strict().optional(),\n gitlab: z.object({ baseUrl: z.string().optional(), groupScopes: z.array(z.string()).optional(), tokenMode: z.string().optional(), deployProjectPath: z.string().optional(), deploymentReportsEnabled: z.boolean().optional(), proxyUrl: z.string().optional() }).strict().optional(),\n kubernetes: z.object({ accessMode: z.string().optional(), clusterAlias: z.string().optional(), agentProjectPath: z.string().optional(), agentName: z.string().optional(), namespaceScopes: z.array(z.string()).optional(), rolloutObserverEnabled: z.boolean().optional(), proxyUrl: z.string().optional() }).strict().optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n data: z.object({}).strict().optional(),\n storage: z\n .object({\n presignMode: z.enum(['frontend', 'backend', 'both']).optional(),\n presign: z\n .object({\n expiresInSeconds: z.number().int().positive(),\n buckets: z.array(\n z\n .object({\n id: ContractIdentifierSchema,\n provider: ContractIdentifierSchema,\n preferredUrlPatternId: ContractIdentifierSchema,\n urlPatterns: z.array(\n z\n .object({\n id: ContractIdentifierSchema,\n type: z.enum(['bucket-hostname', 'provider-hostname']),\n hostname: z.string().trim().min(1),\n preferred: z.boolean().optional(),\n bucketSegment: z.string().optional(),\n })\n .strict(),\n ),\n })\n .strict(),\n ),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n monkeyData: z\n .object({ baseUrl: z.string().optional() })\n .strict()\n .optional(),\n })\n .strict();\n\nexport const TenantProductConfigSchema = z\n .object({\n contract: z.literal('TenantProductConfig'),\n tenantId: ContractIdentifierSchema,\n appId: ContractIdentifierSchema,\n environment: ContractIdentifierSchema,\n designTokens: TenantDesignTokensConfigSchema,\n moduleRefs: z.array(ContractIdentifierSchema).default([]),\n pageRefs: z.array(ContractIdentifierSchema).default([]),\n featureFlags: z.record(z.string(), z.boolean()).default({}),\n authBinding: TenantAuthBindingsSchema,\n dataBinding: TenantDataBindingsSchema,\n sourceMap: z.record(z.string(), ContractIdentifierSchema),\n warnings: z.array(z.string()).default([]),\n applicationConfig: TenantApplicationConfigSchema,\n })\n .strict();\n\n/** Browser-safe projection. tokenSources and all other server-only values are structurally impossible here. */\nexport const TenantRuntimeConfigSchema = z\n .object({\n contract: z.literal('TenantRuntimeConfig'),\n tenantId: ContractIdentifierSchema,\n appId: ContractIdentifierSchema,\n environment: ContractIdentifierSchema,\n designTokens: ResolvedThemeTokensSchema,\n moduleRefs: z.array(ContractIdentifierSchema).default([]),\n pageRefs: z.array(ContractIdentifierSchema).default([]),\n featureFlags: z.record(z.string(), z.boolean()).default({}),\n authBinding: TenantAuthBindingsSchema,\n dataBinding: TenantDataBindingsSchema,\n sourceMap: z.record(z.string(), ContractIdentifierSchema),\n warnings: z.array(z.string()).default([]),\n applicationConfig: TenantApplicationConfigSchema,\n })\n .strict();\n\nexport type TenantProductConfig = z.infer<typeof TenantProductConfigSchema>;\nexport type TenantRuntimeConfig = z.infer<typeof TenantRuntimeConfigSchema>;\nexport type TenantApplicationConfig = z.infer<typeof TenantApplicationConfigSchema>;\nexport type TenantWorkbenchConfig = z.infer<typeof TenantWorkbenchConfigSchema>;\nexport type TenantWorkbenchPageContext = z.infer<typeof TenantWorkbenchPageContextSchema>;\nexport type TenantWorkbenchPageEnvelope = z.infer<typeof TenantWorkbenchPageEnvelopeSchema>;\nexport type TenantWorkbenchPageGroup = z.infer<typeof TenantWorkbenchPageGroupSchema>;\nexport type DesignTokenSource = z.infer<typeof DesignTokenSourceSchema>;\nexport type TenantDesignTokensConfig = z.infer<typeof TenantDesignTokensConfigSchema>;\nexport type TenantAuthBinding = z.infer<typeof TenantAuthBindingSchema>;\nexport type TenantDataBinding = z.infer<typeof TenantDataBindingSchema>;\n","import { z } from 'zod';\nimport {\n THEME_TOKEN_TYPES,\n validateThemeTokensDocument,\n validateThemeTokensDocumentStructure,\n type ResolvedThemeToken,\n type ResolvedThemeTokens,\n type ThemeColorValue,\n type ThemeDimensionValue,\n type ThemeDurationValue,\n type ThemeToken,\n type ThemeTokenDeprecated,\n type ThemeTokenExtensions,\n type ThemeTokenGroup,\n type ThemeTokenReference,\n type ThemeTokens,\n type ThemeTokenType,\n type ThemeTokenValidationIssue,\n} from '../theme-tokens/core';\n\nexport const ThemeTokenTypeSchema = z.enum(THEME_TOKEN_TYPES);\n\nexport const ThemeTokenSchema = z.record(z.string(), z.unknown()).superRefine((input, context) => {\n const issues = validateThemeTokensDocumentStructure({ token: input });\n for (const issue of issues) {\n context.addIssue({ code: 'custom', message: `${issue.path} ${issue.message}` });\n }\n});\n\nexport const ThemeTokenGroupSchema = z.record(z.string(), z.unknown()).superRefine((input, context) => {\n const issues = validateThemeTokensDocumentStructure(input);\n for (const issue of issues) {\n context.addIssue({ code: 'custom', message: `${issue.path} ${issue.message}` });\n }\n});\n\n/**\n * A complete Design Tokens Community Group 2025.10 token document.\n *\n * The document root is the DTCG group/token tree itself. Tenant identity,\n * source paths, feature flags and runtime options deliberately live outside it.\n */\nexport const ThemeTokensSchema: z.ZodType<ThemeTokens> = z\n .record(z.string(), z.unknown())\n .superRefine((input, context) => {\n const issues = validateThemeTokensDocument(input);\n for (const issue of issues) {\n context.addIssue({ code: 'custom', message: `${issue.path} ${issue.message}` });\n }\n });\n\nconst unresolvedReference = /^\\{[^{}]+\\}$/;\n\n/** A browser-safe DTCG document whose aliases and JSON Pointer references have already been materialized. */\nexport const ResolvedThemeTokensSchema: z.ZodType<ThemeTokens> = ThemeTokensSchema.superRefine((input, context) => {\n const visit = (value: unknown, path: (string | number)[]): void => {\n if (typeof value === 'string' && unresolvedReference.test(value)) {\n context.addIssue({ code: 'custom', path, message: 'Resolved theme tokens cannot contain token aliases.' });\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((item, index) => visit(item, [...path, index]));\n return;\n }\n if (!value || typeof value !== 'object') return;\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n if (key === '$ref') context.addIssue({ code: 'custom', path: [...path, key], message: 'Resolved theme tokens cannot contain $ref.' });\n visit(child, [...path, key]);\n }\n };\n visit(input, []);\n});\n\nexport type {\n ResolvedThemeToken,\n ResolvedThemeTokens,\n ThemeColorValue,\n ThemeDimensionValue,\n ThemeDurationValue,\n ThemeToken,\n ThemeTokenDeprecated,\n ThemeTokenExtensions,\n ThemeTokenGroup,\n ThemeTokenReference,\n ThemeTokens,\n ThemeTokenType,\n ThemeTokenValidationIssue,\n};\n","import Ajv, { type ErrorObject, type ValidateFunction } from 'ajv';\nimport dtcgFormatSchema from '../contracts/dtcg-format.schema.json';\n\nexport const THEME_TOKEN_TYPES = [\n 'color',\n 'dimension',\n 'fontFamily',\n 'fontWeight',\n 'duration',\n 'cubicBezier',\n 'number',\n 'strokeStyle',\n 'border',\n 'transition',\n 'shadow',\n 'gradient',\n 'typography',\n] as const;\n\nexport type ThemeTokenType = (typeof THEME_TOKEN_TYPES)[number];\nexport type ThemeTokenDeprecated = boolean | string;\nexport type ThemeTokenExtensions = Record<string, unknown>;\n\nexport interface ThemeTokenReference {\n $ref: string;\n}\n\nexport interface ThemeToken {\n $value?: unknown;\n $ref?: string;\n $type?: ThemeTokenType;\n $description?: string;\n $deprecated?: ThemeTokenDeprecated;\n $extensions?: ThemeTokenExtensions;\n}\n\nexport interface ThemeTokenGroup {\n [name: string]: unknown;\n}\n\nexport type ThemeTokens = Record<string, unknown>;\n\nexport interface ThemeColorValue {\n colorSpace:\n | 'srgb'\n | 'srgb-linear'\n | 'hsl'\n | 'hwb'\n | 'lab'\n | 'lch'\n | 'oklab'\n | 'oklch'\n | 'display-p3'\n | 'a98-rgb'\n | 'prophoto-rgb'\n | 'rec2020'\n | 'xyz-d65'\n | 'xyz-d50';\n components: [number | 'none', number | 'none', number | 'none'];\n alpha?: number;\n hex?: string;\n}\n\nexport interface ThemeDimensionValue {\n value: number;\n unit: 'px' | 'rem';\n}\n\nexport interface ThemeDurationValue {\n value: number;\n unit: 'ms' | 's';\n}\n\nexport interface ResolvedThemeToken {\n path: string;\n type: ThemeTokenType;\n value: unknown;\n description?: string;\n deprecated?: ThemeTokenDeprecated;\n extensions?: ThemeTokenExtensions;\n}\n\nexport interface ResolvedThemeTokens {\n document: ThemeTokens;\n materializedDocument: ThemeTokens;\n resolvedDocument: ThemeTokens;\n tokens: ReadonlyMap<string, ResolvedThemeToken>;\n}\n\nexport interface ThemeTokenValidationIssue {\n path: string;\n message: string;\n}\n\nexport class ThemeTokenValidationError extends TypeError {\n public readonly issues: readonly ThemeTokenValidationIssue[];\n\n constructor(message: string, issues: ThemeTokenValidationIssue[] = []) {\n super(message);\n this.name = 'ThemeTokenValidationError';\n this.issues = issues;\n }\n}\n\nconst schema = dtcgFormatSchema as Record<string, unknown>;\nconst ajv = new Ajv({\n allErrors: true,\n strict: false,\n strictNumbers: true,\n validateFormats: false,\n});\n\nconst validateDtcgDocument = ajv.compile(schema) as ValidateFunction;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction hasOwn(value: Record<string, unknown>, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(value, key);\n}\n\nfunction isToken(value: unknown): value is ThemeToken & Record<string, unknown> {\n return isRecord(value) && (hasOwn(value, '$value') || hasOwn(value, '$ref'));\n}\n\nfunction isGroup(value: unknown): value is ThemeTokenGroup {\n return isRecord(value) && !isToken(value);\n}\n\nfunction cloneJson<T>(value: T): T {\n if (Array.isArray(value)) return value.map((item) => cloneJson(item)) as T;\n if (!isRecord(value)) return value;\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneJson(item)])) as T;\n}\n\nfunction formatAjvIssues(errors: ErrorObject[] | null | undefined): ThemeTokenValidationIssue[] {\n return (errors ?? []).map((error) => ({\n path: error.instancePath || '/',\n message: `${error.message ?? 'is invalid'}${\n error.params && Object.keys(error.params).length > 0 ? ` (${JSON.stringify(error.params)})` : ''\n }`,\n }));\n}\n\nexport function validateThemeTokensDocumentStructure(input: unknown): ThemeTokenValidationIssue[] {\n if (validateDtcgDocument(input)) return [];\n return formatAjvIssues(validateDtcgDocument.errors);\n}\n\nexport function assertThemeTokensDocumentStructure(input: unknown): asserts input is ThemeTokens {\n const issues = validateThemeTokensDocumentStructure(input);\n if (issues.length === 0) return;\n const summary = issues.slice(0, 5).map((issue) => `${issue.path} ${issue.message}`).join('; ');\n throw new ThemeTokenValidationError(`Invalid DTCG 2025.10 token document: ${summary}`, issues);\n}\n\nconst GROUP_META_KEYS = new Set(['$schema', '$type', '$description', '$deprecated', '$extensions']);\n\nfunction mergeGroups(\n base: ThemeTokenGroup,\n override: ThemeTokenGroup,\n path: string[],\n sourceMerge: boolean,\n): ThemeTokenGroup {\n const output = cloneJson(base);\n for (const [key, value] of Object.entries(override)) {\n if (key === '$extends') continue;\n if (key.startsWith('$') && key !== '$root') {\n output[key] = cloneJson(value);\n continue;\n }\n if (!hasOwn(output, key)) {\n output[key] = cloneJson(value);\n continue;\n }\n const existing = output[key];\n const existingKind = isToken(existing) ? 'token' : isGroup(existing) ? 'group' : 'metadata';\n const nextKind = isToken(value) ? 'token' : isGroup(value) ? 'group' : 'metadata';\n if (existingKind === 'group' && nextKind === 'group') {\n output[key] = mergeGroups(existing as ThemeTokenGroup, value as ThemeTokenGroup, [...path, key], sourceMerge);\n continue;\n }\n if (existingKind !== nextKind) {\n const reason = sourceMerge ? 'Token sources' : 'Extended groups';\n throw new ThemeTokenValidationError(\n `${reason} cannot change ${[...path, key].join('.')} from ${existingKind} to ${nextKind}.`,\n );\n }\n output[key] = cloneJson(value);\n }\n return output;\n}\n\nfunction decodeJsonPointer(reference: string): string[] {\n if (!reference.startsWith('#/')) {\n throw new ThemeTokenValidationError(`JSON Pointer reference must start with \"#/\": ${reference}`);\n }\n let decoded: string;\n try {\n decoded = decodeURIComponent(reference.slice(1));\n } catch {\n throw new ThemeTokenValidationError(`JSON Pointer contains invalid URI encoding: ${reference}`);\n }\n return decoded.slice(1).split('/').map((segment) => segment.replace(/~1/g, '/').replace(/~0/g, '~'));\n}\n\nfunction getAtSegments(document: unknown, segments: readonly string[], reference: string): unknown {\n let current = document;\n for (const segment of segments) {\n if (Array.isArray(current)) {\n if (!/^(0|[1-9]\\d*)$/.test(segment) || Number(segment) >= current.length) {\n throw new ThemeTokenValidationError(`Unresolved JSON Pointer reference: ${reference}`);\n }\n current = current[Number(segment)];\n continue;\n }\n if (!isRecord(current) || !hasOwn(current, segment)) {\n throw new ThemeTokenValidationError(`Unresolved JSON Pointer reference: ${reference}`);\n }\n current = current[segment];\n }\n return current;\n}\n\nfunction parseCurlyReference(reference: string): string[] | null {\n const match = reference.match(/^\\{([^{}]+)\\}$/);\n return match ? match[1].split('.') : null;\n}\n\nfunction getGroupReference(\n document: ThemeTokens,\n reference: string,\n): { group: ThemeTokenGroup; key: string; path: string[] } {\n const curlyPath = parseCurlyReference(reference);\n const path = curlyPath ?? decodeJsonPointer(reference);\n const target = getAtSegments(document, path, reference);\n if (!isGroup(target)) {\n throw new ThemeTokenValidationError(`Group $extends must reference a group: ${reference}`);\n }\n return { group: target, key: path.join('.'), path };\n}\n\nfunction materializeGroups(document: ThemeTokens): ThemeTokens {\n const resolveGroup = (\n group: ThemeTokenGroup,\n path: string[],\n extendsStack: readonly string[],\n ): ThemeTokenGroup => {\n let merged: ThemeTokenGroup = {};\n const extension = group.$extends;\n if (typeof extension === 'string') {\n const target = getGroupReference(document, extension);\n if (extendsStack.includes(target.key)) {\n throw new ThemeTokenValidationError(\n `Circular group $extends reference: ${[...extendsStack, target.key].join(' -> ')}`,\n );\n }\n const base = resolveGroup(target.group, target.path, [...extendsStack, target.key]);\n merged = mergeGroups(base, group, path, false);\n } else {\n merged = cloneJson(group);\n delete merged.$extends;\n }\n\n for (const [key, value] of Object.entries(merged)) {\n if (key.startsWith('$')) continue;\n if (isGroup(value)) {\n merged[key] = resolveGroup(value, [...path, key], extendsStack);\n }\n }\n return merged;\n };\n\n return resolveGroup(document, [], ['$root-document']) as ThemeTokens;\n}\n\ninterface CollectedToken {\n token: ThemeToken & Record<string, unknown>;\n inheritedType?: ThemeTokenType;\n inheritedDeprecated?: ThemeTokenDeprecated;\n}\n\nfunction collectTokens(document: ThemeTokens): Map<string, CollectedToken> {\n const tokens = new Map<string, CollectedToken>();\n const visitGroup = (\n group: ThemeTokenGroup,\n path: string[],\n inheritedType?: ThemeTokenType,\n inheritedDeprecated?: ThemeTokenDeprecated,\n ) => {\n const groupType = (group.$type as ThemeTokenType | undefined) ?? inheritedType;\n const groupDeprecated = (group.$deprecated as ThemeTokenDeprecated | undefined) ?? inheritedDeprecated;\n for (const [key, value] of Object.entries(group)) {\n if (GROUP_META_KEYS.has(key) || key === '$extends') continue;\n const tokenPath = [...path, key].join('.');\n if (isToken(value)) {\n tokens.set(tokenPath, {\n token: value,\n inheritedType: groupType,\n inheritedDeprecated: groupDeprecated,\n });\n } else if (isGroup(value)) {\n visitGroup(value, [...path, key], groupType, groupDeprecated);\n }\n }\n };\n visitGroup(document, []);\n return tokens;\n}\n\nfunction expectedChildType(parentType: ThemeTokenType | undefined, key: string): ThemeTokenType | undefined {\n switch (parentType) {\n case 'border':\n return ({ color: 'color', width: 'dimension', style: 'strokeStyle' } as const)[key];\n case 'transition':\n return ({ duration: 'duration', delay: 'duration', timingFunction: 'cubicBezier' } as const)[key];\n case 'shadow':\n return ({ color: 'color', offsetX: 'dimension', offsetY: 'dimension', blur: 'dimension', spread: 'dimension' } as const)[key];\n case 'gradient':\n return ({ color: 'color', position: 'number' } as const)[key];\n case 'typography':\n return ({\n fontFamily: 'fontFamily',\n fontSize: 'dimension',\n fontWeight: 'fontWeight',\n letterSpacing: 'dimension',\n lineHeight: 'number',\n } as const)[key];\n case 'strokeStyle':\n return key === 'dashArray' ? 'dimension' : undefined;\n case 'dimension':\n case 'duration':\n return key === 'value' ? 'number' : undefined;\n case 'color':\n return key === 'alpha' || key === 'components' ? 'number' : undefined;\n default:\n return undefined;\n }\n}\n\nfunction assertResolvedValueMatchesType(type: ThemeTokenType, value: unknown, path: string): void {\n const syntheticDocument = {\n token: {\n $type: type,\n $value: value,\n },\n };\n const issues = validateThemeTokensDocumentStructure(syntheticDocument);\n if (issues.length === 0) return;\n const mapped = issues.map((issue) => ({\n path: `${path}${issue.path.replace(/^\\/token(?:\\/\\$value)?/, '')}`,\n message: issue.message,\n }));\n const summary = mapped.slice(0, 5).map((issue) => `${issue.path} ${issue.message}`).join('; ');\n throw new ThemeTokenValidationError(`Token ${path} has an invalid ${type} value: ${summary}`, mapped);\n}\n\nexport function resolveThemeTokens(input: unknown): ResolvedThemeTokens {\n assertThemeTokensDocumentStructure(input);\n const document = cloneJson(input);\n const materializedDocument = materializeGroups(document);\n const collected = collectTokens(materializedDocument);\n const resolved = new Map<string, ResolvedThemeToken>();\n const resolvingTokens: string[] = [];\n\n const resolveToken = (path: string): ResolvedThemeToken => {\n const cached = resolved.get(path);\n if (cached) return cached;\n const entry = collected.get(path);\n if (!entry) throw new ThemeTokenValidationError(`Unknown token reference: ${path}`);\n if (resolvingTokens.includes(path)) {\n throw new ThemeTokenValidationError(`Circular token reference: ${[...resolvingTokens, path].join(' -> ')}`);\n }\n resolvingTokens.push(path);\n\n const token = entry.token;\n let tokenType = token.$type ?? entry.inheritedType;\n\n const inferReferenceType = (reference: string): ThemeTokenType | undefined => {\n const segments = decodeJsonPointer(reference);\n for (let length = segments.length; length > 0; length -= 1) {\n const candidate = segments.slice(0, length).join('.');\n if (!collected.has(candidate)) continue;\n const owner = resolveToken(candidate);\n if (length === segments.length || segments[length] === '$value') return owner.type;\n return undefined;\n }\n return undefined;\n };\n\n if (!tokenType && typeof token.$value === 'string') {\n const aliasPath = parseCurlyReference(token.$value)?.join('.');\n if (aliasPath) tokenType = resolveToken(aliasPath).type;\n }\n if (!tokenType && typeof token.$ref === 'string') tokenType = inferReferenceType(token.$ref);\n if (!tokenType) {\n resolvingTokens.pop();\n throw new ThemeTokenValidationError(\n `Token ${path} has no $type, does not inherit one, and cannot infer one from its reference.`,\n );\n }\n\n const resolvingPointers: string[] = [];\n const resolvePointer = (\n reference: string,\n expectedType: ThemeTokenType | undefined,\n location: string,\n ): unknown => {\n const marker = `${path}:${reference}`;\n if (resolvingPointers.includes(marker)) {\n throw new ThemeTokenValidationError(\n `Circular JSON Pointer reference at ${location}: ${[...resolvingPointers, marker].join(' -> ')}`,\n );\n }\n resolvingPointers.push(marker);\n const segments = decodeJsonPointer(reference);\n const target = getAtSegments(materializedDocument, segments, reference);\n let result: unknown;\n if (isToken(target)) {\n const targetPath = segments.join('.');\n const targetToken = resolveToken(targetPath);\n if (expectedType && targetToken.type !== expectedType) {\n throw new ThemeTokenValidationError(\n `Reference at ${location} expects ${expectedType} but ${targetPath} is ${targetToken.type}.`,\n );\n }\n result = targetToken.value;\n } else if (isGroup(target)) {\n throw new ThemeTokenValidationError(`JSON Pointer at ${location} references a group: ${reference}`);\n } else {\n result = resolveValue(target, expectedType, location);\n }\n resolvingPointers.pop();\n return result;\n };\n\n const resolveValue = (\n value: unknown,\n expectedType: ThemeTokenType | undefined,\n location: string,\n contextType: ThemeTokenType | undefined = expectedType,\n ): unknown => {\n if (typeof value === 'string') {\n const alias = parseCurlyReference(value);\n if (!alias) return value;\n const aliasPath = alias.join('.');\n const target = resolveToken(aliasPath);\n if (expectedType && target.type !== expectedType) {\n throw new ThemeTokenValidationError(\n `Reference at ${location} expects ${expectedType} but ${aliasPath} is ${target.type}.`,\n );\n }\n return cloneJson(target.value);\n }\n if (Array.isArray(value)) {\n return value.map((item, index) => {\n const childType = contextType === 'cubicBezier' ? 'number'\n : contextType === 'strokeStyle' ? 'dimension'\n : undefined;\n return resolveValue(item, childType, `${location}/${index}`, contextType);\n });\n }\n if (!isRecord(value)) return value;\n if (Object.keys(value).length === 1 && typeof value.$ref === 'string') {\n return resolvePointer(value.$ref, expectedType, location);\n }\n return Object.fromEntries(Object.entries(value).map(([key, child]) => {\n const childType = expectedChildType(contextType, key);\n return [key, resolveValue(child, childType, `${location}/${key}`, contextType)];\n }));\n };\n\n let value: unknown;\n if (typeof token.$ref === 'string') {\n value = resolvePointer(token.$ref, tokenType, path);\n } else {\n value = resolveValue(token.$value, tokenType, path);\n }\n assertResolvedValueMatchesType(tokenType, value, path);\n\n const result: ResolvedThemeToken = {\n path,\n type: tokenType,\n value,\n description: token.$description,\n deprecated: token.$deprecated ?? entry.inheritedDeprecated,\n extensions: token.$extensions,\n };\n resolvingTokens.pop();\n resolved.set(path, result);\n return result;\n };\n\n for (const path of collected.keys()) resolveToken(path);\n const resolvedDocument: ThemeTokens = {};\n for (const token of resolved.values()) {\n const segments = token.path.split('.');\n let parent = resolvedDocument as Record<string, unknown>;\n segments.forEach((segment, index) => {\n if (index === segments.length - 1) {\n parent[segment] = {\n $type: token.type,\n $value: cloneJson(token.value),\n ...(token.description !== undefined ? { $description: token.description } : {}),\n ...(token.deprecated !== undefined ? { $deprecated: cloneJson(token.deprecated) } : {}),\n ...(token.extensions !== undefined ? { $extensions: cloneJson(token.extensions) } : {}),\n };\n return;\n }\n const existing = parent[segment];\n if (!isRecord(existing)) parent[segment] = {};\n parent = parent[segment] as Record<string, unknown>;\n });\n }\n return {\n document,\n materializedDocument,\n resolvedDocument,\n tokens: resolved,\n };\n}\n\nexport function validateThemeTokensDocument(input: unknown): ThemeTokenValidationIssue[] {\n const structuralIssues = validateThemeTokensDocumentStructure(input);\n if (structuralIssues.length > 0) return structuralIssues;\n try {\n resolveThemeTokens(input);\n return [];\n } catch (error) {\n if (error instanceof ThemeTokenValidationError) {\n return error.issues.length > 0 ? [...error.issues] : [{ path: '/', message: error.message }];\n }\n return [{ path: '/', message: error instanceof Error ? error.message : String(error) }];\n }\n}\n\nexport function mergeThemeTokenDocuments(inputs: readonly unknown[]): ThemeTokens {\n if (inputs.length === 0) {\n throw new ThemeTokenValidationError('At least one DTCG token source is required.');\n }\n let merged: ThemeTokenGroup = {};\n for (const input of inputs) {\n assertThemeTokensDocumentStructure(input);\n merged = mergeGroups(merged, input, [], true);\n }\n resolveThemeTokens(merged);\n return merged as ThemeTokens;\n}\n\nconst REQUIRED_SEMANTIC_COLOR_PATHS = [\n 'background',\n 'foreground',\n 'card',\n 'card-foreground',\n 'popover',\n 'popover-foreground',\n 'primary',\n 'primary-foreground',\n 'secondary',\n 'secondary-foreground',\n 'muted',\n 'muted-foreground',\n 'accent',\n 'accent-foreground',\n 'destructive',\n 'destructive-foreground',\n 'success',\n 'success-foreground',\n 'warning',\n 'warning-foreground',\n 'border',\n 'input',\n 'ring',\n 'neocard',\n] as const;\n\n/** The complete semantic surface consumed by Studio, Kernel and Compute. */\nexport const MONKEYS_REQUIRED_THEME_TOKEN_PATHS: Readonly<Record<string, ThemeTokenType>> = Object.freeze({\n ...Object.fromEntries(\n REQUIRED_SEMANTIC_COLOR_PATHS.flatMap((name) => [\n [`semantic.color.${name}.light`, 'color'],\n [`semantic.color.${name}.dark`, 'color'],\n ]),\n ),\n 'semantic.radius.base': 'dimension',\n 'semantic.spacing.global.compact': 'dimension',\n 'semantic.spacing.global.default': 'dimension',\n 'semantic.spacing.global.comfortable': 'dimension',\n 'semantic.font.body': 'fontFamily',\n});\n\n/** Validate product completeness after all explicitly configured layers merge. */\nexport function assertMonkeysThemeTokensComplete(input: unknown): ThemeTokens {\n const resolved = resolveThemeTokens(input);\n const issues: ThemeTokenValidationIssue[] = [];\n for (const [path, expectedType] of Object.entries(MONKEYS_REQUIRED_THEME_TOKEN_PATHS)) {\n const token = resolved.tokens.get(path);\n if (!token) {\n issues.push({ path: `/${path.replace(/\\./g, '/')}`, message: 'Required Monkeys semantic token is missing.' });\n continue;\n }\n if (token.type !== expectedType) {\n issues.push({\n path: `/${path.replace(/\\./g, '/')}`,\n message: `Required Monkeys semantic token must use type ${expectedType}.`,\n });\n }\n }\n if (issues.length > 0) {\n throw new ThemeTokenValidationError('The merged design-token release is incomplete.', issues);\n }\n return resolved.document;\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format.json\",\n \"title\": \"DTCG Format Schema\",\n \"description\": \"JSON Schema for the Design Tokens Community Group (DTCG) Format specification.\",\n \"type\": \"object\",\n \"properties\": {\n \"$schema\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\",\n \"description\": \"URI reference to this JSON schema.\",\n \"$comment\": \"$schema is not part of the official DTCG specification.\"\n },\n \"$type\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\"\n },\n \"$description\": {\n \"type\": \"string\",\n \"description\": \"A plain text description of the group\"\n },\n \"$extensions\": {\n \"type\": \"object\",\n \"description\": \"Vendor-specific extensions\"\n },\n \"$extends\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/definitions/curlyBraceReference\"\n },\n {\n \"$ref\": \"#/definitions/jsonPointerReference\"\n }\n ],\n \"description\": \"Reference to another group to inherit tokens and properties from\"\n },\n \"$deprecated\": {\n \"oneOf\": [\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Whether this group is deprecated\"\n },\n \"$root\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/token.json\"\n }\n },\n \"patternProperties\": {\n \"^[^${}.][^{}.]*$\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json\"\n }\n },\n \"additionalProperties\": false,\n \"definitions\": {\n \"tokenOrGroupName\": {\n \"title\": \"Token or Group Name\",\n \"type\": \"string\",\n \"pattern\": \"^[^${}.][^{}.]*$\",\n \"description\": \"Valid token/group names: must not start with $ and must not contain {, }, or .\"\n },\n \"curlyBraceReference\": {\n \"title\": \"Curly Brace Reference\",\n \"type\": \"string\",\n \"pattern\": \"^\\\\{[^${}.][^{}.]*(\\\\.[^${}.][^{}.]*)*\\\\}$\",\n \"description\": \"Curly brace reference (e.g., '{tokenName}' or '{group.nested.token}')\"\n },\n \"jsonPointerReference\": {\n \"title\": \"JSON Pointer Reference\",\n \"type\": \"string\",\n \"pattern\": \"^#/\",\n \"format\": \"json-pointer-uri-fragment\",\n \"description\": \"JSON Pointer reference (RFC 6901) to a location in the document (e.g., '#/path/to/target')\"\n },\n \"jsonPointerReferenceObject\": {\n \"title\": \"JSON Pointer Reference Object\",\n \"type\": \"object\",\n \"properties\": {\n \"$ref\": {\n \"$ref\": \"#/definitions/jsonPointerReference\"\n }\n },\n \"required\": [\"$ref\"],\n \"additionalProperties\": false,\n \"description\": \"Object containing a JSON Pointer reference for property-level references\"\n },\n \"tokenValueReference\": {\n \"title\": \"Token Value Reference\",\n \"oneOf\": [\n {\n \"$ref\": \"#/definitions/curlyBraceReference\"\n },\n {\n \"$ref\": \"#/definitions/jsonPointerReferenceObject\"\n }\n ],\n \"description\": \"A reference to a token value using either curly brace syntax or JSON Pointer syntax\"\n },\n \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\",\n \"title\": \"TokenType\",\n \"description\": \"A token type in the DTCG specification\",\n \"type\": \"string\",\n \"enum\": [\n \"color\",\n \"dimension\",\n \"fontFamily\",\n \"fontWeight\",\n \"duration\",\n \"cubicBezier\",\n \"number\",\n \"strokeStyle\",\n \"border\",\n \"transition\",\n \"shadow\",\n \"gradient\",\n \"typography\"\n ]\n },\n \"https://www.designtokens.org/schemas/2025.10/format/token.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/token.json\",\n \"title\": \"Token\",\n \"description\": \"A token in the DTCG specification\",\n \"type\": \"object\",\n \"properties\": {\n \"$value\": {\n \"description\": \"The token's value - can be a direct value or a reference to another token using curly brace syntax (e.g., '{token.name}'). Mutually exclusive with $ref.\"\n },\n \"$type\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\"\n },\n \"$ref\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReference\"\n },\n \"$description\": {\n \"type\": \"string\",\n \"description\": \"A plain text description of the token\"\n },\n \"$extensions\": {\n \"type\": \"object\",\n \"description\": \"Vendor-specific extensions\"\n },\n \"$deprecated\": {\n \"oneOf\": [\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Whether this token is deprecated\"\n }\n },\n \"additionalProperties\": false,\n \"allOf\": [\n {\n \"description\": \"Tokens cannot define both $value and $ref; they must choose exactly one form of reference or direct value.\",\n \"if\": {\n \"required\": [\"$value\"],\n \"properties\": {\n \"$value\": true\n }\n },\n \"then\": {\n \"not\": {\n \"required\": [\"$ref\"],\n \"properties\": {\n \"$ref\": true\n }\n }\n },\n \"else\": {\n \"required\": [\"$ref\"],\n \"properties\": {\n \"$ref\": true\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"color\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"dimension\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"fontFamily\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"fontWeight\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"duration\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"cubicBezier\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"number\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"strokeStyle\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"border\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/border.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"transition\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/transition.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"shadow\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/shadow.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"gradient\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/gradient.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\"$type\"],\n \"properties\": {\n \"$type\": {\n \"const\": \"typography\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/typography.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"allOf\": [\n {\n \"not\": {\n \"required\": [\"$type\"]\n }\n },\n {\n \"required\": [\"$value\"]\n },\n {\n \"properties\": {\n \"$value\": {\n \"not\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n }\n }\n }\n ]\n },\n \"then\": {\n \"properties\": {\n \"$value\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/border.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/transition.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/shadow.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/gradient.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/typography.json\"\n },\n {\n \"anyOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\"\n }\n ]\n }\n ]\n }\n }\n }\n }\n ]\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\",\n \"title\": \"Color Value\",\n \"description\": \"Value schema for color type tokens. Represents a color in a specific color space.\",\n \"type\": \"object\",\n \"properties\": {\n \"colorSpace\": {\n \"description\": \"The color space or color model used to represent the color\",\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"srgb\",\n \"srgb-linear\",\n \"hsl\",\n \"hwb\",\n \"lab\",\n \"lch\",\n \"oklab\",\n \"oklch\",\n \"display-p3\",\n \"a98-rgb\",\n \"prophoto-rgb\",\n \"rec2020\",\n \"xyz-d65\",\n \"xyz-d50\"\n ]\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"components\": {\n \"description\": \"Array of color components. The number and meaning of components depend on the color space. Each component can be a number or the 'none' keyword.\",\n \"oneOf\": [\n {\n \"type\": \"array\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"alpha\": {\n \"description\": \"The alpha (transparency) value of the color. 0 is fully transparent, 1 is fully opaque. If omitted, defaults to 1.\",\n \"oneOf\": [\n {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"hex\": {\n \"description\": \"Optional fallback value in 6-digit CSS hex color notation (e.g., '#ff00ff'). Must be 6 digits to avoid conflicts with the alpha value.\",\n \"$comment\": \"Only JSON Pointer references (not curly brace references) are allowed for hex because no string token type exists in the specification that could be referenced with curly braces.\",\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^#[0-9a-fA-F]{6}$\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n }\n },\n \"required\": [\"colorSpace\", \"components\"],\n \"additionalProperties\": false,\n \"definitions\": {\n \"zeroToOneComponent\": {\n \"title\": \"Zero to One Component\",\n \"description\": \"A color component normalized to the range [0-1] (e.g., RGB values, XYZ values)\",\n \"oneOf\": [\n {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n {\n \"type\": \"string\",\n \"const\": \"none\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"hueComponent\": {\n \"title\": \"Hue Component\",\n \"description\": \"Hue angle from 0 up to (but not including) 360 degrees\",\n \"oneOf\": [\n {\n \"type\": \"number\",\n \"minimum\": 0,\n \"exclusiveMaximum\": 360\n },\n {\n \"type\": \"string\",\n \"const\": \"none\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"percentageComponent\": {\n \"title\": \"Percentage Component\",\n \"description\": \"Percentage value from 0 to 100\",\n \"oneOf\": [\n {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n {\n \"type\": \"string\",\n \"const\": \"none\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"chromaComponent\": {\n \"title\": \"Chroma Component\",\n \"description\": \"Chroma value from 0 to infinity\",\n \"oneOf\": [\n {\n \"type\": \"number\",\n \"minimum\": 0\n },\n {\n \"type\": \"string\",\n \"const\": \"none\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"unboundedComponent\": {\n \"title\": \"Unbounded Component\",\n \"description\": \"A color component with no numeric bounds (e.g., A and B in LAB/OKLAB color spaces)\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"string\",\n \"const\": \"none\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"rgbComponents\": {\n \"title\": \"RGB Components\",\n \"description\": \"Array of RGB color components [Red, Green, Blue], each normalized to the range [0-1]\",\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": [\n {\n \"$ref\": \"#/definitions/zeroToOneComponent\"\n },\n {\n \"$ref\": \"#/definitions/zeroToOneComponent\"\n },\n {\n \"$ref\": \"#/definitions/zeroToOneComponent\"\n }\n ]\n },\n \"xyzComponents\": {\n \"title\": \"XYZ Components\",\n \"description\": \"Array of XYZ color components [X, Y, Z], each normalized to the range [0-1]\",\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": [\n {\n \"$ref\": \"#/definitions/zeroToOneComponent\"\n },\n {\n \"$ref\": \"#/definitions/zeroToOneComponent\"\n },\n {\n \"$ref\": \"#/definitions/zeroToOneComponent\"\n }\n ]\n }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"srgb\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"$ref\": \"#/definitions/rgbComponents\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"srgb-linear\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"$ref\": \"#/definitions/rgbComponents\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"display-p3\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"$ref\": \"#/definitions/rgbComponents\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"a98-rgb\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"$ref\": \"#/definitions/rgbComponents\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"prophoto-rgb\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"$ref\": \"#/definitions/rgbComponents\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"rec2020\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"$ref\": \"#/definitions/rgbComponents\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"xyz-d65\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"$ref\": \"#/definitions/xyzComponents\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"xyz-d50\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"$ref\": \"#/definitions/xyzComponents\"\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"hsl\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": [\n {\n \"$ref\": \"#/definitions/hueComponent\"\n },\n {\n \"$ref\": \"#/definitions/percentageComponent\"\n },\n {\n \"$ref\": \"#/definitions/percentageComponent\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"hwb\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": [\n {\n \"$ref\": \"#/definitions/hueComponent\"\n },\n {\n \"$ref\": \"#/definitions/percentageComponent\"\n },\n {\n \"$ref\": \"#/definitions/percentageComponent\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"lab\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": [\n {\n \"$ref\": \"#/definitions/percentageComponent\"\n },\n {\n \"$ref\": \"#/definitions/unboundedComponent\"\n },\n {\n \"$ref\": \"#/definitions/unboundedComponent\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"lch\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": [\n {\n \"$ref\": \"#/definitions/percentageComponent\"\n },\n {\n \"$ref\": \"#/definitions/chromaComponent\"\n },\n {\n \"$ref\": \"#/definitions/hueComponent\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"oklab\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": [\n {\n \"$ref\": \"#/definitions/zeroToOneComponent\"\n },\n {\n \"$ref\": \"#/definitions/unboundedComponent\"\n },\n {\n \"$ref\": \"#/definitions/unboundedComponent\"\n }\n ]\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"colorSpace\": {\n \"const\": \"oklch\"\n },\n \"components\": {\n \"type\": \"array\"\n }\n }\n },\n \"then\": {\n \"properties\": {\n \"components\": {\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": [\n {\n \"$ref\": \"#/definitions/zeroToOneComponent\"\n },\n {\n \"$ref\": \"#/definitions/chromaComponent\"\n },\n {\n \"$ref\": \"#/definitions/hueComponent\"\n }\n ]\n }\n }\n }\n }\n ]\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\",\n \"title\": \"Dimension Value\",\n \"description\": \"Value schema for dimension type tokens. Represents an amount of distance in a single dimension in the UI, such as a position, width, height, radius, or thickness.\",\n \"type\": \"object\",\n \"properties\": {\n \"value\": {\n \"description\": \"An integer or floating-point value representing the numeric value.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"unit\": {\n \"description\": \"Unit of distance. Supported values: 'px' (idealized pixel, equivalent to dp on Android and pt on iOS), 'rem' (multiple of system's default font size).\",\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\"px\", \"rem\"]\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n }\n },\n \"required\": [\"value\", \"unit\"],\n \"additionalProperties\": false\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\",\n \"title\": \"Font Family Value\",\n \"description\": \"Value schema for fontFamily type tokens. Represents a font name or an array of font names (ordered from most to least preferred).\",\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"description\": \"A single font name\",\n \"not\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference\"\n }\n },\n {\n \"type\": \"array\",\n \"description\": \"An array of font names, ordered from most to least preferred\",\n \"items\": {\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"not\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference\"\n }\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"minItems\": 1\n }\n ]\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\",\n \"title\": \"Font Weight Value\",\n \"description\": \"Value schema for fontWeight type tokens. Represents a font weight as per the OpenType wght tag specification. Lower numbers represent lighter weights, higher numbers represent thicker weights.\",\n \"oneOf\": [\n {\n \"type\": \"number\",\n \"description\": \"Numeric font weight value\",\n \"minimum\": 1,\n \"maximum\": 1000\n },\n {\n \"type\": \"string\",\n \"description\": \"Pre-defined font weight string value\",\n \"enum\": [\n \"thin\",\n \"hairline\",\n \"extra-light\",\n \"ultra-light\",\n \"light\",\n \"normal\",\n \"regular\",\n \"book\",\n \"medium\",\n \"semi-bold\",\n \"demi-bold\",\n \"bold\",\n \"extra-bold\",\n \"ultra-bold\",\n \"black\",\n \"heavy\",\n \"extra-black\",\n \"ultra-black\"\n ]\n }\n ]\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\",\n \"title\": \"Duration Value\",\n \"description\": \"Value schema for duration type tokens. Represents the length of time in milliseconds an animation or animation cycle takes to complete.\",\n \"type\": \"object\",\n \"properties\": {\n \"value\": {\n \"description\": \"An integer or floating-point value representing the numeric value.\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"unit\": {\n \"description\": \"Unit of time. Supported values: 'ms' (millisecond), 's' (second).\",\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\"ms\", \"s\"]\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n }\n },\n \"required\": [\"value\", \"unit\"],\n \"additionalProperties\": false\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\",\n \"title\": \"Cubic Bezier Value\",\n \"description\": \"Value schema for cubicBezier type tokens. Represents how the value of an animated property progresses towards completion over the duration of an animation, effectively creating visual effects such as acceleration, deceleration, and bounce.\",\n \"type\": \"array\",\n \"items\": [\n {\n \"$ref\": \"#/definitions/xCoordinate\"\n },\n {\n \"$ref\": \"#/definitions/yCoordinate\"\n },\n {\n \"$ref\": \"#/definitions/xCoordinate\"\n },\n {\n \"$ref\": \"#/definitions/yCoordinate\"\n }\n ],\n \"additionalItems\": false,\n \"minItems\": 4,\n \"maxItems\": 4,\n \"definitions\": {\n \"xCoordinate\": {\n \"title\": \"X Coordinate\",\n \"description\": \"X coordinate of control point (must be between 0 and 1)\",\n \"oneOf\": [\n {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"yCoordinate\": {\n \"title\": \"Y Coordinate\",\n \"description\": \"Y coordinate of control point (can be any real number)\",\n \"oneOf\": [\n {\n \"type\": \"number\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n }\n }\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\",\n \"title\": \"Number Value\",\n \"description\": \"Value schema for number type tokens. Numbers can be positive, negative and have fractions. Example uses are gradient stop positions or unitless line heights.\",\n \"type\": \"number\"\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\",\n \"title\": \"Stroke Style Value\",\n \"description\": \"Value schema for strokeStyle type tokens. Represents the style applied to lines or borders.\",\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"solid\",\n \"dashed\",\n \"dotted\",\n \"double\",\n \"groove\",\n \"ridge\",\n \"outset\",\n \"inset\"\n ],\n \"description\": \"Pre-defined stroke style values with the same meaning as CSS line style values\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"dashArray\": {\n \"description\": \"Array of dimension values specifying lengths of alternating dashes and gaps\",\n \"oneOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"minItems\": 1\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n },\n \"lineCap\": {\n \"description\": \"Line cap style, same meaning as SVG stroke-linecap attribute\",\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\"round\", \"butt\", \"square\"]\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n }\n },\n \"required\": [\"dashArray\", \"lineCap\"],\n \"additionalProperties\": false\n }\n ]\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/border.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/border.json\",\n \"title\": \"Border Value\",\n \"description\": \"Value schema for border type tokens. Represents a border style.\",\n \"type\": \"object\",\n \"properties\": {\n \"color\": {\n \"description\": \"The color of the border\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"width\": {\n \"description\": \"The width or thickness of the border\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"style\": {\n \"description\": \"The border's style\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n },\n \"required\": [\"color\", \"width\", \"style\"],\n \"additionalProperties\": false\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/transition.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/transition.json\",\n \"title\": \"Transition Value\",\n \"description\": \"Value schema for transition type tokens. Represents an animated transition between two states.\",\n \"type\": \"object\",\n \"properties\": {\n \"duration\": {\n \"description\": \"The duration of the transition\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"delay\": {\n \"description\": \"The time to wait before the transition begins\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"timingFunction\": {\n \"description\": \"The timing function of the transition\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n },\n \"required\": [\"duration\", \"delay\", \"timingFunction\"],\n \"additionalProperties\": false\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/shadow.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/shadow.json\",\n \"title\": \"Shadow Value\",\n \"description\": \"Value schema for shadow type tokens. Represents a shadow style.\",\n \"oneOf\": [\n {\n \"$ref\": \"#/definitions/shadowObject\"\n },\n {\n \"type\": \"array\",\n \"description\": \"Array of shadow objects and/or references to shadow tokens\",\n \"items\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/definitions/shadowObject\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"minItems\": 1\n }\n ],\n \"definitions\": {\n \"shadowObject\": {\n \"title\": \"Shadow Object\",\n \"type\": \"object\",\n \"properties\": {\n \"color\": {\n \"description\": \"The color of the shadow\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"offsetX\": {\n \"description\": \"The horizontal offset that shadow has from the element it is applied to\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"offsetY\": {\n \"description\": \"The vertical offset that shadow has from the element it is applied to\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"blur\": {\n \"description\": \"The blur radius that is applied to the shadow\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"spread\": {\n \"description\": \"The amount by which to expand or contract the shadow\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"inset\": {\n \"description\": \"Whether this shadow is inside the containing shape (inner shadow) rather than a drop shadow (default: false)\",\n \"oneOf\": [\n {\n \"type\": \"boolean\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n }\n ]\n }\n },\n \"required\": [\"color\", \"offsetX\", \"offsetY\", \"blur\", \"spread\"],\n \"additionalProperties\": false\n }\n }\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/gradient.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/gradient.json\",\n \"title\": \"Gradient Value\",\n \"description\": \"Value schema for gradient type tokens. Represents a color gradient.\",\n \"type\": \"array\",\n \"items\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/definitions/gradientStop\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"minItems\": 1,\n \"definitions\": {\n \"gradientStop\": {\n \"title\": \"Gradient Stop\",\n \"type\": \"object\",\n \"properties\": {\n \"color\": {\n \"description\": \"The color value at the stop's position on the gradient\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"position\": {\n \"description\": \"The position of the stop along the gradient's axis (range [0, 1]). Values outside this range are clamped.\",\n \"oneOf\": [\n {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n },\n \"required\": [\"color\", \"position\"],\n \"additionalProperties\": false\n }\n }\n },\n \"https://www.designtokens.org/schemas/2025.10/format/values/typography.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/typography.json\",\n \"title\": \"Typography Value\",\n \"description\": \"Value schema for typography type tokens. Represents a typographic style.\",\n \"type\": \"object\",\n \"properties\": {\n \"fontFamily\": {\n \"description\": \"The typography's font\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"fontSize\": {\n \"description\": \"The size of the typography\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"fontWeight\": {\n \"description\": \"The weight of the typography\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"letterSpacing\": {\n \"description\": \"The horizontal spacing between characters\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n },\n \"lineHeight\": {\n \"description\": \"The vertical spacing between lines of typography (interpreted as a multiplier of fontSize)\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n }\n ]\n }\n },\n \"required\": [\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"letterSpacing\",\n \"lineHeight\"\n ],\n \"additionalProperties\": false\n },\n \"https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json\",\n \"title\": \"Group or Token\",\n \"description\": \"A group or a token in the DTCG specification. A token is identified by the presence of a $value property, while a group is any object without a $value property.\",\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/group.json\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/token.json\"\n }\n ]\n },\n \"https://www.designtokens.org/schemas/2025.10/format/group.json\": {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/group.json\",\n \"title\": \"Group\",\n \"description\": \"A group in the DTCG specification\",\n \"type\": \"object\",\n \"properties\": {\n \"$type\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\"\n },\n \"$description\": {\n \"type\": \"string\",\n \"description\": \"A plain text description of the group\"\n },\n \"$extensions\": {\n \"type\": \"object\",\n \"description\": \"Vendor-specific extensions\"\n },\n \"$extends\": {\n \"oneOf\": [\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference\"\n },\n {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReference\"\n }\n ],\n \"description\": \"Reference to another group to inherit tokens and properties from\"\n },\n \"$deprecated\": {\n \"oneOf\": [\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"description\": \"Whether this group is deprecated\"\n },\n \"$root\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/token.json\"\n }\n },\n \"patternProperties\": {\n \"^[^${}.][^{}.]*$\": {\n \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json\"\n }\n },\n \"additionalProperties\": false\n }\n }\n}\n","import { z } from 'zod';\nimport {\n ContractIdentifierSchema,\n EntityRefSchema,\n IsoDateTimeSchema,\n JsonValueSchema,\n Sha256Schema,\n} from './common';\n\nexport const RadarDecisionMetricsSchema = z\n .object({\n currentSales: z.number().finite(),\n forecastSales: z.number().finite(),\n searchHeat: z.number().finite(),\n socialHeat: z.number().finite(),\n confidence: z.number().min(0).max(1),\n })\n .strict();\n\nexport const TrendSourceSchema = z\n .object({\n sourceId: ContractIdentifierSchema,\n provider: ContractIdentifierSchema,\n channel: z.enum(['trend', 'ecommerce', 'social', 'search', 'internal']),\n collectedAt: IsoDateTimeSchema,\n sourceUrl: z.string().url().optional(),\n evidenceRefs: z.array(EntityRefSchema).default([]),\n })\n .strict();\n\nexport const TrendIngestRunSchema = z\n .object({\n contract: z.literal('TrendIngestRun'),\n ingestRunId: ContractIdentifierSchema,\n sourceId: ContractIdentifierSchema,\n requestId: ContractIdentifierSchema,\n idempotencyKey: ContractIdentifierSchema,\n status: z.enum(['RUNNING', 'SUCCEEDED', 'FAILED', 'PARTIAL']),\n recordCount: z.number().int().nonnegative(),\n errorCount: z.number().int().nonnegative(),\n startedAt: IsoDateTimeSchema,\n completedAt: IsoDateTimeSchema.optional(),\n })\n .strict();\n\nexport const TrendSourceRecordSchema = z\n .object({\n contract: z.literal('TrendSourceRecord'),\n sourceRecordId: ContractIdentifierSchema,\n source: TrendSourceSchema,\n ingestRunRef: EntityRefSchema,\n recordVersion: z.number().int().positive(),\n contentHash: Sha256Schema,\n payload: JsonValueSchema,\n idempotencyKey: ContractIdentifierSchema,\n collectedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const HotwordBodySchema = z\n .object({\n contract: z.literal('HotwordBody'),\n hotwordId: ContractIdentifierSchema,\n label: z.string().trim().min(1),\n normalizedLabel: z.string().trim().min(1),\n categories: z.array(ContractIdentifierSchema).default([]),\n sourceRefs: z.array(TrendSourceSchema).min(1),\n relationRefs: z.array(EntityRefSchema).default([]),\n createdAt: IsoDateTimeSchema,\n updatedAt: IsoDateTimeSchema,\n })\n .strict();\n\nconst CommerceBodyFieldsSchema = {\n displayName: z.string().trim().min(1),\n normalizedName: z.string().trim().min(1),\n categories: z.array(ContractIdentifierSchema).default([]),\n sourceRefs: z.array(EntityRefSchema).min(1),\n relationRefs: z.array(EntityRefSchema).default([]),\n createdAt: IsoDateTimeSchema,\n updatedAt: IsoDateTimeSchema,\n};\n\nexport const BrandBodySchema = z\n .object({\n contract: z.literal('BrandBody'),\n brandId: ContractIdentifierSchema,\n ...CommerceBodyFieldsSchema,\n })\n .strict();\n\nexport const ProductBodySchema = z\n .object({\n contract: z.literal('ProductBody'),\n productId: ContractIdentifierSchema,\n brandRef: EntityRefSchema.optional(),\n ...CommerceBodyFieldsSchema,\n })\n .strict();\n\nexport const TrendMetricSnapshotSchema = z\n .object({\n contract: z.literal('TrendMetricSnapshot'),\n snapshotId: ContractIdentifierSchema,\n subjectRef: EntityRefSchema,\n observedAt: IsoDateTimeSchema,\n metrics: z.record(z.string(), z.number().finite()),\n confidence: z.number().min(0).max(1),\n evidenceRefs: z.array(EntityRefSchema).min(1),\n })\n .strict();\n\nexport const RadarScoreModelBodySchema = z\n .object({\n contract: z.literal('RadarScoreModelBody'),\n modelId: ContractIdentifierSchema,\n version: z.number().int().positive(),\n weights: RadarDecisionMetricsSchema,\n thresholds: z.record(z.string(), z.number().finite()).default({}),\n explanationRules: z.record(z.string(), z.string().trim().min(1)).default({}),\n createdAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const RadarScoreProjectionSchema = z\n .object({\n contract: z.literal('RadarScoreProjection'),\n projectionId: ContractIdentifierSchema,\n subjectRef: EntityRefSchema,\n modelRef: EntityRefSchema,\n totalScore: z.number().finite(),\n dimensions: RadarDecisionMetricsSchema,\n evidenceRefs: z.array(EntityRefSchema).min(1),\n freshnessAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const RadarPanoramaNodeSchema = z\n .object({\n ref: EntityRefSchema,\n label: z.string().trim().min(1),\n categories: z.array(ContractIdentifierSchema).default([]),\n score: z.number().finite().optional(),\n freshnessAt: IsoDateTimeSchema.optional(),\n })\n .strict();\n\nexport const RadarPanoramaEdgeSchema = z\n .object({\n sourceRef: EntityRefSchema,\n targetRef: EntityRefSchema,\n relation: ContractIdentifierSchema,\n evidenceRefs: z.array(EntityRefSchema).default([]),\n })\n .strict();\n\nexport const RadarPanoramaSchema = z\n .object({\n contract: z.literal('RadarPanorama'),\n nodes: z.array(RadarPanoramaNodeSchema),\n edges: z.array(RadarPanoramaEdgeSchema),\n generatedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const BrandGeneticsProfileSchema = z\n .object({\n contract: z.literal('BrandGeneticsProfile'),\n brandRef: EntityRefSchema,\n categories: z.array(ContractIdentifierSchema).default([]),\n signature: z.record(ContractIdentifierSchema, z.number().finite()),\n relatedRefs: z.array(EntityRefSchema).default([]),\n evidenceRefs: z.array(EntityRefSchema).default([]),\n computedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const RadarOpportunityMatrixPointSchema = z\n .object({\n subjectRef: EntityRefSchema,\n label: z.string().trim().min(1),\n x: z.number().finite(),\n y: z.number().finite(),\n score: z.number().finite(),\n evidenceRefs: z.array(EntityRefSchema).default([]),\n })\n .strict();\n\nexport const RadarOpportunityMatrixSchema = z\n .object({\n contract: z.literal('RadarOpportunityMatrix'),\n xMetric: z.enum(['currentSales', 'forecastSales', 'searchHeat', 'socialHeat', 'confidence']),\n yMetric: z.enum(['currentSales', 'forecastSales', 'searchHeat', 'socialHeat', 'confidence']),\n points: z.array(RadarOpportunityMatrixPointSchema),\n computedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const RadarQueryBodySchema = z\n .object({\n contract: z.literal('RadarQueryBody'),\n queryId: ContractIdentifierSchema,\n filters: z.record(z.string(), JsonValueSchema).default({}),\n sort: z\n .object({\n field: ContractIdentifierSchema,\n direction: z.enum(['asc', 'desc']),\n })\n .strict(),\n pageSize: z.number().int().min(1).max(200),\n updatedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const SavedRadarQuerySchema = z\n .object({\n contract: z.literal('SavedRadarQuery'),\n savedQueryId: ContractIdentifierSchema,\n teamId: ContractIdentifierSchema,\n ownerRef: EntityRefSchema,\n name: z.string().trim().min(1),\n queryRef: EntityRefSchema,\n expectedVersion: z.number().int().nonnegative(),\n updatedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const RadarSelectionSchema = z\n .object({\n contract: z.literal('RadarSelection'),\n selectionId: ContractIdentifierSchema,\n teamId: ContractIdentifierSchema,\n ownerRef: EntityRefSchema,\n subjectRefs: z.array(EntityRefSchema),\n status: z.enum(['stashed', 'selected', 'rejected', 'archived']),\n note: z.string().optional(),\n expectedVersion: z.number().int().nonnegative(),\n updatedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const RadarAnalysisRunSchema = z\n .object({\n contract: z.literal('RadarAnalysisRun'),\n runId: ContractIdentifierSchema,\n teamId: ContractIdentifierSchema,\n selectionRef: EntityRefSchema,\n workflowRef: EntityRefSchema,\n executionRef: EntityRefSchema.optional(),\n designProjectRef: EntityRefSchema.optional(),\n replayedFromRef: EntityRefSchema.optional(),\n workflowDefinitionTeamId: ContractIdentifierSchema.optional(),\n workflowInput: z.record(z.string(), JsonValueSchema).default({}),\n createDesignProject: z.boolean().default(true),\n designProjectName: z.string().trim().min(1).max(200).optional(),\n modelRef: EntityRefSchema,\n requestId: ContractIdentifierSchema,\n idempotencyKey: ContractIdentifierSchema,\n status: z.enum(['QUEUED', 'RUNNING', 'SUCCEEDED', 'FAILED', 'CANCELLED', 'PARTIAL']),\n outputRefs: z.array(EntityRefSchema).default([]),\n error: z\n .object({\n code: ContractIdentifierSchema,\n message: z.string().trim().min(1),\n retryable: z.boolean(),\n })\n .strict()\n .optional(),\n startedAt: IsoDateTimeSchema.optional(),\n completedAt: IsoDateTimeSchema.optional(),\n createdAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const RadarActionRecordSchema = z\n .object({\n contract: z.literal('RadarActionRecord'),\n actionId: ContractIdentifierSchema,\n teamId: ContractIdentifierSchema,\n actorRef: EntityRefSchema,\n action: z.enum(['stash', 'select', 'reject', 'archive', 'launch', 'retry', 'replay', 'rollback']),\n targetRef: EntityRefSchema,\n requestId: ContractIdentifierSchema,\n idempotencyKey: ContractIdentifierSchema,\n expectedVersion: z.number().int().nonnegative(),\n occurredAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport const RadarWritebackRecordSchema = z\n .object({\n contract: z.literal('RadarWritebackRecord'),\n writebackId: ContractIdentifierSchema,\n actionRef: EntityRefSchema,\n targetRef: EntityRefSchema,\n status: z.enum(['PENDING', 'APPLIED', 'FAILED']),\n resultingVersion: z.number().int().nonnegative().optional(),\n error: z.string().trim().min(1).optional(),\n recordedAt: IsoDateTimeSchema,\n })\n .strict();\n\nexport type TrendSource = z.infer<typeof TrendSourceSchema>;\nexport type TrendIngestRun = z.infer<typeof TrendIngestRunSchema>;\nexport type TrendSourceRecord = z.infer<typeof TrendSourceRecordSchema>;\nexport type HotwordBody = z.infer<typeof HotwordBodySchema>;\nexport type BrandBody = z.infer<typeof BrandBodySchema>;\nexport type ProductBody = z.infer<typeof ProductBodySchema>;\nexport type TrendMetricSnapshot = z.infer<typeof TrendMetricSnapshotSchema>;\nexport type RadarDecisionMetrics = z.infer<typeof RadarDecisionMetricsSchema>;\nexport type RadarScoreModelBody = z.infer<typeof RadarScoreModelBodySchema>;\nexport type RadarScoreProjection = z.infer<typeof RadarScoreProjectionSchema>;\nexport type RadarPanorama = z.infer<typeof RadarPanoramaSchema>;\nexport type BrandGeneticsProfile = z.infer<typeof BrandGeneticsProfileSchema>;\nexport type RadarOpportunityMatrix = z.infer<typeof RadarOpportunityMatrixSchema>;\nexport type RadarQueryBody = z.infer<typeof RadarQueryBodySchema>;\nexport type SavedRadarQuery = z.infer<typeof SavedRadarQuerySchema>;\nexport type RadarSelection = z.infer<typeof RadarSelectionSchema>;\nexport type RadarAnalysisRun = z.infer<typeof RadarAnalysisRunSchema>;\nexport type RadarActionRecord = z.infer<typeof RadarActionRecordSchema>;\nexport type RadarWritebackRecord = z.infer<typeof RadarWritebackRecordSchema>;\n","import { z } from 'zod';\nimport { ContractPortSchema } from './capability';\nimport {\n ContractIdentifierSchema,\n ContractMetadataSchema,\n EntityRefSchema,\n JsonValueSchema,\n LocalizedTextSchema,\n type JsonValue,\n type LocalizedText,\n} from './common';\n\nexport const ConductorTaskTypeSchema = z.enum([\n 'SIMPLE',\n 'DYNAMIC',\n 'FORK_JOIN',\n 'FORK_JOIN_DYNAMIC',\n 'DECISION',\n 'SWITCH',\n 'JOIN',\n 'DO_WHILE',\n 'SUB_WORKFLOW',\n 'START_WORKFLOW',\n 'EVENT',\n 'WAIT',\n 'HUMAN',\n 'USER_DEFINED',\n 'HTTP',\n 'LAMBDA',\n 'INLINE',\n 'EXCLUSIVE_JOIN',\n 'TERMINATE',\n 'KAFKA_PUBLISH',\n 'JSON_JQ_TRANSFORM',\n 'SET_VARIABLE',\n 'CALL_MCP_TOOL',\n 'GENERATE_AUDIO',\n 'GENERATE_IMAGE',\n 'GENERATE_PDF',\n 'GENERATE_VIDEO',\n 'LIST_MCP_TOOLS',\n 'LLM_CHAT_COMPLETE',\n 'LLM_GENERATE_EMBEDDINGS',\n 'LLM_INDEX_TEXT',\n 'LLM_SEARCH_INDEX',\n 'TITUS',\n 'USER_TASK',\n]);\n\nexport interface ConductorTaskDefinition {\n name: string;\n taskReferenceName: string;\n type: z.infer<typeof ConductorTaskTypeSchema>;\n inputParameters?: Record<string, JsonValue>;\n startDelay?: number;\n optional?: boolean;\n asyncComplete?: boolean;\n rateLimited?: boolean;\n retryCount?: number;\n taskDefinition?: Record<string, JsonValue>;\n loopCondition?: string;\n loopOver?: ConductorTaskDefinition[];\n sink?: string;\n forkTasks?: ConductorTaskDefinition[][];\n joinOn?: string[];\n defaultExclusiveJoinTask?: string[];\n dynamicForkTasksParam?: string;\n dynamicForkTasksInputParamName?: string;\n subWorkflowParam?: {\n $ref?: string;\n name: string;\n version?: number;\n taskToDomain?: Record<string, string>;\n workflowDefinition?: Record<string, JsonValue>;\n };\n decisionCases?: Record<string, ConductorTaskDefinition[]>;\n defaultCase?: ConductorTaskDefinition[];\n evaluatorType?: 'value-param' | 'javascript' | 'graaljs';\n expression?: string;\n __alias?: JsonValue;\n callbackFromWorker?: boolean;\n caseExpression?: JsonValue;\n caseValueParam?: string;\n dependencies?: JsonValue[];\n description?: string;\n dynamicTaskNameParam?: string;\n joinMode?: string;\n permissive?: boolean;\n joinTaskRef?: string;\n forkTaskRef?: string;\n}\n\nconst requiredTaskFields: Partial<Record<ConductorTaskDefinition['type'], readonly (keyof ConductorTaskDefinition)[]>> = {\n DO_WHILE: ['inputParameters', 'loopOver'],\n EVENT: ['sink'],\n FORK_JOIN: ['forkTasks'],\n FORK_JOIN_DYNAMIC: ['inputParameters', 'dynamicForkTasksParam', 'dynamicForkTasksInputParamName'],\n DYNAMIC: ['inputParameters'],\n JOIN: ['joinOn'],\n SUB_WORKFLOW: ['subWorkflowParam'],\n SWITCH: ['inputParameters', 'decisionCases', 'evaluatorType', 'expression'],\n DECISION: ['inputParameters', 'decisionCases'],\n WAIT: ['inputParameters'],\n TERMINATE: ['inputParameters'],\n};\n\nexport const ConductorTaskDefinitionSchema: z.ZodType<ConductorTaskDefinition> = z.lazy(() =>\n z\n .object({\n name: ContractIdentifierSchema,\n taskReferenceName: ContractIdentifierSchema,\n type: ConductorTaskTypeSchema,\n inputParameters: z.record(z.string(), JsonValueSchema).optional(),\n startDelay: z.number().int().nonnegative().optional(),\n optional: z.boolean().optional(),\n asyncComplete: z.boolean().optional(),\n rateLimited: z.boolean().optional(),\n retryCount: z.number().int().nonnegative().optional(),\n taskDefinition: z.record(z.string(), JsonValueSchema).optional(),\n loopCondition: z.string().optional(),\n loopOver: z.array(ConductorTaskDefinitionSchema).optional(),\n sink: z.string().optional(),\n forkTasks: z.array(z.array(ConductorTaskDefinitionSchema)).optional(),\n joinOn: z.array(ContractIdentifierSchema).optional(),\n defaultExclusiveJoinTask: z.array(ContractIdentifierSchema).optional(),\n dynamicForkTasksParam: z.string().optional(),\n dynamicForkTasksInputParamName: z.string().optional(),\n subWorkflowParam: z\n .object({\n $ref: z.string().optional(),\n name: ContractIdentifierSchema,\n version: z.number().int().positive().optional(),\n taskToDomain: z.record(z.string(), z.string()).optional(),\n workflowDefinition: z.record(z.string(), JsonValueSchema).optional(),\n })\n .strict()\n .optional(),\n decisionCases: z.record(z.string(), z.array(ConductorTaskDefinitionSchema)).optional(),\n defaultCase: z.array(ConductorTaskDefinitionSchema).optional(),\n evaluatorType: z.enum(['value-param', 'javascript', 'graaljs']).optional(),\n expression: z.string().optional(),\n __alias: JsonValueSchema.optional(),\n callbackFromWorker: z.boolean().optional(),\n caseExpression: JsonValueSchema.optional(),\n caseValueParam: z.string().optional(),\n dependencies: z.array(JsonValueSchema).optional(),\n description: z.string().optional(),\n dynamicTaskNameParam: z.string().optional(),\n joinMode: z.string().optional(),\n permissive: z.boolean().optional(),\n joinTaskRef: ContractIdentifierSchema.optional(),\n forkTaskRef: ContractIdentifierSchema.optional(),\n })\n .strict()\n .superRefine((task, context) => {\n for (const field of requiredTaskFields[task.type] ?? []) {\n if (task[field] === undefined) {\n context.addIssue({ code: 'custom', path: [field], message: `${task.type} task requires ${String(field)}.` });\n }\n }\n if (\n task.type === 'DO_WHILE' &&\n (task.inputParameters?.mode === undefined || task.inputParameters.mode === 'expression') &&\n task.loopCondition === undefined &&\n task.inputParameters?.loopCondition === undefined\n ) {\n context.addIssue({ code: 'custom', path: ['loopCondition'], message: 'Expression DO_WHILE task requires loopCondition.' });\n }\n }),\n);\n\nexport const ConductorWorkflowDefinitionSchema = z.object({\n ownerApp: z.string().optional(),\n createTime: z.number().int().nonnegative().optional(),\n updateTime: z.number().int().nonnegative().optional(),\n createdBy: z.string().optional(),\n updatedBy: z.string().optional(),\n name: ContractIdentifierSchema,\n description: z.string().optional(),\n version: z.number().int().positive(),\n tasks: z.array(ConductorTaskDefinitionSchema),\n inputParameters: z.array(ContractIdentifierSchema),\n outputParameters: z.record(z.string(), JsonValueSchema).optional(),\n failureWorkflow: ContractIdentifierSchema.optional(),\n schemaVersion: z.number().int().positive().optional(),\n restartable: z.boolean().optional(),\n workflowStatusListenerEnabled: z.boolean().optional(),\n ownerEmail: z.string().email().optional(),\n timeoutPolicy: z.enum(['TIME_OUT_WF', 'ALERT_ONLY']).optional(),\n timeoutSeconds: z.number().int().nonnegative(),\n variables: z.record(z.string(), JsonValueSchema).optional(),\n inputTemplate: z.record(z.string(), JsonValueSchema).optional(),\n}).strict();\n\nexport const WorkflowParameterTypeSchema = z.enum([\n 'string',\n 'file',\n 'number',\n 'boolean',\n 'options',\n 'json',\n 'notice',\n 'canvas-assist',\n]);\n\nconst WorkflowConditionalStateSchema = z\n .object({\n conditions: z.array(\n z\n .object({\n field: z.string(),\n operator: z.enum(['is', 'isNot', 'isGreaterThan', 'isLessThan', 'isGreaterThanOrEqual', 'isLessThanOrEqual', 'in', 'notIn']),\n value: JsonValueSchema,\n })\n .strict(),\n ),\n logic: z.enum(['AND', 'OR']).optional(),\n })\n .strict();\n\nconst ImageSelectMappingAppearanceSchema = z\n .object({\n columns: z.number().int().min(1).max(4).optional(),\n cardSize: z.enum(['sm', 'md', 'lg']).optional(),\n imageAspectRatio: z.enum(['square', '4:5', '3:4', '16:9']).optional(),\n gap: z.enum(['sm', 'md', 'lg']).optional(),\n radius: z.enum(['sm', 'md', 'lg', 'xl']).optional(),\n borderStyle: z.enum(['none', 'soft', 'strong']).optional(),\n borderWidth: z.union([z.literal(0), z.literal(1), z.literal(2)]).optional(),\n enableScroll: z.boolean().optional(),\n maxHeight: z.number().int().min(160).max(1200).optional(),\n enableCollapse: z.boolean().optional(),\n visibleRows: z.number().int().min(1).max(6).optional(),\n hideLabel: z.boolean().optional(),\n hideDescription: z.boolean().optional(),\n hideValue: z.boolean().optional(),\n })\n .strict();\n\nconst ComfyWorkflowPortBindingSchema = z\n .object({\n node: z.union([z.string(), z.number()]),\n key: z.string().optional(),\n })\n .strict();\n\nconst WorkflowParameterTypeOptionsSchema = z\n .object({\n editor: z.enum(['code', 'codeNodeEditor', 'htmlEditor', 'sqlEditor', 'json']).optional(),\n editorLanguage: z.enum(['javaScript', 'json', 'python', 'sql']).optional(),\n maxValue: z.number().optional(), minValue: z.number().optional(), max: z.number().optional(), min: z.number().optional(),\n multipleValues: z.boolean().optional(), numberPrecision: z.number().nonnegative().optional(), password: z.boolean().optional(), rows: z.number().int().positive().optional(),\n assetType: z.string().optional(), accept: z.string().optional(), maxSize: z.number().positive().optional(), fileType: z.string().optional(),\n aiMultiShotMainImageField: z.string().optional(), aiMultiShotWorkflowAppId: z.string().optional(), aiMultiShotWorkflowId: z.string().optional(),\n allowCustomInput: z.boolean().optional(), allowUploadVideo: z.boolean().optional(), aspectRatioField: z.string().optional(), assemblyValueType: z.string().optional(),\n autoAnalyzeDesignImage: z.boolean().optional(), autoDetectAspectRatio: z.boolean().optional(), autoIncrementId: z.boolean().optional(), comfyOptions: ComfyWorkflowPortBindingSchema.optional(), comfyuiModelServerId: z.string().optional(), comfyuiModelTypeName: z.string().optional(),\n defaultCustomInput: JsonValueSchema.optional(), descriptionAlert: z.boolean().optional(), disabled: z.union([z.boolean(), WorkflowConditionalStateSchema]).optional(), editable: z.union([z.boolean(), WorkflowConditionalStateSchema]).optional(),\n enableAiMultiShot: z.boolean().optional(), enableBooleanSwitchMode: z.boolean().optional(), enableClear: z.boolean().optional(), enableExpand: z.boolean().optional(), enableImageMask: z.boolean().optional(), enableImageOverlay: z.boolean().optional(), enablePopupEditor: z.boolean().optional(), enablePromptFontSize: z.boolean().optional(), enableReset: z.boolean().optional(), enableSelectItemIcon: z.boolean().optional(), enableSelectList: z.boolean().optional(), enableSelectSearch: z.boolean().optional(), enableSliderEnterMode: z.boolean().optional(), enableVoice: z.boolean().optional(),\n expandButtonText: z.string().optional(), foldUp: z.boolean().optional(), hidden: z.boolean().optional(), hideRequiredDot: z.boolean().optional(), inlineTitleWithSelect: z.boolean().optional(), knowledgeGraphButtonText: z.string().optional(),\n identifyAttributeCount: z.union([z.number().nonnegative(), z.string().min(1), z.object({ min: z.number().nonnegative().optional(), max: z.number().nonnegative().optional() }).strict()]).optional(), identifyAttributes: z.array(JsonValueSchema).optional(), identifyMaxVariants: z.number().int().nonnegative().optional(), identifySourceField: z.string().optional(),\n imageOverlayBaseField: z.string().optional(), imageOverlayOverlayField: z.string().optional(), imageSelectMappingAppearance: ImageSelectMappingAppearanceSchema.optional(), imageSelectMappingColumns: z.number().int().min(1).max(4).optional(), imageSelectMappingEnableCustomUpload: z.boolean().optional(), imageSelectMappingHideLabel: z.boolean().optional(), imageSelectMappingHideLink: z.boolean().optional(), imageSelectMappingHideMeta: z.boolean().optional(), imageSelectMappingInlineUseLargeUploadBox: z.boolean().optional(), imageSelectMappingPromptField: z.string().optional(), imageSelectMappingTabOrder: z.enum(['template-first', 'upload-first']).optional(), imageSelectMappingTabWidthMode: z.enum(['content', 'fill']).optional(), imageSelectMappingTemplatePrompt: LocalizedTextSchema.optional(), imageSelectMappingTemplateTabTitle: LocalizedTextSchema.optional(), imageSelectMappingUploadMode: z.enum(['tabs', 'inline']).optional(), imageSelectMappingUploadPrompt: LocalizedTextSchema.optional(), imageSelectMappingUploadTabTitle: LocalizedTextSchema.optional(),\n endpoints: z.array(JsonValueSchema).optional(), examples: z.array(JsonValueSchema).optional(), extraData: JsonValueSchema.optional(), layer: JsonValueSchema.optional(), map: JsonValueSchema.optional(), multiline: z.boolean().optional(), options: z.array(JsonValueSchema).optional(), originalFiles: z.array(JsonValueSchema).optional(), placeholder: LocalizedTextSchema.optional(), preserveSelectListOrder: z.boolean().optional(), promptDictionary: JsonValueSchema.optional(), promptFontSize: z.number().optional(), promptModeToggle: JsonValueSchema.optional(), requireActiveSelectFilter: z.boolean().optional(), restoreDefaultOnEmptyEnter: z.boolean().optional(), search: z.boolean().optional(),\n selectButtonEnableCollapse: z.boolean().optional(), selectButtonVisibleRows: z.number().int().positive().optional(), selectList: z.array(JsonValueSchema).optional(), selectListDisplayMode: z.string().optional(), selectPromptField: z.string().optional(), showAddLocalFileButton: z.boolean().optional(), singleColumn: z.boolean().optional(), singleFrameForMultiple: z.boolean().optional(), textSingleLine: z.boolean().optional(), textareaMiniHeight: z.number().nonnegative().optional(), tips: LocalizedTextSchema.optional(), visibility: JsonValueSchema.optional(), voiceButtonText: z.string().optional(),\n designAnalysisFields: z.array(JsonValueSchema).optional(), designAnalysisFillStrategy: z.string().optional(), designAnalysisMaxFields: z.number().int().nonnegative().optional(), designAnalysisType: z.string().optional(),\n designAnalysisFieldPrefix: z.string().optional(),\n })\n .strict();\n\nexport interface WorkflowParameter {\n displayName: LocalizedText;\n name: string;\n type: z.infer<typeof WorkflowParameterTypeSchema>;\n typeOptions?: z.infer<typeof WorkflowParameterTypeOptionsSchema>;\n default?: JsonValue;\n description?: LocalizedText;\n hint?: string;\n displayOptions?: { hide?: Record<string, JsonValue[]>; show?: Record<string, JsonValue[]> };\n options?: Array<WorkflowParameterOption | WorkflowParameter | WorkflowParameterCollection>;\n placeholder?: LocalizedText;\n isNodeSetting?: boolean;\n noDataExpression?: boolean;\n required?: boolean;\n example?: string;\n extractValue?: { type: 'regex'; regex: string };\n properties?: WorkflowParameter[];\n assetType?: string;\n flag?: boolean;\n enableExpand?: boolean;\n enableVoice?: boolean;\n expandButtonText?: string;\n knowledgeGraphButtonText?: string;\n selectListDisplayMode?: string;\n voiceButtonText?: string;\n}\n\nexport interface WorkflowParameterOption {\n name: LocalizedText;\n value: string | number | boolean;\n action?: string;\n description?: LocalizedText;\n}\n\nexport interface WorkflowParameterCollection {\n displayName: string;\n name: string;\n values: WorkflowParameter[];\n}\n\nexport const WorkflowParameterSchema: z.ZodType<WorkflowParameter> = z.lazy(() =>\n z.object({\n displayName: LocalizedTextSchema,\n name: ContractIdentifierSchema,\n type: WorkflowParameterTypeSchema,\n typeOptions: WorkflowParameterTypeOptionsSchema.optional(),\n default: JsonValueSchema.optional(),\n description: LocalizedTextSchema.optional(),\n hint: z.string().optional(),\n displayOptions: z.object({\n hide: z.record(z.string(), z.array(JsonValueSchema)).optional(),\n show: z.record(z.string(), z.array(JsonValueSchema)).optional(),\n }).strict().optional(),\n options: z.array(z.union([\n z.object({ name: LocalizedTextSchema, value: z.union([z.string(), z.number(), z.boolean()]), action: z.string().optional(), description: LocalizedTextSchema.optional() }).strict(),\n WorkflowParameterSchema,\n z.object({ displayName: z.string(), name: ContractIdentifierSchema, values: z.array(WorkflowParameterSchema) }).strict(),\n ])).optional(),\n placeholder: LocalizedTextSchema.optional(),\n isNodeSetting: z.boolean().optional(), noDataExpression: z.boolean().optional(), required: z.boolean().optional(), example: z.string().optional(),\n extractValue: z.object({ type: z.literal('regex'), regex: z.string() }).strict().optional(),\n properties: z.array(WorkflowParameterSchema).optional(), assetType: z.string().optional(), flag: z.boolean().optional(),\n enableExpand: z.boolean().optional(), enableVoice: z.boolean().optional(), expandButtonText: z.string().optional(), knowledgeGraphButtonText: z.string().optional(), selectListDisplayMode: z.string().optional(), voiceButtonText: z.string().optional(),\n }).strict(),\n);\n\nexport const WorkflowOutputBindingSchema = z.object({ key: ContractIdentifierSchema, value: z.string() }).strict();\n\nexport const WorkflowNodeSchema = z\n .object({\n id: ContractIdentifierSchema,\n referenceName: ContractIdentifierSchema,\n capabilityRef: ContractIdentifierSchema,\n capabilityVersion: ContractIdentifierSchema.optional(),\n inputBindings: z.record(z.string(), JsonValueSchema).default({}),\n configuration: z.object({ executor: z.literal('conductor'), task: ConductorTaskDefinitionSchema }).strict(),\n })\n .strict()\n .superRefine((node, context) => {\n if (node.configuration.task.taskReferenceName !== node.referenceName) context.addIssue({ code: 'custom', path: ['configuration', 'task', 'taskReferenceName'], message: 'Conductor task reference must match node referenceName.' });\n if (node.configuration.task.name !== node.capabilityRef) context.addIssue({ code: 'custom', path: ['configuration', 'task', 'name'], message: 'Conductor task name must match node capabilityRef.' });\n if (JSON.stringify(node.configuration.task.inputParameters ?? {}) !== JSON.stringify(node.inputBindings)) context.addIssue({ code: 'custom', path: ['configuration', 'task', 'inputParameters'], message: 'Conductor task inputs must match node inputBindings.' });\n });\n\nexport const WorkflowEdgeSchema = z.object({\n from: ContractIdentifierSchema, to: ContractIdentifierSchema, outputPort: ContractIdentifierSchema.optional(), inputPort: ContractIdentifierSchema.optional(), condition: z.string().optional(),\n}).strict();\n\nexport const WorkflowTriggerSchema = z.object({\n id: ContractIdentifierSchema,\n type: z.enum(['manual', 'schedule', 'webhook', 'event', 'api']),\n enabled: z.boolean(),\n schedule: z.object({ cron: z.string().trim().min(1) }).strict().optional(),\n webhook: z.object({\n path: z.string().trim().min(1).optional(),\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']),\n auth: z.enum(['NONE', 'BASIC', 'CUSTOM_HEADER']),\n basicAuth: z.object({ username: z.string(), password: z.string() }).strict().optional(),\n headerAuth: z.object({ name: z.string().trim().min(1), value: z.string() }).strict().optional(),\n responseUntil: z.enum(['WORKFLOW_STARTED', 'WORKFLOW_COMPLETED_OR_FINISHED']),\n }).strict().optional(),\n event: z.object({\n eventType: ContractIdentifierSchema,\n configuration: JsonValueSchema.optional(),\n }).strict().optional(),\n}).strict().superRefine((trigger, context) => {\n if (trigger.type === 'schedule' && !trigger.schedule) context.addIssue({ code: 'custom', path: ['schedule'], message: 'Schedule trigger requires schedule configuration.' });\n if (trigger.type === 'webhook' && !trigger.webhook) context.addIssue({ code: 'custom', path: ['webhook'], message: 'Webhook trigger requires webhook configuration.' });\n if (trigger.type === 'event' && !trigger.event) context.addIssue({ code: 'custom', path: ['event'], message: 'Event trigger requires event configuration.' });\n});\n\nexport const WorkflowValidationIssueSchema = z.object({\n taskReferenceName: ContractIdentifierSchema,\n issueType: z.enum(['ERROR', 'WARNING']),\n detailReason: z.object({ type: ContractIdentifierSchema, name: ContractIdentifierSchema, detailInformation: JsonValueSchema.optional() }).strict(),\n humanMessage: z.object({ en: z.string(), zh: z.string() }).strict(),\n}).strict();\n\nexport const WorkflowDefinitionSchema = z.object({\n contract: z.literal('WorkflowDefinition'),\n metadata: ContractMetadataSchema.omit({ name: true, description: true, labels: true }).extend({\n name: LocalizedTextSchema,\n description: LocalizedTextSchema.optional(),\n role: z.enum(['workflow', 'template']),\n teamId: ContractIdentifierSchema,\n creatorRef: EntityRefSchema,\n tags: z.array(ContractIdentifierSchema).default([]),\n }).strict(),\n revision: z.object({\n kind: z.enum(['release', 'backup']),\n recordVersion: z.number().int().positive(),\n sourceVersion: z.number().int().positive().optional(),\n }).strict().superRefine((revision, context) => {\n if (revision.kind === 'backup' && revision.sourceVersion === undefined) context.addIssue({ code: 'custom', path: ['sourceVersion'], message: 'Backup revisions require a sourceVersion.' });\n }),\n presentation: z.object({ iconUrl: z.string().optional(), thumbnail: z.string().optional() }).strict(),\n ports: z.object({ inputs: z.array(ContractPortSchema).default([]), outputs: z.array(ContractPortSchema).default([]) }).strict(),\n parameters: z.object({ variables: z.array(WorkflowParameterSchema).default([]), outputs: z.array(WorkflowOutputBindingSchema).default([]) }).strict(),\n graph: z.object({ nodes: z.array(WorkflowNodeSchema), edges: z.array(WorkflowEdgeSchema).default([]) }).strict(),\n execution: z.object({\n timeoutMs: z.number().int().positive().optional(), retries: z.number().int().nonnegative().default(0), concurrencyLimit: z.number().int().positive().optional(), idempotency: z.enum(['required', 'supported', 'none']),\n rateLimit: z.object({ enabled: z.boolean(), max: z.number().int().nonnegative(), windowMs: z.number().int().nonnegative() }).strict().superRefine((rateLimit, context) => {\n if (rateLimit.enabled && (rateLimit.max === 0 || rateLimit.windowMs === 0)) context.addIssue({ code: 'custom', message: 'Enabled rate limit requires positive max and windowMs.' });\n }).optional(),\n conductor: z.object({\n ownerApp: z.string().optional(), createTime: z.number().int().nonnegative().optional(), updateTime: z.number().int().nonnegative().optional(), createdBy: z.string().optional(), updatedBy: z.string().optional(),\n failureWorkflow: ContractIdentifierSchema.optional(), schemaVersion: z.number().int().positive().optional(), restartable: z.boolean().optional(), workflowStatusListenerEnabled: z.boolean().optional(), ownerEmail: z.string().email().optional(), timeoutPolicy: z.enum(['TIME_OUT_WF', 'ALERT_ONLY']).optional(),\n variables: z.record(z.string(), JsonValueSchema).optional(), inputTemplate: z.record(z.string(), JsonValueSchema).optional(),\n }).strict(),\n }).strict(),\n triggers: z.array(WorkflowTriggerSchema).default([]),\n views: z.array(z.object({ pageRef: ContractIdentifierSchema, placement: ContractIdentifierSchema.optional() }).strict()).default([]),\n dataContracts: z.object({ reads: z.array(ContractIdentifierSchema).default([]), writes: z.array(ContractIdentifierSchema).default([]), emits: z.array(ContractIdentifierSchema).default([]) }).strict(),\n governance: z.object({ activated: z.boolean(), validated: z.boolean(), validationIssues: z.array(WorkflowValidationIssueSchema).default([]), hidden: z.boolean().optional() }).strict(),\n interfaces: z.object({\n openai: z.object({ enabled: z.boolean(), modelName: z.string().trim().min(1).optional() }).strict(),\n shortcutRef: EntityRefSchema.optional(),\n preferredAppId: ContractIdentifierSchema.optional(),\n }).strict().superRefine((interfaces, context) => {\n if (interfaces.openai.enabled && !interfaces.openai.modelName) context.addIssue({ code: 'custom', path: ['openai', 'modelName'], message: 'Enabled OpenAI interface requires modelName.' });\n if (interfaces.shortcutRef && interfaces.shortcutRef.kind !== 'workflow') context.addIssue({ code: 'custom', path: ['shortcutRef', 'kind'], message: 'shortcutRef must reference a workflow.' });\n }),\n}).strict().superRefine((definition, context) => {\n const nodeIds = new Set(definition.graph.nodes.map((node) => node.id));\n const references = new Set(definition.graph.nodes.map((node) => node.referenceName));\n if (nodeIds.size !== definition.graph.nodes.length) context.addIssue({ code: 'custom', path: ['graph', 'nodes'], message: 'Workflow node ids must be unique.' });\n if (references.size !== definition.graph.nodes.length) context.addIssue({ code: 'custom', path: ['graph', 'nodes'], message: 'Workflow node reference names must be unique.' });\n definition.graph.edges.forEach((edge, index) => {\n if (!nodeIds.has(edge.from) || !nodeIds.has(edge.to)) context.addIssue({ code: 'custom', path: ['graph', 'edges', index], message: 'Workflow edges must reference existing node ids.' });\n });\n if (definition.revision.kind === 'release' && definition.metadata.version !== definition.revision.recordVersion) context.addIssue({ code: 'custom', path: ['revision', 'recordVersion'], message: 'Release recordVersion must equal metadata.version.' });\n});\n\nexport type ConductorTaskType = z.infer<typeof ConductorTaskTypeSchema>;\nexport type ConductorWorkflowDefinition = z.infer<typeof ConductorWorkflowDefinitionSchema>;\nexport type WorkflowNode = z.infer<typeof WorkflowNodeSchema>;\nexport type WorkflowEdge = z.infer<typeof WorkflowEdgeSchema>;\nexport type WorkflowTrigger = z.infer<typeof WorkflowTriggerSchema>;\nexport type WorkflowDefinitionValidationIssue = z.infer<typeof WorkflowValidationIssueSchema>;\nexport type WorkflowOutputBinding = z.infer<typeof WorkflowOutputBindingSchema>;\nexport type WorkflowDefinition = z.infer<typeof WorkflowDefinitionSchema>;\n","export {\n ArtifactManifestSchema,\n OutputRecordSchema,\n StorageLocatorSchema,\n} from '../contracts/artifact';\nexport {\n CapabilityRegistryDocumentSchema,\n CapabilityRegistryEntrySchema,\n CapabilityRegistrySourceSchema,\n CapabilitySourceTypeSchema,\n CapabilityManifestSchema,\n ContractPortSchema,\n} from '../contracts/capability';\nexport {\n ContractMetadataSchema,\n EntityRefSchema,\n JsonObjectSchema,\n JsonValueSchema,\n} from '../contracts/common';\nexport {\n AgentRuntimeEventSchema,\n CompletionEventSchema,\n CompletionHeaderSchema,\n ExecutionLinkSchema,\n RequestScopeSchema,\n} from '../contracts/context';\nexport {\n ApplicationRunSchema,\n BodyRelationRecordSchema,\n DataContinuityEnvelopeSchema,\n ExpiringAccessGrantSchema,\n} from '../contracts/continuity';\nexport {\n DomainEventSchema,\n LineageRecordSchema,\n OntologyDefinitionSchema,\n ProjectionSpecSchema,\n SourceRecordRefSchema,\n} from '../contracts/data';\nexport {\n PageDefinitionSchema,\n PageGuardProjectionSchema,\n PageNavigationProjectionSchema,\n PageRendererProjectionSchema,\n PageRouteProjectionSchema,\n PageRuntimeDescriptorSchema,\n PageRuntimeProjectionSchema,\n PageTypeSchema,\n PageVisibilitySchema,\n} from '../contracts/page';\nexport {\n ApplicationHandoffEndpointSchema,\n ApplicationHandoffSchema,\n OverlayNodeSchema,\n OverlayZIndexLaneSchema,\n ProductContextSchema,\n RenderActivationSchema,\n RenderLifecycleSchema,\n RenderLayoutSchema,\n RenderNodeKindSchema,\n RenderNodeSchema,\n RenderNodeStateSchema,\n RenderResponsiveRuleSchema,\n RenderScrollSchema,\n RenderSurfaceSchema,\n RenderTreeSchema,\n ViewProviderDescriptorSchema,\n} from '../contracts/render';\nexport {\n ChangeImpactGraphSchema,\n ConceptDefinitionSchema,\n DomainCommandDefinitionSchema,\n DomainCommandSchema,\n ProductDeclarationSchema,\n} from '../contracts/semantic';\nexport {\n TenantApplicationConfigSchema,\n TenantProductConfigSchema,\n TenantRuntimeConfigSchema,\n TenantWorkbenchConfigSchema,\n TenantWorkbenchPageContextSchema,\n TenantWorkbenchPageEnvelopeSchema,\n TenantWorkbenchPageGroupSchema,\n} from '../contracts/tenant';\nexport {\n ResolvedThemeTokensSchema,\n ThemeTokenGroupSchema,\n ThemeTokenTypeSchema,\n ThemeTokenSchema,\n ThemeTokensSchema,\n} from '../contracts/theme';\nexport {\n BrandGeneticsProfileSchema,\n BrandBodySchema,\n HotwordBodySchema,\n ProductBodySchema,\n RadarActionRecordSchema,\n RadarAnalysisRunSchema,\n RadarDecisionMetricsSchema,\n RadarOpportunityMatrixSchema,\n RadarOpportunityMatrixPointSchema,\n RadarPanoramaEdgeSchema,\n RadarPanoramaNodeSchema,\n RadarPanoramaSchema,\n RadarQueryBodySchema,\n RadarScoreModelBodySchema,\n RadarScoreProjectionSchema,\n RadarSelectionSchema,\n RadarWritebackRecordSchema,\n SavedRadarQuerySchema,\n TrendIngestRunSchema,\n TrendMetricSnapshotSchema,\n TrendSourceSchema,\n TrendSourceRecordSchema,\n} from '../contracts/trend';\nexport {\n ConductorTaskDefinitionSchema,\n ConductorTaskTypeSchema,\n ConductorWorkflowDefinitionSchema,\n WorkflowDefinitionSchema,\n WorkflowEdgeSchema,\n WorkflowNodeSchema,\n WorkflowOutputBindingSchema,\n WorkflowParameterSchema,\n WorkflowParameterTypeSchema,\n WorkflowTriggerSchema,\n WorkflowValidationIssueSchema,\n} from '../contracts/workflow-definition';\n\nimport { ArtifactManifestSchema, OutputRecordSchema } from '../contracts/artifact';\nimport { CapabilityManifestSchema, CapabilityRegistryDocumentSchema } from '../contracts/capability';\nimport {\n AgentRuntimeEventSchema,\n CompletionEventSchema,\n CompletionHeaderSchema,\n ExecutionLinkSchema,\n RequestScopeSchema,\n} from '../contracts/context';\nimport {\n ApplicationRunSchema,\n BodyRelationRecordSchema,\n DataContinuityEnvelopeSchema,\n ExpiringAccessGrantSchema,\n} from '../contracts/continuity';\nimport {\n DomainEventSchema,\n LineageRecordSchema,\n OntologyDefinitionSchema,\n ProjectionSpecSchema,\n} from '../contracts/data';\nimport { PageDefinitionSchema, PageRuntimeDescriptorSchema, PageRuntimeProjectionSchema } from '../contracts/page';\nimport {\n ApplicationHandoffSchema,\n OverlayNodeSchema,\n RenderNodeSchema,\n RenderTreeSchema,\n ViewProviderDescriptorSchema,\n} from '../contracts/render';\nimport { TenantProductConfigSchema, TenantRuntimeConfigSchema } from '../contracts/tenant';\nimport {\n ChangeImpactGraphSchema,\n ConceptDefinitionSchema,\n DomainCommandDefinitionSchema,\n DomainCommandSchema,\n ProductDeclarationSchema,\n} from '../contracts/semantic';\nimport { ThemeTokensSchema } from '../contracts/theme';\nimport {\n BrandGeneticsProfileSchema,\n BrandBodySchema,\n HotwordBodySchema,\n ProductBodySchema,\n RadarActionRecordSchema,\n RadarAnalysisRunSchema,\n RadarOpportunityMatrixSchema,\n RadarPanoramaSchema,\n RadarQueryBodySchema,\n RadarScoreModelBodySchema,\n RadarScoreProjectionSchema,\n RadarSelectionSchema,\n RadarWritebackRecordSchema,\n SavedRadarQuerySchema,\n TrendIngestRunSchema,\n TrendMetricSnapshotSchema,\n TrendSourceRecordSchema,\n} from '../contracts/trend';\nimport { ConductorWorkflowDefinitionSchema, WorkflowDefinitionSchema } from '../contracts/workflow-definition';\n\nexport const canonicalContractSchemas = {\n 'agent-runtime-event': AgentRuntimeEventSchema,\n 'application-run': ApplicationRunSchema,\n 'application-handoff': ApplicationHandoffSchema,\n 'artifact-manifest': ArtifactManifestSchema,\n 'brand-body': BrandBodySchema,\n 'body-relation-record': BodyRelationRecordSchema,\n 'brand-genetics-profile': BrandGeneticsProfileSchema,\n 'capability-manifest': CapabilityManifestSchema,\n 'capability-registry': CapabilityRegistryDocumentSchema,\n 'change-impact-graph': ChangeImpactGraphSchema,\n 'concept-definition': ConceptDefinitionSchema,\n 'completion-event': CompletionEventSchema,\n 'completion-header': CompletionHeaderSchema,\n 'conductor-workflow-definition': ConductorWorkflowDefinitionSchema,\n 'domain-event': DomainEventSchema,\n 'domain-command': DomainCommandSchema,\n 'domain-command-definition': DomainCommandDefinitionSchema,\n 'data-continuity-envelope': DataContinuityEnvelopeSchema,\n 'execution-link': ExecutionLinkSchema,\n 'expiring-access-grant': ExpiringAccessGrantSchema,\n 'hotword-body': HotwordBodySchema,\n 'lineage-record': LineageRecordSchema,\n 'ontology-definition': OntologyDefinitionSchema,\n 'overlay-node': OverlayNodeSchema,\n 'output-record': OutputRecordSchema,\n 'page-definition': PageDefinitionSchema,\n 'page-runtime-descriptor': PageRuntimeDescriptorSchema,\n 'page-runtime-projection': PageRuntimeProjectionSchema,\n 'projection-spec': ProjectionSpecSchema,\n 'product-declaration': ProductDeclarationSchema,\n 'product-body': ProductBodySchema,\n 'radar-action-record': RadarActionRecordSchema,\n 'radar-analysis-run': RadarAnalysisRunSchema,\n 'radar-opportunity-matrix': RadarOpportunityMatrixSchema,\n 'radar-panorama': RadarPanoramaSchema,\n 'radar-query-body': RadarQueryBodySchema,\n 'radar-score-model-body': RadarScoreModelBodySchema,\n 'radar-score-projection': RadarScoreProjectionSchema,\n 'radar-selection': RadarSelectionSchema,\n 'radar-writeback-record': RadarWritebackRecordSchema,\n 'request-scope': RequestScopeSchema,\n 'render-node': RenderNodeSchema,\n 'render-tree': RenderTreeSchema,\n 'saved-radar-query': SavedRadarQuerySchema,\n 'tenant-product-config': TenantProductConfigSchema,\n 'tenant-runtime-config': TenantRuntimeConfigSchema,\n 'theme-tokens': ThemeTokensSchema,\n 'trend-ingest-run': TrendIngestRunSchema,\n 'trend-metric-snapshot': TrendMetricSnapshotSchema,\n 'trend-source-record': TrendSourceRecordSchema,\n 'view-provider-descriptor': ViewProviderDescriptorSchema,\n 'workflow-definition': WorkflowDefinitionSchema,\n} as const;\n\nexport type CanonicalContractSchemaName = keyof typeof canonicalContractSchemas;\n","import type {\n CapabilityManifest,\n CapabilityRegistryDocument,\n CapabilityRegistrySource,\n CapabilitySourceType,\n} from '../contracts/capability';\nimport {\n CapabilityManifestSchema,\n CapabilityRegistryDocumentSchema,\n CapabilityRegistrySourceSchema,\n} from '../contracts/capability';\nimport type { EntityRef } from '../contracts/common';\nimport type { WorkflowDefinition } from '../contracts/workflow-definition';\nimport { WorkflowDefinitionSchema } from '../contracts/workflow-definition';\n\nexport interface CapabilityRegistryInputSource extends CapabilityRegistrySource {\n manifests: readonly unknown[];\n}\n\nexport interface CompiledCapabilityRegistry {\n document: CapabilityRegistryDocument;\n manifests: readonly CapabilityManifest[];\n manifestsById: ReadonlyMap<string, CapabilityManifest>;\n sourcesByCapabilityId: ReadonlyMap<string, readonly CapabilityRegistrySource[]>;\n require(reference: EntityRef | string): CapabilityManifest;\n}\n\nconst operationMethods = new Set(['get', 'post', 'put', 'patch', 'delete', 'options', 'head']);\n\n/** Extracts only canonical extensions and fails when a declared Monkeys tool has no manifest. */\nexport const extractOpenApiCapabilityManifests = (document: unknown): CapabilityManifest[] => {\n if (!document || typeof document !== 'object' || Array.isArray(document)) {\n throw new TypeError('OpenAPI capability source must be an object.');\n }\n const paths = (document as Record<string, unknown>).paths;\n if (!paths || typeof paths !== 'object' || Array.isArray(paths)) {\n throw new TypeError('OpenAPI capability source must contain a paths object.');\n }\n\n const manifests: CapabilityManifest[] = [];\n for (const [path, pathValue] of Object.entries(paths)) {\n if (!pathValue || typeof pathValue !== 'object' || Array.isArray(pathValue)) continue;\n for (const [method, operationValue] of Object.entries(pathValue as Record<string, unknown>)) {\n if (!operationMethods.has(method.toLowerCase()) || !operationValue || typeof operationValue !== 'object' || Array.isArray(operationValue)) continue;\n const operation = operationValue as Record<string, unknown>;\n const manifest = operation['x-monkeys-capability-manifest'];\n if (manifest === undefined) {\n if (operation['x-monkey-tool-name'] !== undefined) {\n throw new Error(`OpenAPI operation ${method.toUpperCase()} ${path} declares a tool without x-monkeys-capability-manifest.`);\n }\n continue;\n }\n manifests.push(CapabilityManifestSchema.parse(manifest));\n }\n }\n return manifests;\n};\n\nexport const createCapabilityRegistrySource = (\n sourceType: CapabilitySourceType,\n sourceId: string,\n ownerRepo: string,\n manifests: readonly unknown[],\n): CapabilityRegistryInputSource => ({\n ...CapabilityRegistrySourceSchema.parse({ sourceType, sourceId, ownerRepo }),\n manifests,\n});\n\nexport const createOpenApiCapabilityRegistrySource = (\n sourceId: string,\n ownerRepo: string,\n document: unknown,\n): CapabilityRegistryInputSource =>\n createCapabilityRegistrySource('openapi', sourceId, ownerRepo, extractOpenApiCapabilityManifests(document));\n\nexport interface WorkflowCapabilityManifestOptions {\n ownerRepo: string;\n surfaces: readonly string[];\n slots?: readonly string[];\n variants?: readonly string[];\n tokenRefs?: readonly string[];\n}\n\nexport const createWorkflowCapabilityManifest = (\n input: WorkflowDefinition,\n options: WorkflowCapabilityManifestOptions,\n): CapabilityManifest => {\n const workflow = WorkflowDefinitionSchema.parse(input);\n return CapabilityManifestSchema.parse({\n contract: 'CapabilityManifest',\n id: workflow.metadata.id,\n capabilityVersion: String(workflow.metadata.version),\n ownerRepo: options.ownerRepo,\n kind: 'workflow',\n displayName: typeof workflow.metadata.name === 'string'\n ? workflow.metadata.name\n : workflow.metadata.name?.['en-US'] ?? workflow.metadata.name?.['zh-CN'] ?? workflow.metadata.id,\n description: typeof workflow.metadata.description === 'string'\n ? workflow.metadata.description\n : workflow.metadata.description?.['en-US'] ?? workflow.metadata.description?.['zh-CN'],\n ports: workflow.ports,\n runtime: {\n providerBindings: [{\n providerRef: { kind: 'workflow', id: workflow.metadata.id, version: workflow.metadata.version, ownerRepo: options.ownerRepo },\n productContexts: [],\n priority: 0,\n }],\n loading: 'on-activation',\n stateOwner: 'external',\n sideEffects: ['network', 'storage', 'worker'],\n },\n placement: {\n surfaces: options.surfaces,\n slots: options.slots ?? [],\n variants: options.variants ?? [],\n tokenRefs: options.tokenRefs ?? [],\n },\n accessibility: {\n keyboardModel: 'workflow-form',\n focusModel: 'host-managed',\n labelContract: 'workflow-display-name',\n },\n observability: {\n eventNamespace: `workflow.${workflow.metadata.id}`,\n metrics: ['runs', 'duration', 'errors'],\n evidenceRefs: [],\n performanceBudgetMs: workflow.execution.timeoutMs,\n },\n });\n};\n\n/** Compiles all production declaration sources into one immutable, conflict-free registry. */\nexport const compileCapabilityRegistry = (\n sources: readonly CapabilityRegistryInputSource[],\n): CompiledCapabilityRegistry => {\n const entriesById = new Map<string, { manifest: CapabilityManifest; sources: CapabilityRegistrySource[] }>();\n const seenSources = new Set<string>();\n\n for (const sourceInput of sources) {\n const source = CapabilityRegistrySourceSchema.parse({\n sourceType: sourceInput.sourceType,\n sourceId: sourceInput.sourceId,\n ownerRepo: sourceInput.ownerRepo,\n });\n const sourceKey = `${source.sourceType}:${source.sourceId}`;\n if (seenSources.has(sourceKey)) throw new Error(`Duplicate capability source: ${sourceKey}`);\n seenSources.add(sourceKey);\n\n for (const manifestInput of sourceInput.manifests) {\n const manifest = CapabilityManifestSchema.parse(manifestInput);\n if (manifest.ownerRepo !== source.ownerRepo) {\n throw new Error(`Capability ${manifest.id} owner ${manifest.ownerRepo} does not match source owner ${source.ownerRepo}.`);\n }\n const existing = entriesById.get(manifest.id);\n if (!existing) {\n entriesById.set(manifest.id, { manifest, sources: [source] });\n continue;\n }\n if (JSON.stringify(existing.manifest) !== JSON.stringify(manifest)) {\n throw new Error(`Conflicting capability declarations for ${manifest.id}.`);\n }\n existing.sources.push(source);\n }\n }\n\n const document = CapabilityRegistryDocumentSchema.parse({\n contract: 'CapabilityRegistry',\n entries: Array.from(entriesById.values()).sort((left, right) => left.manifest.id.localeCompare(right.manifest.id)),\n });\n const manifests = Object.freeze(document.entries.map((entry) => entry.manifest));\n const manifestsById = new Map(manifests.map((manifest) => [manifest.id, manifest]));\n const sourcesByCapabilityId = new Map(document.entries.map((entry) => [entry.manifest.id, Object.freeze(entry.sources)]));\n\n return Object.freeze({\n document: Object.freeze(document),\n manifests,\n manifestsById,\n sourcesByCapabilityId,\n require(reference: EntityRef | string): CapabilityManifest {\n if (typeof reference !== 'string' && reference.kind !== 'capability') {\n throw new Error(`Expected a capability reference, received ${reference.kind}:${reference.id}.`);\n }\n const id = typeof reference === 'string' ? reference : reference.id;\n const manifest = manifestsById.get(id);\n if (!manifest) throw new Error(`Unknown capability: ${id}`);\n if (typeof reference !== 'string' && reference.version !== undefined && String(reference.version) !== manifest.capabilityVersion) {\n throw new Error(`Capability ${id} version ${String(reference.version)} is not active; expected ${manifest.capabilityVersion}.`);\n }\n return manifest;\n },\n });\n};\n","import type { CapabilityManifest } from '../contracts/capability';\nimport { CapabilityManifestSchema } from '../contracts/capability';\nimport type { EntityRef } from '../contracts/common';\nimport type { PageDefinition } from '../contracts/page';\nimport {\n ChangeImpactGraphSchema,\n DomainCommandDefinitionSchema,\n DomainCommandSchema,\n ProductDeclarationSchema,\n type ChangeImpactGraph,\n type DomainCommand,\n type DomainCommandDefinition,\n type ProductDeclaration,\n} from '../contracts/semantic';\n\nconst uniqueIndex = <T>(values: readonly T[], key: (value: T) => string, label: string): ReadonlyMap<string, T> => {\n const result = new Map<string, T>();\n for (const value of values) {\n const id = key(value);\n if (result.has(id)) throw new Error(`Duplicate ${label}: ${id}`);\n result.set(id, value);\n }\n return result;\n};\n\nconst ref = (kind: string, id: string): EntityRef => ({ kind, id });\nconst refKey = (value: EntityRef) => `${value.kind}:${value.id}`;\n\nexport interface CompiledProductDeclaration {\n declaration: ProductDeclaration;\n conceptsById: ReadonlyMap<string, ProductDeclaration['concepts'][number]>;\n ontologiesById: ReadonlyMap<string, ProductDeclaration['ontologies'][number]>;\n projectionsById: ReadonlyMap<string, ProductDeclaration['projections'][number]>;\n commandsByName: ReadonlyMap<string, DomainCommandDefinition>;\n capabilitiesById: ReadonlyMap<string, CapabilityManifest>;\n pagesById: ReadonlyMap<string, PageDefinition>;\n nodes: readonly EntityRef[];\n edges: readonly ChangeImpactGraph['edges'][number][];\n}\n\nexport interface ToolCapabilityPortSource {\n name: string;\n required?: boolean;\n type?: string;\n description?: string;\n}\n\nexport interface ToolCapabilitySource {\n id: string;\n capabilityVersion: string;\n ownerRepo: string;\n displayName: string;\n description?: string;\n inputs?: readonly ToolCapabilityPortSource[];\n outputs?: readonly ToolCapabilityPortSource[];\n sideEffects?: CapabilityManifest['runtime']['sideEffects'];\n}\n\nexport interface OpenApiToolCapabilityPublisherOptions {\n namespace: string;\n ownerRepo: string;\n capabilityVersion: string;\n}\n\nexport const compileToolCapabilityManifest = (input: unknown): CapabilityManifest => {\n const manifest = CapabilityManifestSchema.parse(input);\n if (manifest.kind !== 'tool') throw new Error(`Capability ${manifest.id} must use kind tool.`);\n if (manifest.runtime.providerBindings.length !== 1 || manifest.runtime.providerBindings[0].providerRef.kind !== 'tool') {\n throw new Error(`Tool capability ${manifest.id} must reference a tool provider.`);\n }\n return Object.freeze(manifest);\n};\n\nexport const createToolCapabilityManifest = (input: ToolCapabilitySource): CapabilityManifest => {\n const ports = (direction: 'input' | 'output', values: readonly ToolCapabilityPortSource[] = []) =>\n values.map((value) => ({\n name: String(value.name),\n schemaRef: `schema://tool/${input.id}/${direction}/${String(value.name)}`,\n required: value.required === true,\n multiple: value.type === 'array',\n description: value.description,\n }));\n return compileToolCapabilityManifest({\n contract: 'CapabilityManifest',\n id: input.id,\n capabilityVersion: input.capabilityVersion,\n ownerRepo: input.ownerRepo,\n kind: 'tool',\n displayName: input.displayName,\n description: input.description,\n ports: { inputs: ports('input', input.inputs), outputs: ports('output', input.outputs) },\n runtime: {\n providerBindings: [{ providerRef: { kind: 'tool', id: input.id }, productContexts: [], priority: 0 }],\n loading: 'on-activation',\n stateOwner: 'provider',\n sideEffects: input.sideEffects ?? ['network'],\n },\n placement: { surfaces: ['agent', 'workflow'], slots: [], variants: [], tokenRefs: [] },\n accessibility: { keyboardModel: 'tool-form', focusModel: 'host-managed', labelContract: 'tool-display-name' },\n observability: { eventNamespace: `tool.${input.id}`, metrics: ['calls', 'duration', 'errors'], evidenceRefs: [] },\n });\n};\n\nconst TOOL_HTTP_METHODS = new Set(['get', 'post', 'put', 'patch', 'delete']);\nconst normalizeToolIdentifier = (value: string) => value.replace(/[^a-zA-Z0-9_.-]/g, '_');\nconst localizedText = (value: unknown, fallback: string): string => {\n if (typeof value === 'string' && value.trim()) return value;\n if (value && typeof value === 'object') {\n const record = value as Record<string, unknown>;\n for (const locale of ['en-US', 'zh-CN']) {\n if (typeof record[locale] === 'string' && String(record[locale]).trim()) return String(record[locale]);\n }\n }\n return fallback;\n};\n\nconst normalizeToolCapabilityPorts = (\n value: unknown,\n direction: 'input' | 'output',\n): ToolCapabilityPortSource[] => {\n if (value === undefined) return [];\n if (!Array.isArray(value)) throw new Error(`Tool ${direction} declaration must be an array.`);\n\n const normalized = value.map((item, index) => {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n throw new Error(`Tool ${direction} declaration at index ${index} must be an object.`);\n }\n\n const record = item as Record<string, unknown>;\n if (typeof record.name !== 'string' || !record.name.trim()) {\n throw new Error(`Tool ${direction} declaration at index ${index} must have a non-empty name.`);\n }\n if (record.required !== undefined && typeof record.required !== 'boolean') {\n throw new Error(`Tool ${direction} ${record.name} required must be a boolean.`);\n }\n if (record.type !== undefined && (typeof record.type !== 'string' || !record.type.trim())) {\n throw new Error(`Tool ${direction} ${record.name} type must be a non-empty string.`);\n }\n\n const name = record.name.trim();\n const descriptionSource = record.description ?? record.displayName;\n return {\n name,\n required: record.required === true,\n type: typeof record.type === 'string' ? record.type.trim() : undefined,\n description: descriptionSource === undefined\n ? undefined\n : localizedText(descriptionSource, name),\n };\n });\n\n const portsByName = new Map<string, ToolCapabilityPortSource>();\n for (const port of normalized) {\n const existing = portsByName.get(port.name);\n if (!existing) {\n portsByName.set(port.name, port);\n continue;\n }\n\n // OpenAPI tool forms may declare the same logical field more than once\n // to provide conditional presentation/defaults (for example one code\n // editor per selected language). A capability port is an identity and\n // must remain unique, so collapse presentation-only duplicates while\n // failing closed when their executable contract disagrees.\n if (existing.required !== port.required || existing.type !== port.type) {\n throw new Error(\n `Tool ${direction} ${port.name} has conflicting duplicate declarations.`,\n );\n }\n }\n\n return [...portsByName.values()];\n};\n\n/** Publishes canonical CapabilityManifest values on every tool operation in an OpenAPI document. */\nexport const publishOpenApiToolCapabilityManifests = <T extends Record<string, unknown>>(\n document: T,\n options: OpenApiToolCapabilityPublisherOptions,\n): T => {\n const paths = document.paths;\n if (!paths || typeof paths !== 'object') throw new Error('OpenAPI document paths are required.');\n for (const pathItem of Object.values(paths as Record<string, unknown>)) {\n if (!pathItem || typeof pathItem !== 'object') continue;\n for (const [method, operationValue] of Object.entries(pathItem as Record<string, unknown>)) {\n if (!TOOL_HTTP_METHODS.has(method.toLowerCase()) || !operationValue || typeof operationValue !== 'object') continue;\n const operation = operationValue as Record<string, unknown>;\n const declaredName = operation['x-monkey-tool-name'];\n if (typeof declaredName !== 'string' || !declaredName.trim()) continue;\n const toolName = normalizeToolIdentifier(declaredName);\n const id = `${normalizeToolIdentifier(options.namespace)}_${toolName}`;\n const displayName = localizedText(operation['x-monkey-tool-display-name'] ?? operation.summary, toolName);\n const description = localizedText(operation['x-monkey-tool-description'] ?? operation.description, displayName);\n const inputs = normalizeToolCapabilityPorts(operation['x-monkey-tool-input'], 'input');\n const outputs = normalizeToolCapabilityPorts(operation['x-monkey-tool-output'], 'output');\n operation['x-monkeys-capability-manifest'] = createToolCapabilityManifest({\n id,\n capabilityVersion: typeof operation['x-monkey-tool-version'] === 'string'\n ? operation['x-monkey-tool-version']\n : options.capabilityVersion,\n ownerRepo: options.ownerRepo,\n displayName,\n description,\n inputs,\n outputs,\n sideEffects: Array.isArray(operation['x-monkey-tool-side-effects'])\n ? operation['x-monkey-tool-side-effects'] as CapabilityManifest['runtime']['sideEffects']\n : undefined,\n });\n }\n }\n return document;\n};\n\nexport const compileProductDeclaration = (input: ProductDeclaration): CompiledProductDeclaration => {\n const declaration = ProductDeclarationSchema.parse(input);\n const conceptsById = uniqueIndex(declaration.concepts, (value) => value.conceptId, 'concept id');\n const ontologiesById = uniqueIndex(declaration.ontologies, (value) => value.ontologyId, 'ontology id');\n const projectionsById = uniqueIndex(declaration.projections, (value) => value.projectionId, 'projection id');\n const commandsByName = uniqueIndex(declaration.commands, (value) => value.commandName, 'command name');\n const capabilitiesById = uniqueIndex(declaration.capabilities, (value) => value.id, 'capability id');\n const pagesById = uniqueIndex(declaration.pages, (value) => value.pageId, 'page id');\n const nodes: EntityRef[] = [];\n const edges: ChangeImpactGraph['edges'] = [];\n\n const addNode = (kind: string, id: string) => nodes.push(ref(kind, id));\n const addEdge = (from: EntityRef, to: EntityRef, relation: ChangeImpactGraph['edges'][number]['relation']) =>\n edges.push({ from, to, relation });\n\n for (const ontology of declaration.ontologies) addNode('ontology', ontology.ontologyId);\n for (const projection of declaration.projections) {\n addNode('projection', projection.projectionId);\n for (const ontologyId of projection.ontologyIds) {\n if (!ontologiesById.has(ontologyId)) throw new Error(`Projection ${projection.projectionId} references unknown ontology ${ontologyId}.`);\n addEdge(ref('projection', projection.projectionId), ref('ontology', ontologyId), 'uses-ontology');\n }\n }\n for (const command of declaration.commands) addNode('command', command.commandName);\n for (const capability of declaration.capabilities) addNode('capability', capability.id);\n for (const concept of declaration.concepts) {\n addNode('concept', concept.conceptId);\n if (concept.ontologyId) {\n if (!ontologiesById.has(concept.ontologyId)) throw new Error(`Concept ${concept.conceptId} references unknown ontology ${concept.ontologyId}.`);\n addEdge(ref('concept', concept.conceptId), ref('ontology', concept.ontologyId), 'uses-ontology');\n }\n for (const capabilityId of concept.capabilityIds) {\n if (!capabilitiesById.has(capabilityId)) throw new Error(`Concept ${concept.conceptId} references unknown capability ${capabilityId}.`);\n addEdge(ref('concept', concept.conceptId), ref('capability', capabilityId), 'uses-capability');\n }\n for (const commandName of concept.commandNames) {\n if (!commandsByName.has(commandName)) throw new Error(`Concept ${concept.conceptId} references unknown command ${commandName}.`);\n addEdge(ref('concept', concept.conceptId), ref('command', commandName), 'uses-command');\n }\n for (const relationship of concept.relationships) {\n if (!conceptsById.has(relationship.targetConceptId)) {\n throw new Error(`Concept ${concept.conceptId} references unknown concept ${relationship.targetConceptId}.`);\n }\n addEdge(ref('concept', concept.conceptId), ref('concept', relationship.targetConceptId), 'relates-to-concept');\n }\n }\n for (const page of declaration.pages) {\n addNode('page', page.pageId);\n if (page.binding.ontologyId) {\n if (!ontologiesById.has(page.binding.ontologyId)) throw new Error(`Page ${page.pageId} references unknown ontology ${page.binding.ontologyId}.`);\n addEdge(ref('page', page.pageId), ref('ontology', page.binding.ontologyId), 'uses-ontology');\n }\n if (page.binding.projectionRef) {\n if (!projectionsById.has(page.binding.projectionRef)) throw new Error(`Page ${page.pageId} references unknown projection ${page.binding.projectionRef}.`);\n addEdge(ref('page', page.pageId), ref('projection', page.binding.projectionRef), 'uses-projection');\n }\n for (const capabilityRef of [page.capabilityRef, ...page.capabilityRefs].filter(Boolean) as EntityRef[]) {\n if (!capabilitiesById.has(capabilityRef.id)) throw new Error(`Page ${page.pageId} references unknown capability ${capabilityRef.id}.`);\n addEdge(ref('page', page.pageId), ref('capability', capabilityRef.id), 'uses-capability');\n }\n }\n\n uniqueIndex(nodes, refKey, 'declaration node');\n return Object.freeze({\n declaration: Object.freeze(declaration),\n conceptsById,\n ontologiesById,\n projectionsById,\n commandsByName,\n capabilitiesById,\n pagesById,\n nodes: Object.freeze(nodes),\n edges: Object.freeze(edges),\n });\n};\n\nexport const validateDomainCommand = (\n input: DomainCommand,\n definitions: readonly DomainCommandDefinition[],\n permissionCodes: readonly string[],\n): DomainCommand => {\n const command = DomainCommandSchema.parse(input);\n const commandsByName = uniqueIndex(\n definitions.map((definition) => DomainCommandDefinitionSchema.parse(definition)),\n (definition) => definition.commandName,\n 'command name',\n );\n const definition = commandsByName.get(command.commandName);\n if (!definition) throw new Error(`Unknown domain command: ${command.commandName}`);\n if (!definition.targetKinds.includes(command.targetRef.kind)) {\n throw new Error(`Command ${command.commandName} does not accept target kind ${command.targetRef.kind}.`);\n }\n const granted = new Set(permissionCodes);\n const missing = definition.requiredPermissionCodes.filter((permission) => !granted.has(permission));\n if (missing.length) throw new Error(`Command ${command.commandName} requires permissions: ${missing.join(', ')}`);\n return Object.freeze(command);\n};\n\nconst declarationValuesByRef = (compiled: CompiledProductDeclaration): Map<string, unknown> => {\n const values = new Map<string, unknown>();\n for (const value of compiled.declaration.ontologies) values.set(refKey(ref('ontology', value.ontologyId)), value);\n for (const value of compiled.declaration.projections) values.set(refKey(ref('projection', value.projectionId)), value);\n for (const value of compiled.declaration.commands) values.set(refKey(ref('command', value.commandName)), value);\n for (const value of compiled.declaration.capabilities) values.set(refKey(ref('capability', value.id)), value);\n for (const value of compiled.declaration.concepts) values.set(refKey(ref('concept', value.conceptId)), value);\n for (const value of compiled.declaration.pages) values.set(refKey(ref('page', value.pageId)), value);\n return values;\n};\n\nexport const buildChangeImpactGraph = (\n previousInput: ProductDeclaration,\n nextInput: ProductDeclaration,\n generatedAt = new Date().toISOString(),\n): ChangeImpactGraph => {\n const previous = compileProductDeclaration(previousInput);\n const next = compileProductDeclaration(nextInput);\n const previousValues = declarationValuesByRef(previous);\n const nextValues = declarationValuesByRef(next);\n const changedKeys = new Set<string>();\n for (const key of new Set([...previousValues.keys(), ...nextValues.keys()])) {\n if (JSON.stringify(previousValues.get(key)) !== JSON.stringify(nextValues.get(key))) changedKeys.add(key);\n }\n\n const reverse = new Map<string, Set<string>>();\n for (const edge of [...previous.edges, ...next.edges]) {\n const dependency = refKey(edge.to);\n const dependent = refKey(edge.from);\n const values = reverse.get(dependency) ?? new Set<string>();\n values.add(dependent);\n reverse.set(dependency, values);\n }\n const refs = new Map<string, EntityRef>();\n for (const node of [...previous.nodes, ...next.nodes]) refs.set(refKey(node), node);\n const impacts = Array.from(changedKeys).sort().map((changedKey) => {\n const affected = new Set<string>();\n const queue = [...(reverse.get(changedKey) ?? [])];\n while (queue.length) {\n const current = queue.shift()!;\n if (affected.has(current)) continue;\n affected.add(current);\n queue.push(...(reverse.get(current) ?? []));\n }\n return {\n changedRef: refs.get(changedKey) ?? (() => {\n const separator = changedKey.indexOf(':');\n return ref(changedKey.slice(0, separator), changedKey.slice(separator + 1));\n })(),\n affectedRefs: Array.from(affected).sort().map((key) => refs.get(key)!),\n reasons: affected.size ? ['dependency'] : ['direct-change'],\n };\n });\n\n return ChangeImpactGraphSchema.parse({\n contract: 'ChangeImpactGraph',\n declarationId: next.declaration.declarationId,\n nodes: Array.from(refs.values()).sort((left, right) => refKey(left).localeCompare(refKey(right))),\n edges: next.edges,\n impacts,\n generatedAt,\n });\n};\n","import type { CapabilityManifest } from '../contracts/capability';\nimport { CapabilityManifestSchema } from '../contracts/capability';\nimport { PageTypeSchema } from '../contracts/page';\nimport type { ProductContext, ViewProviderDescriptor } from '../contracts/render';\nimport { ViewProviderDescriptorSchema } from '../contracts/render';\n\nconst referenceVersion = (version: string | number | undefined): string | undefined =>\n version === undefined ? undefined : String(version);\n\nconst sameStringSet = (left: readonly string[], right: readonly string[]): boolean => {\n if (left.length !== right.length) return false;\n const expected = new Set(left);\n return right.every((value) => expected.has(value));\n};\n\nconst unique = <T>(values: readonly T[], key: (value: T) => string, label: string): ReadonlyMap<string, T> => {\n const result = new Map<string, T>();\n for (const value of values) {\n const id = key(value);\n if (result.has(id)) throw new Error(`Duplicate ${label}: ${id}`);\n result.set(id, value);\n }\n return result;\n};\n\nexport interface CompileViewProviderRegistryInput {\n capabilities: readonly CapabilityManifest[];\n providers: readonly ViewProviderDescriptor[];\n}\n\nexport interface CompiledViewProviderRegistry {\n capabilities: readonly CapabilityManifest[];\n providers: readonly ViewProviderDescriptor[];\n capabilitiesById: ReadonlyMap<string, CapabilityManifest>;\n providersById: ReadonlyMap<string, ViewProviderDescriptor>;\n providersByRendererKey: ReadonlyMap<string, readonly ViewProviderDescriptor[]>;\n requireCapability(capabilityId: string): CapabilityManifest;\n requireProvider(providerId: string): ViewProviderDescriptor;\n resolveProvider(capabilityId: string, product: ProductContext, preferredProviderId?: string): ViewProviderDescriptor;\n}\n\n/**\n * Compiles the canonical capability-to-provider graph independently of pages.\n * Nested views and component catalogs use this boundary so descriptor metadata\n * cannot drift away from the implementation registry that renders it.\n */\nexport const compileViewProviderRegistry = (\n input: CompileViewProviderRegistryInput,\n): CompiledViewProviderRegistry => {\n const capabilities = input.capabilities.map((capability) => CapabilityManifestSchema.parse(capability));\n const providers = input.providers.map((provider) => ViewProviderDescriptorSchema.parse(provider));\n const capabilitiesById = unique(capabilities, (capability) => capability.id, 'capability id');\n const providersById = unique(providers, (provider) => provider.providerId, 'provider id');\n const providersByRendererKeyMutable = new Map<string, ViewProviderDescriptor[]>();\n for (const provider of providers) {\n const values = providersByRendererKeyMutable.get(provider.rendererKey) ?? [];\n values.push(provider);\n providersByRendererKeyMutable.set(provider.rendererKey, values);\n }\n const providersByRendererKey = new Map(\n Array.from(providersByRendererKeyMutable.entries()).map(([key, values]) => [key, Object.freeze(values)] as const),\n );\n\n unique(\n providers,\n (provider) => `${provider.rendererKey}:${provider.capabilityRef.id}`,\n 'renderer/capability provider binding',\n );\n\n for (const provider of providers) {\n const capability = capabilitiesById.get(provider.capabilityRef.id);\n if (!capability) {\n throw new Error(`Provider ${provider.providerId} references unknown capability ${provider.capabilityRef.id}.`);\n }\n if (!['view', 'professional-provider'].includes(capability.kind)) {\n throw new Error(`Provider ${provider.providerId} capability must be a view or professional-provider.`);\n }\n if (referenceVersion(provider.capabilityRef.version) !== capability.capabilityVersion) {\n throw new Error(`Provider ${provider.providerId} references inactive capability version ${String(provider.capabilityRef.version)}.`);\n }\n if (provider.capabilityRef.ownerRepo !== capability.ownerRepo) {\n throw new Error(`Provider ${provider.providerId} must reference capability owner ${capability.ownerRepo}.`);\n }\n const providerBindings = capability.runtime.providerBindings.filter((binding) => binding.providerRef.id === provider.providerId);\n if (providerBindings.length !== 1) {\n throw new Error(`Capability ${capability.id} must declare exactly one binding for provider ${provider.providerId}.`);\n }\n const providerRef = providerBindings[0].providerRef;\n if (providerRef.kind !== 'view-provider' || providerRef.ownerRepo !== provider.ownerRepo || referenceVersion(providerRef.version) !== provider.providerVersion) {\n throw new Error(`Capability ${capability.id} provider binding does not match ${provider.providerId}@${provider.providerVersion}.`);\n }\n if (provider.loading !== capability.runtime.loading || provider.stateOwner !== capability.runtime.stateOwner) {\n throw new Error(`Provider ${provider.providerId} loading and state ownership must match capability ${capability.id}.`);\n }\n if (!sameStringSet(provider.sideEffects, capability.runtime.sideEffects)) {\n throw new Error(`Provider ${provider.providerId} side effects must match capability ${capability.id}.`);\n }\n const renderModelPort = capability.ports.inputs.find((port) => port.schemaRef === provider.renderModelSchemaRef);\n if (!renderModelPort?.required) {\n throw new Error(`Provider ${provider.providerId} render model schema is not a required capability input.`);\n }\n if (provider.intentSchemaRef && !capability.ports.outputs.some((port) => port.schemaRef === provider.intentSchemaRef)) {\n throw new Error(`Provider ${provider.providerId} intent schema is not declared by capability ${capability.id}.`);\n }\n if (provider.lifecycle.focusModel !== capability.accessibility.focusModel) {\n throw new Error(`Provider ${provider.providerId} focus model must match capability ${capability.id}.`);\n }\n if (provider.supportedSurfaces.some((surface) => !capability.placement.surfaces.includes(surface))) {\n throw new Error(`Provider ${provider.providerId} surfaces must be declared by capability ${capability.id}.`);\n }\n for (const pageType of provider.supportedPageTypes) {\n if (!PageTypeSchema.safeParse(pageType).success) {\n throw new Error(`Provider ${provider.providerId} declares unsupported page type ${pageType}.`);\n }\n }\n }\n\n for (const capability of capabilities) {\n if (!['view', 'professional-provider'].includes(capability.kind)) continue;\n for (const binding of capability.runtime.providerBindings) {\n const providerRef = binding.providerRef;\n if (providerRef.kind !== 'view-provider') throw new Error(`View capability ${capability.id} must resolve to view providers.`);\n const provider = providersById.get(providerRef.id);\n if (!provider || provider.capabilityRef.id !== capability.id) {\n throw new Error(`View capability ${capability.id} references missing provider ${providerRef.id}.`);\n }\n }\n for (const product of ['studio', 'kernel', 'compute'] as const) {\n const candidates = capability.runtime.providerBindings.filter((binding) => binding.productContexts.length === 0 || binding.productContexts.includes(product));\n const priorities = candidates.map((binding) => binding.priority).sort((left, right) => right - left);\n if (priorities.length > 1 && priorities[0] === priorities[1]) {\n throw new Error(`Capability ${capability.id} has ambiguous provider bindings for ${product}.`);\n }\n }\n }\n\n const requireCapability = (capabilityId: string): CapabilityManifest => {\n const capability = capabilitiesById.get(capabilityId);\n if (!capability) throw new Error(`Unknown capability: ${capabilityId}`);\n return capability;\n };\n const requireProvider = (providerId: string): ViewProviderDescriptor => {\n const provider = providersById.get(providerId);\n if (!provider) throw new Error(`Unknown view provider: ${providerId}`);\n return provider;\n };\n\n return Object.freeze({\n capabilities: Object.freeze(capabilities),\n providers: Object.freeze(providers),\n capabilitiesById,\n providersById,\n providersByRendererKey,\n requireCapability,\n requireProvider,\n resolveProvider: (capabilityId: string, product: ProductContext, preferredProviderId?: string) => {\n const capability = requireCapability(capabilityId);\n const candidates = capability.runtime.providerBindings\n .filter((binding) => binding.productContexts.length === 0 || binding.productContexts.includes(product))\n .sort((left, right) => right.priority - left.priority || left.providerRef.id.localeCompare(right.providerRef.id));\n if (preferredProviderId) {\n const preferred = candidates.find((binding) => binding.providerRef.id === preferredProviderId);\n if (!preferred) throw new Error(`Provider ${preferredProviderId} is not available for capability ${capabilityId} in ${product}.`);\n return requireProvider(preferred.providerRef.id);\n }\n if (candidates.length === 0) throw new Error(`Capability ${capabilityId} has no provider for ${product}.`);\n if (candidates.length > 1 && candidates[0].priority === candidates[1].priority) {\n throw new Error(`Capability ${capabilityId} has ambiguous providers for ${product}.`);\n }\n return requireProvider(candidates[0].providerRef.id);\n },\n });\n};\n","import type { CapabilityManifest } from '../contracts/capability';\nimport type {\n PageDefinition,\n PageGuardProjection,\n PageNavigationProjection,\n PageRendererProjection,\n PageRouteProjection,\n PageRuntimeProjection,\n} from '../contracts/page';\nimport {\n PageDefinitionSchema,\n PageRuntimeProjectionSchema,\n} from '../contracts/page';\nimport type { ProductContext, ViewProviderDescriptor } from '../contracts/render';\nimport { compileViewProviderRegistry } from './view-provider-registry';\n\nconst escapeRegExp = (value: string) => value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nconst routePattern = (path: string): RegExp => {\n const parts = path.split('/').filter(Boolean);\n const expression = parts.map((part, index) => {\n if (part === '*') return index === parts.length - 1 ? '(?:/.*)?' : '/.*';\n if (part.startsWith(':') || part.startsWith('$')) return '/[^/]+';\n if (part.endsWith('*')) return `/${escapeRegExp(part.slice(0, -1))}.*`;\n return `/${escapeRegExp(part)}`;\n }).join('');\n return new RegExp(`^${expression || '/'}\\/?$`);\n};\n\nconst routeSignature = (path: string): string => path\n .split('/')\n .map((part) => {\n if (part === '*' || part.endsWith('*')) return '*';\n if (part.startsWith(':') || part.startsWith('$')) return ':';\n return part;\n })\n .join('/');\n\nconst routeSpecificity = (path: string): number => path.split('/').filter(Boolean).reduce((score, part) => {\n if (part === '*' || part.endsWith('*')) return score;\n if (part.startsWith(':') || part.startsWith('$')) return score + 1;\n return score + 10;\n}, 0);\n\nconst unique = <T>(values: readonly T[], key: (value: T) => string, label: string): Map<string, T> => {\n const result = new Map<string, T>();\n for (const value of values) {\n const id = key(value);\n if (result.has(id)) throw new Error(`Duplicate ${label}: ${id}`);\n result.set(id, value);\n }\n return result;\n};\n\nconst referenceVersion = (version: string | number | undefined): string | undefined =>\n version === undefined ? undefined : String(version);\n\nconst assertCapabilityReference = (\n owner: string,\n reference: PageDefinition['capabilityRef'],\n capability: CapabilityManifest | undefined,\n) => {\n if (!capability) throw new Error(`${owner} references unknown capability ${reference.id}.`);\n if (referenceVersion(reference.version) !== capability.capabilityVersion) {\n throw new Error(`${owner} references inactive capability version ${String(reference.version)} for ${reference.id}.`);\n }\n if (reference.ownerRepo !== capability.ownerRepo) {\n throw new Error(`${owner} capability ${reference.id} owner must be ${capability.ownerRepo}.`);\n }\n};\n\nexport interface PageAccessContext {\n authenticated: boolean;\n permissionCodes: readonly string[];\n featureFlags: Readonly<Record<string, boolean>>;\n}\n\nexport interface PageAccessDecision {\n allowed: boolean;\n reasons: readonly (\n | 'authentication'\n | 'permission-all'\n | 'permission-any'\n | 'feature-flag'\n )[];\n}\n\nexport interface CompilePageRuntimeProjectionInput {\n product: ProductContext;\n pages: readonly PageDefinition[];\n capabilities: readonly CapabilityManifest[];\n providers: readonly ViewProviderDescriptor[];\n}\n\nexport interface CompiledPageRuntimeProjection {\n document: PageRuntimeProjection;\n pagesById: ReadonlyMap<string, PageDefinition>;\n providersById: ReadonlyMap<string, ViewProviderDescriptor>;\n routesById: ReadonlyMap<string, PageRouteProjection>;\n navigationByPageId: ReadonlyMap<string, PageNavigationProjection>;\n guardsByPageId: ReadonlyMap<string, PageGuardProjection>;\n renderersByPageId: ReadonlyMap<string, PageRendererProjection>;\n evaluateAccess(pageId: string, context: PageAccessContext): PageAccessDecision;\n visibleNavigation(context: PageAccessContext): readonly PageNavigationProjection[];\n matchRoute(pathname: string): PageDefinition | undefined;\n requireRoute(routeId: string): PageRouteProjection;\n requireGuard(pageId: string): PageGuardProjection;\n requireRenderer(pageId: string): PageRendererProjection;\n}\n\n/** Compiles route, navigation, guard and renderer tables from one canonical PageDefinition set. */\nexport const compilePageRuntimeProjection = (\n input: CompilePageRuntimeProjectionInput,\n): CompiledPageRuntimeProjection => {\n const pages = input.pages.map((page) => PageDefinitionSchema.parse(page));\n const providerRegistry = compileViewProviderRegistry(input);\n const capabilities = providerRegistry.capabilities;\n const providers = providerRegistry.providers;\n const pagesById = unique(pages, (page) => page.pageId, 'pageId');\n unique(pages, (page) => page.routeId, 'routeId');\n unique(pages, (page) => page.routePath, 'route path');\n unique(pages, (page) => routeSignature(page.routePath), 'route pattern');\n const capabilitiesById = providerRegistry.capabilitiesById;\n const providersById = providerRegistry.providersById;\n\n for (const page of pages) {\n if (page.record.deleted) {\n throw new Error(`Deleted page ${page.pageId} cannot be compiled into a runtime projection.`);\n }\n if (!page.visibility.productContexts.includes(input.product)) {\n throw new Error(`Page ${page.pageId} is not visible in ${input.product}.`);\n }\n if (page.navigation.parentPageId && !pagesById.has(page.navigation.parentPageId)) {\n throw new Error(`Page ${page.pageId} references unknown parent ${page.navigation.parentPageId}.`);\n }\n for (const reference of [page.capabilityRef, ...page.capabilityRefs]) {\n assertCapabilityReference(`Page ${page.pageId}`, reference, capabilitiesById.get(reference.id));\n }\n\n const provider = providerRegistry.resolveProvider(page.capabilityRef.id, input.product);\n if (provider.rendererKey !== page.rendererKey || provider.capabilityRef.id !== page.capabilityRef.id) {\n throw new Error(`Page ${page.pageId} renderer ${page.rendererKey} does not match provider ${provider.providerId}.`);\n }\n if (!provider.supportedPageTypes.includes(page.pageType)) {\n throw new Error(`Provider ${provider.providerId} does not support page type ${page.pageType}.`);\n }\n if (!provider.supportedSurfaces.includes(page.surface)) {\n throw new Error(`Provider ${provider.providerId} does not support surface ${page.surface}.`);\n }\n }\n\n for (const page of pages) {\n const ancestors = new Set([page.pageId]);\n let parent = page.navigation.parentPageId;\n while (parent) {\n if (ancestors.has(parent)) throw new Error(`Navigation cycle contains page ${page.pageId}.`);\n ancestors.add(parent);\n parent = pagesById.get(parent)?.navigation.parentPageId;\n }\n }\n\n const routes = pages.map((page) => ({\n pageId: page.pageId,\n routeId: page.routeId,\n path: page.routePath,\n }));\n const navigation = pages\n .filter((page) => !page.navigation.hidden)\n .map((page) => ({\n pageId: page.pageId,\n routeId: page.routeId,\n path: page.routePath,\n label: page.navigation.label,\n iconRef: page.navigation.iconRef,\n parentPageId: page.navigation.parentPageId,\n order: page.navigation.order,\n pinned: page.navigation.pinned,\n }))\n .sort((left, right) =>\n (left.order ?? Number.MAX_SAFE_INTEGER) - (right.order ?? Number.MAX_SAFE_INTEGER)\n || left.pageId.localeCompare(right.pageId));\n const guards = pages.map((page) => ({\n pageId: page.pageId,\n authenticated: page.visibility.authenticated,\n permissionAllOf: page.visibility.permissionAllOf,\n permissionAnyOf: page.visibility.permissionAnyOf,\n featureFlags: page.visibility.featureFlags,\n actions: page.access.actions,\n }));\n const renderers = pages.map((page) => {\n const provider = providerRegistry.resolveProvider(page.capabilityRef.id, input.product);\n return {\n pageId: page.pageId,\n surface: page.surface,\n rendererKey: page.rendererKey,\n capabilityRef: page.capabilityRef,\n capabilityRefs: page.capabilityRefs,\n providerRef: {\n kind: 'view-provider' as const,\n id: provider.providerId,\n version: provider.providerVersion,\n ownerRepo: provider.ownerRepo,\n },\n binding: page.binding,\n rendererConfig: page.rendererConfig,\n workflowRef: page.workflowRef,\n };\n });\n const document = PageRuntimeProjectionSchema.parse({\n contract: 'PageRuntimeProjection',\n product: input.product,\n routes,\n navigation,\n guards,\n renderers,\n });\n const routesById = unique(document.routes, (route) => route.routeId, 'projected routeId');\n const navigationByPageId = unique(document.navigation, (item) => item.pageId, 'navigation pageId');\n const guardsByPageId = unique(document.guards, (guard) => guard.pageId, 'guard pageId');\n const renderersByPageId = unique(document.renderers, (renderer) => renderer.pageId, 'renderer pageId');\n const matchers = pages\n .map((page) => ({ page, pattern: routePattern(page.routePath), specificity: routeSpecificity(page.routePath) }))\n .sort((left, right) => right.specificity - left.specificity || left.page.pageId.localeCompare(right.page.pageId));\n\n const evaluateAccess = (pageId: string, context: PageAccessContext): PageAccessDecision => {\n const guard = guardsByPageId.get(pageId);\n if (!guard) throw new Error(`Unknown page guard: ${pageId}`);\n const reasons: PageAccessDecision['reasons'][number][] = [];\n if (guard.authenticated && !context.authenticated) reasons.push('authentication');\n const permissions = new Set(context.permissionCodes);\n if (guard.permissionAllOf.some((permission) => !permissions.has(permission))) {\n reasons.push('permission-all');\n }\n if (guard.permissionAnyOf.length > 0 && !guard.permissionAnyOf.some((permission) => permissions.has(permission))) {\n reasons.push('permission-any');\n }\n if (guard.featureFlags.some((flag) => context.featureFlags[flag] !== true)) reasons.push('feature-flag');\n return Object.freeze({ allowed: reasons.length === 0, reasons: Object.freeze(reasons) });\n };\n\n return Object.freeze({\n document: Object.freeze(document),\n pagesById,\n providersById,\n routesById,\n navigationByPageId,\n guardsByPageId,\n renderersByPageId,\n evaluateAccess,\n visibleNavigation(context: PageAccessContext) {\n return Object.freeze(document.navigation.filter((item) => evaluateAccess(item.pageId, context).allowed));\n },\n matchRoute(pathname: string) {\n const path = pathname.split('?')[0]?.split('#')[0] || '/';\n return matchers.find((matcher) => matcher.pattern.test(path))?.page;\n },\n requireRoute(routeId: string) {\n const route = routesById.get(routeId);\n if (!route) throw new Error(`Unknown route: ${routeId}`);\n return route;\n },\n requireGuard(pageId: string) {\n const guard = guardsByPageId.get(pageId);\n if (!guard) throw new Error(`Unknown page guard: ${pageId}`);\n return guard;\n },\n requireRenderer(pageId: string) {\n const renderer = renderersByPageId.get(pageId);\n if (!renderer) throw new Error(`Unknown page renderer: ${pageId}`);\n return renderer;\n },\n });\n};\n","import type { CapabilityManifest } from '../contracts/capability';\nimport type { PageRuntimeProjection } from '../contracts/page';\nimport type { PageDefinition } from '../contracts/page';\nimport type { ProductDeclaration } from '../contracts/semantic';\nimport type {\n ApplicationHandoff,\n ProductContext,\n ViewProviderDescriptor,\n} from '../contracts/render';\nimport { ApplicationHandoffSchema } from '../contracts/render';\nimport type { PageAccessContext, PageAccessDecision } from './page-compiler';\nimport { compilePageRuntimeProjection } from './page-compiler';\nimport { compileProductDeclaration, type CompiledProductDeclaration } from './declaration-compiler';\n\nexport const APPLICATION_HANDOFF_QUERY_PARAMETER = 'monkeys-handoff';\n\nexport interface ProductRuntimeCatalogInput {\n product: ProductContext;\n declaration: ProductDeclaration;\n providers: readonly ViewProviderDescriptor[];\n}\n\nexport interface ProductRuntimeCatalog {\n product: ProductContext;\n declaration: CompiledProductDeclaration;\n pages: readonly PageDefinition[];\n capabilities: readonly CapabilityManifest[];\n providers: readonly ViewProviderDescriptor[];\n pagesById: ReadonlyMap<string, PageDefinition>;\n pagesByRouteId: ReadonlyMap<string, PageDefinition>;\n capabilitiesById: ReadonlyMap<string, CapabilityManifest>;\n providersById: ReadonlyMap<string, ViewProviderDescriptor>;\n projection: PageRuntimeProjection;\n document: PageRuntimeProjection;\n navigation: readonly PageDefinition[];\n evaluateAccess(pageId: string, context: PageAccessContext): PageAccessDecision;\n matchPage(pathname: string): PageDefinition | undefined;\n matchRoute(pathname: string): PageDefinition | undefined;\n requireRenderer(pageId: string): PageRuntimeProjection['renderers'][number];\n}\n\nconst indexUnique = <T>(values: readonly T[], key: (value: T) => string, label: string): ReadonlyMap<string, T> => {\n const result = new Map<string, T>();\n for (const value of values) {\n const id = key(value);\n if (result.has(id)) throw new Error(`Duplicate ${label}: ${id}`);\n result.set(id, value);\n }\n return result;\n};\n\nexport const compileProductRuntimeCatalog = (input: ProductRuntimeCatalogInput): ProductRuntimeCatalog => {\n const declaration = compileProductDeclaration(input.declaration);\n const compiled = compilePageRuntimeProjection({\n product: input.product,\n pages: declaration.declaration.pages,\n capabilities: declaration.declaration.capabilities,\n providers: input.providers,\n });\n const pages = [...compiled.pagesById.values()];\n const capabilities = [...declaration.declaration.capabilities];\n const providers = [...compiled.providersById.values()];\n const pagesById = compiled.pagesById;\n const pagesByRouteId = indexUnique(pages, (page) => page.routeId, 'routeId');\n const capabilitiesById = indexUnique(capabilities, (capability) => capability.id, 'capability id');\n const providersById = compiled.providersById;\n const navigation = compiled.document.navigation.map((item) => pagesById.get(item.pageId)!);\n\n return Object.freeze({\n product: input.product,\n declaration,\n pages: Object.freeze(pages),\n capabilities: Object.freeze(capabilities),\n providers: Object.freeze(providers),\n pagesById,\n pagesByRouteId,\n capabilitiesById,\n providersById,\n projection: compiled.document,\n document: compiled.document,\n navigation: Object.freeze(navigation),\n evaluateAccess: compiled.evaluateAccess,\n matchPage: compiled.matchRoute,\n matchRoute: compiled.matchRoute,\n requireRenderer: compiled.requireRenderer,\n });\n};\n\nexport const serializeApplicationHandoff = (handoff: ApplicationHandoff): string =>\n JSON.stringify(ApplicationHandoffSchema.parse(handoff));\n\nexport const parseApplicationHandoff = (value: string | null | undefined): ApplicationHandoff | undefined => {\n if (!value) return undefined;\n try {\n return ApplicationHandoffSchema.parse(JSON.parse(value));\n } catch {\n return undefined;\n }\n};\n\nexport const readApplicationHandoffFromUrl = (input: string | URL): ApplicationHandoff | undefined => {\n const url = typeof input === 'string' ? new URL(input, 'https://monkeys.local') : input;\n return parseApplicationHandoff(url.searchParams.get(APPLICATION_HANDOFF_QUERY_PARAMETER));\n};\n\nexport const buildApplicationHandoffUrl = (targetPath: string, handoff: ApplicationHandoff): string => {\n const parsed = ApplicationHandoffSchema.parse(handoff);\n const isRelative = targetPath.startsWith('/') && !targetPath.startsWith('//');\n const url = new URL(targetPath, 'https://monkeys.local');\n url.searchParams.set(APPLICATION_HANDOFF_QUERY_PARAMETER, serializeApplicationHandoff(parsed));\n return isRelative ? `${url.pathname}${url.search}${url.hash}` : url.toString();\n};\n","import type { RenderNode, RenderTree } from '../contracts/render';\nimport { RenderTreeSchema } from '../contracts/render';\n\nexport interface CompiledRenderTree {\n tree: RenderTree;\n root: RenderNode;\n nodesById: ReadonlyMap<string, RenderNode>;\n traversal: readonly RenderNode[];\n childrenOf(nodeId: string): readonly RenderNode[];\n ancestorsOf(nodeId: string): readonly RenderNode[];\n}\n\nexport const compileRenderTree = (input: RenderTree): CompiledRenderTree => {\n const tree = RenderTreeSchema.parse(input);\n const nodesById = new Map<string, RenderNode>();\n for (const node of tree.nodes) {\n if (nodesById.has(node.nodeId)) throw new Error(`Duplicate render node id: ${node.nodeId}`);\n nodesById.set(node.nodeId, node);\n }\n const root = nodesById.get(tree.rootNodeId);\n if (!root) throw new Error(`Render tree ${tree.treeId} has no root node ${tree.rootNodeId}.`);\n if (root.parentNodeId !== undefined) throw new Error(`Render tree root ${root.nodeId} cannot declare a parent.`);\n\n for (const node of tree.nodes) {\n if (node.nodeId !== root.nodeId && node.parentNodeId === undefined) {\n throw new Error(`Render node ${node.nodeId} is disconnected from root ${root.nodeId}.`);\n }\n if (node.parentNodeId !== undefined) {\n const parent = nodesById.get(node.parentNodeId);\n if (!parent) throw new Error(`Render node ${node.nodeId} references missing parent ${node.parentNodeId}.`);\n if (!parent.children.includes(node.nodeId)) {\n throw new Error(`Render node ${node.nodeId} is not declared by parent ${parent.nodeId}.`);\n }\n }\n for (const childId of node.children) {\n const child = nodesById.get(childId);\n if (!child) throw new Error(`Render node ${node.nodeId} references missing child ${childId}.`);\n if (child.parentNodeId !== node.nodeId) {\n throw new Error(`Render child ${childId} does not point back to parent ${node.nodeId}.`);\n }\n }\n }\n\n const visiting = new Set<string>();\n const visited = new Set<string>();\n const traversal: RenderNode[] = [];\n const visit = (node: RenderNode) => {\n if (visiting.has(node.nodeId)) throw new Error(`Render tree ${tree.treeId} contains a cycle at ${node.nodeId}.`);\n if (visited.has(node.nodeId)) return;\n visiting.add(node.nodeId);\n traversal.push(node);\n node.children.forEach((childId) => visit(nodesById.get(childId)!));\n visiting.delete(node.nodeId);\n visited.add(node.nodeId);\n };\n visit(root);\n if (visited.size !== nodesById.size) {\n const disconnected = tree.nodes.find((node) => !visited.has(node.nodeId))!;\n throw new Error(`Render node ${disconnected.nodeId} is not reachable from root ${root.nodeId}.`);\n }\n\n const childrenOf = (nodeId: string): readonly RenderNode[] => {\n const node = nodesById.get(nodeId);\n if (!node) throw new Error(`Unknown render node: ${nodeId}`);\n return Object.freeze(node.children.map((childId) => nodesById.get(childId)!));\n };\n const ancestorsOf = (nodeId: string): readonly RenderNode[] => {\n let node = nodesById.get(nodeId);\n if (!node) throw new Error(`Unknown render node: ${nodeId}`);\n const ancestors: RenderNode[] = [];\n while (node.parentNodeId !== undefined) {\n node = nodesById.get(node.parentNodeId)!;\n ancestors.push(node);\n }\n return Object.freeze(ancestors);\n };\n\n return Object.freeze({\n tree,\n root,\n nodesById,\n traversal: Object.freeze(traversal),\n childrenOf,\n ancestorsOf,\n });\n};\n","import type { ThemeTokens } from '../contracts/theme';\nimport type {\n TenantProductConfig,\n TenantRuntimeConfig,\n} from '../contracts/tenant';\nimport {\n TenantProductConfigSchema,\n TenantRuntimeConfigSchema,\n} from '../contracts/tenant';\nimport { resolveThemeTokens } from './theme-tokens';\n\nexport interface CompileTenantRuntimeConfigInput {\n productConfig: TenantProductConfig;\n resolvedDesignTokens: ThemeTokens;\n}\n\n/**\n * Builds the only browser-facing tenant configuration projection.\n * The source list is deliberately not copied, and resolving again guarantees\n * that aliases cannot escape the server boundary.\n */\nexport const compileTenantRuntimeConfig = (\n input: CompileTenantRuntimeConfigInput,\n): TenantRuntimeConfig => {\n const productConfig = TenantProductConfigSchema.parse(input.productConfig);\n const designTokens = resolveThemeTokens(input.resolvedDesignTokens).resolvedDocument;\n\n return Object.freeze(TenantRuntimeConfigSchema.parse({\n contract: 'TenantRuntimeConfig',\n tenantId: productConfig.tenantId,\n appId: productConfig.appId,\n environment: productConfig.environment,\n designTokens,\n moduleRefs: productConfig.moduleRefs,\n pageRefs: productConfig.pageRefs,\n featureFlags: productConfig.featureFlags,\n authBinding: productConfig.authBinding,\n dataBinding: productConfig.dataBinding,\n sourceMap: productConfig.sourceMap,\n warnings: productConfig.warnings,\n applicationConfig: productConfig.applicationConfig,\n }));\n};\n","import type {\n TenantAuthBinding,\n TenantDataBinding,\n TenantRuntimeConfig,\n} from '../contracts/tenant';\n\nexport interface TenantRuntimeBindingPolicy {\n authProviderIds: readonly string[];\n dataProviderIds: readonly string[];\n projectionRefs?: readonly string[];\n requiredAuthBindings?: readonly string[];\n requiredDataBindings?: readonly string[];\n}\n\nexport interface CompiledTenantRuntimeBindings {\n readonly auth: Readonly<Record<string, TenantAuthBinding>>;\n readonly data: Readonly<Record<string, TenantDataBinding>>;\n requireAuth(bindingId?: string): TenantAuthBinding;\n requireData(bindingId?: string): TenantDataBinding;\n}\n\nconst requireBinding = <T>(\n kind: 'auth' | 'data',\n bindings: Readonly<Record<string, T>>,\n bindingId: string,\n): T => {\n const binding = bindings[bindingId];\n if (!binding) {\n throw new TypeError(`Tenant runtime is missing required ${kind} binding \"${bindingId}\".`);\n }\n return binding;\n};\n\n/**\n * Compiles tenant provider references against the providers actually shipped by\n * a product. This is the browser-side fail-closed boundary: a typo or an\n * uninstalled provider cannot silently fall back to a legacy endpoint.\n */\nexport const compileTenantRuntimeBindings = (\n config: Pick<TenantRuntimeConfig, 'authBinding' | 'dataBinding'>,\n policy: TenantRuntimeBindingPolicy,\n): CompiledTenantRuntimeBindings => {\n const authProviderIds = new Set(policy.authProviderIds);\n const dataProviderIds = new Set(policy.dataProviderIds);\n const projectionRefs = new Set(policy.projectionRefs ?? []);\n\n const auth = Object.freeze({ ...config.authBinding });\n const data = Object.freeze({ ...config.dataBinding });\n\n for (const [bindingId, binding] of Object.entries(auth)) {\n if (!authProviderIds.has(binding.providerId)) {\n throw new TypeError(\n `Tenant auth binding \"${bindingId}\" references unavailable provider \"${binding.providerId}\".`,\n );\n }\n }\n for (const [bindingId, binding] of Object.entries(data)) {\n const supported =\n binding.kind === 'data-provider'\n ? dataProviderIds.has(binding.providerId)\n : projectionRefs.has(binding.projectionRef);\n if (!supported) {\n const target = binding.kind === 'data-provider' ? binding.providerId : binding.projectionRef;\n throw new TypeError(`Tenant data binding \"${bindingId}\" references unavailable provider or projection \"${target}\".`);\n }\n }\n\n for (const bindingId of policy.requiredAuthBindings ?? []) {\n requireBinding('auth', auth, bindingId);\n }\n for (const bindingId of policy.requiredDataBindings ?? []) {\n requireBinding('data', data, bindingId);\n }\n\n return Object.freeze({\n auth,\n data,\n requireAuth: (bindingId = 'primary') => requireBinding('auth', auth, bindingId),\n requireData: (bindingId = 'primary') => requireBinding('data', data, bindingId),\n });\n};\n","export type PureRenderModelValue = null | boolean | number | string | PureRenderModelArray | PureRenderModelObject;\nexport interface PureRenderModelArray extends ReadonlyArray<PureRenderModelValue> {}\nexport interface PureRenderModelObject {\n readonly [key: string]: PureRenderModelValue;\n}\n\nexport type ViewRuntimeBindingKind = 'intent-adapter' | 'visual-slot' | 'opaque-adapter';\n\nexport interface ViewRuntimeBinding {\n readonly path: string;\n readonly kind: ViewRuntimeBindingKind;\n readonly value: unknown;\n}\n\nexport interface CompiledViewProviderInput {\n readonly renderModel: PureRenderModelValue;\n readonly runtimeBindings: readonly ViewRuntimeBinding[];\n}\n\nconst DEFAULT_FORBIDDEN_RENDER_MODEL_KEYS = Object.freeze([\n 'tenant',\n 'tenantId',\n 'customer',\n 'customerId',\n 'route',\n 'routeId',\n 'pathname',\n 'location',\n 'raw',\n 'rawRow',\n '__raw',\n '__rawRow',\n]);\n\nconst escapePointer = (value: string): string => value.replace(/~/g, '~0').replace(/\\//g, '~1');\nconst unescapePointer = (value: string): string => value.replace(/~1/g, '/').replace(/~0/g, '~');\nconst childPath = (path: string, key: string | number): string => `${path}/${escapePointer(String(key))}`;\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n if (!value || typeof value !== 'object') return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n};\n\nconst bindingKind = (value: unknown): ViewRuntimeBindingKind => {\n if (typeof value === 'function') return 'intent-adapter';\n if (value && typeof value === 'object' && '$$typeof' in value) return 'visual-slot';\n return 'opaque-adapter';\n};\n\nexport interface CompileViewProviderInputOptions {\n forbiddenKeys?: readonly string[];\n}\n\n/**\n * Separates deterministic, serializable view data from runtime adapters.\n * React elements become visual slots and functions become intent adapters\n * without adding a React dependency to the SDK.\n */\nexport const compileViewProviderInput = (\n input: unknown,\n options: CompileViewProviderInputOptions = {},\n): CompiledViewProviderInput => {\n const forbidden = new Set([...DEFAULT_FORBIDDEN_RENDER_MODEL_KEYS, ...(options.forbiddenKeys ?? [])]);\n const runtimeBindings: ViewRuntimeBinding[] = [];\n const ancestors = new WeakSet<object>();\n\n const visit = (value: unknown, path: string): PureRenderModelValue => {\n if (value === null) return null;\n if (typeof value === 'string' || typeof value === 'boolean') return value;\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) throw new Error(`Non-finite number is not allowed in renderModel at ${path || '/'}.`);\n return value;\n }\n if (value === undefined) return null;\n if (typeof value === 'bigint' || typeof value === 'symbol' || typeof value === 'function') {\n runtimeBindings.push(Object.freeze({ path, kind: bindingKind(value), value }));\n return null;\n }\n if (!value || typeof value !== 'object') {\n throw new Error(`Unsupported renderModel value at ${path || '/'}.`);\n }\n if (!Array.isArray(value) && !isPlainObject(value)) {\n runtimeBindings.push(Object.freeze({ path, kind: bindingKind(value), value }));\n return null;\n }\n if (!Array.isArray(value) && '$$typeof' in value) {\n runtimeBindings.push(Object.freeze({ path, kind: 'visual-slot', value }));\n return null;\n }\n if (ancestors.has(value)) throw new Error(`Cyclic renderModel input at ${path || '/'}.`);\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n return Object.freeze(value.map((item, index) => visit(item, childPath(path, index))));\n }\n const output: Record<string, PureRenderModelValue> = {};\n for (const [key, item] of Object.entries(value)) {\n if (forbidden.has(key)) {\n throw new Error(`Forbidden renderModel field ${key} at ${childPath(path, key)}.`);\n }\n output[key] = visit(item, childPath(path, key));\n }\n return Object.freeze(output);\n } finally {\n ancestors.delete(value);\n }\n };\n\n return Object.freeze({\n renderModel: visit(input, ''),\n runtimeBindings: Object.freeze(runtimeBindings),\n });\n};\n\nconst cloneRenderModel = (value: PureRenderModelValue): unknown => {\n if (Array.isArray(value)) return value.map((item) => cloneRenderModel(item));\n if (value && typeof value === 'object') {\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneRenderModel(item)]));\n }\n return value;\n};\n\n/** Provider adapters use this only at the final implementation edge. */\nexport const applyViewRuntimeBindings = (\n renderModel: PureRenderModelValue,\n bindings: readonly ViewRuntimeBinding[],\n): unknown => {\n const root = { value: cloneRenderModel(renderModel) };\n for (const binding of bindings) {\n const segments = binding.path.split('/').slice(1).map(unescapePointer);\n if (segments.length === 0) {\n root.value = binding.value;\n continue;\n }\n let cursor: any = root.value;\n for (let index = 0; index < segments.length - 1; index += 1) {\n cursor = cursor?.[segments[index]];\n if (cursor === undefined || cursor === null) {\n throw new Error(`Runtime binding path does not exist: ${binding.path}`);\n }\n }\n cursor[segments[segments.length - 1]] = binding.value;\n }\n return root.value;\n};\n","import type { ContractPort } from '../contracts/capability';\nimport type {\n ConductorTaskDefinition,\n ConductorWorkflowDefinition,\n WorkflowDefinition,\n WorkflowOutputBinding,\n WorkflowParameter,\n} from '../contracts/workflow-definition';\nimport {\n ConductorWorkflowDefinitionSchema,\n WorkflowDefinitionSchema,\n WorkflowOutputBindingSchema,\n WorkflowParameterSchema,\n} from '../contracts/workflow-definition';\n\nexport interface CompileWorkflowDefinitionFromConductorInput {\n metadata: WorkflowDefinition['metadata'];\n revision: WorkflowDefinition['revision'];\n presentation: WorkflowDefinition['presentation'];\n conductor: ConductorWorkflowDefinition;\n variables: readonly WorkflowParameter[];\n output: readonly WorkflowOutputBinding[];\n execution: Omit<WorkflowDefinition['execution'], 'timeoutMs' | 'conductor'>;\n triggers: WorkflowDefinition['triggers'];\n views: WorkflowDefinition['views'];\n dataContracts: WorkflowDefinition['dataContracts'];\n governance: WorkflowDefinition['governance'];\n interfaces: WorkflowDefinition['interfaces'];\n}\n\nexport interface WorkflowPersistenceProjection {\n tasks: readonly ConductorTaskDefinition[];\n variables: readonly WorkflowParameter[];\n output: readonly WorkflowOutputBinding[];\n}\n\nexport const DEFAULT_CONDUCTOR_OWNER_EMAIL = 'dev@inf-monkeys.com';\n\nconst localizedText = (value: WorkflowDefinition['metadata']['description']): string | undefined => {\n if (typeof value === 'string') return value;\n if (!value) return undefined;\n return value['en-US'] ?? value['zh-CN'] ?? Object.values(value)[0];\n};\nconst parameterPort = (workflowId: string, parameter: WorkflowParameter): ContractPort => ({\n name: parameter.name,\n schemaRef: `schema://workflow/${workflowId}/input/${parameter.name}`,\n required: parameter.required === true,\n multiple: parameter.typeOptions?.multipleValues === true,\n description: localizedText(parameter.description),\n});\n\nconst outputPort = (workflowId: string, output: WorkflowOutputBinding): ContractPort => ({\n name: output.key,\n schemaRef: `schema://workflow/${workflowId}/output/${output.key}`,\n required: false,\n multiple: false,\n});\n\n/**\n * One-time production compiler from Conductor + authoring data to the canonical\n * WorkflowDefinition. Nested control-flow tasks remain typed inside each node,\n * so the projection does not depend on a lossy graph reconstruction.\n */\nexport const compileWorkflowDefinitionFromConductor = (\n input: CompileWorkflowDefinitionFromConductorInput,\n): WorkflowDefinition => {\n const conductor = ConductorWorkflowDefinitionSchema.parse(input.conductor);\n if (conductor.name !== input.metadata.id || conductor.version !== input.metadata.version) {\n throw new Error('Conductor workflow identity must match canonical metadata.');\n }\n const variables = input.variables.map((parameter) => WorkflowParameterSchema.parse(parameter));\n const outputs = input.output.map((output) => WorkflowOutputBindingSchema.parse(output));\n if (JSON.stringify(conductor.inputParameters) !== JSON.stringify(variables.map((parameter) => parameter.name))) {\n throw new Error('Conductor inputParameters must match canonical workflow variables in order.');\n }\n const expectedOutput = Object.fromEntries(outputs.map((output) => [output.key, output.value]));\n if (JSON.stringify(conductor.outputParameters ?? {}) !== JSON.stringify(expectedOutput)) {\n throw new Error('Conductor outputParameters must match canonical workflow output bindings.');\n }\n\n const nodes = conductor.tasks.map((task) => ({\n id: task.taskReferenceName,\n referenceName: task.taskReferenceName,\n capabilityRef: task.name,\n inputBindings: task.inputParameters ?? {},\n configuration: { executor: 'conductor' as const, task },\n }));\n const edges = nodes.slice(1).map((node, index) => ({ from: nodes[index].id, to: node.id }));\n const {\n name: _name,\n description: _description,\n version: _version,\n tasks: _tasks,\n inputParameters: _inputParameters,\n outputParameters: _outputParameters,\n timeoutSeconds,\n ...conductorOptions\n } = conductor;\n\n return WorkflowDefinitionSchema.parse({\n contract: 'WorkflowDefinition',\n metadata: input.metadata,\n revision: input.revision,\n presentation: input.presentation,\n ports: {\n inputs: variables.map((parameter) => parameterPort(input.metadata.id, parameter)),\n outputs: outputs.map((output) => outputPort(input.metadata.id, output)),\n },\n parameters: { variables, outputs },\n graph: { nodes, edges },\n execution: {\n ...input.execution,\n ...(timeoutSeconds > 0 ? { timeoutMs: timeoutSeconds * 1000 } : {}),\n conductor: {\n ...conductorOptions,\n ownerEmail:\n conductorOptions.ownerEmail ?? DEFAULT_CONDUCTOR_OWNER_EMAIL,\n },\n },\n triggers: input.triggers,\n views: input.views,\n dataContracts: input.dataContracts,\n governance: input.governance,\n interfaces: input.interfaces,\n });\n};\n\nexport const compileConductorWorkflowDefinition = (\n input: WorkflowDefinition,\n): ConductorWorkflowDefinition => {\n const workflow = WorkflowDefinitionSchema.parse(input);\n return ConductorWorkflowDefinitionSchema.parse({\n ...workflow.execution.conductor,\n ownerEmail:\n workflow.execution.conductor.ownerEmail ??\n DEFAULT_CONDUCTOR_OWNER_EMAIL,\n name: workflow.metadata.id,\n description: localizedText(workflow.metadata.description),\n version: workflow.metadata.version,\n tasks: workflow.graph.nodes.map((node) => node.configuration.task),\n inputParameters: workflow.parameters.variables.map((parameter) => parameter.name),\n outputParameters: Object.fromEntries(workflow.parameters.outputs.map((output) => [output.key, output.value])),\n timeoutSeconds: workflow.execution.timeoutMs ? Math.ceil(workflow.execution.timeoutMs / 1000) : 0,\n });\n};\n\nexport const compileWorkflowPersistenceProjection = (\n input: WorkflowDefinition,\n): WorkflowPersistenceProjection => {\n const workflow = WorkflowDefinitionSchema.parse(input);\n return Object.freeze({\n tasks: Object.freeze(workflow.graph.nodes.map((node) => node.configuration.task)),\n variables: Object.freeze(workflow.parameters.variables),\n output: Object.freeze(workflow.parameters.outputs),\n });\n};\n"],"mappings":"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","names":["ToolType","ValidationIssueType","ValidationReasonType","WorkflowTriggerType","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","result","value","z","z","z","z","z","z","definition","unique","referenceVersion","localizedText"]}
|