blume 1.7.3 → 2.0.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 (690) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +245 -0
  3. package/README.md +34 -21
  4. package/dist/cli/{chunk-vacwm2hv.js → chunk-27g6wdth.js} +2 -2
  5. package/dist/cli/{chunk-ps4m1xh4.js → chunk-2hn4b8z7.js} +513 -550
  6. package/dist/cli/chunk-2hn4b8z7.js.map +12 -0
  7. package/dist/cli/chunk-5shv93fd.js +39 -0
  8. package/dist/cli/chunk-5shv93fd.js.map +10 -0
  9. package/dist/cli/chunk-6crbhc3x.js +361 -0
  10. package/dist/cli/chunk-6crbhc3x.js.map +14 -0
  11. package/dist/cli/{chunk-8cjtbafj.js → chunk-6hsn950k.js} +109 -383
  12. package/dist/cli/chunk-6hsn950k.js.map +10 -0
  13. package/dist/cli/chunk-6vm74dry.js +148 -0
  14. package/dist/cli/chunk-6vm74dry.js.map +10 -0
  15. package/dist/cli/{chunk-yg63d42r.js → chunk-79jhk4py.js} +87 -58
  16. package/dist/cli/chunk-79jhk4py.js.map +35 -0
  17. package/dist/cli/chunk-82bbrxdn.js +51 -0
  18. package/dist/cli/chunk-82bbrxdn.js.map +10 -0
  19. package/dist/cli/chunk-abh8yjkn.js +31 -0
  20. package/dist/cli/chunk-abh8yjkn.js.map +10 -0
  21. package/dist/cli/chunk-ah61y8py.js +75 -0
  22. package/dist/cli/chunk-ah61y8py.js.map +11 -0
  23. package/dist/cli/{chunk-dwgcp5sm.js → chunk-ce574jw2.js} +1 -1
  24. package/dist/cli/chunk-ch6g3ar0.js +102 -0
  25. package/dist/cli/chunk-ch6g3ar0.js.map +10 -0
  26. package/dist/cli/chunk-dh8cwk36.js +279 -0
  27. package/dist/cli/chunk-dh8cwk36.js.map +10 -0
  28. package/dist/cli/{chunk-rqy0s5wh.js → chunk-epjnccmv.js} +17 -16
  29. package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-epjnccmv.js.map} +3 -3
  30. package/dist/cli/chunk-f2z5v128.js +97 -0
  31. package/dist/cli/chunk-f2z5v128.js.map +10 -0
  32. package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
  33. package/dist/cli/chunk-fa25z98p.js.map +11 -0
  34. package/dist/cli/{chunk-1jefwnfs.js → chunk-fs23ddbb.js} +1076 -2592
  35. package/dist/cli/chunk-fs23ddbb.js.map +35 -0
  36. package/dist/cli/{chunk-e7f42gdj.js → chunk-fxypxtvm.js} +2 -2
  37. package/dist/cli/{chunk-bvwwhd84.js → chunk-fz5wtpmh.js} +15 -15
  38. package/dist/cli/{chunk-bvwwhd84.js.map → chunk-fz5wtpmh.js.map} +1 -1
  39. package/dist/cli/chunk-hdpx1tax.js +91 -0
  40. package/dist/cli/chunk-hdpx1tax.js.map +10 -0
  41. package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
  42. package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
  43. package/dist/cli/{chunk-ahnw3kxw.js → chunk-jwyddg7y.js} +27 -22
  44. package/dist/cli/chunk-jwyddg7y.js.map +15 -0
  45. package/dist/cli/{chunk-cjtn640a.js → chunk-kdp5q7ke.js} +43 -20
  46. package/dist/cli/chunk-kdp5q7ke.js.map +10 -0
  47. package/dist/cli/{chunk-5g0w1e2c.js → chunk-kpf8rrjc.js} +28 -16
  48. package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-kpf8rrjc.js.map} +4 -4
  49. package/dist/cli/chunk-m3vmjgmq.js +133 -0
  50. package/dist/cli/chunk-m3vmjgmq.js.map +10 -0
  51. package/dist/cli/{chunk-b27xqwn9.js → chunk-mb2919y2.js} +9 -5
  52. package/dist/cli/chunk-mb2919y2.js.map +10 -0
  53. package/dist/cli/{chunk-5qk08vmp.js → chunk-q5163e60.js} +133 -54
  54. package/dist/cli/chunk-q5163e60.js.map +11 -0
  55. package/dist/cli/chunk-qkqwkpte.js +12437 -0
  56. package/dist/cli/chunk-qkqwkpte.js.map +182 -0
  57. package/dist/cli/{chunk-4x36ddpw.js → chunk-qs4q5p4e.js} +81 -87
  58. package/dist/cli/chunk-qs4q5p4e.js.map +10 -0
  59. package/dist/cli/{chunk-0xjyb285.js → chunk-qwsrynx5.js} +15 -5
  60. package/dist/cli/{chunk-0xjyb285.js.map → chunk-qwsrynx5.js.map} +4 -4
  61. package/dist/cli/chunk-s1p84fyh.js +261 -0
  62. package/dist/cli/chunk-s1p84fyh.js.map +10 -0
  63. package/dist/cli/chunk-s6jhgk0q.js +176 -0
  64. package/dist/cli/chunk-s6jhgk0q.js.map +11 -0
  65. package/dist/cli/chunk-vtk4a6dg.js +374 -0
  66. package/dist/cli/chunk-vtk4a6dg.js.map +10 -0
  67. package/dist/cli/{chunk-k79xp7av.js → chunk-wgm7m9qk.js} +230 -700
  68. package/dist/cli/chunk-wgm7m9qk.js.map +36 -0
  69. package/dist/cli/chunk-wm7js3j9.js +145 -0
  70. package/dist/cli/chunk-wm7js3j9.js.map +11 -0
  71. package/dist/cli/chunk-yt5n7ppj.js +79 -0
  72. package/dist/cli/chunk-yt5n7ppj.js.map +10 -0
  73. package/dist/cli/{chunk-3r45185y.js → chunk-yw7dm696.js} +9 -11
  74. package/dist/cli/{chunk-3r45185y.js.map → chunk-yw7dm696.js.map} +3 -3
  75. package/dist/cli/{chunk-nn13znc2.js → chunk-zxcczpyx.js} +1 -1
  76. package/dist/cli/chunk-zxh4d9vy.js +122 -0
  77. package/dist/cli/chunk-zxh4d9vy.js.map +11 -0
  78. package/dist/cli/index.js +214 -57
  79. package/dist/cli/index.js.map +8 -7
  80. package/dist/types/ai/agent-readability.d.ts +52 -0
  81. package/dist/types/ai/ai-catalog.d.ts +42 -0
  82. package/dist/types/ai/api/paths.d.ts +17 -0
  83. package/dist/types/ai/api-catalog.d.ts +18 -0
  84. package/dist/types/ai/ask-context.d.ts +7 -7
  85. package/dist/types/ai/ask.d.ts +368 -0
  86. package/dist/types/ai/changelog-markdown.d.ts +2 -0
  87. package/dist/types/ai/component-markdown.d.ts +2 -2
  88. package/dist/types/ai/index.d.ts +24 -0
  89. package/dist/types/ai/link-headers.d.ts +24 -0
  90. package/dist/types/ai/llms.d.ts +25 -0
  91. package/dist/types/ai/markdown.d.ts +45 -0
  92. package/dist/types/ai/mcp/discovery.d.ts +68 -0
  93. package/dist/types/ai/mcp/tools.d.ts +16 -0
  94. package/dist/types/ai/openapi-components.d.ts +43 -0
  95. package/dist/types/ai/relative-links.d.ts +26 -0
  96. package/dist/types/ai/serializers.d.ts +15 -0
  97. package/dist/types/ai/skills.d.ts +42 -0
  98. package/dist/types/ai/tar.d.ts +25 -0
  99. package/dist/types/ai/visibility.d.ts +17 -0
  100. package/dist/types/ai/web-bot-auth.d.ts +16 -0
  101. package/dist/types/analytics/adobe.d.ts +35 -0
  102. package/dist/types/analytics/amplitude.d.ts +50 -0
  103. package/dist/types/analytics/clarity.d.ts +31 -0
  104. package/dist/types/analytics/clearbit.d.ts +29 -0
  105. package/dist/types/analytics/cloudflare.d.ts +41 -0
  106. package/dist/types/analytics/fathom.d.ts +41 -0
  107. package/dist/types/analytics/google-analytics.d.ts +44 -0
  108. package/dist/types/analytics/google-tag-manager.d.ts +40 -0
  109. package/dist/types/analytics/head.d.ts +30 -0
  110. package/dist/types/analytics/heap.d.ts +40 -0
  111. package/dist/types/analytics/hightouch.d.ts +44 -0
  112. package/dist/types/analytics/hotjar.d.ts +33 -0
  113. package/dist/types/analytics/index.d.ts +61 -0
  114. package/dist/types/analytics/inline.d.ts +17 -0
  115. package/dist/types/analytics/logrocket.d.ts +44 -0
  116. package/dist/types/analytics/mixpanel.d.ts +67 -0
  117. package/dist/types/analytics/pirsch.d.ts +42 -0
  118. package/dist/types/analytics/plausible.d.ts +56 -0
  119. package/dist/types/analytics/posthog.d.ts +45 -0
  120. package/dist/types/analytics/schema.d.ts +320 -0
  121. package/dist/types/analytics/script.d.ts +46 -0
  122. package/dist/types/analytics/segment.d.ts +50 -0
  123. package/dist/types/analytics/vercel.d.ts +48 -0
  124. package/dist/types/astro/integration.d.ts +76 -0
  125. package/dist/types/astro/markdown-negotiation.d.ts +23 -0
  126. package/dist/types/astro/module-types.d.ts +14 -0
  127. package/dist/types/astro/pages.d.ts +44 -0
  128. package/dist/types/cli/env.d.ts +12 -0
  129. package/dist/types/cli/init/scaffold.d.ts +154 -0
  130. package/dist/types/components/layout/nav-utils.d.ts +11 -0
  131. package/dist/types/core/adapter.d.ts +47 -0
  132. package/dist/types/core/api-name.d.ts +7 -0
  133. package/dist/types/core/changelog-index.d.ts +13 -0
  134. package/dist/types/core/config-input.d.ts +197 -526
  135. package/dist/types/core/config.d.ts +61 -35
  136. package/dist/types/core/content-assets.d.ts +76 -0
  137. package/dist/types/core/custom-pages.d.ts +33 -0
  138. package/dist/types/core/data.d.ts +30 -15
  139. package/dist/types/core/define-components.d.ts +12 -9
  140. package/dist/types/core/deployment-env.d.ts +6 -11
  141. package/dist/types/core/frontmatter.d.ts +10 -0
  142. package/dist/types/core/graph.d.ts +18 -0
  143. package/dist/types/core/heading-markers.d.ts +54 -0
  144. package/dist/types/core/i18n-ui.d.ts +12 -10
  145. package/dist/types/core/i18n.d.ts +87 -0
  146. package/dist/types/core/includes.d.ts +138 -0
  147. package/dist/types/core/last-modified.d.ts +47 -0
  148. package/dist/types/core/links.d.ts +95 -0
  149. package/dist/types/core/locale-links.d.ts +60 -0
  150. package/dist/types/core/manifest.d.ts +17 -0
  151. package/dist/types/core/meta.d.ts +38 -0
  152. package/dist/types/core/nav-diagnostics.d.ts +26 -0
  153. package/dist/types/core/navigation.d.ts +6 -0
  154. package/dist/types/core/node-require.d.ts +19 -0
  155. package/dist/types/core/package-json.d.ts +13 -0
  156. package/dist/types/core/probe.d.ts +42 -0
  157. package/dist/types/core/project-graph.d.ts +51 -0
  158. package/dist/types/core/project.d.ts +2 -0
  159. package/dist/types/core/safe-href.d.ts +2 -0
  160. package/dist/types/core/safe-links.d.ts +26 -0
  161. package/dist/types/core/schema.d.ts +2284 -454
  162. package/dist/types/core/site-url.d.ts +16 -0
  163. package/dist/types/core/sources/assets.d.ts +36 -0
  164. package/dist/types/core/sources/cache.d.ts +37 -0
  165. package/dist/types/core/sources/collection.d.ts +28 -0
  166. package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
  167. package/dist/types/core/sources/contentful.d.ts +40 -0
  168. package/dist/types/core/sources/filesystem.d.ts +24 -0
  169. package/dist/types/core/sources/github-releases.d.ts +31 -0
  170. package/dist/types/core/sources/json.d.ts +30 -0
  171. package/dist/types/core/sources/lexical.d.ts +19 -0
  172. package/dist/types/core/sources/lower.d.ts +75 -0
  173. package/dist/types/core/sources/mdx-remote.d.ts +28 -0
  174. package/dist/types/core/sources/normalize.d.ts +147 -0
  175. package/dist/types/core/sources/notion.d.ts +131 -0
  176. package/dist/types/core/sources/obsidian.d.ts +46 -0
  177. package/dist/types/core/sources/payload.d.ts +39 -0
  178. package/dist/types/core/sources/portable-text.d.ts +42 -0
  179. package/dist/types/core/sources/read.d.ts +23 -0
  180. package/dist/types/core/sources/remote.d.ts +74 -0
  181. package/dist/types/core/sources/resolve.d.ts +19 -0
  182. package/dist/types/core/sources/sanity.d.ts +43 -0
  183. package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
  184. package/dist/types/core/sources/strapi.d.ts +33 -0
  185. package/dist/types/core/sources/types.d.ts +7 -0
  186. package/dist/types/core/sources/watch.d.ts +45 -0
  187. package/dist/types/core/text-width.d.ts +11 -0
  188. package/dist/types/core/types.d.ts +15 -1
  189. package/dist/types/core/unrecognized-keys.d.ts +7 -0
  190. package/dist/types/core/versions.d.ts +72 -0
  191. package/dist/types/core/yaml.d.ts +9 -0
  192. package/dist/types/deploy/adapter-output.d.ts +45 -0
  193. package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
  194. package/dist/types/deploy/adapters/index.d.ts +29 -0
  195. package/dist/types/deploy/adapters/netlify.d.ts +37 -0
  196. package/dist/types/deploy/adapters/node.d.ts +37 -0
  197. package/dist/types/deploy/adapters/registry.d.ts +133 -0
  198. package/dist/types/deploy/adapters/types.d.ts +71 -0
  199. package/dist/types/deploy/adapters/vercel.d.ts +38 -0
  200. package/dist/types/deploy/artifacts.d.ts +65 -0
  201. package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
  202. package/dist/types/deploy/function-bundle.d.ts +80 -0
  203. package/dist/types/deploy/headers.d.ts +50 -0
  204. package/dist/types/deploy/node-headers.d.ts +42 -0
  205. package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
  206. package/dist/types/deploy/platforms/index.d.ts +18 -0
  207. package/dist/types/deploy/platforms/netlify.d.ts +13 -0
  208. package/dist/types/deploy/platforms/node.d.ts +11 -0
  209. package/dist/types/deploy/platforms/paths.d.ts +27 -0
  210. package/dist/types/deploy/platforms/static.d.ts +10 -0
  211. package/dist/types/deploy/platforms/types.d.ts +104 -0
  212. package/dist/types/deploy/platforms/vercel.d.ts +32 -0
  213. package/dist/types/deploy/redirects.d.ts +53 -0
  214. package/dist/types/deploy/robots.d.ts +8 -0
  215. package/dist/types/deploy/rss.d.ts +31 -0
  216. package/dist/types/deploy/sitemap.d.ts +21 -0
  217. package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
  218. package/dist/types/markdown/code-title.d.ts +32 -0
  219. package/dist/types/markdown/fence-meta.d.ts +23 -0
  220. package/dist/types/markdown/themes.d.ts +3 -3
  221. package/dist/types/openapi/asyncapi.d.ts +129 -0
  222. package/dist/types/openapi/graphql-build.d.ts +8 -0
  223. package/dist/types/openapi/graphql.d.ts +122 -0
  224. package/dist/types/openapi/model.d.ts +158 -0
  225. package/dist/types/openapi/parse.d.ts +57 -0
  226. package/dist/types/openapi/references.d.ts +37 -25
  227. package/dist/types/openapi/render-mdx.d.ts +33 -0
  228. package/dist/types/openapi/sentence.d.ts +7 -0
  229. package/dist/types/openapi/signature.d.ts +10 -0
  230. package/dist/types/openapi/source.d.ts +22 -0
  231. package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
  232. package/dist/types/reference/asyncapi.d.ts +166 -0
  233. package/dist/types/reference/graphql.d.ts +181 -0
  234. package/dist/types/reference/index.d.ts +32 -0
  235. package/dist/types/reference/openapi.d.ts +165 -0
  236. package/dist/types/reference/options.d.ts +157 -0
  237. package/dist/types/reference/scalar.d.ts +136 -0
  238. package/dist/types/reference/schema.d.ts +630 -0
  239. package/dist/types/search/adapters/algolia.d.ts +32 -0
  240. package/dist/types/search/adapters/flexsearch.d.ts +12 -0
  241. package/dist/types/search/adapters/index.d.ts +31 -0
  242. package/dist/types/search/adapters/mixedbread.d.ts +22 -0
  243. package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
  244. package/dist/types/search/adapters/orama.d.ts +13 -0
  245. package/dist/types/search/adapters/pagefind.d.ts +12 -0
  246. package/dist/types/search/adapters/registry.d.ts +228 -0
  247. package/dist/types/search/adapters/types.d.ts +34 -0
  248. package/dist/types/search/adapters/typesense.d.ts +42 -0
  249. package/dist/types/search/build.d.ts +23 -0
  250. package/dist/types/search/documents.d.ts +90 -0
  251. package/dist/types/search/facets.d.ts +3 -0
  252. package/dist/types/search/orama-index.d.ts +1 -1
  253. package/dist/types/search/sync/algolia.d.ts +14 -0
  254. package/dist/types/search/sync/index.d.ts +14 -0
  255. package/dist/types/search/sync/orama-cloud.d.ts +10 -0
  256. package/dist/types/search/sync/typesense.d.ts +14 -0
  257. package/dist/types/sources/contentful.d.ts +68 -0
  258. package/dist/types/sources/custom.d.ts +20 -0
  259. package/dist/types/sources/filesystem.d.ts +42 -0
  260. package/dist/types/sources/github-releases.d.ts +46 -0
  261. package/dist/types/sources/index.d.ts +48 -0
  262. package/dist/types/sources/mdx-remote.d.ts +63 -0
  263. package/dist/types/sources/notion.d.ts +65 -0
  264. package/dist/types/sources/obsidian.d.ts +34 -0
  265. package/dist/types/sources/payload.d.ts +68 -0
  266. package/dist/types/sources/registry.d.ts +1414 -0
  267. package/dist/types/sources/sanity.d.ts +69 -0
  268. package/dist/types/sources/shared.d.ts +46 -0
  269. package/dist/types/sources/strapi.d.ts +66 -0
  270. package/dist/types/theme/icon-kind.d.ts +11 -0
  271. package/dist/types/theme/icons.d.ts +20 -0
  272. package/docs/01-quickstart.mdx +18 -18
  273. package/docs/02-deployment.mdx +52 -28
  274. package/docs/03-upgrading.mdx +364 -0
  275. package/docs/04-migrating.mdx +58 -0
  276. package/docs/08-faq.mdx +5 -5
  277. package/docs/advanced/blog.mdx +13 -6
  278. package/docs/advanced/changelog.mdx +23 -35
  279. package/docs/advanced/custom-pages.mdx +22 -10
  280. package/docs/advanced/meta.ts +1 -8
  281. package/docs/advanced/skills.mdx +8 -0
  282. package/docs/cli/audit.mdx +646 -0
  283. package/docs/cli/doctor.mdx +29 -0
  284. package/docs/{reference/eval.mdx → cli/evals.mdx} +12 -11
  285. package/docs/cli/index.mdx +105 -0
  286. package/docs/cli/meta.ts +7 -0
  287. package/docs/{reference → cli}/translate.mdx +9 -9
  288. package/docs/cli/validate.mdx +41 -0
  289. package/docs/cli/version.mdx +40 -0
  290. package/docs/configuration/analytics.mdx +350 -59
  291. package/docs/configuration/assistant.mdx +357 -0
  292. package/docs/configuration/customization.mdx +16 -10
  293. package/docs/configuration/index.mdx +50 -31
  294. package/docs/configuration/meta.ts +1 -1
  295. package/docs/configuration/search.mdx +76 -55
  296. package/docs/configuration/theming.mdx +24 -15
  297. package/docs/content/components.mdx +21 -5
  298. package/docs/{reference → content}/frontmatter.mdx +35 -1
  299. package/docs/content/i18n.mdx +9 -7
  300. package/docs/content/includes.mdx +2 -4
  301. package/docs/content/index.mdx +1 -1
  302. package/docs/content/islands.mdx +11 -6
  303. package/docs/content/meta.mdx +1 -1
  304. package/docs/content/meta.ts +1 -0
  305. package/docs/content/navigation.mdx +9 -7
  306. package/docs/content/sources.mdx +145 -50
  307. package/docs/content/syntax.mdx +16 -12
  308. package/docs/content/versioning.mdx +3 -3
  309. package/docs/discoverability/agent-discovery.mdx +12 -12
  310. package/docs/discoverability/index.mdx +4 -4
  311. package/docs/discoverability/json-api.mdx +4 -4
  312. package/docs/discoverability/llms-txt.mdx +6 -6
  313. package/docs/discoverability/markdown.mdx +4 -4
  314. package/docs/discoverability/mcp.mdx +11 -11
  315. package/docs/discoverability/sitemap-and-robots.mdx +3 -3
  316. package/docs/index.mdx +4 -4
  317. package/docs/references/asyncapi.mdx +59 -0
  318. package/docs/{advanced → references}/graphql.mdx +45 -32
  319. package/docs/{reference → references}/meta.ts +2 -2
  320. package/docs/references/openapi.mdx +171 -0
  321. package/docs/references/scalar.mdx +64 -0
  322. package/package.json +42 -8
  323. package/skills/blume/SKILL.md +23 -10
  324. package/skills/blume-migrate/SKILL.md +22 -21
  325. package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
  326. package/skills/blume-migrate/references/docusaurus.md +5 -4
  327. package/skills/blume-migrate/references/fumadocs.md +4 -4
  328. package/skills/blume-migrate/references/mintlify.md +23 -8
  329. package/skills/blume-migrate/references/monorepo.md +6 -6
  330. package/skills/blume-migrate/references/starlight.md +4 -4
  331. package/src/ai/agent-readability.ts +25 -26
  332. package/src/ai/ai-catalog.ts +50 -32
  333. package/src/ai/api/handlers.ts +46 -11
  334. package/src/ai/api/paths.ts +1 -1
  335. package/src/ai/api-catalog.ts +8 -8
  336. package/src/ai/ask-context.ts +7 -7
  337. package/src/ai/ask-data.ts +3 -3
  338. package/src/ai/ask.ts +637 -100
  339. package/src/ai/changelog-markdown.ts +91 -0
  340. package/src/ai/component-markdown.ts +328 -12
  341. package/src/ai/cors.ts +3 -3
  342. package/src/ai/index.ts +45 -0
  343. package/src/ai/link-headers.ts +7 -6
  344. package/src/ai/llms.ts +20 -15
  345. package/src/ai/markdown.ts +35 -5
  346. package/src/ai/mcp/data.ts +9 -5
  347. package/src/ai/openapi-components.ts +5 -2
  348. package/src/ai/relative-links.ts +170 -0
  349. package/src/ai/serializers.ts +3 -3
  350. package/src/ai/skills.ts +1 -1
  351. package/src/ai/visibility.ts +1 -1
  352. package/src/ai/web-bot-auth.ts +2 -2
  353. package/src/analytics/adobe.ts +46 -0
  354. package/src/analytics/amplitude.ts +79 -0
  355. package/src/analytics/clarity.ts +46 -0
  356. package/src/analytics/clearbit.ts +47 -0
  357. package/src/analytics/cloudflare.ts +67 -0
  358. package/src/analytics/fathom.ts +64 -0
  359. package/src/analytics/google-analytics.ts +84 -0
  360. package/src/analytics/google-tag-manager.ts +61 -0
  361. package/src/analytics/head.ts +130 -0
  362. package/src/analytics/heap.ts +65 -0
  363. package/src/analytics/hightouch.ts +77 -0
  364. package/src/analytics/hotjar.ts +47 -0
  365. package/src/analytics/index.ts +71 -0
  366. package/src/analytics/inline.ts +21 -0
  367. package/src/analytics/logrocket.ts +71 -0
  368. package/src/analytics/mixpanel.ts +92 -0
  369. package/src/analytics/pirsch.ts +66 -0
  370. package/src/analytics/plausible.ts +83 -0
  371. package/src/analytics/posthog.ts +78 -0
  372. package/src/analytics/schema.ts +60 -0
  373. package/src/analytics/script.ts +60 -0
  374. package/src/analytics/segment.ts +85 -0
  375. package/src/analytics/vercel.ts +50 -0
  376. package/src/astro/adapter-root.ts +7 -9
  377. package/src/astro/component-slots.ts +131 -91
  378. package/src/astro/generate.ts +129 -361
  379. package/src/astro/integration.ts +2 -6
  380. package/src/astro/module-types.ts +1 -1
  381. package/src/astro/pages.ts +13 -101
  382. package/src/astro/render-deps.ts +379 -0
  383. package/src/astro/runtime-deps.ts +201 -0
  384. package/src/astro/templates.ts +575 -562
  385. package/src/audit/agent.ts +24 -0
  386. package/src/audit/catalog.ts +2 -2
  387. package/src/audit/checks/assets.ts +2 -2
  388. package/src/audit/checks/dns-aid.ts +1 -1
  389. package/src/audit/checks/duplicates.ts +3 -1
  390. package/src/audit/checks/i18n.ts +1 -1
  391. package/src/audit/checks/indexability.ts +7 -7
  392. package/src/audit/checks/links.ts +2 -2
  393. package/src/audit/checks/llms.ts +6 -6
  394. package/src/audit/checks/network.ts +3 -3
  395. package/src/audit/checks/og-image.ts +2 -2
  396. package/src/audit/checks/robots.ts +1 -1
  397. package/src/audit/checks/sitemap.ts +2 -2
  398. package/src/audit/checks/social.ts +1 -1
  399. package/src/audit/run.ts +4 -3
  400. package/src/audit/terms.ts +31 -0
  401. package/src/audit/url.ts +13 -13
  402. package/src/blume-modules.d.ts +2 -2
  403. package/src/cli/command-meta.ts +10 -0
  404. package/src/cli/commands/audit.ts +40 -21
  405. package/src/cli/commands/build.ts +71 -316
  406. package/src/cli/commands/check.ts +1 -0
  407. package/src/cli/commands/dev.ts +40 -1
  408. package/src/cli/commands/doctor.ts +92 -14
  409. package/src/cli/commands/eject.ts +44 -7
  410. package/src/cli/commands/eval.ts +5 -5
  411. package/src/cli/commands/init.ts +161 -41
  412. package/src/cli/commands/migrate.ts +121 -0
  413. package/src/cli/commands/preview.ts +7 -1
  414. package/src/cli/commands/translate.ts +5 -5
  415. package/src/cli/commands/upgrade.ts +141 -0
  416. package/src/cli/commands/version.ts +57 -44
  417. package/src/cli/eject-scripts.ts +121 -6
  418. package/src/cli/index.ts +11 -1
  419. package/src/cli/init/install.ts +70 -0
  420. package/src/cli/init/questions.ts +7 -0
  421. package/src/cli/init/scaffold.ts +459 -75
  422. package/src/cli/lazy-command.ts +37 -1
  423. package/src/cli/prepare.ts +40 -6
  424. package/src/cli/required-secrets.ts +39 -12
  425. package/src/cli/unknown-flags.ts +266 -0
  426. package/src/cli/yarn-pnp.ts +52 -0
  427. package/src/components/content/AccordionItem.astro +7 -1
  428. package/src/components/content/Card.astro +4 -3
  429. package/src/components/content/ColorItem.astro +22 -4
  430. package/src/components/content/GithubInfo.astro +2 -2
  431. package/src/components/content/Prompt.astro +25 -25
  432. package/src/components/content/Tabs.astro +3 -1
  433. package/src/components/content/Tile.astro +2 -3
  434. package/src/components/content/Tooltip.astro +57 -9
  435. package/src/components/content/content-strings.ts +34 -0
  436. package/src/components/content/diff.ts +1 -1
  437. package/src/components/content/mermaid-element.ts +13 -2
  438. package/src/components/content/prompt-markdown.ts +292 -0
  439. package/src/components/content/tooltip-id.ts +41 -0
  440. package/src/components/copy-feedback.ts +1 -1
  441. package/src/components/islands/{AskAI.astro → Assistant.astro} +10 -10
  442. package/src/components/islands/{ask-ai.tsx → assistant.tsx} +23 -23
  443. package/src/components/islands/hooks.ts +36 -11
  444. package/src/components/layout/Analytics.astro +21 -79
  445. package/src/components/layout/Banner.astro +3 -1
  446. package/src/components/layout/DiscoveryLinks.astro +69 -0
  447. package/src/components/layout/Header.astro +93 -30
  448. package/src/components/layout/LanguageSwitcher.astro +4 -1
  449. package/src/components/layout/Logo.astro +23 -2
  450. package/src/components/layout/NavSelector.astro +13 -2
  451. package/src/components/layout/NavTree.astro +12 -3
  452. package/src/components/layout/NavTreeScript.astro +17 -3
  453. package/src/components/layout/PageActions.astro +3 -3
  454. package/src/components/layout/PageFeedback.astro +11 -1
  455. package/src/components/layout/PageLayout.astro +58 -11
  456. package/src/components/layout/Pagination.astro +7 -7
  457. package/src/components/layout/ReferenceLayout.astro +22 -13
  458. package/src/components/layout/RootLayout.astro +75 -72
  459. package/src/components/layout/Search.astro +43 -19
  460. package/src/components/layout/WebMcp.astro +1 -1
  461. package/src/components/layout/analytics-client.ts +73 -16
  462. package/src/components/layout/drawer-inert.ts +113 -15
  463. package/src/components/layout/dropdown-clamp.ts +105 -0
  464. package/src/components/layout/head-scripts.ts +15 -6
  465. package/src/components/layout/nav-utils.ts +17 -0
  466. package/src/components/layout/search/algolia.ts +8 -8
  467. package/src/components/layout/search/orama-cloud.ts +9 -7
  468. package/src/components/layout/search/typesense.ts +11 -17
  469. package/src/components/openapi/MessageComposer.astro +2 -2
  470. package/src/components/openapi/Playground.astro +2 -2
  471. package/src/components/openapi/description.ts +2 -2
  472. package/src/components/openapi/playground-client.ts +79 -10
  473. package/src/core/changelog-index.ts +24 -0
  474. package/src/core/code-fences.ts +1 -1
  475. package/src/core/component-overrides.ts +399 -154
  476. package/src/core/config-input.ts +201 -566
  477. package/src/core/config.ts +131 -42
  478. package/src/core/custom-pages.ts +105 -0
  479. package/src/core/data.ts +34 -15
  480. package/src/core/define-components.ts +12 -9
  481. package/src/core/deployment-env.ts +18 -74
  482. package/src/core/diagnostics.ts +14 -7
  483. package/src/core/graph.ts +69 -25
  484. package/src/core/i18n-ui.ts +41 -11
  485. package/src/core/i18n.ts +17 -0
  486. package/src/core/includes.ts +156 -38
  487. package/src/core/last-modified.ts +6 -11
  488. package/src/core/links.ts +166 -2
  489. package/src/core/manifest.ts +10 -3
  490. package/src/core/navigation.ts +115 -16
  491. package/src/core/new-tab.ts +35 -0
  492. package/src/core/node-require.ts +21 -0
  493. package/src/core/project-graph.ts +42 -26
  494. package/src/core/project.ts +9 -4
  495. package/src/core/request-body.ts +61 -0
  496. package/src/core/safe-href.ts +28 -0
  497. package/src/core/safe-links.ts +68 -0
  498. package/src/core/schema.ts +528 -745
  499. package/src/core/server-features.ts +10 -11
  500. package/src/core/sources/assets.ts +47 -11
  501. package/src/core/sources/collection.ts +67 -0
  502. package/src/core/sources/contentful-rich-text.ts +285 -0
  503. package/src/core/sources/contentful.ts +173 -0
  504. package/src/core/sources/github-releases.ts +51 -1
  505. package/src/core/sources/json.ts +71 -0
  506. package/src/core/sources/lexical.ts +195 -0
  507. package/src/core/sources/lower.ts +226 -0
  508. package/src/core/sources/normalize.ts +52 -2
  509. package/src/core/sources/notion.ts +39 -28
  510. package/src/core/sources/payload.ts +135 -0
  511. package/src/core/sources/portable-text.ts +11 -16
  512. package/src/core/sources/remote.ts +226 -0
  513. package/src/core/sources/resolve.ts +104 -166
  514. package/src/core/sources/sanity.ts +16 -49
  515. package/src/core/sources/strapi-blocks.ts +124 -0
  516. package/src/core/sources/strapi.ts +191 -0
  517. package/src/core/sources/types.ts +12 -1
  518. package/src/core/types.ts +15 -1
  519. package/src/core/ui-packs/ar.ts +10 -7
  520. package/src/core/ui-packs/bg.ts +10 -7
  521. package/src/core/ui-packs/bn.ts +10 -7
  522. package/src/core/ui-packs/ca.ts +7 -6
  523. package/src/core/ui-packs/cs.ts +10 -7
  524. package/src/core/ui-packs/da.ts +10 -7
  525. package/src/core/ui-packs/de.ts +10 -7
  526. package/src/core/ui-packs/el.ts +7 -6
  527. package/src/core/ui-packs/es.ts +7 -6
  528. package/src/core/ui-packs/fa.ts +10 -7
  529. package/src/core/ui-packs/fi.ts +10 -7
  530. package/src/core/ui-packs/fr.ts +7 -6
  531. package/src/core/ui-packs/he.ts +10 -7
  532. package/src/core/ui-packs/hi.ts +10 -7
  533. package/src/core/ui-packs/hr.ts +10 -7
  534. package/src/core/ui-packs/hu.ts +10 -7
  535. package/src/core/ui-packs/id.ts +10 -7
  536. package/src/core/ui-packs/it.ts +7 -6
  537. package/src/core/ui-packs/ja.ts +7 -6
  538. package/src/core/ui-packs/ko.ts +7 -6
  539. package/src/core/ui-packs/nl.ts +10 -7
  540. package/src/core/ui-packs/no.ts +10 -7
  541. package/src/core/ui-packs/pl.ts +10 -7
  542. package/src/core/ui-packs/pt-br.ts +7 -6
  543. package/src/core/ui-packs/pt.ts +7 -6
  544. package/src/core/ui-packs/ro.ts +10 -7
  545. package/src/core/ui-packs/ru.ts +10 -7
  546. package/src/core/ui-packs/sk.ts +10 -7
  547. package/src/core/ui-packs/sr.ts +10 -7
  548. package/src/core/ui-packs/sv.ts +10 -7
  549. package/src/core/ui-packs/th.ts +7 -6
  550. package/src/core/ui-packs/tr.ts +10 -7
  551. package/src/core/ui-packs/uk.ts +10 -7
  552. package/src/core/ui-packs/vi.ts +7 -6
  553. package/src/core/ui-packs/zh-tw.ts +7 -6
  554. package/src/core/ui-packs/zh.ts +7 -6
  555. package/src/core/unrecognized-keys.ts +10 -0
  556. package/src/core/version-cut.ts +116 -8
  557. package/src/deploy/adapter-output.ts +57 -97
  558. package/src/deploy/adapters/cloudflare.ts +39 -0
  559. package/src/deploy/adapters/index.ts +41 -0
  560. package/src/deploy/adapters/netlify.ts +34 -0
  561. package/src/deploy/adapters/node.ts +34 -0
  562. package/src/deploy/adapters/registry.ts +127 -0
  563. package/src/deploy/adapters/types.ts +92 -0
  564. package/src/deploy/adapters/vercel.ts +35 -0
  565. package/src/deploy/artifacts.ts +55 -27
  566. package/src/deploy/cloudflare-negotiation.ts +179 -100
  567. package/src/deploy/function-bundle.ts +18 -3
  568. package/src/deploy/headers.ts +124 -23
  569. package/src/deploy/node-headers.ts +198 -0
  570. package/src/deploy/platforms/cloudflare.ts +312 -0
  571. package/src/deploy/platforms/index.ts +67 -0
  572. package/src/deploy/platforms/netlify.ts +52 -0
  573. package/src/deploy/platforms/node.ts +40 -0
  574. package/src/deploy/platforms/paths.ts +42 -0
  575. package/src/deploy/platforms/static.ts +29 -0
  576. package/src/deploy/platforms/types.ts +112 -0
  577. package/src/deploy/platforms/vercel.ts +193 -0
  578. package/src/deploy/redirects.ts +30 -18
  579. package/src/deploy/robots.ts +3 -3
  580. package/src/deploy/rss.ts +2 -2
  581. package/src/deploy/sitemap.ts +2 -2
  582. package/src/deploy/vercel-negotiation.ts +2 -2
  583. package/src/eval/agents.ts +32 -1
  584. package/src/eval/findings.ts +19 -11
  585. package/src/eval/report.ts +10 -2
  586. package/src/markdown/external-links.ts +65 -0
  587. package/src/markdown/include.ts +45 -27
  588. package/src/markdown/index.ts +34 -9
  589. package/src/markdown/inline-code.ts +12 -6
  590. package/src/markdown/relative-links.ts +324 -0
  591. package/src/markdown/themes.ts +3 -3
  592. package/src/migrate/migrate.ts +149 -0
  593. package/src/openapi/parse.ts +64 -16
  594. package/src/openapi/proxy.ts +62 -10
  595. package/src/openapi/references.ts +147 -147
  596. package/src/openapi/render-mdx.ts +32 -10
  597. package/src/openapi/scalar.ts +15 -13
  598. package/src/openapi/sentence.ts +14 -0
  599. package/src/openapi/source.ts +37 -21
  600. package/src/openapi/spec-dependency-error.ts +15 -0
  601. package/src/reference/asyncapi.ts +83 -0
  602. package/src/reference/graphql.ts +89 -0
  603. package/src/reference/index.ts +40 -0
  604. package/src/reference/openapi.ts +83 -0
  605. package/src/reference/options.ts +201 -0
  606. package/src/reference/scalar.ts +136 -0
  607. package/src/reference/schema.ts +88 -0
  608. package/src/registry/eject.ts +109 -53
  609. package/src/search/adapters/algolia.ts +46 -0
  610. package/src/search/adapters/flexsearch.ts +29 -0
  611. package/src/search/adapters/index.ts +39 -0
  612. package/src/search/adapters/mixedbread.ts +39 -0
  613. package/src/search/adapters/orama-cloud.ts +51 -0
  614. package/src/search/adapters/orama.ts +24 -0
  615. package/src/search/adapters/pagefind.ts +27 -0
  616. package/src/search/adapters/registry.ts +131 -0
  617. package/src/search/adapters/types.ts +46 -0
  618. package/src/search/adapters/typesense.ts +57 -0
  619. package/src/search/build.ts +8 -4
  620. package/src/search/documents.ts +8 -2
  621. package/src/search/orama-index.ts +1 -1
  622. package/src/search/sync/algolia.ts +12 -11
  623. package/src/search/sync/index.ts +35 -20
  624. package/src/search/sync/orama-cloud.ts +12 -9
  625. package/src/search/sync/typesense.ts +15 -13
  626. package/src/sources/contentful.ts +63 -0
  627. package/src/sources/custom.ts +38 -0
  628. package/src/sources/filesystem.ts +51 -0
  629. package/src/sources/github-releases.ts +52 -0
  630. package/src/sources/index.ts +60 -0
  631. package/src/sources/mdx-remote.ts +76 -0
  632. package/src/sources/notion.ts +63 -0
  633. package/src/sources/obsidian.ts +38 -0
  634. package/src/sources/payload.ts +60 -0
  635. package/src/sources/registry.ts +182 -0
  636. package/src/sources/sanity.ts +66 -0
  637. package/src/sources/shared.ts +52 -0
  638. package/src/sources/strapi.ts +58 -0
  639. package/src/theme/entry.ts +24 -2
  640. package/src/translate/report.ts +40 -7
  641. package/src/upgrade/upgrade.ts +499 -0
  642. package/dist/cli/chunk-0qymqwzz.js +0 -164
  643. package/dist/cli/chunk-0qymqwzz.js.map +0 -15
  644. package/dist/cli/chunk-1jefwnfs.js.map +0 -48
  645. package/dist/cli/chunk-2mzebbbz.js +0 -69
  646. package/dist/cli/chunk-2z47ypj8.js.map +0 -11
  647. package/dist/cli/chunk-4x36ddpw.js.map +0 -11
  648. package/dist/cli/chunk-5093q3n7.js +0 -68
  649. package/dist/cli/chunk-5093q3n7.js.map +0 -10
  650. package/dist/cli/chunk-5qk08vmp.js.map +0 -11
  651. package/dist/cli/chunk-7s8hm3b6.js +0 -5347
  652. package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
  653. package/dist/cli/chunk-8cjtbafj.js.map +0 -13
  654. package/dist/cli/chunk-97r59kpr.js +0 -381
  655. package/dist/cli/chunk-97r59kpr.js.map +0 -12
  656. package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
  657. package/dist/cli/chunk-b27xqwn9.js.map +0 -10
  658. package/dist/cli/chunk-bf6bt1xt.js +0 -185
  659. package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
  660. package/dist/cli/chunk-cjtn640a.js.map +0 -10
  661. package/dist/cli/chunk-ct47dqpx.js.map +0 -11
  662. package/dist/cli/chunk-esphfr8p.js +0 -107
  663. package/dist/cli/chunk-esphfr8p.js.map +0 -11
  664. package/dist/cli/chunk-ex56aa81.js +0 -1016
  665. package/dist/cli/chunk-ex56aa81.js.map +0 -13
  666. package/dist/cli/chunk-garjf5z9.js +0 -30
  667. package/dist/cli/chunk-garjf5z9.js.map +0 -10
  668. package/dist/cli/chunk-js7saxwm.js +0 -1045
  669. package/dist/cli/chunk-js7saxwm.js.map +0 -22
  670. package/dist/cli/chunk-k79xp7av.js.map +0 -39
  671. package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
  672. package/dist/cli/chunk-q4rae3bg.js +0 -60
  673. package/dist/cli/chunk-q4rae3bg.js.map +0 -10
  674. package/dist/cli/chunk-rz9jmfhz.js +0 -108
  675. package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
  676. package/dist/cli/chunk-vh9w1sgp.js +0 -73
  677. package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
  678. package/dist/cli/chunk-vrfp10qk.js +0 -81
  679. package/dist/cli/chunk-vrfp10qk.js.map +0 -10
  680. package/dist/cli/chunk-yg63d42r.js.map +0 -34
  681. package/docs/advanced/api-reference.mdx +0 -240
  682. package/docs/configuration/ask-ai.mdx +0 -256
  683. package/docs/reference/cli.mdx +0 -197
  684. package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
  685. package/src/components/content/changelog-element.ts +0 -69
  686. package/src/search/providers.ts +0 -91
  687. /package/dist/cli/{chunk-vacwm2hv.js.map → chunk-27g6wdth.js.map} +0 -0
  688. /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-ce574jw2.js.map} +0 -0
  689. /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-fxypxtvm.js.map} +0 -0
  690. /package/dist/cli/{chunk-nn13znc2.js.map → chunk-zxcczpyx.js.map} +0 -0
