@shoalrun/cli 0.1.0-alpha.11 → 0.1.0-alpha.13

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 (602) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +59 -17
  3. package/agent-docs/.well-known/shoalrun/navigation/examples-tab-50f26fe22670.txt +22 -0
  4. package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +33 -3
  5. package/agent-docs/.well-known/shoalrun/navigation/reference-tab-50f26fe22670.txt +22 -0
  6. package/agent-docs/SNAPSHOT.json +5 -5
  7. package/agent-docs/api-docs/focused-contracts.md +2 -2
  8. package/agent-docs/api-docs/generate.md +6 -6
  9. package/agent-docs/api-docs/generate.sections/add-useful-examples.md +2 -2
  10. package/agent-docs/api-docs/generate.sections/choose-generated-references-or-mdx.md +5 -5
  11. package/agent-docs/api-docs/generate.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +2 -2
  12. package/agent-docs/api-docs/generate.sections/generate-many-pages-selectively.md +2 -2
  13. package/agent-docs/api-docs/generate.sections/link-guides-to-api-references.md +2 -2
  14. package/agent-docs/api-docs/generate.sections/map-extension-values-to-shoalrun-status.md +2 -2
  15. package/agent-docs/api-docs/generate.sections/override-generated-reference-order-in-navigation.md +3 -3
  16. package/agent-docs/api-docs/generate.sections/related-reading.md +2 -2
  17. package/agent-docs/api-docs/generate.sections/use-a-template-for-editorial-context.md +2 -2
  18. package/agent-docs/api-docs/support.md +14 -13
  19. package/agent-docs/author/add-page.md +8 -6
  20. package/agent-docs/author/agent-overview.md +1 -1
  21. package/agent-docs/author/agent-workflow.md +1 -1
  22. package/agent-docs/author/analytics.md +1 -1
  23. package/agent-docs/author/analytics.sections/adapter-exports-and-consent.md +1 -1
  24. package/agent-docs/author/analytics.sections/built-in-events.md +1 -1
  25. package/agent-docs/author/analytics.sections/configure-an-adapter.md +1 -1
  26. package/agent-docs/author/analytics.sections/custom-interactions.md +1 -1
  27. package/agent-docs/author/analytics.sections/event-format.md +1 -1
  28. package/agent-docs/author/analytics.sections/html-markdown-and-agents.md +1 -1
  29. package/agent-docs/author/analytics.sections/inspect-events-locally.md +1 -1
  30. package/agent-docs/author/analytics.sections/map-events-to-your-service.md +1 -1
  31. package/agent-docs/author/analytics.sections/posthog-example.md +1 -1
  32. package/agent-docs/author/analytics.sections/related-reading.md +1 -1
  33. package/agent-docs/author/authoring-agent.md +1 -1
  34. package/agent-docs/author/coding-agent.md +1 -1
  35. package/agent-docs/author/components/action-link.md +9 -3
  36. package/agent-docs/author/components/api-embeds.md +11 -3
  37. package/agent-docs/author/components/api-embeds.sections/apiexample.md +7 -3
  38. package/agent-docs/author/components/api-embeds.sections/html-markdown-and-agents.md +3 -3
  39. package/agent-docs/author/components/api-embeds.sections/related-reading.md +3 -3
  40. package/agent-docs/author/components/badge.md +8 -4
  41. package/agent-docs/author/components/breadcrumbs.md +1 -1
  42. package/agent-docs/author/components/callout.md +8 -4
  43. package/agent-docs/author/components/cards.md +2 -2
  44. package/agent-docs/author/components/cards.sections/add-a-lucide-icon.md +2 -2
  45. package/agent-docs/author/components/cards.sections/build-a-collection.md +2 -2
  46. package/agent-docs/author/components/cards.sections/curate-a-reading-list.md +2 -2
  47. package/agent-docs/author/components/cards.sections/html-markdown-and-agents.md +2 -2
  48. package/agent-docs/author/components/cards.sections/link-to-one-document.md +2 -2
  49. package/agent-docs/author/components/cards.sections/override-card-text.md +2 -2
  50. package/agent-docs/author/components/cards.sections/related-reading.md +2 -2
  51. package/agent-docs/author/components/code-blocks.md +8 -4
  52. package/agent-docs/author/components/collapsible.md +7 -3
  53. package/agent-docs/author/components/cookbook-chooser.md +7 -3
  54. package/agent-docs/author/components/custom/react.md +1 -1
  55. package/agent-docs/author/components/custom/react.sections/html-markdown-and-agents.md +1 -1
  56. package/agent-docs/author/components/custom/react.sections/interactive-react-example.md +1 -1
  57. package/agent-docs/author/components/custom/react.sections/registration.md +1 -1
  58. package/agent-docs/author/components/custom/react.sections/related-reading.md +1 -1
  59. package/agent-docs/author/components/custom/react.sections/share-the-model-with-the-browser.md +1 -1
  60. package/agent-docs/author/components/custom/react.sections/where-the-content-lives.md +1 -1
  61. package/agent-docs/author/components/custom.md +1 -1
  62. package/agent-docs/author/components/definition-list.md +5 -3
  63. package/agent-docs/author/components/diagrams/d2-gallery.md +2 -2
  64. package/agent-docs/author/components/diagrams/d2-gallery.sections/basic-shapes.md +2 -2
  65. package/agent-docs/author/components/diagrams/d2-gallery.sections/flows-and-structures.md +2 -2
  66. package/agent-docs/author/components/diagrams/d2-gallery.sections/html-markdown-and-agents.md +2 -2
  67. package/agent-docs/author/components/diagrams/d2-gallery.sections/layout-engines.md +2 -2
  68. package/agent-docs/author/components/diagrams/d2-gallery.sections/related-reading.md +2 -2
  69. package/agent-docs/author/components/diagrams/d2-gallery.sections/sequences-and-grids.md +2 -2
  70. package/agent-docs/author/components/diagrams/d2-gallery.sections/styles-and-code.md +2 -2
  71. package/agent-docs/author/components/diagrams/pele-gallery.md +2 -2
  72. package/agent-docs/author/components/diagrams/pele-gallery.sections/charts-and-planning.md +2 -2
  73. package/agent-docs/author/components/diagrams/pele-gallery.sections/flowchart-shapes.md +2 -2
  74. package/agent-docs/author/components/diagrams/pele-gallery.sections/flows-and-behavior.md +2 -2
  75. package/agent-docs/author/components/diagrams/pele-gallery.sections/html-markdown-and-agents.md +2 -2
  76. package/agent-docs/author/components/diagrams/pele-gallery.sections/related-reading.md +2 -2
  77. package/agent-docs/author/components/diagrams/pele-gallery.sections/specialized-diagrams.md +2 -2
  78. package/agent-docs/author/components/diagrams/pele-gallery.sections/systems-and-structures.md +2 -2
  79. package/agent-docs/author/components/diagrams.md +13 -5
  80. package/agent-docs/author/components/doc-link.md +7 -3
  81. package/agent-docs/author/components/fields.md +6 -4
  82. package/agent-docs/author/components/file-tree.md +7 -3
  83. package/agent-docs/author/components/images.md +5 -3
  84. package/agent-docs/author/components/info-hint.md +7 -3
  85. package/agent-docs/author/components/kbd.md +5 -3
  86. package/agent-docs/author/components/math.md +7 -3
  87. package/agent-docs/author/components/only.md +9 -5
  88. package/agent-docs/author/components/progress.md +7 -3
  89. package/agent-docs/author/components/related-reading.md +7 -3
  90. package/agent-docs/author/components/steps.md +9 -3
  91. package/agent-docs/author/components/tables.md +7 -3
  92. package/agent-docs/author/components/tabs.md +7 -3
  93. package/agent-docs/author/components/timeline.md +10 -4
  94. package/agent-docs/author/components/tooltips.md +7 -3
  95. package/agent-docs/author/components/walkthroughs.md +5 -3
  96. package/agent-docs/author/components/walkthroughs.sections/attributes.md +3 -3
  97. package/agent-docs/author/components/walkthroughs.sections/build-up-code.md +3 -3
  98. package/agent-docs/author/components/walkthroughs.sections/choose-a-layout.md +3 -3
  99. package/agent-docs/author/components/walkthroughs.sections/explain-one-file.md +3 -3
  100. package/agent-docs/author/components/walkthroughs.sections/html-markdown-and-agents.md +3 -3
  101. package/agent-docs/author/components/walkthroughs.sections/related-reading.md +3 -3
  102. package/agent-docs/author/components/walkthroughs.sections/syntax.md +51 -0
  103. package/agent-docs/author/components/walkthroughs.sections/take-code-from-a-file.md +3 -22
  104. package/agent-docs/author/components.md +19 -4
  105. package/agent-docs/author/css.md +13 -10
  106. package/agent-docs/author/css.sections/borders-fields-and-navigation-tokens.md +3 -3
  107. package/agent-docs/author/css.sections/core-color-tokens.md +3 -3
  108. package/agent-docs/author/css.sections/html-markdown-and-agents.md +54 -0
  109. package/agent-docs/author/css.sections/page-attributes.md +9 -9
  110. package/agent-docs/author/css.sections/page-transitions.md +3 -3
  111. package/agent-docs/author/css.sections/responsive-behavior.md +3 -3
  112. package/agent-docs/author/css.sections/status-code-and-callout-tokens.md +3 -3
  113. package/agent-docs/author/css.sections/typography-shape-and-width-tokens.md +3 -3
  114. package/agent-docs/author/custom-metadata.md +2 -2
  115. package/agent-docs/author/custom-metadata.sections/add-a-custom-page-field.md +2 -2
  116. package/agent-docs/author/custom-metadata.sections/choose-text-for-each-surface.md +2 -2
  117. package/agent-docs/author/custom-metadata.sections/preview-changes-to-metadata-providers.md +2 -2
  118. package/agent-docs/author/custom-metadata.sections/read-metadata-from-a-project-module.md +2 -2
  119. package/agent-docs/author/custom-metadata.sections/related-reading.md +2 -2
  120. package/agent-docs/author/design-templates.md +1 -1
  121. package/agent-docs/author/design-writing-guides.md +1 -1
  122. package/agent-docs/author/frontmatter-reference.md +34 -27
  123. package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +5 -3
  124. package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +5 -3
  125. package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +5 -3
  126. package/agent-docs/author/frontmatter-reference.sections/html-markdown-and-agents.md +33 -0
  127. package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +5 -3
  128. package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +5 -3
  129. package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +5 -3
  130. package/agent-docs/author/frontmatter-reference.sections/related-reading.md +5 -3
  131. package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +5 -3
  132. package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +5 -3
  133. package/agent-docs/author/frontmatter.md +7 -4
  134. package/agent-docs/author/frontmatter.sections/audience-badges.md +3 -3
  135. package/agent-docs/author/frontmatter.sections/give-deprecation-guidance.md +3 -3
  136. package/agent-docs/author/frontmatter.sections/global-defaults-and-enforced-values.md +3 -3
  137. package/agent-docs/author/frontmatter.sections/optional-native-fields.md +7 -4
  138. package/agent-docs/author/frontmatter.sections/publication-fields.md +3 -3
  139. package/agent-docs/author/frontmatter.sections/publishing-policy.md +3 -3
  140. package/agent-docs/author/frontmatter.sections/related-metadata-tasks.md +3 -3
  141. package/agent-docs/author/frontmatter.sections/related-reading.md +3 -3
  142. package/agent-docs/author/frontmatter.sections/required-after-inheritance.md +3 -3
  143. package/agent-docs/author/frontmatter.sections/seo-fields.md +3 -3
  144. package/agent-docs/author/frontmatter.sections/validation-rules.md +3 -3
  145. package/agent-docs/author/markdown-metadata.md +17 -9
  146. package/agent-docs/author/navigation.md +13 -2
  147. package/agent-docs/author/navigation.sections/arrange-authored-pages.md +2 -2
  148. package/agent-docs/author/navigation.sections/fill-an-api-tag-group.md +2 -2
  149. package/agent-docs/author/navigation.sections/hide-group-page-counts.md +13 -2
  150. package/agent-docs/author/navigation.sections/html-markdown-and-agents.md +2 -2
  151. package/agent-docs/author/navigation.sections/local-api-preview.md +2 -2
  152. package/agent-docs/author/navigation.sections/mix-guides-and-api-references.md +2 -2
  153. package/agent-docs/author/navigation.sections/optionally-split-a-large-menu-into-files.md +2 -2
  154. package/agent-docs/author/navigation.sections/reach-navigation-while-reading.md +2 -2
  155. package/agent-docs/author/navigation.sections/related-reading.md +2 -2
  156. package/agent-docs/author/navigation.sections/split-navigation-into-tabs.md +2 -2
  157. package/agent-docs/author/navigation.sections/subject-lifecycle-labels.md +2 -2
  158. package/agent-docs/author/recipe-drafts.md +16 -16
  159. package/agent-docs/author/recipe-drafts.sections/1-write-one-reusable-step.md +5 -5
  160. package/agent-docs/author/recipe-drafts.sections/2-list-the-steps-for-one-complete-goal.md +3 -3
  161. package/agent-docs/author/recipe-drafts.sections/3-generate-a-draft-and-review-it.md +4 -4
  162. package/agent-docs/author/recipe-drafts.sections/4-maintain-shoalrun-s-published-recipe-snapshots.md +3 -3
  163. package/agent-docs/author/recipe-drafts.sections/related-reading.md +1 -1
  164. package/agent-docs/author/recipe-drafts.sections/start-an-ingredient-from-an-api-example.md +5 -5
  165. package/agent-docs/author/recipes.md +4 -4
  166. package/agent-docs/author/recipes.sections/how-agents-use-this.md +1 -1
  167. package/agent-docs/author/recipes.sections/one-example-from-shoalrun.md +4 -4
  168. package/agent-docs/author/recipes.sections/related-reading.md +1 -1
  169. package/agent-docs/author/recipes.sections/try-a-complete-workflow.md +1 -1
  170. package/agent-docs/author/recipes.sections/use-recipes-for-task-oriented-how-tos.md +1 -1
  171. package/agent-docs/author/recipes.sections/what-changing-an-ingredient-updates.md +1 -1
  172. package/agent-docs/author/recipes.sections/what-each-file-does.md +1 -1
  173. package/agent-docs/author/recipes.sections/what-happens-and-when.md +1 -1
  174. package/agent-docs/author/related-reading.md +5 -1
  175. package/agent-docs/author/related-reading.sections/automatic-footers.md +1 -1
  176. package/agent-docs/author/related-reading.sections/declare-relationships.md +1 -1
  177. package/agent-docs/author/related-reading.sections/display-related-documents.md +1 -1
  178. package/agent-docs/author/related-reading.sections/html-markdown-and-agents.md +28 -0
  179. package/agent-docs/author/related-reading.sections/inspect-output-and-changes.md +1 -1
  180. package/agent-docs/author/related-reading.sections/reading-paths-in-section-markdown.md +1 -1
  181. package/agent-docs/author/related-reading.sections/related-reading.md +1 -1
  182. package/agent-docs/author/related-reading.sections/where-relationship-explanations-come-from.md +1 -1
  183. package/agent-docs/author/search.md +1 -1
  184. package/agent-docs/author/search.sections/choose-a-provider.md +1 -1
  185. package/agent-docs/author/search.sections/cli-and-mcp-ranking-details.md +1 -1
  186. package/agent-docs/author/search.sections/hosted-semantic-search-limits.md +1 -1
  187. package/agent-docs/author/search.sections/html-markdown-and-agents.md +1 -1
  188. package/agent-docs/author/search.sections/lexical-search.md +1 -1
  189. package/agent-docs/author/search.sections/local-semantic-preview.md +1 -1
  190. package/agent-docs/author/search.sections/read-a-search-result-with-an-agent.md +1 -1
  191. package/agent-docs/author/search.sections/related-reading.md +1 -1
  192. package/agent-docs/author/search.sections/reuse-the-lexical-index.md +1 -1
  193. package/agent-docs/author/search.sections/turn-search-off.md +1 -1
  194. package/agent-docs/author/search.sections/use-the-search-box.md +1 -1
  195. package/agent-docs/author/search.sections/write-a-custom-provider.md +1 -1
  196. package/agent-docs/author/snippets.md +5 -1
  197. package/agent-docs/author/taxonomy.md +1 -1
  198. package/agent-docs/author/templates.md +16 -8
  199. package/agent-docs/author/templates.sections/built-in-feature-templates.md +3 -3
  200. package/agent-docs/author/templates.sections/built-in-templates.md +3 -3
  201. package/agent-docs/author/templates.sections/choose-formatting-enforcement-for-your-project.md +3 -3
  202. package/agent-docs/author/templates.sections/create-or-edit-a-project-template.md +12 -4
  203. package/agent-docs/author/templates.sections/keep-the-four-shapes-distinct.md +3 -3
  204. package/agent-docs/author/templates.sections/project-added-templates.md +3 -3
  205. package/agent-docs/author/templates.sections/related-reading.md +3 -3
  206. package/agent-docs/author/templates.sections/scaffold-a-page.md +7 -7
  207. package/agent-docs/author/templates.sections/short-cli-and-derived-values.md +3 -3
  208. package/agent-docs/author/templates.sections/what-every-template-gives-you.md +3 -3
  209. package/agent-docs/author/workspace/commands.md +2 -2
  210. package/agent-docs/author/workspace.md +8 -2
  211. package/agent-docs/author/writing-style.md +27 -5
  212. package/agent-docs/author/writing-style.sections/adapt-this-example.md +3 -3
  213. package/agent-docs/author/writing-style.sections/choose-components-by-reader-need.md +6 -4
  214. package/agent-docs/author/writing-style.sections/evidence-and-uncertainty.md +3 -3
  215. package/agent-docs/author/writing-style.sections/example-audience-and-scope.md +3 -3
  216. package/agent-docs/author/writing-style.sections/feature-availability.md +36 -0
  217. package/agent-docs/author/writing-style.sections/ingredients-recipes-and-cookbooks.md +3 -3
  218. package/agent-docs/author/writing-style.sections/page-purpose-and-structure.md +12 -4
  219. package/agent-docs/author/writing-style.sections/procedures-and-examples.md +3 -3
  220. package/agent-docs/author/writing-style.sections/related-reading.md +3 -3
  221. package/agent-docs/author/writing-style.sections/review-a-draft.md +3 -3
  222. package/agent-docs/author/writing-style.sections/reviewed-writing-examples.md +3 -3
  223. package/agent-docs/author/writing-style.sections/voice-and-explanations.md +3 -3
  224. package/agent-docs/changelog/2026-10-14-agent-readiness.md +2 -2
  225. package/agent-docs/changelog/2026-10-15-evaluation-builds.md +2 -2
  226. package/agent-docs/changelog/2026-10-16-navigation-layouts.md +2 -2
  227. package/agent-docs/changelog/2026-10-17-mcp-hosting.md +2 -2
  228. package/agent-docs/changelog/2026-10-18-search-and-tooltips.md +2 -2
  229. package/agent-docs/changelog/2026-10-19-visual-navigation.md +2 -2
  230. package/agent-docs/changelog/2026-10-25.md +2 -2
  231. package/agent-docs/changelog/2026-10-26.md +2 -2
  232. package/agent-docs/changelog/2026-10-27.md +2 -2
  233. package/agent-docs/changelog/2026-10-28.md +89 -0
  234. package/agent-docs/changelog/authoring-preview.md +2 -2
  235. package/agent-docs/changelog/authoring-search.md +3 -3
  236. package/agent-docs/changelog/authoring-tools.md +2 -2
  237. package/agent-docs/changelog/working-tree-skill.md +2 -2
  238. package/agent-docs/changelog.md +11 -3
  239. package/agent-docs/chat/checks.md +1 -1
  240. package/agent-docs/chat/checks.sections/answer-ahead-of-time.md +1 -1
  241. package/agent-docs/chat/checks.sections/answer-for-one-audience.md +1 -1
  242. package/agent-docs/chat/checks.sections/answer-without-a-model.md +1 -1
  243. package/agent-docs/chat/checks.sections/follow-up-questions.md +1 -1
  244. package/agent-docs/chat/checks.sections/how-an-answer-is-checked.md +1 -1
  245. package/agent-docs/chat/checks.sections/questions-with-several-parts.md +1 -1
  246. package/agent-docs/chat/checks.sections/related-reading.md +1 -1
  247. package/agent-docs/chat/checks.sections/reuse-answers.md +1 -1
  248. package/agent-docs/chat/host.md +1 -1
  249. package/agent-docs/chat/host.sections/cap-the-daily-spend.md +1 -1
  250. package/agent-docs/chat/host.sections/keep-a-record-of-questions.md +1 -1
  251. package/agent-docs/chat/host.sections/related-reading.md +1 -1
  252. package/agent-docs/chat/passage-index.md +2 -2
  253. package/agent-docs/chat/passage-index.sections/build-the-index.md +2 -2
  254. package/agent-docs/chat/passage-index.sections/embed-passages.md +2 -2
  255. package/agent-docs/chat/passage-index.sections/how-the-default-chunker-splits-a-page.md +2 -2
  256. package/agent-docs/chat/passage-index.sections/limits.md +2 -2
  257. package/agent-docs/chat/passage-index.sections/passage-ids-and-links.md +2 -2
  258. package/agent-docs/chat/passage-index.sections/related-reading.md +2 -2
  259. package/agent-docs/chat/passage-index.sections/what-a-passage-contains.md +2 -2
  260. package/agent-docs/chat/prepared-answers.md +1 -1
  261. package/agent-docs/chat/settings.md +2 -2
  262. package/agent-docs/chat/settings.sections/choose-the-scorer.md +2 -2
  263. package/agent-docs/chat/settings.sections/configure-chat.md +2 -2
  264. package/agent-docs/chat/settings.sections/configure-retrieval.md +2 -2
  265. package/agent-docs/chat/settings.sections/related-reading.md +2 -2
  266. package/agent-docs/chat/settings.sections/send-extra-request-fields.md +2 -2
  267. package/agent-docs/chat/settings.sections/use-more-than-one-model.md +2 -2
  268. package/agent-docs/chat/settings.sections/when-the-scorer-is-down.md +2 -2
  269. package/agent-docs/chat/setup.md +1 -1
  270. package/agent-docs/chat.md +1 -1
  271. package/agent-docs/cli.md +2 -2
  272. package/agent-docs/cli.sections/audit-a-project-and-api-sources.md +2 -2
  273. package/agent-docs/cli.sections/author-pages.md +2 -2
  274. package/agent-docs/cli.sections/build-and-serve.md +2 -2
  275. package/agent-docs/cli.sections/inspect-config-and-operations.md +2 -2
  276. package/agent-docs/cli.sections/npm-scripts-in-this-repository.md +2 -2
  277. package/agent-docs/cli.sections/related-reading.md +2 -2
  278. package/agent-docs/cli.sections/search-and-chat.md +2 -2
  279. package/agent-docs/cli.sections/start-a-project.md +2 -2
  280. package/agent-docs/cli.sections/working-tree-authoring-tools.md +2 -2
  281. package/agent-docs/config/apis.md +2 -2
  282. package/agent-docs/config/content.md +2 -2
  283. package/agent-docs/config/content.sections/authoring.md +2 -2
  284. package/agent-docs/config/content.sections/badges.md +2 -2
  285. package/agent-docs/config/content.sections/callouts.md +2 -2
  286. package/agent-docs/config/content.sections/cookbooks.md +2 -2
  287. package/agent-docs/config/content.sections/frontmatter.md +2 -2
  288. package/agent-docs/config/content.sections/readerfilters.md +2 -2
  289. package/agent-docs/config/content.sections/related-reading.md +2 -2
  290. package/agent-docs/config/content.sections/relationships.md +2 -2
  291. package/agent-docs/config/content.sections/snippets.md +2 -2
  292. package/agent-docs/config/content.sections/templates.md +2 -2
  293. package/agent-docs/config/content.sections/variables.md +2 -2
  294. package/agent-docs/config/examples.md +22 -14
  295. package/agent-docs/config/examples.sections/feature-showcase.md +21 -13
  296. package/agent-docs/config/examples.sections/minimal-site.md +15 -10
  297. package/agent-docs/config/examples.sections/multilingual-help-center.md +15 -10
  298. package/agent-docs/config/examples.sections/parcel-api-documentation.md +15 -10
  299. package/agent-docs/config/examples.sections/related-reading.md +15 -10
  300. package/agent-docs/config/examples.sections/shared-company-preset.md +16 -11
  301. package/agent-docs/config/integrations.md +2 -2
  302. package/agent-docs/config/outputs.md +17 -13
  303. package/agent-docs/config/outputs.sections/exports.md +16 -13
  304. package/agent-docs/config/outputs.sections/metadata.md +3 -3
  305. package/agent-docs/config/outputs.sections/related-reading.md +3 -3
  306. package/agent-docs/config/publishing.md +2 -2
  307. package/agent-docs/config/publishing.sections/navigation.md +2 -2
  308. package/agent-docs/config/publishing.sections/redirects.md +2 -2
  309. package/agent-docs/config/publishing.sections/related-reading.md +2 -2
  310. package/agent-docs/config/site.md +2 -2
  311. package/agent-docs/config/site.sections/related-reading.md +2 -2
  312. package/agent-docs/config/site.sections/theme.md +2 -2
  313. package/agent-docs/config.md +2 -2
  314. package/agent-docs/configuration.md +22 -20
  315. package/agent-docs/configuration.sections/build-several-sites-from-shared-content.md +2 -2
  316. package/agent-docs/configuration.sections/change-inherited-lists-deliberately.md +5 -5
  317. package/agent-docs/configuration.sections/extract-a-section-with-include.md +4 -4
  318. package/agent-docs/configuration.sections/inspect-and-validate-changes.md +6 -6
  319. package/agent-docs/configuration.sections/related-reading.md +2 -2
  320. package/agent-docs/configuration.sections/separate-config-inheritance-from-page-metadata.md +2 -2
  321. package/agent-docs/configuration.sections/share-defaults-through-extends.md +7 -7
  322. package/agent-docs/configuration.sections/start-with-one-working-file.md +8 -6
  323. package/agent-docs/configuration.sections/understand-the-three-stages.md +2 -2
  324. package/agent-docs/configuration.sections/understand-where-paths-point.md +2 -2
  325. package/agent-docs/connect/mcp.md +1 -1
  326. package/agent-docs/content-delivery/agents.md +86 -0
  327. package/agent-docs/content-delivery/api.md +130 -0
  328. package/agent-docs/content-delivery/client.md +79 -0
  329. package/agent-docs/content-delivery/http-api/operations/get-content-representation-fa1d2e3f.md +394 -0
  330. package/agent-docs/content-delivery/http-api/operations/get-content-representation-head-4052375c.md +256 -0
  331. package/agent-docs/content-delivery/http-api/operations/get-content-resource-849f1c49.md +911 -0
  332. package/agent-docs/content-delivery/http-api/operations/get-content-resource-head-0a352acd.md +246 -0
  333. package/agent-docs/content-delivery/http-api/operations/list-content-resources-8e977ec7.md +913 -0
  334. package/agent-docs/content-delivery/http-api/operations/list-content-resources-head-b67cbad9.md +236 -0
  335. package/agent-docs/content-delivery/http-api.md +78 -0
  336. package/agent-docs/content-delivery/manifest.md +79 -0
  337. package/agent-docs/content-delivery/publish.md +72 -0
  338. package/agent-docs/content-delivery/render.md +73 -0
  339. package/agent-docs/content-delivery/rest.md +108 -0
  340. package/agent-docs/content-delivery/sections.md +110 -0
  341. package/agent-docs/content-delivery/select.md +100 -0
  342. package/agent-docs/content-delivery.md +79 -0
  343. package/agent-docs/contribute/agent-skills.md +1 -1
  344. package/agent-docs/cookbooks/authoring.md +7 -3
  345. package/agent-docs/cookbooks/site-workflows.md +8 -4
  346. package/agent-docs/cookbooks/welcome-email.md +7 -3
  347. package/agent-docs/documents.json +7707 -6283
  348. package/agent-docs/example-api/cedar/create-enrollment-7af3e5d2.md +2 -2
  349. package/agent-docs/example-api/cedar/get-legacy-parcel-6758d051.md +2 -2
  350. package/agent-docs/example-api/cedar/get-parcel-edee10e6.md +2 -2
  351. package/agent-docs/example-api/cedar/list-parcels-0345fb5f.md +2 -2
  352. package/agent-docs/example-api/cedar/parcel-delivered-7d1ba6db.md +2 -2
  353. package/agent-docs/example-api/cedar/upload-manifest-1af17891.md +2 -2
  354. package/agent-docs/example-api/cedar.md +2 -2
  355. package/agent-docs/example-api/create-note.md +2 -2
  356. package/agent-docs/example-api/generated/get-note-cbedb319.md +2 -2
  357. package/agent-docs/example-api/write-note.md +2 -2
  358. package/agent-docs/explore.md +2 -2
  359. package/agent-docs/glossary.md +3 -7
  360. package/agent-docs/ingredients/audit-site.md +2 -2
  361. package/agent-docs/ingredients/build-site.md +2 -2
  362. package/agent-docs/ingredients/compile-framework.md +2 -2
  363. package/agent-docs/ingredients/complete-page.md +2 -2
  364. package/agent-docs/ingredients/inspect-agent-bundle.md +2 -2
  365. package/agent-docs/ingredients/inspect-build.md +2 -2
  366. package/agent-docs/ingredients/preview-site.md +2 -2
  367. package/agent-docs/ingredients/refresh-agent-bundle.md +2 -2
  368. package/agent-docs/ingredients/scaffold-page.md +2 -2
  369. package/agent-docs/non-goals.md +2 -2
  370. package/agent-docs/provenance.json +4 -4
  371. package/agent-docs/publish/agent-discovery.md +1 -1
  372. package/agent-docs/publish/agent-friendliness.md +1 -1
  373. package/agent-docs/publish/agent-friendliness.sections/discover-a-page-with-a-small-context-budget.md +1 -1
  374. package/agent-docs/publish/agent-friendliness.sections/distinguish-examples-from-a-real-service.md +1 -1
  375. package/agent-docs/publish/agent-friendliness.sections/evidence-has-a-scope.md +1 -1
  376. package/agent-docs/publish/agent-friendliness.sections/keep-shared-instructions-complete.md +1 -1
  377. package/agent-docs/publish/agent-friendliness.sections/related-reading.md +1 -1
  378. package/agent-docs/publish/agent-friendliness.sections/secret-handshake.md +1 -1
  379. package/agent-docs/publish/agent-friendliness.sections/try-the-page-controls.md +1 -1
  380. package/agent-docs/publish/agent-friendliness.sections/use-the-transport-your-client-supports.md +1 -1
  381. package/agent-docs/publish/agent-friendliness.sections/verify-the-page-and-detect-changes.md +1 -1
  382. package/agent-docs/publish/agent-friendliness.sections/what-an-agent-reads.md +1 -1
  383. package/agent-docs/publish/agent-friendliness.sections/what-happens-to-an-unsupported-component.md +1 -1
  384. package/agent-docs/publish/api-references.md +10 -8
  385. package/agent-docs/publish/api-references.sections/author-the-reference-page.md +1 -1
  386. package/agent-docs/publish/api-references.sections/build-and-verify-the-output.md +1 -1
  387. package/agent-docs/publish/api-references.sections/inspect-the-machine-readable-contract.md +1 -1
  388. package/agent-docs/publish/api-references.sections/{generate-many-pages-selectively.md → next-steps.md} +28 -2
  389. package/agent-docs/publish/api-references.sections/preview-a-small-api-reference.md +1 -1
  390. package/agent-docs/publish/api-references.sections/put-the-spec-in-your-project.md +1 -1
  391. package/agent-docs/publish/api-references.sections/register-the-operation.md +1 -1
  392. package/agent-docs/publish/api-references.sections/related-reading.md +1 -1
  393. package/agent-docs/publish/api-references.sections/review-imported-content-before-publishing.md +1 -1
  394. package/agent-docs/publish/api-references.sections/what-readers-get.md +1 -1
  395. package/agent-docs/publish/audit.md +1 -1
  396. package/agent-docs/publish/audit.sections/add-project-tests.md +1 -1
  397. package/agent-docs/publish/audit.sections/check-agent-evaluation-reports.md +1 -1
  398. package/agent-docs/publish/audit.sections/check-before-pushing.md +1 -1
  399. package/agent-docs/publish/audit.sections/connect-a-documentation-test-suite.md +1 -1
  400. package/agent-docs/publish/audit.sections/read-the-report.md +1 -1
  401. package/agent-docs/publish/audit.sections/related-reading.md +1 -1
  402. package/agent-docs/publish/content-export.md +33 -17
  403. package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +4 -4
  404. package/agent-docs/publish/content-export.sections/check-the-result.md +3 -3
  405. package/agent-docs/publish/content-export.sections/export-selected-pages.md +13 -10
  406. package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +6 -4
  407. package/agent-docs/publish/content-export.sections/prerequisites.md +4 -4
  408. package/agent-docs/publish/content-export.sections/related-reading.md +3 -3
  409. package/agent-docs/publish/content-export.sections/review-exported-api-material.md +4 -4
  410. package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +4 -4
  411. package/agent-docs/publish/content-export.sections/upgrade-an-existing-integration.md +34 -0
  412. package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +5 -5
  413. package/agent-docs/publish/content-negotiation.md +2 -2
  414. package/agent-docs/publish/content-negotiation.sections/hosting-contract.md +2 -2
  415. package/agent-docs/publish/content-negotiation.sections/missing-pages.md +2 -2
  416. package/agent-docs/publish/content-negotiation.sections/related-reading.md +2 -2
  417. package/agent-docs/publish/content-negotiation.sections/validators-and-manifest-links.md +2 -2
  418. package/agent-docs/publish/content-negotiation.sections/verify-the-deployed-url.md +2 -2
  419. package/agent-docs/publish/content-negotiation.sections/what-if-the-host-cannot-negotiate.md +2 -2
  420. package/agent-docs/publish/content-negotiation.sections/what-shoalrun-builds-and-what-the-host-does.md +2 -2
  421. package/agent-docs/publish/content-negotiation.sections/why-this-matters.md +2 -2
  422. package/agent-docs/publish/deployment-check.md +2 -2
  423. package/agent-docs/publish/evals.md +1 -1
  424. package/agent-docs/publish/evals.sections/add-the-audit-hook.md +1 -1
  425. package/agent-docs/publish/evals.sections/check-the-report.md +1 -1
  426. package/agent-docs/publish/evals.sections/define-a-task-file.md +1 -1
  427. package/agent-docs/publish/evals.sections/diagnose-a-different-build.md +1 -1
  428. package/agent-docs/publish/evals.sections/prepare-a-report-for-the-built-site.md +1 -1
  429. package/agent-docs/publish/evals.sections/related-reading.md +1 -1
  430. package/agent-docs/publish/evals.sections/run-and-review-the-tasks.md +1 -1
  431. package/agent-docs/publish/evals.sections/shoalrun-s-own-example.md +1 -1
  432. package/agent-docs/publish/host-adapters.md +1 -1
  433. package/agent-docs/publish/manni.md +1 -1
  434. package/agent-docs/publish/manni.sections/check-the-result.md +1 -1
  435. package/agent-docs/publish/manni.sections/how-this-site-uses-manni.md +1 -1
  436. package/agent-docs/publish/manni.sections/optional-custom-policies.md +1 -1
  437. package/agent-docs/publish/manni.sections/prerequisites.md +1 -1
  438. package/agent-docs/publish/mcp-analytics.md +1 -1
  439. package/agent-docs/publish/mcp-analytics.sections/adapter-exports.md +1 -1
  440. package/agent-docs/publish/mcp-analytics.sections/enable-analytics.md +1 -1
  441. package/agent-docs/publish/mcp-analytics.sections/event-fields-and-service-mappings.md +1 -1
  442. package/agent-docs/publish/mcp-analytics.sections/optionally-collect-intent-and-group-calls.md +1 -1
  443. package/agent-docs/publish/mcp-analytics.sections/optionally-identify-the-client-and-model.md +1 -1
  444. package/agent-docs/publish/mcp-analytics.sections/related-reading.md +1 -1
  445. package/agent-docs/publish/mcp-analytics.sections/safeguards-and-limits.md +1 -1
  446. package/agent-docs/publish/mcp.md +12 -10
  447. package/agent-docs/publish/mcp.sections/check-budgets-and-errors.md +2 -2
  448. package/agent-docs/publish/mcp.sections/choose-the-documentation-source.md +7 -7
  449. package/agent-docs/publish/mcp.sections/configure-the-client.md +5 -5
  450. package/agent-docs/publish/mcp.sections/generate-a-vercel-endpoint.md +2 -2
  451. package/agent-docs/publish/mcp.sections/related-reading.md +4 -2
  452. package/agent-docs/publish/mcp.sections/search-then-read.md +2 -2
  453. package/agent-docs/publish/mcp.sections/serve-a-public-endpoint-on-node.md +2 -2
  454. package/agent-docs/publish/mcp.sections/verify-the-connection.md +2 -2
  455. package/agent-docs/publish/mcp.sections/why-offer-mcp-for-public-docs.md +2 -2
  456. package/agent-docs/publish/openapi-extension-mappings.md +2 -2
  457. package/agent-docs/publish/output.md +14 -14
  458. package/agent-docs/publish/output.sections/api-contracts.md +3 -3
  459. package/agent-docs/publish/output.sections/code-highlighting.md +3 -3
  460. package/agent-docs/publish/output.sections/current-limits.md +4 -4
  461. package/agent-docs/publish/output.sections/incremental-sync.md +3 -3
  462. package/agent-docs/publish/output.sections/manifest-records-and-sections.md +3 -3
  463. package/agent-docs/publish/output.sections/navigation-section-indexes.md +3 -3
  464. package/agent-docs/publish/output.sections/page-formats.md +3 -3
  465. package/agent-docs/publish/output.sections/published-output-contract.md +3 -3
  466. package/agent-docs/publish/output.sections/reader-appearance-and-controls.md +3 -3
  467. package/agent-docs/publish/output.sections/related-reading.md +3 -3
  468. package/agent-docs/publish/output.sections/response-identity.md +3 -3
  469. package/agent-docs/publish/output.sections/site-files.md +3 -3
  470. package/agent-docs/publish/output.sections/validate-an-existing-build-locally.md +5 -5
  471. package/agent-docs/publish/output.sections/where-files-go.md +11 -11
  472. package/agent-docs/publish/publications.md +1 -1
  473. package/agent-docs/publish/revisions.md +1 -1
  474. package/agent-docs/publish/seo.md +17 -3
  475. package/agent-docs/publish/seo.sections/related-reading.md +28 -0
  476. package/agent-docs/publish/seo.sections/set-the-public-address.md +36 -0
  477. package/agent-docs/publish/seo.sections/what-agents-receive.md +28 -0
  478. package/agent-docs/publish/seo.sections/what-the-build-adds.md +42 -0
  479. package/agent-docs/publish/seo.sections/write-the-page-title-and-summary.md +43 -0
  480. package/agent-docs/publish/single-source-sites.md +1 -1
  481. package/agent-docs/publish/troubleshooting.md +1 -1
  482. package/agent-docs/publish/vercel.md +1 -1
  483. package/agent-docs/publish/vercel.sections/check-the-deployment.md +1 -1
  484. package/agent-docs/publish/vercel.sections/include-an-mcp-endpoint.md +1 -1
  485. package/agent-docs/publish/vercel.sections/prepare-your-project.md +1 -1
  486. package/agent-docs/publish/vercel.sections/related-reading.md +1 -1
  487. package/agent-docs/publish.md +1 -1
  488. package/agent-docs/recipes/add-page.md +3 -3
  489. package/agent-docs/recipes/add-page.sections/audit-the-shoalrun-docs-project.md +2 -2
  490. package/agent-docs/recipes/add-page.sections/before-you-start.md +2 -3
  491. package/agent-docs/recipes/add-page.sections/build-the-shoalrun-docs-site.md +2 -2
  492. package/agent-docs/recipes/add-page.sections/check-agent-search-and-page-lookup.md +2 -2
  493. package/agent-docs/recipes/add-page.sections/check-the-built-page-artifacts.md +2 -2
  494. package/agent-docs/recipes/add-page.sections/check-the-outcome.md +2 -2
  495. package/agent-docs/recipes/add-page.sections/complete-the-guide-and-add-navigation.md +2 -2
  496. package/agent-docs/recipes/add-page.sections/install-the-site-dependencies.md +2 -2
  497. package/agent-docs/recipes/add-page.sections/regenerate-the-agent-documentation-bundle.md +3 -2
  498. package/agent-docs/recipes/add-page.sections/related-reading.md +2 -2
  499. package/agent-docs/recipes/add-page.sections/scaffold-a-new-guide.md +2 -2
  500. package/agent-docs/recipes/audit-docs.md +2 -3
  501. package/agent-docs/recipes/build-docs.md +2 -3
  502. package/agent-docs/recipes/preview-hybrid-search.md +2 -2
  503. package/agent-docs/recipes/preview-page.md +2 -3
  504. package/agent-docs/recipes/queue-email.md +2 -2
  505. package/agent-docs/recipes/refresh-agent-docs.md +21 -3
  506. package/agent-docs/recipes/send-welcome-email.md +2 -2
  507. package/agent-docs/reference/agent-skills.md +2 -2
  508. package/agent-docs/search-and-chat.md +1 -1
  509. package/agent-docs/search-index.json +1 -1
  510. package/agent-docs/start.md +7 -3
  511. package/agent-docs/start.sections/build-this-site.md +1 -1
  512. package/agent-docs/start.sections/migrating-from-github-packages.md +35 -0
  513. package/agent-docs/start.sections/prerequisites.md +1 -1
  514. package/agent-docs/start.sections/start-your-own-project.md +1 -1
  515. package/agent-docs/status.md +2 -2
  516. package/agent-docs/styling/color-modes.md +6 -2
  517. package/agent-docs/styling/footer.md +10 -8
  518. package/agent-docs/styling/header.md +5 -3
  519. package/agent-docs/styling/layouts.md +27 -5
  520. package/agent-docs/styling/layouts.sections/build-a-landing-page.md +7 -4
  521. package/agent-docs/styling/layouts.sections/build-a-splash-page.md +7 -4
  522. package/agent-docs/styling/layouts.sections/control-navigation-tabs.md +7 -4
  523. package/agent-docs/styling/layouts.sections/customize-the-hero.md +7 -4
  524. package/agent-docs/styling/layouts.sections/hero.md +8 -5
  525. package/agent-docs/styling/layouts.sections/hide-the-table-of-contents-or-give-content-more-room.md +54 -0
  526. package/agent-docs/styling/layouts.sections/html-markdown-and-agents.md +43 -0
  527. package/agent-docs/styling/layouts.sections/related-reading.md +7 -4
  528. package/agent-docs/styling/palettes.md +6 -2
  529. package/agent-docs/styling/share-images.md +6 -2
  530. package/agent-docs/styling/themes.md +6 -3
  531. package/agent-docs/styling/try.md +3 -15
  532. package/dist/api.js +70 -3
  533. package/dist/authoring-hints.d.ts +3 -0
  534. package/dist/authoring-hints.js +35 -0
  535. package/dist/authoring-project.d.ts +1 -1
  536. package/dist/authoring-project.js +2 -0
  537. package/dist/authoring-validation.js +2 -0
  538. package/dist/code-samples.js +22 -11
  539. package/dist/compiler-config.d.ts +1 -0
  540. package/dist/compiler-config.js +13 -0
  541. package/dist/compiler.js +2 -1
  542. package/dist/component-names.js +1 -1
  543. package/dist/component-transform.js +7 -1
  544. package/dist/content-delivery-contract.d.ts +108 -0
  545. package/dist/content-delivery-contract.js +15 -0
  546. package/dist/content-delivery-transport.d.ts +3 -0
  547. package/dist/content-delivery-transport.js +47 -0
  548. package/dist/content-delivery-validation.d.ts +7 -0
  549. package/dist/content-delivery-validation.js +122 -0
  550. package/dist/content-delivery.d.ts +21 -0
  551. package/dist/content-delivery.js +119 -0
  552. package/dist/content-export-anchors.d.ts +11 -0
  553. package/dist/content-export-anchors.js +79 -0
  554. package/dist/content-export-command.d.ts +4 -2
  555. package/dist/content-export-command.js +15 -2
  556. package/dist/content-export-comparison.d.ts +16 -0
  557. package/dist/content-export-comparison.js +48 -0
  558. package/dist/content-export-config.d.ts +17 -0
  559. package/dist/content-export-config.js +47 -3
  560. package/dist/content-export-render.js +20 -1
  561. package/dist/content-export.d.ts +5 -1
  562. package/dist/content-export.js +193 -40
  563. package/dist/content-mount.d.ts +11 -0
  564. package/dist/content-mount.js +73 -0
  565. package/dist/content-rest-client.d.ts +12 -0
  566. package/dist/content-rest-client.js +162 -0
  567. package/dist/content-rest-contract.d.ts +27 -0
  568. package/dist/content-rest-contract.js +9 -0
  569. package/dist/content-rest-server.d.ts +7 -0
  570. package/dist/content-rest-server.js +99 -0
  571. package/dist/content-source.d.ts +3 -1
  572. package/dist/frontmatter.js +8 -7
  573. package/dist/html-renderer.js +25 -0
  574. package/dist/markdown-sections.d.ts +2 -1
  575. package/dist/markdown-sections.js +8 -18
  576. package/dist/page-renderer.js +5 -3
  577. package/dist/publication-plan.js +2 -1
  578. package/dist/scaffold-placeholders.d.ts +2 -0
  579. package/dist/scaffold-placeholders.js +19 -0
  580. package/dist/section-identity.d.ts +24 -0
  581. package/dist/section-identity.js +137 -0
  582. package/examples/content-delivery/README.md +87 -0
  583. package/examples/content-delivery/app.js +91 -0
  584. package/examples/content-delivery/content/billing.mdx +22 -0
  585. package/examples/content-delivery/docs.config.yaml +36 -0
  586. package/examples/content-delivery/index.html +25 -0
  587. package/examples/content-delivery/preview.mjs +86 -0
  588. package/examples/content-delivery/snippets/refund-window.mdx +3 -0
  589. package/examples/help-drawer/README.md +2 -2
  590. package/examples/help-drawer/app.js +3 -3
  591. package/package.json +6 -3
  592. package/schemas/content-export.schema.json +469 -33
  593. package/schemas/content-rest.openapi.json +1627 -0
  594. package/skills/shoalrun-author/SKILL.md +2 -0
  595. package/styles/site.css +4 -1
  596. package/agent-docs/.well-known/shoalrun/navigation/changelog-tab-50f26fe22670.txt +0 -33
  597. package/agent-docs/publish/api-references.sections/add-useful-examples.md +0 -36
  598. package/agent-docs/publish/api-references.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +0 -36
  599. package/agent-docs/publish/api-references.sections/link-guides-to-api-references.md +0 -36
  600. package/agent-docs/publish/api-references.sections/map-extension-values-to-shoalrun-status.md +0 -36
  601. package/agent-docs/publish/api-references.sections/publish-several-versions.md +0 -36
  602. package/agent-docs/publish/api-references.sections/use-a-template-for-editorial-context.md +0 -36
