@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.
- package/AUTHORING.md +269 -0
- package/CHANGELOG.md +82 -0
- package/LICENSE +202 -0
- package/README.md +189 -2
- package/agent-docs/.well-known/shoalrun/navigation/changelog-tab-50f26fe22670.txt +33 -0
- package/agent-docs/.well-known/shoalrun/navigation/docs-50f26fe22670.txt +24 -0
- package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +9 -0
- package/agent-docs/SNAPSHOT.json +9 -0
- package/agent-docs/about.md +49 -0
- package/agent-docs/api-docs/focused-contracts.md +68 -0
- package/agent-docs/api-docs/generate.md +189 -0
- package/agent-docs/api-docs/generate.sections/add-useful-examples.md +47 -0
- package/agent-docs/api-docs/generate.sections/choose-generated-references-or-mdx.md +50 -0
- package/agent-docs/api-docs/generate.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +52 -0
- package/agent-docs/api-docs/generate.sections/generate-many-pages-selectively.md +71 -0
- package/agent-docs/api-docs/generate.sections/link-guides-to-api-references.md +48 -0
- package/agent-docs/api-docs/generate.sections/map-extension-values-to-shoalrun-status.md +52 -0
- package/agent-docs/api-docs/generate.sections/override-generated-reference-order-in-navigation.md +60 -0
- package/agent-docs/api-docs/generate.sections/related-reading.md +38 -0
- package/agent-docs/api-docs/generate.sections/use-a-template-for-editorial-context.md +45 -0
- package/agent-docs/api-docs/support.md +97 -0
- package/agent-docs/author/add-page.md +124 -0
- package/agent-docs/author/agent-overview.md +59 -0
- package/agent-docs/author/agent-workflow.md +65 -0
- package/agent-docs/author/agents.md +53 -0
- package/agent-docs/author/analytics.md +286 -0
- package/agent-docs/author/analytics.sections/adapter-exports-and-consent.md +51 -0
- package/agent-docs/author/analytics.sections/built-in-events.md +52 -0
- package/agent-docs/author/analytics.sections/configure-an-adapter.md +51 -0
- package/agent-docs/author/analytics.sections/custom-interactions.md +57 -0
- package/agent-docs/author/analytics.sections/event-format.md +59 -0
- package/agent-docs/author/analytics.sections/html-markdown-and-agents.md +42 -0
- package/agent-docs/author/analytics.sections/inspect-events-locally.md +36 -0
- package/agent-docs/author/analytics.sections/map-events-to-your-service.md +42 -0
- package/agent-docs/author/analytics.sections/posthog-example.md +126 -0
- package/agent-docs/author/analytics.sections/related-reading.md +42 -0
- package/agent-docs/author/authoring-agent.md +102 -0
- package/agent-docs/author/coding-agent.md +90 -0
- package/agent-docs/author/components/action-link.md +41 -0
- package/agent-docs/author/components/api-embeds.md +263 -0
- package/agent-docs/author/components/api-embeds.sections/apiexample.md +117 -0
- package/agent-docs/author/components/api-embeds.sections/html-markdown-and-agents.md +37 -0
- package/agent-docs/author/components/api-embeds.sections/related-reading.md +37 -0
- package/agent-docs/author/components/badge.md +76 -0
- package/agent-docs/author/components/breadcrumbs.md +57 -0
- package/agent-docs/author/components/callout.md +131 -0
- package/agent-docs/author/components/cards.md +168 -0
- package/agent-docs/author/components/cards.sections/add-a-lucide-icon.md +50 -0
- package/agent-docs/author/components/cards.sections/build-a-collection.md +69 -0
- package/agent-docs/author/components/cards.sections/curate-a-reading-list.md +66 -0
- package/agent-docs/author/components/cards.sections/html-markdown-and-agents.md +37 -0
- package/agent-docs/author/components/cards.sections/link-to-one-document.md +45 -0
- package/agent-docs/author/components/cards.sections/override-card-text.md +58 -0
- package/agent-docs/author/components/cards.sections/related-reading.md +43 -0
- package/agent-docs/author/components/code-blocks.md +117 -0
- package/agent-docs/author/components/collapsible.md +99 -0
- package/agent-docs/author/components/cookbook-chooser.md +86 -0
- package/agent-docs/author/components/custom/react.md +190 -0
- package/agent-docs/author/components/custom/react.sections/html-markdown-and-agents.md +36 -0
- package/agent-docs/author/components/custom/react.sections/interactive-react-example.md +88 -0
- package/agent-docs/author/components/custom/react.sections/registration.md +41 -0
- package/agent-docs/author/components/custom/react.sections/related-reading.md +30 -0
- package/agent-docs/author/components/custom/react.sections/share-the-model-with-the-browser.md +47 -0
- package/agent-docs/author/components/custom/react.sections/where-the-content-lives.md +100 -0
- package/agent-docs/author/components/custom.md +183 -0
- package/agent-docs/author/components/definition-list.md +54 -0
- package/agent-docs/author/components/diagrams/d2-gallery.md +861 -0
- package/agent-docs/author/components/diagrams/d2-gallery.sections/basic-shapes.md +163 -0
- package/agent-docs/author/components/diagrams/d2-gallery.sections/flows-and-structures.md +375 -0
- package/agent-docs/author/components/diagrams/d2-gallery.sections/html-markdown-and-agents.md +33 -0
- package/agent-docs/author/components/diagrams/d2-gallery.sections/layout-engines.md +169 -0
- package/agent-docs/author/components/diagrams/d2-gallery.sections/related-reading.md +37 -0
- package/agent-docs/author/components/diagrams/d2-gallery.sections/sequences-and-grids.md +123 -0
- package/agent-docs/author/components/diagrams/d2-gallery.sections/styles-and-code.md +125 -0
- package/agent-docs/author/components/diagrams/pele-gallery.md +1317 -0
- package/agent-docs/author/components/diagrams/pele-gallery.sections/charts-and-planning.md +341 -0
- package/agent-docs/author/components/diagrams/pele-gallery.sections/flowchart-shapes.md +269 -0
- package/agent-docs/author/components/diagrams/pele-gallery.sections/flows-and-behavior.md +273 -0
- package/agent-docs/author/components/diagrams/pele-gallery.sections/html-markdown-and-agents.md +31 -0
- package/agent-docs/author/components/diagrams/pele-gallery.sections/related-reading.md +35 -0
- package/agent-docs/author/components/diagrams/pele-gallery.sections/specialized-diagrams.md +229 -0
- package/agent-docs/author/components/diagrams/pele-gallery.sections/systems-and-structures.md +291 -0
- package/agent-docs/author/components/diagrams.md +155 -0
- package/agent-docs/author/components/doc-link.md +58 -0
- package/agent-docs/author/components/fields.md +121 -0
- package/agent-docs/author/components/file-tree.md +84 -0
- package/agent-docs/author/components/images.md +103 -0
- package/agent-docs/author/components/info-hint.md +61 -0
- package/agent-docs/author/components/kbd.md +45 -0
- package/agent-docs/author/components/math.md +39 -0
- package/agent-docs/author/components/only.md +65 -0
- package/agent-docs/author/components/progress.md +53 -0
- package/agent-docs/author/components/related-reading.md +48 -0
- package/agent-docs/author/components/steps.md +121 -0
- package/agent-docs/author/components/tables.md +64 -0
- package/agent-docs/author/components/tabs.md +129 -0
- package/agent-docs/author/components/timeline.md +74 -0
- package/agent-docs/author/components/tooltips.md +58 -0
- package/agent-docs/author/components/walkthroughs.md +390 -0
- package/agent-docs/author/components/walkthroughs.sections/attributes.md +45 -0
- package/agent-docs/author/components/walkthroughs.sections/build-up-code.md +133 -0
- package/agent-docs/author/components/walkthroughs.sections/choose-a-layout.md +141 -0
- package/agent-docs/author/components/walkthroughs.sections/explain-one-file.md +126 -0
- package/agent-docs/author/components/walkthroughs.sections/html-markdown-and-agents.md +38 -0
- package/agent-docs/author/components/walkthroughs.sections/related-reading.md +36 -0
- package/agent-docs/author/components/walkthroughs.sections/take-code-from-a-file.md +53 -0
- package/agent-docs/author/components.md +78 -0
- package/agent-docs/author/content.md +74 -0
- package/agent-docs/author/cookbooks.md +119 -0
- package/agent-docs/author/css.md +238 -0
- package/agent-docs/author/css.sections/borders-fields-and-navigation-tokens.md +70 -0
- package/agent-docs/author/css.sections/core-color-tokens.md +71 -0
- package/agent-docs/author/css.sections/page-attributes.md +69 -0
- package/agent-docs/author/css.sections/page-transitions.md +60 -0
- package/agent-docs/author/css.sections/responsive-behavior.md +58 -0
- package/agent-docs/author/css.sections/status-code-and-callout-tokens.md +89 -0
- package/agent-docs/author/css.sections/typography-shape-and-width-tokens.md +71 -0
- package/agent-docs/author/custom-metadata.md +177 -0
- package/agent-docs/author/custom-metadata.sections/add-a-custom-page-field.md +68 -0
- package/agent-docs/author/custom-metadata.sections/choose-text-for-each-surface.md +54 -0
- package/agent-docs/author/custom-metadata.sections/preview-changes-to-metadata-providers.md +33 -0
- package/agent-docs/author/custom-metadata.sections/read-metadata-from-a-project-module.md +57 -0
- package/agent-docs/author/custom-metadata.sections/related-reading.md +29 -0
- package/agent-docs/author/design-templates.md +49 -0
- package/agent-docs/author/design-writing-guides.md +73 -0
- package/agent-docs/author/frontmatter-reference.md +146 -0
- package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +44 -0
- package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +41 -0
- package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +31 -0
- package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +40 -0
- package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +37 -0
- package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +41 -0
- package/agent-docs/author/frontmatter-reference.sections/related-reading.md +35 -0
- package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +33 -0
- package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +31 -0
- package/agent-docs/author/frontmatter.md +255 -0
- package/agent-docs/author/frontmatter.sections/audience-badges.md +66 -0
- package/agent-docs/author/frontmatter.sections/give-deprecation-guidance.md +88 -0
- package/agent-docs/author/frontmatter.sections/global-defaults-and-enforced-values.md +75 -0
- package/agent-docs/author/frontmatter.sections/optional-native-fields.md +90 -0
- package/agent-docs/author/frontmatter.sections/publication-fields.md +85 -0
- package/agent-docs/author/frontmatter.sections/publishing-policy.md +71 -0
- package/agent-docs/author/frontmatter.sections/related-metadata-tasks.md +72 -0
- package/agent-docs/author/frontmatter.sections/related-reading.md +72 -0
- package/agent-docs/author/frontmatter.sections/required-after-inheritance.md +84 -0
- package/agent-docs/author/frontmatter.sections/seo-fields.md +79 -0
- package/agent-docs/author/frontmatter.sections/validation-rules.md +75 -0
- package/agent-docs/author/markdown-metadata.md +207 -0
- package/agent-docs/author/navigation.md +269 -0
- package/agent-docs/author/navigation.sections/arrange-authored-pages.md +58 -0
- package/agent-docs/author/navigation.sections/fill-an-api-tag-group.md +48 -0
- package/agent-docs/author/navigation.sections/hide-group-page-counts.md +45 -0
- package/agent-docs/author/navigation.sections/html-markdown-and-agents.md +40 -0
- package/agent-docs/author/navigation.sections/local-api-preview.md +47 -0
- package/agent-docs/author/navigation.sections/mix-guides-and-api-references.md +65 -0
- package/agent-docs/author/navigation.sections/optionally-split-a-large-menu-into-files.md +97 -0
- package/agent-docs/author/navigation.sections/reach-navigation-while-reading.md +38 -0
- package/agent-docs/author/navigation.sections/related-reading.md +44 -0
- package/agent-docs/author/navigation.sections/split-navigation-into-tabs.md +67 -0
- package/agent-docs/author/navigation.sections/subject-lifecycle-labels.md +42 -0
- package/agent-docs/author/reader-views.md +200 -0
- package/agent-docs/author/reader-views.sections/configure-the-choices.md +65 -0
- package/agent-docs/author/reader-views.sections/connect-your-own-control.md +59 -0
- package/agent-docs/author/reader-views.sections/how-it-works-for-agents.md +41 -0
- package/agent-docs/author/reader-views.sections/mark-pages.md +49 -0
- package/agent-docs/author/reader-views.sections/mark-sections-and-add-an-entry-choice.md +49 -0
- package/agent-docs/author/reader-views.sections/place-filter-controls.md +43 -0
- package/agent-docs/author/reader-views.sections/try-the-controls-here.md +64 -0
- package/agent-docs/author/recipe-drafts.md +181 -0
- package/agent-docs/author/recipe-drafts.sections/1-write-one-reusable-step.md +82 -0
- package/agent-docs/author/recipe-drafts.sections/2-list-the-steps-for-one-complete-goal.md +60 -0
- package/agent-docs/author/recipe-drafts.sections/3-generate-a-draft-and-review-it.md +55 -0
- package/agent-docs/author/recipe-drafts.sections/4-maintain-shoalrun-s-published-recipe-snapshots.md +66 -0
- package/agent-docs/author/recipe-drafts.sections/related-reading.md +45 -0
- package/agent-docs/author/recipe-drafts.sections/start-an-ingredient-from-an-api-example.md +50 -0
- package/agent-docs/author/recipes.md +127 -0
- package/agent-docs/author/recipes.sections/how-agents-use-this.md +50 -0
- package/agent-docs/author/recipes.sections/one-example-from-shoalrun.md +64 -0
- package/agent-docs/author/recipes.sections/related-reading.md +36 -0
- package/agent-docs/author/recipes.sections/try-a-complete-workflow.md +42 -0
- package/agent-docs/author/recipes.sections/use-recipes-for-task-oriented-how-tos.md +52 -0
- package/agent-docs/author/recipes.sections/what-changing-an-ingredient-updates.md +44 -0
- package/agent-docs/author/recipes.sections/what-each-file-does.md +48 -0
- package/agent-docs/author/recipes.sections/what-happens-and-when.md +45 -0
- package/agent-docs/author/related-reading.md +143 -0
- package/agent-docs/author/related-reading.sections/automatic-footers.md +35 -0
- package/agent-docs/author/related-reading.sections/declare-relationships.md +68 -0
- package/agent-docs/author/related-reading.sections/display-related-documents.md +54 -0
- package/agent-docs/author/related-reading.sections/inspect-output-and-changes.md +32 -0
- package/agent-docs/author/related-reading.sections/reading-paths-in-section-markdown.md +32 -0
- package/agent-docs/author/related-reading.sections/related-reading.md +34 -0
- package/agent-docs/author/related-reading.sections/where-relationship-explanations-come-from.md +34 -0
- package/agent-docs/author/release-notes.md +153 -0
- package/agent-docs/author/search.md +299 -0
- package/agent-docs/author/search.sections/choose-a-provider.md +52 -0
- package/agent-docs/author/search.sections/cli-and-mcp-ranking-details.md +49 -0
- package/agent-docs/author/search.sections/hosted-semantic-search-limits.md +55 -0
- package/agent-docs/author/search.sections/html-markdown-and-agents.md +37 -0
- package/agent-docs/author/search.sections/lexical-search.md +78 -0
- package/agent-docs/author/search.sections/local-semantic-preview.md +43 -0
- package/agent-docs/author/search.sections/read-a-search-result-with-an-agent.md +41 -0
- package/agent-docs/author/search.sections/related-reading.md +45 -0
- package/agent-docs/author/search.sections/reuse-the-lexical-index.md +81 -0
- package/agent-docs/author/search.sections/turn-search-off.md +46 -0
- package/agent-docs/author/search.sections/use-the-search-box.md +39 -0
- package/agent-docs/author/search.sections/write-a-custom-provider.md +98 -0
- package/agent-docs/author/snippets.md +118 -0
- package/agent-docs/author/taxonomy.md +121 -0
- package/agent-docs/author/templates.md +231 -0
- package/agent-docs/author/templates.sections/built-in-feature-templates.md +52 -0
- package/agent-docs/author/templates.sections/built-in-templates.md +48 -0
- package/agent-docs/author/templates.sections/choose-formatting-enforcement-for-your-project.md +69 -0
- package/agent-docs/author/templates.sections/create-or-edit-a-project-template.md +76 -0
- package/agent-docs/author/templates.sections/keep-the-four-shapes-distinct.md +46 -0
- package/agent-docs/author/templates.sections/project-added-templates.md +39 -0
- package/agent-docs/author/templates.sections/related-reading.md +47 -0
- package/agent-docs/author/templates.sections/scaffold-a-page.md +53 -0
- package/agent-docs/author/templates.sections/short-cli-and-derived-values.md +56 -0
- package/agent-docs/author/templates.sections/what-every-template-gives-you.md +44 -0
- package/agent-docs/author/workspace/commands.md +92 -0
- package/agent-docs/author/workspace.md +104 -0
- package/agent-docs/author/writing-style.md +137 -0
- package/agent-docs/author/writing-style.sections/adapt-this-example.md +28 -0
- package/agent-docs/author/writing-style.sections/choose-components-by-reader-need.md +42 -0
- package/agent-docs/author/writing-style.sections/evidence-and-uncertainty.md +32 -0
- package/agent-docs/author/writing-style.sections/example-audience-and-scope.md +28 -0
- package/agent-docs/author/writing-style.sections/ingredients-recipes-and-cookbooks.md +36 -0
- package/agent-docs/author/writing-style.sections/page-purpose-and-structure.md +41 -0
- package/agent-docs/author/writing-style.sections/procedures-and-examples.md +32 -0
- package/agent-docs/author/writing-style.sections/related-reading.md +32 -0
- package/agent-docs/author/writing-style.sections/review-a-draft.md +30 -0
- package/agent-docs/author/writing-style.sections/reviewed-writing-examples.md +39 -0
- package/agent-docs/author/writing-style.sections/voice-and-explanations.md +39 -0
- package/agent-docs/changelog/2026-10-14-agent-readiness.md +29 -0
- package/agent-docs/changelog/2026-10-15-evaluation-builds.md +84 -0
- package/agent-docs/changelog/2026-10-16-navigation-layouts.md +72 -0
- package/agent-docs/changelog/2026-10-17-mcp-hosting.md +60 -0
- package/agent-docs/changelog/2026-10-18-search-and-tooltips.md +46 -0
- package/agent-docs/changelog/2026-10-19-visual-navigation.md +44 -0
- package/agent-docs/changelog/2026-10-25.md +45 -0
- package/agent-docs/changelog/2026-10-26.md +66 -0
- package/agent-docs/changelog/2026-10-27.md +85 -0
- package/agent-docs/changelog/authoring-preview.md +40 -0
- package/agent-docs/changelog/authoring-search.md +39 -0
- package/agent-docs/changelog/authoring-tools.md +34 -0
- package/agent-docs/changelog/working-tree-skill.md +38 -0
- package/agent-docs/changelog.md +115 -0
- package/agent-docs/chat/checks.md +175 -0
- package/agent-docs/chat/checks.sections/answer-ahead-of-time.md +38 -0
- package/agent-docs/chat/checks.sections/answer-for-one-audience.md +66 -0
- package/agent-docs/chat/checks.sections/answer-without-a-model.md +54 -0
- package/agent-docs/chat/checks.sections/follow-up-questions.md +54 -0
- package/agent-docs/chat/checks.sections/how-an-answer-is-checked.md +67 -0
- package/agent-docs/chat/checks.sections/questions-with-several-parts.md +44 -0
- package/agent-docs/chat/checks.sections/related-reading.md +42 -0
- package/agent-docs/chat/checks.sections/reuse-answers.md +50 -0
- package/agent-docs/chat/host.md +222 -0
- package/agent-docs/chat/host.sections/cap-the-daily-spend.md +78 -0
- package/agent-docs/chat/host.sections/keep-a-record-of-questions.md +64 -0
- package/agent-docs/chat/host.sections/related-reading.md +43 -0
- package/agent-docs/chat/passage-index.md +228 -0
- package/agent-docs/chat/passage-index.sections/build-the-index.md +72 -0
- package/agent-docs/chat/passage-index.sections/embed-passages.md +103 -0
- package/agent-docs/chat/passage-index.sections/how-the-default-chunker-splits-a-page.md +53 -0
- package/agent-docs/chat/passage-index.sections/limits.md +45 -0
- package/agent-docs/chat/passage-index.sections/passage-ids-and-links.md +52 -0
- package/agent-docs/chat/passage-index.sections/related-reading.md +42 -0
- package/agent-docs/chat/passage-index.sections/what-a-passage-contains.md +91 -0
- package/agent-docs/chat/prepared-answers.md +116 -0
- package/agent-docs/chat/settings.md +213 -0
- package/agent-docs/chat/settings.sections/choose-the-scorer.md +63 -0
- package/agent-docs/chat/settings.sections/configure-chat.md +80 -0
- package/agent-docs/chat/settings.sections/configure-retrieval.md +62 -0
- package/agent-docs/chat/settings.sections/related-reading.md +32 -0
- package/agent-docs/chat/settings.sections/send-extra-request-fields.md +42 -0
- package/agent-docs/chat/settings.sections/use-more-than-one-model.md +62 -0
- package/agent-docs/chat/settings.sections/when-the-scorer-is-down.md +42 -0
- package/agent-docs/chat/setup.md +97 -0
- package/agent-docs/chat.md +102 -0
- package/agent-docs/cli.md +445 -0
- package/agent-docs/cli.sections/audit-a-project-and-api-sources.md +102 -0
- package/agent-docs/cli.sections/author-pages.md +94 -0
- package/agent-docs/cli.sections/build-and-serve.md +144 -0
- package/agent-docs/cli.sections/inspect-config-and-operations.md +41 -0
- package/agent-docs/cli.sections/npm-scripts-in-this-repository.md +45 -0
- package/agent-docs/cli.sections/related-reading.md +33 -0
- package/agent-docs/cli.sections/search-and-chat.md +132 -0
- package/agent-docs/cli.sections/start-a-project.md +37 -0
- package/agent-docs/cli.sections/working-tree-authoring-tools.md +35 -0
- package/agent-docs/concepts.md +133 -0
- package/agent-docs/config/apis.md +136 -0
- package/agent-docs/config/content.md +264 -0
- package/agent-docs/config/content.sections/authoring.md +58 -0
- package/agent-docs/config/content.sections/badges.md +34 -0
- package/agent-docs/config/content.sections/callouts.md +34 -0
- package/agent-docs/config/content.sections/cookbooks.md +38 -0
- package/agent-docs/config/content.sections/frontmatter.md +75 -0
- package/agent-docs/config/content.sections/readerfilters.md +44 -0
- package/agent-docs/config/content.sections/related-reading.md +34 -0
- package/agent-docs/config/content.sections/relationships.md +76 -0
- package/agent-docs/config/content.sections/snippets.md +61 -0
- package/agent-docs/config/content.sections/templates.md +57 -0
- package/agent-docs/config/content.sections/variables.md +55 -0
- package/agent-docs/config/examples.md +354 -0
- package/agent-docs/config/examples.sections/feature-showcase.md +55 -0
- package/agent-docs/config/examples.sections/minimal-site.md +80 -0
- package/agent-docs/config/examples.sections/multilingual-help-center.md +110 -0
- package/agent-docs/config/examples.sections/parcel-api-documentation.md +153 -0
- package/agent-docs/config/examples.sections/related-reading.md +50 -0
- package/agent-docs/config/examples.sections/shared-company-preset.md +118 -0
- package/agent-docs/config/integrations.md +76 -0
- package/agent-docs/config/outputs.md +160 -0
- package/agent-docs/config/outputs.sections/exports.md +57 -0
- package/agent-docs/config/outputs.sections/metadata.md +42 -0
- package/agent-docs/config/outputs.sections/related-reading.md +34 -0
- package/agent-docs/config/publishing.md +219 -0
- package/agent-docs/config/publishing.sections/navigation.md +92 -0
- package/agent-docs/config/publishing.sections/redirects.md +79 -0
- package/agent-docs/config/publishing.sections/related-reading.md +33 -0
- package/agent-docs/config/site.md +193 -0
- package/agent-docs/config/site.sections/related-reading.md +33 -0
- package/agent-docs/config/site.sections/theme.md +74 -0
- package/agent-docs/config.md +195 -0
- package/agent-docs/configuration.md +384 -0
- package/agent-docs/configuration.sections/build-several-sites-from-shared-content.md +36 -0
- package/agent-docs/configuration.sections/change-inherited-lists-deliberately.md +76 -0
- package/agent-docs/configuration.sections/extract-a-section-with-include.md +75 -0
- package/agent-docs/configuration.sections/inspect-and-validate-changes.md +77 -0
- package/agent-docs/configuration.sections/related-reading.md +42 -0
- package/agent-docs/configuration.sections/separate-config-inheritance-from-page-metadata.md +54 -0
- package/agent-docs/configuration.sections/share-defaults-through-extends.md +121 -0
- package/agent-docs/configuration.sections/start-with-one-working-file.md +81 -0
- package/agent-docs/configuration.sections/understand-the-three-stages.md +59 -0
- package/agent-docs/configuration.sections/understand-where-paths-point.md +53 -0
- package/agent-docs/connect/mcp.md +85 -0
- package/agent-docs/contribute/agent-skills.md +72 -0
- package/agent-docs/cookbooks/authoring.md +68 -0
- package/agent-docs/cookbooks/site-workflows.md +59 -0
- package/agent-docs/cookbooks/welcome-email.md +55 -0
- package/agent-docs/documents.json +20058 -0
- package/agent-docs/example-api/cedar/create-enrollment-7af3e5d2.md +594 -0
- package/agent-docs/example-api/cedar/get-legacy-parcel-6758d051.md +122 -0
- package/agent-docs/example-api/cedar/get-parcel-edee10e6.md +122 -0
- package/agent-docs/example-api/cedar/list-parcels-0345fb5f.md +271 -0
- package/agent-docs/example-api/cedar/parcel-delivered-7d1ba6db.md +122 -0
- package/agent-docs/example-api/cedar/upload-manifest-1af17891.md +101 -0
- package/agent-docs/example-api/cedar.md +39 -0
- package/agent-docs/example-api/create-note.md +344 -0
- package/agent-docs/example-api/generated/get-note-cbedb319.md +165 -0
- package/agent-docs/example-api/write-note.md +55 -0
- package/agent-docs/explore.md +54 -0
- package/agent-docs/glossary.md +827 -0
- package/agent-docs/index.md +249 -0
- package/agent-docs/ingredients/audit-site.md +27 -0
- package/agent-docs/ingredients/build-site.md +29 -0
- package/agent-docs/ingredients/compile-framework.md +28 -0
- package/agent-docs/ingredients/complete-page.md +30 -0
- package/agent-docs/ingredients/inspect-agent-bundle.md +28 -0
- package/agent-docs/ingredients/inspect-build.md +41 -0
- package/agent-docs/ingredients/preview-site.md +31 -0
- package/agent-docs/ingredients/refresh-agent-bundle.md +29 -0
- package/agent-docs/ingredients/scaffold-page.md +28 -0
- package/agent-docs/non-goals.md +58 -0
- package/agent-docs/provenance.json +10 -0
- package/agent-docs/publish/agent-discovery.md +79 -0
- package/agent-docs/publish/agent-friendliness.md +201 -0
- package/agent-docs/publish/agent-friendliness.sections/discover-a-page-with-a-small-context-budget.md +61 -0
- package/agent-docs/publish/agent-friendliness.sections/distinguish-examples-from-a-real-service.md +48 -0
- package/agent-docs/publish/agent-friendliness.sections/evidence-has-a-scope.md +46 -0
- package/agent-docs/publish/agent-friendliness.sections/keep-shared-instructions-complete.md +48 -0
- package/agent-docs/publish/agent-friendliness.sections/related-reading.md +52 -0
- package/agent-docs/publish/agent-friendliness.sections/secret-handshake.md +50 -0
- package/agent-docs/publish/agent-friendliness.sections/try-the-page-controls.md +62 -0
- package/agent-docs/publish/agent-friendliness.sections/use-the-transport-your-client-supports.md +50 -0
- package/agent-docs/publish/agent-friendliness.sections/verify-the-page-and-detect-changes.md +58 -0
- package/agent-docs/publish/agent-friendliness.sections/what-an-agent-reads.md +68 -0
- package/agent-docs/publish/agent-friendliness.sections/what-happens-to-an-unsupported-component.md +60 -0
- package/agent-docs/publish/api-references.md +217 -0
- package/agent-docs/publish/api-references.sections/add-useful-examples.md +36 -0
- package/agent-docs/publish/api-references.sections/author-the-reference-page.md +65 -0
- package/agent-docs/publish/api-references.sections/build-and-verify-the-output.md +48 -0
- package/agent-docs/publish/api-references.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +36 -0
- package/agent-docs/publish/api-references.sections/generate-many-pages-selectively.md +36 -0
- package/agent-docs/publish/api-references.sections/inspect-the-machine-readable-contract.md +36 -0
- package/agent-docs/publish/api-references.sections/link-guides-to-api-references.md +36 -0
- package/agent-docs/publish/api-references.sections/map-extension-values-to-shoalrun-status.md +36 -0
- package/agent-docs/publish/api-references.sections/preview-a-small-api-reference.md +38 -0
- package/agent-docs/publish/api-references.sections/publish-several-versions.md +36 -0
- package/agent-docs/publish/api-references.sections/put-the-spec-in-your-project.md +62 -0
- package/agent-docs/publish/api-references.sections/register-the-operation.md +64 -0
- package/agent-docs/publish/api-references.sections/related-reading.md +42 -0
- package/agent-docs/publish/api-references.sections/review-imported-content-before-publishing.md +54 -0
- package/agent-docs/publish/api-references.sections/use-a-template-for-editorial-context.md +36 -0
- package/agent-docs/publish/api-references.sections/what-readers-get.md +38 -0
- package/agent-docs/publish/audit.md +160 -0
- package/agent-docs/publish/audit.sections/add-project-tests.md +57 -0
- package/agent-docs/publish/audit.sections/check-agent-evaluation-reports.md +52 -0
- package/agent-docs/publish/audit.sections/check-before-pushing.md +80 -0
- package/agent-docs/publish/audit.sections/connect-a-documentation-test-suite.md +54 -0
- package/agent-docs/publish/audit.sections/read-the-report.md +67 -0
- package/agent-docs/publish/audit.sections/related-reading.md +47 -0
- package/agent-docs/publish/content-export.md +208 -0
- package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +40 -0
- package/agent-docs/publish/content-export.sections/check-the-result.md +27 -0
- package/agent-docs/publish/content-export.sections/export-selected-pages.md +113 -0
- package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +29 -0
- package/agent-docs/publish/content-export.sections/prerequisites.md +29 -0
- package/agent-docs/publish/content-export.sections/related-reading.md +35 -0
- package/agent-docs/publish/content-export.sections/review-exported-api-material.md +44 -0
- package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +34 -0
- package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +43 -0
- package/agent-docs/publish/content-negotiation.md +121 -0
- package/agent-docs/publish/content-negotiation.sections/hosting-contract.md +60 -0
- package/agent-docs/publish/content-negotiation.sections/missing-pages.md +51 -0
- package/agent-docs/publish/content-negotiation.sections/related-reading.md +45 -0
- package/agent-docs/publish/content-negotiation.sections/validators-and-manifest-links.md +49 -0
- package/agent-docs/publish/content-negotiation.sections/verify-the-deployed-url.md +62 -0
- package/agent-docs/publish/content-negotiation.sections/what-if-the-host-cannot-negotiate.md +47 -0
- package/agent-docs/publish/content-negotiation.sections/what-shoalrun-builds-and-what-the-host-does.md +49 -0
- package/agent-docs/publish/content-negotiation.sections/why-this-matters.md +47 -0
- package/agent-docs/publish/deployment-check.md +72 -0
- package/agent-docs/publish/evals.md +175 -0
- package/agent-docs/publish/evals.sections/add-the-audit-hook.md +63 -0
- package/agent-docs/publish/evals.sections/check-the-report.md +36 -0
- package/agent-docs/publish/evals.sections/define-a-task-file.md +47 -0
- package/agent-docs/publish/evals.sections/diagnose-a-different-build.md +42 -0
- package/agent-docs/publish/evals.sections/prepare-a-report-for-the-built-site.md +39 -0
- package/agent-docs/publish/evals.sections/related-reading.md +36 -0
- package/agent-docs/publish/evals.sections/run-and-review-the-tasks.md +54 -0
- package/agent-docs/publish/evals.sections/shoalrun-s-own-example.md +42 -0
- package/agent-docs/publish/host-adapters.md +60 -0
- package/agent-docs/publish/manni.md +227 -0
- package/agent-docs/publish/manni.sections/check-the-result.md +40 -0
- package/agent-docs/publish/manni.sections/how-this-site-uses-manni.md +83 -0
- package/agent-docs/publish/manni.sections/optional-custom-policies.md +42 -0
- package/agent-docs/publish/manni.sections/prerequisites.md +40 -0
- package/agent-docs/publish/mcp-analytics.md +356 -0
- package/agent-docs/publish/mcp-analytics.sections/adapter-exports.md +50 -0
- package/agent-docs/publish/mcp-analytics.sections/enable-analytics.md +45 -0
- package/agent-docs/publish/mcp-analytics.sections/event-fields-and-service-mappings.md +53 -0
- package/agent-docs/publish/mcp-analytics.sections/optionally-collect-intent-and-group-calls.md +62 -0
- package/agent-docs/publish/mcp-analytics.sections/optionally-identify-the-client-and-model.md +54 -0
- package/agent-docs/publish/mcp-analytics.sections/related-reading.md +36 -0
- package/agent-docs/publish/mcp-analytics.sections/safeguards-and-limits.md +46 -0
- package/agent-docs/publish/mcp.md +190 -0
- package/agent-docs/publish/mcp.sections/check-budgets-and-errors.md +52 -0
- package/agent-docs/publish/mcp.sections/choose-the-documentation-source.md +51 -0
- package/agent-docs/publish/mcp.sections/configure-the-client.md +55 -0
- package/agent-docs/publish/mcp.sections/generate-a-vercel-endpoint.md +50 -0
- package/agent-docs/publish/mcp.sections/related-reading.md +42 -0
- package/agent-docs/publish/mcp.sections/search-then-read.md +53 -0
- package/agent-docs/publish/mcp.sections/serve-a-public-endpoint-on-node.md +79 -0
- package/agent-docs/publish/mcp.sections/verify-the-connection.md +40 -0
- package/agent-docs/publish/mcp.sections/why-offer-mcp-for-public-docs.md +42 -0
- package/agent-docs/publish/openapi-extension-mappings.md +84 -0
- package/agent-docs/publish/output.md +220 -0
- package/agent-docs/publish/output.sections/api-contracts.md +48 -0
- package/agent-docs/publish/output.sections/code-highlighting.md +38 -0
- package/agent-docs/publish/output.sections/current-limits.md +40 -0
- package/agent-docs/publish/output.sections/incremental-sync.md +69 -0
- package/agent-docs/publish/output.sections/manifest-records-and-sections.md +46 -0
- package/agent-docs/publish/output.sections/navigation-section-indexes.md +42 -0
- package/agent-docs/publish/output.sections/page-formats.md +46 -0
- package/agent-docs/publish/output.sections/published-output-contract.md +58 -0
- package/agent-docs/publish/output.sections/reader-appearance-and-controls.md +44 -0
- package/agent-docs/publish/output.sections/related-reading.md +34 -0
- package/agent-docs/publish/output.sections/response-identity.md +38 -0
- package/agent-docs/publish/output.sections/site-files.md +64 -0
- package/agent-docs/publish/output.sections/validate-an-existing-build-locally.md +48 -0
- package/agent-docs/publish/output.sections/where-files-go.md +49 -0
- package/agent-docs/publish/publications.md +153 -0
- package/agent-docs/publish/revisions.md +104 -0
- package/agent-docs/publish/seo.md +119 -0
- package/agent-docs/publish/single-source-sites.md +168 -0
- package/agent-docs/publish/troubleshooting.md +112 -0
- package/agent-docs/publish/vercel.md +130 -0
- package/agent-docs/publish/vercel.sections/check-the-deployment.md +54 -0
- package/agent-docs/publish/vercel.sections/include-an-mcp-endpoint.md +38 -0
- package/agent-docs/publish/vercel.sections/prepare-your-project.md +52 -0
- package/agent-docs/publish/vercel.sections/related-reading.md +38 -0
- package/agent-docs/publish.md +95 -0
- package/agent-docs/recipes/add-page.md +194 -0
- package/agent-docs/recipes/add-page.sections/audit-the-shoalrun-docs-project.md +40 -0
- package/agent-docs/recipes/add-page.sections/before-you-start.md +33 -0
- package/agent-docs/recipes/add-page.sections/build-the-shoalrun-docs-site.md +42 -0
- package/agent-docs/recipes/add-page.sections/check-agent-search-and-page-lookup.md +42 -0
- package/agent-docs/recipes/add-page.sections/check-the-built-page-artifacts.md +54 -0
- package/agent-docs/recipes/add-page.sections/check-the-outcome.md +28 -0
- package/agent-docs/recipes/add-page.sections/complete-the-guide-and-add-navigation.md +42 -0
- package/agent-docs/recipes/add-page.sections/install-the-site-dependencies.md +41 -0
- package/agent-docs/recipes/add-page.sections/regenerate-the-agent-documentation-bundle.md +42 -0
- package/agent-docs/recipes/add-page.sections/related-reading.md +30 -0
- package/agent-docs/recipes/add-page.sections/scaffold-a-new-guide.md +42 -0
- package/agent-docs/recipes/audit-docs.md +122 -0
- package/agent-docs/recipes/build-docs.md +105 -0
- package/agent-docs/recipes/preview-hybrid-search.md +84 -0
- package/agent-docs/recipes/preview-page.md +124 -0
- package/agent-docs/recipes/queue-email.md +49 -0
- package/agent-docs/recipes/refresh-agent-docs.md +109 -0
- package/agent-docs/recipes/send-welcome-email.md +92 -0
- package/agent-docs/reference/agent-skills.md +73 -0
- package/agent-docs/search-and-chat.md +87 -0
- package/agent-docs/search-index.json +1 -0
- package/agent-docs/start.md +197 -0
- package/agent-docs/start.sections/add-the-page-to-navigation.md +50 -0
- package/agent-docs/start.sections/build-and-check-both-outputs.md +50 -0
- package/agent-docs/start.sections/build-this-site.md +35 -0
- package/agent-docs/start.sections/check-writing-style.md +35 -0
- package/agent-docs/start.sections/create-a-page.md +105 -0
- package/agent-docs/start.sections/make-it-yours.md +37 -0
- package/agent-docs/start.sections/prerequisites.md +37 -0
- package/agent-docs/start.sections/related-reading.md +45 -0
- package/agent-docs/start.sections/start-your-own-project.md +53 -0
- package/agent-docs/status.md +75 -0
- package/agent-docs/styling/color-modes.md +85 -0
- package/agent-docs/styling/footer.md +67 -0
- package/agent-docs/styling/header.md +65 -0
- package/agent-docs/styling/layouts.md +193 -0
- package/agent-docs/styling/layouts.sections/build-a-landing-page.md +61 -0
- package/agent-docs/styling/layouts.sections/build-a-splash-page.md +88 -0
- package/agent-docs/styling/layouts.sections/control-navigation-tabs.md +51 -0
- package/agent-docs/styling/layouts.sections/customize-the-hero.md +50 -0
- package/agent-docs/styling/layouts.sections/hero.md +83 -0
- package/agent-docs/styling/layouts.sections/related-reading.md +42 -0
- package/agent-docs/styling/palettes.md +140 -0
- package/agent-docs/styling/share-images.md +105 -0
- package/agent-docs/styling/themes.md +125 -0
- package/agent-docs/styling/try.md +106 -0
- package/agent-docs/what-is-shoalrun.md +56 -0
- package/assets/analytics.js +72 -0
- package/assets/ask-widget.js +320 -0
- package/assets/code-samples.js +28 -0
- package/assets/components.js +32 -0
- package/assets/cookbook-chooser.js +170 -0
- package/assets/copy-markdown.js +24 -0
- package/assets/example-panel.js +77 -0
- package/assets/file-tree.js +49 -0
- package/assets/image-viewer.js +41 -0
- package/assets/mode.js +26 -0
- package/assets/navigation.js +233 -0
- package/assets/reader-filters.js +305 -0
- package/assets/reader.js +111 -0
- package/assets/search-highlight.js +32 -0
- package/assets/search-lexical.js +66 -0
- package/assets/search.js +150 -0
- package/assets/table-filter.js +63 -0
- package/assets/tabs.js +80 -0
- package/assets/theme-preview.css +17 -0
- package/assets/theme-preview.js +135 -0
- package/assets/theme-switcher.js +113 -0
- package/assets/tooltips.js +81 -0
- package/assets/walkthrough.js +233 -0
- package/dist/agent-discovery.d.ts +11 -0
- package/dist/agent-discovery.js +37 -0
- package/dist/analytics.d.ts +2 -0
- package/dist/analytics.js +13 -0
- package/dist/answer-cache.d.ts +24 -0
- package/dist/answer-cache.js +55 -0
- package/dist/answer-cards.d.ts +71 -0
- package/dist/answer-cards.js +148 -0
- package/dist/api-embeds.d.ts +22 -0
- package/dist/api-embeds.js +84 -0
- package/dist/api-identity.d.ts +6 -0
- package/dist/api-identity.js +7 -0
- package/dist/api-materialize.d.ts +12 -0
- package/dist/api-materialize.js +120 -0
- package/dist/api-publication-plan.d.ts +86 -0
- package/dist/api-publication-plan.js +187 -0
- package/dist/api-publication-review.d.ts +23 -0
- package/dist/api-publication-review.js +58 -0
- package/dist/api-selection.d.ts +21 -0
- package/dist/api-selection.js +84 -0
- package/dist/api.d.ts +74 -0
- package/dist/api.js +782 -0
- package/dist/artifact-bundle.d.ts +96 -0
- package/dist/artifact-bundle.js +306 -0
- package/dist/ask-function.d.ts +19 -0
- package/dist/ask-function.js +139 -0
- package/dist/ask-handler.d.ts +38 -0
- package/dist/ask-handler.js +157 -0
- package/dist/ask-log-kv.d.ts +14 -0
- package/dist/ask-log-kv.js +69 -0
- package/dist/ask-log.d.ts +106 -0
- package/dist/ask-log.js +159 -0
- package/dist/ask-setup.d.ts +43 -0
- package/dist/ask-setup.js +99 -0
- package/dist/ask.d.ts +152 -0
- package/dist/ask.js +532 -0
- package/dist/audit.d.ts +29 -0
- package/dist/audit.js +171 -0
- package/dist/authored-change.d.ts +22 -0
- package/dist/authored-change.js +47 -0
- package/dist/authoring-api.d.ts +18 -0
- package/dist/authoring-api.js +15 -0
- package/dist/authoring-findings.d.ts +31 -0
- package/dist/authoring-findings.js +104 -0
- package/dist/authoring-guidance.d.ts +15 -0
- package/dist/authoring-guidance.js +57 -0
- package/dist/authoring-preview.d.ts +24 -0
- package/dist/authoring-preview.js +160 -0
- package/dist/authoring-project-command.d.ts +7 -0
- package/dist/authoring-project-command.js +52 -0
- package/dist/authoring-project.d.ts +104 -0
- package/dist/authoring-project.js +287 -0
- package/dist/authoring-review-command.d.ts +1 -0
- package/dist/authoring-review-command.js +68 -0
- package/dist/authoring-review.d.ts +72 -0
- package/dist/authoring-review.js +71 -0
- package/dist/authoring-snapshot.d.ts +66 -0
- package/dist/authoring-snapshot.js +293 -0
- package/dist/authoring-validation-command.d.ts +1 -0
- package/dist/authoring-validation-command.js +54 -0
- package/dist/authoring-validation.d.ts +101 -0
- package/dist/authoring-validation.js +348 -0
- package/dist/badges.d.ts +16 -0
- package/dist/badges.js +57 -0
- package/dist/budget-store.d.ts +21 -0
- package/dist/budget-store.js +90 -0
- package/dist/budget.d.ts +45 -0
- package/dist/budget.js +128 -0
- package/dist/build-info.d.ts +10 -0
- package/dist/build-info.js +15 -0
- package/dist/callouts.d.ts +18 -0
- package/dist/callouts.js +63 -0
- package/dist/cards.d.ts +35 -0
- package/dist/cards.js +237 -0
- package/dist/chat-config.d.ts +117 -0
- package/dist/chat-config.js +400 -0
- package/dist/chat-pause.d.ts +1 -0
- package/dist/chat-pause.js +3 -0
- package/dist/chat.d.ts +46 -0
- package/dist/chat.js +78 -0
- package/dist/cli-discovery.d.ts +4 -0
- package/dist/cli-discovery.js +86 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +750 -0
- package/dist/code-samples.d.ts +50 -0
- package/dist/code-samples.js +181 -0
- package/dist/compact-discovery.d.ts +15 -0
- package/dist/compact-discovery.js +78 -0
- package/dist/compiler-config.d.ts +67 -0
- package/dist/compiler-config.js +66 -0
- package/dist/compiler.d.ts +208 -0
- package/dist/compiler.js +524 -0
- package/dist/component-bundle.d.ts +4 -0
- package/dist/component-bundle.js +32 -0
- package/dist/component-content.d.ts +78 -0
- package/dist/component-content.js +47 -0
- package/dist/component-manifest.d.ts +15 -0
- package/dist/component-manifest.js +84 -0
- package/dist/component-names.d.ts +1 -0
- package/dist/component-names.js +1 -0
- package/dist/component-plugins.d.ts +28 -0
- package/dist/component-plugins.js +141 -0
- package/dist/component-transform.d.ts +10 -0
- package/dist/component-transform.js +697 -0
- package/dist/components.d.ts +2 -0
- package/dist/components.js +1 -0
- package/dist/config.d.ts +29 -0
- package/dist/config.js +149 -0
- package/dist/content-export-assets.d.ts +23 -0
- package/dist/content-export-assets.js +103 -0
- package/dist/content-export-command.d.ts +20 -0
- package/dist/content-export-command.js +57 -0
- package/dist/content-export-config.d.ts +16 -0
- package/dist/content-export-config.js +50 -0
- package/dist/content-export-render.d.ts +12 -0
- package/dist/content-export-render.js +132 -0
- package/dist/content-export.d.ts +30 -0
- package/dist/content-export.js +307 -0
- package/dist/content-filter.d.ts +4 -0
- package/dist/content-filter.js +16 -0
- package/dist/content-source.d.ts +100 -0
- package/dist/content-source.js +42 -0
- package/dist/content-workspace.d.ts +293 -0
- package/dist/content-workspace.js +69 -0
- package/dist/content.d.ts +41 -0
- package/dist/content.js +176 -0
- package/dist/cookbook-chooser.d.ts +19 -0
- package/dist/cookbook-chooser.js +56 -0
- package/dist/dev.d.ts +2 -0
- package/dist/dev.js +113 -0
- package/dist/diagram-svg.d.ts +1 -0
- package/dist/diagram-svg.js +44 -0
- package/dist/diagrams.d.ts +7 -0
- package/dist/diagrams.js +102 -0
- package/dist/docs-author.d.ts +86 -0
- package/dist/docs-author.js +380 -0
- package/dist/docs-command.d.ts +8 -0
- package/dist/docs-command.js +62 -0
- package/dist/docs-eval.d.ts +146 -0
- package/dist/docs-eval.js +231 -0
- package/dist/docs-mcp.d.ts +12 -0
- package/dist/docs-mcp.js +82 -0
- package/dist/docs-tool.d.ts +81 -0
- package/dist/docs-tool.js +7 -0
- package/dist/document-sync.d.ts +36 -0
- package/dist/document-sync.js +58 -0
- package/dist/documentation-core.d.ts +148 -0
- package/dist/documentation-core.js +160 -0
- package/dist/embeddings.d.ts +68 -0
- package/dist/embeddings.js +198 -0
- package/dist/focused-audit.d.ts +10 -0
- package/dist/focused-audit.js +69 -0
- package/dist/focused-openapi.d.ts +2 -0
- package/dist/focused-openapi.js +140 -0
- package/dist/fonts.d.ts +54 -0
- package/dist/fonts.js +92 -0
- package/dist/freshness.d.ts +7 -0
- package/dist/freshness.js +58 -0
- package/dist/frontmatter.d.ts +24 -0
- package/dist/frontmatter.js +342 -0
- package/dist/function-package.d.ts +1 -0
- package/dist/function-package.js +58 -0
- package/dist/highlight.d.ts +14 -0
- package/dist/highlight.js +114 -0
- package/dist/html-renderer.d.ts +10 -0
- package/dist/html-renderer.js +63 -0
- package/dist/icons.d.ts +8 -0
- package/dist/icons.js +40 -0
- package/dist/index-build.d.ts +55 -0
- package/dist/index-build.js +227 -0
- package/dist/ingredient-draft.d.ts +17 -0
- package/dist/ingredient-draft.js +94 -0
- package/dist/ingredient-workflow.d.ts +8 -0
- package/dist/ingredient-workflow.js +25 -0
- package/dist/init.d.ts +8 -0
- package/dist/init.js +66 -0
- package/dist/jev.d.ts +62 -0
- package/dist/jev.js +190 -0
- package/dist/link-audit.d.ts +12 -0
- package/dist/link-audit.js +146 -0
- package/dist/llms-discovery.d.ts +11 -0
- package/dist/llms-discovery.js +23 -0
- package/dist/markdown-sections.d.ts +15 -0
- package/dist/markdown-sections.js +60 -0
- package/dist/markdown-size.d.ts +7 -0
- package/dist/markdown-size.js +6 -0
- package/dist/mcp-analytics.d.ts +38 -0
- package/dist/mcp-analytics.js +35 -0
- package/dist/mcp-artifacts.d.ts +2 -0
- package/dist/mcp-artifacts.js +78 -0
- package/dist/mcp-client-metadata.d.ts +18 -0
- package/dist/mcp-client-metadata.js +69 -0
- package/dist/mcp-config.d.ts +23 -0
- package/dist/mcp-config.js +56 -0
- package/dist/mcp-http.d.ts +19 -0
- package/dist/mcp-http.js +157 -0
- package/dist/mcp-integrity.d.ts +3 -0
- package/dist/mcp-integrity.js +4 -0
- package/dist/mcp-node.d.ts +4 -0
- package/dist/mcp-node.js +68 -0
- package/dist/mcp-vercel-runtime.d.ts +3 -0
- package/dist/mcp-vercel-runtime.js +36 -0
- package/dist/mcp-vercel.d.ts +15 -0
- package/dist/mcp-vercel.js +65 -0
- package/dist/metadata-provider.d.ts +19 -0
- package/dist/metadata-provider.js +38 -0
- package/dist/negotiation.d.ts +10 -0
- package/dist/negotiation.js +35 -0
- package/dist/not-found.d.ts +16 -0
- package/dist/not-found.js +25 -0
- package/dist/output-commit.d.ts +1 -0
- package/dist/output-commit.js +133 -0
- package/dist/output-location.d.ts +3 -0
- package/dist/output-location.js +30 -0
- package/dist/page-materialization.d.ts +78 -0
- package/dist/page-materialization.js +132 -0
- package/dist/page-renderer.d.ts +71 -0
- package/dist/page-renderer.js +177 -0
- package/dist/palettes.d.ts +41 -0
- package/dist/palettes.js +160 -0
- package/dist/procedure-components.d.ts +2 -0
- package/dist/procedure-components.js +94 -0
- package/dist/project-navigation.d.ts +41 -0
- package/dist/project-navigation.js +190 -0
- package/dist/provider-http.d.ts +10 -0
- package/dist/provider-http.js +60 -0
- package/dist/publication-manifest.d.ts +229 -0
- package/dist/publication-manifest.js +53 -0
- package/dist/publication-plan.d.ts +34 -0
- package/dist/publication-plan.js +85 -0
- package/dist/publication-render.d.ts +71 -0
- package/dist/publication-render.js +92 -0
- package/dist/reader-filters.d.ts +30 -0
- package/dist/reader-filters.js +105 -0
- package/dist/recipe-draft.d.ts +17 -0
- package/dist/recipe-draft.js +147 -0
- package/dist/reference-audit.d.ts +18 -0
- package/dist/reference-audit.js +169 -0
- package/dist/remote-import.d.ts +62 -0
- package/dist/remote-import.js +292 -0
- package/dist/representation-tree.d.ts +3 -0
- package/dist/representation-tree.js +320 -0
- package/dist/retrieval-config.d.ts +30 -0
- package/dist/retrieval-config.js +83 -0
- package/dist/retrieval.d.ts +60 -0
- package/dist/retrieval.js +228 -0
- package/dist/scaffold.d.ts +39 -0
- package/dist/scaffold.js +167 -0
- package/dist/search-config.d.ts +8 -0
- package/dist/search-config.js +26 -0
- package/dist/search-handler.d.ts +16 -0
- package/dist/search-handler.js +111 -0
- package/dist/search-identifier.d.ts +3 -0
- package/dist/search-identifier.js +25 -0
- package/dist/search-literal.d.ts +1 -0
- package/dist/search-literal.js +28 -0
- package/dist/search-query.d.ts +54 -0
- package/dist/search-query.js +120 -0
- package/dist/search-results.d.ts +6 -0
- package/dist/search-results.js +45 -0
- package/dist/search-snippet.d.ts +11 -0
- package/dist/search-snippet.js +93 -0
- package/dist/search-synonyms.d.ts +8 -0
- package/dist/search-synonyms.js +46 -0
- package/dist/semantic-markdown.d.ts +10 -0
- package/dist/semantic-markdown.js +39 -0
- package/dist/server.d.ts +10 -0
- package/dist/server.js +223 -0
- package/dist/share-images.d.ts +24 -0
- package/dist/share-images.js +187 -0
- package/dist/site-path.d.ts +2 -0
- package/dist/site-path.js +15 -0
- package/dist/sitemap.d.ts +8 -0
- package/dist/sitemap.js +58 -0
- package/dist/snippets.d.ts +19 -0
- package/dist/snippets.js +84 -0
- package/dist/structured-model-output.d.ts +6 -0
- package/dist/structured-model-output.js +21 -0
- package/dist/subject-deprecation.d.ts +21 -0
- package/dist/subject-deprecation.js +57 -0
- package/dist/surface-text.d.ts +4 -0
- package/dist/surface-text.js +42 -0
- package/dist/taxonomy.d.ts +14 -0
- package/dist/taxonomy.js +88 -0
- package/dist/turnstile.d.ts +21 -0
- package/dist/turnstile.js +52 -0
- package/dist/vale.d.ts +28 -0
- package/dist/vale.js +103 -0
- package/dist/vercel-function.d.ts +21 -0
- package/dist/vercel-function.js +108 -0
- package/dist/vercel.d.ts +11 -0
- package/dist/vercel.js +103 -0
- package/dist/walkthrough.d.ts +25 -0
- package/dist/walkthrough.js +336 -0
- package/dist/yaml-value.d.ts +2 -0
- package/dist/yaml-value.js +36 -0
- package/example-configs/api-docs/README.md +59 -0
- package/example-configs/api-docs/apis/cedar-parcel.yaml +413 -0
- package/example-configs/api-docs/content/create-enrollment.mdx +11 -0
- package/example-configs/api-docs/content/overview.mdx +36 -0
- package/example-configs/api-docs/content/quickstart.mdx +52 -0
- package/example-configs/api-docs/docs.config.yaml +104 -0
- package/example-configs/faceted-sites/README.md +31 -0
- package/example-configs/faceted-sites/base.yaml +30 -0
- package/example-configs/faceted-sites/content/api.md +12 -0
- package/example-configs/faceted-sites/content/home.md +10 -0
- package/example-configs/faceted-sites/content/operations.md +12 -0
- package/example-configs/faceted-sites/developers.config.yaml +8 -0
- package/example-configs/faceted-sites/docs.config.yaml +7 -0
- package/example-configs/faceted-sites/europe.config.yaml +9 -0
- package/example-configs/minimal/content/install.mdx +12 -0
- package/example-configs/minimal/content/welcome.mdx +8 -0
- package/example-configs/minimal/docs.config.yaml +31 -0
- package/example-configs/multilingual/content/de/home.mdx +9 -0
- package/example-configs/multilingual/content/de/reset-password.mdx +9 -0
- package/example-configs/multilingual/content/home.mdx +10 -0
- package/example-configs/multilingual/content/reset-password.mdx +12 -0
- package/example-configs/multilingual/docs.config.yaml +61 -0
- package/example-configs/multilingual/snippets/contact.mdx +1 -0
- package/example-configs/notifications/apis/notifications.yaml +132 -0
- package/example-configs/notifications/content/cookbook.mdx +17 -0
- package/example-configs/notifications/content/get-message.mdx +14 -0
- package/example-configs/notifications/content/queue-email.mdx +42 -0
- package/example-configs/notifications/content/queue-push.mdx +33 -0
- package/example-configs/notifications/content/queue-sms.mdx +33 -0
- package/example-configs/notifications/content/send-email.mdx +14 -0
- package/example-configs/notifications/content/send-push.mdx +14 -0
- package/example-configs/notifications/content/send-sms.mdx +14 -0
- package/example-configs/notifications/content/start.mdx +13 -0
- package/example-configs/notifications/content/welcome-cookbook.mdx +21 -0
- package/example-configs/notifications/content/welcome-email.mdx +82 -0
- package/example-configs/notifications/demo.mjs +43 -0
- package/example-configs/notifications/docs.config.yaml +88 -0
- package/example-configs/notifications/ingredient-drafts/README.md +41 -0
- package/example-configs/notifications/ingredient-drafts/check-delivery.mdx +13 -0
- package/example-configs/notifications/ingredient-drafts/queue-welcome-email.mdx +48 -0
- package/example-configs/notifications/ingredient-specs/queue-welcome-email.yaml +7 -0
- package/example-configs/notifications/ingredients/check-delivery.mdx +42 -0
- package/example-configs/notifications/ingredients/queue-welcome-email.mdx +37 -0
- package/example-configs/notifications/recipe-drafts/send-welcome-email.mdx +91 -0
- package/example-configs/notifications/recipe-specs/send-welcome-email.yaml +11 -0
- package/example-configs/reference-stress/README.md +32 -0
- package/example-configs/reference-stress/apis/cedar-parcel.yaml +413 -0
- package/example-configs/reference-stress/content/enrollment-shapes.mdx +16 -0
- package/example-configs/reference-stress/content/overview.mdx +14 -0
- package/example-configs/reference-stress/docs.config.yaml +55 -0
- package/example-configs/shared-preset/shared/company-docs.yaml +46 -0
- package/example-configs/shared-preset/shared/runbook.mdx +7 -0
- package/example-configs/shared-preset/site/content/failed-invoices.mdx +15 -0
- package/example-configs/shared-preset/site/content/start.mdx +9 -0
- package/example-configs/shared-preset/site/docs.config.yaml +18 -0
- package/example-configs/showcase/README.md +20 -0
- package/example-configs/showcase/apis/cedar-parcel.yaml +413 -0
- package/example-configs/showcase/content/assets/collection.svg +1 -0
- package/example-configs/showcase/content/code.mdx +100 -0
- package/example-configs/showcase/content/create-enrollment.mdx +11 -0
- package/example-configs/showcase/content/features.mdx +39 -0
- package/example-configs/showcase/content/landing.mdx +36 -0
- package/example-configs/showcase/content/overview.mdx +42 -0
- package/example-configs/showcase/content/personalization.mdx +38 -0
- package/example-configs/showcase/content/preview.mdx +35 -0
- package/example-configs/showcase/content/procedures.mdx +88 -0
- package/example-configs/showcase/content/quickstart.mdx +64 -0
- package/example-configs/showcase/content/reading.mdx +99 -0
- package/example-configs/showcase/content/verify.mdx +27 -0
- package/example-configs/showcase/content/visuals.mdx +47 -0
- package/example-configs/showcase/content/workflows.mdx +12 -0
- package/example-configs/showcase/docs.config.yaml +149 -0
- package/example-configs/showcase/snippets/sandbox.mdx +1 -0
- package/examples/analytics/README.md +56 -0
- package/examples/analytics/inspector.js +25 -0
- package/examples/analytics/posthog.js +36 -0
- package/examples/components/comparison.mjs +8 -0
- package/examples/components/components.json +6 -0
- package/examples/components/copy-text/LICENSE.react-dom.txt +21 -0
- package/examples/components/copy-text/LICENSE.react.txt +21 -0
- package/examples/components/copy-text/LICENSE.scheduler.txt +21 -0
- package/examples/components/copy-text/browser.jsx +21 -0
- package/examples/components/copy-text/components.json +6 -0
- package/examples/components/copy-text/package-lock.json +41 -0
- package/examples/components/copy-text/package.json +9 -0
- package/examples/components/copy-text/plugin.mjs +5 -0
- package/examples/components/retry-budget/LICENSE.react-dom.txt +21 -0
- package/examples/components/retry-budget/LICENSE.react.txt +21 -0
- package/examples/components/retry-budget/LICENSE.scheduler.txt +21 -0
- package/examples/components/retry-budget/browser.jsx +50 -0
- package/examples/components/retry-budget/components.json +6 -0
- package/examples/components/retry-budget/model.js +22 -0
- package/examples/components/retry-budget/package-lock.json +41 -0
- package/examples/components/retry-budget/package.json +9 -0
- package/examples/components/retry-budget/plugin.mjs +31 -0
- package/examples/components/retry-budget/policy.json +9 -0
- package/examples/components/retry-budget/style.css +25 -0
- package/examples/diagrams/d2-gallery.json +138 -0
- package/examples/diagrams/gallery.json +236 -0
- package/examples/help-drawer/README.md +44 -0
- package/examples/help-drawer/app.js +53 -0
- package/examples/help-drawer/components/components.json +1 -0
- package/examples/help-drawer/components/support.mjs +10 -0
- package/examples/help-drawer/content/account.md +8 -0
- package/examples/help-drawer/content/billing.mdx +29 -0
- package/examples/help-drawer/content/keys.mdx +46 -0
- package/examples/help-drawer/content/settings.svg +1 -0
- package/examples/help-drawer/docs.config.yaml +30 -0
- package/examples/help-drawer/index.html +26 -0
- package/examples/help-drawer/preview.mjs +33 -0
- package/examples/mcp-analytics/README.md +59 -0
- package/examples/mcp-analytics/posthog.mjs +159 -0
- package/package.json +100 -4
- package/schemas/content-export.schema.json +55 -0
- package/skills/shoalrun-author/SKILL.md +52 -0
- package/skills/shoalrun-component-author/SKILL.md +24 -0
- package/skills/shoalrun-recipes/SKILL.md +25 -0
- package/skills/shoalrun-setup/SKILL.md +34 -0
- package/skills/shoalrun-walkthrough/SKILL.md +18 -0
- package/styles/fonts/figtree-LICENSE.txt +93 -0
- package/styles/fonts/figtree-italic.woff2 +0 -0
- package/styles/fonts/figtree.woff2 +0 -0
- package/styles/fonts/inter-LICENSE.txt +93 -0
- package/styles/fonts/inter-italic.woff2 +0 -0
- package/styles/fonts/inter.woff2 +0 -0
- package/styles/fonts/jetbrains-mono-LICENSE.txt +93 -0
- package/styles/fonts/jetbrains-mono.woff2 +0 -0
- package/styles/fonts/jost-LICENSE.txt +93 -0
- package/styles/fonts/jost-italic.woff2 +0 -0
- package/styles/fonts/jost.woff2 +0 -0
- package/styles/fonts/share/figtree-400.ttf +0 -0
- package/styles/fonts/share/figtree-700.ttf +0 -0
- package/styles/fonts/share/inter-400.ttf +0 -0
- package/styles/fonts/share/inter-700.ttf +0 -0
- package/styles/fonts/share/jetbrains-mono-700.ttf +0 -0
- package/styles/fonts/share/jost-italic-800.ttf +0 -0
- package/styles/fonts/share/metrics.json +1 -0
- package/styles/fonts/share/source-serif-4-400.ttf +0 -0
- package/styles/fonts/source-serif-4-LICENSE.txt +93 -0
- package/styles/fonts/source-serif-4-italic.woff2 +0 -0
- package/styles/fonts/source-serif-4.woff2 +0 -0
- package/styles/header.css +56 -0
- package/styles/site.css +825 -0
- package/styles/themes/ledger.css +93 -0
- package/styles/themes/palettes/amethyst.yaml +127 -0
- package/styles/themes/palettes/coral.yaml +127 -0
- package/styles/themes/palettes/harbor.yaml +127 -0
- package/styles/themes/palettes/ink.yaml +127 -0
- package/styles/themes/palettes/kelp.yaml +127 -0
- package/styles/themes/palettes/vice.yaml +127 -0
- package/styles/themes/reef.css +68 -0
- package/styles/themes/vice.css +56 -0
- package/styles/tokens.css +91 -0
- package/templates/api-reference.mdx +133 -0
- package/templates/cookbook.mdx +38 -0
- package/templates/explanation.mdx +76 -0
- package/templates/guide.mdx +175 -0
- package/templates/how-to.mdx +171 -0
- package/templates/ingredient.mdx +53 -0
- package/templates/recipe.mdx +76 -0
- package/templates/reference.mdx +171 -0
- package/templates/troubleshooting.mdx +159 -0
- package/templates/tutorial.mdx +165 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: guide.passage-index
|
|
3
|
+
title: Passage index
|
|
4
|
+
summary: Passage file formats, chunking rules, identifiers, embedding behavior,
|
|
5
|
+
and limits.
|
|
6
|
+
type: reference
|
|
7
|
+
area: discovery
|
|
8
|
+
subarea: discovery-search
|
|
9
|
+
subjectLifecycle: experimental
|
|
10
|
+
canonical: /chat/passage-index
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Passage index
|
|
14
|
+
|
|
15
|
+
> Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
|
|
16
|
+
|
|
17
|
+
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)
|
|
18
|
+
|
|
19
|
+
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search and chat > Reference > Passage index
|
|
20
|
+
|
|
21
|
+
**Updated: 2026-10-25.**
|
|
22
|
+
|
|
23
|
+
**Status: Experimental.**
|
|
24
|
+
|
|
25
|
+
Parent page: [Full Markdown page](/chat/passage-index.md)
|
|
26
|
+
|
|
27
|
+
A passage index splits built Markdown pages into smaller pieces for retrieval. Each passage keeps its page title, heading path, and source link. [Chat](https://www.shoalrun.com/chat.md) and custom passage-search providers use it to find relevant parts of a page.
|
|
28
|
+
|
|
29
|
+
The built-in [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. You do not need a passage index for normal static-site search.
|
|
30
|
+
|
|
31
|
+
Create the files after building the site:
|
|
32
|
+
|
|
33
|
+
| Command | Adds | Provider requests |
|
|
34
|
+
| ------------------------ | -------------------------------------------------- | ------------------------------------------------- |
|
|
35
|
+
| `shoalrun index` | `ai/chunks.json`, the passage text and metadata. | None. |
|
|
36
|
+
| `shoalrun index --embed` | Passage index plus embedding metadata and vectors. | Sends embedding input to the configured provider. |
|
|
37
|
+
|
|
38
|
+
Indexing leaves published page content unchanged. The files sit beside the build output, and you must rebuild the index when that output changes.
|
|
39
|
+
|
|
40
|
+
## What a passage contains
|
|
41
|
+
|
|
42
|
+
Each entry in `chunks` describes one passage:
|
|
43
|
+
|
|
44
|
+
```json title="ai/chunks.json"
|
|
45
|
+
{
|
|
46
|
+
"id": "guide.configuration#understand-the-three-stages",
|
|
47
|
+
"docId": "guide.configuration",
|
|
48
|
+
"title": "Organize project configuration",
|
|
49
|
+
"type": "how-to",
|
|
50
|
+
"variant": "production|current|en",
|
|
51
|
+
"headingPath": ["Understand the three stages"],
|
|
52
|
+
"url": "/configuration#understand-the-three-stages",
|
|
53
|
+
"markdownUrl": "/configuration.md",
|
|
54
|
+
"text": "Configuration takes effect in three stages:\n\n1. **Resolve co…",
|
|
55
|
+
"digest": "be259c2f4c0c896d1fe25ed496ac642f97391744675e06ee844f09372e47767a",
|
|
56
|
+
"search": {
|
|
57
|
+
"schemaVersion": 1,
|
|
58
|
+
"paragraphs": ["Configuration takes effect in three stages: …"],
|
|
59
|
+
"literalLines": []
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
| Field | Value |
|
|
65
|
+
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| `id` | The passage ID. See [Passage IDs](https://www.shoalrun.com/chat/passage-index.md#passage-ids-and-links). |
|
|
67
|
+
| `docId`, `title`, `type` | The page's ID, title, and type. |
|
|
68
|
+
| `variant` | The page's channel, version, and language, joined by `\|`. Passages from different publications never mix. |
|
|
69
|
+
| `headingPath` | The `##` and `###` headings above the passage, outermost first. Empty for an intro passage. |
|
|
70
|
+
| `url` | The page URL, plus `#` and the section's heading ID when one exists. |
|
|
71
|
+
| `markdownUrl` | The page's Markdown twin. |
|
|
72
|
+
| `readerFilters` | Optional. The page's reader marks, such as `{ "audience": ["maintainers"] }`. It is present only when the page has marks. Retrieval uses it to answer for one audience. |
|
|
73
|
+
| `text` | The passage's Markdown, without its own heading. |
|
|
74
|
+
| `digest` | A SHA-256 hash of the passage's embedding input. |
|
|
75
|
+
| `search` | Prepared result content: `schemaVersion: 1`, explanatory `paragraphs`, and code/table `literalLines`. Generated navigation lists are excluded from the paragraphs. |
|
|
76
|
+
|
|
77
|
+
The file also records `schemaVersion` and a `sourceDigest` that changes when any page's digest changes.
|
|
78
|
+
|
|
79
|
+
### Embedding input
|
|
80
|
+
|
|
81
|
+
The heading path isn't part of `text`. Anything that scores or embeds a passage reads the page title, the heading path, and the text together:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
Organize project configuration > Understand the three stages
|
|
85
|
+
|
|
86
|
+
Configuration takes effect in three stages: …
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`digest` hashes that string, so it changes when the title, the heading path, or the text changes. A stored vector or score that no longer matches a passage's digest is stale.
|
|
90
|
+
|
|
91
|
+
The derived `search` data is not part of the embedding input or its digest. Preparing it does not require new embeddings for unchanged passages.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: guide.prepared-answers
|
|
3
|
+
title: Generate and refresh answer cards
|
|
4
|
+
summary: Generate and review common answers ahead of time, then serve confirmed
|
|
5
|
+
cards without a new chat-model answer.
|
|
6
|
+
type: how-to
|
|
7
|
+
area: discovery
|
|
8
|
+
subarea: discovery-chat
|
|
9
|
+
subjectLifecycle: experimental
|
|
10
|
+
canonical: /chat/prepared-answers
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Generate and refresh answer cards
|
|
14
|
+
|
|
15
|
+
> Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
|
|
16
|
+
|
|
17
|
+
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)
|
|
18
|
+
|
|
19
|
+
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search and chat > Documentation chat > Answer cards
|
|
20
|
+
|
|
21
|
+
**Updated: 2026-10-26.**
|
|
22
|
+
|
|
23
|
+
**Status: Experimental.**
|
|
24
|
+
|
|
25
|
+
An answer card stores a reviewed answer to a recurring question. Generate cards after local chat works, then review their text before serving them. Start in your documentation project root with the CLI available.
|
|
26
|
+
|
|
27
|
+
A confirmed card avoids generating a new answer. Matching still calls the embedding provider and relevance scorer.
|
|
28
|
+
|
|
29
|
+
> **Note:** An answer card is not a page card. Page cards preview another page; see [Cards and collections](https://www.shoalrun.com/author/components/cards.md). Answer cards are stored answers.
|
|
30
|
+
|
|
31
|
+
## What you need
|
|
32
|
+
|
|
33
|
+
- A site indexed with `--embed`. See [Passage index](https://www.shoalrun.com/chat/passage-index.md).
|
|
34
|
+
- A `chat` section with `rerank: jev` and a `cards` setting. See [Retrieval and chat settings](https://www.shoalrun.com/chat/settings.md).
|
|
35
|
+
- A configured chat service and the provider keys used by `shoalrun ask`. Card generation can make new provider requests each time it runs.
|
|
36
|
+
|
|
37
|
+
## List the questions
|
|
38
|
+
|
|
39
|
+
Write the questions in a YAML or JSON file. Each is a string, or a mapping with `question` and `aliases`. Aliases are other ways to ask the same thing.
|
|
40
|
+
|
|
41
|
+
```yaml title="config/answers.yaml"
|
|
42
|
+
- question: how do I reset my password
|
|
43
|
+
aliases: [forgot my password, change my password]
|
|
44
|
+
- question: how do I export my data
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The file can live anywhere. You pass its path to the next command.
|
|
48
|
+
|
|
49
|
+
## Build the cards
|
|
50
|
+
|
|
51
|
+
Card generation uses providers and can produce different wording on each run:
|
|
52
|
+
|
|
53
|
+
- `index --embed` sends new or changed passages to the embedding provider.
|
|
54
|
+
- `answers` calls the embedding provider and scorer, then the chat model for questions that pass the coverage gate.
|
|
55
|
+
- Fallback and escalation settings can add chat-model calls.
|
|
56
|
+
|
|
57
|
+
Run the commands, then review the generated file before publishing:
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
shoalrun index site-dist --embed
|
|
61
|
+
shoalrun answers site-dist --questions config/answers.yaml
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Each question goes through the normal retrieval and answer checks. The command turns off card reuse and direct excerpts while generating cards, so an accepted card contains a freshly written answer. It also embeds each kept question and its aliases for later similarity matching. A question the docs do not cover may be declined before a chat-model call. The command writes `ai/answers.json` and reports kept and skipped questions. It skips a question when:
|
|
65
|
+
|
|
66
|
+
- The docs don't cover it.
|
|
67
|
+
- The answer was hedged.
|
|
68
|
+
- The answer cites nothing.
|
|
69
|
+
- A check flagged a sentence, some code, or a citation.
|
|
70
|
+
|
|
71
|
+
A skipped question is a signal. Either the docs need a page for it, or the question is too broad for one answer.
|
|
72
|
+
|
|
73
|
+
`ai/answers.json` is plain JSON. Each card holds its question, aliases, answer, sources, and the digest of every passage behind it. Read the answers before you ship them. The command writes the whole file each time, so to drop a card, remove its question from your list and run the command again.
|
|
74
|
+
|
|
75
|
+
## How a card is used
|
|
76
|
+
|
|
77
|
+
With `chat.cards` set, a question that opens a conversation is checked against cards in two steps:
|
|
78
|
+
|
|
79
|
+
1. The query embedding provider embeds the new question. Its vector is compared with each card's question vectors. A card at least `threshold` similar is shortlisted. The default is 0.75.
|
|
80
|
+
2. The relevance scorer checks whether the card's stored answer really answers this question. The card is used only at `confirm` or higher. The default is 0.9. A confirmed card needs no new chat-model answer.
|
|
81
|
+
|
|
82
|
+
Similarity alone can confuse related questions, such as turning notifications on versus turning them off. Scorer confirmation is a separate check against the stored answer. If no card is confirmed, the question follows the normal answer pipeline.
|
|
83
|
+
|
|
84
|
+
A follow-up never uses a card. A card also belongs to one publication and reader view, and a question asked in another view never uses it. `--no-cards` on `shoalrun ask` turns cards off for one run.
|
|
85
|
+
|
|
86
|
+
## Keep cards current
|
|
87
|
+
|
|
88
|
+
A card records the digest of each source passage. When a passage changes, the card stops being used without a warning. Run `shoalrun answers` after documentation changes to refresh the cards.
|
|
89
|
+
|
|
90
|
+
If `ai/answers.json` is missing, or was made with a different embedding model, `ask` says so and carries on without cards.
|
|
91
|
+
|
|
92
|
+
## Find questions worth a card
|
|
93
|
+
|
|
94
|
+
The question log shows what readers ask. Questions that were asked at least twice, that the model answered cleanly, and that no card covers make good candidates.
|
|
95
|
+
|
|
96
|
+
```sh
|
|
97
|
+
shoalrun ask-log ask.jsonl --cards-out candidates.yaml
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`--cards-out` writes a new file and never replaces one. Review the list and move the questions you want into your questions file. Change the repeat count with `--min-repeats`. See [Keep a record of questions](https://www.shoalrun.com/chat/host.md) for how to record the log.
|
|
101
|
+
|
|
102
|
+
## Where cards work
|
|
103
|
+
|
|
104
|
+
Cards work in the terminal, the local panel, and the Vercel chat function.
|
|
105
|
+
|
|
106
|
+
For Vercel, build with `--chat`, then run `shoalrun answers` against the function's private `site` directory before deployment. The function reads `site/ai/answers.json` from that directory. A plain `shoalrun vercel build --chat` embeds passages but does not generate cards.
|
|
107
|
+
|
|
108
|
+
This repository's `npm run docs:build-all` performs both steps. See [Publish on Vercel](https://www.shoalrun.com/publish/vercel.md) for the deployment workflow.
|
|
109
|
+
|
|
110
|
+
## Related reading
|
|
111
|
+
|
|
112
|
+
### Reference while working
|
|
113
|
+
|
|
114
|
+
- [CLI reference](https://www.shoalrun.com/cli.md) — Look up the answers and ask-log commands and the --no-cards option.
|
|
115
|
+
|
|
116
|
+
- [Retrieval and chat settings](https://www.shoalrun.com/chat/settings.md) — Look up the chat.cards settings. (Status: experimental.)
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: reference.chat-config
|
|
3
|
+
title: Retrieval and chat settings
|
|
4
|
+
summary: Look up embedding, chat-model, scoring, and answer-reuse configuration.
|
|
5
|
+
type: reference
|
|
6
|
+
area: discovery
|
|
7
|
+
subarea: discovery-chat
|
|
8
|
+
subjectLifecycle: experimental
|
|
9
|
+
canonical: /chat/settings
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Retrieval and chat settings
|
|
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) > Search and chat > Reference > Retrieval and chat settings
|
|
19
|
+
|
|
20
|
+
**Updated: 2026-10-25.**
|
|
21
|
+
|
|
22
|
+
**Status: Experimental.**
|
|
23
|
+
|
|
24
|
+
Use this reference to look up fields after choosing a setup. For a working sequence, start with [local chat setup](https://www.shoalrun.com/chat/setup.md).
|
|
25
|
+
|
|
26
|
+
`retrieval` configures embeddings; `chat` configures answer generation and optional checks. Both sections are optional. A normal site build validates them without calling these providers.
|
|
27
|
+
|
|
28
|
+
## Configure retrieval
|
|
29
|
+
|
|
30
|
+
`retrieval.embeddings` supplies embeddings for passage indexing, semantic queries, and hosted chat builds. Choose a provider and model when you need meaning-based retrieval.
|
|
31
|
+
|
|
32
|
+
```yaml title="docs.config.yaml"
|
|
33
|
+
retrieval:
|
|
34
|
+
embeddings:
|
|
35
|
+
provider: voyage
|
|
36
|
+
model: voyage-4-large
|
|
37
|
+
dimension: 1024
|
|
38
|
+
queryModel: voyage-4-lite
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
To use OpenAI's embeddings, or a server that copies its API, such as Ollama, vLLM, or a LiteLLM proxy, name the `openai` provider:
|
|
42
|
+
|
|
43
|
+
```yaml title="docs.config.yaml"
|
|
44
|
+
retrieval:
|
|
45
|
+
embeddings:
|
|
46
|
+
provider: openai
|
|
47
|
+
model: text-embedding-3-small
|
|
48
|
+
keyEnv: OPENAI_API_KEY
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
| Key | Meaning |
|
|
52
|
+
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
53
|
+
| `provider` | Required. `voyage` or `openai`. |
|
|
54
|
+
| `model` | Required. The embedding model ID. |
|
|
55
|
+
| `dimension` | The vector size. Voyage accepts 256, 512, 1024, or 2048. Other models need it unless Shoalrun knows the model's size. |
|
|
56
|
+
| `queryModel` | The model that embeds queries. It must share an embedding space with `model`, as the Voyage 4 models do. Without it, queries use `model`. |
|
|
57
|
+
| `baseUrl` | `openai` only. An OpenAI-style server, such as `http://localhost:11434/v1` for Ollama. |
|
|
58
|
+
| `keyEnv` | The name of the environment variable that holds the key. It defaults to `VOYAGE_API_KEY` or `OPENAI_API_KEY`. |
|
|
59
|
+
|
|
60
|
+
The config never holds a key. A key setting fails validation, and `keyEnv` fails if its value isn't a variable name. Command-line flags on `shoalrun index` override these settings. See [Passage index](https://www.shoalrun.com/chat/passage-index.md) for the files that `--embed` writes.
|
|
61
|
+
|
|
62
|
+
## Configure chat
|
|
63
|
+
|
|
64
|
+
`chat` configures the OpenAI-compatible service that writes answers. Choose a provider and model; there is no default model. Start with these fields, then add optional checks or reuse settings as needed.
|
|
65
|
+
|
|
66
|
+
```yaml title="docs.config.yaml"
|
|
67
|
+
chat:
|
|
68
|
+
provider: openai
|
|
69
|
+
model: deepseek/deepseek-v4-flash
|
|
70
|
+
baseUrl: https://openrouter.ai/api/v1
|
|
71
|
+
keyEnv: OPENROUTER_API_KEY
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
These fields configure the service and answer limits:
|
|
75
|
+
|
|
76
|
+
| Key | Meaning |
|
|
77
|
+
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
78
|
+
| `provider` | Required. `openai`, which covers any OpenAI-style service. |
|
|
79
|
+
| `model` | Required. The model ID that your service uses. |
|
|
80
|
+
| `baseUrl` | The service's API address. It defaults to `https://api.openai.com/v1`. |
|
|
81
|
+
| `keyEnv` | The name of the environment variable that holds the key. It defaults to `OPENAI_API_KEY`. Services on `localhost` need no key. |
|
|
82
|
+
| `body` | Extra fields to send with every request, such as OpenRouter's `reasoning`. See [Send extra request fields](#send-extra-request-fields). |
|
|
83
|
+
| `passages` | How many passages the model sees, from 1 to 20. |
|
|
84
|
+
| `maxTokens` | The longest answer the model may write. Reasoning models need a larger value. |
|
|
85
|
+
| `temperature` | A number from 0 to 2. Without it, the service's default applies. |
|
|
86
|
+
|
|
87
|
+
### Optional layers
|
|
88
|
+
|
|
89
|
+
Add these fields to `chat` when the corresponding capability is needed. Scorer-dependent fields require `rerank: jev` or an equivalent scorer mapping.
|
|
90
|
+
|
|
91
|
+
| Key | Meaning |
|
|
92
|
+
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
93
|
+
| `readerView` | Whose questions the chat answers, as reader filter choices. See [Answer for one audience](https://www.shoalrun.com/chat/checks.md). |
|
|
94
|
+
| `rerank` | `jev` reorders the top 24 results with a relevance scorer. It needs `JEV_API_KEY`. To use a different service, give a mapping instead. See [Choose the scorer](#choose-the-scorer). |
|
|
95
|
+
| `gate` | Needs `rerank: jev`. `decline` and `hedge` are Jev scores from 0 to 1, and `decline` must be lower. |
|
|
96
|
+
| `verify` | Needs `rerank: jev`. `threshold` is a Jev score above 0 and below 1. `onUnsupported` is `flag` (the default) or `remove`. See [How an answer is checked](https://www.shoalrun.com/chat/checks.md). |
|
|
97
|
+
| `direct` | Needs `rerank: jev`. Shows a passage word for word instead of calling the model. See [Answer without a model](https://www.shoalrun.com/chat/checks.md). |
|
|
98
|
+
| `fallback` | A list of one to five other models to try, in order, when the main one fails. See [Use more than one model](#use-more-than-one-model). |
|
|
99
|
+
| `escalate` | A second model to ask when the checks flag an answer, with an optional `when` list. See [Use more than one model](#use-more-than-one-model). |
|
|
100
|
+
| `budget` | Daily caps on questions that reach the model. See [Cap the daily spend](https://www.shoalrun.com/chat/host.md). |
|
|
101
|
+
| `challenge` | A Turnstile check for a hosted chat. See [Host the chat on Vercel](https://www.shoalrun.com/chat/host.md). |
|
|
102
|
+
| `log` | Records questions on a hosted chat. See [Host the chat on Vercel](https://www.shoalrun.com/chat/host.md). |
|
|
103
|
+
| `cache` | Keeps clean answers so a repeated question costs nothing. `maxEntries` (default 500) and `ttlMinutes` (default 1,440) set the size and the age. See [Reuse answers](https://www.shoalrun.com/chat/checks.md). |
|
|
104
|
+
| `cards` | Needs `rerank: jev`. Serves answers written ahead of time. `threshold` (default 0.75) shortlists a card by similarity, and `confirm` (default 0.9) is the Jev score that must confirm it. See [Prepared answers](https://www.shoalrun.com/chat/prepared-answers.md). |
|
|
105
|
+
|
|
106
|
+
The gate uses the best passage score:
|
|
107
|
+
|
|
108
|
+
- Below `decline`: return a not-covered response without a chat-model call.
|
|
109
|
+
- Between `decline` and `hedge`: generate an answer with a partial-coverage warning.
|
|
110
|
+
- At or above `hedge`: generate an answer normally.
|
|
111
|
+
|
|
112
|
+
The config never holds a key. A key setting fails validation, and `keyEnv` fails if its value isn't a variable name. The `--model` flag on `shoalrun ask` overrides `model`, so you can try another model without editing the config.
|
|
113
|
+
|
|
114
|
+
## Send extra request fields
|
|
115
|
+
|
|
116
|
+
Some services accept request fields that Shoalrun doesn't know about. `chat.body` adds them to every request. On OpenRouter, the useful ones are `reasoning`, which controls whether a model thinks before it answers, and `provider`, which picks who serves the model.
|
|
117
|
+
|
|
118
|
+
```yaml title="docs.config.yaml"
|
|
119
|
+
chat:
|
|
120
|
+
model: deepseek/deepseek-v4-flash
|
|
121
|
+
body: { reasoning: { enabled: false } }
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The fields can add to a request but can't replace what Shoalrun sets, which is `model`, `messages`, `max_tokens`, `temperature`, and `stream`. Use `chat.model`, `chat.maxTokens`, and `chat.temperature` for those. A field whose name looks like a secret, such as a key, token, or password, fails validation, because the config never holds a key. Each fallback and escalation model inherits `body` and can replace it with its own. An empty `body: {}` clears it. Another service may reject a field it doesn't know, so check what yours accepts.
|
|
125
|
+
|
|
126
|
+
Service-specific fields can affect latency, cost, and quality. Test them with your own questions and model; support and effects vary by service. Shoalrun does not interpret those extra fields.
|
|
127
|
+
|
|
128
|
+
## Choose the scorer
|
|
129
|
+
|
|
130
|
+
The scorer behind `rerank`, `gate`, `verify`, `direct`, and `cards` is a service that answers yes-or-no questions about a passage. `provider: jev` names the protocol it speaks, `POST /v1/systemone`, and not one vendor. Any service or local server that speaks it works. With no other settings, Shoalrun reads the address, model, and key from `JEV_API_KEY`, `TYPESAFE_API_KEY`, `TYPESAFE_ENDPOINT`, and `JEV_MODEL`. To choose them in config, use a mapping.
|
|
131
|
+
|
|
132
|
+
```yaml title="docs.config.yaml"
|
|
133
|
+
chat:
|
|
134
|
+
rerank:
|
|
135
|
+
provider: jev
|
|
136
|
+
endpoint: https://scorer.example.com
|
|
137
|
+
model: your-model-name
|
|
138
|
+
keyEnv: SCORER_API_KEY
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
| Setting | What it does |
|
|
142
|
+
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
143
|
+
| `provider` | Must be `jev`. |
|
|
144
|
+
| `endpoint` | The service address. It must use `https`, except for `localhost`, and can't hold credentials or a query. Shoalrun adds `/v1/systemone` when the address doesn't end there. |
|
|
145
|
+
| `model` | The model name the service expects. |
|
|
146
|
+
| `onError` | What to do when the scorer fails: `search` (the default) or `answer`. See [When the scorer is down](#when-the-scorer-is-down). |
|
|
147
|
+
| `keyEnv` | The name of the environment variable that holds the key. The config never holds the key. |
|
|
148
|
+
| `stateFormat` | `object` (the default) or `string`. Some scorers accept the text to judge only as a string. Use `string` for those. |
|
|
149
|
+
|
|
150
|
+
OpenRouter serves Jev at the same protocol and price, so the chat model and the scorer can share one key:
|
|
151
|
+
|
|
152
|
+
```yaml title="docs.config.yaml"
|
|
153
|
+
chat:
|
|
154
|
+
rerank:
|
|
155
|
+
provider: jev
|
|
156
|
+
endpoint: https://openrouter.ai/api/v1
|
|
157
|
+
model: typesafe/jev-1.13
|
|
158
|
+
keyEnv: OPENROUTER_API_KEY
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Scores from different services aren't comparable. The gate, `verify`, `direct`, and `cards` thresholds are numbers on one scorer's scale. After a change, run `shoalrun answers` and the answer eval again, and expect to adjust them. Cached scores are kept per address and model, so a change never reuses an old service's scores.
|
|
162
|
+
|
|
163
|
+
## When the scorer is down
|
|
164
|
+
|
|
165
|
+
The scorer is what keeps a question the docs don't cover from reaching the model. If it fails, by timing out, running out of budget, returning an error, or having no key, there are two ways to go.
|
|
166
|
+
|
|
167
|
+
- **`search` (the default).** The chat doesn't call the model. It shows the closest pages from retrieval and says it can't check answers right now. Nobody can use an outage to get free model output for any question, and readers still get somewhere to go.
|
|
168
|
+
- **`answer`.** The model answers without the gate and the claim check, and the answer carries a note that the checks were skipped. Use this when a reader-facing outage costs more than the risk. On a public site, every question then reaches the model, and only the rate limits and token caps stand in the way.
|
|
169
|
+
|
|
170
|
+
```yaml title="docs.config.yaml"
|
|
171
|
+
chat:
|
|
172
|
+
rerank: { provider: jev, onError: answer }
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Neither mode caches anything from an outage, so an unchecked answer can't outlive it. This applies only when a scorer is configured. With no `rerank`, the model answers every question, because you chose that.
|
|
176
|
+
|
|
177
|
+
## Use more than one model
|
|
178
|
+
|
|
179
|
+
Use `fallback` for provider failures and `escalate` for answers flagged by checks. Both are optional:
|
|
180
|
+
|
|
181
|
+
```yaml title="docs.config.yaml"
|
|
182
|
+
chat:
|
|
183
|
+
provider: openai
|
|
184
|
+
model: deepseek/deepseek-v4-flash
|
|
185
|
+
baseUrl: https://openrouter.ai/api/v1
|
|
186
|
+
keyEnv: OPENROUTER_API_KEY
|
|
187
|
+
fallback: [{ model: openai/gpt-6-luna }]
|
|
188
|
+
escalate: { model: z-ai/glm-5.3-flash, when: [unsupported-claim, uncited] }
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Each extra model inherits the provider, address, key variable, and limits from the main settings. Name only what differs. A model on a different service can set its own `baseUrl` and `keyEnv`. The `--model` flag on `ask` replaces the main model and leaves the others alone.
|
|
192
|
+
|
|
193
|
+
### Fallback
|
|
194
|
+
|
|
195
|
+
If the main model errors, times out, or returns no text, `ask` tries the next model in the list. Use a model from a different lab, so one outage doesn't stop the chat. The result records which model answered and which failed, with the reason. If every model fails, the error lists all of them.
|
|
196
|
+
|
|
197
|
+
### Escalation
|
|
198
|
+
|
|
199
|
+
The main model answers first, and the checks run. If one of the `when` reasons applies, `ask` asks the escalation model the same question with the same passages and runs the same checks. It shows whichever answer has fewer flags, and the first one if they tie. The supported reasons are:
|
|
200
|
+
|
|
201
|
+
| Reason | Fires when |
|
|
202
|
+
| ------------------- | ---------------------------------------------------------- |
|
|
203
|
+
| `unsupported-code` | The answer has code that isn't in the passages. |
|
|
204
|
+
| `uncited` | The answer cites no passage. |
|
|
205
|
+
| `unsupported-claim` | A sentence fails the claims check. It needs `chat.verify`. |
|
|
206
|
+
|
|
207
|
+
Without `when`, the reasons are `unsupported-code` and `uncited`, plus `unsupported-claim` when `verify` is set. The code check is a heuristic that can misjudge a valid example. A second answer from a thinking model adds seconds. So many sites limit `when` to `unsupported-claim` and `uncited`. A declined answer or a direct excerpt is never escalated. If the escalation model fails, the first answer is shown with a note. `--no-escalate` on `ask` turns it off for one run.
|
|
208
|
+
|
|
209
|
+
Choose an escalation model using reviewed questions that your primary model handles poorly. A larger model is not automatically a better fit.
|
|
210
|
+
|
|
211
|
+
## Related reading
|
|
212
|
+
|
|
213
|
+
No matching documents.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: reference.chat-config
|
|
3
|
+
title: Retrieval and chat settings
|
|
4
|
+
summary: Look up embedding, chat-model, scoring, and answer-reuse configuration.
|
|
5
|
+
type: reference
|
|
6
|
+
area: discovery
|
|
7
|
+
subarea: discovery-chat
|
|
8
|
+
subjectLifecycle: experimental
|
|
9
|
+
canonical: /chat/settings
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Retrieval and chat settings
|
|
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) > Search and chat > Reference > Retrieval and chat settings
|
|
19
|
+
|
|
20
|
+
**Updated: 2026-10-25.**
|
|
21
|
+
|
|
22
|
+
**Status: Experimental.**
|
|
23
|
+
|
|
24
|
+
Parent page: [Full Markdown page](/chat/settings.md)
|
|
25
|
+
|
|
26
|
+
Use this reference to look up fields after choosing a setup. For a working sequence, start with [local chat setup](https://www.shoalrun.com/chat/setup.md).
|
|
27
|
+
|
|
28
|
+
`retrieval` configures embeddings; `chat` configures answer generation and optional checks. Both sections are optional. A normal site build validates them without calling these providers.
|
|
29
|
+
|
|
30
|
+
## Choose the scorer
|
|
31
|
+
|
|
32
|
+
The scorer behind `rerank`, `gate`, `verify`, `direct`, and `cards` is a service that answers yes-or-no questions about a passage. `provider: jev` names the protocol it speaks, `POST /v1/systemone`, and not one vendor. Any service or local server that speaks it works. With no other settings, Shoalrun reads the address, model, and key from `JEV_API_KEY`, `TYPESAFE_API_KEY`, `TYPESAFE_ENDPOINT`, and `JEV_MODEL`. To choose them in config, use a mapping.
|
|
33
|
+
|
|
34
|
+
```yaml title="docs.config.yaml"
|
|
35
|
+
chat:
|
|
36
|
+
rerank:
|
|
37
|
+
provider: jev
|
|
38
|
+
endpoint: https://scorer.example.com
|
|
39
|
+
model: your-model-name
|
|
40
|
+
keyEnv: SCORER_API_KEY
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
| Setting | What it does |
|
|
44
|
+
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
45
|
+
| `provider` | Must be `jev`. |
|
|
46
|
+
| `endpoint` | The service address. It must use `https`, except for `localhost`, and can't hold credentials or a query. Shoalrun adds `/v1/systemone` when the address doesn't end there. |
|
|
47
|
+
| `model` | The model name the service expects. |
|
|
48
|
+
| `onError` | What to do when the scorer fails: `search` (the default) or `answer`. See [When the scorer is down](https://www.shoalrun.com/chat/settings.md#when-the-scorer-is-down). |
|
|
49
|
+
| `keyEnv` | The name of the environment variable that holds the key. The config never holds the key. |
|
|
50
|
+
| `stateFormat` | `object` (the default) or `string`. Some scorers accept the text to judge only as a string. Use `string` for those. |
|
|
51
|
+
|
|
52
|
+
OpenRouter serves Jev at the same protocol and price, so the chat model and the scorer can share one key:
|
|
53
|
+
|
|
54
|
+
```yaml title="docs.config.yaml"
|
|
55
|
+
chat:
|
|
56
|
+
rerank:
|
|
57
|
+
provider: jev
|
|
58
|
+
endpoint: https://openrouter.ai/api/v1
|
|
59
|
+
model: typesafe/jev-1.13
|
|
60
|
+
keyEnv: OPENROUTER_API_KEY
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Scores from different services aren't comparable. The gate, `verify`, `direct`, and `cards` thresholds are numbers on one scorer's scale. After a change, run `shoalrun answers` and the answer eval again, and expect to adjust them. Cached scores are kept per address and model, so a change never reuses an old service's scores.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: reference.chat-config
|
|
3
|
+
title: Retrieval and chat settings
|
|
4
|
+
summary: Look up embedding, chat-model, scoring, and answer-reuse configuration.
|
|
5
|
+
type: reference
|
|
6
|
+
area: discovery
|
|
7
|
+
subarea: discovery-chat
|
|
8
|
+
subjectLifecycle: experimental
|
|
9
|
+
canonical: /chat/settings
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Retrieval and chat settings
|
|
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) > Search and chat > Reference > Retrieval and chat settings
|
|
19
|
+
|
|
20
|
+
**Updated: 2026-10-25.**
|
|
21
|
+
|
|
22
|
+
**Status: Experimental.**
|
|
23
|
+
|
|
24
|
+
Parent page: [Full Markdown page](/chat/settings.md)
|
|
25
|
+
|
|
26
|
+
Use this reference to look up fields after choosing a setup. For a working sequence, start with [local chat setup](https://www.shoalrun.com/chat/setup.md).
|
|
27
|
+
|
|
28
|
+
`retrieval` configures embeddings; `chat` configures answer generation and optional checks. Both sections are optional. A normal site build validates them without calling these providers.
|
|
29
|
+
|
|
30
|
+
## Configure chat
|
|
31
|
+
|
|
32
|
+
`chat` configures the OpenAI-compatible service that writes answers. Choose a provider and model; there is no default model. Start with these fields, then add optional checks or reuse settings as needed.
|
|
33
|
+
|
|
34
|
+
```yaml title="docs.config.yaml"
|
|
35
|
+
chat:
|
|
36
|
+
provider: openai
|
|
37
|
+
model: deepseek/deepseek-v4-flash
|
|
38
|
+
baseUrl: https://openrouter.ai/api/v1
|
|
39
|
+
keyEnv: OPENROUTER_API_KEY
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
These fields configure the service and answer limits:
|
|
43
|
+
|
|
44
|
+
| Key | Meaning |
|
|
45
|
+
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
46
|
+
| `provider` | Required. `openai`, which covers any OpenAI-style service. |
|
|
47
|
+
| `model` | Required. The model ID that your service uses. |
|
|
48
|
+
| `baseUrl` | The service's API address. It defaults to `https://api.openai.com/v1`. |
|
|
49
|
+
| `keyEnv` | The name of the environment variable that holds the key. It defaults to `OPENAI_API_KEY`. Services on `localhost` need no key. |
|
|
50
|
+
| `body` | Extra fields to send with every request, such as OpenRouter's `reasoning`. See [Send extra request fields](https://www.shoalrun.com/chat/settings.md#send-extra-request-fields). |
|
|
51
|
+
| `passages` | How many passages the model sees, from 1 to 20. |
|
|
52
|
+
| `maxTokens` | The longest answer the model may write. Reasoning models need a larger value. |
|
|
53
|
+
| `temperature` | A number from 0 to 2. Without it, the service's default applies. |
|
|
54
|
+
|
|
55
|
+
### Optional layers
|
|
56
|
+
|
|
57
|
+
Add these fields to `chat` when the corresponding capability is needed. Scorer-dependent fields require `rerank: jev` or an equivalent scorer mapping.
|
|
58
|
+
|
|
59
|
+
| Key | Meaning |
|
|
60
|
+
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
61
|
+
| `readerView` | Whose questions the chat answers, as reader filter choices. See [Answer for one audience](https://www.shoalrun.com/chat/checks.md). |
|
|
62
|
+
| `rerank` | `jev` reorders the top 24 results with a relevance scorer. It needs `JEV_API_KEY`. To use a different service, give a mapping instead. See [Choose the scorer](https://www.shoalrun.com/chat/settings.md#choose-the-scorer). |
|
|
63
|
+
| `gate` | Needs `rerank: jev`. `decline` and `hedge` are Jev scores from 0 to 1, and `decline` must be lower. |
|
|
64
|
+
| `verify` | Needs `rerank: jev`. `threshold` is a Jev score above 0 and below 1. `onUnsupported` is `flag` (the default) or `remove`. See [How an answer is checked](https://www.shoalrun.com/chat/checks.md). |
|
|
65
|
+
| `direct` | Needs `rerank: jev`. Shows a passage word for word instead of calling the model. See [Answer without a model](https://www.shoalrun.com/chat/checks.md). |
|
|
66
|
+
| `fallback` | A list of one to five other models to try, in order, when the main one fails. See [Use more than one model](https://www.shoalrun.com/chat/settings.md#use-more-than-one-model). |
|
|
67
|
+
| `escalate` | A second model to ask when the checks flag an answer, with an optional `when` list. See [Use more than one model](https://www.shoalrun.com/chat/settings.md#use-more-than-one-model). |
|
|
68
|
+
| `budget` | Daily caps on questions that reach the model. See [Cap the daily spend](https://www.shoalrun.com/chat/host.md). |
|
|
69
|
+
| `challenge` | A Turnstile check for a hosted chat. See [Host the chat on Vercel](https://www.shoalrun.com/chat/host.md). |
|
|
70
|
+
| `log` | Records questions on a hosted chat. See [Host the chat on Vercel](https://www.shoalrun.com/chat/host.md). |
|
|
71
|
+
| `cache` | Keeps clean answers so a repeated question costs nothing. `maxEntries` (default 500) and `ttlMinutes` (default 1,440) set the size and the age. See [Reuse answers](https://www.shoalrun.com/chat/checks.md). |
|
|
72
|
+
| `cards` | Needs `rerank: jev`. Serves answers written ahead of time. `threshold` (default 0.75) shortlists a card by similarity, and `confirm` (default 0.9) is the Jev score that must confirm it. See [Prepared answers](https://www.shoalrun.com/chat/prepared-answers.md). |
|
|
73
|
+
|
|
74
|
+
The gate uses the best passage score:
|
|
75
|
+
|
|
76
|
+
- Below `decline`: return a not-covered response without a chat-model call.
|
|
77
|
+
- Between `decline` and `hedge`: generate an answer with a partial-coverage warning.
|
|
78
|
+
- At or above `hedge`: generate an answer normally.
|
|
79
|
+
|
|
80
|
+
The config never holds a key. A key setting fails validation, and `keyEnv` fails if its value isn't a variable name. The `--model` flag on `shoalrun ask` overrides `model`, so you can try another model without editing the config.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: reference.chat-config
|
|
3
|
+
title: Retrieval and chat settings
|
|
4
|
+
summary: Look up embedding, chat-model, scoring, and answer-reuse configuration.
|
|
5
|
+
type: reference
|
|
6
|
+
area: discovery
|
|
7
|
+
subarea: discovery-chat
|
|
8
|
+
subjectLifecycle: experimental
|
|
9
|
+
canonical: /chat/settings
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Retrieval and chat settings
|
|
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) > Search and chat > Reference > Retrieval and chat settings
|
|
19
|
+
|
|
20
|
+
**Updated: 2026-10-25.**
|
|
21
|
+
|
|
22
|
+
**Status: Experimental.**
|
|
23
|
+
|
|
24
|
+
Parent page: [Full Markdown page](/chat/settings.md)
|
|
25
|
+
|
|
26
|
+
Use this reference to look up fields after choosing a setup. For a working sequence, start with [local chat setup](https://www.shoalrun.com/chat/setup.md).
|
|
27
|
+
|
|
28
|
+
`retrieval` configures embeddings; `chat` configures answer generation and optional checks. Both sections are optional. A normal site build validates them without calling these providers.
|
|
29
|
+
|
|
30
|
+
## Configure retrieval
|
|
31
|
+
|
|
32
|
+
`retrieval.embeddings` supplies embeddings for passage indexing, semantic queries, and hosted chat builds. Choose a provider and model when you need meaning-based retrieval.
|
|
33
|
+
|
|
34
|
+
```yaml title="docs.config.yaml"
|
|
35
|
+
retrieval:
|
|
36
|
+
embeddings:
|
|
37
|
+
provider: voyage
|
|
38
|
+
model: voyage-4-large
|
|
39
|
+
dimension: 1024
|
|
40
|
+
queryModel: voyage-4-lite
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
To use OpenAI's embeddings, or a server that copies its API, such as Ollama, vLLM, or a LiteLLM proxy, name the `openai` provider:
|
|
44
|
+
|
|
45
|
+
```yaml title="docs.config.yaml"
|
|
46
|
+
retrieval:
|
|
47
|
+
embeddings:
|
|
48
|
+
provider: openai
|
|
49
|
+
model: text-embedding-3-small
|
|
50
|
+
keyEnv: OPENAI_API_KEY
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
| Key | Meaning |
|
|
54
|
+
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
55
|
+
| `provider` | Required. `voyage` or `openai`. |
|
|
56
|
+
| `model` | Required. The embedding model ID. |
|
|
57
|
+
| `dimension` | The vector size. Voyage accepts 256, 512, 1024, or 2048. Other models need it unless Shoalrun knows the model's size. |
|
|
58
|
+
| `queryModel` | The model that embeds queries. It must share an embedding space with `model`, as the Voyage 4 models do. Without it, queries use `model`. |
|
|
59
|
+
| `baseUrl` | `openai` only. An OpenAI-style server, such as `http://localhost:11434/v1` for Ollama. |
|
|
60
|
+
| `keyEnv` | The name of the environment variable that holds the key. It defaults to `VOYAGE_API_KEY` or `OPENAI_API_KEY`. |
|
|
61
|
+
|
|
62
|
+
The config never holds a key. A key setting fails validation, and `keyEnv` fails if its value isn't a variable name. Command-line flags on `shoalrun index` override these settings. See [Passage index](https://www.shoalrun.com/chat/passage-index.md) for the files that `--embed` writes.
|