blume 1.1.4 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +1 -1
  3. package/dist/cli/index.js +1319 -66
  4. package/dist/cli/index.js.map +34 -23
  5. package/dist/types/core/config-input.d.ts +18 -0
  6. package/dist/types/core/config.d.ts +4 -0
  7. package/dist/types/core/data.d.ts +1 -0
  8. package/dist/types/core/schema.d.ts +132 -17
  9. package/dist/types/core/types.d.ts +5 -3
  10. package/dist/types/openapi/references.d.ts +6 -0
  11. package/docs/advanced/api-reference.mdx +27 -0
  12. package/docs/advanced/changelog.mdx +10 -0
  13. package/docs/configuration/ai.mdx +38 -2
  14. package/docs/configuration/customization.mdx +27 -0
  15. package/docs/configuration/index.mdx +5 -0
  16. package/docs/configuration/search.mdx +15 -0
  17. package/docs/content/navigation.mdx +12 -0
  18. package/docs/reference/cli.mdx +17 -13
  19. package/docs/reference/eval.mdx +106 -0
  20. package/docs/reference/meta.ts +1 -1
  21. package/package.json +2 -2
  22. package/src/ai/agent-readability.ts +19 -1
  23. package/src/ai/ask-context.ts +7 -1
  24. package/src/ai/ask-data.ts +1 -0
  25. package/src/ai/llms.ts +9 -4
  26. package/src/ai/mcp/data.ts +7 -0
  27. package/src/ai/mcp/server.ts +24 -8
  28. package/src/ai/mcp/stdio.ts +38 -0
  29. package/src/astro/generate.ts +25 -2
  30. package/src/astro/templates.ts +129 -26
  31. package/src/cli/commands/eval.ts +291 -0
  32. package/src/cli/commands/init.ts +9 -4
  33. package/src/cli/commands/mcp-stdio.ts +36 -0
  34. package/src/cli/index.ts +4 -0
  35. package/src/cli/required-secrets.ts +1 -1
  36. package/src/components/content/AccordionItem.astro +2 -2
  37. package/src/components/content/TreeFolder.astro +1 -2
  38. package/src/components/islands/AskAI.astro +9 -2
  39. package/src/components/islands/ask-ai.tsx +4 -2
  40. package/src/components/islands/hooks.ts +10 -4
  41. package/src/components/layout/NavTree.astro +38 -20
  42. package/src/components/layout/ReferenceLayout.astro +4 -0
  43. package/src/components/layout/RootLayout.astro +2 -2
  44. package/src/components/layout/search/orama.ts +5 -2
  45. package/src/components/openapi/SchemaProperty.astro +3 -3
  46. package/src/core/config-input.ts +18 -0
  47. package/src/core/config.ts +4 -0
  48. package/src/core/data.ts +1 -0
  49. package/src/core/graph.ts +1 -0
  50. package/src/core/navigation.ts +9 -2
  51. package/src/core/schema.ts +51 -4
  52. package/src/core/server-features.ts +1 -1
  53. package/src/core/types.ts +5 -3
  54. package/src/eval/agents.ts +340 -0
  55. package/src/eval/findings.ts +103 -0
  56. package/src/eval/prompts.ts +78 -0
  57. package/src/eval/report.ts +214 -0
  58. package/src/eval/run.ts +290 -0
  59. package/src/eval/schema.ts +124 -0
  60. package/src/openapi/references.ts +23 -2
  61. package/src/openapi/render-mdx.ts +27 -4
  62. package/src/openapi/scalar.ts +1 -0
  63. package/src/openapi/source.ts +11 -4
  64. package/src/registry/eject.ts +23 -1
  65. package/src/search/build.ts +4 -3
  66. package/src/search/orama-index.ts +55 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # blume
2
2
 
