@shoalrun/cli 0.1.0-alpha.15 → 0.1.0-alpha.17
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/CHANGELOG.md +43 -0
- package/README.md +41 -3
- package/agent-docs/SNAPSHOT.json +5 -5
- package/agent-docs/author/frontmatter-reference.md +15 -11
- package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +13 -11
- package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +1 -1
- package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +1 -1
- package/agent-docs/author/frontmatter-reference.sections/html-markdown-and-agents.md +1 -1
- package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +1 -1
- package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +1 -1
- package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +1 -1
- package/agent-docs/author/frontmatter-reference.sections/related-reading.md +1 -1
- package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +1 -1
- package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +1 -1
- package/agent-docs/author/recipe-drafts.md +2 -2
- package/agent-docs/author/recipe-drafts.sections/1-write-one-reusable-step.md +1 -1
- package/agent-docs/author/recipe-drafts.sections/2-list-the-steps-for-one-complete-goal.md +1 -1
- package/agent-docs/author/recipe-drafts.sections/3-generate-a-draft-and-review-it.md +1 -1
- package/agent-docs/author/recipe-drafts.sections/4-maintain-shoalrun-s-published-recipe-snapshots.md +1 -1
- package/agent-docs/author/recipe-drafts.sections/related-reading.md +1 -1
- package/agent-docs/author/recipe-drafts.sections/start-an-ingredient-from-an-api-example.md +2 -2
- package/agent-docs/author/recipes.md +3 -3
- package/agent-docs/author/recipes.sections/how-agents-use-this.md +2 -2
- package/agent-docs/author/recipes.sections/one-example-from-shoalrun.md +2 -2
- package/agent-docs/author/recipes.sections/related-reading.md +2 -2
- package/agent-docs/author/recipes.sections/try-a-complete-workflow.md +3 -3
- package/agent-docs/author/recipes.sections/use-recipes-for-task-oriented-how-tos.md +2 -2
- package/agent-docs/author/recipes.sections/what-changing-an-ingredient-updates.md +2 -2
- package/agent-docs/author/recipes.sections/what-each-file-does.md +2 -2
- package/agent-docs/author/recipes.sections/what-happens-and-when.md +2 -2
- package/agent-docs/author/search.md +55 -6
- package/agent-docs/author/search.sections/agent-and-mcp-search-scope.md +48 -0
- package/agent-docs/author/search.sections/choose-a-provider.md +7 -6
- package/agent-docs/author/search.sections/cli-and-mcp-ranking-details.md +1 -1
- package/agent-docs/author/search.sections/enable-included-semantic-search.md +66 -0
- package/agent-docs/author/search.sections/hosted-semantic-search-limits.md +1 -1
- package/agent-docs/author/search.sections/html-markdown-and-agents.md +1 -1
- package/agent-docs/author/search.sections/lexical-search.md +1 -1
- package/agent-docs/author/search.sections/local-semantic-preview.md +1 -1
- package/agent-docs/author/search.sections/read-a-search-result-with-an-agent.md +1 -1
- package/agent-docs/author/search.sections/related-reading.md +1 -1
- package/agent-docs/author/search.sections/reuse-the-lexical-index.md +1 -1
- package/agent-docs/author/search.sections/turn-search-off.md +1 -1
- package/agent-docs/author/search.sections/use-the-search-box.md +1 -1
- package/agent-docs/author/search.sections/write-a-custom-provider.md +1 -1
- package/agent-docs/chat/passage-index.md +16 -12
- package/agent-docs/chat/passage-index.sections/build-the-index.md +3 -3
- package/agent-docs/chat/passage-index.sections/embed-passages.md +3 -3
- package/agent-docs/chat/passage-index.sections/how-the-default-chunker-splits-a-page.md +3 -3
- package/agent-docs/chat/passage-index.sections/limits.md +3 -3
- package/agent-docs/chat/passage-index.sections/passage-ids-and-links.md +14 -10
- package/agent-docs/chat/passage-index.sections/related-reading.md +3 -3
- package/agent-docs/chat/passage-index.sections/what-a-passage-contains.md +5 -5
- package/agent-docs/cookbooks/welcome-email.md +12 -9
- package/agent-docs/documents.json +207 -183
- package/agent-docs/provenance.json +4 -4
- package/agent-docs/recipes/queue-email.md +1 -1
- package/agent-docs/recipes/send-welcome-email.md +3 -3
- package/agent-docs/search-index.json +1 -1
- package/agent-docs/start.md +2 -2
- package/agent-docs/start.sections/add-the-page-to-navigation.md +1 -1
- package/agent-docs/start.sections/build-and-check-both-outputs.md +1 -1
- package/agent-docs/start.sections/build-this-site.md +1 -1
- package/agent-docs/start.sections/check-writing-style.md +1 -1
- package/agent-docs/start.sections/create-a-page.md +1 -1
- package/agent-docs/start.sections/make-it-yours.md +1 -1
- package/agent-docs/start.sections/migrating-from-github-packages.md +1 -1
- package/agent-docs/start.sections/prerequisites.md +1 -1
- package/agent-docs/start.sections/related-reading.md +1 -1
- package/agent-docs/start.sections/start-your-own-project.md +2 -2
- package/assets/search-semantic.js +34 -0
- package/dist/ai-directory.d.ts +1 -0
- package/dist/ai-directory.js +12 -0
- package/dist/answer-cards.js +1 -1
- package/dist/artifact-bundle.d.ts +1 -1
- package/dist/artifact-bundle.js +1 -1
- package/dist/ask-function.d.ts +4 -18
- package/dist/ask-function.js +12 -71
- package/dist/ask-runtime.d.ts +45 -0
- package/dist/ask-runtime.js +96 -0
- package/dist/ask-setup.d.ts +3 -42
- package/dist/ask-setup.js +5 -93
- package/dist/cli.js +6 -2
- package/dist/compiler.js +2 -0
- package/dist/embeddings.d.ts +1 -1
- package/dist/embeddings.js +1 -1
- package/dist/function-package.js +5 -0
- package/dist/function-runtime.d.ts +23 -0
- package/dist/function-runtime.js +45 -0
- package/dist/index-build.d.ts +1 -2
- package/dist/index-build.js +10 -14
- package/dist/publication-render.d.ts +1 -1
- package/dist/retrieval-runtime.d.ts +5 -0
- package/dist/retrieval-runtime.js +21 -0
- package/dist/retrieval.d.ts +4 -0
- package/dist/retrieval.js +28 -8
- package/dist/search-function.d.ts +2 -0
- package/dist/search-function.js +30 -0
- package/dist/search-handler.js +12 -12
- package/dist/search-identifier-core.d.ts +4 -0
- package/dist/search-identifier-core.js +30 -0
- package/dist/search-identifier.d.ts +3 -2
- package/dist/search-identifier.js +7 -24
- package/dist/search-literal.js +1 -1
- package/dist/search-results.d.ts +1 -1
- package/dist/search-results.js +39 -25
- package/dist/search-snippet.d.ts +1 -1
- package/dist/search-snippet.js +2 -14
- package/dist/search-text.d.ts +1 -0
- package/dist/search-text.js +14 -0
- package/dist/vercel-function.js +10 -2
- package/package.json +1 -1
- package/skills/shoalrun-setup/SKILL.md +2 -0
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -35,14 +35,48 @@ outputs:
|
|
|
35
35
|
provider: lexical
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
| Provider
|
|
39
|
-
|
|
|
40
|
-
| `lexical`
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
38
|
+
| Provider | Behavior |
|
|
39
|
+
| ---------- | ------------------------------------------------------------------------------------------------------------- |
|
|
40
|
+
| `lexical` | The default. Builds `/search-index.json` and matches it in the browser. |
|
|
41
|
+
| `semantic` | Uses Shoalrun’s same-origin search endpoint, with browser keyword fallback. Available since `0.1.0-alpha.16`. |
|
|
42
|
+
| `custom` | Loads your browser module. Needs `module`; `index` is optional. |
|
|
43
|
+
| `none` | Removes the search box. Writes no index or provider file. |
|
|
43
44
|
|
|
44
45
|
The build copies the provider module to `/assets/search-provider.js`. The search box imports that file when a reader first focuses the box or types.
|
|
45
46
|
|
|
47
|
+
## Enable included semantic search
|
|
48
|
+
|
|
49
|
+
Available since `0.1.0-alpha.16`.
|
|
50
|
+
|
|
51
|
+
Choose the included semantic provider to connect the search box to Shoalrun's endpoint without writing a browser adapter:
|
|
52
|
+
|
|
53
|
+
```yaml title="docs.config.yaml"
|
|
54
|
+
outputs:
|
|
55
|
+
html:
|
|
56
|
+
search:
|
|
57
|
+
provider: semantic
|
|
58
|
+
retrieval:
|
|
59
|
+
embeddings:
|
|
60
|
+
provider: voyage
|
|
61
|
+
model: voyage-4-large
|
|
62
|
+
queryModel: voyage-4-lite
|
|
63
|
+
dimension: 1024
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Set `VOYAGE_API_KEY` in the terminal environment, then build the site, embed its passages, and start the local endpoint:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
npx --no-install shoalrun build docs.config.yaml site-dist
|
|
70
|
+
npx --no-install shoalrun index site-dist --embed --config docs.config.yaml
|
|
71
|
+
npx --no-install shoalrun serve site-dist --search --config docs.config.yaml
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Keys remain server-side. Each semantic query calls the embedding provider; no chat model is required. The browser sends the selected publication and reader view with each request. A missing or unavailable endpoint uses the included browser keyword index. Requests cancelled by further typing do not start fallback searches.
|
|
75
|
+
|
|
76
|
+
Confirm `mode: vector` in the endpoint response to verify semantic retrieval. Rebuild and reindex edited content, then restart the local server. The [passage index](https://www.shoalrun.com/chat/passage-index.md) explains input reuse and release-specific passage identities.
|
|
77
|
+
|
|
78
|
+
This setting selects the browser connection; it does not provision production hosting. The current [Vercel integration](https://www.shoalrun.com/publish/vercel.md) supplies search through its chat-function deployment. Profiled Vercel chat-function builds remain unsupported. Static deployments retain keyword search when no endpoint is present. Custom search services can continue to use `provider: custom`.
|
|
79
|
+
|
|
46
80
|
## Use the search box
|
|
47
81
|
|
|
48
82
|
Press `/` or `Ctrl`+`K` (`⌘`+`K` on macOS) to focus the box. Use the arrow keys to move through results, Enter to open one, and Escape to close the list. When a match falls inside a section, the result names the section and links to its heading.
|
|
@@ -252,6 +286,21 @@ Result snippets prefer prose matching the substantive words in your question, om
|
|
|
252
286
|
|
|
253
287
|
[Preview semantic search in this checkout](https://www.shoalrun.com/recipes/preview-hybrid-search.md) covers the embedding provider key, passage index, local endpoint, lexical fallback, and Network inspector checks.
|
|
254
288
|
|
|
289
|
+
## Agent and MCP search scope
|
|
290
|
+
|
|
291
|
+
`outputs.html.search.provider: semantic` changes the website search box. It does not change CLI or MCP search into semantic retrieval. Those tools retain keyword search and explicit publication selection.
|
|
292
|
+
|
|
293
|
+
For a multi-version Windows build, select the release when searching:
|
|
294
|
+
|
|
295
|
+
```sh
|
|
296
|
+
npx --no-install shoalrun search windows-site "missing events" \
|
|
297
|
+
--channel production --version 7.1 --language en
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
A local MCP server's `search_docs` tool accepts the same `channel`, `version`, and `language` fields. Follow the returned `read.tool` and `read.arguments` to read the matching page or section in that publication. Do not substitute a current-release page with the same logical ID.
|
|
301
|
+
|
|
302
|
+
A hosted MCP build packages one configured publication, so its endpoint rejects requests for a different release. Product selection currently comes from the chosen build or endpoint. A combined product/version catalog is not part of this release. Customer-specific builds should expose only their selected edition to these tools.
|
|
303
|
+
|
|
255
304
|
## CLI and MCP ranking details
|
|
256
305
|
|
|
257
306
|
CLI and MCP use the lexical index too, with additional ranking rules for documentation lookups. Browser search keeps its complete-match-first, coverage-first behavior.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: guide.search
|
|
3
|
+
title: Site search
|
|
4
|
+
summary: Search settings, keyboard behavior, provider interfaces, and index fields.
|
|
5
|
+
type: reference
|
|
6
|
+
area: discovery
|
|
7
|
+
subarea: discovery-search
|
|
8
|
+
canonical: /author/search
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Site search
|
|
12
|
+
|
|
13
|
+
> Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
|
|
14
|
+
|
|
15
|
+
Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
|
|
16
|
+
|
|
17
|
+
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
|
+
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
|
+
|
|
21
|
+
**Verified: 2026-10-01.**
|
|
22
|
+
|
|
23
|
+
Parent page: [Full Markdown page](/author/search.md)
|
|
24
|
+
|
|
25
|
+
**Page reading path** — these links apply to the full page.
|
|
26
|
+
|
|
27
|
+
**Next steps**
|
|
28
|
+
|
|
29
|
+
- [Preview semantic search in this checkout](https://www.shoalrun.com/recipes/preview-hybrid-search.md) — Build the passage index and verify hybrid search and lexical fallback in this checkout.
|
|
30
|
+
|
|
31
|
+
Site search returns links to pages and sections. It is enabled by default and matches words in the browser, with no provider account or server required.
|
|
32
|
+
|
|
33
|
+
Shoalrun supplies the search box and keyboard controls. A **search provider** supplies results; you can replace the built-in provider with your own module. [Search and chat](https://www.shoalrun.com/search-and-chat.md) explains when to add semantic search or cited answers.
|
|
34
|
+
|
|
35
|
+
## Agent and MCP search scope
|
|
36
|
+
|
|
37
|
+
`outputs.html.search.provider: semantic` changes the website search box. It does not change CLI or MCP search into semantic retrieval. Those tools retain keyword search and explicit publication selection.
|
|
38
|
+
|
|
39
|
+
For a multi-version Windows build, select the release when searching:
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
npx --no-install shoalrun search windows-site "missing events" \
|
|
43
|
+
--channel production --version 7.1 --language en
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
A local MCP server's `search_docs` tool accepts the same `channel`, `version`, and `language` fields. Follow the returned `read.tool` and `read.arguments` to read the matching page or section in that publication. Do not substitute a current-release page with the same logical ID.
|
|
47
|
+
|
|
48
|
+
A hosted MCP build packages one configured publication, so its endpoint rejects requests for a different release. Product selection currently comes from the chosen build or endpoint. A combined product/version catalog is not part of this release. Customer-specific builds should expose only their selected edition to these tools.
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -43,10 +43,11 @@ outputs:
|
|
|
43
43
|
provider: lexical
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
| Provider
|
|
47
|
-
|
|
|
48
|
-
| `lexical`
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
46
|
+
| Provider | Behavior |
|
|
47
|
+
| ---------- | ------------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| `lexical` | The default. Builds `/search-index.json` and matches it in the browser. |
|
|
49
|
+
| `semantic` | Uses Shoalrun’s same-origin search endpoint, with browser keyword fallback. Available since `0.1.0-alpha.16`. |
|
|
50
|
+
| `custom` | Loads your browser module. Needs `module`; `index` is optional. |
|
|
51
|
+
| `none` | Removes the search box. Writes no index or provider file. |
|
|
51
52
|
|
|
52
53
|
The build copies the provider module to `/assets/search-provider.js`. The search box imports that file when a reader first focuses the box or types.
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: guide.search
|
|
3
|
+
title: Site search
|
|
4
|
+
summary: Search settings, keyboard behavior, provider interfaces, and index fields.
|
|
5
|
+
type: reference
|
|
6
|
+
area: discovery
|
|
7
|
+
subarea: discovery-search
|
|
8
|
+
canonical: /author/search
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Site search
|
|
12
|
+
|
|
13
|
+
> Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
|
|
14
|
+
|
|
15
|
+
Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
|
|
16
|
+
|
|
17
|
+
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
|
+
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
|
+
|
|
21
|
+
**Verified: 2026-10-01.**
|
|
22
|
+
|
|
23
|
+
Parent page: [Full Markdown page](/author/search.md)
|
|
24
|
+
|
|
25
|
+
**Page reading path** — these links apply to the full page.
|
|
26
|
+
|
|
27
|
+
**Next steps**
|
|
28
|
+
|
|
29
|
+
- [Preview semantic search in this checkout](https://www.shoalrun.com/recipes/preview-hybrid-search.md) — Build the passage index and verify hybrid search and lexical fallback in this checkout.
|
|
30
|
+
|
|
31
|
+
Site search returns links to pages and sections. It is enabled by default and matches words in the browser, with no provider account or server required.
|
|
32
|
+
|
|
33
|
+
Shoalrun supplies the search box and keyboard controls. A **search provider** supplies results; you can replace the built-in provider with your own module. [Search and chat](https://www.shoalrun.com/search-and-chat.md) explains when to add semantic search or cited answers.
|
|
34
|
+
|
|
35
|
+
## Enable included semantic search
|
|
36
|
+
|
|
37
|
+
Available since `0.1.0-alpha.16`.
|
|
38
|
+
|
|
39
|
+
Choose the included semantic provider to connect the search box to Shoalrun's endpoint without writing a browser adapter:
|
|
40
|
+
|
|
41
|
+
```yaml title="docs.config.yaml"
|
|
42
|
+
outputs:
|
|
43
|
+
html:
|
|
44
|
+
search:
|
|
45
|
+
provider: semantic
|
|
46
|
+
retrieval:
|
|
47
|
+
embeddings:
|
|
48
|
+
provider: voyage
|
|
49
|
+
model: voyage-4-large
|
|
50
|
+
queryModel: voyage-4-lite
|
|
51
|
+
dimension: 1024
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Set `VOYAGE_API_KEY` in the terminal environment, then build the site, embed its passages, and start the local endpoint:
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
npx --no-install shoalrun build docs.config.yaml site-dist
|
|
58
|
+
npx --no-install shoalrun index site-dist --embed --config docs.config.yaml
|
|
59
|
+
npx --no-install shoalrun serve site-dist --search --config docs.config.yaml
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Keys remain server-side. Each semantic query calls the embedding provider; no chat model is required. The browser sends the selected publication and reader view with each request. A missing or unavailable endpoint uses the included browser keyword index. Requests cancelled by further typing do not start fallback searches.
|
|
63
|
+
|
|
64
|
+
Confirm `mode: vector` in the endpoint response to verify semantic retrieval. Rebuild and reindex edited content, then restart the local server. The [passage index](https://www.shoalrun.com/chat/passage-index.md) explains input reuse and release-specific passage identities.
|
|
65
|
+
|
|
66
|
+
This setting selects the browser connection; it does not provision production hosting. The current [Vercel integration](https://www.shoalrun.com/publish/vercel.md) supplies search through its chat-function deployment. Profiled Vercel chat-function builds remain unsupported. Static deployments retain keyword search when no endpoint is present. Custom search services can continue to use `provider: custom`.
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -16,7 +16,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Search, chat, and agent access > Site search
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-04.**
|
|
20
20
|
|
|
21
21
|
**Verified: 2026-10-01.**
|
|
22
22
|
|
|
@@ -18,13 +18,13 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
|
|
|
18
18
|
|
|
19
19
|
Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Retrieval and chat > Passage index
|
|
20
20
|
|
|
21
|
-
**Updated: 2026-
|
|
21
|
+
**Updated: 2026-11-04.**
|
|
22
22
|
|
|
23
23
|
**Status: Experimental.**
|
|
24
24
|
|
|
25
|
-
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
|
|
25
|
+
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 the optional semantic search endpoint use it to find relevant parts of a page.
|
|
26
26
|
|
|
27
|
-
The
|
|
27
|
+
The default keyword [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. The included `semantic` provider connects that box to the passage-search endpoint. You do not need a passage index for normal static-site keyword search.
|
|
28
28
|
|
|
29
29
|
Create the files after building the site:
|
|
30
30
|
|
|
@@ -90,7 +90,7 @@ Each entry in `chunks` describes one passage:
|
|
|
90
90
|
|
|
91
91
|
```json title="ai/chunks.json"
|
|
92
92
|
{
|
|
93
|
-
"id": "guide.configuration#understand-the-three-stages",
|
|
93
|
+
"id": "production%7Ccurrent%7Cen:guide.configuration#understand-the-three-stages",
|
|
94
94
|
"docId": "guide.configuration",
|
|
95
95
|
"title": "Organize project configuration",
|
|
96
96
|
"type": "how-to",
|
|
@@ -121,7 +121,7 @@ Each entry in `chunks` describes one passage:
|
|
|
121
121
|
| `digest` | A SHA-256 hash of the passage's embedding input. |
|
|
122
122
|
| `search` | Prepared result content: `schemaVersion: 1`, explanatory `paragraphs`, and code/table `literalLines`. Generated navigation lists are excluded from the paragraphs. |
|
|
123
123
|
|
|
124
|
-
The file also records `schemaVersion` and a `sourceDigest`
|
|
124
|
+
The file also records `schemaVersion` and a `sourceDigest`. Since `0.1.0-alpha.16`, this digest identifies passage content, publication membership, routes, reader marks, and prepared search evidence. Metadata changes can change this digest without requiring new embeddings.
|
|
125
125
|
|
|
126
126
|
### Embedding input
|
|
127
127
|
|
|
@@ -139,15 +139,19 @@ The derived `search` data is not part of the embedding input or its digest. Prep
|
|
|
139
139
|
|
|
140
140
|
## Passage IDs and links
|
|
141
141
|
|
|
142
|
-
|
|
142
|
+
Since `0.1.0-alpha.16`, a passage ID contains the URL-encoded publication, `:`, the URL-encoded page ID, `#`, and a slug of the heading path. Repeated logical page IDs in different releases have distinct passage IDs. A passage without headings uses `intro`. The chunker adds a suffix when IDs would collide:
|
|
143
143
|
|
|
144
|
-
| ID
|
|
145
|
-
|
|
|
146
|
-
| `guide.configuration#understand-the-three-stages` | The first passage in that section. |
|
|
147
|
-
| `guide.configuration#understand-the-three-stages~2` | The second part of a section that split. |
|
|
148
|
-
| `guide.configuration#notes-2` | The second section on the page with the same heading path. |
|
|
144
|
+
| ID | Meaning |
|
|
145
|
+
| ----------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
|
146
|
+
| `production%7Ccurrent%7Cen:guide.configuration#understand-the-three-stages` | The first passage in that section. |
|
|
147
|
+
| `production%7Ccurrent%7Cen:guide.configuration#understand-the-three-stages~2` | The second part of a section that split. |
|
|
148
|
+
| `production%7Ccurrent%7Cen:guide.configuration#notes-2` | The second section on the page with the same heading path. |
|
|
149
149
|
|
|
150
|
-
IDs stay the same when body text changes. They change when you rename a heading or the page
|
|
150
|
+
IDs stay the same when body text changes. They change when you rename a heading, the page ID, or its publication. Treat the complete passage ID as an opaque identifier; use `docId` for the logical page identity.
|
|
151
|
+
|
|
152
|
+
When upgrading an existing index, rerun `shoalrun index site-dist --embed --config docs.config.yaml` with the same embedding configuration. Matching input vectors are reused even when stored passage IDs change. Regenerate answer cards after rebuilding their cited IDs. Older indexes with duplicate passage IDs fail with rebuild instructions instead of silently sharing vectors across releases.
|
|
153
|
+
|
|
154
|
+
The index command’s JSON summary includes `sourceDigest` and passage counts for each publication. Check these fields before starting a server, and index each customer’s already-pruned build separately. A running preview reads indexes at startup, so restart it after reindexing. Stored vectors remain file-backed; this release does not add an external vector database.
|
|
151
155
|
|
|
152
156
|
Section links come from the heading IDs in `search-index.json`. A passage links to the page, without a `#` anchor, when the build has no search index or when a component generated the heading. Walkthrough steps and tab labels are examples. The [site search](https://www.shoalrun.com/author/search.md) page describes the index.
|
|
153
157
|
|
|
@@ -18,15 +18,15 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
|
|
|
18
18
|
|
|
19
19
|
Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Retrieval and chat > Passage index
|
|
20
20
|
|
|
21
|
-
**Updated: 2026-
|
|
21
|
+
**Updated: 2026-11-04.**
|
|
22
22
|
|
|
23
23
|
**Status: Experimental.**
|
|
24
24
|
|
|
25
25
|
Parent page: [Full Markdown page](/chat/passage-index.md)
|
|
26
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
|
|
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 the optional semantic search endpoint use it to find relevant parts of a page.
|
|
28
28
|
|
|
29
|
-
The
|
|
29
|
+
The default keyword [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. The included `semantic` provider connects that box to the passage-search endpoint. You do not need a passage index for normal static-site keyword search.
|
|
30
30
|
|
|
31
31
|
Create the files after building the site:
|
|
32
32
|
|
|
@@ -18,15 +18,15 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
|
|
|
18
18
|
|
|
19
19
|
Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Retrieval and chat > Passage index
|
|
20
20
|
|
|
21
|
-
**Updated: 2026-
|
|
21
|
+
**Updated: 2026-11-04.**
|
|
22
22
|
|
|
23
23
|
**Status: Experimental.**
|
|
24
24
|
|
|
25
25
|
Parent page: [Full Markdown page](/chat/passage-index.md)
|
|
26
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
|
|
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 the optional semantic search endpoint use it to find relevant parts of a page.
|
|
28
28
|
|
|
29
|
-
The
|
|
29
|
+
The default keyword [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. The included `semantic` provider connects that box to the passage-search endpoint. You do not need a passage index for normal static-site keyword search.
|
|
30
30
|
|
|
31
31
|
Create the files after building the site:
|
|
32
32
|
|
|
@@ -18,15 +18,15 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
|
|
|
18
18
|
|
|
19
19
|
Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Retrieval and chat > Passage index
|
|
20
20
|
|
|
21
|
-
**Updated: 2026-
|
|
21
|
+
**Updated: 2026-11-04.**
|
|
22
22
|
|
|
23
23
|
**Status: Experimental.**
|
|
24
24
|
|
|
25
25
|
Parent page: [Full Markdown page](/chat/passage-index.md)
|
|
26
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
|
|
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 the optional semantic search endpoint use it to find relevant parts of a page.
|
|
28
28
|
|
|
29
|
-
The
|
|
29
|
+
The default keyword [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. The included `semantic` provider connects that box to the passage-search endpoint. You do not need a passage index for normal static-site keyword search.
|
|
30
30
|
|
|
31
31
|
Create the files after building the site:
|
|
32
32
|
|
|
@@ -18,15 +18,15 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
|
|
|
18
18
|
|
|
19
19
|
Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Retrieval and chat > Passage index
|
|
20
20
|
|
|
21
|
-
**Updated: 2026-
|
|
21
|
+
**Updated: 2026-11-04.**
|
|
22
22
|
|
|
23
23
|
**Status: Experimental.**
|
|
24
24
|
|
|
25
25
|
Parent page: [Full Markdown page](/chat/passage-index.md)
|
|
26
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
|
|
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 the optional semantic search endpoint use it to find relevant parts of a page.
|
|
28
28
|
|
|
29
|
-
The
|
|
29
|
+
The default keyword [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. The included `semantic` provider connects that box to the passage-search endpoint. You do not need a passage index for normal static-site keyword search.
|
|
30
30
|
|
|
31
31
|
Create the files after building the site:
|
|
32
32
|
|
|
@@ -18,15 +18,15 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
|
|
|
18
18
|
|
|
19
19
|
Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Retrieval and chat > Passage index
|
|
20
20
|
|
|
21
|
-
**Updated: 2026-
|
|
21
|
+
**Updated: 2026-11-04.**
|
|
22
22
|
|
|
23
23
|
**Status: Experimental.**
|
|
24
24
|
|
|
25
25
|
Parent page: [Full Markdown page](/chat/passage-index.md)
|
|
26
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
|
|
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 the optional semantic search endpoint use it to find relevant parts of a page.
|
|
28
28
|
|
|
29
|
-
The
|
|
29
|
+
The default keyword [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. The included `semantic` provider connects that box to the passage-search endpoint. You do not need a passage index for normal static-site keyword search.
|
|
30
30
|
|
|
31
31
|
Create the files after building the site:
|
|
32
32
|
|
|
@@ -39,14 +39,18 @@ Indexing leaves published page content unchanged. The files sit beside the build
|
|
|
39
39
|
|
|
40
40
|
## Passage IDs and links
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
Since `0.1.0-alpha.16`, a passage ID contains the URL-encoded publication, `:`, the URL-encoded page ID, `#`, and a slug of the heading path. Repeated logical page IDs in different releases have distinct passage IDs. A passage without headings uses `intro`. The chunker adds a suffix when IDs would collide:
|
|
43
43
|
|
|
44
|
-
| ID
|
|
45
|
-
|
|
|
46
|
-
| `guide.configuration#understand-the-three-stages` | The first passage in that section. |
|
|
47
|
-
| `guide.configuration#understand-the-three-stages~2` | The second part of a section that split. |
|
|
48
|
-
| `guide.configuration#notes-2` | The second section on the page with the same heading path. |
|
|
44
|
+
| ID | Meaning |
|
|
45
|
+
| ----------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
|
46
|
+
| `production%7Ccurrent%7Cen:guide.configuration#understand-the-three-stages` | The first passage in that section. |
|
|
47
|
+
| `production%7Ccurrent%7Cen:guide.configuration#understand-the-three-stages~2` | The second part of a section that split. |
|
|
48
|
+
| `production%7Ccurrent%7Cen:guide.configuration#notes-2` | The second section on the page with the same heading path. |
|
|
49
49
|
|
|
50
|
-
IDs stay the same when body text changes. They change when you rename a heading or the page
|
|
50
|
+
IDs stay the same when body text changes. They change when you rename a heading, the page ID, or its publication. Treat the complete passage ID as an opaque identifier; use `docId` for the logical page identity.
|
|
51
|
+
|
|
52
|
+
When upgrading an existing index, rerun `shoalrun index site-dist --embed --config docs.config.yaml` with the same embedding configuration. Matching input vectors are reused even when stored passage IDs change. Regenerate answer cards after rebuilding their cited IDs. Older indexes with duplicate passage IDs fail with rebuild instructions instead of silently sharing vectors across releases.
|
|
53
|
+
|
|
54
|
+
The index command’s JSON summary includes `sourceDigest` and passage counts for each publication. Check these fields before starting a server, and index each customer’s already-pruned build separately. A running preview reads indexes at startup, so restart it after reindexing. Stored vectors remain file-backed; this release does not add an external vector database.
|
|
51
55
|
|
|
52
56
|
Section links come from the heading IDs in `search-index.json`. A passage links to the page, without a `#` anchor, when the build has no search index or when a component generated the heading. Walkthrough steps and tab labels are examples. The [site search](https://www.shoalrun.com/author/search.md) page describes the index.
|
|
@@ -18,15 +18,15 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
|
|
|
18
18
|
|
|
19
19
|
Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Retrieval and chat > Passage index
|
|
20
20
|
|
|
21
|
-
**Updated: 2026-
|
|
21
|
+
**Updated: 2026-11-04.**
|
|
22
22
|
|
|
23
23
|
**Status: Experimental.**
|
|
24
24
|
|
|
25
25
|
Parent page: [Full Markdown page](/chat/passage-index.md)
|
|
26
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
|
|
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 the optional semantic search endpoint use it to find relevant parts of a page.
|
|
28
28
|
|
|
29
|
-
The
|
|
29
|
+
The default keyword [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. The included `semantic` provider connects that box to the passage-search endpoint. You do not need a passage index for normal static-site keyword search.
|
|
30
30
|
|
|
31
31
|
Create the files after building the site:
|
|
32
32
|
|
|
@@ -18,15 +18,15 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
|
|
|
18
18
|
|
|
19
19
|
Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Retrieval and chat > Passage index
|
|
20
20
|
|
|
21
|
-
**Updated: 2026-
|
|
21
|
+
**Updated: 2026-11-04.**
|
|
22
22
|
|
|
23
23
|
**Status: Experimental.**
|
|
24
24
|
|
|
25
25
|
Parent page: [Full Markdown page](/chat/passage-index.md)
|
|
26
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
|
|
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 the optional semantic search endpoint use it to find relevant parts of a page.
|
|
28
28
|
|
|
29
|
-
The
|
|
29
|
+
The default keyword [search box](https://www.shoalrun.com/author/search.md) uses the separate page-level `search-index.json`. The included `semantic` provider connects that box to the passage-search endpoint. You do not need a passage index for normal static-site keyword search.
|
|
30
30
|
|
|
31
31
|
Create the files after building the site:
|
|
32
32
|
|
|
@@ -43,7 +43,7 @@ Each entry in `chunks` describes one passage:
|
|
|
43
43
|
|
|
44
44
|
```json title="ai/chunks.json"
|
|
45
45
|
{
|
|
46
|
-
"id": "guide.configuration#understand-the-three-stages",
|
|
46
|
+
"id": "production%7Ccurrent%7Cen:guide.configuration#understand-the-three-stages",
|
|
47
47
|
"docId": "guide.configuration",
|
|
48
48
|
"title": "Organize project configuration",
|
|
49
49
|
"type": "how-to",
|
|
@@ -74,7 +74,7 @@ Each entry in `chunks` describes one passage:
|
|
|
74
74
|
| `digest` | A SHA-256 hash of the passage's embedding input. |
|
|
75
75
|
| `search` | Prepared result content: `schemaVersion: 1`, explanatory `paragraphs`, and code/table `literalLines`. Generated navigation lists are excluded from the paragraphs. |
|
|
76
76
|
|
|
77
|
-
The file also records `schemaVersion` and a `sourceDigest`
|
|
77
|
+
The file also records `schemaVersion` and a `sourceDigest`. Since `0.1.0-alpha.16`, this digest identifies passage content, publication membership, routes, reader marks, and prepared search evidence. Metadata changes can change this digest without requiring new embeddings.
|
|
78
78
|
|
|
79
79
|
### Embedding input
|
|
80
80
|
|