blume 2.0.0 → 2.0.2

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 (454) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +110 -0
  3. package/README.md +2 -2
  4. package/dist/cli/{chunk-f2972sbt.js → chunk-00gs3wqs.js} +1 -1
  5. package/dist/cli/{chunk-fa25z98p.js → chunk-273ygyr4.js} +4 -3
  6. package/dist/cli/chunk-273ygyr4.js.map +11 -0
  7. package/dist/cli/{chunk-pat2zzwc.js → chunk-3yce002v.js} +21 -8
  8. package/dist/cli/{chunk-pat2zzwc.js.map → chunk-3yce002v.js.map} +4 -4
  9. package/dist/cli/{chunk-d1tadaw7.js → chunk-4e9b9ra6.js} +17 -7
  10. package/dist/cli/chunk-4e9b9ra6.js.map +10 -0
  11. package/dist/cli/{chunk-zg2gtj10.js → chunk-5r8g91qn.js} +352 -676
  12. package/dist/cli/chunk-5r8g91qn.js.map +34 -0
  13. package/dist/cli/{chunk-11j0384y.js → chunk-6dtt0zfn.js} +14 -14
  14. package/dist/cli/{chunk-11j0384y.js.map → chunk-6dtt0zfn.js.map} +3 -3
  15. package/dist/cli/{chunk-bw22s759.js → chunk-6k4ftwze.js} +38 -19
  16. package/dist/cli/{chunk-bw22s759.js.map → chunk-6k4ftwze.js.map} +4 -4
  17. package/dist/cli/{chunk-sqn5t4q0.js → chunk-7mbqtmgb.js} +16 -7
  18. package/dist/cli/chunk-7mbqtmgb.js.map +10 -0
  19. package/dist/cli/{chunk-79njf86q.js → chunk-7vtckvaw.js} +21 -19
  20. package/dist/cli/chunk-7vtckvaw.js.map +11 -0
  21. package/dist/cli/{chunk-fh5hj5jt.js → chunk-8g8ytmgx.js} +17 -18
  22. package/dist/cli/{chunk-fh5hj5jt.js.map → chunk-8g8ytmgx.js.map} +2 -2
  23. package/dist/cli/{chunk-1w8dp3qb.js → chunk-91ws1n6j.js} +18 -15
  24. package/dist/cli/chunk-91ws1n6j.js.map +10 -0
  25. package/dist/cli/{chunk-7ez8ny0t.js → chunk-bbnwccaz.js} +2 -2
  26. package/dist/cli/{chunk-5a2z0198.js → chunk-bfwp9vp6.js} +18 -10
  27. package/dist/cli/chunk-bfwp9vp6.js.map +10 -0
  28. package/dist/cli/{chunk-ernrthtr.js → chunk-d1v5rhy0.js} +14 -15
  29. package/dist/cli/{chunk-ernrthtr.js.map → chunk-d1v5rhy0.js.map} +2 -2
  30. package/dist/cli/{chunk-a9kptbw5.js → chunk-ddndchfr.js} +21 -6
  31. package/dist/cli/chunk-ddndchfr.js.map +14 -0
  32. package/dist/cli/{chunk-zxccj738.js → chunk-esh98wmb.js} +1 -1
  33. package/dist/cli/{chunk-88cpgt6h.js → chunk-fsmrqk8a.js} +1 -1
  34. package/dist/cli/{chunk-b5aj94ah.js → chunk-g698a744.js} +5 -5
  35. package/dist/cli/{chunk-jts8mvcz.js → chunk-gs7r695n.js} +9 -3
  36. package/dist/cli/{chunk-jts8mvcz.js.map → chunk-gs7r695n.js.map} +3 -3
  37. package/dist/cli/{chunk-41za066z.js → chunk-h2ez8dzb.js} +4 -4
  38. package/dist/cli/{chunk-by2290sx.js → chunk-h7k3nq3v.js} +2 -2
  39. package/dist/cli/{chunk-j8mw0za6.js → chunk-hqp2ajnh.js} +252 -123
  40. package/dist/cli/chunk-hqp2ajnh.js.map +35 -0
  41. package/dist/cli/{chunk-mnqj32sj.js → chunk-hr8ne106.js} +119 -50
  42. package/dist/cli/chunk-hr8ne106.js.map +13 -0
  43. package/dist/cli/{chunk-mwt1k8n7.js → chunk-j85scx15.js} +74 -30
  44. package/dist/cli/chunk-j85scx15.js.map +10 -0
  45. package/dist/cli/{chunk-z01ze5c1.js → chunk-k7pj68a8.js} +63 -22
  46. package/dist/cli/chunk-k7pj68a8.js.map +11 -0
  47. package/dist/cli/{chunk-2q1dwty4.js → chunk-mqc662a6.js} +8 -8
  48. package/dist/cli/{chunk-2q1dwty4.js.map → chunk-mqc662a6.js.map} +4 -4
  49. package/dist/cli/{chunk-y3e45rc8.js → chunk-n1yg3tj3.js} +4 -4
  50. package/dist/cli/{chunk-bctazmbk.js → chunk-nfcyttvj.js} +17 -6
  51. package/dist/cli/chunk-nfcyttvj.js.map +10 -0
  52. package/dist/cli/{chunk-6k8vp3ta.js → chunk-pbg5a4s3.js} +60 -28
  53. package/dist/cli/chunk-pbg5a4s3.js.map +19 -0
  54. package/dist/cli/{chunk-d80hr03s.js → chunk-ppzjqwx2.js} +24 -17
  55. package/dist/cli/{chunk-d80hr03s.js.map → chunk-ppzjqwx2.js.map} +4 -4
  56. package/dist/cli/{chunk-beat36xx.js → chunk-qkb5a8sa.js} +25 -10
  57. package/dist/cli/chunk-qkb5a8sa.js.map +10 -0
  58. package/dist/cli/{chunk-bnbmcwfb.js → chunk-sqw4ekg1.js} +5 -5
  59. package/dist/cli/{chunk-bnbmcwfb.js.map → chunk-sqw4ekg1.js.map} +3 -3
  60. package/dist/cli/{chunk-xaz13gwg.js → chunk-v6ya5kcb.js} +3268 -1150
  61. package/dist/cli/chunk-v6ya5kcb.js.map +189 -0
  62. package/dist/cli/{chunk-tzne8qfq.js → chunk-w4bxdvsa.js} +18 -15
  63. package/dist/cli/chunk-w4bxdvsa.js.map +10 -0
  64. package/dist/cli/{chunk-f7t03s3g.js → chunk-wdrt2k2v.js} +2 -2
  65. package/dist/cli/{chunk-z1f5arsg.js → chunk-xh43dwgw.js} +170 -55
  66. package/dist/cli/chunk-xh43dwgw.js.map +36 -0
  67. package/dist/cli/{chunk-pnnvybbk.js → chunk-zp79m0ts.js} +5 -5
  68. package/dist/cli/{chunk-pnnvybbk.js.map → chunk-zp79m0ts.js.map} +2 -2
  69. package/dist/cli/index.js +160 -35
  70. package/dist/cli/index.js.map +4 -4
  71. package/dist/types/ai/agent-readability.d.ts +1 -1
  72. package/dist/types/ai/agent-surface.d.ts +32 -0
  73. package/dist/types/ai/api/paths.d.ts +1 -1
  74. package/dist/types/ai/api-catalog.d.ts +7 -1
  75. package/dist/types/ai/ask-context.d.ts +14 -7
  76. package/dist/types/ai/ask.d.ts +43 -43
  77. package/dist/types/ai/component-markdown.d.ts +4 -4
  78. package/dist/types/ai/index.d.ts +3 -3
  79. package/dist/types/ai/openapi-components.d.ts +1 -1
  80. package/dist/types/ai/relative-links.d.ts +9 -4
  81. package/dist/types/ai/serializers.d.ts +1 -1
  82. package/dist/types/ai/static-expression.d.ts +28 -0
  83. package/dist/types/ai/visibility.d.ts +1 -1
  84. package/dist/types/analytics/databuddy.d.ts +43 -0
  85. package/dist/types/analytics/index.d.ts +2 -0
  86. package/dist/types/analytics/schema.d.ts +14 -0
  87. package/dist/types/cli/env.d.ts +5 -0
  88. package/dist/types/cli/init/scaffold.d.ts +19 -3
  89. package/dist/types/cli/init/starter-spec.d.ts +11 -0
  90. package/dist/types/core/base-path.d.ts +9 -0
  91. package/dist/types/core/config-input.d.ts +21 -21
  92. package/dist/types/core/config.d.ts +5 -5
  93. package/dist/types/core/data.d.ts +3 -3
  94. package/dist/types/core/graph.d.ts +2 -0
  95. package/dist/types/core/i18n-ui.d.ts +37 -8
  96. package/dist/types/core/i18n.d.ts +7 -1
  97. package/dist/types/core/links.d.ts +3 -1
  98. package/dist/types/core/load-module.d.ts +10 -0
  99. package/dist/types/core/locale-links.d.ts +12 -2
  100. package/dist/types/core/meta.d.ts +5 -1
  101. package/dist/types/core/nav-diagnostics.d.ts +10 -0
  102. package/dist/types/core/navigation.d.ts +38 -0
  103. package/dist/types/core/ordering-prefix.d.ts +4 -0
  104. package/dist/types/core/safe-links.d.ts +3 -1
  105. package/dist/types/core/schema.d.ts +57 -18
  106. package/dist/types/core/sources/github-releases.d.ts +5 -0
  107. package/dist/types/core/sources/lower.d.ts +14 -2
  108. package/dist/types/core/sources/normalize.d.ts +10 -1
  109. package/dist/types/core/sources/remote.d.ts +11 -1
  110. package/dist/types/core/sources/resolve.d.ts +12 -0
  111. package/dist/types/core/sources/types.d.ts +31 -0
  112. package/dist/types/core/types.d.ts +9 -0
  113. package/dist/types/core/unrecognized-keys.d.ts +1 -1
  114. package/dist/types/deploy/adapters/node.d.ts +5 -2
  115. package/dist/types/deploy/adapters/types.d.ts +7 -0
  116. package/dist/types/deploy/cloudflare-negotiation.d.ts +3 -2
  117. package/dist/types/deploy/headers.d.ts +31 -7
  118. package/dist/types/deploy/node-headers.d.ts +43 -8
  119. package/dist/types/deploy/platforms/netlify.d.ts +27 -2
  120. package/dist/types/deploy/platforms/node.d.ts +6 -5
  121. package/dist/types/deploy/platforms/types.d.ts +7 -0
  122. package/dist/types/deploy/platforms/vercel.d.ts +3 -2
  123. package/dist/types/deploy/redirects.d.ts +7 -2
  124. package/dist/types/deploy/vercel-negotiation.d.ts +3 -2
  125. package/dist/types/openapi/model.d.ts +20 -6
  126. package/dist/types/search/documents.d.ts +1 -1
  127. package/dist/types/search/orama-index.d.ts +1 -1
  128. package/dist/types/search/sync/algolia.d.ts +3 -1
  129. package/docs/01-quickstart.mdx +3 -2
  130. package/docs/02-deployment.mdx +21 -12
  131. package/docs/03-upgrading.mdx +22 -9
  132. package/docs/04-migrating.mdx +4 -4
  133. package/docs/08-faq.mdx +12 -5
  134. package/docs/advanced/changelog.mdx +1 -1
  135. package/docs/advanced/custom-pages.mdx +5 -3
  136. package/docs/advanced/skills.mdx +1 -1
  137. package/docs/cli/audit.mdx +5 -5
  138. package/docs/cli/doctor.mdx +4 -4
  139. package/docs/cli/evals.mdx +9 -9
  140. package/docs/cli/index.mdx +6 -3
  141. package/docs/cli/translate.mdx +8 -8
  142. package/docs/configuration/analytics.mdx +23 -2
  143. package/docs/configuration/{ask-ai.mdx → assistant.mdx} +20 -20
  144. package/docs/configuration/customization.mdx +5 -4
  145. package/docs/configuration/index.mdx +7 -5
  146. package/docs/configuration/meta.ts +1 -1
  147. package/docs/configuration/search.mdx +2 -2
  148. package/docs/content/components.mdx +1 -1
  149. package/docs/content/frontmatter.mdx +5 -1
  150. package/docs/content/i18n.mdx +3 -3
  151. package/docs/content/index.mdx +4 -2
  152. package/docs/content/islands.mdx +1 -1
  153. package/docs/content/meta.mdx +5 -3
  154. package/docs/content/navigation.mdx +29 -4
  155. package/docs/content/sources.mdx +18 -12
  156. package/docs/content/versioning.mdx +1 -0
  157. package/docs/discoverability/agent-discovery.mdx +22 -8
  158. package/docs/discoverability/index.mdx +3 -3
  159. package/docs/discoverability/llms-txt.mdx +2 -5
  160. package/docs/discoverability/markdown.mdx +5 -3
  161. package/docs/discoverability/mcp.mdx +4 -0
  162. package/docs/discoverability/metadata.mdx +3 -2
  163. package/docs/discoverability/open-graph.mdx +6 -4
  164. package/docs/discoverability/rss.mdx +3 -1
  165. package/docs/index.mdx +2 -2
  166. package/docs/references/asyncapi.mdx +1 -1
  167. package/docs/references/graphql.mdx +2 -2
  168. package/docs/references/openapi.mdx +3 -3
  169. package/package.json +1 -1
  170. package/skills/blume/SKILL.md +5 -5
  171. package/skills/blume-migrate/SKILL.md +6 -6
  172. package/skills/blume-migrate/references/docusaurus.md +6 -6
  173. package/skills/blume-migrate/references/mintlify.md +3 -3
  174. package/skills/blume-migrate/references/monorepo.md +1 -1
  175. package/skills/blume-migrate/references/nextra.md +1 -1
  176. package/skills/blume-migrate/references/starlight.md +5 -5
  177. package/skills/blume-migrate/scripts/mintlify-codemod.mjs +2 -2
  178. package/skills/blume-update-docs/references/audit-checklist.md +1 -1
  179. package/src/ai/agent-readability.ts +4 -4
  180. package/src/ai/agent-surface.ts +56 -0
  181. package/src/ai/api/paths.ts +1 -1
  182. package/src/ai/api/spec.ts +15 -2
  183. package/src/ai/api-catalog.ts +7 -1
  184. package/src/ai/ask-context.ts +21 -9
  185. package/src/ai/ask-data.ts +28 -14
  186. package/src/ai/ask.ts +84 -71
  187. package/src/ai/component-markdown.ts +43 -37
  188. package/src/ai/cors.ts +3 -3
  189. package/src/ai/index.ts +16 -16
  190. package/src/ai/link-headers.ts +8 -3
  191. package/src/ai/llms.ts +4 -3
  192. package/src/ai/markdown.ts +23 -11
  193. package/src/ai/mcp/server.ts +78 -7
  194. package/src/ai/openapi-components.ts +1 -1
  195. package/src/ai/relative-links.ts +78 -10
  196. package/src/ai/serializers.ts +1 -1
  197. package/src/ai/static-expression.ts +416 -0
  198. package/src/ai/visibility.ts +46 -15
  199. package/src/analytics/databuddy.ts +67 -0
  200. package/src/analytics/head.ts +4 -0
  201. package/src/analytics/index.ts +2 -0
  202. package/src/analytics/posthog.ts +21 -3
  203. package/src/analytics/schema.ts +2 -0
  204. package/src/astro/generate.ts +90 -45
  205. package/src/astro/module-types.ts +1 -1
  206. package/src/astro/runtime-deps.ts +6 -6
  207. package/src/astro/templates.ts +87 -49
  208. package/src/audit/catalog.ts +2 -2
  209. package/src/audit/checks/assets.ts +25 -5
  210. package/src/audit/checks/content.ts +20 -2
  211. package/src/audit/checks/i18n.ts +46 -8
  212. package/src/audit/checks/indexability.ts +39 -19
  213. package/src/audit/checks/links.ts +14 -0
  214. package/src/audit/checks/llms.ts +6 -3
  215. package/src/audit/checks/network.ts +3 -1
  216. package/src/audit/checks/og-image.ts +10 -0
  217. package/src/audit/checks/robots.ts +6 -1
  218. package/src/audit/checks/sitemap.ts +56 -31
  219. package/src/audit/checks/social.ts +21 -2
  220. package/src/audit/crawl.ts +88 -15
  221. package/src/audit/report.ts +54 -17
  222. package/src/audit/run.ts +1 -0
  223. package/src/audit/types.ts +18 -0
  224. package/src/audit/url.ts +37 -6
  225. package/src/blume-modules.d.ts +2 -2
  226. package/src/cli/build-failure.ts +50 -0
  227. package/src/cli/commands/audit.ts +8 -1
  228. package/src/cli/commands/build.ts +19 -5
  229. package/src/cli/commands/check.ts +2 -0
  230. package/src/cli/commands/doctor.ts +7 -5
  231. package/src/cli/commands/eval.ts +4 -10
  232. package/src/cli/commands/init.ts +15 -5
  233. package/src/cli/commands/migrate.ts +2 -2
  234. package/src/cli/commands/preview.ts +15 -0
  235. package/src/cli/commands/sync.ts +2 -0
  236. package/src/cli/commands/translate.ts +12 -9
  237. package/src/cli/commands/upgrade.ts +13 -2
  238. package/src/cli/eject-scripts.ts +32 -7
  239. package/src/cli/env.ts +12 -1
  240. package/src/cli/init/scaffold.ts +117 -11
  241. package/src/cli/init/starter-spec.ts +235 -0
  242. package/src/cli/required-secrets.ts +3 -3
  243. package/src/components/content/AccordionItem.astro +26 -22
  244. package/src/components/content/Badge.astro +2 -9
  245. package/src/components/content/Card.astro +2 -2
  246. package/src/components/content/Component.astro +9 -3
  247. package/src/components/content/Expandable.astro +5 -1
  248. package/src/components/content/Frame.astro +2 -7
  249. package/src/components/content/GithubInfo.astro +12 -2
  250. package/src/components/content/Prompt.astro +2 -7
  251. package/src/components/content/Tabs.astro +54 -5
  252. package/src/components/content/Tile.astro +1 -1
  253. package/src/components/content/Tooltip.astro +69 -7
  254. package/src/components/content/Tree.astro +7 -2
  255. package/src/components/content/TypeTable.astro +10 -5
  256. package/src/components/content/Update.astro +8 -2
  257. package/src/components/content/auto-type-table.ts +4 -1
  258. package/src/components/content/badge-color.ts +17 -0
  259. package/src/components/content/base-href.ts +18 -3
  260. package/src/components/content/inline-markdown.ts +27 -7
  261. package/src/components/copy-feedback.ts +36 -9
  262. package/src/components/islands/{AskAI.astro → Assistant.astro} +10 -10
  263. package/src/components/islands/{ask-ai.tsx → assistant.tsx} +39 -25
  264. package/src/components/islands/hooks.ts +21 -14
  265. package/src/components/islands/webmcp.ts +12 -8
  266. package/src/components/layout/Banner.astro +23 -4
  267. package/src/components/layout/Header.astro +32 -19
  268. package/src/components/layout/Logo.astro +5 -0
  269. package/src/components/layout/NavSelector.astro +6 -1
  270. package/src/components/layout/NavTabMenu.astro +133 -0
  271. package/src/components/layout/NavTree.astro +15 -6
  272. package/src/components/layout/NavTreeCache.astro +5 -2
  273. package/src/components/layout/NavTreeScript.astro +45 -5
  274. package/src/components/layout/PageLayout.astro +28 -14
  275. package/src/components/layout/Pagination.astro +7 -7
  276. package/src/components/layout/ReferenceLayout.astro +5 -2
  277. package/src/components/layout/RootLayout.astro +27 -14
  278. package/src/components/layout/Search.astro +18 -14
  279. package/src/components/layout/analytics-client.ts +3 -1
  280. package/src/components/layout/drawer-inert.ts +1 -1
  281. package/src/components/openapi/GraphqlType.astro +11 -3
  282. package/src/components/openapi/MessageComposer.astro +1 -1
  283. package/src/components/openapi/Operation.astro +21 -5
  284. package/src/components/openapi/PanelTabs.astro +4 -1
  285. package/src/components/openapi/Playground.astro +8 -2
  286. package/src/components/openapi/RequestPanel.astro +9 -5
  287. package/src/components/openapi/SchemaProperty.astro +11 -33
  288. package/src/components/openapi/SchemaTable.astro +27 -52
  289. package/src/components/openapi/description.ts +2 -2
  290. package/src/components/openapi/helpers.ts +90 -12
  291. package/src/components/openapi/message-composer.ts +8 -0
  292. package/src/components/openapi/message-model.ts +12 -2
  293. package/src/components/openapi/message.ts +4 -1
  294. package/src/components/openapi/operation-model.ts +40 -8
  295. package/src/components/openapi/panel.ts +29 -5
  296. package/src/components/openapi/playground-client.ts +37 -7
  297. package/src/components/openapi/playground-schema.ts +25 -6
  298. package/src/components/openapi/request.ts +2 -0
  299. package/src/components/openapi/schema-tree.ts +203 -0
  300. package/src/components/openapi/snippets.ts +30 -15
  301. package/src/components/openapi/validate-json.ts +1 -1
  302. package/src/core/base-path.ts +15 -0
  303. package/src/core/code-fences.ts +1 -1
  304. package/src/core/config-input.ts +23 -23
  305. package/src/core/config.ts +21 -7
  306. package/src/core/data.ts +3 -3
  307. package/src/core/diagnostics.ts +217 -30
  308. package/src/core/graph.ts +120 -11
  309. package/src/core/i18n-ui.ts +74 -11
  310. package/src/core/i18n.ts +13 -2
  311. package/src/core/links.ts +7 -4
  312. package/src/core/load-module.ts +20 -0
  313. package/src/core/locale-links.ts +17 -17
  314. package/src/core/manifest.ts +3 -2
  315. package/src/core/meta.ts +69 -6
  316. package/src/core/nav-diagnostics.ts +56 -1
  317. package/src/core/navigation.ts +245 -76
  318. package/src/core/ordering-prefix.ts +27 -0
  319. package/src/core/project-graph.ts +23 -1
  320. package/src/core/request-body.ts +1 -1
  321. package/src/core/safe-href.ts +53 -1
  322. package/src/core/safe-links.ts +11 -2
  323. package/src/core/schema.ts +95 -34
  324. package/src/core/server-features.ts +2 -2
  325. package/src/core/sources/assets.ts +83 -41
  326. package/src/core/sources/contentful-rich-text.ts +3 -2
  327. package/src/core/sources/contentful.ts +25 -12
  328. package/src/core/sources/filesystem.ts +5 -1
  329. package/src/core/sources/github-releases.ts +106 -5
  330. package/src/core/sources/lexical.ts +9 -4
  331. package/src/core/sources/lower.ts +79 -26
  332. package/src/core/sources/mdx-remote.ts +1 -0
  333. package/src/core/sources/normalize.ts +132 -30
  334. package/src/core/sources/notion.ts +26 -10
  335. package/src/core/sources/obsidian.ts +17 -3
  336. package/src/core/sources/payload.ts +1 -0
  337. package/src/core/sources/portable-text.ts +63 -44
  338. package/src/core/sources/remote.ts +18 -2
  339. package/src/core/sources/resolve.ts +52 -33
  340. package/src/core/sources/sanity.ts +1 -0
  341. package/src/core/sources/strapi-blocks.ts +9 -4
  342. package/src/core/sources/strapi.ts +1 -0
  343. package/src/core/sources/types.ts +31 -0
  344. package/src/core/types.ts +9 -0
  345. package/src/core/ui-packs/ar.ts +17 -5
  346. package/src/core/ui-packs/bg.ts +17 -5
  347. package/src/core/ui-packs/bn.ts +17 -5
  348. package/src/core/ui-packs/ca.ts +17 -5
  349. package/src/core/ui-packs/cs.ts +17 -5
  350. package/src/core/ui-packs/da.ts +17 -5
  351. package/src/core/ui-packs/de.ts +17 -5
  352. package/src/core/ui-packs/el.ts +17 -5
  353. package/src/core/ui-packs/es.ts +17 -5
  354. package/src/core/ui-packs/fa.ts +17 -5
  355. package/src/core/ui-packs/fi.ts +17 -5
  356. package/src/core/ui-packs/fr.ts +17 -5
  357. package/src/core/ui-packs/he.ts +17 -5
  358. package/src/core/ui-packs/hi.ts +17 -5
  359. package/src/core/ui-packs/hr.ts +17 -5
  360. package/src/core/ui-packs/hu.ts +17 -5
  361. package/src/core/ui-packs/id.ts +17 -5
  362. package/src/core/ui-packs/it.ts +17 -5
  363. package/src/core/ui-packs/ja.ts +17 -5
  364. package/src/core/ui-packs/ko.ts +17 -5
  365. package/src/core/ui-packs/nl.ts +17 -5
  366. package/src/core/ui-packs/no.ts +17 -5
  367. package/src/core/ui-packs/pl.ts +17 -5
  368. package/src/core/ui-packs/pt-br.ts +17 -5
  369. package/src/core/ui-packs/pt.ts +17 -5
  370. package/src/core/ui-packs/ro.ts +17 -5
  371. package/src/core/ui-packs/ru.ts +17 -5
  372. package/src/core/ui-packs/sk.ts +17 -5
  373. package/src/core/ui-packs/sr.ts +17 -5
  374. package/src/core/ui-packs/sv.ts +17 -5
  375. package/src/core/ui-packs/th.ts +17 -5
  376. package/src/core/ui-packs/tr.ts +17 -5
  377. package/src/core/ui-packs/uk.ts +17 -5
  378. package/src/core/ui-packs/vi.ts +17 -5
  379. package/src/core/ui-packs/zh-tw.ts +17 -5
  380. package/src/core/ui-packs/zh.ts +17 -5
  381. package/src/core/unrecognized-keys.ts +1 -1
  382. package/src/core/version-cut.ts +17 -2
  383. package/src/core/versions.ts +4 -1
  384. package/src/deploy/adapters/node.ts +5 -2
  385. package/src/deploy/adapters/registry.ts +2 -1
  386. package/src/deploy/adapters/types.ts +13 -1
  387. package/src/deploy/artifacts.ts +25 -5
  388. package/src/deploy/cloudflare-negotiation.ts +23 -4
  389. package/src/deploy/headers.ts +67 -51
  390. package/src/deploy/node-headers.ts +148 -27
  391. package/src/deploy/platforms/cloudflare.ts +1 -0
  392. package/src/deploy/platforms/netlify.ts +82 -5
  393. package/src/deploy/platforms/node.ts +7 -5
  394. package/src/deploy/platforms/static.ts +1 -0
  395. package/src/deploy/platforms/types.ts +7 -0
  396. package/src/deploy/platforms/vercel.ts +9 -3
  397. package/src/deploy/redirects.ts +14 -3
  398. package/src/deploy/vercel-negotiation.ts +35 -3
  399. package/src/eval/agents.ts +10 -2
  400. package/src/eval/run.ts +25 -0
  401. package/src/markdown/base-links.ts +55 -8
  402. package/src/markdown/index.ts +6 -3
  403. package/src/markdown/relative-links.ts +3 -23
  404. package/src/markdown/route-snapshot.ts +37 -0
  405. package/src/og/card.ts +20 -4
  406. package/src/og/derive.ts +145 -4
  407. package/src/openapi/graphql-build.ts +28 -2
  408. package/src/openapi/model.ts +77 -13
  409. package/src/openapi/render-mdx.ts +10 -1
  410. package/src/registry/eject.ts +135 -37
  411. package/src/search/documents.ts +24 -3
  412. package/src/search/orama-index.ts +1 -1
  413. package/src/search/sync/algolia.ts +36 -2
  414. package/src/sources/registry.ts +5 -0
  415. package/src/theme/entry.ts +11 -4
  416. package/src/translate/agents.ts +6 -1
  417. package/src/translate/ledger.ts +26 -3
  418. package/src/translate/meta.ts +11 -3
  419. package/src/translate/report.ts +1 -1
  420. package/src/translate/run.ts +11 -5
  421. package/src/translate/validate.ts +10 -1
  422. package/src/translate/work-list.ts +36 -3
  423. package/src/upgrade/upgrade.ts +37 -5
  424. package/dist/cli/chunk-1w8dp3qb.js.map +0 -10
  425. package/dist/cli/chunk-5a2z0198.js.map +0 -10
  426. package/dist/cli/chunk-6k8vp3ta.js.map +0 -19
  427. package/dist/cli/chunk-79njf86q.js.map +0 -11
  428. package/dist/cli/chunk-a9kptbw5.js.map +0 -14
  429. package/dist/cli/chunk-abh8yjkn.js +0 -31
  430. package/dist/cli/chunk-abh8yjkn.js.map +0 -10
  431. package/dist/cli/chunk-bctazmbk.js.map +0 -10
  432. package/dist/cli/chunk-beat36xx.js.map +0 -10
  433. package/dist/cli/chunk-d1tadaw7.js.map +0 -10
  434. package/dist/cli/chunk-fa25z98p.js.map +0 -11
  435. package/dist/cli/chunk-j8mw0za6.js.map +0 -35
  436. package/dist/cli/chunk-mnqj32sj.js.map +0 -12
  437. package/dist/cli/chunk-mwt1k8n7.js.map +0 -10
  438. package/dist/cli/chunk-nk3ts2xk.js +0 -51
  439. package/dist/cli/chunk-nk3ts2xk.js.map +0 -10
  440. package/dist/cli/chunk-sqn5t4q0.js.map +0 -10
  441. package/dist/cli/chunk-tzne8qfq.js.map +0 -10
  442. package/dist/cli/chunk-xaz13gwg.js.map +0 -182
  443. package/dist/cli/chunk-z01ze5c1.js.map +0 -10
  444. package/dist/cli/chunk-z1f5arsg.js.map +0 -36
  445. package/dist/cli/chunk-zg2gtj10.js.map +0 -35
  446. /package/dist/cli/{chunk-f2972sbt.js.map → chunk-00gs3wqs.js.map} +0 -0
  447. /package/dist/cli/{chunk-7ez8ny0t.js.map → chunk-bbnwccaz.js.map} +0 -0
  448. /package/dist/cli/{chunk-zxccj738.js.map → chunk-esh98wmb.js.map} +0 -0
  449. /package/dist/cli/{chunk-88cpgt6h.js.map → chunk-fsmrqk8a.js.map} +0 -0
  450. /package/dist/cli/{chunk-b5aj94ah.js.map → chunk-g698a744.js.map} +0 -0
  451. /package/dist/cli/{chunk-41za066z.js.map → chunk-h2ez8dzb.js.map} +0 -0
  452. /package/dist/cli/{chunk-by2290sx.js.map → chunk-h7k3nq3v.js.map} +0 -0
  453. /package/dist/cli/{chunk-y3e45rc8.js.map → chunk-n1yg3tj3.js.map} +0 -0
  454. /package/dist/cli/{chunk-f7t03s3g.js.map → chunk-wdrt2k2v.js.map} +0 -0
