@syntrologie/adapt-chatbot 2.37.1 → 2.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AdaptiveChatBarMountable.d.ts.map +1 -1
- package/dist/LeaveAMessageLit.d.ts +109 -0
- package/dist/LeaveAMessageLit.d.ts.map +1 -0
- package/dist/LeaveAMessageLit.test.d.ts +2 -0
- package/dist/LeaveAMessageLit.test.d.ts.map +1 -0
- package/dist/LeaveAMessageMountable.test.d.ts +2 -0
- package/dist/LeaveAMessageMountable.test.d.ts.map +1 -0
- package/dist/cdn.d.ts +13 -2
- package/dist/cdn.d.ts.map +1 -1
- package/dist/runtime.d.ts +50 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +366 -1
- package/dist/runtime.js.map +4 -4
- package/dist/schema.d.ts +36 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +23 -0
- package/dist/schema.js.map +2 -2
- package/dist/support-chat/boot.d.ts +12 -0
- package/dist/support-chat/boot.d.ts.map +1 -0
- package/dist/support-chat/boot.test.d.ts +2 -0
- package/dist/support-chat/boot.test.d.ts.map +1 -0
- package/dist/support-chat/crisp.d.ts +4 -0
- package/dist/support-chat/crisp.d.ts.map +1 -0
- package/dist/support-chat/crisp.test.d.ts +2 -0
- package/dist/support-chat/crisp.test.d.ts.map +1 -0
- package/dist/support-chat/registry.d.ts +5 -0
- package/dist/support-chat/registry.d.ts.map +1 -0
- package/dist/support-chat/registry.test.d.ts +2 -0
- package/dist/support-chat/registry.test.d.ts.map +1 -0
- package/dist/support-chat/types.d.ts +19 -0
- package/dist/support-chat/types.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -195,6 +195,16 @@ export declare const chatBarPropsSchema: z.ZodObject<{
|
|
|
195
195
|
elementsEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
196
196
|
uiTemplates: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
|
|
197
197
|
voiceInput: z.ZodOptional<z.ZodBoolean>;
|
|
198
|
+
supportChat: z.ZodOptional<z.ZodObject<{
|
|
199
|
+
vendor: z.ZodString;
|
|
200
|
+
suppressNative: z.ZodOptional<z.ZodBoolean>;
|
|
201
|
+
}, "strict", z.ZodTypeAny, {
|
|
202
|
+
vendor: string;
|
|
203
|
+
suppressNative?: boolean | undefined;
|
|
204
|
+
}, {
|
|
205
|
+
vendor: string;
|
|
206
|
+
suppressNative?: boolean | undefined;
|
|
207
|
+
}>>;
|
|
198
208
|
}, "strict", z.ZodTypeAny, {
|
|
199
209
|
messages?: {
|
|
200
210
|
id: string | number;
|
|
@@ -231,6 +241,10 @@ export declare const chatBarPropsSchema: z.ZodObject<{
|
|
|
231
241
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
232
242
|
elementsEnabled?: boolean | undefined;
|
|
233
243
|
uiTemplates?: Record<string, unknown> | undefined;
|
|
244
|
+
supportChat?: {
|
|
245
|
+
vendor: string;
|
|
246
|
+
suppressNative?: boolean | undefined;
|
|
247
|
+
} | undefined;
|
|
234
248
|
}, {
|
|
235
249
|
messages?: {
|
|
236
250
|
id: string | number;
|
|
@@ -267,6 +281,10 @@ export declare const chatBarPropsSchema: z.ZodObject<{
|
|
|
267
281
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
268
282
|
elementsEnabled?: boolean | undefined;
|
|
269
283
|
uiTemplates?: Record<string, unknown> | undefined;
|
|
284
|
+
supportChat?: {
|
|
285
|
+
vendor: string;
|
|
286
|
+
suppressNative?: boolean | undefined;
|
|
287
|
+
} | undefined;
|
|
270
288
|
}>;
|
|
271
289
|
export type ChatBarProps = z.infer<typeof chatBarPropsSchema>;
|
|
272
290
|
/**
|
|
@@ -1584,6 +1602,16 @@ export declare const tileWidgets: ({
|
|
|
1584
1602
|
elementsEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
1585
1603
|
uiTemplates: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
|
|
1586
1604
|
voiceInput: z.ZodOptional<z.ZodBoolean>;
|
|
1605
|
+
supportChat: z.ZodOptional<z.ZodObject<{
|
|
1606
|
+
vendor: z.ZodString;
|
|
1607
|
+
suppressNative: z.ZodOptional<z.ZodBoolean>;
|
|
1608
|
+
}, "strict", z.ZodTypeAny, {
|
|
1609
|
+
vendor: string;
|
|
1610
|
+
suppressNative?: boolean | undefined;
|
|
1611
|
+
}, {
|
|
1612
|
+
vendor: string;
|
|
1613
|
+
suppressNative?: boolean | undefined;
|
|
1614
|
+
}>>;
|
|
1587
1615
|
}, "strict", z.ZodTypeAny, {
|
|
1588
1616
|
messages?: {
|
|
1589
1617
|
id: string | number;
|
|
@@ -1620,6 +1648,10 @@ export declare const tileWidgets: ({
|
|
|
1620
1648
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
1621
1649
|
elementsEnabled?: boolean | undefined;
|
|
1622
1650
|
uiTemplates?: Record<string, unknown> | undefined;
|
|
1651
|
+
supportChat?: {
|
|
1652
|
+
vendor: string;
|
|
1653
|
+
suppressNative?: boolean | undefined;
|
|
1654
|
+
} | undefined;
|
|
1623
1655
|
}, {
|
|
1624
1656
|
messages?: {
|
|
1625
1657
|
id: string | number;
|
|
@@ -1656,6 +1688,10 @@ export declare const tileWidgets: ({
|
|
|
1656
1688
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
1657
1689
|
elementsEnabled?: boolean | undefined;
|
|
1658
1690
|
uiTemplates?: Record<string, unknown> | undefined;
|
|
1691
|
+
supportChat?: {
|
|
1692
|
+
vendor: string;
|
|
1693
|
+
suppressNative?: boolean | undefined;
|
|
1694
|
+
} | undefined;
|
|
1659
1695
|
}>;
|
|
1660
1696
|
} | {
|
|
1661
1697
|
widget: string;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -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;AAyExB,eAAO,MAAM,YAAY;IACvB,gGAAgG;;IAEhG,4CAA4C;;IAE5C,iDAAiD;;IAEjD,6DAA6D;;IAE7D,uDAAuD;;;IAQvD;;;;;OAKG;;QAjCD,mFAAmF;;QAEnF,kEAAkE;;QAElE,iFAAiF;;QAEjF,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BjF,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAE/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;GAElD;AAMD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgPpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAM9D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkIyr8C,CAAC;;;;4BAA0H,CAAC;;;;;;;;yBAA+Q,CAAC;;;;yBAAoG,CAAC;;;;;;;;;4BAAiX,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;4BAAqF,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;;;;;;;;;;;;;;;4BAA08B,CAAC;;;;4BAAgH,CAAC;;;;;;;;4BAA2S,CAAC;;;;4BAAsH,CAAC;;;;;;;;;;4BAAsW,CAAC;;;;;4BAAiJ,CAAC;;;;;;;;;;;;;kCAAu3B,CAAC;oCAAqE,CAAC;;kCAAqE,CAAC;oCAAqE,CAAC;;kCAAsE,CAAC;oCAAqE,CAAC;;kCAAqE,CAAC;oCAAqE,CAAC;;;;6BAAiV,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;6BAAoU,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;4BAA8Q,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;4BAAiQ,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;;;;;;;;;;;;4BAAmiB,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;4BAAkZ,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;4BAAif,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA5oH,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA5oH,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA5oH,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAzH1o6D,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;QAhUtB,gGAAgG;;QAEhG,4CAA4C;;QAE5C,iDAAiD;;QAEjD,6DAA6D;;QAE7D,uDAAuD;;;QAQvD;;;;;WAKG;;YAjCD,mFAAmF;;YAEnF,kEAAkE;;YAElE,iFAAiF;;YAEjF,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAkbwo8C,CAAC;;;;gCAA0H,CAAC;;;;;;;;6BAA+Q,CAAC;;;;6BAAoG,CAAC;;;;;;;;;gCAAiX,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;gCAAqF,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;;;;;;;;;;;;;;;gCAA08B,CAAC;;;;gCAAgH,CAAC;;;;;;;;gCAA2S,CAAC;;;;gCAAsH,CAAC;;;;;;;;;;gCAAsW,CAAC;;;;;gCAAiJ,CAAC;;;;;;;;;;;;;sCAAu3B,CAAC;wCAAqE,CAAC;;sCAAqE,CAAC;wCAAqE,CAAC;;sCAAsE,CAAC;wCAAqE,CAAC;;sCAAqE,CAAC;wCAAqE,CAAC;;;;iCAAiV,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;iCAAoU,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;;;;;gCAA8Q,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;;;;;gCAAiQ,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;;;;;;;;;;;;;;;;gCAAmiB,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;gCAAkZ,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;gCAAif,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;gCAA8c,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA5oH,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA8c,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA5oH,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA8c,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA5oH,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA8c,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA5Fpp6D,CAAC;AAMF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;CAuEtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAG6r8C,CAAC;;;;4BAA0H,CAAC;;;;;;;;yBAA+Q,CAAC;;;;yBAAoG,CAAC;;;;;;;;;4BAAiX,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;4BAAqF,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;;;;;;;;;;;;;;;4BAA08B,CAAC;;;;4BAAgH,CAAC;;;;;;;;4BAA2S,CAAC;;;;4BAAsH,CAAC;;;;;;;;;;4BAAsW,CAAC;;;;;4BAAiJ,CAAC;;;;;;;;;;;;;kCAAu3B,CAAC;oCAAqE,CAAC;;kCAAqE,CAAC;oCAAqE,CAAC;;kCAAsE,CAAC;oCAAqE,CAAC;;kCAAqE,CAAC;oCAAqE,CAAC;;;;6BAAiV,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;6BAAoU,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;4BAA8Q,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;4BAAiQ,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;;;;;;;;;;;;4BAAmiB,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;4BAAkZ,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;4BAAif,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA5oH,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GADpp6D,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyExB,eAAO,MAAM,YAAY;IACvB,gGAAgG;;IAEhG,4CAA4C;;IAE5C,iDAAiD;;IAEjD,6DAA6D;;IAE7D,uDAAuD;;;IAQvD;;;;;OAKG;;QAjCD,mFAAmF;;QAEnF,kEAAkE;;QAElE,iFAAiF;;QAEjF,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BjF,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAE/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;GAElD;AAMD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0PpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAM9D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAsJ0l4C,CAAC;;;;4BAA0H,CAAC;;;;;;;;yBAA+Q,CAAC;;;;yBAAoG,CAAC;;;;;;;;;4BAAiX,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;4BAAqF,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;;;;;;;;;;;;;;;4BAA08B,CAAC;;;;4BAAgH,CAAC;;;;;;;;4BAA2S,CAAC;;;;4BAAsH,CAAC;;;;;;;;;;4BAAsW,CAAC;;;;;4BAAiJ,CAAC;;;;;;;;;;;;;kCAAu3B,CAAC;oCAAqE,CAAC;;kCAAqE,CAAC;oCAAqE,CAAC;;kCAAsE,CAAC;oCAAqE,CAAC;;kCAAqE,CAAC;oCAAqE,CAAC;;;;6BAAiV,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;6BAAoU,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;4BAA8Q,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;4BAAiQ,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;;;;;;;;;;;;4BAAmiB,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;4BAAkZ,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;4BAAif,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA5oH,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA5oH,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA5oH,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA7I3i2D,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;QA1UtB,gGAAgG;;QAEhG,4CAA4C;;QAE5C,iDAAiD;;QAEjD,6DAA6D;;QAE7D,uDAAuD;;;QAQvD;;;;;WAKG;;YAjCD,mFAAmF;;YAEnF,kEAAkE;;YAElE,iFAAiF;;YAEjF,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAgdyi4C,CAAC;;;;gCAA0H,CAAC;;;;;;;;6BAA+Q,CAAC;;;;6BAAoG,CAAC;;;;;;;;;gCAAiX,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;gCAAqF,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;;;;;;;;;;;;;;;gCAA08B,CAAC;;;;gCAAgH,CAAC;;;;;;;;gCAA2S,CAAC;;;;gCAAsH,CAAC;;;;;;;;;;gCAAsW,CAAC;;;;;gCAAiJ,CAAC;;;;;;;;;;;;;sCAAu3B,CAAC;wCAAqE,CAAC;;sCAAqE,CAAC;wCAAqE,CAAC;;sCAAsE,CAAC;wCAAqE,CAAC;;sCAAqE,CAAC;wCAAqE,CAAC;;;;iCAAiV,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;iCAAoU,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;;;;;gCAA8Q,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;;;;;gCAAiQ,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;;;;;;;;;;;;;;;;gCAAmiB,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;gCAAkZ,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;gCAAif,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;gCAA8c,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA5oH,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA8c,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA5oH,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA8c,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA5oH,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAA8c,CAAC;;;;6BAAgH,CAAC;;;gCAA2E,CAAC;gCAA0C,CAAC;iCAA2C,CAAC;iCAA2C,CAAC;;;;;;;;;gCAA4T,CAAC;;;;gCAAuH,CAAC;;;;;gCAAkJ,CAAC;;;;;;gCAAwM,CAAC;+BAAyC,CAAC;;iCAAiQ,CAAC;sCAA6C,CAAC;wCAAqE,CAAC;;;;yBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAhHrj2D,CAAC;AAMF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;CA2FtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAG8l4C,CAAC;;;;4BAA0H,CAAC;;;;;;;;yBAA+Q,CAAC;;;;yBAAoG,CAAC;;;;;;;;;4BAAiX,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;4BAAqF,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;;;;;;;;;;;;;;;4BAA08B,CAAC;;;;4BAAgH,CAAC;;;;;;;;4BAA2S,CAAC;;;;4BAAsH,CAAC;;;;;;;;;;4BAAsW,CAAC;;;;;4BAAiJ,CAAC;;;;;;;;;;;;;kCAAu3B,CAAC;oCAAqE,CAAC;;kCAAqE,CAAC;oCAAqE,CAAC;;kCAAsE,CAAC;oCAAqE,CAAC;;kCAAqE,CAAC;oCAAqE,CAAC;;;;6BAAiV,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;6BAAoU,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;4BAA8Q,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;4BAAiQ,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;;;;;;;;;;;;;;;;4BAAmiB,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;4BAAkZ,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;4BAAif,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA5oH,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA8c,CAAC;;;;yBAAgH,CAAC;;;4BAA2E,CAAC;4BAA0C,CAAC;6BAA2C,CAAC;6BAA2C,CAAC;;;;;;;;;4BAA4T,CAAC;;;;4BAAuH,CAAC;;;;;4BAAkJ,CAAC;;;;;;4BAAwM,CAAC;2BAAyC,CAAC;;6BAAiQ,CAAC;kCAA6C,CAAC;oCAAqE,CAAC;;;;qBAA4G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GADrj2D,CAAC"}
|
package/dist/schema.js
CHANGED
|
@@ -207,6 +207,12 @@ var chatBarPropsSchema = z.object({
|
|
|
207
207
|
),
|
|
208
208
|
voiceInput: z.boolean().optional().describe(
|
|
209
209
|
"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."
|
|
210
|
+
),
|
|
211
|
+
supportChat: z.object({
|
|
212
|
+
vendor: z.string().min(1),
|
|
213
|
+
suppressNative: z.boolean().optional()
|
|
214
|
+
}).strict().optional().describe(
|
|
215
|
+
`Names the site's own support-chat product (e.g. "crisp") 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.`
|
|
210
216
|
)
|
|
211
217
|
}).strict();
|
|
212
218
|
var chipsStripPropsSchema = z.object({
|
|
@@ -247,6 +253,10 @@ var CAPABILITIES_DOCUMENTATION = {
|
|
|
247
253
|
{
|
|
248
254
|
goal: "Offer suggested prompts or choices that reveal payload content",
|
|
249
255
|
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.'
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
goal: "Escalate to a human when the assistant cannot help",
|
|
259
|
+
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.`
|
|
250
260
|
}
|
|
251
261
|
],
|
|
252
262
|
conventions: [
|
|
@@ -265,6 +275,14 @@ var CAPABILITIES_DOCUMENTATION = {
|
|
|
265
275
|
{
|
|
266
276
|
name: "LLM-authored UI is opt-in",
|
|
267
277
|
description: "Set elementsEnabled and uiTemplates only when the backend is allowed to mount, patch, and unmount declared UI templates during chat turns."
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
name: "Reply-toast copy is opt-in workspace configuration",
|
|
281
|
+
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."
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
name: "Human handoff is escalation-only",
|
|
285
|
+
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."
|
|
268
286
|
}
|
|
269
287
|
],
|
|
270
288
|
// Structured {name, when, props} entries — the CAPABILITIES_DOCUMENTATION
|
|
@@ -291,6 +309,11 @@ var CAPABILITIES_DOCUMENTATION = {
|
|
|
291
309
|
name: "trail-suggested-reply",
|
|
292
310
|
when: "Visitor taps a suggest_replies chip in the chat trail",
|
|
293
311
|
props: "{ text }"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
name: "supportchat:reply_received",
|
|
315
|
+
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",
|
|
316
|
+
props: "{ text }"
|
|
294
317
|
}
|
|
295
318
|
]
|
|
296
319
|
};
|
package/dist/schema.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/schema.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Adaptive Chatbot - Config Schema\n *\n * Zod schema for validating chatbot widget configuration.\n */\n\nimport { z } from 'zod';\n\nimport { SuggestionChipSchema } from './AdaptiveChipsStrip';\n\n// The widget composes `${backendUrl}/api/adaptive/stream` (AG-UI chat turns)\n// and `${backendUrl}/api/adaptive/session` (server-push SSE: nudges, typing,\n// snapshots). backendUrl must be either:\n// - \"\" (empty string) \u2014 same-origin opt-in; resolves to /api/adaptive/*\n// - an absolute http:// or https:// URL \u2014 the chat backend's origin\n// A relative path like \"/api/chat\" produces \"/api/chat/api/adaptive/session\"\n// which 404s on the host SPA and surfaces as a generic SSE error.\n//\n// Split into a `.url()` branch + literal \"\" branch so zod-to-json-schema\n// produces an `anyOf` that AJV (used by `make sdk-validate`) enforces.\n// Refinements alone do not survive the JSON-schema translation.\nconst backendUrlSchema = z.union(\n [\n z\n .string()\n .url('backendUrl must be an absolute URL')\n .regex(/^https?:\\/\\//, 'backendUrl must use http or https'),\n z.literal(''),\n ],\n {\n errorMap: () => ({\n message:\n 'backendUrl must be either \"\" (same-origin) or an absolute http(s):// URL \u2014 relative paths are not allowed',\n }),\n }\n);\n\n// Per-customer fallback card. Rendered in place of the chat input when the\n// chat backend is unreachable for any reason (most commonly: Cloudflare\n// Turnstile bot-check failure for an end-user on a hardened browser / locked\n// network). The customer fills these in; we never show Cloudflare branding\n// to the end-user.\n//\n// `ctaHref` follows the same absolute-URL guard as `backendUrl` so a typo\n// like \"/support\" can't 404 on the host SPA \u2014 must be empty (same-origin)\n// or an absolute http(s):// URL pointing to the customer's existing support\n// path.\nconst fallbackHrefSchema = z.union(\n [\n z\n .string()\n .url('fallback.ctaHref must be an absolute URL')\n .regex(/^https?:\\/\\//, 'fallback.ctaHref must use http or https'),\n z.literal(''),\n ],\n {\n errorMap: () => ({\n message: 'fallback.ctaHref must be either \"\" (same-origin) or an absolute http(s):// URL',\n }),\n }\n);\n\n// `.strict()` so unknown keys are rejected at validation time (matches the\n// emitted JSON Schema's `additionalProperties: false`). Future fields land\n// here intentionally rather than silently slipping through and behaving\n// like feature stubs.\nconst fallbackSchema = z\n .object({\n /** Header shown on the fallback card. Defaults to a generic \"unavailable\" copy. */\n title: z.string().optional(),\n /** Body copy explaining the situation in the customer's voice. */\n message: z.string().optional(),\n /** Label for the call-to-action link. If `ctaHref` is set this should be too. */\n ctaLabel: z.string().optional(),\n /** Target of the CTA link \u2014 typically the customer's existing support path. */\n ctaHref: fallbackHrefSchema.optional(),\n })\n .strict();\n\nexport const configSchema = z.object({\n /** Backend URL for the chat API endpoint. \"\" for same-origin, or an absolute http(s):// URL. */\n backendUrl: backendUrlSchema,\n /** MLflow run ID for experiment tracking */\n mlflowRunId: z.string().optional(),\n /** Greeting message shown when the chat opens */\n greeting: z.string().default('Hi! How can I help?'),\n /** Maximum number of history messages sent to the backend */\n maxHistory: z.number().int().min(1).max(100).default(20),\n /** Quick-reply suggestions shown in the empty state */\n suggestions: z.array(z.string()).optional(),\n voiceInput: z\n .boolean()\n .optional()\n .describe(\n '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.'\n ),\n /**\n * Per-customer fallback card rendered when chat can't open (Turnstile\n * failure, network error, etc.). The end-user is redirected to the\n * customer's normal support path \u2014 no Cloudflare-branded challenge is\n * ever shown.\n */\n fallback: fallbackSchema.optional(),\n});\n\nexport type ChatbotConfigSchema = z.infer<typeof configSchema>;\n\nexport function validateChatbotConfig(data: unknown) {\n return configSchema.safeParse(data);\n}\n\n// ============================================================================\n// Chat Bar Props (adaptive-chatbot:chat-bar widget)\n// ============================================================================\n\n/**\n * Props schema for the `adaptive-chatbot:chat-bar` widget. This is the\n * headless chat-input shell \u2014 no transport, no message persistence.\n * Customers wire `chat-message-sent` / `chat-interrupt` / `canvas-close`\n * to their own pipeline.\n *\n * All fields are optional: the bar renders an empty trail + send-only\n * placeholder if nothing is passed. Authors who want a stateful chat\n * use `adaptive-chatbot:assistant` instead.\n */\nexport const chatBarPropsSchema = z\n .object({\n placeholder: z\n .string()\n .optional()\n .describe('Input placeholder copy. Defaults to \"Ask, find, or navigate\u2026\".'),\n assistantName: z\n .string()\n .optional()\n .describe(\n 'Name shown in the (forceExpanded) chat header. Defaults to \"Assistant\". Per-workspace override, e.g. \"Vela Concierge\".'\n ),\n personas: z\n .array(\n z.object({\n id: z.string().min(1),\n name: z.string().min(1).max(24),\n role_title: z.string().max(48).optional(),\n pronouns: z.string().max(16).optional(),\n avatar: z\n .object({\n sm: z.string().url().optional(),\n md: z.string().url().optional(),\n lg: z.string().url().optional(),\n })\n .optional(),\n intro_line: z.string().max(160).optional(),\n })\n )\n .optional()\n .describe(\n '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.'\n ),\n // `messages` and `inFlight` are runtime state \u2014 included here so\n // authors who pre-seed a conversation (e.g. a demo or guided\n // walkthrough) can declare it. Most production deployments will\n // leave these blank and update them via the mountable's API.\n messages: z\n .array(\n z.object({\n id: z.union([z.number(), z.string()]),\n role: z.enum(['user', 'assistant']),\n text: z.string(),\n })\n )\n .optional(),\n inFlight: z.boolean().optional(),\n forceExpanded: z\n .boolean()\n .optional()\n .describe(\n '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).'\n ),\n backendUrl: z\n .string()\n .optional()\n .describe(\n 'Backend chat endpoint. Empty string + non-undefined enables relative-URL fetches (the host page proxies /api/* to the backend).'\n ),\n greeting: z.string().optional().describe('Greeting line shown above the input on first mount.'),\n introSuggestion: z\n .object({\n label: z.string().min(1),\n prompt: z.string().min(1),\n })\n .optional()\n .describe(\n '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.'\n ),\n fallback: z\n .object({\n title: z.string().optional(),\n message: z.string().optional(),\n ctaLabel: z.string().optional(),\n })\n .passthrough()\n .optional()\n .describe('Per-customer \"chat unavailable\" card shown when the transport gives up.'),\n elementsEnabled: z\n .boolean()\n .optional()\n .describe(\n '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.'\n ),\n uiTemplates: z\n .record(z.unknown())\n .superRefine((block, ctx) => {\n // ---------------------------------------------------------------------------\n // Type-homogeneity gate \u2014 mirrors Python UiTemplatesBlock._types_are_homogeneous\n //\n // All templates of the same type must share an authorable field shape.\n // Per-type mount tools assume that every template of a given widget/kind\n // exposes the same set of field names, the same required flags, the same\n // admin_pinned_fields, and the same EnumField value sets. A divergent\n // template would produce a value that is schema-valid but server-rejected.\n //\n // Groups: tiles by `widget`; items+actions by `kind`.\n // 4-dimension signature per group member:\n // 1. frozenset of field keys\n // 2. frozenset of field keys where required === true\n // 3. frozenset of admin_pinned_fields\n // 4. sorted enum values per enum field (order-independent comparison)\n //\n // The data is untyped (z.unknown()), so we read defensively: treat missing\n // arrays as [], missing fields as {}.\n // ---------------------------------------------------------------------------\n\n type TemplateRaw = {\n id?: unknown;\n widget?: unknown;\n kind?: unknown;\n fields?: unknown;\n admin_pinned_fields?: unknown;\n };\n\n function asStringArray(v: unknown): string[] {\n if (!Array.isArray(v)) return [];\n return v.filter((x): x is string => typeof x === 'string');\n }\n\n function asFieldsRecord(v: unknown): Record<string, unknown> {\n if (v !== null && typeof v === 'object' && !Array.isArray(v)) {\n return v as Record<string, unknown>;\n }\n return {};\n }\n\n function templateSignature(\n t: TemplateRaw\n ): readonly [Set<string>, Set<string>, Set<string>, Array<[string, string[]]>] {\n const fields = asFieldsRecord(t.fields);\n const fieldKeys = new Set(Object.keys(fields));\n\n const requiredKeys = new Set<string>();\n for (const [k, spec] of Object.entries(fields)) {\n const s = spec as Record<string, unknown> | null | undefined;\n if (s && typeof s === 'object' && s.required === true) {\n requiredKeys.add(k);\n }\n }\n\n const pinned = new Set(asStringArray(t.admin_pinned_fields));\n\n const enumValues: Array<[string, string[]]> = [];\n for (const [k, spec] of Object.entries(fields)) {\n const s = spec as Record<string, unknown> | null | undefined;\n if (s && typeof s === 'object' && s.type === 'enum') {\n const vals = asStringArray(s.values).slice().sort();\n enumValues.push([k, vals]);\n }\n }\n enumValues.sort(([a], [b]) => a.localeCompare(b));\n\n return [fieldKeys, requiredKeys, pinned, enumValues] as const;\n }\n\n function signaturesEqual(\n a: ReturnType<typeof templateSignature>,\n b: ReturnType<typeof templateSignature>\n ): boolean {\n // 1. field keys\n if (a[0].size !== b[0].size) return false;\n for (const k of a[0]) if (!b[0].has(k)) return false;\n\n // 2. required keys\n if (a[1].size !== b[1].size) return false;\n for (const k of a[1]) if (!b[1].has(k)) return false;\n\n // 3. pinned keys\n if (a[2].size !== b[2].size) return false;\n for (const k of a[2]) if (!b[2].has(k)) return false;\n\n // 4. enum values (sorted arrays of [field, sorted-values] pairs)\n if (a[3].length !== b[3].length) return false;\n for (let i = 0; i < a[3].length; i++) {\n const [ak, av] = a[3][i];\n const [bk, bv] = b[3][i];\n if (ak !== bk) return false;\n if (av.length !== bv.length) return false;\n for (let j = 0; j < av.length; j++) {\n if (av[j] !== bv[j]) return false;\n }\n }\n\n return true;\n }\n\n const groups = new Map<string, TemplateRaw[]>();\n\n const tiles = Array.isArray(block.tiles) ? (block.tiles as TemplateRaw[]) : [];\n for (const t of tiles) {\n if (typeof t.widget === 'string') {\n const key = `widget:${t.widget}`;\n const group = groups.get(key) ?? [];\n group.push(t);\n groups.set(key, group);\n }\n }\n\n const items = Array.isArray(block.items) ? (block.items as TemplateRaw[]) : [];\n const actions = Array.isArray(block.actions) ? (block.actions as TemplateRaw[]) : [];\n for (const t of [...items, ...actions]) {\n if (typeof t.kind === 'string') {\n const key = `kind:${t.kind}`;\n const group = groups.get(key) ?? [];\n group.push(t);\n groups.set(key, group);\n }\n }\n\n for (const [typeKey, members] of groups) {\n if (members.length < 2) continue;\n\n const headSig = templateSignature(members[0]);\n for (let i = 1; i < members.length; i++) {\n const other = members[i];\n if (!signaturesEqual(headSig, templateSignature(other))) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n `templates of type ${JSON.stringify(typeKey)} must share an authorable field ` +\n `shape, but ${JSON.stringify(String(members[0].id))} and ` +\n `${JSON.stringify(String(other.id))} differ ` +\n `(field names / required / admin_pinned / enum values)`,\n });\n }\n }\n }\n })\n .optional()\n .describe(\n '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.'\n ),\n voiceInput: z\n .boolean()\n .optional()\n .describe(\n '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.'\n ),\n })\n .strict();\n\nexport type ChatBarProps = z.infer<typeof chatBarPropsSchema>;\n\n// ============================================================================\n// Chips Strip Props (adaptive-chatbot:chips-strip widget)\n// ============================================================================\n\n/**\n * Props schema for the `adaptive-chatbot:chips-strip` widget. Chips\n * follow the compositional-action shape (see SuggestionChipSchema in\n * AdaptiveChipsStrip.ts) \u2014 same pattern as faq:question.\n */\nexport const chipsStripPropsSchema = z\n .object({\n chips: z\n .array(SuggestionChipSchema)\n .default([])\n .describe(\n '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.'\n ),\n })\n .strict();\n\nexport type ChipsStripProps = z.infer<typeof chipsStripPropsSchema>;\n\n// ============================================================================\n// Tile Widget Props Export\n// ============================================================================\n\n/**\n * Tile widget definitions for unified JSON Schema generation.\n * Maps widget IDs to their props validation schema so the build script\n * can inject if/then constraints on tile.props.\n */\nexport const tileWidgets = [\n {\n widget: 'adaptive-chatbot:assistant',\n defName: 'chatbotAssistantProps',\n propsSchema: configSchema,\n },\n {\n widget: 'adaptive-chatbot:chat-bar',\n defName: 'chatBarProps',\n propsSchema: chatBarPropsSchema,\n },\n {\n widget: 'adaptive-chatbot:chips-strip',\n defName: 'chipsStripProps',\n propsSchema: chipsStripPropsSchema,\n },\n];\n\n// ============================================================================\n// Capabilities Documentation (injected into JSON Schema for LLM prompts)\n// ============================================================================\n\nexport const CAPABILITIES_DOCUMENTATION = {\n packageId: 'adaptive-chatbot',\n plannerSummary:\n '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.',\n description:\n '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.',\n whenToUse: [\n {\n goal: 'Mount a full AI assistant with backend streaming',\n action:\n 'Add a tile with widget: \"adaptive-chatbot:assistant\" and configure backendUrl, greeting, maxHistory, suggestions, and fallback props.',\n },\n {\n goal: 'Replace a launcher or slot lid with a chat input row',\n action:\n 'Use widget: \"adaptive-chatbot:chat-bar\" from a tile, slots.drawer.lid, or another slot lid when the host owns the transport.',\n },\n {\n goal: 'Offer suggested prompts or choices that reveal payload content',\n action:\n '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.',\n },\n ],\n conventions: [\n {\n name: 'backendUrl is explicit',\n description:\n '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.',\n },\n {\n name: 'Chat bar is headless',\n description:\n '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.',\n },\n {\n name: 'Suggestion chips are compositional',\n description:\n '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.',\n },\n {\n name: 'LLM-authored UI is opt-in',\n description:\n 'Set elementsEnabled and uiTemplates only when the backend is allowed to mount, patch, and unmount declared UI templates during chat turns.',\n },\n ],\n // Structured {name, when, props} entries \u2014 the CAPABILITIES_DOCUMENTATION\n // contract every consumer renders (`_render_capabilities_markdown` in\n // tech-core, `format_capabilities_for_prompt` in syntrologie_common).\n // Plain strings here crashed both renderers (BUG-1784941121).\n events: [\n {\n name: 'chat-message-sent',\n when: 'Visitor sends a chat message (typed, or via a suggested-reply chip)',\n props: '{ text }',\n },\n {\n name: 'chat-interrupt',\n when: 'Visitor interrupts the streaming assistant reply',\n props: '{}',\n },\n {\n name: 'canvas-close',\n when: 'Chat surface requests the host canvas to close',\n props: '{}',\n },\n {\n name: 'trail-suggested-reply',\n when: 'Visitor taps a suggest_replies chip in the chat trail',\n props: '{ text }',\n },\n ],\n};\n\n/**\n * Action step schemas \u2014 registered into the unified canvas-config\n * JSON Schema's action-step union so authors (and the tactician LLM)\n * can emit `suggestions:chip` items inside a chips-strip tile's\n * `props.chips` array with full validation.\n *\n * `.innerType()` strips the `.refine()` wrapper (cross-field\n * refinements don't translate to JSON Schema); runtime Zod still\n * enforces them.\n */\nexport const actionStepSchemas = [\n { defName: 'suggestionChip', schema: SuggestionChipSchema.innerType() },\n];\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/**\n * Adaptive Chatbot - Config Schema\n *\n * Zod schema for validating chatbot widget configuration.\n */\n\nimport { z } from 'zod';\n\nimport { SuggestionChipSchema } from './AdaptiveChipsStrip';\n\n// The widget composes `${backendUrl}/api/adaptive/stream` (AG-UI chat turns)\n// and `${backendUrl}/api/adaptive/session` (server-push SSE: nudges, typing,\n// snapshots). backendUrl must be either:\n// - \"\" (empty string) \u2014 same-origin opt-in; resolves to /api/adaptive/*\n// - an absolute http:// or https:// URL \u2014 the chat backend's origin\n// A relative path like \"/api/chat\" produces \"/api/chat/api/adaptive/session\"\n// which 404s on the host SPA and surfaces as a generic SSE error.\n//\n// Split into a `.url()` branch + literal \"\" branch so zod-to-json-schema\n// produces an `anyOf` that AJV (used by `make sdk-validate`) enforces.\n// Refinements alone do not survive the JSON-schema translation.\nconst backendUrlSchema = z.union(\n [\n z\n .string()\n .url('backendUrl must be an absolute URL')\n .regex(/^https?:\\/\\//, 'backendUrl must use http or https'),\n z.literal(''),\n ],\n {\n errorMap: () => ({\n message:\n 'backendUrl must be either \"\" (same-origin) or an absolute http(s):// URL \u2014 relative paths are not allowed',\n }),\n }\n);\n\n// Per-customer fallback card. Rendered in place of the chat input when the\n// chat backend is unreachable for any reason (most commonly: Cloudflare\n// Turnstile bot-check failure for an end-user on a hardened browser / locked\n// network). The customer fills these in; we never show Cloudflare branding\n// to the end-user.\n//\n// `ctaHref` follows the same absolute-URL guard as `backendUrl` so a typo\n// like \"/support\" can't 404 on the host SPA \u2014 must be empty (same-origin)\n// or an absolute http(s):// URL pointing to the customer's existing support\n// path.\nconst fallbackHrefSchema = z.union(\n [\n z\n .string()\n .url('fallback.ctaHref must be an absolute URL')\n .regex(/^https?:\\/\\//, 'fallback.ctaHref must use http or https'),\n z.literal(''),\n ],\n {\n errorMap: () => ({\n message: 'fallback.ctaHref must be either \"\" (same-origin) or an absolute http(s):// URL',\n }),\n }\n);\n\n// `.strict()` so unknown keys are rejected at validation time (matches the\n// emitted JSON Schema's `additionalProperties: false`). Future fields land\n// here intentionally rather than silently slipping through and behaving\n// like feature stubs.\nconst fallbackSchema = z\n .object({\n /** Header shown on the fallback card. Defaults to a generic \"unavailable\" copy. */\n title: z.string().optional(),\n /** Body copy explaining the situation in the customer's voice. */\n message: z.string().optional(),\n /** Label for the call-to-action link. If `ctaHref` is set this should be too. */\n ctaLabel: z.string().optional(),\n /** Target of the CTA link \u2014 typically the customer's existing support path. */\n ctaHref: fallbackHrefSchema.optional(),\n })\n .strict();\n\nexport const configSchema = z.object({\n /** Backend URL for the chat API endpoint. \"\" for same-origin, or an absolute http(s):// URL. */\n backendUrl: backendUrlSchema,\n /** MLflow run ID for experiment tracking */\n mlflowRunId: z.string().optional(),\n /** Greeting message shown when the chat opens */\n greeting: z.string().default('Hi! How can I help?'),\n /** Maximum number of history messages sent to the backend */\n maxHistory: z.number().int().min(1).max(100).default(20),\n /** Quick-reply suggestions shown in the empty state */\n suggestions: z.array(z.string()).optional(),\n voiceInput: z\n .boolean()\n .optional()\n .describe(\n '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.'\n ),\n /**\n * Per-customer fallback card rendered when chat can't open (Turnstile\n * failure, network error, etc.). The end-user is redirected to the\n * customer's normal support path \u2014 no Cloudflare-branded challenge is\n * ever shown.\n */\n fallback: fallbackSchema.optional(),\n});\n\nexport type ChatbotConfigSchema = z.infer<typeof configSchema>;\n\nexport function validateChatbotConfig(data: unknown) {\n return configSchema.safeParse(data);\n}\n\n// ============================================================================\n// Chat Bar Props (adaptive-chatbot:chat-bar widget)\n// ============================================================================\n\n/**\n * Props schema for the `adaptive-chatbot:chat-bar` widget. This is the\n * headless chat-input shell \u2014 no transport, no message persistence.\n * Customers wire `chat-message-sent` / `chat-interrupt` / `canvas-close`\n * to their own pipeline.\n *\n * All fields are optional: the bar renders an empty trail + send-only\n * placeholder if nothing is passed. Authors who want a stateful chat\n * use `adaptive-chatbot:assistant` instead.\n */\nexport const chatBarPropsSchema = z\n .object({\n placeholder: z\n .string()\n .optional()\n .describe('Input placeholder copy. Defaults to \"Ask, find, or navigate\u2026\".'),\n assistantName: z\n .string()\n .optional()\n .describe(\n 'Name shown in the (forceExpanded) chat header. Defaults to \"Assistant\". Per-workspace override, e.g. \"Vela Concierge\".'\n ),\n personas: z\n .array(\n z.object({\n id: z.string().min(1),\n name: z.string().min(1).max(24),\n role_title: z.string().max(48).optional(),\n pronouns: z.string().max(16).optional(),\n avatar: z\n .object({\n sm: z.string().url().optional(),\n md: z.string().url().optional(),\n lg: z.string().url().optional(),\n })\n .optional(),\n intro_line: z.string().max(160).optional(),\n })\n )\n .optional()\n .describe(\n '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.'\n ),\n // `messages` and `inFlight` are runtime state \u2014 included here so\n // authors who pre-seed a conversation (e.g. a demo or guided\n // walkthrough) can declare it. Most production deployments will\n // leave these blank and update them via the mountable's API.\n messages: z\n .array(\n z.object({\n id: z.union([z.number(), z.string()]),\n role: z.enum(['user', 'assistant']),\n text: z.string(),\n })\n )\n .optional(),\n inFlight: z.boolean().optional(),\n forceExpanded: z\n .boolean()\n .optional()\n .describe(\n '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).'\n ),\n backendUrl: z\n .string()\n .optional()\n .describe(\n 'Backend chat endpoint. Empty string + non-undefined enables relative-URL fetches (the host page proxies /api/* to the backend).'\n ),\n greeting: z.string().optional().describe('Greeting line shown above the input on first mount.'),\n introSuggestion: z\n .object({\n label: z.string().min(1),\n prompt: z.string().min(1),\n })\n .optional()\n .describe(\n '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.'\n ),\n fallback: z\n .object({\n title: z.string().optional(),\n message: z.string().optional(),\n ctaLabel: z.string().optional(),\n })\n .passthrough()\n .optional()\n .describe('Per-customer \"chat unavailable\" card shown when the transport gives up.'),\n elementsEnabled: z\n .boolean()\n .optional()\n .describe(\n '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.'\n ),\n uiTemplates: z\n .record(z.unknown())\n .superRefine((block, ctx) => {\n // ---------------------------------------------------------------------------\n // Type-homogeneity gate \u2014 mirrors Python UiTemplatesBlock._types_are_homogeneous\n //\n // All templates of the same type must share an authorable field shape.\n // Per-type mount tools assume that every template of a given widget/kind\n // exposes the same set of field names, the same required flags, the same\n // admin_pinned_fields, and the same EnumField value sets. A divergent\n // template would produce a value that is schema-valid but server-rejected.\n //\n // Groups: tiles by `widget`; items+actions by `kind`.\n // 4-dimension signature per group member:\n // 1. frozenset of field keys\n // 2. frozenset of field keys where required === true\n // 3. frozenset of admin_pinned_fields\n // 4. sorted enum values per enum field (order-independent comparison)\n //\n // The data is untyped (z.unknown()), so we read defensively: treat missing\n // arrays as [], missing fields as {}.\n // ---------------------------------------------------------------------------\n\n type TemplateRaw = {\n id?: unknown;\n widget?: unknown;\n kind?: unknown;\n fields?: unknown;\n admin_pinned_fields?: unknown;\n };\n\n function asStringArray(v: unknown): string[] {\n if (!Array.isArray(v)) return [];\n return v.filter((x): x is string => typeof x === 'string');\n }\n\n function asFieldsRecord(v: unknown): Record<string, unknown> {\n if (v !== null && typeof v === 'object' && !Array.isArray(v)) {\n return v as Record<string, unknown>;\n }\n return {};\n }\n\n function templateSignature(\n t: TemplateRaw\n ): readonly [Set<string>, Set<string>, Set<string>, Array<[string, string[]]>] {\n const fields = asFieldsRecord(t.fields);\n const fieldKeys = new Set(Object.keys(fields));\n\n const requiredKeys = new Set<string>();\n for (const [k, spec] of Object.entries(fields)) {\n const s = spec as Record<string, unknown> | null | undefined;\n if (s && typeof s === 'object' && s.required === true) {\n requiredKeys.add(k);\n }\n }\n\n const pinned = new Set(asStringArray(t.admin_pinned_fields));\n\n const enumValues: Array<[string, string[]]> = [];\n for (const [k, spec] of Object.entries(fields)) {\n const s = spec as Record<string, unknown> | null | undefined;\n if (s && typeof s === 'object' && s.type === 'enum') {\n const vals = asStringArray(s.values).slice().sort();\n enumValues.push([k, vals]);\n }\n }\n enumValues.sort(([a], [b]) => a.localeCompare(b));\n\n return [fieldKeys, requiredKeys, pinned, enumValues] as const;\n }\n\n function signaturesEqual(\n a: ReturnType<typeof templateSignature>,\n b: ReturnType<typeof templateSignature>\n ): boolean {\n // 1. field keys\n if (a[0].size !== b[0].size) return false;\n for (const k of a[0]) if (!b[0].has(k)) return false;\n\n // 2. required keys\n if (a[1].size !== b[1].size) return false;\n for (const k of a[1]) if (!b[1].has(k)) return false;\n\n // 3. pinned keys\n if (a[2].size !== b[2].size) return false;\n for (const k of a[2]) if (!b[2].has(k)) return false;\n\n // 4. enum values (sorted arrays of [field, sorted-values] pairs)\n if (a[3].length !== b[3].length) return false;\n for (let i = 0; i < a[3].length; i++) {\n const [ak, av] = a[3][i];\n const [bk, bv] = b[3][i];\n if (ak !== bk) return false;\n if (av.length !== bv.length) return false;\n for (let j = 0; j < av.length; j++) {\n if (av[j] !== bv[j]) return false;\n }\n }\n\n return true;\n }\n\n const groups = new Map<string, TemplateRaw[]>();\n\n const tiles = Array.isArray(block.tiles) ? (block.tiles as TemplateRaw[]) : [];\n for (const t of tiles) {\n if (typeof t.widget === 'string') {\n const key = `widget:${t.widget}`;\n const group = groups.get(key) ?? [];\n group.push(t);\n groups.set(key, group);\n }\n }\n\n const items = Array.isArray(block.items) ? (block.items as TemplateRaw[]) : [];\n const actions = Array.isArray(block.actions) ? (block.actions as TemplateRaw[]) : [];\n for (const t of [...items, ...actions]) {\n if (typeof t.kind === 'string') {\n const key = `kind:${t.kind}`;\n const group = groups.get(key) ?? [];\n group.push(t);\n groups.set(key, group);\n }\n }\n\n for (const [typeKey, members] of groups) {\n if (members.length < 2) continue;\n\n const headSig = templateSignature(members[0]);\n for (let i = 1; i < members.length; i++) {\n const other = members[i];\n if (!signaturesEqual(headSig, templateSignature(other))) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n `templates of type ${JSON.stringify(typeKey)} must share an authorable field ` +\n `shape, but ${JSON.stringify(String(members[0].id))} and ` +\n `${JSON.stringify(String(other.id))} differ ` +\n `(field names / required / admin_pinned / enum values)`,\n });\n }\n }\n }\n })\n .optional()\n .describe(\n '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.'\n ),\n voiceInput: z\n .boolean()\n .optional()\n .describe(\n '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.'\n ),\n supportChat: z\n .object({\n vendor: z.string().min(1),\n suppressNative: z.boolean().optional(),\n })\n .strict()\n .optional()\n .describe(\n 'Names the site\\'s own support-chat product (e.g. \"crisp\") 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.'\n ),\n })\n .strict();\n\nexport type ChatBarProps = z.infer<typeof chatBarPropsSchema>;\n\n// ============================================================================\n// Chips Strip Props (adaptive-chatbot:chips-strip widget)\n// ============================================================================\n\n/**\n * Props schema for the `adaptive-chatbot:chips-strip` widget. Chips\n * follow the compositional-action shape (see SuggestionChipSchema in\n * AdaptiveChipsStrip.ts) \u2014 same pattern as faq:question.\n */\nexport const chipsStripPropsSchema = z\n .object({\n chips: z\n .array(SuggestionChipSchema)\n .default([])\n .describe(\n '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.'\n ),\n })\n .strict();\n\nexport type ChipsStripProps = z.infer<typeof chipsStripPropsSchema>;\n\n// ============================================================================\n// Tile Widget Props Export\n// ============================================================================\n\n/**\n * Tile widget definitions for unified JSON Schema generation.\n * Maps widget IDs to their props validation schema so the build script\n * can inject if/then constraints on tile.props.\n */\nexport const tileWidgets = [\n {\n widget: 'adaptive-chatbot:assistant',\n defName: 'chatbotAssistantProps',\n propsSchema: configSchema,\n },\n {\n widget: 'adaptive-chatbot:chat-bar',\n defName: 'chatBarProps',\n propsSchema: chatBarPropsSchema,\n },\n {\n widget: 'adaptive-chatbot:chips-strip',\n defName: 'chipsStripProps',\n propsSchema: chipsStripPropsSchema,\n },\n];\n\n// ============================================================================\n// Capabilities Documentation (injected into JSON Schema for LLM prompts)\n// ============================================================================\n\nexport const CAPABILITIES_DOCUMENTATION = {\n packageId: 'adaptive-chatbot',\n plannerSummary:\n '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.',\n description:\n '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.',\n whenToUse: [\n {\n goal: 'Mount a full AI assistant with backend streaming',\n action:\n 'Add a tile with widget: \"adaptive-chatbot:assistant\" and configure backendUrl, greeting, maxHistory, suggestions, and fallback props.',\n },\n {\n goal: 'Replace a launcher or slot lid with a chat input row',\n action:\n 'Use widget: \"adaptive-chatbot:chat-bar\" from a tile, slots.drawer.lid, or another slot lid when the host owns the transport.',\n },\n {\n goal: 'Offer suggested prompts or choices that reveal payload content',\n action:\n '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.',\n },\n {\n goal: 'Escalate to a human when the assistant cannot help',\n action:\n '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.',\n },\n ],\n conventions: [\n {\n name: 'backendUrl is explicit',\n description:\n '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.',\n },\n {\n name: 'Chat bar is headless',\n description:\n '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.',\n },\n {\n name: 'Suggestion chips are compositional',\n description:\n '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.',\n },\n {\n name: 'LLM-authored UI is opt-in',\n description:\n 'Set elementsEnabled and uiTemplates only when the backend is allowed to mount, patch, and unmount declared UI templates during chat turns.',\n },\n {\n name: 'Reply-toast copy is opt-in workspace configuration',\n description:\n \"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.\",\n },\n {\n name: 'Human handoff is escalation-only',\n description:\n \"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.\",\n },\n ],\n // Structured {name, when, props} entries \u2014 the CAPABILITIES_DOCUMENTATION\n // contract every consumer renders (`_render_capabilities_markdown` in\n // tech-core, `format_capabilities_for_prompt` in syntrologie_common).\n // Plain strings here crashed both renderers (BUG-1784941121).\n events: [\n {\n name: 'chat-message-sent',\n when: 'Visitor sends a chat message (typed, or via a suggested-reply chip)',\n props: '{ text }',\n },\n {\n name: 'chat-interrupt',\n when: 'Visitor interrupts the streaming assistant reply',\n props: '{}',\n },\n {\n name: 'canvas-close',\n when: 'Chat surface requests the host canvas to close',\n props: '{}',\n },\n {\n name: 'trail-suggested-reply',\n when: 'Visitor taps a suggest_replies chip in the chat trail',\n props: '{ text }',\n },\n {\n name: 'supportchat:reply_received',\n 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\",\n props: '{ text }',\n },\n ],\n};\n\n/**\n * Action step schemas \u2014 registered into the unified canvas-config\n * JSON Schema's action-step union so authors (and the tactician LLM)\n * can emit `suggestions:chip` items inside a chips-strip tile's\n * `props.chips` array with full validation.\n *\n * `.innerType()` strips the `.refine()` wrapper (cross-field\n * refinements don't translate to JSON Schema); runtime Zod still\n * enforces them.\n */\nexport const actionStepSchemas = [\n { defName: 'suggestionChip', schema: SuggestionChipSchema.innerType() },\n];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SupportChatBridge } from './types';
|
|
2
|
+
export interface SupportChatConfig {
|
|
3
|
+
vendor: string;
|
|
4
|
+
suppressNative?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Resolve the config-named vendor bridge at chat boot. Fail-soft: an absent
|
|
8
|
+
* vendor SDK logs (supportChat.bridge: prefix) and returns undefined — the
|
|
9
|
+
* concierge never blocks on a third-party chat.
|
|
10
|
+
*/
|
|
11
|
+
export declare function bootSupportChat(cfg?: SupportChatConfig): SupportChatBridge | undefined;
|
|
12
|
+
//# sourceMappingURL=boot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../src/support-chat/boot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAYtF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boot.test.d.ts","sourceRoot":"","sources":["../../src/support-chat/boot.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crisp.d.ts","sourceRoot":"","sources":["../../src/support-chat/crisp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAkBjD,eAAO,MAAM,WAAW,EAAE,iBAkCzB,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crisp.test.d.ts","sourceRoot":"","sources":["../../src/support-chat/crisp.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SupportChatBridge } from './types';
|
|
2
|
+
export declare function registerSupportChatBridge(bridge: SupportChatBridge): void;
|
|
3
|
+
/** Config-selected lookup — never auto-detects unnamed vendors. */
|
|
4
|
+
export declare function getSupportChatBridge(vendor: string): SupportChatBridge | undefined;
|
|
5
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/support-chat/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIjD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAEzE;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAElF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../src/support-chat/registry.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vendor-agnostic bridge to a site's OWN support-chat product (Crisp first;
|
|
3
|
+
* Zendesk/Gorgias/Tidio later — one file each). Client-only: rides the
|
|
4
|
+
* vendor's on-page JS SDK, no API keys. See
|
|
5
|
+
* docs/superpowers/specs/2026-08-13-async-handoff-crisp-design.md.
|
|
6
|
+
*/
|
|
7
|
+
export interface SupportChatBridge {
|
|
8
|
+
vendor: string;
|
|
9
|
+
/** Is the vendor's SDK present on this page? */
|
|
10
|
+
detect(): boolean;
|
|
11
|
+
/** Hide the vendor's own bubble via its supported API. */
|
|
12
|
+
hideNative(): void;
|
|
13
|
+
setVisitorEmail(email: string): void;
|
|
14
|
+
/** Deliver text into the vendor inbox the customer's team already staffs. */
|
|
15
|
+
sendMessage(text: string): void;
|
|
16
|
+
/** Subscribe to operator replies; returns unsubscribe. */
|
|
17
|
+
onOperatorReply(cb: (text: string) => void): () => void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/support-chat/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,MAAM,IAAI,OAAO,CAAC;IAClB,0DAA0D;IAC1D,UAAU,IAAI,IAAI,CAAC;IACnB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,6EAA6E;IAC7E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACzD"}
|