@shoalrun/cli 1.0.0 → 1.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 (406) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/CODE-REFERENCES.md +19 -0
  3. package/README.md +13 -4
  4. package/adapters/typescript/README.md +27 -0
  5. package/adapters/typescript/shoalrun-reference.mjs +260 -0
  6. package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +3 -1
  7. package/agent-docs/SNAPSHOT.json +5 -5
  8. package/agent-docs/api-docs/code-reference-settings.md +2 -2
  9. package/agent-docs/api-docs/code-reference-settings.sections/catalog-settings.md +2 -2
  10. package/agent-docs/api-docs/code-reference-settings.sections/complete-reference-page.md +2 -2
  11. package/agent-docs/api-docs/code-reference-settings.sections/converter-snapshot.md +2 -2
  12. package/agent-docs/api-docs/code-reference-settings.sections/descriptions-type-links-and-source-links.md +2 -2
  13. package/agent-docs/api-docs/code-reference-settings.sections/html-markdown-and-agents.md +2 -2
  14. package/agent-docs/api-docs/code-reference-settings.sections/metadata-and-selection.md +2 -2
  15. package/agent-docs/api-docs/code-reference-settings.sections/publication-sources.md +2 -2
  16. package/agent-docs/api-docs/code-reference-settings.sections/python-adapter-limits.md +2 -2
  17. package/agent-docs/api-docs/code-reference-settings.sections/related-reading.md +2 -2
  18. package/agent-docs/api-docs/code-reference-settings.sections/symbol-fields.md +2 -2
  19. package/agent-docs/api-docs/code-references.md +9 -1
  20. package/agent-docs/api-docs/code-references.sections/a-real-typescript-example.md +38 -0
  21. package/agent-docs/api-docs/code-references.sections/add-python-source.md +56 -0
  22. package/agent-docs/api-docs/code-references.sections/before-you-start.md +40 -0
  23. package/agent-docs/api-docs/code-references.sections/build-and-verify.md +47 -0
  24. package/agent-docs/api-docs/code-references.sections/choose-the-reading-layout.md +46 -0
  25. package/agent-docs/api-docs/code-references.sections/extract-and-validate-a-snapshot.md +52 -0
  26. package/agent-docs/api-docs/code-references.sections/html-markdown-and-agents.md +42 -0
  27. package/agent-docs/api-docs/code-references.sections/register-the-catalog-and-navigation.md +58 -0
  28. package/agent-docs/api-docs/code-references.sections/related-reading.md +40 -0
  29. package/agent-docs/api-docs/code-references.sections/versions-profiles-and-delivery.md +40 -0
  30. package/agent-docs/api-docs/typescript-references.md +93 -0
  31. package/agent-docs/author/components/for-facet.md +127 -0
  32. package/agent-docs/author/components/only.md +3 -1
  33. package/agent-docs/author/components.md +2 -1
  34. package/agent-docs/author/reader-views.md +2 -2
  35. package/agent-docs/author/reader-views.sections/configure-the-choices.md +2 -2
  36. package/agent-docs/author/reader-views.sections/connect-your-own-control.md +2 -2
  37. package/agent-docs/author/reader-views.sections/how-it-works-for-agents.md +2 -2
  38. package/agent-docs/author/reader-views.sections/mark-pages.md +2 -2
  39. package/agent-docs/author/reader-views.sections/mark-sections-and-add-an-entry-choice.md +2 -2
  40. package/agent-docs/author/reader-views.sections/place-filter-controls.md +2 -2
  41. package/agent-docs/author/reader-views.sections/try-the-controls-here.md +2 -2
  42. package/agent-docs/changelog/facet-typescript.md +54 -0
  43. package/agent-docs/changelog.md +8 -0
  44. package/agent-docs/config/examples.md +2 -2
  45. package/agent-docs/config/examples.sections/feature-showcase.md +2 -2
  46. package/agent-docs/config/examples.sections/minimal-site.md +1 -1
  47. package/agent-docs/config/examples.sections/multilingual-help-center.md +1 -1
  48. package/agent-docs/config/examples.sections/parcel-api-documentation.md +1 -1
  49. package/agent-docs/config/examples.sections/related-reading.md +1 -1
  50. package/agent-docs/config/examples.sections/shared-company-preset.md +1 -1
  51. package/agent-docs/config/outputs.md +12 -12
  52. package/agent-docs/config/outputs.sections/exports.md +12 -12
  53. package/agent-docs/config/outputs.sections/metadata.md +1 -1
  54. package/agent-docs/config/outputs.sections/pdf-output.md +1 -1
  55. package/agent-docs/config/outputs.sections/related-reading.md +1 -1
  56. package/agent-docs/config/site.md +17 -17
  57. package/agent-docs/config/site.sections/related-reading.md +1 -1
  58. package/agent-docs/config/site.sections/theme.md +1 -1
  59. package/agent-docs/configuration.md +1 -1
  60. package/agent-docs/configuration.sections/start-with-one-working-file.md +1 -1
  61. package/agent-docs/content-delivery/api.md +10 -2
  62. package/agent-docs/content-delivery/api.sections/errors.md +52 -0
  63. package/agent-docs/content-delivery/api.sections/generated-typescript-reference.md +36 -0
  64. package/agent-docs/content-delivery/api.sections/html-markdown-and-agents.md +36 -0
  65. package/agent-docs/content-delivery/api.sections/mount-html.md +42 -0
  66. package/agent-docs/content-delivery/api.sections/open-a-rest-source.md +55 -0
  67. package/agent-docs/content-delivery/api.sections/open-a-source.md +51 -0
  68. package/agent-docs/content-delivery/api.sections/read-a-snapshot.md +55 -0
  69. package/agent-docs/content-delivery/api.sections/related-reading.md +42 -0
  70. package/agent-docs/content-delivery/api.sections/validate-a-manifest.md +40 -0
  71. package/agent-docs/content-delivery/client.md +9 -1
  72. package/agent-docs/content-delivery/sdk/all.md +1772 -0
  73. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentanchor-exportedid.md +34 -0
  74. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentanchor-id.md +34 -0
  75. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentanchor-title.md +34 -0
  76. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentanchor.md +44 -0
  77. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentasset-mediatype.md +34 -0
  78. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentasset.md +40 -0
  79. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentdeliveryerror-code.md +34 -0
  80. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentdeliveryerror.md +46 -0
  81. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentdeliverylimits-manifestbytes.md +36 -0
  82. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentdeliverylimits-resourcebytes.md +36 -0
  83. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentdeliverylimits-resources.md +36 -0
  84. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentdeliverylimits.md +44 -0
  85. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contenterrorcode.md +32 -0
  86. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentfile-bytes.md +34 -0
  87. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentfile-digest.md +34 -0
  88. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentfile-path.md +34 -0
  89. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentfile.md +44 -0
  90. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentformat.md +32 -0
  91. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentlink-asset.md +34 -0
  92. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentlink-fragment.md +34 -0
  93. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentlink-href.md +34 -0
  94. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentlink-key.md +34 -0
  95. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentlink-kind.md +34 -0
  96. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentlink-query.md +34 -0
  97. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentlink-ref.md +34 -0
  98. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentlink.md +52 -0
  99. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-assets.md +34 -0
  100. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-diagnostics.md +34 -0
  101. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-digest.md +34 -0
  102. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-files.md +34 -0
  103. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-kind.md +34 -0
  104. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-publication.md +34 -0
  105. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-publicbase.md +34 -0
  106. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-resources.md +34 -0
  107. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-review.md +34 -0
  108. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest-schemaversion.md +34 -0
  109. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmanifest.md +68 -0
  110. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmount-anchors.md +36 -0
  111. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmount-links.md +36 -0
  112. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmount-unmount.md +36 -0
  113. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentmount.md +49 -0
  114. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentpublication-channel.md +34 -0
  115. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentpublication-language.md +34 -0
  116. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentpublication-product.md +34 -0
  117. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentpublication-version.md +34 -0
  118. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentpublication.md +46 -0
  119. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentref.md +43 -0
  120. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrefkey.md +42 -0
  121. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrepresentation-anchors.md +34 -0
  122. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrepresentation-links.md +34 -0
  123. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrepresentation.md +42 -0
  124. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-assets.md +34 -0
  125. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-canonicalurl.md +34 -0
  126. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-externaldependencies.md +34 -0
  127. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-publication.md +36 -0
  128. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-ref.md +36 -0
  129. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-representations.md +36 -0
  130. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-source.md +34 -0
  131. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-summary.md +36 -0
  132. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-title.md +36 -0
  133. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource-type.md +36 -0
  134. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresource.md +65 -0
  135. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresourcekey.md +42 -0
  136. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestentry-key.md +34 -0
  137. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestentry-resource.md +34 -0
  138. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestentry.md +42 -0
  139. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresterror-error.md +34 -0
  140. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresterror.md +43 -0
  141. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresterrorcode.md +32 -0
  142. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestlist-publication.md +34 -0
  143. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestlist-resources.md +34 -0
  144. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestlist-revision.md +34 -0
  145. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestlist-schemaversion.md +34 -0
  146. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestlist.md +46 -0
  147. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestresource-key.md +34 -0
  148. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestresource-publication.md +34 -0
  149. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestresource-resource.md +34 -0
  150. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestresource-revision.md +34 -0
  151. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestresource-schemaversion.md +34 -0
  152. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentrestresource.md +48 -0
  153. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresult-content.md +36 -0
  154. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresult-format.md +36 -0
  155. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresult-representation.md +36 -0
  156. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresult-resource.md +36 -0
  157. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresult-revision.md +36 -0
  158. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentresult.md +48 -0
  159. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentsnapshot-dispose.md +36 -0
  160. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentsnapshot-get.md +45 -0
  161. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentsnapshot-list.md +38 -0
  162. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentsnapshot-publication.md +36 -0
  163. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentsnapshot-revision.md +36 -0
  164. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-contentsnapshot.md +47 -0
  165. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-manifestcontentsourceoptions-fetch.md +36 -0
  166. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-manifestcontentsourceoptions-limits.md +36 -0
  167. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-manifestcontentsourceoptions-manifesturl.md +36 -0
  168. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-manifestcontentsourceoptions-signal.md +36 -0
  169. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-manifestcontentsourceoptions.md +46 -0
  170. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-mountcontent.md +48 -0
  171. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-openmanifestcontentsource.md +54 -0
  172. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-openrestcontentsource.md +44 -0
  173. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-restcontentsourceoptions-baseurl.md +36 -0
  174. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-restcontentsourceoptions-fetch.md +36 -0
  175. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-restcontentsourceoptions-limits.md +36 -0
  176. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-restcontentsourceoptions-publication.md +36 -0
  177. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-restcontentsourceoptions-revision.md +36 -0
  178. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-restcontentsourceoptions-signal.md +36 -0
  179. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-restcontentsourceoptions.md +50 -0
  180. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content-validatecontentmanifest.md +45 -0
  181. package/agent-docs/content-delivery/sdk/all.sections/shoalrun-content.md +65 -0
  182. package/agent-docs/content-delivery/sdk/content-anchor/exported-id.md +25 -0
  183. package/agent-docs/content-delivery/sdk/content-anchor/id.md +25 -0
  184. package/agent-docs/content-delivery/sdk/content-anchor/title.md +25 -0
  185. package/agent-docs/content-delivery/sdk/content-anchor.md +71 -0
  186. package/agent-docs/content-delivery/sdk/content-asset/media-type.md +25 -0
  187. package/agent-docs/content-delivery/sdk/content-asset.md +43 -0
  188. package/agent-docs/content-delivery/sdk/content-delivery-error/code.md +25 -0
  189. package/agent-docs/content-delivery/sdk/content-delivery-error.md +53 -0
  190. package/agent-docs/content-delivery/sdk/content-delivery-limits/manifest-bytes.md +27 -0
  191. package/agent-docs/content-delivery/sdk/content-delivery-limits/resource-bytes.md +27 -0
  192. package/agent-docs/content-delivery/sdk/content-delivery-limits/resources.md +27 -0
  193. package/agent-docs/content-delivery/sdk/content-delivery-limits.md +77 -0
  194. package/agent-docs/content-delivery/sdk/content-error-code.md +23 -0
  195. package/agent-docs/content-delivery/sdk/content-file/bytes.md +25 -0
  196. package/agent-docs/content-delivery/sdk/content-file/digest.md +25 -0
  197. package/agent-docs/content-delivery/sdk/content-file/path.md +25 -0
  198. package/agent-docs/content-delivery/sdk/content-file.md +71 -0
  199. package/agent-docs/content-delivery/sdk/content-format.md +23 -0
  200. package/agent-docs/content-delivery/sdk/content-link/asset.md +25 -0
  201. package/agent-docs/content-delivery/sdk/content-link/fragment.md +25 -0
  202. package/agent-docs/content-delivery/sdk/content-link/href.md +25 -0
  203. package/agent-docs/content-delivery/sdk/content-link/key.md +25 -0
  204. package/agent-docs/content-delivery/sdk/content-link/kind.md +25 -0
  205. package/agent-docs/content-delivery/sdk/content-link/query.md +25 -0
  206. package/agent-docs/content-delivery/sdk/content-link/ref.md +25 -0
  207. package/agent-docs/content-delivery/sdk/content-link.md +127 -0
  208. package/agent-docs/content-delivery/sdk/content-manifest/assets.md +25 -0
  209. package/agent-docs/content-delivery/sdk/content-manifest/diagnostics.md +25 -0
  210. package/agent-docs/content-delivery/sdk/content-manifest/digest.md +25 -0
  211. package/agent-docs/content-delivery/sdk/content-manifest/files.md +25 -0
  212. package/agent-docs/content-delivery/sdk/content-manifest/kind.md +25 -0
  213. package/agent-docs/content-delivery/sdk/content-manifest/public-base.md +25 -0
  214. package/agent-docs/content-delivery/sdk/content-manifest/publication.md +25 -0
  215. package/agent-docs/content-delivery/sdk/content-manifest/resources.md +25 -0
  216. package/agent-docs/content-delivery/sdk/content-manifest/review.md +25 -0
  217. package/agent-docs/content-delivery/sdk/content-manifest/schema-version.md +25 -0
  218. package/agent-docs/content-delivery/sdk/content-manifest.md +179 -0
  219. package/agent-docs/content-delivery/sdk/content-mount/anchors.md +27 -0
  220. package/agent-docs/content-delivery/sdk/content-mount/links.md +27 -0
  221. package/agent-docs/content-delivery/sdk/content-mount/unmount.md +27 -0
  222. package/agent-docs/content-delivery/sdk/content-mount.md +82 -0
  223. package/agent-docs/content-delivery/sdk/content-publication/channel.md +25 -0
  224. package/agent-docs/content-delivery/sdk/content-publication/language.md +25 -0
  225. package/agent-docs/content-delivery/sdk/content-publication/product.md +25 -0
  226. package/agent-docs/content-delivery/sdk/content-publication/version.md +25 -0
  227. package/agent-docs/content-delivery/sdk/content-publication.md +85 -0
  228. package/agent-docs/content-delivery/sdk/content-ref-key.md +34 -0
  229. package/agent-docs/content-delivery/sdk/content-ref.md +40 -0
  230. package/agent-docs/content-delivery/sdk/content-representation/anchors.md +25 -0
  231. package/agent-docs/content-delivery/sdk/content-representation/links.md +25 -0
  232. package/agent-docs/content-delivery/sdk/content-representation.md +57 -0
  233. package/agent-docs/content-delivery/sdk/content-resource/assets.md +25 -0
  234. package/agent-docs/content-delivery/sdk/content-resource/canonical-url.md +25 -0
  235. package/agent-docs/content-delivery/sdk/content-resource/external-dependencies.md +25 -0
  236. package/agent-docs/content-delivery/sdk/content-resource/publication.md +27 -0
  237. package/agent-docs/content-delivery/sdk/content-resource/ref.md +27 -0
  238. package/agent-docs/content-delivery/sdk/content-resource/representations.md +27 -0
  239. package/agent-docs/content-delivery/sdk/content-resource/source.md +25 -0
  240. package/agent-docs/content-delivery/sdk/content-resource/summary.md +27 -0
  241. package/agent-docs/content-delivery/sdk/content-resource/title.md +27 -0
  242. package/agent-docs/content-delivery/sdk/content-resource/type.md +27 -0
  243. package/agent-docs/content-delivery/sdk/content-resource-key.md +34 -0
  244. package/agent-docs/content-delivery/sdk/content-resource.md +192 -0
  245. package/agent-docs/content-delivery/sdk/content-rest-entry/key.md +25 -0
  246. package/agent-docs/content-delivery/sdk/content-rest-entry/resource.md +25 -0
  247. package/agent-docs/content-delivery/sdk/content-rest-entry.md +57 -0
  248. package/agent-docs/content-delivery/sdk/content-rest-error/error.md +25 -0
  249. package/agent-docs/content-delivery/sdk/content-rest-error-code.md +23 -0
  250. package/agent-docs/content-delivery/sdk/content-rest-error.md +46 -0
  251. package/agent-docs/content-delivery/sdk/content-rest-list/publication.md +25 -0
  252. package/agent-docs/content-delivery/sdk/content-rest-list/resources.md +25 -0
  253. package/agent-docs/content-delivery/sdk/content-rest-list/revision.md +25 -0
  254. package/agent-docs/content-delivery/sdk/content-rest-list/schema-version.md +25 -0
  255. package/agent-docs/content-delivery/sdk/content-rest-list.md +85 -0
  256. package/agent-docs/content-delivery/sdk/content-rest-resource/key.md +25 -0
  257. package/agent-docs/content-delivery/sdk/content-rest-resource/publication.md +25 -0
  258. package/agent-docs/content-delivery/sdk/content-rest-resource/resource.md +25 -0
  259. package/agent-docs/content-delivery/sdk/content-rest-resource/revision.md +25 -0
  260. package/agent-docs/content-delivery/sdk/content-rest-resource/schema-version.md +25 -0
  261. package/agent-docs/content-delivery/sdk/content-rest-resource.md +99 -0
  262. package/agent-docs/content-delivery/sdk/content-result/content.md +27 -0
  263. package/agent-docs/content-delivery/sdk/content-result/format.md +27 -0
  264. package/agent-docs/content-delivery/sdk/content-result/representation.md +27 -0
  265. package/agent-docs/content-delivery/sdk/content-result/resource.md +27 -0
  266. package/agent-docs/content-delivery/sdk/content-result/revision.md +27 -0
  267. package/agent-docs/content-delivery/sdk/content-result.md +114 -0
  268. package/agent-docs/content-delivery/sdk/content-snapshot/dispose.md +27 -0
  269. package/agent-docs/content-delivery/sdk/content-snapshot/get.md +36 -0
  270. package/agent-docs/content-delivery/sdk/content-snapshot/list.md +29 -0
  271. package/agent-docs/content-delivery/sdk/content-snapshot/publication.md +27 -0
  272. package/agent-docs/content-delivery/sdk/content-snapshot/revision.md +27 -0
  273. package/agent-docs/content-delivery/sdk/content-snapshot.md +123 -0
  274. package/agent-docs/content-delivery/sdk/exports.md +742 -0
  275. package/agent-docs/content-delivery/sdk/exports.sections/functions.md +30 -0
  276. package/agent-docs/content-delivery/sdk/exports.sections/members.md +47 -0
  277. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentanchor.md +41 -0
  278. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentasset.md +37 -0
  279. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentdeliveryerror.md +43 -0
  280. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentdeliverylimits.md +41 -0
  281. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contenterrorcode.md +29 -0
  282. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentfile.md +41 -0
  283. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentformat.md +29 -0
  284. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentlink.md +49 -0
  285. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentmanifest.md +65 -0
  286. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentmount.md +46 -0
  287. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentpublication.md +43 -0
  288. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentref.md +40 -0
  289. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentrefkey.md +39 -0
  290. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentrepresentation.md +39 -0
  291. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentresource.md +62 -0
  292. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentresourcekey.md +39 -0
  293. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentrestentry.md +39 -0
  294. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentresterror.md +40 -0
  295. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentresterrorcode.md +29 -0
  296. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentrestlist.md +43 -0
  297. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentrestresource.md +45 -0
  298. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentresult.md +45 -0
  299. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-contentsnapshot.md +44 -0
  300. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-manifestcontentsourceoptions.md +43 -0
  301. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-mountcontent.md +45 -0
  302. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-openmanifestcontentsource.md +51 -0
  303. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-openrestcontentsource.md +41 -0
  304. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-restcontentsourceoptions.md +47 -0
  305. package/agent-docs/content-delivery/sdk/exports.sections/shoalrun-content-validatecontentmanifest.md +42 -0
  306. package/agent-docs/content-delivery/sdk/manifest-content-source-options/fetch.md +27 -0
  307. package/agent-docs/content-delivery/sdk/manifest-content-source-options/limits.md +27 -0
  308. package/agent-docs/content-delivery/sdk/manifest-content-source-options/manifest-url.md +27 -0
  309. package/agent-docs/content-delivery/sdk/manifest-content-source-options/signal.md +27 -0
  310. package/agent-docs/content-delivery/sdk/manifest-content-source-options.md +93 -0
  311. package/agent-docs/content-delivery/sdk/mount-content.md +46 -0
  312. package/agent-docs/content-delivery/sdk/open-manifest-content-source.md +51 -0
  313. package/agent-docs/content-delivery/sdk/open-rest-content-source.md +39 -0
  314. package/agent-docs/content-delivery/sdk/rest-content-source-options/base-url.md +28 -0
  315. package/agent-docs/content-delivery/sdk/rest-content-source-options/fetch.md +27 -0
  316. package/agent-docs/content-delivery/sdk/rest-content-source-options/limits.md +27 -0
  317. package/agent-docs/content-delivery/sdk/rest-content-source-options/publication.md +27 -0
  318. package/agent-docs/content-delivery/sdk/rest-content-source-options/revision.md +27 -0
  319. package/agent-docs/content-delivery/sdk/rest-content-source-options/signal.md +27 -0
  320. package/agent-docs/content-delivery/sdk/rest-content-source-options.md +125 -0
  321. package/agent-docs/content-delivery/sdk/validate-content-manifest.md +38 -0
  322. package/agent-docs/contribute/agent-skills.md +33 -6
  323. package/agent-docs/documents.json +7094 -308
  324. package/agent-docs/features.md +18 -17
  325. package/agent-docs/provenance.json +6 -6
  326. package/agent-docs/publish/content-export.md +3 -1
  327. package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +1 -1
  328. package/agent-docs/publish/content-export.sections/check-the-result.md +1 -1
  329. package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +1 -1
  330. package/agent-docs/publish/content-export.sections/prerequisites.md +1 -1
  331. package/agent-docs/publish/content-export.sections/related-reading.md +1 -1
  332. package/agent-docs/publish/content-export.sections/review-exported-api-material.md +1 -1
  333. package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +1 -1
  334. package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +1 -1
  335. package/agent-docs/publish/pdf.md +2 -2
  336. package/agent-docs/publish/pdf.sections/apply-print-styling.md +1 -1
  337. package/agent-docs/publish/pdf.sections/check-the-result.md +1 -1
  338. package/agent-docs/publish/pdf.sections/export-a-page-or-publication.md +2 -2
  339. package/agent-docs/publish/pdf.sections/html-markdown-and-agents.md +1 -1
  340. package/agent-docs/publish/pdf.sections/offer-browser-page-printing.md +1 -1
  341. package/agent-docs/publish/pdf.sections/offer-direct-downloads-through-a-node-server.md +1 -1
  342. package/agent-docs/publish/pdf.sections/prerequisites.md +1 -1
  343. package/agent-docs/publish/pdf.sections/publish-an-optional-manual-download.md +1 -1
  344. package/agent-docs/publish/single-source-sites.md +26 -2
  345. package/agent-docs/publish/single-source-sites.sections/build-and-check-each-output.md +49 -0
  346. package/agent-docs/publish/single-source-sites.sections/html-markdown-and-agents.md +33 -0
  347. package/agent-docs/publish/single-source-sites.sections/include-additional-sections-in-a-build.md +47 -0
  348. package/agent-docs/publish/single-source-sites.sections/related-reading.md +43 -0
  349. package/agent-docs/publish/single-source-sites.sections/select-the-pages-for-each-site.md +74 -0
  350. package/agent-docs/publish/single-source-sites.sections/share-the-base-configuration.md +93 -0
  351. package/agent-docs/reference/agent-skills.md +2 -2
  352. package/agent-docs/search-index.json +1 -1
  353. package/agent-docs/start.md +1 -1
  354. package/agent-docs/start.sections/start-your-own-project.md +1 -1
  355. package/assets/search-lexical.js +15 -4
  356. package/dist/code-reference-model.d.ts +4 -4
  357. package/dist/compiler.d.ts +8 -0
  358. package/dist/compiler.js +10 -4
  359. package/dist/component-names.js +1 -1
  360. package/dist/component-transform.js +14 -22
  361. package/dist/conditional-tree.d.ts +2 -0
  362. package/dist/conditional-tree.js +14 -0
  363. package/dist/content-delivery-contract.d.ts +39 -0
  364. package/dist/content-delivery-contract.js +2 -0
  365. package/dist/content-delivery-validation.d.ts +6 -0
  366. package/dist/content-delivery-validation.js +6 -0
  367. package/dist/content-delivery.d.ts +19 -1
  368. package/dist/content-delivery.js +10 -1
  369. package/dist/content-export-command.d.ts +42 -3
  370. package/dist/content-export.d.ts +42 -3
  371. package/dist/content-export.js +15 -6
  372. package/dist/content-filter.d.ts +2 -0
  373. package/dist/content-filter.js +4 -0
  374. package/dist/content-mount.d.ts +12 -1
  375. package/dist/content-mount.js +8 -1
  376. package/dist/content-rest-client.d.ts +11 -1
  377. package/dist/content-rest-client.js +4 -1
  378. package/dist/content-rest-contract.d.ts +5 -0
  379. package/dist/content-source.d.ts +1 -0
  380. package/dist/content-workspace.d.ts +4 -1
  381. package/dist/content-workspace.js +5 -2
  382. package/dist/deployment-profile.d.ts +3 -1
  383. package/dist/deployment-profile.js +18 -19
  384. package/dist/palettes.d.ts +1 -1
  385. package/dist/publication-manifest.js +1 -1
  386. package/dist/representation-tree.js +8 -2
  387. package/dist/search-query.js +13 -6
  388. package/dist/section-selection.d.ts +29 -0
  389. package/dist/section-selection.js +92 -0
  390. package/dist/snippets.d.ts +1 -0
  391. package/example-configs/facet-sections/README.md +37 -0
  392. package/example-configs/facet-sections/base.yaml +29 -0
  393. package/example-configs/facet-sections/content/billing.mdx +25 -0
  394. package/example-configs/facet-sections/customer.config.yaml +4 -0
  395. package/example-configs/facet-sections/docs.config.yaml +3 -0
  396. package/example-configs/faceted-sites/README.md +4 -2
  397. package/package.json +2 -1
  398. package/skills/shoalrun-author/SKILL.md +13 -0
  399. package/skills/shoalrun-author/references/code-api-references.md +5 -1
  400. package/skills/shoalrun-author/references/facet-selection.md +48 -0
  401. package/skills/shoalrun-brand/SKILL.md +9 -0
  402. package/skills/shoalrun-component-author/SKILL.md +9 -0
  403. package/skills/shoalrun-pdf/SKILL.md +9 -0
  404. package/skills/shoalrun-recipes/SKILL.md +9 -0
  405. package/skills/shoalrun-setup/SKILL.md +9 -0
  406. package/skills/shoalrun-walkthrough/SKILL.md +9 -0