@@ -1,8 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- trimChar,
4
- normalizeBasePath
5
- } from "./chunk-jts8mvcz.js";
6
2
  import {
7
3
  buildHomeLinkHeader,
8
4
  resolveDocsCollection,
@@ -10,18 +6,61 @@ import {
10
6
  deployPassthrough,
11
7
  fontLocaleCodes,
12
8
  buildFontEntries,
9
+ SVG_ASSET_HEADERS,
13
10
  applyBaseToAstroRedirects,
14
11
  distDir,
15
12
  adapterRoot,
16
- SVG_ASSET_POLICY,
17
- deployPlatform
18
- } from "./chunk-xaz13gwg.js";
19
- import {
13
+ deployPlatform,
20
14
  BLUME_IGNORE_DIRS
21
- } from "./chunk-abh8yjkn.js";
15
+ } from "./chunk-v6ya5kcb.js";
16
+ import {
17
+ trimChar,
18
+ normalizeBasePath
19
+ } from "./chunk-gs7r695n.js";
20
+
21
+ // src/deploy/adapter-output.ts
22
+ import { existsSync } from "node:fs";
23
+ import { cp, mkdir, rm } from "node:fs/promises";
24
+ import { dirname, join } from "pathe";
25
+ var deployOutputDir = (config, context) => {
26
+ const { deployment } = config;
27
+ return deployment.options.output === "server" ? deployPlatform(deployment).serverOutputDir(context) : distDir(context);
28
+ };
29
+ var deployStaticDir = (config, context) => {
30
+ const { deployment } = config;
31
+ return deployment.options.output === "server" ? deployPlatform(deployment).serverStaticDir(context) : distDir(context);
32
+ };
33
+ var surfaceAdapterOutput = async (config, context) => {
34
+ const { deployment } = config;
35
+ if (deployment.options.output !== "server") {
36
+ return { moved: false };
37
+ }
38
+ const rel = deployPlatform(deployment).hiddenRuntime.surfacePath;
39
+ if (!rel) {
40
+ return { moved: false };
41
+ }
42
+ const from = join(context.outDir, rel);
43
+ const to = join(context.root, rel);
44
+ if (!existsSync(from)) {
45
+ return { moved: false };
46
+ }
47
+ await mkdir(dirname(to), { recursive: true });
48
+ await rm(to, { force: true, recursive: true });
49
+ try {
50
+ await cp(from, to, { recursive: true, verbatimSymlinks: true });
51
+ } catch (error) {
52
+ if (error.code !== "EPERM") {
53
+ throw error;
54
+ }
55
+ await rm(to, { force: true, recursive: true });
56
+ await cp(from, to, { dereference: true, recursive: true });
57
+ }
58
+ await rm(from, { force: true, recursive: true });
59
+ return { from, moved: true, to };
60
+ };
22
61
 
