@opengeni/sdk 1.0.1 → 2.3.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +117 -2
  2. package/dist/artifacts.js +5 -5
  3. package/dist/automations-client.d.ts +17 -0
  4. package/dist/automations.d.ts +3 -0
  5. package/dist/automations.js +78 -0
  6. package/dist/automations.js.map +1 -0
  7. package/dist/{chunk-YGH5P47G.js → chunk-6IPZY27S.js} +744 -57
  8. package/dist/chunk-6IPZY27S.js.map +1 -0
  9. package/dist/{chunk-TYZ4JL4J.js → chunk-AGUKZAXR.js} +2 -2
  10. package/dist/{chunk-A5DC5WEM.js → chunk-C2H7HBNP.js} +22 -2
  11. package/dist/chunk-C2H7HBNP.js.map +1 -0
  12. package/dist/{chunk-GU6JF75T.js → chunk-C4DJPZRU.js} +1 -1
  13. package/dist/{chunk-GU6JF75T.js.map → chunk-C4DJPZRU.js.map} +1 -1
  14. package/dist/{chunk-ST5DDKJP.js → chunk-GW3EJ2GP.js} +52 -1
  15. package/dist/chunk-GW3EJ2GP.js.map +1 -0
  16. package/dist/{chunk-4DV37UUA.js → chunk-TW5MNHUX.js} +16 -2
  17. package/dist/chunk-TW5MNHUX.js.map +1 -0
  18. package/dist/{chunk-VWE2QIVO.js → chunk-XNG7YGR3.js} +23 -6
  19. package/dist/chunk-XNG7YGR3.js.map +1 -0
  20. package/dist/client.d.ts +159 -26
  21. package/dist/codex-realtime-controller.d.ts +1 -0
  22. package/dist/codex-realtime-controller.js +2 -2
  23. package/dist/company-brain.d.ts +32 -0
  24. package/dist/company-profile.d.ts +1 -1
  25. package/dist/core.js +4 -4
  26. package/dist/editable-artifacts/browser-session.d.ts +7 -3
  27. package/dist/editable-artifacts/controller.d.ts +4 -1
  28. package/dist/editable-artifacts/errors.d.ts +1 -1
  29. package/dist/editable-artifacts/http-live-transport.d.ts +6 -2
  30. package/dist/editable-artifacts/index.d.ts +2 -0
  31. package/dist/editable-artifacts/open-failure.d.ts +9 -0
  32. package/dist/editable-artifacts/types.d.ts +4 -3
  33. package/dist/editable-artifacts/worker/kernel-adapter.d.ts +1 -1
  34. package/dist/editable-artifacts-worker.js +44 -17
  35. package/dist/editable-artifacts-worker.js.map +1 -1
  36. package/dist/editable-artifacts.js +222 -119
  37. package/dist/editable-artifacts.js.map +1 -1
  38. package/dist/errors.d.ts +1 -1
  39. package/dist/index.d.ts +7 -4
  40. package/dist/index.js +61 -12
  41. package/dist/index.js.map +1 -1
  42. package/dist/interaction.d.ts +23 -0
  43. package/dist/interaction.js +4 -1
  44. package/dist/organization-private-session-settings.d.ts +6 -0
  45. package/dist/organization-private-session-settings.js +22 -0
  46. package/dist/organization-private-session-settings.js.map +1 -0
  47. package/dist/pr-review-client.d.ts +15 -0
  48. package/dist/pr-review.d.ts +4 -0
  49. package/dist/pr-review.js +56 -0
  50. package/dist/pr-review.js.map +1 -0
  51. package/dist/preference-registry.d.ts +8 -0
  52. package/dist/realtime.js +2 -2
  53. package/dist/retained-artifacts.d.ts +5 -1
  54. package/dist/types.d.ts +1023 -13
  55. package/dist/workspace-instruction-policies.d.ts +22 -0
  56. package/dist/workspace-learning.d.ts +124 -0
  57. package/package.json +14 -2
  58. package/src/automations-client.ts +118 -0
  59. package/src/automations.ts +15 -0
  60. package/src/client.ts +1049 -71
  61. package/src/codex-realtime-controller.ts +21 -0
  62. package/src/company-brain.ts +99 -0
  63. package/src/company-profile.ts +4 -1
  64. package/src/editable-artifacts/browser-session.ts +36 -22
  65. package/src/editable-artifacts/controller.ts +66 -45
  66. package/src/editable-artifacts/errors.ts +2 -0
  67. package/src/editable-artifacts/http-live-transport.ts +62 -37
  68. package/src/editable-artifacts/index.ts +6 -0
  69. package/src/editable-artifacts/open-failure.ts +79 -0
  70. package/src/editable-artifacts/storage.ts +31 -40
  71. package/src/editable-artifacts/types.ts +4 -3
  72. package/src/editable-artifacts/worker/kernel-adapter.ts +23 -7
  73. package/src/editable-artifacts/worker/runtime.ts +26 -13
  74. package/src/editable-artifacts/worker/wire-codec.ts +23 -5
  75. package/src/errors.ts +1 -1
  76. package/src/index.ts +134 -0
  77. package/src/interaction.ts +95 -0
  78. package/src/organization-private-session-settings.ts +33 -0
  79. package/src/pr-review-client.ts +84 -0
  80. package/src/pr-review.ts +15 -0
  81. package/src/preference-registry.ts +9 -0
  82. package/src/retained-artifacts.ts +101 -0
  83. package/src/stream.ts +13 -2
  84. package/src/types.ts +1174 -12
  85. package/src/workspace-instruction-policies.ts +24 -0
  86. package/src/workspace-learning.ts +138 -0
  87. package/dist/chunk-4DV37UUA.js.map +0 -1
  88. package/dist/chunk-A5DC5WEM.js.map +0 -1
  89. package/dist/chunk-ST5DDKJP.js.map +0 -1
  90. package/dist/chunk-VWE2QIVO.js.map +0 -1
  91. package/dist/chunk-YGH5P47G.js.map +0 -1
  92. /package/dist/{chunk-TYZ4JL4J.js.map → chunk-AGUKZAXR.js.map} +0 -0
