blume 1.7.3 → 2.0.0

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 (673) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +217 -0
  3. package/README.md +34 -21
  4. package/dist/cli/chunk-11j0384y.js +148 -0
  5. package/dist/cli/chunk-11j0384y.js.map +10 -0
  6. package/dist/cli/{chunk-rqy0s5wh.js → chunk-1w8dp3qb.js} +17 -16
  7. package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-1w8dp3qb.js.map} +3 -3
  8. package/dist/cli/chunk-2q1dwty4.js +75 -0
  9. package/dist/cli/chunk-2q1dwty4.js.map +11 -0
  10. package/dist/cli/chunk-41za066z.js +122 -0
  11. package/dist/cli/chunk-41za066z.js.map +11 -0
  12. package/dist/cli/chunk-5a2z0198.js +133 -0
  13. package/dist/cli/chunk-5a2z0198.js.map +10 -0
  14. package/dist/cli/{chunk-5g0w1e2c.js → chunk-6k8vp3ta.js} +25 -13
  15. package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-6k8vp3ta.js.map} +4 -4
  16. package/dist/cli/{chunk-5qk08vmp.js → chunk-79njf86q.js} +133 -54
  17. package/dist/cli/chunk-79njf86q.js.map +11 -0
  18. package/dist/cli/{chunk-e7f42gdj.js → chunk-7ez8ny0t.js} +2 -2
  19. package/dist/cli/{chunk-nn13znc2.js → chunk-88cpgt6h.js} +1 -1
  20. package/dist/cli/chunk-a9kptbw5.js +361 -0
  21. package/dist/cli/chunk-a9kptbw5.js.map +14 -0
  22. package/dist/cli/chunk-abh8yjkn.js +31 -0
  23. package/dist/cli/chunk-abh8yjkn.js.map +10 -0
  24. package/dist/cli/chunk-b5aj94ah.js +91 -0
  25. package/dist/cli/chunk-b5aj94ah.js.map +10 -0
  26. package/dist/cli/{chunk-b27xqwn9.js → chunk-bctazmbk.js} +9 -5
  27. package/dist/cli/chunk-bctazmbk.js.map +10 -0
  28. package/dist/cli/chunk-beat36xx.js +279 -0
  29. package/dist/cli/chunk-beat36xx.js.map +10 -0
  30. package/dist/cli/chunk-bnbmcwfb.js +145 -0
  31. package/dist/cli/chunk-bnbmcwfb.js.map +11 -0
  32. package/dist/cli/{chunk-0xjyb285.js → chunk-bw22s759.js} +15 -5
  33. package/dist/cli/{chunk-0xjyb285.js.map → chunk-bw22s759.js.map} +4 -4
  34. package/dist/cli/chunk-by2290sx.js +39 -0
  35. package/dist/cli/chunk-by2290sx.js.map +10 -0
  36. package/dist/cli/chunk-d1tadaw7.js +79 -0
  37. package/dist/cli/chunk-d1tadaw7.js.map +10 -0
  38. package/dist/cli/{chunk-ahnw3kxw.js → chunk-d80hr03s.js} +24 -19
  39. package/dist/cli/chunk-d80hr03s.js.map +15 -0
  40. package/dist/cli/chunk-ernrthtr.js +97 -0
  41. package/dist/cli/chunk-ernrthtr.js.map +10 -0
  42. package/dist/cli/chunk-f2972sbt.js +374 -0
  43. package/dist/cli/chunk-f2972sbt.js.map +10 -0
  44. package/dist/cli/{chunk-vacwm2hv.js → chunk-f7t03s3g.js} +2 -2
  45. package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
  46. package/dist/cli/chunk-fa25z98p.js.map +11 -0
  47. package/dist/cli/{chunk-cjtn640a.js → chunk-fh5hj5jt.js} +43 -20
  48. package/dist/cli/chunk-fh5hj5jt.js.map +10 -0
  49. package/dist/cli/{chunk-yg63d42r.js → chunk-j8mw0za6.js} +86 -57
  50. package/dist/cli/chunk-j8mw0za6.js.map +35 -0
  51. package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
  52. package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
  53. package/dist/cli/{chunk-ps4m1xh4.js → chunk-mnqj32sj.js} +505 -542
  54. package/dist/cli/chunk-mnqj32sj.js.map +12 -0
  55. package/dist/cli/{chunk-8cjtbafj.js → chunk-mwt1k8n7.js} +100 -374
  56. package/dist/cli/chunk-mwt1k8n7.js.map +10 -0
  57. package/dist/cli/chunk-nk3ts2xk.js +51 -0
  58. package/dist/cli/chunk-nk3ts2xk.js.map +10 -0
  59. package/dist/cli/{chunk-3r45185y.js → chunk-pat2zzwc.js} +9 -11
  60. package/dist/cli/{chunk-3r45185y.js.map → chunk-pat2zzwc.js.map} +2 -2
  61. package/dist/cli/chunk-pnnvybbk.js +176 -0
  62. package/dist/cli/chunk-pnnvybbk.js.map +11 -0
  63. package/dist/cli/{chunk-4x36ddpw.js → chunk-sqn5t4q0.js} +81 -87
  64. package/dist/cli/chunk-sqn5t4q0.js.map +10 -0
  65. package/dist/cli/{chunk-bvwwhd84.js → chunk-tzne8qfq.js} +15 -15
  66. package/dist/cli/{chunk-bvwwhd84.js.map → chunk-tzne8qfq.js.map} +1 -1
  67. package/dist/cli/chunk-xaz13gwg.js +12449 -0
  68. package/dist/cli/chunk-xaz13gwg.js.map +182 -0
  69. package/dist/cli/chunk-y3e45rc8.js +102 -0
  70. package/dist/cli/chunk-y3e45rc8.js.map +10 -0
  71. package/dist/cli/chunk-z01ze5c1.js +261 -0
  72. package/dist/cli/chunk-z01ze5c1.js.map +10 -0
  73. package/dist/cli/{chunk-k79xp7av.js → chunk-z1f5arsg.js} +219 -689
  74. package/dist/cli/chunk-z1f5arsg.js.map +36 -0
  75. package/dist/cli/{chunk-1jefwnfs.js → chunk-zg2gtj10.js} +1076 -2592
  76. package/dist/cli/chunk-zg2gtj10.js.map +35 -0
  77. package/dist/cli/{chunk-dwgcp5sm.js → chunk-zxccj738.js} +1 -1
  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.d.ts +368 -0
  85. package/dist/types/ai/changelog-markdown.d.ts +2 -0
  86. package/dist/types/ai/component-markdown.d.ts +2 -2
  87. package/dist/types/ai/index.d.ts +24 -0
  88. package/dist/types/ai/link-headers.d.ts +24 -0
  89. package/dist/types/ai/llms.d.ts +25 -0
  90. package/dist/types/ai/markdown.d.ts +45 -0
  91. package/dist/types/ai/mcp/discovery.d.ts +68 -0
  92. package/dist/types/ai/mcp/tools.d.ts +16 -0
  93. package/dist/types/ai/openapi-components.d.ts +43 -0
  94. package/dist/types/ai/relative-links.d.ts +26 -0
  95. package/dist/types/ai/serializers.d.ts +15 -0
  96. package/dist/types/ai/skills.d.ts +42 -0
  97. package/dist/types/ai/tar.d.ts +25 -0
  98. package/dist/types/ai/visibility.d.ts +17 -0
  99. package/dist/types/ai/web-bot-auth.d.ts +16 -0
  100. package/dist/types/analytics/adobe.d.ts +35 -0
  101. package/dist/types/analytics/amplitude.d.ts +50 -0
  102. package/dist/types/analytics/clarity.d.ts +31 -0
  103. package/dist/types/analytics/clearbit.d.ts +29 -0
  104. package/dist/types/analytics/cloudflare.d.ts +41 -0
  105. package/dist/types/analytics/fathom.d.ts +41 -0
  106. package/dist/types/analytics/google-analytics.d.ts +44 -0
  107. package/dist/types/analytics/google-tag-manager.d.ts +40 -0
  108. package/dist/types/analytics/head.d.ts +30 -0
  109. package/dist/types/analytics/heap.d.ts +40 -0
  110. package/dist/types/analytics/hightouch.d.ts +44 -0
  111. package/dist/types/analytics/hotjar.d.ts +33 -0
  112. package/dist/types/analytics/index.d.ts +61 -0
  113. package/dist/types/analytics/inline.d.ts +17 -0
  114. package/dist/types/analytics/logrocket.d.ts +44 -0
  115. package/dist/types/analytics/mixpanel.d.ts +67 -0
  116. package/dist/types/analytics/pirsch.d.ts +42 -0
  117. package/dist/types/analytics/plausible.d.ts +56 -0
  118. package/dist/types/analytics/posthog.d.ts +45 -0
  119. package/dist/types/analytics/schema.d.ts +320 -0
  120. package/dist/types/analytics/script.d.ts +46 -0
  121. package/dist/types/analytics/segment.d.ts +50 -0
  122. package/dist/types/analytics/vercel.d.ts +48 -0
  123. package/dist/types/astro/integration.d.ts +76 -0
  124. package/dist/types/astro/markdown-negotiation.d.ts +23 -0
  125. package/dist/types/astro/module-types.d.ts +14 -0
  126. package/dist/types/astro/pages.d.ts +44 -0
  127. package/dist/types/cli/env.d.ts +12 -0
  128. package/dist/types/cli/init/scaffold.d.ts +154 -0
  129. package/dist/types/components/layout/nav-utils.d.ts +11 -0
  130. package/dist/types/core/adapter.d.ts +47 -0
  131. package/dist/types/core/api-name.d.ts +7 -0
  132. package/dist/types/core/changelog-index.d.ts +13 -0
  133. package/dist/types/core/config-input.d.ts +186 -515
  134. package/dist/types/core/config.d.ts +60 -34
  135. package/dist/types/core/content-assets.d.ts +76 -0
  136. package/dist/types/core/custom-pages.d.ts +33 -0
  137. package/dist/types/core/data.d.ts +27 -12
  138. package/dist/types/core/define-components.d.ts +12 -9
  139. package/dist/types/core/deployment-env.d.ts +6 -11
  140. package/dist/types/core/frontmatter.d.ts +10 -0
  141. package/dist/types/core/graph.d.ts +18 -0
  142. package/dist/types/core/heading-markers.d.ts +54 -0
  143. package/dist/types/core/i18n-ui.d.ts +6 -2
  144. package/dist/types/core/i18n.d.ts +87 -0
  145. package/dist/types/core/includes.d.ts +138 -0
  146. package/dist/types/core/last-modified.d.ts +47 -0
  147. package/dist/types/core/links.d.ts +95 -0
  148. package/dist/types/core/locale-links.d.ts +60 -0
  149. package/dist/types/core/manifest.d.ts +17 -0
  150. package/dist/types/core/meta.d.ts +38 -0
  151. package/dist/types/core/nav-diagnostics.d.ts +26 -0
  152. package/dist/types/core/navigation.d.ts +6 -0
  153. package/dist/types/core/node-require.d.ts +19 -0
  154. package/dist/types/core/package-json.d.ts +13 -0
  155. package/dist/types/core/probe.d.ts +42 -0
  156. package/dist/types/core/project-graph.d.ts +51 -0
  157. package/dist/types/core/project.d.ts +2 -0
  158. package/dist/types/core/safe-href.d.ts +2 -0
  159. package/dist/types/core/safe-links.d.ts +26 -0
  160. package/dist/types/core/schema.d.ts +2282 -452
  161. package/dist/types/core/site-url.d.ts +16 -0
  162. package/dist/types/core/sources/assets.d.ts +36 -0
  163. package/dist/types/core/sources/cache.d.ts +37 -0
  164. package/dist/types/core/sources/collection.d.ts +28 -0
  165. package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
  166. package/dist/types/core/sources/contentful.d.ts +40 -0
  167. package/dist/types/core/sources/filesystem.d.ts +24 -0
  168. package/dist/types/core/sources/github-releases.d.ts +31 -0
  169. package/dist/types/core/sources/json.d.ts +30 -0
  170. package/dist/types/core/sources/lexical.d.ts +19 -0
  171. package/dist/types/core/sources/lower.d.ts +75 -0
  172. package/dist/types/core/sources/mdx-remote.d.ts +28 -0
  173. package/dist/types/core/sources/normalize.d.ts +147 -0
  174. package/dist/types/core/sources/notion.d.ts +131 -0
  175. package/dist/types/core/sources/obsidian.d.ts +46 -0
  176. package/dist/types/core/sources/payload.d.ts +39 -0
  177. package/dist/types/core/sources/portable-text.d.ts +42 -0
  178. package/dist/types/core/sources/read.d.ts +23 -0
  179. package/dist/types/core/sources/remote.d.ts +74 -0
  180. package/dist/types/core/sources/resolve.d.ts +19 -0
  181. package/dist/types/core/sources/sanity.d.ts +43 -0
  182. package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
  183. package/dist/types/core/sources/strapi.d.ts +33 -0
  184. package/dist/types/core/sources/types.d.ts +7 -0
  185. package/dist/types/core/sources/watch.d.ts +45 -0
  186. package/dist/types/core/text-width.d.ts +11 -0
  187. package/dist/types/core/types.d.ts +15 -1
  188. package/dist/types/core/unrecognized-keys.d.ts +7 -0
  189. package/dist/types/core/versions.d.ts +72 -0
  190. package/dist/types/core/yaml.d.ts +9 -0
  191. package/dist/types/deploy/adapter-output.d.ts +45 -0
  192. package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
  193. package/dist/types/deploy/adapters/index.d.ts +29 -0
  194. package/dist/types/deploy/adapters/netlify.d.ts +37 -0
  195. package/dist/types/deploy/adapters/node.d.ts +37 -0
  196. package/dist/types/deploy/adapters/registry.d.ts +133 -0
  197. package/dist/types/deploy/adapters/types.d.ts +71 -0
  198. package/dist/types/deploy/adapters/vercel.d.ts +38 -0
  199. package/dist/types/deploy/artifacts.d.ts +65 -0
  200. package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
  201. package/dist/types/deploy/function-bundle.d.ts +80 -0
  202. package/dist/types/deploy/headers.d.ts +50 -0
  203. package/dist/types/deploy/node-headers.d.ts +42 -0
  204. package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
  205. package/dist/types/deploy/platforms/index.d.ts +18 -0
  206. package/dist/types/deploy/platforms/netlify.d.ts +13 -0
  207. package/dist/types/deploy/platforms/node.d.ts +11 -0
  208. package/dist/types/deploy/platforms/paths.d.ts +27 -0
  209. package/dist/types/deploy/platforms/static.d.ts +10 -0
  210. package/dist/types/deploy/platforms/types.d.ts +104 -0
  211. package/dist/types/deploy/platforms/vercel.d.ts +32 -0
  212. package/dist/types/deploy/redirects.d.ts +53 -0
  213. package/dist/types/deploy/robots.d.ts +8 -0
  214. package/dist/types/deploy/rss.d.ts +31 -0
  215. package/dist/types/deploy/sitemap.d.ts +21 -0
  216. package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
  217. package/dist/types/markdown/code-title.d.ts +32 -0
  218. package/dist/types/markdown/fence-meta.d.ts +23 -0
  219. package/dist/types/markdown/themes.d.ts +3 -3
  220. package/dist/types/openapi/asyncapi.d.ts +129 -0
  221. package/dist/types/openapi/graphql-build.d.ts +8 -0
  222. package/dist/types/openapi/graphql.d.ts +122 -0
  223. package/dist/types/openapi/model.d.ts +158 -0
  224. package/dist/types/openapi/parse.d.ts +57 -0
  225. package/dist/types/openapi/references.d.ts +37 -25
  226. package/dist/types/openapi/render-mdx.d.ts +33 -0
  227. package/dist/types/openapi/sentence.d.ts +7 -0
  228. package/dist/types/openapi/signature.d.ts +10 -0
  229. package/dist/types/openapi/source.d.ts +22 -0
  230. package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
  231. package/dist/types/reference/asyncapi.d.ts +166 -0
  232. package/dist/types/reference/graphql.d.ts +181 -0
  233. package/dist/types/reference/index.d.ts +32 -0
  234. package/dist/types/reference/openapi.d.ts +165 -0
  235. package/dist/types/reference/options.d.ts +157 -0
  236. package/dist/types/reference/scalar.d.ts +136 -0
  237. package/dist/types/reference/schema.d.ts +630 -0
  238. package/dist/types/search/adapters/algolia.d.ts +32 -0
  239. package/dist/types/search/adapters/flexsearch.d.ts +12 -0
  240. package/dist/types/search/adapters/index.d.ts +31 -0
  241. package/dist/types/search/adapters/mixedbread.d.ts +22 -0
  242. package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
  243. package/dist/types/search/adapters/orama.d.ts +13 -0
  244. package/dist/types/search/adapters/pagefind.d.ts +12 -0
  245. package/dist/types/search/adapters/registry.d.ts +228 -0
  246. package/dist/types/search/adapters/types.d.ts +34 -0
  247. package/dist/types/search/adapters/typesense.d.ts +42 -0
  248. package/dist/types/search/build.d.ts +23 -0
  249. package/dist/types/search/documents.d.ts +90 -0
  250. package/dist/types/search/facets.d.ts +3 -0
  251. package/dist/types/search/sync/algolia.d.ts +14 -0
  252. package/dist/types/search/sync/index.d.ts +14 -0
  253. package/dist/types/search/sync/orama-cloud.d.ts +10 -0
  254. package/dist/types/search/sync/typesense.d.ts +14 -0
  255. package/dist/types/sources/contentful.d.ts +68 -0
  256. package/dist/types/sources/custom.d.ts +20 -0
  257. package/dist/types/sources/filesystem.d.ts +42 -0
  258. package/dist/types/sources/github-releases.d.ts +46 -0
  259. package/dist/types/sources/index.d.ts +48 -0
  260. package/dist/types/sources/mdx-remote.d.ts +63 -0
  261. package/dist/types/sources/notion.d.ts +65 -0
  262. package/dist/types/sources/obsidian.d.ts +34 -0
  263. package/dist/types/sources/payload.d.ts +68 -0
  264. package/dist/types/sources/registry.d.ts +1414 -0
  265. package/dist/types/sources/sanity.d.ts +69 -0
  266. package/dist/types/sources/shared.d.ts +46 -0
  267. package/dist/types/sources/strapi.d.ts +66 -0
  268. package/dist/types/theme/icon-kind.d.ts +11 -0
  269. package/dist/types/theme/icons.d.ts +20 -0
  270. package/docs/01-quickstart.mdx +18 -18
  271. package/docs/02-deployment.mdx +50 -26
  272. package/docs/03-upgrading.mdx +351 -0
  273. package/docs/04-migrating.mdx +58 -0
  274. package/docs/08-faq.mdx +3 -3
  275. package/docs/advanced/blog.mdx +13 -6
  276. package/docs/advanced/changelog.mdx +23 -35
  277. package/docs/advanced/custom-pages.mdx +20 -8
  278. package/docs/advanced/meta.ts +1 -8
  279. package/docs/advanced/skills.mdx +8 -0
  280. package/docs/cli/audit.mdx +646 -0
  281. package/docs/cli/doctor.mdx +29 -0
  282. package/docs/{reference/eval.mdx → cli/evals.mdx} +9 -8
  283. package/docs/cli/index.mdx +105 -0
  284. package/docs/cli/meta.ts +7 -0
  285. package/docs/{reference → cli}/translate.mdx +1 -1
  286. package/docs/cli/validate.mdx +41 -0
  287. package/docs/cli/version.mdx +40 -0
  288. package/docs/configuration/analytics.mdx +350 -59
  289. package/docs/configuration/ask-ai.mdx +162 -61
  290. package/docs/configuration/customization.mdx +15 -9
  291. package/docs/configuration/index.mdx +50 -31
  292. package/docs/configuration/search.mdx +75 -54
  293. package/docs/configuration/theming.mdx +24 -15
  294. package/docs/content/components.mdx +21 -5
  295. package/docs/{reference → content}/frontmatter.mdx +35 -1
  296. package/docs/content/i18n.mdx +8 -6
  297. package/docs/content/includes.mdx +2 -4
  298. package/docs/content/index.mdx +1 -1
  299. package/docs/content/islands.mdx +10 -5
  300. package/docs/content/meta.mdx +1 -1
  301. package/docs/content/meta.ts +1 -0
  302. package/docs/content/navigation.mdx +9 -7
  303. package/docs/content/sources.mdx +145 -50
  304. package/docs/content/syntax.mdx +16 -12
  305. package/docs/content/versioning.mdx +3 -3
  306. package/docs/discoverability/agent-discovery.mdx +11 -11
  307. package/docs/discoverability/index.mdx +4 -4
  308. package/docs/discoverability/json-api.mdx +4 -4
  309. package/docs/discoverability/llms-txt.mdx +6 -6
  310. package/docs/discoverability/markdown.mdx +4 -4
  311. package/docs/discoverability/mcp.mdx +11 -11
  312. package/docs/discoverability/sitemap-and-robots.mdx +3 -3
  313. package/docs/index.mdx +2 -2
  314. package/docs/references/asyncapi.mdx +59 -0
  315. package/docs/{advanced → references}/graphql.mdx +45 -32
  316. package/docs/{reference → references}/meta.ts +2 -2
  317. package/docs/references/openapi.mdx +171 -0
  318. package/docs/references/scalar.mdx +64 -0
  319. package/package.json +42 -8
  320. package/skills/blume/SKILL.md +21 -8
  321. package/skills/blume-migrate/SKILL.md +22 -21
  322. package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
  323. package/skills/blume-migrate/references/docusaurus.md +5 -4
  324. package/skills/blume-migrate/references/fumadocs.md +4 -4
  325. package/skills/blume-migrate/references/mintlify.md +23 -8
  326. package/skills/blume-migrate/references/monorepo.md +6 -6
  327. package/skills/blume-migrate/references/starlight.md +4 -4
  328. package/src/ai/agent-readability.ts +21 -22
  329. package/src/ai/ai-catalog.ts +50 -32
  330. package/src/ai/api/handlers.ts +46 -11
  331. package/src/ai/api-catalog.ts +8 -8
  332. package/src/ai/ask-data.ts +1 -1
  333. package/src/ai/ask.ts +624 -100
  334. package/src/ai/changelog-markdown.ts +91 -0
  335. package/src/ai/component-markdown.ts +328 -12
  336. package/src/ai/index.ts +45 -0
  337. package/src/ai/link-headers.ts +7 -6
  338. package/src/ai/llms.ts +20 -15
  339. package/src/ai/markdown.ts +35 -5
  340. package/src/ai/mcp/data.ts +9 -5
  341. package/src/ai/openapi-components.ts +4 -1
  342. package/src/ai/relative-links.ts +170 -0
  343. package/src/ai/serializers.ts +2 -2
  344. package/src/ai/skills.ts +1 -1
  345. package/src/ai/web-bot-auth.ts +2 -2
  346. package/src/analytics/adobe.ts +46 -0
  347. package/src/analytics/amplitude.ts +79 -0
  348. package/src/analytics/clarity.ts +46 -0
  349. package/src/analytics/clearbit.ts +47 -0
  350. package/src/analytics/cloudflare.ts +67 -0
  351. package/src/analytics/fathom.ts +64 -0
  352. package/src/analytics/google-analytics.ts +84 -0
  353. package/src/analytics/google-tag-manager.ts +61 -0
  354. package/src/analytics/head.ts +130 -0
  355. package/src/analytics/heap.ts +65 -0
  356. package/src/analytics/hightouch.ts +77 -0
  357. package/src/analytics/hotjar.ts +47 -0
  358. package/src/analytics/index.ts +71 -0
  359. package/src/analytics/inline.ts +21 -0
  360. package/src/analytics/logrocket.ts +71 -0
  361. package/src/analytics/mixpanel.ts +92 -0
  362. package/src/analytics/pirsch.ts +66 -0
  363. package/src/analytics/plausible.ts +83 -0
  364. package/src/analytics/posthog.ts +78 -0
  365. package/src/analytics/schema.ts +60 -0
  366. package/src/analytics/script.ts +60 -0
  367. package/src/analytics/segment.ts +85 -0
  368. package/src/analytics/vercel.ts +50 -0
  369. package/src/astro/adapter-root.ts +7 -9
  370. package/src/astro/component-slots.ts +131 -91
  371. package/src/astro/generate.ts +112 -345
  372. package/src/astro/integration.ts +2 -6
  373. package/src/astro/pages.ts +13 -101
  374. package/src/astro/render-deps.ts +379 -0
  375. package/src/astro/runtime-deps.ts +201 -0
  376. package/src/astro/templates.ts +554 -541
  377. package/src/audit/agent.ts +24 -0
  378. package/src/audit/catalog.ts +2 -2
  379. package/src/audit/checks/assets.ts +2 -2
  380. package/src/audit/checks/dns-aid.ts +1 -1
  381. package/src/audit/checks/duplicates.ts +3 -1
  382. package/src/audit/checks/i18n.ts +1 -1
  383. package/src/audit/checks/indexability.ts +7 -7
  384. package/src/audit/checks/links.ts +2 -2
  385. package/src/audit/checks/llms.ts +6 -6
  386. package/src/audit/checks/network.ts +3 -3
  387. package/src/audit/checks/og-image.ts +2 -2
  388. package/src/audit/checks/robots.ts +1 -1
  389. package/src/audit/checks/sitemap.ts +2 -2
  390. package/src/audit/checks/social.ts +1 -1
  391. package/src/audit/run.ts +4 -3
  392. package/src/audit/terms.ts +31 -0
  393. package/src/audit/url.ts +13 -13
  394. package/src/cli/command-meta.ts +10 -0
  395. package/src/cli/commands/audit.ts +39 -20
  396. package/src/cli/commands/build.ts +71 -316
  397. package/src/cli/commands/check.ts +1 -0
  398. package/src/cli/commands/dev.ts +40 -1
  399. package/src/cli/commands/doctor.ts +90 -14
  400. package/src/cli/commands/eject.ts +44 -7
  401. package/src/cli/commands/eval.ts +2 -2
  402. package/src/cli/commands/init.ts +161 -41
  403. package/src/cli/commands/migrate.ts +121 -0
  404. package/src/cli/commands/preview.ts +7 -1
  405. package/src/cli/commands/translate.ts +2 -2
  406. package/src/cli/commands/upgrade.ts +141 -0
  407. package/src/cli/commands/version.ts +57 -44
  408. package/src/cli/eject-scripts.ts +121 -6
  409. package/src/cli/index.ts +11 -1
  410. package/src/cli/init/install.ts +70 -0
  411. package/src/cli/init/questions.ts +7 -0
  412. package/src/cli/init/scaffold.ts +459 -75
  413. package/src/cli/lazy-command.ts +37 -1
  414. package/src/cli/prepare.ts +40 -6
  415. package/src/cli/required-secrets.ts +38 -11
  416. package/src/cli/unknown-flags.ts +266 -0
  417. package/src/cli/yarn-pnp.ts +52 -0
  418. package/src/components/content/AccordionItem.astro +7 -1
  419. package/src/components/content/Card.astro +4 -3
  420. package/src/components/content/ColorItem.astro +22 -4
  421. package/src/components/content/GithubInfo.astro +2 -2
  422. package/src/components/content/Prompt.astro +25 -25
  423. package/src/components/content/Tabs.astro +3 -1
  424. package/src/components/content/Tile.astro +2 -3
  425. package/src/components/content/Tooltip.astro +57 -9
  426. package/src/components/content/content-strings.ts +34 -0
  427. package/src/components/content/diff.ts +1 -1
  428. package/src/components/content/mermaid-element.ts +13 -2
  429. package/src/components/content/prompt-markdown.ts +292 -0
  430. package/src/components/content/tooltip-id.ts +41 -0
  431. package/src/components/islands/hooks.ts +25 -2
  432. package/src/components/layout/Analytics.astro +21 -79
  433. package/src/components/layout/Banner.astro +3 -1
  434. package/src/components/layout/DiscoveryLinks.astro +69 -0
  435. package/src/components/layout/Header.astro +83 -20
  436. package/src/components/layout/LanguageSwitcher.astro +4 -1
  437. package/src/components/layout/Logo.astro +23 -2
  438. package/src/components/layout/NavSelector.astro +13 -2
  439. package/src/components/layout/NavTree.astro +12 -3
  440. package/src/components/layout/NavTreeScript.astro +17 -3
  441. package/src/components/layout/PageActions.astro +3 -3
  442. package/src/components/layout/PageFeedback.astro +11 -1
  443. package/src/components/layout/PageLayout.astro +52 -5
  444. package/src/components/layout/ReferenceLayout.astro +21 -12
  445. package/src/components/layout/RootLayout.astro +69 -66
  446. package/src/components/layout/Search.astro +30 -6
  447. package/src/components/layout/WebMcp.astro +1 -1
  448. package/src/components/layout/analytics-client.ts +72 -15
  449. package/src/components/layout/drawer-inert.ts +113 -15
  450. package/src/components/layout/dropdown-clamp.ts +105 -0
  451. package/src/components/layout/head-scripts.ts +15 -6
  452. package/src/components/layout/nav-utils.ts +17 -0
  453. package/src/components/layout/search/algolia.ts +8 -8
  454. package/src/components/layout/search/orama-cloud.ts +9 -7
  455. package/src/components/layout/search/typesense.ts +11 -17
  456. package/src/components/openapi/MessageComposer.astro +2 -2
  457. package/src/components/openapi/Playground.astro +2 -2
  458. package/src/components/openapi/playground-client.ts +79 -10
  459. package/src/core/changelog-index.ts +24 -0
  460. package/src/core/component-overrides.ts +399 -154
  461. package/src/core/config-input.ts +188 -553
  462. package/src/core/config.ts +130 -41
  463. package/src/core/custom-pages.ts +105 -0
  464. package/src/core/data.ts +31 -12
  465. package/src/core/define-components.ts +12 -9
  466. package/src/core/deployment-env.ts +18 -74
  467. package/src/core/diagnostics.ts +14 -7
  468. package/src/core/graph.ts +69 -25
  469. package/src/core/i18n-ui.ts +6 -2
  470. package/src/core/i18n.ts +17 -0
  471. package/src/core/includes.ts +156 -38
  472. package/src/core/last-modified.ts +6 -11
  473. package/src/core/links.ts +166 -2
  474. package/src/core/manifest.ts +10 -3
  475. package/src/core/navigation.ts +115 -16
  476. package/src/core/new-tab.ts +35 -0
  477. package/src/core/node-require.ts +21 -0
  478. package/src/core/project-graph.ts +42 -26
  479. package/src/core/project.ts +9 -4
  480. package/src/core/request-body.ts +61 -0
  481. package/src/core/safe-href.ts +28 -0
  482. package/src/core/safe-links.ts +68 -0
  483. package/src/core/schema.ts +517 -739
  484. package/src/core/server-features.ts +8 -9
  485. package/src/core/sources/assets.ts +47 -11
  486. package/src/core/sources/collection.ts +67 -0
  487. package/src/core/sources/contentful-rich-text.ts +285 -0
  488. package/src/core/sources/contentful.ts +173 -0
  489. package/src/core/sources/github-releases.ts +51 -1
  490. package/src/core/sources/json.ts +71 -0
  491. package/src/core/sources/lexical.ts +195 -0
  492. package/src/core/sources/lower.ts +226 -0
  493. package/src/core/sources/normalize.ts +52 -2
  494. package/src/core/sources/notion.ts +39 -28
  495. package/src/core/sources/payload.ts +135 -0
  496. package/src/core/sources/portable-text.ts +11 -16
  497. package/src/core/sources/remote.ts +226 -0
  498. package/src/core/sources/resolve.ts +104 -166
  499. package/src/core/sources/sanity.ts +16 -49
  500. package/src/core/sources/strapi-blocks.ts +124 -0
  501. package/src/core/sources/strapi.ts +191 -0
  502. package/src/core/sources/types.ts +12 -1
  503. package/src/core/types.ts +15 -1
  504. package/src/core/ui-packs/ar.ts +6 -2
  505. package/src/core/ui-packs/bg.ts +6 -2
  506. package/src/core/ui-packs/bn.ts +6 -2
  507. package/src/core/ui-packs/ca.ts +3 -1
  508. package/src/core/ui-packs/cs.ts +6 -2
  509. package/src/core/ui-packs/da.ts +6 -2
  510. package/src/core/ui-packs/de.ts +6 -2
  511. package/src/core/ui-packs/el.ts +3 -1
  512. package/src/core/ui-packs/es.ts +3 -1
  513. package/src/core/ui-packs/fa.ts +6 -2
  514. package/src/core/ui-packs/fi.ts +6 -2
  515. package/src/core/ui-packs/fr.ts +3 -1
  516. package/src/core/ui-packs/he.ts +6 -2
  517. package/src/core/ui-packs/hi.ts +6 -2
  518. package/src/core/ui-packs/hr.ts +6 -2
  519. package/src/core/ui-packs/hu.ts +6 -2
  520. package/src/core/ui-packs/id.ts +6 -2
  521. package/src/core/ui-packs/it.ts +3 -1
  522. package/src/core/ui-packs/ja.ts +3 -1
  523. package/src/core/ui-packs/ko.ts +3 -1
  524. package/src/core/ui-packs/nl.ts +6 -2
  525. package/src/core/ui-packs/no.ts +6 -2
  526. package/src/core/ui-packs/pl.ts +6 -2
  527. package/src/core/ui-packs/pt-br.ts +3 -1
  528. package/src/core/ui-packs/pt.ts +3 -1
  529. package/src/core/ui-packs/ro.ts +6 -2
  530. package/src/core/ui-packs/ru.ts +6 -2
  531. package/src/core/ui-packs/sk.ts +6 -2
  532. package/src/core/ui-packs/sr.ts +6 -2
  533. package/src/core/ui-packs/sv.ts +6 -2
  534. package/src/core/ui-packs/th.ts +3 -1
  535. package/src/core/ui-packs/tr.ts +6 -2
  536. package/src/core/ui-packs/uk.ts +6 -2
  537. package/src/core/ui-packs/vi.ts +3 -1
  538. package/src/core/ui-packs/zh-tw.ts +3 -1
  539. package/src/core/ui-packs/zh.ts +3 -1
  540. package/src/core/unrecognized-keys.ts +10 -0
  541. package/src/core/version-cut.ts +116 -8
  542. package/src/deploy/adapter-output.ts +57 -97
  543. package/src/deploy/adapters/cloudflare.ts +39 -0
  544. package/src/deploy/adapters/index.ts +41 -0
  545. package/src/deploy/adapters/netlify.ts +34 -0
  546. package/src/deploy/adapters/node.ts +34 -0
  547. package/src/deploy/adapters/registry.ts +127 -0
  548. package/src/deploy/adapters/types.ts +92 -0
  549. package/src/deploy/adapters/vercel.ts +35 -0
  550. package/src/deploy/artifacts.ts +55 -27
  551. package/src/deploy/cloudflare-negotiation.ts +179 -100
  552. package/src/deploy/function-bundle.ts +18 -3
  553. package/src/deploy/headers.ts +124 -23
  554. package/src/deploy/node-headers.ts +198 -0
  555. package/src/deploy/platforms/cloudflare.ts +312 -0
  556. package/src/deploy/platforms/index.ts +67 -0
  557. package/src/deploy/platforms/netlify.ts +52 -0
  558. package/src/deploy/platforms/node.ts +40 -0
  559. package/src/deploy/platforms/paths.ts +42 -0
  560. package/src/deploy/platforms/static.ts +29 -0
  561. package/src/deploy/platforms/types.ts +112 -0
  562. package/src/deploy/platforms/vercel.ts +193 -0
  563. package/src/deploy/redirects.ts +30 -18
  564. package/src/deploy/robots.ts +3 -3
  565. package/src/deploy/rss.ts +2 -2
  566. package/src/deploy/sitemap.ts +2 -2
  567. package/src/deploy/vercel-negotiation.ts +2 -2
  568. package/src/eval/agents.ts +32 -1
  569. package/src/eval/findings.ts +19 -11
  570. package/src/eval/report.ts +10 -2
  571. package/src/markdown/external-links.ts +65 -0
  572. package/src/markdown/include.ts +45 -27
  573. package/src/markdown/index.ts +34 -9
  574. package/src/markdown/inline-code.ts +12 -6
  575. package/src/markdown/relative-links.ts +324 -0
  576. package/src/markdown/themes.ts +3 -3
  577. package/src/migrate/migrate.ts +149 -0
  578. package/src/openapi/parse.ts +64 -16
  579. package/src/openapi/proxy.ts +62 -10
  580. package/src/openapi/references.ts +147 -147
  581. package/src/openapi/render-mdx.ts +32 -10
  582. package/src/openapi/scalar.ts +15 -13
  583. package/src/openapi/sentence.ts +14 -0
  584. package/src/openapi/source.ts +37 -21
  585. package/src/openapi/spec-dependency-error.ts +15 -0
  586. package/src/reference/asyncapi.ts +83 -0
  587. package/src/reference/graphql.ts +89 -0
  588. package/src/reference/index.ts +40 -0
  589. package/src/reference/openapi.ts +83 -0
  590. package/src/reference/options.ts +201 -0
  591. package/src/reference/scalar.ts +136 -0
  592. package/src/reference/schema.ts +88 -0
  593. package/src/registry/eject.ts +97 -42
  594. package/src/search/adapters/algolia.ts +46 -0
  595. package/src/search/adapters/flexsearch.ts +29 -0
  596. package/src/search/adapters/index.ts +39 -0
  597. package/src/search/adapters/mixedbread.ts +39 -0
  598. package/src/search/adapters/orama-cloud.ts +51 -0
  599. package/src/search/adapters/orama.ts +24 -0
  600. package/src/search/adapters/pagefind.ts +27 -0
  601. package/src/search/adapters/registry.ts +131 -0
  602. package/src/search/adapters/types.ts +46 -0
  603. package/src/search/adapters/typesense.ts +57 -0
  604. package/src/search/build.ts +8 -4
  605. package/src/search/documents.ts +6 -0
  606. package/src/search/sync/algolia.ts +12 -11
  607. package/src/search/sync/index.ts +35 -20
  608. package/src/search/sync/orama-cloud.ts +12 -9
  609. package/src/search/sync/typesense.ts +15 -13
  610. package/src/sources/contentful.ts +63 -0
  611. package/src/sources/custom.ts +38 -0
  612. package/src/sources/filesystem.ts +51 -0
  613. package/src/sources/github-releases.ts +52 -0
  614. package/src/sources/index.ts +60 -0
  615. package/src/sources/mdx-remote.ts +76 -0
  616. package/src/sources/notion.ts +63 -0
  617. package/src/sources/obsidian.ts +38 -0
  618. package/src/sources/payload.ts +60 -0
  619. package/src/sources/registry.ts +182 -0
  620. package/src/sources/sanity.ts +66 -0
  621. package/src/sources/shared.ts +52 -0
  622. package/src/sources/strapi.ts +58 -0
  623. package/src/theme/entry.ts +24 -2
  624. package/src/translate/report.ts +40 -7
  625. package/src/upgrade/upgrade.ts +499 -0
  626. package/dist/cli/chunk-0qymqwzz.js +0 -164
  627. package/dist/cli/chunk-0qymqwzz.js.map +0 -15
  628. package/dist/cli/chunk-1jefwnfs.js.map +0 -48
  629. package/dist/cli/chunk-2mzebbbz.js +0 -69
  630. package/dist/cli/chunk-2z47ypj8.js.map +0 -11
  631. package/dist/cli/chunk-4x36ddpw.js.map +0 -11
  632. package/dist/cli/chunk-5093q3n7.js +0 -68
  633. package/dist/cli/chunk-5093q3n7.js.map +0 -10
  634. package/dist/cli/chunk-5qk08vmp.js.map +0 -11
  635. package/dist/cli/chunk-7s8hm3b6.js +0 -5347
  636. package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
  637. package/dist/cli/chunk-8cjtbafj.js.map +0 -13
  638. package/dist/cli/chunk-97r59kpr.js +0 -381
  639. package/dist/cli/chunk-97r59kpr.js.map +0 -12
  640. package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
  641. package/dist/cli/chunk-b27xqwn9.js.map +0 -10
  642. package/dist/cli/chunk-bf6bt1xt.js +0 -185
  643. package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
  644. package/dist/cli/chunk-cjtn640a.js.map +0 -10
  645. package/dist/cli/chunk-ct47dqpx.js.map +0 -11
  646. package/dist/cli/chunk-esphfr8p.js +0 -107
  647. package/dist/cli/chunk-esphfr8p.js.map +0 -11
  648. package/dist/cli/chunk-ex56aa81.js +0 -1016
  649. package/dist/cli/chunk-ex56aa81.js.map +0 -13
  650. package/dist/cli/chunk-garjf5z9.js +0 -30
  651. package/dist/cli/chunk-garjf5z9.js.map +0 -10
  652. package/dist/cli/chunk-js7saxwm.js +0 -1045
  653. package/dist/cli/chunk-js7saxwm.js.map +0 -22
  654. package/dist/cli/chunk-k79xp7av.js.map +0 -39
  655. package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
  656. package/dist/cli/chunk-q4rae3bg.js +0 -60
  657. package/dist/cli/chunk-q4rae3bg.js.map +0 -10
  658. package/dist/cli/chunk-rz9jmfhz.js +0 -108
  659. package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
  660. package/dist/cli/chunk-vh9w1sgp.js +0 -73
  661. package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
  662. package/dist/cli/chunk-vrfp10qk.js +0 -81
  663. package/dist/cli/chunk-vrfp10qk.js.map +0 -10
  664. package/dist/cli/chunk-yg63d42r.js.map +0 -34
  665. package/docs/advanced/api-reference.mdx +0 -240
  666. package/docs/reference/cli.mdx +0 -197
  667. package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
  668. package/src/components/content/changelog-element.ts +0 -69
  669. package/src/search/providers.ts +0 -91
  670. /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-7ez8ny0t.js.map} +0 -0
  671. /package/dist/cli/{chunk-nn13znc2.js.map → chunk-88cpgt6h.js.map} +0 -0
  672. /package/dist/cli/{chunk-vacwm2hv.js.map → chunk-f7t03s3g.js.map} +0 -0
  673. /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-zxccj738.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-xaz13gwg.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-a9kptbw5.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-mnqj32sj.js";
