@opengeni/contracts 0.39.0 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/atlassian.d.ts +278 -0
  2. package/dist/atlassian.js +55 -0
  3. package/dist/atlassian.js.map +1 -0
  4. package/dist/chunk-52SGB2QO.js +688 -0
  5. package/dist/chunk-52SGB2QO.js.map +1 -0
  6. package/dist/{chunk-7JZMI22I.js → chunk-5UDNP7AO.js} +34 -2
  7. package/dist/chunk-5UDNP7AO.js.map +1 -0
  8. package/dist/chunk-BVGIYW7D.js +11 -0
  9. package/dist/chunk-BVGIYW7D.js.map +1 -0
  10. package/dist/chunk-CADSX6UN.js +1145 -0
  11. package/dist/chunk-CADSX6UN.js.map +1 -0
  12. package/dist/chunk-D2HKF2EF.js +1460 -0
  13. package/dist/chunk-D2HKF2EF.js.map +1 -0
  14. package/dist/chunk-FJBG5E4O.js +194 -0
  15. package/dist/chunk-FJBG5E4O.js.map +1 -0
  16. package/dist/chunk-H5BVCZKF.js +382 -0
  17. package/dist/chunk-H5BVCZKF.js.map +1 -0
  18. package/dist/chunk-LSB7GRLG.js +779 -0
  19. package/dist/chunk-LSB7GRLG.js.map +1 -0
  20. package/dist/chunk-MYBZRDTY.js +340 -0
  21. package/dist/chunk-MYBZRDTY.js.map +1 -0
  22. package/dist/chunk-RIY7GYQS.js +1204 -0
  23. package/dist/chunk-RIY7GYQS.js.map +1 -0
  24. package/dist/chunk-TZ6YEYN4.js +386 -0
  25. package/dist/chunk-TZ6YEYN4.js.map +1 -0
  26. package/dist/chunk-VA22KRHS.js +15177 -0
  27. package/dist/chunk-VA22KRHS.js.map +1 -0
  28. package/dist/chunk-Y3MLSLB4.js +392 -0
  29. package/dist/chunk-Y3MLSLB4.js.map +1 -0
  30. package/dist/chunk-YRKRZ6OF.js +134 -0
  31. package/dist/chunk-YRKRZ6OF.js.map +1 -0
  32. package/dist/company-profile.d.ts +629 -0
  33. package/dist/document-artifact-commands.d.ts +282 -0
  34. package/dist/document-artifact-commands.js +54 -0
  35. package/dist/document-artifact-commands.js.map +1 -0
  36. package/dist/document-artifact-query.d.ts +2 -0
  37. package/dist/document-artifact-query.js +54 -0
  38. package/dist/document-artifact-query.js.map +1 -0
  39. package/dist/editable-artifact-binary.d.ts +56 -0
  40. package/dist/editable-artifact-causal-frontier.d.ts +12 -0
  41. package/dist/editable-artifact-causal-frontier.js +18 -0
  42. package/dist/editable-artifact-causal-frontier.js.map +1 -0
  43. package/dist/editable-artifact-codec-registry.d.ts +48 -0
  44. package/dist/editable-artifact-codec-registry.js +20 -0
  45. package/dist/editable-artifact-codec-registry.js.map +1 -0
  46. package/dist/editable-artifact-committed-transaction.d.ts +35 -0
  47. package/dist/editable-artifact-committed-transaction.js +19 -0
  48. package/dist/editable-artifact-committed-transaction.js.map +1 -0
  49. package/dist/editable-artifact-live.d.ts +276 -0
  50. package/dist/editable-artifact-live.js +907 -0
  51. package/dist/editable-artifact-live.js.map +1 -0
  52. package/dist/editable-artifact-serialized-commit.d.ts +53 -0
  53. package/dist/editable-artifact-serialized-commit.js +26 -0
  54. package/dist/editable-artifact-serialized-commit.js.map +1 -0
  55. package/dist/editable-artifact-versions.d.ts +6 -0
  56. package/dist/editable-artifact-versions.js +11 -0
  57. package/dist/editable-artifact-versions.js.map +1 -0
  58. package/dist/editable-artifacts.d.ts +46 -0
  59. package/dist/editable-artifacts.js +236 -0
  60. package/dist/editable-artifacts.js.map +1 -0
  61. package/dist/event-preview.d.ts +7 -7
  62. package/dist/google-drive.d.ts +114 -2
  63. package/dist/google-drive.js +70 -14
  64. package/dist/google-drive.js.map +1 -1
  65. package/dist/image-generation.d.ts +70 -0
  66. package/dist/index.d.ts +5180 -329
  67. package/dist/index.js +1173 -40
  68. package/dist/interaction.d.ts +6895 -0
  69. package/dist/mcp-receipts.d.ts +96 -0
  70. package/dist/memory-slack-delivery.d.ts +397 -0
  71. package/dist/presentation-artifact-commands.d.ts +349 -0
  72. package/dist/presentation-artifact-commands.js +66 -0
  73. package/dist/presentation-artifact-commands.js.map +1 -0
  74. package/dist/presentation-artifact-query.d.ts +2 -0
  75. package/dist/presentation-artifact-query.js +66 -0
  76. package/dist/presentation-artifact-query.js.map +1 -0
  77. package/dist/retained-output.d.ts +83 -6
  78. package/dist/sandbox-snapshots.d.ts +9 -0
  79. package/dist/scoped-knowledge.d.ts +14 -13
  80. package/dist/slack-bot-scopes.d.ts +4 -0
  81. package/dist/slack-bot-scopes.js +3 -1
  82. package/dist/spreadsheet-artifact-commands.d.ts +101 -0
  83. package/dist/spreadsheet-artifact-commands.js +27 -0
  84. package/dist/spreadsheet-artifact-commands.js.map +1 -0
  85. package/dist/spreadsheet-artifact-date.d.ts +4 -0
  86. package/dist/spreadsheet-artifact-query.d.ts +120 -0
  87. package/dist/spreadsheet-artifact-query.js +48 -0
  88. package/dist/spreadsheet-artifact-query.js.map +1 -0
  89. package/dist/tool-catalog.d.ts +576 -0
  90. package/dist/video-generation.d.ts +532 -0
  91. package/dist/video-generation.js +51 -0
  92. package/dist/video-generation.js.map +1 -0
  93. package/dist/workspace-learning-policy.d.ts +208 -0
  94. package/package.json +61 -1
  95. package/src/atlassian.ts +160 -0
  96. package/src/company-profile.ts +306 -0
  97. package/src/document-artifact-commands.ts +1709 -0
  98. package/src/document-artifact-query.ts +2 -0
  99. package/src/editable-artifact-binary.ts +396 -0
  100. package/src/editable-artifact-causal-frontier.ts +154 -0
  101. package/src/editable-artifact-codec-registry.ts +261 -0
  102. package/src/editable-artifact-committed-transaction.ts +478 -0
  103. package/src/editable-artifact-live.ts +1379 -0
  104. package/src/editable-artifact-serialized-commit.ts +494 -0
  105. package/src/editable-artifact-versions.ts +8 -0
  106. package/src/editable-artifacts.ts +473 -0
  107. package/src/event-preview.ts +6 -6
  108. package/src/google-drive.ts +68 -15
  109. package/src/image-generation.ts +106 -0
  110. package/src/index.ts +2535 -282
  111. package/src/interaction.ts +2292 -0
  112. package/src/mcp-receipts.ts +281 -0
  113. package/src/memory-slack-delivery.ts +183 -0
  114. package/src/presentation-artifact-commands.ts +2035 -0
  115. package/src/presentation-artifact-query.ts +2 -0
  116. package/src/retained-output.ts +248 -8
  117. package/src/sandbox-snapshots.ts +28 -1
  118. package/src/scoped-knowledge.ts +18 -4
  119. package/src/slack-bot-scopes.ts +34 -1
  120. package/src/spreadsheet-artifact-commands.ts +999 -0
  121. package/src/spreadsheet-artifact-date.ts +21 -0
  122. package/src/spreadsheet-artifact-query.ts +1411 -0
  123. package/src/tool-catalog.ts +334 -0
  124. package/src/video-generation.ts +394 -0
  125. package/src/workspace-learning-policy.ts +233 -0
  126. package/dist/chunk-7JZMI22I.js.map +0 -1
  127. package/dist/chunk-PCTCJEAF.js +0 -10799
  128. package/dist/chunk-PCTCJEAF.js.map +0 -1
  129. package/dist/secret-redaction.d.ts +0 -40
  130. package/src/secret-redaction.ts +0 -364
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/editable-artifact-live.ts"],"sourcesContent":["import {\n EDITABLE_ARTIFACT_INTENT_MAX_BYTES,\n hashEditableArtifactMutationIntentBytes,\n type EditableArtifactCausalEntry,\n} from \"./editable-artifacts\";\n\nconst MAGIC = new TextEncoder().encode(\"OGALV001\");\nconst HEADER_BYTES = 20;\nconst MAX_METADATA_BYTES = 64 * 1024;\nconst MAX_TOKEN_BYTES = 4_096;\nconst MAX_IDENTIFIER_BYTES = 512;\nconst MAX_CAUSAL_ACTORS = 1_024;\nconst textEncoder = new TextEncoder();\nconst strictDecoder = new TextDecoder(\"utf-8\", { fatal: true });\n\nconst CLIENT_OPEN = 1;\nconst CLIENT_APPLIED = 2;\nconst CLIENT_MUTATION = 3;\n\nconst SERVER_OPEN = 64;\nconst SERVER_SNAPSHOT = 65;\nconst SERVER_TRANSACTION = 66;\nconst SERVER_BARRIER = 67;\nconst SERVER_WATERMARK = 68;\nconst SERVER_RESYNC_REQUIRED = 69;\nconst SERVER_APPLIED = 70;\nconst SERVER_AUTHORIZATION_CHANGED = 71;\nconst SERVER_MUTATION_ACCEPTED = 72;\nconst SERVER_MUTATION_REJECTED = 73;\nconst RESYNC_REASONS = new Set([\n \"retention_gap\",\n \"durable_gap\",\n \"invalid_ack\",\n \"slow_client\",\n \"oversized_frame\",\n]);\nconst MUTATION_REJECTION_CODES = new Set([\n \"invalid_request\",\n \"forbidden\",\n \"conflict\",\n \"unsupported\",\n \"unavailable\",\n]);\n\nexport const EDITABLE_ARTIFACT_LIVE_WIRE_VERSION = 1;\n\nexport type EditableArtifactId = string;\nexport type EditableArtifactRequestHash = string;\nexport type EditableArtifactStateHash = string;\nexport type EditableArtifactContentHash = string;\nexport type EditableArtifactTransactionId = string;\nexport type EditableArtifactClientTransactionId = string;\nexport type EditableArtifactCausalFrontier = readonly EditableArtifactCausalEntry[];\nexport type EditableArtifactLiveModality = \"document\" | \"spreadsheet\" | \"presentation\";\n\nexport type EditableArtifactLiveErrorCode =\n | \"invalid_ticket\"\n | \"ticket_expired\"\n | \"ticket_replayed\"\n | \"protocol_mismatch\"\n | \"permission_changed\"\n | \"invalid_frame\"\n | \"oversized_frame\"\n | \"stale_epoch\"\n | \"invalid_ack\"\n | \"durable_gap\"\n | \"retention_gap\"\n | \"slow_client\"\n | \"closed\";\n\n/** Shared transport error: core and SDK must classify the same frame identically. */\nexport class EditableArtifactLiveError extends Error {\n constructor(\n readonly code: EditableArtifactLiveErrorCode,\n message: string,\n readonly options: Readonly<{\n retryable?: boolean;\n requiresSnapshot?: boolean;\n cause?: unknown;\n }> = {},\n ) {\n super(message, options.cause === undefined ? undefined : { cause: options.cause });\n this.name = \"EditableArtifactLiveError\";\n }\n\n get retryable(): boolean {\n return this.options.retryable ?? false;\n }\n\n get requiresSnapshot(): boolean {\n return this.options.requiresSnapshot ?? false;\n }\n}\n\ntype EditableArtifactLiveResumeCommon = Readonly<{\n localCursor: number | null;\n localStateHash: EditableArtifactStateHash | null;\n requireSnapshot: boolean;\n}>;\n\nexport type EditableArtifactLiveResume =\n | (EditableArtifactLiveResumeCommon &\n Readonly<{\n /** Omitted on OGALV001 for byte-compatible spreadsheet sessions. */\n modality?: \"spreadsheet\";\n localCausalFrontier: EditableArtifactCausalFrontier;\n }>)\n | (EditableArtifactLiveResumeCommon &\n Readonly<{\n modality: \"document\" | \"presentation\";\n localNativeRevision: number | null;\n }>);\n\nexport type EditableArtifactLiveTicket = Readonly<{\n artifactId: EditableArtifactId;\n modality: EditableArtifactLiveModality;\n replicaId: string;\n token: string;\n expiresAt: string;\n protocolVersion: number;\n}>;\n\ntype EditableArtifactLiveSnapshotCommon = Readonly<{\n artifactId: EditableArtifactId;\n sequence: number;\n stateHash: EditableArtifactStateHash;\n digest: EditableArtifactContentHash;\n kernelVersion: string;\n modelSchemaVersion: number;\n bytes: Uint8Array;\n}>;\n\nexport type EditableArtifactLiveSnapshot =\n | (EditableArtifactLiveSnapshotCommon &\n Readonly<{\n modality?: \"spreadsheet\";\n causalFrontier: EditableArtifactCausalFrontier;\n protocolVersion: number;\n }>)\n | (EditableArtifactLiveSnapshotCommon &\n Readonly<{\n modality: \"document\" | \"presentation\";\n nativeRevision: number;\n }>);\n\ntype EditableArtifactLiveCommittedTransactionCommon = Readonly<{\n artifactId: EditableArtifactId;\n transactionId: EditableArtifactTransactionId;\n requestHash: EditableArtifactRequestHash;\n startSequence: number;\n endSequence: number;\n priorStateHash: EditableArtifactStateHash;\n stateHash: EditableArtifactStateHash;\n committedTransactionBytes: Uint8Array;\n}>;\n\nexport type EditableArtifactLiveCommittedTransaction =\n | (EditableArtifactLiveCommittedTransactionCommon &\n Readonly<{\n modality?: \"spreadsheet\";\n causalFrontier: EditableArtifactCausalFrontier;\n protocolVersion: number;\n /** Exact canonical whole OGACO transaction envelope. */\n committedTransactionBytes: Uint8Array;\n }>)\n | (EditableArtifactLiveCommittedTransactionCommon &\n Readonly<{\n modality: \"document\" | \"presentation\";\n priorNativeRevision: number;\n nativeRevision: number;\n commitProtocolVersion: number;\n /** Exact canonical whole OGAST transaction envelope. */\n committedTransactionBytes: Uint8Array;\n }>);\n\ntype EditableArtifactLiveHeadCommon = Readonly<{\n headSequence: number;\n stateHash: EditableArtifactStateHash;\n minimumReplaySequence: number;\n}>;\n\nexport type EditableArtifactLiveHead =\n | (EditableArtifactLiveHeadCommon &\n Readonly<{\n modality: \"spreadsheet\";\n causalFrontier: EditableArtifactCausalFrontier;\n }>)\n | (EditableArtifactLiveHeadCommon &\n Readonly<{\n modality: \"document\" | \"presentation\";\n nativeRevision: number;\n }>);\n\nexport type EditableArtifactLiveBootstrap = EditableArtifactLiveHead &\n Readonly<{\n resumeAccepted: boolean;\n resumeSequence: number;\n resumeStateHash: EditableArtifactStateHash;\n snapshot: EditableArtifactLiveSnapshot | null;\n }>;\n\nexport type EditableArtifactLiveAppliedClientFrame = Readonly<{\n type: \"applied\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n sequence: number;\n stateHash: EditableArtifactStateHash;\n}>;\n\nexport type EditableArtifactLiveMutationClientFrame = Readonly<{\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n requestHash: EditableArtifactRequestHash;\n /** Exact bounded OGATX001 client-intent envelope, never canonical operations. */\n intentBytes: Uint8Array;\n}>;\n\nexport type EditableArtifactLiveClientFrame = EditableArtifactLiveAppliedClientFrame;\n\nexport type EditableArtifactLiveCloseReason =\n | \"closed\"\n | \"ticket_expired\"\n | \"ticket_replayed\"\n | \"protocol_mismatch\"\n | \"permission_changed\"\n | \"invalid_frame\"\n | \"oversized_frame\"\n | \"stale_epoch\"\n | \"invalid_ack\"\n | \"retention_gap\"\n | \"durable_gap\"\n | \"slow_client\"\n | \"transport_error\";\n\nexport type EditableArtifactLiveClose = Readonly<{\n reason: EditableArtifactLiveCloseReason;\n retryable: boolean;\n requiresSnapshot: boolean;\n}>;\n\nexport type EditableArtifactLiveMutationReceipt = Readonly<{\n clientTransactionId: EditableArtifactClientTransactionId;\n requestHash: EditableArtifactRequestHash;\n transaction: EditableArtifactLiveCommittedTransaction;\n}>;\n\nexport type EditableArtifactLiveServerFrame =\n | Readonly<{\n type: \"open\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n /** Omitted on the wire for spreadsheet compatibility. */\n modality?: EditableArtifactLiveModality;\n writable: boolean;\n headSequence: number;\n minimumReplaySequence: number;\n maxClientFrameBytes: number;\n maxCommandBytes: number;\n maxIntentBytes: number;\n maxCommittedTransactionBytes: number;\n maxSnapshotBytes: number;\n maxInFlightTransactions: number;\n maxInFlightBytes: number;\n }>\n | (Readonly<{\n type: \"snapshot\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n sequence: number;\n stateHash: EditableArtifactStateHash;\n digest: EditableArtifactContentHash;\n kernelVersion: string;\n modelSchemaVersion: number;\n offset: number;\n totalBytes: number;\n final: boolean;\n bytes: Uint8Array;\n }> &\n (\n | Readonly<{\n /** Omitted on the wire for spreadsheet compatibility. */\n modality?: \"spreadsheet\";\n causalFrontier: EditableArtifactCausalFrontier;\n }>\n | Readonly<{\n modality: \"document\" | \"presentation\";\n nativeRevision: number;\n }>\n ))\n | Readonly<{\n type: \"transaction\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n transaction: EditableArtifactLiveCommittedTransaction;\n }>\n | Readonly<{\n type: \"barrier\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n sequence: number;\n stateHash: EditableArtifactStateHash;\n }>\n | Readonly<{\n type: \"watermark\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n headSequence: number;\n }>\n | Readonly<{\n type: \"resyncRequired\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n reason: \"retention_gap\" | \"durable_gap\" | \"invalid_ack\" | \"slow_client\" | \"oversized_frame\";\n headSequence: number;\n }>\n | Readonly<{\n type: \"applied\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n sequence: number;\n stateHash: EditableArtifactStateHash;\n }>\n | Readonly<{\n type: \"authorizationChanged\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n writable: boolean;\n }>\n | Readonly<{\n type: \"mutationAccepted\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n requestHash: EditableArtifactRequestHash;\n clientTransactionId: EditableArtifactClientTransactionId;\n transactionId: EditableArtifactTransactionId;\n startSequence: number;\n endSequence: number;\n stateHash: EditableArtifactStateHash;\n }>\n | Readonly<{\n type: \"mutationRejected\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n requestHash: EditableArtifactRequestHash;\n code: \"invalid_request\" | \"forbidden\" | \"conflict\" | \"unsupported\" | \"unavailable\";\n retryable: boolean;\n }>;\n\nexport type EditableArtifactLiveOpenWireFrame = Readonly<{\n type: \"open\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n token: string;\n resume: EditableArtifactLiveResume;\n}>;\n\nexport type EditableArtifactLiveAppliedWireFrame = Readonly<{\n type: \"applied\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n sequence: number;\n stateHash: EditableArtifactStateHash;\n}>;\n\nexport type EditableArtifactLiveMutationWireFrame = Readonly<{\n type: \"mutation\";\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n requestHash: EditableArtifactRequestHash;\n /** Exact OGATX001 bytes. No client-authored operation/state projection exists. */\n intentBytes: Uint8Array;\n}>;\n\nexport type EditableArtifactLiveClientWireFrame =\n | EditableArtifactLiveOpenWireFrame\n | EditableArtifactLiveAppliedWireFrame\n | EditableArtifactLiveMutationWireFrame;\n\n/**\n * One bounded binary WebSocket envelope. Metadata is strict canonical JSON;\n * snapshots, OGATX intents, and committed OGACO transactions remain opaque\n * binary payloads and are never base64-encoded or reserialized by transport.\n */\nexport function decodeEditableArtifactLiveClientWireFrame(\n bytes: Uint8Array,\n): EditableArtifactLiveClientWireFrame {\n const decoded = decodeEnvelope(bytes);\n if (decoded.kind === CLIENT_OPEN) return decodeOpen(decoded.metadata, decoded.payload);\n if (decoded.kind === CLIENT_APPLIED) return decodeApplied(decoded.metadata, decoded.payload);\n if (decoded.kind === CLIENT_MUTATION) return decodeMutation(decoded.metadata, decoded.payload);\n throw invalidFrame(\"Unknown editable artifact client frame kind\");\n}\n\nexport function encodeEditableArtifactLiveOpenWireFrame(\n frame: EditableArtifactLiveOpenWireFrame,\n): Uint8Array {\n const artifactId = editableArtifactId(frame.artifactId);\n const protocolVersion = positiveInteger(frame.protocolVersion, \"protocolVersion\");\n const token = boundedToken(frame.token);\n const resume = normalizeResume(frame.resume);\n if (resume.modality === \"document\" || resume.modality === \"presentation\") {\n return encodeEnvelope(\n CLIENT_OPEN,\n {\n type: \"open\",\n protocolVersion,\n artifactId,\n token,\n modality: resume.modality,\n localCursor: resume.localCursor,\n localStateHash: resume.localStateHash,\n localNativeRevision: resume.localNativeRevision,\n requireSnapshot: resume.requireSnapshot,\n },\n EMPTY_BYTES,\n );\n }\n if (!(\"localCausalFrontier\" in resume)) {\n throw invalidFrame(\"spreadsheet resume requires a causal frontier\");\n }\n return encodeEnvelope(\n CLIENT_OPEN,\n {\n type: \"open\",\n protocolVersion,\n artifactId,\n token,\n localCursor: resume.localCursor,\n localStateHash: resume.localStateHash,\n localCausalFrontier: resume.localCausalFrontier,\n requireSnapshot: resume.requireSnapshot,\n },\n EMPTY_BYTES,\n );\n}\n\nexport function encodeEditableArtifactLiveAppliedWireFrame(\n frame: EditableArtifactLiveAppliedWireFrame,\n): Uint8Array {\n return encodeEnvelope(\n CLIENT_APPLIED,\n {\n type: \"applied\",\n protocolVersion: positiveInteger(frame.protocolVersion, \"protocolVersion\"),\n artifactId: editableArtifactId(frame.artifactId),\n streamEpoch: boundedString(frame.streamEpoch, \"streamEpoch\", MAX_IDENTIFIER_BYTES),\n sequence: nonnegativeInteger(frame.sequence, \"sequence\"),\n stateHash: editableArtifactStateHash(frame.stateHash),\n },\n EMPTY_BYTES,\n );\n}\n\nexport function encodeEditableArtifactLiveMutationWireFrame(\n frame: EditableArtifactLiveMutationWireFrame,\n): Uint8Array {\n const intentBytes = ownPayload(frame.intentBytes, EDITABLE_ARTIFACT_INTENT_MAX_BYTES, false);\n const requestHash = editableArtifactRequestHash(frame.requestHash);\n if (hashEditableArtifactMutationIntentBytes(intentBytes) !== requestHash) {\n throw invalidFrame(\"Mutation request hash does not match exact OGATX bytes\");\n }\n return encodeEnvelope(\n CLIENT_MUTATION,\n {\n type: \"mutation\",\n protocolVersion: positiveInteger(frame.protocolVersion, \"protocolVersion\"),\n artifactId: editableArtifactId(frame.artifactId),\n streamEpoch: boundedString(frame.streamEpoch, \"streamEpoch\", MAX_IDENTIFIER_BYTES),\n requestHash,\n },\n intentBytes,\n );\n}\n\nexport function encodeEditableArtifactLiveServerWireFrame(\n frame: EditableArtifactLiveServerFrame,\n): Uint8Array {\n switch (frame.type) {\n case \"open\": {\n const { modality, ...metadata } = frame;\n return encodeEnvelope(\n SERVER_OPEN,\n modality === \"document\" || modality === \"presentation\"\n ? {\n type: metadata.type,\n protocolVersion: metadata.protocolVersion,\n artifactId: metadata.artifactId,\n streamEpoch: metadata.streamEpoch,\n modality,\n writable: metadata.writable,\n headSequence: metadata.headSequence,\n minimumReplaySequence: metadata.minimumReplaySequence,\n maxClientFrameBytes: metadata.maxClientFrameBytes,\n maxCommandBytes: metadata.maxCommandBytes,\n maxIntentBytes: metadata.maxIntentBytes,\n maxCommittedTransactionBytes: metadata.maxCommittedTransactionBytes,\n maxSnapshotBytes: metadata.maxSnapshotBytes,\n maxInFlightTransactions: metadata.maxInFlightTransactions,\n maxInFlightBytes: metadata.maxInFlightBytes,\n }\n : metadata,\n EMPTY_BYTES,\n );\n }\n case \"snapshot\": {\n const { bytes, modality, ...metadata } = frame;\n if (\n (modality === \"document\" || modality === \"presentation\") &&\n !(\"nativeRevision\" in metadata)\n ) {\n throw invalidFrame(\"serialized snapshot requires a native revision\");\n }\n if (\n modality !== \"document\" &&\n modality !== \"presentation\" &&\n !(\"causalFrontier\" in metadata)\n ) {\n throw invalidFrame(\"spreadsheet snapshot requires a causal frontier\");\n }\n return encodeEnvelope(\n SERVER_SNAPSHOT,\n modality === \"document\" || modality === \"presentation\"\n ? {\n type: metadata.type,\n protocolVersion: metadata.protocolVersion,\n artifactId: metadata.artifactId,\n streamEpoch: metadata.streamEpoch,\n modality,\n sequence: metadata.sequence,\n stateHash: metadata.stateHash,\n nativeRevision: (metadata as { nativeRevision: number }).nativeRevision,\n digest: metadata.digest,\n kernelVersion: metadata.kernelVersion,\n modelSchemaVersion: metadata.modelSchemaVersion,\n offset: metadata.offset,\n totalBytes: metadata.totalBytes,\n final: metadata.final,\n }\n : {\n type: metadata.type,\n protocolVersion: metadata.protocolVersion,\n artifactId: metadata.artifactId,\n streamEpoch: metadata.streamEpoch,\n sequence: metadata.sequence,\n stateHash: metadata.stateHash,\n causalFrontier: (metadata as { causalFrontier: EditableArtifactCausalFrontier })\n .causalFrontier,\n digest: metadata.digest,\n kernelVersion: metadata.kernelVersion,\n modelSchemaVersion: metadata.modelSchemaVersion,\n offset: metadata.offset,\n totalBytes: metadata.totalBytes,\n final: metadata.final,\n },\n bytes,\n );\n }\n case \"transaction\": {\n const { committedTransactionBytes, ...transaction } = frame.transaction;\n const serializedTransaction = transaction as Extract<\n EditableArtifactLiveCommittedTransaction,\n { modality: \"document\" | \"presentation\" }\n >;\n const transactionMetadata =\n transaction.modality === undefined || transaction.modality === \"spreadsheet\"\n ? {\n artifactId: transaction.artifactId,\n transactionId: transaction.transactionId,\n requestHash: transaction.requestHash,\n startSequence: transaction.startSequence,\n endSequence: transaction.endSequence,\n priorStateHash: transaction.priorStateHash,\n stateHash: transaction.stateHash,\n causalFrontier: transaction.causalFrontier,\n protocolVersion: transaction.protocolVersion,\n }\n : {\n artifactId: serializedTransaction.artifactId,\n modality: serializedTransaction.modality,\n transactionId: serializedTransaction.transactionId,\n requestHash: serializedTransaction.requestHash,\n startSequence: serializedTransaction.startSequence,\n endSequence: serializedTransaction.endSequence,\n priorStateHash: serializedTransaction.priorStateHash,\n stateHash: serializedTransaction.stateHash,\n priorNativeRevision: serializedTransaction.priorNativeRevision,\n nativeRevision: serializedTransaction.nativeRevision,\n commitProtocolVersion: serializedTransaction.commitProtocolVersion,\n };\n return encodeEnvelope(\n SERVER_TRANSACTION,\n { ...frame, transaction: transactionMetadata },\n committedTransactionBytes,\n );\n }\n case \"barrier\":\n return encodeEnvelope(SERVER_BARRIER, { ...frame }, EMPTY_BYTES);\n case \"watermark\":\n return encodeEnvelope(SERVER_WATERMARK, { ...frame }, EMPTY_BYTES);\n case \"resyncRequired\":\n return encodeEnvelope(SERVER_RESYNC_REQUIRED, { ...frame }, EMPTY_BYTES);\n case \"applied\":\n return encodeEnvelope(SERVER_APPLIED, { ...frame }, EMPTY_BYTES);\n case \"authorizationChanged\":\n return encodeEnvelope(SERVER_AUTHORIZATION_CHANGED, { ...frame }, EMPTY_BYTES);\n case \"mutationAccepted\":\n return encodeEnvelope(SERVER_MUTATION_ACCEPTED, { ...frame }, EMPTY_BYTES);\n case \"mutationRejected\":\n return encodeEnvelope(SERVER_MUTATION_REJECTED, { ...frame }, EMPTY_BYTES);\n }\n}\n\n/** Strict inverse used by browser/desktop SDK transports. */\nexport function decodeEditableArtifactLiveServerWireFrame(\n bytes: Uint8Array,\n): EditableArtifactLiveServerFrame {\n const decoded = decodeEnvelope(bytes);\n const metadata = decoded.metadata;\n switch (decoded.kind) {\n case SERVER_OPEN: {\n requireNoPayload(decoded.payload);\n const modality = serverModality(metadata);\n requireServerKeys(metadata, \"open\", [\n ...(modality === \"spreadsheet\" ? [] : [\"modality\"]),\n \"writable\",\n \"headSequence\",\n \"minimumReplaySequence\",\n \"maxClientFrameBytes\",\n \"maxCommandBytes\",\n \"maxIntentBytes\",\n \"maxCommittedTransactionBytes\",\n \"maxSnapshotBytes\",\n \"maxInFlightTransactions\",\n \"maxInFlightBytes\",\n ]);\n const common = {\n ...serverIdentity(metadata, \"open\"),\n writable: requiredBoolean(metadata.writable, \"writable\"),\n headSequence: nonnegativeInteger(metadata.headSequence, \"headSequence\"),\n minimumReplaySequence: nonnegativeInteger(\n metadata.minimumReplaySequence,\n \"minimumReplaySequence\",\n ),\n maxClientFrameBytes: positiveInteger(metadata.maxClientFrameBytes, \"maxClientFrameBytes\"),\n maxCommandBytes: nonnegativeInteger(metadata.maxCommandBytes, \"maxCommandBytes\"),\n maxIntentBytes: nonnegativeInteger(metadata.maxIntentBytes, \"maxIntentBytes\"),\n maxCommittedTransactionBytes: nonnegativeInteger(\n metadata.maxCommittedTransactionBytes,\n \"maxCommittedTransactionBytes\",\n ),\n maxSnapshotBytes: positiveInteger(metadata.maxSnapshotBytes, \"maxSnapshotBytes\"),\n maxInFlightTransactions: positiveInteger(\n metadata.maxInFlightTransactions,\n \"maxInFlightTransactions\",\n ),\n maxInFlightBytes: positiveInteger(metadata.maxInFlightBytes, \"maxInFlightBytes\"),\n } as const;\n return Object.freeze(modality === \"spreadsheet\" ? common : { ...common, modality });\n }\n case SERVER_SNAPSHOT: {\n const modality = serverModality(metadata);\n requireServerKeys(metadata, \"snapshot\", [\n ...(modality === \"spreadsheet\" ? [] : [\"modality\"]),\n \"sequence\",\n \"stateHash\",\n modality === \"spreadsheet\" ? \"causalFrontier\" : \"nativeRevision\",\n \"digest\",\n \"kernelVersion\",\n \"modelSchemaVersion\",\n \"offset\",\n \"totalBytes\",\n \"final\",\n ]);\n const offset = nonnegativeInteger(metadata.offset, \"offset\");\n const totalBytes = positiveInteger(metadata.totalBytes, \"totalBytes\");\n const final = requiredBoolean(metadata.final, \"final\");\n if (decoded.payload.byteLength === 0 || offset + decoded.payload.byteLength > totalBytes) {\n throw invalidFrame(\"snapshot chunk bounds are invalid\");\n }\n if (final !== (offset + decoded.payload.byteLength === totalBytes)) {\n throw invalidFrame(\"snapshot final flag does not match its byte boundary\");\n }\n const common = {\n ...serverIdentity(metadata, \"snapshot\"),\n sequence: nonnegativeInteger(metadata.sequence, \"sequence\"),\n stateHash: editableArtifactStateHash(requiredString(metadata.stateHash, \"stateHash\")),\n digest: editableArtifactContentHash(requiredString(metadata.digest, \"digest\")),\n kernelVersion: boundedString(\n requiredString(metadata.kernelVersion, \"kernelVersion\"),\n \"kernelVersion\",\n MAX_IDENTIFIER_BYTES,\n ),\n modelSchemaVersion: positiveInteger(metadata.modelSchemaVersion, \"modelSchemaVersion\"),\n offset,\n totalBytes,\n final,\n bytes: decoded.payload,\n } as const;\n return Object.freeze(\n modality === \"spreadsheet\"\n ? {\n ...common,\n causalFrontier: requiredFrontier(metadata.causalFrontier),\n }\n : {\n ...common,\n modality,\n nativeRevision: nonnegativeInteger(metadata.nativeRevision, \"nativeRevision\"),\n },\n );\n }\n case SERVER_TRANSACTION: {\n requireServerKeys(metadata, \"transaction\", [\"transaction\"]);\n const transaction = requiredRecord(metadata.transaction, \"transaction\");\n const modality = transactionModality(transaction);\n requireExactKeys(\n transaction,\n modality === \"spreadsheet\"\n ? [\n \"artifactId\",\n \"transactionId\",\n \"requestHash\",\n \"startSequence\",\n \"endSequence\",\n \"priorStateHash\",\n \"stateHash\",\n \"causalFrontier\",\n \"protocolVersion\",\n ]\n : [\n \"artifactId\",\n \"modality\",\n \"transactionId\",\n \"requestHash\",\n \"startSequence\",\n \"endSequence\",\n \"priorStateHash\",\n \"stateHash\",\n \"priorNativeRevision\",\n \"nativeRevision\",\n \"commitProtocolVersion\",\n ],\n );\n if (decoded.payload.byteLength === 0) {\n throw invalidFrame(\"transaction payload must not be empty\");\n }\n const startSequence = positiveInteger(transaction.startSequence, \"startSequence\");\n const endSequence = positiveInteger(transaction.endSequence, \"endSequence\");\n if (endSequence < startSequence)\n throw invalidFrame(\"transaction sequence interval is inverted\");\n const common = {\n ...serverIdentity(metadata, \"transaction\"),\n transaction: {\n artifactId: editableArtifactId(requiredString(transaction.artifactId, \"artifactId\")),\n transactionId: editableArtifactTransactionId(\n requiredString(transaction.transactionId, \"transactionId\"),\n ),\n requestHash: editableArtifactRequestHash(\n requiredString(transaction.requestHash, \"requestHash\"),\n ),\n startSequence,\n endSequence,\n priorStateHash: editableArtifactStateHash(\n requiredString(transaction.priorStateHash, \"priorStateHash\"),\n ),\n stateHash: editableArtifactStateHash(requiredString(transaction.stateHash, \"stateHash\")),\n committedTransactionBytes: decoded.payload,\n },\n } as const;\n return Object.freeze({\n ...common,\n transaction: Object.freeze(\n modality === \"spreadsheet\"\n ? {\n ...common.transaction,\n causalFrontier: requiredFrontier(transaction.causalFrontier),\n protocolVersion: positiveInteger(transaction.protocolVersion, \"protocolVersion\"),\n }\n : {\n ...common.transaction,\n modality,\n priorNativeRevision: nonnegativeInteger(\n transaction.priorNativeRevision,\n \"priorNativeRevision\",\n ),\n nativeRevision: nonnegativeInteger(transaction.nativeRevision, \"nativeRevision\"),\n commitProtocolVersion: positiveInteger(\n transaction.commitProtocolVersion,\n \"commitProtocolVersion\",\n ),\n },\n ),\n });\n }\n case SERVER_BARRIER:\n case SERVER_APPLIED: {\n const type = decoded.kind === SERVER_BARRIER ? \"barrier\" : \"applied\";\n requireNoPayload(decoded.payload);\n requireServerKeys(metadata, type, [\"sequence\", \"stateHash\"]);\n return Object.freeze({\n ...serverIdentity(metadata, type),\n sequence: nonnegativeInteger(metadata.sequence, \"sequence\"),\n stateHash: editableArtifactStateHash(requiredString(metadata.stateHash, \"stateHash\")),\n });\n }\n case SERVER_WATERMARK: {\n requireNoPayload(decoded.payload);\n requireServerKeys(metadata, \"watermark\", [\"headSequence\"]);\n return Object.freeze({\n ...serverIdentity(metadata, \"watermark\"),\n headSequence: nonnegativeInteger(metadata.headSequence, \"headSequence\"),\n });\n }\n case SERVER_RESYNC_REQUIRED: {\n requireNoPayload(decoded.payload);\n requireServerKeys(metadata, \"resyncRequired\", [\"reason\", \"headSequence\"]);\n const reason = requiredString(metadata.reason, \"reason\");\n if (!RESYNC_REASONS.has(reason)) throw invalidFrame(\"resync reason is invalid\");\n return Object.freeze({\n ...serverIdentity(metadata, \"resyncRequired\"),\n reason: reason as Extract<\n EditableArtifactLiveServerFrame,\n { type: \"resyncRequired\" }\n >[\"reason\"],\n headSequence: nonnegativeInteger(metadata.headSequence, \"headSequence\"),\n });\n }\n case SERVER_AUTHORIZATION_CHANGED: {\n requireNoPayload(decoded.payload);\n requireServerKeys(metadata, \"authorizationChanged\", [\"writable\"]);\n return Object.freeze({\n ...serverIdentity(metadata, \"authorizationChanged\"),\n writable: requiredBoolean(metadata.writable, \"writable\"),\n });\n }\n case SERVER_MUTATION_ACCEPTED: {\n requireNoPayload(decoded.payload);\n requireServerKeys(metadata, \"mutationAccepted\", [\n \"requestHash\",\n \"clientTransactionId\",\n \"transactionId\",\n \"startSequence\",\n \"endSequence\",\n \"stateHash\",\n ]);\n const startSequence = positiveInteger(metadata.startSequence, \"startSequence\");\n const endSequence = positiveInteger(metadata.endSequence, \"endSequence\");\n if (endSequence < startSequence) throw invalidFrame(\"accepted sequence interval is inverted\");\n return Object.freeze({\n ...serverIdentity(metadata, \"mutationAccepted\"),\n requestHash: editableArtifactRequestHash(\n requiredString(metadata.requestHash, \"requestHash\"),\n ),\n clientTransactionId: editableArtifactClientTransactionId(\n requiredString(metadata.clientTransactionId, \"clientTransactionId\"),\n ),\n transactionId: editableArtifactTransactionId(\n requiredString(metadata.transactionId, \"transactionId\"),\n ),\n startSequence,\n endSequence,\n stateHash: editableArtifactStateHash(requiredString(metadata.stateHash, \"stateHash\")),\n });\n }\n case SERVER_MUTATION_REJECTED: {\n requireNoPayload(decoded.payload);\n requireServerKeys(metadata, \"mutationRejected\", [\"requestHash\", \"code\", \"retryable\"]);\n const code = requiredString(metadata.code, \"code\");\n if (!MUTATION_REJECTION_CODES.has(code)) {\n throw invalidFrame(\"mutation rejection code is invalid\");\n }\n return Object.freeze({\n ...serverIdentity(metadata, \"mutationRejected\"),\n requestHash: editableArtifactRequestHash(\n requiredString(metadata.requestHash, \"requestHash\"),\n ),\n code: code as Extract<\n EditableArtifactLiveServerFrame,\n { type: \"mutationRejected\" }\n >[\"code\"],\n retryable: requiredBoolean(metadata.retryable, \"retryable\"),\n });\n }\n default:\n throw invalidFrame(\"Unknown editable artifact server frame kind\");\n }\n}\n\n/** Header-level inspection for transport tests and SDK adapters. */\nexport function inspectEditableArtifactLiveWireEnvelope(bytes: Uint8Array): Readonly<{\n kind: number;\n metadata: Readonly<Record<string, unknown>>;\n payload: Uint8Array;\n}> {\n return decodeEnvelope(bytes);\n}\n\nfunction decodeOpen(\n metadata: Readonly<Record<string, unknown>>,\n payload: Uint8Array,\n): EditableArtifactLiveOpenWireFrame {\n requireNoPayload(payload);\n const modality = clientOpenModality(metadata);\n requireExactKeys(\n metadata,\n modality === \"spreadsheet\"\n ? [\n \"type\",\n \"protocolVersion\",\n \"artifactId\",\n \"token\",\n \"localCursor\",\n \"localStateHash\",\n \"localCausalFrontier\",\n \"requireSnapshot\",\n ]\n : [\n \"type\",\n \"protocolVersion\",\n \"artifactId\",\n \"token\",\n \"modality\",\n \"localCursor\",\n \"localStateHash\",\n \"localNativeRevision\",\n \"requireSnapshot\",\n ],\n );\n requireLiteral(metadata.type, \"open\", \"type\");\n return Object.freeze({\n type: \"open\",\n protocolVersion: positiveInteger(metadata.protocolVersion, \"protocolVersion\"),\n artifactId: editableArtifactId(requiredString(metadata.artifactId, \"artifactId\")),\n token: boundedToken(requiredString(metadata.token, \"token\")),\n resume: normalizeResume(\n modality === \"spreadsheet\"\n ? {\n modality,\n localCursor: nullableNonnegativeInteger(metadata.localCursor, \"localCursor\"),\n localStateHash:\n metadata.localStateHash === null\n ? null\n : editableArtifactStateHash(\n requiredString(metadata.localStateHash, \"localStateHash\"),\n ),\n localCausalFrontier: requiredFrontier(metadata.localCausalFrontier),\n requireSnapshot: requiredBoolean(metadata.requireSnapshot, \"requireSnapshot\"),\n }\n : {\n modality,\n localCursor: nullableNonnegativeInteger(metadata.localCursor, \"localCursor\"),\n localStateHash:\n metadata.localStateHash === null\n ? null\n : editableArtifactStateHash(\n requiredString(metadata.localStateHash, \"localStateHash\"),\n ),\n localNativeRevision: nullableNonnegativeInteger(\n metadata.localNativeRevision,\n \"localNativeRevision\",\n ),\n requireSnapshot: requiredBoolean(metadata.requireSnapshot, \"requireSnapshot\"),\n },\n ),\n });\n}\n\nfunction decodeApplied(\n metadata: Readonly<Record<string, unknown>>,\n payload: Uint8Array,\n): EditableArtifactLiveAppliedWireFrame {\n requireNoPayload(payload);\n requireExactKeys(metadata, [\n \"type\",\n \"protocolVersion\",\n \"artifactId\",\n \"streamEpoch\",\n \"sequence\",\n \"stateHash\",\n ]);\n requireLiteral(metadata.type, \"applied\", \"type\");\n return Object.freeze({\n type: \"applied\",\n protocolVersion: positiveInteger(metadata.protocolVersion, \"protocolVersion\"),\n artifactId: editableArtifactId(requiredString(metadata.artifactId, \"artifactId\")),\n streamEpoch: boundedString(\n requiredString(metadata.streamEpoch, \"streamEpoch\"),\n \"streamEpoch\",\n MAX_IDENTIFIER_BYTES,\n ),\n sequence: nonnegativeInteger(metadata.sequence, \"sequence\"),\n stateHash: editableArtifactStateHash(requiredString(metadata.stateHash, \"stateHash\")),\n });\n}\n\nfunction decodeMutation(\n metadata: Readonly<Record<string, unknown>>,\n payload: Uint8Array,\n): EditableArtifactLiveMutationWireFrame {\n requireExactKeys(metadata, [\n \"type\",\n \"protocolVersion\",\n \"artifactId\",\n \"streamEpoch\",\n \"requestHash\",\n ]);\n requireLiteral(metadata.type, \"mutation\", \"type\");\n const requestHash = editableArtifactRequestHash(\n requiredString(metadata.requestHash, \"requestHash\"),\n );\n const intentBytes = ownPayload(payload, EDITABLE_ARTIFACT_INTENT_MAX_BYTES, false);\n try {\n if (hashEditableArtifactMutationIntentBytes(intentBytes) !== requestHash) {\n throw new TypeError(\"request hash mismatch\");\n }\n } catch (cause) {\n throw invalidFrame(\"Mutation request hash does not match exact OGATX bytes\", cause);\n }\n return Object.freeze({\n type: \"mutation\",\n protocolVersion: positiveInteger(metadata.protocolVersion, \"protocolVersion\"),\n artifactId: editableArtifactId(requiredString(metadata.artifactId, \"artifactId\")),\n streamEpoch: boundedString(\n requiredString(metadata.streamEpoch, \"streamEpoch\"),\n \"streamEpoch\",\n MAX_IDENTIFIER_BYTES,\n ),\n requestHash,\n intentBytes,\n });\n}\n\nfunction encodeEnvelope(\n kind: number,\n metadata: Readonly<Record<string, unknown>>,\n rawPayload: Uint8Array,\n): Uint8Array {\n if (!Number.isInteger(kind) || kind < 1 || kind > 255) throw new TypeError(\"wire kind invalid\");\n const metadataBytes = textEncoder.encode(JSON.stringify(metadata));\n if (metadataBytes.byteLength < 2 || metadataBytes.byteLength > MAX_METADATA_BYTES) {\n throw new RangeError(\"Editable artifact wire metadata exceeds bound\");\n }\n const payload = ownPayload(rawPayload, 128 * 1024 * 1024, true);\n const total = HEADER_BYTES + metadataBytes.byteLength + payload.byteLength;\n if (!Number.isSafeInteger(total)) throw new RangeError(\"Editable artifact wire frame too large\");\n const output = new Uint8Array(total);\n output.set(MAGIC, 0);\n const view = new DataView(output.buffer);\n view.setUint8(8, EDITABLE_ARTIFACT_LIVE_WIRE_VERSION);\n view.setUint8(9, kind);\n view.setUint16(10, 0, true);\n view.setUint32(12, metadataBytes.byteLength, true);\n view.setUint32(16, payload.byteLength, true);\n output.set(metadataBytes, HEADER_BYTES);\n output.set(payload, HEADER_BYTES + metadataBytes.byteLength);\n return output;\n}\n\nfunction decodeEnvelope(bytes: Uint8Array): Readonly<{\n kind: number;\n metadata: Readonly<Record<string, unknown>>;\n payload: Uint8Array;\n}> {\n if (!(bytes instanceof Uint8Array) || bytes.byteLength < HEADER_BYTES) {\n throw invalidFrame(\"Editable artifact wire frame is truncated\");\n }\n for (let index = 0; index < MAGIC.byteLength; index += 1) {\n if (bytes[index] !== MAGIC[index]) throw invalidFrame(\"Editable artifact wire magic mismatch\");\n }\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n if (view.getUint8(8) !== EDITABLE_ARTIFACT_LIVE_WIRE_VERSION) {\n throw new EditableArtifactLiveError(\"protocol_mismatch\", \"Live wire version unsupported\");\n }\n const kind = view.getUint8(9);\n if (view.getUint16(10, true) !== 0) throw invalidFrame(\"Editable artifact wire flags invalid\");\n const metadataLength = view.getUint32(12, true);\n const payloadLength = view.getUint32(16, true);\n if (metadataLength < 2 || metadataLength > MAX_METADATA_BYTES) {\n throw invalidFrame(\"Editable artifact wire metadata exceeds bound\");\n }\n const expected = HEADER_BYTES + metadataLength + payloadLength;\n if (expected !== bytes.byteLength) throw invalidFrame(\"Editable artifact wire length mismatch\");\n const metadataBytes = bytes.subarray(HEADER_BYTES, HEADER_BYTES + metadataLength);\n let metadataText: string;\n let value: unknown;\n try {\n metadataText = strictDecoder.decode(metadataBytes);\n value = JSON.parse(metadataText);\n } catch (cause) {\n throw invalidFrame(\"Editable artifact wire metadata is not UTF-8 JSON\", cause);\n }\n const metadata = requiredRecord(value, \"metadata\");\n // Canonical JSON rejects duplicate keys, whitespace variants, and unstable\n // property order before any token or identity is acted on.\n if (JSON.stringify(metadata) !== metadataText) {\n throw invalidFrame(\"Editable artifact wire metadata is not canonical JSON\");\n }\n return Object.freeze({\n kind,\n metadata: Object.freeze(metadata),\n payload: bytes.slice(HEADER_BYTES + metadataLength),\n });\n}\n\nfunction normalizeResume(resume: EditableArtifactLiveResume): EditableArtifactLiveResume {\n if (!resume || typeof resume !== \"object\") throw invalidFrame(\"resume must be an object\");\n const localCursor = nullableNonnegativeInteger(resume.localCursor, \"localCursor\");\n const localStateHash =\n resume.localStateHash === null ? null : editableArtifactStateHash(resume.localStateHash);\n const requireSnapshot = requiredBoolean(resume.requireSnapshot, \"requireSnapshot\");\n if ((localCursor === null) !== (localStateHash === null)) {\n throw invalidFrame(\"resume cursor and state hash must both be null or both be present\");\n }\n const modality = resume.modality ?? \"spreadsheet\";\n if (modality === \"spreadsheet\") {\n if (!(\"localCausalFrontier\" in resume)) {\n throw invalidFrame(\"spreadsheet resume requires a causal frontier\");\n }\n return Object.freeze({\n localCursor,\n localStateHash,\n localCausalFrontier: requiredFrontier(resume.localCausalFrontier),\n requireSnapshot,\n });\n }\n editableArtifactLiveModality(modality);\n if (!(\"localNativeRevision\" in resume)) {\n throw invalidFrame(\"serialized resume requires a native revision\");\n }\n const localNativeRevision = nullableNonnegativeInteger(\n resume.localNativeRevision,\n \"localNativeRevision\",\n );\n if ((localCursor === null) !== (localNativeRevision === null)) {\n throw invalidFrame(\n \"serialized resume cursor and native revision must both be null or both be present\",\n );\n }\n return Object.freeze({\n modality,\n localCursor,\n localStateHash,\n localNativeRevision,\n requireSnapshot,\n });\n}\n\nfunction requiredFrontier(value: unknown): EditableArtifactCausalFrontier {\n if (!Array.isArray(value) || value.length > MAX_CAUSAL_ACTORS) {\n throw invalidFrame(\"causal frontier exceeds bound\");\n }\n return editableArtifactCausalFrontier(value as EditableArtifactCausalFrontier);\n}\n\nfunction editableArtifactLiveModality(value: unknown): EditableArtifactLiveModality {\n if (value !== \"document\" && value !== \"spreadsheet\" && value !== \"presentation\") {\n throw invalidFrame(\"editable artifact modality is invalid\");\n }\n return value;\n}\n\nfunction clientOpenModality(\n metadata: Readonly<Record<string, unknown>>,\n): EditableArtifactLiveModality {\n return metadata.modality === undefined\n ? \"spreadsheet\"\n : editableArtifactLiveModality(metadata.modality);\n}\n\nfunction serverModality(metadata: Readonly<Record<string, unknown>>): EditableArtifactLiveModality {\n return metadata.modality === undefined\n ? \"spreadsheet\"\n : editableArtifactLiveModality(metadata.modality);\n}\n\nfunction transactionModality(\n transaction: Readonly<Record<string, unknown>>,\n): EditableArtifactLiveModality {\n return transaction.modality === undefined\n ? \"spreadsheet\"\n : editableArtifactLiveModality(transaction.modality);\n}\n\nfunction requireExactKeys(\n record: Readonly<Record<string, unknown>>,\n expected: readonly string[],\n): void {\n const keys = Object.keys(record);\n if (keys.length !== expected.length || keys.some((key, index) => key !== expected[index])) {\n throw invalidFrame(\"Editable artifact wire metadata fields are invalid or out of order\");\n }\n}\n\nfunction requireServerKeys(\n metadata: Readonly<Record<string, unknown>>,\n type: string,\n trailing: readonly string[],\n): void {\n requireExactKeys(metadata, [\"type\", \"protocolVersion\", \"artifactId\", \"streamEpoch\", ...trailing]);\n requireLiteral(metadata.type, type, \"type\");\n}\n\nfunction serverIdentity<Type extends EditableArtifactLiveServerFrame[\"type\"]>(\n metadata: Readonly<Record<string, unknown>>,\n type: Type,\n): Readonly<{\n type: Type;\n protocolVersion: number;\n artifactId: EditableArtifactId;\n streamEpoch: string;\n}> {\n return Object.freeze({\n type,\n protocolVersion: positiveInteger(metadata.protocolVersion, \"protocolVersion\"),\n artifactId: editableArtifactId(requiredString(metadata.artifactId, \"artifactId\")),\n streamEpoch: boundedString(\n requiredString(metadata.streamEpoch, \"streamEpoch\"),\n \"streamEpoch\",\n MAX_IDENTIFIER_BYTES,\n ),\n });\n}\n\nfunction requiredRecord(value: unknown, label: string): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw invalidFrame(`${label} must be an object`);\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n throw invalidFrame(`${label} must be a plain object`);\n }\n return value as Record<string, unknown>;\n}\n\nfunction requiredString(value: unknown, label: string): string {\n if (typeof value !== \"string\") throw invalidFrame(`${label} must be a string`);\n return value;\n}\n\nfunction requiredBoolean(value: unknown, label: string): boolean {\n if (typeof value !== \"boolean\") throw invalidFrame(`${label} must be boolean`);\n return value;\n}\n\nfunction requireLiteral(value: unknown, expected: string, label: string): void {\n if (value !== expected) throw invalidFrame(`${label} must equal ${expected}`);\n}\n\nfunction positiveInteger(value: unknown, label: string): number {\n if (!Number.isSafeInteger(value) || (value as number) < 1) {\n throw invalidFrame(`${label} must be a positive safe integer`);\n }\n return value as number;\n}\n\nfunction nonnegativeInteger(value: unknown, label: string): number {\n if (!Number.isSafeInteger(value) || (value as number) < 0) {\n throw invalidFrame(`${label} must be a nonnegative safe integer`);\n }\n return value as number;\n}\n\nfunction nullableNonnegativeInteger(value: unknown, label: string): number | null {\n return value === null ? null : nonnegativeInteger(value, label);\n}\n\nfunction boundedString(value: string, label: string, maxBytes: number): string {\n const bytes = textEncoder.encode(value).byteLength;\n if (bytes < 1 || bytes > maxBytes || value.trim() !== value) {\n throw invalidFrame(`${label} is malformed`);\n }\n return value;\n}\n\nfunction boundedToken(value: string): string {\n const token = boundedString(value, \"token\", MAX_TOKEN_BYTES);\n if (!/^[A-Za-z0-9._~-]+$/u.test(token)) throw invalidFrame(\"token is malformed\");\n return token;\n}\n\nfunction editableArtifactId(value: string): EditableArtifactId {\n return stableId(value, \"artifact id\");\n}\n\nfunction editableArtifactTransactionId(value: string): EditableArtifactTransactionId {\n return stableId(value, \"server transaction id\");\n}\n\nfunction editableArtifactClientTransactionId(value: string): EditableArtifactClientTransactionId {\n if (!/^[A-Za-z0-9._:-]{1,200}$/u.test(value)) {\n throw invalidFrame(\"clientTransactionId is malformed\");\n }\n return value;\n}\n\nfunction editableArtifactRequestHash(value: string): EditableArtifactRequestHash {\n return sha256Text(value, \"request hash\");\n}\n\nfunction editableArtifactStateHash(value: string): EditableArtifactStateHash {\n return sha256Text(value, \"state hash\");\n}\n\nfunction editableArtifactContentHash(value: string): EditableArtifactContentHash {\n return sha256Text(value, \"content hash\");\n}\n\nfunction stableId(value: string, label: string): string {\n if (!/^[0-9a-f]{32}$/u.test(value) || /^0{32}$/u.test(value)) {\n throw invalidFrame(`${label} is malformed`);\n }\n return value;\n}\n\nfunction sha256Text(value: string, label: string): string {\n if (!/^sha256:[0-9a-f]{64}$/u.test(value)) {\n throw invalidFrame(`${label} is malformed`);\n }\n return value;\n}\n\nfunction editableArtifactCausalFrontier(\n entries: EditableArtifactCausalFrontier,\n): EditableArtifactCausalFrontier {\n const seen = new Set<string>();\n const normalized = entries.map((entry, index) => {\n const record = requiredRecord(entry, `causal frontier entry ${index}`);\n requireExactKeys(record, [\"replicaId\", \"counter\"]);\n const replicaId = requiredString(record.replicaId, \"causal replicaId\");\n if (!/^[0-9a-f]{16}$/u.test(replicaId) || /^0{16}$/u.test(replicaId)) {\n throw invalidFrame(\"causal replicaId is malformed\");\n }\n const counter = positiveInteger(record.counter, \"causal counter\");\n if (seen.has(replicaId)) throw invalidFrame(\"duplicate causal replicaId\");\n seen.add(replicaId);\n return Object.freeze({ replicaId, counter });\n });\n normalized.sort((left, right) =>\n left.replicaId < right.replicaId ? -1 : left.replicaId > right.replicaId ? 1 : 0,\n );\n return Object.freeze(normalized);\n}\n\nfunction ownPayload(value: Uint8Array, maxBytes: number, allowEmpty: boolean): Uint8Array {\n if (\n !(value instanceof Uint8Array) ||\n (!allowEmpty && value.byteLength === 0) ||\n value.byteLength > maxBytes\n ) {\n throw invalidFrame(\"Editable artifact wire payload exceeds bound\");\n }\n return value.slice();\n}\n\nfunction requireNoPayload(payload: Uint8Array): void {\n if (payload.byteLength !== 0) throw invalidFrame(\"Frame kind must not carry a binary payload\");\n}\n\nfunction invalidFrame(message: string, cause?: unknown): EditableArtifactLiveError {\n return new EditableArtifactLiveError(\"invalid_frame\", message, {\n ...(cause ? { cause } : {}),\n });\n}\n\nconst EMPTY_BYTES = new Uint8Array(0);\n"],"mappings":"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","names":[]}
@@ -0,0 +1,53 @@
1
+ import { type EditableArtifactMutationIntent } from "./editable-artifacts.js";
2
+ export declare const EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION: 1;
3
+ export declare const EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES: number;
4
+ export declare const EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES: number;
5
+ export type EditableArtifactSerializedModality = "document" | "presentation";
6
+ export type EditableArtifactNativeReceiptSummary = Readonly<{
7
+ modality: "document";
8
+ revision: number;
9
+ commandCount: number;
10
+ createdIdCount: number;
11
+ }> | Readonly<{
12
+ modality: "presentation";
13
+ revision: number;
14
+ commandCount: number;
15
+ }>;
16
+ export type EditableArtifactSerializedCommitInput = Readonly<{
17
+ modality: EditableArtifactSerializedModality;
18
+ transactionId: string;
19
+ parentHeadSequence: number;
20
+ resultHeadSequence: number;
21
+ /** Native model revision before applying this non-empty command batch. */
22
+ priorNativeRevision: number;
23
+ priorStateHash: string;
24
+ stateHash: string;
25
+ /** Exact canonical OGATX001 bytes accepted by the server. */
26
+ intentBytes: Uint8Array;
27
+ /** Exact canonical OGADR001 or OGAPR001 bytes returned by the native kernel. */
28
+ nativeReceiptBytes: Uint8Array;
29
+ }>;
30
+ export type EditableArtifactSerializedCommitSummary = Readonly<{
31
+ commitProtocolVersion: typeof EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION;
32
+ modality: EditableArtifactSerializedModality;
33
+ transactionId: string;
34
+ parentHeadSequence: number;
35
+ resultHeadSequence: number;
36
+ priorNativeRevision: number;
37
+ priorStateHash: string;
38
+ stateHash: string;
39
+ requestHash: string;
40
+ /** Canonical client intent nested in this authoritative commit. */
41
+ intent: EditableArtifactMutationIntent;
42
+ intentBytes: Uint8Array;
43
+ nativeReceiptBytes: Uint8Array;
44
+ nativeReceipt: EditableArtifactNativeReceiptSummary;
45
+ }>;
46
+ /**
47
+ * Server-only encoder for one authoritative, strictly serialized commit.
48
+ * Client identity remains solely in the exact nested OGATX envelope.
49
+ */
50
+ export declare function encodeEditableArtifactSerializedCommit(input: EditableArtifactSerializedCommitInput): Uint8Array;
51
+ /** Durable modality must be selected before any nested receipt/command decode. */
52
+ export declare function decodeEditableArtifactSerializedCommit(bytes: Uint8Array, durableModality: EditableArtifactSerializedModality): EditableArtifactSerializedCommitSummary;
53
+ export declare function assertCanonicalEditableArtifactSerializedCommit(bytes: Uint8Array, durableModality: EditableArtifactSerializedModality): void;
@@ -0,0 +1,26 @@
1
+ import {
2
+ EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES,
3
+ EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES,
4
+ EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION,
5
+ assertCanonicalEditableArtifactSerializedCommit,
6
+ decodeEditableArtifactSerializedCommit,
7
+ encodeEditableArtifactSerializedCommit
8
+ } from "./chunk-H5BVCZKF.js";
9
+ import "./chunk-TZ6YEYN4.js";
10
+ import "./chunk-YRKRZ6OF.js";
11
+ import "./chunk-FJBG5E4O.js";
12
+ import "./chunk-CADSX6UN.js";
13
+ import "./chunk-RIY7GYQS.js";
14
+ import "./chunk-BVGIYW7D.js";
15
+ import "./chunk-D2HKF2EF.js";
16
+ import "./chunk-MYBZRDTY.js";
17
+ import "./chunk-LSB7GRLG.js";
18
+ export {
19
+ EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES,
20
+ EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES,
21
+ EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION,
22
+ assertCanonicalEditableArtifactSerializedCommit,
23
+ decodeEditableArtifactSerializedCommit,
24
+ encodeEditableArtifactSerializedCommit
25
+ };
26
+ //# sourceMappingURL=editable-artifact-serialized-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,6 @@
1
+ /** Shared durable model version without importing any modality codec. */
2
+ export declare const EDITABLE_ARTIFACT_MODEL_SCHEMA_VERSION: 1;
3
+ /** Shared native snapshot version without importing any modality codec. */
4
+ export declare const EDITABLE_ARTIFACT_SNAPSHOT_VERSION: 1;
5
+ /** Canonical committed spreadsheet transaction protocol version. */
6
+ export declare const COMMITTED_TRANSACTION_PROTOCOL_VERSION: 1;
@@ -0,0 +1,11 @@
1
+ import {
2
+ COMMITTED_TRANSACTION_PROTOCOL_VERSION,
3
+ EDITABLE_ARTIFACT_MODEL_SCHEMA_VERSION,
4
+ EDITABLE_ARTIFACT_SNAPSHOT_VERSION
5
+ } from "./chunk-BVGIYW7D.js";
6
+ export {
7
+ COMMITTED_TRANSACTION_PROTOCOL_VERSION,
8
+ EDITABLE_ARTIFACT_MODEL_SCHEMA_VERSION,
9
+ EDITABLE_ARTIFACT_SNAPSHOT_VERSION
10
+ };
11
+ //# sourceMappingURL=editable-artifact-versions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,46 @@
1
+ export * from "./spreadsheet-artifact-commands.js";
2
+ export * from "./spreadsheet-artifact-query.js";
3
+ export * from "./editable-artifact-causal-frontier.js";
4
+ export * from "./document-artifact-commands.js";
5
+ export * from "./presentation-artifact-commands.js";
6
+ export * from "./editable-artifact-codec-registry.js";
7
+ export declare const EDITABLE_ARTIFACT_INTENT_VERSION: 1;
8
+ export declare const EDITABLE_ARTIFACT_INTENT_MAX_BYTES: number;
9
+ export declare const EDITABLE_ARTIFACT_COMMAND_MAX_BYTES: number;
10
+ export declare const EDITABLE_ARTIFACT_KERNEL_VERSION_MAX_BYTES = 512;
11
+ /** Largest durable snapshot every supported browser/WASM client can open. */
12
+ export declare const EDITABLE_ARTIFACT_PRODUCT_MAX_SNAPSHOT_BYTES: number;
13
+ export declare const EDITABLE_ARTIFACT_INTENT_MAX_CAUSAL_ACTORS = 1024;
14
+ export declare const EDITABLE_ARTIFACT_INTENT_MAX_UNDO_TARGETS = 10000;
15
+ export type EditableArtifactCausalEntry = Readonly<{
16
+ replicaId: string;
17
+ counter: number;
18
+ }>;
19
+ /**
20
+ * Exact client-authored mutation identity. Scope and actor authority are
21
+ * deliberately absent: the server derives them and binds them in the
22
+ * idempotency lookup tuple instead of trusting client bytes.
23
+ */
24
+ export type EditableArtifactMutationIntent = Readonly<{
25
+ envelopeVersion: typeof EDITABLE_ARTIFACT_INTENT_VERSION;
26
+ protocolVersion: number;
27
+ modelSchemaVersion: number;
28
+ commandProtocolVersion: number;
29
+ artifactId: string;
30
+ clientTransactionId: string;
31
+ replicaId: string;
32
+ replicaCounter: number;
33
+ previousLocalTransactionId: string | null;
34
+ observedHeadSequence: number;
35
+ causalBase: readonly EditableArtifactCausalEntry[];
36
+ selectiveUndoOperationIds: readonly string[];
37
+ commandBytes: Uint8Array;
38
+ }>;
39
+ export declare function encodeEditableArtifactMutationIntent(input: EditableArtifactMutationIntent): Uint8Array;
40
+ export declare function decodeEditableArtifactMutationIntent(bytes: Uint8Array): EditableArtifactMutationIntent;
41
+ export declare function hashEditableArtifactMutationIntentBytes(bytes: Uint8Array): string;
42
+ export declare function hashEditableArtifactMutationIntent(intent: EditableArtifactMutationIntent): {
43
+ bytes: Uint8Array;
44
+ requestHash: string;
45
+ };
46
+ export declare function assertEditableArtifactRequestHash(value: string): string;
@@ -0,0 +1,236 @@
1
+ import {
2
+ EDITABLE_ARTIFACT_COMMAND_MAX_BYTES,
3
+ EDITABLE_ARTIFACT_INTENT_MAX_BYTES,
4
+ EDITABLE_ARTIFACT_INTENT_MAX_CAUSAL_ACTORS,
5
+ EDITABLE_ARTIFACT_INTENT_MAX_UNDO_TARGETS,
6
+ EDITABLE_ARTIFACT_INTENT_VERSION,
7
+ EDITABLE_ARTIFACT_KERNEL_VERSION_MAX_BYTES,
8
+ EDITABLE_ARTIFACT_PRODUCT_MAX_SNAPSHOT_BYTES,
9
+ assertEditableArtifactRequestHash,
10
+ decodeEditableArtifactMutationIntent,
11
+ encodeEditableArtifactMutationIntent,
12
+ hashEditableArtifactMutationIntent,
13
+ hashEditableArtifactMutationIntentBytes
14
+ } from "./chunk-TZ6YEYN4.js";
15
+ import {
16
+ EDITABLE_ARTIFACT_CAUSAL_FRONTIER_MAX_BYTES,
17
+ EDITABLE_ARTIFACT_CAUSAL_FRONTIER_MAX_REPLICAS,
18
+ EDITABLE_ARTIFACT_CAUSAL_FRONTIER_VERSION,
19
+ assertCanonicalEditableArtifactCausalFrontierBytes,
20
+ decodeEditableArtifactCausalFrontier,
21
+ encodeEditableArtifactCausalFrontier
22
+ } from "./chunk-YRKRZ6OF.js";
23
+ import {
24
+ EDITABLE_ARTIFACT_CODEC_REGISTRY,
25
+ editableArtifactCodecFor
26
+ } from "./chunk-FJBG5E4O.js";
27
+ import {
28
+ SPREADSHEET_ARTIFACT_METADATA_MAX_SHEETS,
29
+ SPREADSHEET_ARTIFACT_METADATA_MIN_RESPONSE_BYTES,
30
+ SPREADSHEET_ARTIFACT_PROJECTION_MAX_BYTES,
31
+ SPREADSHEET_ARTIFACT_PROJECTION_MAX_STRING_BYTES,
32
+ SPREADSHEET_ARTIFACT_QUERY_MAX_BYTES,
33
+ SPREADSHEET_ARTIFACT_QUERY_VERSION,
34
+ SPREADSHEET_ARTIFACT_VIEWPORT_MAX_AREA,
35
+ SPREADSHEET_ARTIFACT_VIEWPORT_MAX_CELLS,
36
+ SPREADSHEET_ARTIFACT_VIEWPORT_MIN_RESPONSE_BYTES,
37
+ assertCanonicalSpreadsheetArtifactKernelProjectionBytes,
38
+ assertCanonicalSpreadsheetArtifactKernelQueryBytes,
39
+ decodeSpreadsheetArtifactKernelProjection,
40
+ decodeSpreadsheetArtifactKernelQuery,
41
+ decodeSpreadsheetMetadataKernelProjection,
42
+ decodeSpreadsheetViewportKernelProjection,
43
+ encodeSpreadsheetArtifactKernelProjection,
44
+ encodeSpreadsheetArtifactKernelQuery,
45
+ encodeSpreadsheetMetadataKernelProjection,
46
+ encodeSpreadsheetMetadataKernelQuery,
47
+ encodeSpreadsheetViewportKernelProjection,
48
+ encodeSpreadsheetViewportKernelQuery
49
+ } from "./chunk-CADSX6UN.js";
50
+ import {
51
+ DOCUMENT_ARTIFACT_COMMAND_MAX_BYTES,
52
+ DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,
53
+ DOCUMENT_ARTIFACT_COMMAND_MAX_STRING_BYTES,
54
+ DOCUMENT_ARTIFACT_COMMAND_VERSION,
55
+ DOCUMENT_ARTIFACT_MAX_STRUCTURAL_COUNTER,
56
+ DOCUMENT_ARTIFACT_MAX_TABLE_CELLS,
57
+ DOCUMENT_ARTIFACT_MAX_TEXT_RUNS,
58
+ DOCUMENT_ARTIFACT_MAX_TEXT_UTF16,
59
+ DOCUMENT_ARTIFACT_QUERY_MAX_BYTES,
60
+ DOCUMENT_ARTIFACT_QUERY_MAX_ITEMS,
61
+ DOCUMENT_ARTIFACT_QUERY_MAX_TABLE_CELLS,
62
+ DOCUMENT_ARTIFACT_QUERY_MAX_TEXT_UTF16,
63
+ DOCUMENT_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,
64
+ DOCUMENT_ARTIFACT_QUERY_RESPONSE_VERSION,
65
+ DOCUMENT_ARTIFACT_QUERY_VERSION,
66
+ assertCanonicalDocumentArtifactCommandBytes,
67
+ assertCanonicalDocumentArtifactQueryBytes,
68
+ assertCanonicalDocumentArtifactQueryResponseBytes,
69
+ decodeDocumentArtifactCommandBatch,
70
+ decodeDocumentArtifactQuery,
71
+ decodeDocumentArtifactQueryResponse,
72
+ encodeDocumentArtifactCommandBatch,
73
+ encodeDocumentArtifactQuery,
74
+ encodeDocumentArtifactQueryResponse
75
+ } from "./chunk-RIY7GYQS.js";
76
+ import {
77
+ EDITABLE_ARTIFACT_MODEL_SCHEMA_VERSION,
78
+ EDITABLE_ARTIFACT_SNAPSHOT_VERSION
79
+ } from "./chunk-BVGIYW7D.js";
80
+ import {
81
+ PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES,
82
+ PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS,
83
+ PRESENTATION_ARTIFACT_COMMAND_VERSION,
84
+ PRESENTATION_ARTIFACT_MAX_CHART_POINTS,
85
+ PRESENTATION_ARTIFACT_MAX_CHART_SERIES,
86
+ PRESENTATION_ARTIFACT_MAX_COORDINATE,
87
+ PRESENTATION_ARTIFACT_MAX_GROUP_CHILDREN,
88
+ PRESENTATION_ARTIFACT_MAX_NAME_BYTES,
89
+ PRESENTATION_ARTIFACT_MAX_TABLE_CELLS,
90
+ PRESENTATION_ARTIFACT_MAX_TABLE_COLUMNS,
91
+ PRESENTATION_ARTIFACT_MAX_TABLE_ROWS,
92
+ PRESENTATION_ARTIFACT_MAX_TEXT_BYTES,
93
+ PRESENTATION_ARTIFACT_MAX_TEXT_PARAGRAPHS,
94
+ PRESENTATION_ARTIFACT_MAX_TEXT_RUNS,
95
+ PRESENTATION_ARTIFACT_QUERY_MAX_BYTES,
96
+ PRESENTATION_ARTIFACT_QUERY_MAX_NODES,
97
+ PRESENTATION_ARTIFACT_QUERY_MAX_SLIDES,
98
+ PRESENTATION_ARTIFACT_QUERY_MAX_TEXT_BYTES,
99
+ PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,
100
+ PRESENTATION_ARTIFACT_QUERY_RESPONSE_VERSION,
101
+ PRESENTATION_ARTIFACT_QUERY_VERSION,
102
+ assertCanonicalPresentationArtifactCommandBytes,
103
+ assertCanonicalPresentationArtifactQueryBytes,
104
+ assertCanonicalPresentationArtifactQueryResponseBytes,
105
+ decodePresentationArtifactCommandBatch,
106
+ decodePresentationArtifactQuery,
107
+ decodePresentationArtifactQueryResponse,
108
+ encodePresentationArtifactCommandBatch,
109
+ encodePresentationArtifactQuery,
110
+ encodePresentationArtifactQueryResponse
111
+ } from "./chunk-D2HKF2EF.js";
112
+ import "./chunk-MYBZRDTY.js";
113
+ import {
114
+ SPREADSHEET_ARTIFACT_COMMAND_MAX_BYTES,
115
+ SPREADSHEET_ARTIFACT_COMMAND_MAX_CELLS,
116
+ SPREADSHEET_ARTIFACT_COMMAND_MAX_COMMANDS,
117
+ SPREADSHEET_ARTIFACT_COMMAND_MAX_STRING_BYTES,
118
+ SPREADSHEET_ARTIFACT_COMMAND_VERSION,
119
+ SPREADSHEET_ARTIFACT_SHEET_NAME_MAX_UTF16_UNITS,
120
+ assertCanonicalSpreadsheetArtifactCommandBytes,
121
+ decodeSpreadsheetArtifactCommandBatch,
122
+ editableArtifactStableId,
123
+ encodeSpreadsheetArtifactCommandBatch,
124
+ spreadsheetSheetId
125
+ } from "./chunk-LSB7GRLG.js";
126
+ export {
127
+ DOCUMENT_ARTIFACT_COMMAND_MAX_BYTES,
128
+ DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,
129
+ DOCUMENT_ARTIFACT_COMMAND_MAX_STRING_BYTES,
130
+ DOCUMENT_ARTIFACT_COMMAND_VERSION,
131
+ DOCUMENT_ARTIFACT_MAX_STRUCTURAL_COUNTER,
132
+ DOCUMENT_ARTIFACT_MAX_TABLE_CELLS,
133
+ DOCUMENT_ARTIFACT_MAX_TEXT_RUNS,
134
+ DOCUMENT_ARTIFACT_MAX_TEXT_UTF16,
135
+ DOCUMENT_ARTIFACT_QUERY_MAX_BYTES,
136
+ DOCUMENT_ARTIFACT_QUERY_MAX_ITEMS,
137
+ DOCUMENT_ARTIFACT_QUERY_MAX_TABLE_CELLS,
138
+ DOCUMENT_ARTIFACT_QUERY_MAX_TEXT_UTF16,
139
+ DOCUMENT_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,
140
+ DOCUMENT_ARTIFACT_QUERY_RESPONSE_VERSION,
141
+ DOCUMENT_ARTIFACT_QUERY_VERSION,
142
+ EDITABLE_ARTIFACT_CAUSAL_FRONTIER_MAX_BYTES,
143
+ EDITABLE_ARTIFACT_CAUSAL_FRONTIER_MAX_REPLICAS,
144
+ EDITABLE_ARTIFACT_CAUSAL_FRONTIER_VERSION,
145
+ EDITABLE_ARTIFACT_CODEC_REGISTRY,
146
+ EDITABLE_ARTIFACT_COMMAND_MAX_BYTES,
147
+ EDITABLE_ARTIFACT_INTENT_MAX_BYTES,
148
+ EDITABLE_ARTIFACT_INTENT_MAX_CAUSAL_ACTORS,
149
+ EDITABLE_ARTIFACT_INTENT_MAX_UNDO_TARGETS,
150
+ EDITABLE_ARTIFACT_INTENT_VERSION,
151
+ EDITABLE_ARTIFACT_KERNEL_VERSION_MAX_BYTES,
152
+ EDITABLE_ARTIFACT_MODEL_SCHEMA_VERSION,
153
+ EDITABLE_ARTIFACT_PRODUCT_MAX_SNAPSHOT_BYTES,
154
+ EDITABLE_ARTIFACT_SNAPSHOT_VERSION,
155
+ PRESENTATION_ARTIFACT_COMMAND_MAX_BYTES,
156
+ PRESENTATION_ARTIFACT_COMMAND_MAX_COMMANDS,
157
+ PRESENTATION_ARTIFACT_COMMAND_VERSION,
158
+ PRESENTATION_ARTIFACT_MAX_CHART_POINTS,
159
+ PRESENTATION_ARTIFACT_MAX_CHART_SERIES,
160
+ PRESENTATION_ARTIFACT_MAX_COORDINATE,
161
+ PRESENTATION_ARTIFACT_MAX_GROUP_CHILDREN,
162
+ PRESENTATION_ARTIFACT_MAX_NAME_BYTES,
163
+ PRESENTATION_ARTIFACT_MAX_TABLE_CELLS,
164
+ PRESENTATION_ARTIFACT_MAX_TABLE_COLUMNS,
165
+ PRESENTATION_ARTIFACT_MAX_TABLE_ROWS,
166
+ PRESENTATION_ARTIFACT_MAX_TEXT_BYTES,
167
+ PRESENTATION_ARTIFACT_MAX_TEXT_PARAGRAPHS,
168
+ PRESENTATION_ARTIFACT_MAX_TEXT_RUNS,
169
+ PRESENTATION_ARTIFACT_QUERY_MAX_BYTES,
170
+ PRESENTATION_ARTIFACT_QUERY_MAX_NODES,
171
+ PRESENTATION_ARTIFACT_QUERY_MAX_SLIDES,
172
+ PRESENTATION_ARTIFACT_QUERY_MAX_TEXT_BYTES,
173
+ PRESENTATION_ARTIFACT_QUERY_RESPONSE_MAX_BYTES,
174
+ PRESENTATION_ARTIFACT_QUERY_RESPONSE_VERSION,
175
+ PRESENTATION_ARTIFACT_QUERY_VERSION,
176
+ SPREADSHEET_ARTIFACT_COMMAND_MAX_BYTES,
177
+ SPREADSHEET_ARTIFACT_COMMAND_MAX_CELLS,
178
+ SPREADSHEET_ARTIFACT_COMMAND_MAX_COMMANDS,
179
+ SPREADSHEET_ARTIFACT_COMMAND_MAX_STRING_BYTES,
180
+ SPREADSHEET_ARTIFACT_COMMAND_VERSION,
181
+ SPREADSHEET_ARTIFACT_METADATA_MAX_SHEETS,
182
+ SPREADSHEET_ARTIFACT_METADATA_MIN_RESPONSE_BYTES,
183
+ SPREADSHEET_ARTIFACT_PROJECTION_MAX_BYTES,
184
+ SPREADSHEET_ARTIFACT_PROJECTION_MAX_STRING_BYTES,
185
+ SPREADSHEET_ARTIFACT_QUERY_MAX_BYTES,
186
+ SPREADSHEET_ARTIFACT_QUERY_VERSION,
187
+ SPREADSHEET_ARTIFACT_SHEET_NAME_MAX_UTF16_UNITS,
188
+ SPREADSHEET_ARTIFACT_VIEWPORT_MAX_AREA,
189
+ SPREADSHEET_ARTIFACT_VIEWPORT_MAX_CELLS,
190
+ SPREADSHEET_ARTIFACT_VIEWPORT_MIN_RESPONSE_BYTES,
191
+ assertCanonicalDocumentArtifactCommandBytes,
192
+ assertCanonicalDocumentArtifactQueryBytes,
193
+ assertCanonicalDocumentArtifactQueryResponseBytes,
194
+ assertCanonicalEditableArtifactCausalFrontierBytes,
195
+ assertCanonicalPresentationArtifactCommandBytes,
196
+ assertCanonicalPresentationArtifactQueryBytes,
197
+ assertCanonicalPresentationArtifactQueryResponseBytes,
198
+ assertCanonicalSpreadsheetArtifactCommandBytes,
199
+ assertCanonicalSpreadsheetArtifactKernelProjectionBytes,
200
+ assertCanonicalSpreadsheetArtifactKernelQueryBytes,
201
+ assertEditableArtifactRequestHash,
202
+ decodeDocumentArtifactCommandBatch,
203
+ decodeDocumentArtifactQuery,
204
+ decodeDocumentArtifactQueryResponse,
205
+ decodeEditableArtifactCausalFrontier,
206
+ decodeEditableArtifactMutationIntent,
207
+ decodePresentationArtifactCommandBatch,
208
+ decodePresentationArtifactQuery,
209
+ decodePresentationArtifactQueryResponse,
210
+ decodeSpreadsheetArtifactCommandBatch,
211
+ decodeSpreadsheetArtifactKernelProjection,
212
+ decodeSpreadsheetArtifactKernelQuery,
213
+ decodeSpreadsheetMetadataKernelProjection,
214
+ decodeSpreadsheetViewportKernelProjection,
215
+ editableArtifactCodecFor,
216
+ editableArtifactStableId,
217
+ encodeDocumentArtifactCommandBatch,
218
+ encodeDocumentArtifactQuery,
219
+ encodeDocumentArtifactQueryResponse,
220
+ encodeEditableArtifactCausalFrontier,
221
+ encodeEditableArtifactMutationIntent,
222
+ encodePresentationArtifactCommandBatch,
223
+ encodePresentationArtifactQuery,
224
+ encodePresentationArtifactQueryResponse,
225
+ encodeSpreadsheetArtifactCommandBatch,
226
+ encodeSpreadsheetArtifactKernelProjection,
227
+ encodeSpreadsheetArtifactKernelQuery,
228
+ encodeSpreadsheetMetadataKernelProjection,
229
+ encodeSpreadsheetMetadataKernelQuery,
230
+ encodeSpreadsheetViewportKernelProjection,
231
+ encodeSpreadsheetViewportKernelQuery,
232
+ hashEditableArtifactMutationIntent,
233
+ hashEditableArtifactMutationIntentBytes,
234
+ spreadsheetSheetId
235
+ };
236
+ //# sourceMappingURL=editable-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Canonical bounded representation for `session_events.payload`.
2
+ * Canonical bounded representation for explicit session-event previews.
3
3
  *