@@ -1,50 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ hasScalarReferences,
4
+ buildMcpDiscovery,
5
+ buildMcpServerCard,
6
+ sourcesOfKind,
7
+ resolveDocsCollection,
8
+ discoverPages,
9
+ routeIsTaken,
10
+ customOgRoutes,
11
+ resolveAskBackend,
12
+ buildIncludeGraph,
3
13
  buildRssFeeds,
4
14
  renderRssFeed,
5
- buildRawMarkdown,
6
- buildSearchDocuments,
7
- buildMcpData
8
- } from "./chunk-js7saxwm.js";
9
- import {
10
- buildIncludeGraph,
11
15
  isOpenApiSource,
12
- scanProject
13
- } from "./chunk-1jefwnfs.js";
16
+ buildRawMarkdown
17
+ } from "./chunk-qkqwkpte.js";
14
18
  import {
15
- packageRoot,
16
- getBlumeVersion
19
+ packageRoot
17
20
  } from "./index.js";
18
21
  import {
19
- hasScalarReferences
20
- } from "./chunk-7s8hm3b6.js";
21
- import {
22
- buildMcpDiscovery,
23
- buildMcpServerCard
24
- } from "./chunk-0qymqwzz.js";
22
+ buildSearchDocuments,
23
+ buildMcpData
24
+ } from "./chunk-6crbhc3x.js";
25
25
  import {
26
- buildAskData,
27
- buildThemeCss,
28
- buildReferenceFiles,
29
- tailwindEntryTemplate,
30
- examplesEntryTemplate,
31
- rebaseSourceDirectives,
32
- twoslashCss,
33
26
  planComponentSlots,
34
- discoverIslands,
35
- EXAMPLE_SCAN_GLOB,
36
- exampleScanRoots,
37
- discoverExamples,
38
- exampleMarkdownLookup,
39
- detectNeedsReact,
40
- detectUsesMath,
41
- collectStaged,
42
- buildRuntimeData,
43
- languageIconCssFor,
44
- clientFeaturesFor
45
- } from "./chunk-k79xp7av.js";
46
- import {
47
- resolveAskBackend,
27
+ runtimeDependencies,
48
28
  astroConfigTemplate,
49
29
  contentConfigTemplate,
50
30
  askEndpointTemplate,
@@ -62,22 +42,38 @@ import {
62
42
  catchAllPageTemplate,
63
43
  changelogIndexTemplate,
64
44
  notFoundPageTemplate,
65
- islandWrapperTemplate,
66
- islandMapTemplate,
67
45
  exampleSlug,
68
46
  exampleWrapperTemplate,
69
47
  exampleMapTemplate,
70
48
  examplesPageTemplate,
71
49
  runtimeTsconfigTemplate
72
- } from "./chunk-ps4m1xh4.js";
50
+ } from "./chunk-2hn4b8z7.js";
73
51
  import {
74
- discoverPages,
75
- routeIsTaken,
76
- customOgRoutes
77
- } from "./chunk-vrfp10qk.js";
52
+ discoverIslands
53
+ } from "./chunk-wm7js3j9.js";
78
54
  import {
79
- servesStaticIndex
80
- } from "./chunk-q4rae3bg.js";
55
+ buildAskData,
56
+ buildThemeCss,
57
+ buildReferenceFiles,
58
+ tailwindEntryTemplate,
59
+ examplesEntryTemplate,
60
+ rebaseSourceDirectives,
61
+ twoslashCss,
62
+ EXAMPLE_SCAN_GLOB,
63
+ exampleScanRoots,
64
+ discoverExamples,
65
+ exampleMarkdownLookup,
66
+ detectNeedsReact,
67
+ detectUsesMath,
68
+ collectStaged,
69
+ buildRuntimeData,
70
+ analyzeComponentsFile,
71
+ languageIconCssFor,
72
+ clientFeaturesFor
73
+ } from "./chunk-wgm7m9qk.js";
74
+ import {
75
+ scanProject
76
+ } from "./chunk-fs23ddbb.js";
81
77
 
