@syntrologie/adapt-chatbot 2.8.0-canary.62 → 2.8.0-canary.621

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 (250) hide show
  1. package/dist/AdaptiveChatBar.composer.test.d.ts +2 -0
  2. package/dist/AdaptiveChatBar.composer.test.d.ts.map +1 -0
  3. package/dist/AdaptiveChatBar.d.ts +248 -0
  4. package/dist/AdaptiveChatBar.d.ts.map +1 -0
  5. package/dist/AdaptiveChatBar.interleave.test.d.ts +9 -0
  6. package/dist/AdaptiveChatBar.interleave.test.d.ts.map +1 -0
  7. package/dist/AdaptiveChatBar.js +12 -0
  8. package/dist/AdaptiveChatBar.js.map +7 -0
  9. package/dist/AdaptiveChatBarMountable.d.ts +93 -0
  10. package/dist/AdaptiveChatBarMountable.d.ts.map +1 -0
  11. package/dist/AdaptiveChatTrail.anchor-scroll.test.d.ts +2 -0
  12. package/dist/AdaptiveChatTrail.anchor-scroll.test.d.ts.map +1 -0
  13. package/dist/AdaptiveChatTrail.d.ts +539 -0
  14. package/dist/AdaptiveChatTrail.d.ts.map +1 -0
  15. package/dist/AdaptiveChatTrail.follow-bottom.test.d.ts +2 -0
  16. package/dist/AdaptiveChatTrail.follow-bottom.test.d.ts.map +1 -0
  17. package/dist/AdaptiveChatTrail.js +12 -0
  18. package/dist/AdaptiveChatTrail.js.map +7 -0
  19. package/dist/AdaptiveChatTrail.live-region.test.d.ts +2 -0
  20. package/dist/AdaptiveChatTrail.live-region.test.d.ts.map +1 -0
  21. package/dist/AdaptiveChatTrail.test.d.ts +2 -0
  22. package/dist/AdaptiveChatTrail.test.d.ts.map +1 -0
  23. package/dist/AdaptiveChipsStrip.d.ts +1156 -0
  24. package/dist/AdaptiveChipsStrip.d.ts.map +1 -0
  25. package/dist/AdaptiveChipsStrip.js +11 -0
  26. package/dist/AdaptiveChipsStrip.js.map +7 -0
  27. package/dist/AdaptiveChipsStripMountable.d.ts +24 -0
  28. package/dist/AdaptiveChipsStripMountable.d.ts.map +1 -0
  29. package/dist/ChatAssistantLit.d.ts +64 -0
  30. package/dist/ChatAssistantLit.d.ts.map +1 -0
  31. package/dist/ChatAssistantLit.js +14 -0
  32. package/dist/ChatAssistantLit.js.map +7 -0
  33. package/dist/ChatSession.d.ts +275 -0
  34. package/dist/ChatSession.d.ts.map +1 -0
  35. package/dist/ChatTransport.d.ts +448 -0
  36. package/dist/ChatTransport.d.ts.map +1 -0
  37. package/dist/InlineRegistryWidgetMount.test.d.ts +2 -0
  38. package/dist/InlineRegistryWidgetMount.test.d.ts.map +1 -0
  39. package/dist/InlineWidgetLiveMount.test.d.ts +2 -0
  40. package/dist/InlineWidgetLiveMount.test.d.ts.map +1 -0
  41. package/dist/LeaveAMessage.leadconnector.integration.test.d.ts +2 -0
  42. package/dist/LeaveAMessage.leadconnector.integration.test.d.ts.map +1 -0
  43. package/dist/LeaveAMessageLit.d.ts +329 -0
  44. package/dist/LeaveAMessageLit.d.ts.map +1 -0
  45. package/dist/LeaveAMessageLit.test.d.ts +2 -0
  46. package/dist/LeaveAMessageLit.test.d.ts.map +1 -0
  47. package/dist/LeaveAMessageMountable.test.d.ts +2 -0
  48. package/dist/LeaveAMessageMountable.test.d.ts.map +1 -0
  49. package/dist/NavLinkMountable.d.ts +25 -0
  50. package/dist/NavLinkMountable.d.ts.map +1 -0
  51. package/dist/NavLinkMountable.test.d.ts +2 -0
  52. package/dist/NavLinkMountable.test.d.ts.map +1 -0
  53. package/dist/TextAnswerMountable.d.ts +17 -0
  54. package/dist/TextAnswerMountable.d.ts.map +1 -0
  55. package/dist/TextAnswerMountable.test.d.ts +2 -0
  56. package/dist/TextAnswerMountable.test.d.ts.map +1 -0
  57. package/dist/Turnstile.d.ts +101 -0
  58. package/dist/Turnstile.d.ts.map +1 -0
  59. package/dist/cdn.d.ts +16 -8
  60. package/dist/cdn.d.ts.map +1 -1
  61. package/dist/chunk-4V5L7IRV.js +4711 -0
  62. package/dist/chunk-4V5L7IRV.js.map +7 -0
  63. package/dist/chunk-EWPPVPJ4.js +14 -0
  64. package/dist/chunk-EWPPVPJ4.js.map +7 -0
  65. package/dist/chunk-HD2NXGYO.js +8445 -0
  66. package/dist/chunk-HD2NXGYO.js.map +7 -0
  67. package/dist/chunk-HV52LYST.js +641 -0
  68. package/dist/chunk-HV52LYST.js.map +7 -0
  69. package/dist/chunk-LY5AGXVD.js +21 -0
  70. package/dist/chunk-LY5AGXVD.js.map +7 -0
  71. package/dist/chunk-T6VEDUXD.js +694 -0
  72. package/dist/chunk-T6VEDUXD.js.map +7 -0
  73. package/dist/chunk-UFTSEIQP.js +1877 -0
  74. package/dist/chunk-UFTSEIQP.js.map +7 -0
  75. package/dist/chunk-VIRIVP7H.js +898 -0
  76. package/dist/chunk-VIRIVP7H.js.map +7 -0
  77. package/dist/chunk-YFZCMLV6.js +4078 -0
  78. package/dist/chunk-YFZCMLV6.js.map +7 -0
  79. package/dist/editor-lit.d.ts +37 -0
  80. package/dist/editor-lit.d.ts.map +1 -0
  81. package/dist/editor-lit.js +134 -0
  82. package/dist/editor-lit.js.map +7 -0
  83. package/dist/editorToken.d.ts +23 -0
  84. package/dist/editorToken.d.ts.map +1 -0
  85. package/dist/element-session.d.ts +3 -0
  86. package/dist/element-session.d.ts.map +1 -0
  87. package/dist/element-session.js +9 -0
  88. package/dist/element-session.js.map +7 -0
  89. package/dist/elements/ActionHandler.d.ts +34 -0
  90. package/dist/elements/ActionHandler.d.ts.map +1 -0
  91. package/dist/elements/ElementInstanceStore.d.ts +232 -0
  92. package/dist/elements/ElementInstanceStore.d.ts.map +1 -0
  93. package/dist/elements/ElementInstanceStore.test.d.ts +2 -0
  94. package/dist/elements/ElementInstanceStore.test.d.ts.map +1 -0
  95. package/dist/elements/ElementSessionController.d.ts +37 -0
  96. package/dist/elements/ElementSessionController.d.ts.map +1 -0
  97. package/dist/elements/ElementSessionController.test.d.ts +2 -0
  98. package/dist/elements/ElementSessionController.test.d.ts.map +1 -0
  99. package/dist/elements/ElementTypeHandler.d.ts +77 -0
  100. package/dist/elements/ElementTypeHandler.d.ts.map +1 -0
  101. package/dist/elements/ItemHandler.d.ts +60 -0
  102. package/dist/elements/ItemHandler.d.ts.map +1 -0
  103. package/dist/elements/ItemHandler.test.d.ts +2 -0
  104. package/dist/elements/ItemHandler.test.d.ts.map +1 -0
  105. package/dist/elements/TileHandler.d.ts +52 -0
  106. package/dist/elements/TileHandler.d.ts.map +1 -0
  107. package/dist/elements/TileHandler.test.d.ts +2 -0
  108. package/dist/elements/TileHandler.test.d.ts.map +1 -0
  109. package/dist/elements/__tests__/ElementInstanceStore.recall.test.d.ts +2 -0
  110. package/dist/elements/__tests__/ElementInstanceStore.recall.test.d.ts.map +1 -0
  111. package/dist/elements/blockRenderer.d.ts +46 -0
  112. package/dist/elements/blockRenderer.d.ts.map +1 -0
  113. package/dist/elements/blockRenderer.test.d.ts +13 -0
  114. package/dist/elements/blockRenderer.test.d.ts.map +1 -0
  115. package/dist/elements/blocks.d.ts +58 -0
  116. package/dist/elements/blocks.d.ts.map +1 -0
  117. package/dist/elements/createElementStore.d.ts +11 -0
  118. package/dist/elements/createElementStore.d.ts.map +1 -0
  119. package/dist/elements/envelope.d.ts +24 -0
  120. package/dist/elements/envelope.d.ts.map +1 -0
  121. package/dist/elements/fetcher.d.ts +43 -0
  122. package/dist/elements/fetcher.d.ts.map +1 -0
  123. package/dist/elements/index.d.ts +33 -0
  124. package/dist/elements/index.d.ts.map +1 -0
  125. package/dist/elements/store-singleton.d.ts +4 -0
  126. package/dist/elements/store-singleton.d.ts.map +1 -0
  127. package/dist/elements/tileLifecycleProps.d.ts +13 -0
  128. package/dist/elements/tileLifecycleProps.d.ts.map +1 -0
  129. package/dist/elements/types.d.ts +117 -0
  130. package/dist/elements/types.d.ts.map +1 -0
  131. package/dist/findSmartCanvas.d.ts +19 -0
  132. package/dist/findSmartCanvas.d.ts.map +1 -0
  133. package/dist/hostAgentController.d.ts +65 -0
  134. package/dist/hostAgentController.d.ts.map +1 -0
  135. package/dist/hostAgentController.test.d.ts +2 -0
  136. package/dist/hostAgentController.test.d.ts.map +1 -0
  137. package/dist/observer/__tests__/allowlist.test.d.ts +9 -0
  138. package/dist/observer/__tests__/allowlist.test.d.ts.map +1 -0
  139. package/dist/observer/__tests__/bus-translate.test.d.ts +16 -0
  140. package/dist/observer/__tests__/bus-translate.test.d.ts.map +1 -0
  141. package/dist/observer/__tests__/detector-observation-contract.test.d.ts +25 -0
  142. package/dist/observer/__tests__/detector-observation-contract.test.d.ts.map +1 -0
  143. package/dist/observer/__tests__/lifecycle.test.d.ts +2 -0
  144. package/dist/observer/__tests__/lifecycle.test.d.ts.map +1 -0
  145. package/dist/observer/__tests__/observer-enrich.test.d.ts +10 -0
  146. package/dist/observer/__tests__/observer-enrich.test.d.ts.map +1 -0
  147. package/dist/observer/__tests__/observer-isolation.test.d.ts +13 -0
  148. package/dist/observer/__tests__/observer-isolation.test.d.ts.map +1 -0
  149. package/dist/observer/__tests__/queue.test.d.ts +2 -0
  150. package/dist/observer/__tests__/queue.test.d.ts.map +1 -0
  151. package/dist/observer/__tests__/transport.test.d.ts +2 -0
  152. package/dist/observer/__tests__/transport.test.d.ts.map +1 -0
  153. package/dist/observer/allowlist.d.ts +32 -0
  154. package/dist/observer/allowlist.d.ts.map +1 -0
  155. package/dist/observer/bus-translate.d.ts +33 -0
  156. package/dist/observer/bus-translate.d.ts.map +1 -0
  157. package/dist/observer/index.d.ts +44 -0
  158. package/dist/observer/index.d.ts.map +1 -0
  159. package/dist/observer/queue.d.ts +63 -0
  160. package/dist/observer/queue.d.ts.map +1 -0
  161. package/dist/observer/transport.d.ts +27 -0
  162. package/dist/observer/transport.d.ts.map +1 -0
  163. package/dist/observer/wire.d.ts +54 -0
  164. package/dist/observer/wire.d.ts.map +1 -0
  165. package/dist/observer/wire.test.d.ts +2 -0
  166. package/dist/observer/wire.test.d.ts.map +1 -0
  167. package/dist/personas.d.ts +30 -0
  168. package/dist/personas.d.ts.map +1 -0
  169. package/dist/runtime-lit.d.ts +8 -0
  170. package/dist/runtime-lit.d.ts.map +1 -0
  171. package/dist/runtime.d.ts +63 -5
  172. package/dist/runtime.d.ts.map +1 -1
  173. package/dist/runtime.js +4439 -28
  174. package/dist/runtime.js.map +7 -0
  175. package/dist/schema.d.ts +3688 -11
  176. package/dist/schema.d.ts.map +1 -1
  177. package/dist/schema.js +578 -30
  178. package/dist/schema.js.map +7 -0
  179. package/dist/support-chat/__tests__/lc-fetch-stub.d.ts +52 -0
  180. package/dist/support-chat/__tests__/lc-fetch-stub.d.ts.map +1 -0
  181. package/dist/support-chat/boot.d.ts +47 -0
  182. package/dist/support-chat/boot.d.ts.map +1 -0
  183. package/dist/support-chat/boot.test.d.ts +2 -0
  184. package/dist/support-chat/boot.test.d.ts.map +1 -0
  185. package/dist/support-chat/crisp.d.ts +4 -0
  186. package/dist/support-chat/crisp.d.ts.map +1 -0
  187. package/dist/support-chat/crisp.test.d.ts +2 -0
  188. package/dist/support-chat/crisp.test.d.ts.map +1 -0
  189. package/dist/support-chat/inbox.d.ts +57 -0
  190. package/dist/support-chat/inbox.d.ts.map +1 -0
  191. package/dist/support-chat/inbox.test.d.ts +2 -0
  192. package/dist/support-chat/inbox.test.d.ts.map +1 -0
  193. package/dist/support-chat/leadconnector.d.ts +13 -0
  194. package/dist/support-chat/leadconnector.d.ts.map +1 -0
  195. package/dist/support-chat/leadconnector.test.d.ts +2 -0
  196. package/dist/support-chat/leadconnector.test.d.ts.map +1 -0
  197. package/dist/support-chat/registry.d.ts +5 -0
  198. package/dist/support-chat/registry.d.ts.map +1 -0
  199. package/dist/support-chat/registry.test.d.ts +2 -0
  200. package/dist/support-chat/registry.test.d.ts.map +1 -0
  201. package/dist/support-chat/schema-widgetid.test.d.ts +2 -0
  202. package/dist/support-chat/schema-widgetid.test.d.ts.map +1 -0
  203. package/dist/support-chat/types.d.ts +19 -0
  204. package/dist/support-chat/types.d.ts.map +1 -0
  205. package/dist/test/setup.d.ts +1 -0
  206. package/dist/test/setup.d.ts.map +1 -0
  207. package/dist/types.d.ts +89 -40
  208. package/dist/types.d.ts.map +1 -1
  209. package/package.json +49 -24
  210. package/dist/ChatAssistant.d.ts +0 -18
  211. package/dist/ChatAssistant.d.ts.map +0 -1
  212. package/dist/ChatAssistant.js +0 -178
  213. package/dist/SyntroChatbot.d.ts +0 -14
  214. package/dist/SyntroChatbot.d.ts.map +0 -1
  215. package/dist/SyntroChatbot.js +0 -56
  216. package/dist/actionParser.d.ts +0 -15
  217. package/dist/actionParser.d.ts.map +0 -1
  218. package/dist/actionParser.js +0 -52
  219. package/dist/apiClient.d.ts +0 -23
  220. package/dist/apiClient.d.ts.map +0 -1
  221. package/dist/apiClient.js +0 -51
  222. package/dist/cdn.js +0 -37
  223. package/dist/editor.d.ts +0 -17
  224. package/dist/editor.d.ts.map +0 -1
  225. package/dist/editor.js +0 -36
  226. package/dist/tools/bridge.d.ts +0 -26
  227. package/dist/tools/bridge.d.ts.map +0 -1
  228. package/dist/tools/bridge.js +0 -25
  229. package/dist/tools/expanders.d.ts +0 -17
  230. package/dist/tools/expanders.d.ts.map +0 -1
  231. package/dist/tools/expanders.js +0 -41
  232. package/dist/tools/index.d.ts +0 -14
  233. package/dist/tools/index.d.ts.map +0 -1
  234. package/dist/tools/index.js +0 -11
  235. package/dist/tools/registrations/GetContextTool.d.ts +0 -7
  236. package/dist/tools/registrations/GetContextTool.d.ts.map +0 -1
  237. package/dist/tools/registrations/GetContextTool.js +0 -18
  238. package/dist/tools/registrations/ScrollToTool.d.ts +0 -7
  239. package/dist/tools/registrations/ScrollToTool.d.ts.map +0 -1
  240. package/dist/tools/registrations/ScrollToTool.js +0 -38
  241. package/dist/tools/registrations/ShowOverlayTool.d.ts +0 -7
  242. package/dist/tools/registrations/ShowOverlayTool.d.ts.map +0 -1
  243. package/dist/tools/registrations/ShowOverlayTool.js +0 -47
  244. package/dist/tools/registrations/index.d.ts +0 -19
  245. package/dist/tools/registrations/index.d.ts.map +0 -1
  246. package/dist/tools/registrations/index.js +0 -7
  247. package/dist/types.js +0 -6
  248. package/dist/useChat.d.ts +0 -25
  249. package/dist/useChat.d.ts.map +0 -1
  250. package/dist/useChat.js +0 -106
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;IACvB,4CAA4C;;IAE5C,4CAA4C;;IAE5C,iDAAiD;;IAEjD,6DAA6D;;;;;;;;;;;;EAE7D,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAE/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;GAElD;AAMD;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;QAzBtB,4CAA4C;;QAE5C,4CAA4C;;QAE5C,iDAAiD;;QAEjD,6DAA6D;;;;;;;;;;;;;GAyB9D,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -1,34 +1,582 @@
1
- /**
2
- * Adaptive Chatbot - Config Schema
3
- *
4
- * Zod schema for validating chatbot widget configuration.
5
- */
6
- import { z } from 'zod';
7
- export const configSchema = z.object({
8
- /** Backend URL for the chat API endpoint */
9
- backendUrl: z.string().min(1, 'Backend URL is required'),
10
- /** MLflow run ID for experiment tracking */
11
- mlflowRunId: z.string().optional(),
12
- /** Greeting message shown when the chat opens */
13
- greeting: z.string().default('Hi! How can I help?'),
14
- /** Maximum number of history messages sent to the backend */
15
- maxHistory: z.number().int().min(1).max(100).default(20),
1
+ import {
2
+ SuggestionChipSchema
3
+ } from "./chunk-HV52LYST.js";
4
+ import {
5
+ external_exports
6
+ } from "./chunk-4V5L7IRV.js";
7
+ import "./chunk-LY5AGXVD.js";
8
+
9
+ // src/generated/mount-tool-description.json
10
+ var mount_tool_description_default = {
11
+ maxLength: 1024,
12
+ base: "Mount a {type_key} element. Pick template_id; author the fields.",
13
+ templatesPrefix: " Templates: ",
14
+ templateItem: "'{id}' \u2014 {description}",
15
+ templateSeparator: "; ",
16
+ notePrefix: " ",
17
+ notes: {
18
+ "syntro-product-reco-carousel": "The store's recommendation engine picks the products in this carousel; heading and focus steer it, they do not choose which products appear.",
19
+ "adaptive-chatbot:leave-a-message": "Mounting shows the visitor a draft card; nothing is sent until the visitor taps Send in it, so never say it was sent or is on its way: ask them to review it and tap Send."
20
+ }
21
+ };
22
+
23
+ // src/generated/widget-props-field-index.json
24
+ var widget_props_field_index_default = {
25
+ $comment: "DO NOT EDIT BY HAND \u2014 generated from packages/runtime-sdk/schema/canvas-config.schema.json and platform/common/syntrologie_common/sdk/widget-props-always-allowed-fields.json. Re-run: node packages/runtime-sdk/scripts/generate-widget-props-field-index.mjs. Consumed by packages/adaptives/adaptive-chatbot/src/schema.ts (uiTemplates dangling-field-reference rule). Mirrors platform/common/syntrologie_common/sdk/schema.py:widget_schema_field_exists \u2014 same resolution semantics, same widget allowlist (_DANGLING_CHECK_WIDGETS in adaptive_tools_gen.py) \u2014 keep both in sync. The $alwaysAllowedFields key is the merged tileChromeFields/handleField/handlesField from the always-allowed-fields JSON above \u2014 fields that are NEVER real widget-props properties for ANY widget.",
26
+ $alwaysAllowedFields: [
27
+ "icon",
28
+ "product_handle",
29
+ "product_handles",
30
+ "subtitle",
31
+ "title"
32
+ ],
33
+ "adaptive-product:card": [
34
+ "density",
35
+ "product",
36
+ "product.attributes",
37
+ "product.availability",
38
+ "product.badge",
39
+ "product.badge.label",
40
+ "product.badge.tone",
41
+ "product.brand",
42
+ "product.ctas",
43
+ "product.framing",
44
+ "product.id",
45
+ "product.identifiers",
46
+ "product.identifiers.gtin",
47
+ "product.identifiers.mpn",
48
+ "product.identifiers.shopifyHandle",
49
+ "product.identifiers.sku",
50
+ "product.identifiers.wooSlug",
51
+ "product.image",
52
+ "product.image.alt",
53
+ "product.image.bind",
54
+ "product.image.src",
55
+ "product.labels",
56
+ "product.name",
57
+ "product.price",
58
+ "product.price.amount",
59
+ "product.price.bind",
60
+ "product.price.cadence",
61
+ "product.rating",
62
+ "product.rating.count",
63
+ "product.rating.max",
64
+ "product.rating.value",
65
+ "product.salePrice",
66
+ "product.salePrice.amount",
67
+ "product.salePrice.bind",
68
+ "product.salePrice.cadence",
69
+ "product.salePrice.validUntil",
70
+ "product.specs",
71
+ "product.tagline",
72
+ "product.variants",
73
+ "product.variants.attributes",
74
+ "product.variants.variants",
75
+ "visibleFacts"
76
+ ],
77
+ "adaptive-product:comparison": [
78
+ "heading",
79
+ "products",
80
+ "rows"
81
+ ]
82
+ };
83
+
84
+ // src/schema.ts
85
+ var ALWAYS_ALLOWED_FIELDS_KEY = "$alwaysAllowedFields";
86
+ var backendUrlSchema = external_exports.union(
87
+ [
88
+ external_exports.string().url("backendUrl must be an absolute URL").regex(/^https?:\/\//, "backendUrl must use http or https"),
89
+ external_exports.literal("")
90
+ ],
91
+ {
92
+ errorMap: () => ({
93
+ message: 'backendUrl must be either "" (same-origin) or an absolute http(s):// URL \u2014 relative paths are not allowed'
94
+ })
95
+ }
96
+ );
97
+ var fallbackHrefSchema = external_exports.union(
98
+ [
99
+ external_exports.string().url("fallback.ctaHref must be an absolute URL").regex(/^https?:\/\//, "fallback.ctaHref must use http or https"),
100
+ external_exports.literal("")
101
+ ],
102
+ {
103
+ errorMap: () => ({
104
+ message: 'fallback.ctaHref must be either "" (same-origin) or an absolute http(s):// URL'
105
+ })
106
+ }
107
+ );
108
+ var fallbackSchema = external_exports.object({
109
+ /** Header shown on the fallback card. Defaults to a generic "unavailable" copy. */
110
+ title: external_exports.string().optional(),
111
+ /** Body copy explaining the situation in the customer's voice. */
112
+ message: external_exports.string().optional(),
113
+ /** Label for the call-to-action link. If `ctaHref` is set this should be too. */
114
+ ctaLabel: external_exports.string().optional(),
115
+ /** Target of the CTA link — typically the customer's existing support path. */
116
+ ctaHref: fallbackHrefSchema.optional()
117
+ }).strict();
118
+ var configSchema = external_exports.object({
119
+ /** Backend URL for the chat API endpoint. "" for same-origin, or an absolute http(s):// URL. */
120
+ backendUrl: backendUrlSchema,
121
+ /** MLflow run ID for experiment tracking */
122
+ mlflowRunId: external_exports.string().optional(),
123
+ /** Greeting message shown when the chat opens */
124
+ greeting: external_exports.string().default("Hi! How can I help?"),
125
+ /** Maximum number of history messages sent to the backend */
126
+ maxHistory: external_exports.number().int().min(1).max(100).default(20),
127
+ /** Quick-reply suggestions shown in the empty state */
128
+ suggestions: external_exports.array(external_exports.string()).optional(),
129
+ voiceInput: external_exports.boolean().optional().describe(
130
+ "Show a mic button that dictates into the input via the browser Web Speech API where supported (vendor-cloud recognition; degrades to hidden when unsupported). Absent/false = no button."
131
+ ),
132
+ /**
133
+ * Per-customer fallback card rendered when chat can't open (Turnstile
134
+ * failure, network error, etc.). The end-user is redirected to the
135
+ * customer's normal support path — no Cloudflare-branded challenge is
136
+ * ever shown.
137
+ */
138
+ fallback: fallbackSchema.optional()
16
139
  });
17
- export function validateChatbotConfig(data) {
18
- return configSchema.safeParse(data);
140
+ function validateChatbotConfig(data) {
141
+ return configSchema.safeParse(data);
19
142
  }
20
- // ============================================================================
21
- // Tile Widget Props Export
22
- // ============================================================================
23
- /**
24
- * Tile widget definitions for unified JSON Schema generation.
25
- * Maps widget IDs to their props validation schema so the build script
26
- * can inject if/then constraints on tile.props.
27
- */
28
- export const tileWidgets = [
29
- {
30
- widget: 'adaptive-chatbot:assistant',
31
- defName: 'chatbotAssistantProps',
32
- propsSchema: configSchema,
143
+ var chatBarPropsSchema = external_exports.object({
144
+ placeholder: external_exports.string().optional().describe('Input placeholder copy. Defaults to "Ask, find, or navigate\u2026".'),
145
+ assistantName: external_exports.string().optional().describe(
146
+ 'Name shown in the (forceExpanded) chat header. Defaults to "Assistant". Per-workspace override, e.g. "Vela Concierge".'
147
+ ),
148
+ personas: external_exports.array(
149
+ external_exports.object({
150
+ id: external_exports.string().min(1),
151
+ name: external_exports.string().min(1).max(24),
152
+ role_title: external_exports.string().max(48).optional(),
153
+ pronouns: external_exports.string().max(16).optional(),
154
+ avatar: external_exports.object({
155
+ sm: external_exports.string().url().optional(),
156
+ md: external_exports.string().url().optional(),
157
+ lg: external_exports.string().url().optional()
158
+ }).optional(),
159
+ intro_line: external_exports.string().max(160).optional()
160
+ })
161
+ ).optional().describe(
162
+ 'Persona roster (FEAT-1784917430): human-presenting concierge identities. One is 50:50 sticky-assigned per visitor; its name/avatar render in the header, trail, and typing line, and the name enters the LLM voice. The header always carries an "AI concierge" disclosure.'
163
+ ),
164
+ // `messages` and `inFlight` are runtime state — included here so
165
+ // authors who pre-seed a conversation (e.g. a demo or guided
166
+ // walkthrough) can declare it. Most production deployments will
167
+ // leave these blank and update them via the mountable's API.
168
+ messages: external_exports.array(
169
+ external_exports.object({
170
+ id: external_exports.union([external_exports.number(), external_exports.string()]),
171
+ role: external_exports.enum(["user", "assistant"]),
172
+ text: external_exports.string()
173
+ })
174
+ ).optional(),
175
+ inFlight: external_exports.boolean().optional(),
176
+ forceExpanded: external_exports.boolean().optional().describe(
177
+ "Render the trail + input expanded immediately on mount instead of waiting for the first message. Used on canvases where the chat IS the surface (velvet, dedicated drawer)."
178
+ ),
179
+ backendUrl: external_exports.string().optional().describe(
180
+ "Backend chat endpoint. Empty string + non-undefined enables relative-URL fetches (the host page proxies /api/* to the backend)."
181
+ ),
182
+ greeting: external_exports.string().optional().describe("Greeting line shown above the input on first mount."),
183
+ introSuggestion: external_exports.object({
184
+ label: external_exports.string().min(1),
185
+ prompt: external_exports.string().min(1)
186
+ }).optional().describe(
187
+ "Pre-conversation tap-target shown alongside the greeting when no messages exist. `label` is the button copy the visitor sees; `prompt` is the text submitted on tap, exactly as if they had typed it."
188
+ ),
189
+ fallback: external_exports.object({
190
+ title: external_exports.string().optional(),
191
+ message: external_exports.string().optional(),
192
+ ctaLabel: external_exports.string().optional()
193
+ }).passthrough().optional().describe('Per-customer "chat unavailable" card shown when the transport gives up.'),
194
+ elementsEnabled: external_exports.boolean().optional().describe(
195
+ "Opt the chat into the LLM-authored UI element pipeline. When true AND uiTemplates is set, the backend exposes mount_element / patch_element / unmount_element tools scoped to the declared templates."
196
+ ),
197
+ uiTemplates: external_exports.record(external_exports.unknown()).superRefine((block, ctx) => {
198
+ function asStringArray(v) {
199
+ if (!Array.isArray(v)) return [];
200
+ return v.filter((x) => typeof x === "string");
201
+ }
202
+ function asFieldsRecord(v) {
203
+ if (v !== null && typeof v === "object" && !Array.isArray(v)) {
204
+ return v;
205
+ }
206
+ return {};
207
+ }
208
+ function templateSignature(t) {
209
+ const fields = asFieldsRecord(t.fields);
210
+ const fieldKeys = new Set(Object.keys(fields));
211
+ const requiredKeys = /* @__PURE__ */ new Set();
212
+ for (const [k, spec] of Object.entries(fields)) {
213
+ const s = spec;
214
+ if (s && typeof s === "object" && s.required === true) {
215
+ requiredKeys.add(k);
216
+ }
217
+ }
218
+ const pinned = new Set(asStringArray(t.admin_pinned_fields));
219
+ const enumValues = [];
220
+ for (const [k, spec] of Object.entries(fields)) {
221
+ const s = spec;
222
+ if (s && typeof s === "object" && s.type === "enum") {
223
+ const vals = asStringArray(s.values).slice().sort();
224
+ enumValues.push([k, vals]);
225
+ }
226
+ }
227
+ enumValues.sort(([a], [b]) => a.localeCompare(b));
228
+ return [fieldKeys, requiredKeys, pinned, enumValues];
229
+ }
230
+ function signaturesEqual(a, b) {
231
+ if (a[0].size !== b[0].size) return false;
232
+ for (const k of a[0]) if (!b[0].has(k)) return false;
233
+ if (a[1].size !== b[1].size) return false;
234
+ for (const k of a[1]) if (!b[1].has(k)) return false;
235
+ if (a[2].size !== b[2].size) return false;
236
+ for (const k of a[2]) if (!b[2].has(k)) return false;
237
+ if (a[3].length !== b[3].length) return false;
238
+ for (let i = 0; i < a[3].length; i++) {
239
+ const [ak, av] = a[3][i];
240
+ const [bk, bv] = b[3][i];
241
+ if (ak !== bk) return false;
242
+ if (av.length !== bv.length) return false;
243
+ for (let j = 0; j < av.length; j++) {
244
+ if (av[j] !== bv[j]) return false;
245
+ }
246
+ }
247
+ return true;
248
+ }
249
+ const groups = /* @__PURE__ */ new Map();
250
+ const tiles = Array.isArray(block.tiles) ? block.tiles : [];
251
+ for (const t of tiles) {
252
+ if (typeof t.widget === "string") {
253
+ const key = `widget:${t.widget}`;
254
+ const group = groups.get(key) ?? [];
255
+ group.push(t);
256
+ groups.set(key, group);
257
+ }
258
+ }
259
+ const items = Array.isArray(block.items) ? block.items : [];
260
+ const actions = Array.isArray(block.actions) ? block.actions : [];
261
+ for (const t of [...items, ...actions]) {
262
+ if (typeof t.kind === "string") {
263
+ const key = `kind:${t.kind}`;
264
+ const group = groups.get(key) ?? [];
265
+ group.push(t);
266
+ groups.set(key, group);
267
+ }
268
+ }
269
+ const widgetFieldIndex = widget_props_field_index_default;
270
+ const alwaysAllowedRaw = widgetFieldIndex[ALWAYS_ALLOWED_FIELDS_KEY];
271
+ if (!Array.isArray(alwaysAllowedRaw)) {
272
+ throw new Error(
273
+ `widget-props-field-index.json is missing "${ALWAYS_ALLOWED_FIELDS_KEY}" \u2014 regenerate via node packages/runtime-sdk/scripts/generate-widget-props-field-index.mjs`
274
+ );
275
+ }
276
+ const NEVER_DANGLING_FIELDS = new Set(alwaysAllowedRaw);
277
+ function checkDanglingFieldReferences(t, where) {
278
+ if (typeof t.widget !== "string") return;
279
+ const validPaths = widgetFieldIndex[t.widget];
280
+ if (!validPaths) return;
281
+ const validSet = new Set(validPaths);
282
+ const fields = asFieldsRecord(t.fields);
283
+ for (const key of Object.keys(fields)) {
284
+ if (validSet.has(key) || NEVER_DANGLING_FIELDS.has(key)) continue;
285
+ ctx.addIssue({
286
+ code: external_exports.ZodIssueCode.custom,
287
+ message: `${where}: field ${JSON.stringify(key)} does not exist in the ${JSON.stringify(t.widget)} widget's props schema \u2014 it was removed, renamed, or never existed. Remove it from \`fields\`, or point it at the widget's current path.`
288
+ });
289
+ }
290
+ }
291
+ const RESERVED_SEGMENTS = /* @__PURE__ */ new Set([
292
+ "__class__",
293
+ "__init__",
294
+ "__proto__",
295
+ "__dict__",
296
+ "__getattribute__",
297
+ "__setattr__",
298
+ "constructor",
299
+ "prototype"
300
+ ]);
301
+ function checkTemplate(t, where) {
302
+ const fields = asFieldsRecord(t.fields);
303
+ const fieldKeys = Object.keys(fields);
304
+ const unknownPins = asStringArray(t.admin_pinned_fields).filter(
305
+ (name) => !(name in fields)
306
+ );
307
+ if (unknownPins.length > 0) {
308
+ ctx.addIssue({
309
+ code: external_exports.ZodIssueCode.custom,
310
+ message: `${where}: admin_pinned_fields references unknown fields: ${JSON.stringify(unknownPins)} \u2014 every pinned name must be a key of \`fields\` (declared: ${JSON.stringify(fieldKeys)})`
311
+ });
312
+ }
313
+ if (typeof t.default_slot === "string") {
314
+ const slots = Array.isArray(t.allowed_slots) ? t.allowed_slots.map((s) => s && typeof s === "object" ? s.slot : void 0).filter((s) => typeof s === "string") : [];
315
+ if (!slots.includes(t.default_slot)) {
316
+ ctx.addIssue({
317
+ code: external_exports.ZodIssueCode.custom,
318
+ message: `${where}: default_slot ${JSON.stringify(t.default_slot)} is not in allowed_slots ${JSON.stringify(slots)}`
319
+ });
320
+ }
321
+ }
322
+ if (typeof t.default_parent === "string") {
323
+ const parents = Array.isArray(t.allowed_parents) ? t.allowed_parents.map((p) => p && typeof p === "object" ? p.tile_id : void 0).filter((p) => typeof p === "string") : [];
324
+ if (!parents.includes(t.default_parent)) {
325
+ ctx.addIssue({
326
+ code: external_exports.ZodIssueCode.custom,
327
+ message: `${where}: default_parent ${JSON.stringify(t.default_parent)} is not in allowed_parents ${JSON.stringify(parents)}`
328
+ });
329
+ }
330
+ }
331
+ if (typeof t.placement_type === "string") {
332
+ const targets = Array.isArray(t.allowed_targets) ? t.allowed_targets : [];
333
+ if (t.placement_type === "selector" && targets.length === 0) {
334
+ ctx.addIssue({
335
+ code: external_exports.ZodIssueCode.custom,
336
+ message: `${where}: placement_type 'selector' requires a non-empty allowed_targets list`
337
+ });
338
+ }
339
+ if (t.placement_type === "none" && targets.length > 0) {
340
+ ctx.addIssue({
341
+ code: external_exports.ZodIssueCode.custom,
342
+ message: `${where}: placement_type 'none' must have empty allowed_targets`
343
+ });
344
+ }
345
+ }
346
+ for (const key of fieldKeys) {
347
+ const segments = key.split(".");
348
+ if (segments.some((seg) => seg.length === 0)) {
349
+ ctx.addIssue({
350
+ code: external_exports.ZodIssueCode.custom,
351
+ message: `${where}: field key ${JSON.stringify(key)} contains empty segment(s) (leading dot, trailing dot, or '..' are not allowed)`
352
+ });
353
+ continue;
354
+ }
355
+ for (const seg of segments) {
356
+ if (RESERVED_SEGMENTS.has(seg)) {
357
+ ctx.addIssue({
358
+ code: external_exports.ZodIssueCode.custom,
359
+ message: `${where}: field key ${JSON.stringify(key)} uses reserved segment ${JSON.stringify(seg)} \u2014 dunder / prototype-pollution names are blocked`
360
+ });
361
+ }
362
+ }
363
+ }
364
+ const sortedKeys = [...fieldKeys].sort();
365
+ for (let i = 0; i < sortedKeys.length - 1; i++) {
366
+ const a = sortedKeys[i];
367
+ const b = sortedKeys[i + 1];
368
+ if (b.startsWith(`${a}.`)) {
369
+ ctx.addIssue({
370
+ code: external_exports.ZodIssueCode.custom,
371
+ message: `${where}: field keys ${JSON.stringify(a)} and ${JSON.stringify(b)} claim the same prefix namespace \u2014 declaring both is ambiguous (a patch on the parent would overwrite the child)`
372
+ });
373
+ }
374
+ }
375
+ }
376
+ for (const t of tiles) {
377
+ checkTemplate(t, `tile ${JSON.stringify(String(t.id))}`);
378
+ checkDanglingFieldReferences(t, `tile ${JSON.stringify(String(t.id))}`);
379
+ }
380
+ for (const t of items) checkTemplate(t, `item ${JSON.stringify(String(t.id))}`);
381
+ for (const t of actions) checkTemplate(t, `action ${JSON.stringify(String(t.id))}`);
382
+ for (const [typeKey, members] of groups) {
383
+ if (members.length < 2) continue;
384
+ const headSig = templateSignature(members[0]);
385
+ for (let i = 1; i < members.length; i++) {
386
+ const other = members[i];
387
+ if (!signaturesEqual(headSig, templateSignature(other))) {
388
+ ctx.addIssue({
389
+ code: external_exports.ZodIssueCode.custom,
390
+ message: `templates of type ${JSON.stringify(typeKey)} must share an authorable field shape, but ${JSON.stringify(String(members[0].id))} and ${JSON.stringify(String(other.id))} differ (field names / required / admin_pinned / enum values)`
391
+ });
392
+ }
393
+ }
394
+ }
395
+ const toolSpec = mount_tool_description_default;
396
+ const toolGroups = /* @__PURE__ */ new Map();
397
+ for (const t of tiles) {
398
+ if (typeof t.widget === "string")
399
+ toolGroups.set(t.widget, [...toolGroups.get(t.widget) ?? [], t]);
400
+ }
401
+ for (const t of [...items, ...actions]) {
402
+ if (typeof t.kind === "string")
403
+ toolGroups.set(t.kind, [...toolGroups.get(t.kind) ?? [], t]);
404
+ }
405
+ for (const [typeKey, members] of toolGroups) {
406
+ const listed = members.filter((t) => typeof t.description === "string" && t.description.length > 0).map(
407
+ (t) => toolSpec.templateItem.split("{id}").join(String(t.id)).split("{description}").join(t.description)
408
+ ).join(toolSpec.templateSeparator);
409
+ let text = toolSpec.base.split("{type_key}").join(typeKey);
410
+ if (listed) text += toolSpec.templatesPrefix + listed;
411
+ const note = toolSpec.notes[typeKey];
412
+ if (note) text += toolSpec.notePrefix + note;
413
+ if (text.length > toolSpec.maxLength) {
414
+ ctx.addIssue({
415
+ code: external_exports.ZodIssueCode.custom,
416
+ message: `the mount tool for ${JSON.stringify(typeKey)} would have a ${text.length} chars description (templates ${members.map((t) => JSON.stringify(String(t.id))).join(", ")} plus the server's note), over the ${toolSpec.maxLength}-char cap. The model provider silently drops an over-long tool, so these widgets could never mount: shorten those templates' descriptions or ids.`
417
+ });
418
+ }
419
+ }
420
+ }).optional().describe(
421
+ "Template declarations the LLM can mount via the elements pipeline. Shape mirrors syntrologie_common.sdk.templates.UiTemplatesBlock. Passed verbatim as forwardedProps.uiTemplates to the AG-UI transport."
422
+ ),
423
+ voiceInput: external_exports.boolean().optional().describe(
424
+ "Show a mic button that dictates into the input via the browser Web Speech API where supported (vendor-cloud recognition; degrades to hidden when unsupported). Absent/false = no button."
425
+ ),
426
+ transcript: external_exports.array(external_exports.object({ role: external_exports.enum(["user", "assistant"]), text: external_exports.string().min(1) }).strict()).min(1).max(6).optional().describe(
427
+ "Preview only: a fixed exchange the bar shows read-only. No conversation starts, nothing is sent, and the input is disabled."
428
+ ),
429
+ supportChat: external_exports.object({
430
+ vendor: external_exports.string().min(1),
431
+ suppressNative: external_exports.boolean().optional(),
432
+ widgetId: external_exports.string().min(1).optional().describe(
433
+ "LeadConnector / GoHighLevel only: the chat widget id from the site's embed script (`data-widget-id`). The bridge fetches the location id from the vendor's public widget config \u2014 never hand-type it."
434
+ ),
435
+ inbox: external_exports.object({
436
+ title: external_exports.string().min(1).describe(
437
+ "Heading of the thread card the SDK opens when the visitor taps the announcement of a team message that arrived with no handoff card on the page."
438
+ ),
439
+ toastTitle: external_exports.string().min(1).describe(
440
+ "Title of that announcement. Its body is the message itself. Name the team in the workspace voice."
441
+ )
442
+ }).strict().optional().describe(
443
+ "Where a team message lands when NO adaptive-chatbot:leave-a-message card is on the page \u2014 the vendor's own proactive triggers, or a reply after navigation tore the card down. The SDK writes it into the same thread the card hydrates from, announces it through the canvas, and on tap mounts the workspace's leave-a-message template opened on the thread. Required whenever suppressNative is true: with the vendor's UI hidden, an un-announced message is a message the visitor never sees."
444
+ )
445
+ }).strict().superRefine((supportChat, ctx) => {
446
+ if (supportChat.suppressNative && !supportChat.inbox) {
447
+ ctx.addIssue({
448
+ code: external_exports.ZodIssueCode.custom,
449
+ path: ["inbox"],
450
+ message: "supportChat.inbox is required when suppressNative is true: the vendor UI is hidden, so a team message that arrives with no handoff card mounted has nowhere to show without it"
451
+ });
452
+ }
453
+ if (supportChat.vendor !== "leadconnector") return;
454
+ if (supportChat.widgetId) return;
455
+ ctx.addIssue({
456
+ code: external_exports.ZodIssueCode.custom,
457
+ path: ["widgetId"],
458
+ message: `supportChat.widgetId is required when vendor is "leadconnector" (the chat widget id from the site's embed, data-widget-id)`
459
+ });
460
+ }).optional().describe(
461
+ `Names the site's own support-chat product ("crisp" or "leadconnector") for async human handoff via the adaptive-chatbot:leave-a-message widget. Resolved at chat-bar boot regardless of whether that widget ever mounts, so suppressNative (hide the vendor's native launcher bubble) always applies. Absent vendor SDK fails soft \u2014 a console warning, never a thrown error.`
462
+ )
463
+ }).strict();
464
+ var chipsStripPropsSchema = external_exports.object({
465
+ chips: external_exports.array(SuggestionChipSchema).default([]).describe(
466
+ "Suggestion chips authored as suggestions:chip compositional actions. Each chip declares an id, a title, and a payload that mounts in the drawer when clicked. Conditional visibility via per-chip triggerWhen."
467
+ )
468
+ }).strict();
469
+ var tileWidgets = [
470
+ {
471
+ widget: "adaptive-chatbot:assistant",
472
+ defName: "chatbotAssistantProps",
473
+ propsSchema: configSchema
474
+ },
475
+ {
476
+ widget: "adaptive-chatbot:chat-bar",
477
+ defName: "chatBarProps",
478
+ propsSchema: chatBarPropsSchema
479
+ },
480
+ {
481
+ widget: "adaptive-chatbot:chips-strip",
482
+ defName: "chipsStripProps",
483
+ propsSchema: chipsStripPropsSchema
484
+ }
485
+ ];
486
+ var CAPABILITIES_DOCUMENTATION = {
487
+ packageId: "adaptive-chatbot",
488
+ plannerSummary: "Conversational assistant, always-visible chat input, and suggestion-chip surfaces. Reach for this when a strategy needs dialog, chat-triggered UI, or prompt chips that reveal richer payloads.",
489
+ description: "Chat and conversational UI adaptive. Provides a full assistant, a headless chat bar, suggestion chips, and chip payload widgets for text answers and navigation links.",
490
+ whenToUse: [
491
+ {
492
+ goal: "Mount a full AI assistant with backend streaming",
493
+ action: 'Add a tile with widget: "adaptive-chatbot:assistant" and configure backendUrl, greeting, maxHistory, suggestions, and fallback props.'
494
+ },
495
+ {
496
+ goal: "Replace a launcher or slot lid with a chat input row",
497
+ action: 'Use widget: "adaptive-chatbot:chat-bar" from a tile, slots.drawer.lid, or another slot lid when the host owns the transport.'
498
+ },
499
+ {
500
+ goal: "Offer suggested prompts or choices that reveal payload content",
501
+ action: 'Add widget: "adaptive-chatbot:chips-strip" with suggestions:chip entries; each chip payload should reference a supported widget such as adaptive-chatbot:text-answer, adaptive-chatbot:nav-link, or another tile widget.'
502
+ },
503
+ {
504
+ goal: "Escalate to a human when the assistant cannot help",
505
+ action: `Mount widget: "adaptive-chatbot:leave-a-message" (with the chat-bar's supportChat.vendor already configured) when the visitor explicitly asks for a human, when you cannot resolve after a genuine attempt, or on clear frustration \u2014 never as a first response.`
506
+ }
507
+ ],
508
+ conventions: [
509
+ {
510
+ name: "backendUrl is explicit",
511
+ description: 'assistant backendUrl must be either "" for same-origin /api/adaptive/* routing or an absolute http(s) URL. Relative paths are rejected because they compose to invalid /api/adaptive/session URLs.'
512
+ },
513
+ {
514
+ name: "Chat bar is headless",
515
+ description: "adaptive-chatbot:chat-bar renders the input and trail but does not own a transport by default. Hosts should listen for chat-message-sent, chat-interrupt, and canvas-close or provide backendUrl explicitly."
516
+ },
517
+ {
518
+ name: "Suggestion chips are compositional",
519
+ description: "suggestions:chip entries are config data rendered by adaptive-chatbot:chips-strip. Use triggerWhen for conditional visibility and use payload.widget for the content mounted after a click."
520
+ },
521
+ {
522
+ name: "LLM-authored UI is opt-in",
523
+ description: "Set elementsEnabled and uiTemplates only when the backend is allowed to mount, patch, and unmount declared UI templates during chat turns."
33
524
  },
525
+ {
526
+ name: "Reply-toast copy is opt-in workspace configuration",
527
+ description: "adaptive-chatbot:leave-a-message announces an operator's reply with a toast ONLY when the workspace authors the words in default_widget_props.replyToast ({title, body}). No authored copy means no toast \u2014 absence is the opt-out, and the tile's own mail face remains the announcement. The bundle never supplies stand-in copy: it would be in the wrong voice and, on a non-English storefront, the wrong language."
528
+ },
529
+ {
530
+ name: "Leave-a-message copy is 100% workspace-authored",
531
+ description: "adaptive-chatbot:leave-a-message ships NO hardcoded visitor-facing strings across its five states (compose \u2192 email \u2192 sent \u2192 mail \u2192 flipped). Every label, framing line, prompt, and button comes from default_widget_props.copy ({framing, messageLabel, sendLabel, emailPrompt, emailLabel, emailPlaceholder, emailSubmitLabel, emailSkipLabel, sentBody, mailLabel, replyLabel, replyPlaceholder, replySendLabel}). The compose/email/reply steps use icon-only send controls whose aria-label IS the authored copy \u2014 an icon button with no accessible name is a real defect, so an unauthored sendLabel/emailSubmitLabel/replySendLabel removes the control entirely rather than shipping it mute. Every other field follows the same absence-is-the-opt-out rule as replyToast."
532
+ },
533
+ {
534
+ name: "Human handoff is escalation-only",
535
+ description: "adaptive-chatbot:leave-a-message delivers through the site's own support-chat vendor named in the chat-bar's supportChat.vendor prop \u2014 never mount it as a first response; reach for it only after a genuine resolution attempt, an explicit request for a person, or clear frustration."
536
+ }
537
+ ],
538
+ // Structured {name, when, props} entries — the CAPABILITIES_DOCUMENTATION
539
+ // contract every consumer renders (`_render_capabilities_markdown` in
540
+ // tech-core, `format_capabilities_for_prompt` in syntrologie_common).
541
+ // Plain strings here crashed both renderers (BUG-1784941121).
542
+ events: [
543
+ {
544
+ name: "chat-message-sent",
545
+ when: "Visitor sends a chat message (typed, or via a suggested-reply chip)",
546
+ props: "{ text }"
547
+ },
548
+ {
549
+ name: "chat-interrupt",
550
+ when: "Visitor interrupts the streaming assistant reply",
551
+ props: "{}"
552
+ },
553
+ {
554
+ name: "canvas-close",
555
+ when: "Chat surface requests the host canvas to close",
556
+ props: "{}"
557
+ },
558
+ {
559
+ name: "trail-suggested-reply",
560
+ when: "Visitor taps a suggest_replies chip in the chat trail",
561
+ props: "{ text }"
562
+ },
563
+ {
564
+ name: "supportchat:reply_received",
565
+ when: "A human operator replies through the site's support-chat vendor while the adaptive-chatbot:leave-a-message tile is un-flipped (not yet read) \u2014 published on the runtime EventBus, not as a DOM CustomEvent, so tile notifications rules can badge it",
566
+ props: "{ text }"
567
+ }
568
+ ]
569
+ };
570
+ var actionStepSchemas = [
571
+ { defName: "suggestionChip", schema: SuggestionChipSchema.innerType() }
34
572
  ];
573
+ export {
574
+ CAPABILITIES_DOCUMENTATION,
575
+ actionStepSchemas,
576
+ chatBarPropsSchema,
577
+ chipsStripPropsSchema,
578
+ configSchema,
579
+ tileWidgets,
580
+ validateChatbotConfig
581
+ };
582
+ //# sourceMappingURL=schema.js.map