@sonordev/site-kit 3.7.0 → 3.8.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 (203) hide show
  1. package/agent-manifest.json +1 -1
  2. package/dist/AnalyticsProvider-DSQNTSJZ.mjs +10 -0
  3. package/dist/{AnalyticsProvider-OIRXQE7O.mjs.map → AnalyticsProvider-DSQNTSJZ.mjs.map} +1 -1
  4. package/dist/AnalyticsProvider-MFNXZGXM.js +31 -0
  5. package/dist/{AnalyticsProvider-JWXDXOIR.js.map → AnalyticsProvider-MFNXZGXM.js.map} +1 -1
  6. package/dist/ChatWidget-PDCWVGLH.js +19 -0
  7. package/dist/{ChatWidget-K2BFJXGB.js.map → ChatWidget-PDCWVGLH.js.map} +1 -1
  8. package/dist/ChatWidget-RNJU2KCF.mjs +10 -0
  9. package/dist/{ChatWidget-FFCUDCT6.mjs.map → ChatWidget-RNJU2KCF.mjs.map} +1 -1
  10. package/dist/EngageWidget-EOGLNZ56.mjs +9 -0
  11. package/dist/{EngageWidget-QKRXI3NB.mjs.map → EngageWidget-EOGLNZ56.mjs.map} +1 -1
  12. package/dist/EngageWidget-IMKPA7YF.js +18 -0
  13. package/dist/{EngageWidget-XRXXVVUK.js.map → EngageWidget-IMKPA7YF.js.map} +1 -1
  14. package/dist/{SignalCore-BXCBV6GR.js → SignalCore-CTOFELJ7.js} +11 -11
  15. package/dist/{SignalCore-BXCBV6GR.js.map → SignalCore-CTOFELJ7.js.map} +1 -1
  16. package/dist/{SignalCore-6MUAX656.mjs → SignalCore-JTSREHTT.mjs} +5 -5
  17. package/dist/{SignalCore-6MUAX656.mjs.map → SignalCore-JTSREHTT.mjs.map} +1 -1
  18. package/dist/SitemapSync-3C32UQZB.mjs +8 -0
  19. package/dist/{SitemapSync-KS7KTJBK.mjs.map → SitemapSync-3C32UQZB.mjs.map} +1 -1
  20. package/dist/SitemapSync-J3QWNCMP.js +17 -0
  21. package/dist/{SitemapSync-WEZHTSFL.js.map → SitemapSync-J3QWNCMP.js.map} +1 -1
  22. package/dist/analytics/index.js +12 -12
  23. package/dist/analytics/index.mjs +5 -5
  24. package/dist/blog/server-ui.js +6 -6
  25. package/dist/blog/server-ui.js.map +1 -1
  26. package/dist/blog/server-ui.mjs +5 -5
  27. package/dist/blog/server-ui.mjs.map +1 -1
  28. package/dist/blog/server.d.mts +20 -1
  29. package/dist/blog/server.d.ts +20 -1
  30. package/dist/blog/server.js +43 -39
  31. package/dist/blog/server.mjs +1 -1
  32. package/dist/{chunk-HWJF7WMI.js → chunk-4WW7DHZS.js} +14 -14
  33. package/dist/{chunk-HWJF7WMI.js.map → chunk-4WW7DHZS.js.map} +1 -1
  34. package/dist/{chunk-4NUHZ24M.js → chunk-5LURTXJ3.js} +13 -13
  35. package/dist/{chunk-4NUHZ24M.js.map → chunk-5LURTXJ3.js.map} +1 -1
  36. package/dist/{chunk-2PQUCJJF.js → chunk-6UEZ6RJT.js} +5 -5
  37. package/dist/{chunk-2PQUCJJF.js.map → chunk-6UEZ6RJT.js.map} +1 -1
  38. package/dist/{chunk-LSWTMMKJ.mjs → chunk-75PY4H43.mjs} +3 -3
  39. package/dist/{chunk-LSWTMMKJ.mjs.map → chunk-75PY4H43.mjs.map} +1 -1
  40. package/dist/{chunk-3MYZS6PD.js → chunk-77CIIDE6.js} +15 -3
  41. package/dist/chunk-77CIIDE6.js.map +1 -0
  42. package/dist/{chunk-ZKAZGLHI.js → chunk-7CTKFXQ5.js} +9 -9
  43. package/dist/{chunk-ZKAZGLHI.js.map → chunk-7CTKFXQ5.js.map} +1 -1
  44. package/dist/{chunk-XOBW75J2.js → chunk-AL2O5QDB.js} +9 -9
  45. package/dist/{chunk-XOBW75J2.js.map → chunk-AL2O5QDB.js.map} +1 -1
  46. package/dist/{chunk-5Y5GCSH6.mjs → chunk-BJIJRBNA.mjs} +3 -3
  47. package/dist/{chunk-5Y5GCSH6.mjs.map → chunk-BJIJRBNA.mjs.map} +1 -1
  48. package/dist/{chunk-7UZV6JXD.js → chunk-C73RBN2O.js} +14 -14
  49. package/dist/{chunk-7UZV6JXD.js.map → chunk-C73RBN2O.js.map} +1 -1
  50. package/dist/{chunk-FP523A7G.mjs → chunk-CDW6LDLH.mjs} +3 -3
  51. package/dist/{chunk-FP523A7G.mjs.map → chunk-CDW6LDLH.mjs.map} +1 -1
  52. package/dist/{chunk-ON6WW7IE.js → chunk-CPO7FK36.js} +6 -6
  53. package/dist/{chunk-ON6WW7IE.js.map → chunk-CPO7FK36.js.map} +1 -1
  54. package/dist/{chunk-XREO3QRA.mjs → chunk-F5SDNDP6.mjs} +3 -3
  55. package/dist/{chunk-XREO3QRA.mjs.map → chunk-F5SDNDP6.mjs.map} +1 -1
  56. package/dist/{chunk-C3QMG4HS.js → chunk-GJMGQJI3.js} +15 -15
  57. package/dist/{chunk-C3QMG4HS.js.map → chunk-GJMGQJI3.js.map} +1 -1
  58. package/dist/{chunk-AKBGYQLC.js → chunk-GPXUJQFX.js} +15 -15
  59. package/dist/{chunk-AKBGYQLC.js.map → chunk-GPXUJQFX.js.map} +1 -1
  60. package/dist/{chunk-ATG4FJY6.js → chunk-H6AU3WKF.js} +35 -3
  61. package/dist/chunk-H6AU3WKF.js.map +1 -0
  62. package/dist/{chunk-NM7L2XKF.mjs → chunk-HJTAHRR3.mjs} +4 -4
  63. package/dist/{chunk-NM7L2XKF.mjs.map → chunk-HJTAHRR3.mjs.map} +1 -1
  64. package/dist/{chunk-R3CXRMP7.js → chunk-HNHZLRB6.js} +3 -3
  65. package/dist/{chunk-R3CXRMP7.js.map → chunk-HNHZLRB6.js.map} +1 -1
  66. package/dist/{chunk-AUBFDSTJ.js → chunk-ILCDV3MM.js} +8 -8
  67. package/dist/{chunk-AUBFDSTJ.js.map → chunk-ILCDV3MM.js.map} +1 -1
  68. package/dist/{chunk-TZTO5CDS.mjs → chunk-IVJLQJEP.mjs} +3 -3
  69. package/dist/{chunk-TZTO5CDS.mjs.map → chunk-IVJLQJEP.mjs.map} +1 -1
  70. package/dist/chunk-J4RBHTWC.js +8 -0
  71. package/dist/{chunk-SCMHZBTN.js.map → chunk-J4RBHTWC.js.map} +1 -1
  72. package/dist/{chunk-54ZC6LPR.mjs → chunk-J6MMNTYG.mjs} +3 -3
  73. package/dist/{chunk-54ZC6LPR.mjs.map → chunk-J6MMNTYG.mjs.map} +1 -1
  74. package/dist/{chunk-QPT5QX2W.js → chunk-KE3RJME2.js} +12 -12
  75. package/dist/{chunk-QPT5QX2W.js.map → chunk-KE3RJME2.js.map} +1 -1
  76. package/dist/{chunk-AJPPCSVW.mjs → chunk-LIFKPMXB.mjs} +3 -3
  77. package/dist/{chunk-AJPPCSVW.mjs.map → chunk-LIFKPMXB.mjs.map} +1 -1
  78. package/dist/chunk-M2SHY2FQ.mjs +6 -0
  79. package/dist/{chunk-2HH4VVJT.mjs.map → chunk-M2SHY2FQ.mjs.map} +1 -1
  80. package/dist/{chunk-LFFBDQM3.mjs → chunk-M3QFG3PA.mjs} +4 -4
  81. package/dist/{chunk-LFFBDQM3.mjs.map → chunk-M3QFG3PA.mjs.map} +1 -1
  82. package/dist/{chunk-UWL37MUR.mjs → chunk-NXFXKP7E.mjs} +3 -3
  83. package/dist/{chunk-UWL37MUR.mjs.map → chunk-NXFXKP7E.mjs.map} +1 -1
  84. package/dist/{chunk-6BIPAKL4.mjs → chunk-OVIDFJIK.mjs} +15 -4
  85. package/dist/chunk-OVIDFJIK.mjs.map +1 -0
  86. package/dist/{chunk-GUXB3QH7.mjs → chunk-PA7ENTUZ.mjs} +41 -9
  87. package/dist/chunk-PA7ENTUZ.mjs.map +1 -0
  88. package/dist/{chunk-H23ZT2I2.mjs → chunk-PENNTSJE.mjs} +35 -3
  89. package/dist/chunk-PENNTSJE.mjs.map +1 -0
  90. package/dist/{chunk-QAYCRXT4.mjs → chunk-PUZ6XJ2L.mjs} +3 -3
  91. package/dist/{chunk-QAYCRXT4.mjs.map → chunk-PUZ6XJ2L.mjs.map} +1 -1
  92. package/dist/{chunk-VZU2EHB6.js → chunk-QGNU2EDU.js} +4 -4
  93. package/dist/{chunk-VZU2EHB6.js.map → chunk-QGNU2EDU.js.map} +1 -1
  94. package/dist/{chunk-3K7WF6KB.mjs → chunk-QMBVVQSH.mjs} +8 -8
  95. package/dist/{chunk-3K7WF6KB.mjs.map → chunk-QMBVVQSH.mjs.map} +1 -1
  96. package/dist/{chunk-2CNKJMGT.mjs → chunk-SBRZLKE7.mjs} +3 -3
  97. package/dist/{chunk-2CNKJMGT.mjs.map → chunk-SBRZLKE7.mjs.map} +1 -1
  98. package/dist/{chunk-34IUDOBC.mjs → chunk-SP3MXF3A.mjs} +34 -5
  99. package/dist/chunk-SP3MXF3A.mjs.map +1 -0
  100. package/dist/{chunk-WQ64SU6E.js → chunk-SUWDZOPH.js} +4 -4
  101. package/dist/{chunk-WQ64SU6E.js.map → chunk-SUWDZOPH.js.map} +1 -1
  102. package/dist/{chunk-TQS2X5A3.js → chunk-TFU6J77X.js} +5 -5
  103. package/dist/{chunk-TQS2X5A3.js.map → chunk-TFU6J77X.js.map} +1 -1
  104. package/dist/{chunk-XAWB2HFQ.js → chunk-TMKLH6MY.js} +41 -8
  105. package/dist/chunk-TMKLH6MY.js.map +1 -0
  106. package/dist/{chunk-CDKWTLWF.mjs → chunk-TQYOQ7MH.mjs} +4 -4
  107. package/dist/{chunk-CDKWTLWF.mjs.map → chunk-TQYOQ7MH.mjs.map} +1 -1
  108. package/dist/{chunk-JFAAPREU.mjs → chunk-UGBL7GTN.mjs} +4 -4
  109. package/dist/{chunk-JFAAPREU.mjs.map → chunk-UGBL7GTN.mjs.map} +1 -1
  110. package/dist/{chunk-2EYHSGQ3.mjs → chunk-WM7U23R5.mjs} +3 -3
  111. package/dist/{chunk-2EYHSGQ3.mjs.map → chunk-WM7U23R5.mjs.map} +1 -1
  112. package/dist/{chunk-YE7KZQZ3.mjs → chunk-WXGBLUGC.mjs} +4 -4
  113. package/dist/{chunk-YE7KZQZ3.mjs.map → chunk-WXGBLUGC.mjs.map} +1 -1
  114. package/dist/{chunk-TA6KXHCY.js → chunk-X2DWUV5M.js} +7 -7
  115. package/dist/{chunk-TA6KXHCY.js.map → chunk-X2DWUV5M.js.map} +1 -1
  116. package/dist/{chunk-6T4NVCAT.js → chunk-XMBYDIV6.js} +40 -11
  117. package/dist/chunk-XMBYDIV6.js.map +1 -0
  118. package/dist/{chunk-GZHLVOW3.js → chunk-XMKZXFVX.js} +4 -4
  119. package/dist/{chunk-GZHLVOW3.js.map → chunk-XMKZXFVX.js.map} +1 -1
  120. package/dist/cli/index.js +2 -2
  121. package/dist/cli/index.mjs +1 -1
  122. package/dist/client/index.js +4 -4
  123. package/dist/client/index.mjs +3 -3
  124. package/dist/commerce/index.js +51 -51
  125. package/dist/commerce/index.mjs +6 -6
  126. package/dist/config/index.d.mts +1 -1
  127. package/dist/config/index.d.ts +1 -1
  128. package/dist/config/index.js +2 -2
  129. package/dist/config/index.mjs +1 -1
  130. package/dist/engage/index.js +9 -9
  131. package/dist/engage/index.mjs +6 -6
  132. package/dist/fleet/index.js +8 -8
  133. package/dist/fleet/index.mjs +4 -4
  134. package/dist/forms/index.js +97 -50
  135. package/dist/forms/index.js.map +1 -1
  136. package/dist/forms/index.mjs +89 -42
  137. package/dist/forms/index.mjs.map +1 -1
  138. package/dist/forms/styles.css +107 -2
  139. package/dist/images/index.js +11 -11
  140. package/dist/images/index.mjs +4 -4
  141. package/dist/index.js +64 -64
  142. package/dist/index.mjs +10 -10
  143. package/dist/layout/client.js +8 -8
  144. package/dist/layout/client.mjs +7 -7
  145. package/dist/layout/index.js +10 -10
  146. package/dist/layout/index.mjs +8 -8
  147. package/dist/llms/contract.js +9 -9
  148. package/dist/llms/contract.mjs +1 -1
  149. package/dist/llms/index.d.mts +131 -40
  150. package/dist/llms/index.d.ts +131 -40
  151. package/dist/llms/index.js +125 -21
  152. package/dist/llms/index.js.map +1 -1
  153. package/dist/llms/index.mjs +102 -4
  154. package/dist/llms/index.mjs.map +1 -1
  155. package/dist/maps/index.js +5 -5
  156. package/dist/maps/index.mjs +3 -3
  157. package/dist/middleware/index.d.mts +2 -1
  158. package/dist/middleware/index.d.ts +2 -1
  159. package/dist/middleware/index.js +6 -2
  160. package/dist/middleware/index.js.map +1 -1
  161. package/dist/middleware/index.mjs +2 -1
  162. package/dist/middleware/index.mjs.map +1 -1
  163. package/dist/securityHeaders-CwsFdDcJ.d.mts +49 -0
  164. package/dist/securityHeaders-CwsFdDcJ.d.ts +49 -0
  165. package/dist/seo/client.js +5 -5
  166. package/dist/seo/client.mjs +4 -4
  167. package/dist/seo/index.js +7 -7
  168. package/dist/seo/index.mjs +5 -5
  169. package/dist/server/index.js +3 -3
  170. package/dist/server/index.mjs +2 -2
  171. package/dist/signal/index.js +11 -11
  172. package/dist/signal/index.mjs +2 -2
  173. package/dist/sitemap/index.d.mts +8 -1
  174. package/dist/sitemap/index.d.ts +8 -1
  175. package/dist/sitemap/index.js +5 -4
  176. package/dist/sitemap/index.js.map +1 -1
  177. package/dist/sitemap/index.mjs +4 -3
  178. package/dist/sitemap/index.mjs.map +1 -1
  179. package/dist/sync/index.js +16 -16
  180. package/dist/sync/index.mjs +4 -4
  181. package/dist/{types-xcP_owwn.d.ts → writeLLMsTxt-BFaNr4re.d.ts} +53 -1
  182. package/dist/{types-DhCAWUmd.d.mts → writeLLMsTxt-SpMdyHQT.d.mts} +53 -1
  183. package/package.json +1 -1
  184. package/dist/AnalyticsProvider-JWXDXOIR.js +0 -31
  185. package/dist/AnalyticsProvider-OIRXQE7O.mjs +0 -10
  186. package/dist/ChatWidget-FFCUDCT6.mjs +0 -10
  187. package/dist/ChatWidget-K2BFJXGB.js +0 -19
  188. package/dist/EngageWidget-QKRXI3NB.mjs +0 -9
  189. package/dist/EngageWidget-XRXXVVUK.js +0 -18
  190. package/dist/SitemapSync-KS7KTJBK.mjs +0 -8
  191. package/dist/SitemapSync-WEZHTSFL.js +0 -17
  192. package/dist/chunk-2HH4VVJT.mjs +0 -6
  193. package/dist/chunk-34IUDOBC.mjs.map +0 -1
  194. package/dist/chunk-3MYZS6PD.js.map +0 -1
  195. package/dist/chunk-6BIPAKL4.mjs.map +0 -1
  196. package/dist/chunk-6T4NVCAT.js.map +0 -1
  197. package/dist/chunk-ATG4FJY6.js.map +0 -1
  198. package/dist/chunk-GUXB3QH7.mjs.map +0 -1
  199. package/dist/chunk-H23ZT2I2.mjs.map +0 -1
  200. package/dist/chunk-SCMHZBTN.js +0 -8
  201. package/dist/chunk-XAWB2HFQ.js.map +0 -1
  202. package/dist/securityHeaders-nwZ6nP4g.d.mts +0 -24
  203. package/dist/securityHeaders-nwZ6nP4g.d.ts +0 -24
