blume 1.7.3 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (690) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +245 -0
  3. package/README.md +34 -21
  4. package/dist/cli/{chunk-vacwm2hv.js → chunk-27g6wdth.js} +2 -2
  5. package/dist/cli/{chunk-ps4m1xh4.js → chunk-2hn4b8z7.js} +513 -550
  6. package/dist/cli/chunk-2hn4b8z7.js.map +12 -0
  7. package/dist/cli/chunk-5shv93fd.js +39 -0
  8. package/dist/cli/chunk-5shv93fd.js.map +10 -0
  9. package/dist/cli/chunk-6crbhc3x.js +361 -0
  10. package/dist/cli/chunk-6crbhc3x.js.map +14 -0
  11. package/dist/cli/{chunk-8cjtbafj.js → chunk-6hsn950k.js} +109 -383
  12. package/dist/cli/chunk-6hsn950k.js.map +10 -0
  13. package/dist/cli/chunk-6vm74dry.js +148 -0
  14. package/dist/cli/chunk-6vm74dry.js.map +10 -0
  15. package/dist/cli/{chunk-yg63d42r.js → chunk-79jhk4py.js} +87 -58
  16. package/dist/cli/chunk-79jhk4py.js.map +35 -0
  17. package/dist/cli/chunk-82bbrxdn.js +51 -0
  18. package/dist/cli/chunk-82bbrxdn.js.map +10 -0
  19. package/dist/cli/chunk-abh8yjkn.js +31 -0
  20. package/dist/cli/chunk-abh8yjkn.js.map +10 -0
  21. package/dist/cli/chunk-ah61y8py.js +75 -0
  22. package/dist/cli/chunk-ah61y8py.js.map +11 -0
  23. package/dist/cli/{chunk-dwgcp5sm.js → chunk-ce574jw2.js} +1 -1
  24. package/dist/cli/chunk-ch6g3ar0.js +102 -0
  25. package/dist/cli/chunk-ch6g3ar0.js.map +10 -0
  26. package/dist/cli/chunk-dh8cwk36.js +279 -0
  27. package/dist/cli/chunk-dh8cwk36.js.map +10 -0
  28. package/dist/cli/{chunk-rqy0s5wh.js → chunk-epjnccmv.js} +17 -16
  29. package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-epjnccmv.js.map} +3 -3
  30. package/dist/cli/chunk-f2z5v128.js +97 -0
  31. package/dist/cli/chunk-f2z5v128.js.map +10 -0
  32. package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
  33. package/dist/cli/chunk-fa25z98p.js.map +11 -0
  34. package/dist/cli/{chunk-1jefwnfs.js → chunk-fs23ddbb.js} +1076 -2592
  35. package/dist/cli/chunk-fs23ddbb.js.map +35 -0
  36. package/dist/cli/{chunk-e7f42gdj.js → chunk-fxypxtvm.js} +2 -2
  37. package/dist/cli/{chunk-bvwwhd84.js → chunk-fz5wtpmh.js} +15 -15
  38. package/dist/cli/{chunk-bvwwhd84.js.map → chunk-fz5wtpmh.js.map} +1 -1
  39. package/dist/cli/chunk-hdpx1tax.js +91 -0
  40. package/dist/cli/chunk-hdpx1tax.js.map +10 -0
  41. package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
  42. package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
  43. package/dist/cli/{chunk-ahnw3kxw.js → chunk-jwyddg7y.js} +27 -22
  44. package/dist/cli/chunk-jwyddg7y.js.map +15 -0
  45. package/dist/cli/{chunk-cjtn640a.js → chunk-kdp5q7ke.js} +43 -20
  46. package/dist/cli/chunk-kdp5q7ke.js.map +10 -0
  47. package/dist/cli/{chunk-5g0w1e2c.js → chunk-kpf8rrjc.js} +28 -16
  48. package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-kpf8rrjc.js.map} +4 -4
  49. package/dist/cli/chunk-m3vmjgmq.js +133 -0
  50. package/dist/cli/chunk-m3vmjgmq.js.map +10 -0
  51. package/dist/cli/{chunk-b27xqwn9.js → chunk-mb2919y2.js} +9 -5
  52. package/dist/cli/chunk-mb2919y2.js.map +10 -0
  53. package/dist/cli/{chunk-5qk08vmp.js → chunk-q5163e60.js} +133 -54
  54. package/dist/cli/chunk-q5163e60.js.map +11 -0
  55. package/dist/cli/chunk-qkqwkpte.js +12437 -0
  56. package/dist/cli/chunk-qkqwkpte.js.map +182 -0
  57. package/dist/cli/{chunk-4x36ddpw.js → chunk-qs4q5p4e.js} +81 -87
  58. package/dist/cli/chunk-qs4q5p4e.js.map +10 -0
  59. package/dist/cli/{chunk-0xjyb285.js → chunk-qwsrynx5.js} +15 -5
  60. package/dist/cli/{chunk-0xjyb285.js.map → chunk-qwsrynx5.js.map} +4 -4
  61. package/dist/cli/chunk-s1p84fyh.js +261 -0
  62. package/dist/cli/chunk-s1p84fyh.js.map +10 -0
  63. package/dist/cli/chunk-s6jhgk0q.js +176 -0
  64. package/dist/cli/chunk-s6jhgk0q.js.map +11 -0
  65. package/dist/cli/chunk-vtk4a6dg.js +374 -0
  66. package/dist/cli/chunk-vtk4a6dg.js.map +10 -0
  67. package/dist/cli/{chunk-k79xp7av.js → chunk-wgm7m9qk.js} +230 -700
  68. package/dist/cli/chunk-wgm7m9qk.js.map +36 -0
  69. package/dist/cli/chunk-wm7js3j9.js +145 -0
  70. package/dist/cli/chunk-wm7js3j9.js.map +11 -0
  71. package/dist/cli/chunk-yt5n7ppj.js +79 -0
  72. package/dist/cli/chunk-yt5n7ppj.js.map +10 -0
  73. package/dist/cli/{chunk-3r45185y.js → chunk-yw7dm696.js} +9 -11
  74. package/dist/cli/{chunk-3r45185y.js.map → chunk-yw7dm696.js.map} +3 -3
  75. package/dist/cli/{chunk-nn13znc2.js → chunk-zxcczpyx.js} +1 -1
  76. package/dist/cli/chunk-zxh4d9vy.js +122 -0
  77. package/dist/cli/chunk-zxh4d9vy.js.map +11 -0
  78. package/dist/cli/index.js +214 -57
  79. package/dist/cli/index.js.map +8 -7
  80. package/dist/types/ai/agent-readability.d.ts +52 -0
  81. package/dist/types/ai/ai-catalog.d.ts +42 -0
  82. package/dist/types/ai/api/paths.d.ts +17 -0
  83. package/dist/types/ai/api-catalog.d.ts +18 -0
  84. package/dist/types/ai/ask-context.d.ts +7 -7
  85. package/dist/types/ai/ask.d.ts +368 -0
  86. package/dist/types/ai/changelog-markdown.d.ts +2 -0
  87. package/dist/types/ai/component-markdown.d.ts +2 -2
  88. package/dist/types/ai/index.d.ts +24 -0
  89. package/dist/types/ai/link-headers.d.ts +24 -0
  90. package/dist/types/ai/llms.d.ts +25 -0
  91. package/dist/types/ai/markdown.d.ts +45 -0
  92. package/dist/types/ai/mcp/discovery.d.ts +68 -0
  93. package/dist/types/ai/mcp/tools.d.ts +16 -0
  94. package/dist/types/ai/openapi-components.d.ts +43 -0
  95. package/dist/types/ai/relative-links.d.ts +26 -0
  96. package/dist/types/ai/serializers.d.ts +15 -0
  97. package/dist/types/ai/skills.d.ts +42 -0
  98. package/dist/types/ai/tar.d.ts +25 -0
  99. package/dist/types/ai/visibility.d.ts +17 -0
  100. package/dist/types/ai/web-bot-auth.d.ts +16 -0
  101. package/dist/types/analytics/adobe.d.ts +35 -0
  102. package/dist/types/analytics/amplitude.d.ts +50 -0
  103. package/dist/types/analytics/clarity.d.ts +31 -0
  104. package/dist/types/analytics/clearbit.d.ts +29 -0
  105. package/dist/types/analytics/cloudflare.d.ts +41 -0
  106. package/dist/types/analytics/fathom.d.ts +41 -0
  107. package/dist/types/analytics/google-analytics.d.ts +44 -0
  108. package/dist/types/analytics/google-tag-manager.d.ts +40 -0
  109. package/dist/types/analytics/head.d.ts +30 -0
  110. package/dist/types/analytics/heap.d.ts +40 -0
  111. package/dist/types/analytics/hightouch.d.ts +44 -0
  112. package/dist/types/analytics/hotjar.d.ts +33 -0
  113. package/dist/types/analytics/index.d.ts +61 -0
  114. package/dist/types/analytics/inline.d.ts +17 -0
  115. package/dist/types/analytics/logrocket.d.ts +44 -0
  116. package/dist/types/analytics/mixpanel.d.ts +67 -0
  117. package/dist/types/analytics/pirsch.d.ts +42 -0
  118. package/dist/types/analytics/plausible.d.ts +56 -0
  119. package/dist/types/analytics/posthog.d.ts +45 -0
  120. package/dist/types/analytics/schema.d.ts +320 -0
  121. package/dist/types/analytics/script.d.ts +46 -0
  122. package/dist/types/analytics/segment.d.ts +50 -0
  123. package/dist/types/analytics/vercel.d.ts +48 -0
  124. package/dist/types/astro/integration.d.ts +76 -0
  125. package/dist/types/astro/markdown-negotiation.d.ts +23 -0
  126. package/dist/types/astro/module-types.d.ts +14 -0
  127. package/dist/types/astro/pages.d.ts +44 -0
  128. package/dist/types/cli/env.d.ts +12 -0
  129. package/dist/types/cli/init/scaffold.d.ts +154 -0
  130. package/dist/types/components/layout/nav-utils.d.ts +11 -0
  131. package/dist/types/core/adapter.d.ts +47 -0
  132. package/dist/types/core/api-name.d.ts +7 -0
  133. package/dist/types/core/changelog-index.d.ts +13 -0
  134. package/dist/types/core/config-input.d.ts +197 -526
  135. package/dist/types/core/config.d.ts +61 -35
  136. package/dist/types/core/content-assets.d.ts +76 -0
  137. package/dist/types/core/custom-pages.d.ts +33 -0
  138. package/dist/types/core/data.d.ts +30 -15
  139. package/dist/types/core/define-components.d.ts +12 -9
  140. package/dist/types/core/deployment-env.d.ts +6 -11
  141. package/dist/types/core/frontmatter.d.ts +10 -0
  142. package/dist/types/core/graph.d.ts +18 -0
  143. package/dist/types/core/heading-markers.d.ts +54 -0
  144. package/dist/types/core/i18n-ui.d.ts +12 -10
  145. package/dist/types/core/i18n.d.ts +87 -0
  146. package/dist/types/core/includes.d.ts +138 -0
  147. package/dist/types/core/last-modified.d.ts +47 -0
  148. package/dist/types/core/links.d.ts +95 -0
  149. package/dist/types/core/locale-links.d.ts +60 -0
  150. package/dist/types/core/manifest.d.ts +17 -0
  151. package/dist/types/core/meta.d.ts +38 -0
  152. package/dist/types/core/nav-diagnostics.d.ts +26 -0
  153. package/dist/types/core/navigation.d.ts +6 -0
  154. package/dist/types/core/node-require.d.ts +19 -0
  155. package/dist/types/core/package-json.d.ts +13 -0
  156. package/dist/types/core/probe.d.ts +42 -0
  157. package/dist/types/core/project-graph.d.ts +51 -0
  158. package/dist/types/core/project.d.ts +2 -0
  159. package/dist/types/core/safe-href.d.ts +2 -0
  160. package/dist/types/core/safe-links.d.ts +26 -0
  161. package/dist/types/core/schema.d.ts +2284 -454
  162. package/dist/types/core/site-url.d.ts +16 -0
  163. package/dist/types/core/sources/assets.d.ts +36 -0
  164. package/dist/types/core/sources/cache.d.ts +37 -0
  165. package/dist/types/core/sources/collection.d.ts +28 -0
  166. package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
  167. package/dist/types/core/sources/contentful.d.ts +40 -0
  168. package/dist/types/core/sources/filesystem.d.ts +24 -0
  169. package/dist/types/core/sources/github-releases.d.ts +31 -0
  170. package/dist/types/core/sources/json.d.ts +30 -0
  171. package/dist/types/core/sources/lexical.d.ts +19 -0
  172. package/dist/types/core/sources/lower.d.ts +75 -0
  173. package/dist/types/core/sources/mdx-remote.d.ts +28 -0
  174. package/dist/types/core/sources/normalize.d.ts +147 -0
  175. package/dist/types/core/sources/notion.d.ts +131 -0
  176. package/dist/types/core/sources/obsidian.d.ts +46 -0
  177. package/dist/types/core/sources/payload.d.ts +39 -0
  178. package/dist/types/core/sources/portable-text.d.ts +42 -0
  179. package/dist/types/core/sources/read.d.ts +23 -0
  180. package/dist/types/core/sources/remote.d.ts +74 -0
  181. package/dist/types/core/sources/resolve.d.ts +19 -0
  182. package/dist/types/core/sources/sanity.d.ts +43 -0
  183. package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
  184. package/dist/types/core/sources/strapi.d.ts +33 -0
  185. package/dist/types/core/sources/types.d.ts +7 -0
  186. package/dist/types/core/sources/watch.d.ts +45 -0
  187. package/dist/types/core/text-width.d.ts +11 -0
  188. package/dist/types/core/types.d.ts +15 -1
  189. package/dist/types/core/unrecognized-keys.d.ts +7 -0
  190. package/dist/types/core/versions.d.ts +72 -0
  191. package/dist/types/core/yaml.d.ts +9 -0
  192. package/dist/types/deploy/adapter-output.d.ts +45 -0
  193. package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
  194. package/dist/types/deploy/adapters/index.d.ts +29 -0
  195. package/dist/types/deploy/adapters/netlify.d.ts +37 -0
  196. package/dist/types/deploy/adapters/node.d.ts +37 -0
  197. package/dist/types/deploy/adapters/registry.d.ts +133 -0
  198. package/dist/types/deploy/adapters/types.d.ts +71 -0
  199. package/dist/types/deploy/adapters/vercel.d.ts +38 -0
  200. package/dist/types/deploy/artifacts.d.ts +65 -0
  201. package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
  202. package/dist/types/deploy/function-bundle.d.ts +80 -0
  203. package/dist/types/deploy/headers.d.ts +50 -0
  204. package/dist/types/deploy/node-headers.d.ts +42 -0
  205. package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
  206. package/dist/types/deploy/platforms/index.d.ts +18 -0
  207. package/dist/types/deploy/platforms/netlify.d.ts +13 -0
  208. package/dist/types/deploy/platforms/node.d.ts +11 -0
  209. package/dist/types/deploy/platforms/paths.d.ts +27 -0
  210. package/dist/types/deploy/platforms/static.d.ts +10 -0
  211. package/dist/types/deploy/platforms/types.d.ts +104 -0
  212. package/dist/types/deploy/platforms/vercel.d.ts +32 -0
  213. package/dist/types/deploy/redirects.d.ts +53 -0
  214. package/dist/types/deploy/robots.d.ts +8 -0
  215. package/dist/types/deploy/rss.d.ts +31 -0
  216. package/dist/types/deploy/sitemap.d.ts +21 -0
  217. package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
  218. package/dist/types/markdown/code-title.d.ts +32 -0
  219. package/dist/types/markdown/fence-meta.d.ts +23 -0
  220. package/dist/types/markdown/themes.d.ts +3 -3
  221. package/dist/types/openapi/asyncapi.d.ts +129 -0
  222. package/dist/types/openapi/graphql-build.d.ts +8 -0
  223. package/dist/types/openapi/graphql.d.ts +122 -0
  224. package/dist/types/openapi/model.d.ts +158 -0
  225. package/dist/types/openapi/parse.d.ts +57 -0
  226. package/dist/types/openapi/references.d.ts +37 -25
  227. package/dist/types/openapi/render-mdx.d.ts +33 -0
  228. package/dist/types/openapi/sentence.d.ts +7 -0
  229. package/dist/types/openapi/signature.d.ts +10 -0
  230. package/dist/types/openapi/source.d.ts +22 -0
  231. package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
  232. package/dist/types/reference/asyncapi.d.ts +166 -0
  233. package/dist/types/reference/graphql.d.ts +181 -0
  234. package/dist/types/reference/index.d.ts +32 -0
  235. package/dist/types/reference/openapi.d.ts +165 -0
  236. package/dist/types/reference/options.d.ts +157 -0
  237. package/dist/types/reference/scalar.d.ts +136 -0
  238. package/dist/types/reference/schema.d.ts +630 -0
  239. package/dist/types/search/adapters/algolia.d.ts +32 -0
  240. package/dist/types/search/adapters/flexsearch.d.ts +12 -0
  241. package/dist/types/search/adapters/index.d.ts +31 -0
  242. package/dist/types/search/adapters/mixedbread.d.ts +22 -0
  243. package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
  244. package/dist/types/search/adapters/orama.d.ts +13 -0
  245. package/dist/types/search/adapters/pagefind.d.ts +12 -0
  246. package/dist/types/search/adapters/registry.d.ts +228 -0
  247. package/dist/types/search/adapters/types.d.ts +34 -0
  248. package/dist/types/search/adapters/typesense.d.ts +42 -0
  249. package/dist/types/search/build.d.ts +23 -0
  250. package/dist/types/search/documents.d.ts +90 -0
  251. package/dist/types/search/facets.d.ts +3 -0
  252. package/dist/types/search/orama-index.d.ts +1 -1
  253. package/dist/types/search/sync/algolia.d.ts +14 -0
  254. package/dist/types/search/sync/index.d.ts +14 -0
  255. package/dist/types/search/sync/orama-cloud.d.ts +10 -0
  256. package/dist/types/search/sync/typesense.d.ts +14 -0
  257. package/dist/types/sources/contentful.d.ts +68 -0
  258. package/dist/types/sources/custom.d.ts +20 -0
  259. package/dist/types/sources/filesystem.d.ts +42 -0
  260. package/dist/types/sources/github-releases.d.ts +46 -0
  261. package/dist/types/sources/index.d.ts +48 -0
  262. package/dist/types/sources/mdx-remote.d.ts +63 -0
  263. package/dist/types/sources/notion.d.ts +65 -0
  264. package/dist/types/sources/obsidian.d.ts +34 -0
  265. package/dist/types/sources/payload.d.ts +68 -0
  266. package/dist/types/sources/registry.d.ts +1414 -0
  267. package/dist/types/sources/sanity.d.ts +69 -0
  268. package/dist/types/sources/shared.d.ts +46 -0
  269. package/dist/types/sources/strapi.d.ts +66 -0
  270. package/dist/types/theme/icon-kind.d.ts +11 -0
  271. package/dist/types/theme/icons.d.ts +20 -0
  272. package/docs/01-quickstart.mdx +18 -18
  273. package/docs/02-deployment.mdx +52 -28
  274. package/docs/03-upgrading.mdx +364 -0
  275. package/docs/04-migrating.mdx +58 -0
  276. package/docs/08-faq.mdx +5 -5
  277. package/docs/advanced/blog.mdx +13 -6
  278. package/docs/advanced/changelog.mdx +23 -35
  279. package/docs/advanced/custom-pages.mdx +22 -10
  280. package/docs/advanced/meta.ts +1 -8
  281. package/docs/advanced/skills.mdx +8 -0
  282. package/docs/cli/audit.mdx +646 -0
  283. package/docs/cli/doctor.mdx +29 -0
  284. package/docs/{reference/eval.mdx → cli/evals.mdx} +12 -11
  285. package/docs/cli/index.mdx +105 -0
  286. package/docs/cli/meta.ts +7 -0
  287. package/docs/{reference → cli}/translate.mdx +9 -9
  288. package/docs/cli/validate.mdx +41 -0
  289. package/docs/cli/version.mdx +40 -0
  290. package/docs/configuration/analytics.mdx +350 -59
  291. package/docs/configuration/assistant.mdx +357 -0
  292. package/docs/configuration/customization.mdx +16 -10
  293. package/docs/configuration/index.mdx +50 -31
  294. package/docs/configuration/meta.ts +1 -1
  295. package/docs/configuration/search.mdx +76 -55
  296. package/docs/configuration/theming.mdx +24 -15
  297. package/docs/content/components.mdx +21 -5
  298. package/docs/{reference → content}/frontmatter.mdx +35 -1
  299. package/docs/content/i18n.mdx +9 -7
  300. package/docs/content/includes.mdx +2 -4
  301. package/docs/content/index.mdx +1 -1
  302. package/docs/content/islands.mdx +11 -6
  303. package/docs/content/meta.mdx +1 -1
  304. package/docs/content/meta.ts +1 -0
  305. package/docs/content/navigation.mdx +9 -7
  306. package/docs/content/sources.mdx +145 -50
  307. package/docs/content/syntax.mdx +16 -12
  308. package/docs/content/versioning.mdx +3 -3
  309. package/docs/discoverability/agent-discovery.mdx +12 -12
  310. package/docs/discoverability/index.mdx +4 -4
  311. package/docs/discoverability/json-api.mdx +4 -4
  312. package/docs/discoverability/llms-txt.mdx +6 -6
  313. package/docs/discoverability/markdown.mdx +4 -4
  314. package/docs/discoverability/mcp.mdx +11 -11
  315. package/docs/discoverability/sitemap-and-robots.mdx +3 -3
  316. package/docs/index.mdx +4 -4
  317. package/docs/references/asyncapi.mdx +59 -0
  318. package/docs/{advanced → references}/graphql.mdx +45 -32
  319. package/docs/{reference → references}/meta.ts +2 -2
  320. package/docs/references/openapi.mdx +171 -0
  321. package/docs/references/scalar.mdx +64 -0
  322. package/package.json +42 -8
  323. package/skills/blume/SKILL.md +23 -10
  324. package/skills/blume-migrate/SKILL.md +22 -21
  325. package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
  326. package/skills/blume-migrate/references/docusaurus.md +5 -4
  327. package/skills/blume-migrate/references/fumadocs.md +4 -4
  328. package/skills/blume-migrate/references/mintlify.md +23 -8
  329. package/skills/blume-migrate/references/monorepo.md +6 -6
  330. package/skills/blume-migrate/references/starlight.md +4 -4
  331. package/src/ai/agent-readability.ts +25 -26
  332. package/src/ai/ai-catalog.ts +50 -32
  333. package/src/ai/api/handlers.ts +46 -11
  334. package/src/ai/api/paths.ts +1 -1
  335. package/src/ai/api-catalog.ts +8 -8
  336. package/src/ai/ask-context.ts +7 -7
  337. package/src/ai/ask-data.ts +3 -3
  338. package/src/ai/ask.ts +637 -100
  339. package/src/ai/changelog-markdown.ts +91 -0
  340. package/src/ai/component-markdown.ts +328 -12
  341. package/src/ai/cors.ts +3 -3
  342. package/src/ai/index.ts +45 -0
  343. package/src/ai/link-headers.ts +7 -6
  344. package/src/ai/llms.ts +20 -15
  345. package/src/ai/markdown.ts +35 -5
  346. package/src/ai/mcp/data.ts +9 -5
  347. package/src/ai/openapi-components.ts +5 -2
  348. package/src/ai/relative-links.ts +170 -0
  349. package/src/ai/serializers.ts +3 -3
  350. package/src/ai/skills.ts +1 -1
  351. package/src/ai/visibility.ts +1 -1
  352. package/src/ai/web-bot-auth.ts +2 -2
  353. package/src/analytics/adobe.ts +46 -0
  354. package/src/analytics/amplitude.ts +79 -0
  355. package/src/analytics/clarity.ts +46 -0
  356. package/src/analytics/clearbit.ts +47 -0
  357. package/src/analytics/cloudflare.ts +67 -0
  358. package/src/analytics/fathom.ts +64 -0
  359. package/src/analytics/google-analytics.ts +84 -0
  360. package/src/analytics/google-tag-manager.ts +61 -0
  361. package/src/analytics/head.ts +130 -0
  362. package/src/analytics/heap.ts +65 -0
  363. package/src/analytics/hightouch.ts +77 -0
  364. package/src/analytics/hotjar.ts +47 -0
  365. package/src/analytics/index.ts +71 -0
  366. package/src/analytics/inline.ts +21 -0
  367. package/src/analytics/logrocket.ts +71 -0
  368. package/src/analytics/mixpanel.ts +92 -0
  369. package/src/analytics/pirsch.ts +66 -0
  370. package/src/analytics/plausible.ts +83 -0
  371. package/src/analytics/posthog.ts +78 -0
  372. package/src/analytics/schema.ts +60 -0
  373. package/src/analytics/script.ts +60 -0
  374. package/src/analytics/segment.ts +85 -0
  375. package/src/analytics/vercel.ts +50 -0
  376. package/src/astro/adapter-root.ts +7 -9
  377. package/src/astro/component-slots.ts +131 -91
  378. package/src/astro/generate.ts +129 -361
  379. package/src/astro/integration.ts +2 -6
  380. package/src/astro/module-types.ts +1 -1
  381. package/src/astro/pages.ts +13 -101
  382. package/src/astro/render-deps.ts +379 -0
  383. package/src/astro/runtime-deps.ts +201 -0
  384. package/src/astro/templates.ts +575 -562
  385. package/src/audit/agent.ts +24 -0
  386. package/src/audit/catalog.ts +2 -2
  387. package/src/audit/checks/assets.ts +2 -2
  388. package/src/audit/checks/dns-aid.ts +1 -1
  389. package/src/audit/checks/duplicates.ts +3 -1
  390. package/src/audit/checks/i18n.ts +1 -1
  391. package/src/audit/checks/indexability.ts +7 -7
  392. package/src/audit/checks/links.ts +2 -2
  393. package/src/audit/checks/llms.ts +6 -6
  394. package/src/audit/checks/network.ts +3 -3
  395. package/src/audit/checks/og-image.ts +2 -2
  396. package/src/audit/checks/robots.ts +1 -1
  397. package/src/audit/checks/sitemap.ts +2 -2
  398. package/src/audit/checks/social.ts +1 -1
  399. package/src/audit/run.ts +4 -3
  400. package/src/audit/terms.ts +31 -0
  401. package/src/audit/url.ts +13 -13
  402. package/src/blume-modules.d.ts +2 -2
  403. package/src/cli/command-meta.ts +10 -0
  404. package/src/cli/commands/audit.ts +40 -21
  405. package/src/cli/commands/build.ts +71 -316
  406. package/src/cli/commands/check.ts +1 -0
  407. package/src/cli/commands/dev.ts +40 -1
  408. package/src/cli/commands/doctor.ts +92 -14
  409. package/src/cli/commands/eject.ts +44 -7
  410. package/src/cli/commands/eval.ts +5 -5
  411. package/src/cli/commands/init.ts +161 -41
  412. package/src/cli/commands/migrate.ts +121 -0
  413. package/src/cli/commands/preview.ts +7 -1
  414. package/src/cli/commands/translate.ts +5 -5
  415. package/src/cli/commands/upgrade.ts +141 -0
  416. package/src/cli/commands/version.ts +57 -44
  417. package/src/cli/eject-scripts.ts +121 -6
  418. package/src/cli/index.ts +11 -1
  419. package/src/cli/init/install.ts +70 -0
  420. package/src/cli/init/questions.ts +7 -0
  421. package/src/cli/init/scaffold.ts +459 -75
  422. package/src/cli/lazy-command.ts +37 -1
  423. package/src/cli/prepare.ts +40 -6
  424. package/src/cli/required-secrets.ts +39 -12
  425. package/src/cli/unknown-flags.ts +266 -0
  426. package/src/cli/yarn-pnp.ts +52 -0
  427. package/src/components/content/AccordionItem.astro +7 -1
  428. package/src/components/content/Card.astro +4 -3
  429. package/src/components/content/ColorItem.astro +22 -4
  430. package/src/components/content/GithubInfo.astro +2 -2
  431. package/src/components/content/Prompt.astro +25 -25
  432. package/src/components/content/Tabs.astro +3 -1
  433. package/src/components/content/Tile.astro +2 -3
  434. package/src/components/content/Tooltip.astro +57 -9
  435. package/src/components/content/content-strings.ts +34 -0
  436. package/src/components/content/diff.ts +1 -1
  437. package/src/components/content/mermaid-element.ts +13 -2
  438. package/src/components/content/prompt-markdown.ts +292 -0
  439. package/src/components/content/tooltip-id.ts +41 -0
  440. package/src/components/copy-feedback.ts +1 -1
  441. package/src/components/islands/{AskAI.astro → Assistant.astro} +10 -10
  442. package/src/components/islands/{ask-ai.tsx → assistant.tsx} +23 -23
  443. package/src/components/islands/hooks.ts +36 -11
  444. package/src/components/layout/Analytics.astro +21 -79
  445. package/src/components/layout/Banner.astro +3 -1
  446. package/src/components/layout/DiscoveryLinks.astro +69 -0
  447. package/src/components/layout/Header.astro +93 -30
  448. package/src/components/layout/LanguageSwitcher.astro +4 -1
  449. package/src/components/layout/Logo.astro +23 -2
  450. package/src/components/layout/NavSelector.astro +13 -2
  451. package/src/components/layout/NavTree.astro +12 -3
  452. package/src/components/layout/NavTreeScript.astro +17 -3
  453. package/src/components/layout/PageActions.astro +3 -3
  454. package/src/components/layout/PageFeedback.astro +11 -1
  455. package/src/components/layout/PageLayout.astro +58 -11
  456. package/src/components/layout/Pagination.astro +7 -7
  457. package/src/components/layout/ReferenceLayout.astro +22 -13
  458. package/src/components/layout/RootLayout.astro +75 -72
  459. package/src/components/layout/Search.astro +43 -19
  460. package/src/components/layout/WebMcp.astro +1 -1
  461. package/src/components/layout/analytics-client.ts +73 -16
  462. package/src/components/layout/drawer-inert.ts +113 -15
  463. package/src/components/layout/dropdown-clamp.ts +105 -0
  464. package/src/components/layout/head-scripts.ts +15 -6
  465. package/src/components/layout/nav-utils.ts +17 -0
  466. package/src/components/layout/search/algolia.ts +8 -8
  467. package/src/components/layout/search/orama-cloud.ts +9 -7
  468. package/src/components/layout/search/typesense.ts +11 -17
  469. package/src/components/openapi/MessageComposer.astro +2 -2
  470. package/src/components/openapi/Playground.astro +2 -2
  471. package/src/components/openapi/description.ts +2 -2
  472. package/src/components/openapi/playground-client.ts +79 -10
  473. package/src/core/changelog-index.ts +24 -0
  474. package/src/core/code-fences.ts +1 -1
  475. package/src/core/component-overrides.ts +399 -154
  476. package/src/core/config-input.ts +201 -566
  477. package/src/core/config.ts +131 -42
  478. package/src/core/custom-pages.ts +105 -0
  479. package/src/core/data.ts +34 -15
  480. package/src/core/define-components.ts +12 -9
  481. package/src/core/deployment-env.ts +18 -74
  482. package/src/core/diagnostics.ts +14 -7
  483. package/src/core/graph.ts +69 -25
  484. package/src/core/i18n-ui.ts +41 -11
  485. package/src/core/i18n.ts +17 -0
  486. package/src/core/includes.ts +156 -38
  487. package/src/core/last-modified.ts +6 -11
  488. package/src/core/links.ts +166 -2
  489. package/src/core/manifest.ts +10 -3
  490. package/src/core/navigation.ts +115 -16
  491. package/src/core/new-tab.ts +35 -0
  492. package/src/core/node-require.ts +21 -0
  493. package/src/core/project-graph.ts +42 -26
  494. package/src/core/project.ts +9 -4
  495. package/src/core/request-body.ts +61 -0
  496. package/src/core/safe-href.ts +28 -0
  497. package/src/core/safe-links.ts +68 -0
  498. package/src/core/schema.ts +528 -745
  499. package/src/core/server-features.ts +10 -11
  500. package/src/core/sources/assets.ts +47 -11
  501. package/src/core/sources/collection.ts +67 -0
  502. package/src/core/sources/contentful-rich-text.ts +285 -0
  503. package/src/core/sources/contentful.ts +173 -0
  504. package/src/core/sources/github-releases.ts +51 -1
  505. package/src/core/sources/json.ts +71 -0
  506. package/src/core/sources/lexical.ts +195 -0
  507. package/src/core/sources/lower.ts +226 -0
  508. package/src/core/sources/normalize.ts +52 -2
  509. package/src/core/sources/notion.ts +39 -28
  510. package/src/core/sources/payload.ts +135 -0
  511. package/src/core/sources/portable-text.ts +11 -16
  512. package/src/core/sources/remote.ts +226 -0
  513. package/src/core/sources/resolve.ts +104 -166
  514. package/src/core/sources/sanity.ts +16 -49
  515. package/src/core/sources/strapi-blocks.ts +124 -0
  516. package/src/core/sources/strapi.ts +191 -0
  517. package/src/core/sources/types.ts +12 -1
  518. package/src/core/types.ts +15 -1
  519. package/src/core/ui-packs/ar.ts +10 -7
  520. package/src/core/ui-packs/bg.ts +10 -7
  521. package/src/core/ui-packs/bn.ts +10 -7
  522. package/src/core/ui-packs/ca.ts +7 -6
  523. package/src/core/ui-packs/cs.ts +10 -7
  524. package/src/core/ui-packs/da.ts +10 -7
  525. package/src/core/ui-packs/de.ts +10 -7
  526. package/src/core/ui-packs/el.ts +7 -6
  527. package/src/core/ui-packs/es.ts +7 -6
  528. package/src/core/ui-packs/fa.ts +10 -7
  529. package/src/core/ui-packs/fi.ts +10 -7
  530. package/src/core/ui-packs/fr.ts +7 -6
  531. package/src/core/ui-packs/he.ts +10 -7
  532. package/src/core/ui-packs/hi.ts +10 -7
  533. package/src/core/ui-packs/hr.ts +10 -7
  534. package/src/core/ui-packs/hu.ts +10 -7
  535. package/src/core/ui-packs/id.ts +10 -7
  536. package/src/core/ui-packs/it.ts +7 -6
  537. package/src/core/ui-packs/ja.ts +7 -6
  538. package/src/core/ui-packs/ko.ts +7 -6
  539. package/src/core/ui-packs/nl.ts +10 -7
  540. package/src/core/ui-packs/no.ts +10 -7
  541. package/src/core/ui-packs/pl.ts +10 -7
  542. package/src/core/ui-packs/pt-br.ts +7 -6
  543. package/src/core/ui-packs/pt.ts +7 -6
  544. package/src/core/ui-packs/ro.ts +10 -7
  545. package/src/core/ui-packs/ru.ts +10 -7
  546. package/src/core/ui-packs/sk.ts +10 -7
  547. package/src/core/ui-packs/sr.ts +10 -7
  548. package/src/core/ui-packs/sv.ts +10 -7
  549. package/src/core/ui-packs/th.ts +7 -6
  550. package/src/core/ui-packs/tr.ts +10 -7
  551. package/src/core/ui-packs/uk.ts +10 -7
  552. package/src/core/ui-packs/vi.ts +7 -6
  553. package/src/core/ui-packs/zh-tw.ts +7 -6
  554. package/src/core/ui-packs/zh.ts +7 -6
  555. package/src/core/unrecognized-keys.ts +10 -0
  556. package/src/core/version-cut.ts +116 -8
  557. package/src/deploy/adapter-output.ts +57 -97
  558. package/src/deploy/adapters/cloudflare.ts +39 -0
  559. package/src/deploy/adapters/index.ts +41 -0
  560. package/src/deploy/adapters/netlify.ts +34 -0
  561. package/src/deploy/adapters/node.ts +34 -0
  562. package/src/deploy/adapters/registry.ts +127 -0
  563. package/src/deploy/adapters/types.ts +92 -0
  564. package/src/deploy/adapters/vercel.ts +35 -0
  565. package/src/deploy/artifacts.ts +55 -27
  566. package/src/deploy/cloudflare-negotiation.ts +179 -100
  567. package/src/deploy/function-bundle.ts +18 -3
  568. package/src/deploy/headers.ts +124 -23
  569. package/src/deploy/node-headers.ts +198 -0
  570. package/src/deploy/platforms/cloudflare.ts +312 -0
  571. package/src/deploy/platforms/index.ts +67 -0
  572. package/src/deploy/platforms/netlify.ts +52 -0
  573. package/src/deploy/platforms/node.ts +40 -0
  574. package/src/deploy/platforms/paths.ts +42 -0
  575. package/src/deploy/platforms/static.ts +29 -0
  576. package/src/deploy/platforms/types.ts +112 -0
  577. package/src/deploy/platforms/vercel.ts +193 -0
  578. package/src/deploy/redirects.ts +30 -18
  579. package/src/deploy/robots.ts +3 -3
  580. package/src/deploy/rss.ts +2 -2
  581. package/src/deploy/sitemap.ts +2 -2
  582. package/src/deploy/vercel-negotiation.ts +2 -2
  583. package/src/eval/agents.ts +32 -1
  584. package/src/eval/findings.ts +19 -11
  585. package/src/eval/report.ts +10 -2
  586. package/src/markdown/external-links.ts +65 -0
  587. package/src/markdown/include.ts +45 -27
  588. package/src/markdown/index.ts +34 -9
  589. package/src/markdown/inline-code.ts +12 -6
  590. package/src/markdown/relative-links.ts +324 -0
  591. package/src/markdown/themes.ts +3 -3
  592. package/src/migrate/migrate.ts +149 -0
  593. package/src/openapi/parse.ts +64 -16
  594. package/src/openapi/proxy.ts +62 -10
  595. package/src/openapi/references.ts +147 -147
  596. package/src/openapi/render-mdx.ts +32 -10
  597. package/src/openapi/scalar.ts +15 -13
  598. package/src/openapi/sentence.ts +14 -0
  599. package/src/openapi/source.ts +37 -21
  600. package/src/openapi/spec-dependency-error.ts +15 -0
  601. package/src/reference/asyncapi.ts +83 -0
  602. package/src/reference/graphql.ts +89 -0
  603. package/src/reference/index.ts +40 -0
  604. package/src/reference/openapi.ts +83 -0
  605. package/src/reference/options.ts +201 -0
  606. package/src/reference/scalar.ts +136 -0
  607. package/src/reference/schema.ts +88 -0
  608. package/src/registry/eject.ts +109 -53
  609. package/src/search/adapters/algolia.ts +46 -0
  610. package/src/search/adapters/flexsearch.ts +29 -0
  611. package/src/search/adapters/index.ts +39 -0
  612. package/src/search/adapters/mixedbread.ts +39 -0
  613. package/src/search/adapters/orama-cloud.ts +51 -0
  614. package/src/search/adapters/orama.ts +24 -0
  615. package/src/search/adapters/pagefind.ts +27 -0
  616. package/src/search/adapters/registry.ts +131 -0
  617. package/src/search/adapters/types.ts +46 -0
  618. package/src/search/adapters/typesense.ts +57 -0
  619. package/src/search/build.ts +8 -4
  620. package/src/search/documents.ts +8 -2
  621. package/src/search/orama-index.ts +1 -1
  622. package/src/search/sync/algolia.ts +12 -11
  623. package/src/search/sync/index.ts +35 -20
  624. package/src/search/sync/orama-cloud.ts +12 -9
  625. package/src/search/sync/typesense.ts +15 -13
  626. package/src/sources/contentful.ts +63 -0
  627. package/src/sources/custom.ts +38 -0
  628. package/src/sources/filesystem.ts +51 -0
  629. package/src/sources/github-releases.ts +52 -0
  630. package/src/sources/index.ts +60 -0
  631. package/src/sources/mdx-remote.ts +76 -0
  632. package/src/sources/notion.ts +63 -0
  633. package/src/sources/obsidian.ts +38 -0
  634. package/src/sources/payload.ts +60 -0
  635. package/src/sources/registry.ts +182 -0
  636. package/src/sources/sanity.ts +66 -0
  637. package/src/sources/shared.ts +52 -0
  638. package/src/sources/strapi.ts +58 -0
  639. package/src/theme/entry.ts +24 -2
  640. package/src/translate/report.ts +40 -7
  641. package/src/upgrade/upgrade.ts +499 -0
  642. package/dist/cli/chunk-0qymqwzz.js +0 -164
  643. package/dist/cli/chunk-0qymqwzz.js.map +0 -15
  644. package/dist/cli/chunk-1jefwnfs.js.map +0 -48
  645. package/dist/cli/chunk-2mzebbbz.js +0 -69
  646. package/dist/cli/chunk-2z47ypj8.js.map +0 -11
  647. package/dist/cli/chunk-4x36ddpw.js.map +0 -11
  648. package/dist/cli/chunk-5093q3n7.js +0 -68
  649. package/dist/cli/chunk-5093q3n7.js.map +0 -10
  650. package/dist/cli/chunk-5qk08vmp.js.map +0 -11
  651. package/dist/cli/chunk-7s8hm3b6.js +0 -5347
  652. package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
  653. package/dist/cli/chunk-8cjtbafj.js.map +0 -13
  654. package/dist/cli/chunk-97r59kpr.js +0 -381
  655. package/dist/cli/chunk-97r59kpr.js.map +0 -12
  656. package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
  657. package/dist/cli/chunk-b27xqwn9.js.map +0 -10
  658. package/dist/cli/chunk-bf6bt1xt.js +0 -185
  659. package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
  660. package/dist/cli/chunk-cjtn640a.js.map +0 -10
  661. package/dist/cli/chunk-ct47dqpx.js.map +0 -11
  662. package/dist/cli/chunk-esphfr8p.js +0 -107
  663. package/dist/cli/chunk-esphfr8p.js.map +0 -11
  664. package/dist/cli/chunk-ex56aa81.js +0 -1016
  665. package/dist/cli/chunk-ex56aa81.js.map +0 -13
  666. package/dist/cli/chunk-garjf5z9.js +0 -30
  667. package/dist/cli/chunk-garjf5z9.js.map +0 -10
  668. package/dist/cli/chunk-js7saxwm.js +0 -1045
  669. package/dist/cli/chunk-js7saxwm.js.map +0 -22
  670. package/dist/cli/chunk-k79xp7av.js.map +0 -39
  671. package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
  672. package/dist/cli/chunk-q4rae3bg.js +0 -60
  673. package/dist/cli/chunk-q4rae3bg.js.map +0 -10
  674. package/dist/cli/chunk-rz9jmfhz.js +0 -108
  675. package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
  676. package/dist/cli/chunk-vh9w1sgp.js +0 -73
  677. package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
  678. package/dist/cli/chunk-vrfp10qk.js +0 -81
  679. package/dist/cli/chunk-vrfp10qk.js.map +0 -10
  680. package/dist/cli/chunk-yg63d42r.js.map +0 -34
  681. package/docs/advanced/api-reference.mdx +0 -240
  682. package/docs/configuration/ask-ai.mdx +0 -256
  683. package/docs/reference/cli.mdx +0 -197
  684. package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
  685. package/src/components/content/changelog-element.ts +0 -69
  686. package/src/search/providers.ts +0 -91
  687. /package/dist/cli/{chunk-vacwm2hv.js.map → chunk-27g6wdth.js.map} +0 -0
  688. /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-ce574jw2.js.map} +0 -0
  689. /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-fxypxtvm.js.map} +0 -0
  690. /package/dist/cli/{chunk-nn13znc2.js.map → chunk-zxcczpyx.js.map} +0 -0
