@bendyline/docblocks 1.1.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +76 -11
  2. package/dist/chunk-6IYMTYMQ.js +1692 -0
  3. package/dist/chunk-6IYMTYMQ.js.map +1 -0
  4. package/dist/chunk-AEHCVWU5.js +25 -0
  5. package/dist/chunk-AEHCVWU5.js.map +1 -0
  6. package/dist/chunk-B56KWCSE.js +802 -0
  7. package/dist/chunk-B56KWCSE.js.map +1 -0
  8. package/dist/{chunk-ME76RUMR.js → chunk-BNKV7MTO.js} +15 -1
  9. package/dist/chunk-BNKV7MTO.js.map +1 -0
  10. package/dist/chunk-BXMF5YQJ.js +149 -0
  11. package/dist/chunk-BXMF5YQJ.js.map +1 -0
  12. package/dist/chunk-COYQXQK3.js +1071 -0
  13. package/dist/chunk-COYQXQK3.js.map +1 -0
  14. package/dist/chunk-DN7A33LL.js +780 -0
  15. package/dist/chunk-DN7A33LL.js.map +1 -0
  16. package/dist/chunk-EZKJZUNJ.js +13 -0
  17. package/dist/chunk-EZKJZUNJ.js.map +1 -0
  18. package/dist/chunk-FA7UNOXK.js +20 -0
  19. package/dist/chunk-FA7UNOXK.js.map +1 -0
  20. package/dist/chunk-FNW556FN.js +75 -0
  21. package/dist/chunk-FNW556FN.js.map +1 -0
  22. package/dist/chunk-GM5YXU4L.js +29 -0
  23. package/dist/chunk-GM5YXU4L.js.map +1 -0
  24. package/dist/chunk-JS6XFWQK.js +225 -0
  25. package/dist/chunk-JS6XFWQK.js.map +1 -0
  26. package/dist/chunk-MNSZ7EZN.js +111 -0
  27. package/dist/chunk-MNSZ7EZN.js.map +1 -0
  28. package/dist/chunk-P3DVZQ6S.js +228 -0
  29. package/dist/chunk-P3DVZQ6S.js.map +1 -0
  30. package/dist/chunk-P4WATND4.js +52 -0
  31. package/dist/chunk-P4WATND4.js.map +1 -0
  32. package/dist/chunk-RVPGQBWR.js +169 -0
  33. package/dist/chunk-RVPGQBWR.js.map +1 -0
  34. package/dist/chunk-U722UUFN.js +9 -0
  35. package/dist/chunk-U722UUFN.js.map +1 -0
  36. package/dist/chunk-VTCSF7VS.js +553 -0
  37. package/dist/chunk-VTCSF7VS.js.map +1 -0
  38. package/dist/chunk-WJKYY5QR.js +1350 -0
  39. package/dist/chunk-WJKYY5QR.js.map +1 -0
  40. package/dist/chunk-XUML3MKV.js +945 -0
  41. package/dist/chunk-XUML3MKV.js.map +1 -0
  42. package/dist/document/index.d.ts +358 -0
  43. package/dist/document/index.js +25 -0
  44. package/dist/document/index.js.map +1 -0
  45. package/dist/filesystem/electron.d.ts +73 -0
  46. package/dist/filesystem/electron.js +17 -0
  47. package/dist/filesystem/electron.js.map +1 -0
  48. package/dist/filesystem/index.d.ts +228 -8
  49. package/dist/filesystem/index.js +133 -6
  50. package/dist/filesystem/index.js.map +1 -1
  51. package/dist/filesystem/indexeddb.d.ts +284 -0
  52. package/dist/filesystem/indexeddb.js +23 -0
  53. package/dist/filesystem/indexeddb.js.map +1 -0
  54. package/dist/filesystem/memory.d.ts +152 -0
  55. package/dist/filesystem/memory.js +13 -0
  56. package/dist/filesystem/memory.js.map +1 -0
  57. package/dist/filesystem/native.d.ts +136 -0
  58. package/dist/filesystem/native.js +28 -0
  59. package/dist/filesystem/native.js.map +1 -0
  60. package/dist/host/index.d.ts +32 -6
  61. package/dist/host/index.js +26 -27
  62. package/dist/host/index.js.map +1 -1
  63. package/dist/index.d.ts +14 -9
  64. package/dist/index.js +204 -8
  65. package/dist/index.js.map +1 -1
  66. package/dist/mcp/index.d.ts +33 -0
  67. package/dist/mcp/index.js +32 -0
  68. package/dist/mcp/index.js.map +1 -0
  69. package/dist/mcp/zod.d.ts +5765 -0
  70. package/dist/mcp/zod.js +724 -0
  71. package/dist/mcp/zod.js.map +1 -0
  72. package/dist/share/index.d.ts +43 -0
  73. package/dist/share/index.js +13 -0
  74. package/dist/share/index.js.map +1 -0
  75. package/dist/types-BEg5SQ1_.d.ts +301 -0
  76. package/dist/types-CX893hgH.d.ts +468 -0
  77. package/dist/types-CueK0tvU.d.ts +501 -0
  78. package/dist/vscode/index.d.ts +220 -0
  79. package/dist/vscode/index.js +383 -0
  80. package/dist/vscode/index.js.map +1 -0
  81. package/dist/workspace/index.d.ts +141 -3
  82. package/dist/workspace/index.js +28 -1
  83. package/dist/workspace/index.js.map +1 -1
  84. package/dist/workspace-path-CWVrcuPL.d.ts +21 -0
  85. package/package.json +50 -5
  86. package/dist/chunk-GUNM43XZ.js +0 -63
  87. package/dist/chunk-GUNM43XZ.js.map +0 -1
  88. package/dist/chunk-IM7LCQJ6.js +0 -850
  89. package/dist/chunk-IM7LCQJ6.js.map +0 -1
  90. package/dist/chunk-ME76RUMR.js.map +0 -1
  91. package/dist/filesystem/electron-provider.d.ts +0 -32
  92. package/dist/filesystem/electron-provider.d.ts.map +0 -1
  93. package/dist/filesystem/electron-provider.js +0 -64
  94. package/dist/filesystem/electron-provider.js.map +0 -1
  95. package/dist/filesystem/file-media-provider.d.ts +0 -23
  96. package/dist/filesystem/file-media-provider.d.ts.map +0 -1
  97. package/dist/filesystem/file-media-provider.js +0 -85
  98. package/dist/filesystem/file-media-provider.js.map +0 -1
  99. package/dist/filesystem/filesystem-content-container.d.ts +0 -24
  100. package/dist/filesystem/filesystem-content-container.d.ts.map +0 -1
  101. package/dist/filesystem/filesystem-content-container.js +0 -116
  102. package/dist/filesystem/filesystem-content-container.js.map +0 -1
  103. package/dist/filesystem/index.d.ts.map +0 -1
  104. package/dist/filesystem/indexeddb-content-container.d.ts +0 -20
  105. package/dist/filesystem/indexeddb-content-container.d.ts.map +0 -1
  106. package/dist/filesystem/indexeddb-content-container.js +0 -93
  107. package/dist/filesystem/indexeddb-content-container.js.map +0 -1
  108. package/dist/filesystem/indexeddb-provider.d.ts +0 -32
  109. package/dist/filesystem/indexeddb-provider.d.ts.map +0 -1
  110. package/dist/filesystem/indexeddb-provider.js +0 -295
  111. package/dist/filesystem/indexeddb-provider.js.map +0 -1
  112. package/dist/filesystem/native-provider.d.ts +0 -45
  113. package/dist/filesystem/native-provider.d.ts.map +0 -1
  114. package/dist/filesystem/native-provider.js +0 -336
  115. package/dist/filesystem/native-provider.js.map +0 -1
  116. package/dist/filesystem/types.d.ts +0 -50
  117. package/dist/filesystem/types.d.ts.map +0 -1
  118. package/dist/filesystem/types.js +0 -8
  119. package/dist/filesystem/types.js.map +0 -1
  120. package/dist/host/index.d.ts.map +0 -1
  121. package/dist/host/types.d.ts +0 -149
  122. package/dist/host/types.d.ts.map +0 -1
  123. package/dist/host/types.js +0 -10
  124. package/dist/host/types.js.map +0 -1
  125. package/dist/index-pgBHBQ9G.d.ts +0 -213
  126. package/dist/index.d.ts.map +0 -1
  127. package/dist/workspace/index.d.ts.map +0 -1
  128. package/dist/workspace/types.d.ts +0 -29
  129. package/dist/workspace/types.d.ts.map +0 -1
  130. package/dist/workspace/types.js +0 -6
  131. package/dist/workspace/types.js.map +0 -1
  132. package/dist/workspace/workspace-manager.d.ts +0 -35
  133. package/dist/workspace/workspace-manager.d.ts.map +0 -1
  134. package/dist/workspace/workspace-manager.js +0 -82
  135. package/dist/workspace/workspace-manager.js.map +0 -1
  136. package/src/filesystem/electron-provider.ts +0 -88
  137. package/src/filesystem/file-media-provider.ts +0 -103
  138. package/src/filesystem/filesystem-content-container.ts +0 -126
  139. package/src/filesystem/index.ts +0 -24
  140. package/src/filesystem/indexeddb-content-container.ts +0 -104
  141. package/src/filesystem/indexeddb-provider.ts +0 -345
  142. package/src/filesystem/native-provider.ts +0 -384
  143. package/src/filesystem/types.ts +0 -69
  144. package/src/host/index.ts +0 -47
  145. package/src/host/types.ts +0 -153
  146. package/src/index.ts +0 -9
  147. package/src/workspace/index.ts +0 -10
  148. package/src/workspace/types.ts +0 -29
  149. package/src/workspace/workspace-manager.ts +0 -90
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mcp/zod.ts"],"sourcesContent":["import { z } from 'zod';\nimport { z as z4 } from 'zod/v4';\nimport {\n MCP_WIRE_LIMITS,\n parseArtifactRef,\n parseComparisonResult,\n parseConversionResult,\n parseInspectionResult,\n parsePreviewResult,\n parseValidationResult,\n} from './wire.js';\nimport type {\n DescribeTemplateResult,\n DescribeThemeResult,\n DocBlocksMcpToolName,\n FormatCapabilitySummary,\n FormatDirectionCapability,\n InferThemeResult,\n InspectPptxLayoutsResult,\n ListFormatsResult,\n ListRootsResult,\n ListTemplatesResult,\n ListThemesResult,\n ListTransformStylesResult,\n PptxLayoutSummary,\n RecommendTemplatesResult,\n RootGrantSummary,\n TemplateContentProfile,\n TemplateInputSummary,\n TemplateRecommendation,\n TemplateSummary,\n ThemeCatalogEntry,\n ThemeDescription,\n TransformStyleSummary,\n} from './types.js';\n\n/** Canonical Zod projection of the exact MCP wire contract for protocol SDKs. */\n\nexport const MAX_MARKDOWN_CHARACTERS = 20 * 1024 * 1024;\nexport const MAX_PATH_CHARACTERS = 4_096;\nconst MAX_ID_CHARACTERS = 256;\n\nconst IDENTIFIER_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]*$/u;\nconst FORMAT_PATTERN = /^[a-z0-9][a-z0-9.+_-]*$/u;\nconst INPUT_FORMAT_PATTERN = /^[A-Za-z0-9][A-Za-z0-9.+_-]*$/u;\nconst MIME_TYPE_PATTERN = /^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$/iu;\nconst ARTIFACT_URI_PATTERN = /^docblocks:\\/\\/artifacts\\/[A-Za-z0-9][A-Za-z0-9._:-]*$/u;\nconst ISO_TIMESTAMP_PATTERN = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/u;\n/* eslint-disable no-control-regex -- Wire contracts must publish explicit control-byte exclusions. */\nconst WIRE_STRING_PATTERN = new RegExp('^[^\\\\u0000\\\\u007f]*$', 'u');\nconst WORKSPACE_PATH_PATTERN = new RegExp(\n '^(?!/)(?![A-Za-z]:)(?!.*(?:^|/)(?:\\\\.{1,2})(?:/|$))(?!.*//)(?!.*[\\\\\\\\\\\\u0000-\\\\u001f\\\\u007f])(?!.*/$).+$',\n 'u',\n);\nconst SAFE_FILENAME_PATTERN = new RegExp('^(?!\\\\.{1,2}$)[^/\\\\\\\\\\\\u0000\\\\u007f]+$', 'u');\n/* eslint-enable no-control-regex */\n\nconst boundedString = z\n .string()\n .max(MCP_WIRE_LIMITS.messageCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst boundedNonEmptyString = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.messageCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst labelSchema = z\n .string()\n .max(MCP_WIRE_LIMITS.labelCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst nonEmptyLabelSchema = labelSchema.min(1);\nconst excerptSchema = z\n .string()\n .max(MCP_WIRE_LIMITS.excerptCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst uriTextSchema = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.uriCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst nonNegativeSafeIntegerSchema = z.number().int().min(0).max(Number.MAX_SAFE_INTEGER);\nconst idSchema = z.string().min(1).max(MAX_ID_CHARACTERS).regex(IDENTIFIER_PATTERN);\nexport const formatSchema = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.formatCharacters)\n .regex(FORMAT_PATTERN);\n/** Case-insensitive format input which handlers normalize before publishing it on the wire. */\nexport const formatInputSchema = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.formatCharacters)\n .regex(INPUT_FORMAT_PATTERN);\nconst mimeTypeSchema = z\n .string()\n .min(3)\n .max(MCP_WIRE_LIMITS.mimeTypeCharacters)\n .regex(MIME_TYPE_PATTERN);\nconst isoTimestampSchema = z\n .string()\n .regex(ISO_TIMESTAMP_PATTERN)\n .refine((value) => {\n const timestamp = Date.parse(value);\n return Number.isFinite(timestamp) && new Date(timestamp).toISOString() === value;\n }, 'Expected a canonical UTC timestamp with millisecond precision');\nconst engineNameSchema = z\n .string()\n .min(1)\n .max(MAX_ID_CHARACTERS)\n .regex(\n /^(?:[A-Za-z0-9][A-Za-z0-9._:-]*|@[A-Za-z0-9][A-Za-z0-9._-]*\\/[A-Za-z0-9][A-Za-z0-9._-]*)$/u,\n );\nconst workspacePathSchema = z\n .string()\n .min(1)\n .max(MAX_PATH_CHARACTERS)\n .regex(WORKSPACE_PATH_PATTERN, 'Expected a canonical root-relative forward-slash path')\n .refine(\n (value) =>\n !value.includes('\\\\') &&\n !value.startsWith('/') &&\n !/^[a-zA-Z]:/u.test(value) &&\n !value.split('/').some((segment) => !segment || segment === '.' || segment === '..') &&\n ![...value].some((character) => {\n const codePoint = character.codePointAt(0) ?? 0;\n return codePoint <= 0x1f || codePoint === 0x7f;\n }),\n 'Expected a canonical root-relative forward-slash path',\n );\nexport const artifactUriSchema = z\n .string()\n .max('docblocks://artifacts/'.length + MAX_ID_CHARACTERS)\n .regex(ARTIFACT_URI_PATTERN);\n\nconst assetSourceSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('file'), rootId: idSchema, path: workspacePathSchema }).strict(),\n z.object({ kind: z.literal('artifact'), uri: artifactUriSchema }).strict(),\n]);\n\nexport const bundleAssetSchema = z\n .object({\n path: workspacePathSchema,\n source: assetSourceSchema,\n mimeType: mimeTypeSchema.nullable(),\n altText: labelSchema.nullable(),\n credit: labelSchema.nullable(),\n license: labelSchema.nullable(),\n })\n .strict();\n\nexport const bundleDocumentSourceSchema = z\n .object({\n kind: z.literal('bundle'),\n markdown: z\n .string()\n .max(MAX_MARKDOWN_CHARACTERS)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire'),\n assets: z.array(bundleAssetSchema).max(MCP_WIRE_LIMITS.bundleAssets),\n name: labelSchema.nullable(),\n })\n .strict();\n\nexport const documentSourceSchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('markdown'),\n markdown: z\n .string()\n .max(MAX_MARKDOWN_CHARACTERS)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire'),\n name: labelSchema.nullable(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('file'),\n rootId: idSchema,\n path: workspacePathSchema,\n format: formatSchema.nullable(),\n })\n .strict(),\n z.object({ kind: z.literal('artifact'), uri: artifactUriSchema }).strict(),\n bundleDocumentSourceSchema,\n]);\n\nconst appliedOptionSchema = z\n .object({\n name: idSchema,\n value: z.union([boundedString, z.number().finite(), z.boolean(), z.null()]),\n })\n .strict();\nconst engineVersionSchema = z\n .object({ name: engineNameSchema, version: boundedNonEmptyString })\n .strict();\n\nexport const artifactRefSchema = z\n .object({\n id: idSchema,\n uri: artifactUriSchema,\n format: formatSchema,\n mimeType: mimeTypeSchema,\n size: z.number().int().nonnegative().max(MCP_WIRE_LIMITS.artifactBytes),\n sha256: z.string().regex(/^[a-f0-9]{64}$/u),\n sourceFormat: formatSchema.nullable(),\n sourceSha256: z\n .string()\n .regex(/^[a-f0-9]{64}$/u)\n .nullable(),\n suggestedFilename: z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.labelCharacters)\n .regex(SAFE_FILENAME_PATTERN),\n appliedOptions: z.array(appliedOptionSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n engineVersions: z.array(engineVersionSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n createdAt: isoTimestampSchema,\n expiresAt: isoTimestampSchema.nullable(),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseArtifactRef(value), context));\n\nconst diagnosticLocationSchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('source'),\n line: z.number().int().min(1).max(Number.MAX_SAFE_INTEGER),\n column: z.number().int().min(1).max(Number.MAX_SAFE_INTEGER),\n })\n .strict(),\n z.object({ kind: z.literal('block'), blockId: idSchema, nodeType: idSchema }).strict(),\n z.object({ kind: z.literal('asset'), path: workspacePathSchema }).strict(),\n z\n .object({\n kind: z.literal('item'),\n itemKind: z.enum(['page', 'slide', 'sheet', 'frame']),\n index: nonNegativeSafeIntegerSchema,\n })\n .strict(),\n]);\n\nexport const diagnosticSchema = z\n .object({\n code: idSchema,\n severity: z.enum(['info', 'warning', 'error']),\n stage: z.enum([\n 'resolve',\n 'import',\n 'parse',\n 'inspect',\n 'validate',\n 'transform',\n 'convert',\n 'render',\n 'export',\n 'materialize',\n 'compare',\n ]),\n format: formatSchema.nullable(),\n count: z.number().int().min(1).max(Number.MAX_SAFE_INTEGER),\n message: boundedString,\n remediation: boundedString.nullable(),\n retryable: z.boolean(),\n location: diagnosticLocationSchema.nullable(),\n })\n .strict();\n\nexport const mcpErrorDetailSchema = z\n .object({\n code: idSchema,\n message: boundedNonEmptyString,\n stage: z\n .enum([\n 'resolve',\n 'import',\n 'parse',\n 'inspect',\n 'validate',\n 'transform',\n 'convert',\n 'render',\n 'export',\n 'materialize',\n 'compare',\n ])\n .nullable(),\n format: formatSchema.nullable(),\n hint: boundedString.nullable(),\n retryable: z.boolean(),\n operationLoad: z\n .object({\n active: z.number().int().nonnegative().max(32),\n capacity: z.number().int().positive().max(32),\n })\n .strict()\n .nullable(),\n })\n .strict()\n .superRefine((value, context) => {\n if (value.operationLoad && value.operationLoad.active > value.operationLoad.capacity) {\n context.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['operationLoad', 'active'],\n message: 'Active operation count cannot exceed capacity',\n });\n }\n });\n\nexport const mcpErrorResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('error'),\n result: z.null(),\n error: mcpErrorDetailSchema,\n })\n .strict();\n\n/**\n * Root-object output schema compatible with MCP SDK 1.29's object normalizer.\n *\n * The SDK must see an object at the root, while clients must see the two exact\n * wire branches rather than independently-nullable fields. A Zod 4 object lets\n * us publish the branch schemas through standard JSON Schema `oneOf` metadata;\n * runtime validation still delegates to the original Zod 3 schemas so custom\n * exact-wire refinements remain authoritative.\n */\nexport function toolOutputSchema<T extends z.ZodTypeAny>(success: T) {\n const successEnvelope = z\n .object({\n version: z.literal(1),\n kind: z.literal('success'),\n result: success,\n error: z.null(),\n })\n .strict();\n const errorEnvelope = z\n .object({\n version: z.literal(1),\n kind: z.literal('error'),\n result: z.null(),\n error: mcpErrorDetailSchema,\n })\n .strict();\n const publishedSuccess = z4\n .object({\n version: z4.literal(1),\n kind: z4.literal('success'),\n result: projectZod3Schema(success),\n error: z4.null(),\n })\n .strict();\n const publishedError = z4\n .object({\n version: z4.literal(1),\n kind: z4.literal('error'),\n result: z4.null(),\n error: projectZod3Schema(mcpErrorDetailSchema),\n })\n .strict();\n const oneOf = [\n jsonSchemaWithoutDialect(publishedSuccess),\n jsonSchemaWithoutDialect(publishedError),\n ];\n\n return z4\n .object({\n version: z4.literal(1),\n kind: z4.enum(['success', 'error']),\n result: z4.unknown(),\n error: z4.unknown(),\n })\n .strict()\n .superRefine((value, context) => {\n const branch = value.kind === 'success' ? successEnvelope : errorEnvelope;\n const parsed = branch.safeParse(value);\n if (parsed.success) return;\n for (const issue of parsed.error.issues) {\n context.addIssue({\n code: 'custom',\n path: issue.path,\n message: issue.message,\n });\n }\n })\n .meta({ oneOf });\n}\n\nconst assetSummarySchema = z\n .object({\n path: workspacePathSchema,\n mimeType: mimeTypeSchema,\n size: z.number().int().nonnegative().max(MCP_WIRE_LIMITS.artifactBytes),\n sha256: z\n .string()\n .regex(/^[a-f0-9]{64}$/u)\n .nullable(),\n altText: labelSchema.nullable(),\n credit: labelSchema.nullable(),\n license: labelSchema.nullable(),\n })\n .strict();\n\nexport const conversionResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('conversion'),\n sourceFormat: formatSchema,\n targetFormat: formatSchema,\n artifact: artifactRefSchema,\n fidelity: z.enum(['semantic', 'editable-native', 'rendered-fidelity', 'hybrid']),\n appliedThemeId: idSchema.nullable(),\n appliedTransformId: idSchema.nullable(),\n sourceAssets: z.array(assetSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n sourceAssetCount: z.number().int().min(0).max(MCP_WIRE_LIMITS.arrayEntries),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseConversionResult(value), context));\n\nconst metadataSchema = z\n .object({\n title: labelSchema.nullable(),\n author: labelSchema.nullable(),\n description: boundedString.nullable(),\n })\n .strict();\nconst statisticsSchema = z\n .object({\n blockCount: nonNegativeSafeIntegerSchema,\n wordCount: nonNegativeSafeIntegerSchema,\n characterCount: nonNegativeSafeIntegerSchema,\n tableCount: nonNegativeSafeIntegerSchema,\n linkCount: nonNegativeSafeIntegerSchema,\n assetCount: nonNegativeSafeIntegerSchema,\n pageCount: nonNegativeSafeIntegerSchema.nullable(),\n slideCount: nonNegativeSafeIntegerSchema.nullable(),\n sheetCount: nonNegativeSafeIntegerSchema.nullable(),\n })\n .strict();\nconst outlineEntrySchema = z\n .object({\n id: idSchema,\n title: nonEmptyLabelSchema,\n level: z.number().int().min(1).max(6),\n blockIndex: nonNegativeSafeIntegerSchema,\n })\n .strict();\nconst blockSummarySchema = z\n .object({\n id: idSchema,\n type: idSchema,\n text: excerptSchema,\n wordCount: nonNegativeSafeIntegerSchema,\n templateId: idSchema.nullable(),\n sourceRange: z\n .object({ start: nonNegativeSafeIntegerSchema, end: nonNegativeSafeIntegerSchema })\n .strict()\n .nullable(),\n })\n .strict();\nconst tableSummarySchema = z\n .object({\n index: nonNegativeSafeIntegerSchema,\n rowCount: nonNegativeSafeIntegerSchema,\n columnCount: nonNegativeSafeIntegerSchema,\n headers: z.array(labelSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict();\nconst linkSummarySchema = z\n .object({\n index: nonNegativeSafeIntegerSchema,\n text: labelSchema,\n target: uriTextSchema,\n })\n .strict();\nconst documentItemSummarySchema = z\n .object({\n kind: z.enum(['page', 'slide', 'sheet', 'frame']),\n index: nonNegativeSafeIntegerSchema,\n label: labelSchema.nullable(),\n blockIds: z.array(idSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict();\nconst themeSummarySchema = z\n .object({\n id: idSchema,\n name: nonEmptyLabelSchema,\n source: z.enum(['built-in', 'document', 'inferred']),\n layouts: z.array(nonEmptyLabelSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict();\n\nexport const inspectionResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('inspection'),\n sourceFormat: formatSchema,\n metadata: metadataSchema,\n statistics: statisticsSchema,\n outline: z.array(outlineEntrySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n blocks: z.array(blockSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n blockOffset: z.number().int().min(0).max(MCP_WIRE_LIMITS.arrayEntries),\n nextCursor: z\n .string()\n .max(MCP_WIRE_LIMITS.identifierCharacters)\n .regex(WIRE_STRING_PATTERN)\n .nullable(),\n tables: z.array(tableSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n links: z.array(linkSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n items: z.array(documentItemSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n assets: z.array(assetSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n theme: themeSummarySchema.nullable(),\n truncated: z.boolean(),\n detailsTruncated: z.boolean(),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseInspectionResult(value), context));\n\nexport const validationResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('validation'),\n sourceFormat: formatSchema,\n targetFormat: formatSchema.nullable(),\n valid: z.boolean(),\n summary: z\n .object({\n errorCount: nonNegativeSafeIntegerSchema,\n warningCount: nonNegativeSafeIntegerSchema,\n infoCount: nonNegativeSafeIntegerSchema,\n })\n .strict(),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseValidationResult(value), context));\n\nconst previewItemSchema = z\n .object({\n kind: z.enum(['page', 'slide', 'sheet', 'frame']),\n index: nonNegativeSafeIntegerSchema,\n label: labelSchema.nullable(),\n artifact: artifactRefSchema,\n width: z.number().int().min(1).max(MCP_WIRE_LIMITS.imageDimension),\n height: z.number().int().min(1).max(MCP_WIRE_LIMITS.imageDimension),\n })\n .strict();\nexport const previewResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('preview'),\n sourceFormat: formatSchema,\n previewBasis: z.enum(['source-render', 'reconstructed-import', 'native-extracted']),\n totalItems: nonNegativeSafeIntegerSchema,\n items: z.array(previewItemSchema).max(MCP_WIRE_LIMITS.previewItems),\n truncated: z.boolean(),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parsePreviewResult(value), context));\n\nconst comparisonChangeSchema = z\n .object({\n category: z.enum([\n 'text',\n 'structure',\n 'table',\n 'media',\n 'theme',\n 'layout',\n 'metadata',\n 'timing',\n 'accessibility',\n ]),\n status: z.enum(['retained', 'changed', 'degraded', 'omitted', 'added']),\n path: z.string().max(MCP_WIRE_LIMITS.pathCharacters).regex(WIRE_STRING_PATTERN).nullable(),\n message: boundedNonEmptyString,\n })\n .strict();\nconst comparisonMetricSchema = z\n .object({\n name: idSchema,\n leftValue: z.number().finite(),\n rightValue: z.number().finite(),\n similarity: z.number().min(0).max(1),\n })\n .strict();\nexport const comparisonResultSchema = z\n .object({\n version: z.literal(1),\n kind: z.literal('comparison'),\n leftFormat: formatSchema,\n rightFormat: formatSchema,\n equivalent: z.boolean(),\n score: z.number().min(0).max(1),\n changes: z.array(comparisonChangeSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n metrics: z.array(comparisonMetricSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n diagnostics: z.array(diagnosticSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict()\n .superRefine((value, context) => addExactWireIssue(parseComparisonResult(value), context));\n\nconst boundedPathTextSchema = z\n .string()\n .min(1)\n .max(MCP_WIRE_LIMITS.pathCharacters)\n .regex(WIRE_STRING_PATTERN, 'NUL and DEL are not permitted on the MCP wire');\nconst sha256Schema = z.string().regex(/^[a-f0-9]{64}$/u);\n\nexport const convertDocumentResultSchema = z\n .object({ results: z.array(conversionResultSchema).min(1).max(12) })\n .strict();\n\nexport const rootGrantSummarySchema = z\n .object({\n id: idSchema,\n label: nonEmptyLabelSchema,\n read: z.boolean(),\n write: z.boolean(),\n })\n .strict() satisfies z.ZodType<RootGrantSummary>;\n\nexport const listRootsResultSchema = z\n .object({ roots: z.array(rootGrantSummarySchema).max(64) })\n .strict() satisfies z.ZodType<ListRootsResult>;\n\nexport const saveArtifactResultSchema = z\n .object({\n artifact: artifactRefSchema,\n destination: z.object({ rootId: idSchema, path: workspacePathSchema }).strict(),\n sha256: sha256Schema,\n })\n .strict();\n\nexport const formatDirectionCapabilitySchema = z.discriminatedUnion('supported', [\n z\n .object({\n supported: z.literal(true),\n tool: z.enum(['inspect_document', 'convert_document']),\n })\n .strict(),\n z.object({ supported: z.literal(false), excludedReason: boundedString }).strict(),\n]) satisfies z.ZodType<FormatDirectionCapability>;\n\nexport const formatCapabilitySummarySchema = z\n .object({\n id: formatSchema,\n label: nonEmptyLabelSchema,\n mimeType: mimeTypeSchema,\n extensions: z.array(nonEmptyLabelSchema).max(64),\n import: formatDirectionCapabilitySchema,\n export: formatDirectionCapabilitySchema,\n })\n .strict() satisfies z.ZodType<FormatCapabilitySummary>;\n\nexport const listFormatsResultSchema = z\n .object({ formats: z.array(formatCapabilitySummarySchema).max(64) })\n .strict() satisfies z.ZodType<ListFormatsResult>;\n\nexport const themeCatalogEntrySchema = z\n .object({\n id: idSchema,\n name: nonEmptyLabelSchema,\n description: boundedString.optional(),\n })\n .strict() satisfies z.ZodType<ThemeCatalogEntry>;\n\nexport const listThemesResultSchema = z\n .object({ themes: z.array(themeCatalogEntrySchema).max(MCP_WIRE_LIMITS.arrayEntries) })\n .strict() satisfies z.ZodType<ListThemesResult>;\n\nexport const transformStyleSummarySchema = z\n .object({ id: idSchema, name: nonEmptyLabelSchema, description: boundedString })\n .strict() satisfies z.ZodType<TransformStyleSummary>;\n\nexport const listTransformStylesResultSchema = z\n .object({\n styles: z.array(transformStyleSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict() satisfies z.ZodType<ListTransformStylesResult>;\n\nexport const templateSummarySchema = z\n .object({ id: idSchema, label: nonEmptyLabelSchema, description: boundedString })\n .strict() satisfies z.ZodType<TemplateSummary>;\n\nexport const listTemplatesResultSchema = z\n .object({ templates: z.array(templateSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries) })\n .strict() satisfies z.ZodType<ListTemplatesResult>;\n\nexport const templateInputSummarySchema = z\n .object({\n key: idSchema,\n description: boundedString,\n type: nonEmptyLabelSchema,\n required: z.boolean(),\n values: z.array(labelSchema).max(MCP_WIRE_LIMITS.arrayEntries),\n valueHint: labelSchema.nullable(),\n })\n .strict() satisfies z.ZodType<TemplateInputSummary>;\n\nexport const describeTemplateResultSchema = z\n .object({\n template: templateSummarySchema\n .extend({ inputs: z.array(templateInputSummarySchema).max(MCP_WIRE_LIMITS.arrayEntries) })\n .strict(),\n annotationExample: boundedString,\n })\n .strict() satisfies z.ZodType<DescribeTemplateResult>;\n\nexport const templateContentProfileSchema = z\n .object({\n hasImage: z.boolean(),\n imageCount: nonNegativeSafeIntegerSchema,\n hasVideo: z.boolean(),\n hasBlockquote: z.boolean(),\n hasList: z.boolean(),\n hasTable: z.boolean(),\n hasDate: z.boolean(),\n hasNumberHighlight: z.boolean(),\n wordCount: nonNegativeSafeIntegerSchema,\n hasAsciiDiagram: z.boolean(),\n hasTimeline: z.boolean(),\n hasTree: z.boolean(),\n })\n .strict() satisfies z.ZodType<TemplateContentProfile>;\n\nexport const templateRecommendationSchema = z\n .object({\n blockId: idSchema,\n title: labelSchema.nullable(),\n profile: templateContentProfileSchema,\n recommendedTemplateIds: z.array(idSchema).max(256),\n })\n .strict() satisfies z.ZodType<TemplateRecommendation>;\n\nexport const recommendTemplatesResultSchema = z\n .object({\n recommendations: z.array(templateRecommendationSchema).max(100),\n totalBlocks: nonNegativeSafeIntegerSchema,\n truncated: z.boolean(),\n })\n .strict() satisfies z.ZodType<RecommendTemplatesResult>;\n\nexport const themeDescriptionSchema = z\n .object({\n id: idSchema,\n name: nonEmptyLabelSchema,\n description: boundedString,\n colors: z\n .object({\n primary: nonEmptyLabelSchema,\n secondary: nonEmptyLabelSchema,\n background: nonEmptyLabelSchema,\n text: nonEmptyLabelSchema,\n highlight: nonEmptyLabelSchema,\n })\n .strict(),\n bodyFont: boundedString,\n titleFont: boundedString,\n })\n .strict() satisfies z.ZodType<ThemeDescription>;\n\nexport const describeThemeResultSchema = z\n .object({ theme: themeDescriptionSchema, source: z.enum(['built-in', 'document']) })\n .strict() satisfies z.ZodType<DescribeThemeResult>;\n\nexport const inferredLayoutSummarySchema = z\n .object({ id: nonEmptyLabelSchema, name: nonEmptyLabelSchema, description: boundedString })\n .strict();\n\nexport const inferThemeResultSchema = z\n .object({\n sourceFormat: formatSchema,\n sourceSha256: sha256Schema,\n theme: themeDescriptionSchema,\n layouts: z.array(inferredLayoutSummarySchema).max(1_000),\n warnings: z.array(boundedString).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict() satisfies z.ZodType<InferThemeResult>;\n\nexport const pptxLayoutSummarySchema = z\n .object({\n layoutPath: boundedPathTextSchema,\n name: nonEmptyLabelSchema,\n masterName: labelSchema.nullable(),\n type: labelSchema.nullable(),\n slideCount: nonNegativeSafeIntegerSchema,\n verdict: z.enum(['builtin', 'custom', 'plain', 'skip']),\n templateId: labelSchema.nullable(),\n notes: z.array(boundedString).max(1_000),\n })\n .strict() satisfies z.ZodType<PptxLayoutSummary>;\n\nexport const inspectPptxLayoutsResultSchema = z\n .object({\n slideSize: z\n .object({ cx: nonNegativeSafeIntegerSchema, cy: nonNegativeSafeIntegerSchema })\n .strict(),\n layouts: z.array(pptxLayoutSummarySchema).max(2_048),\n })\n .strict() satisfies z.ZodType<InspectPptxLayoutsResult>;\n\nexport const applyInferredThemeResultSchema = z\n .object({\n result: conversionResultSchema,\n theme: themeDescriptionSchema,\n layoutIds: z.array(labelSchema).max(1_000),\n warnings: z.array(boundedString).max(MCP_WIRE_LIMITS.arrayEntries),\n })\n .strict();\n\n/** Core-owned success payload schemas for every advertised canonical MCP tool. */\nexport const DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS: Readonly<\n Record<DocBlocksMcpToolName, z.ZodTypeAny>\n> = Object.freeze({\n list_roots: listRootsResultSchema,\n get_conversion_report: conversionResultSchema,\n convert_document: convertDocumentResultSchema,\n create_document_bundle: conversionResultSchema,\n save_artifact: saveArtifactResultSchema,\n inspect_document: inspectionResultSchema,\n validate_document: validationResultSchema,\n preview_document: previewResultSchema,\n compare_documents: comparisonResultSchema,\n list_templates: listTemplatesResultSchema,\n describe_template: describeTemplateResultSchema,\n recommend_templates: recommendTemplatesResultSchema,\n describe_theme: describeThemeResultSchema,\n infer_theme_from_file: inferThemeResultSchema,\n inspect_pptx_layouts: inspectPptxLayoutsResultSchema,\n apply_inferred_theme: applyInferredThemeResultSchema,\n list_formats: listFormatsResultSchema,\n list_themes: listThemesResultSchema,\n list_transform_styles: listTransformStylesResultSchema,\n});\n\n/** Exact success/error envelopes consumed directly by MCP tool registration. */\ntype DocBlocksMcpToolOutputSchema = ReturnType<typeof toolOutputSchema>;\nexport const DOCBLOCKS_MCP_TOOL_OUTPUT_SCHEMAS: Readonly<\n Record<DocBlocksMcpToolName, DocBlocksMcpToolOutputSchema>\n> = Object.freeze({\n list_roots: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_roots),\n get_conversion_report: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.get_conversion_report),\n convert_document: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.convert_document),\n create_document_bundle: toolOutputSchema(\n DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.create_document_bundle,\n ),\n save_artifact: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.save_artifact),\n inspect_document: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.inspect_document),\n validate_document: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.validate_document),\n preview_document: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.preview_document),\n compare_documents: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.compare_documents),\n list_templates: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_templates),\n describe_template: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.describe_template),\n recommend_templates: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.recommend_templates),\n describe_theme: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.describe_theme),\n infer_theme_from_file: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.infer_theme_from_file),\n inspect_pptx_layouts: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.inspect_pptx_layouts),\n apply_inferred_theme: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.apply_inferred_theme),\n list_formats: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_formats),\n list_themes: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_themes),\n list_transform_styles: toolOutputSchema(DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS.list_transform_styles),\n});\n\nexport const materializationOptionsSchema = z.discriminatedUnion('ifExists', [\n z\n .object({\n rootId: idSchema,\n path: workspacePathSchema,\n ifExists: z.literal('error'),\n expectedSha256: z.null(),\n })\n .strict(),\n z\n .object({\n rootId: idSchema,\n path: workspacePathSchema,\n ifExists: z.literal('replace'),\n expectedSha256: z.string().regex(/^[a-f0-9]{64}$/u),\n })\n .strict(),\n]);\n\nfunction addExactWireIssue<T>(parsed: T | null, context: z.RefinementCtx): void {\n if (parsed !== null) return;\n context.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Value does not satisfy the exact DocBlocks MCP wire invariants',\n });\n}\n\n/** Project the Zod 3 subset used by tool outputs into Zod 4 for SDK JSON Schema publication. */\nfunction projectZod3Schema(schema: z.ZodTypeAny): z4.ZodType {\n if (schema instanceof z.ZodEffects) return projectZod3Schema(schema.innerType());\n if (schema instanceof z.ZodOptional) return projectZod3Schema(schema.unwrap()).optional();\n if (schema instanceof z.ZodNullable) return projectZod3Schema(schema.unwrap()).nullable();\n if (schema instanceof z.ZodString) {\n let projected = z4.string();\n for (const check of schema._def.checks) {\n switch (check.kind) {\n case 'min':\n projected = projected.min(check.value);\n break;\n case 'max':\n projected = projected.max(check.value);\n break;\n case 'length':\n projected = projected.length(check.value);\n break;\n case 'regex':\n projected = projected.regex(check.regex);\n break;\n default:\n throw new Error(`Unsupported Zod string check in MCP output schema: ${check.kind}`);\n }\n }\n return projected;\n }\n if (schema instanceof z.ZodNumber) {\n let projected = z4.number();\n for (const check of schema._def.checks) {\n switch (check.kind) {\n case 'min':\n projected = check.inclusive ? projected.min(check.value) : projected.gt(check.value);\n break;\n case 'max':\n projected = check.inclusive ? projected.max(check.value) : projected.lt(check.value);\n break;\n case 'int':\n projected = projected.int();\n break;\n case 'multipleOf':\n projected = projected.multipleOf(check.value);\n break;\n case 'finite':\n // Zod 4 numbers reject infinities by default.\n break;\n }\n }\n return projected;\n }\n if (schema instanceof z.ZodBoolean) return z4.boolean();\n if (schema instanceof z.ZodNull) return z4.null();\n if (schema instanceof z.ZodAny) return z4.any();\n if (schema instanceof z.ZodUnknown) return z4.unknown();\n if (schema instanceof z.ZodNever) return z4.never();\n if (schema instanceof z.ZodLiteral) {\n const value: unknown = schema.value;\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'bigint' ||\n value === null\n ) {\n return z4.literal(value);\n }\n throw new Error('Unsupported Zod literal in MCP output schema');\n }\n if (schema instanceof z.ZodEnum) {\n const [first, ...rest] = schema.options;\n if (first === undefined) throw new Error('Empty Zod enum in MCP output schema');\n return z4.enum([first, ...rest]);\n }\n if (schema instanceof z.ZodArray) {\n let projected = z4.array(projectZod3Schema(schema.element));\n if (schema._def.minLength) projected = projected.min(schema._def.minLength.value);\n if (schema._def.maxLength) projected = projected.max(schema._def.maxLength.value);\n if (schema._def.exactLength) projected = projected.length(schema._def.exactLength.value);\n return projected;\n }\n if (schema instanceof z.ZodObject) {\n const sourceShape = schema.shape as z.ZodRawShape;\n const shape = Object.fromEntries(\n Object.entries(sourceShape).map(([key, value]) => [key, projectZod3Schema(value)]),\n );\n if (schema._def.unknownKeys === 'passthrough') return z4.looseObject(shape);\n return z4.object(shape);\n }\n if (schema instanceof z.ZodDiscriminatedUnion) {\n const options = schema.options as readonly z.ZodTypeAny[];\n return projectUnion(options.map((option) => projectZod3Schema(option)));\n }\n if (schema instanceof z.ZodUnion) {\n const options = schema.options as readonly z.ZodTypeAny[];\n return projectUnion(options.map((option) => projectZod3Schema(option)));\n }\n throw new Error(`Unsupported Zod type in MCP output schema: ${schema._def.typeName}`);\n}\n\nfunction projectUnion(options: z4.ZodType[]): z4.ZodType {\n const [first, second, ...rest] = options;\n if (!first || !second) throw new Error('MCP output unions require at least two alternatives');\n return z4.union([first, second, ...rest]);\n}\n\nfunction jsonSchemaWithoutDialect(schema: z4.ZodType): Record<string, unknown> {\n const { $schema: _dialect, ...jsonSchema } = z4.toJSONSchema(schema, { target: 'draft-7' });\n return jsonSchema;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Canonical wire format for a document embedded in a DocBlocks URL hash.
3
+ *
4
+ * The base64 payload is deliberately small and versioned:
5
+ *
6
+ * "DBSHARE" + version byte + mode byte + bounded DBK bytes
7
+ *
8
+ * The DBK itself is validated at the filesystem import boundary. Keeping the
9
+ * launch mode outside the archive means the copied Markdown is never mutated
10
+ * merely to choose its initial presentation.
11
+ */
12
+ type SharedDocumentMode = 'slideshow' | 'video' | 'page' | 'document' | 'narrate';
13
+ interface SharedDocumentPayload {
14
+ readonly archive: Uint8Array;
15
+ readonly mode: SharedDocumentMode | null;
16
+ }
17
+ type SharedDocumentHashParseResult = {
18
+ readonly kind: 'none';
19
+ } | {
20
+ readonly kind: 'valid';
21
+ readonly payload: SharedDocumentPayload;
22
+ } | {
23
+ readonly kind: 'invalid';
24
+ readonly message: string;
25
+ };
26
+ declare const SHARED_DOCUMENT_LIMITS: Readonly<{
27
+ /** A conservative interoperability threshold, not a universal browser limit. */
28
+ portableUrlCharacters: 4096;
29
+ /** Hard cap applied before a hash is copied or decoded. */
30
+ urlCharacters: 32768;
31
+ /** Maximum UTF-8 Markdown accepted by the first-party link generator. */
32
+ markdownBytes: number;
33
+ /** Maximum compressed DBK bytes carried by the versioned envelope. */
34
+ archiveBytes: number;
35
+ }>;
36
+ /** Build the exact `#shared(<base64>)` fragment for a bounded DBK archive. */
37
+ declare function createSharedDocumentHash(archive: Uint8Array, mode?: SharedDocumentMode | null): string;
38
+ /** Replace any existing hash on a base URL with a validated shared payload. */
39
+ declare function createSharedDocumentUrl(baseUrl: string, archive: Uint8Array, mode?: SharedDocumentMode | null): string;
40
+ /** Parse a hash without ever treating malformed shared input as workspace routing. */
41
+ declare function parseSharedDocumentHash(hash: string): SharedDocumentHashParseResult;
42
+
43
+ export { SHARED_DOCUMENT_LIMITS, type SharedDocumentHashParseResult, type SharedDocumentMode, type SharedDocumentPayload, createSharedDocumentHash, createSharedDocumentUrl, parseSharedDocumentHash };
@@ -0,0 +1,13 @@
1
+ import {
2
+ SHARED_DOCUMENT_LIMITS,
3
+ createSharedDocumentHash,
4
+ createSharedDocumentUrl,
5
+ parseSharedDocumentHash
6
+ } from "../chunk-BXMF5YQJ.js";
7
+ export {
8
+ SHARED_DOCUMENT_LIMITS,
9
+ createSharedDocumentHash,
10
+ createSharedDocumentUrl,
11
+ parseSharedDocumentHash
12
+ };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,301 @@
1
+ import { a as WorkspacePath } from './workspace-path-CWVrcuPL.js';
2
+
3
+ /** Stable error codes shared by every filesystem transport and backend. */
4
+ type FsErrorCode = 'invalid-path' | 'path-escape' | 'not-found' | 'already-exists' | 'type-mismatch' | 'not-empty' | 'permission-denied' | 'conflict' | 'corrupt' | 'quota-exceeded' | 'not-supported' | 'busy' | 'disposed' | 'closed' | 'aborted' | 'io';
5
+ type FsOperation = 'parse-path' | 'read' | 'stat' | 'list' | 'write' | 'create-directory' | 'remove' | 'move' | 'snapshot' | 'watch' | 'dispose';
6
+ /** Plain-data form safe to send over IPC, postMessage, or JSON. */
7
+ interface SerializedFsError {
8
+ readonly name: 'FsError';
9
+ readonly code: FsErrorCode;
10
+ readonly message: string;
11
+ readonly operation: FsOperation | null;
12
+ readonly path: string | null;
13
+ readonly destinationPath: string | null;
14
+ readonly retryable: boolean;
15
+ }
16
+ interface FsErrorContext {
17
+ readonly operation?: FsOperation;
18
+ readonly path?: string;
19
+ readonly destinationPath?: string;
20
+ readonly retryable?: boolean;
21
+ readonly defaultCode?: FsErrorCode;
22
+ }
23
+ /** Error with a stable code and a deliberately serializable public shape. */
24
+ declare class FsError extends Error {
25
+ readonly code: FsErrorCode;
26
+ readonly operation: FsOperation | null;
27
+ readonly path: string | null;
28
+ readonly destinationPath: string | null;
29
+ readonly retryable: boolean;
30
+ constructor(code: FsErrorCode, message: string, context?: FsErrorContext);
31
+ toJSON(): SerializedFsError;
32
+ }
33
+ declare function mapDomExceptionToFsErrorCode(name: string): FsErrorCode;
34
+ declare function mapNodeErrorCodeToFsErrorCode(code: string): FsErrorCode;
35
+ declare function isSerializedFsError(value: unknown): value is SerializedFsError;
36
+ declare function deserializeFsError(value: SerializedFsError): FsError;
37
+ declare function fsErrorFromUnknown(error: unknown, context?: FsErrorContext): FsError;
38
+ declare function serializeFsError(error: unknown, context?: FsErrorContext): SerializedFsError;
39
+ /**
40
+ * True when a storage backend rejected an operation because the origin or
41
+ * device is out of space. Covers typed `FsError`s (`'quota-exceeded'`, from
42
+ * DOMException `QuotaExceededError` or Node `ENOSPC`/`EDQUOT`), serialized
43
+ * transport copies, and raw DOMExceptions from backends that do not wrap
44
+ * their errors (e.g. the File System Access API) — including cross-realm
45
+ * instances where `instanceof DOMException` would fail.
46
+ */
47
+ declare function isQuotaExceededError(error: unknown): boolean;
48
+
49
+ /**
50
+ * Opaque provider-issued token representing one observed entry/tree state.
51
+ * Tokens support equality only within the issuing provider; callers must not
52
+ * parse them or assume a move or byte-identical rewrite changes the token.
53
+ * A token need not be a content hash, but it must change whenever the issuing
54
+ * provider observes a potentially different kind, payload, or descendant
55
+ * state. Detection of non-cooperating external changes is bounded by the
56
+ * backend's declared capabilities and metadata precision.
57
+ */
58
+ declare const fileSystemVersionBrand: unique symbol;
59
+ type FileSystemVersion = string & {
60
+ readonly [fileSystemVersionBrand]: 'FileSystemVersion';
61
+ };
62
+ /** Validate/rebrand a version received from a provider transport. */
63
+ declare function parseFileSystemVersion(value: unknown): FileSystemVersion;
64
+ declare function tryParseFileSystemVersion(value: unknown): FileSystemVersion | null;
65
+ /** `process` excludes this provider's local peers; `cross-context` also excludes cooperating tabs/processes. */
66
+ type FileSystemAtomicity = 'none' | 'process' | 'cross-context';
67
+ type FileSystemCaseSensitivity = 'sensitive' | 'insensitive' | 'platform';
68
+ type FileSystemDurability = 'volatile' | 'best-effort' | 'durable';
69
+ type FileSystemConditionalWriteStrength = 'none' | 'process' | 'cross-context' | 'storage-atomic';
70
+ type FileSystemSymlinkPolicy = 'unsupported' | 'reject' | 'follow-contained' | 'preserve';
71
+ /** Serializable feature declaration; consumers never need provider instanceof checks. */
72
+ interface FileSystemProviderCapabilities {
73
+ /** Isolation of one successful file replacement from cooperating writers. */
74
+ readonly writeAtomicity: FileSystemAtomicity;
75
+ /** Isolation of one successful source-to-destination move. */
76
+ readonly moveAtomicity: FileSystemAtomicity;
77
+ /** Writers excluded while one complete snapshot is captured. */
78
+ readonly snapshotAtomicity: FileSystemAtomicity;
79
+ /** Strongest boundary at which expectedVersion is checked with mutation. */
80
+ readonly conditionalWrite: FileSystemConditionalWriteStrength;
81
+ readonly recursiveRemove: boolean;
82
+ /** True only when watch has a real ready barrier and sequenced events. */
83
+ readonly watch: boolean;
84
+ readonly caseSensitivity: FileSystemCaseSensitivity;
85
+ readonly symlinkPolicy: FileSystemSymlinkPolicy;
86
+ readonly durability: FileSystemDurability;
87
+ }
88
+ interface FileSystemEntrySnapshotBase {
89
+ readonly path: WorkspacePath;
90
+ readonly name: string;
91
+ readonly version: FileSystemVersion;
92
+ /** ISO-8601 timestamp supplied by the backend; versions remain authoritative. */
93
+ readonly lastModified: string;
94
+ }
95
+ interface FileSystemFileSnapshot extends FileSystemEntrySnapshotBase {
96
+ readonly kind: 'file';
97
+ readonly size: number;
98
+ }
99
+ interface FileSystemDirectorySnapshot extends FileSystemEntrySnapshotBase {
100
+ readonly kind: 'directory';
101
+ readonly size: null;
102
+ }
103
+ type FileSystemEntrySnapshot = FileSystemFileSnapshot | FileSystemDirectorySnapshot;
104
+ /** A read always couples owned bytes to the exact metadata version they represent. */
105
+ interface FileSystemFileRead {
106
+ readonly entry: FileSystemFileSnapshot;
107
+ readonly data: ArrayBuffer;
108
+ }
109
+ interface FileSystemSnapshotFile extends FileSystemFileSnapshot {
110
+ readonly data: ArrayBuffer;
111
+ }
112
+ type FileSystemSnapshotEntry = FileSystemSnapshotFile | FileSystemDirectorySnapshot;
113
+ /**
114
+ * Complete best-available tree traversal. `snapshotAtomicity` declares
115
+ * whether concurrent local/cross-context mutations are excluded while it is
116
+ * captured. Implementations must never expose aliased buffers.
117
+ */
118
+ interface FileSystemSnapshot {
119
+ readonly version: FileSystemVersion;
120
+ readonly entries: readonly FileSystemSnapshotEntry[];
121
+ }
122
+ type FileSystemWriteMode = 'upsert' | 'create' | 'replace';
123
+ interface FileSystemWriteOptions {
124
+ /** Defaults to upsert. */
125
+ readonly mode?: FileSystemWriteMode;
126
+ /** Defaults to false so structure creation is never implicit. */
127
+ readonly createParents?: boolean;
128
+ /** null means the entry must not exist; a token requires an exact match. */
129
+ readonly expectedVersion?: FileSystemVersion | null;
130
+ }
131
+ type FileSystemCreateDirectoryMode = 'ensure' | 'create';
132
+ interface FileSystemCreateDirectoryOptions {
133
+ /** Defaults to ensure (idempotently return an existing directory). */
134
+ readonly mode?: FileSystemCreateDirectoryMode;
135
+ /** Defaults to false. */
136
+ readonly createParents?: boolean;
137
+ }
138
+ interface FileSystemRemoveOptions {
139
+ /** Defaults to false; non-empty directories otherwise fail with not-empty. */
140
+ readonly recursive?: boolean;
141
+ /** Defaults to error. */
142
+ readonly missing?: 'ignore' | 'error';
143
+ readonly expectedVersion?: FileSystemVersion;
144
+ }
145
+ interface FileSystemRemoveResult {
146
+ readonly removed: boolean;
147
+ /** Version of the complete tree after the removal attempt. */
148
+ readonly version: FileSystemVersion;
149
+ }
150
+ interface FileSystemMoveOptions {
151
+ /** Defaults to false. Destinations are never overwritten. */
152
+ readonly createParents?: boolean;
153
+ readonly expectedVersion?: FileSystemVersion;
154
+ }
155
+ type FileSystemWatchEventType = 'created' | 'modified' | 'removed' | 'moved' | 'overflow';
156
+ type FileSystemWatchEventOrigin = 'local' | 'external' | 'unknown';
157
+ interface FileSystemWatchEventBase {
158
+ readonly sequence: number;
159
+ readonly origin: FileSystemWatchEventOrigin;
160
+ readonly path: WorkspacePath;
161
+ }
162
+ interface FileSystemEntryWatchEvent extends FileSystemWatchEventBase {
163
+ readonly type: Exclude<FileSystemWatchEventType, 'overflow'>;
164
+ readonly kind: 'file' | 'directory';
165
+ readonly destinationPath: WorkspacePath | null;
166
+ readonly version: FileSystemVersion | null;
167
+ readonly previousVersion: FileSystemVersion | null;
168
+ }
169
+ interface FileSystemOverflowWatchEvent extends FileSystemWatchEventBase {
170
+ readonly type: 'overflow';
171
+ readonly kind: null;
172
+ readonly destinationPath: null;
173
+ readonly version: null;
174
+ readonly previousVersion: null;
175
+ }
176
+ type FileSystemWatchEvent = FileSystemEntryWatchEvent | FileSystemOverflowWatchEvent;
177
+ type FileSystemWatchListener = (event: FileSystemWatchEvent) => void;
178
+ type FileSystemWatchErrorListener = (error: FsError) => void;
179
+ interface FileSystemWatchOptions {
180
+ readonly onError?: FileSystemWatchErrorListener;
181
+ }
182
+ interface FileSystemWatchSubscription {
183
+ readonly closed: boolean;
184
+ /** Resolves after the backend watch is installed and no initial event can be missed. */
185
+ readonly ready: Promise<void>;
186
+ /** Idempotent and awaitable so resource release can join provider shutdown. */
187
+ dispose(): Promise<void>;
188
+ }
189
+ /**
190
+ * Correctness-first filesystem contract. Every logical path has exactly one
191
+ * kind and one byte payload; conditional writes and lifecycle disposal are
192
+ * mandatory rather than optional provider extensions.
193
+ */
194
+ interface FileSystemProviderV2 {
195
+ readonly id: string;
196
+ readonly label: string;
197
+ readonly capabilities: FileSystemProviderCapabilities;
198
+ /** Absence is represented only by null; permission/I/O/wrong-kind errors throw FsError. */
199
+ stat(path: WorkspacePath): Promise<FileSystemEntrySnapshot | null>;
200
+ /** Absence is represented only by null; a directory at path is type-mismatch. */
201
+ readFile(path: WorkspacePath): Promise<FileSystemFileRead | null>;
202
+ /** Missing paths and file paths throw; results are canonical and deterministic. */
203
+ readDirectory(path: WorkspacePath): Promise<readonly FileSystemEntrySnapshot[]>;
204
+ writeFile(path: WorkspacePath, data: ArrayBuffer | Uint8Array, options?: FileSystemWriteOptions): Promise<FileSystemFileSnapshot>;
205
+ createDirectory(path: WorkspacePath, options?: FileSystemCreateDirectoryOptions): Promise<FileSystemDirectorySnapshot>;
206
+ remove(path: WorkspacePath, options?: FileSystemRemoveOptions): Promise<FileSystemRemoveResult>;
207
+ move(oldPath: WorkspacePath, newPath: WorkspacePath, options?: FileSystemMoveOptions): Promise<FileSystemEntrySnapshot>;
208
+ snapshot(): Promise<FileSystemSnapshot>;
209
+ /**
210
+ * Always returns a disposable subscription. When `capabilities.watch` is
211
+ * false, `ready` rejects with `FsError('not-supported')` and `onError`
212
+ * observes the same failure; callers can therefore use one cleanup path.
213
+ */
214
+ watch(listener: FileSystemWatchListener, options?: FileSystemWatchOptions): FileSystemWatchSubscription;
215
+ dispose(): Promise<void>;
216
+ }
217
+
218
+ /**
219
+ * FileSystemProvider — abstract interface for a virtual filesystem.
220
+ *
221
+ * Legacy text-oriented facade retained while consumers migrate to
222
+ * FileSystemProviderV2. New persistence code must use the provider's `v2`
223
+ * contract so paths, errors, operation modes, and capabilities are explicit.
224
+ */
225
+
226
+ interface FileEntry {
227
+ kind: 'file';
228
+ name: string;
229
+ path: string;
230
+ }
231
+ interface FolderEntry {
232
+ kind: 'directory';
233
+ name: string;
234
+ path: string;
235
+ }
236
+ type FileSystemEntry = FileEntry | FolderEntry;
237
+ interface FileMeta {
238
+ name: string;
239
+ path: string;
240
+ size: number;
241
+ lastModified: string;
242
+ }
243
+ type FileCommitResult = {
244
+ status: 'committed';
245
+ version: string | null;
246
+ } | {
247
+ status: 'conflict';
248
+ content: string | null;
249
+ version: string | null;
250
+ };
251
+ /**
252
+ * @deprecated Compatibility facade for external providers and older callers.
253
+ * Implement new backends with `FileSystemProviderV2`; built-in facades expose
254
+ * their authoritative implementation through `v2`.
255
+ */
256
+ interface FileSystemProvider {
257
+ /** Unique identifier for this provider instance. */
258
+ readonly id: string;
259
+ /** Human-readable label (e.g., folder name or "Browser Storage"). */
260
+ readonly label: string;
261
+ /** Optional correctness-first implementation exposed during the v1-to-v2 migration. */
262
+ readonly v2?: FileSystemProviderV2;
263
+ /** Read the text content of a file. Returns null if the file doesn't exist. */
264
+ readFile(path: string): Promise<string | null>;
265
+ /** Write text content to a file, creating it (and parent dirs) if needed. */
266
+ writeFile(path: string, content: string): Promise<void>;
267
+ /**
268
+ * Conditionally replace a text file when it still matches the caller's
269
+ * persisted baseline. Production providers implement this at their
270
+ * strongest available serialization boundary.
271
+ */
272
+ commitFile?(path: string, content: string, expectedContent: string | null): Promise<FileCommitResult>;
273
+ /**
274
+ * Legacy recursive removal of a file or directory subtree. Workspace root
275
+ * deletion is forbidden. Prefer v2 `remove({ recursive })`.
276
+ */
277
+ delete(path: string): Promise<void>;
278
+ /** Rename or move an entry. Rejects missing sources and existing destinations. */
279
+ rename(oldPath: string, newPath: string): Promise<void>;
280
+ /** List immediate children of a directory. */
281
+ readDirectory(path: string): Promise<FileSystemEntry[]>;
282
+ /** Check whether a path exists. */
283
+ exists(path: string): Promise<boolean>;
284
+ /** Create a directory (and parents if needed). */
285
+ createDirectory(path: string): Promise<void>;
286
+ /** Get metadata for a file. Returns null if not found. */
287
+ stat(path: string): Promise<FileMeta | null>;
288
+ /** Read raw binary content. Returns null if not found. */
289
+ readBinary(path: string): Promise<ArrayBuffer | null>;
290
+ /** Write raw binary content. */
291
+ writeBinary(path: string, data: ArrayBuffer | Uint8Array): Promise<void>;
292
+ }
293
+ type FileSystemProviderWithV2 = FileSystemProvider & {
294
+ readonly v2: FileSystemProviderV2;
295
+ };
296
+ /** Discover a provider-owned v2 implementation without coupling consumers to a concrete class. */
297
+ declare function hasFileSystemProviderV2(provider: FileSystemProvider): provider is FileSystemProviderWithV2;
298
+ /** Return the provider-owned v2 implementation when migration support is available. */
299
+ declare function getFileSystemProviderV2(provider: FileSystemProvider): FileSystemProviderV2 | null;
300
+
301
+ export { tryParseFileSystemVersion as $, type FileSystemVersion as A, type FileSystemWatchErrorListener as B, type FileSystemWatchEvent as C, type FileSystemWatchEventOrigin as D, type FileSystemWatchEventType as E, type FileCommitResult as F, type FileSystemWatchListener as G, type FileSystemWatchOptions as H, type FileSystemWatchSubscription as I, type FileSystemWriteMode as J, type FileSystemWriteOptions as K, type FolderEntry as L, FsError as M, type FsErrorCode as N, type FsErrorContext as O, type FsOperation as P, deserializeFsError as Q, fsErrorFromUnknown as R, type SerializedFsError as S, getFileSystemProviderV2 as T, hasFileSystemProviderV2 as U, isQuotaExceededError as V, isSerializedFsError as W, mapDomExceptionToFsErrorCode as X, mapNodeErrorCodeToFsErrorCode as Y, parseFileSystemVersion as Z, serializeFsError as _, type FileEntry as a, type FileMeta as b, type FileSystemAtomicity as c, type FileSystemCaseSensitivity as d, type FileSystemConditionalWriteStrength as e, type FileSystemCreateDirectoryMode as f, type FileSystemCreateDirectoryOptions as g, type FileSystemDirectorySnapshot as h, type FileSystemDurability as i, type FileSystemEntry as j, type FileSystemEntrySnapshot as k, type FileSystemEntryWatchEvent as l, type FileSystemFileRead as m, type FileSystemFileSnapshot as n, type FileSystemMoveOptions as o, type FileSystemOverflowWatchEvent as p, type FileSystemProvider as q, type FileSystemProviderCapabilities as r, type FileSystemProviderV2 as s, type FileSystemProviderWithV2 as t, type FileSystemRemoveOptions as u, type FileSystemRemoveResult as v, type FileSystemSnapshot as w, type FileSystemSnapshotEntry as x, type FileSystemSnapshotFile as y, type FileSystemSymlinkPolicy as z };