@@ -36,7 +36,7 @@ Install an exact version of the beta and initialize the minimal starter:
36
36
  mkdir my-docs
37
37
  cd my-docs
38
38
  npm init -y
39
- npm install --save-exact @shoalrun/cli@1.0.0
39
+ npm install --save-exact @shoalrun/cli@1.1.0
40
40
  npx --no-install shoalrun init .
41
41
  ```
42
42
 
@@ -38,7 +38,7 @@ Install an exact version of the beta and initialize the minimal starter:
38
38
  mkdir my-docs
39
39
  cd my-docs
40
40
  npm init -y
41
- npm install --save-exact @shoalrun/cli@1.0.0
41
+ npm install --save-exact @shoalrun/cli@1.1.0
42
42
  npx --no-install shoalrun init .
43
43
  ```
44
44
 
@@ -57,10 +57,21 @@ export async function search(query, context) {
57
57
  const matched = terms.filter(term => match(title, term) || match(summary, term) || match(text, term) || headings.some(heading => match(heading, term)));
58
58
  if (!matched.length) continue;
59
59
  let score = 0;
60
- for (const term of terms) score += weight(title, term, title.startsWith(term.term) ? 12 : 8) || weight(summary, term, 4) || (headings.some(heading => match(heading, term)) ? 3 : 0) || weight(text, term, 1);
60
+ let contentScore = 0;
61
+ for (const term of terms) {
62
+ const termScore = weight(title, term, title.startsWith(term.term) ? 12 : 8) || weight(summary, term, 4) || (headings.some(heading => match(heading, term)) ? 3 : 0) || weight(text, term, 1);
63
+ score += termScore;
64
+ if (!fallbackStopWords.has(term.term)) contentScore += termScore;
65
+ }
61
66
  const section = filtered || terms.every(term => match(title, term)) ? undefined : doc.headings.find((heading, index) => terms.every(term => match(headings[index], term)));
62
- hits.push({ score, matched: matched.length, partialMatched: matched.filter(term => !fallbackStopWords.has(term.term)).length, result: { url: section ? `${doc.url}#${section.id}` : doc.url, title: doc.title, summary: doc.summary, section: section?.title } });
67
+ hits.push({ score, contentScore, matched: matched.length, partialMatched: matched.filter(term => !fallbackStopWords.has(term.term)).length, result: { url: section ? `${doc.url}#${section.id}` : doc.url, title: doc.title, summary: doc.summary, section: section?.title } });
63
68
  }