@@ -1,19 +1,19 @@
1
- import { SiteKitClientProviders } from '../chunk-3K7WF6KB.mjs';
2
- import '../chunk-XREO3QRA.mjs';
3
- import '../chunk-YE7KZQZ3.mjs';
1
+ import { SiteKitClientProviders } from '../chunk-QMBVVQSH.mjs';
2
+ import '../chunk-F5SDNDP6.mjs';
3
+ import '../chunk-WXGBLUGC.mjs';
4
4
  import '../chunk-ZVBLXXNJ.mjs';
5
5
  import '../chunk-ZPLN537Q.mjs';
6
6
  import '../chunk-NI7OY4FW.mjs';
7
7
  import { ManagedFavicon } from '../chunk-CU6OGBKK.mjs';
8
- import '../chunk-LSWTMMKJ.mjs';
9
- import { resolveClientCredential } from '../chunk-54ZC6LPR.mjs';
8
+ import '../chunk-75PY4H43.mjs';
9
+ import { resolveClientCredential } from '../chunk-J6MMNTYG.mjs';
10
10
  import { ManagedScripts } from '../chunk-6PJTLBRR.mjs';
11
11
  import { resolveApiOrigin } from '../chunk-UDBUK5ZJ.mjs';
12
12
  import '../chunk-AX4AROLH.mjs';
