@kalada/host 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/serializable.ts","../src/compile-options.ts","../src/compiled-artifact.ts","../src/execution-diagnostics.ts","../src/fingerprint.ts","../src/input-readers.ts","../src/semantic-type.ts","../src/compile-expression.ts","../src/editor-admission.ts","../src/editor-cycle.ts","../src/editor-node-builders.ts","../src/editor-evidence-builders.ts","../src/editor-input-validation.ts","../src/editor-graph.ts","../src/editor-traversal.ts","../src/capability-snapshot.ts","../src/runtime-value.ts","../src/evaluate-expression.ts","../src/link-expression.ts","../src/diagnostics.ts","../src/binding-normalization.ts","../src/identity.ts","../src/capability-normalization.ts","../src/manual-provider.ts","../src/execution.ts"],"names":["success","edge","available","normalizeLimits","freezePath","item","constructionToken","isResult","failure","providerProvenance","resolveCapability","evidence"],"mappings":"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","file":"index.js","sourcesContent":["import type { SerializableValue } from \"./contracts.js\";\nimport type { HostPath } from \"./editor-types.js\";\n\nexport interface SerializableLimits {\n readonly maxDepth: number;\n readonly maxNodes: number;\n readonly maxCollectionSize: number;\n readonly maxStringLength: number;\n}\n\nexport const DEFAULT_SERIALIZABLE_LIMITS: SerializableLimits = Object.freeze({\n maxDepth: 32,\n maxNodes: 10_000,\n maxCollectionSize: 10_000,\n maxStringLength: 100_000,\n});\n\nexport type SerializableCloneResult =\n | Readonly<{ ok: true; value: SerializableValue }>\n | Readonly<{\n ok: false;\n reason: \"invalid-value\" | \"accessor\" | \"cycle\" | \"depth-limit\" | \"size-limit\";\n path: HostPath;\n }>;\n\ntype ShallowRecordResult =\n | Readonly<{ ok: true; value: Record<string, unknown> }>\n | Readonly<{ ok: false; reason: \"invalid-value\" | \"accessor\" | \"size-limit\" }>;\n\ntype ReflectionResult<Value> = Readonly<{ ok: true; value: Value }> | Readonly<{ ok: false }>;\n\ninterface CloneState {\n readonly limits: SerializableLimits;\n readonly active: WeakSet<object>;\n nodes: number;\n}\n\nexport function readOwnDataRecord(input: unknown, maximumKeys = 10_000): ShallowRecordResult {\n if (typeof input !== \"object\" || input === null) return shallowFailure(\"invalid-value\");\n const array = safelyReflect(() => Array.isArray(input));\n if (!array.ok || array.value) return shallowFailure(\"invalid-value\");\n const prototype = safelyReflect(() => Object.getPrototypeOf(input));\n if (!prototype.ok || (prototype.value !== Object.prototype && prototype.value !== null)) {\n return shallowFailure(\"invalid-value\");\n }\n const keys = safelyReflect(() => Reflect.ownKeys(input));\n if (!keys.ok) return shallowFailure(\"invalid-value\");\n if (keys.value.length > maximumKeys) return shallowFailure(\"size-limit\");\n return readRecordDescriptors(input, keys.value);\n}\n\nexport function cloneSerializableData(\n input: unknown,\n limits: SerializableLimits = DEFAULT_SERIALIZABLE_LIMITS,\n): SerializableCloneResult {\n const state: CloneState = { limits, active: new WeakSet(), nodes: 0 };\n return cloneValue(input, Object.freeze([]), 0, state);\n}\n\nfunction cloneValue(\n input: unknown,\n path: HostPath,\n depth: number,\n state: CloneState,\n): SerializableCloneResult {\n if (depth > state.limits.maxDepth) return failure(\"depth-limit\", path);\n if (typeof input === \"string\") return cloneString(input, path, state.limits);\n if (input === null || typeof input === \"boolean\") return success(input);\n if (typeof input === \"number\") {\n return Number.isFinite(input) ? success(input) : failure(\"invalid-value\", path);\n }\n if (typeof input !== \"object\") return failure(\"invalid-value\", path);\n const array = safelyReflect(() => Array.isArray(input));\n if (!array.ok) return failure(\"invalid-value\", path);\n if (state.active.has(input)) return failure(\"cycle\", path);\n state.nodes += 1;\n if (state.nodes > state.limits.maxNodes) return failure(\"size-limit\", path);\n state.active.add(input);\n const result = array.value\n ? cloneArray(input as readonly unknown[], path, depth, state)\n : cloneRecord(input, path, depth, state);\n state.active.delete(input);\n return result;\n}\n\nfunction cloneArray(\n input: readonly unknown[],\n path: HostPath,\n depth: number,\n state: CloneState,\n): SerializableCloneResult {\n const lengthDescriptor = ownDescriptor(input, \"length\");\n if (!lengthDescriptor.ok) return failure(\"invalid-value\", path);\n if (!lengthDescriptor.value || !(\"value\" in lengthDescriptor.value)) {\n return failure(\"accessor\", path);\n }\n const length = lengthDescriptor.value.value;\n if (\n typeof length !== \"number\" ||\n !Number.isSafeInteger(length) ||\n length < 0 ||\n length > state.limits.maxCollectionSize\n ) {\n return failure(\"size-limit\", path);\n }\n const output: SerializableValue[] = [];\n for (let index = 0; index < length; index += 1) {\n const descriptor = ownDescriptor(input, String(index));\n const childPath = Object.freeze([...path, index]);\n if (!descriptor.ok) return failure(\"invalid-value\", childPath);\n if (!descriptor.value || !(\"value\" in descriptor.value)) return failure(\"accessor\", childPath);\n const cloned = cloneValue(descriptor.value.value, childPath, depth + 1, state);\n if (!cloned.ok) return cloned;\n output.push(cloned.value);\n }\n return success(Object.freeze(output));\n}\n\nfunction cloneRecord(\n input: object,\n path: HostPath,\n depth: number,\n state: CloneState,\n): SerializableCloneResult {\n const inspected = readOwnDataRecord(input, state.limits.maxCollectionSize);\n if (!inspected.ok) return failure(inspected.reason, path);\n const output: Record<string, SerializableValue> = Object.create(null);\n for (const [key, value] of Object.entries(inspected.value)) {\n const keyResult = cloneString(key, path, state.limits);\n if (!keyResult.ok) return keyResult;\n const childPath = Object.freeze([...path, key]);\n const cloned = cloneValue(value, childPath, depth + 1, state);\n if (!cloned.ok) return cloned;\n output[key] = cloned.value;\n }\n return success(Object.freeze(output));\n}\n\nfunction readRecordDescriptors(input: object, keys: readonly PropertyKey[]): ShallowRecordResult {\n const output: Record<string, unknown> = Object.create(null);\n for (const key of keys) {\n if (typeof key !== \"string\") return shallowFailure(\"invalid-value\");\n const descriptor = ownDescriptor(input, key);\n if (!descriptor.ok) return shallowFailure(\"invalid-value\");\n if (!descriptor.value || !(\"value\" in descriptor.value)) return shallowFailure(\"accessor\");\n output[key] = descriptor.value.value;\n }\n return Object.freeze({ ok: true, value: output });\n}\n\nfunction ownDescriptor(\n input: object,\n key: PropertyKey,\n): ReflectionResult<PropertyDescriptor | undefined> {\n return safelyReflect(() => Object.getOwnPropertyDescriptor(input, key));\n}\n\nfunction safelyReflect<Value>(operation: () => Value): ReflectionResult<Value> {\n try {\n return { ok: true, value: operation() };\n } catch {\n return { ok: false };\n }\n}\n\nfunction shallowFailure(\n reason: Extract<ShallowRecordResult, { ok: false }>[\"reason\"],\n): ShallowRecordResult {\n return Object.freeze({ ok: false, reason });\n}\n\nfunction cloneString(\n input: string,\n path: HostPath,\n limits: SerializableLimits,\n): SerializableCloneResult {\n return input.length <= limits.maxStringLength ? success(input) : failure(\"size-limit\", path);\n}\n\nfunction success(value: SerializableValue): SerializableCloneResult {\n return Object.freeze({ ok: true, value });\n}\n\nfunction failure(\n reason: Extract<SerializableCloneResult, { ok: false }>[\"reason\"],\n path: HostPath,\n): SerializableCloneResult {\n return Object.freeze({ ok: false, reason, path: Object.freeze([...path]) });\n}\n","import type { KaladaV1FunctionLimits, KaladaV1Limits } from \"@kalada/core\";\nimport { readOwnDataRecord } from \"./serializable.js\";\n\ntype CoreLimits = KaladaV1Limits & KaladaV1FunctionLimits;\n\nexport const HOST_COMPILE_OPTIONS_CONTRACT = \"kalada-host-compile-options-v1\";\n\nexport interface NormalizedCompileOptions {\n readonly profile: string;\n readonly limits: Readonly<Partial<CoreLimits>>;\n}\n\nconst MAXIMUM: Readonly<Record<keyof CoreLimits, number>> = Object.freeze({\n maxAstDepth: 256,\n maxAstNodes: 100_000,\n maxValueDepth: 256,\n maxValueNodes: 100_000,\n maxStringLength: 1_000_000,\n maxReferenceLength: 100_000,\n maxEvaluationSteps: 100_000,\n maxFunctionParameters: 256,\n maxFunctionGroupSize: 1_024,\n maxCapturesPerClosure: 256,\n maxCapturedBindings: 100_000,\n maxClosures: 100_000,\n maxCallDepth: 4_096,\n maxContinuationFrames: 100_000,\n maxCollectionLength: 100_000,\n maxCollectionIterations: 100_000,\n});\n\nexport function normalizeCompileOptions(input: unknown): NormalizedCompileOptions | null {\n if (input === undefined) return frozenOptions(\"default\", Object.freeze({}));\n const inspected = readOwnDataRecord(input, 2);\n if (!inspected.ok || hasUnknownKeys(inspected.value, [\"profile\", \"limits\"])) return null;\n const profile = inspected.value.profile ?? \"default\";\n if (typeof profile !== \"string\" || profile.length === 0 || profile.length > 1_000) return null;\n const limits = normalizeLimits(inspected.value.limits);\n return limits ? frozenOptions(profile, limits) : null;\n}\n\nfunction normalizeLimits(input: unknown): Readonly<Partial<CoreLimits>> | null {\n if (input === undefined) return Object.freeze({});\n const inspected = readOwnDataRecord(input, Object.keys(MAXIMUM).length);\n if (!inspected.ok) return null;\n const output: Record<string, number> = Object.create(null);\n for (const [key, value] of Object.entries(inspected.value)) {\n if (!Object.hasOwn(MAXIMUM, key) || !validLimit(key as keyof CoreLimits, value)) return null;\n output[key] = value as number;\n }\n return Object.freeze(output) as Readonly<Partial<CoreLimits>>;\n}\n\nfunction validLimit(key: keyof CoreLimits, value: unknown): value is number {\n return Number.isSafeInteger(value) && (value as number) >= 1 && (value as number) <= MAXIMUM[key];\n}\n\nfunction hasUnknownKeys(input: Record<string, unknown>, allowed: readonly string[]): boolean {\n return Object.keys(input).some((key) => !allowed.includes(key));\n}\n\nfunction frozenOptions(\n profile: string,\n limits: Readonly<Partial<CoreLimits>>,\n): NormalizedCompileOptions {\n return Object.freeze({ profile, limits });\n}\n","import type { CompiledKaladaV1Program } from \"@kalada/core\";\nimport type { CompiledExpression, ParsedExpression } from \"./execution-contracts.js\";\n\ninterface CompiledArtifactInput {\n readonly source: CompiledExpression[\"source\"];\n readonly parsed: ParsedExpression;\n readonly program: CompiledExpression[\"program\"];\n readonly sourceMap: CompiledExpression[\"sourceMap\"];\n readonly resultType: CompiledExpression[\"resultType\"];\n readonly compileProjectionFingerprint: string;\n readonly compileFingerprint: string;\n}\n\nconst constructionToken = Object.freeze({});\n\nclass AuthenticCompiledExpression implements CompiledExpression {\n readonly format = \"kalada-host-compiled-expression-v1\" as const;\n readonly source: CompiledExpression[\"source\"];\n readonly parsed: ParsedExpression;\n readonly program: CompiledExpression[\"program\"];\n readonly sourceMap: CompiledExpression[\"sourceMap\"];\n readonly coreCompilation: CompiledKaladaV1Program<string>;\n readonly dependencies: readonly string[];\n readonly resultType: CompiledExpression[\"resultType\"];\n readonly compileProjectionFingerprint: string;\n readonly compileFingerprint: string;\n readonly #integrity: Readonly<Record<string, unknown>>;\n\n constructor(token: object, input: CompiledArtifactInput, core: CompiledKaladaV1Program<string>) {\n if (token !== constructionToken) throw new TypeError(\"Invalid compiled artifact construction.\");\n this.source = input.source;\n this.parsed = input.parsed;\n this.program = input.program;\n this.sourceMap = input.sourceMap;\n this.coreCompilation = immutableCoreCompilation(core);\n this.dependencies = this.coreCompilation.dependencies;\n this.resultType = input.resultType;\n this.compileProjectionFingerprint = input.compileProjectionFingerprint;\n this.compileFingerprint = input.compileFingerprint;\n this.#integrity = integrityRecord(this);\n Object.freeze(this);\n }\n\n static authentic(input: unknown): input is AuthenticCompiledExpression {\n if (typeof input !== \"object\" || input === null || !(#integrity in input)) return false;\n return integrityMatches(input, input.#integrity);\n }\n}\n\nObject.freeze(AuthenticCompiledExpression.authentic);\nObject.freeze(AuthenticCompiledExpression.prototype);\nObject.freeze(AuthenticCompiledExpression);\n\nexport function createCompiledArtifact(\n input: CompiledArtifactInput,\n core: CompiledKaladaV1Program<string>,\n): CompiledExpression {\n return new AuthenticCompiledExpression(constructionToken, input, core);\n}\n\nexport function isAuthenticCompiledExpression(input: unknown): input is CompiledExpression {\n return AuthenticCompiledExpression.authentic(input);\n}\n\nfunction immutableCoreCompilation(\n core: CompiledKaladaV1Program<string>,\n): CompiledKaladaV1Program<string> {\n const evaluate: CompiledKaladaV1Program<string>[\"evaluate\"] = Object.freeze((resolve, inputs) =>\n core.evaluate(resolve, inputs),\n );\n const evaluateWithClock: CompiledKaladaV1Program<string>[\"evaluateWithClock\"] = Object.freeze(\n (resolve, clock) => core.evaluateWithClock(resolve, clock),\n );\n return Object.freeze({\n program: core.program,\n dependencies: core.dependencies,\n functions: core.functions,\n evaluate,\n evaluateWithClock,\n });\n}\n\nfunction integrityRecord(input: CompiledExpression): Readonly<Record<string, unknown>> {\n return Object.freeze({\n source: input.source,\n parsed: input.parsed,\n program: input.program,\n sourceMap: input.sourceMap,\n coreCompilation: input.coreCompilation,\n dependencies: input.dependencies,\n resultType: input.resultType,\n compileProjectionFingerprint: input.compileProjectionFingerprint,\n compileFingerprint: input.compileFingerprint,\n });\n}\n\nfunction integrityMatches(\n input: AuthenticCompiledExpression,\n expected: Readonly<Record<string, unknown>>,\n): boolean {\n if (!Object.isFrozen(input) || input.format !== \"kalada-host-compiled-expression-v1\")\n return false;\n return Object.entries(expected).every(\n ([key, value]) => input[key as keyof CompiledExpression] === value,\n );\n}\n","import type { KaladaV1Diagnostic } from \"@kalada/core\";\nimport type {\n KaladaSourceMapEntry,\n KaladaSourceRange,\n KaladaSyntaxDiagnostic,\n} from \"@kalada/syntax\";\nimport type { HostDiagnostic, HostDiagnosticPhase, ProvenanceEntry } from \"./contracts.js\";\nimport type { HostExecutionDiagnosticCode, HostExpressionSource } from \"./execution-contracts.js\";\n\nconst MESSAGES: Readonly<Record<HostExecutionDiagnosticCode, string>> = Object.freeze({\n HOST_PARSE_INVALID_SOURCE: \"The expression source declaration is invalid.\",\n HOST_COMPILE_INVALID_OPTIONS: \"The expression compile options are invalid.\",\n HOST_COMPILE_INVALID_PROJECTION: \"The environment compile projection is invalid.\",\n HOST_LINK_INCOMPATIBLE_ENVIRONMENT:\n \"The compiled expression is incompatible with the environment.\",\n HOST_LINK_MISSING_BINDING: \"A compiled dependency is unavailable in the environment.\",\n HOST_LINK_INVALID_CAPABILITY: \"A linked capability snapshot is invalid.\",\n HOST_LINK_ASYNC_UNSUPPORTED:\n \"An asynchronous declaration is unsupported by synchronous execution.\",\n HOST_BINDING_MISSING: \"A linked binding is not an own data property.\",\n HOST_BINDING_DECODE: \"A linked binding could not be decoded synchronously.\",\n HOST_BINDING_CONVERSION: \"A linked binding could not be converted synchronously.\",\n HOST_BINDING_SEMANTIC: \"A linked binding is not a valid value of its semantic type.\",\n});\n\nexport function executionDiagnostic(\n code: HostExecutionDiagnosticCode,\n phase: HostDiagnosticPhase,\n bindingPath?: readonly (string | number)[],\n provenance?: ProvenanceEntry,\n): HostDiagnostic {\n return Object.freeze({\n code,\n phase,\n message: MESSAGES[code],\n ...(bindingPath ? { bindingPath: Object.freeze([...bindingPath]) } : {}),\n ...(provenance ? { provenance: sanitizedProvenance(provenance) } : {}),\n });\n}\n\nexport function syntaxDiagnostics(\n diagnostics: readonly KaladaSyntaxDiagnostic[],\n source: HostExpressionSource,\n): readonly HostDiagnostic[] {\n return Object.freeze(\n diagnostics.map((cause) =>\n Object.freeze({\n code: cause.code,\n phase: cause.phase === \"lower\" ? (\"lower\" as const) : (\"parse\" as const),\n message: cause.message,\n source: sourceLocation(source, cause.range),\n cause,\n }),\n ),\n );\n}\n\nexport function coreDiagnostic(\n phase: \"compile\" | \"evaluate\",\n cause: KaladaV1Diagnostic,\n source: HostExpressionSource,\n sourceMap: readonly KaladaSourceMapEntry[],\n): HostDiagnostic {\n const fallback = Object.freeze({ start: 0, end: source.text.length });\n return Object.freeze({\n code: cause.code,\n phase,\n message: cause.message,\n source: sourceLocation(source, mappedRange(sourceMap, cause.path, fallback)),\n cause,\n });\n}\n\nfunction mappedRange(\n entries: readonly KaladaSourceMapEntry[],\n path: readonly (string | number)[],\n fallback: KaladaSourceRange,\n): KaladaSourceRange {\n const exact = entries.filter((entry) => equalPath(entry.path, path)).sort(byNarrowest)[0];\n if (exact) return exact.range;\n for (let length = path.length - 1; length > 0; length -= 1) {\n const found = entries.find(\n (entry) => entry.role === \"node\" && equalPath(entry.path, path.slice(0, length)),\n );\n if (found) return found.range;\n }\n return fallback;\n}\n\nfunction sourceLocation(source: HostExpressionSource, range: KaladaSourceRange) {\n return Object.freeze({\n uri: source.uri,\n range: Object.freeze({\n start: positionAt(source.text, range.start),\n end: positionAt(source.text, range.end),\n }),\n });\n}\n\nfunction positionAt(source: string, offset: number) {\n const prefix = source.slice(0, offset);\n const lastBreak = prefix.lastIndexOf(\"\\n\");\n return Object.freeze({\n line: prefix.split(\"\\n\").length - 1,\n character: offset - lastBreak - 1,\n });\n}\n\nfunction equalPath(\n left: readonly (string | number)[],\n right: readonly (string | number)[],\n): boolean {\n return left.length === right.length && left.every((part, index) => part === right[index]);\n}\n\nfunction byNarrowest(left: KaladaSourceMapEntry, right: KaladaSourceMapEntry): number {\n return left.range.end - left.range.start - (right.range.end - right.range.start);\n}\n\nfunction sanitizedProvenance(input: ProvenanceEntry): Readonly<Record<string, string>> {\n const output: Record<string, string> = Object.create(null);\n for (const key of [\"providerId\", \"providerVersion\", \"source\", \"extractor\", \"override\"] as const) {\n const value = input[key];\n if (value !== undefined) output[key] = value;\n }\n return Object.freeze(output);\n}\n","export const HOST_COMPILE_FINGERPRINT_VERSION = \"kalada-host-compile-fingerprint-v1\";\nexport const HOST_LINK_FINGERPRINT_VERSION = \"kalada-host-link-fingerprint-v1\";\n\nexport function createFingerprint(marker: string, input: unknown): string {\n return `${marker}:sha256:${sha256(stableText(input))}`;\n}\n\nfunction stableText(input: unknown): string {\n if (input === null || typeof input === \"boolean\" || typeof input === \"number\") {\n return JSON.stringify(input);\n }\n if (typeof input === \"string\") return JSON.stringify(input);\n if (Array.isArray(input)) return `[${input.map(stableText).join(\",\")}]`;\n if (typeof input !== \"object\") return JSON.stringify(String(input));\n return stableRecord(input as Readonly<Record<string, unknown>>);\n}\n\nfunction stableRecord(input: Readonly<Record<string, unknown>>): string {\n return `{${Object.keys(input)\n .sort()\n .map((key) => `${JSON.stringify(key)}:${stableText(input[key])}`)\n .join(\",\")}}`;\n}\n\nconst ROUND_CONSTANTS = Object.freeze([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n]);\n\nfunction sha256(input: string): string {\n const bytes = paddedBytes(new TextEncoder().encode(input));\n const state = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n ]);\n for (let offset = 0; offset < bytes.length; offset += 64) compress(bytes, offset, state);\n return [...state].map((value) => value.toString(16).padStart(8, \"0\")).join(\"\");\n}\n\nfunction paddedBytes(input: Uint8Array): Uint8Array {\n const length = Math.ceil((input.length + 9) / 64) * 64;\n const output = new Uint8Array(length);\n output.set(input);\n output[input.length] = 0x80;\n const bits = BigInt(input.length) * 8n;\n for (let index = 0; index < 8; index += 1) {\n output[length - 1 - index] = Number((bits >> BigInt(index * 8)) & 0xffn);\n }\n return output;\n}\n\nfunction compress(bytes: Uint8Array, offset: number, state: Uint32Array): void {\n const words = new Uint32Array(64);\n for (let index = 0; index < 16; index += 1) words[index] = readWord(bytes, offset + index * 4);\n for (let index = 16; index < 64; index += 1) {\n const first = words[index - 15] as number;\n const second = words[index - 2] as number;\n words[index] = add(\n smallSigma0(first),\n words[index - 16],\n smallSigma1(second),\n words[index - 7],\n );\n }\n const working = [...state];\n for (let index = 0; index < 64; index += 1) shaRound(working, words[index] as number, index);\n for (let index = 0; index < 8; index += 1) state[index] = add(state[index], working[index]);\n}\n\nfunction shaRound(working: number[], word: number, index: number): void {\n const [a, b, c, d, e, f, g, h] = working as [\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n ];\n const first = add(h, bigSigma1(e), (e & f) ^ (~e & g), ROUND_CONSTANTS[index], word);\n const second = add(bigSigma0(a), (a & b) ^ (a & c) ^ (b & c));\n working[0] = add(first, second);\n working[1] = a;\n working[2] = b;\n working[3] = c;\n working[4] = add(d, first);\n working[5] = e;\n working[6] = f;\n working[7] = g;\n}\n\nfunction readWord(bytes: Uint8Array, offset: number): number {\n return (\n ((bytes[offset] as number) << 24) |\n ((bytes[offset + 1] as number) << 16) |\n ((bytes[offset + 2] as number) << 8) |\n (bytes[offset + 3] as number)\n );\n}\n\nfunction add(...values: readonly (number | undefined)[]): number {\n let result = 0;\n for (const value of values) result = (result + (value ?? 0)) >>> 0;\n return result;\n}\n\nfunction rotate(value: number, count: number): number {\n return (value >>> count) | (value << (32 - count));\n}\n\nfunction smallSigma0(value: number): number {\n return rotate(value, 7) ^ rotate(value, 18) ^ (value >>> 3);\n}\n\nfunction smallSigma1(value: number): number {\n return rotate(value, 17) ^ rotate(value, 19) ^ (value >>> 10);\n}\n\nfunction bigSigma0(value: number): number {\n return rotate(value, 2) ^ rotate(value, 13) ^ rotate(value, 22);\n}\n\nfunction bigSigma1(value: number): number {\n return rotate(value, 6) ^ rotate(value, 11) ^ rotate(value, 25);\n}\n","export function readArray(input: unknown, maximum: number): readonly unknown[] | null {\n const result = readArrayPrefix(input, maximum);\n return result && !result.truncated ? result.items : null;\n}\n\nexport function readArrayPrefix(\n input: unknown,\n maximum: number,\n): Readonly<{ items: readonly unknown[]; truncated: boolean }> | null {\n if (!Array.isArray(input)) return null;\n try {\n const lengthDescriptor = Object.getOwnPropertyDescriptor(input, \"length\");\n if (!lengthDescriptor || !(\"value\" in lengthDescriptor)) return null;\n const length = lengthDescriptor.value;\n if (\n typeof length !== \"number\" ||\n !Number.isSafeInteger(length) ||\n length < 0 ||\n !Number.isSafeInteger(maximum) ||\n maximum < 0\n )\n return null;\n const output: unknown[] = [];\n const readLength = Math.min(length, maximum);\n for (let index = 0; index < readLength; index += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(input, String(index));\n if (!descriptor || !(\"value\" in descriptor)) return null;\n output.push(descriptor.value);\n }\n return Object.freeze({ items: Object.freeze(output), truncated: length > maximum });\n } catch {\n return null;\n }\n}\n\nexport function readStringArray(input: unknown, maximum: number): readonly string[] | null {\n const items = readArray(input, maximum);\n if (!items || items.some((item) => !validName(item))) return null;\n return Object.freeze(items as string[]);\n}\n\nexport function validName(input: unknown): input is string {\n return typeof input === \"string\" && input.length > 0 && input.length <= 256;\n}\n","import type { KaladaSyntaxStaticType } from \"@kalada/syntax\";\nimport { cloneSerializableData, readOwnDataRecord } from \"./serializable.js\";\n\nexport type SemanticTypeResult =\n | Readonly<{ ok: true; value: KaladaSyntaxStaticType }>\n | Readonly<{ ok: false }>;\n\nconst primitiveNames = new Set([\n \"null\",\n \"boolean\",\n \"number\",\n \"string\",\n \"json\",\n \"Instant\",\n \"Duration\",\n]);\n\nexport function cloneSemanticType(input: unknown): SemanticTypeResult {\n if (input === \"dynamic\") return Object.freeze({ ok: true, value: \"dynamic\" });\n const cloned = cloneSerializableData(input);\n if (!cloned.ok || !isKaladaType(cloned.value, 0)) return Object.freeze({ ok: false });\n return Object.freeze({ ok: true, value: cloned.value as KaladaSyntaxStaticType });\n}\n\nexport function readSemanticType(input: unknown): SemanticTypeResult {\n return cloneSemanticType(input);\n}\n\nfunction isKaladaType(input: unknown, depth: number): boolean {\n if (depth > 32) return false;\n const inspected = readOwnDataRecord(input, 64);\n if (!inspected.ok || typeof inspected.value.kind !== \"string\") return false;\n const record = inspected.value;\n if (record.kind === \"primitive-type\") return isPrimitive(record);\n if (record.kind === \"array-type\") return isUnary(record, \"element\", depth);\n if (record.kind === \"option-type\") return isUnary(record, \"value\", depth);\n if (record.kind === \"result-type\") return isResult(record, depth);\n if (record.kind === \"function-type\") return isFunction(record, depth);\n return false;\n}\n\nfunction isPrimitive(record: Record<string, unknown>): boolean {\n return exactKeys(record, [\"kind\", \"name\"]) && primitiveNames.has(record.name as string);\n}\n\nfunction isUnary(record: Record<string, unknown>, field: string, depth: number): boolean {\n return exactKeys(record, [\"kind\", field]) && isKaladaType(record[field], depth + 1);\n}\n\nfunction isResult(record: Record<string, unknown>, depth: number): boolean {\n return (\n exactKeys(record, [\"kind\", \"ok\", \"error\"]) &&\n isKaladaType(record.ok, depth + 1) &&\n isKaladaType(record.error, depth + 1)\n );\n}\n\nfunction isFunction(record: Record<string, unknown>, depth: number): boolean {\n if (!exactKeys(record, [\"kind\", \"parameters\", \"returns\"])) return false;\n if (!Array.isArray(record.parameters)) return false;\n return (\n record.parameters.every((parameter) => isKaladaType(parameter, depth + 1)) &&\n isKaladaType(record.returns, depth + 1)\n );\n}\n\nfunction exactKeys(record: Record<string, unknown>, expected: readonly string[]): boolean {\n const keys = Object.keys(record);\n return keys.length === expected.length && expected.every((key) => keys.includes(key));\n}\n","import { type CompiledKaladaV1Program, compileKaladaV1Program } from \"@kalada/core\";\nimport {\n type KaladaLowerOutcome,\n type KaladaParseOptions,\n lowerKaladaV1Expression,\n parseKaladaV1Expression,\n} from \"@kalada/syntax\";\nimport {\n HOST_COMPILE_OPTIONS_CONTRACT,\n type NormalizedCompileOptions,\n normalizeCompileOptions,\n} from \"./compile-options.js\";\nimport { createCompiledArtifact } from \"./compiled-artifact.js\";\nimport type { HostCompileProjection } from \"./contracts.js\";\nimport type {\n CompileExpressionResult,\n HostCompileOptions,\n HostParseOptions,\n ParsedExpression,\n ParseExpressionResult,\n} from \"./execution-contracts.js\";\nimport { coreDiagnostic, executionDiagnostic, syntaxDiagnostics } from \"./execution-diagnostics.js\";\nimport { createFingerprint, HOST_COMPILE_FINGERPRINT_VERSION } from \"./fingerprint.js\";\nimport { validName } from \"./input-readers.js\";\nimport { cloneSemanticType } from \"./semantic-type.js\";\nimport { cloneSerializableData, readOwnDataRecord } from \"./serializable.js\";\n\nconst DEFAULT_URI = \"memory:///expression.kalada\";\nconst SYNTAX_CONTRACT = \"kalada-syntax-lowering-result-v1\";\nconst CORE_CONTRACT = \"kalada-core-compiled-program-v1\";\n\nexport function parseExpression(source: string, options?: HostParseOptions): ParseExpressionResult {\n const normalized = normalizeParseInput(source, options);\n if (!normalized) return failed(executionDiagnostic(\"HOST_PARSE_INVALID_SOURCE\", \"parse\"));\n const syntax = parseKaladaV1Expression(source, normalized.syntax);\n if (syntax.diagnostics.length > 0)\n return failures(syntaxDiagnostics(syntax.diagnostics, normalized.source));\n return success(\n Object.freeze({\n format: \"kalada-host-parsed-expression-v1\" as const,\n source: normalized.source,\n syntax,\n parseFingerprintInput: normalized.fingerprintInput,\n }),\n );\n}\n\nexport function compileExpression(\n parsed: ParsedExpression,\n projection: HostCompileProjection,\n options?: HostCompileOptions,\n): CompileExpressionResult {\n const normalizedProjection = normalizeProjection(projection);\n if (!normalizedProjection) {\n return failed(executionDiagnostic(\"HOST_COMPILE_INVALID_PROJECTION\", \"compile\"));\n }\n const normalizedOptions = normalizeCompileOptions(options);\n if (!normalizedOptions)\n return failed(executionDiagnostic(\"HOST_COMPILE_INVALID_OPTIONS\", \"compile\"));\n const references = Object.fromEntries(\n normalizedProjection.bindings.map(({ id, name, semanticType }) => [\n name,\n Object.freeze({ reference: id, type: semanticType }),\n ]),\n );\n const lower = lowerKaladaV1Expression(parsed.syntax, {\n references,\n coreOptions: { limits: normalizedOptions.limits },\n });\n if (!lower.ok) return failures(syntaxDiagnostics(lower.diagnostics, parsed.source));\n const core = compileKaladaV1Program(lower.program, { limits: normalizedOptions.limits });\n if (!core.ok) {\n return failed(coreDiagnostic(\"compile\", core.diagnostic, parsed.source, lower.sourceMap));\n }\n return success(\n compiledArtifact(parsed, normalizedProjection, normalizedOptions, lower, core.value),\n );\n}\n\nfunction compiledArtifact(\n parsed: Parameters<typeof compileExpression>[0],\n projection: HostCompileProjection,\n options: NormalizedCompileOptions,\n lower: Extract<KaladaLowerOutcome<string>, { ok: true }>,\n core: CompiledKaladaV1Program<string>,\n) {\n const projectionFingerprint = createFingerprint(projection.format, projection);\n const compileFingerprint = createFingerprint(HOST_COMPILE_FINGERPRINT_VERSION, {\n syntaxContract: SYNTAX_CONTRACT,\n coreContract: CORE_CONTRACT,\n compileOptionsContract: HOST_COMPILE_OPTIONS_CONTRACT,\n source: parsed.source,\n parseOptions: parsed.parseFingerprintInput,\n profile: options.profile,\n limits: options.limits,\n projection,\n program: lower.program,\n });\n return createCompiledArtifact(\n {\n source: parsed.source,\n parsed,\n program: lower.program,\n sourceMap: lower.sourceMap,\n resultType: lower.resultType,\n compileProjectionFingerprint: projectionFingerprint,\n compileFingerprint,\n },\n core,\n );\n}\n\nfunction normalizeParseInput(source: unknown, options: unknown) {\n if (typeof source !== \"string\") return null;\n if (options === undefined) return parseInput(source, DEFAULT_URI, undefined);\n const inspected = readOwnDataRecord(options, 4);\n if (!inspected.ok) return null;\n const uri = inspected.value.sourceUri ?? DEFAULT_URI;\n if (typeof uri !== \"string\" || uri.length === 0) return null;\n if (inspected.value.syntax === undefined) return parseInput(source, uri, undefined);\n const cloned = cloneSerializableData(inspected.value.syntax);\n if (!cloned.ok) return null;\n return parseInput(source, uri, cloned.value as KaladaParseOptions | undefined);\n}\n\nfunction parseInput(text: string, uri: string, syntax: KaladaParseOptions | undefined) {\n const source = Object.freeze({ uri, text });\n const fingerprintInput = Object.freeze({ uri, syntax: syntax ?? null });\n return { source, syntax, fingerprintInput };\n}\n\nfunction normalizeProjection(input: unknown): HostCompileProjection | null {\n const cloned = cloneSerializableData(input);\n if (!cloned.ok) return null;\n const value = cloned.value as unknown as HostCompileProjection;\n if (value.format !== \"kalada-host-compile-projection-v1\" || !Array.isArray(value.bindings)) {\n return null;\n }\n const identities = new Set<string>();\n const names = new Set<string>();\n const bindings: HostCompileProjection[\"bindings\"][number][] = [];\n for (const inputBinding of value.bindings) {\n const inspected = readOwnDataRecord(inputBinding, 4);\n if (!inspected.ok) return null;\n const { id, name, semanticType } = inspected.value;\n const semantic = cloneSemanticType(semanticType);\n if (!validName(id) || !validName(name) || !semantic.ok) return null;\n if (identities.has(id as string) || names.has(name as string)) return null;\n identities.add(id as string);\n names.add(name as string);\n bindings.push(\n Object.freeze({ id: id as string, name: name as string, semanticType: semantic.value }),\n );\n }\n return Object.freeze({\n format: \"kalada-host-compile-projection-v1\",\n bindings: Object.freeze(bindings),\n });\n}\n\nfunction success<T>(value: T) {\n return Object.freeze({ ok: true as const, value });\n}\n\nfunction failed(diagnostic: ReturnType<typeof executionDiagnostic>) {\n return failures([diagnostic]);\n}\n\nfunction failures(diagnostics: readonly ReturnType<typeof executionDiagnostic>[]) {\n return Object.freeze({ ok: false as const, diagnostics: Object.freeze([...diagnostics]) });\n}\n","export type EditorGraphEdgeCategory = \"root\" | \"definition\" | \"child\" | \"resolution\";\n\nexport interface EditorGraphAdmissionRequest {\n readonly maxEdges: number;\n readonly definitions: number;\n readonly children: number;\n readonly resolutions: number;\n readonly roots: number;\n readonly evidenceReserve?: number;\n}\n\nexport interface EditorGraphAdmission {\n readonly model: Readonly<{\n readonly B: number;\n readonly D: number;\n readonly C: number;\n readonly V: number;\n readonly R: number;\n readonly Q: number;\n }>;\n readonly requestedChildren: number;\n readonly backboneAdmitted: boolean;\n readonly truncated: boolean;\n readonly total: number;\n readonly remaining: number;\n}\n\nexport interface EditorGraphEdgeUsage {\n readonly budget: number;\n readonly root: number;\n readonly definition: number;\n readonly child: number;\n readonly resolution: number;\n readonly total: number;\n readonly remaining: number;\n}\n\nexport interface EditorGraphEdgeMeter {\n readonly claim: (category: EditorGraphEdgeCategory) => boolean;\n readonly snapshot: () => EditorGraphEdgeUsage;\n}\n\nexport function calculateEditorGraphAdmission(\n request: EditorGraphAdmissionRequest,\n): EditorGraphAdmission {\n const B = boundedCount(request.maxEdges);\n const D = boundedCount(request.definitions);\n const requestedChildren = boundedCount(request.children);\n const V = boundedCount(request.resolutions);\n const R = boundedCount(request.roots);\n const Q = boundedCount(request.evidenceReserve ?? 0);\n const fixed = D + V + R + Q;\n const backboneAdmitted = fixed <= B;\n const C = backboneAdmitted ? Math.min(requestedChildren, B - fixed) : 0;\n const total = backboneAdmitted ? fixed + C : 0;\n return Object.freeze({\n model: Object.freeze({ B, D, C, V, R, Q }),\n requestedChildren,\n backboneAdmitted,\n truncated: !backboneAdmitted || C < requestedChildren,\n total,\n remaining: B - total,\n });\n}\n\nexport function createEditorGraphEdgeMeter(maxEdges: number): EditorGraphEdgeMeter {\n const budget = boundedCount(maxEdges);\n const counts: Record<EditorGraphEdgeCategory, number> = {\n root: 0,\n definition: 0,\n child: 0,\n resolution: 0,\n };\n return Object.freeze({\n claim(category: EditorGraphEdgeCategory) {\n if (sumCounts(counts) >= budget) return false;\n counts[category] += 1;\n return true;\n },\n snapshot() {\n const total = sumCounts(counts);\n return Object.freeze({ budget, ...counts, total, remaining: budget - total });\n },\n });\n}\n\nfunction boundedCount(value: number): number {\n return Number.isSafeInteger(value) && value > 0 ? value : 0;\n}\n\nfunction sumCounts(counts: Readonly<Record<EditorGraphEdgeCategory, number>>): number {\n return counts.root + counts.definition + counts.child + counts.resolution;\n}\n","import type { EditorEdge, EditorNode } from \"./editor-types.js\";\n\nexport function markReferenceCycles(\n nodes: EditorNode[],\n references: readonly { readonly index: number }[],\n): void {\n const byId = new Map(nodes.map((node) => [node.id, node]));\n for (const reference of references) {\n const node = nodes[reference.index];\n if (node?.kind !== \"reference\" || !node.target) continue;\n if (!isReachable(byId, node.target.nodeId, node.id)) continue;\n nodes[reference.index] = {\n ...node,\n target: cycleEdge(node.target),\n };\n }\n}\n\nfunction isReachable(\n nodes: ReadonlyMap<string, EditorNode>,\n start: string,\n target: string,\n): boolean {\n const pending = [start];\n const discovered = new Set([start]);\n while (pending.length > 0) {\n const id = pending.pop();\n if (!id) continue;\n if (id === target) return true;\n const node = nodes.get(id);\n if (node) addUndiscovered(outgoingNodeIds(node), discovered, pending);\n }\n return false;\n}\n\nfunction addUndiscovered(\n next: readonly string[],\n discovered: Set<string>,\n pending: string[],\n): void {\n for (const id of next) {\n if (discovered.has(id)) continue;\n discovered.add(id);\n pending.push(id);\n }\n}\n\nfunction outgoingNodeIds(node: EditorNode): string[] {\n const relations = (node.relations ?? []).map(({ nodeId }) => nodeId);\n if (node.kind === \"object\") {\n return [\n ...relations,\n ...node.properties.map(({ nodeId }) => nodeId),\n ...(node.additionalProperties ? [node.additionalProperties.nodeId] : []),\n ];\n }\n if (node.kind === \"array\") return [...relations, node.element.nodeId];\n if (node.kind === \"tuple\") {\n return [\n ...relations,\n ...node.items.map(({ nodeId }) => nodeId),\n ...(node.rest ? [node.rest.nodeId] : []),\n ];\n }\n if (node.kind === \"union\") return [...relations, ...node.variants.map(({ nodeId }) => nodeId)];\n if (node.kind === \"intersection\")\n return [...relations, ...node.operands.map(({ nodeId }) => nodeId)];\n if (node.kind === \"record\") return [...relations, node.key.nodeId, node.value.nodeId];\n if (node.kind === \"wrapper\") return [...relations, node.inner.nodeId];\n if (node.kind === \"reference\" && node.target) return [...relations, node.target.nodeId];\n return relations;\n}\n\nfunction cycleEdge(edge: EditorEdge): EditorEdge {\n return Object.freeze({ nodeId: edge.nodeId, path: edge.path, cycle: true });\n}\n","import type {\n EditorData,\n EditorEdge,\n EditorNode,\n EditorPropertyEdge,\n EditorUnknownCode,\n HostPath,\n} from \"./editor-types.js\";\nimport { readArray } from \"./input-readers.js\";\nimport { cloneSerializableData, readOwnDataRecord } from \"./serializable.js\";\n\nexport interface NodeBuildContext {\n readonly maximumCollectionSize: number;\n readonly child: (shape: unknown, path: HostPath) => EditorEdge | null;\n}\n\nexport function withNodeEvidence(\n node: EditorNode,\n record: Record<string, unknown>,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode {\n const relations = relationEdges(record.relations, path, context);\n if (!relations) return unknownNode(node.id, path, \"invalid-shape\");\n const annotations = optionalData(record.annotations);\n const constraints = optionalData(record.constraints);\n if (!annotations.ok || !constraints.ok) return unknownNode(node.id, path, \"invalid-shape\");\n return {\n ...node,\n ...(validText(record.sourceId) ? { sourceId: record.sourceId } : {}),\n ...(annotations.value === undefined ? {} : { annotations: annotations.value }),\n ...(constraints.value === undefined ? {} : { constraints: constraints.value }),\n relations: Object.freeze(relations),\n } as EditorNode;\n}\n\nexport function scalarNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n): EditorNode {\n const names = [\n \"null\",\n \"boolean\",\n \"number\",\n \"integer\",\n \"string\",\n \"undefined\",\n \"void\",\n \"bigint\",\n \"symbol\",\n \"date\",\n \"NaN\",\n \"json\",\n \"instant\",\n \"duration\",\n ];\n if (typeof record.name !== \"string\" || !names.includes(record.name)) {\n return unknownNode(id, path, \"invalid-shape\");\n }\n return { id, path, kind: \"scalar\", name: record.name as never, ...available() };\n}\n\nexport function declaredUnknownNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n): EditorNode {\n const reason = typeof record.reason === \"string\" ? record.reason.slice(0, 256) : undefined;\n const code = validUnknownCode(record.evidenceCode) ? record.evidenceCode : \"unsupported-shape\";\n return {\n ...unknownNode(id, path, code),\n ...(reason === undefined ? {} : { reason }),\n };\n}\n\nfunction validUnknownCode(value: unknown): value is EditorUnknownCode {\n return [\n \"invalid-shape\",\n \"unsupported-shape\",\n \"depth-limit\",\n \"node-limit\",\n \"edge-limit\",\n \"unresolved-reference\",\n ].includes(value as string);\n}\n\nexport function objectNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode {\n const items = readArray(record.properties, context.maximumCollectionSize);\n if (!items) return unknownNode(id, path, \"invalid-shape\");\n const properties: EditorPropertyEdge[] = [];\n for (let index = 0; index < items.length; index += 1) {\n const property = propertyEdge(items[index], index, path, context);\n if (!property) return partialObjectNode(id, path, properties);\n properties.push(property);\n }\n const additionalProperties = optionalChild(record.additionalProperties, [...path, \"*\"], context);\n if (additionalProperties === null) return partialObjectNode(id, path, properties);\n const requiredNames = stringList(record.requiredNames);\n if (!requiredNames) return unknownNode(id, path, \"invalid-shape\");\n const unknownKeys = validUnknownKeys(record.unknownKeys) ? record.unknownKeys : undefined;\n return {\n id,\n path,\n kind: \"object\",\n properties: Object.freeze(properties),\n requiredNames: Object.freeze(requiredNames),\n ...(additionalProperties ? { additionalProperties } : {}),\n ...(unknownKeys ? { unknownKeys } : {}),\n ...available(),\n };\n}\n\nfunction propertyEdge(\n input: unknown,\n index: number,\n path: HostPath,\n context: NodeBuildContext,\n): EditorPropertyEdge | null {\n const inspected = readOwnDataRecord(input, 4);\n const record = inspected.ok ? inspected.value : Object.create(null);\n const name = typeof record.name === \"string\" ? record.name : `<invalid:${index}>`;\n const childPath = freezePath([...path, name]);\n const child = context.child(record.shape, childPath);\n const presence = readPresence(record);\n return child\n ? Object.freeze({ ...child, name, required: presence === \"required\", presence })\n : null;\n}\n\nexport function arrayNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode {\n const element = context.child(record.element, freezePath([...path, \"[]\"]));\n return element\n ? { id, path, kind: \"array\", element, ...available() }\n : unknownNode(id, path, \"edge-limit\");\n}\n\nexport function tupleNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode {\n const sourceItems = readArray(record.items, context.maximumCollectionSize);\n if (!sourceItems) return unknownNode(id, path, \"invalid-shape\");\n const built = buildIndexedEdges(sourceItems, path, context);\n if (!built.complete) return partialTupleNode(id, path, built.items);\n const items = built.items;\n if (record.rest === undefined) {\n return { id, path, kind: \"tuple\", items: Object.freeze(items), ...available() };\n }\n const rest = context.child(record.rest, freezePath([...path, \"...\"]));\n return rest\n ? { id, path, kind: \"tuple\", items: Object.freeze(items), rest, ...available() }\n : partialTupleNode(id, path, items);\n}\n\nfunction buildIndexedEdges(\n inputs: readonly unknown[],\n path: HostPath,\n context: NodeBuildContext,\n): { readonly complete: boolean; readonly items: EditorEdge[] } {\n const items: EditorEdge[] = [];\n for (let index = 0; index < inputs.length; index += 1) {\n const item = context.child(inputs[index], freezePath([...path, index]));\n if (!item) return { complete: false, items };\n items.push(item);\n }\n return { complete: true, items };\n}\n\nexport function unionNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode {\n const inputs = readArray(record.variants, context.maximumCollectionSize);\n if (!inputs) return unknownNode(id, path, \"invalid-shape\");\n const variants: EditorEdge[] = [];\n for (let index = 0; index < inputs.length; index += 1) {\n const variant = context.child(inputs[index], freezePath([...path, \"$variant\", index]));\n if (!variant) return partialUnionNode(id, path, variants);\n variants.push(variant);\n }\n const discriminator = optionalData(record.discriminator);\n if (!discriminator.ok) return unknownNode(id, path, \"invalid-shape\");\n return {\n id,\n path,\n kind: \"union\",\n variants: Object.freeze(variants),\n ...(validText(record.semantics) ? { semantics: record.semantics } : {}),\n ...(discriminator.value === undefined ? {} : { discriminator: discriminator.value }),\n ...available(),\n };\n}\n\nexport function unknownNode(id: string, path: HostPath, code: EditorUnknownCode): EditorNode {\n return {\n id,\n path,\n kind: \"unknown\",\n availability: \"unknown\",\n evidence: evidence(code, path),\n relations: Object.freeze([]),\n };\n}\n\nexport function evidence(code: EditorUnknownCode, path: HostPath) {\n return Object.freeze([Object.freeze({ code, path })]);\n}\n\nfunction partialObjectNode(\n id: string,\n path: HostPath,\n properties: EditorPropertyEdge[],\n): EditorNode {\n return {\n id,\n path,\n kind: \"object\",\n properties: Object.freeze(properties),\n requiredNames: Object.freeze([]),\n ...unavailable(\"edge-limit\", path),\n };\n}\n\nfunction partialTupleNode(id: string, path: HostPath, items: EditorEdge[]): EditorNode {\n return {\n id,\n path,\n kind: \"tuple\",\n items: Object.freeze(items),\n ...unavailable(\"edge-limit\", path),\n };\n}\n\nfunction partialUnionNode(id: string, path: HostPath, variants: EditorEdge[]): EditorNode {\n return {\n id,\n path,\n kind: \"union\",\n variants: Object.freeze(variants),\n ...unavailable(\"edge-limit\", path),\n };\n}\n\nfunction available(): Pick<EditorNode, \"availability\" | \"evidence\" | \"relations\"> {\n return { availability: \"available\", evidence: Object.freeze([]), relations: Object.freeze([]) };\n}\n\nfunction unavailable(code: EditorUnknownCode, path: HostPath) {\n return {\n availability: \"unknown\" as const,\n evidence: evidence(code, path),\n relations: Object.freeze([]),\n };\n}\n\nfunction freezePath(path: HostPath): HostPath {\n return Object.freeze([...path]);\n}\n\nfunction readPresence(record: Record<string, unknown>) {\n if ([\"required\", \"optional\", \"unknown\"].includes(record.presence as string)) {\n return record.presence as \"required\" | \"optional\" | \"unknown\";\n }\n return record.required === true ? (\"required\" as const) : (\"optional\" as const);\n}\n\nfunction optionalChild(\n value: unknown,\n path: HostPath,\n context: NodeBuildContext,\n): EditorEdge | undefined | null {\n return value === undefined ? undefined : context.child(value, freezePath(path));\n}\n\nfunction optionalData(\n value: unknown,\n): Readonly<{ ok: true; value?: EditorData }> | Readonly<{ ok: false }> {\n if (value === undefined) return Object.freeze({ ok: true });\n const cloned = cloneSerializableData(value);\n return cloned.ok\n ? Object.freeze({ ok: true, value: cloned.value })\n : Object.freeze({ ok: false });\n}\n\nfunction stringList(value: unknown): string[] | null {\n if (value === undefined) return [];\n const items = readArray(value, 8_192);\n return items?.every((item) => typeof item === \"string\") ? (items as string[]) : null;\n}\n\nfunction validUnknownKeys(\n value: unknown,\n): value is \"strip\" | \"reject\" | \"passthrough\" | \"schema\" | \"unknown\" {\n return [\"strip\", \"reject\", \"passthrough\", \"schema\", \"unknown\"].includes(value as string);\n}\n\nfunction validText(value: unknown): value is string {\n return typeof value === \"string\" && value.length > 0 && value.length <= 1_024;\n}\n\nfunction relationEdges(input: unknown, path: HostPath, context: NodeBuildContext) {\n if (input === undefined) return [];\n const items = readArray(input, context.maximumCollectionSize);\n if (!items) return null;\n const output = [];\n for (let index = 0; index < items.length; index += 1) {\n const inspected = readOwnDataRecord(items[index], 4);\n if (!inspected.ok || !validText(inspected.value.name)) return null;\n const child = context.child(inspected.value.shape, freezePath([...path, \"$relation\", index]));\n if (!child) return null;\n const key = validText(inspected.value.key) ? inspected.value.key : undefined;\n output.push(Object.freeze({ ...child, name: inspected.value.name, ...(key ? { key } : {}) }));\n }\n return output;\n}\n","import type { NodeBuildContext } from \"./editor-node-builders.js\";\nimport { unknownNode } from \"./editor-node-builders.js\";\nimport type { EditorEdge, EditorNode, HostPath } from \"./editor-types.js\";\nimport { readArray } from \"./input-readers.js\";\nimport { cloneSerializableData } from \"./serializable.js\";\n\nconst available = Object.freeze({\n availability: \"available\" as const,\n evidence: Object.freeze([]),\n relations: Object.freeze([]),\n});\n\nexport function evidenceNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n): EditorNode | null {\n if (record.kind === \"literal\") return dataNode(\"literal\", \"value\", record, id, path);\n if (record.kind === \"enum\") return enumNode(record, id, path);\n if (record.kind === \"never\") return { id, path, kind: \"never\", ...available };\n if (record.kind === \"unconstrained\") return unconstrainedNode(record, id, path);\n if (record.kind === \"opaque\") return opaqueNode(record, id, path);\n return null;\n}\n\nexport function compositeEvidenceNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode | null {\n if (record.kind === \"record\") return recordNode(record, id, path, context);\n if (record.kind === \"intersection\") return intersectionNode(record, id, path, context);\n if (record.kind === \"wrapper\") return wrapperNode(record, id, path, context);\n return null;\n}\n\nfunction dataNode(\n kind: \"literal\",\n field: \"value\",\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n): EditorNode {\n const cloned = cloneSerializableData(record[field]);\n return cloned.ok\n ? { id, path, kind, [field]: cloned.value, ...available }\n : unknownNode(id, path, \"invalid-shape\");\n}\n\nfunction enumNode(record: Record<string, unknown>, id: string, path: HostPath): EditorNode {\n const cloned = cloneSerializableData(record.values);\n if (!cloned.ok || !Array.isArray(cloned.value)) return unknownNode(id, path, \"invalid-shape\");\n return { id, path, kind: \"enum\", values: cloned.value, ...available };\n}\n\nfunction unconstrainedNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n): EditorNode {\n return record.domain === \"json\" || record.domain === \"js\"\n ? { id, path, kind: \"unconstrained\", domain: record.domain, ...available }\n : unknownNode(id, path, \"invalid-shape\");\n}\n\nfunction opaqueNode(record: Record<string, unknown>, id: string, path: HostPath): EditorNode {\n return typeof record.reason === \"string\"\n ? { id, path, kind: \"opaque\", reason: record.reason.slice(0, 256), ...available }\n : unknownNode(id, path, \"invalid-shape\");\n}\n\nfunction recordNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode {\n const key = context.child(record.key, Object.freeze([...path, \"$key\"]));\n const value = context.child(record.value, Object.freeze([...path, \"$value\"]));\n const exhaustive = record.exhaustive;\n if (!key || !value || (exhaustive !== true && exhaustive !== false && exhaustive !== \"unknown\")) {\n return unknownNode(id, path, \"invalid-shape\");\n }\n return { id, path, kind: \"record\", key, value, exhaustive, ...available };\n}\n\nfunction intersectionNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode {\n const operands = childList(record.operands, path, \"$operand\", context);\n return operands\n ? { id, path, kind: \"intersection\", operands: Object.freeze(operands), ...available }\n : unknownNode(id, path, \"invalid-shape\");\n}\n\nfunction wrapperNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n context: NodeBuildContext,\n): EditorNode {\n const inner = context.child(record.inner, Object.freeze([...path, \"$inner\"]));\n if (!inner || typeof record.wrapper !== \"string\") return unknownNode(id, path, \"invalid-shape\");\n const value = record.value === undefined ? undefined : cloneSerializableData(record.value);\n if (value && !value.ok) return unknownNode(id, path, \"invalid-shape\");\n return {\n id,\n path,\n kind: \"wrapper\",\n wrapper: record.wrapper.slice(0, 256),\n inner,\n ...(value?.ok ? { value: value.value } : {}),\n ...available,\n };\n}\n\nfunction childList(\n input: unknown,\n path: HostPath,\n segment: string,\n context: NodeBuildContext,\n): EditorEdge[] | null {\n const items = readArray(input, context.maximumCollectionSize);\n if (!items) return null;\n const output: EditorEdge[] = [];\n for (let index = 0; index < items.length; index += 1) {\n const child = context.child(items[index], Object.freeze([...path, segment, index]));\n if (!child) return null;\n output.push(child);\n }\n return output;\n}\n","import type { EditorUnknownCode, ManualEditorShapeDocument } from \"./editor-types.js\";\nimport { readArray } from \"./input-readers.js\";\nimport { readOwnDataRecord } from \"./serializable.js\";\n\ninterface ValidationState {\n readonly seen: WeakSet<object>;\n nodes: number;\n}\n\nexport function validateEditorDocument(document: ManualEditorShapeDocument): boolean {\n const state: ValidationState = { seen: new WeakSet(), nodes: 0 };\n if (!validateShape(document.root, 0, state)) return false;\n const definitions = readArray(document.definitions ?? [], 2_048);\n if (!definitions) return false;\n for (const definition of definitions) {\n const inspected = readOwnDataRecord(definition, 3);\n if (!inspected.ok || !validateShape(inspected.value.shape, 0, state)) return false;\n }\n return true;\n}\n\nexport function readEditorEvidence(value: unknown): readonly EditorUnknownCode[] {\n const items = readArray(value, 8_192) ?? [];\n const allowed = [\n \"invalid-shape\",\n \"unsupported-shape\",\n \"depth-limit\",\n \"node-limit\",\n \"edge-limit\",\n \"unresolved-reference\",\n ];\n return items.filter(\n (item): item is EditorUnknownCode => typeof item === \"string\" && allowed.includes(item),\n );\n}\n\nfunction validateShape(input: unknown, depth: number, state: ValidationState): boolean {\n if (typeof input !== \"object\" || input === null || Array.isArray(input)) return false;\n if (state.seen.has(input)) return true;\n state.nodes += 1;\n if (depth > 32 || state.nodes > 2_048) return true;\n state.seen.add(input);\n const inspected = readOwnDataRecord(input, 8_192);\n if (!inspected.ok) return false;\n const record = inspected.value;\n if (!validateRelations(record.relations, depth, state)) return false;\n if (record.kind === \"object\") return validateObject(record, depth, state);\n if (record.kind === \"array\") return validateShape(record.element, depth + 1, state);\n if (record.kind === \"tuple\") return validateTuple(record, depth, state);\n if (record.kind === \"union\") return validateCollection(record.variants, depth, state);\n if (record.kind === \"intersection\") return validateCollection(record.operands, depth, state);\n if (record.kind === \"record\") {\n return (\n validateShape(record.key, depth + 1, state) && validateShape(record.value, depth + 1, state)\n );\n }\n if (record.kind === \"wrapper\") return validateShape(record.inner, depth + 1, state);\n return true;\n}\n\nfunction validateObject(\n record: Record<string, unknown>,\n depth: number,\n state: ValidationState,\n): boolean {\n if (!validateProperties(record.properties, depth, state)) return false;\n return (\n record.additionalProperties === undefined ||\n validateShape(record.additionalProperties, depth + 1, state)\n );\n}\n\nfunction validateRelations(input: unknown, depth: number, state: ValidationState): boolean {\n if (input === undefined) return true;\n const relations = readArray(input, 8_192);\n if (!relations) return false;\n for (const relation of relations) {\n const inspected = readOwnDataRecord(relation, 4);\n if (!inspected.ok || !validateShape(inspected.value.shape, depth + 1, state)) return false;\n }\n return true;\n}\n\nfunction validateProperties(input: unknown, depth: number, state: ValidationState): boolean {\n const properties = readArray(input, 8_192);\n if (!properties) return false;\n for (const property of properties) {\n const inspected = readOwnDataRecord(property, 4);\n if (!inspected.ok || !validateShape(inspected.value.shape, depth + 1, state)) return false;\n }\n return true;\n}\n\nfunction validateTuple(\n record: Record<string, unknown>,\n depth: number,\n state: ValidationState,\n): boolean {\n if (!validateCollection(record.items, depth, state)) return false;\n return record.rest === undefined || validateShape(record.rest, depth + 1, state);\n}\n\nfunction validateCollection(input: unknown, depth: number, state: ValidationState): boolean {\n const items = readArray(input, 8_192);\n if (!items) return false;\n return items.every((item) => validateShape(item, depth + 1, state));\n}\n","import {\n createEditorGraphEdgeMeter,\n type EditorGraphEdgeCategory,\n type EditorGraphEdgeMeter,\n} from \"./editor-admission.js\";\nimport { markReferenceCycles } from \"./editor-cycle.js\";\nimport { compositeEvidenceNode, evidenceNode } from \"./editor-evidence-builders.js\";\nimport { readEditorEvidence } from \"./editor-input-validation.js\";\nimport {\n arrayNode,\n declaredUnknownNode,\n evidence,\n type NodeBuildContext,\n objectNode,\n scalarNode,\n tupleNode,\n unionNode,\n unknownNode,\n withNodeEvidence,\n} from \"./editor-node-builders.js\";\nimport type {\n EditorEdge,\n EditorGraph,\n EditorGraphDefinition,\n EditorGraphInput,\n EditorGraphLimits,\n EditorGraphRoot,\n EditorNode,\n EditorReferenceNode,\n EditorUnknownCode,\n EditorUnknownEvidence,\n HostPath,\n} from \"./editor-types.js\";\nimport { readArray, readArrayPrefix } from \"./input-readers.js\";\nimport { readOwnDataRecord } from \"./serializable.js\";\n\nexport const DEFAULT_EDITOR_GRAPH_LIMITS: EditorGraphLimits = Object.freeze({\n maxDepth: 32,\n maxNodes: 2_048,\n maxEdges: 8_192,\n});\n\ninterface GraphState {\n readonly limits: EditorGraphLimits;\n readonly nodes: EditorNode[];\n readonly active: WeakMap<object, string>;\n readonly references: { index: number; bindingId: string }[];\n readonly evidence: EditorUnknownEvidence[];\n readonly meter: EditorGraphEdgeMeter;\n limitNodeIndex?: number;\n}\n\nexport function createEditorGraph(\n inputs: readonly EditorGraphInput[],\n requestedLimits: Partial<EditorGraphLimits> = {},\n): EditorGraph {\n let limits = DEFAULT_EDITOR_GRAPH_LIMITS;\n try {\n const normalized = normalizeLimits(requestedLimits);\n if (!normalized) return invalidGraph(limits);\n limits = normalized;\n return buildGraph(inputs, limits);\n } catch {\n return invalidGraph(limits);\n }\n}\n\nfunction buildGraph(inputs: readonly EditorGraphInput[], limits: EditorGraphLimits): EditorGraph {\n const sourceDocuments = readArrayPrefix(inputs, limits.maxEdges + 1);\n if (!sourceDocuments) return invalidGraph(limits, \"invalid-shape\");\n const state = createState(limits);\n const roots: EditorGraphRoot[] = [];\n const definitions: EditorGraphDefinition[] = [];\n const targets = new Map<string, Map<string, string>>();\n for (const input of sourceDocuments.items) {\n const inspected = readGraphInput(input);\n if (!inspected) return invalidGraph(limits, \"invalid-shape\");\n addDocument(inspected, state, roots, definitions, targets);\n }\n if (sourceDocuments.truncated) recordEvidence(\"edge-limit\", Object.freeze([]), state);\n resolveReferences(state, targets);\n markReferenceCycles(state.nodes, state.references);\n const nodes = state.nodes.map((node) => Object.freeze(node));\n return Object.freeze({\n format: \"kalada-editor-graph-v1\",\n nodeIdScope: \"document-local\",\n limits,\n roots: Object.freeze(roots),\n nodes: Object.freeze(nodes),\n definitions: Object.freeze(definitions),\n evidence: Object.freeze(state.evidence),\n admission: state.meter.snapshot(),\n });\n}\n\nfunction invalidGraph(\n limits: EditorGraphLimits,\n code: EditorUnknownCode = \"invalid-shape\",\n): EditorGraph {\n const path = Object.freeze([]);\n const node = Object.freeze(unknownNode(\"n0\", path, code));\n const root = Object.freeze({ ...edge(\"n0\", path, false), bindingId: \"<invalid>\" });\n return Object.freeze({\n format: \"kalada-editor-graph-v1\",\n nodeIdScope: \"document-local\",\n limits,\n roots: Object.freeze([root]),\n nodes: Object.freeze([node]),\n definitions: Object.freeze([]),\n evidence: evidence(code, path),\n admission: createEditorGraphEdgeMeter(limits.maxEdges).snapshot(),\n });\n}\n\nfunction createState(limits: EditorGraphLimits): GraphState {\n return {\n limits,\n nodes: [],\n active: new WeakMap(),\n references: [],\n evidence: [],\n meter: createEditorGraphEdgeMeter(limits.maxEdges),\n };\n}\n\nfunction addDocument(\n input: EditorGraphInput,\n state: GraphState,\n roots: EditorGraphRoot[],\n definitions: EditorGraphDefinition[],\n targets: Map<string, Map<string, string>>,\n): void {\n const path = freezePath(input.path);\n if (!claimEdge(\"root\", path, state)) return;\n const root = addNode(input.document.root, path, 0, input.bindingId, state);\n roots.push(Object.freeze({ ...root, bindingId: input.bindingId }));\n const bindingTargets = new Map<string, string>();\n targets.set(input.bindingId, bindingTargets);\n const sourceDefinitions = readArrayPrefix(\n input.document.definitions ?? [],\n state.limits.maxEdges + 1,\n );\n if (!sourceDefinitions) {\n recordEvidence(\"invalid-shape\", path, state);\n return;\n }\n for (const definition of sourceDefinitions.items) {\n const inspected = readDefinition(definition);\n if (!inspected) {\n recordEvidence(\"invalid-shape\", path, state);\n continue;\n }\n addDefinition(input, inspected, state, definitions, bindingTargets);\n }\n if (sourceDefinitions.truncated) recordEvidence(\"edge-limit\", path, state);\n for (const code of input.document.evidence ?? []) recordEvidence(code, path, state);\n}\n\nfunction addDefinition(\n input: EditorGraphInput,\n definition: { readonly name: string; readonly shape: unknown },\n state: GraphState,\n definitions: EditorGraphDefinition[],\n targets: Map<string, string>,\n): void {\n const path = freezePath([...input.path, \"$defs\", definition.name]);\n if (!claimEdge(\"definition\", path, state)) return;\n const edge = addNode(definition.shape, path, 0, input.bindingId, state);\n const item = Object.freeze({\n bindingId: input.bindingId,\n name: definition.name,\n nodeId: edge.nodeId,\n path,\n });\n definitions.push(item);\n if (!targets.has(definition.name)) targets.set(definition.name, edge.nodeId);\n}\n\nfunction addNode(\n shape: unknown,\n path: HostPath,\n depth: number,\n bindingId: string,\n state: GraphState,\n): EditorEdge {\n if (depth > state.limits.maxDepth) return unknownEdge(\"depth-limit\", path, state);\n if (typeof shape !== \"object\" || shape === null || Array.isArray(shape)) {\n return unknownEdge(\"invalid-shape\", path, state);\n }\n const prior = state.active.get(shape);\n if (prior) return edge(prior, path, true);\n if (state.nodes.length >= state.limits.maxNodes - 1)\n return unknownEdge(\"node-limit\", path, state);\n const id = `n${state.nodes.length}`;\n state.active.set(shape, id);\n const index = state.nodes.length;\n state.nodes.push(unknownNode(id, path, \"invalid-shape\"));\n state.nodes[index] = readNode(shape, id, path, depth, bindingId, state);\n state.active.delete(shape);\n return edge(id, path, false);\n}\n\nfunction readNode(\n shape: object,\n id: string,\n path: HostPath,\n depth: number,\n bindingId: string,\n state: GraphState,\n): EditorNode {\n const inspected = readOwnDataRecord(shape, state.limits.maxEdges);\n if (!inspected.ok) return unknownNode(id, path, \"invalid-shape\");\n const record = inspected.value;\n const context = nodeContext(depth, bindingId, state);\n const node = buildNode(record, id, path, bindingId, state, context);\n return withNodeEvidence(node, record, path, context);\n}\n\nfunction buildNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n bindingId: string,\n state: GraphState,\n context: NodeBuildContext,\n): EditorNode {\n if (record.kind === \"scalar\") return scalarNode(record, id, path);\n if (record.kind === \"unknown\") return declaredUnknownNode(record, id, path);\n if (record.kind === \"object\") return objectNode(record, id, path, context);\n if (record.kind === \"array\") return arrayNode(record, id, path, context);\n if (record.kind === \"tuple\") return tupleNode(record, id, path, context);\n if (record.kind === \"union\") return unionNode(record, id, path, context);\n if (record.kind === \"reference\") return referenceNode(record, id, path, bindingId, state);\n return (\n evidenceNode(record, id, path) ??\n compositeEvidenceNode(record, id, path, context) ??\n unknownNode(id, path, \"unsupported-shape\")\n );\n}\n\nfunction nodeContext(depth: number, bindingId: string, state: GraphState): NodeBuildContext {\n return {\n maximumCollectionSize: state.limits.maxEdges + 1,\n child: (shape, path) => childEdge(shape, path, depth, bindingId, state),\n };\n}\n\nfunction referenceNode(\n record: Record<string, unknown>,\n id: string,\n path: HostPath,\n bindingId: string,\n state: GraphState,\n): EditorNode {\n if (typeof record.definition !== \"string\" || record.definition.length === 0) {\n return unknownNode(id, path, \"invalid-shape\");\n }\n const unresolved = typeof record.unresolved === \"string\" ? record.unresolved : undefined;\n const node: EditorReferenceNode = {\n id,\n path,\n kind: \"reference\",\n definition: record.definition,\n status: \"unresolved\",\n availability: unresolved === undefined ? \"unknown\" : \"unavailable\",\n evidence: evidence(\"unresolved-reference\", path),\n relations: Object.freeze([]),\n ...(typeof record.reference === \"string\" ? { reference: record.reference } : {}),\n ...(unresolved === undefined ? {} : { unresolved }),\n };\n state.references.push({ index: state.nodes.length - 1, bindingId });\n return node;\n}\n\nfunction childEdge(\n shape: unknown,\n path: HostPath,\n depth: number,\n bindingId: string,\n state: GraphState,\n): EditorEdge | null {\n if (!claimEdge(\"child\", path, state)) return null;\n return addNode(shape, path, depth + 1, bindingId, state);\n}\n\nfunction unknownEdge(code: EditorUnknownCode, path: HostPath, state: GraphState): EditorEdge {\n if (state.limitNodeIndex !== undefined) {\n const index = state.limitNodeIndex;\n appendUnknownEvidence(index, code, path, state);\n return edge(`n${index}`, path, false);\n }\n const id = `n${state.nodes.length}`;\n state.limitNodeIndex = state.nodes.length;\n state.nodes.push(unknownNode(id, path, code));\n return edge(id, path, false);\n}\n\nfunction appendUnknownEvidence(\n index: number,\n code: EditorUnknownCode,\n path: HostPath,\n state: GraphState,\n): void {\n const node = state.nodes[index];\n if (node?.kind !== \"unknown\" || node.evidence.length >= state.limits.maxEdges) return;\n if (node.evidence.some((item) => item.code === code && samePath(item.path, path))) return;\n const item = Object.freeze({ code, path: freezePath(path) });\n state.nodes[index] = { ...node, evidence: Object.freeze([...node.evidence, item]) };\n}\n\nfunction resolveReferences(state: GraphState, targets: Map<string, Map<string, string>>): void {\n for (const reference of state.references) {\n const node = state.nodes[reference.index];\n if (node?.kind !== \"reference\" || node.unresolved !== undefined) continue;\n const target = targets.get(reference.bindingId)?.get(node.definition);\n if (!target) continue;\n if (!claimEdge(\"resolution\", node.path, state)) {\n state.nodes[reference.index] = {\n ...node,\n evidence: evidence(\"edge-limit\", node.path),\n };\n continue;\n }\n state.nodes[reference.index] = {\n ...node,\n status: \"resolved\",\n target: edge(target, node.path, false),\n availability: \"available\",\n evidence: Object.freeze([]),\n };\n }\n}\n\nfunction edge(nodeId: string, path: HostPath, cycle: boolean): EditorEdge {\n return Object.freeze({ nodeId, path, cycle });\n}\n\nfunction claimEdge(category: EditorGraphEdgeCategory, path: HostPath, state: GraphState): boolean {\n if (!state.meter.claim(category)) {\n recordEvidence(\"edge-limit\", path, state);\n return false;\n }\n return true;\n}\n\nfunction recordEvidence(code: EditorUnknownCode, path: HostPath, state: GraphState): void {\n if (state.evidence.length >= state.limits.maxEdges) return;\n if (state.evidence.some((item) => item.code === code && samePath(item.path, path))) return;\n state.evidence.push(Object.freeze({ code, path: freezePath(path) }));\n}\n\nfunction samePath(left: HostPath, right: HostPath): boolean {\n return left.length === right.length && left.every((part, index) => part === right[index]);\n}\n\nfunction readGraphInput(input: unknown): EditorGraphInput | null {\n const inspected = readOwnDataRecord(input, 4);\n if (!inspected.ok || typeof inspected.value.bindingId !== \"string\") return null;\n const path = readArray(inspected.value.path, 256);\n const document = readOwnDataRecord(inspected.value.document, 4);\n if (!path || !document.ok || document.value.root === undefined) return null;\n if (!path.every((part) => typeof part === \"string\" || typeof part === \"number\")) return null;\n return {\n bindingId: inspected.value.bindingId,\n path: freezePath(path as HostPath),\n document: {\n root: document.value.root as never,\n definitions: document.value.definitions as never,\n evidence: readEditorEvidence(document.value.evidence),\n },\n };\n}\n\nfunction readDefinition(input: unknown): { readonly name: string; readonly shape: unknown } | null {\n const inspected = readOwnDataRecord(input, 3);\n if (!inspected.ok || typeof inspected.value.name !== \"string\") return null;\n return Object.freeze({ name: inspected.value.name, shape: inspected.value.shape });\n}\n\nfunction freezePath(path: HostPath): HostPath {\n return Object.freeze([...path]);\n}\n\nfunction normalizeLimits(input: unknown): EditorGraphLimits | null {\n const inspected = readOwnDataRecord(input, 3);\n if (!inspected.ok) return null;\n const record = inspected.value;\n return Object.freeze({\n maxDepth: positiveInteger(record.maxDepth, DEFAULT_EDITOR_GRAPH_LIMITS.maxDepth),\n maxNodes: positiveInteger(record.maxNodes, DEFAULT_EDITOR_GRAPH_LIMITS.maxNodes),\n maxEdges: positiveInteger(record.maxEdges, DEFAULT_EDITOR_GRAPH_LIMITS.maxEdges),\n });\n}\n\nfunction positiveInteger(input: unknown, fallback: number): number {\n return typeof input === \"number\" && Number.isSafeInteger(input) && input > 0 ? input : fallback;\n}\n","import type {\n EditorEdge,\n EditorGraph,\n EditorNode,\n EditorTraversalOptions,\n EditorTraversalStep,\n} from \"./editor-types.js\";\n\ninterface TraversalState {\n readonly nodes: ReadonlyMap<string, EditorNode>;\n readonly steps: EditorTraversalStep[];\n readonly active: Set<string>;\n readonly maxDepth: number;\n readonly maxVisits: number;\n}\n\nexport function traverseEditorGraph(\n graph: EditorGraph,\n options: EditorTraversalOptions = {},\n): readonly EditorTraversalStep[] {\n const state: TraversalState = {\n nodes: new Map(graph.nodes.map((node) => [node.id, node])),\n steps: [],\n active: new Set(),\n maxDepth: bounded(options.maxDepth, graph.limits.maxDepth),\n maxVisits: bounded(options.maxVisits, graph.limits.maxEdges + graph.limits.maxNodes),\n };\n for (const root of graph.roots) {\n walk(root, \"root\", 0, state);\n if (state.steps.length >= state.maxVisits) break;\n }\n return Object.freeze(state.steps);\n}\n\nfunction walk(\n edge: EditorEdge,\n via: EditorTraversalStep[\"via\"],\n depth: number,\n state: TraversalState,\n): void {\n if (depth > state.maxDepth || state.steps.length >= state.maxVisits) return;\n const node = state.nodes.get(edge.nodeId);\n if (!node) return;\n const cycle = state.active.has(edge.nodeId);\n state.steps.push(\n Object.freeze({\n nodeId: edge.nodeId,\n path: Object.freeze([...edge.path]),\n depth,\n via,\n cycle,\n availability: node.availability,\n }),\n );\n if (cycle || depth === state.maxDepth) return;\n state.active.add(edge.nodeId);\n walkChildren(node, depth, state);\n state.active.delete(edge.nodeId);\n}\n\nfunction walkChildren(node: EditorNode, depth: number, state: TraversalState): void {\n for (const relation of node.relations ?? []) walk(relation, \"relation\", depth + 1, state);\n if (node.kind === \"object\") {\n for (const property of node.properties) walk(property, \"property\", depth + 1, state);\n if (node.additionalProperties) {\n walk(node.additionalProperties, \"additional-property\", depth + 1, state);\n }\n return;\n }\n if (node.kind === \"array\") {\n walk(node.element, \"element\", depth + 1, state);\n return;\n }\n if (node.kind === \"tuple\") {\n walkTuple(node, depth, state);\n return;\n }\n if (node.kind === \"union\") {\n for (const variant of node.variants) walk(variant, \"variant\", depth + 1, state);\n return;\n }\n walkComposite(node, depth, state);\n}\n\nfunction walkComposite(node: EditorNode, depth: number, state: TraversalState): void {\n if (node.kind === \"intersection\") {\n for (const operand of node.operands) walk(operand, \"operand\", depth + 1, state);\n return;\n }\n if (node.kind === \"record\") {\n walk(node.key, \"record-key\", depth + 1, state);\n walk(node.value, \"record-value\", depth + 1, state);\n return;\n }\n if (node.kind === \"wrapper\") {\n walk(node.inner, \"wrapper\", depth + 1, state);\n return;\n }\n if (node.kind === \"reference\" && node.target) {\n walk(node.target, \"reference\", depth + 1, state);\n }\n}\n\nfunction walkTuple(\n node: Extract<EditorNode, { kind: \"tuple\" }>,\n depth: number,\n state: TraversalState,\n): void {\n for (const item of node.items) walk(item, \"item\", depth + 1, state);\n if (node.rest) walk(node.rest, \"rest\", depth + 1, state);\n}\n\nfunction bounded(input: unknown, fallback: number): number {\n if (typeof input !== \"number\" || !Number.isSafeInteger(input) || input < 0) return fallback;\n return Math.min(input, fallback);\n}\n","import type { CapabilitySnapshot, LiveCapability, NormalizedEnvironment } from \"./contracts.js\";\n\nconst constructionToken = Object.freeze({});\n\nclass AuthenticCapabilitySnapshot implements CapabilitySnapshot {\n readonly scope = \"instance\" as const;\n readonly capabilities: Readonly<Record<string, LiveCapability>>;\n readonly #environment: NormalizedEnvironment;\n\n constructor(\n token: object,\n environment: NormalizedEnvironment,\n capabilities: Readonly<Record<string, LiveCapability>>,\n ) {\n if (token !== constructionToken)\n throw new TypeError(\"Invalid capability snapshot construction.\");\n this.#environment = environment;\n this.capabilities = capabilities;\n Object.freeze(this);\n }\n\n static compatible(input: unknown, environment: NormalizedEnvironment): boolean {\n if (typeof input !== \"object\" || input === null || !(#environment in input)) return false;\n if (input.#environment === environment) return true;\n return cacheableEquivalent(input.#environment, environment);\n }\n}\n\nObject.freeze(AuthenticCapabilitySnapshot.compatible);\nObject.freeze(AuthenticCapabilitySnapshot.prototype);\nObject.freeze(AuthenticCapabilitySnapshot);\n\nexport function createCapabilitySnapshot(\n environment: NormalizedEnvironment,\n capabilities: Readonly<Record<string, LiveCapability>>,\n): CapabilitySnapshot {\n return new AuthenticCapabilitySnapshot(constructionToken, environment, capabilities);\n}\n\nexport function capabilitySnapshotMatches(\n snapshot: unknown,\n environment: NormalizedEnvironment,\n): snapshot is CapabilitySnapshot {\n return AuthenticCapabilitySnapshot.compatible(snapshot, environment);\n}\n\nfunction cacheableEquivalent(left: NormalizedEnvironment, right: NormalizedEnvironment): boolean {\n if (!left.cacheability.cacheable || !right.cacheability.cacheable) return false;\n return (\n JSON.stringify(left.provider.identity) === JSON.stringify(right.provider.identity) &&\n JSON.stringify(left.capabilities) === JSON.stringify(right.capabilities)\n );\n}\n","import {\n decodeKaladaValue,\n encodeKaladaValue,\n isDuration,\n isInstant,\n isOption,\n isResult,\n type KaladaType,\n type KaladaValue,\n} from \"@kalada/core\";\nimport type { KaladaSyntaxStaticType } from \"@kalada/syntax\";\n\nexport type CanonicalValueResult =\n | Readonly<{ ok: true; value: KaladaValue }>\n | Readonly<{ ok: false }>;\n\nexport function canonicalValue(input: unknown): CanonicalValueResult {\n try {\n const value = decodeKaladaValue(encodeKaladaValue(input as KaladaValue));\n return Object.freeze({ ok: true, value });\n } catch {\n return Object.freeze({ ok: false });\n }\n}\n\nexport function matchesSemanticType(value: KaladaValue, expected: KaladaSyntaxStaticType): boolean {\n if (expected === \"dynamic\") return true;\n return matchesKnownType(value, expected);\n}\n\nfunction matchesKnownType(value: KaladaValue, expected: KaladaType): boolean {\n if (expected.kind === \"primitive-type\") return matchesPrimitive(value, expected.name);\n if (expected.kind === \"array-type\") {\n return Array.isArray(value) && value.every((item) => matchesKnownType(item, expected.element));\n }\n if (expected.kind === \"option-type\") {\n return (\n isOption(value) && (value.variant === \"none\" || matchesKnownType(value.value, expected.value))\n );\n }\n if (expected.kind === \"result-type\") {\n return (\n isResult(value) &&\n matchesKnownType(value.value, value.variant === \"ok\" ? expected.ok : expected.error)\n );\n }\n return false;\n}\n\nfunction matchesPrimitive(\n value: KaladaValue,\n name: Extract<KaladaType, { kind: \"primitive-type\" }>[\"name\"],\n): boolean {\n if (name === \"json\") {\n return !isOption(value) && !isResult(value) && !isInstant(value) && !isDuration(value);\n }\n if (name === \"Instant\") return isInstant(value);\n if (name === \"Duration\") return isDuration(value);\n if (name === \"null\") return value === null;\n return typeof value === name;\n}\n\nexport function isThenableWithoutGet(input: unknown): boolean {\n if ((typeof input !== \"object\" || input === null) && typeof input !== \"function\") return false;\n let current: object | null = input as object;\n const visited = new Set<object>();\n try {\n while (current !== null && !visited.has(current)) {\n visited.add(current);\n const descriptor = Object.getOwnPropertyDescriptor(current, \"then\");\n if (descriptor) return !(\"value\" in descriptor) || typeof descriptor.value === \"function\";\n current = Object.getPrototypeOf(current);\n }\n return false;\n } catch {\n return true;\n }\n}\n\nexport type OwnValueResult = Readonly<{ ok: true; value: unknown }> | Readonly<{ ok: false }>;\n\nexport function readOwnValue(input: unknown, name: string): OwnValueResult {\n if ((typeof input !== \"object\" || input === null) && typeof input !== \"function\") {\n return Object.freeze({ ok: false });\n }\n try {\n const descriptor = Object.getOwnPropertyDescriptor(input, name);\n if (!descriptor || !(\"value\" in descriptor)) return Object.freeze({ ok: false });\n return Object.freeze({ ok: true, value: descriptor.value });\n } catch {\n return Object.freeze({ ok: false });\n }\n}\n","import type { KaladaValue } from \"@kalada/core\";\nimport type { LiveCapability, ProvenanceEntry } from \"./contracts.js\";\nimport type { CompiledExpression, HostLinkPlanSlot, HostResult } from \"./execution-contracts.js\";\nimport { coreDiagnostic, executionDiagnostic } from \"./execution-diagnostics.js\";\nimport {\n canonicalValue,\n isThenableWithoutGet,\n matchesSemanticType,\n readOwnValue,\n} from \"./runtime-value.js\";\n\nexport interface InternalLinkSlot {\n readonly plan: HostLinkPlanSlot;\n readonly validator?: Extract<LiveCapability, { kind: \"validator\" }>;\n readonly codec?: Extract<LiveCapability, { kind: \"codec\" }>;\n readonly provenance?: ProvenanceEntry;\n}\n\nexport function evaluateLinked(\n compiled: CompiledExpression,\n slots: readonly InternalLinkSlot[],\n values: unknown,\n): HostResult<KaladaValue> {\n const bound = new Map<string, KaladaValue>();\n for (const slot of slots) {\n const result = bindSlot(slot, values);\n if (!result.ok) return result;\n bound.set(slot.plan.bindingId, result.value);\n }\n const outcome = compiled.coreCompilation.evaluate((reference) =>\n bound.has(reference)\n ? Object.freeze({ found: true as const, value: bound.get(reference) as KaladaValue })\n : Object.freeze({ found: false as const, reason: \"missing\" as const }),\n );\n if (!outcome.ok) {\n return failure(\n coreDiagnostic(\"evaluate\", outcome.diagnostic, compiled.source, compiled.sourceMap),\n );\n }\n return Object.freeze({ ok: true, value: outcome.value });\n}\n\nfunction bindSlot(slot: InternalLinkSlot, values: unknown): HostResult<KaladaValue> {\n const input = readOwnValue(values, slot.plan.name);\n if (!input.ok) return bindingFailure(\"HOST_BINDING_MISSING\", slot);\n const decoded = invokeValidator(slot, input.value);\n if (!decoded.ok) return decoded;\n const converted = invokeCodec(slot, decoded.value);\n if (!converted.ok) return converted;\n const canonical = canonicalValue(converted.value);\n if (!canonical.ok || !matchesSemanticType(canonical.value, slot.plan.semanticType)) {\n return bindingFailure(\"HOST_BINDING_SEMANTIC\", slot);\n }\n return Object.freeze({ ok: true, value: canonical.value });\n}\n\nfunction invokeValidator(slot: InternalLinkSlot, value: unknown): HostResult<unknown> {\n if (!slot.validator) return Object.freeze({ ok: true, value });\n try {\n const output = slot.validator.decode(value);\n return isThenableWithoutGet(output)\n ? bindingFailure(\"HOST_BINDING_DECODE\", slot)\n : Object.freeze({ ok: true, value: output });\n } catch {\n return bindingFailure(\"HOST_BINDING_DECODE\", slot);\n }\n}\n\nfunction invokeCodec(slot: InternalLinkSlot, value: unknown): HostResult<unknown> {\n if (!slot.codec) return Object.freeze({ ok: true, value });\n try {\n const output = slot.codec.convert(value);\n return isThenableWithoutGet(output)\n ? bindingFailure(\"HOST_BINDING_CONVERSION\", slot)\n : Object.freeze({ ok: true, value: output });\n } catch {\n return bindingFailure(\"HOST_BINDING_CONVERSION\", slot);\n }\n}\n\nfunction bindingFailure(\n code:\n | \"HOST_BINDING_MISSING\"\n | \"HOST_BINDING_DECODE\"\n | \"HOST_BINDING_CONVERSION\"\n | \"HOST_BINDING_SEMANTIC\",\n slot: InternalLinkSlot,\n) {\n return failure(executionDiagnostic(code, \"bind\", slot.plan.path, slot.provenance));\n}\n\nfunction failure(diagnostic: ReturnType<typeof executionDiagnostic>) {\n return Object.freeze({ ok: false as const, diagnostics: Object.freeze([diagnostic]) });\n}\n","import { capabilitySnapshotMatches } from \"./capability-snapshot.js\";\nimport { isAuthenticCompiledExpression } from \"./compiled-artifact.js\";\nimport type {\n CapabilityDeclaration,\n CapabilitySnapshot,\n LiveCapability,\n NormalizedBinding,\n NormalizedEnvironment,\n} from \"./contracts.js\";\nimport { evaluateLinked, type InternalLinkSlot } from \"./evaluate-expression.js\";\nimport type {\n CompiledExpression,\n HostLinkPlanSlot,\n LinkExpressionResult,\n} from \"./execution-contracts.js\";\nimport { executionDiagnostic } from \"./execution-diagnostics.js\";\nimport { createFingerprint, HOST_LINK_FINGERPRINT_VERSION } from \"./fingerprint.js\";\n\nexport function linkExpression(\n compiled: CompiledExpression,\n environment: NormalizedEnvironment,\n snapshot: CapabilitySnapshot,\n): LinkExpressionResult {\n try {\n if (!isAuthenticCompiledExpression(compiled)) return incompatible();\n if (!compatibleProjection(compiled, environment)) return incompatible();\n if (!capabilitySnapshotMatches(snapshot, environment)) return invalidSnapshot();\n if (environment.provider.mode === \"async\") return asyncUnsupported();\n const slots: InternalLinkSlot[] = [];\n for (const dependency of compiled.dependencies) {\n const binding = environment.bindings.find(({ id }) => id === dependency);\n if (!binding) return missingBinding();\n const linked = linkSlot(binding, slots.length, snapshot);\n if (!linked.ok) return linked.result;\n slots.push(linked.slot);\n }\n return linkedArtifact(compiled, environment, slots);\n } catch {\n return incompatible();\n }\n}\n\nfunction linkSlot(\n binding: NormalizedBinding,\n index: number,\n snapshot: CapabilitySnapshot,\n):\n | Readonly<{ ok: true; slot: InternalLinkSlot }>\n | Readonly<{ ok: false; result: LinkExpressionResult }> {\n if (binding.validator?.mode === \"async\" || binding.codec?.mode === \"async\") {\n return Object.freeze({ ok: false, result: asyncUnsupported(binding) });\n }\n const validator = resolveCapability(binding.validator, snapshot);\n const codec = resolveCapability(binding.codec, snapshot);\n if (\n validator === null ||\n codec === null ||\n (validator && validator.kind !== \"validator\") ||\n (codec && codec.kind !== \"codec\")\n ) {\n return Object.freeze({ ok: false, result: invalidCapability(binding) });\n }\n const plan = createPlan(binding, index);\n return Object.freeze({\n ok: true,\n slot: Object.freeze({ plan, validator, codec, provenance: binding.provenance[0] }),\n });\n}\n\nfunction resolveCapability(\n declaration: CapabilityDeclaration | undefined,\n snapshot: CapabilitySnapshot,\n): LiveCapability | undefined | null {\n if (!declaration) return undefined;\n if (snapshot.scope !== \"instance\") return null;\n const descriptor = Object.getOwnPropertyDescriptor(snapshot.capabilities, declaration.handle);\n if (!descriptor || !(\"value\" in descriptor)) return null;\n const live = descriptor.value as LiveCapability;\n if (!sameDeclaration(live, declaration)) return null;\n if (live.kind === \"validator\" && typeof live.decode !== \"function\") return null;\n if (live.kind === \"codec\" && typeof live.convert !== \"function\") return null;\n return live;\n}\n\nfunction sameDeclaration(live: LiveCapability, expected: CapabilityDeclaration): boolean {\n return (\n live.handle === expected.handle &&\n live.kind === expected.kind &&\n live.mode === expected.mode &&\n live.capabilityId === expected.capabilityId &&\n live.capabilityVersion === expected.capabilityVersion &&\n live.configurationDigest === expected.configurationDigest &&\n JSON.stringify(live.identity) === JSON.stringify(expected.identity)\n );\n}\n\nfunction createPlan(binding: NormalizedBinding, index: number): HostLinkPlanSlot {\n return Object.freeze({\n index,\n bindingId: binding.id,\n name: binding.name,\n path: Object.freeze([...binding.path]),\n semanticType: binding.semanticType,\n ...(binding.validator ? { validator: binding.validator } : {}),\n ...(binding.codec ? { codec: binding.codec } : {}),\n });\n}\n\nfunction linkedArtifact(\n compiled: CompiledExpression,\n environment: NormalizedEnvironment,\n slots: readonly InternalLinkSlot[],\n): LinkExpressionResult {\n const internal = Object.freeze([...slots]);\n const linkPlan = Object.freeze(slots.map(({ plan }) => plan));\n const linkFingerprint = reusable(environment)\n ? createFingerprint(\n HOST_LINK_FINGERPRINT_VERSION,\n linkFingerprintInput(compiled, environment, linkPlan),\n )\n : undefined;\n const evaluate = Object.freeze((values: unknown) => evaluateLinked(compiled, internal, values));\n const prepared = Object.freeze({\n format: \"kalada-host-prepared-expression-v1\" as const,\n compiled,\n environment,\n linkPlan,\n ...(linkFingerprint ? { linkFingerprint } : {}),\n evaluate,\n });\n return Object.freeze({ ok: true, value: prepared });\n}\n\nfunction compatibleProjection(\n compiled: CompiledExpression,\n environment: NormalizedEnvironment,\n): boolean {\n if (compiled.format !== \"kalada-host-compiled-expression-v1\") return false;\n if (environment.format !== \"kalada-host-environment-v1\") return false;\n return (\n compiled.compileProjectionFingerprint ===\n createFingerprint(environment.compileProjection.format, environment.compileProjection)\n );\n}\n\nfunction reusable(environment: NormalizedEnvironment): boolean {\n return environment.cacheability.cacheable;\n}\n\nfunction linkFingerprintInput(\n compiled: CompiledExpression,\n environment: NormalizedEnvironment,\n linkPlan: readonly HostLinkPlanSlot[],\n) {\n return {\n compileFingerprint: compiled.compileFingerprint,\n provider: environment.provider.identity,\n bindings: environment.bindings.map(({ id, name, path, editorShapeRoot, validator, codec }) => ({\n id,\n name,\n path,\n editorShapeRoot,\n validator,\n codec,\n })),\n editorGraph: environment.editorGraph,\n linkPlan,\n };\n}\n\nfunction incompatible(): LinkExpressionResult {\n return failure(executionDiagnostic(\"HOST_LINK_INCOMPATIBLE_ENVIRONMENT\", \"link\"));\n}\n\nfunction missingBinding(): LinkExpressionResult {\n return failure(executionDiagnostic(\"HOST_LINK_MISSING_BINDING\", \"link\"));\n}\n\nfunction invalidCapability(binding: NormalizedBinding): LinkExpressionResult {\n return failure(bindingDiagnostic(\"HOST_LINK_INVALID_CAPABILITY\", binding));\n}\n\nfunction invalidSnapshot(): LinkExpressionResult {\n return failure(executionDiagnostic(\"HOST_LINK_INVALID_CAPABILITY\", \"link\"));\n}\n\nfunction asyncUnsupported(binding?: NormalizedBinding): LinkExpressionResult {\n return failure(\n binding\n ? bindingDiagnostic(\"HOST_LINK_ASYNC_UNSUPPORTED\", binding)\n : executionDiagnostic(\"HOST_LINK_ASYNC_UNSUPPORTED\", \"link\"),\n );\n}\n\nfunction bindingDiagnostic(\n code: \"HOST_LINK_INVALID_CAPABILITY\" | \"HOST_LINK_ASYNC_UNSUPPORTED\",\n binding: NormalizedBinding,\n) {\n return executionDiagnostic(code, \"link\", binding.path, binding.provenance[0]);\n}\n\nfunction failure(diagnostic: ReturnType<typeof executionDiagnostic>): LinkExpressionResult {\n return Object.freeze({ ok: false, diagnostics: Object.freeze([diagnostic]) });\n}\n","import type {\n HostEnvironmentDiagnostic,\n HostEnvironmentDiagnosticCode,\n ProvenanceEntry,\n} from \"./contracts.js\";\nimport type { HostPath } from \"./editor-types.js\";\n\nconst messages: Readonly<Record<HostEnvironmentDiagnosticCode, string>> = Object.freeze({\n HOST_ENVIRONMENT_INVALID_PROVIDER: \"The manual provider declaration is invalid.\",\n HOST_ENVIRONMENT_INVALID_IDENTITY: \"A stable identity declaration is invalid.\",\n HOST_ENVIRONMENT_INVALID_CAPABILITY: \"A capability declaration is invalid.\",\n HOST_ENVIRONMENT_DUPLICATE_CAPABILITY: \"A capability handle is duplicated.\",\n HOST_ENVIRONMENT_INVALID_BINDING: \"A binding declaration is invalid.\",\n HOST_ENVIRONMENT_DUPLICATE_BINDING: \"A binding identity or path is duplicated.\",\n HOST_ENVIRONMENT_INVALID_SEMANTIC_TYPE: \"A binding semantic projection is invalid.\",\n HOST_ENVIRONMENT_INVALID_METADATA: \"Binding metadata is not bounded serializable data.\",\n HOST_ENVIRONMENT_INVALID_PROVENANCE: \"Binding provenance is invalid.\",\n HOST_ENVIRONMENT_UNKNOWN_CAPABILITY: \"A binding references an unavailable capability handle.\",\n});\n\nexport function environmentDiagnostic(\n code: HostEnvironmentDiagnosticCode,\n bindingPath?: HostPath,\n provenance?: ProvenanceEntry,\n): HostEnvironmentDiagnostic {\n const diagnostic: HostEnvironmentDiagnostic = {\n code,\n phase: \"environment\",\n message: messages[code],\n ...(bindingPath ? { bindingPath: Object.freeze([...bindingPath]) } : {}),\n ...(provenance ? { provenance: sanitizeProvenance(provenance) } : {}),\n };\n return Object.freeze(diagnostic);\n}\n\nfunction sanitizeProvenance(input: ProvenanceEntry): Readonly<Record<string, string>> {\n const output: Record<string, string> = Object.create(null);\n for (const key of [\"providerId\", \"providerVersion\", \"source\", \"extractor\", \"override\"] as const) {\n const value = input[key];\n if (value !== undefined) output[key] = value;\n }\n return Object.freeze(output);\n}\n","import type { CapabilityState } from \"./capability-normalization.js\";\nimport type {\n CapabilityDeclaration,\n HostEnvironmentDiagnostic,\n HostEnvironmentDiagnosticCode,\n NormalizedBinding,\n ProvenanceEntry,\n SerializableValue,\n} from \"./contracts.js\";\nimport { environmentDiagnostic } from \"./diagnostics.js\";\nimport { validateEditorDocument } from \"./editor-input-validation.js\";\nimport type {\n EditorGraphInput,\n EditorUnknownCode,\n ManualEditorShapeDocument,\n} from \"./editor-types.js\";\nimport { readArray, readStringArray, validName } from \"./input-readers.js\";\nimport { cloneSemanticType } from \"./semantic-type.js\";\nimport { cloneSerializableData, readOwnDataRecord } from \"./serializable.js\";\n\nexport interface BindingState {\n readonly bindings: Omit<NormalizedBinding, \"editorShapeRoot\">[];\n readonly graphInputs: EditorGraphInput[];\n readonly diagnostics: HostEnvironmentDiagnostic[];\n readonly providerProvenance: ProvenanceEntry;\n}\n\ntype MetadataNormalization =\n | Readonly<{ ok: true; value: SerializableValue | undefined }>\n | Readonly<{ ok: false }>;\n\nexport function normalizeBindings(\n input: unknown,\n capabilities: CapabilityState,\n providerProvenance: ProvenanceEntry,\n): BindingState {\n const state: BindingState = {\n bindings: [],\n graphInputs: [],\n diagnostics: [],\n providerProvenance,\n };\n const items = readArray(input, 10_000);\n if (!items) {\n state.diagnostics.push(environmentDiagnostic(\"HOST_ENVIRONMENT_INVALID_PROVIDER\"));\n return state;\n }\n const identities = new Set<string>();\n const names = new Set<string>();\n const paths = new Set<string>();\n for (const item of items) addBinding(item, capabilities, identities, names, paths, state);\n return state;\n}\n\nfunction addBinding(\n input: unknown,\n capabilities: CapabilityState,\n identities: Set<string>,\n names: Set<string>,\n paths: Set<string>,\n state: BindingState,\n): void {\n const inspected = readOwnDataRecord(input, 16);\n if (!inspected.ok) {\n bindingError(state, \"HOST_ENVIRONMENT_INVALID_BINDING\");\n return;\n }\n const record = inspected.value;\n const path = readStringArray(record.path, 64);\n if (!validName(record.id) || !validName(record.name) || !path) {\n bindingError(state, \"HOST_ENVIRONMENT_INVALID_BINDING\");\n return;\n }\n if (\n identities.has(record.id) ||\n names.has(record.name as string) ||\n paths.has(JSON.stringify(path))\n ) {\n bindingError(state, \"HOST_ENVIRONMENT_DUPLICATE_BINDING\", path);\n return;\n }\n identities.add(record.id);\n names.add(record.name as string);\n paths.add(JSON.stringify(path));\n addValidBinding(record, path, capabilities, state);\n}\n\nfunction addValidBinding(\n record: Record<string, unknown>,\n path: readonly string[],\n capabilities: CapabilityState,\n state: BindingState,\n): void {\n const semantic = cloneSemanticType(record.semanticType);\n if (!semantic.ok) {\n bindingError(state, \"HOST_ENVIRONMENT_INVALID_SEMANTIC_TYPE\", path);\n return;\n }\n const metadata = normalizeMetadata(record.metadata, path, state);\n if (!metadata.ok) return;\n const provenance = normalizeProvenance(record.provenance, path, state);\n if (!provenance) return;\n const refs = resolveCapabilityRefs(record, capabilities, path, state);\n if (!refs) return;\n const editor = normalizeEditorDocument(record.editorShape, record.id as string, path, state);\n if (editor === null) return;\n state.bindings.push(makeBinding(record, path, semantic.value, metadata.value, provenance, refs));\n if (editor) state.graphInputs.push(editor);\n}\n\nfunction makeBinding(\n record: Record<string, unknown>,\n path: readonly string[],\n semanticType: NormalizedBinding[\"semanticType\"],\n metadata: SerializableValue | undefined,\n provenance: readonly ProvenanceEntry[],\n refs: { validator?: CapabilityDeclaration; codec?: CapabilityDeclaration },\n): Omit<NormalizedBinding, \"editorShapeRoot\"> {\n return Object.freeze({\n id: record.id as string,\n name: record.name as string,\n path,\n semanticType,\n ...refs,\n ...(metadata === undefined ? {} : { metadata }),\n provenance,\n });\n}\n\nfunction normalizeMetadata(\n input: unknown,\n path: readonly string[],\n state: BindingState,\n): MetadataNormalization {\n if (input === undefined) return { ok: true, value: undefined };\n const cloned = cloneSerializableData(input);\n if (cloned.ok) return { ok: true, value: cloned.value };\n bindingError(state, \"HOST_ENVIRONMENT_INVALID_METADATA\", path);\n return { ok: false };\n}\n\nfunction normalizeProvenance(\n input: unknown,\n path: readonly string[],\n state: BindingState,\n): readonly ProvenanceEntry[] | null {\n const base = state.providerProvenance;\n if (input === undefined) return Object.freeze([base]);\n const items = readArray(input, 256);\n if (!items) return provenanceError(state, path);\n const entries: ProvenanceEntry[] = [base];\n for (const item of items) {\n const entry = readProvenance(item);\n if (!entry) return provenanceError(state, path);\n entries.push(entry);\n }\n return Object.freeze(entries);\n}\n\nfunction readProvenance(input: unknown): ProvenanceEntry | null {\n const inspected = readOwnDataRecord(input, 8);\n if (!inspected.ok || !validName(inspected.value.providerId)) return null;\n const record = inspected.value;\n const providerId = record.providerId as string;\n for (const key of [\"providerVersion\", \"source\", \"extractor\", \"override\"] as const) {\n if (record[key] !== undefined && !validName(record[key])) return null;\n }\n return Object.freeze({\n providerId,\n ...(record.providerVersion ? { providerVersion: record.providerVersion as string } : {}),\n ...(record.source ? { source: record.source as string } : {}),\n ...(record.extractor ? { extractor: record.extractor as string } : {}),\n ...(record.override ? { override: record.override as string } : {}),\n });\n}\n\nfunction resolveCapabilityRefs(\n record: Record<string, unknown>,\n state: CapabilityState,\n path: readonly string[],\n bindings: BindingState,\n): { validator?: CapabilityDeclaration; codec?: CapabilityDeclaration } | null {\n const validator = resolveCapability(record.validatorHandle, \"validator\", state, path, bindings);\n const codec = resolveCapability(record.codecHandle, \"codec\", state, path, bindings);\n return validator === null || codec === null\n ? null\n : { ...(validator ? { validator } : {}), ...(codec ? { codec } : {}) };\n}\n\nfunction resolveCapability(\n handle: unknown,\n kind: \"validator\" | \"codec\",\n state: CapabilityState,\n path: readonly string[],\n bindings: BindingState,\n): CapabilityDeclaration | undefined | null {\n if (handle === undefined) return undefined;\n if (!validName(handle)) return unknownCapability(bindings, path);\n const found = state.declarations.find((item) => item.handle === handle && item.kind === kind);\n return found ?? unknownCapability(bindings, path);\n}\n\nfunction normalizeEditorDocument(\n input: unknown,\n bindingId: string,\n path: readonly string[],\n state: BindingState,\n): EditorGraphInput | undefined | null {\n if (input === undefined) return undefined;\n const inspected = readOwnDataRecord(input, 4);\n if (!inspected.ok || inspected.value.root === undefined) {\n bindingError(state, \"HOST_ENVIRONMENT_INVALID_BINDING\", path);\n return null;\n }\n const definitions = normalizeDefinitions(inspected.value.definitions);\n const evidence = normalizeEditorEvidence(inspected.value.evidence);\n if (definitions === null || evidence === null) {\n bindingError(state, \"HOST_ENVIRONMENT_INVALID_BINDING\", path);\n return null;\n }\n const document: ManualEditorShapeDocument = {\n root: inspected.value.root as never,\n definitions,\n evidence,\n };\n if (!validateEditorDocument(document)) {\n bindingError(state, \"HOST_ENVIRONMENT_INVALID_BINDING\", path);\n return null;\n }\n return { bindingId, path, document };\n}\n\nfunction normalizeEditorEvidence(input: unknown): readonly EditorUnknownCode[] | null {\n if (input === undefined) return Object.freeze([]);\n const items = readArray(input, 8_192);\n if (!items) return null;\n const allowed = [\n \"invalid-shape\",\n \"unsupported-shape\",\n \"depth-limit\",\n \"node-limit\",\n \"edge-limit\",\n \"unresolved-reference\",\n ];\n return items.every((item) => typeof item === \"string\" && allowed.includes(item))\n ? Object.freeze(items as EditorUnknownCode[])\n : null;\n}\n\nfunction normalizeDefinitions(input: unknown): ManualEditorShapeDocument[\"definitions\"] | null {\n if (input === undefined) return Object.freeze([]);\n const items = readArray(input, 2_048);\n if (!items) return null;\n const output: { name: string; shape: never }[] = [];\n for (const item of items) {\n const inspected = readOwnDataRecord(item, 4);\n if (!inspected.ok || !validName(inspected.value.name)) return null;\n output.push(\n Object.freeze({ name: inspected.value.name, shape: inspected.value.shape as never }),\n );\n }\n return Object.freeze(output);\n}\n\nfunction bindingError(\n state: BindingState,\n code: HostEnvironmentDiagnosticCode,\n path?: readonly string[],\n): undefined {\n state.diagnostics.push(environmentDiagnostic(code, path, state.providerProvenance));\n}\n\nfunction provenanceError(state: BindingState, path: readonly string[]): null {\n bindingError(state, \"HOST_ENVIRONMENT_INVALID_PROVENANCE\", path);\n return null;\n}\n\nfunction unknownCapability(state: BindingState, path: readonly string[]): null {\n bindingError(state, \"HOST_ENVIRONMENT_UNKNOWN_CAPABILITY\", path);\n return null;\n}\n","import type { Cacheability } from \"./contracts.js\";\nimport { readOwnDataRecord } from \"./serializable.js\";\n\nexport type IdentityResult = Readonly<{ ok: true; value: Cacheability }> | Readonly<{ ok: false }>;\n\nexport function normalizeIdentity(input: unknown): IdentityResult {\n const inspected = readOwnDataRecord(input, 8);\n if (!inspected.ok) return Object.freeze({ ok: false });\n const record = inspected.value;\n if (!validOptionalBoolean(record.cacheable)) return Object.freeze({ ok: false });\n if (!validOptionalString(record.id) || !validOptionalString(record.version)) {\n return Object.freeze({ ok: false });\n }\n if (!validOptionalString(record.configurationDigest)) return Object.freeze({ ok: false });\n if (record.cacheable === false) return nonCacheable(\"explicitly-disabled\");\n if (!record.id || !record.version || !record.configurationDigest) {\n return nonCacheable(\"missing-identity\");\n }\n return Object.freeze({\n ok: true,\n value: Object.freeze({\n cacheable: true,\n id: record.id,\n version: record.version,\n configurationDigest: record.configurationDigest,\n }),\n });\n}\n\nexport function subordinateIdentity(identity: Cacheability, provider: Cacheability): Cacheability {\n if (!provider.cacheable && identity.cacheable) {\n return Object.freeze({ cacheable: false, reason: \"provider-not-cacheable\" });\n }\n return identity;\n}\n\nfunction nonCacheable(reason: \"explicitly-disabled\" | \"missing-identity\"): IdentityResult {\n return Object.freeze({\n ok: true,\n value: Object.freeze({ cacheable: false, reason }),\n });\n}\n\nfunction validOptionalString(input: unknown): input is string | undefined {\n return (\n input === undefined || (typeof input === \"string\" && input.length > 0 && input.length <= 256)\n );\n}\n\nfunction validOptionalBoolean(input: unknown): input is boolean | undefined {\n return input === undefined || typeof input === \"boolean\";\n}\n","import type {\n Cacheability,\n CapabilityDeclaration,\n HostEnvironmentDiagnostic,\n LiveCapability,\n} from \"./contracts.js\";\nimport { environmentDiagnostic } from \"./diagnostics.js\";\nimport { normalizeIdentity, subordinateIdentity } from \"./identity.js\";\nimport { readArray, validName } from \"./input-readers.js\";\nimport { readOwnDataRecord } from \"./serializable.js\";\n\nexport interface CapabilityState {\n readonly declarations: CapabilityDeclaration[];\n readonly live: Record<string, LiveCapability>;\n readonly diagnostics: HostEnvironmentDiagnostic[];\n}\n\nexport function normalizeCapabilities(input: unknown, provider: Cacheability): CapabilityState {\n const state: CapabilityState = { declarations: [], live: Object.create(null), diagnostics: [] };\n if (input === undefined) return state;\n const items = readArray(input, 4_096);\n if (!items) {\n state.diagnostics.push(environmentDiagnostic(\"HOST_ENVIRONMENT_INVALID_CAPABILITY\"));\n return state;\n }\n for (const item of items) addCapability(item, provider, state);\n return state;\n}\n\nfunction addCapability(input: unknown, provider: Cacheability, state: CapabilityState): void {\n const inspected = readOwnDataRecord(input, 12);\n if (!inspected.ok || !validCapabilityFields(inspected.value)) {\n state.diagnostics.push(environmentDiagnostic(\"HOST_ENVIRONMENT_INVALID_CAPABILITY\"));\n return;\n }\n const record = inspected.value;\n if (state.live[record.handle as string]) {\n state.diagnostics.push(environmentDiagnostic(\"HOST_ENVIRONMENT_DUPLICATE_CAPABILITY\"));\n return;\n }\n const identity = normalizeCapabilityIdentity(record);\n if (!identity) {\n state.diagnostics.push(environmentDiagnostic(\"HOST_ENVIRONMENT_INVALID_IDENTITY\"));\n return;\n }\n addLiveCapability(record, subordinateIdentity(identity, provider), state);\n}\n\nfunction normalizeCapabilityIdentity(record: Record<string, unknown>): Cacheability | null {\n const result = normalizeIdentity({\n id: record.capabilityId,\n version: record.capabilityVersion,\n configurationDigest: record.configurationDigest,\n cacheable: record.cacheable,\n });\n return result.ok ? result.value : null;\n}\n\nfunction addLiveCapability(\n record: Record<string, unknown>,\n identity: Cacheability,\n state: CapabilityState,\n): void {\n const declaration = createDeclaration(record, identity);\n const live =\n declaration.kind === \"validator\"\n ? Object.freeze({\n ...declaration,\n kind: \"validator\" as const,\n decode: record.decode as never,\n })\n : Object.freeze({ ...declaration, kind: \"codec\" as const, convert: record.convert as never });\n state.declarations.push(declaration);\n state.live[declaration.handle] = live;\n}\n\nfunction createDeclaration(\n record: Record<string, unknown>,\n identity: Cacheability,\n): CapabilityDeclaration {\n return Object.freeze({\n handle: record.handle as string,\n kind: record.kind as \"validator\" | \"codec\",\n mode: record.mode as \"sync\" | \"async\",\n ...(record.capabilityId ? { capabilityId: record.capabilityId as string } : {}),\n ...(record.capabilityVersion ? { capabilityVersion: record.capabilityVersion as string } : {}),\n ...(record.configurationDigest\n ? { configurationDigest: record.configurationDigest as string }\n : {}),\n identity,\n });\n}\n\nfunction validCapabilityFields(record: Record<string, unknown>): boolean {\n if (!validName(record.handle) || (record.mode !== \"sync\" && record.mode !== \"async\"))\n return false;\n if (record.kind === \"validator\") return typeof record.decode === \"function\";\n if (record.kind === \"codec\") return typeof record.convert === \"function\";\n return false;\n}\n","import { type BindingState, normalizeBindings } from \"./binding-normalization.js\";\nimport { type CapabilityState, normalizeCapabilities } from \"./capability-normalization.js\";\nimport { createCapabilitySnapshot } from \"./capability-snapshot.js\";\nimport type {\n Cacheability,\n CapabilityDeclaration,\n DescribeEnvironmentResult,\n HostEnvironmentDiagnostic,\n HostEnvironmentDiagnosticCode,\n ManualProvider,\n ManualProviderInput,\n ProvenanceEntry,\n} from \"./contracts.js\";\nimport { environmentDiagnostic } from \"./diagnostics.js\";\nimport { createEditorGraph } from \"./editor-graph.js\";\nimport { normalizeIdentity } from \"./identity.js\";\nimport { readOwnDataRecord } from \"./serializable.js\";\n\nconst manualProviderBrand = Symbol(\"@kalada/host/manual-provider\");\ntype BrandedManualProvider = ManualProvider & { readonly [manualProviderBrand]: true };\n\nexport function createManualProvider(input: ManualProviderInput): ManualProvider {\n const outcome = safelyNormalize(input);\n return Object.freeze({\n kind: \"manual\",\n [manualProviderBrand]: true,\n describe: () => outcome,\n });\n}\n\nexport function describeEnvironment(provider: ManualProvider): DescribeEnvironmentResult {\n try {\n const candidate = provider as BrandedManualProvider;\n if (candidate?.kind !== \"manual\" || candidate[manualProviderBrand] !== true) {\n return providerFailure();\n }\n return candidate.describe();\n } catch {\n return providerFailure();\n }\n}\n\nexport function normalizeManualEnvironment(input: ManualProviderInput): DescribeEnvironmentResult {\n return safelyNormalize(input);\n}\n\nfunction safelyNormalize(input: unknown): DescribeEnvironmentResult {\n try {\n return normalize(input);\n } catch {\n return providerFailure();\n }\n}\n\nfunction normalize(input: unknown): DescribeEnvironmentResult {\n const inspected = readOwnDataRecord(input, 16);\n if (!inspected.ok) return providerFailure();\n const record = inspected.value;\n if (record.mode !== \"sync\" && record.mode !== \"async\") return providerFailure();\n const providerIdentity = normalizeProviderIdentity(record);\n if (!providerIdentity) return failure(\"HOST_ENVIRONMENT_INVALID_IDENTITY\");\n const capabilities = normalizeCapabilities(record.capabilities, providerIdentity);\n const bindings = normalizeBindings(record.bindings, capabilities, providerProvenance(record));\n const diagnostics = [...capabilities.diagnostics, ...bindings.diagnostics];\n if (diagnostics.length > 0) return failedDiagnostics(diagnostics);\n return success(record, providerIdentity, capabilities, bindings);\n}\n\nfunction normalizeProviderIdentity(record: Record<string, unknown>): Cacheability | null {\n const result = normalizeIdentity({\n id: record.providerId,\n version: record.providerVersion,\n configurationDigest: record.configurationDigest,\n cacheable: record.cacheable,\n });\n return result.ok ? result.value : null;\n}\n\nfunction providerProvenance(record: Record<string, unknown>): ProvenanceEntry {\n return Object.freeze({\n providerId: typeof record.providerId === \"string\" ? record.providerId : \"manual\",\n ...(typeof record.providerVersion === \"string\"\n ? { providerVersion: record.providerVersion }\n : {}),\n });\n}\n\nfunction success(\n providerRecord: Record<string, unknown>,\n providerIdentity: Cacheability,\n capabilities: CapabilityState,\n bindings: BindingState,\n): DescribeEnvironmentResult {\n const graph = createEditorGraph(bindings.graphInputs);\n const roots = new Map(graph.roots.map((root) => [root.bindingId, root.nodeId]));\n const normalized = bindings.bindings.map((binding) =>\n Object.freeze({\n ...binding,\n ...(roots.has(binding.id) ? { editorShapeRoot: roots.get(binding.id) } : {}),\n }),\n );\n const environment = Object.freeze({\n format: \"kalada-host-environment-v1\" as const,\n provider: providerDeclaration(providerRecord, providerIdentity),\n cacheability: environmentCacheability(providerIdentity, capabilities.declarations),\n compileProjection: Object.freeze({\n format: \"kalada-host-compile-projection-v1\" as const,\n bindings: Object.freeze(\n normalized.map(({ id, name, semanticType }) => Object.freeze({ id, name, semanticType })),\n ),\n }),\n bindings: Object.freeze(normalized),\n capabilities: Object.freeze(capabilities.declarations),\n editorGraph: graph,\n });\n const snapshot = createCapabilitySnapshot(environment, Object.freeze(capabilities.live));\n return Object.freeze({\n ok: true,\n environment,\n capabilitySnapshot: snapshot,\n });\n}\n\nfunction providerDeclaration(record: Record<string, unknown>, identity: Cacheability) {\n return Object.freeze({\n mode: record.mode as \"sync\" | \"async\",\n ...(record.providerId ? { providerId: record.providerId as string } : {}),\n ...(record.providerVersion ? { providerVersion: record.providerVersion as string } : {}),\n ...(record.configurationDigest\n ? { configurationDigest: record.configurationDigest as string }\n : {}),\n identity,\n });\n}\n\nfunction environmentCacheability(\n provider: Cacheability,\n capabilities: readonly CapabilityDeclaration[],\n): Cacheability {\n if (!provider.cacheable) return provider;\n if (capabilities.some((item) => !item.identity.cacheable)) {\n return Object.freeze({ cacheable: false, reason: \"capability-not-cacheable\" });\n }\n return provider;\n}\n\nfunction failedDiagnostics(diagnostics: HostEnvironmentDiagnostic[]): DescribeEnvironmentResult {\n return Object.freeze({ ok: false, diagnostics: Object.freeze(diagnostics) });\n}\n\nfunction failure(code: HostEnvironmentDiagnosticCode): DescribeEnvironmentResult {\n return failedDiagnostics([environmentDiagnostic(code)]);\n}\n\nfunction providerFailure(): DescribeEnvironmentResult {\n return failure(\"HOST_ENVIRONMENT_INVALID_PROVIDER\");\n}\n","import { compileExpression, parseExpression } from \"./compile-expression.js\";\nimport type { ManualProvider } from \"./contracts.js\";\nimport type {\n EvaluateExpressionResult,\n HostPrepareOptions,\n PrepareExpressionResult,\n} from \"./execution-contracts.js\";\nimport { executionDiagnostic } from \"./execution-diagnostics.js\";\nimport { linkExpression } from \"./link-expression.js\";\nimport { describeEnvironment } from \"./manual-provider.js\";\nimport { readOwnDataRecord } from \"./serializable.js\";\n\nexport function prepareExpression(\n source: string,\n provider: ManualProvider,\n options?: HostPrepareOptions,\n): PrepareExpressionResult {\n const described = describeEnvironment(provider);\n if (!described.ok) return described;\n const normalized = normalizeOptions(options);\n if (!normalized) {\n return Object.freeze({\n ok: false,\n diagnostics: Object.freeze([executionDiagnostic(\"HOST_COMPILE_INVALID_OPTIONS\", \"compile\")]),\n });\n }\n const parsed = parseExpression(source, normalized.parse);\n if (!parsed.ok) return parsed;\n const compiled = compileExpression(\n parsed.value,\n described.environment.compileProjection,\n normalized.compile,\n );\n if (!compiled.ok) return compiled;\n return linkExpression(compiled.value, described.environment, described.capabilitySnapshot);\n}\n\nfunction normalizeOptions(options: unknown): HostPrepareOptions | null {\n if (options === undefined) return Object.freeze({});\n const inspected = readOwnDataRecord(options, 2);\n if (!inspected.ok) return null;\n return Object.freeze({\n ...(inspected.value.parse === undefined ? {} : { parse: inspected.value.parse as never }),\n ...(inspected.value.compile === undefined ? {} : { compile: inspected.value.compile as never }),\n });\n}\n\nexport function evaluateExpression(\n source: string,\n provider: ManualProvider,\n values: unknown,\n options?: HostPrepareOptions,\n): EvaluateExpressionResult {\n const prepared = prepareExpression(source, provider, options);\n return prepared.ok ? prepared.value.evaluate(values) : prepared;\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@kalada/host",
3
+ "version": "0.1.0",
4
+ "description": "Schema-neutral host environment contracts for Kalada",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/surikaterna/kalada",
9
+ "directory": "packages/host"
10
+ },
11
+ "type": "module",
12
+ "sideEffects": false,
13
+ "files": [
14
+ "dist",
15
+ "README.md"
16
+ ],
17
+ "main": "./dist/index.cjs",
18
+ "module": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "import": {
23
+ "types": "./dist/index.d.ts",
24
+ "default": "./dist/index.js"
25
+ },
26
+ "require": {
27
+ "types": "./dist/index.d.cts",
28
+ "default": "./dist/index.cjs"
29
+ }
30
+ },
31
+ "./package.json": "./package.json"
32
+ },
33
+ "scripts": {
34
+ "build": "tsup",
35
+ "test": "vitest run --config ../../vitest.config.ts src",
36
+ "typecheck": "tsc --noEmit"
37
+ },
38
+ "dependencies": {
39
+ "@kalada/core": "^0.6.0",
40
+ "@kalada/syntax": "^0.1.0"
41
+ },
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "engines": {
46
+ "node": ">=22.0.0"
47
+ }
48
+ }