@@ -0,0 +1,130 @@
1
+ ---
2
+ id: reference.content-client
3
+ title: Content client API
4
+ summary: Look up the content client entry point, snapshot methods, limits,
5
+ results, and errors.
6
+ type: reference
7
+ area: publishing
8
+ subarea: publishing-content-delivery
9
+ canonical: /content-delivery/api
10
+ ---
11
+
12
+ # Content client API
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/navigation/reference-tab-50f26fe22670.txt) (ID: reference-tab). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Content delivery > Content client API
19
+
20
+ **Updated: 2026-10-29.**
21
+
22
+ Import the browser-safe delivery API from `@shoalrun/cli/content`. It reads exports and mounts trusted HTML without loading the compiler. Browser use requires HTTPS or localhost for Web Crypto.
23
+
24
+ Available since `0.1.0-alpha.13`.
25
+
26
+ ## Open a source
27
+
28
+ ```ts
29
+ openManifestContentSource(options): Promise<ContentSnapshot>
30
+ ```
31
+
32
+ | Option | Meaning | Default |
33
+ | ---------------------- | ------------------------------------------------------------ | -------------- |
34
+ | `manifestUrl` | HTTP(S) manifest URL; relative URLs use the browser location | Required |
35
+ | `fetch` | Application-provided fetch implementation | Global `fetch` |
36
+ | `signal` | Cancellation signal for opening the manifest | None |
37
+ | `limits.manifestBytes` | Maximum manifest response bytes | 5,000,000 |
38
+ | `limits.resourceBytes` | Maximum representation response bytes | 8,000,000 |
39
+ | `limits.resources` | Maximum resources in a manifest | 10,000 |
40
+
41
+ `manifestUrl` accepts a string or `URL`. Outside a browser, supply an absolute URL. URLs must omit credentials, query strings, and fragments; the manifest must sit within its declared `publicBase`.
42
+
43
+ Limits must be positive safe integers. The browser client requires the application origin and refuses redirects. The server must send `application/json` for the manifest and the declared content type for representations.
44
+
45
+ ## Open a REST source
46
+
47
+ ```ts
48
+ openRestContentSource(options): Promise<ContentSnapshot>
49
+ ```
50
+
51
+ `RestContentSourceOptions` accepts `baseUrl`, a required `{ channel, version, language }` publication, and an optional `revision`. It also accepts the same `fetch`, `signal`, and `limits` options as the manifest source. `limits.manifestBytes` bounds the JSON inventory response. Opening fetches that inventory and pins subsequent reads to its revision.
52
+
53
+ Browser URLs must share the application's origin. Outside a browser, provide an absolute HTTP(S) URL. The base URL must omit credentials, query strings, and fragments. `contentResourceKey(ref)` returns a REST resource key; it is distinct from the local comparison key returned by `contentRefKey(ref)`. See the [HTTP reference](https://www.shoalrun.com/content-delivery/http-api.md) for routes and response types.
54
+
55
+ ## Read a snapshot
56
+
57
+ A snapshot exposes the following members for one opened revision.
58
+
59
+ | Member | Contract |
60
+ | ------------------------------- | --------------------------------------------------- |
61
+ | `revision` | Opened manifest digest |
62
+ | `publication` | Channel, version, and language |
63
+ | `list()` | Read-only resource metadata for this revision |
64
+ | `get(ref, { format, signal? })` | Promise for a checked HTML or Markdown result |
65
+ | `dispose()` | Cancel the snapshot lifetime and refuse later reads |
66
+
67
+ ```ts
68
+ type ContentRef =
69
+ | { kind: 'page'; documentId: string }
70
+ | { kind: 'section'; documentId: string; sectionId: string }
71
+ | { kind: 'snippet'; id: string };
72
+ ```
73
+
74
+ `list()` is synchronous because opening a source loads and freezes its metadata. Each `get()` fetches and checks UTF-8, media type, byte count, and SHA-256 against that revision; the client does not cache response bodies. `dispose()` is idempotent, aborts active reads, and makes later `list()` and `get()` calls fail. The opening signal affects only opening; use the per-read signal or `dispose()` for subsequent reads.
75
+
76
+ A `ContentResult` contains `resource`, `representation`, `format`, `content`, and `revision`. `contentRefKey(ref)` returns a key for comparing typed references. It is not a URL or authorization decision.
77
+
78
+ ## Validate a manifest
79
+
80
+ ```ts
81
+ validateContentManifest(value, maxResources = 10_000, maxResourceBytes = 8_000_000): asserts value is ContentManifest
82
+ ```
83
+
84
+ This exported helper checks structure, inventory limits, and approved review metadata. It does not fetch files or verify the manifest digest. Use `openManifestContentSource` for the complete loading and integrity checks. See the [manifest reference](https://www.shoalrun.com/content-delivery/manifest.md) for `ContentResource`, `ContentRepresentation`, `ContentAnchor`, and `ContentLink` fields.
85
+
86
+ ## Mount HTML
87
+
88
+ ```ts
89
+ mountContent(container, result, { instanceId?, signal? })
90
+ ```
91
+
92
+ The result must be HTML from a trusted export. Mounting replaces the container's children, assigns instance-specific DOM IDs, and rewrites local ID references. The returned `ContentMount` contains `anchors`, `links`, and `unmount()`. See [render content](https://www.shoalrun.com/content-delivery/render.md) for ownership and routing.
93
+
94
+ `instanceId` is optional; the default uses a random UUID. A supplied ID must start with an ASCII letter and contain at most 128 letters, numbers, underscores, or hyphens. Use a different ID for each simultaneous mount. `anchors` maps original anchor IDs to mounted DOM IDs, while `links` carries routing metadata. `signal` cancels before insertion; aborting it after mounting does not remove content. Call `unmount()` to remove only nodes still owned by that mount.
95
+
96
+ ## Errors
97
+
98
+ Use `ContentDeliveryError.code` to distinguish these failures.
99
+
100
+ | Code | Meaning |
101
+ | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
102
+ | `invalid_manifest` | Invalid source URL, options, inventory, manifest shape, digest, or review metadata |
103
+ | `not_found` | Missing manifest, unknown resource reference, or REST `404` |
104
+ | `unsupported_format` | Unavailable representation, REST `406`, or non-HTML input passed to `mountContent` |
105
+ | `stale_revision` | Content bytes differ from the opened revision, a static representation file is missing, or REST returns `409` |
106
+ | `network_error` | Failed or interrupted request; REST `400`, `405`, or `500`; or HTTP failures outside the REST contract, such as `401`, `429`, or `503` |
107
+ | `invalid_content` | Wrong response media type, invalid UTF-8, exceeded response limit, malformed REST error, or invalid mount content |
108
+ | `disposed` | Reading a disposed snapshot or a read aborted by disposal |
109
+
110
+ The static client maps a missing representation file to `stale_revision`; the REST client preserves `404` as `not_found`. Opening a REST inventory with a different requested revision also produces `stale_revision`.
111
+
112
+ Defined REST error statuses must carry the documented JSON envelope. A malformed envelope produces `invalid_content`; other HTTP failure statuses produce `network_error` regardless of response body format.
113
+
114
+ Cancellation can propagate the signal's abort reason instead of a `ContentDeliveryError`. Treat messages as diagnostics rather than parsing them for program logic.
115
+
116
+ ## HTML, Markdown, and agents
117
+
118
+ The same typed reference selects either available representation. HTML mounting is optional and separate from retrieval. Agents can read Markdown and metadata through the client without a DOM. Digests detect mismatched bytes; they do not establish that an unknown publisher's content is trustworthy.
119
+
120
+ ## Related reading
121
+
122
+ ### Read first
123
+
124
+ - [Content delivery](https://www.shoalrun.com/content-delivery.md) — Understand resource delivery and its application boundary.
125
+
126
+ ### Related topics
127
+
128
+ - [Read content with a client](https://www.shoalrun.com/content-delivery/client.md) — Look up client methods, limits, and errors.
129
+
130
+ - [Serve content through REST](https://www.shoalrun.com/content-delivery/rest.md) — Use the shared snapshot methods and client limits.
@@ -0,0 +1,79 @@
1
+ ---
2
+ id: guide.content-client
3
+ title: Read content with a client
4
+ summary: Open a content revision and read typed resources without depending on
5
+ generated filenames.
6
+ type: how-to
7
+ area: publishing
8
+ subarea: publishing-content-delivery
9
+ canonical: /content-delivery/client
10
+ ---
11
+
12
+ # Read content with a client
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Content delivery > Read content with a client
19
+
20
+ **Updated: 2026-10-29.**
21
+
22
+ Use the content client in an application to read a static export. Serve the bundle from the application's origin and use your normal JavaScript build tooling to import `@shoalrun/cli/content`.
23
+
24
+ Available since `0.1.0-alpha.13`.
25
+
26
+ ## Open a revision
27
+
28
+ ```ts
29
+ import { openManifestContentSource } from '@shoalrun/cli/content';
30
+
31
+ const snapshot = await openManifestContentSource({
32
+ manifestUrl: '/content/revisions/r1/manifest.json',
33
+ });
34
+ ```
35
+
36
+ Use an absolute HTTP(S) URL outside a browser. In a browser, the manifest must share the application's origin. Its location must match the export's `publicBase`. The client does not accept URL credentials, query parameters, or fragments in the manifest URL.
37
+
38
+ Browser use requires HTTPS or localhost because integrity checks use Web Crypto.
39
+
40
+ Opening fetches and validates the manifest once. `snapshot.revision` identifies that opened revision; it does not track a moving latest pointer.
41
+
42
+ ## Read a resource
43
+
44
+ ```ts
45
+ const resources = snapshot.list();
46
+ const result = await snapshot.get(
47
+ { kind: 'section', documentId: 'guide.billing', sectionId: 'refunds' },
48
+ { format: 'markdown' },
49
+ );
50
+ console.log(result.content);
51
+ ```
52
+
53
+ A result includes resource metadata, representation metadata, format, content, and revision. The client verifies representation size and SHA-256 digest before returning content. It does not evaluate MDX, interpolate variables, or run components in the browser.
54
+
55
+ ## Handle changes and cancellation
56
+
57
+ Pass an `AbortSignal` to an individual `get` to cancel obsolete navigation. Call `snapshot.dispose()` when the application stops using the revision. A disposed snapshot refuses further reads.
58
+
59
+ If a representation is missing or differs from the opened manifest, the client reports `stale_revision`. Keep the current display, open a complete replacement revision, and retry deliberately. Do not combine resource lists from one revision with files from another.
60
+
61
+ A custom `fetch` function can integrate the application's request handling. It does not bypass same-origin, content-type, size, or digest checks. Use [openRestContentSource](https://www.shoalrun.com/content-delivery/rest.md) for the same `ContentSnapshot` contract over HTTP.
62
+
63
+ ## HTML, Markdown, and agents
64
+
65
+ Request HTML for [application rendering](https://www.shoalrun.com/content-delivery/render.md) or Markdown for text consumers and agents. Neither requires a browser widget to recover the content. The manifest records availability per representation; requesting an omitted format returns `unsupported_format` rather than silently converting it.
66
+
67
+ ## Related reading
68
+
69
+ ### Read first
70
+
71
+ - [Content delivery](https://www.shoalrun.com/content-delivery.md) — Understand resource delivery and its application boundary.
72
+
73
+ ### Related topics
74
+
75
+ - [Select content resources](https://www.shoalrun.com/content-delivery/select.md) — Read a reviewed export from an application.
76
+
77
+ - [Content client API](https://www.shoalrun.com/content-delivery/api.md) — Look up client methods, limits, and errors.
78
+
79
+ - [Render content in an application](https://www.shoalrun.com/content-delivery/render.md) — Mount trusted HTML and route its links.
@@ -0,0 +1,394 @@
1
+ ---
2
+ id: reference.content-rest.getContentRepresentation
3
+ title: Read HTML or Markdown
4
+ summary: GET /resources/{key}/representations/{format}
5
+ type: api-reference
6
+ area: api
7
+ subarea: api-reference
8
+ canonical: /content-delivery/http-api/operations/get-content-representation-fa1d2e3f
9
+ ---
10
+
11
+ # Read HTML or Markdown
12
+
13
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
14
+
15
+ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/navigation/reference-tab-50f26fe22670.txt) (ID: reference-tab). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
16
+
17
+ Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Content delivery > Content REST API > Other > Read HTML or Markdown
18
+
19
+ **Updated: 2026-09-27.**
20
+
21
+ This reference is generated from the OpenAPI description. It shows the operation contract; follow any related guides below for task steps and context.
22
+
23
+ OpenAPI for this operation: [Download JSON](https://www.shoalrun.com/api/operations/production/current/en/content-rest-getcontentrepresentation-63a66b7a4eae1e1befb0ade4fd57d8346e3a5548cb933c1718acc72a9ab3ceed.json).
24
+
25
+ ## GET /resources/{key}/representations/{format}
26
+
27
+ Read HTML or Markdown
28
+
29
+ Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter.
30
+
31
+ ### Servers
32
+
33
+ `/content/v1`
34
+
35
+ ### Parameters
36
+
37
+ #### channel (query)
38
+
39
+ Required
40
+
41
+ Exact publication channel. No default or fallback.
42
+
43
+ string; minLength: 1; maxLength: 2048
44
+
45
+ **Default example**: `"production"`
46
+
47
+ #### version (query)
48
+
49
+ Required
50
+
51
+ Exact publication version. No default or fallback.
52
+
53
+ string; minLength: 1; maxLength: 2048
54
+
55
+ **Default example**: `"current"`
56
+
57
+ #### language (query)
58
+
59
+ Required
60
+
61
+ Exact publication language. No default or fallback.
62
+
63
+ string; minLength: 1; maxLength: 2048
64
+
65
+ **Default example**: `"en"`
66
+
67
+ #### revision (query)
68
+
69
+ Required
70
+
71
+ Exact revision returned by the list endpoint. A different revision returns 409; it never silently reads newer content.
72
+
73
+ string; pattern: ^\[a-f0-9]{64}$
74
+
75
+ **Default example**: `"0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8"`
76
+
77
+ #### key (path)
78
+
79
+ Required
80
+
81
+ Opaque stable typed-reference key. Use the returned key. It is k\_ followed by unpadded base64url of UTF-8 JSON for \["page",documentId], \["section",documentId,sectionId], or \["snippet",id]. Publication and revision are separate selectors.
82
+
83
+ string; pattern: ^k\_\[A-Za-z0-9\_-]+$
84
+
85
+ **Default example**: `"k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd"`
86
+
87
+ #### format (path)
88
+
89
+ Required
90
+
91
+ string
92
+
93
+ Available options: `"html"`, `"markdown"`
94
+
95
+ **Default example**: `"markdown"`
96
+
97
+ #### If-None-Match (header)
98
+
99
+ Optional
100
+
101
+ An ETag, comma-separated ETags, or \*. Weak comparison is supported for GET and HEAD.
102
+
103
+ string
104
+
105
+ ### Example request
106
+
107
+ ```bash
108
+ curl --request GET \
109
+ --url 'https://YOUR_API_HOST/content/v1/resources/YOUR_KEY/representations/YOUR_FORMAT?channel=YOUR_CHANNEL&version=YOUR_VERSION&language=YOUR_LANGUAGE&revision=YOUR_REVISION'
110
+ ```
111
+
112
+ ### Responses
113
+
114
+ #### 200: OK
115
+
116
+ `text/html`
117
+
118
+ `text/markdown`
119
+
120
+ The selected resource or inventory.
121
+
122
+ ##### Response headers
123
+
124
+ ###### ETag
125
+
126
+ Optional
127
+
128
+ Strong SHA-256 validator of the exact UTF-8 response bytes.
129
+
130
+ Serialization: simple; explode: false.
131
+
132
+ string
133
+
134
+ ###### Cache-Control
135
+
136
+ Optional
137
+
138
+ Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.
139
+
140
+ Serialization: simple; explode: false.
141
+
142
+ string
143
+
144
+ ##### text/html
145
+
146
+ string
147
+
148
+ ##### Example: Illustrative content; discover keys and revision from your own host.
149
+
150
+ Key: illustrative. Location: response 200; text/html. Authored in OpenAPI.
151
+
152
+ ```text
153
+ <p>Contact support.</p>
154
+
155
+ ```
156
+
157
+ ##### text/markdown
158
+
159
+ string
160
+
161
+ ##### Example: Illustrative content; discover keys and revision from your own host.
162
+
163
+ Key: illustrative. Location: response 200; text/markdown. Authored in OpenAPI.
164
+
165
+ ```text
166
+ Contact support.
167
+
168
+ ```
169
+
170
+ #### 304: Not Modified
171
+
172
+ The validated selected response matches If-None-Match. No response body.
173
+
174
+ ##### Response headers
175
+
176
+ ###### ETag
177
+
178
+ Optional
179
+
180
+ Strong SHA-256 validator of the exact UTF-8 response bytes.
181
+
182
+ Serialization: simple; explode: false.
183
+
184
+ string
185
+
186
+ ###### Cache-Control
187
+
188
+ Optional
189
+
190
+ Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.
191
+
192
+ Serialization: simple; explode: false.
193
+
194
+ string
195
+
196
+ #### 400: Bad Request
197
+
198
+ `application/json`
199
+
200
+ invalid_request: missing, duplicate, unknown, or malformed query parameter.
201
+
202
+ ##### Response headers
203
+
204
+ ###### Cache-Control
205
+
206
+ Optional
207
+
208
+ Serialization: simple; explode: false.
209
+
210
+ const: "no-store"
211
+
212
+ 1 property
213
+
214
+ - `error` `object` **always present**&#x20;
215
+
216
+ 2 properties
217
+
218
+ - `code` `enum<string>` **always present**&#x20;
219
+
220
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
221
+
222
+ - `message` `string` **always present**&#x20;
223
+
224
+ Additional properties: not allowed.
225
+
226
+ Additional properties: not allowed.
227
+
228
+ #### 404: Not Found
229
+
230
+ `application/json`
231
+
232
+ not_found: unknown publication, resource, or route.
233
+
234
+ ##### Response headers
235
+
236
+ ###### Cache-Control
237
+
238
+ Optional
239
+
240
+ Serialization: simple; explode: false.
241
+
242
+ const: "no-store"
243
+
244
+ 1 property
245
+
246
+ - `error` `object` **always present**&#x20;
247
+
248
+ 2 properties
249
+
250
+ - `code` `enum<string>` **always present**&#x20;
251
+
252
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
253
+
254
+ - `message` `string` **always present**&#x20;
255
+
256
+ Additional properties: not allowed.
257
+
258
+ Additional properties: not allowed.
259
+
260
+ #### 405: Method Not Allowed
261
+
262
+ `application/json`
263
+
264
+ method_not_allowed: only GET and HEAD are supported; Allow lists both.
265
+
266
+ ##### Response headers
267
+
268
+ ###### Cache-Control
269
+
270
+ Optional
271
+
272
+ Serialization: simple; explode: false.
273
+
274
+ const: "no-store"
275
+
276
+ ###### Allow
277
+
278
+ Optional
279
+
280
+ Serialization: simple; explode: false.
281
+
282
+ const: "GET, HEAD"
283
+
284
+ 1 property
285
+
286
+ - `error` `object` **always present**&#x20;
287
+
288
+ 2 properties
289
+
290
+ - `code` `enum<string>` **always present**&#x20;
291
+
292
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
293
+
294
+ - `message` `string` **always present**&#x20;
295
+
296
+ Additional properties: not allowed.
297
+
298
+ Additional properties: not allowed.
299
+
300
+ #### 406: Not Acceptable
301
+
302
+ `application/json`
303
+
304
+ unsupported_format: unsupported or unavailable representation format.
305
+
306
+ ##### Response headers
307
+
308
+ ###### Cache-Control
309
+
310
+ Optional
311
+
312
+ Serialization: simple; explode: false.
313
+
314
+ const: "no-store"
315
+
316
+ 1 property
317
+
318
+ - `error` `object` **always present**&#x20;
319
+
320
+ 2 properties
321
+
322
+ - `code` `enum<string>` **always present**&#x20;
323
+
324
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
325
+
326
+ - `message` `string` **always present**&#x20;
327
+
328
+ Additional properties: not allowed.
329
+
330
+ Additional properties: not allowed.
331
+
332
+ #### 409: Conflict
333
+
334
+ `application/json`
335
+
336
+ stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.
337
+
338
+ ##### Response headers
339
+
340
+ ###### Cache-Control
341
+
342
+ Optional
343
+
344
+ Serialization: simple; explode: false.
345
+
346
+ const: "no-store"
347
+
348
+ 1 property
349
+
350
+ - `error` `object` **always present**&#x20;
351
+
352
+ 2 properties
353
+
354
+ - `code` `enum<string>` **always present**&#x20;
355
+
356
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
357
+
358
+ - `message` `string` **always present**&#x20;
359
+
360
+ Additional properties: not allowed.
361
+
362
+ Additional properties: not allowed.
363
+
364
+ #### 500: Internal Server Error
365
+
366
+ `application/json`
367
+
368
+ internal_error: the source could not complete the request.
369
+
370
+ ##### Response headers
371
+
372
+ ###### Cache-Control
373
+
374
+ Optional
375
+
376
+ Serialization: simple; explode: false.
377
+
378
+ const: "no-store"
379
+
380
+ 1 property
381
+
382
+ - `error` `object` **always present**&#x20;
383
+
384
+ 2 properties
385
+
386
+ - `code` `enum<string>` **always present**&#x20;
387
+
388
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
389
+
390
+ - `message` `string` **always present**&#x20;
391
+
392
+ Additional properties: not allowed.
393
+
394
+ Additional properties: not allowed.