@shoalrun/cli 0.0.0-stage → 0.1.0-alpha.11

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 (1011) hide show
  1. package/AUTHORING.md +269 -0
  2. package/CHANGELOG.md +82 -0
  3. package/LICENSE +202 -0
  4. package/README.md +189 -2
  5. package/agent-docs/.well-known/shoalrun/navigation/changelog-tab-50f26fe22670.txt +33 -0
  6. package/agent-docs/.well-known/shoalrun/navigation/docs-50f26fe22670.txt +24 -0
  7. package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +9 -0
  8. package/agent-docs/SNAPSHOT.json +9 -0
  9. package/agent-docs/about.md +49 -0
  10. package/agent-docs/api-docs/focused-contracts.md +68 -0
  11. package/agent-docs/api-docs/generate.md +189 -0
  12. package/agent-docs/api-docs/generate.sections/add-useful-examples.md +47 -0
  13. package/agent-docs/api-docs/generate.sections/choose-generated-references-or-mdx.md +50 -0
  14. package/agent-docs/api-docs/generate.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +52 -0
  15. package/agent-docs/api-docs/generate.sections/generate-many-pages-selectively.md +71 -0
  16. package/agent-docs/api-docs/generate.sections/link-guides-to-api-references.md +48 -0
  17. package/agent-docs/api-docs/generate.sections/map-extension-values-to-shoalrun-status.md +52 -0
  18. package/agent-docs/api-docs/generate.sections/override-generated-reference-order-in-navigation.md +60 -0
  19. package/agent-docs/api-docs/generate.sections/related-reading.md +38 -0
  20. package/agent-docs/api-docs/generate.sections/use-a-template-for-editorial-context.md +45 -0
  21. package/agent-docs/api-docs/support.md +97 -0
  22. package/agent-docs/author/add-page.md +124 -0
  23. package/agent-docs/author/agent-overview.md +59 -0
  24. package/agent-docs/author/agent-workflow.md +65 -0
  25. package/agent-docs/author/agents.md +53 -0
  26. package/agent-docs/author/analytics.md +286 -0
  27. package/agent-docs/author/analytics.sections/adapter-exports-and-consent.md +51 -0
  28. package/agent-docs/author/analytics.sections/built-in-events.md +52 -0
  29. package/agent-docs/author/analytics.sections/configure-an-adapter.md +51 -0
  30. package/agent-docs/author/analytics.sections/custom-interactions.md +57 -0
  31. package/agent-docs/author/analytics.sections/event-format.md +59 -0
  32. package/agent-docs/author/analytics.sections/html-markdown-and-agents.md +42 -0
  33. package/agent-docs/author/analytics.sections/inspect-events-locally.md +36 -0
  34. package/agent-docs/author/analytics.sections/map-events-to-your-service.md +42 -0
  35. package/agent-docs/author/analytics.sections/posthog-example.md +126 -0
  36. package/agent-docs/author/analytics.sections/related-reading.md +42 -0
  37. package/agent-docs/author/authoring-agent.md +102 -0
  38. package/agent-docs/author/coding-agent.md +90 -0
  39. package/agent-docs/author/components/action-link.md +41 -0
  40. package/agent-docs/author/components/api-embeds.md +263 -0
  41. package/agent-docs/author/components/api-embeds.sections/apiexample.md +117 -0
  42. package/agent-docs/author/components/api-embeds.sections/html-markdown-and-agents.md +37 -0
  43. package/agent-docs/author/components/api-embeds.sections/related-reading.md +37 -0
  44. package/agent-docs/author/components/badge.md +76 -0
  45. package/agent-docs/author/components/breadcrumbs.md +57 -0
  46. package/agent-docs/author/components/callout.md +131 -0
  47. package/agent-docs/author/components/cards.md +168 -0
  48. package/agent-docs/author/components/cards.sections/add-a-lucide-icon.md +50 -0
  49. package/agent-docs/author/components/cards.sections/build-a-collection.md +69 -0
  50. package/agent-docs/author/components/cards.sections/curate-a-reading-list.md +66 -0
  51. package/agent-docs/author/components/cards.sections/html-markdown-and-agents.md +37 -0
  52. package/agent-docs/author/components/cards.sections/link-to-one-document.md +45 -0
  53. package/agent-docs/author/components/cards.sections/override-card-text.md +58 -0
  54. package/agent-docs/author/components/cards.sections/related-reading.md +43 -0
  55. package/agent-docs/author/components/code-blocks.md +117 -0
  56. package/agent-docs/author/components/collapsible.md +99 -0
  57. package/agent-docs/author/components/cookbook-chooser.md +86 -0
  58. package/agent-docs/author/components/custom/react.md +190 -0
  59. package/agent-docs/author/components/custom/react.sections/html-markdown-and-agents.md +36 -0
  60. package/agent-docs/author/components/custom/react.sections/interactive-react-example.md +88 -0
  61. package/agent-docs/author/components/custom/react.sections/registration.md +41 -0
  62. package/agent-docs/author/components/custom/react.sections/related-reading.md +30 -0
  63. package/agent-docs/author/components/custom/react.sections/share-the-model-with-the-browser.md +47 -0
  64. package/agent-docs/author/components/custom/react.sections/where-the-content-lives.md +100 -0
  65. package/agent-docs/author/components/custom.md +183 -0
  66. package/agent-docs/author/components/definition-list.md +54 -0
  67. package/agent-docs/author/components/diagrams/d2-gallery.md +861 -0
  68. package/agent-docs/author/components/diagrams/d2-gallery.sections/basic-shapes.md +163 -0
  69. package/agent-docs/author/components/diagrams/d2-gallery.sections/flows-and-structures.md +375 -0
  70. package/agent-docs/author/components/diagrams/d2-gallery.sections/html-markdown-and-agents.md +33 -0
  71. package/agent-docs/author/components/diagrams/d2-gallery.sections/layout-engines.md +169 -0
  72. package/agent-docs/author/components/diagrams/d2-gallery.sections/related-reading.md +37 -0
  73. package/agent-docs/author/components/diagrams/d2-gallery.sections/sequences-and-grids.md +123 -0
  74. package/agent-docs/author/components/diagrams/d2-gallery.sections/styles-and-code.md +125 -0
  75. package/agent-docs/author/components/diagrams/pele-gallery.md +1317 -0
  76. package/agent-docs/author/components/diagrams/pele-gallery.sections/charts-and-planning.md +341 -0
  77. package/agent-docs/author/components/diagrams/pele-gallery.sections/flowchart-shapes.md +269 -0
  78. package/agent-docs/author/components/diagrams/pele-gallery.sections/flows-and-behavior.md +273 -0
  79. package/agent-docs/author/components/diagrams/pele-gallery.sections/html-markdown-and-agents.md +31 -0
  80. package/agent-docs/author/components/diagrams/pele-gallery.sections/related-reading.md +35 -0
  81. package/agent-docs/author/components/diagrams/pele-gallery.sections/specialized-diagrams.md +229 -0
  82. package/agent-docs/author/components/diagrams/pele-gallery.sections/systems-and-structures.md +291 -0
  83. package/agent-docs/author/components/diagrams.md +155 -0
  84. package/agent-docs/author/components/doc-link.md +58 -0
  85. package/agent-docs/author/components/fields.md +121 -0
  86. package/agent-docs/author/components/file-tree.md +84 -0
  87. package/agent-docs/author/components/images.md +103 -0
  88. package/agent-docs/author/components/info-hint.md +61 -0
  89. package/agent-docs/author/components/kbd.md +45 -0
  90. package/agent-docs/author/components/math.md +39 -0
  91. package/agent-docs/author/components/only.md +65 -0
  92. package/agent-docs/author/components/progress.md +53 -0
  93. package/agent-docs/author/components/related-reading.md +48 -0
  94. package/agent-docs/author/components/steps.md +121 -0
  95. package/agent-docs/author/components/tables.md +64 -0
  96. package/agent-docs/author/components/tabs.md +129 -0
  97. package/agent-docs/author/components/timeline.md +74 -0
  98. package/agent-docs/author/components/tooltips.md +58 -0
  99. package/agent-docs/author/components/walkthroughs.md +390 -0
  100. package/agent-docs/author/components/walkthroughs.sections/attributes.md +45 -0
  101. package/agent-docs/author/components/walkthroughs.sections/build-up-code.md +133 -0
  102. package/agent-docs/author/components/walkthroughs.sections/choose-a-layout.md +141 -0
  103. package/agent-docs/author/components/walkthroughs.sections/explain-one-file.md +126 -0
  104. package/agent-docs/author/components/walkthroughs.sections/html-markdown-and-agents.md +38 -0
  105. package/agent-docs/author/components/walkthroughs.sections/related-reading.md +36 -0
  106. package/agent-docs/author/components/walkthroughs.sections/take-code-from-a-file.md +53 -0
  107. package/agent-docs/author/components.md +78 -0
  108. package/agent-docs/author/content.md +74 -0
  109. package/agent-docs/author/cookbooks.md +119 -0
  110. package/agent-docs/author/css.md +238 -0
  111. package/agent-docs/author/css.sections/borders-fields-and-navigation-tokens.md +70 -0
  112. package/agent-docs/author/css.sections/core-color-tokens.md +71 -0
  113. package/agent-docs/author/css.sections/page-attributes.md +69 -0
  114. package/agent-docs/author/css.sections/page-transitions.md +60 -0
  115. package/agent-docs/author/css.sections/responsive-behavior.md +58 -0
  116. package/agent-docs/author/css.sections/status-code-and-callout-tokens.md +89 -0
  117. package/agent-docs/author/css.sections/typography-shape-and-width-tokens.md +71 -0
  118. package/agent-docs/author/custom-metadata.md +177 -0
  119. package/agent-docs/author/custom-metadata.sections/add-a-custom-page-field.md +68 -0
  120. package/agent-docs/author/custom-metadata.sections/choose-text-for-each-surface.md +54 -0
  121. package/agent-docs/author/custom-metadata.sections/preview-changes-to-metadata-providers.md +33 -0
  122. package/agent-docs/author/custom-metadata.sections/read-metadata-from-a-project-module.md +57 -0
  123. package/agent-docs/author/custom-metadata.sections/related-reading.md +29 -0
  124. package/agent-docs/author/design-templates.md +49 -0
  125. package/agent-docs/author/design-writing-guides.md +73 -0
  126. package/agent-docs/author/frontmatter-reference.md +146 -0
  127. package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +44 -0
  128. package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +41 -0
  129. package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +31 -0
  130. package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +40 -0
  131. package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +37 -0
  132. package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +41 -0
  133. package/agent-docs/author/frontmatter-reference.sections/related-reading.md +35 -0
  134. package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +33 -0
  135. package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +31 -0
  136. package/agent-docs/author/frontmatter.md +255 -0
  137. package/agent-docs/author/frontmatter.sections/audience-badges.md +66 -0
  138. package/agent-docs/author/frontmatter.sections/give-deprecation-guidance.md +88 -0
  139. package/agent-docs/author/frontmatter.sections/global-defaults-and-enforced-values.md +75 -0
  140. package/agent-docs/author/frontmatter.sections/optional-native-fields.md +90 -0
  141. package/agent-docs/author/frontmatter.sections/publication-fields.md +85 -0
  142. package/agent-docs/author/frontmatter.sections/publishing-policy.md +71 -0
  143. package/agent-docs/author/frontmatter.sections/related-metadata-tasks.md +72 -0
  144. package/agent-docs/author/frontmatter.sections/related-reading.md +72 -0
  145. package/agent-docs/author/frontmatter.sections/required-after-inheritance.md +84 -0
  146. package/agent-docs/author/frontmatter.sections/seo-fields.md +79 -0
  147. package/agent-docs/author/frontmatter.sections/validation-rules.md +75 -0
  148. package/agent-docs/author/markdown-metadata.md +207 -0
  149. package/agent-docs/author/navigation.md +269 -0
  150. package/agent-docs/author/navigation.sections/arrange-authored-pages.md +58 -0
  151. package/agent-docs/author/navigation.sections/fill-an-api-tag-group.md +48 -0
  152. package/agent-docs/author/navigation.sections/hide-group-page-counts.md +45 -0
  153. package/agent-docs/author/navigation.sections/html-markdown-and-agents.md +40 -0
  154. package/agent-docs/author/navigation.sections/local-api-preview.md +47 -0
  155. package/agent-docs/author/navigation.sections/mix-guides-and-api-references.md +65 -0
  156. package/agent-docs/author/navigation.sections/optionally-split-a-large-menu-into-files.md +97 -0
  157. package/agent-docs/author/navigation.sections/reach-navigation-while-reading.md +38 -0
  158. package/agent-docs/author/navigation.sections/related-reading.md +44 -0
  159. package/agent-docs/author/navigation.sections/split-navigation-into-tabs.md +67 -0
  160. package/agent-docs/author/navigation.sections/subject-lifecycle-labels.md +42 -0
  161. package/agent-docs/author/reader-views.md +200 -0
  162. package/agent-docs/author/reader-views.sections/configure-the-choices.md +65 -0
  163. package/agent-docs/author/reader-views.sections/connect-your-own-control.md +59 -0
  164. package/agent-docs/author/reader-views.sections/how-it-works-for-agents.md +41 -0
  165. package/agent-docs/author/reader-views.sections/mark-pages.md +49 -0
  166. package/agent-docs/author/reader-views.sections/mark-sections-and-add-an-entry-choice.md +49 -0
  167. package/agent-docs/author/reader-views.sections/place-filter-controls.md +43 -0
  168. package/agent-docs/author/reader-views.sections/try-the-controls-here.md +64 -0
  169. package/agent-docs/author/recipe-drafts.md +181 -0
  170. package/agent-docs/author/recipe-drafts.sections/1-write-one-reusable-step.md +82 -0
  171. package/agent-docs/author/recipe-drafts.sections/2-list-the-steps-for-one-complete-goal.md +60 -0
  172. package/agent-docs/author/recipe-drafts.sections/3-generate-a-draft-and-review-it.md +55 -0
  173. package/agent-docs/author/recipe-drafts.sections/4-maintain-shoalrun-s-published-recipe-snapshots.md +66 -0
  174. package/agent-docs/author/recipe-drafts.sections/related-reading.md +45 -0
  175. package/agent-docs/author/recipe-drafts.sections/start-an-ingredient-from-an-api-example.md +50 -0
  176. package/agent-docs/author/recipes.md +127 -0
  177. package/agent-docs/author/recipes.sections/how-agents-use-this.md +50 -0
  178. package/agent-docs/author/recipes.sections/one-example-from-shoalrun.md +64 -0
  179. package/agent-docs/author/recipes.sections/related-reading.md +36 -0
  180. package/agent-docs/author/recipes.sections/try-a-complete-workflow.md +42 -0
  181. package/agent-docs/author/recipes.sections/use-recipes-for-task-oriented-how-tos.md +52 -0
  182. package/agent-docs/author/recipes.sections/what-changing-an-ingredient-updates.md +44 -0
  183. package/agent-docs/author/recipes.sections/what-each-file-does.md +48 -0
  184. package/agent-docs/author/recipes.sections/what-happens-and-when.md +45 -0
  185. package/agent-docs/author/related-reading.md +143 -0
  186. package/agent-docs/author/related-reading.sections/automatic-footers.md +35 -0
  187. package/agent-docs/author/related-reading.sections/declare-relationships.md +68 -0
  188. package/agent-docs/author/related-reading.sections/display-related-documents.md +54 -0
  189. package/agent-docs/author/related-reading.sections/inspect-output-and-changes.md +32 -0
  190. package/agent-docs/author/related-reading.sections/reading-paths-in-section-markdown.md +32 -0
  191. package/agent-docs/author/related-reading.sections/related-reading.md +34 -0
  192. package/agent-docs/author/related-reading.sections/where-relationship-explanations-come-from.md +34 -0
  193. package/agent-docs/author/release-notes.md +153 -0
  194. package/agent-docs/author/search.md +299 -0
  195. package/agent-docs/author/search.sections/choose-a-provider.md +52 -0
  196. package/agent-docs/author/search.sections/cli-and-mcp-ranking-details.md +49 -0
  197. package/agent-docs/author/search.sections/hosted-semantic-search-limits.md +55 -0
  198. package/agent-docs/author/search.sections/html-markdown-and-agents.md +37 -0
  199. package/agent-docs/author/search.sections/lexical-search.md +78 -0
  200. package/agent-docs/author/search.sections/local-semantic-preview.md +43 -0
  201. package/agent-docs/author/search.sections/read-a-search-result-with-an-agent.md +41 -0
  202. package/agent-docs/author/search.sections/related-reading.md +45 -0
  203. package/agent-docs/author/search.sections/reuse-the-lexical-index.md +81 -0
  204. package/agent-docs/author/search.sections/turn-search-off.md +46 -0
  205. package/agent-docs/author/search.sections/use-the-search-box.md +39 -0
  206. package/agent-docs/author/search.sections/write-a-custom-provider.md +98 -0
  207. package/agent-docs/author/snippets.md +118 -0
  208. package/agent-docs/author/taxonomy.md +121 -0
  209. package/agent-docs/author/templates.md +231 -0
  210. package/agent-docs/author/templates.sections/built-in-feature-templates.md +52 -0
  211. package/agent-docs/author/templates.sections/built-in-templates.md +48 -0
  212. package/agent-docs/author/templates.sections/choose-formatting-enforcement-for-your-project.md +69 -0
  213. package/agent-docs/author/templates.sections/create-or-edit-a-project-template.md +76 -0
  214. package/agent-docs/author/templates.sections/keep-the-four-shapes-distinct.md +46 -0
  215. package/agent-docs/author/templates.sections/project-added-templates.md +39 -0
  216. package/agent-docs/author/templates.sections/related-reading.md +47 -0
  217. package/agent-docs/author/templates.sections/scaffold-a-page.md +53 -0
  218. package/agent-docs/author/templates.sections/short-cli-and-derived-values.md +56 -0
  219. package/agent-docs/author/templates.sections/what-every-template-gives-you.md +44 -0
  220. package/agent-docs/author/workspace/commands.md +92 -0
  221. package/agent-docs/author/workspace.md +104 -0
  222. package/agent-docs/author/writing-style.md +137 -0
  223. package/agent-docs/author/writing-style.sections/adapt-this-example.md +28 -0
  224. package/agent-docs/author/writing-style.sections/choose-components-by-reader-need.md +42 -0
  225. package/agent-docs/author/writing-style.sections/evidence-and-uncertainty.md +32 -0
  226. package/agent-docs/author/writing-style.sections/example-audience-and-scope.md +28 -0
  227. package/agent-docs/author/writing-style.sections/ingredients-recipes-and-cookbooks.md +36 -0
  228. package/agent-docs/author/writing-style.sections/page-purpose-and-structure.md +41 -0
  229. package/agent-docs/author/writing-style.sections/procedures-and-examples.md +32 -0
  230. package/agent-docs/author/writing-style.sections/related-reading.md +32 -0
  231. package/agent-docs/author/writing-style.sections/review-a-draft.md +30 -0
  232. package/agent-docs/author/writing-style.sections/reviewed-writing-examples.md +39 -0
  233. package/agent-docs/author/writing-style.sections/voice-and-explanations.md +39 -0
  234. package/agent-docs/changelog/2026-10-14-agent-readiness.md +29 -0
  235. package/agent-docs/changelog/2026-10-15-evaluation-builds.md +84 -0
  236. package/agent-docs/changelog/2026-10-16-navigation-layouts.md +72 -0
  237. package/agent-docs/changelog/2026-10-17-mcp-hosting.md +60 -0
  238. package/agent-docs/changelog/2026-10-18-search-and-tooltips.md +46 -0
  239. package/agent-docs/changelog/2026-10-19-visual-navigation.md +44 -0
  240. package/agent-docs/changelog/2026-10-25.md +45 -0
  241. package/agent-docs/changelog/2026-10-26.md +66 -0
  242. package/agent-docs/changelog/2026-10-27.md +85 -0
  243. package/agent-docs/changelog/authoring-preview.md +40 -0
  244. package/agent-docs/changelog/authoring-search.md +39 -0
  245. package/agent-docs/changelog/authoring-tools.md +34 -0
  246. package/agent-docs/changelog/working-tree-skill.md +38 -0
  247. package/agent-docs/changelog.md +115 -0
  248. package/agent-docs/chat/checks.md +175 -0
  249. package/agent-docs/chat/checks.sections/answer-ahead-of-time.md +38 -0
  250. package/agent-docs/chat/checks.sections/answer-for-one-audience.md +66 -0
  251. package/agent-docs/chat/checks.sections/answer-without-a-model.md +54 -0
  252. package/agent-docs/chat/checks.sections/follow-up-questions.md +54 -0
  253. package/agent-docs/chat/checks.sections/how-an-answer-is-checked.md +67 -0
  254. package/agent-docs/chat/checks.sections/questions-with-several-parts.md +44 -0
  255. package/agent-docs/chat/checks.sections/related-reading.md +42 -0
  256. package/agent-docs/chat/checks.sections/reuse-answers.md +50 -0
  257. package/agent-docs/chat/host.md +222 -0
  258. package/agent-docs/chat/host.sections/cap-the-daily-spend.md +78 -0
  259. package/agent-docs/chat/host.sections/keep-a-record-of-questions.md +64 -0
  260. package/agent-docs/chat/host.sections/related-reading.md +43 -0
  261. package/agent-docs/chat/passage-index.md +228 -0
  262. package/agent-docs/chat/passage-index.sections/build-the-index.md +72 -0
  263. package/agent-docs/chat/passage-index.sections/embed-passages.md +103 -0
  264. package/agent-docs/chat/passage-index.sections/how-the-default-chunker-splits-a-page.md +53 -0
  265. package/agent-docs/chat/passage-index.sections/limits.md +45 -0
  266. package/agent-docs/chat/passage-index.sections/passage-ids-and-links.md +52 -0
  267. package/agent-docs/chat/passage-index.sections/related-reading.md +42 -0
  268. package/agent-docs/chat/passage-index.sections/what-a-passage-contains.md +91 -0
  269. package/agent-docs/chat/prepared-answers.md +116 -0
  270. package/agent-docs/chat/settings.md +213 -0
  271. package/agent-docs/chat/settings.sections/choose-the-scorer.md +63 -0
  272. package/agent-docs/chat/settings.sections/configure-chat.md +80 -0
  273. package/agent-docs/chat/settings.sections/configure-retrieval.md +62 -0
  274. package/agent-docs/chat/settings.sections/related-reading.md +32 -0
  275. package/agent-docs/chat/settings.sections/send-extra-request-fields.md +42 -0
  276. package/agent-docs/chat/settings.sections/use-more-than-one-model.md +62 -0
  277. package/agent-docs/chat/settings.sections/when-the-scorer-is-down.md +42 -0
  278. package/agent-docs/chat/setup.md +97 -0
  279. package/agent-docs/chat.md +102 -0
  280. package/agent-docs/cli.md +445 -0
  281. package/agent-docs/cli.sections/audit-a-project-and-api-sources.md +102 -0
  282. package/agent-docs/cli.sections/author-pages.md +94 -0
  283. package/agent-docs/cli.sections/build-and-serve.md +144 -0
  284. package/agent-docs/cli.sections/inspect-config-and-operations.md +41 -0
  285. package/agent-docs/cli.sections/npm-scripts-in-this-repository.md +45 -0
  286. package/agent-docs/cli.sections/related-reading.md +33 -0
  287. package/agent-docs/cli.sections/search-and-chat.md +132 -0
  288. package/agent-docs/cli.sections/start-a-project.md +37 -0
  289. package/agent-docs/cli.sections/working-tree-authoring-tools.md +35 -0
  290. package/agent-docs/concepts.md +133 -0
  291. package/agent-docs/config/apis.md +136 -0
  292. package/agent-docs/config/content.md +264 -0
  293. package/agent-docs/config/content.sections/authoring.md +58 -0
  294. package/agent-docs/config/content.sections/badges.md +34 -0
  295. package/agent-docs/config/content.sections/callouts.md +34 -0
  296. package/agent-docs/config/content.sections/cookbooks.md +38 -0
  297. package/agent-docs/config/content.sections/frontmatter.md +75 -0
  298. package/agent-docs/config/content.sections/readerfilters.md +44 -0
  299. package/agent-docs/config/content.sections/related-reading.md +34 -0
  300. package/agent-docs/config/content.sections/relationships.md +76 -0
  301. package/agent-docs/config/content.sections/snippets.md +61 -0
  302. package/agent-docs/config/content.sections/templates.md +57 -0
  303. package/agent-docs/config/content.sections/variables.md +55 -0
  304. package/agent-docs/config/examples.md +354 -0
  305. package/agent-docs/config/examples.sections/feature-showcase.md +55 -0
  306. package/agent-docs/config/examples.sections/minimal-site.md +80 -0
  307. package/agent-docs/config/examples.sections/multilingual-help-center.md +110 -0
  308. package/agent-docs/config/examples.sections/parcel-api-documentation.md +153 -0
  309. package/agent-docs/config/examples.sections/related-reading.md +50 -0
  310. package/agent-docs/config/examples.sections/shared-company-preset.md +118 -0
  311. package/agent-docs/config/integrations.md +76 -0
  312. package/agent-docs/config/outputs.md +160 -0
  313. package/agent-docs/config/outputs.sections/exports.md +57 -0
  314. package/agent-docs/config/outputs.sections/metadata.md +42 -0
  315. package/agent-docs/config/outputs.sections/related-reading.md +34 -0
  316. package/agent-docs/config/publishing.md +219 -0
  317. package/agent-docs/config/publishing.sections/navigation.md +92 -0
  318. package/agent-docs/config/publishing.sections/redirects.md +79 -0
  319. package/agent-docs/config/publishing.sections/related-reading.md +33 -0
  320. package/agent-docs/config/site.md +193 -0
  321. package/agent-docs/config/site.sections/related-reading.md +33 -0
  322. package/agent-docs/config/site.sections/theme.md +74 -0
  323. package/agent-docs/config.md +195 -0
  324. package/agent-docs/configuration.md +384 -0
  325. package/agent-docs/configuration.sections/build-several-sites-from-shared-content.md +36 -0
  326. package/agent-docs/configuration.sections/change-inherited-lists-deliberately.md +76 -0
  327. package/agent-docs/configuration.sections/extract-a-section-with-include.md +75 -0
  328. package/agent-docs/configuration.sections/inspect-and-validate-changes.md +77 -0
  329. package/agent-docs/configuration.sections/related-reading.md +42 -0
  330. package/agent-docs/configuration.sections/separate-config-inheritance-from-page-metadata.md +54 -0
  331. package/agent-docs/configuration.sections/share-defaults-through-extends.md +121 -0
  332. package/agent-docs/configuration.sections/start-with-one-working-file.md +81 -0
  333. package/agent-docs/configuration.sections/understand-the-three-stages.md +59 -0
  334. package/agent-docs/configuration.sections/understand-where-paths-point.md +53 -0
  335. package/agent-docs/connect/mcp.md +85 -0
  336. package/agent-docs/contribute/agent-skills.md +72 -0
  337. package/agent-docs/cookbooks/authoring.md +68 -0
  338. package/agent-docs/cookbooks/site-workflows.md +59 -0
  339. package/agent-docs/cookbooks/welcome-email.md +55 -0
  340. package/agent-docs/documents.json +20058 -0
  341. package/agent-docs/example-api/cedar/create-enrollment-7af3e5d2.md +594 -0
  342. package/agent-docs/example-api/cedar/get-legacy-parcel-6758d051.md +122 -0
  343. package/agent-docs/example-api/cedar/get-parcel-edee10e6.md +122 -0
  344. package/agent-docs/example-api/cedar/list-parcels-0345fb5f.md +271 -0
  345. package/agent-docs/example-api/cedar/parcel-delivered-7d1ba6db.md +122 -0
  346. package/agent-docs/example-api/cedar/upload-manifest-1af17891.md +101 -0
  347. package/agent-docs/example-api/cedar.md +39 -0
  348. package/agent-docs/example-api/create-note.md +344 -0
  349. package/agent-docs/example-api/generated/get-note-cbedb319.md +165 -0
  350. package/agent-docs/example-api/write-note.md +55 -0
  351. package/agent-docs/explore.md +54 -0
  352. package/agent-docs/glossary.md +827 -0
  353. package/agent-docs/index.md +249 -0
  354. package/agent-docs/ingredients/audit-site.md +27 -0
  355. package/agent-docs/ingredients/build-site.md +29 -0
  356. package/agent-docs/ingredients/compile-framework.md +28 -0
  357. package/agent-docs/ingredients/complete-page.md +30 -0
  358. package/agent-docs/ingredients/inspect-agent-bundle.md +28 -0
  359. package/agent-docs/ingredients/inspect-build.md +41 -0
  360. package/agent-docs/ingredients/preview-site.md +31 -0
  361. package/agent-docs/ingredients/refresh-agent-bundle.md +29 -0
  362. package/agent-docs/ingredients/scaffold-page.md +28 -0
  363. package/agent-docs/non-goals.md +58 -0
  364. package/agent-docs/provenance.json +10 -0
  365. package/agent-docs/publish/agent-discovery.md +79 -0
  366. package/agent-docs/publish/agent-friendliness.md +201 -0
  367. package/agent-docs/publish/agent-friendliness.sections/discover-a-page-with-a-small-context-budget.md +61 -0
  368. package/agent-docs/publish/agent-friendliness.sections/distinguish-examples-from-a-real-service.md +48 -0
  369. package/agent-docs/publish/agent-friendliness.sections/evidence-has-a-scope.md +46 -0
  370. package/agent-docs/publish/agent-friendliness.sections/keep-shared-instructions-complete.md +48 -0
  371. package/agent-docs/publish/agent-friendliness.sections/related-reading.md +52 -0
  372. package/agent-docs/publish/agent-friendliness.sections/secret-handshake.md +50 -0
  373. package/agent-docs/publish/agent-friendliness.sections/try-the-page-controls.md +62 -0
  374. package/agent-docs/publish/agent-friendliness.sections/use-the-transport-your-client-supports.md +50 -0
  375. package/agent-docs/publish/agent-friendliness.sections/verify-the-page-and-detect-changes.md +58 -0
  376. package/agent-docs/publish/agent-friendliness.sections/what-an-agent-reads.md +68 -0
  377. package/agent-docs/publish/agent-friendliness.sections/what-happens-to-an-unsupported-component.md +60 -0
  378. package/agent-docs/publish/api-references.md +217 -0
  379. package/agent-docs/publish/api-references.sections/add-useful-examples.md +36 -0
  380. package/agent-docs/publish/api-references.sections/author-the-reference-page.md +65 -0
  381. package/agent-docs/publish/api-references.sections/build-and-verify-the-output.md +48 -0
  382. package/agent-docs/publish/api-references.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +36 -0
  383. package/agent-docs/publish/api-references.sections/generate-many-pages-selectively.md +36 -0
  384. package/agent-docs/publish/api-references.sections/inspect-the-machine-readable-contract.md +36 -0
  385. package/agent-docs/publish/api-references.sections/link-guides-to-api-references.md +36 -0
  386. package/agent-docs/publish/api-references.sections/map-extension-values-to-shoalrun-status.md +36 -0
  387. package/agent-docs/publish/api-references.sections/preview-a-small-api-reference.md +38 -0
  388. package/agent-docs/publish/api-references.sections/publish-several-versions.md +36 -0
  389. package/agent-docs/publish/api-references.sections/put-the-spec-in-your-project.md +62 -0
  390. package/agent-docs/publish/api-references.sections/register-the-operation.md +64 -0
  391. package/agent-docs/publish/api-references.sections/related-reading.md +42 -0
  392. package/agent-docs/publish/api-references.sections/review-imported-content-before-publishing.md +54 -0
  393. package/agent-docs/publish/api-references.sections/use-a-template-for-editorial-context.md +36 -0
  394. package/agent-docs/publish/api-references.sections/what-readers-get.md +38 -0
  395. package/agent-docs/publish/audit.md +160 -0
  396. package/agent-docs/publish/audit.sections/add-project-tests.md +57 -0
  397. package/agent-docs/publish/audit.sections/check-agent-evaluation-reports.md +52 -0
  398. package/agent-docs/publish/audit.sections/check-before-pushing.md +80 -0
  399. package/agent-docs/publish/audit.sections/connect-a-documentation-test-suite.md +54 -0
  400. package/agent-docs/publish/audit.sections/read-the-report.md +67 -0
  401. package/agent-docs/publish/audit.sections/related-reading.md +47 -0
  402. package/agent-docs/publish/content-export.md +208 -0
  403. package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +40 -0
  404. package/agent-docs/publish/content-export.sections/check-the-result.md +27 -0
  405. package/agent-docs/publish/content-export.sections/export-selected-pages.md +113 -0
  406. package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +29 -0
  407. package/agent-docs/publish/content-export.sections/prerequisites.md +29 -0
  408. package/agent-docs/publish/content-export.sections/related-reading.md +35 -0
  409. package/agent-docs/publish/content-export.sections/review-exported-api-material.md +44 -0
  410. package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +34 -0
  411. package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +43 -0
  412. package/agent-docs/publish/content-negotiation.md +121 -0
  413. package/agent-docs/publish/content-negotiation.sections/hosting-contract.md +60 -0
  414. package/agent-docs/publish/content-negotiation.sections/missing-pages.md +51 -0
  415. package/agent-docs/publish/content-negotiation.sections/related-reading.md +45 -0
  416. package/agent-docs/publish/content-negotiation.sections/validators-and-manifest-links.md +49 -0
  417. package/agent-docs/publish/content-negotiation.sections/verify-the-deployed-url.md +62 -0
  418. package/agent-docs/publish/content-negotiation.sections/what-if-the-host-cannot-negotiate.md +47 -0
  419. package/agent-docs/publish/content-negotiation.sections/what-shoalrun-builds-and-what-the-host-does.md +49 -0
  420. package/agent-docs/publish/content-negotiation.sections/why-this-matters.md +47 -0
  421. package/agent-docs/publish/deployment-check.md +72 -0
  422. package/agent-docs/publish/evals.md +175 -0
  423. package/agent-docs/publish/evals.sections/add-the-audit-hook.md +63 -0
  424. package/agent-docs/publish/evals.sections/check-the-report.md +36 -0
  425. package/agent-docs/publish/evals.sections/define-a-task-file.md +47 -0
  426. package/agent-docs/publish/evals.sections/diagnose-a-different-build.md +42 -0
  427. package/agent-docs/publish/evals.sections/prepare-a-report-for-the-built-site.md +39 -0
  428. package/agent-docs/publish/evals.sections/related-reading.md +36 -0
  429. package/agent-docs/publish/evals.sections/run-and-review-the-tasks.md +54 -0
  430. package/agent-docs/publish/evals.sections/shoalrun-s-own-example.md +42 -0
  431. package/agent-docs/publish/host-adapters.md +60 -0
  432. package/agent-docs/publish/manni.md +227 -0
  433. package/agent-docs/publish/manni.sections/check-the-result.md +40 -0
  434. package/agent-docs/publish/manni.sections/how-this-site-uses-manni.md +83 -0
  435. package/agent-docs/publish/manni.sections/optional-custom-policies.md +42 -0
  436. package/agent-docs/publish/manni.sections/prerequisites.md +40 -0
  437. package/agent-docs/publish/mcp-analytics.md +356 -0
  438. package/agent-docs/publish/mcp-analytics.sections/adapter-exports.md +50 -0
  439. package/agent-docs/publish/mcp-analytics.sections/enable-analytics.md +45 -0
  440. package/agent-docs/publish/mcp-analytics.sections/event-fields-and-service-mappings.md +53 -0
  441. package/agent-docs/publish/mcp-analytics.sections/optionally-collect-intent-and-group-calls.md +62 -0
  442. package/agent-docs/publish/mcp-analytics.sections/optionally-identify-the-client-and-model.md +54 -0
  443. package/agent-docs/publish/mcp-analytics.sections/related-reading.md +36 -0
  444. package/agent-docs/publish/mcp-analytics.sections/safeguards-and-limits.md +46 -0
  445. package/agent-docs/publish/mcp.md +190 -0
  446. package/agent-docs/publish/mcp.sections/check-budgets-and-errors.md +52 -0
  447. package/agent-docs/publish/mcp.sections/choose-the-documentation-source.md +51 -0
  448. package/agent-docs/publish/mcp.sections/configure-the-client.md +55 -0
  449. package/agent-docs/publish/mcp.sections/generate-a-vercel-endpoint.md +50 -0
  450. package/agent-docs/publish/mcp.sections/related-reading.md +42 -0
  451. package/agent-docs/publish/mcp.sections/search-then-read.md +53 -0
  452. package/agent-docs/publish/mcp.sections/serve-a-public-endpoint-on-node.md +79 -0
  453. package/agent-docs/publish/mcp.sections/verify-the-connection.md +40 -0
  454. package/agent-docs/publish/mcp.sections/why-offer-mcp-for-public-docs.md +42 -0
  455. package/agent-docs/publish/openapi-extension-mappings.md +84 -0
  456. package/agent-docs/publish/output.md +220 -0
  457. package/agent-docs/publish/output.sections/api-contracts.md +48 -0
  458. package/agent-docs/publish/output.sections/code-highlighting.md +38 -0
  459. package/agent-docs/publish/output.sections/current-limits.md +40 -0
  460. package/agent-docs/publish/output.sections/incremental-sync.md +69 -0
  461. package/agent-docs/publish/output.sections/manifest-records-and-sections.md +46 -0
  462. package/agent-docs/publish/output.sections/navigation-section-indexes.md +42 -0
  463. package/agent-docs/publish/output.sections/page-formats.md +46 -0
  464. package/agent-docs/publish/output.sections/published-output-contract.md +58 -0
  465. package/agent-docs/publish/output.sections/reader-appearance-and-controls.md +44 -0
  466. package/agent-docs/publish/output.sections/related-reading.md +34 -0
  467. package/agent-docs/publish/output.sections/response-identity.md +38 -0
  468. package/agent-docs/publish/output.sections/site-files.md +64 -0
  469. package/agent-docs/publish/output.sections/validate-an-existing-build-locally.md +48 -0
  470. package/agent-docs/publish/output.sections/where-files-go.md +49 -0
  471. package/agent-docs/publish/publications.md +153 -0
  472. package/agent-docs/publish/revisions.md +104 -0
  473. package/agent-docs/publish/seo.md +119 -0
  474. package/agent-docs/publish/single-source-sites.md +168 -0
  475. package/agent-docs/publish/troubleshooting.md +112 -0
  476. package/agent-docs/publish/vercel.md +130 -0
  477. package/agent-docs/publish/vercel.sections/check-the-deployment.md +54 -0
  478. package/agent-docs/publish/vercel.sections/include-an-mcp-endpoint.md +38 -0
  479. package/agent-docs/publish/vercel.sections/prepare-your-project.md +52 -0
  480. package/agent-docs/publish/vercel.sections/related-reading.md +38 -0
  481. package/agent-docs/publish.md +95 -0
  482. package/agent-docs/recipes/add-page.md +194 -0
  483. package/agent-docs/recipes/add-page.sections/audit-the-shoalrun-docs-project.md +40 -0
  484. package/agent-docs/recipes/add-page.sections/before-you-start.md +33 -0
  485. package/agent-docs/recipes/add-page.sections/build-the-shoalrun-docs-site.md +42 -0
  486. package/agent-docs/recipes/add-page.sections/check-agent-search-and-page-lookup.md +42 -0
  487. package/agent-docs/recipes/add-page.sections/check-the-built-page-artifacts.md +54 -0
  488. package/agent-docs/recipes/add-page.sections/check-the-outcome.md +28 -0
  489. package/agent-docs/recipes/add-page.sections/complete-the-guide-and-add-navigation.md +42 -0
  490. package/agent-docs/recipes/add-page.sections/install-the-site-dependencies.md +41 -0
  491. package/agent-docs/recipes/add-page.sections/regenerate-the-agent-documentation-bundle.md +42 -0
  492. package/agent-docs/recipes/add-page.sections/related-reading.md +30 -0
  493. package/agent-docs/recipes/add-page.sections/scaffold-a-new-guide.md +42 -0
  494. package/agent-docs/recipes/audit-docs.md +122 -0
  495. package/agent-docs/recipes/build-docs.md +105 -0
  496. package/agent-docs/recipes/preview-hybrid-search.md +84 -0
  497. package/agent-docs/recipes/preview-page.md +124 -0
  498. package/agent-docs/recipes/queue-email.md +49 -0
  499. package/agent-docs/recipes/refresh-agent-docs.md +109 -0
  500. package/agent-docs/recipes/send-welcome-email.md +92 -0
  501. package/agent-docs/reference/agent-skills.md +73 -0
  502. package/agent-docs/search-and-chat.md +87 -0
  503. package/agent-docs/search-index.json +1 -0
  504. package/agent-docs/start.md +197 -0
  505. package/agent-docs/start.sections/add-the-page-to-navigation.md +50 -0
  506. package/agent-docs/start.sections/build-and-check-both-outputs.md +50 -0
  507. package/agent-docs/start.sections/build-this-site.md +35 -0
  508. package/agent-docs/start.sections/check-writing-style.md +35 -0
  509. package/agent-docs/start.sections/create-a-page.md +105 -0
  510. package/agent-docs/start.sections/make-it-yours.md +37 -0
  511. package/agent-docs/start.sections/prerequisites.md +37 -0
  512. package/agent-docs/start.sections/related-reading.md +45 -0
  513. package/agent-docs/start.sections/start-your-own-project.md +53 -0
  514. package/agent-docs/status.md +75 -0
  515. package/agent-docs/styling/color-modes.md +85 -0
  516. package/agent-docs/styling/footer.md +67 -0
  517. package/agent-docs/styling/header.md +65 -0
  518. package/agent-docs/styling/layouts.md +193 -0
  519. package/agent-docs/styling/layouts.sections/build-a-landing-page.md +61 -0
  520. package/agent-docs/styling/layouts.sections/build-a-splash-page.md +88 -0
  521. package/agent-docs/styling/layouts.sections/control-navigation-tabs.md +51 -0
  522. package/agent-docs/styling/layouts.sections/customize-the-hero.md +50 -0
  523. package/agent-docs/styling/layouts.sections/hero.md +83 -0
  524. package/agent-docs/styling/layouts.sections/related-reading.md +42 -0
  525. package/agent-docs/styling/palettes.md +140 -0
  526. package/agent-docs/styling/share-images.md +105 -0
  527. package/agent-docs/styling/themes.md +125 -0
  528. package/agent-docs/styling/try.md +106 -0
  529. package/agent-docs/what-is-shoalrun.md +56 -0
  530. package/assets/analytics.js +72 -0
  531. package/assets/ask-widget.js +320 -0
  532. package/assets/code-samples.js +28 -0
  533. package/assets/components.js +32 -0
  534. package/assets/cookbook-chooser.js +170 -0
  535. package/assets/copy-markdown.js +24 -0
  536. package/assets/example-panel.js +77 -0
  537. package/assets/file-tree.js +49 -0
  538. package/assets/image-viewer.js +41 -0
  539. package/assets/mode.js +26 -0
  540. package/assets/navigation.js +233 -0
  541. package/assets/reader-filters.js +305 -0
  542. package/assets/reader.js +111 -0
  543. package/assets/search-highlight.js +32 -0
  544. package/assets/search-lexical.js +66 -0
  545. package/assets/search.js +150 -0
  546. package/assets/table-filter.js +63 -0
  547. package/assets/tabs.js +80 -0
  548. package/assets/theme-preview.css +17 -0
  549. package/assets/theme-preview.js +135 -0
  550. package/assets/theme-switcher.js +113 -0
  551. package/assets/tooltips.js +81 -0
  552. package/assets/walkthrough.js +233 -0
  553. package/dist/agent-discovery.d.ts +11 -0
  554. package/dist/agent-discovery.js +37 -0
  555. package/dist/analytics.d.ts +2 -0
  556. package/dist/analytics.js +13 -0
  557. package/dist/answer-cache.d.ts +24 -0
  558. package/dist/answer-cache.js +55 -0
  559. package/dist/answer-cards.d.ts +71 -0
  560. package/dist/answer-cards.js +148 -0
  561. package/dist/api-embeds.d.ts +22 -0
  562. package/dist/api-embeds.js +84 -0
  563. package/dist/api-identity.d.ts +6 -0
  564. package/dist/api-identity.js +7 -0
  565. package/dist/api-materialize.d.ts +12 -0
  566. package/dist/api-materialize.js +120 -0
  567. package/dist/api-publication-plan.d.ts +86 -0
  568. package/dist/api-publication-plan.js +187 -0
  569. package/dist/api-publication-review.d.ts +23 -0
  570. package/dist/api-publication-review.js +58 -0
  571. package/dist/api-selection.d.ts +21 -0
  572. package/dist/api-selection.js +84 -0
  573. package/dist/api.d.ts +74 -0
  574. package/dist/api.js +782 -0
  575. package/dist/artifact-bundle.d.ts +96 -0
  576. package/dist/artifact-bundle.js +306 -0
  577. package/dist/ask-function.d.ts +19 -0
  578. package/dist/ask-function.js +139 -0
  579. package/dist/ask-handler.d.ts +38 -0
  580. package/dist/ask-handler.js +157 -0
  581. package/dist/ask-log-kv.d.ts +14 -0
  582. package/dist/ask-log-kv.js +69 -0
  583. package/dist/ask-log.d.ts +106 -0
  584. package/dist/ask-log.js +159 -0
  585. package/dist/ask-setup.d.ts +43 -0
  586. package/dist/ask-setup.js +99 -0
  587. package/dist/ask.d.ts +152 -0
  588. package/dist/ask.js +532 -0
  589. package/dist/audit.d.ts +29 -0
  590. package/dist/audit.js +171 -0
  591. package/dist/authored-change.d.ts +22 -0
  592. package/dist/authored-change.js +47 -0
  593. package/dist/authoring-api.d.ts +18 -0
  594. package/dist/authoring-api.js +15 -0
  595. package/dist/authoring-findings.d.ts +31 -0
  596. package/dist/authoring-findings.js +104 -0
  597. package/dist/authoring-guidance.d.ts +15 -0
  598. package/dist/authoring-guidance.js +57 -0
  599. package/dist/authoring-preview.d.ts +24 -0
  600. package/dist/authoring-preview.js +160 -0
  601. package/dist/authoring-project-command.d.ts +7 -0
  602. package/dist/authoring-project-command.js +52 -0
  603. package/dist/authoring-project.d.ts +104 -0
  604. package/dist/authoring-project.js +287 -0
  605. package/dist/authoring-review-command.d.ts +1 -0
  606. package/dist/authoring-review-command.js +68 -0
  607. package/dist/authoring-review.d.ts +72 -0
  608. package/dist/authoring-review.js +71 -0
  609. package/dist/authoring-snapshot.d.ts +66 -0
  610. package/dist/authoring-snapshot.js +293 -0
  611. package/dist/authoring-validation-command.d.ts +1 -0
  612. package/dist/authoring-validation-command.js +54 -0
  613. package/dist/authoring-validation.d.ts +101 -0
  614. package/dist/authoring-validation.js +348 -0
  615. package/dist/badges.d.ts +16 -0
  616. package/dist/badges.js +57 -0
  617. package/dist/budget-store.d.ts +21 -0
  618. package/dist/budget-store.js +90 -0
  619. package/dist/budget.d.ts +45 -0
  620. package/dist/budget.js +128 -0
  621. package/dist/build-info.d.ts +10 -0
  622. package/dist/build-info.js +15 -0
  623. package/dist/callouts.d.ts +18 -0
  624. package/dist/callouts.js +63 -0
  625. package/dist/cards.d.ts +35 -0
  626. package/dist/cards.js +237 -0
  627. package/dist/chat-config.d.ts +117 -0
  628. package/dist/chat-config.js +400 -0
  629. package/dist/chat-pause.d.ts +1 -0
  630. package/dist/chat-pause.js +3 -0
  631. package/dist/chat.d.ts +46 -0
  632. package/dist/chat.js +78 -0
  633. package/dist/cli-discovery.d.ts +4 -0
  634. package/dist/cli-discovery.js +86 -0
  635. package/dist/cli.d.ts +2 -0
  636. package/dist/cli.js +750 -0
  637. package/dist/code-samples.d.ts +50 -0
  638. package/dist/code-samples.js +181 -0
  639. package/dist/compact-discovery.d.ts +15 -0
  640. package/dist/compact-discovery.js +78 -0
  641. package/dist/compiler-config.d.ts +67 -0
  642. package/dist/compiler-config.js +66 -0
  643. package/dist/compiler.d.ts +208 -0
  644. package/dist/compiler.js +524 -0
  645. package/dist/component-bundle.d.ts +4 -0
  646. package/dist/component-bundle.js +32 -0
  647. package/dist/component-content.d.ts +78 -0
  648. package/dist/component-content.js +47 -0
  649. package/dist/component-manifest.d.ts +15 -0
  650. package/dist/component-manifest.js +84 -0
  651. package/dist/component-names.d.ts +1 -0
  652. package/dist/component-names.js +1 -0
  653. package/dist/component-plugins.d.ts +28 -0
  654. package/dist/component-plugins.js +141 -0
  655. package/dist/component-transform.d.ts +10 -0
  656. package/dist/component-transform.js +697 -0
  657. package/dist/components.d.ts +2 -0
  658. package/dist/components.js +1 -0
  659. package/dist/config.d.ts +29 -0
  660. package/dist/config.js +149 -0
  661. package/dist/content-export-assets.d.ts +23 -0
  662. package/dist/content-export-assets.js +103 -0
  663. package/dist/content-export-command.d.ts +20 -0
  664. package/dist/content-export-command.js +57 -0
  665. package/dist/content-export-config.d.ts +16 -0
  666. package/dist/content-export-config.js +50 -0
  667. package/dist/content-export-render.d.ts +12 -0
  668. package/dist/content-export-render.js +132 -0
  669. package/dist/content-export.d.ts +30 -0
  670. package/dist/content-export.js +307 -0
  671. package/dist/content-filter.d.ts +4 -0
  672. package/dist/content-filter.js +16 -0
  673. package/dist/content-source.d.ts +100 -0
  674. package/dist/content-source.js +42 -0
  675. package/dist/content-workspace.d.ts +293 -0
  676. package/dist/content-workspace.js +69 -0
  677. package/dist/content.d.ts +41 -0
  678. package/dist/content.js +176 -0
  679. package/dist/cookbook-chooser.d.ts +19 -0
  680. package/dist/cookbook-chooser.js +56 -0
  681. package/dist/dev.d.ts +2 -0
  682. package/dist/dev.js +113 -0
  683. package/dist/diagram-svg.d.ts +1 -0
  684. package/dist/diagram-svg.js +44 -0
  685. package/dist/diagrams.d.ts +7 -0
  686. package/dist/diagrams.js +102 -0
  687. package/dist/docs-author.d.ts +86 -0
  688. package/dist/docs-author.js +380 -0
  689. package/dist/docs-command.d.ts +8 -0
  690. package/dist/docs-command.js +62 -0
  691. package/dist/docs-eval.d.ts +146 -0
  692. package/dist/docs-eval.js +231 -0
  693. package/dist/docs-mcp.d.ts +12 -0
  694. package/dist/docs-mcp.js +82 -0
  695. package/dist/docs-tool.d.ts +81 -0
  696. package/dist/docs-tool.js +7 -0
  697. package/dist/document-sync.d.ts +36 -0
  698. package/dist/document-sync.js +58 -0
  699. package/dist/documentation-core.d.ts +148 -0
  700. package/dist/documentation-core.js +160 -0
  701. package/dist/embeddings.d.ts +68 -0
  702. package/dist/embeddings.js +198 -0
  703. package/dist/focused-audit.d.ts +10 -0
  704. package/dist/focused-audit.js +69 -0
  705. package/dist/focused-openapi.d.ts +2 -0
  706. package/dist/focused-openapi.js +140 -0
  707. package/dist/fonts.d.ts +54 -0
  708. package/dist/fonts.js +92 -0
  709. package/dist/freshness.d.ts +7 -0
  710. package/dist/freshness.js +58 -0
  711. package/dist/frontmatter.d.ts +24 -0
  712. package/dist/frontmatter.js +342 -0
  713. package/dist/function-package.d.ts +1 -0
  714. package/dist/function-package.js +58 -0
  715. package/dist/highlight.d.ts +14 -0
  716. package/dist/highlight.js +114 -0
  717. package/dist/html-renderer.d.ts +10 -0
  718. package/dist/html-renderer.js +63 -0
  719. package/dist/icons.d.ts +8 -0
  720. package/dist/icons.js +40 -0
  721. package/dist/index-build.d.ts +55 -0
  722. package/dist/index-build.js +227 -0
  723. package/dist/ingredient-draft.d.ts +17 -0
  724. package/dist/ingredient-draft.js +94 -0
  725. package/dist/ingredient-workflow.d.ts +8 -0
  726. package/dist/ingredient-workflow.js +25 -0
  727. package/dist/init.d.ts +8 -0
  728. package/dist/init.js +66 -0
  729. package/dist/jev.d.ts +62 -0
  730. package/dist/jev.js +190 -0
  731. package/dist/link-audit.d.ts +12 -0
  732. package/dist/link-audit.js +146 -0
  733. package/dist/llms-discovery.d.ts +11 -0
  734. package/dist/llms-discovery.js +23 -0
  735. package/dist/markdown-sections.d.ts +15 -0
  736. package/dist/markdown-sections.js +60 -0
  737. package/dist/markdown-size.d.ts +7 -0
  738. package/dist/markdown-size.js +6 -0
  739. package/dist/mcp-analytics.d.ts +38 -0
  740. package/dist/mcp-analytics.js +35 -0
  741. package/dist/mcp-artifacts.d.ts +2 -0
  742. package/dist/mcp-artifacts.js +78 -0
  743. package/dist/mcp-client-metadata.d.ts +18 -0
  744. package/dist/mcp-client-metadata.js +69 -0
  745. package/dist/mcp-config.d.ts +23 -0
  746. package/dist/mcp-config.js +56 -0
  747. package/dist/mcp-http.d.ts +19 -0
  748. package/dist/mcp-http.js +157 -0
  749. package/dist/mcp-integrity.d.ts +3 -0
  750. package/dist/mcp-integrity.js +4 -0
  751. package/dist/mcp-node.d.ts +4 -0
  752. package/dist/mcp-node.js +68 -0
  753. package/dist/mcp-vercel-runtime.d.ts +3 -0
  754. package/dist/mcp-vercel-runtime.js +36 -0
  755. package/dist/mcp-vercel.d.ts +15 -0
  756. package/dist/mcp-vercel.js +65 -0
  757. package/dist/metadata-provider.d.ts +19 -0
  758. package/dist/metadata-provider.js +38 -0
  759. package/dist/negotiation.d.ts +10 -0
  760. package/dist/negotiation.js +35 -0
  761. package/dist/not-found.d.ts +16 -0
  762. package/dist/not-found.js +25 -0
  763. package/dist/output-commit.d.ts +1 -0
  764. package/dist/output-commit.js +133 -0
  765. package/dist/output-location.d.ts +3 -0
  766. package/dist/output-location.js +30 -0
  767. package/dist/page-materialization.d.ts +78 -0
  768. package/dist/page-materialization.js +132 -0
  769. package/dist/page-renderer.d.ts +71 -0
  770. package/dist/page-renderer.js +177 -0
  771. package/dist/palettes.d.ts +41 -0
  772. package/dist/palettes.js +160 -0
  773. package/dist/procedure-components.d.ts +2 -0
  774. package/dist/procedure-components.js +94 -0
  775. package/dist/project-navigation.d.ts +41 -0
  776. package/dist/project-navigation.js +190 -0
  777. package/dist/provider-http.d.ts +10 -0
  778. package/dist/provider-http.js +60 -0
  779. package/dist/publication-manifest.d.ts +229 -0
  780. package/dist/publication-manifest.js +53 -0
  781. package/dist/publication-plan.d.ts +34 -0
  782. package/dist/publication-plan.js +85 -0
  783. package/dist/publication-render.d.ts +71 -0
  784. package/dist/publication-render.js +92 -0
  785. package/dist/reader-filters.d.ts +30 -0
  786. package/dist/reader-filters.js +105 -0
  787. package/dist/recipe-draft.d.ts +17 -0
  788. package/dist/recipe-draft.js +147 -0
  789. package/dist/reference-audit.d.ts +18 -0
  790. package/dist/reference-audit.js +169 -0
  791. package/dist/remote-import.d.ts +62 -0
  792. package/dist/remote-import.js +292 -0
  793. package/dist/representation-tree.d.ts +3 -0
  794. package/dist/representation-tree.js +320 -0
  795. package/dist/retrieval-config.d.ts +30 -0
  796. package/dist/retrieval-config.js +83 -0
  797. package/dist/retrieval.d.ts +60 -0
  798. package/dist/retrieval.js +228 -0
  799. package/dist/scaffold.d.ts +39 -0
  800. package/dist/scaffold.js +167 -0
  801. package/dist/search-config.d.ts +8 -0
  802. package/dist/search-config.js +26 -0
  803. package/dist/search-handler.d.ts +16 -0
  804. package/dist/search-handler.js +111 -0
  805. package/dist/search-identifier.d.ts +3 -0
  806. package/dist/search-identifier.js +25 -0
  807. package/dist/search-literal.d.ts +1 -0
  808. package/dist/search-literal.js +28 -0
  809. package/dist/search-query.d.ts +54 -0
  810. package/dist/search-query.js +120 -0
  811. package/dist/search-results.d.ts +6 -0
  812. package/dist/search-results.js +45 -0
  813. package/dist/search-snippet.d.ts +11 -0
  814. package/dist/search-snippet.js +93 -0
  815. package/dist/search-synonyms.d.ts +8 -0
  816. package/dist/search-synonyms.js +46 -0
  817. package/dist/semantic-markdown.d.ts +10 -0
  818. package/dist/semantic-markdown.js +39 -0
  819. package/dist/server.d.ts +10 -0
  820. package/dist/server.js +223 -0
  821. package/dist/share-images.d.ts +24 -0
  822. package/dist/share-images.js +187 -0
  823. package/dist/site-path.d.ts +2 -0
  824. package/dist/site-path.js +15 -0
  825. package/dist/sitemap.d.ts +8 -0
  826. package/dist/sitemap.js +58 -0
  827. package/dist/snippets.d.ts +19 -0
  828. package/dist/snippets.js +84 -0
  829. package/dist/structured-model-output.d.ts +6 -0
  830. package/dist/structured-model-output.js +21 -0
  831. package/dist/subject-deprecation.d.ts +21 -0
  832. package/dist/subject-deprecation.js +57 -0
  833. package/dist/surface-text.d.ts +4 -0
  834. package/dist/surface-text.js +42 -0
  835. package/dist/taxonomy.d.ts +14 -0
  836. package/dist/taxonomy.js +88 -0
  837. package/dist/turnstile.d.ts +21 -0
  838. package/dist/turnstile.js +52 -0
  839. package/dist/vale.d.ts +28 -0
  840. package/dist/vale.js +103 -0
  841. package/dist/vercel-function.d.ts +21 -0
  842. package/dist/vercel-function.js +108 -0
  843. package/dist/vercel.d.ts +11 -0
  844. package/dist/vercel.js +103 -0
  845. package/dist/walkthrough.d.ts +25 -0
  846. package/dist/walkthrough.js +336 -0
  847. package/dist/yaml-value.d.ts +2 -0
  848. package/dist/yaml-value.js +36 -0
  849. package/example-configs/api-docs/README.md +59 -0
  850. package/example-configs/api-docs/apis/cedar-parcel.yaml +413 -0
  851. package/example-configs/api-docs/content/create-enrollment.mdx +11 -0
  852. package/example-configs/api-docs/content/overview.mdx +36 -0
  853. package/example-configs/api-docs/content/quickstart.mdx +52 -0
  854. package/example-configs/api-docs/docs.config.yaml +104 -0
  855. package/example-configs/faceted-sites/README.md +31 -0
  856. package/example-configs/faceted-sites/base.yaml +30 -0
  857. package/example-configs/faceted-sites/content/api.md +12 -0
  858. package/example-configs/faceted-sites/content/home.md +10 -0
  859. package/example-configs/faceted-sites/content/operations.md +12 -0
  860. package/example-configs/faceted-sites/developers.config.yaml +8 -0
  861. package/example-configs/faceted-sites/docs.config.yaml +7 -0
  862. package/example-configs/faceted-sites/europe.config.yaml +9 -0
  863. package/example-configs/minimal/content/install.mdx +12 -0
  864. package/example-configs/minimal/content/welcome.mdx +8 -0
  865. package/example-configs/minimal/docs.config.yaml +31 -0
  866. package/example-configs/multilingual/content/de/home.mdx +9 -0
  867. package/example-configs/multilingual/content/de/reset-password.mdx +9 -0
  868. package/example-configs/multilingual/content/home.mdx +10 -0
  869. package/example-configs/multilingual/content/reset-password.mdx +12 -0
  870. package/example-configs/multilingual/docs.config.yaml +61 -0
  871. package/example-configs/multilingual/snippets/contact.mdx +1 -0
  872. package/example-configs/notifications/apis/notifications.yaml +132 -0
  873. package/example-configs/notifications/content/cookbook.mdx +17 -0
  874. package/example-configs/notifications/content/get-message.mdx +14 -0
  875. package/example-configs/notifications/content/queue-email.mdx +42 -0
  876. package/example-configs/notifications/content/queue-push.mdx +33 -0
  877. package/example-configs/notifications/content/queue-sms.mdx +33 -0
  878. package/example-configs/notifications/content/send-email.mdx +14 -0
  879. package/example-configs/notifications/content/send-push.mdx +14 -0
  880. package/example-configs/notifications/content/send-sms.mdx +14 -0
  881. package/example-configs/notifications/content/start.mdx +13 -0
  882. package/example-configs/notifications/content/welcome-cookbook.mdx +21 -0
  883. package/example-configs/notifications/content/welcome-email.mdx +82 -0
  884. package/example-configs/notifications/demo.mjs +43 -0
  885. package/example-configs/notifications/docs.config.yaml +88 -0
  886. package/example-configs/notifications/ingredient-drafts/README.md +41 -0
  887. package/example-configs/notifications/ingredient-drafts/check-delivery.mdx +13 -0
  888. package/example-configs/notifications/ingredient-drafts/queue-welcome-email.mdx +48 -0
  889. package/example-configs/notifications/ingredient-specs/queue-welcome-email.yaml +7 -0
  890. package/example-configs/notifications/ingredients/check-delivery.mdx +42 -0
  891. package/example-configs/notifications/ingredients/queue-welcome-email.mdx +37 -0
  892. package/example-configs/notifications/recipe-drafts/send-welcome-email.mdx +91 -0
  893. package/example-configs/notifications/recipe-specs/send-welcome-email.yaml +11 -0
  894. package/example-configs/reference-stress/README.md +32 -0
  895. package/example-configs/reference-stress/apis/cedar-parcel.yaml +413 -0
  896. package/example-configs/reference-stress/content/enrollment-shapes.mdx +16 -0
  897. package/example-configs/reference-stress/content/overview.mdx +14 -0
  898. package/example-configs/reference-stress/docs.config.yaml +55 -0
  899. package/example-configs/shared-preset/shared/company-docs.yaml +46 -0
  900. package/example-configs/shared-preset/shared/runbook.mdx +7 -0
  901. package/example-configs/shared-preset/site/content/failed-invoices.mdx +15 -0
  902. package/example-configs/shared-preset/site/content/start.mdx +9 -0
  903. package/example-configs/shared-preset/site/docs.config.yaml +18 -0
  904. package/example-configs/showcase/README.md +20 -0
  905. package/example-configs/showcase/apis/cedar-parcel.yaml +413 -0
  906. package/example-configs/showcase/content/assets/collection.svg +1 -0
  907. package/example-configs/showcase/content/code.mdx +100 -0
  908. package/example-configs/showcase/content/create-enrollment.mdx +11 -0
  909. package/example-configs/showcase/content/features.mdx +39 -0
  910. package/example-configs/showcase/content/landing.mdx +36 -0
  911. package/example-configs/showcase/content/overview.mdx +42 -0
  912. package/example-configs/showcase/content/personalization.mdx +38 -0
  913. package/example-configs/showcase/content/preview.mdx +35 -0
  914. package/example-configs/showcase/content/procedures.mdx +88 -0
  915. package/example-configs/showcase/content/quickstart.mdx +64 -0
  916. package/example-configs/showcase/content/reading.mdx +99 -0
  917. package/example-configs/showcase/content/verify.mdx +27 -0
  918. package/example-configs/showcase/content/visuals.mdx +47 -0
  919. package/example-configs/showcase/content/workflows.mdx +12 -0
  920. package/example-configs/showcase/docs.config.yaml +149 -0
  921. package/example-configs/showcase/snippets/sandbox.mdx +1 -0
  922. package/examples/analytics/README.md +56 -0
  923. package/examples/analytics/inspector.js +25 -0
  924. package/examples/analytics/posthog.js +36 -0
  925. package/examples/components/comparison.mjs +8 -0
  926. package/examples/components/components.json +6 -0
  927. package/examples/components/copy-text/LICENSE.react-dom.txt +21 -0
  928. package/examples/components/copy-text/LICENSE.react.txt +21 -0
  929. package/examples/components/copy-text/LICENSE.scheduler.txt +21 -0
  930. package/examples/components/copy-text/browser.jsx +21 -0
  931. package/examples/components/copy-text/components.json +6 -0
  932. package/examples/components/copy-text/package-lock.json +41 -0
  933. package/examples/components/copy-text/package.json +9 -0
  934. package/examples/components/copy-text/plugin.mjs +5 -0
  935. package/examples/components/retry-budget/LICENSE.react-dom.txt +21 -0
  936. package/examples/components/retry-budget/LICENSE.react.txt +21 -0
  937. package/examples/components/retry-budget/LICENSE.scheduler.txt +21 -0
  938. package/examples/components/retry-budget/browser.jsx +50 -0
  939. package/examples/components/retry-budget/components.json +6 -0
  940. package/examples/components/retry-budget/model.js +22 -0
  941. package/examples/components/retry-budget/package-lock.json +41 -0
  942. package/examples/components/retry-budget/package.json +9 -0
  943. package/examples/components/retry-budget/plugin.mjs +31 -0
  944. package/examples/components/retry-budget/policy.json +9 -0
  945. package/examples/components/retry-budget/style.css +25 -0
  946. package/examples/diagrams/d2-gallery.json +138 -0
  947. package/examples/diagrams/gallery.json +236 -0
  948. package/examples/help-drawer/README.md +44 -0
  949. package/examples/help-drawer/app.js +53 -0
  950. package/examples/help-drawer/components/components.json +1 -0
  951. package/examples/help-drawer/components/support.mjs +10 -0
  952. package/examples/help-drawer/content/account.md +8 -0
  953. package/examples/help-drawer/content/billing.mdx +29 -0
  954. package/examples/help-drawer/content/keys.mdx +46 -0
  955. package/examples/help-drawer/content/settings.svg +1 -0
  956. package/examples/help-drawer/docs.config.yaml +30 -0
  957. package/examples/help-drawer/index.html +26 -0
  958. package/examples/help-drawer/preview.mjs +33 -0
  959. package/examples/mcp-analytics/README.md +59 -0
  960. package/examples/mcp-analytics/posthog.mjs +159 -0
  961. package/package.json +100 -4
  962. package/schemas/content-export.schema.json +55 -0
  963. package/skills/shoalrun-author/SKILL.md +52 -0
  964. package/skills/shoalrun-component-author/SKILL.md +24 -0
  965. package/skills/shoalrun-recipes/SKILL.md +25 -0
  966. package/skills/shoalrun-setup/SKILL.md +34 -0
  967. package/skills/shoalrun-walkthrough/SKILL.md +18 -0
  968. package/styles/fonts/figtree-LICENSE.txt +93 -0
  969. package/styles/fonts/figtree-italic.woff2 +0 -0
  970. package/styles/fonts/figtree.woff2 +0 -0
  971. package/styles/fonts/inter-LICENSE.txt +93 -0
  972. package/styles/fonts/inter-italic.woff2 +0 -0
  973. package/styles/fonts/inter.woff2 +0 -0
  974. package/styles/fonts/jetbrains-mono-LICENSE.txt +93 -0
  975. package/styles/fonts/jetbrains-mono.woff2 +0 -0
  976. package/styles/fonts/jost-LICENSE.txt +93 -0
  977. package/styles/fonts/jost-italic.woff2 +0 -0
  978. package/styles/fonts/jost.woff2 +0 -0
  979. package/styles/fonts/share/figtree-400.ttf +0 -0
  980. package/styles/fonts/share/figtree-700.ttf +0 -0
  981. package/styles/fonts/share/inter-400.ttf +0 -0
  982. package/styles/fonts/share/inter-700.ttf +0 -0
  983. package/styles/fonts/share/jetbrains-mono-700.ttf +0 -0
  984. package/styles/fonts/share/jost-italic-800.ttf +0 -0
  985. package/styles/fonts/share/metrics.json +1 -0
  986. package/styles/fonts/share/source-serif-4-400.ttf +0 -0
  987. package/styles/fonts/source-serif-4-LICENSE.txt +93 -0
  988. package/styles/fonts/source-serif-4-italic.woff2 +0 -0
  989. package/styles/fonts/source-serif-4.woff2 +0 -0
  990. package/styles/header.css +56 -0
  991. package/styles/site.css +825 -0
  992. package/styles/themes/ledger.css +93 -0
  993. package/styles/themes/palettes/amethyst.yaml +127 -0
  994. package/styles/themes/palettes/coral.yaml +127 -0
  995. package/styles/themes/palettes/harbor.yaml +127 -0
  996. package/styles/themes/palettes/ink.yaml +127 -0
  997. package/styles/themes/palettes/kelp.yaml +127 -0
  998. package/styles/themes/palettes/vice.yaml +127 -0
  999. package/styles/themes/reef.css +68 -0
  1000. package/styles/themes/vice.css +56 -0
  1001. package/styles/tokens.css +91 -0
  1002. package/templates/api-reference.mdx +133 -0
  1003. package/templates/cookbook.mdx +38 -0
  1004. package/templates/explanation.mdx +76 -0
  1005. package/templates/guide.mdx +175 -0
  1006. package/templates/how-to.mdx +171 -0
  1007. package/templates/ingredient.mdx +53 -0
  1008. package/templates/recipe.mdx +76 -0
  1009. package/templates/reference.mdx +171 -0
  1010. package/templates/troubleshooting.mdx +159 -0
  1011. package/templates/tutorial.mdx +165 -0