13
13
  import '../chunk-6EDVCUAG.mjs';
14
- import '../chunk-NM7L2XKF.mjs';
15
- import '../chunk-QAYCRXT4.mjs';
16
- import '../chunk-2HH4VVJT.mjs';
14
+ import '../chunk-HJTAHRR3.mjs';
15
+ import '../chunk-PUZ6XJ2L.mjs';
16
+ import '../chunk-M2SHY2FQ.mjs';
17
17
  import '../chunk-4XPGGLVP.mjs';
18
18
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
19
19
 
@@ -1,41 +1,41 @@
1
1
  'use strict';
2
2
 
3
- var chunkATG4FJY6_js = require('../chunk-ATG4FJY6.js');
3
+ var chunkH6AU3WKF_js = require('../chunk-H6AU3WKF.js');
4
4
  require('../chunk-ZSMWDLMK.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "LLMS_DISCLAIMER_MAX_LENGTH", {
9
9
  enumerable: true,
10
- get: function () { return chunkATG4FJY6_js.LLMS_DISCLAIMER_MAX_LENGTH; }
10
+ get: function () { return chunkH6AU3WKF_js.LLMS_DISCLAIMER_MAX_LENGTH; }
11
11
  });
12
12
  Object.defineProperty(exports, "LLMS_PUBLIC_SUMMARY_MAX_LENGTH", {
13
13
  enumerable: true,
14
- get: function () { return chunkATG4FJY6_js.LLMS_PUBLIC_SUMMARY_MAX_LENGTH; }
14
+ get: function () { return chunkH6AU3WKF_js.LLMS_PUBLIC_SUMMARY_MAX_LENGTH; }
15
15
  });