3
+ ## 1.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - a015b0a: Match CJK and Thai content in the default Orama search provider. With `i18n.defaultLocale` set to a language written without spaces (Japanese, Chinese, Korean, Thai), the search index now uses a word-segmenting tokenizer built on `Intl.Segmenter` — previously every query in those scripts silently returned zero results because the default tokenizer collapsed the text to no tokens. The fix covers the search dialog, the MCP server's `search_docs` tool, and Ask AI grounding, and keeps Latin terms matching case-insensitively on mixed-language sites.
8
+ - 454e67f: Match every hoverable sidebar navigation row — the back rows, routed panel header, and flat group header — to the shared 0.65rem navigation radius.
9
+ - 17d520b: Style the desktop sidebar scrollbar with a thin, theme-colored thumb and a transparent track. The mobile drawer and the page scrollbar keep their platform defaults. Requires Tailwind CSS 4.3 or later, which is now the declared minimum.
10
+
11
+ ## 1.2.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 217975c: Add a top-level `integrations` array to `blume.config.ts` for registering Astro integrations. Entries are schema-validated as an array (each element is left for Astro to validate) and appended after Blume's built-in integrations in declaration order, with no sorting or deduplication. The generated Astro config loads them through a portable bridge back to `blume.config.ts` rather than serializing the instances, so function-bearing hooks survive across build, `blume dev`, config regeneration, and eject. Install and version each integration in the site itself — Blume neither adds it to the runtime's dependencies nor manages its Astro compatibility.
16
+ - 592af35: Add `blume eval`, a test suite for your docs. An AI agent — Claude Code by default, Codex with `--agent codex`, spawned from your own installation with no API keys held by Blume — answers the questions in `evals.yaml` using ONLY the documentation, served over a private MCP stdio bridge to an agent locked out of its file, shell, and web tools; a judge pass then grades each answer against the expected facts you listed. Any question the docs can't answer fails CI (relax with `--threshold`), each failure is anchored to the source page that should answer it, `--json` emits the validate/audit-compatible machine report, `--fix` hands the failing report to the agent to edit the docs interactively, and `blume eval init` drafts a starter evals file from your existing docs. No build or deployment is needed — the docs snapshot is computed from the content tree.
17
+ - 2063196: Let a header tab declare its link target with `href`. A tab's `path` scopes its sidebar section and doubles as the link, so a section whose `path` isn't a page of its own falls back to the section's first page rather than linking to a 404. That fallback only sees the content tree, so a tab pointing at a route generated outside it — the automatic `/changelog` index, or a custom page under `pages/` — lands on the section's first entry instead of the page the reader expected. Setting `href` keeps the tab on the declared route; the field is optional and tabs that omit it resolve exactly as before. Declared hrefs are localized and rebased like any other route, so they work under i18n and a `deployment.base`.
18
+ - 55e176a: Support external Ask AI endpoints on static sites and per-source OpenAPI search, llms.txt, and crawler indexing controls.
19
+
20
+ ### Patch Changes
21
+
22
+ - 18e1d8d: Stop Cloudflare server builds from declaring unused `SESSION` KV and `IMAGES` bindings in the generated wrangler config. Without a configured session driver, `@astrojs/cloudflare` force-enables KV-backed sessions — making `wrangler deploy` demand a real KV namespace nothing reads — and defaults images to the runtime Cloudflare Images binding. Blume never reads `Astro.session` and every HTML route prerenders, so the generated Astro config now sets an inert in-memory session driver and `imageService: "compile"`, which pre-optimizes images at build time with sharp.
23
+ - 38475cb: `blume init` now adds `node_modules/` to the generated `.gitignore` alongside Blume's runtime and build output directories.
24
+ - 0c8f78d: Make the entire sidebar navigation back row clickable. When a drilled-in section has no index page, the chevron and title now form a single full-width back button; when it does have one, the title link and back button each fill their side of the row so there are no dead zones, and both get row hover states.
25
+ - 812b09e: Fix nested `<Tree>` folder chevrons, nested `<Accordion>` chevrons, and a nested object schema's "Show properties" toggle reflecting an ancestor's open state instead of their own. All three rotated or flipped on Tailwind's `group-open:` variant, which matches any open ancestor `.group` — the same leak as the nested sidebar chevron — so a collapsed disclosure inside an expanded one showed an open indicator. Each indicator is now scoped to its own `details`.
26
+ - 812b09e: Fix a nested sidebar group's chevron pointing down while the group is collapsed. The chevron rotated on Tailwind's `group-open:` variant, which matches any descendant of an open `.group` — and since every collapsible group in the tree is a `.group`, expanding a parent rotated the chevrons of its collapsed children too, so the arrow disagreed with the items it was hiding. The rotation is now scoped to the group's own `details`, leaving each chevron to reflect only its own open state.
27
+ - d5d6b7a: Fix the EPUB page action failing in dev with `epub is not a function`. `epub-gen-memory`'s browser bundle is a browserified UMD, and its dynamic import lives inside `node_modules/blume`, which Vite's optimizer scan doesn't crawl — so in dev it was served as raw ESM, where the UMD finds no `exports`/`define`, exposes no `default`, and strands its callable on `window.epubGen`. It now joins mermaid in `optimizeDeps.include`, naming the `/bundle` subpath that is actually imported, since optimizing the package root leaves that entry unoptimized. Production builds already bundled it correctly and are unchanged.
28
+ - 55e176a: Pagefind now honors search exclusions: pages with `search.exclude` frontmatter (and hidden pages, unless `search.indexing.includeHiddenPages` opts them in) no longer appear in local search results.
29
+
3
30
  ## 1.1.4
4
31
 
5
32
  ### Patch Changes
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Blume
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/blume.svg)](https://www.npmjs.com/package/blume) [![npm downloads](https://img.shields.io/npm/dm/blume.svg)](https://www.npmjs.com/package/blume) [![license](https://img.shields.io/npm/l/blume.svg)](./LICENSE) [![node](https://img.shields.io/node/v/blume.svg)](https://nodejs.org)
3
+ [![npm downloads](https://img.shields.io/npm/dm/blume.svg)](https://www.npmjs.com/package/blume) [![Socket Badge](https://socket.dev/api/badge/npm/package/blume)](https://socket.dev/npm/package/blume) ![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/haydenbleasel/blume?utm_source=oss&utm_medium=github&utm_campaign=haydenbleasel%2Fblume&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews)
4
4
 
5
5
  **Documentation for everything you build.** Fast, AI-ready, and zero-config. Free and open source, forever.
6
6