64
- const complete = hits.filter(hit => hit.matched === terms.length);
65
- return (complete.length ? complete : hits.filter(hit => hit.partialMatched > 0)).sort((a, b) => (complete.length ? b.matched - a.matched : b.partialMatched - a.partialMatched) || b.score - a.score || a.result.title.localeCompare(b.result.title)).slice(0, context.limit).map(hit => hit.result);
69
+ const contentTerms = terms.filter(term => !fallbackStopWords.has(term.term)).length;
70
+ // Filler words shape the sentence, not the subject. A page that covers every
71
+ // content term is complete even when it omits "how", "do", or "the"; otherwise
72
+ // a page that happens to repeat filler words can hide the focused result.
73
+ const complete = contentTerms === 0
74
+ ? hits.filter(hit => hit.matched === terms.length)
75
+ : hits.filter(hit => hit.partialMatched === contentTerms);
76
+ return (complete.length ? complete : hits.filter(hit => hit.partialMatched > 0)).sort((a, b) => (complete.length ? b.contentScore - a.contentScore : b.partialMatched - a.partialMatched) || b.score - a.score || a.result.title.localeCompare(b.result.title)).slice(0, context.limit).map(hit => hit.result);
66
77
  }
@@ -17,14 +17,14 @@ export declare const codeReferenceSchema: z.ZodObject<{
17
17
  constructor: "constructor";
18
18
  module: "module";
19
19
  type: "type";
20
- constant: "constant";
21
- enum: "enum";
22
- method: "method";
23
- property: "property";
24
20
  namespace: "namespace";
25
21
  class: "class";
26
22
  interface: "interface";
23
+ enum: "enum";
24
+ method: "method";
25
+ property: "property";
27
26
  attribute: "attribute";
27
+ constant: "constant";
28
28
  }>;