16
16
  Object.defineProperty(exports, "LLM_GEO_CONTRACT_VERSION", {
17
17
  enumerable: true,
18
- get: function () { return chunkATG4FJY6_js.LLM_GEO_CONTRACT_VERSION; }
18
+ get: function () { return chunkH6AU3WKF_js.LLM_GEO_CONTRACT_VERSION; }
19
19
  });
20
20
  Object.defineProperty(exports, "MANAGED_LLM_SCHEMA_KNOWN_KEYS", {
21
21
  enumerable: true,
22
- get: function () { return chunkATG4FJY6_js.MANAGED_LLM_SCHEMA_KNOWN_KEYS; }
22
+ get: function () { return chunkH6AU3WKF_js.MANAGED_LLM_SCHEMA_KNOWN_KEYS; }
23
23
  });
24
24
  Object.defineProperty(exports, "pickManagedLlmSchemaForJsonLd", {
25
25
  enumerable: true,
26
- get: function () { return chunkATG4FJY6_js.pickManagedLlmSchemaForJsonLd; }
26
+ get: function () { return chunkH6AU3WKF_js.pickManagedLlmSchemaForJsonLd; }
27
27
  });
28
28
  Object.defineProperty(exports, "sanitizeLlmsDisclaimerLine", {
29
29
  enumerable: true,
30
- get: function () { return chunkATG4FJY6_js.sanitizeLlmsDisclaimerLine; }
30
+ get: function () { return chunkH6AU3WKF_js.sanitizeLlmsDisclaimerLine; }
31
31
  });
32
32
  Object.defineProperty(exports, "sanitizeLlmsPublicSummary", {
33
33
  enumerable: true,
34
- get: function () { return chunkATG4FJY6_js.sanitizeLlmsPublicSummary; }
34
+ get: function () { return chunkH6AU3WKF_js.sanitizeLlmsPublicSummary; }
35
35
  });
36
36
  Object.defineProperty(exports, "sanitizePrimaryLanguageTag", {
37
37
  enumerable: true,
38
- get: function () { return chunkATG4FJY6_js.sanitizePrimaryLanguageTag; }
38
+ get: function () { return chunkH6AU3WKF_js.sanitizePrimaryLanguageTag; }
39
39
  });
40
40
  //# sourceMappingURL=contract.js.map
41
41
  //# sourceMappingURL=contract.js.map
@@ -1,4 +1,4 @@
1
- export { LLMS_DISCLAIMER_MAX_LENGTH, LLMS_PUBLIC_SUMMARY_MAX_LENGTH, LLM_GEO_CONTRACT_VERSION, MANAGED_LLM_SCHEMA_KNOWN_KEYS, pickManagedLlmSchemaForJsonLd, sanitizeLlmsDisclaimerLine, sanitizeLlmsPublicSummary, sanitizePrimaryLanguageTag } from '../chunk-H23ZT2I2.mjs';
1
+ export { LLMS_DISCLAIMER_MAX_LENGTH, LLMS_PUBLIC_SUMMARY_MAX_LENGTH, LLM_GEO_CONTRACT_VERSION, MANAGED_LLM_SCHEMA_KNOWN_KEYS, pickManagedLlmSchemaForJsonLd, sanitizeLlmsDisclaimerLine, sanitizeLlmsPublicSummary, sanitizePrimaryLanguageTag } from '../chunk-PENNTSJE.mjs';
2
2
  import '../chunk-4XPGGLVP.mjs';
3
3
  //# sourceMappingURL=contract.mjs.map
4
4
  //# sourceMappingURL=contract.mjs.map
@@ -1,5 +1,5 @@
1
- import { G as GenerateLLMSTxtOptions, a as LLMSTxtContent, S as SpeakableSchemaProps, b as SpeakableConfig, A as AEOBlockProps, c as AEOSummaryProps, d as AEODefinitionProps, e as AEOClaimProps, L as LLMsDataResponse, f as LLMBusinessInfo, g as LLMService, h as LLMFAQItem, i as LLMPageSummary } from '../types-DhCAWUmd.mjs';
2
- export { m as AEOCitedContentProps, k as AEOEntityProps, l as AEOProvenanceListProps, C as ContentProvenance, j as LLMContactInfo, n as LLMPortfolioItem } from '../types-DhCAWUmd.mjs';
1
+ import { G as GenerateLLMSTxtOptions, a as LLMSTxtContent, b as LLMsCustomSection, S as SpeakableSchemaProps, c as SpeakableConfig, A as AEOBlockProps, d as AEOSummaryProps, e as AEODefinitionProps, f as AEOClaimProps, L as LLMsDataResponse, g as LLMBusinessInfo, h as LLMService, i as LLMFAQItem, j as LLMPageSummary } from '../writeLLMsTxt-SpMdyHQT.mjs';
2
+ export { n as AEOCitedContentProps, l as AEOEntityProps, m as AEOProvenanceListProps, C as ContentProvenance, k as LLMContactInfo, o as LLMPortfolioItem, W as WriteLLMsTxtOptions, w as writeLLMsTxtToPublic } from '../writeLLMsTxt-SpMdyHQT.mjs';
3
3
  import * as React from 'react';