82
78
  // src/registry/eject.ts
83
79
  import { existsSync } from "node:fs";
@@ -102,8 +98,8 @@ var ejectOpenApiData = (project) => {
102
98
  return source ? source.openApiData() : {};
103
99
  };
104
100
  var askFiles = async (project, srcDir, genDir) => {
105
- const { ask } = project.config.ai;
106
- if (!(ask?.enabled && !ask.endpoint)) {
101
+ const { assistant } = project.config.ai;
102
+ if (!(assistant?.enabled && !assistant.endpoint)) {
107
103
  const endpointPath = join(srcDir, "pages", "api", "ask.ts");
108
104
  if (existsSync(endpointPath)) {
109
105
  const content = await readFile(endpointPath, "utf-8");
@@ -114,19 +110,18 @@ var askFiles = async (project, srcDir, genDir) => {
114
110
  await rm(join(genDir, "ask-data.json"), { force: true });
115
111
  return [];
116
112
  }
117
- const grounded = ask.provider !== "inkeep";
113
+ const backend = resolveAskBackend(assistant.provider);
118
114
  const files = [
119
115
  {
120
- content: askEndpointTemplate(resolveAskBackend(ask), grounded, {
121
- cors: ask.cors,
122
- instructions: ask.instructions,
123
- reasoning: ask.reasoning,
124
- retrieval: ask.retrieval
116
+ content: askEndpointTemplate(backend, {
117
+ cors: assistant.cors,
118
+ instructions: assistant.instructions,
119
+ retrieval: assistant.retrieval
125
120
  }),
126
121
  path: join(srcDir, "pages", "api", "ask.ts")
127
122
  }
128
123
  ];
129
- if (grounded) {
124
+ if (backend.grounded) {
130
125
  files.push({
131
126
  content: `${JSON.stringify(await buildAskData(project))}
132
127
  `,
@@ -135,7 +130,7 @@ var askFiles = async (project, srcDir, genDir) => {
135
130
  }
136
131
  return files;
137
132
  };
138
- var hostsMcp = (project, userPages) => project.config.ai.mcp.enabled && !routeIsTaken(userPages, project.graph.pages, project.config.ai.mcp.route);
133
+ var hostsMcp = (project, userPages) => project.config.agents.mcp.enabled && !routeIsTaken(userPages, project.graph.pages, project.config.agents.mcp.route);
139
134
  var mcpDiscoveryPages = (project, userPages) => hostsMcp(project, userPages) ? [
140
135
  {
141
136
  entrypoint: "src/blume-mcp/discovery.ts",
@@ -150,7 +145,7 @@ var mcpFiles = async (project, userPages, srcDir, genDir) => {
150
145
  if (!hostsMcp(project, userPages)) {
151
146
  return [];
152
147
  }
153
- const { route } = project.config.ai.mcp;
148
+ const { route } = project.config.agents.mcp;
154
149
  const data = await buildMcpData(project);
155
150
  const discoveryInput = {
156
151
  base: data.base,
@@ -181,7 +176,7 @@ var mcpFiles = async (project, userPages, srcDir, genDir) => {
181
176
  };
182
177
  var changelogFiles = (project, userPages, srcDir, options) => {
183
178
  const hasChangelog = project.graph.pages.some((page) => page.contentType === "changelog" && !(page.meta.draft || page.meta.sidebar.hidden));
184
- const hasChangelogSource = (project.config.content.sources ?? []).some((source) => source.type === "github-releases");
179
+ const hasChangelogSource = sourcesOfKind(project.config, "github-releases").length > 0;
185
180
  if (!(hasChangelog || hasChangelogSource) || routeIsTaken(userPages, project.graph.pages, "/changelog")) {
186
181
  return [];
187
182
  }
@@ -205,13 +200,27 @@ var examplesPreviewFiles = (srcDir, basePath, hasExamples) => hasExamples ? [
205
200
  path: join(srcDir, "pages", ...basePath.split("/").filter(Boolean), "blume-examples", "[...path].astro")
206
201
  }
207
202
  ] : [];
203
+ var ejectDependencies = (options) => {
204
+ const { assistant } = options.config.ai;
205
+ return [
206
+ ...new Set([
207
+ "astro",
208
+ "@tailwindcss/vite",
209
+ "blume",
210
+ ...runtimeDependencies(options),
211
+ ...options.needsReact ? ["react", "react-dom"] : [],
212
+ ...assistant?.enabled && !assistant.endpoint ? ["ai"] : [],
213
+ ...options.config.export.epub ? ["epub-gen-memory"] : []
214
+ ])
215
+ ];
216
+ };
208
217
  var ejectIntegrationBridge = (config, root, configFile) => config.integrations.length > 0 && configFile ? { configFile: toPosix(relative(root, configFile)) } : undefined;
209
218
  var eject = async (root) => {
210
219
  const project = await scanProject(root, { mode: "build" });
211
220
  const { context, config } = project;
212
221
  const srcDir = join(root, "src");
213
222
  const genDir = join(srcDir, "generated");
214
- const askEnabled = config.ai.ask?.enabled ?? false;
223
+ const assistantEnabled = config.ai.assistant?.enabled ?? false;
215
224
  const exportPdf = config.export.pdf;
216
225
  const exportEpub = config.export.epub;
217
226
  const examples = await discoverExamples(root, config.examples.source);
@@ -223,7 +232,8 @@ var eject = async (root) => {
223
232
  userTheme,
224
233
  userExamplesCss,
225
234
  rawMarkdown,
226
- islands
235
+ islands,
236
+ overrideAnalysis
227
237
  ] = await Promise.all([
228
238
  context.pagesRoot ? discoverPages(context.pagesRoot) : Promise.resolve([]),
229
239
  detectNeedsReact(root),
@@ -231,22 +241,33 @@ var eject = async (root) => {
231
241
  readUserCss(context.themeFile, genDir),
232
242
  readUserCss(config.examples.css ? join(root, config.examples.css) : null, genDir),
233
243
  buildRawMarkdown(project),
234
- discoverIslands(root)
244
+ discoverIslands(root),
245
+ analyzeComponentsFile(context.componentsFile)
235
246
  ]);
247
+ const slotPlan = planComponentSlots(islands.islands, overrideAnalysis, {
248
+ relativeTo: genDir
249
+ });
236
250
  const frameworks = new Set([
237
251
  ...islands.islands.map((island) => island.framework),
238
- ...examples.examples.map((example) => example.framework)
252
+ ...examples.examples.map((example) => example.framework),
253
+ ...slotPlan.frameworks
239
254
  ]);
240
- const needsReact = needsReactRaw || askEnabled || frameworks.has("react");
255
+ const needsReact = needsReactRaw || assistantEnabled || frameworks.has("react");
241
256
  const needsVue = frameworks.has("vue");
242
257
  const needsSvelte = frameworks.has("svelte");
243
258
  const relContext = {
244
259
  ...context,
245
260
  contentRoot: toPosix(relative(root, context.contentRoot)),
261
+ distDir: "./dist",
246
262
  outDir: ".",
263
+ pagesRoot: context.pagesRoot ? `./${toPosix(relative(root, context.pagesRoot))}` : null,
247
264
  root: "."
248
265
  };
249
- const componentsImport = context.componentsFile ? `../../${toPosix(relative(root, context.componentsFile))}` : null;
266
+ const docsCollection = resolveDocsCollection(config, root);
267
+ const relCollection = {
268
+ ...docsCollection,
269
+ base: toPosix(relative(root, docsCollection.base))
270
+ };
250
271
  const relPages = [
251
272
  ...pages.map((page) => ({
252
273
  entrypoint: toPosix(relative(root, page.entrypoint)),
@@ -289,6 +310,7 @@ var eject = async (root) => {
289
310
  },
290
311
  {
291
312
  content: contentConfigTemplate({
313
+ collection: relCollection,
292
314
  config,
293
315
  context: relContext,
294
316
  staged: hasStaged,
@@ -306,13 +328,9 @@ var eject = async (root) => {
306
328
  path: join(srcDir, "pages", "[...slug].astro")
307
329
  },
308
330
  {
309
- content: planComponentSlots(componentsImport, null).module,
331
+ content: slotPlan.module,
310
332
  path: join(genDir, "components.ts")
311
333
  },
312
- {
313
- content: islandMapTemplate(islands.islands),
314
- path: join(genDir, "islands.ts")
315
- },
316
334
  {
317
335
  content: exampleMapTemplate(examples.examples, config.basePath),
318
336
  path: join(genDir, "examples.ts")
@@ -340,7 +358,7 @@ var eject = async (root) => {
340
358
  },
341
359
  { content: buildRuntimeData(project), path: join(genDir, "data.json") },
342
360
  {
343
- content: askComponentTemplate(askEnabled),
361
+ content: askComponentTemplate(assistantEnabled),
344
362
  path: join(genDir, "Ask.astro")
345
363
  },
346
364
  {
@@ -367,7 +385,7 @@ var eject = async (root) => {
367
385
  path: join(srcDir, "pages", "[...slug].mdx.ts")
368
386
  }
369
387
  ];
370
- if (askEnabled) {
388
+ if (assistantEnabled) {
371
389
  files.push(...await askFiles(project, srcDir, genDir));
372
390
  }
373
391
  if (config.seo.og.enabled) {
@@ -379,7 +397,6 @@ var eject = async (root) => {
379
397
  files.push(...await mcpFiles(project, pages, srcDir, genDir), ...changelogFiles(project, pages, srcDir, {
380
398
  exportEpub,
381
399
  exportPdf,
382
- mathEnabled: usesMath,
383
400
  needsReact,
384
401
  staged: hasStaged
385
402
  }));
@@ -396,7 +413,8 @@ var eject = async (root) => {
396
413
  content: searchClientTemplate(config),
397
414
  path: join(genDir, "search-client.ts")
398
415
  });
399
- if (servesStaticIndex(config.search.provider)) {
416
+ const searchAdapter = config.search.provider;
417
+ if (searchAdapter.mode === "static") {
400
418
  const documents = await buildSearchDocuments(project);
401
419
  files.push({
402
420
  content: `${JSON.stringify(documents)}
@@ -407,9 +425,9 @@ var eject = async (root) => {
407
425
  path: join(srcDir, "pages", "blume-search.json.ts")
408
426
  });
409
427
  }
410
- if (config.search.provider === "mixedbread") {
428
+ if (searchAdapter.kind === "mixedbread") {
411
429
  files.push({
412
- content: mixedbreadSearchEndpointTemplate(config.search.mixedbread?.storeId ?? ""),
430
+ content: mixedbreadSearchEndpointTemplate(searchAdapter.options),
413
431
  path: join(srcDir, "pages", "api", "search.ts")
414
432
  });
415
433
  }
@@ -440,11 +458,11 @@ var eject = async (root) => {
440
458
  });
441
459
  }
442
460
  }
443
- files.push(...islands.islands.map((island) => ({
444
- content: islandWrapperTemplate(island),
445
- path: join(genDir, "islands", `${island.name}.astro`)
461
+ files.push(...slotPlan.wrappers.map((wrapper) => ({
462
+ content: wrapper.content,
463
+ path: join(genDir, "component-slots", `${wrapper.name}.astro`)
446
464
  })), ...examples.examples.map((example) => ({
447
- content: exampleWrapperTemplate(example),
465
+ content: exampleWrapperTemplate(example, join(genDir, "examples")),
448
466
  path: join(genDir, "examples", `${exampleSlug(example.path)}.astro`)
449
467
  })), ...examplesPreviewFiles(srcDir, config.basePath, examples.examples.length > 0));
450
468
  for (const [entryId, content] of staged) {
@@ -462,311 +480,19 @@ var eject = async (root) => {
462
480
  });
463
481
  }
464
482
  await rm(context.outDir, { force: true, recursive: true });
465
- return { files: written.map((file) => file.path), warnings };
466
- };
467
-
468
- // src/cli/eject-scripts.ts
469
- import { readFile as readFile2, writeFile as writeFile2 } from "node:fs/promises";
470
- import { join as join2 } from "pathe";
471
- var updatePackageScripts = async (root) => {
472
- const pkgPath = join2(root, "package.json");
473
- let pkg;
474
- try {
475
- pkg = JSON.parse(await readFile2(pkgPath, "utf-8"));
476
- } catch {
477
- return;
478
- }
479
- const scripts = pkg.scripts ?? {};
480
- pkg.scripts = {
481
- ...scripts,
482
- build: "astro build",
483
- dev: "astro dev",
484
- preview: "astro preview"
483
+ return {
484
+ dependencies: ejectDependencies({
485
+ config,
486
+ needsReact,
487
+ needsSvelte,
488
+ needsVue
489
+ }),
490
+ files: written.map((file) => file.path),
491
+ warnings
485
492
  };
486
- await writeFile2(pkgPath, `${JSON.stringify(pkg, null, 2)}
487
- `, "utf-8");
488
- };
489
-
490
- // src/cli/init/scaffold.ts
491
- import { existsSync as existsSync2 } from "node:fs";
492
- import { mkdir as mkdir2, writeFile as writeFile3 } from "node:fs/promises";
493
- import { detect } from "package-manager-detector/detect";
494
- import { basename, dirname, isAbsolute, join as join3, relative as relative2 } from "pathe";
495
-
496
- // src/core/package-json.ts
497
- var toPackageName = (raw) => raw.toLowerCase().replaceAll(/[^a-z0-9._-]+/gu, "-").replaceAll(/^[-_.]+|[-_.]+$/gu, "") || "docs";
498
- var blumePackageJson = (name, extraDeps = {}) => {
499
- const dependencies = Object.entries({
500
- blume: `^${getBlumeVersion()}`,
501
- ...extraDeps
502
- }).toSorted(([a], [b]) => a < b ? -1 : 1).map(([dep, range]) => ` ${JSON.stringify(dep)}: ${JSON.stringify(range)}`).join(`,
503
- `);
504
- return `{
505
- "name": ${JSON.stringify(name)},
506
- "private": true,
507
- "type": "module",
508
- "scripts": {
509
- "dev": "blume dev",
510
- "build": "blume build",
511
- "doctor": "blume doctor"
512
- },
513
- "dependencies": {
514
- ${dependencies}
515
- }
516
- }
517
- `;
518
- };
519
-
520
- // src/cli/init/scaffold.ts
521
- var TEMPLATES = ["docs", "api", "sdk", "changelog"];
522
- var PACKAGE_MANAGERS = ["npm", "pnpm", "yarn", "bun"];
523
- var SOURCE_KINDS = [
524
- "filesystem",
525
- "obsidian",
526
- "github-releases",
527
- "notion",
528
- "sanity",
529
- "mdx-remote"
530
- ];
531
- var page = (title, description, body) => `---
532
- title: ${title}
533
- description: ${description}
534
- ---
535
-
536
- ${body}
537
- `;
538
- var STARTERS = {
539
- api: {
540
- configExtra: `
541
- openapi: {
542
- enabled: true,
543
- route: "/api",
544
- sources: [
545
- {
546
- label: "Petstore",
547
- spec: "https://petstore3.swagger.io/api/v3/openapi.json",
548
- },
549
- ],
550
- },`,
551
- files: (dir) => [
552
- {
553
- content: page("API Reference", "Explore the API.", "# API Reference\n\nYour OpenAPI spec renders at [`/api`](/api). Point `openapi.sources` at your own spec in `blume.config.ts`."),
554
- path: join3(dir, "index.mdx")
555
- }
556
- ]
557
- },
558
- changelog: {
559
- configExtra: `
560
- navigation: {
561
- tabs: [
562
- { label: "Docs", path: "/" },
563
- { label: "Changelog", path: "/changelog" },
564
- ],
565
- },`,
566
- files: (dir) => [
567
- {
568
- content: page("Introduction", "Welcome to your new Blume docs.", "# Introduction\n\nWrite your docs here, and log releases under `changelog/`."),
569
- path: join3(dir, "index.mdx")
570
- },
571
- {
572
- content: `---
573
- title: v1.0.0
574
- type: changelog
575
- date: 2026-01-01
576
- ---
577
-
578
- The first release. Edit \`${dir}/changelog/v1-0-0.mdx\` or add new entries beside it.
579
- `,
580
- path: join3(dir, "changelog", "v1-0-0.mdx")
581
- }
582
- ]
583
- },
584
- docs: {
585
- configExtra: "",
586
- files: (dir) => [
587
- {
588
- content: page("Introduction", "Welcome to your new Blume docs.", `# Introduction
589
-
590
- Welcome to **Blume** — markdown-first docs powered by Astro and Vite.
591
-
592
- Edit \`${dir}/index.mdx\` to get started, then run \`blume dev\`.`),
593
- path: join3(dir, "index.mdx")
594
- }
595
- ]
596
- },
597
- sdk: {
598
- configExtra: "",
599
- files: (dir) => [
600
- {
601
- content: page("Introduction", "Get started with the SDK.", `# Introduction
602
-
603
- Install the SDK and make your first call. See [Installation](/installation).`),
604
- path: join3(dir, "index.mdx")
605
- },
606
- {
607
- content: page("Installation", "Install the SDK.", "# Installation\n\n```package-install\nyour-sdk\n```"),
608
- path: join3(dir, "installation.mdx")
609
- }
610
- ]
611
- }
612
- };
613
- var commandsFor = (pm) => ({
614
- build: pm === "npm" || pm === "bun" ? `${pm} run build` : `${pm} build`,
615
- dev: pm === "npm" ? "npm run dev" : `${pm} dev`,
616
- exec: { bun: "bunx", npm: "npx", pnpm: "pnpm exec", yarn: "yarn" }[pm],
617
- install: `${pm} install`
618
- });
619
- var isPackageManager = (value) => PACKAGE_MANAGERS.some((pm) => pm === value);
620
- var detectPackageManager = (userAgent) => {
621
- const name = userAgent?.split("/")[0];
622
- return name !== undefined && isPackageManager(name) ? name : "npm";
623
- };
624
- var detectProjectPackageManager = async (root) => {
625
- const detected = await detect({ cwd: root });
626
- const name = detected?.name;
627
- return name !== undefined && isPackageManager(name) ? name : detectPackageManager(process.env.npm_config_user_agent);
628
- };
629
- var validateContentDir = (root, dir) => isAbsolute(dir) || relative2(root, join3(root, dir)).startsWith("..") ? "Must be a relative path inside the project." : undefined;
630
- var titleize = (raw) => {
631
- const words = raw.replaceAll(/[-_.]+/gu, " ").split(/\s+/u).filter(Boolean);
632
- return words.length === 0 ? "My Docs" : words.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
633
- };
634
- var needsExplicitSources = (sources) => sources.some((source) => source !== "filesystem");
635
- var SOURCE_SNIPPETS = {
636
- "github-releases": ` // Changelog entries from GitHub Releases. Private repos read
637
- // GITHUB_TOKEN from the environment.
638
- {
639
- type: "github-releases",
640
- owner: "your-org",
641
- repo: "your-repo",
642
- prefix: "changelog",
643
- },`,
644
- "mdx-remote": ` // MDX fetched from a GitHub repo. Private repos read GITHUB_TOKEN
645
- // from the environment.
646
- {
647
- type: "mdx-remote",
648
- github: { owner: "your-org", repo: "your-repo", path: "docs" },
649
- prefix: "remote",
650
- },`,
651
- notion: ` // Pages from a Notion database. Reads NOTION_TOKEN from the environment.
652
- {
653
- type: "notion",
654
- database: "your-database-id",
655
- prefix: "notion",
656
- },`,
657
- obsidian: ` // An Obsidian vault, read in place. No export step, and no
658
- // generated notes in your repo. Point \`vault\` at your vault directory,
659
- // relative to this config file.
660
- {
661
- type: "obsidian",
662
- vault: "vault",
663
- prefix: "notes",
664
- },`,
665
- sanity: ` // Documents from a Sanity dataset. Private datasets read SANITY_TOKEN
666
- // from the environment.
667
- {
668
- type: "sanity",
669
- projectId: "your-project-id",
670
- dataset: "production",
671
- query: \`*[_type == "doc"]\`,
672
- prefix: "sanity",
673
- },`
674
- };
675
- var contentBlockFor = (answers) => {
676
- const sources = answers.sources.length === 0 ? ["filesystem"] : answers.sources;
677
- if (!needsExplicitSources(sources)) {
678
- return answers.contentDir === "docs" ? "" : `
679
- content: {
680
- root: ${JSON.stringify(answers.contentDir)},
681
- },`;
682
- }
683
- const entries = SOURCE_KINDS.filter((kind) => sources.includes(kind)).map((kind) => kind === "filesystem" ? ` { type: "filesystem", root: ${JSON.stringify(answers.contentDir)} },` : SOURCE_SNIPPETS[kind]);
684
- return `
685
- content: {
686
- sources: [
687
- ${entries.join(`
688
- `)}
689
- ],
690
- },`;
691
- };
692
- var buildConfig = (answers) => `import { defineConfig } from "blume";
693
-
694
- export default defineConfig({
695
- title: ${JSON.stringify(answers.title)},
696
- description: "Documentation powered by Blume.",${STARTERS[answers.template].configExtra}${contentBlockFor(answers)}
697
- });
698
- `;
699
- var extraDepsFor = (sources) => {
700
- const deps = {};
701
- if (sources.includes("notion")) {
702
- deps["@notionhq/client"] = "^2.2.15";
703
- }
704
- if (sources.includes("sanity")) {
705
- deps["@sanity/client"] = "^7.25.0";
706
- }
707
- return deps;
708
- };
709
- var buildPlan = (root, answers) => {
710
- const files = [
711
- {
712
- content: blumePackageJson(toPackageName(basename(root)), extraDepsFor(answers.sources)),
713
- path: join3(root, "package.json")
714
- },
715
- { content: buildConfig(answers), path: join3(root, "blume.config.ts") }
716
- ];
717
- if (answers.sources.length === 0 || answers.sources.includes("filesystem")) {
718
- files.push(...STARTERS[answers.template].files(answers.contentDir).map((file) => ({ ...file, path: join3(root, file.path) })));
719
- }
720
- if (answers.sources.includes("obsidian")) {
721
- files.push({
722
- content: "# Welcome\n\nThis folder is read by Blume's `obsidian` source. Open it as a vault in Obsidian and write notes — `[[Wikilinks]]` become site links.\n",
723
- path: join3(root, "vault", "Welcome.md")
724
- });
725
- }
726
- return files;
727
- };
728
- var writeFileSafe = async (file, log) => {
729
- if (existsSync2(file.path)) {
730
- log.info(`Skipped existing ${file.path}`);
731
- return false;
732
- }
733
- await mkdir2(dirname(file.path), { recursive: true });
734
- await writeFile3(file.path, file.content, "utf-8");
735
- log.success(`Created ${file.path}`);
736
- return true;
737
- };
738
- var applyPlan = async (files, log) => {
739
- const created = await Promise.all(files.map((file) => writeFileSafe(file, log)));
740
- const createdPackage = files.some((file, index) => created[index] && basename(file.path) === "package.json");
741
- return { createdPackage };
742
- };
743
- var envVarsFor = (sources) => [
744
- ["GITHUB_TOKEN", ["github-releases", "mdx-remote"]],
745
- ["NOTION_TOKEN", ["notion"]],
746
- ["SANITY_TOKEN", ["sanity"]]
747
- ].filter(([, kinds]) => kinds.some((kind) => sources.includes(kind))).map(([envVar]) => envVar);
748
- var nextSteps = (answers, createdPackage) => {
749
- const commands = commandsFor(answers.packageManager);
750
- const lines = [];
751
- if (answers.directory !== ".") {
752
- lines.push(`cd ${answers.directory}`);
753
- }
754
- if (createdPackage) {
755
- lines.push(commands.install);
756
- }
757
- lines.push(commands.dev);
758
- const envVars = envVarsFor(answers.sources);
759
- const auth = envVars.length > 0 ? `
760
- Set ${envVars.join(" and ")} in .env.local so your sources can authenticate.
761
- ` : "";
762
- return `Next steps:
763
-
764
- ${lines.join(`
765
- `)}
766
- ${auth}`;
767
493
  };
768
494
 
769
- export { eject, updatePackageScripts, TEMPLATES, PACKAGE_MANAGERS, commandsFor, detectPackageManager, detectProjectPackageManager, validateContentDir, titleize, buildPlan, applyPlan, nextSteps };
495
+ export { eject };
770
496
 
771
- //# debugId=9855940EC5BAA3FC64756E2164756E21
772
- //# sourceMappingURL=chunk-8cjtbafj.js.map
497
+ //# debugId=038C2E34744E4EC964756E2164756E21
498
+ //# sourceMappingURL=chunk-6hsn950k.js.map