29
29
  parent: z.ZodOptional<z.ZodString>;
30
30
  visibility: z.ZodDefault<z.ZodEnum<{
@@ -39,6 +39,14 @@ export declare function compile(configFile: string, destination?: string, proven
39
39
  }>;
40
40
  }>;
41
41
  }[];
42
+ contentSelection: {
43
+ selection: import("./reader-filters.js").ReaderSelection | null;
44
+ decisions: Record<string, unknown>[];
45
+ warnings: {
46
+ code: string;
47
+ message: string;
48
+ }[];
49
+ };
42
50
  profileSelection: {
43
51
  schemaVersion: number;
44
52
  profileDigest: string;
package/dist/compiler.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { sectionSelectionReport, writeSectionSelectionReport } from './section-selection.js';
1
2
  import { buildPdfSiteArtifacts } from './pdf-site.js';
2
3
  import { resolvePdfButton, validatePdfButtonStyle } from './pdf-button.js';
3
4
  import { documentKey, publicationKey, samePublication } from './publication-identity.js';
@@ -306,7 +307,7 @@ async function compileProject(configFile, destination, provenance, options, ownH
306
307
  const varying = (field) => new Set(variants.map(variant => variant[field])).size > 1;
307
308
  const editionLabel = (variant) => editionBadge === 'never' ? '' : ['product', 'channel', 'version', 'language']
308
309
  .filter(field => variant[field] !== undefined && (editionBadge === 'always' || varying(field))).map(field => variant[field]).join(' · ');
309
- const { docs, knownDocumentIds, knownDocumentTypes, routeOwners, contentDir, snippets, apiPlan, api, sourceForVariant, knownOperations, relatedApiTargets, guidesByApi, sourceForOperation } = await prepareContentWorkspace({
310
+ const { sectionSelection, docs, knownDocumentIds, knownDocumentTypes, routeOwners, contentDir, snippets, apiPlan, api, sourceForVariant, knownOperations, relatedApiTargets, guidesByApi, sourceForOperation } = await prepareContentWorkspace({
310
311
  base, basePath, config, loaded, variants, language, readerFilters, contentFilter, metadataProvider, metadataDependencies,
311
312
  sourceOverrides: options.sourceOverrides, authoringFiles: options.authoringFiles
312
313
  });
@@ -481,12 +482,15 @@ async function compileProject(configFile, destination, provenance, options, ownH
481
482
  const { artifacts, buildId } = await assembleArtifacts({
482
483
  extraArtifacts: sitePdfs.artifacts,
483
484
  base, basePath, publicPath, canonical, siteOrigin, manifest, provenanceRecord, rendered, sitemaps,
484
- privateDependencies: new Set([...(loaded.deployment?.file ? [loaded.deployment.file] : []), ...(loaded.deployment?.assetFiles ?? [])]),
485
+ privateDependencies: new Set([
486
+ ...[...snippets.values()].filter(snippet => !snippetUses.some(use => use.file === snippet.file)).map(snippet => snippet.file),
487
+ ...(sectionSelection.hasConditions || contentFilter ? componentPlugins.dependencies : []), ...(loaded.deployment?.file ? [loaded.deployment.file] : []), ...(loaded.deployment?.assetFiles ?? [])
488
+ ]),
485
489
  diagramAssets, heroImages, focusedContracts, styleFiles, themeStyleFile, generatedPaletteCss,
486
490
  generatedBadgeCss, search, synonyms, config: artifactConfig, builtInSearchProvider, customReaderModule, analyticsModule, mcpAnalyticsModule,
487
491
  previewFiles, assetDirectory, themeSwitcher, themeDirectory, palette, colorMode, generatedFontsCss,
488
492
  fontFiles, projectFontAssets, fonts, shareImages, shareFor, themePreset, shareFontFiles, shareCache, faviconFile,
489
- faviconRoute, customStyleFile, scriptFiles, componentAssets: loaded.deployment?.context.grants ? componentPlugins.assets.filter(asset => usedComponentAssets.has(asset.route)) : componentPlugins.assets, redirects, apiPublications, api, catalog, headers,
493
+ faviconRoute, customStyleFile, scriptFiles, componentAssets: loaded.deployment?.context.grants || sectionSelection.hasConditions || contentFilter ? componentPlugins.assets.filter(asset => usedComponentAssets.has(asset.route)) : componentPlugins.assets, redirects, apiPublications, api, catalog, headers,
490
494
  documentRoutes, readerFilters, apiSources
491
495
  });
492
496
  if (destination) {
@@ -500,9 +504,11 @@ async function compileProject(configFile, destination, provenance, options, ownH
500
504
  if (loaded.deployment?.context.grants && !options.authoringFiles)
501
505
  await writeFile(path.join(localGuide, 'profile-selection.json'), JSON.stringify({ ...profileSelection(loaded.deployment), buildId, configDigest: loaded.digest }, null, 2) + '\n');
502
506
  });
507
+ if (!options.authoringFiles)
508
+ await writeSectionSelectionReport(base, sectionSelection, { target: { kind: 'site', output: target }, buildId, configDigest: loaded.digest, filterOrigin: 'site.contentFilter' });
503
509
  // Authoring captures resolve revision dates without changing captured inputs.
504
510
  if (!options.authoringFiles)
505
511
  await freshness?.commit();
506
512
  }
507
- return { ...manifest, buildId, apiPublicationReview, profileSelection: profileSelection(loaded.deployment), ...(options.authoringFiles ? { authoringSources: rendered.map(({ doc }) => ({ id: doc.frontmatter.id, file: doc.file, url: doc.route, markdownUrl: doc.markdownRoute })) } : {}) };
513
+ return { ...manifest, buildId, apiPublicationReview, contentSelection: sectionSelectionReport(sectionSelection), profileSelection: profileSelection(loaded.deployment), ...(options.authoringFiles ? { authoringSources: rendered.map(({ doc }) => ({ id: doc.frontmatter.id, file: doc.file, url: doc.route, markdownUrl: doc.markdownRoute })) } : {}) };
508
514
  }
@@ -1 +1 @@
1
- export const builtinComponentNames = new Set('Anchor FrontmatterReference ForFeature ForPublication ReaderSection ReaderChoice ReaderFilter Only Badge Kbd Tooltip InfoHint Progress Math ActionLink Button DefinitionList Term Definition Steps Timeline Milestone FileTree Tree Folder File Table CollapsibleGroup Collapsible Section Hero ThemePreview Diagram Image Tabs Walkthrough Step Tab Fields Field CookbookChooser DocCard DocCards DocCollection RelatedReading ApiExample ApiSchema Snippet Var DocLink Callout'.split(' '));
1
+ export const builtinComponentNames = new Set('Anchor FrontmatterReference ForFeature ForFacet ForPublication ReaderSection ReaderChoice ReaderFilter Only Badge Kbd Tooltip InfoHint Progress Math ActionLink Button DefinitionList Term Definition Steps Timeline Milestone FileTree Tree Folder File Table CollapsibleGroup Collapsible Section Hero ThemePreview Diagram Image Tabs Walkthrough Step Tab Fields Field CookbookChooser DocCard DocCards DocCollection RelatedReading ApiExample ApiSchema Snippet Var DocLink Callout'.split(' '));
@@ -1,5 +1,5 @@
1
1
  import { documentKey } from './publication-identity.js';
2
- import { pruneFeatureTree } from './deployment-profile.js';
2
+ import { createSectionSelection, evaluatePublicationGuard, pruneSelectedTree, warnReaderSection } from './section-selection.js';
3
3
  import { lowerComponent } from './component-plugins.js';
4
4
  import { cardComponent } from './cards.js';
5
5
  import { cookbookChooserComponent } from './cookbook-chooser.js';
@@ -61,8 +61,10 @@ function literalAttributes(attributes) {
61
61
  export function transformMdx(tree, current, registry, snippets = new Map(), projectValues = {}, uses = [], calloutTypes = resolveCalloutTypes(undefined, current.file), projectRoot, readerConfig, frontmatterConfig = {}, publicationConfig, badgeVariants = resolveBadgeVariants(undefined, current.file), componentPlugins = new Map(), publicationRegistry) {
62
62
  if (!isMdxRoot(tree))
63
63
  throw new Error(`${current.file}: parsed content must be a root with children`);
64
- tree = lowerSectionMarkers(pruneFeatureTree(tree, current.featureContext, current.file), current.file);
65
- snippets = new Map([...snippets].map(([id, definition]) => [id, { ...definition, tree: pruneFeatureTree(definition.tree, current.featureContext, definition.file) }]));
64
+ current.sectionSelection ??= createSectionSelection(readerConfig, undefined, publicationConfig);
65
+ const originalSnippets = snippets;
66
+ tree = lowerSectionMarkers(pruneSelectedTree(tree, current), current.file);
67
+ snippets = new Map([...snippets].map(([id, definition]) => [id, { ...definition, tree: pruneSelectedTree(definition.tree, current, definition.file, false) }]));
66
68
  let pluginDepth = 0;
67
69
  let tabsIndex = 0;
68
70
  let walkthroughIndex = 0;
@@ -133,27 +135,14 @@ export function transformMdx(tree, current, registry, snippets = new Map(), proj
133
135
  throw new Error(`${sourceFile}: <FrontmatterReference> must be an empty block`);
134
136
  return childrenOf(parsePlainMarkdown(frontmatterReference(frontmatterConfig, true)), scope, stack, sourceFile);
135
137
  }
136
- if (node.name === 'ForFeature') {
137
- const selected = pruneFeatureTree({ type: 'root', children: [node] }, current.featureContext, sourceFile);
138
+ if (node.name === 'ForFeature' || node.name === 'ForFacet') {
139
+ const selected = pruneSelectedTree({ type: 'root', children: [node] }, current, sourceFile);
138
140
  return childrenOf(selected.children, scope, stack, sourceFile);
139
141
  }
140
142
  if (node.name === 'ForPublication') {
141
- const attributes = node.attributes ?? [];
142
- const allowed = ['product', 'channel', 'version', 'language'];
143
- if (node.type !== 'mdxJsxFlowElement' || !node.children?.length || !attributes.length || !literalAttributes(attributes) || attributes.some((item) => !allowed.includes(item.name) || !item.value.trim()) || new Set(attributes.map((item) => item.name)).size !== attributes.length) {
144
- throw new Error(`${sourceFile}: <ForPublication> needs block content and distinct literal channel, version, or language attributes`);
145
- }
146
- const product = attributes.find(item => item.name === 'product')?.value ?? current.variant.product;
147
- for (const item of attributes) {
148
- const catalog = item.name === 'product' ? publicationConfig?.products
149
- : item.name === 'channel' ? publicationConfig?.channels
150
- : item.name === 'version' ? (product ? publicationConfig?.products?.[product]?.versions : publicationConfig?.versions) : undefined;
151
- if (publicationConfig && item.name !== 'language' && (!catalog || !Object.hasOwn(catalog, item.value)))
152
- throw new Error(`${sourceFile}: <ForPublication> names unknown ${item.name} ${item.value}`);
153
- }
154
- if (attributes.some((item) => current.variant[item.name] !== item.value))
143
+ if (!evaluatePublicationGuard(node, current, sourceFile, publicationConfig))
155
144
  return [];
156
- return childrenOf(node.children, scope, stack, sourceFile);
145
+ return childrenOf(node.children ?? [], scope, stack, sourceFile);
157
146
  }
158
147
  if (node.name === 'ReaderSection' || node.name === 'ReaderChoice' || node.name === 'ReaderFilter') {
159
148
  if (!readerConfig || node.type !== 'mdxJsxFlowElement')
@@ -179,6 +168,8 @@ export function transformMdx(tree, current, registry, snippets = new Map(), proj
179
168
  const selection = validateReaderSelection(choices, readerConfig, `${sourceFile}: <${node.name}>`);
180
169
  if (!Object.keys(selection).length)
181
170
  throw new Error(`${sourceFile}: <${node.name}> needs at least one filter choice`);
171
+ if (node.name === 'ReaderSection')
172
+ warnReaderSection(current, sourceFile, node.position?.start?.line ?? 1, selection);
182
173
  const description = Object.entries(selection).map(([facet, values]) => `${readerConfig.facets[facet].label}: ${values.map(value => readerConfig.facets[facet].options[value]).join(' or ')}`).join('; ');
183
174
  const children = node.name === 'ReaderSection' ? childrenOf(node.children ?? [], scope, stack, sourceFile) : [];
184
175
  const containsSection = (item) => item.type === 'docReaderSection' || (item.children ?? []).some(containsSection);
@@ -628,8 +619,9 @@ export function transformMdx(tree, current, registry, snippets = new Map(), proj
628
619
  if (!invocation || typeof invocation !== 'object' || Array.isArray(invocation))
629
620
  throw new Error(`${sourceFile}: snippet values must be a literal mapping`);
630
621
  const values = resolveSnippetValues(id, definition, projectValues, { ...(current.frontmatter.variables ?? {}), ...scope }, invocation);
631
- uses.push({ id, file: definition.file, documentId: current.frontmatter.id });
632
- return childrenOf(definition.tree.children, values, [...stack, id], definition.file);
622
+ uses.push({ id, file: definition.file, documentId: current.frontmatter.id, documentKey: documentKey(current.frontmatter.id, current.variant) });
623
+ const selectedTree = pruneSelectedTree(originalSnippets.get(id).tree, current, definition.file);
624
+ return childrenOf(selectedTree.children, values, [...stack, id], definition.file);
633
625
  }
634
626
  if (node.name === 'Var') {
635
627
  if (!stack.length || node.type !== 'mdxJsxTextElement' || node.children?.length)
@@ -0,0 +1,2 @@
1
+ /** Validate every guard, including excluded descendants, without expanding dependencies. */
2
+ export declare function pruneConditionalTree(tree: any, evaluate: (node: any, ancestorIncluded: boolean) => boolean | undefined): any;
@@ -0,0 +1,14 @@
1
+ /** Validate every guard, including excluded descendants, without expanding dependencies. */
2
+ export function pruneConditionalTree(tree, evaluate) {
3
+ const walk = (node, ancestorIncluded = true) => {
4
+ if (!node || typeof node !== 'object')
5
+ return [node];
6
+ const match = evaluate(node, ancestorIncluded);
7
+ if (match !== undefined) {
8
+ const children = (node.children ?? []).flatMap((child) => walk(child, ancestorIncluded && match));
9
+ return ancestorIncluded && match ? children : [];
10
+ }
11
+ return [{ ...node, ...(node.children ? { children: node.children.flatMap((child) => walk(child, ancestorIncluded)) } : {}) }];
12
+ };
13
+ return walk(tree)[0];
14
+ }
@@ -1,11 +1,16 @@
1
1
  /** Browser-safe delivery contracts. These types do not import the compiler. */
2
+ /** Exact documentation publication selected by a content source. */
2
3
  export type ContentPublication = {
3
4
  channel: string;
4
5
  version: string;
5
6
  language: string;
6
7
  product?: string;
7
8
  };
9
+ /** Portable representations a content client can request. */
8
10
  export type ContentFormat = 'html' | 'markdown';
11
+ /** Stable identity of a page, a section within a page, or a named snippet instance.
12
+ * A reference is scoped to the publication and revision of the opened snapshot.
13
+ */
9
14
  export type ContentRef = {
10
15
  kind: 'page';
11
16
  documentId: string;
@@ -17,19 +22,23 @@ export type ContentRef = {
17
22
  kind: 'snippet';
18
23
  id: string;
19
24
  };
25
+ /** Export-relative file path, byte length, and SHA-256 digest. */
20
26
  export type ContentFile = {
21
27
  path: string;
22
28
  bytes: number;
23
29
  digest: string;
24
30
  };
31
+ /** A content-addressed file with its declared media type. */
25
32
  export type ContentAsset = ContentFile & {
26
33
  mediaType: string;
27
34
  };
35
+ /** Mapping from a canonical document fragment to its exported HTML ID. */
28
36
  export type ContentAnchor = {
29
37
  id: string;
30
38
  exportedId: string;
31
39
  title?: string;
32
40
  };
41
+ /** Classified link and optional resource identity for application routing. */
33
42
  export type ContentLink = {
34
43
  key: string;
35
44
  kind: 'resource' | 'canonical' | 'external' | 'asset';
@@ -39,15 +48,22 @@ export type ContentLink = {
39
48
  query?: string;
40
49
  asset?: string;
41
50
  };
51
+ /** One portable format, including its file metadata, anchors, and typed links. */
42
52
  export type ContentRepresentation = ContentAsset & {
43
53
  anchors: ContentAnchor[];
44
54
  links: ContentLink[];
45
55
  };
56
+ /** Inventory entry describing one exported document, section, or snippet instance. */
46
57
  export type ContentResource = {
58
+ /** Stable identity used by ContentSnapshot.get. */
47
59
  ref: ContentRef;
60
+ /** Exact product, channel, version, and documentation language. */
48
61
  publication: ContentPublication;
62
+ /** Human-readable resource title. */
49
63
  title: string;
64
+ /** Short explanation of the resource's purpose. */
50
65
  summary: string;
66
+ /** Authored document type, or section/snippet for a selected resource. */
51
67
  type: string;
52
68
  canonicalUrl?: string;
53
69
  source?: {
@@ -55,6 +71,7 @@ export type ContentResource = {
55
71
  snippetId?: string;
56
72
  valuesDigest?: string;
57
73
  };
74
+ /** Available portable formats and their files, anchors, and typed links. */
58
75
  representations: Partial<Record<ContentFormat, ContentRepresentation>>;
59
76
  assets: string[];
60
77
  externalDependencies: Array<{
@@ -62,6 +79,7 @@ export type ContentResource = {
62
79
  kind: 'image';
63
80
  }>;
64
81
  };
82
+ /** One validated, content-addressed export inventory. */
65
83
  export type ContentManifest = {
66
84
  schemaVersion: 1 | 2;
67
85
  kind: 'shoalrun-content-export';
@@ -84,26 +102,47 @@ export type ContentManifest = {
84
102
  message: string;
85
103
  }>;
86
104
  };
105
+ /** A fetched representation together with the metadata needed to render or route it. */
87
106
  export type ContentResult = {
107
+ /** Inventory entry that was selected by the requested reference. */
88
108
  resource: Readonly<ContentResource>;
109
+ /** File, media type, anchors, and typed links for the selected format. */
89
110
  representation: Readonly<ContentRepresentation>;
111
+ /** Representation actually returned by the source. */
90
112
  format: ContentFormat;
113
+ /** Validated UTF-8 HTML or Markdown text. */
91
114
  content: string;
115
+ /** Revision shared by this response and its opened content snapshot. */
92
116
  revision: string;
93
117
  };
118
+ /** A client pinned to one immutable inventory revision and publication. */
94
119
  export interface ContentSnapshot {
120
+ /** Content digest identifying this inventory revision. */
95
121
  readonly revision: string;
122
+ /** Publication shared by every resource available from this snapshot. */
96
123
  readonly publication: Readonly<ContentPublication>;
124
+ /** List the resources in the opened inventory without fetching their bodies.
125
+ * @returns Read-only resource entries for this publication and revision.
126
+ */
97
127
  list(): readonly Readonly<ContentResource>[];
128
+ /** Fetch one available representation of a stable content reference.
129
+ * @param ref Page, section, or named snippet instance in this snapshot.
130
+ * @param options Required format and an optional signal for this read.
131
+ * @returns Validated representation text with its routing and revision metadata.
132
+ */
98
133
  get(ref: ContentRef, options: {
99
134
  format: ContentFormat;
100
135
  signal?: AbortSignal;
101
136
  }): Promise<ContentResult>;
137
+ /** Cancel pending requests and prevent subsequent reads or inventory access. */
102
138
  dispose(): void;
103
139
  }
140
+ /** Stable error categories raised by content-source validation and reads. */
104
141
  export type ContentErrorCode = 'invalid_manifest' | 'not_found' | 'unsupported_format' | 'stale_revision' | 'network_error' | 'invalid_content' | 'disposed';
142
+ /** Delivery failure with a machine-readable code and a human-readable message. */
105
143
  export declare class ContentDeliveryError extends Error {
106
144
  readonly code: ContentErrorCode;
107
145
  constructor(code: ContentErrorCode, message: string);
108
146
  }
147
+ /** Serialize a reference to a deterministic key without including publication scope. */
109
148
  export declare function contentRefKey(ref: ContentRef): string;
@@ -1,3 +1,4 @@
1
+ /** Delivery failure with a machine-readable code and a human-readable message. */
1
2
  export class ContentDeliveryError extends Error {
2
3
  code;
3
4
  constructor(code, message) {
@@ -6,6 +7,7 @@ export class ContentDeliveryError extends Error {
6
7
  this.name = 'ContentDeliveryError';
7
8
  }
8
9
  }
10
+ /** Serialize a reference to a deterministic key without including publication scope. */
9
11
  export function contentRefKey(ref) {
10
12
  switch (ref.kind) {
11
13
  case 'page': return JSON.stringify(['page', ref.documentId]);
@@ -2,6 +2,12 @@ import type { ContentManifest, ContentRef, ContentPublication } from './content-
2
2
  export declare const safeContentPath: (value: any) => value is string;
3
3
  export declare const validContentPublication: (value: any) => value is ContentPublication;
4
4
  export declare function validContentRef(value: any): value is ContentRef;
5
+ /** Validate a parsed manifest's shape, identities, paths, and resource bounds.
6
+ * This assertion narrows the value but doesn't verify fetched file bytes or trust in a host.
7
+ * @param value Parsed JSON manifest to validate.
8
+ * @param maxResources Maximum allowed resource count; defaults to 10,000.
9
+ * @param maxResourceBytes Maximum declared representation bytes; defaults to 8,000,000.
10
+ */
5
11
  export declare function validateContentManifest(value: any, maxResources?: number, maxResourceBytes?: number): asserts value is ContentManifest;
6
12
  /** Shared metadata validation; transport supplies its file/asset inventory policy. */
7
13
  export declare function validateContentResources(resources: any[], expectedPublication: unknown, assets: Set<string>, checkRepresentation: (value: any) => boolean, publicBase?: string): void;
@@ -26,6 +26,12 @@ function safeExternal(value, image = false) {
26
26
  return false;
27
27
  }
28
28
  }
29
+ /** Validate a parsed manifest's shape, identities, paths, and resource bounds.
30
+ * This assertion narrows the value but doesn't verify fetched file bytes or trust in a host.
31
+ * @param value Parsed JSON manifest to validate.
32
+ * @param maxResources Maximum allowed resource count; defaults to 10,000.
33
+ * @param maxResourceBytes Maximum declared representation bytes; defaults to 8,000,000.
34
+ */
29
35
  export function validateContentManifest(value, maxResources = 10_000, maxResourceBytes = 8_000_000) {
30
36
  if (!keys(value, ['schemaVersion', 'kind', 'digest', 'publicBase', 'publication', 'review', 'resources', 'assets', 'files', 'diagnostics']) || ![1, 2].includes(value.schemaVersion) || value.kind !== 'shoalrun-content-export' || !digestPattern.test(value.digest ?? ''))
31
37
  invalid('Unsupported content manifest.');
@@ -4,18 +4,36 @@ export * from './content-rest-contract.js';
4
4
  export { validateContentManifest } from './content-delivery-validation.js';
5
5
  export { mountContent } from './content-mount.js';
6
6
  export type { ContentMount } from './content-mount.js';
7
+ /** Positive safe-integer bounds applied when opening and reading content. */
7
8
  export type ContentDeliveryLimits = {
9
+ /** Maximum manifest or REST inventory bytes. Defaults to 5,000,000. */
8
10
  manifestBytes?: number;
11
+ /** Maximum bytes for an individual representation. Defaults to 8,000,000. */
9
12
  resourceBytes?: number;
13
+ /** Maximum resource count in the inventory. Defaults to 10,000. */
10
14
  resources?: number;
11
15
  };
16
+ /** Configuration for opening a static content-export manifest. */
12
17
  export type ManifestContentSourceOptions = {
18
+ /** Manifest URL; a browser resolves relative URLs against its current location. */
13
19
  manifestUrl: string | URL;
20
+ /** Fetch implementation. Defaults to globalThis.fetch. */
14
21
  fetch?: typeof globalThis.fetch;
22
+ /** Cancel the opening request. Use get's signal to cancel an individual read. */
15
23
  signal?: AbortSignal;
24
+ /** Inventory and representation bounds. */
16
25
  limits?: ContentDeliveryLimits;
17
26
  };
18
- /** Opens one immutable manifest revision. The caller owns trust in the build/host. */
27
+ /** Open and validate one immutable static manifest revision.
28
+ * The caller owns trust in the compiler output and host. Browser URLs must use
29
+ * the application's origin. Requests reject redirects and unexpected content types.
30
+ * @param options Manifest URL, request implementation, cancellation, and limits.
31
+ * @returns A revision-pinned snapshot for listing and reading exported resources.
32
+ * @example
33
+ * const snapshot = await openManifestContentSource({ manifestUrl: '/help/manifest.json' });
34
+ * const page = await snapshot.get({ kind: 'page', documentId: 'guide.start' }, { format: 'markdown' });
35
+ * snapshot.dispose();
36
+ */
19
37
  export declare function openManifestContentSource(options: ManifestContentSourceOptions): Promise<ContentSnapshot>;
20
38
  export { openRestContentSource } from './content-rest-client.js';
21
39
  export type { RestContentSourceOptions } from './content-rest-client.js';
@@ -6,7 +6,16 @@ export { validateContentManifest } from './content-delivery-validation.js';
6
6
  import { freeze, sha256, readBounded } from './content-delivery-transport.js';
7
7
  const invalid = (message) => { throw new ContentDeliveryError('invalid_manifest', message); };
8
8
  export { mountContent } from './content-mount.js';
9
- /** Opens one immutable manifest revision. The caller owns trust in the build/host. */
9
+ /** Open and validate one immutable static manifest revision.
10
+ * The caller owns trust in the compiler output and host. Browser URLs must use
11
+ * the application's origin. Requests reject redirects and unexpected content types.
12
+ * @param options Manifest URL, request implementation, cancellation, and limits.
13
+ * @returns A revision-pinned snapshot for listing and reading exported resources.
14
+ * @example
15
+ * const snapshot = await openManifestContentSource({ manifestUrl: '/help/manifest.json' });
16
+ * const page = await snapshot.get({ kind: 'page', documentId: 'guide.start' }, { format: 'markdown' });
17
+ * snapshot.dispose();
18
+ */
10
19
  export async function openManifestContentSource(options) {
11
20
  const fetcher = options.fetch ?? globalThis.fetch;
12
21
  let manifestUrl;
@@ -4,7 +4,12 @@ export declare function runExportCommand(args: string[]): Promise<{
4
4
  preparedPdf: import("./content-export.js").PdfExportPreparation;
5
5
  status: string;
6
6
  output: string;
7
- publication: import("./content-source.js").Variant;
7
+ publication: {
8
+ product?: string;
9
+ channel: string;
10
+ version: string;
11
+ language: string;
12
+ };
8
13
  formats: import("./content-export-config.js").ExportFormat[];
9
14
  profileSelection: {
10
15
  schemaVersion: number;
@@ -18,6 +23,14 @@ export declare function runExportCommand(args: string[]): Promise<{
18
23
  requires?: import("./deployment-profile.js").FeatureRequirements;
19
24
  }[];
20
25
  } | undefined;
26
+ contentSelection: {
27
+ selection: import("./reader-filters.js").ReaderSelection | null;
28
+ decisions: Record<string, unknown>[];
29
+ warnings: {
30
+ code: string;
31
+ message: string;
32
+ }[];
33
+ };
21
34
  resources: number;
22
35
  documents: number;
23
36
  documentIds: string[];
@@ -42,7 +55,12 @@ export declare function runExportCommand(args: string[]): Promise<{
42
55
  pdf: string;
43
56
  status: string;
44
57
  output: string;
45
- publication: import("./content-source.js").Variant;
58
+ publication: {
59
+ product?: string;
60
+ channel: string;
61
+ version: string;
62
+ language: string;
63
+ };
46
64
  formats: import("./content-export-config.js").ExportFormat[];
47
65
  profileSelection: {
48
66
  schemaVersion: number;
@@ -56,6 +74,14 @@ export declare function runExportCommand(args: string[]): Promise<{
56
74
  requires?: import("./deployment-profile.js").FeatureRequirements;
57
75
  }[];
58
76
  } | undefined;
77
+ contentSelection: {
78
+ selection: import("./reader-filters.js").ReaderSelection | null;
79
+ decisions: Record<string, unknown>[];
80
+ warnings: {
81
+ code: string;
82
+ message: string;
83
+ }[];
84
+ };
59
85
  resources: number;
60
86
  documents: number;
61
87
  documentIds: string[];
@@ -78,7 +104,12 @@ export declare function runExportCommand(args: string[]): Promise<{
78
104
  } | {
79
105
  status: string;
80
106
  output: string;
81
- publication: import("./content-source.js").Variant;
107
+ publication: {
108
+ product?: string;
109
+ channel: string;
110
+ version: string;
111
+ language: string;
112
+ };
82
113
  formats: import("./content-export-config.js").ExportFormat[];
83
114
  profileSelection: {
84
115
  schemaVersion: number;
@@ -92,6 +123,14 @@ export declare function runExportCommand(args: string[]): Promise<{
92
123
  requires?: import("./deployment-profile.js").FeatureRequirements;
93
124
  }[];
94
125
  } | undefined;
126
+ contentSelection: {
127
+ selection: import("./reader-filters.js").ReaderSelection | null;
128
+ decisions: Record<string, unknown>[];
129
+ warnings: {
130
+ code: string;
131
+ message: string;
132
+ }[];
133
+ };
95
134
  resources: number;
96
135
  documents: number;
97
136
  documentIds: string[];
@@ -66,7 +66,12 @@ export declare function exportContent(configFile: string, destination: string, o
66
66
  preparedPdf: PdfExportPreparation;
67
67
  status: string;
68
68
  output: string;
69
- publication: Variant;
69
+ publication: {
70
+ product?: string;
71
+ channel: string;
72
+ version: string;
73
+ language: string;
74
+ };
70
75
  formats: ExportFormat[];
71
76
  profileSelection: {
72
77
  schemaVersion: number;
@@ -80,6 +85,14 @@ export declare function exportContent(configFile: string, destination: string, o
80
85
  requires?: import("./deployment-profile.js").FeatureRequirements;
81
86
  }[];
82
87
  } | undefined;
88
+ contentSelection: {
89
+ selection: import("./reader-filters.js").ReaderSelection | null;
90
+ decisions: Record<string, unknown>[];
91
+ warnings: {
92
+ code: string;
93
+ message: string;
94
+ }[];
95
+ };
83
96
  resources: number;
84
97
  documents: number;
85
98
  documentIds: string[];
@@ -104,7 +117,12 @@ export declare function exportContent(configFile: string, destination: string, o
104
117
  pdf: string;
105
118
  status: string;
106
119
  output: string;
107
- publication: Variant;
120
+ publication: {
121
+ product?: string;
122
+ channel: string;
123
+ version: string;
124
+ language: string;
125
+ };
108
126
  formats: ExportFormat[];
109
127
  profileSelection: {
110
128
  schemaVersion: number;
@@ -118,6 +136,14 @@ export declare function exportContent(configFile: string, destination: string, o
118
136
  requires?: import("./deployment-profile.js").FeatureRequirements;
119
137
  }[];
120
138
  } | undefined;
139
+ contentSelection: {
140
+ selection: import("./reader-filters.js").ReaderSelection | null;
141
+ decisions: Record<string, unknown>[];
142
+ warnings: {
143
+ code: string;
144
+ message: string;
145
+ }[];
146
+ };
121
147
  resources: number;
122
148
  documents: number;
123
149
  documentIds: string[];
@@ -140,7 +166,12 @@ export declare function exportContent(configFile: string, destination: string, o
140
166
  } | {
141
167
  status: string;
142
168
  output: string;
143
- publication: Variant;
169
+ publication: {
170
+ product?: string;
171
+ channel: string;
172
+ version: string;
173
+ language: string;
174
+ };
144
175
  formats: ExportFormat[];
145
176
  profileSelection: {
146
177
  schemaVersion: number;
@@ -154,6 +185,14 @@ export declare function exportContent(configFile: string, destination: string, o
154
185
  requires?: import("./deployment-profile.js").FeatureRequirements;
155
186
  }[];
156
187
  } | undefined;
188
+ contentSelection: {
189
+ selection: import("./reader-filters.js").ReaderSelection | null;
190
+ decisions: Record<string, unknown>[];
191
+ warnings: {
192
+ code: string;
193
+ message: string;
194
+ }[];
195
+ };
157
196
  resources: number;
158
197
  documents: number;
159
198
  documentIds: string[];