4
4
  export { LLMS_DISCLAIMER_MAX_LENGTH, LLMS_PUBLIC_SUMMARY_MAX_LENGTH, LLM_GEO_CONTRACT_VERSION, LLMsPayloadMeta, MANAGED_LLM_SCHEMA_KNOWN_KEYS, pickManagedLlmSchemaForJsonLd, sanitizeLlmsDisclaimerLine, sanitizeLlmsPublicSummary, sanitizePrimaryLanguageTag } from './contract.mjs';
5
5
 
@@ -133,6 +133,134 @@ interface AiDiscoveryHeadersOptions {
133
133
  */
134
134
  declare function buildAiDiscoveryHeaders(options: AiDiscoveryHeadersOptions): Record<string, string>;
135
135
 
136
+ /**
137
+ * @sonordev/site-kit/llms — Sourced facts section
138
+ *
139
+ * Formats a site's verified third-party citations into an llms-full.txt
140
+ * section. AI answer engines preferentially reproduce claims that arrive
141
+ * already attributed — handing them the exact claim + source pairing makes
142
+ * the site's framing the citable version.
143
+ *
144
+ * Pair with WriteLLMsTxtOptions.customSections (or SitemapConfig.
145
+ * llmsCustomSections) so the section is appended at build time:
146
+ *
147
+ * llmsCustomSections: async () => {
148
+ * const { CITATIONS } = await import('./lib/data/citations')
149
+ * const section = formatSourcedFactsSection(Object.values(CITATIONS))
150
+ * return section ? [section] : null
151
+ * }
152
+ *
153
+ * Only include citations a human has actually verified against the source
154
+ * URL — this section is a trust surface, not a dumping ground.
155
+ */
156
+
157
+ interface SourcedFact {
158
+ /** The claim, faithful to the source, one sentence. */
159
+ stat: string;
160
+ /** The publishing organization (e.g. "Clio Legal Trends Report"). */
161
+ sourceName: string;
162
+ /** Publication/study year. */
163
+ year?: number;
164
+ /** The opened-and-verified source URL. */
165
+ url?: string;
166
+ }
167
+ interface FormatSourcedFactsOptions {
168
+ /** Section heading (default: "Sourced facts"). */
169
+ title?: string;
170
+ /** Intro line above the list. */
171
+ intro?: string;
172
+ /** Cap the number of facts emitted (default: no cap). */
173
+ maxFacts?: number;
174
+ }
175
+ /**
176
+ * Build the "Sourced facts" custom section from verified citations.
177
+ * Returns null when no usable facts exist so callers can skip cleanly.
178
+ */
179
+ declare function formatSourcedFactsSection(facts: SourcedFact[], options?: FormatSourcedFactsOptions): LLMsCustomSection | null;
180
+
181
+ /**
182
+ * @sonordev/site-kit/llms — AI crawler robots policy
183
+ *
184
+ * 2026 practice separates AI RETRIEVAL crawlers (they fetch pages to answer
185
+ * live queries and cite the source — visibility with attribution) from AI
186
+ * TRAINING crawlers (they ingest content into future model weights). A site
187
+ * can welcome one and decline the other. This module provides:
188
+ *
189
+ * - Curated user-agent lists for both classes (keep current with vendor docs)
190
+ * - buildAiCrawlerRules(): rules for Next's MetadataRoute robots convention
191
+ * - formatContentSignals(): the Cloudflare Content Signals Policy directive
192
+ * (search / ai-input / ai-train) — declarative, not enforcement, and NOT
193
+ * expressible through Next's robots.js convention (it drops unknown
194
+ * directives), hence:
195
+ * - createRobotsTxtHandler(): a plain-text robots.txt route handler for
196
+ * sites that want Content-Signal lines in the emitted file.
197
+ */
198
+ /** Retrieval/search agents — fetch on demand or index for AI search, cite sources. */
199
+ declare const AI_RETRIEVAL_CRAWLERS: readonly ["OAI-SearchBot", "ChatGPT-User", "Claude-SearchBot", "Claude-User", "PerplexityBot", "Perplexity-User", "GoogleOther", "Applebot", "DuckAssistBot"];
200
+ /** Training crawlers — content may enter future model training corpora. */
201
+ declare const AI_TRAINING_CRAWLERS: readonly ["GPTBot", "ClaudeBot", "Google-Extended", "Applebot-Extended", "Meta-ExternalAgent", "FacebookBot", "CCBot", "Bytespider", "cohere-ai", "MistralBot"];
202
+ interface AiCrawlerRulesOptions {
203
+ /** Paths every AI crawler may fetch (default: everything). */
204
+ allow?: string | string[];
205
+ /** Paths withheld from every AI crawler (default: none). */
206
+ disallow?: string | string[];
207
+ /**
208
+ * Policy for TRAINING crawlers. 'allow' (default) welcomes them — the
209
+ * visibility-maximalist choice for marketing sites that WANT to be in
210
+ * model knowledge. 'block' opts out of training while retrieval crawlers
211
+ * stay welcome, so the site is still cited in AI answers.
212
+ */
213
+ training?: 'allow' | 'block';
214
+ }
215
+ interface RobotsRule {
216
+ userAgent: string;
217
+ allow?: string | string[];
218
+ disallow?: string | string[];
219
+ }
220
+ /**
221
+ * Rules for Next's MetadataRoute robots convention (app/robots.(js|ts)).
222
+ * Spread into your existing rules array; order relative to your own rules
223
+ * does not matter (robots matching is per-user-agent, most-specific wins).
224
+ */
225
+ declare function buildAiCrawlerRules(options?: AiCrawlerRulesOptions): RobotsRule[];
226
+ interface ContentSignalsOptions {
227
+ /** May the content be indexed for classic search? Default true. */
228
+ search?: boolean;
229
+ /** May the content feed a live AI answer (RAG/grounding)? Default true. */
230
+ aiInput?: boolean;
231
+ /** May the content train future models? Default true. */
232
+ aiTrain?: boolean;
233
+ }
234
+ /**
235
+ * The Cloudflare Content Signals Policy block for robots.txt — a preferences
236
+ * declaration (the IETF AIPREF group is standardizing the same concepts).
237
+ * Emit near the top of the file, before user-agent groups.
238
+ */
239
+ declare function formatContentSignals(options?: ContentSignalsOptions): string;
240
+ interface RobotsTxtHandlerOptions {
241
+ /** Robots rules (same shape as MetadataRoute robots rules). */
242
+ rules: RobotsRule[];
243
+ /** Content Signals preferences; omit to skip the block entirely. */
244
+ contentSignals?: ContentSignalsOptions;
245
+ /** Absolute sitemap URL(s). */
246
+ sitemap?: string | string[];
247
+ /** Preferred host (emitted as Host:). */
248
+ host?: string;
249
+ }
250
+ /**
251
+ * Plain-text robots.txt route handler (app/robots.txt/route.ts) for sites
252
+ * that want Content-Signal lines — Next's MetadataRoute robots convention
253
+ * cannot emit them. Drop-in:
254
+ *
255
+ * import { createRobotsTxtHandler, buildAiCrawlerRules } from '@sonordev/site-kit/llms'
256
+ * export const GET = createRobotsTxtHandler({
257
+ * rules: [{ userAgent: '*', allow: '/' }, ...buildAiCrawlerRules()],
258
+ * contentSignals: { search: true, aiInput: true, aiTrain: true },
259
+ * sitemap: 'https://example.com/sitemap.xml',
260
+ * })
261
+ */
262
+ declare function createRobotsTxtHandler(options: RobotsTxtHandlerOptions): () => Promise<Response>;
263
+
136
264
  /**
137
265
  * @sonordev/site-kit/llms - Speakable Schema Generator
138
266
  *
@@ -462,43 +590,6 @@ declare function getOptimizedLLMsTxt(options?: {
462
590
  apiKey?: string;
463
591
  }): Promise<string | null>;
464
592
 
465
- /**
466
- * @sonordev/site-kit/llms - Build-Time Write
467
- *
468
- * Fetches AI-optimized llms.txt from Portal API and writes to public/llms.txt
469
- * at build time. Integrates with sitemap flow when optimizedLLMsTxt is enabled.
470
- */
471
-
472
- interface WriteLLMsTxtOptions {
473
- /** Output directory (default: public, relative to cwd) */
474
- outputDir?: string;
475
- /** Write llms-full.txt as well */
476
- full?: boolean;
477
- /** Portal API URL */
478
- apiUrl?: string;
479
- /** Portal API key */
480
- apiKey?: string;
481
- /** Fallback to non-optimized when API fails */
482
- fallbackToLocal?: boolean;
483
- /** When Portal returns empty services/faq/pages, use this to supply local site data */
484
- getLocalData?: () => Promise<LLMsDataResponse | null>;
485
- /** Forward to GET /api/public/llms/txt and align local fallback with site-kit strict page notes */
486
- publicSummaryOnly?: boolean;
487
- }
488
- /**
489
- * Fetch optimized llms.txt from Portal and write to public/llms.txt
490
- * Called at build time after sitemap sync (when optimizedLLMsTxt is enabled)
491
- *
492
- * Never persists a failure stub: when neither the Portal API nor local data
493
- * yields real content, the write is skipped entirely so a previously
494
- * generated (or committed) file keeps serving.
495
- */
496
- declare function writeLLMsTxtToPublic(options?: WriteLLMsTxtOptions): Promise<{
497
- success: boolean;
498
- path: string;
499
- optimized: boolean;
500
- }>;
501
-
502
593
  /**
503
594
  * @sonordev/site-kit/llms - On-demand Revalidation
504
595
  *
@@ -525,4 +616,4 @@ declare function createLlmsRevalidateHandler(secret: string, options?: {
525
616
  revalidatePath?: RevalidatePathFn;
526
617
  }): (request: Request) => Promise<Response>;
527
618
 
528
- export { AEOBlock, AEOBlockProps, AEOCitedContent, AEOClaim, AEOClaimProps, AEOComparison, AEODefinition, AEODefinitionProps, AEOEntity, AEOProvenanceList, AEOStep, AEOSteps, AEOSummary, AEOSummaryProps, type AiDiscoveryHeadersOptions, DEFAULT_SPEAKABLE_SELECTORS, GenerateLLMSTxtOptions, LLMBusinessInfo, LLMFAQItem, LLMPageSummary, LLMSTxtContent, LLMService, LLMsDataResponse, type LlmsLanguageAlternate, SpeakableConfig, SpeakableSchema, SpeakableSchemaProps, type WriteLLMsTxtOptions, buildAiDiscoveryHeaders, createLLMsFullTxtHandler, createLLMsTxtHandler, createLlmsRevalidateHandler, createSpeakableSchema, generateLLMsFullTxt, generateLLMsTxt, getBusinessInfo, getFAQItems, getLLMsData, getOptimizedLLMsTxt, getPageSummaries, getServices, getSpeakableSelectorsForPage, llmsResponseHeaders, writeLLMsTxtToPublic };
619
+ export { AEOBlock, AEOBlockProps, AEOCitedContent, AEOClaim, AEOClaimProps, AEOComparison, AEODefinition, AEODefinitionProps, AEOEntity, AEOProvenanceList, AEOStep, AEOSteps, AEOSummary, AEOSummaryProps, AI_RETRIEVAL_CRAWLERS, AI_TRAINING_CRAWLERS, type AiCrawlerRulesOptions, type AiDiscoveryHeadersOptions, type ContentSignalsOptions, DEFAULT_SPEAKABLE_SELECTORS, type FormatSourcedFactsOptions, GenerateLLMSTxtOptions, LLMBusinessInfo, LLMFAQItem, LLMPageSummary, LLMSTxtContent, LLMService, LLMsCustomSection, LLMsDataResponse, type LlmsLanguageAlternate, type RobotsTxtHandlerOptions, type SourcedFact, SpeakableConfig, SpeakableSchema, SpeakableSchemaProps, buildAiCrawlerRules, buildAiDiscoveryHeaders, createLLMsFullTxtHandler, createLLMsTxtHandler, createLlmsRevalidateHandler, createRobotsTxtHandler, createSpeakableSchema, formatContentSignals, formatSourcedFactsSection, generateLLMsFullTxt, generateLLMsTxt, getBusinessInfo, getFAQItems, getLLMsData, getOptimizedLLMsTxt, getPageSummaries, getServices, getSpeakableSelectorsForPage, llmsResponseHeaders };
@@ -1,5 +1,5 @@
1
- import { G as GenerateLLMSTxtOptions, a as LLMSTxtContent, S as SpeakableSchemaProps, b as SpeakableConfig, A as AEOBlockProps, c as AEOSummaryProps, d as AEODefinitionProps, e as AEOClaimProps, L as LLMsDataResponse, f as LLMBusinessInfo, g as LLMService, h as LLMFAQItem, i as LLMPageSummary } from '../types-xcP_owwn.js';
2
- export { m as AEOCitedContentProps, k as AEOEntityProps, l as AEOProvenanceListProps, C as ContentProvenance, j as LLMContactInfo, n as LLMPortfolioItem } from '../types-xcP_owwn.js';
1
+ import { G as GenerateLLMSTxtOptions, a as LLMSTxtContent, b as LLMsCustomSection, S as SpeakableSchemaProps, c as SpeakableConfig, A as AEOBlockProps, d as AEOSummaryProps, e as AEODefinitionProps, f as AEOClaimProps, L as LLMsDataResponse, g as LLMBusinessInfo, h as LLMService, i as LLMFAQItem, j as LLMPageSummary } from '../writeLLMsTxt-BFaNr4re.js';
2
+ export { n as AEOCitedContentProps, l as AEOEntityProps, m as AEOProvenanceListProps, C as ContentProvenance, k as LLMContactInfo, o as LLMPortfolioItem, W as WriteLLMsTxtOptions, w as writeLLMsTxtToPublic } from '../writeLLMsTxt-BFaNr4re.js';
3
3
  import * as React from 'react';
4
4
  export { LLMS_DISCLAIMER_MAX_LENGTH, LLMS_PUBLIC_SUMMARY_MAX_LENGTH, LLM_GEO_CONTRACT_VERSION, LLMsPayloadMeta, MANAGED_LLM_SCHEMA_KNOWN_KEYS, pickManagedLlmSchemaForJsonLd, sanitizeLlmsDisclaimerLine, sanitizeLlmsPublicSummary, sanitizePrimaryLanguageTag } from './contract.js';
5
5
 
@@ -133,6 +133,134 @@ interface AiDiscoveryHeadersOptions {
133
133
  */
134
134
  declare function buildAiDiscoveryHeaders(options: AiDiscoveryHeadersOptions): Record<string, string>;
135
135
 
136
+ /**
137
+ * @sonordev/site-kit/llms — Sourced facts section
138
+ *
139
+ * Formats a site's verified third-party citations into an llms-full.txt
140
+ * section. AI answer engines preferentially reproduce claims that arrive
141
+ * already attributed — handing them the exact claim + source pairing makes
142
+ * the site's framing the citable version.
143
+ *
144
+ * Pair with WriteLLMsTxtOptions.customSections (or SitemapConfig.
145
+ * llmsCustomSections) so the section is appended at build time:
146
+ *
147
+ * llmsCustomSections: async () => {
148
+ * const { CITATIONS } = await import('./lib/data/citations')
149
+ * const section = formatSourcedFactsSection(Object.values(CITATIONS))
150
+ * return section ? [section] : null
151
+ * }
152
+ *
153
+ * Only include citations a human has actually verified against the source
154
+ * URL — this section is a trust surface, not a dumping ground.
155
+ */
156
+
157
+ interface SourcedFact {
158
+ /** The claim, faithful to the source, one sentence. */
159
+ stat: string;
160
+ /** The publishing organization (e.g. "Clio Legal Trends Report"). */
161
+ sourceName: string;
162
+ /** Publication/study year. */
163
+ year?: number;
164
+ /** The opened-and-verified source URL. */
165
+ url?: string;
166
+ }
167
+ interface FormatSourcedFactsOptions {
168
+ /** Section heading (default: "Sourced facts"). */
169
+ title?: string;
170
+ /** Intro line above the list. */
171
+ intro?: string;
172
+ /** Cap the number of facts emitted (default: no cap). */
173
+ maxFacts?: number;
174
+ }
175
+ /**
176
+ * Build the "Sourced facts" custom section from verified citations.
177
+ * Returns null when no usable facts exist so callers can skip cleanly.
178
+ */
179
+ declare function formatSourcedFactsSection(facts: SourcedFact[], options?: FormatSourcedFactsOptions): LLMsCustomSection | null;
180
+
181
+ /**
182
+ * @sonordev/site-kit/llms — AI crawler robots policy
183
+ *
184
+ * 2026 practice separates AI RETRIEVAL crawlers (they fetch pages to answer
185
+ * live queries and cite the source — visibility with attribution) from AI
186
+ * TRAINING crawlers (they ingest content into future model weights). A site
187
+ * can welcome one and decline the other. This module provides:
188
+ *
189
+ * - Curated user-agent lists for both classes (keep current with vendor docs)
190
+ * - buildAiCrawlerRules(): rules for Next's MetadataRoute robots convention
191
+ * - formatContentSignals(): the Cloudflare Content Signals Policy directive
192
+ * (search / ai-input / ai-train) — declarative, not enforcement, and NOT
193
+ * expressible through Next's robots.js convention (it drops unknown
194
+ * directives), hence:
195
+ * - createRobotsTxtHandler(): a plain-text robots.txt route handler for
196
+ * sites that want Content-Signal lines in the emitted file.
197
+ */
198
+ /** Retrieval/search agents — fetch on demand or index for AI search, cite sources. */
199
+ declare const AI_RETRIEVAL_CRAWLERS: readonly ["OAI-SearchBot", "ChatGPT-User", "Claude-SearchBot", "Claude-User", "PerplexityBot", "Perplexity-User", "GoogleOther", "Applebot", "DuckAssistBot"];
200
+ /** Training crawlers — content may enter future model training corpora. */
201
+ declare const AI_TRAINING_CRAWLERS: readonly ["GPTBot", "ClaudeBot", "Google-Extended", "Applebot-Extended", "Meta-ExternalAgent", "FacebookBot", "CCBot", "Bytespider", "cohere-ai", "MistralBot"];
202
+ interface AiCrawlerRulesOptions {
203
+ /** Paths every AI crawler may fetch (default: everything). */
204
+ allow?: string | string[];
205
+ /** Paths withheld from every AI crawler (default: none). */
206
+ disallow?: string | string[];
207
+ /**
208
+ * Policy for TRAINING crawlers. 'allow' (default) welcomes them — the
209
+ * visibility-maximalist choice for marketing sites that WANT to be in
210
+ * model knowledge. 'block' opts out of training while retrieval crawlers
211
+ * stay welcome, so the site is still cited in AI answers.
212
+ */
213
+ training?: 'allow' | 'block';
214
+ }
215
+ interface RobotsRule {
216
+ userAgent: string;
217
+ allow?: string | string[];
218
+ disallow?: string | string[];
219
+ }
220
+ /**
221
+ * Rules for Next's MetadataRoute robots convention (app/robots.(js|ts)).
222
+ * Spread into your existing rules array; order relative to your own rules
223
+ * does not matter (robots matching is per-user-agent, most-specific wins).
224
+ */
225
+ declare function buildAiCrawlerRules(options?: AiCrawlerRulesOptions): RobotsRule[];
226
+ interface ContentSignalsOptions {
227
+ /** May the content be indexed for classic search? Default true. */
228
+ search?: boolean;
229
+ /** May the content feed a live AI answer (RAG/grounding)? Default true. */
230
+ aiInput?: boolean;
231
+ /** May the content train future models? Default true. */
232
+ aiTrain?: boolean;
233
+ }
234
+ /**
235
+ * The Cloudflare Content Signals Policy block for robots.txt — a preferences
236
+ * declaration (the IETF AIPREF group is standardizing the same concepts).
237
+ * Emit near the top of the file, before user-agent groups.
238
+ */
239
+ declare function formatContentSignals(options?: ContentSignalsOptions): string;
240
+ interface RobotsTxtHandlerOptions {
241
+ /** Robots rules (same shape as MetadataRoute robots rules). */
242
+ rules: RobotsRule[];
243
+ /** Content Signals preferences; omit to skip the block entirely. */
244
+ contentSignals?: ContentSignalsOptions;
245
+ /** Absolute sitemap URL(s). */
246
+ sitemap?: string | string[];
247
+ /** Preferred host (emitted as Host:). */
248
+ host?: string;
249
+ }
250
+ /**
251
+ * Plain-text robots.txt route handler (app/robots.txt/route.ts) for sites
252
+ * that want Content-Signal lines — Next's MetadataRoute robots convention
253
+ * cannot emit them. Drop-in:
254
+ *
255
+ * import { createRobotsTxtHandler, buildAiCrawlerRules } from '@sonordev/site-kit/llms'
256
+ * export const GET = createRobotsTxtHandler({
257
+ * rules: [{ userAgent: '*', allow: '/' }, ...buildAiCrawlerRules()],
258
+ * contentSignals: { search: true, aiInput: true, aiTrain: true },
259
+ * sitemap: 'https://example.com/sitemap.xml',
260
+ * })
261
+ */
262
+ declare function createRobotsTxtHandler(options: RobotsTxtHandlerOptions): () => Promise<Response>;
263
+
136
264
  /**
137
265
  * @sonordev/site-kit/llms - Speakable Schema Generator
138
266
  *
@@ -462,43 +590,6 @@ declare function getOptimizedLLMsTxt(options?: {
462
590
  apiKey?: string;
463
591
  }): Promise<string | null>;
464
592
 
465
- /**
466
- * @sonordev/site-kit/llms - Build-Time Write
467
- *
468
- * Fetches AI-optimized llms.txt from Portal API and writes to public/llms.txt
469
- * at build time. Integrates with sitemap flow when optimizedLLMsTxt is enabled.
470
- */
471
-
472
- interface WriteLLMsTxtOptions {
473
- /** Output directory (default: public, relative to cwd) */
474
- outputDir?: string;
475
- /** Write llms-full.txt as well */
476
- full?: boolean;
477
- /** Portal API URL */
478
- apiUrl?: string;
479
- /** Portal API key */
480
- apiKey?: string;
481
- /** Fallback to non-optimized when API fails */
482
- fallbackToLocal?: boolean;
483
- /** When Portal returns empty services/faq/pages, use this to supply local site data */
484
- getLocalData?: () => Promise<LLMsDataResponse | null>;
485
- /** Forward to GET /api/public/llms/txt and align local fallback with site-kit strict page notes */
486
- publicSummaryOnly?: boolean;
487
- }
488
- /**
489
- * Fetch optimized llms.txt from Portal and write to public/llms.txt
490
- * Called at build time after sitemap sync (when optimizedLLMsTxt is enabled)
491
- *
492
- * Never persists a failure stub: when neither the Portal API nor local data
493
- * yields real content, the write is skipped entirely so a previously
494
- * generated (or committed) file keeps serving.
495
- */
496
- declare function writeLLMsTxtToPublic(options?: WriteLLMsTxtOptions): Promise<{
497
- success: boolean;
498
- path: string;
499
- optimized: boolean;
500
- }>;
501
-
502
593
  /**
503
594
  * @sonordev/site-kit/llms - On-demand Revalidation
504
595
  *
@@ -525,4 +616,4 @@ declare function createLlmsRevalidateHandler(secret: string, options?: {
525
616
  revalidatePath?: RevalidatePathFn;
526
617
  }): (request: Request) => Promise<Response>;
527
618
 
528
- export { AEOBlock, AEOBlockProps, AEOCitedContent, AEOClaim, AEOClaimProps, AEOComparison, AEODefinition, AEODefinitionProps, AEOEntity, AEOProvenanceList, AEOStep, AEOSteps, AEOSummary, AEOSummaryProps, type AiDiscoveryHeadersOptions, DEFAULT_SPEAKABLE_SELECTORS, GenerateLLMSTxtOptions, LLMBusinessInfo, LLMFAQItem, LLMPageSummary, LLMSTxtContent, LLMService, LLMsDataResponse, type LlmsLanguageAlternate, SpeakableConfig, SpeakableSchema, SpeakableSchemaProps, type WriteLLMsTxtOptions, buildAiDiscoveryHeaders, createLLMsFullTxtHandler, createLLMsTxtHandler, createLlmsRevalidateHandler, createSpeakableSchema, generateLLMsFullTxt, generateLLMsTxt, getBusinessInfo, getFAQItems, getLLMsData, getOptimizedLLMsTxt, getPageSummaries, getServices, getSpeakableSelectorsForPage, llmsResponseHeaders, writeLLMsTxtToPublic };
619
+ export { AEOBlock, AEOBlockProps, AEOCitedContent, AEOClaim, AEOClaimProps, AEOComparison, AEODefinition, AEODefinitionProps, AEOEntity, AEOProvenanceList, AEOStep, AEOSteps, AEOSummary, AEOSummaryProps, AI_RETRIEVAL_CRAWLERS, AI_TRAINING_CRAWLERS, type AiCrawlerRulesOptions, type AiDiscoveryHeadersOptions, type ContentSignalsOptions, DEFAULT_SPEAKABLE_SELECTORS, type FormatSourcedFactsOptions, GenerateLLMSTxtOptions, LLMBusinessInfo, LLMFAQItem, LLMPageSummary, LLMSTxtContent, LLMService, LLMsCustomSection, LLMsDataResponse, type LlmsLanguageAlternate, type RobotsTxtHandlerOptions, type SourcedFact, SpeakableConfig, SpeakableSchema, SpeakableSchemaProps, buildAiCrawlerRules, buildAiDiscoveryHeaders, createLLMsFullTxtHandler, createLLMsTxtHandler, createLlmsRevalidateHandler, createRobotsTxtHandler, createSpeakableSchema, formatContentSignals, formatSourcedFactsSection, generateLLMsFullTxt, generateLLMsTxt, getBusinessInfo, getFAQItems, getLLMsData, getOptimizedLLMsTxt, getPageSummaries, getServices, getSpeakableSelectorsForPage, llmsResponseHeaders };