@@ -0,0 +1,15 @@
1
+ import type { BlumeProject } from "../core/project-graph.ts";
2
+ /**
3
+ * Every serializer a project brings to a downlevel pass, layered once for all
4
+ * the agent surfaces (`<route>.md`, llms-full.txt, the search and assistant
5
+ * corpora): the built-in families that read project data — examples, then the
6
+ * API reference — under the user's `agents.markdownComponents`, which is spread
7
+ * last so an entry of the same name still wins. One layering, so a new family
8
+ * or a new surface cannot leave one consumer printing raw JSX.
9
+ */
10
+ export declare const projectComponentSerializers: (project: Pick<BlumeProject, "config" | "examples" | "sources">) => {
11
+ ApiOverview: ({ props }: import("./component-markdown.ts").ComponentMarkdownContext) => string | null;
12
+ ApiTagOperations: ({ props }: import("./component-markdown.ts").ComponentMarkdownContext) => string | null;
13
+ Operation: ({ props }: import("./component-markdown.ts").ComponentMarkdownContext) => string | null;
14
+ Component: ({ props }: import("./component-markdown.ts").ComponentMarkdownContext) => string | null;
15
+ };
@@ -0,0 +1,42 @@
1
+ import type { ResolvedConfig } from "../core/schema.ts";
2
+ /**
3
+ * Agent Skills discovery (Cloudflare's Agent Skills Discovery RFC v0.2.0):
4
+ * the skills a site publishes are enumerated in an index at
5
+ * `/.well-known/agent-skills/index.json`, each entry pointing at its artifact
6
+ * with a SHA-256 digest. A skill that is only a `SKILL.md` publishes the file
7
+ * verbatim (`type: "skill-md"`); a skill with supporting resources (scripts,
8
+ * references, assets) is bundled into a deterministic `.tar.gz`
9
+ * (`type: "archive"`) so its relative references resolve after unpacking.
10
+ */
11
+ export declare const AGENT_SKILLS_DIR = "/.well-known/agent-skills";
12
+ export declare const AGENT_SKILLS_INDEX_PATH = "/.well-known/agent-skills/index.json";
13
+ /** One publishable skill artifact plus its index entry. */
14
+ export interface SkillArtifact {
15
+ /** Raw bytes to publish (the digest is computed over exactly these). */
16
+ content: Uint8Array;
17
+ description: string;
18
+ /** `sha256:{hex}` digest of `content`. */
19
+ digest: string;
20
+ name: string;
21
+ /** Path under the agent-skills dir: `{name}/SKILL.md` or `{name}.tar.gz`. */
22
+ path: string;
23
+ type: "archive" | "skill-md";
24
+ }
25
+ export interface CollectedSkills {
26
+ skills: SkillArtifact[];
27
+ /** Human-readable reasons for anything skipped. */
28
+ warnings: string[];
29
+ }
30
+ /**
31
+ * Collect the publishable skills from a directory whose subdirectories each
32
+ * hold a `SKILL.md` (the layout `npx skills add` consumes). Subdirectories
33
+ * without one are ignored silently — the directory may hold other assets —
34
+ * while a present-but-invalid skill earns a warning so it isn't dropped
35
+ * behind the publisher's back.
36
+ */
37
+ export declare const collectSkills: (dir: string) => Promise<CollectedSkills>;
38
+ /**
39
+ * The discovery index (v0.2.0 schema). Artifact URLs are path-absolute under
40
+ * `deployment.base` — the RFC resolves them against the index origin.
41
+ */
42
+ export declare const buildSkillsIndex: (skills: readonly SkillArtifact[], config: ResolvedConfig) => string;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * `.tar.gz` writer for agent-skill archives, on nanotar's ustar writer.
3
+ * Deterministic by construction — fixed mtime/uid/gid/owner attrs,
4
+ * caller-ordered entries, and Node's gzip header carries no timestamp — so a
5
+ * skill's archive digest only changes when its content does. That holds per
6
+ * machine: the tar bytes are portable, but zlib's compressed stream differs
7
+ * across architectures, so gzip-layer digests are not comparable across
8
+ * platforms.
9
+ */
10
+ /** One regular file to archive. Paths are `/`-separated, relative, no `..`. */
11
+ export interface TarEntry {
12
+ /** Raw file bytes. */
13
+ content: Uint8Array;
14
+ /** Preserve the owner-execute bit (e.g. a skill's scripts). */
15
+ executable?: boolean;
16
+ /** Archive-relative path, e.g. `SKILL.md` or `references/FORMS.md`. */
17
+ path: string;
18
+ }
19
+ /**
20
+ * Build a gzipped ustar archive of the given files, in the given order. Paths
21
+ * longer than the ustar `name` field or escaping the archive root throw to
22
+ * surface a programming error — nanotar would silently truncate an oversized
23
+ * name into a corrupt archive, so the validation stays here.
24
+ */
25
+ export declare const buildTarGz: (entries: readonly TarEntry[]) => Uint8Array;
@@ -0,0 +1,17 @@
1
+ /** The audience an output surface serves — the component's two `for` values. */
2
+ export type VisibilityAudience = "agents" | "web";
3
+ /**
4
+ * Resolve `<Visibility>` blocks for one audience: blocks addressed to the
5
+ * other audience are removed entirely and blocks addressed to `audience` are
6
+ * unwrapped (tags dropped, body kept), matching what the Astro component
7
+ * renders on the web. Other `for` values (the component's default) are left
8
+ * untouched, and markdown with no matching blocks is returned byte-identical,
9
+ * so raw sources stay raw.
10
+ */
11
+ export declare const applyAudienceVisibility: (markdown: string, audience: VisibilityAudience) => string;
12
+ /**
13
+ * Resolve `<Visibility>` blocks for agent-facing Markdown (llms-full.txt, the
14
+ * `.md`/`.mdx` mirrors, MCP tools, assistant grounding): `for="web"` content is
15
+ * removed and `for="agents"` content is unwrapped.
16
+ */
17
+ export declare const applyAgentVisibility: (markdown: string) => string;
@@ -0,0 +1,16 @@
1
+ import type { ResolvedConfig } from "../core/schema.ts";
2
+ /**
3
+ * Web Bot Auth (IETF `webbotauth` WG): an org that runs agents publishes the
4
+ * agents' HTTP Message Signature public keys in a JWKS at a well-known path
5
+ * on its domain; sites receiving the signed requests fetch it to verify them.
6
+ * Blume publishes the directory from `agents.webBotAuth.keys` — the schema admits
7
+ * public keys only, so the site can never leak signing credentials.
8
+ */
9
+ /** Well-known path (draft-meunier-http-message-signatures-directory). */
10
+ export declare const SIGNATURES_DIRECTORY_PATH = "/.well-known/http-message-signatures-directory";
11
+ /** The directory's registered media type — extensionless, so static hosts
12
+ * need an explicit Content-Type rule (see `deploy/headers.ts` and the Vercel
13
+ * `overrides` injection) to serve anything better than octet-stream. */
14
+ export declare const SIGNATURES_DIRECTORY_TYPE = "application/http-message-signatures-directory+json";
15
+ /** The JWKS document to publish, or null when no keys are configured. */
16
+ export declare const buildSignaturesDirectory: (config: ResolvedConfig) => string | null;
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** Options for {@link adobe}. */
5
+ export interface AdobeOptions {
6
+ /**
7
+ * The Launch (Adobe Experience Platform Tags) embed script URL for the
8
+ * environment to load, e.g. `https://assets.adobedtm.com/…/launch-….min.js`.
9
+ */
10
+ url: string;
11
+ }
12
+ export declare const adobeOptionsSchema: z.ZodObject<{
13
+ url: z.ZodString;
14
+ }, z.core.$strict>;
15
+ export type AdobeAdapter = AdapterDescriptor<"adobe", AdobeOptions>;
16
+ export declare const adobeAdapterSchema: z.ZodObject<{
17
+ kind: z.ZodLiteral<"adobe">;
18
+ options: z.ZodObject<{
19
+ url: z.ZodString;
20
+ }, z.core.$strict>;
21
+ requiredSecrets: z.ZodArray<z.ZodString>;
22
+ runtimeDeps: z.ZodArray<z.ZodString>;
23
+ }, z.core.$strict>;
24
+ /**
25
+ * Adobe Analytics through a Launch property: Blume loads the environment's
26
+ * embed script, and the property's own rules decide what to track. Copy the
27
+ * URL from the environment's install instructions in Data Collection.
28
+ */
29
+ export declare const adobe: (options: AdobeOptions) => AdobeAdapter;
30
+ /**
31
+ * The async embed tag, as Launch's install instructions render it. Pageviews
32
+ * on client-router navigations are the property's business: give it a rule on
33
+ * history changes (or `_satellite.track` from a `script()` adapter).
34
+ */
35
+ export declare const adobeHead: (options: AdobeOptions) => HeadScript[];
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** The options {@link amplitude} maps itself. */
5
+ export interface AmplitudeNamedOptions {
6
+ /** Project API key. */
7
+ key: string;
8
+ }
9
+ /**
10
+ * Options for {@link amplitude}: the key plus any other Browser SDK
11
+ * `amplitude.init` option, forwarded verbatim (`serverZone`, `autocapture`,
12
+ * `defaultTracking`, …). JSON values only.
13
+ */
14
+ export type AmplitudeOptions = AmplitudeNamedOptions & {
15
+ [option: string]: JsonValue;
16
+ };
17
+ export declare const amplitudeOptionsSchema: z.ZodObject<{
18
+ key: z.ZodString;
19
+ }, z.core.$catchall<z.ZodJSONSchema>>;
20
+ export type AmplitudeAdapter = AdapterDescriptor<"amplitude", AmplitudeOptions>;
21
+ export declare const amplitudeAdapterSchema: z.ZodObject<{
22
+ kind: z.ZodLiteral<"amplitude">;
23
+ options: z.ZodObject<{
24
+ key: z.ZodString;
25
+ }, z.core.$catchall<z.ZodJSONSchema>>;
26
+ requiredSecrets: z.ZodArray<z.ZodString>;
27
+ runtimeDeps: z.ZodArray<z.ZodString>;
28
+ }, z.core.$strict>;
29
+ /**
30
+ * Amplitude product analytics through the Browser SDK's script loader. The
31
+ * project API key is public — it's what every browser event carries.
32
+ */
33
+ export declare const amplitude: (options: AmplitudeOptions) => AmplitudeAdapter;
34
+ /** The script loader's CDN; the key picks the bundle. */
35
+ export declare const AMPLITUDE_SCRIPT_ORIGIN = "https://cdn.amplitude.com/script/";
36
+ /**
37
+ * The init options the dashboard snippet ships with. `autocapture` covers page
38
+ * views, sessions, and history changes, so client-router navigations count
39
+ * without any extra hook; a passthrough option overrides either.
40
+ */
41
+ export declare const AMPLITUDE_DEFAULT_INIT: {
42
+ autocapture: boolean;
43
+ fetchRemoteConfig: boolean;
44
+ };
45
+ /**
46
+ * The two tags from the dashboard's install snippet: the keyed SDK bundle
47
+ * (synchronous, so `window.amplitude` exists for the next tag) and the init
48
+ * call, with `key` mapped and everything else forwarded to `init` verbatim.
49
+ */
50
+ export declare const amplitudeHead: (options: AmplitudeOptions) => HeadScript[];
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** Options for {@link clarity}. */
5
+ export interface ClarityOptions {
6
+ /** Project ID, from the project's tracking code in the Clarity dashboard. */
7
+ id: string;
8
+ }
9
+ export declare const clarityOptionsSchema: z.ZodObject<{
10
+ id: z.ZodString;
11
+ }, z.core.$strict>;
12
+ export type ClarityAdapter = AdapterDescriptor<"clarity", ClarityOptions>;
13
+ export declare const clarityAdapterSchema: z.ZodObject<{
14
+ kind: z.ZodLiteral<"clarity">;
15
+ options: z.ZodObject<{
16
+ id: z.ZodString;
17
+ }, z.core.$strict>;
18
+ requiredSecrets: z.ZodArray<z.ZodString>;
19
+ runtimeDeps: z.ZodArray<z.ZodString>;
20
+ }, z.core.$strict>;
21
+ /**
22
+ * Microsoft Clarity session recordings and heatmaps. The project ID is public;
23
+ * it only picks the project the tag reports to.
24
+ */
25
+ export declare const clarity: (options: ClarityOptions) => ClarityAdapter;
26
+ /**
27
+ * The dashboard's tracking code: a `window.clarity` queue and the async tag
28
+ * load. Clarity follows history changes itself, so client-router navigations
29
+ * need no extra hook.
30
+ */
31
+ export declare const clarityHead: (options: ClarityOptions) => HeadScript[];
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** Options for {@link clearbit}. */
5
+ export interface ClearbitOptions {
6
+ /** Publishable API key (`pk_…`). */
7
+ key: string;
8
+ }
9
+ export declare const clearbitOptionsSchema: z.ZodObject<{
10
+ key: z.ZodString;
11
+ }, z.core.$strict>;
12
+ export type ClearbitAdapter = AdapterDescriptor<"clearbit", ClearbitOptions>;
13
+ export declare const clearbitAdapterSchema: z.ZodObject<{
14
+ kind: z.ZodLiteral<"clearbit">;
15
+ options: z.ZodObject<{
16
+ key: z.ZodString;
17
+ }, z.core.$strict>;
18
+ requiredSecrets: z.ZodArray<z.ZodString>;
19
+ runtimeDeps: z.ZodArray<z.ZodString>;
20
+ }, z.core.$strict>;
21
+ /**
22
+ * Clearbit's website tag (Reveal and the Clearbit tags it manages). The
23
+ * publishable key is meant for the browser.
24
+ */
25
+ export declare const clearbit: (options: ClearbitOptions) => ClearbitAdapter;
26
+ /** The tag origin; the key picks the tags bundle. */
27
+ export declare const CLEARBIT_TAG_ORIGIN = "https://tag.clearbitscripts.com/v1/";
28
+ /** The tag as Clearbit's install snippet renders it. */
29
+ export declare const clearbitHead: (options: ClearbitOptions) => HeadScript[];
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** The beacon script Cloudflare's dashboard snippet loads. */
5
+ export declare const CLOUDFLARE_BEACON_SRC = "https://static.cloudflareinsights.com/beacon.min.js";
6
+ /** The options {@link cloudflare} maps itself. */
7
+ export interface CloudflareNamedOptions {
8
+ /** Site token from the Web Analytics JS snippet (`data-cf-beacon`). */
9
+ token: string;
10
+ }
11
+ /**
12
+ * Options for {@link cloudflare}: the token plus any other `data-cf-beacon`
13
+ * setting, forwarded verbatim (`spa`, …). JSON values only.
14
+ */
15
+ export type CloudflareOptions = CloudflareNamedOptions & {
16
+ [option: string]: JsonValue;
17
+ };
18
+ export declare const cloudflareOptionsSchema: z.ZodObject<{
19
+ token: z.ZodString;
20
+ }, z.core.$catchall<z.ZodJSONSchema>>;
21
+ export type CloudflareAdapter = AdapterDescriptor<"cloudflare", CloudflareOptions>;
22
+ export declare const cloudflareAdapterSchema: z.ZodObject<{
23
+ kind: z.ZodLiteral<"cloudflare">;
24
+ options: z.ZodObject<{
25
+ token: z.ZodString;
26
+ }, z.core.$catchall<z.ZodJSONSchema>>;
27
+ requiredSecrets: z.ZodArray<z.ZodString>;
28
+ runtimeDeps: z.ZodArray<z.ZodString>;
29
+ }, z.core.$strict>;
30
+ /**
31
+ * Cloudflare Web Analytics in manual (JS snippet) mode, for a site Cloudflare
32
+ * doesn't proxy. A proxied zone with automatic RUM injection on needs no
33
+ * adapter at all — listing one there would count every pageview twice.
34
+ */
35
+ export declare const cloudflare: (options: CloudflareOptions) => CloudflareAdapter;
36
+ /**
37
+ * The beacon tag exactly as the dashboard's snippet renders it, with the whole
38
+ * option object as its `data-cf-beacon` JSON. The beacon tracks history
39
+ * changes itself, so client-router navigations need no extra hook.
40
+ */
41
+ export declare const cloudflareHead: (options: CloudflareOptions) => HeadScript[];
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** The script Fathom's dashboard snippet loads. */
5
+ export declare const FATHOM_SCRIPT_SRC = "https://cdn.usefathom.com/script.js";
6
+ /** The options {@link fathom} maps itself. */
7
+ export interface FathomNamedOptions {
8
+ /** Site ID, from the site's script settings. */
9
+ site: string;
10
+ }
11
+ /**
12
+ * Options for {@link fathom}: the site ID plus any other script setting,
13
+ * forwarded as a `data-` attribute on the tag (`spa` → `data-spa`,
14
+ * `"honor-dnt"` → `data-honor-dnt`, `"excluded-domains"`, `canonical`, …).
15
+ */
16
+ export type FathomOptions = FathomNamedOptions & {
17
+ [setting: string]: string;
18
+ };
19
+ export declare const fathomOptionsSchema: z.ZodObject<{
20
+ site: z.ZodString;
21
+ }, z.core.$catchall<z.ZodString>>;
22
+ export type FathomAdapter = AdapterDescriptor<"fathom", FathomOptions>;
23
+ export declare const fathomAdapterSchema: z.ZodObject<{
24
+ kind: z.ZodLiteral<"fathom">;
25
+ options: z.ZodObject<{
26
+ site: z.ZodString;
27
+ }, z.core.$catchall<z.ZodString>>;
28
+ requiredSecrets: z.ZodArray<z.ZodString>;
29
+ runtimeDeps: z.ZodArray<z.ZodString>;
30
+ }, z.core.$strict>;
31
+ /**
32
+ * Fathom Analytics. The site ID is public — it's in the tag on every page.
33
+ */
34
+ export declare const fathom: (options: FathomOptions) => FathomAdapter;
35
+ /**
36
+ * The deferred tag from the dashboard, with `site` as `data-site` and every
37
+ * other option as its own `data-` attribute. Fathom only tracks history
38
+ * changes when the tag opts in, so `spa` defaults to `"auto"` — Blume's
39
+ * client router navigates without full loads — and an explicit `spa` wins.
40
+ */
41
+ export declare const fathomHead: (options: FathomOptions) => HeadScript[];
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** The options {@link googleAnalytics} maps itself. */
5
+ export interface GoogleAnalyticsNamedOptions {
6
+ /** Measurement ID of the GA4 web data stream (`G-…`). */
7
+ id: string;
8
+ }
9
+ /**
10
+ * Options for {@link googleAnalytics}: the measurement ID plus any other
11
+ * `gtag('config', …)` parameter, forwarded verbatim (`send_page_view`,
12
+ * `anonymize_ip`, `cookie_domain`, `debug_mode`, …). JSON values only.
13
+ */
14
+ export type GoogleAnalyticsOptions = GoogleAnalyticsNamedOptions & {
15
+ [parameter: string]: JsonValue;
16
+ };
17
+ export declare const googleAnalyticsOptionsSchema: z.ZodObject<{
18
+ id: z.ZodString;
19
+ }, z.core.$catchall<z.ZodJSONSchema>>;
20
+ export type GoogleAnalyticsAdapter = AdapterDescriptor<"google-analytics", GoogleAnalyticsOptions>;
21
+ export declare const googleAnalyticsAdapterSchema: z.ZodObject<{
22
+ kind: z.ZodLiteral<"google-analytics">;
23
+ options: z.ZodObject<{
24
+ id: z.ZodString;
25
+ }, z.core.$catchall<z.ZodJSONSchema>>;
26
+ requiredSecrets: z.ZodArray<z.ZodString>;
27
+ runtimeDeps: z.ZodArray<z.ZodString>;
28
+ }, z.core.$strict>;
29
+ /**
30
+ * Google Analytics 4 through the Google tag (`gtag.js`). The measurement ID is
31
+ * public; it names the data stream the tag reports to.
32
+ */
33
+ export declare const googleAnalytics: (options: GoogleAnalyticsOptions) => GoogleAnalyticsAdapter;
34
+ /** The Google tag loader; the measurement ID travels in its query string. */
35
+ export declare const GOOGLE_TAG_SRC = "https://www.googletagmanager.com/gtag/js";
36
+ /**
37
+ * The two tags from the data stream's install instructions: the async loader
38
+ * and the `dataLayer` bootstrap with the `config` call. Extra options ride on
39
+ * the `config` call, and it is emitted bare when there are none, exactly as
40
+ * the instructions print it. GA4's enhanced measurement counts history
41
+ * changes as page views by default, so client-router navigations need no
42
+ * extra hook here.
43
+ */
44
+ export declare const googleAnalyticsHead: (options: GoogleAnalyticsOptions) => HeadScript[];
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** Options for {@link googleTagManager}. */
5
+ export interface GoogleTagManagerOptions {
6
+ /** Name of the data layer global the container reads. Defaults to `dataLayer`. */
7
+ dataLayer?: string;
8
+ /** Container ID (`GTM-…`). */
9
+ id: string;
10
+ }
11
+ export declare const googleTagManagerOptionsSchema: z.ZodObject<{
12
+ dataLayer: z.ZodOptional<z.ZodString>;
13
+ id: z.ZodString;
14
+ }, z.core.$strict>;
15
+ export type GoogleTagManagerAdapter = AdapterDescriptor<"google-tag-manager", GoogleTagManagerOptions>;
16
+ export declare const googleTagManagerAdapterSchema: z.ZodObject<{
17
+ kind: z.ZodLiteral<"google-tag-manager">;
18
+ options: z.ZodObject<{
19
+ dataLayer: z.ZodOptional<z.ZodString>;
20
+ id: z.ZodString;
21
+ }, z.core.$strict>;
22
+ requiredSecrets: z.ZodArray<z.ZodString>;
23
+ runtimeDeps: z.ZodArray<z.ZodString>;
24
+ }, z.core.$strict>;
25
+ /**
26
+ * Google Tag Manager. Blume loads the container; which tags fire, and on what,
27
+ * is the container's configuration. The container ID is public.
28
+ */
29
+ export declare const googleTagManager: (options: GoogleTagManagerOptions) => GoogleTagManagerAdapter;
30
+ /**
31
+ * The container snippet from the workspace's install instructions (the
32
+ * `<head>` half; the `<noscript>` iframe is for browsers without JavaScript,
33
+ * which never run analytics anyway). Client-router navigations reach the
34
+ * container as history changes — fire pageview tags from a History Change
35
+ * trigger rather than the page-load one. The snippet also keeps a reference
36
+ * to its data layer on `window.__blumeGtmLayer`, so `track()` pushes custom
37
+ * events into the layer this container reads rather than the default
38
+ * `dataLayer`.
39
+ */
40
+ export declare const googleTagManagerHead: (options: GoogleTagManagerOptions) => HeadScript[];
@@ -0,0 +1,30 @@
1
+ import type { AnalyticsAdapter } from "./schema.ts";
2
+ import type { VercelOptions } from "./vercel.ts";
3
+ /** One `<script>` tag an adapter emits into `<head>`. */
4
+ export interface HeadScript {
5
+ /**
6
+ * Attributes on the tag, including `src` for an external script. `true`
7
+ * renders a bare boolean attribute (`async`, `defer`).
8
+ */
9
+ attributes: Record<string, string | boolean>;
10
+ /** Inline body, or `null` for an external script. */
11
+ content: string | null;
12
+ }
13
+ /**
14
+ * One thing `Analytics.astro` renders, in the adapters' declared order. Vercel
15
+ * is the one adapter that renders a component rather than a tag: the official
16
+ * component injects the first-party script and resolves the deployment's base
17
+ * path itself, so it travels as its props.
18
+ */
19
+ export type HeadNode = (HeadScript & {
20
+ type: "script";
21
+ }) | {
22
+ props: VercelOptions;
23
+ type: "vercel";
24
+ };
25
+ /**
26
+ * Map the configured adapters to what `Analytics.astro` renders, in declared
27
+ * order. A second `vercel()` is dropped — two copies of the component would
28
+ * count every pageview twice — so the first one keeps its position.
29
+ */
30
+ export declare const analyticsHead: (adapters: AnalyticsAdapter[]) => HeadNode[];
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** The options {@link heap} maps itself. */
5
+ export interface HeapNamedOptions {
6
+ /** App ID (the environment ID), from the project's install settings. */
7
+ id: string;
8
+ }
9
+ /**
10
+ * Options for {@link heap}: the app ID plus any other `heap.load` config
11
+ * option, forwarded verbatim (`disableTextCapture`, `secureCookie`, …). JSON
12
+ * values only.
13
+ */
14
+ export type HeapOptions = HeapNamedOptions & {
15
+ [option: string]: JsonValue;
16
+ };
17
+ export declare const heapOptionsSchema: z.ZodObject<{
18
+ id: z.ZodString;
19
+ }, z.core.$catchall<z.ZodJSONSchema>>;
20
+ export type HeapAdapter = AdapterDescriptor<"heap", HeapOptions>;
21
+ export declare const heapAdapterSchema: z.ZodObject<{
22
+ kind: z.ZodLiteral<"heap">;
23
+ options: z.ZodObject<{
24
+ id: z.ZodString;
25
+ }, z.core.$catchall<z.ZodJSONSchema>>;
26
+ requiredSecrets: z.ZodArray<z.ZodString>;
27
+ runtimeDeps: z.ZodArray<z.ZodString>;
28
+ }, z.core.$strict>;
29
+ /**
30
+ * Heap autocapture analytics. The app ID is public — the tag carries it on
31
+ * every page.
32
+ */
33
+ export declare const heap: (options: HeapOptions) => HeapAdapter;
34
+ /**
35
+ * The loader plus `heap.load` with `id` mapped and everything else forwarded
36
+ * as the config object; the object is left off when there is nothing to pass,
37
+ * as the install snippet prints it. Heap autocaptures history changes as
38
+ * pageviews, so client-router navigations need no extra hook.
39
+ */
40
+ export declare const heapHead: (options: HeapOptions) => HeadScript[];
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** The events API host `hightouch()` uses when `host` is unset. */
5
+ export declare const HIGHTOUCH_DEFAULT_HOST = "us-east-1.hightouch-events.com";
6
+ /** The options {@link hightouch} maps itself. */
7
+ export interface HightouchNamedOptions {
8
+ /** Events API host, without a scheme. Defaults to the US East region. */
9
+ host?: string;
10
+ /** Write key of the event source. */
11
+ key: string;
12
+ }
13
+ /**
14
+ * Options for {@link hightouch}: the named options plus any other
15
+ * `htevents.load` option, forwarded verbatim. JSON values only.
16
+ */
17
+ export type HightouchOptions = HightouchNamedOptions & {
18
+ [option: string]: JsonValue;
19
+ };
20
+ export declare const hightouchOptionsSchema: z.ZodObject<{
21
+ host: z.ZodOptional<z.ZodString>;
22
+ key: z.ZodString;
23
+ }, z.core.$catchall<z.ZodJSONSchema>>;
24
+ export type HightouchAdapter = AdapterDescriptor<"hightouch", HightouchOptions>;
25
+ export declare const hightouchAdapterSchema: z.ZodObject<{
26
+ kind: z.ZodLiteral<"hightouch">;
27
+ options: z.ZodObject<{
28
+ host: z.ZodOptional<z.ZodString>;
29
+ key: z.ZodString;
30
+ }, z.core.$catchall<z.ZodJSONSchema>>;
31
+ requiredSecrets: z.ZodArray<z.ZodString>;
32
+ runtimeDeps: z.ZodArray<z.ZodString>;
33
+ }, z.core.$strict>;
34
+ /**
35
+ * Hightouch Events. The write key is meant for the browser — it identifies
36
+ * the event source the SDK reports to.
37
+ */
38
+ export declare const hightouch: (options: HightouchOptions) => HightouchAdapter;
39
+ /**
40
+ * The loader with `key` mapped to the write key and `host` to `apiHost`;
41
+ * everything else lands in the load options verbatim, after the mapped host
42
+ * so a raw `apiHost` still wins.
43
+ */
44
+ export declare const hightouchHead: (options: HightouchOptions) => HeadScript[];
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** The tracking-code version (`hjsv`) `hotjar()` uses when `version` is unset. */
5
+ export declare const HOTJAR_DEFAULT_VERSION = 6;
6
+ /** Options for {@link hotjar}. */
7
+ export interface HotjarOptions {
8
+ /** Site ID (`hjid`), from the site's tracking code. */
9
+ id: number;
10
+ /** Tracking-code version (`hjsv`). Defaults to the current one. */
11
+ version?: number;
12
+ }
13
+ export declare const hotjarOptionsSchema: z.ZodObject<{
14
+ id: z.ZodNumber;
15
+ version: z.ZodOptional<z.ZodNumber>;
16
+ }, z.core.$strict>;
17
+ export type HotjarAdapter = AdapterDescriptor<"hotjar", HotjarOptions>;
18
+ export declare const hotjarAdapterSchema: z.ZodObject<{
19
+ kind: z.ZodLiteral<"hotjar">;
20
+ options: z.ZodObject<{
21
+ id: z.ZodNumber;
22
+ version: z.ZodOptional<z.ZodNumber>;
23
+ }, z.core.$strict>;
24
+ requiredSecrets: z.ZodArray<z.ZodString>;
25
+ runtimeDeps: z.ZodArray<z.ZodString>;
26
+ }, z.core.$strict>;
27
+ /**
28
+ * Hotjar heatmaps and recordings. The site ID is public — it's in the tracking
29
+ * code on every page.
30
+ */
31
+ export declare const hotjar: (options: HotjarOptions) => HotjarAdapter;
32
+ /** The tracking code as the site's install instructions render it. */
33
+ export declare const hotjarHead: (options: HotjarOptions) => HeadScript[];
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Analytics adapters for `blume.config.ts`:
3
+ *
4
+ * ```ts
5
+ * import { defineConfig } from "blume";
6
+ * import { plausible, posthog, script, vercel } from "blume/analytics";
7
+ *
8
+ * export default defineConfig({
9
+ * analytics: [
10
+ * posthog({ key: "phc_…" }),
11
+ * vercel(),
12
+ * plausible({ domain: "docs.example.com" }),
13
+ * script({ src: "…" }),
14
+ * ],
15
+ * });
16
+ * ```
17
+ *
18
+ * Each factory returns a plain descriptor (see `core/adapter.ts`) that the
19
+ * schema validates and the generated site inlines as a literal; nothing here
20
+ * runs in the browser.
21
+ */
22
+ export type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
23
+ export { adobe } from "./adobe.ts";
24
+ export type { AdobeAdapter, AdobeOptions } from "./adobe.ts";
25
+ export { amplitude } from "./amplitude.ts";
26
+ export type { AmplitudeAdapter, AmplitudeOptions } from "./amplitude.ts";
27
+ export { clarity } from "./clarity.ts";
28
+ export type { ClarityAdapter, ClarityOptions } from "./clarity.ts";
29
+ export { clearbit } from "./clearbit.ts";
30
+ export type { ClearbitAdapter, ClearbitOptions } from "./clearbit.ts";
31
+ export { cloudflare } from "./cloudflare.ts";
32
+ export type { CloudflareAdapter, CloudflareOptions } from "./cloudflare.ts";
33
+ export { fathom } from "./fathom.ts";
34
+ export type { FathomAdapter, FathomOptions } from "./fathom.ts";
35
+ export { googleAnalytics } from "./google-analytics.ts";
36
+ export type { GoogleAnalyticsAdapter, GoogleAnalyticsOptions, } from "./google-analytics.ts";
37
+ export { googleTagManager } from "./google-tag-manager.ts";
38
+ export type { GoogleTagManagerAdapter, GoogleTagManagerOptions, } from "./google-tag-manager.ts";
39
+ export { heap } from "./heap.ts";
40
+ export type { HeapAdapter, HeapOptions } from "./heap.ts";
41
+ export { hightouch } from "./hightouch.ts";
42
+ export type { HightouchAdapter, HightouchOptions } from "./hightouch.ts";
43
+ export { hotjar } from "./hotjar.ts";
44
+ export type { HotjarAdapter, HotjarOptions } from "./hotjar.ts";
45
+ export { logrocket } from "./logrocket.ts";
46
+ export type { LogrocketAdapter, LogrocketOptions } from "./logrocket.ts";
47
+ export { mixpanel } from "./mixpanel.ts";
48
+ export type { MixpanelAdapter, MixpanelOptions, MixpanelRegion, } from "./mixpanel.ts";
49
+ export { pirsch } from "./pirsch.ts";
50
+ export type { PirschAdapter, PirschOptions } from "./pirsch.ts";
51
+ export { plausible } from "./plausible.ts";
52
+ export type { PlausibleAdapter, PlausibleOptions } from "./plausible.ts";
53
+ export { posthog } from "./posthog.ts";
54
+ export type { PosthogAdapter, PosthogOptions } from "./posthog.ts";
55
+ export type { AnalyticsAdapter } from "./schema.ts";
56
+ export { script } from "./script.ts";
57
+ export type { ScriptAdapter, ScriptOptions } from "./script.ts";
58
+ export { segment } from "./segment.ts";
59
+ export type { SegmentAdapter, SegmentOptions } from "./segment.ts";
60
+ export { vercel } from "./vercel.ts";
61
+ export type { VercelAdapter, VercelOptions } from "./vercel.ts";