@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,88 @@
1
+ ---
2
+ id: guide.custom-components.react
3
+ title: Data-driven React components
4
+ summary: Follow local data through a component plugin, shared documentation, and
5
+ a React calculator.
6
+ type: explanation
7
+ area: components
8
+ subarea: components-custom
9
+ canonical: /author/components/custom/react
10
+ ---
11
+
12
+ # Data-driven React components
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) > Write documentation > Components > Custom components > Data-driven React components
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/author/components/custom/react.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Read first**
27
+
28
+ - [Custom components](https://www.shoalrun.com/author/components/custom.md) — Start with a small component whose content stays in MDX.
29
+
30
+ Use a declared data file when a component needs to generate tables, calculations, or other structured documentation. This advanced example adds data and generated explanations to the [small CopyText example](https://www.shoalrun.com/author/components/custom.md). A data file is optional; ordinary component text can stay in MDX.
31
+
32
+ ## Interactive React example
33
+
34
+ A retry policy is a useful documentation component: readers need to understand the safety rules and calculate how repeated attempts affect total wait time. The packaged `examples/components/retry-budget/` folder contains a working plugin, policy data, React source, shared model module, and stylesheet. Copy the whole folder to `components/retry-budget/`, then install its dependencies from your project directory:
35
+
36
+ ```sh
37
+ npm ci --prefix components/retry-budget
38
+ ```
39
+
40
+ Use the registration above to enable the component.
41
+
42
+ The plugin validates the JSON policy and generates a settings table, formulas, a worked schedule, a warning, a code example, and a specification link. React receives that validated policy as instance data and adds controls for exploring other policies. Both representations start from the same configured values.
43
+
44
+ ```mdx
45
+ <RetryBudget title="Request retry policy" />
46
+ ```
47
+
48
+ **Request retry policy**
49
+
50
+ > **Before you retry:** Retry only idempotent operations, or requests protected by an idempotency key. Honor a server's Retry-After header; it can require a longer wait than this policy.
51
+
52
+ Configured policy. Attempts include the first request; only subsequent attempts wait. These are fictional example settings, not a Shoalrun service limit.
53
+
54
+ | Setting | Value |
55
+ | ----------------------- | ------------------ |
56
+ | Maximum attempts | 4 |
57
+ | Base delay (ms) | 500 |
58
+ | Delay cap (ms) | 30000 |
59
+ | Backoff | exponential |
60
+ | Jitter | none |
61
+ | Retryable HTTP statuses | 429, 502, 503, 504 |
62
+
63
+ Supported controls: 1–8 attempts, base delay from 1 to 60000 ms, and a delay cap from the base delay to 60000 ms. Backoff is constant or exponential. Jitter is none or full.
64
+
65
+ For retry number r starting at 1: constant delay = min(cap, base); exponential delay = min(cap, base × 2^(r − 1)). No jitter waits that delay. Full jitter samples uniformly from zero to that delay; its expected wait is half the delay. The calculator shows bounds, not a random prediction.
66
+
67
+ The configured schedule follows. Cumulative wait excludes request duration and any longer Retry-After wait.
68
+
69
+ | Attempt | Wait before attempt | Cumulative wait |
70
+ | ------- | ------------------- | --------------- |
71
+ | 1 | 0 ms | 0 ms |
72
+ | 2 | 500 ms | 500 ms |
73
+ | 3 | 1000 ms | 1500 ms |
74
+ | 4 | 2000 ms | 3500 ms |
75
+
76
+ This JavaScript calculates the delay bounds; your request handler must separately enforce retryable statuses, idempotency, and Retry-After.
77
+
78
+ ```js
79
+ function retryDelayBounds(retry, policy) {
80
+ const ceiling = Math.min(policy.maxDelayMs, policy.baseDelayMs *
81
+ (policy.backoff === 'constant' ? 1 : 2 ** (retry - 1)));
82
+ return policy.jitter === 'full' ? [0, ceiling] : [ceiling, ceiling];
83
+ }
84
+ ```
85
+
86
+ [Read the Retry-After HTTP specification](https://www.rfc-editor.org/rfc/rfc9110.html#name-retry-after)
87
+
88
+ `title` is an optional nonempty literal string, defaulting to `Retry budget`. The component accepts no children and imports its local `policy.json` file. The policy fields and control limits appear in the fixture above. The browser controls let readers explore alternatives; they do not change the documented policy or its Markdown.
@@ -0,0 +1,41 @@
1
+ ---
2
+ id: guide.custom-components.react
3
+ title: Data-driven React components
4
+ summary: Follow local data through a component plugin, shared documentation, and
5
+ a React calculator.
6
+ type: explanation
7
+ area: components
8
+ subarea: components-custom
9
+ canonical: /author/components/custom/react
10
+ ---
11
+
12
+ # Data-driven React components
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) > Write documentation > Components > Custom components > Data-driven React components
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/author/components/custom/react.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Read first**
27
+
28
+ - [Custom components](https://www.shoalrun.com/author/components/custom.md) — Start with a small component whose content stays in MDX.
29
+
30
+ Use a declared data file when a component needs to generate tables, calculations, or other structured documentation. This advanced example adds data and generated explanations to the [small CopyText example](https://www.shoalrun.com/author/components/custom.md). A data file is optional; ordinary component text can stay in MDX.
31
+
32
+ ## Registration
33
+
34
+ Add registrations to your project configuration:
35
+
36
+ ```yaml
37
+ components:
38
+ - ./components/retry-budget/components.json
39
+ ```
40
+
41
+ The manifest declares the build module, browser source, and styles relative to the package. Shoalrun compiles the module graph and includes imported JSON and shared functions in dependency tracking. The build module imports `policy.json`; there is no separate `files` registration.
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: guide.custom-components.react
3
+ title: Data-driven React components
4
+ summary: Follow local data through a component plugin, shared documentation, and
5
+ a React calculator.
6
+ type: explanation
7
+ area: components
8
+ subarea: components-custom
9
+ canonical: /author/components/custom/react
10
+ ---
11
+
12
+ # Data-driven React components
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) > Write documentation > Components > Custom components > Data-driven React components
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/author/components/custom/react.md)
23
+
24
+ Use a declared data file when a component needs to generate tables, calculations, or other structured documentation. This advanced example adds data and generated explanations to the [small CopyText example](https://www.shoalrun.com/author/components/custom.md). A data file is optional; ordinary component text can stay in MDX.
25
+
26
+ ## Related reading
27
+
28
+ ### Read first
29
+
30
+ - [Custom components](https://www.shoalrun.com/author/components/custom.md) — Start with a small component whose content stays in MDX.
@@ -0,0 +1,47 @@
1
+ ---
2
+ id: guide.custom-components.react
3
+ title: Data-driven React components
4
+ summary: Follow local data through a component plugin, shared documentation, and
5
+ a React calculator.
6
+ type: explanation
7
+ area: components
8
+ subarea: components-custom
9
+ canonical: /author/components/custom/react
10
+ ---
11
+
12
+ # Data-driven React components
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) > Write documentation > Components > Custom components > Data-driven React components
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/author/components/custom/react.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Read first**
27
+
28
+ - [Custom components](https://www.shoalrun.com/author/components/custom.md) — Start with a small component whose content stays in MDX.
29
+
30
+ Use a declared data file when a component needs to generate tables, calculations, or other structured documentation. This advanced example adds data and generated explanations to the [small CopyText example](https://www.shoalrun.com/author/components/custom.md). A data file is optional; ordinary component text can stay in MDX.
31
+
32
+ ## Share the model with the browser
33
+
34
+ The build module imports `policy.json` and `validatePolicy` and `retrySchedule` from `model.js`. Its `content()` function returns documentation built with content helpers and `data: policy`. Shoalrun serializes that validated instance data for the browser.
35
+
36
+ The browser module receives it directly:
37
+
38
+ ```js
39
+ export function enhance({ root, controls, content, data: policy }) {
40
+ // Mount the optional React calculator using policy.
41
+ // Preserve the shared documentation in content.
42
+ }
43
+ ```
44
+
45
+ The browser imports the same `retrySchedule` function as the build module. It does not parse table rows, depend on English labels, or maintain a separate calculation implementation. Renaming a documented label does not change the calculator's model.
46
+
47
+ React and React DOM are dependencies of this component package. Shoalrun compiles its JSX and imports when building the site; component consumers do not run a separate bundler. The interface still enhances shared documentation and does not render arbitrary MDX imports.
@@ -0,0 +1,100 @@
1
+ ---
2
+ id: guide.custom-components.react
3
+ title: Data-driven React components
4
+ summary: Follow local data through a component plugin, shared documentation, and
5
+ a React calculator.
6
+ type: explanation
7
+ area: components
8
+ subarea: components-custom
9
+ canonical: /author/components/custom/react
10
+ ---
11
+
12
+ # Data-driven React components
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) > Write documentation > Components > Custom components > Data-driven React components
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/author/components/custom/react.md)
23
+
24
+ **Page reading path** — these links apply to the full page.
25
+
26
+ **Read first**
27
+
28
+ - [Custom components](https://www.shoalrun.com/author/components/custom.md) — Start with a small component whose content stays in MDX.
29
+
30
+ Use a declared data file when a component needs to generate tables, calculations, or other structured documentation. This advanced example adds data and generated explanations to the [small CopyText example](https://www.shoalrun.com/author/components/custom.md). A data file is optional; ordinary component text can stay in MDX.
31
+
32
+ ## Where the content lives
33
+
34
+ A custom component is a small program that writes part of a documentation page. Its build function produces shared content, which Shoalrun renders as HTML and Markdown. An optional React interface adds browser controls afterward. Shoalrun does not convert React into Markdown.
35
+
36
+ The retry example splits its work across these files:
37
+
38
+ | File | What you write there | What readers get |
39
+ | ---------------------- | --------------------------------------------------------------------------- | --------------------------------------------------- |
40
+ | The page's `.mdx` file | Task-specific explanations and the `<RetryBudget />` invocation. | The surrounding documentation in HTML and Markdown. |
41
+ | `policy.json` | Retry counts, delays, supported status codes, and the safety warning. | The configured values and warning in both formats. |
42
+ | `plugin.mjs` | Validation, reusable explanatory text, formulas, tables, and code examples. | The component's shared HTML and Markdown content. |
43
+ | `browser.jsx` | React controls, state, input validation, and the interactive timeline. | A browser interface for trying alternative values. |
44
+ | `style.css` | Optional styles for the browser interface. | The files the HTML page loads for that interface. |
45
+
46
+ `policy.json` is this example's data format, not a Shoalrun requirement. A simpler component can use only MDX attributes and child content. Keep page-specific prose in the page; put recurring explanations and generated content in the plugin.
47
+
48
+ ### Start with data
49
+
50
+ For example, `policy.json` contains a complete configured policy:
51
+
52
+ ```json
53
+ {
54
+ "attempts": 4,
55
+ "baseDelayMs": 500,
56
+ "maxDelayMs": 30000,
57
+ "backoff": "exponential",
58
+ "jitter": "none",
59
+ "retryableStatuses": [429, 502, 503, 504],
60
+ "warning": "Retry only idempotent operations, or requests protected by an idempotency key. Honor a server's Retry-After header; it can require a longer wait than this policy."
61
+ }
62
+ ```
63
+
64
+ The plugin's `content()` function imports that data, validates it, and returns shared content nodes. This shortened excerpt shows how a value becomes a paragraph; the complete plugin also generates the tables, warning, formula, schedule, code, and link:
65
+
66
+ ```js
67
+ const policy = validatePolicy(importedPolicy);
68
+ return {
69
+ content: c.paragraph(`Allow at most ${policy.attempts} attempts, including the first request.`),
70
+ data: policy
71
+ };
72
+ ```
73
+
74
+ That paragraph becomes `<p>Allow at most 4 attempts, including the first request.</p>` in HTML and the same sentence in Markdown. There is no separate Markdown renderer to write for these shared nodes.
75
+
76
+ ### Use the component in a page
77
+
78
+ The page author supplies the surrounding context and invokes the registered component:
79
+
80
+ ```mdx
81
+ ## Retrying a request
82
+
83
+ Check whether the operation is safe to repeat before enabling retries.
84
+ The policy below shows the configured wait budget.
85
+
86
+ <RetryBudget title="Request retry policy" />
87
+ ```
88
+
89
+ With the example policy, the generated Markdown includes this worked schedule:
90
+
91
+ ```md
92
+ | Attempt | Wait before attempt | Cumulative wait |
93
+ | --- | --- | --- |
94
+ | 1 | 0 ms | 0 ms |
95
+ | 2 | 500 ms | 500 ms |
96
+ | 3 | 1000 ms | 1500 ms |
97
+ | 4 | 2000 ms | 3500 ms |
98
+ ```
99
+
100
+ HTML displays the same documented schedule. React receives the same validated policy directly and adds the calculator shown below. Changing a browser control changes that reader's calculation; it does not edit `policy.json`, the documented schedule, or Markdown. To change the documented policy, edit the data file and rebuild.
@@ -0,0 +1,183 @@
1
+ ---
2
+ id: guide.custom-components
3
+ title: Custom components
4
+ summary: Register trusted component plugins with shared HTML and Markdown content.
5
+ type: reference
6
+ area: components
7
+ subarea: components-custom
8
+ canonical: /author/components/custom
9
+ ---
10
+
11
+ # Custom components
12
+
13
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
14
+
15
+ Navigation section: [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)
16
+
17
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Components > Custom components > Overview
18
+
19
+ **Updated: 2026-10-26.**
20
+
21
+ A component package adds a custom component, such as `<CopyText>`, that authors can use in their pages. Its `content()` function produces the content shown in both HTML and Markdown. An optional browser module adds interactive behavior.
22
+
23
+ ## Use a component
24
+
25
+ Install the component package and add its exported manifest to your configuration. For a local component, register its manifest path:
26
+
27
+ ```yaml
28
+ components:
29
+ - ./components/copy-text/components.json
30
+ ```
31
+
32
+ An installed package can export its manifest as its entry point, or as a subpath such as `@acme/docs-components/shoalrun`. Replace that illustrative name with your installed package's export. Paths resolve relative to the configuration file that declares them, including includes and presets.
33
+
34
+ The page supplies the content:
35
+
36
+ ```mdx
37
+ <CopyText>
38
+ Contact support@example.com for help.
39
+ </CopyText>
40
+ ```
41
+
42
+ Contact <support@example.com> for help.
43
+
44
+ `CopyText` requires child content and accepts no attributes. Its copy button is optional browser behavior. Markdown retains the authored text:
45
+
46
+ ```md
47
+ Contact <support@example.com> for help.
48
+ ```
49
+
50
+ ## Develop a component
51
+
52
+ The package's manifest declares its names and implementation files. Consumers register this manifest once; they do not configure its internal browser files:
53
+
54
+ ```json
55
+ {
56
+ "apiVersion": 1,
57
+ "components": {
58
+ "CopyText": {
59
+ "module": "./plugin.mjs",
60
+ "browser": "./browser.jsx"
61
+ }
62
+ }
63
+ }
64
+ ```
65
+
66
+ Each component needs `module`. `browser` and a `styles` list are optional. These paths are relative to the manifest. Names start with an uppercase letter, contain only letters and digits, and must be unique across registrations. They cannot replace built-ins.
67
+
68
+ The complete build module for the small example passes the page's children through unchanged:
69
+
70
+ ```js
71
+ import { defineComponent } from '@shoalrun/cli/components';
72
+ export default defineComponent({
73
+ children: 'required',
74
+ content({ children }) { return children; }
75
+ });
76
+ ```
77
+
78
+ A component that generates documentation uses the supported `content` helpers:
79
+
80
+ ```js
81
+ import { defineComponent, content as c } from '@shoalrun/cli/components';
82
+
83
+ export default defineComponent({
84
+ attributes: { label: { type: 'string', required: true } },
85
+ children: 'required',
86
+ content({ attributes, children }) {
87
+ return [c.paragraph(c.strong(attributes.label)), children];
88
+ }
89
+ });
90
+ ```
91
+
92
+ Helpers include `paragraph`, `strong`, `emphasis`, `inlineCode`, `code`, `heading`, `link`, `list`, `table`, `group`, and `component`. They create shared content without requiring compiler-node objects. `component` composes an existing Shoalrun component using its documented attributes. Raw HTML and representation filters are unsupported.
93
+
94
+ `content()` is required. A missing function or empty result fails with a diagnostic; there is no separate HTML-only renderer. It receives validated attributes and the authored children. It runs once per invocation before either output is rendered.
95
+
96
+ ## Attributes and children
97
+
98
+ Attribute schemas define the values page authors may supply:
99
+
100
+ | Setting | Meaning |
101
+ | ----------------------- | ------------------------------------------------------------- |
102
+ | `type` | `string`, `boolean`, or `number`. |
103
+ | `required` | Whether the attribute must be present when it has no default. |
104
+ | `default` | A value matching the declared type and constraints. |
105
+ | `values` | Allowed string values. |
106
+ | `min`, `max`, `integer` | Optional numeric constraints. |
107
+
108
+ Booleans accept a bare attribute or quoted `"true"` and `"false"`. Numbers use quoted literals such as `attempts="4"`. Dynamic expressions are unsupported. Unknown or duplicate attributes fail. The TypeScript API infers attribute types from the schema.
109
+
110
+ `children` is `none` by default, or `optional` or `required`. Return the supplied children to preserve page-authored content. Use `content.component` to compose built-ins with more specific child rules.
111
+
112
+ ## Browser data and behavior
113
+
114
+ For an interactive component, resolve its model in `content()` and return both shared documentation and browser data:
115
+
116
+ ```js
117
+ content({ attributes }) {
118
+ const policy = makePolicy(attributes);
119
+ return {
120
+ content: describePolicy(policy),
121
+ data: policy
122
+ };
123
+ }
124
+ ```
125
+
126
+ `makePolicy` and `describePolicy` represent your component's model and content functions. `data` must contain only JSON values. Shoalrun snapshots it per invocation and gives that same data to the browser. Do not recover data by parsing tables or matching display labels. Import shared validation and calculation functions into both implementations when they need the same behavior.
127
+
128
+ The browser module exports an enhancement function:
129
+
130
+ ```js
131
+ export async function enhance({ root, controls, content, data }) {
132
+ // Mount optional controls into the empty controls element.
133
+ // Read the instance model from data, not from presentation markup.
134
+ // Keep the shared documentation in content intact.
135
+ // Reveal controls after mounting; return when the interface is ready.
136
+ }
137
+ ```
138
+
139
+ `root` contains this component instance; `content` contains its rendered documentation. React can mount into `controls`. Browser behavior enhances the shared documentation; this is not an arbitrary React renderer or an MDX import mechanism. If enhancement fails or JavaScript is disabled, shared content remains readable.
140
+
141
+ The [data-driven React fixture](https://www.shoalrun.com/author/components/custom/react.md) exercises the explicit model handoff and shared calculation module.
142
+
143
+ ## Dependencies and assets
144
+
145
+ Write ordinary JavaScript or TypeScript imports in the build module and JavaScript, TypeScript, or JSX in the browser module. Shoalrun compiles them and tracks their imported source, JSON, and package metadata. Component packages declare their own dependencies, including React when used. There is no separate browser-bundle step for consumers.
146
+
147
+ Imported local JSON supplies build data. Module imports must be statically resolvable; remote plugins and build-time fetching are outside the supported contract. Styles must be self-contained CSS files listed in the manifest. Existing content components such as `Image` retain their own asset rules; local image paths are relative to the authored page.
148
+
149
+ Browser output uses deduplicated content-based asset URLs. Imported modules, data, manifests, and styles participate in rebuilds and isolated validation. Changes to imports invalidate earlier validation evidence. A failed build preserves the last successful output.
150
+
151
+ Configured modules execute trusted code with build-process permissions. Browser modules run with the site's page permissions. Neither is sandboxed. Isolated validation compiles the captured dependency graph and executes the build module inside that captured project.
152
+
153
+ ## HTML, Markdown, and agents
154
+
155
+ Shoalrun renders the same shared documentation into both formats. Authors remain responsible for whether it adequately explains the component. A calculator typically needs its inputs, formula, limits, a default worked example, and qualifications; it does not need every possible numeric state enumerated.
156
+
157
+ Page content, links, warnings, and code must remain available without browser interaction. Shared content participates in normal search, links, section extraction, digests, and artifact generation. Check the component's own behavior and meaning in both outputs, including keyboard use and no-JavaScript fallback.
158
+
159
+ ## Use the component-authoring skill
160
+
161
+ `shoalrun-component-author` guides an agent to implement the component's content, optional browser behavior, package manifest, and focused fixtures. The agent uses its own model and normal editing tools. Framework registration and dependency conformance are tested by Shoalrun; the component's tests should focus on its own content and behavior.
162
+
163
+ From the consumer project, validate a fixture and inspect the returned report:
164
+
165
+ ```sh
166
+ shoalrun docs validate --config docs.config.yaml --file content/component-example.mdx
167
+ shoalrun docs review <report> --format markdown
168
+ shoalrun docs preview <report> --port 0
169
+ ```
170
+
171
+ The skill does not publish the result or infer a static explanation from arbitrary React. See [Use the bundled agent skills](https://www.shoalrun.com/contribute/agent-skills.md) for installation and invocation.
172
+
173
+ ## Related reading
174
+
175
+ ### Next steps
176
+
177
+ - [Check working-tree documentation edits](https://www.shoalrun.com/author/workspace.md) — Validate component fixtures and review matching HTML and Markdown snapshots. (Status: experimental.)
178
+
179
+ - [Data-driven React components](https://www.shoalrun.com/author/components/custom/react.md) — Add local data and generated documentation to a React interface.
180
+
181
+ ### Reference while working
182
+
183
+ - [Publishing and agent representations](https://www.shoalrun.com/publish/output.md) — Check the published content and artifacts available to readers and agents.
@@ -0,0 +1,54 @@
1
+ ---
2
+ id: guide.component.definition-list
3
+ title: Definition lists
4
+ summary: Pair terms with full explanations in semantic HTML and readable Markdown.
5
+ type: reference
6
+ area: components
7
+ subarea: components-prose
8
+ canonical: /author/components/definition-list
9
+ ---
10
+
11
+ # Definition lists
12
+
13
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
14
+
15
+ Navigation section: [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)
16
+
17
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Components > Definition lists
18
+
19
+ **Updated: 2026-10-26.**
20
+
21
+ Use `<DefinitionList>` for a compact glossary or configuration reference. Put alternating `<Term>` and `<Definition>` children inside it. Add `filter` when readers need to search a long list by term or definition text.
22
+
23
+ ## Syntax
24
+
25
+ ```mdx
26
+ <DefinitionList filter>
27
+ <Term>Publication</Term>
28
+ <Definition>A channel, version, and language combination.</Definition>
29
+ <Term>Slug</Term>
30
+ <Definition>The page's public path. See [Page metadata](doc:guide.frontmatter).</Definition>
31
+ </DefinitionList>
32
+ ```
33
+
34
+ - **Publication**
35
+
36
+ A channel, version, and language combination.
37
+
38
+ - **Slug**
39
+
40
+ The page's public path. See [Page metadata](https://www.shoalrun.com/author/frontmatter.md).
41
+
42
+ `filter` is an optional bare attribute on `<DefinitionList>`. The other tags have no attributes. Terms and definitions must have content; definitions can contain links and rich text. See the [site glossary](https://www.shoalrun.com/glossary.md) for a longer filtered list.
43
+
44
+ ## HTML, Markdown, and agents
45
+
46
+ HTML uses `<dl>`, `<dt>`, and `<dd>`, with aligned columns on wide screens and stacked pairs on narrow screens. With `filter`, JavaScript adds a labeled search input and a live count above the list. It searches both terms and definitions, hides or shows each pair together, and Escape clears the query. Without JavaScript, every pair remains visible and the filter control stays hidden.
47
+
48
+ Markdown keeps each term immediately before its full definition in a list, so an agent can read every pair in order. The interactive filter does not appear in Markdown.
49
+
50
+ ## Related reading
51
+
52
+ ### Related topics
53
+
54
+ - [Glossary](https://www.shoalrun.com/glossary.md) — See a long, filterable definition list in use.