73
51
  import {
74
- discoverPages,
75
- routeIsTaken,
76
- customOgRoutes
77
- } from "./chunk-vrfp10qk.js";
52
+ discoverIslands
53
+ } from "./chunk-bnbmcwfb.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-z1f5arsg.js";
74
+ import {
75
+ scanProject
76
+ } from "./chunk-zg2gtj10.js";
81
77
 
82
78
  // src/registry/eject.ts
83
79
  import { existsSync } from "node:fs";
@@ -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(ask.provider);
118
114
  const files = [
119
115
  {
120
- content: askEndpointTemplate(resolveAskBackend(ask), grounded, {
116
+ content: askEndpointTemplate(backend, {
121
117
  cors: ask.cors,
122
118
  instructions: ask.instructions,
123
- reasoning: ask.reasoning,
124
119
  retrieval: ask.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,6 +200,20 @@ 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 { ask } = 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
+ ...ask?.enabled && !ask.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" });
@@ -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,11 +241,16 @@ 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
255
  const needsReact = needsReactRaw || askEnabled || frameworks.has("react");
241
256
  const needsVue = frameworks.has("vue");
@@ -243,10 +258,16 @@ var eject = async (root) => {
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")
@@ -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=21FD19BF3F1015A764756E2164756E21
498
+ //# sourceMappingURL=chunk-mwt1k8n7.js.map