@@ -565,7 +565,9 @@ function encodeSnapshotMetadata(snapshot) {
565
565
  const writer = new ArtifactWorkerBinaryWriter();
566
566
  writer.u8(modalityTag(snapshot.modality)).string(requireIdentifier(snapshot.artifactId, "snapshot.artifactId"), MAX_ID_BYTES).safeUint(nonNegativeSafeInteger2(snapshot.sequence, "snapshot.sequence")).string(requireSha256(snapshot.stateHash, "snapshot.stateHash"), 71).string(requireSha256(snapshot.digest, "snapshot.digest"), 71).string(requireVersion(snapshot.kernelVersion, "snapshot.kernelVersion"), MAX_VERSION_BYTES).u32(positiveSafeInteger2(snapshot.modelSchemaVersion, "snapshot.modelSchemaVersion"));
567
567
  if (snapshot.modality === "spreadsheet") {
568
- writer.frontier(snapshot.causalFrontier).u32(positiveSafeInteger2(snapshot.protocolVersion, "snapshot.protocolVersion"));
568
+ writer.frontier(snapshot.causalFrontier).u32(
569
+ positiveSafeInteger2(snapshot.operationProtocolVersion, "snapshot.operationProtocolVersion")
570
+ ).u32(positiveSafeInteger2(snapshot.snapshotVersion, "snapshot.snapshotVersion"));
569
571
  } else {
570
572
  writer.safeUint(nonNegativeSafeInteger2(snapshot.nativeRevision, "snapshot.nativeRevision"));
571
573
  }
@@ -587,7 +589,11 @@ function decodeSnapshotMetadata(bytes, snapshotBytes) {
587
589
  ...common,
588
590
  modality,
589
591
  causalFrontier: reader.frontier(),
590
- protocolVersion: positiveSafeInteger2(reader.u32(), "snapshot.protocolVersion")
592
+ operationProtocolVersion: positiveSafeInteger2(
593
+ reader.u32(),
594
+ "snapshot.operationProtocolVersion"
595
+ ),
596
+ snapshotVersion: positiveSafeInteger2(reader.u32(), "snapshot.snapshotVersion")
591
597
  } : {
592
598
  ...common,
593
599
  modality,
@@ -618,7 +624,10 @@ function decodeCommittedMetadata(bytes, committedTransactionBytes) {
618
624
  ...common,
619
625
  modality,
620
626
  causalFrontier: reader.frontier(),
621
- protocolVersion: positiveSafeInteger2(reader.u32(), "transaction.protocolVersion")
627
+ operationProtocolVersion: positiveSafeInteger2(
628
+ reader.u32(),
629
+ "transaction.operationProtocolVersion"
630
+ )
622
631
  } : {
623
632
  ...common,
624
633
  modality,
@@ -786,7 +795,12 @@ function requireMatchingHash(actual, expected, label) {
786
795
  function encodeCommittedFields(writer, transaction) {
787
796
  writer.u8(modalityTag(transaction.modality)).string(requireIdentifier(transaction.artifactId, "transaction.artifactId"), MAX_ID_BYTES).string(requireIdentifier(transaction.transactionId, "transaction.transactionId"), MAX_ID_BYTES).string(requireSha256(transaction.requestHash, "transaction.requestHash"), 71).safeUint(positiveSafeInteger2(transaction.startSequence, "transaction.startSequence")).safeUint(positiveSafeInteger2(transaction.endSequence, "transaction.endSequence")).string(requireSha256(transaction.priorStateHash, "transaction.priorStateHash"), 71).string(requireSha256(transaction.stateHash, "transaction.stateHash"), 71);
788
797
  if (transaction.modality === "spreadsheet") {
789
- writer.frontier(transaction.causalFrontier).u32(positiveSafeInteger2(transaction.protocolVersion, "transaction.protocolVersion"));
798
+ writer.frontier(transaction.causalFrontier).u32(
799
+ positiveSafeInteger2(
800
+ transaction.operationProtocolVersion,
801
+ "transaction.operationProtocolVersion"
802
+ )
803
+ );
790
804
  } else {
791
805
  writer.safeUint(
792
806
  nonNegativeSafeInteger2(transaction.priorNativeRevision, "transaction.priorNativeRevision")
@@ -812,7 +826,10 @@ function decodeCommittedFields(reader, committedTransactionBytes) {
812
826
  ...common,
813
827
  modality,
814
828
  causalFrontier: reader.frontier(),
815
- protocolVersion: positiveSafeInteger2(reader.u32(), "transaction.protocolVersion")
829
+ operationProtocolVersion: positiveSafeInteger2(
830
+ reader.u32(),
831
+ "transaction.operationProtocolVersion"
832
+ )
816
833
  } : {
817
834
  ...common,
818
835
  modality,
@@ -1159,4 +1176,4 @@ export {
1159
1176
  sha256Hex,
1160
1177
  requireMatchingHash
1161
1178
  };
1162
- //# sourceMappingURL=chunk-VWE2QIVO.js.map
1179
+ //# sourceMappingURL=chunk-XNG7YGR3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/editable-artifacts/worker/rpc-protocol.ts","../src/editable-artifacts/worker/wire-codec.ts"],"sourcesContent":["const FRAME_MAGIC = new Uint8Array([0x4f, 0x47, 0x41, 0x57, 0x52, 0x50, 0x43, 0x31]); // OGAWRPC1\nconst FRAME_HEADER_BYTES = 36;\nconst FRAME_VERSION = 1;\nconst DEFAULT_MAX_METADATA_BYTES = 1024 * 1024;\nconst DEFAULT_MAX_SEGMENT_BYTES = 128 * 1024 * 1024;\nconst DEFAULT_MAX_TOTAL_SEGMENT_BYTES = 512 * 1024 * 1024;\nconst DEFAULT_MAX_SEGMENTS = 4_096;\n\nexport const enum ArtifactWorkerRpcKind {\n Initialize = 1,\n Reset = 2,\n LoadSnapshot = 3,\n ApplyRecovered = 4,\n ReconcileCommitted = 5,\n ReplacePending = 6,\n AuthorPending = 7,\n Cancel = 8,\n Dispose = 9,\n QuerySpreadsheet = 10,\n Response = 128,\n Error = 129,\n}\n\nexport type ArtifactWorkerRpcMessage = {\n frame: ArrayBuffer;\n segments: ArrayBuffer[];\n};\n\nexport type ArtifactWorkerRpcLimits = {\n maxMetadataBytes: number;\n maxSegmentBytes: number;\n maxTotalSegmentBytes: number;\n maxSegments: number;\n};\n\nexport type DecodedArtifactWorkerRpcFrame = {\n kind: ArtifactWorkerRpcKind;\n generation: number;\n requestId: number;\n flags: number;\n metadata: Uint8Array;\n segments: Uint8Array[];\n};\n\nexport const DEFAULT_ARTIFACT_WORKER_RPC_LIMITS: Readonly<ArtifactWorkerRpcLimits> = Object.freeze({\n maxMetadataBytes: DEFAULT_MAX_METADATA_BYTES,\n maxSegmentBytes: DEFAULT_MAX_SEGMENT_BYTES,\n maxTotalSegmentBytes: DEFAULT_MAX_TOTAL_SEGMENT_BYTES,\n maxSegments: DEFAULT_MAX_SEGMENTS,\n});\n\nexport class ArtifactWorkerProtocolError extends Error {\n readonly code: string;\n\n constructor(code: string, message: string, options?: { cause?: unknown }) {\n super(message, options?.cause === undefined ? undefined : { cause: options.cause });\n this.name = \"ArtifactWorkerProtocolError\";\n this.code = code;\n }\n}\n\nexport function encodeArtifactWorkerRpcMessage(input: {\n kind: ArtifactWorkerRpcKind;\n generation: number;\n requestId: number;\n flags?: number;\n metadata?: Uint8Array;\n /** Every buffer must already be exclusively owned by this message. */\n segments?: ArrayBuffer[];\n limits?: Readonly<ArtifactWorkerRpcLimits>;\n}): ArtifactWorkerRpcMessage {\n const limits = validateLimits(input.limits ?? DEFAULT_ARTIFACT_WORKER_RPC_LIMITS);\n const generation = unsignedInt(input.generation, \"generation\");\n const requestId = unsignedInt(input.requestId, \"requestId\");\n if (generation === 0 || requestId === 0) {\n throw protocolError(\"invalid_number\", \"generation and requestId must be nonzero\");\n }\n const flags = unsignedInt(input.flags ?? 0, \"flags\");\n const kind = unsignedShort(input.kind, \"kind\");\n if (!isKnownKind(kind)) throw protocolError(\"unknown_kind\", `unknown RPC kind ${kind}`);\n const metadata = input.metadata ?? new Uint8Array();\n if (!(metadata instanceof Uint8Array))\n throw protocolError(\"invalid_frame\", \"metadata must be bytes\");\n if (metadata.byteLength > limits.maxMetadataBytes) {\n throw protocolError(\"metadata_too_large\", \"RPC metadata exceeds its configured byte limit\");\n }\n const segments = input.segments ?? [];\n if (\n !Array.isArray(segments) ||\n segments.length > limits.maxSegments ||\n segments.length > 0xffff\n ) {\n throw protocolError(\"segments_too_large\", \"RPC segment count exceeds its configured limit\");\n }\n let totalSegmentBytes = 0;\n const uniqueSegments = new Set<ArrayBuffer>();\n for (const segment of segments) {\n if (!(segment instanceof ArrayBuffer)) {\n throw protocolError(\"invalid_segment\", \"RPC segments must be transferable ArrayBuffers\");\n }\n if (segment.byteLength > limits.maxSegmentBytes) {\n throw protocolError(\"segment_too_large\", \"RPC segment exceeds its configured byte limit\");\n }\n if (uniqueSegments.has(segment)) {\n throw protocolError(\"invalid_segment\", \"RPC segments must not alias one transferable buffer\");\n }\n uniqueSegments.add(segment);\n totalSegmentBytes = checkedAdd(totalSegmentBytes, segment.byteLength, \"RPC segment bytes\");\n if (totalSegmentBytes > limits.maxTotalSegmentBytes) {\n throw protocolError(\"segments_too_large\", \"RPC segments exceed their aggregate byte limit\");\n }\n }\n\n const segmentTableBytes = checkedMultiply(segments.length, 4, \"RPC segment table\");\n const frameBytes = checkedAdd(\n checkedAdd(FRAME_HEADER_BYTES, metadata.byteLength, \"RPC frame\"),\n segmentTableBytes,\n \"RPC frame\",\n );\n const frame = new Uint8Array(frameBytes);\n const view = new DataView(frame.buffer);\n frame.set(FRAME_MAGIC, 0);\n view.setUint16(8, FRAME_VERSION, true);\n view.setUint16(10, kind, true);\n view.setUint32(12, generation, true);\n view.setUint32(16, requestId, true);\n view.setUint32(20, flags, true);\n view.setUint32(24, metadata.byteLength, true);\n view.setUint16(28, segments.length, true);\n view.setUint16(30, 0, true);\n view.setUint32(32, 0, true);\n frame.set(metadata, FRAME_HEADER_BYTES);\n let offset = FRAME_HEADER_BYTES + metadata.byteLength;\n for (const segment of segments) {\n view.setUint32(offset, segment.byteLength, true);\n offset += 4;\n }\n view.setUint32(32, checksum32(frame), true);\n return { frame: frame.buffer, segments };\n}\n\nexport function decodeArtifactWorkerRpcMessage(\n input: unknown,\n limitsInput: Readonly<ArtifactWorkerRpcLimits> = DEFAULT_ARTIFACT_WORKER_RPC_LIMITS,\n): DecodedArtifactWorkerRpcFrame {\n const limits = validateLimits(limitsInput);\n if (!isPlainRecord(input)) throw protocolError(\"invalid_frame\", \"RPC message must be a record\");\n const keys = Object.keys(input);\n if (keys.length !== 2 || !keys.includes(\"frame\") || !keys.includes(\"segments\")) {\n throw protocolError(\"invalid_frame\", \"RPC message contains unknown or missing fields\");\n }\n const frameBuffer = dataProperty(input, \"frame\");\n const rawSegments = dataProperty(input, \"segments\");\n if (!(frameBuffer instanceof ArrayBuffer)) {\n throw protocolError(\"invalid_frame\", \"RPC frame must be a transferable ArrayBuffer\");\n }\n if (!Array.isArray(rawSegments))\n throw protocolError(\"invalid_frame\", \"RPC segments must be an array\");\n if (frameBuffer.byteLength < FRAME_HEADER_BYTES)\n throw protocolError(\"truncated\", \"RPC frame is truncated\");\n if (\n frameBuffer.byteLength >\n FRAME_HEADER_BYTES + limits.maxMetadataBytes + limits.maxSegments * 4\n ) {\n throw protocolError(\"metadata_too_large\", \"RPC frame exceeds its configured byte limit\");\n }\n const frame = new Uint8Array(frameBuffer);\n for (let index = 0; index < FRAME_MAGIC.length; index += 1) {\n if (frame[index] !== FRAME_MAGIC[index])\n throw protocolError(\"bad_magic\", \"invalid RPC frame magic\");\n }\n const view = new DataView(frameBuffer);\n const version = view.getUint16(8, true);\n if (version !== FRAME_VERSION) {\n throw protocolError(\"unsupported_version\", `unsupported RPC frame version ${version}`);\n }\n const kind = view.getUint16(10, true);\n if (!isKnownKind(kind)) throw protocolError(\"unknown_kind\", `unknown RPC kind ${kind}`);\n const generation = view.getUint32(12, true);\n const requestId = view.getUint32(16, true);\n if (generation === 0 || requestId === 0) {\n throw protocolError(\"noncanonical\", \"generation and requestId must be nonzero\");\n }\n const flags = view.getUint32(20, true);\n const metadataBytes = view.getUint32(24, true);\n const segmentCount = view.getUint16(28, true);\n if (view.getUint16(30, true) !== 0) {\n throw protocolError(\"noncanonical\", \"reserved RPC frame bits are set\");\n }\n if (metadataBytes > limits.maxMetadataBytes) {\n throw protocolError(\"metadata_too_large\", \"RPC metadata exceeds its configured byte limit\");\n }\n if (segmentCount > limits.maxSegments || rawSegments.length !== segmentCount) {\n throw protocolError(\"invalid_segment\", \"RPC segment count does not match its frame\");\n }\n const expectedFrameBytes = checkedAdd(\n checkedAdd(FRAME_HEADER_BYTES, metadataBytes, \"RPC frame\"),\n checkedMultiply(segmentCount, 4, \"RPC segment table\"),\n \"RPC frame\",\n );\n if (frame.byteLength !== expectedFrameBytes) {\n throw protocolError(\"trailing_bytes\", \"RPC frame has a truncated or trailing payload\");\n }\n const expectedChecksum = view.getUint32(32, true);\n view.setUint32(32, 0, true);\n const actualChecksum = checksum32(frame);\n view.setUint32(32, expectedChecksum, true);\n if (expectedChecksum !== actualChecksum) {\n throw protocolError(\"checksum_mismatch\", \"RPC frame checksum does not match\");\n }\n const segments: Uint8Array[] = [];\n const uniqueBuffers = new Set<ArrayBuffer>([frameBuffer]);\n let totalSegmentBytes = 0;\n let tableOffset = FRAME_HEADER_BYTES + metadataBytes;\n for (let index = 0; index < segmentCount; index += 1) {\n const expectedBytes = view.getUint32(tableOffset, true);\n tableOffset += 4;\n const segment = rawSegments[index];\n if (!(segment instanceof ArrayBuffer) || segment.byteLength !== expectedBytes) {\n throw protocolError(\n \"invalid_segment\",\n `RPC segment ${index} does not match its declared length`,\n );\n }\n if (uniqueBuffers.has(segment)) {\n throw protocolError(\"invalid_segment\", \"RPC frame and segments must use distinct buffers\");\n }\n uniqueBuffers.add(segment);\n if (segment.byteLength > limits.maxSegmentBytes) {\n throw protocolError(\"segment_too_large\", `RPC segment ${index} exceeds its configured limit`);\n }\n totalSegmentBytes = checkedAdd(totalSegmentBytes, segment.byteLength, \"RPC segment bytes\");\n if (totalSegmentBytes > limits.maxTotalSegmentBytes) {\n throw protocolError(\"segments_too_large\", \"RPC segments exceed their aggregate byte limit\");\n }\n segments.push(new Uint8Array(segment));\n }\n return {\n kind: kind as ArtifactWorkerRpcKind,\n generation,\n requestId,\n flags,\n metadata: frame.slice(FRAME_HEADER_BYTES, FRAME_HEADER_BYTES + metadataBytes),\n segments,\n };\n}\n\nexport function transferListForArtifactWorkerRpcMessage(\n message: ArtifactWorkerRpcMessage,\n): Transferable[] {\n return [message.frame, ...message.segments];\n}\n\n/** Creates a private transferable copy; transferring never detaches caller-owned bytes. */\nexport function ownedTransferBuffer(bytes: Uint8Array): ArrayBuffer {\n if (!(bytes instanceof Uint8Array))\n throw protocolError(\"invalid_segment\", \"expected byte segment\");\n return bytes.slice().buffer;\n}\n\nexport class ArtifactWorkerBinaryWriter {\n private readonly chunks: Uint8Array[] = [];\n private size = 0;\n\n constructor(private readonly maximumBytes = DEFAULT_MAX_METADATA_BYTES) {\n positiveSafeInteger(maximumBytes, \"maximumBytes\");\n }\n\n u8(value: number): this {\n unsignedByte(value, \"u8\");\n return this.append(new Uint8Array([value]));\n }\n\n u16(value: number): this {\n unsignedShort(value, \"u16\");\n const bytes = new Uint8Array(2);\n new DataView(bytes.buffer).setUint16(0, value, true);\n return this.append(bytes);\n }\n\n u32(value: number): this {\n unsignedInt(value, \"u32\");\n const bytes = new Uint8Array(4);\n new DataView(bytes.buffer).setUint32(0, value, true);\n return this.append(bytes);\n }\n\n safeUint(value: number): this {\n nonNegativeSafeInteger(value, \"safeUint\");\n const bytes = new Uint8Array(8);\n new DataView(bytes.buffer).setBigUint64(0, BigInt(value), true);\n return this.append(bytes);\n }\n\n f64(value: number): this {\n if (!Number.isFinite(value)) throw protocolError(\"invalid_number\", \"f64 must be finite\");\n const bytes = new Uint8Array(8);\n new DataView(bytes.buffer).setFloat64(0, value, true);\n return this.append(bytes);\n }\n\n string(value: string, maximumBytes = 256 * 1024): this {\n if (typeof value !== \"string\") throw protocolError(\"invalid_string\", \"expected a string\");\n if (!isWellFormedUnicode(value)) {\n throw protocolError(\"invalid_string\", \"string contains an unpaired UTF-16 surrogate\");\n }\n const bytes = new TextEncoder().encode(value);\n if (bytes.byteLength > maximumBytes)\n throw protocolError(\"string_too_large\", \"string exceeds its byte limit\");\n this.u32(bytes.byteLength);\n return this.append(bytes);\n }\n\n optionalString(value: string | null, maximumBytes = 256 * 1024): this {\n this.u8(value === null ? 0 : 1);\n if (value !== null) this.string(value, maximumBytes);\n return this;\n }\n\n frontier(\n value: readonly Readonly<{ replicaId: string; counter: number }>[],\n maximumActors = 1_024,\n ): this {\n const entries = validateFrontier(value, maximumActors);\n this.u32(entries.length);\n for (const [actor, counter] of entries) {\n this.string(actor, 256);\n this.safeUint(counter);\n }\n return this;\n }\n\n finish(): Uint8Array {\n const output = new Uint8Array(this.size);\n let offset = 0;\n for (const chunk of this.chunks) {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return output;\n }\n\n private append(bytes: Uint8Array): this {\n this.size = checkedAdd(this.size, bytes.byteLength, \"binary metadata\");\n if (this.size > this.maximumBytes) {\n throw protocolError(\"metadata_too_large\", \"binary metadata exceeds its configured limit\");\n }\n this.chunks.push(bytes);\n return this;\n }\n}\n\nexport class ArtifactWorkerBinaryReader {\n private readonly view: DataView;\n private offset = 0;\n\n constructor(private readonly bytes: Uint8Array) {\n if (!(bytes instanceof Uint8Array))\n throw protocolError(\"invalid_frame\", \"metadata must be bytes\");\n this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n }\n\n u8(): number {\n this.require(1);\n const value = this.view.getUint8(this.offset);\n this.offset += 1;\n return value;\n }\n\n u16(): number {\n this.require(2);\n const value = this.view.getUint16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n u32(): number {\n this.require(4);\n const value = this.view.getUint32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n safeUint(): number {\n this.require(8);\n const value = this.view.getBigUint64(this.offset, true);\n this.offset += 8;\n if (value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw protocolError(\"invalid_number\", \"RPC unsigned integer exceeds JavaScript safe range\");\n }\n return Number(value);\n }\n\n f64(): number {\n this.require(8);\n const value = this.view.getFloat64(this.offset, true);\n this.offset += 8;\n if (!Number.isFinite(value)) throw protocolError(\"invalid_number\", \"non-finite RPC number\");\n return value;\n }\n\n string(maximumBytes = 256 * 1024): string {\n const length = this.u32();\n if (length > maximumBytes)\n throw protocolError(\"string_too_large\", \"RPC string exceeds its byte limit\");\n this.require(length);\n const bytes = this.bytes.subarray(this.offset, this.offset + length);\n this.offset += length;\n try {\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes);\n } catch (error) {\n throw protocolError(\"invalid_utf8\", \"RPC string is not valid UTF-8\", error);\n }\n }\n\n optionalString(maximumBytes = 256 * 1024): string | null {\n const present = this.u8();\n if (present === 0) return null;\n if (present !== 1) throw protocolError(\"noncanonical\", \"invalid optional-string tag\");\n return this.string(maximumBytes);\n }\n\n frontier(maximumActors = 1_024): readonly Readonly<{ replicaId: string; counter: number }>[] {\n const count = this.u32();\n if (count > maximumActors)\n throw protocolError(\"frontier_too_large\", \"causal frontier exceeds its actor limit\");\n const entries: Array<Readonly<{ replicaId: string; counter: number }>> = [];\n let previous = \"\";\n for (let index = 0; index < count; index += 1) {\n const actor = this.string(256);\n if (!actor || (index > 0 && compareCodeUnits(previous, actor) >= 0)) {\n throw protocolError(\n \"noncanonical\",\n \"causal frontier actors must be unique and code-unit sorted\",\n );\n }\n const counter = this.safeUint();\n entries.push(Object.freeze({ replicaId: actor, counter }));\n previous = actor;\n }\n return Object.freeze(entries);\n }\n\n done(): void {\n if (this.offset !== this.bytes.byteLength) {\n throw protocolError(\"trailing_bytes\", \"RPC metadata contains trailing bytes\");\n }\n }\n\n remaining(): number {\n return this.bytes.byteLength - this.offset;\n }\n\n private require(length: number): void {\n if (length < 0 || this.offset + length > this.bytes.byteLength) {\n throw protocolError(\"truncated\", \"RPC metadata is truncated\");\n }\n }\n}\n\nfunction validateFrontier(\n value: readonly Readonly<{ replicaId: string; counter: number }>[],\n maximumActors: number,\n): Array<readonly [string, number]> {\n if (!Array.isArray(value))\n throw protocolError(\"invalid_frontier\", \"causal frontier must be an array\");\n const entries: Array<readonly [string, number]> = [];\n for (const entry of value) {\n if (!isPlainRecord(entry))\n throw protocolError(\"invalid_frontier\", \"causal frontier entry is invalid\");\n const keys = Object.keys(entry);\n if (keys.length !== 2 || !keys.includes(\"replicaId\") || !keys.includes(\"counter\")) {\n throw protocolError(\"invalid_frontier\", \"causal frontier entry has unknown fields\");\n }\n const actor = dataProperty(entry, \"replicaId\");\n const counter = dataProperty(entry, \"counter\");\n if (typeof actor !== \"string\" || typeof counter !== \"number\") {\n throw protocolError(\"invalid_frontier\", \"causal frontier entry has invalid fields\");\n }\n entries.push([actor, counter]);\n }\n if (entries.length > maximumActors) {\n throw protocolError(\"frontier_too_large\", \"causal frontier exceeds its actor limit\");\n }\n for (const [actor, counter] of entries) {\n if (!actor || new TextEncoder().encode(actor).byteLength > 256) {\n throw protocolError(\"invalid_frontier\", \"causal frontier actor is invalid\");\n }\n nonNegativeSafeInteger(counter, `causal frontier counter for ${actor}`);\n }\n const sorted = entries.slice().sort(([left], [right]) => compareCodeUnits(left, right));\n for (let index = 0; index < entries.length; index += 1) {\n if (entries[index]![0] !== sorted[index]![0]) {\n throw protocolError(\"noncanonical\", \"causal frontier must already be code-unit sorted\");\n }\n if (index > 0 && entries[index - 1]![0] === entries[index]![0]) {\n throw protocolError(\"noncanonical\", \"causal frontier contains a duplicate replica\");\n }\n }\n return entries;\n}\n\nfunction validateLimits(input: Readonly<ArtifactWorkerRpcLimits>): ArtifactWorkerRpcLimits {\n const limits = {\n maxMetadataBytes: positiveSafeInteger(input.maxMetadataBytes, \"maxMetadataBytes\"),\n maxSegmentBytes: positiveSafeInteger(input.maxSegmentBytes, \"maxSegmentBytes\"),\n maxTotalSegmentBytes: positiveSafeInteger(input.maxTotalSegmentBytes, \"maxTotalSegmentBytes\"),\n maxSegments: positiveSafeInteger(input.maxSegments, \"maxSegments\"),\n };\n if (limits.maxSegments > 0xffff) {\n throw protocolError(\"invalid_limit\", \"maxSegments exceeds the frame encoding limit\");\n }\n return limits;\n}\n\nfunction isKnownKind(kind: number): boolean {\n return (\n (kind >= ArtifactWorkerRpcKind.Initialize && kind <= ArtifactWorkerRpcKind.QuerySpreadsheet) ||\n kind === ArtifactWorkerRpcKind.Response ||\n kind === ArtifactWorkerRpcKind.Error\n );\n}\n\nfunction checksum32(bytes: Uint8Array): number {\n let hash = 0x811c9dc5;\n for (const byte of bytes) {\n hash ^= byte;\n hash = Math.imul(hash, 0x01000193) >>> 0;\n }\n return hash;\n}\n\nfunction compareCodeUnits(left: string, right: string): number {\n return left < right ? -1 : left > right ? 1 : 0;\n}\n\nfunction isWellFormedUnicode(value: string): boolean {\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (code >= 0xd800 && code <= 0xdbff) {\n const following = value.charCodeAt(index + 1);\n if (!(following >= 0xdc00 && following <= 0xdfff)) return false;\n index += 1;\n } else if (code >= 0xdc00 && code <= 0xdfff) {\n return false;\n }\n }\n return true;\n}\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction dataProperty(record: Record<string, unknown>, key: string): unknown {\n const descriptor = Object.getOwnPropertyDescriptor(record, key);\n if (!descriptor || !(\"value\" in descriptor)) {\n throw protocolError(\"invalid_frame\", `RPC ${key} must be a data property`);\n }\n return descriptor.value;\n}\n\nfunction unsignedByte(value: number, label: string): number {\n if (!Number.isInteger(value) || value < 0 || value > 0xff) {\n throw protocolError(\"invalid_number\", `${label} must be an unsigned byte`);\n }\n return value;\n}\n\nfunction unsignedShort(value: number, label: string): number {\n if (!Number.isInteger(value) || value < 0 || value > 0xffff) {\n throw protocolError(\"invalid_number\", `${label} must be an unsigned 16-bit integer`);\n }\n return value;\n}\n\nfunction unsignedInt(value: number, label: string): number {\n if (!Number.isInteger(value) || value < 0 || value > 0xffffffff) {\n throw protocolError(\"invalid_number\", `${label} must be an unsigned 32-bit integer`);\n }\n return value;\n}\n\nfunction positiveSafeInteger(value: number, label: string): number {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw protocolError(\"invalid_limit\", `${label} must be a positive safe integer`);\n }\n return value;\n}\n\nfunction nonNegativeSafeInteger(value: number, label: string): number {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw protocolError(\"invalid_number\", `${label} must be a non-negative safe integer`);\n }\n return value;\n}\n\nfunction checkedAdd(left: number, right: number, label: string): number {\n const result = left + right;\n if (!Number.isSafeInteger(result)) throw protocolError(\"size_overflow\", `${label} overflow`);\n return result;\n}\n\nfunction checkedMultiply(left: number, right: number, label: string): number {\n const result = left * right;\n if (!Number.isSafeInteger(result)) throw protocolError(\"size_overflow\", `${label} overflow`);\n return result;\n}\n\nfunction protocolError(\n code: string,\n message: string,\n cause?: unknown,\n): ArtifactWorkerProtocolError {\n return new ArtifactWorkerProtocolError(\n code,\n message,\n cause === undefined ? undefined : { cause },\n );\n}\n","import {\n EDITABLE_ARTIFACT_COMMAND_MAX_BYTES,\n EDITABLE_ARTIFACT_INTENT_MAX_BYTES,\n EDITABLE_ARTIFACT_PRODUCT_MAX_SNAPSHOT_BYTES,\n} from \"@opengeni/contracts/editable-artifacts\";\nimport { MAX_COMMITTED_TRANSACTION_BYTES } from \"@opengeni/contracts/editable-artifact-committed-transaction\";\nimport type {\n EditableArtifactBlockedPending,\n EditableArtifactCommittedTransaction,\n EditableArtifactModality,\n EditableArtifactPendingTransaction,\n EditableArtifactSnapshot,\n EditableArtifactWorkerKernel,\n} from \"../types\";\nimport {\n ArtifactWorkerBinaryReader,\n ArtifactWorkerBinaryWriter,\n ArtifactWorkerProtocolError,\n} from \"./rpc-protocol\";\n\nconst MAX_ID_BYTES = 256;\nconst MAX_VERSION_BYTES = 512;\nconst MAX_ERROR_BYTES = 8 * 1024;\nconst MAX_URL_BYTES = 8 * 1024;\nconst SHA256_PATTERN = /^sha256:[0-9a-f]{64}$/;\nconst HARD_MAX_SNAPSHOT_BYTES = EDITABLE_ARTIFACT_PRODUCT_MAX_SNAPSHOT_BYTES;\nconst HARD_MAX_COMMAND_BYTES = EDITABLE_ARTIFACT_COMMAND_MAX_BYTES;\nconst HARD_MAX_INTENT_BYTES = EDITABLE_ARTIFACT_INTENT_MAX_BYTES;\nconst HARD_MAX_COMMITTED_TRANSACTION_BYTES = MAX_COMMITTED_TRANSACTION_BYTES;\nconst HARD_MAX_QUERY_BYTES = 256;\nconst HARD_MAX_QUERY_RESPONSE_BYTES = 8 * 1024 * 1024;\nconst HARD_MAX_PENDING_TRANSACTIONS = 1_024;\n\nexport type ArtifactWorkerInitializeInput = {\n modality: EditableArtifactModality;\n kernelVersion: string;\n protocolVersion: number;\n modelSchemaVersion: number;\n commandVersion: number;\n wasmGlueUrl: string;\n wasmBinaryUrl: string;\n maximumSnapshotBytes: number;\n maximumCommandBytes: number;\n maximumIntentBytes: number;\n maximumCommittedTransactionBytes: number;\n maximumQueryBytes: number;\n maximumQueryResponseBytes: number;\n maximumPendingTransactions: number;\n};\n\nexport type ArtifactWorkerAuthorPendingInput = Parameters<\n EditableArtifactWorkerKernel[\"authorPending\"]\n>[0];\n\nexport type ArtifactWorkerErrorPayload = {\n code: string;\n message: string;\n retryable: boolean;\n};\n\nexport function encodeInitialize(input: ArtifactWorkerInitializeInput): Uint8Array {\n validateInitializeLimits(input);\n const writer = new ArtifactWorkerBinaryWriter();\n writer\n .u8(modalityTag(input.modality))\n .string(requireVersion(input.kernelVersion, \"kernelVersion\"), MAX_VERSION_BYTES)\n .u32(positiveSafeInteger(input.protocolVersion, \"protocolVersion\"))\n .u32(positiveSafeInteger(input.modelSchemaVersion, \"modelSchemaVersion\"))\n .u32(positiveSafeInteger(input.commandVersion, \"commandVersion\"))\n .string(requireUrl(input.wasmGlueUrl, \"wasmGlueUrl\"), MAX_URL_BYTES)\n .string(requireUrl(input.wasmBinaryUrl, \"wasmBinaryUrl\"), MAX_URL_BYTES)\n .safeUint(positiveSafeInteger(input.maximumSnapshotBytes, \"maximumSnapshotBytes\"))\n .safeUint(positiveSafeInteger(input.maximumCommandBytes, \"maximumCommandBytes\"))\n .safeUint(positiveSafeInteger(input.maximumIntentBytes, \"maximumIntentBytes\"))\n .safeUint(\n positiveSafeInteger(\n input.maximumCommittedTransactionBytes,\n \"maximumCommittedTransactionBytes\",\n ),\n )\n .safeUint(positiveSafeInteger(input.maximumQueryBytes, \"maximumQueryBytes\"))\n .safeUint(positiveSafeInteger(input.maximumQueryResponseBytes, \"maximumQueryResponseBytes\"))\n .safeUint(positiveSafeInteger(input.maximumPendingTransactions, \"maximumPendingTransactions\"));\n return writer.finish();\n}\n\nexport function decodeInitialize(bytes: Uint8Array): ArtifactWorkerInitializeInput {\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const value = {\n modality: decodeModality(reader.u8()),\n kernelVersion: requireVersion(reader.string(MAX_VERSION_BYTES), \"kernelVersion\"),\n protocolVersion: positiveSafeInteger(reader.u32(), \"protocolVersion\"),\n modelSchemaVersion: positiveSafeInteger(reader.u32(), \"modelSchemaVersion\"),\n commandVersion: positiveSafeInteger(reader.u32(), \"commandVersion\"),\n wasmGlueUrl: requireUrl(reader.string(MAX_URL_BYTES), \"wasmGlueUrl\"),\n wasmBinaryUrl: requireUrl(reader.string(MAX_URL_BYTES), \"wasmBinaryUrl\"),\n maximumSnapshotBytes: positiveSafeInteger(reader.safeUint(), \"maximumSnapshotBytes\"),\n maximumCommandBytes: positiveSafeInteger(reader.safeUint(), \"maximumCommandBytes\"),\n maximumIntentBytes: positiveSafeInteger(reader.safeUint(), \"maximumIntentBytes\"),\n maximumCommittedTransactionBytes: positiveSafeInteger(\n reader.safeUint(),\n \"maximumCommittedTransactionBytes\",\n ),\n maximumQueryBytes: positiveSafeInteger(reader.safeUint(), \"maximumQueryBytes\"),\n maximumQueryResponseBytes: positiveSafeInteger(reader.safeUint(), \"maximumQueryResponseBytes\"),\n maximumPendingTransactions: positiveSafeInteger(\n reader.safeUint(),\n \"maximumPendingTransactions\",\n ),\n };\n reader.done();\n validateInitializeLimits(value);\n return value;\n}\n\nexport function encodeSnapshotMetadata(snapshot: EditableArtifactSnapshot): Uint8Array {\n const writer = new ArtifactWorkerBinaryWriter();\n writer\n .u8(modalityTag(snapshot.modality))\n .string(requireIdentifier(snapshot.artifactId, \"snapshot.artifactId\"), MAX_ID_BYTES)\n .safeUint(nonNegativeSafeInteger(snapshot.sequence, \"snapshot.sequence\"))\n .string(requireSha256(snapshot.stateHash, \"snapshot.stateHash\"), 71)\n .string(requireSha256(snapshot.digest, \"snapshot.digest\"), 71)\n .string(requireVersion(snapshot.kernelVersion, \"snapshot.kernelVersion\"), MAX_VERSION_BYTES)\n .u32(positiveSafeInteger(snapshot.modelSchemaVersion, \"snapshot.modelSchemaVersion\"));\n if (snapshot.modality === \"spreadsheet\") {\n writer\n .frontier(snapshot.causalFrontier)\n .u32(\n positiveSafeInteger(snapshot.operationProtocolVersion, \"snapshot.operationProtocolVersion\"),\n )\n .u32(positiveSafeInteger(snapshot.snapshotVersion, \"snapshot.snapshotVersion\"));\n } else {\n writer.safeUint(nonNegativeSafeInteger(snapshot.nativeRevision, \"snapshot.nativeRevision\"));\n }\n return writer.finish();\n}\n\nexport function decodeSnapshotMetadata(\n bytes: Uint8Array,\n snapshotBytes: Uint8Array,\n): EditableArtifactSnapshot {\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const modality = decodeModality(reader.u8());\n const common = {\n artifactId: requireIdentifier(reader.string(MAX_ID_BYTES), \"snapshot.artifactId\"),\n sequence: nonNegativeSafeInteger(reader.safeUint(), \"snapshot.sequence\"),\n stateHash: requireSha256(reader.string(71), \"snapshot.stateHash\"),\n digest: requireSha256(reader.string(71), \"snapshot.digest\"),\n kernelVersion: requireVersion(reader.string(MAX_VERSION_BYTES), \"snapshot.kernelVersion\"),\n modelSchemaVersion: positiveSafeInteger(reader.u32(), \"snapshot.modelSchemaVersion\"),\n bytes: snapshotBytes,\n } as const;\n const value: EditableArtifactSnapshot =\n modality === \"spreadsheet\"\n ? {\n ...common,\n modality,\n causalFrontier: reader.frontier(),\n operationProtocolVersion: positiveSafeInteger(\n reader.u32(),\n \"snapshot.operationProtocolVersion\",\n ),\n snapshotVersion: positiveSafeInteger(reader.u32(), \"snapshot.snapshotVersion\"),\n }\n : {\n ...common,\n modality,\n nativeRevision: nonNegativeSafeInteger(reader.safeUint(), \"snapshot.nativeRevision\"),\n };\n reader.done();\n return Object.freeze(value);\n}\n\nexport function encodeCommittedMetadata(\n transaction: EditableArtifactCommittedTransaction,\n): Uint8Array {\n const writer = new ArtifactWorkerBinaryWriter();\n encodeCommittedFields(writer, transaction);\n return writer.finish();\n}\n\nexport function decodeCommittedMetadata(\n bytes: Uint8Array,\n committedTransactionBytes: Uint8Array,\n): EditableArtifactCommittedTransaction {\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const modality = decodeModality(reader.u8());\n const common = {\n artifactId: requireIdentifier(reader.string(MAX_ID_BYTES), \"transaction.artifactId\"),\n transactionId: requireIdentifier(reader.string(MAX_ID_BYTES), \"transaction.transactionId\"),\n requestHash: requireSha256(reader.string(71), \"transaction.requestHash\"),\n startSequence: positiveSafeInteger(reader.safeUint(), \"transaction.startSequence\"),\n endSequence: positiveSafeInteger(reader.safeUint(), \"transaction.endSequence\"),\n priorStateHash: requireSha256(reader.string(71), \"transaction.priorStateHash\"),\n stateHash: requireSha256(reader.string(71), \"transaction.stateHash\"),\n committedTransactionBytes,\n } as const;\n const value: EditableArtifactCommittedTransaction =\n modality === \"spreadsheet\"\n ? {\n ...common,\n modality,\n causalFrontier: reader.frontier(),\n operationProtocolVersion: positiveSafeInteger(\n reader.u32(),\n \"transaction.operationProtocolVersion\",\n ),\n }\n : {\n ...common,\n modality,\n priorNativeRevision: nonNegativeSafeInteger(\n reader.safeUint(),\n \"transaction.priorNativeRevision\",\n ),\n nativeRevision: nonNegativeSafeInteger(reader.safeUint(), \"transaction.nativeRevision\"),\n commitProtocolVersion: positiveSafeInteger(\n reader.u32(),\n \"transaction.commitProtocolVersion\",\n ),\n };\n reader.done();\n if (value.endSequence < value.startSequence) {\n throw wireError(\"invalid_sequence\", \"transaction endSequence precedes startSequence\");\n }\n return Object.freeze(value);\n}\n\nexport function encodePendingListMetadata(\n transactions: readonly EditableArtifactPendingTransaction[],\n): Uint8Array {\n const writer = new ArtifactWorkerBinaryWriter();\n if (!Array.isArray(transactions))\n throw wireError(\"invalid_pending\", \"pending transactions must be an array\");\n writer.u32(transactions.length);\n for (const transaction of transactions) encodePendingFields(writer, transaction);\n return writer.finish();\n}\n\nexport function decodePendingListMetadata(\n bytes: Uint8Array,\n segments: readonly Uint8Array[],\n maximumTransactions: number,\n): readonly EditableArtifactPendingTransaction[] {\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const count = reader.u32();\n if (count > maximumTransactions || count * 2 !== segments.length) {\n throw wireError(\"invalid_pending\", \"pending metadata and command segments do not match\");\n }\n const transactions: EditableArtifactPendingTransaction[] = [];\n for (let index = 0; index < count; index += 1) {\n transactions.push(decodePendingFields(reader, segments[index * 2]!, segments[index * 2 + 1]!));\n }\n reader.done();\n return Object.freeze(transactions);\n}\n\nexport function encodeReconcileMetadata(\n committed: EditableArtifactCommittedTransaction,\n pending: readonly EditableArtifactPendingTransaction[],\n): Uint8Array {\n const writer = new ArtifactWorkerBinaryWriter();\n encodeCommittedFields(writer, committed);\n writer.u32(pending.length);\n for (const transaction of pending) encodePendingFields(writer, transaction);\n return writer.finish();\n}\n\nexport function decodeReconcileMetadata(\n bytes: Uint8Array,\n segments: readonly Uint8Array[],\n maximumPendingTransactions: number,\n): {\n committed: EditableArtifactCommittedTransaction;\n pending: readonly EditableArtifactPendingTransaction[];\n} {\n if (segments.length < 1) throw wireError(\"invalid_segment\", \"reconcile requires operation bytes\");\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const committed = decodeCommittedFields(reader, segments[0]!);\n if (committed.endSequence < committed.startSequence) {\n throw wireError(\"invalid_sequence\", \"transaction endSequence precedes startSequence\");\n }\n const count = reader.u32();\n if (count > maximumPendingTransactions || segments.length !== count * 2 + 1) {\n throw wireError(\"invalid_pending\", \"reconcile pending metadata and segments do not match\");\n }\n const pending: EditableArtifactPendingTransaction[] = [];\n for (let index = 0; index < count; index += 1) {\n pending.push(decodePendingFields(reader, segments[index * 2 + 1]!, segments[index * 2 + 2]!));\n }\n reader.done();\n return { committed, pending: Object.freeze(pending) };\n}\n\nexport function encodeAuthorPendingMetadata(input: ArtifactWorkerAuthorPendingInput): Uint8Array {\n const writer = new ArtifactWorkerBinaryWriter();\n encodeAuthorPendingFields(writer, input);\n return writer.finish();\n}\n\nexport function decodeAuthorPendingMetadata(\n bytes: Uint8Array,\n commandBytes: Uint8Array,\n): ArtifactWorkerAuthorPendingInput {\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const value = decodeAuthorPendingFields(reader, commandBytes);\n reader.done();\n return value;\n}\n\nexport function encodeStateResponse(stateHash: string, digest?: string): Uint8Array {\n const writer = new ArtifactWorkerBinaryWriter(256);\n writer\n .string(requireSha256(stateHash, \"stateHash\"), 71)\n .optionalString(digest === undefined ? null : requireSha256(digest, \"digest\"), 71);\n return writer.finish();\n}\n\nexport function decodeStateResponse(bytes: Uint8Array): { stateHash: string; digest?: string } {\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const stateHash = requireSha256(reader.string(71), \"stateHash\");\n const digest = reader.optionalString(71);\n reader.done();\n return digest === null ? { stateHash } : { stateHash, digest: requireSha256(digest, \"digest\") };\n}\n\nexport function encodeProjectionResponse(\n blockedPending: readonly EditableArtifactBlockedPending[],\n stateHash?: string,\n): Uint8Array {\n if (!Array.isArray(blockedPending) || blockedPending.length > HARD_MAX_PENDING_TRANSACTIONS) {\n throw wireError(\"invalid_pending\", \"blocked pending result exceeds its item limit\");\n }\n const writer = new ArtifactWorkerBinaryWriter();\n writer.optionalString(stateHash === undefined ? null : requireSha256(stateHash, \"stateHash\"), 71);\n writer.u32(blockedPending.length);\n const seen = new Set<string>();\n for (const blocked of blockedPending) {\n const clientTransactionId = requireIdentifier(\n blocked.clientTransactionId,\n \"blocked.clientTransactionId\",\n );\n if (seen.has(clientTransactionId))\n throw wireError(\"noncanonical\", \"blocked transaction is duplicated\");\n seen.add(clientTransactionId);\n writer.string(clientTransactionId, MAX_ID_BYTES).string(requireErrorCode(blocked.code), 128);\n }\n return writer.finish();\n}\n\nexport function decodeProjectionResponse(bytes: Uint8Array): {\n stateHash?: string;\n blockedPending: readonly EditableArtifactBlockedPending[];\n} {\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const stateHash = reader.optionalString(71);\n const count = reader.u32();\n if (count > HARD_MAX_PENDING_TRANSACTIONS) {\n throw wireError(\"invalid_pending\", \"blocked pending result exceeds its item limit\");\n }\n const blockedPending: EditableArtifactBlockedPending[] = [];\n const seen = new Set<string>();\n for (let index = 0; index < count; index += 1) {\n const clientTransactionId = requireIdentifier(\n reader.string(MAX_ID_BYTES),\n \"blocked.clientTransactionId\",\n );\n if (seen.has(clientTransactionId))\n throw wireError(\"noncanonical\", \"blocked transaction is duplicated\");\n seen.add(clientTransactionId);\n blockedPending.push(\n Object.freeze({ clientTransactionId, code: requireErrorCode(reader.string(128)) }),\n );\n }\n reader.done();\n return {\n ...(stateHash === null ? {} : { stateHash: requireSha256(stateHash, \"stateHash\") }),\n blockedPending: Object.freeze(blockedPending),\n };\n}\n\nexport function encodeErrorPayload(error: ArtifactWorkerErrorPayload): Uint8Array {\n const writer = new ArtifactWorkerBinaryWriter(MAX_ERROR_BYTES * 2 + 32);\n writer\n .string(requireErrorCode(error.code), 128)\n .string(requireBoundedString(error.message, \"error.message\", MAX_ERROR_BYTES), MAX_ERROR_BYTES)\n .u8(error.retryable ? 1 : 0);\n return writer.finish();\n}\n\nexport function decodeErrorPayload(bytes: Uint8Array): ArtifactWorkerErrorPayload {\n const reader = new ArtifactWorkerBinaryReader(bytes);\n const value = {\n code: requireErrorCode(reader.string(128)),\n message: requireBoundedString(reader.string(MAX_ERROR_BYTES), \"error.message\", MAX_ERROR_BYTES),\n retryable: decodeBoolean(reader.u8(), \"error.retryable\"),\n };\n reader.done();\n return value;\n}\n\nexport function sha256Hex(bytes: Uint8Array): Promise<string> {\n if (!(bytes instanceof Uint8Array))\n throw wireError(\"invalid_bytes\", \"SHA-256 input must be bytes\");\n const owned = new Uint8Array(bytes);\n return globalThis.crypto.subtle\n .digest(\"SHA-256\", owned)\n .then(\n (digest) =>\n `sha256:${[...new Uint8Array(digest)]\n .map((value) => value.toString(16).padStart(2, \"0\"))\n .join(\"\")}`,\n );\n}\n\nexport function requireMatchingHash(actual: string, expected: string, label: string): void {\n requireSha256(actual, `${label}.actual`);\n requireSha256(expected, `${label}.expected`);\n if (actual !== expected)\n throw wireError(\"kernel_diverged\", `${label} hash does not match authority`);\n}\n\nfunction encodeCommittedFields(\n writer: ArtifactWorkerBinaryWriter,\n transaction: EditableArtifactCommittedTransaction,\n): void {\n writer\n .u8(modalityTag(transaction.modality))\n .string(requireIdentifier(transaction.artifactId, \"transaction.artifactId\"), MAX_ID_BYTES)\n .string(requireIdentifier(transaction.transactionId, \"transaction.transactionId\"), MAX_ID_BYTES)\n .string(requireSha256(transaction.requestHash, \"transaction.requestHash\"), 71)\n .safeUint(positiveSafeInteger(transaction.startSequence, \"transaction.startSequence\"))\n .safeUint(positiveSafeInteger(transaction.endSequence, \"transaction.endSequence\"))\n .string(requireSha256(transaction.priorStateHash, \"transaction.priorStateHash\"), 71)\n .string(requireSha256(transaction.stateHash, \"transaction.stateHash\"), 71);\n if (transaction.modality === \"spreadsheet\") {\n writer\n .frontier(transaction.causalFrontier)\n .u32(\n positiveSafeInteger(\n transaction.operationProtocolVersion,\n \"transaction.operationProtocolVersion\",\n ),\n );\n } else {\n writer\n .safeUint(\n nonNegativeSafeInteger(transaction.priorNativeRevision, \"transaction.priorNativeRevision\"),\n )\n .safeUint(nonNegativeSafeInteger(transaction.nativeRevision, \"transaction.nativeRevision\"))\n .u32(\n positiveSafeInteger(transaction.commitProtocolVersion, \"transaction.commitProtocolVersion\"),\n );\n }\n}\n\nfunction decodeCommittedFields(\n reader: ArtifactWorkerBinaryReader,\n committedTransactionBytes: Uint8Array,\n): EditableArtifactCommittedTransaction {\n const modality = decodeModality(reader.u8());\n const common = {\n artifactId: requireIdentifier(reader.string(MAX_ID_BYTES), \"transaction.artifactId\"),\n transactionId: requireIdentifier(reader.string(MAX_ID_BYTES), \"transaction.transactionId\"),\n requestHash: requireSha256(reader.string(71), \"transaction.requestHash\"),\n startSequence: positiveSafeInteger(reader.safeUint(), \"transaction.startSequence\"),\n endSequence: positiveSafeInteger(reader.safeUint(), \"transaction.endSequence\"),\n priorStateHash: requireSha256(reader.string(71), \"transaction.priorStateHash\"),\n stateHash: requireSha256(reader.string(71), \"transaction.stateHash\"),\n committedTransactionBytes,\n } as const;\n return Object.freeze(\n modality === \"spreadsheet\"\n ? {\n ...common,\n modality,\n causalFrontier: reader.frontier(),\n operationProtocolVersion: positiveSafeInteger(\n reader.u32(),\n \"transaction.operationProtocolVersion\",\n ),\n }\n : {\n ...common,\n modality,\n priorNativeRevision: nonNegativeSafeInteger(\n reader.safeUint(),\n \"transaction.priorNativeRevision\",\n ),\n nativeRevision: nonNegativeSafeInteger(reader.safeUint(), \"transaction.nativeRevision\"),\n commitProtocolVersion: positiveSafeInteger(\n reader.u32(),\n \"transaction.commitProtocolVersion\",\n ),\n },\n );\n}\n\nfunction modalityTag(modality: EditableArtifactModality): number {\n switch (modality) {\n case \"document\":\n return 1;\n case \"spreadsheet\":\n return 2;\n case \"presentation\":\n return 3;\n }\n}\n\nfunction decodeModality(tag: number): EditableArtifactModality {\n if (tag === 1) return \"document\";\n if (tag === 2) return \"spreadsheet\";\n if (tag === 3) return \"presentation\";\n throw wireError(\"invalid_modality\", \"artifact modality tag is invalid\");\n}\n\nfunction encodePendingFields(\n writer: ArtifactWorkerBinaryWriter,\n transaction: EditableArtifactPendingTransaction,\n): void {\n writer\n .u8(modalityTag(transaction.modality))\n .string(requireIdentifier(transaction.artifactId, \"pending.artifactId\"), MAX_ID_BYTES)\n .string(\n requireIdentifier(transaction.clientTransactionId, \"pending.clientTransactionId\"),\n MAX_ID_BYTES,\n )\n .string(requireSha256(transaction.requestHash, \"pending.requestHash\"), 71)\n .u32(positiveSafeInteger(transaction.protocolVersion, \"pending.protocolVersion\"))\n .u32(positiveSafeInteger(transaction.modelSchemaVersion, \"pending.modelSchemaVersion\"))\n .u32(positiveSafeInteger(transaction.commandVersion, \"pending.commandVersion\"))\n .string(requireReplicaId(transaction.replicaId, \"pending.replicaId\"), 16)\n .safeUint(positiveSafeInteger(transaction.replicaCounter, \"pending.replicaCounter\"))\n .optionalString(\n transaction.previousLocalTransactionId === null\n ? null\n : requireIdentifier(\n transaction.previousLocalTransactionId,\n \"pending.previousLocalTransactionId\",\n ),\n MAX_ID_BYTES,\n )\n .safeUint(\n nonNegativeSafeInteger(transaction.observedHeadSequence, \"pending.observedHeadSequence\"),\n );\n if (transaction.modality === \"spreadsheet\") {\n writer.frontier(transaction.causalBase).u32(transaction.selectiveUndoTargets.length);\n encodeSortedIdentifiers(\n writer,\n transaction.selectiveUndoTargets,\n \"pending.selectiveUndoTargets\",\n );\n } else {\n writer.safeUint(\n nonNegativeSafeInteger(transaction.observedNativeRevision, \"pending.observedNativeRevision\"),\n );\n }\n writer.safeUint(nonNegativeSafeInteger(transaction.createdAt, \"pending.createdAt\"));\n}\n\nfunction decodePendingFields(\n reader: ArtifactWorkerBinaryReader,\n commandBytes: Uint8Array,\n intentBytes: Uint8Array,\n): EditableArtifactPendingTransaction {\n const modality = decodeModality(reader.u8());\n const artifactId = requireIdentifier(reader.string(MAX_ID_BYTES), \"pending.artifactId\");\n const clientTransactionId = requireIdentifier(\n reader.string(MAX_ID_BYTES),\n \"pending.clientTransactionId\",\n );\n const requestHash = requireSha256(reader.string(71), \"pending.requestHash\");\n const protocolVersion = positiveSafeInteger(reader.u32(), \"pending.protocolVersion\");\n const modelSchemaVersion = positiveSafeInteger(reader.u32(), \"pending.modelSchemaVersion\");\n const commandVersion = positiveSafeInteger(reader.u32(), \"pending.commandVersion\");\n const replicaId = requireReplicaId(reader.string(16), \"pending.replicaId\");\n const replicaCounter = positiveSafeInteger(reader.safeUint(), \"pending.replicaCounter\");\n const previousLocalTransactionId = optionalIdentifier(\n reader.optionalString(MAX_ID_BYTES),\n \"pending.previousLocalTransactionId\",\n );\n const observedHeadSequence = nonNegativeSafeInteger(\n reader.safeUint(),\n \"pending.observedHeadSequence\",\n );\n const common = {\n artifactId,\n clientTransactionId,\n requestHash,\n protocolVersion,\n modelSchemaVersion,\n commandVersion,\n replicaId,\n replicaCounter,\n previousLocalTransactionId,\n observedHeadSequence,\n commandBytes,\n intentBytes,\n } as const;\n if (modality === \"spreadsheet\") {\n const causalBase = reader.frontier();\n const selectiveUndoTargets = decodeSortedIdentifiers(\n reader,\n reader.u32(),\n \"pending.selectiveUndoTargets\",\n );\n return Object.freeze({\n ...common,\n modality,\n causalBase,\n selectiveUndoTargets,\n createdAt: nonNegativeSafeInteger(reader.safeUint(), \"pending.createdAt\"),\n });\n }\n const observedNativeRevision = nonNegativeSafeInteger(\n reader.safeUint(),\n \"pending.observedNativeRevision\",\n );\n return Object.freeze({\n ...common,\n modality,\n observedNativeRevision,\n createdAt: nonNegativeSafeInteger(reader.safeUint(), \"pending.createdAt\"),\n });\n}\n\nfunction encodeAuthorPendingFields(\n writer: ArtifactWorkerBinaryWriter,\n input: ArtifactWorkerAuthorPendingInput,\n): void {\n writer\n .u8(modalityTag(input.modality))\n .u32(positiveSafeInteger(input.protocolVersion, \"author.protocolVersion\"))\n .string(requireVersion(input.kernelVersion, \"author.kernelVersion\"), MAX_VERSION_BYTES)\n .u32(positiveSafeInteger(input.modelSchemaVersion, \"author.modelSchemaVersion\"))\n .u32(positiveSafeInteger(input.commandVersion, \"author.commandVersion\"))\n .string(requireIdentifier(input.artifactId, \"author.artifactId\"), MAX_ID_BYTES)\n .string(\n requireIdentifier(input.clientTransactionId, \"author.clientTransactionId\"),\n MAX_ID_BYTES,\n )\n .string(requireReplicaId(input.replicaId, \"author.replicaId\"), 16)\n .safeUint(positiveSafeInteger(input.replicaCounter, \"author.replicaCounter\"))\n .optionalString(\n input.previousLocalTransactionId === null\n ? null\n : requireIdentifier(input.previousLocalTransactionId, \"author.previousLocalTransactionId\"),\n MAX_ID_BYTES,\n )\n .safeUint(nonNegativeSafeInteger(input.observedHeadSequence, \"author.observedHeadSequence\"));\n if (input.modality === \"spreadsheet\") {\n const causalBase = input.causalBase ?? [];\n const selectiveUndoTargets = input.selectiveUndoTargets ?? [];\n writer.frontier(causalBase).u32(selectiveUndoTargets.length);\n encodeSortedIdentifiers(writer, selectiveUndoTargets, \"author.selectiveUndoTargets\");\n }\n writer.safeUint(input.commandBytes.byteLength);\n writer.safeUint(nonNegativeSafeInteger(input.createdAt, \"author.createdAt\"));\n}\n\nfunction decodeAuthorPendingFields(\n reader: ArtifactWorkerBinaryReader,\n commandBytes: Uint8Array,\n): ArtifactWorkerAuthorPendingInput {\n const modality = decodeModality(reader.u8());\n const value: ArtifactWorkerAuthorPendingInput = {\n modality,\n protocolVersion: positiveSafeInteger(reader.u32(), \"author.protocolVersion\"),\n kernelVersion: requireVersion(reader.string(MAX_VERSION_BYTES), \"author.kernelVersion\"),\n modelSchemaVersion: positiveSafeInteger(reader.u32(), \"author.modelSchemaVersion\"),\n commandVersion: positiveSafeInteger(reader.u32(), \"author.commandVersion\"),\n artifactId: requireIdentifier(reader.string(MAX_ID_BYTES), \"author.artifactId\"),\n clientTransactionId: requireIdentifier(\n reader.string(MAX_ID_BYTES),\n \"author.clientTransactionId\",\n ),\n replicaId: requireReplicaId(reader.string(16), \"author.replicaId\"),\n replicaCounter: positiveSafeInteger(reader.safeUint(), \"author.replicaCounter\"),\n previousLocalTransactionId: optionalIdentifier(\n reader.optionalString(MAX_ID_BYTES),\n \"author.previousLocalTransactionId\",\n ),\n observedHeadSequence: nonNegativeSafeInteger(reader.safeUint(), \"author.observedHeadSequence\"),\n ...(modality === \"spreadsheet\"\n ? {\n causalBase: reader.frontier(),\n selectiveUndoTargets: decodeSortedIdentifiers(\n reader,\n reader.u32(),\n \"author.selectiveUndoTargets\",\n ),\n }\n : {}),\n commandBytes,\n createdAt: 0,\n };\n const declaredCommandBytes = reader.safeUint();\n if (declaredCommandBytes !== commandBytes.byteLength) {\n throw wireError(\"invalid_segment\", \"author command length does not match its segment\");\n }\n value.createdAt = nonNegativeSafeInteger(reader.safeUint(), \"author.createdAt\");\n return Object.freeze(value);\n}\n\nfunction requireUrl(value: string, label: string): string {\n const bounded = requireBoundedString(value, label, MAX_URL_BYTES);\n let url: URL;\n try {\n url = new URL(bounded);\n } catch (error) {\n throw wireError(\"invalid_url\", `${label} must be an absolute URL`, error);\n }\n if (!new Set([\"https:\", \"http:\", \"file:\"]).has(url.protocol)) {\n throw wireError(\"invalid_url\", `${label} uses an unsupported URL scheme`);\n }\n if (url.username || url.password || url.hash) {\n throw wireError(\"invalid_url\", `${label} must not contain credentials or a fragment`);\n }\n url.username = \"\";\n url.password = \"\";\n if (url.href !== bounded) {\n throw wireError(\"noncanonical\", `${label} must be a canonical URL without credentials`);\n }\n return bounded;\n}\n\nfunction requireIdentifier(value: string, label: string): string {\n const bounded = requireBoundedString(value, label, MAX_ID_BYTES);\n if (/\\p{Cc}/u.test(bounded))\n throw wireError(\"invalid_identifier\", `${label} contains control characters`);\n return bounded;\n}\n\nfunction requireVersion(value: string, label: string): string {\n const bounded = requireBoundedString(value, label, MAX_VERSION_BYTES);\n if (/\\p{Cc}/u.test(bounded))\n throw wireError(\"invalid_identifier\", `${label} contains control characters`);\n return bounded;\n}\n\nfunction optionalIdentifier(value: string | null, label: string): string | null {\n return value === null ? null : requireIdentifier(value, label);\n}\n\nfunction requireReplicaId(value: string, label: string): string {\n if (!/^(?!0{16}$)[0-9a-f]{16}$/.test(value)) {\n throw wireError(\n \"invalid_identifier\",\n `${label} must be 16 lowercase nonzero hexadecimal digits`,\n );\n }\n return value;\n}\n\nfunction requireSha256(value: string, label: string): string {\n if (!SHA256_PATTERN.test(value))\n throw wireError(\"invalid_hash\", `${label} must be 64 lowercase hex characters`);\n return value;\n}\n\nfunction requireErrorCode(value: string): string {\n if (!/^[a-z][a-z0-9_]{0,127}$/.test(value))\n throw wireError(\"invalid_error\", \"invalid worker error code\");\n return value;\n}\n\nfunction requireBoundedString(value: string, label: string, maximumBytes: number): string {\n if (typeof value !== \"string\" || value.length === 0)\n throw wireError(\"invalid_string\", `${label} is empty`);\n if (new TextEncoder().encode(value).byteLength > maximumBytes) {\n throw wireError(\"string_too_large\", `${label} exceeds its byte limit`);\n }\n return value;\n}\n\nfunction positiveSafeInteger(value: number, label: string): number {\n if (!Number.isSafeInteger(value) || value <= 0)\n throw wireError(\"invalid_number\", `${label} must be positive`);\n return value;\n}\n\nfunction nonNegativeSafeInteger(value: number, label: string): number {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw wireError(\"invalid_number\", `${label} must be a non-negative safe integer`);\n }\n return value;\n}\n\nfunction decodeBoolean(value: number, label: string): boolean {\n if (value === 0) return false;\n if (value === 1) return true;\n throw wireError(\"noncanonical\", `${label} has an invalid boolean tag`);\n}\n\nfunction encodeSortedIdentifiers(\n writer: ArtifactWorkerBinaryWriter,\n values: readonly string[],\n label: string,\n): void {\n if (!Array.isArray(values) || values.length > 10_000) {\n throw wireError(\"invalid_identifiers\", `${label} exceeds its item limit`);\n }\n let previous = \"\";\n for (let index = 0; index < values.length; index += 1) {\n const value = requireIdentifier(values[index]!, `${label}[${index}]`);\n if (index > 0 && previous >= value) {\n throw wireError(\"noncanonical\", `${label} must be unique and code-unit sorted`);\n }\n writer.string(value, MAX_ID_BYTES);\n previous = value;\n }\n}\n\nfunction decodeSortedIdentifiers(\n reader: ArtifactWorkerBinaryReader,\n count: number,\n label: string,\n): readonly string[] {\n if (count > 10_000) throw wireError(\"invalid_identifiers\", `${label} exceeds its item limit`);\n const values: string[] = [];\n let previous = \"\";\n for (let index = 0; index < count; index += 1) {\n const value = requireIdentifier(reader.string(MAX_ID_BYTES), `${label}[${index}]`);\n if (index > 0 && previous >= value) {\n throw wireError(\"noncanonical\", `${label} must be unique and code-unit sorted`);\n }\n values.push(value);\n previous = value;\n }\n return Object.freeze(values);\n}\n\nfunction wireError(code: string, message: string, cause?: unknown): ArtifactWorkerProtocolError {\n return new ArtifactWorkerProtocolError(\n code,\n message,\n cause === undefined ? undefined : { cause },\n );\n}\n\nfunction validateInitializeLimits(input: ArtifactWorkerInitializeInput): void {\n requireVersion(input.kernelVersion, \"kernelVersion\");\n for (const [value, label] of [\n [input.protocolVersion, \"protocolVersion\"],\n [input.modelSchemaVersion, \"modelSchemaVersion\"],\n [input.commandVersion, \"commandVersion\"],\n ] as const) {\n positiveSafeInteger(value, label);\n if (value > 65_535) throw wireError(\"invalid_version\", `${label} exceeds uint16`);\n }\n const limits = [\n [input.maximumSnapshotBytes, HARD_MAX_SNAPSHOT_BYTES, \"maximumSnapshotBytes\"],\n [input.maximumCommandBytes, HARD_MAX_COMMAND_BYTES, \"maximumCommandBytes\"],\n [input.maximumIntentBytes, HARD_MAX_INTENT_BYTES, \"maximumIntentBytes\"],\n [\n input.maximumCommittedTransactionBytes,\n HARD_MAX_COMMITTED_TRANSACTION_BYTES,\n \"maximumCommittedTransactionBytes\",\n ],\n [input.maximumQueryBytes, HARD_MAX_QUERY_BYTES, \"maximumQueryBytes\"],\n [input.maximumQueryResponseBytes, HARD_MAX_QUERY_RESPONSE_BYTES, \"maximumQueryResponseBytes\"],\n [input.maximumPendingTransactions, HARD_MAX_PENDING_TRANSACTIONS, \"maximumPendingTransactions\"],\n ] as const;\n for (const [value, maximum, label] of limits) {\n positiveSafeInteger(value, label);\n if (value > maximum)\n throw wireError(\"invalid_limit\", `${label} exceeds the hard safety ceiling`);\n }\n}\n"],"mappings":"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","names":["positiveSafeInteger","nonNegativeSafeInteger"]}