@@ -0,0 +1,79 @@
1
+ ---
2
+ id: guide.mcp
3
+ title: Connect an MCP client
4
+ summary: Connect read-only MCP clients over stdio or HTTP to search and read
5
+ built documentation.
6
+ type: how-to
7
+ area: discovery
8
+ subarea: discovery-mcp
9
+ canonical: /publish/mcp
10
+ ---
11
+
12
+ # Connect an MCP 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) > MCP > Connect an MCP client
19
+
20
+ **Updated: 2026-10-27.**
21
+
22
+ Parent page: [Full Markdown page](/publish/mcp.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Next steps**
27
+
28
+ - [Measure MCP tool usage](https://www.shoalrun.com/publish/mcp-analytics.md) — Optionally measure tool calls through a server adapter.
29
+
30
+ Connect an MCP client to built documentation through four read-only tools. Use stdio for a client-launched local process, or enable an HTTP endpoint on Node or in a generated Vercel function. Both use the same search and Markdown reading core.
31
+
32
+ The HTTP endpoint currently supports one explicitly selected public publication. The generated Vercel endpoint is deployed and verified on this site. Netlify and Cloudflare adapters are not implemented. Analytics is off by default; an optional [server adapter](https://www.shoalrun.com/publish/mcp-analytics.md) can measure tool calls.
33
+
34
+ You need Node.js 22.12 or newer, the installed Shoalrun CLI, and a client that supports MCP stdio or Streamable HTTP. Follow [Getting started](https://www.shoalrun.com/start.md) to install the public npm package.
35
+
36
+ ## Serve a public endpoint on Node
37
+
38
+ Use this procedure when agents should connect to a URL instead of launching the CLI themselves. Analytics is not enabled by this setting.
39
+
40
+ 1. ### Enable a public publication
41
+
42
+ Add the endpoint and the exact channel, version, and language to your project config. The selected publication must contain public pages:
43
+
44
+ ```yaml title="docs.config.yaml"
45
+ mcp:
46
+ enabled: true
47
+ access: public
48
+ path: /mcp
49
+ publication: { channel: production, version: current, language: en }
50
+ ```
51
+
52
+ The endpoint supplies those publication coordinates when the client omits them. Requests for a different publication are rejected. Its lexical search index is generated even if browser search is disabled.
53
+
54
+ 2. ### Build and serve the site
55
+
56
+ With the CLI available as `shoalrun`, build the output and start the Node server:
57
+
58
+ ```sh
59
+ shoalrun build docs.config.yaml dist
60
+ shoalrun serve dist --port 8774
61
+ ```
62
+
63
+ The server reads the MCP settings from that build. It does not need the source config. With no site base path, the local endpoint is `http://127.0.0.1:8774/mcp`; a base path such as `/docs` makes it `/docs/mcp`.
64
+
65
+ Set `mcp: false` or remove the setting and rebuild to disable the endpoint. Restart a non-watching server after replacing its build; watched preview reloads settings with each successful build.
66
+
67
+ 3. ### Connect and check the tools
68
+
69
+ Add the endpoint URL in your client’s remote MCP settings. The client should discover the four tools listed below. Search for a known page, then follow the returned read instruction and verify its publication.
70
+
71
+ The SDK integration is tested with legacy and automatic protocol negotiation using MCP TypeScript client version `2.2.0`. Compatibility with a specific desktop client or public host still needs its own check.
72
+
73
+ ### Hosts, origins, and limits
74
+
75
+ Local connections permit the configured loopback host. For a public Node deployment, `site.origin` supplies a trusted hostname and browser origin. Add explicit `mcp.allowedHosts` hostnames for other domains and `mcp.allowedOrigins` origins for browser-based clients. Forwarded host headers are not trusted. Native clients do not need an Origin header.
76
+
77
+ The endpoint accepts JSON MCP requests through POST; it does not provide a persistent session or standalone event stream. GET and DELETE return 405. Browser preflight uses OPTIONS.
78
+
79
+ Limits are 64 KiB per request, eight concurrent requests per handler, and a 15-second deadline. Excess concurrent requests return 429 with retry guidance. Tool token budgets still apply. These are process-local controls; configure deployment-level limits before exposing a public service. This is a public endpoint, not an authentication mechanism for private documentation.
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: guide.mcp
3
+ title: Connect an MCP client
4
+ summary: Connect read-only MCP clients over stdio or HTTP to search and read
5
+ built documentation.
6
+ type: how-to
7
+ area: discovery
8
+ subarea: discovery-mcp
9
+ canonical: /publish/mcp
10
+ ---
11
+
12
+ # Connect an MCP 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) > MCP > Connect an MCP client
19
+
20
+ **Updated: 2026-10-27.**
21
+
22
+ Parent page: [Full Markdown page](/publish/mcp.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Next steps**
27
+
28
+ - [Measure MCP tool usage](https://www.shoalrun.com/publish/mcp-analytics.md) — Optionally measure tool calls through a server adapter.
29
+
30
+ Connect an MCP client to built documentation through four read-only tools. Use stdio for a client-launched local process, or enable an HTTP endpoint on Node or in a generated Vercel function. Both use the same search and Markdown reading core.
31
+
32
+ The HTTP endpoint currently supports one explicitly selected public publication. The generated Vercel endpoint is deployed and verified on this site. Netlify and Cloudflare adapters are not implemented. Analytics is off by default; an optional [server adapter](https://www.shoalrun.com/publish/mcp-analytics.md) can measure tool calls.
33
+
34
+ You need Node.js 22.12 or newer, the installed Shoalrun CLI, and a client that supports MCP stdio or Streamable HTTP. Follow [Getting started](https://www.shoalrun.com/start.md) to install the public npm package.
35
+
36
+ ## Verify the connection
37
+
38
+ Search for a known page, read the returned ID, and inspect its Markdown. Then request a nonexistent ID: it should return `unknown_page` without stopping the server. Confirm that a small budget sets `truncated` on a long page. These checks exercise the source selection and tool contract without an agent harness.
39
+
40
+ The tools are read-only and do not expose authoring commands. Stdio makes them available to a local tool-capable client; clients that cannot launch a local process cannot use this transport. They can read published Markdown over HTTP when their tools support fetching URLs. Stdio has no analytics adapter. The optional HTTP adapter records tool outcomes without raw queries.
@@ -0,0 +1,42 @@
1
+ ---
2
+ id: guide.mcp
3
+ title: Connect an MCP client
4
+ summary: Connect read-only MCP clients over stdio or HTTP to search and read
5
+ built documentation.
6
+ type: how-to
7
+ area: discovery
8
+ subarea: discovery-mcp
9
+ canonical: /publish/mcp
10
+ ---
11
+
12
+ # Connect an MCP 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) > MCP > Connect an MCP client
19
+
20
+ **Updated: 2026-10-27.**
21
+
22
+ Parent page: [Full Markdown page](/publish/mcp.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Next steps**
27
+
28
+ - [Measure MCP tool usage](https://www.shoalrun.com/publish/mcp-analytics.md) — Optionally measure tool calls through a server adapter.
29
+
30
+ Connect an MCP client to built documentation through four read-only tools. Use stdio for a client-launched local process, or enable an HTTP endpoint on Node or in a generated Vercel function. Both use the same search and Markdown reading core.
31
+
32
+ The HTTP endpoint currently supports one explicitly selected public publication. The generated Vercel endpoint is deployed and verified on this site. Netlify and Cloudflare adapters are not implemented. Analytics is off by default; an optional [server adapter](https://www.shoalrun.com/publish/mcp-analytics.md) can measure tool calls.
33
+
34
+ You need Node.js 22.12 or newer, the installed Shoalrun CLI, and a client that supports MCP stdio or Streamable HTTP. Follow [Getting started](https://www.shoalrun.com/start.md) to install the public npm package.
35
+
36
+ ## Why offer MCP for public docs?
37
+
38
+ MCP gives tool-capable agents a predictable way to search your docs and request a page or section within a token budget. For example, an agent answering “How do I configure analytics?” can search and follow the returned read instruction. The result includes relevant Markdown, its publication, and a source link.
39
+
40
+ The documentation can already be public. MCP adds a tool interface; it does not grant access that public Markdown lacks. Agents that can fetch and search your Markdown may not need it. Offer both when your readers use MCP clients, and check whether the tools help them find answers with fewer requests or less content.
41
+
42
+ To use Shoalrun's own live documentation endpoint, follow [use this site's MCP](https://www.shoalrun.com/connect/mcp.md). The setup below is for hosting your own project's tools.
@@ -0,0 +1,84 @@
1
+ ---
2
+ id: reference.openapi-extension-mappings
3
+ title: OpenAPI extension mappings
4
+ summary: Map selected operation-level x-* values into Shoalrun metadata without
5
+ depending on a particular authoring service.
6
+ type: reference
7
+ area: api
8
+ subarea: api-contracts
9
+ canonical: /publish/openapi-extension-mappings
10
+ ---
11
+
12
+ # OpenAPI extension mappings
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) > Document an API > OpenAPI extension mappings
19
+
20
+ **Updated: 2026-10-25.**
21
+
22
+ OpenAPI permits [specification extensions](https://spec.openapis.org/oas/v3.1.0#specification-extensions) whose names begin with `x-`. Their names and values belong to the tool or team that wrote the description. Shoalrun reads standard OpenAPI fields directly and applies an extension only when the project config explicitly maps it to a supported Shoalrun field.
23
+
24
+ ## Supported mapping
25
+
26
+ Use these source locations and value shapes when mapping OpenAPI extensions to Shoalrun fields.
27
+
28
+ | Shoalrun target | Source location | Accepted source shape | Shoalrun values |
29
+ | ------------------ | ---------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------ |
30
+ | `subjectLifecycle` | An operation under `paths` or OpenAPI 3.1 `webhooks` | A scalar `x-*` value, or a scalar member inside an `x-*` object | `beta`, `in-development`, `experimental`, `deprecated` |
31
+
32
+ Use `apis.<apiId>.mappings.subjectLifecycle`. `from` starts with an operation-level `x-*` key. For an object, add a dot and the member name; further simple member names may follow. `values` maps exact source values to Shoalrun values. Unlisted, missing, null, array, or object values do not set a badge.
33
+
34
+ For example, this fictional OpenAPI operation uses an object-shaped extension:
35
+
36
+ ```yaml title="openapi.yaml"
37
+ paths:
38
+ /widgets:
39
+ get:
40
+ operationId: listWidgets
41
+ x-docs-availability:
42
+ status: testing
43
+ note: May change before general release
44
+ responses:
45
+ '200': { description: Widgets returned }
46
+ ```
47
+
48
+ Map its `status` member without changing the OpenAPI file:
49
+
50
+ ```yaml title="config/api.yaml"
51
+ catalog:
52
+ source: { kind: file, path: ../apis/catalog/openapi.yaml }
53
+ mappings:
54
+ subjectLifecycle:
55
+ from: x-docs-availability.status
56
+ values:
57
+ testing: beta
58
+ building: in-development
59
+ retired: deprecated
60
+ generateReferences: true
61
+ ```
62
+
63
+ The `listWidgets` reference now shows **Beta** in its page header and navigation. Its Markdown twin and `documents.json` also report the mapped status. For a scalar extension such as `x-docs-availability: testing`, use `from: x-docs-availability` with the same `values` map. The source names are examples; the project chooses its own extension name and values.
64
+
65
+ An authored reference page's `subjectLifecycle` takes precedence over the mapping. OpenAPI `deprecated: true` always makes the operation **Deprecated**; a conflicting authored status fails the build. A mapping is scoped to one API registration and applies to that API's selected operations across its publications.
66
+
67
+ ## Other extension shapes
68
+
69
+ Extensions outside the supported mapping may need source changes or a different Shoalrun feature.
70
+
71
+ | Source extension purpose | Current Shoalrun behavior | Use in Shoalrun today |
72
+ | ------------------------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
73
+ | Tag names and tag groups | No automatic mapping | Use OpenAPI `tags` for generated groups and [navigation config](https://www.shoalrun.com/author/navigation.md) for editorial grouping and MDX pages. |
74
+ | Custom code samples | No automatic mapping | Add an authored MDX example or reusable snippet; standard OpenAPI request and response examples still appear automatically. |
75
+ | Enum labels or descriptions | No automatic mapping | Standard `enum` values appear in schemas. Put explanatory prose in a schema or field `description`. |
76
+ | Hide or internal flags | No automatic mapping | Select public operations with `generateReferences.include` or explicit `operations`; set page access in authored frontmatter. Do not rely on an unrecognized extension to hide content. |
77
+ | Explorer settings and SDK naming | No automatic mapping | Shoalrun does not execute API requests. Keep SDK-specific settings in their owning tool. |
78
+ | Webhook markers in older descriptions | No automatic mapping | Describe inbound events with OpenAPI 3.1 `webhooks`. |
79
+
80
+ An unmapped `x-*` value does not change the rendered reference. A focused contract omits extension properties while retaining literal example payload keys, even when those keys begin with `x-`. A full OpenAPI download enabled by `source.publish: true` contains the source file as authored, including its extensions. Review that file before publishing it.
81
+
82
+ ## Choosing a new mapping target
83
+
84
+ The target list above is intentionally small. An extension can describe presentation, visibility, SDK behavior, or actual wire semantics, and identical names do not guarantee identical shapes. When adding a target, define its source location, accepted value shapes, Shoalrun output, precedence over authored metadata and standard OpenAPI, and behavior for unknown values. Keep the source name configurable so projects can adapt descriptions from different tools without baking a vendor vocabulary into Shoalrun.
@@ -0,0 +1,220 @@
1
+ ---
2
+ id: guide.output
3
+ title: Publishing and agent representations
4
+ summary: Read the published-output contract for HTML, Markdown, manifests, and
5
+ incremental sync.
6
+ type: reference
7
+ area: publishing
8
+ subarea: publishing-builds
9
+ canonical: /publish/output
10
+ ---
11
+
12
+ # Publishing and agent representations
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) > Publish > Generated outputs
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ `shoalrun build` turns accepted source pages and local OpenAPI files into a static site. A **publication** is one enabled channel, version, and language combination, such as production, v1, and English. The build includes a public page only in publications matching its frontmatter. It makes no model calls or remote requests.
23
+
24
+ For each included page, the build writes an HTML page for browsing. It also writes a **Markdown twin**, a generated `.md` copy that agents can read as text. The Markdown twin can start with a short YAML header. That header contains only the page metadata selected in project config, so agents get useful context without a long source header or internal notes. Shared content appears in both bodies; authors can also add content to either format alone with [Only](https://www.shoalrun.com/author/components/only.md).
25
+
26
+ The site also includes a **document manifest**, `documents.json`, which indexes the built pages and their URLs. Projects with an API source can publish operation pages and **focused contracts**, small OpenAPI files containing one operation and the definitions it needs.
27
+
28
+ ## Published-output contract
29
+
30
+ This page is the consumer reference for Shoalrun's current published output. It describes the existing producer, not a general format that other generators must implement. The manifest and sync snapshot use `schemaVersion: 1`. Editorial revisions to this reference do not change that wire version.
31
+
32
+ The repository maintains JSON Schema 2020-12 definitions at `framework/schemas/manifest.schema.json` and `framework/schemas/sync.schema.json`. They specify required fields and known value shapes; this reference explains their meaning. Schema identifiers are stable names for local resolution, not a promise that a site hosts the schema files. Register both schemas together when validating a sync snapshot. They remain repository validation resources and are not added to site output.
33
+
34
+ Consumers must tolerate unknown properties. Optional fields may be absent; absence is not evidence of a negative claim. Removing a required field, changing a field's meaning, or making existing valid output incompatible requires a new wire version. Adding optional fields can retain version 1. Changes to a constrained value set also need compatibility review; accepting unknown properties does not mean a consumer accepts unknown enum values.
35
+
36
+ | Capability | Availability |
37
+ | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
38
+ | HTML and Markdown pages | Every included public page has both representations. |
39
+ | Manifest, sync snapshot, build information, response headers, redirect inventory, and both text discovery indexes | Emitted by the build. Empty inventories are allowed. |
40
+ | Search indexes | Both full and compact indexes are emitted when search indexing is enabled. |
41
+ | Section resources | Emitted only for eligible sections of sufficiently long pages. |
42
+ | Focused contracts and published API sources | Emitted when configured for an API source. |
43
+ | Sitemap | Requires a site origin and enabled indexing. |
44
+ | Markdown negotiation, redirect responses, caching, and HTTP 404 status | Hosting behavior; the Node server and Vercel adapter implement it. Other hosts need matching rules. |
45
+
46
+ Routes include the configured base path and publication prefixes. Start at `llms.min.txt` under that base path, follow a matching topic index when present, then choose a page by its ID, title, and summary and fetch its Markdown URL. Fetch the manifest when you need structured metadata. Each compact index is limited to 2,000 `cl100k_base` tokens; total discovery cost depends on the number of indexes you read.
47
+
48
+ A document's identity is `(id, channel, version, language)`, not its title, URL, or array position. The same ID in two publications identifies two records. That tuple must be unique in both the manifest and sync snapshot. Cite it with the resource URL; for sections, also retain section identity and parent/section digests. A manifest array pointer is a link into that snapshot, not a permanent document identifier.
49
+
50
+ `indexable` describes indexing, not access. `demo: false` means unmarked, not a verified service. Missing or null `subjectLifecycle` does not mean stable. `verified` is an author's review date, not compiler or independent verification. `updated` records content freshness and can be a calendar date or a timestamp with a timezone. Reader filters control presentation, not authorization.
51
+
52
+ ## Page formats
53
+
54
+ Both formats come from the same parsed content. Supported components preserve their documented shared content in Markdown: tab choices, disclosure bodies, reader-marked branches, table rows, resolved snippets, and API examples retain readable content and relevant labels. Unknown components and unsupported dynamic MDX fail compilation. Explicit format-specific branches follow author selection; authors must review equivalent task guidance and completeness. Rendering checks do not prove semantic equivalence or that a reader has every prerequisite. [Tabs](https://www.shoalrun.com/author/components/tabs.md) become labeled sections in Markdown. [OpenAPI examples and schemas](https://www.shoalrun.com/author/components/api-embeds.md) are expanded during the build, so their values and field details appear as readable text in the twin. A [filtered or sticky table](https://www.shoalrun.com/author/components/tables.md) keeps every row as a plain table in Markdown.
55
+
56
+ Write links in page content as `doc:` IDs, site paths, or relative paths such as `[Next](./next)` and `[Overview](../overview)`. Shoalrun resolves relative paths against the current page's published route. For a page at `/guides/setup`, `./next` resolves to `/guides/next`. HTML links use site paths, so local previews stay local; links to known pages in Markdown twins point to their `.md` routes. Set `site.origin` to publish full HTTPS links in Markdown twins and `/llms.txt`, so a fetched Markdown page keeps working outside the site's browser context. Fragment-only links such as `#options` stay local to the page. Explicit external URLs keep their original host.
57
+
58
+ `<Only format="html">` adds content to the HTML page alone; `<Only format="markdown">` adds it to the twin alone. For example, an HTML instruction to choose an interactive tab can be replaced with a Markdown instruction to read the labeled sections. An agent fetching the `.md` URL or negotiating Markdown receives the shared content and the Markdown-only instruction. See the [Only component guide](https://www.shoalrun.com/author/components/only.md) for a live example and the exact Markdown line it produces.
59
+
60
+ The HTML page links to its Markdown twin. The [Markdown metadata guide](https://www.shoalrun.com/author/markdown-metadata.md) explains how to choose the metadata in its YAML header.
61
+
62
+ See [agent-friendly documentation](https://www.shoalrun.com/publish/agent-friendliness.md) for how agents discover and use these outputs, including `/llms.txt` and the API catalog.
63
+
64
+ ## Where files go
65
+
66
+ `shoalrun build <config> <output>` writes the site to the output directory. It builds in a temporary directory, then **deletes the output directory and replaces it**, so point it at a directory that holds only build output. To protect other folders, it replaces a directory only when it is new, empty, or an earlier build. Otherwise the build stops before deleting anything.
67
+
68
+ | Output | Path |
69
+ | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
70
+ | HTML page | `<route>/index.html` |
71
+ | Markdown twin | `<route>.md`; a page at `/` gets `/index.md` |
72
+ | Framework and theme assets | `/assets/`: `site.css`, `tokens.css`, `header.css`, scripts, `themes/`, and, when used, `theme.css`, `palette.css`, `project.css`, and `theme-preview.*` |
73
+ | Diagram images | `/assets/diagrams/<engine>-<hash>-light.svg` and `-dark.svg`, named by a hash of the source so identical diagrams share a file |
74
+ | Published OpenAPI source | `/api/<apiId>/<channel>/<version>/<file>`, plus the local files it references |
75
+ | Focused contracts | `/api/operations/<channel>/<version>/<language>/<name>-<hash>.json` |
76
+
77
+ The `/api` and `/.well-known` paths are reserved for these files, so page slugs cannot use them. A [diagram](https://www.shoalrun.com/author/components/diagrams.md) in the Markdown twin keeps its title, summary, a link to the light SVG, and its fenced source.
78
+
79
+ ## Site files
80
+
81
+ - `documents.json` is the document manifest. Its top-level keys are `schemaVersion`, `buildId`, `configDigest`, `dependencies`, `documents`, `operations`, `relationships`, `redirects`, and `apiSources`. Each entry in `documents` describes one page variant. `contentDigest` fingerprints resolved article content for freshness; `digest` is the SHA-256 of the complete generated Markdown bytes. Use `digest` to check a fetched Markdown twin for changes, and pair the stable ID with its publication variant when comparing records. A page with an author-set `verified` date exposes it independently of `updated`. It has the stable ID, type, title, summary, subjectLifecycle, publication variant, and HTML and Markdown URLs. Optional `subjectDeprecation` carries author-declared `deprecatedOn` and `sunsetOn` dates and resolved `replacement` and `migration` targets, each with `id`, `title`, `url`, and `markdownUrl`. A changelog entry can also expose optional `change` with an author-declared `kind`, an `affects` target list, and a `migration` target when supplied. Change targets use the same `id`, `title`, `url`, and `markdownUrl` shape; absence means unclassified. Deprecation guidance appears in HTML, full Markdown, and section Markdown; it describes the subject rather than retirement of the documentation resource. Every record has a boolean `demo`, set from `outputs.llms.fictionalPrefixes`. A true value identifies an author-declared fictional example. False means unmarked; it does not verify that an API is live. The full and compact search indexes carry the same flag. Optional `product`, `area`, and `subarea` categories appear when set. It also lists card targets and queries, snippet and API embed uses, focused contract details, and a content digest. When reader views are configured, the manifest also has top-level `readerFacets` and a resolved `readerFilters` map on each page. An empty map means the page is shared. `dependencies` lists the source files the build read, without local paths. Project files are relative to `docs.config.yaml`, framework files start with `shoalrun:`, and installed packages start with `package:`.
82
+
83
+ - `documents.sync.json` contains the build ID and compact page signatures for comparing saved snapshots. See **Incremental sync** below.
84
+
85
+ - `build-info.json` records the build ID, resolved config digest and, when supplied by the build command, the source commit and release label. It is public build provenance, not a version archive. See [use Git branches for separate docs sites](https://www.shoalrun.com/publish/revisions.md).
86
+
87
+ - `404.html` and `404.md` provide concise recovery links for missing pages. Node serving and Vercel routing preserve HTTP `404`; another static host needs an error-page rule. These files are omitted from the document manifest, sitemap, and search index.
88
+
89
+ - `redirects.json` lists each [redirect](https://www.shoalrun.com/config.md) as `from`, `to`, `markdownFrom`, `markdownTo`, and `status`. `markdownFrom` is the old page's `.md` URL, and it redirects to `markdownTo`. `shoalrun serve` and the Vercel build apply them; other hosts need their own rules.
90
+
91
+ - `resource-headers.json` declares MIME types for page and discovery routes, Markdown alternate links for HTML, and canonical HTML links for Markdown.
92
+
93
+ - `/llms.txt` points agents to pages, contracts, and manifests. Every Markdown twin links back to the compact `/llms.min.txt` index and `/documents.json`; the compact index links to the detailed `/llms.txt` index.
94
+
95
+ - `llms.min.txt` is the compact starting point for agents. Small sites list page variants directly; larger sites link to topic indexes grouped by publication and primary taxonomy area, or page type when no area is declared. Growing topics split automatically. Each index stays within 2,000 `cl100k_base` tokens. Page entries retain stable IDs, titles, summaries, Markdown URLs, and fictional-example labels. Follow index links until you reach a matching page. All published pages remain reachable, including pages outside navigation; the complete catalog and search index remain optional.
96
+
97
+ - `search-index.min.json` adds page headings to titles, summaries, IDs, types, publication variants, and URLs. It omits article text and reader segments. It is generated whenever the full search index is enabled. Both are static files, not query endpoints.
98
+
99
+ - `search-index.json` lists page IDs, HTML and Markdown URLs, titles, summaries, headings, and text for the [search box](https://www.shoalrun.com/author/search.md) and local search command. The default lexical provider needs it; a custom provider can opt in.
100
+
101
+ - `/assets/search-provider.js` is the search provider module, built-in or custom.
102
+
103
+ When `site.origin` is set and indexing is enabled, the build writes `/sitemap.xml` with canonical HTML page URLs, `/llms.txt`, and optional page `lastmod` values. Markdown twins are alternate representations; their HTTP `Link` header names the HTML page as canonical. They are omitted from the sitemap. `/robots.txt` advertises it. Both derive from the same published pages as `documents.json`; `seo.noindex` pages are omitted. Large sitemaps are split into direct child URL sitemaps under a single index. The manifest records `sitemap`, and each document records `indexable` and optional `updated`.
104
+
105
+ The local frontmatter inventory and JSON Schema are build outputs in `.shoalrun/` beside `docs.config.yaml`. They are available to authors and agents in the repository. A site can also publish its current field inventory on an authored page with `<FrontmatterReference />`, as [this documentation site does](https://www.shoalrun.com/author/frontmatter-reference.md).
106
+
107
+ After publishing, run the [deployment checker](https://www.shoalrun.com/publish/deployment-check.md) against the live origin to verify the host serves these formats and discovery files with the expected response headers.
108
+
109
+ ## Manifest records and sections
110
+
111
+ Every document record includes identity, publication, title, summary, page type, HTML/Markdown routes, `demo`, `subjectLifecycle`, `indexable`, `contentDigest`, `digest`, Markdown sizes, `sections`, breadcrumbs, dependency records, and focused-contract fields. The schemas define their exact shapes. `cardTargets` and `snippets` are arrays of document and snippet ID strings, respectively; card queries and API embeds are structured objects. API source `endpoint` can be null when no service endpoint is declared. A missing focused contract is represented by null URL, byte count, and digest.
112
+
113
+ `markdownBytes` counts the complete twin's UTF-8 bytes. `markdownTokens` counts the same content using the named `markdownTokenEncoding`, currently `cl100k_base`; special-token spellings in documentation count as ordinary text. These fields and `digest` are required producer output. Consumers can skip byte verification without treating the fields as optional.
114
+
115
+ Each record has a `sections` array, possibly empty. Each section has `id`, `title`, `depth: 2`, `markdownUrl`, `parentMarkdownUrl`, `parentDigest`, `digest`, and the three size/token fields. `standalone` is present as `true` only for an explicit author declaration. Its absence means no such declaration, not that a section has been proved incomplete.
116
+
117
+ Section files preserve the parent preamble, nested reader content, and applicable page reading paths. Generation requires a parent of at least 2,000 tokens and a section no larger than half the parent in both tokens and bytes. An empty array does not imply a page has no headings. Heading-derived IDs can change after renaming, insertion, or reordering; there are no permanent section IDs or automatic section redirects. See [section retrieval and citations](https://www.shoalrun.com/author/markdown-metadata.md) for the exact policy and full-page fallback.
118
+
119
+ Optional `subjectDeprecation` requires a deprecated subject and contains supplied dates or resolved replacement/migration targets. It does not require every deprecated subject to have dates or a replacement. Optional `change` requires a changelog entry, one of `editorial`, `procedure`, `behavior`, or `breaking`, a nonempty unique affected-ID list, and an optional migration target. Published targets include `id`, `title`, `url`, and `markdownUrl`, resolved to other public documents in the same publication. The build checks references and dates; it does not verify authored classification or retirement. See [page metadata](https://www.shoalrun.com/author/frontmatter.md) and [release notes](https://www.shoalrun.com/author/release-notes.md).
120
+
121
+ ## Navigation section indexes
122
+
123
+ When top-level navigation groups use `tab: true`, both global text indexes link to a scoped text index per tab and publication. These indexes live under `/.well-known/shoalrun/navigation/`, with any site base path prepended. Follow their published URLs instead of constructing filenames. Each lists its member pages by title, stable ID, summary, and Markdown URL, and links back to the global index. Global discovery and search still include every published page, including shared and unlisted pages.
124
+
125
+ The manifest adds `navigationTabs`, an array of records with `id`, `label`, `variant`, `url` (the landing page), `markdownUrl` (that page's twin), and `indexUrl` (the scoped index). A member document carries the same record as `navigationTab`; a shared or unlisted page omits it. Both search indexes preserve that membership. The page and its section Markdown identify the tab and link to its index. Breadcrumbs include the tab, using the same resolved navigation as HTML.
126
+
127
+ An index belongs to one publication and contains all of its tab's public pages, regardless of browser reader choices. Changing tabs neither changes page URLs nor removes Markdown content. The generated agent documentation bundle retains the scoped indexes. Existing sites without tabs omit these fields and files. See [configure navigation tabs](https://www.shoalrun.com/author/navigation.md).
128
+
129
+ ## Response identity
130
+
131
+ Markdown responses link to their current manifest array entry with `rel="describedby"` and a JSON Pointer fragment. The Node server uses the exact Markdown digest as a strong ETag. A CDN can substitute its own validator; use the returned ETag for conditional requests and the manifest digest for byte verification. Focused contracts use their full content digest in the filename, so their responses can be cached as immutable for one year. Markdown and mutable JSON metadata require revalidation. The [HTTP reference](https://www.shoalrun.com/publish/content-negotiation.md) explains the response headers and conditional requests.
132
+
133
+ ## Incremental sync
134
+
135
+ `buildId` is a SHA-256 fingerprint of the assembled publication: HTML, Markdown, contracts, assets, and metadata. The compiler hashes route names and bytes in sorted route order before adding the build ID stamps and derived sync snapshot. Identical assembled output produces the same ID. A page edit changes it even when `configDigest` stays the same. Changing an asset or supplied release label also changes it. This identity does not promise byte-identical rendering across platforms.
136
+
137
+ `documents.json`, `build-info.json`, and `documents.sync.json` carry the same build ID. The sync snapshot contains one record per stable ID and publication variant:
138
+
139
+ | Field | Meaning |
140
+ | -------------------- | ---------------------------------------------------------------------- |
141
+ | `id`, `variant` | Page identity, including channel, version, and language. |
142
+ | `url`, `markdownUrl` | Current HTML and Markdown routes. |
143
+ | `digest` | SHA-256 of the exact Markdown bytes. |
144
+ | `contentDigest` | Resolved content fingerprint used for freshness. |
145
+ | `recordDigest` | SHA-256 of the canonical JSON manifest record, including its metadata. |
146
+
147
+ `contentDigest` is an opaque resolved-content change token, not a Markdown byte hash or a semantic-change classification. `recordDigest` hashes the full manifest record, not the smaller sync record. Do not reconstruct it from the sync fields alone. `buildId` is also opaque to consumers: hashing the final output directory does not reproduce the pre-stamp build calculation.
148
+
149
+ The snapshot's top-level `metadataDigest` covers manifest fields outside the document records, excluding build ID and dependency paths. A changed value tells a client to refresh the full manifest if it needs relationships, operations, redirects, or other global metadata. Canonical JSON sorts object keys and preserves array order.
150
+
151
+ A client can synchronize without downloading the full manifest on every build:
152
+
153
+ 1. Save `/documents.sync.json` outside the site's output directory. The next build replaces that directory.
154
+ 2. Poll `/build-info.json`. When its build ID is unchanged, keep the saved snapshot.
155
+ 3. When the ID changes, fetch `/documents.sync.json`. Compare complete records by ID and publication variant, including routes, `recordDigest`, and `digest`; comparing only `contentDigest` misses changes. Refresh affected metadata when `recordDigest` changes, and fetch added or changed Markdown representations. If `metadataDigest` changes, refresh the manifest when your client uses global metadata. Remove deleted records from the local cache.
156
+ 4. Verify fetched Markdown bytes against each record's `digest`. A match establishes agreement with the expected representation, not unique membership in one build: identical bytes can occur in multiple builds. A mismatch indicates disagreement; a deployment race is one possible cause. Discard the incomplete update and retry against a matching snapshot. Save the new baseline only after the required resources and metadata have been updated successfully.
157
+
158
+ The CLI compares two downloaded snapshots:
159
+
160
+ ```sh
161
+ shoalrun docs changes current-sync.json --since previous-sync.json
162
+ ```
163
+
164
+ It returns `fromBuildId`, `buildId`, `buildChanged`, `metadataChanged`, and `added`, `changed`, and `removed` record arrays. A route move is a change; a removed publication variant is a removal. Metadata-only page changes also appear in `changed`, even if the Markdown digest is unchanged. Asset-only changes can change the build ID with empty page arrays.
165
+
166
+ These are static files. The host retains no snapshot history and does not interpret `documents.json?since=...`. Clients retain their own baseline. Without one, use the current snapshot as a full initial inventory. A build ID identifies output; it does not archive earlier page bytes or record a build timestamp.
167
+
168
+ ## Validate an existing build locally
169
+
170
+ From a repository checkout with development dependencies installed and the framework compiled, run:
171
+
172
+ ```sh
173
+ node framework/scripts/check-output-contract.mjs docs/dist
174
+ ```
175
+
176
+ Replace `docs/dist` with an already-built site's directory. The checker loads both schemas locally and makes no network requests. It checks field shapes, unique document identities, manifest/sync correspondence, build/config identity agreement, record and metadata hashes, same-publication change/deprecation targets, section parent linkage, and exact Markdown byte counts, token counts, and digests. It also verifies referenced focused-contract bytes. Unknown fields remain allowed and participate in the applicable record or metadata hash.
177
+
178
+ The report has `status`, `findings`, and document/section counts. A failure exits nonzero. The command never rebuilds, writes output, evaluates model tasks, or checks live hosting. The existing repository built-site check includes this check, so run either path rather than duplicating it for unchanged output. Use the [deployment checker](https://www.shoalrun.com/publish/deployment-check.md) separately for HTTP behavior.
179
+
180
+ Passing checks establish the specified structure and consistency, not authored truth, semantic completeness, or a fresh evaluation grade. The build identity is compared across files, not recomputed from final stamped artifacts. This contract does not add `llms-full.txt`, a public evaluation report, signatures, or an offline release archive.
181
+
182
+ ## API contracts
183
+
184
+ Each endpoint has its own HTML and `.md` URL. Set `source.focused: true` to publish a small OpenAPI JSON contract for each operation. `source.publish: true` also publishes the full versioned source.
185
+
186
+ A focused contract contains one path and method plus the local schemas, named examples, and security schemes it needs. Its internal references remain usable, including recursive schemas. The endpoint Markdown stays readable; the JSON provides exact machine-readable shapes.
187
+
188
+ The document manifest reports each focused contract's URL, byte size, and digest. To check a built site, run:
189
+
190
+ ```sh
191
+ node dist/cli.js api focused-audit <site-directory>
192
+ ```
193
+
194
+ `source.publish: true` publishes a versioned OpenAPI download. Add an HTTPS `discovery.endpoint` and `site.origin` to also produce `/.well-known/api-catalog`. This documentation site declares no API service. The example project uses a reserved `.test` domain.
195
+
196
+ ## Current limits
197
+
198
+ Focused export supports local OpenAPI 3.0.x and 3.1.x files, including multi-file references. JSON Schema IDs and anchors that change the base URI need a separate adapter. Remote sources still need a pinned local snapshot.
199
+
200
+ For config provenance, run `node framework/dist/cli.js config explain site.title docs/docs.config.yaml` from the repository root. The [CLI reference](https://www.shoalrun.com/cli.md) covers this and the other inspection commands.
201
+
202
+ ## Code highlighting
203
+
204
+ Fenced code and OpenAPI examples use build-time highlighting. Shiki with the `site` theme, which follows the palette, is the default; plain code and project-local adapters are also supported. See [code highlighting with Shiki](https://www.shoalrun.com/author/components/code-blocks.md) for configuration, theme selection, supported grammars, and custom adapter requirements.
205
+
206
+ ## Reader appearance and controls
207
+
208
+ Choose a [theme preset](https://www.shoalrun.com/styling/themes.md), [palette](https://www.shoalrun.com/styling/palettes.md), and [color mode](https://www.shoalrun.com/styling/color-modes.md) in the `theme` config. For anything else, add a project stylesheet with `site.customCss`; the [CSS reference](https://www.shoalrun.com/author/css.md) lists the tokens and selectors it can override. You don't need to edit the framework's own stylesheets.
209
+
210
+ The layout uses three columns for endpoint pages on wide screens. At narrower widths the examples follow the article; on small screens navigation becomes a disclosure above the page. Use Enter or Space to open it. Navigation filtering matches labels, ancestors, methods, and paths; Escape clears the filter. The active page remains marked in navigation.
211
+
212
+ Code blocks scroll horizontally without widening the page. Keyboard users can focus them to scroll, and copy buttons provide success or failure feedback. Copying uses the code text, so syntax-color spans never enter the clipboard. Clipboard access requires browser support and a secure context such as HTTPS or localhost. Without it, readers can select and copy manually. Without JavaScript, code highlighting and native disclosures remain available and mobile navigation starts expanded.
213
+
214
+ The overview, authoring guide, and endpoint fixture were checked in headless Chrome at desktop and 320 CSS-pixel widths, including navigation keyboard controls and filtering. Clipboard-handler checks verified the exact text passed to the browser API; normal-browser clipboard copying was verified on September 25, 2026. Manual 400% browser zoom was verified on September 26, 2026. The maintainer confirmed completion of manual screen-reader verification on September 30, 2026. See [project status](https://www.shoalrun.com/status.md) for validation evidence and remaining release checks.
215
+
216
+ ## Related reading
217
+
218
+ ### Next steps
219
+
220
+ - [Agent-friendly documentation](https://www.shoalrun.com/publish/agent-friendliness.md) — See how these files help agents discover and read the site.
@@ -0,0 +1,48 @@
1
+ ---
2
+ id: guide.output
3
+ title: Publishing and agent representations
4
+ summary: Read the published-output contract for HTML, Markdown, manifests, and
5
+ incremental sync.
6
+ type: reference
7
+ area: publishing
8
+ subarea: publishing-builds
9
+ canonical: /publish/output
10
+ ---
11
+
12
+ # Publishing and agent representations
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) > Publish > Generated outputs
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/publish/output.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Next steps**
27
+
28
+ - [Agent-friendly documentation](https://www.shoalrun.com/publish/agent-friendliness.md) — See how these files help agents discover and read the site.
29
+
30
+ `shoalrun build` turns accepted source pages and local OpenAPI files into a static site. A **publication** is one enabled channel, version, and language combination, such as production, v1, and English. The build includes a public page only in publications matching its frontmatter. It makes no model calls or remote requests.
31
+
32
+ For each included page, the build writes an HTML page for browsing. It also writes a **Markdown twin**, a generated `.md` copy that agents can read as text. The Markdown twin can start with a short YAML header. That header contains only the page metadata selected in project config, so agents get useful context without a long source header or internal notes. Shared content appears in both bodies; authors can also add content to either format alone with [Only](https://www.shoalrun.com/author/components/only.md).
33
+
34
+ The site also includes a **document manifest**, `documents.json`, which indexes the built pages and their URLs. Projects with an API source can publish operation pages and **focused contracts**, small OpenAPI files containing one operation and the definitions it needs.
35
+
36
+ ## API contracts
37
+
38
+ Each endpoint has its own HTML and `.md` URL. Set `source.focused: true` to publish a small OpenAPI JSON contract for each operation. `source.publish: true` also publishes the full versioned source.
39
+
40
+ A focused contract contains one path and method plus the local schemas, named examples, and security schemes it needs. Its internal references remain usable, including recursive schemas. The endpoint Markdown stays readable; the JSON provides exact machine-readable shapes.
41
+
42
+ The document manifest reports each focused contract's URL, byte size, and digest. To check a built site, run:
43
+
44
+ ```sh
45
+ node dist/cli.js api focused-audit <site-directory>
46
+ ```
47
+
48
+ `source.publish: true` publishes a versioned OpenAPI download. Add an HTTPS `discovery.endpoint` and `site.origin` to also produce `/.well-known/api-catalog`. This documentation site declares no API service. The example project uses a reserved `.test` domain.
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: guide.output
3
+ title: Publishing and agent representations
4
+ summary: Read the published-output contract for HTML, Markdown, manifests, and
5
+ incremental sync.
6
+ type: reference
7
+ area: publishing
8
+ subarea: publishing-builds
9
+ canonical: /publish/output
10
+ ---
11
+
12
+ # Publishing and agent representations
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) > Publish > Generated outputs
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/publish/output.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Next steps**
27
+
28
+ - [Agent-friendly documentation](https://www.shoalrun.com/publish/agent-friendliness.md) — See how these files help agents discover and read the site.
29
+
30
+ `shoalrun build` turns accepted source pages and local OpenAPI files into a static site. A **publication** is one enabled channel, version, and language combination, such as production, v1, and English. The build includes a public page only in publications matching its frontmatter. It makes no model calls or remote requests.
31
+
32
+ For each included page, the build writes an HTML page for browsing. It also writes a **Markdown twin**, a generated `.md` copy that agents can read as text. The Markdown twin can start with a short YAML header. That header contains only the page metadata selected in project config, so agents get useful context without a long source header or internal notes. Shared content appears in both bodies; authors can also add content to either format alone with [Only](https://www.shoalrun.com/author/components/only.md).
33
+
34
+ The site also includes a **document manifest**, `documents.json`, which indexes the built pages and their URLs. Projects with an API source can publish operation pages and **focused contracts**, small OpenAPI files containing one operation and the definitions it needs.
35
+
36
+ ## Code highlighting
37
+
38
+ Fenced code and OpenAPI examples use build-time highlighting. Shiki with the `site` theme, which follows the palette, is the default; plain code and project-local adapters are also supported. See [code highlighting with Shiki](https://www.shoalrun.com/author/components/code-blocks.md) for configuration, theme selection, supported grammars, and custom adapter requirements.
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: guide.output
3
+ title: Publishing and agent representations
4
+ summary: Read the published-output contract for HTML, Markdown, manifests, and
5
+ incremental sync.
6
+ type: reference
7
+ area: publishing
8
+ subarea: publishing-builds
9
+ canonical: /publish/output
10
+ ---
11
+
12
+ # Publishing and agent representations
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) > Publish > Generated outputs
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/publish/output.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Next steps**
27
+
28
+ - [Agent-friendly documentation](https://www.shoalrun.com/publish/agent-friendliness.md) — See how these files help agents discover and read the site.
29
+
30
+ `shoalrun build` turns accepted source pages and local OpenAPI files into a static site. A **publication** is one enabled channel, version, and language combination, such as production, v1, and English. The build includes a public page only in publications matching its frontmatter. It makes no model calls or remote requests.
31
+
32
+ For each included page, the build writes an HTML page for browsing. It also writes a **Markdown twin**, a generated `.md` copy that agents can read as text. The Markdown twin can start with a short YAML header. That header contains only the page metadata selected in project config, so agents get useful context without a long source header or internal notes. Shared content appears in both bodies; authors can also add content to either format alone with [Only](https://www.shoalrun.com/author/components/only.md).
33
+
34
+ The site also includes a **document manifest**, `documents.json`, which indexes the built pages and their URLs. Projects with an API source can publish operation pages and **focused contracts**, small OpenAPI files containing one operation and the definitions it needs.
35
+
36
+ ## Current limits
37
+
38
+ Focused export supports local OpenAPI 3.0.x and 3.1.x files, including multi-file references. JSON Schema IDs and anchors that change the base URI need a separate adapter. Remote sources still need a pinned local snapshot.
39
+
40
+ For config provenance, run `node framework/dist/cli.js config explain site.title docs/docs.config.yaml` from the repository root. The [CLI reference](https://www.shoalrun.com/cli.md) covers this and the other inspection commands.