@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,1627 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "Shoalrun content REST API",
5
+ "version": "1.0.0",
6
+ "description": "Read-only delivery of reviewed content snapshots. This is HTTP contract v1, independent of the Shoalrun package version. The reference adapter serves one supplied revision per publication. It retains no revision history. Exported HTML/Markdown bytes are unchanged: host their original static asset and link mount alongside the API."
7
+ },
8
+ "servers": [
9
+ {
10
+ "url": "/content/v1"
11
+ }
12
+ ],
13
+ "paths": {
14
+ "/resources": {
15
+ "get": {
16
+ "operationId": "listContentResources",
17
+ "summary": "List resource metadata",
18
+ "description": "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.",
19
+ "parameters": [
20
+ {
21
+ "$ref": "#/components/parameters/channel"
22
+ },
23
+ {
24
+ "$ref": "#/components/parameters/version"
25
+ },
26
+ {
27
+ "$ref": "#/components/parameters/language"
28
+ },
29
+ {
30
+ "$ref": "#/components/parameters/optionalRevision"
31
+ },
32
+ {
33
+ "$ref": "#/components/parameters/ifNoneMatch"
34
+ }
35
+ ],
36
+ "responses": {
37
+ "200": {
38
+ "description": "The selected resource or inventory.",
39
+ "headers": {
40
+ "ETag": {
41
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
42
+ "schema": {
43
+ "type": "string"
44
+ }
45
+ },
46
+ "Cache-Control": {
47
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
48
+ "schema": {
49
+ "type": "string"
50
+ }
51
+ }
52
+ },
53
+ "content": {
54
+ "application/json": {
55
+ "schema": {
56
+ "$ref": "#/components/schemas/ResourceList"
57
+ },
58
+ "examples": {
59
+ "illustrative": {
60
+ "summary": "Illustrative content; discover keys and revision from your own host.",
61
+ "value": {
62
+ "schemaVersion": 1,
63
+ "revision": "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8",
64
+ "publication": {
65
+ "channel": "production",
66
+ "version": "current",
67
+ "language": "en"
68
+ },
69
+ "resources": [
70
+ {
71
+ "key": "k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd",
72
+ "resource": {
73
+ "ref": {
74
+ "kind": "page",
75
+ "documentId": "guide.billing"
76
+ },
77
+ "publication": {
78
+ "channel": "production",
79
+ "version": "current",
80
+ "language": "en"
81
+ },
82
+ "title": "Billing",
83
+ "summary": "Contact billing support.",
84
+ "type": "guide",
85
+ "representations": {
86
+ "html": {
87
+ "path": "content/resource-example.html",
88
+ "mediaType": "text/html",
89
+ "bytes": 24,
90
+ "digest": "0a97b73701c659be016f97a7be571c14c1cdad440cf79dfc1c8a0238a8b4787f",
91
+ "anchors": [],
92
+ "links": []
93
+ },
94
+ "markdown": {
95
+ "path": "content/resource-example.md",
96
+ "mediaType": "text/markdown",
97
+ "bytes": 17,
98
+ "digest": "d37729e92d86a1133926632326a5d61a3e65610a169d65211726924af02dac5c",
99
+ "anchors": [],
100
+ "links": []
101
+ }
102
+ },
103
+ "assets": [],
104
+ "externalDependencies": []
105
+ }
106
+ }
107
+ ]
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ },
114
+ "304": {
115
+ "description": "The validated selected response matches If-None-Match. No response body.",
116
+ "headers": {
117
+ "ETag": {
118
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
119
+ "schema": {
120
+ "type": "string"
121
+ }
122
+ },
123
+ "Cache-Control": {
124
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
125
+ "schema": {
126
+ "type": "string"
127
+ }
128
+ }
129
+ }
130
+ },
131
+ "400": {
132
+ "description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
133
+ "headers": {
134
+ "Cache-Control": {
135
+ "schema": {
136
+ "const": "no-store"
137
+ }
138
+ }
139
+ },
140
+ "content": {
141
+ "application/json": {
142
+ "schema": {
143
+ "$ref": "#/components/schemas/Error"
144
+ }
145
+ }
146
+ }
147
+ },
148
+ "404": {
149
+ "description": "not_found: unknown publication, resource, or route.",
150
+ "headers": {
151
+ "Cache-Control": {
152
+ "schema": {
153
+ "const": "no-store"
154
+ }
155
+ }
156
+ },
157
+ "content": {
158
+ "application/json": {
159
+ "schema": {
160
+ "$ref": "#/components/schemas/Error"
161
+ }
162
+ }
163
+ }
164
+ },
165
+ "405": {
166
+ "description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
167
+ "headers": {
168
+ "Cache-Control": {
169
+ "schema": {
170
+ "const": "no-store"
171
+ }
172
+ },
173
+ "Allow": {
174
+ "schema": {
175
+ "const": "GET, HEAD"
176
+ }
177
+ }
178
+ },
179
+ "content": {
180
+ "application/json": {
181
+ "schema": {
182
+ "$ref": "#/components/schemas/Error"
183
+ }
184
+ }
185
+ }
186
+ },
187
+ "406": {
188
+ "description": "unsupported_format: unsupported or unavailable representation format.",
189
+ "headers": {
190
+ "Cache-Control": {
191
+ "schema": {
192
+ "const": "no-store"
193
+ }
194
+ }
195
+ },
196
+ "content": {
197
+ "application/json": {
198
+ "schema": {
199
+ "$ref": "#/components/schemas/Error"
200
+ }
201
+ }
202
+ }
203
+ },
204
+ "409": {
205
+ "description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
206
+ "headers": {
207
+ "Cache-Control": {
208
+ "schema": {
209
+ "const": "no-store"
210
+ }
211
+ }
212
+ },
213
+ "content": {
214
+ "application/json": {
215
+ "schema": {
216
+ "$ref": "#/components/schemas/Error"
217
+ }
218
+ }
219
+ }
220
+ },
221
+ "500": {
222
+ "description": "internal_error: the source could not complete the request.",
223
+ "headers": {
224
+ "Cache-Control": {
225
+ "schema": {
226
+ "const": "no-store"
227
+ }
228
+ }
229
+ },
230
+ "content": {
231
+ "application/json": {
232
+ "schema": {
233
+ "$ref": "#/components/schemas/Error"
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }
239
+ },
240
+ "head": {
241
+ "operationId": "listContentResourcesHead",
242
+ "summary": "List resource metadata headers",
243
+ "description": "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. HEAD returns the GET status and headers without a response body.",
244
+ "parameters": [
245
+ {
246
+ "$ref": "#/components/parameters/channel"
247
+ },
248
+ {
249
+ "$ref": "#/components/parameters/version"
250
+ },
251
+ {
252
+ "$ref": "#/components/parameters/language"
253
+ },
254
+ {
255
+ "$ref": "#/components/parameters/optionalRevision"
256
+ },
257
+ {
258
+ "$ref": "#/components/parameters/ifNoneMatch"
259
+ }
260
+ ],
261
+ "responses": {
262
+ "200": {
263
+ "description": "The selected resource or inventory.",
264
+ "headers": {
265
+ "ETag": {
266
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
267
+ "schema": {
268
+ "type": "string"
269
+ }
270
+ },
271
+ "Cache-Control": {
272
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
273
+ "schema": {
274
+ "type": "string"
275
+ }
276
+ }
277
+ }
278
+ },
279
+ "304": {
280
+ "description": "The validated selected response matches If-None-Match. No response body.",
281
+ "headers": {
282
+ "ETag": {
283
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
284
+ "schema": {
285
+ "type": "string"
286
+ }
287
+ },
288
+ "Cache-Control": {
289
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
290
+ "schema": {
291
+ "type": "string"
292
+ }
293
+ }
294
+ }
295
+ },
296
+ "400": {
297
+ "description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
298
+ "headers": {
299
+ "Cache-Control": {
300
+ "schema": {
301
+ "const": "no-store"
302
+ }
303
+ }
304
+ }
305
+ },
306
+ "404": {
307
+ "description": "not_found: unknown publication, resource, or route.",
308
+ "headers": {
309
+ "Cache-Control": {
310
+ "schema": {
311
+ "const": "no-store"
312
+ }
313
+ }
314
+ }
315
+ },
316
+ "405": {
317
+ "description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
318
+ "headers": {
319
+ "Cache-Control": {
320
+ "schema": {
321
+ "const": "no-store"
322
+ }
323
+ },
324
+ "Allow": {
325
+ "schema": {
326
+ "const": "GET, HEAD"
327
+ }
328
+ }
329
+ }
330
+ },
331
+ "406": {
332
+ "description": "unsupported_format: unsupported or unavailable representation format.",
333
+ "headers": {
334
+ "Cache-Control": {
335
+ "schema": {
336
+ "const": "no-store"
337
+ }
338
+ }
339
+ }
340
+ },
341
+ "409": {
342
+ "description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
343
+ "headers": {
344
+ "Cache-Control": {
345
+ "schema": {
346
+ "const": "no-store"
347
+ }
348
+ }
349
+ }
350
+ },
351
+ "500": {
352
+ "description": "internal_error: the source could not complete the request.",
353
+ "headers": {
354
+ "Cache-Control": {
355
+ "schema": {
356
+ "const": "no-store"
357
+ }
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
363
+ },
364
+ "/resources/{key}": {
365
+ "get": {
366
+ "operationId": "getContentResource",
367
+ "summary": "Read resource metadata",
368
+ "description": "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.",
369
+ "parameters": [
370
+ {
371
+ "$ref": "#/components/parameters/channel"
372
+ },
373
+ {
374
+ "$ref": "#/components/parameters/version"
375
+ },
376
+ {
377
+ "$ref": "#/components/parameters/language"
378
+ },
379
+ {
380
+ "$ref": "#/components/parameters/revision"
381
+ },
382
+ {
383
+ "$ref": "#/components/parameters/key"
384
+ },
385
+ {
386
+ "$ref": "#/components/parameters/ifNoneMatch"
387
+ }
388
+ ],
389
+ "responses": {
390
+ "200": {
391
+ "description": "The selected resource or inventory.",
392
+ "headers": {
393
+ "ETag": {
394
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
395
+ "schema": {
396
+ "type": "string"
397
+ }
398
+ },
399
+ "Cache-Control": {
400
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
401
+ "schema": {
402
+ "type": "string"
403
+ }
404
+ }
405
+ },
406
+ "content": {
407
+ "application/json": {
408
+ "schema": {
409
+ "$ref": "#/components/schemas/ResourceMetadata"
410
+ },
411
+ "examples": {
412
+ "illustrative": {
413
+ "summary": "Illustrative content; discover keys and revision from your own host.",
414
+ "value": {
415
+ "schemaVersion": 1,
416
+ "revision": "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8",
417
+ "publication": {
418
+ "channel": "production",
419
+ "version": "current",
420
+ "language": "en"
421
+ },
422
+ "key": "k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd",
423
+ "resource": {
424
+ "ref": {
425
+ "kind": "page",
426
+ "documentId": "guide.billing"
427
+ },
428
+ "publication": {
429
+ "channel": "production",
430
+ "version": "current",
431
+ "language": "en"
432
+ },
433
+ "title": "Billing",
434
+ "summary": "Contact billing support.",
435
+ "type": "guide",
436
+ "representations": {
437
+ "html": {
438
+ "path": "content/resource-example.html",
439
+ "mediaType": "text/html",
440
+ "bytes": 24,
441
+ "digest": "0a97b73701c659be016f97a7be571c14c1cdad440cf79dfc1c8a0238a8b4787f",
442
+ "anchors": [],
443
+ "links": []
444
+ },
445
+ "markdown": {
446
+ "path": "content/resource-example.md",
447
+ "mediaType": "text/markdown",
448
+ "bytes": 17,
449
+ "digest": "d37729e92d86a1133926632326a5d61a3e65610a169d65211726924af02dac5c",
450
+ "anchors": [],
451
+ "links": []
452
+ }
453
+ },
454
+ "assets": [],
455
+ "externalDependencies": []
456
+ }
457
+ }
458
+ }
459
+ }
460
+ }
461
+ }
462
+ },
463
+ "304": {
464
+ "description": "The validated selected response matches If-None-Match. No response body.",
465
+ "headers": {
466
+ "ETag": {
467
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
468
+ "schema": {
469
+ "type": "string"
470
+ }
471
+ },
472
+ "Cache-Control": {
473
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
474
+ "schema": {
475
+ "type": "string"
476
+ }
477
+ }
478
+ }
479
+ },
480
+ "400": {
481
+ "description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
482
+ "headers": {
483
+ "Cache-Control": {
484
+ "schema": {
485
+ "const": "no-store"
486
+ }
487
+ }
488
+ },
489
+ "content": {
490
+ "application/json": {
491
+ "schema": {
492
+ "$ref": "#/components/schemas/Error"
493
+ }
494
+ }
495
+ }
496
+ },
497
+ "404": {
498
+ "description": "not_found: unknown publication, resource, or route.",
499
+ "headers": {
500
+ "Cache-Control": {
501
+ "schema": {
502
+ "const": "no-store"
503
+ }
504
+ }
505
+ },
506
+ "content": {
507
+ "application/json": {
508
+ "schema": {
509
+ "$ref": "#/components/schemas/Error"
510
+ }
511
+ }
512
+ }
513
+ },
514
+ "405": {
515
+ "description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
516
+ "headers": {
517
+ "Cache-Control": {
518
+ "schema": {
519
+ "const": "no-store"
520
+ }
521
+ },
522
+ "Allow": {
523
+ "schema": {
524
+ "const": "GET, HEAD"
525
+ }
526
+ }
527
+ },
528
+ "content": {
529
+ "application/json": {
530
+ "schema": {
531
+ "$ref": "#/components/schemas/Error"
532
+ }
533
+ }
534
+ }
535
+ },
536
+ "406": {
537
+ "description": "unsupported_format: unsupported or unavailable representation format.",
538
+ "headers": {
539
+ "Cache-Control": {
540
+ "schema": {
541
+ "const": "no-store"
542
+ }
543
+ }
544
+ },
545
+ "content": {
546
+ "application/json": {
547
+ "schema": {
548
+ "$ref": "#/components/schemas/Error"
549
+ }
550
+ }
551
+ }
552
+ },
553
+ "409": {
554
+ "description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
555
+ "headers": {
556
+ "Cache-Control": {
557
+ "schema": {
558
+ "const": "no-store"
559
+ }
560
+ }
561
+ },
562
+ "content": {
563
+ "application/json": {
564
+ "schema": {
565
+ "$ref": "#/components/schemas/Error"
566
+ }
567
+ }
568
+ }
569
+ },
570
+ "500": {
571
+ "description": "internal_error: the source could not complete the request.",
572
+ "headers": {
573
+ "Cache-Control": {
574
+ "schema": {
575
+ "const": "no-store"
576
+ }
577
+ }
578
+ },
579
+ "content": {
580
+ "application/json": {
581
+ "schema": {
582
+ "$ref": "#/components/schemas/Error"
583
+ }
584
+ }
585
+ }
586
+ }
587
+ }
588
+ },
589
+ "head": {
590
+ "operationId": "getContentResourceHead",
591
+ "summary": "Read resource metadata headers",
592
+ "description": "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. HEAD returns the GET status and headers without a response body.",
593
+ "parameters": [
594
+ {
595
+ "$ref": "#/components/parameters/channel"
596
+ },
597
+ {
598
+ "$ref": "#/components/parameters/version"
599
+ },
600
+ {
601
+ "$ref": "#/components/parameters/language"
602
+ },
603
+ {
604
+ "$ref": "#/components/parameters/revision"
605
+ },
606
+ {
607
+ "$ref": "#/components/parameters/key"
608
+ },
609
+ {
610
+ "$ref": "#/components/parameters/ifNoneMatch"
611
+ }
612
+ ],
613
+ "responses": {
614
+ "200": {
615
+ "description": "The selected resource or inventory.",
616
+ "headers": {
617
+ "ETag": {
618
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
619
+ "schema": {
620
+ "type": "string"
621
+ }
622
+ },
623
+ "Cache-Control": {
624
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
625
+ "schema": {
626
+ "type": "string"
627
+ }
628
+ }
629
+ }
630
+ },
631
+ "304": {
632
+ "description": "The validated selected response matches If-None-Match. No response body.",
633
+ "headers": {
634
+ "ETag": {
635
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
636
+ "schema": {
637
+ "type": "string"
638
+ }
639
+ },
640
+ "Cache-Control": {
641
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
642
+ "schema": {
643
+ "type": "string"
644
+ }
645
+ }
646
+ }
647
+ },
648
+ "400": {
649
+ "description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
650
+ "headers": {
651
+ "Cache-Control": {
652
+ "schema": {
653
+ "const": "no-store"
654
+ }
655
+ }
656
+ }
657
+ },
658
+ "404": {
659
+ "description": "not_found: unknown publication, resource, or route.",
660
+ "headers": {
661
+ "Cache-Control": {
662
+ "schema": {
663
+ "const": "no-store"
664
+ }
665
+ }
666
+ }
667
+ },
668
+ "405": {
669
+ "description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
670
+ "headers": {
671
+ "Cache-Control": {
672
+ "schema": {
673
+ "const": "no-store"
674
+ }
675
+ },
676
+ "Allow": {
677
+ "schema": {
678
+ "const": "GET, HEAD"
679
+ }
680
+ }
681
+ }
682
+ },
683
+ "406": {
684
+ "description": "unsupported_format: unsupported or unavailable representation format.",
685
+ "headers": {
686
+ "Cache-Control": {
687
+ "schema": {
688
+ "const": "no-store"
689
+ }
690
+ }
691
+ }
692
+ },
693
+ "409": {
694
+ "description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
695
+ "headers": {
696
+ "Cache-Control": {
697
+ "schema": {
698
+ "const": "no-store"
699
+ }
700
+ }
701
+ }
702
+ },
703
+ "500": {
704
+ "description": "internal_error: the source could not complete the request.",
705
+ "headers": {
706
+ "Cache-Control": {
707
+ "schema": {
708
+ "const": "no-store"
709
+ }
710
+ }
711
+ }
712
+ }
713
+ }
714
+ }
715
+ },
716
+ "/resources/{key}/representations/{format}": {
717
+ "get": {
718
+ "operationId": "getContentRepresentation",
719
+ "summary": "Read HTML or Markdown",
720
+ "description": "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.",
721
+ "parameters": [
722
+ {
723
+ "$ref": "#/components/parameters/channel"
724
+ },
725
+ {
726
+ "$ref": "#/components/parameters/version"
727
+ },
728
+ {
729
+ "$ref": "#/components/parameters/language"
730
+ },
731
+ {
732
+ "$ref": "#/components/parameters/revision"
733
+ },
734
+ {
735
+ "$ref": "#/components/parameters/key"
736
+ },
737
+ {
738
+ "$ref": "#/components/parameters/format"
739
+ },
740
+ {
741
+ "$ref": "#/components/parameters/ifNoneMatch"
742
+ }
743
+ ],
744
+ "responses": {
745
+ "200": {
746
+ "description": "The selected resource or inventory.",
747
+ "headers": {
748
+ "ETag": {
749
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
750
+ "schema": {
751
+ "type": "string"
752
+ }
753
+ },
754
+ "Cache-Control": {
755
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
756
+ "schema": {
757
+ "type": "string"
758
+ }
759
+ }
760
+ },
761
+ "content": {
762
+ "text/html": {
763
+ "schema": {
764
+ "type": "string"
765
+ },
766
+ "examples": {
767
+ "illustrative": {
768
+ "summary": "Illustrative content; discover keys and revision from your own host.",
769
+ "value": "<p>Contact support.</p>\n"
770
+ }
771
+ }
772
+ },
773
+ "text/markdown": {
774
+ "schema": {
775
+ "type": "string"
776
+ },
777
+ "examples": {
778
+ "illustrative": {
779
+ "summary": "Illustrative content; discover keys and revision from your own host.",
780
+ "value": "Contact support.\n"
781
+ }
782
+ }
783
+ }
784
+ }
785
+ },
786
+ "304": {
787
+ "description": "The validated selected response matches If-None-Match. No response body.",
788
+ "headers": {
789
+ "ETag": {
790
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
791
+ "schema": {
792
+ "type": "string"
793
+ }
794
+ },
795
+ "Cache-Control": {
796
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
797
+ "schema": {
798
+ "type": "string"
799
+ }
800
+ }
801
+ }
802
+ },
803
+ "400": {
804
+ "description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
805
+ "headers": {
806
+ "Cache-Control": {
807
+ "schema": {
808
+ "const": "no-store"
809
+ }
810
+ }
811
+ },
812
+ "content": {
813
+ "application/json": {
814
+ "schema": {
815
+ "$ref": "#/components/schemas/Error"
816
+ }
817
+ }
818
+ }
819
+ },
820
+ "404": {
821
+ "description": "not_found: unknown publication, resource, or route.",
822
+ "headers": {
823
+ "Cache-Control": {
824
+ "schema": {
825
+ "const": "no-store"
826
+ }
827
+ }
828
+ },
829
+ "content": {
830
+ "application/json": {
831
+ "schema": {
832
+ "$ref": "#/components/schemas/Error"
833
+ }
834
+ }
835
+ }
836
+ },
837
+ "405": {
838
+ "description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
839
+ "headers": {
840
+ "Cache-Control": {
841
+ "schema": {
842
+ "const": "no-store"
843
+ }
844
+ },
845
+ "Allow": {
846
+ "schema": {
847
+ "const": "GET, HEAD"
848
+ }
849
+ }
850
+ },
851
+ "content": {
852
+ "application/json": {
853
+ "schema": {
854
+ "$ref": "#/components/schemas/Error"
855
+ }
856
+ }
857
+ }
858
+ },
859
+ "406": {
860
+ "description": "unsupported_format: unsupported or unavailable representation format.",
861
+ "headers": {
862
+ "Cache-Control": {
863
+ "schema": {
864
+ "const": "no-store"
865
+ }
866
+ }
867
+ },
868
+ "content": {
869
+ "application/json": {
870
+ "schema": {
871
+ "$ref": "#/components/schemas/Error"
872
+ }
873
+ }
874
+ }
875
+ },
876
+ "409": {
877
+ "description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
878
+ "headers": {
879
+ "Cache-Control": {
880
+ "schema": {
881
+ "const": "no-store"
882
+ }
883
+ }
884
+ },
885
+ "content": {
886
+ "application/json": {
887
+ "schema": {
888
+ "$ref": "#/components/schemas/Error"
889
+ }
890
+ }
891
+ }
892
+ },
893
+ "500": {
894
+ "description": "internal_error: the source could not complete the request.",
895
+ "headers": {
896
+ "Cache-Control": {
897
+ "schema": {
898
+ "const": "no-store"
899
+ }
900
+ }
901
+ },
902
+ "content": {
903
+ "application/json": {
904
+ "schema": {
905
+ "$ref": "#/components/schemas/Error"
906
+ }
907
+ }
908
+ }
909
+ }
910
+ }
911
+ },
912
+ "head": {
913
+ "operationId": "getContentRepresentationHead",
914
+ "summary": "Read HTML or Markdown headers",
915
+ "description": "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. HEAD returns the GET status and headers without a response body.",
916
+ "parameters": [
917
+ {
918
+ "$ref": "#/components/parameters/channel"
919
+ },
920
+ {
921
+ "$ref": "#/components/parameters/version"
922
+ },
923
+ {
924
+ "$ref": "#/components/parameters/language"
925
+ },
926
+ {
927
+ "$ref": "#/components/parameters/revision"
928
+ },
929
+ {
930
+ "$ref": "#/components/parameters/key"
931
+ },
932
+ {
933
+ "$ref": "#/components/parameters/format"
934
+ },
935
+ {
936
+ "$ref": "#/components/parameters/ifNoneMatch"
937
+ }
938
+ ],
939
+ "responses": {
940
+ "200": {
941
+ "description": "The selected resource or inventory.",
942
+ "headers": {
943
+ "ETag": {
944
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
945
+ "schema": {
946
+ "type": "string"
947
+ }
948
+ },
949
+ "Cache-Control": {
950
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
951
+ "schema": {
952
+ "type": "string"
953
+ }
954
+ }
955
+ }
956
+ },
957
+ "304": {
958
+ "description": "The validated selected response matches If-None-Match. No response body.",
959
+ "headers": {
960
+ "ETag": {
961
+ "description": "Strong SHA-256 validator of the exact UTF-8 response bytes.",
962
+ "schema": {
963
+ "type": "string"
964
+ }
965
+ },
966
+ "Cache-Control": {
967
+ "description": "Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.",
968
+ "schema": {
969
+ "type": "string"
970
+ }
971
+ }
972
+ }
973
+ },
974
+ "400": {
975
+ "description": "invalid_request: missing, duplicate, unknown, or malformed query parameter.",
976
+ "headers": {
977
+ "Cache-Control": {
978
+ "schema": {
979
+ "const": "no-store"
980
+ }
981
+ }
982
+ }
983
+ },
984
+ "404": {
985
+ "description": "not_found: unknown publication, resource, or route.",
986
+ "headers": {
987
+ "Cache-Control": {
988
+ "schema": {
989
+ "const": "no-store"
990
+ }
991
+ }
992
+ }
993
+ },
994
+ "405": {
995
+ "description": "method_not_allowed: only GET and HEAD are supported; Allow lists both.",
996
+ "headers": {
997
+ "Cache-Control": {
998
+ "schema": {
999
+ "const": "no-store"
1000
+ }
1001
+ },
1002
+ "Allow": {
1003
+ "schema": {
1004
+ "const": "GET, HEAD"
1005
+ }
1006
+ }
1007
+ }
1008
+ },
1009
+ "406": {
1010
+ "description": "unsupported_format: unsupported or unavailable representation format.",
1011
+ "headers": {
1012
+ "Cache-Control": {
1013
+ "schema": {
1014
+ "const": "no-store"
1015
+ }
1016
+ }
1017
+ }
1018
+ },
1019
+ "409": {
1020
+ "description": "stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.",
1021
+ "headers": {
1022
+ "Cache-Control": {
1023
+ "schema": {
1024
+ "const": "no-store"
1025
+ }
1026
+ }
1027
+ }
1028
+ },
1029
+ "500": {
1030
+ "description": "internal_error: the source could not complete the request.",
1031
+ "headers": {
1032
+ "Cache-Control": {
1033
+ "schema": {
1034
+ "const": "no-store"
1035
+ }
1036
+ }
1037
+ }
1038
+ }
1039
+ }
1040
+ }
1041
+ }
1042
+ },
1043
+ "components": {
1044
+ "schemas": {
1045
+ "digest": {
1046
+ "type": "string",
1047
+ "pattern": "^[a-f0-9]{64}$"
1048
+ },
1049
+ "path": {
1050
+ "type": "string",
1051
+ "pattern": "^(?:NOTICES\\.txt|(?:content|assets)/(?!\\.{1,2}(?:/|$))[A-Za-z0-9_.-]+(?:/(?!\\.{1,2}(?:/|$))[A-Za-z0-9_.-]+)*)$"
1052
+ },
1053
+ "publication": {
1054
+ "type": "object",
1055
+ "additionalProperties": false,
1056
+ "required": [
1057
+ "channel",
1058
+ "version",
1059
+ "language"
1060
+ ],
1061
+ "properties": {
1062
+ "channel": {
1063
+ "type": "string",
1064
+ "minLength": 1
1065
+ },
1066
+ "version": {
1067
+ "type": "string",
1068
+ "minLength": 1
1069
+ },
1070
+ "language": {
1071
+ "type": "string",
1072
+ "minLength": 1
1073
+ }
1074
+ }
1075
+ },
1076
+ "file": {
1077
+ "type": "object",
1078
+ "required": [
1079
+ "path",
1080
+ "bytes",
1081
+ "digest"
1082
+ ],
1083
+ "properties": {
1084
+ "path": {
1085
+ "$ref": "#/components/schemas/path"
1086
+ },
1087
+ "bytes": {
1088
+ "type": "integer",
1089
+ "minimum": 0
1090
+ },
1091
+ "digest": {
1092
+ "$ref": "#/components/schemas/digest"
1093
+ }
1094
+ },
1095
+ "additionalProperties": false
1096
+ },
1097
+ "asset": {
1098
+ "type": "object",
1099
+ "required": [
1100
+ "path",
1101
+ "bytes",
1102
+ "digest",
1103
+ "mediaType"
1104
+ ],
1105
+ "properties": {
1106
+ "path": {
1107
+ "$ref": "#/components/schemas/path"
1108
+ },
1109
+ "bytes": {
1110
+ "type": "integer",
1111
+ "minimum": 0
1112
+ },
1113
+ "digest": {
1114
+ "$ref": "#/components/schemas/digest"
1115
+ },
1116
+ "mediaType": {
1117
+ "type": "string"
1118
+ }
1119
+ },
1120
+ "additionalProperties": false
1121
+ },
1122
+ "representation": {
1123
+ "type": "object",
1124
+ "required": [
1125
+ "path",
1126
+ "bytes",
1127
+ "digest",
1128
+ "mediaType",
1129
+ "anchors",
1130
+ "links"
1131
+ ],
1132
+ "properties": {
1133
+ "path": {
1134
+ "$ref": "#/components/schemas/path"
1135
+ },
1136
+ "bytes": {
1137
+ "type": "integer",
1138
+ "minimum": 0
1139
+ },
1140
+ "digest": {
1141
+ "$ref": "#/components/schemas/digest"
1142
+ },
1143
+ "mediaType": {
1144
+ "type": "string"
1145
+ },
1146
+ "anchors": {
1147
+ "type": "array",
1148
+ "items": {
1149
+ "type": "object",
1150
+ "additionalProperties": false,
1151
+ "required": [
1152
+ "id",
1153
+ "exportedId"
1154
+ ],
1155
+ "properties": {
1156
+ "id": {
1157
+ "type": "string"
1158
+ },
1159
+ "exportedId": {
1160
+ "type": "string"
1161
+ },
1162
+ "title": {
1163
+ "type": "string"
1164
+ }
1165
+ }
1166
+ }
1167
+ },
1168
+ "links": {
1169
+ "type": "array",
1170
+ "items": {
1171
+ "oneOf": [
1172
+ {
1173
+ "type": "object",
1174
+ "additionalProperties": false,
1175
+ "required": [
1176
+ "key",
1177
+ "kind",
1178
+ "href",
1179
+ "ref"
1180
+ ],
1181
+ "properties": {
1182
+ "key": {
1183
+ "type": "string"
1184
+ },
1185
+ "kind": {
1186
+ "enum": [
1187
+ "resource"
1188
+ ]
1189
+ },
1190
+ "href": {
1191
+ "type": "string"
1192
+ },
1193
+ "fragment": {
1194
+ "type": "string"
1195
+ },
1196
+ "query": {
1197
+ "type": "string"
1198
+ },
1199
+ "ref": {
1200
+ "$ref": "#/components/schemas/contentRef"
1201
+ }
1202
+ }
1203
+ },
1204
+ {
1205
+ "type": "object",
1206
+ "additionalProperties": false,
1207
+ "required": [
1208
+ "key",
1209
+ "kind",
1210
+ "href",
1211
+ "asset"
1212
+ ],
1213
+ "properties": {
1214
+ "key": {
1215
+ "type": "string"
1216
+ },
1217
+ "kind": {
1218
+ "enum": [
1219
+ "asset"
1220
+ ]
1221
+ },
1222
+ "href": {
1223
+ "type": "string"
1224
+ },
1225
+ "fragment": {
1226
+ "type": "string"
1227
+ },
1228
+ "query": {
1229
+ "type": "string"
1230
+ },
1231
+ "asset": {
1232
+ "$ref": "#/components/schemas/path"
1233
+ }
1234
+ }
1235
+ },
1236
+ {
1237
+ "type": "object",
1238
+ "additionalProperties": false,
1239
+ "required": [
1240
+ "key",
1241
+ "kind",
1242
+ "href"
1243
+ ],
1244
+ "properties": {
1245
+ "key": {
1246
+ "type": "string"
1247
+ },
1248
+ "kind": {
1249
+ "enum": [
1250
+ "canonical",
1251
+ "external"
1252
+ ]
1253
+ },
1254
+ "href": {
1255
+ "type": "string"
1256
+ },
1257
+ "fragment": {
1258
+ "type": "string"
1259
+ },
1260
+ "query": {
1261
+ "type": "string"
1262
+ }
1263
+ }
1264
+ }
1265
+ ]
1266
+ }
1267
+ }
1268
+ },
1269
+ "additionalProperties": false
1270
+ },
1271
+ "contentRef": {
1272
+ "oneOf": [
1273
+ {
1274
+ "type": "object",
1275
+ "additionalProperties": false,
1276
+ "required": [
1277
+ "kind",
1278
+ "documentId"
1279
+ ],
1280
+ "properties": {
1281
+ "kind": {
1282
+ "const": "page"
1283
+ },
1284
+ "documentId": {
1285
+ "type": "string",
1286
+ "minLength": 1
1287
+ }
1288
+ }
1289
+ },
1290
+ {
1291
+ "type": "object",
1292
+ "additionalProperties": false,
1293
+ "required": [
1294
+ "kind",
1295
+ "documentId",
1296
+ "sectionId"
1297
+ ],
1298
+ "properties": {
1299
+ "kind": {
1300
+ "const": "section"
1301
+ },
1302
+ "documentId": {
1303
+ "type": "string",
1304
+ "minLength": 1
1305
+ },
1306
+ "sectionId": {
1307
+ "type": "string",
1308
+ "pattern": "^[a-z0-9][a-z0-9-]{0,511}$"
1309
+ }
1310
+ }
1311
+ },
1312
+ {
1313
+ "type": "object",
1314
+ "additionalProperties": false,
1315
+ "required": [
1316
+ "kind",
1317
+ "id"
1318
+ ],
1319
+ "properties": {
1320
+ "kind": {
1321
+ "const": "snippet"
1322
+ },
1323
+ "id": {
1324
+ "type": "string",
1325
+ "pattern": "^[A-Za-z_][A-Za-z0-9_.-]*$"
1326
+ }
1327
+ }
1328
+ }
1329
+ ]
1330
+ },
1331
+ "ContentResource": {
1332
+ "type": "object",
1333
+ "additionalProperties": false,
1334
+ "required": [
1335
+ "ref",
1336
+ "publication",
1337
+ "title",
1338
+ "summary",
1339
+ "type",
1340
+ "representations",
1341
+ "assets",
1342
+ "externalDependencies"
1343
+ ],
1344
+ "properties": {
1345
+ "publication": {
1346
+ "$ref": "#/components/schemas/publication"
1347
+ },
1348
+ "title": {
1349
+ "type": "string"
1350
+ },
1351
+ "summary": {
1352
+ "type": "string"
1353
+ },
1354
+ "type": {
1355
+ "type": "string"
1356
+ },
1357
+ "canonicalUrl": {
1358
+ "type": "string",
1359
+ "format": "uri"
1360
+ },
1361
+ "representations": {
1362
+ "type": "object",
1363
+ "minProperties": 1,
1364
+ "additionalProperties": false,
1365
+ "properties": {
1366
+ "html": {
1367
+ "$ref": "#/components/schemas/representation"
1368
+ },
1369
+ "markdown": {
1370
+ "$ref": "#/components/schemas/representation"
1371
+ }
1372
+ }
1373
+ },
1374
+ "assets": {
1375
+ "type": "array",
1376
+ "uniqueItems": true,
1377
+ "items": {
1378
+ "$ref": "#/components/schemas/path"
1379
+ }
1380
+ },
1381
+ "externalDependencies": {
1382
+ "type": "array",
1383
+ "items": {
1384
+ "type": "object",
1385
+ "additionalProperties": false,
1386
+ "required": [
1387
+ "url",
1388
+ "kind"
1389
+ ],
1390
+ "properties": {
1391
+ "url": {
1392
+ "type": "string",
1393
+ "format": "uri"
1394
+ },
1395
+ "kind": {
1396
+ "const": "image"
1397
+ }
1398
+ }
1399
+ }
1400
+ },
1401
+ "ref": {
1402
+ "$ref": "#/components/schemas/contentRef"
1403
+ },
1404
+ "source": {
1405
+ "type": "object",
1406
+ "additionalProperties": false,
1407
+ "minProperties": 1,
1408
+ "properties": {
1409
+ "documentId": {
1410
+ "type": "string",
1411
+ "minLength": 1
1412
+ },
1413
+ "snippetId": {
1414
+ "type": "string",
1415
+ "minLength": 1
1416
+ },
1417
+ "valuesDigest": {
1418
+ "$ref": "#/components/schemas/digest"
1419
+ }
1420
+ }
1421
+ }
1422
+ }
1423
+ },
1424
+ "ResourceKey": {
1425
+ "type": "string",
1426
+ "pattern": "^k_[A-Za-z0-9_-]+$",
1427
+ "description": "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."
1428
+ },
1429
+ "Error": {
1430
+ "type": "object",
1431
+ "additionalProperties": false,
1432
+ "required": [
1433
+ "error"
1434
+ ],
1435
+ "properties": {
1436
+ "error": {
1437
+ "type": "object",
1438
+ "additionalProperties": false,
1439
+ "required": [
1440
+ "code",
1441
+ "message"
1442
+ ],
1443
+ "properties": {
1444
+ "code": {
1445
+ "enum": [
1446
+ "invalid_request",
1447
+ "not_found",
1448
+ "unsupported_format",
1449
+ "stale_revision",
1450
+ "method_not_allowed",
1451
+ "internal_error"
1452
+ ]
1453
+ },
1454
+ "message": {
1455
+ "type": "string"
1456
+ }
1457
+ }
1458
+ }
1459
+ }
1460
+ },
1461
+ "ResourceEntry": {
1462
+ "type": "object",
1463
+ "additionalProperties": false,
1464
+ "required": [
1465
+ "key",
1466
+ "resource"
1467
+ ],
1468
+ "properties": {
1469
+ "key": {
1470
+ "$ref": "#/components/schemas/ResourceKey"
1471
+ },
1472
+ "resource": {
1473
+ "$ref": "#/components/schemas/ContentResource"
1474
+ }
1475
+ }
1476
+ },
1477
+ "ResourceList": {
1478
+ "type": "object",
1479
+ "additionalProperties": false,
1480
+ "required": [
1481
+ "schemaVersion",
1482
+ "revision",
1483
+ "publication",
1484
+ "resources"
1485
+ ],
1486
+ "properties": {
1487
+ "schemaVersion": {
1488
+ "const": 1
1489
+ },
1490
+ "revision": {
1491
+ "$ref": "#/components/schemas/digest"
1492
+ },
1493
+ "publication": {
1494
+ "$ref": "#/components/schemas/publication"
1495
+ },
1496
+ "resources": {
1497
+ "type": "array",
1498
+ "items": {
1499
+ "$ref": "#/components/schemas/ResourceEntry"
1500
+ }
1501
+ }
1502
+ }
1503
+ },
1504
+ "ResourceMetadata": {
1505
+ "type": "object",
1506
+ "additionalProperties": false,
1507
+ "required": [
1508
+ "schemaVersion",
1509
+ "revision",
1510
+ "publication",
1511
+ "key",
1512
+ "resource"
1513
+ ],
1514
+ "properties": {
1515
+ "schemaVersion": {
1516
+ "const": 1
1517
+ },
1518
+ "revision": {
1519
+ "$ref": "#/components/schemas/digest"
1520
+ },
1521
+ "publication": {
1522
+ "$ref": "#/components/schemas/publication"
1523
+ },
1524
+ "key": {
1525
+ "$ref": "#/components/schemas/ResourceKey"
1526
+ },
1527
+ "resource": {
1528
+ "$ref": "#/components/schemas/ContentResource"
1529
+ }
1530
+ }
1531
+ }
1532
+ },
1533
+ "parameters": {
1534
+ "channel": {
1535
+ "name": "channel",
1536
+ "in": "query",
1537
+ "required": true,
1538
+ "description": "Exact publication channel. No default or fallback.",
1539
+ "example": "production",
1540
+ "schema": {
1541
+ "type": "string",
1542
+ "minLength": 1,
1543
+ "maxLength": 2048
1544
+ }
1545
+ },
1546
+ "version": {
1547
+ "name": "version",
1548
+ "in": "query",
1549
+ "required": true,
1550
+ "description": "Exact publication version. No default or fallback.",
1551
+ "example": "current",
1552
+ "schema": {
1553
+ "type": "string",
1554
+ "minLength": 1,
1555
+ "maxLength": 2048
1556
+ }
1557
+ },
1558
+ "language": {
1559
+ "name": "language",
1560
+ "in": "query",
1561
+ "required": true,
1562
+ "description": "Exact publication language. No default or fallback.",
1563
+ "example": "en",
1564
+ "schema": {
1565
+ "type": "string",
1566
+ "minLength": 1,
1567
+ "maxLength": 2048
1568
+ }
1569
+ },
1570
+ "revision": {
1571
+ "name": "revision",
1572
+ "in": "query",
1573
+ "required": true,
1574
+ "description": "Exact revision returned by the list endpoint. A different revision returns 409; it never silently reads newer content.",
1575
+ "schema": {
1576
+ "$ref": "#/components/schemas/digest"
1577
+ },
1578
+ "example": "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8"
1579
+ },
1580
+ "optionalRevision": {
1581
+ "name": "revision",
1582
+ "in": "query",
1583
+ "required": false,
1584
+ "description": "Omit to discover the currently supplied snapshot. Supply to require that exact revision.",
1585
+ "schema": {
1586
+ "$ref": "#/components/schemas/digest"
1587
+ },
1588
+ "example": "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8"
1589
+ },
1590
+ "key": {
1591
+ "name": "key",
1592
+ "in": "path",
1593
+ "required": true,
1594
+ "schema": {
1595
+ "$ref": "#/components/schemas/ResourceKey"
1596
+ },
1597
+ "example": "k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd"
1598
+ },
1599
+ "format": {
1600
+ "name": "format",
1601
+ "in": "path",
1602
+ "required": true,
1603
+ "schema": {
1604
+ "type": "string",
1605
+ "enum": [
1606
+ "html",
1607
+ "markdown"
1608
+ ]
1609
+ },
1610
+ "example": "markdown"
1611
+ },
1612
+ "ifNoneMatch": {
1613
+ "name": "If-None-Match",
1614
+ "in": "header",
1615
+ "required": false,
1616
+ "description": "An ETag, comma-separated ETags, or *. Weak comparison is supported for GET and HEAD.",
1617
+ "schema": {
1618
+ "type": "string"
1619
+ }
1620
+ }
1621
+ }
1622
+ },
1623
+ "externalDocs": {
1624
+ "description": "HTTP conditional request semantics",
1625
+ "url": "https://www.rfc-editor.org/rfc/rfc9110.html#name-if-none-match"
1626
+ }
1627
+ }