4
- * Session events are the lossy human/audit projection, not model memory and not
5
- * an evidence blob store. This helper keeps that projection useful while making
6
- * the loss explicit. It deliberately has no server-only dependency so the DB,
7
- * realtime transports, SDK/React, and tests can share one wire contract.
4
+ * Canonical session-event payloads are stored in full. This helper derives a
5
+ * bounded monitoring/public projection without writing that projection back
6
+ * over canonical data. It deliberately has no server-only dependency so the
7
+ * DB, realtime transports, SDK/React, and tests can share one wire contract.
8
8
  */
9
- import { type RetainedOutputEvidence } from "./retained-output";
9
+ import { type RetainedOutputEvidence } from "./retained-output.js";
10
10
  export declare const SESSION_EVENT_PAYLOAD_MAX_BYTES: number;
11
11
  export type SessionEventBoundarySurface = "durable_audit" | "database_guard" | "database_read_projection" | "http_projection" | "nats_legacy_guard" | "sse_legacy_guard" | "browser_legacy_guard";
12
12
  export type SessionEventPayloadTruncation = {
@@ -69,7 +69,7 @@ export declare function sessionEventMediaPreviewFromDataUrl(value: string): Sess
69
69
  /** Read explicit truncation metadata from a bounded object payload. */
70
70
  export declare function sessionEventPayloadTruncation(payload: unknown): SessionEventPayloadTruncation | null;
71
71
  /**
72
- * Return a byte-bounded audit payload. Unchanged ordinary payloads retain their
72
+ * Return a byte-bounded preview payload. Unchanged ordinary payloads retain their
73
73
  * reference. Oversized strings/containers get deterministic head+tail previews;
74
74
  * inline images/binary values become metadata because `session_events` does not
75
75
  * durably retain their source bytes as independently retrievable evidence.