23
62
  // src/astro/component-slots.ts
24
- import { isAbsolute, join, relative } from "pathe";
63
+ import { isAbsolute, join as join2, relative } from "pathe";
25
64
  var attributeValue = (value) => value.replaceAll(/["\n\r]/gu, " ").trim();
26
65
  var CLIENT_LOAD = "client:load";
27
66
  var directiveFor = (override) => {
@@ -77,7 +116,7 @@ var islandOverride = (island) => ({
77
116
  var record = (entries) => entries.length ? `{ ${entries.join(", ")} }` : "{}";
78
117
  var planComponentSlots = (islands, analysis, options = {}) => {
79
118
  const { relativeTo } = options;
80
- const wrapperDir = relativeTo === undefined ? undefined : join(relativeTo, "component-slots");
119
+ const wrapperDir = relativeTo === undefined ? undefined : join2(relativeTo, "component-slots");
81
120
  const frameworks = new Set;
82
121
  const wrappers = [];
83
122
  const importLines = [];
@@ -168,9 +207,9 @@ var publishRuntimeModules = (modules) => {
168
207
  };
169
208
 
170
209
  // src/astro/templates.ts
171
- import { existsSync, readFileSync } from "node:fs";
210
+ import { existsSync as existsSync2, readFileSync } from "node:fs";
172
211
  import { pathToFileURL } from "node:url";
173
- import { dirname, isAbsolute as isAbsolute2, join as join2, relative as relative2 } from "pathe";
212
+ import { dirname as dirname2, isAbsolute as isAbsolute2, join as join3, relative as relative2 } from "pathe";
174
213
  var WORKSPACE_MARKERS = [
175
214
  ".git",
176
215
  "bun.lock",
@@ -181,7 +220,7 @@ var WORKSPACE_MARKERS = [
181
220
  "yarn.lock"
182
221
  ];
183
222
  var hasWorkspacesField = (pkgPath) => {
184
- if (!existsSync(pkgPath)) {
223
+ if (!existsSync2(pkgPath)) {
185
224
  return false;
186
225
  }
187
226
  try {
@@ -191,14 +230,14 @@ var hasWorkspacesField = (pkgPath) => {
191
230
  return false;
192
231
  }
193
232
  };
194
- var hasWorkspaceMarker = (dir) => hasWorkspacesField(join2(dir, "package.json")) || WORKSPACE_MARKERS.some((marker) => existsSync(join2(dir, marker)));
233
+ var hasWorkspaceMarker = (dir) => hasWorkspacesField(join3(dir, "package.json")) || WORKSPACE_MARKERS.some((marker) => existsSync2(join3(dir, marker)));
195
234
  var findWorkspaceRoot = (start) => {
196
235
  let dir = start;
197
236
  for (;; ) {
198
237
  if (hasWorkspaceMarker(dir)) {
199
238
  return dir;
200
239
  }
201
- const parent = dirname(dir);
240
+ const parent = dirname2(dir);
202
241
  if (parent === dir) {
203
242
  return start;
204
243
  }
@@ -255,8 +294,8 @@ var runtimeDependencies = (options) => {
255
294
  }
256
295
  }
257
296
  }
258
- if (config.ai.ask?.enabled && !config.ai.ask.endpoint) {
259
- deps.push(...config.ai.ask.provider.runtimeDeps);
297
+ if (config.ai.assistant?.enabled && !config.ai.assistant.endpoint) {
298
+ deps.push(...config.ai.assistant.provider.runtimeDeps);
260
299
  }
261
300
  deps.push(...config.deployment.runtimeDeps);
262
301
  return deps;
@@ -428,7 +467,7 @@ var astroConfigTemplate = (options) => {
428
467
  return {
429
468
  ...face,
430
469
  src: [
431
- isAbsolute2(variant.src) ? variant.src : join2(context.root, variant.src)
470
+ isAbsolute2(variant.src) ? variant.src : join3(context.root, variant.src)
432
471
  ]
433
472
  };
434
473
  }))} } }` : `{ provider: fontProviders.${font.provider}(), name: ${JSON.stringify(font.name)}, cssVariable: ${JSON.stringify(font.cssVariable)}, weights: ${astroFontWeights(font.weights)}, subsets: ${JSON.stringify(font.subsets)}, fallbacks: ${JSON.stringify(font.fallbacks)} }`).join(", ")}],` : "";
@@ -601,7 +640,7 @@ ${userConfigSetup}export default defineConfig({
601
640
  });
602
641
  `;
603
642
  };
604
- var stagedContentDir = (outDir) => join2(outDir, "content");
643
+ var stagedContentDir = (outDir) => join3(outDir, "content");
605
644
  var runtimeDirWithin = (base, outDir) => {
606
645
  const rel = relative2(base, outDir);
607
646
  return rel && !rel.startsWith("..") && !isAbsolute2(rel) ? rel : null;
@@ -740,7 +779,7 @@ const ground = createAskContext(askData${groundOptions});
740
779
  }));`;
741
780
  const { keyCheck } = backend.template;
742
781
  const onError = ` onError({ error }) {
743
- console.error("Ask AI provider error:", error);
782
+ console.error("Assistant provider error:", error);
744
783
  },`;
745
784
  const streamFields = [
746
785
  `model: ${backend.template.model}`,
@@ -779,22 +818,22 @@ ${setup}${cors.setup}
779
818
  ${handler}
780
819
  `;
781
820
  };
782
- var askComponentTemplate = (askEnabled) => askEnabled ? `---
821
+ var askComponentTemplate = (assistantEnabled) => assistantEnabled ? `---
783
822
  // Generated by Blume. Do not edit.
784
- import AskAI from "blume/components/islands/AskAI.astro";
823
+ import Assistant from "blume/components/islands/Assistant.astro";
785
824
  import data from "blume:data";
786
825
 
787
826
  const { strings } = Astro.props;
788
827
  ---
789
828
 
790
- <AskAI
791
- endpoint={data.config.ask?.endpoint ?? undefined}
792
- strings={strings ?? data.ui.ask}
793
- suggestions={data.config.ask?.suggestions ?? []}
829
+ <Assistant
830
+ endpoint={data.config.assistant?.endpoint ?? undefined}
831
+ strings={strings ?? data.ui.assistant}
832
+ suggestions={data.config.assistant?.suggestions ?? []}
794
833
  />
795
834
  ` : `---
796
835
  // Generated by Blume. Do not edit.
797
- // Ask AI is off (\`ai.ask.enabled\`), so the header's Ask trigger renders nothing.
836
+ // The assistant is off (\`ai.assistant.enabled\`), so the header's Ask trigger renders nothing.
798
837
  // Deliberately imports no React island, keeping the JSX renderer out of projects
799
838
  // that don't need it.
800
839
  ---
@@ -834,9 +873,9 @@ var featuresTemplate = (features) => `// Generated by Blume. Do not edit.
834
873
  export const loadMermaid: (() => Promise<unknown>) | null = ${features.mermaid ? '() => import("blume/components/content/mermaid-element.ts")' : "null"};
835
874
 
836
875
  /** The EPUB generator's browser bundle; null when export.epub is off. */
837
- export const loadEpub:
876
+ ${features.epub ? `export const loadEpub:
838
877
  | (() => Promise<typeof import("epub-gen-memory/bundle")>)
839
- | null = ${features.epub ? '() => import("epub-gen-memory/bundle")' : "null"};
878
+ | null = () => import("epub-gen-memory/bundle");` : "export const loadEpub: (() => Promise<unknown>) | null = null;"}
840
879
  `;
841
880
  var searchClientTemplate = (config) => {
842
881
  const { provider } = config.search;
@@ -973,18 +1012,29 @@ const TYPES: Record<string, string> = {
973
1012
  ".ico": "image/x-icon",
974
1013
  ".jpeg": "image/jpeg",
975
1014
  ".jpg": "image/jpeg",
1015
+ ".mov": "video/quicktime",
1016
+ ".mp4": "video/mp4",
1017
+ ".ogv": "video/ogg",
976
1018
  ".png": "image/png",
977
1019
  ".svg": "image/svg+xml",
978
1020
  ".tiff": "image/tiff",
1021
+ ".webm": "video/webm",
979
1022
  ".webp": "image/webp",
980
1023
  };
981
1024
 
1025
+ const extensionOf = (path: string): string =>
1026
+ path.slice(path.lastIndexOf(".")).toLowerCase();
1027
+
982
1028
  const contentType = (path: string): string =>
983
- TYPES[path.slice(path.lastIndexOf(".")).toLowerCase()] ??
984
- "application/octet-stream";
1029
+ TYPES[extensionOf(path)] ?? "application/octet-stream";
1030
+
1031
+ // A source downloads only images and videos; anything else in the staged
1032
+ // directory (a page an older build saved under its URL's extension) is never
1033
+ // published from the docs origin.
1034
+ const isMedia = (path: string): boolean => Object.hasOwn(TYPES, extensionOf(path));
985
1035
 
986
1036
  const stagedParams = async (): Promise<string[]> => {
987
- if (!existsSync(STAGED_DIR)) {
1037
+ if (STAGED_DIR === null || !existsSync(STAGED_DIR)) {
988
1038
  return [];
989
1039
  }
990
1040
  const entries = await readdir(STAGED_DIR, {
@@ -992,7 +1042,7 @@ const stagedParams = async (): Promise<string[]> => {
992
1042
  withFileTypes: true,
993
1043
  });
994
1044
  return entries
995
- .filter((entry) => entry.isFile())
1045
+ .filter((entry) => entry.isFile() && isMedia(entry.name))
996
1046
  .map((entry) =>
997
1047
  relative(STAGED_DIR, join(entry.parentPath, entry.name)).replaceAll(
998
1048
  "\\\\",
@@ -1013,6 +1063,9 @@ const resolveAsset = (asset: string): string | null => {
1013
1063
  if (asset.startsWith("content/")) {
1014
1064
  return files[asset.slice("content/".length)] ?? null;
1015
1065
  }
1066
+ if (STAGED_DIR === null) {
1067
+ return null;
1068
+ }
1016
1069
  const abs = resolve(STAGED_DIR, asset);
1017
1070
  // Traversal guard: the dev server renders on demand, so the param is
1018
1071
  // attacker-controlled there — never step outside the staged directory.
@@ -1022,7 +1075,7 @@ const resolveAsset = (asset: string): string | null => {
1022
1075
  // asset — and a bare prefix also admits a sibling directory that merely
1023
1076
  // shares the name.
1024
1077
  const rel = relative(STAGED_DIR, abs);
1025
- if (rel === "" || rel.startsWith("..") || isAbsolute(rel)) {
1078
+ if (rel === "" || rel.startsWith("..") || isAbsolute(rel) || !isMedia(rel)) {
1026
1079
  return null;
1027
1080
  }
1028
1081
  return existsSync(abs) ? abs : null;
@@ -1036,11 +1089,12 @@ export const GET: APIRoute = async ({ params }) => {
1036
1089
  const body = await readFile(path);
1037
1090
  const type = contentType(path);
1038
1091
  // An SVG opened directly is a document that can run script; the sandbox
1039
- // keeps an uploaded one inert on the docs origin. Static hosts get the same
1040
- // header from the build's header rules.
1092
+ // keeps an uploaded one inert on the docs origin. This endpoint
1093
+ // prerenders, so these headers reach dev only: a build serves the files
1094
+ // with the same headers from its host's rules (see deploy/headers.ts).
1041
1095
  const headers: Record<string, string> =
1042
1096
  type === "image/svg+xml"
1043
- ? { "Content-Security-Policy": ${JSON.stringify(SVG_ASSET_POLICY)}, "Content-Type": type }
1097
+ ? { ...${JSON.stringify(SVG_ASSET_HEADERS)}, "Content-Type": type }
1044
1098
  : { "Content-Type": type };
1045
1099
  return new Response(new Uint8Array(body), { headers });
1046
1100
  };
@@ -1980,6 +2034,7 @@ var notFoundPageTemplate = () => `---
1980
2034
  import Icon from "blume/components/Icon.astro";
1981
2035
  import PageLayout from "blume/components/layout/PageLayout.astro";
1982
2036
  import { withBase } from "blume/components/islands/base-path.ts";
2037
+ import { withBasePath } from "blume/core/base-path.ts";
1983
2038
  import data from "blume:data";
1984
2039
 
1985
2040
  export const prerender = true;
@@ -2017,8 +2072,13 @@ const suggestions = [
2017
2072
  // Every host serves this one page for any missing URL, so a reader who
2018
2073
  // mistyped \`/ar/…\` would get the default locale's message. The other locales'
2019
2074
  // copy rides along, and the script below swaps it in when the URL's first
2020
- // segment names one of them — the message, its language and direction, the
2021
- // tab title, and the home link (to that locale's root).
2075
+ // segment past the site's base names one of them — the message, its language
2076
+ // and direction, the tab title, and the home link (to that locale's root).
2077
+ // Localized routes sit under both bases (\`{deployment.base}/{basePath}/ar/…\`),
2078
+ // so the script strips the two together, trailing slash included.
2079
+ const { basePath } = data.config;
2080
+ const siteRoot = withBase(withBasePath(basePath, "/"));
2081
+ const localeBase = siteRoot.endsWith("/") ? siteRoot : siteRoot + "/";
2022
2082
  const localized = Object.fromEntries(
2023
2083
  (i18n?.locales ?? [])
2024
2084
  .filter((l) => l.code !== i18n?.defaultLocale && data.uiByLocale[l.code])
@@ -2030,7 +2090,7 @@ const localized = Object.fromEntries(
2030
2090
  description: strings.description,
2031
2091
  dir: l.dir ?? "ltr",
2032
2092
  home: strings.home,
2033
- homeHref: withBase("/" + l.code),
2093
+ homeHref: withBase(withBasePath(basePath, "/" + l.code)),
2034
2094
  suggestions: strings.suggestions,
2035
2095
  title: strings.title,
2036
2096
  },
@@ -2059,7 +2119,7 @@ const localizedJson = JSON.stringify(localized).replaceAll("<", "\\\\u003c");
2059
2119
  >
2060
2120
  <div
2061
2121
  class="mx-auto grid w-full max-w-5xl gap-12 px-6 py-20 sm:py-28 md:grid-cols-[3fr_2fr] md:gap-16 lg:gap-24 lg:py-36"
2062
- data-base={withBase("/")}
2122
+ data-base={localeBase}
2063
2123
  data-blume-not-found
2064
2124
  >
2065
2125
  <div class="flex flex-col items-start">
@@ -2379,11 +2439,20 @@ const Example = entry.Component;
2379
2439
  root.dataset.theme = theme;
2380
2440
  root.classList.toggle("dark", theme === "dark");
2381
2441
  };
2382
- const stored = () =>
2383
- localStorage.getItem("blume-theme") ??
2384
- (matchMedia("(prefers-color-scheme: dark)").matches
2385
- ? "dark"
2386
- : "light");
2442
+ // Blocked storage (a sandboxed or privacy-locked frame) throws on
2443
+ // access; it falls through to the OS setting like an unset preference.
2444
+ const stored = () => {
2445
+ let theme = null;
2446
+ try {
2447
+ theme = localStorage.getItem("blume-theme");
2448
+ } catch {}
2449
+ return (
2450
+ theme ??
2451
+ (matchMedia("(prefers-color-scheme: dark)").matches
2452
+ ? "dark"
2453
+ : "light")
2454
+ );
2455
+ };
2387
2456
  try {
2388
2457
  const host = window.parent.document.documentElement;
2389
2458
  apply(host.dataset.theme ?? stored());
@@ -2465,7 +2534,7 @@ var runtimeTsconfigTemplate = () => `${JSON.stringify({
2465
2534
  }, null, 2)}
2466
2535
  `;
2467
2536
 
2468
- export { planComponentSlots, publishRuntimeModules, runtimeDependencies, EJECTED_CONFIG_HEADER, astroConfigTemplate, stagedContentDir, contentConfigTemplate, askEndpointTemplate, askComponentTemplate, searchEndpointTemplate, featuresTemplate, searchClientTemplate, mixedbreadSearchEndpointTemplate, rawMarkdownEndpointTemplate, contentAssetsEndpointTemplate, mcpPageFile, mcpEndpointTemplate, playgroundProxyTemplate, staticJsonEndpointTemplate, rssEndpointTemplate, navFragmentTemplate, ogEndpointTemplate, scalarReferenceTemplate, catchAllPageTemplate, changelogIndexTemplate, notFoundPageTemplate, notFoundMarkdownTemplate, notFoundJsonTemplate, apiPagesIndexTemplate, apiPageTemplate, apiNavigationTemplate, apiSearchTemplate, apiNotFoundTemplate, exampleSlug, exampleWrapperTemplate, examplesRouteBase, exampleMapTemplate, examplesPageTemplate, runtimePackageTemplate, runtimeTsconfigTemplate };
2537
+ export { deployOutputDir, deployStaticDir, surfaceAdapterOutput, planComponentSlots, publishRuntimeModules, runtimeDependencies, EJECTED_CONFIG_HEADER, astroConfigTemplate, stagedContentDir, contentConfigTemplate, askEndpointTemplate, askComponentTemplate, searchEndpointTemplate, featuresTemplate, searchClientTemplate, mixedbreadSearchEndpointTemplate, rawMarkdownEndpointTemplate, contentAssetsEndpointTemplate, mcpPageFile, mcpEndpointTemplate, playgroundProxyTemplate, staticJsonEndpointTemplate, rssEndpointTemplate, navFragmentTemplate, ogEndpointTemplate, scalarReferenceTemplate, catchAllPageTemplate, changelogIndexTemplate, notFoundPageTemplate, notFoundMarkdownTemplate, notFoundJsonTemplate, apiPagesIndexTemplate, apiPageTemplate, apiNavigationTemplate, apiSearchTemplate, apiNotFoundTemplate, exampleSlug, exampleWrapperTemplate, examplesRouteBase, exampleMapTemplate, examplesPageTemplate, runtimePackageTemplate, runtimeTsconfigTemplate };
2469
2538
 
2470
- //# debugId=9E2BF1A2CC0BBFF264756E2164756E21
2471
- //# sourceMappingURL=chunk-mnqj32sj.js.map
2539
+ //# debugId=941D4E587200F86C64756E2164756E21
2540
+ //# sourceMappingURL=chunk-hr8ne106.js.map