@designcrowd/library.brand-page 6.2.12 → 6.2.13
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/lib/src/{CreatedOnBrandCrowd-de-de-BtVKllNQ.js → CreatedOnBrandCrowd-de-de-COhZYMwW.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-CX5V0v8u.js → CreatedOnBrandCrowd-en-us-De5eIVfZ.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-CbA02PCL.js → CreatedOnBrandCrowd-es-es-D7Bk2q4d.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-BQAKruBF.js → CreatedOnBrandCrowd-fr-ca-BBCuO0D-.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-BQAKruBF.js → CreatedOnBrandCrowd-fr-fr-BBCuO0D-.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-Yk_yzB3s.js → CreatedOnBrandCrowd-pt-br-B5MrGFq-.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-Yk_yzB3s.js → CreatedOnBrandCrowd-pt-pt-B5MrGFq-.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-DJZQbPSD.js → CreatedOnDcom-de-de-CJSWCbRg.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-BJvNAa4l.js → CreatedOnDcom-en-us-OO0s0TRW.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-CUwB1FRY.js → CreatedOnDcom-es-es-DQX1lZq7.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-CK54U4oh.js → CreatedOnDcom-fr-ca-C5cQ3rla.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-DuUNBGrM.js → CreatedOnDcom-fr-fr-UdyUX0b_.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-BfODpFNV.js → CreatedOnDcom-pt-br-C0FiDCQG.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-Cf6u2GCg.js → CreatedOnDcom-pt-pt-CbbnZ7aN.js} +1 -1
- package/lib/src/brand-page/models/brand-page-context.model.d.ts +0 -2
- package/lib/src/brand-page/models/brand-page-context.model.js +0 -7
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +0 -21
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +0 -21
- package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +0 -7
- package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +0 -21
- package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +0 -21
- package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +0 -21
- package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +0 -21
- package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +0 -21
- package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +0 -21
- package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +0 -13
- package/lib/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.d.ts +2 -9
- package/lib/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.js +0 -20
- package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +0 -21
- package/lib/src/clients/ai-assistant-client.d.ts +1 -6
- package/lib/src/clients/ai-assistant-client.js +15 -7
- package/lib/src/index.mjs +1 -1
- package/lib/src/{lib-kGRlD3_P.js → lib-DgFekeRm.js} +19378 -19392
- package/lib/src/shared/background-settings/store/background-settings-store.js +3 -1
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +1 -1
- package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +1 -1
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +0 -21
- package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +0 -21
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +0 -21
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +0 -21
- package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +0 -28
- package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +1 -22
- package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +0 -21
- package/package.json +1 -1
- package/src/brand-page/models/brand-page-context.model.test.ts +38 -0
- package/src/brand-page/models/brand-page-context.model.ts +0 -13
- package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +0 -18
- package/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.ts +0 -30
- package/src/clients/ai-assistant-client.test.ts +135 -0
- package/src/clients/ai-assistant-client.ts +18 -12
- package/src/shared/background-settings/store/background-settings-store.ts +3 -1
- package/lib/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.d.ts +0 -10
- package/lib/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.js +0 -11
- package/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.test.ts +0 -82
- package/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.ts +0 -19
|
@@ -2,7 +2,9 @@ import { DEFAULT_MEDIA_OVERLAY_STYLE, GettyVideoMedia, PageStyles, } from '@bran
|
|
|
2
2
|
import { BRANDPAGE_SETTINGS_MODES, } from '@brand-page-maker/stores/brandpage-maker/brandpage-maker-store';
|
|
3
3
|
import { backgroundSettingsTabId } from '../models';
|
|
4
4
|
import { defineStore } from 'pinia';
|
|
5
|
-
|
|
5
|
+
// Direct paths, not the stores barrel: it sits in an import cycle with this store.
|
|
6
|
+
import { useUiStore } from '@brand-page-maker/stores/ui/ui-store';
|
|
7
|
+
import { useVideoStore } from '@brand-page-maker/stores/video/video-store';
|
|
6
8
|
export const useUiBackgroundSettingsStore = defineStore('uiBackgroundSettings', {
|
|
7
9
|
state: () => ({
|
|
8
10
|
backgroundStyles: {
|
package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ interface CategoryTab {
|
|
|
6
6
|
label: string;
|
|
7
7
|
}
|
|
8
8
|
declare const _default: import("vue").DefineComponent<{}, {
|
|
9
|
-
mode: import("vue").ComputedRef<"images" | "
|
|
9
|
+
mode: import("vue").ComputedRef<"images" | "add" | "edit" | "focusedContentItem">;
|
|
10
10
|
activePageId: import("vue").ComputedRef<string>;
|
|
11
11
|
activeCategoryTab: import("vue").ComputedRef<string>;
|
|
12
12
|
contentSettingsSelectedItemId: import("vue").ComputedRef<string | null>;
|
|
@@ -34,7 +34,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
34
34
|
selectedItemIndex: import("vue").ComputedRef<number | null>;
|
|
35
35
|
selectedItemValue: import("vue").ComputedRef<string | null>;
|
|
36
36
|
contentType: import("vue").ComputedRef<"website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section" | undefined>;
|
|
37
|
-
mode: import("vue").ComputedRef<"images" | "
|
|
37
|
+
mode: import("vue").ComputedRef<"images" | "add" | "edit" | "focusedContentItem">;
|
|
38
38
|
isAdminMaker: import("vue").ComputedRef<boolean>;
|
|
39
39
|
contentSettingsStore: import("pinia").Store<"uiContentSettings", import("../../store").ContentSettingsState, {
|
|
40
40
|
contentErrorCount(): number;
|
|
@@ -91,13 +91,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
91
91
|
isVariation: boolean;
|
|
92
92
|
isExcluded: boolean;
|
|
93
93
|
} | undefined;
|
|
94
|
-
bp_6136_v2_ai_builder?: {
|
|
95
|
-
key: string;
|
|
96
|
-
value: string;
|
|
97
|
-
isControl: boolean;
|
|
98
|
-
isVariation: boolean;
|
|
99
|
-
isExcluded: boolean;
|
|
100
|
-
} | undefined;
|
|
101
94
|
};
|
|
102
95
|
isSubsequentPublish: boolean;
|
|
103
96
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -173,13 +166,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
173
166
|
isVariation: boolean;
|
|
174
167
|
isExcluded: boolean;
|
|
175
168
|
} | undefined;
|
|
176
|
-
bp_6136_v2_ai_builder?: {
|
|
177
|
-
key: string;
|
|
178
|
-
value: string;
|
|
179
|
-
isControl: boolean;
|
|
180
|
-
isVariation: boolean;
|
|
181
|
-
isExcluded: boolean;
|
|
182
|
-
} | undefined;
|
|
183
169
|
};
|
|
184
170
|
isSubsequentPublish: boolean;
|
|
185
171
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -255,13 +241,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
255
241
|
isVariation: boolean;
|
|
256
242
|
isExcluded: boolean;
|
|
257
243
|
} | undefined;
|
|
258
|
-
bp_6136_v2_ai_builder?: {
|
|
259
|
-
key: string;
|
|
260
|
-
value: string;
|
|
261
|
-
isControl: boolean;
|
|
262
|
-
isVariation: boolean;
|
|
263
|
-
isExcluded: boolean;
|
|
264
|
-
} | undefined;
|
|
265
244
|
};
|
|
266
245
|
isSubsequentPublish: boolean;
|
|
267
246
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -390,13 +390,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
390
390
|
isVariation: boolean;
|
|
391
391
|
isExcluded: boolean;
|
|
392
392
|
} | undefined;
|
|
393
|
-
bp_6136_v2_ai_builder?: {
|
|
394
|
-
key: string;
|
|
395
|
-
value: string;
|
|
396
|
-
isControl: boolean;
|
|
397
|
-
isVariation: boolean;
|
|
398
|
-
isExcluded: boolean;
|
|
399
|
-
} | undefined;
|
|
400
393
|
};
|
|
401
394
|
isSubsequentPublish: boolean;
|
|
402
395
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -472,13 +465,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
472
465
|
isVariation: boolean;
|
|
473
466
|
isExcluded: boolean;
|
|
474
467
|
} | undefined;
|
|
475
|
-
bp_6136_v2_ai_builder?: {
|
|
476
|
-
key: string;
|
|
477
|
-
value: string;
|
|
478
|
-
isControl: boolean;
|
|
479
|
-
isVariation: boolean;
|
|
480
|
-
isExcluded: boolean;
|
|
481
|
-
} | undefined;
|
|
482
468
|
};
|
|
483
469
|
isSubsequentPublish: boolean;
|
|
484
470
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -554,13 +540,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
554
540
|
isVariation: boolean;
|
|
555
541
|
isExcluded: boolean;
|
|
556
542
|
} | undefined;
|
|
557
|
-
bp_6136_v2_ai_builder?: {
|
|
558
|
-
key: string;
|
|
559
|
-
value: string;
|
|
560
|
-
isControl: boolean;
|
|
561
|
-
isVariation: boolean;
|
|
562
|
-
isExcluded: boolean;
|
|
563
|
-
} | undefined;
|
|
564
543
|
};
|
|
565
544
|
isSubsequentPublish: boolean;
|
|
566
545
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -4836,13 +4836,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
4836
4836
|
isVariation: boolean;
|
|
4837
4837
|
isExcluded: boolean;
|
|
4838
4838
|
} | undefined;
|
|
4839
|
-
bp_6136_v2_ai_builder?: {
|
|
4840
|
-
key: string;
|
|
4841
|
-
value: string;
|
|
4842
|
-
isControl: boolean;
|
|
4843
|
-
isVariation: boolean;
|
|
4844
|
-
isExcluded: boolean;
|
|
4845
|
-
} | undefined;
|
|
4846
4839
|
};
|
|
4847
4840
|
isSubsequentPublish: boolean;
|
|
4848
4841
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -4918,13 +4911,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
4918
4911
|
isVariation: boolean;
|
|
4919
4912
|
isExcluded: boolean;
|
|
4920
4913
|
} | undefined;
|
|
4921
|
-
bp_6136_v2_ai_builder?: {
|
|
4922
|
-
key: string;
|
|
4923
|
-
value: string;
|
|
4924
|
-
isControl: boolean;
|
|
4925
|
-
isVariation: boolean;
|
|
4926
|
-
isExcluded: boolean;
|
|
4927
|
-
} | undefined;
|
|
4928
4914
|
};
|
|
4929
4915
|
isSubsequentPublish: boolean;
|
|
4930
4916
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -5000,13 +4986,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
5000
4986
|
isVariation: boolean;
|
|
5001
4987
|
isExcluded: boolean;
|
|
5002
4988
|
} | undefined;
|
|
5003
|
-
bp_6136_v2_ai_builder?: {
|
|
5004
|
-
key: string;
|
|
5005
|
-
value: string;
|
|
5006
|
-
isControl: boolean;
|
|
5007
|
-
isVariation: boolean;
|
|
5008
|
-
isExcluded: boolean;
|
|
5009
|
-
} | undefined;
|
|
5010
4989
|
};
|
|
5011
4990
|
isSubsequentPublish: boolean;
|
|
5012
4991
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -4229,13 +4229,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4229
4229
|
isVariation: boolean;
|
|
4230
4230
|
isExcluded: boolean;
|
|
4231
4231
|
} | undefined;
|
|
4232
|
-
bp_6136_v2_ai_builder?: {
|
|
4233
|
-
key: string;
|
|
4234
|
-
value: string;
|
|
4235
|
-
isControl: boolean;
|
|
4236
|
-
isVariation: boolean;
|
|
4237
|
-
isExcluded: boolean;
|
|
4238
|
-
} | undefined;
|
|
4239
4232
|
};
|
|
4240
4233
|
isSubsequentPublish: boolean;
|
|
4241
4234
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -4311,13 +4304,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4311
4304
|
isVariation: boolean;
|
|
4312
4305
|
isExcluded: boolean;
|
|
4313
4306
|
} | undefined;
|
|
4314
|
-
bp_6136_v2_ai_builder?: {
|
|
4315
|
-
key: string;
|
|
4316
|
-
value: string;
|
|
4317
|
-
isControl: boolean;
|
|
4318
|
-
isVariation: boolean;
|
|
4319
|
-
isExcluded: boolean;
|
|
4320
|
-
} | undefined;
|
|
4321
4307
|
};
|
|
4322
4308
|
isSubsequentPublish: boolean;
|
|
4323
4309
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -4393,13 +4379,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4393
4379
|
isVariation: boolean;
|
|
4394
4380
|
isExcluded: boolean;
|
|
4395
4381
|
} | undefined;
|
|
4396
|
-
bp_6136_v2_ai_builder?: {
|
|
4397
|
-
key: string;
|
|
4398
|
-
value: string;
|
|
4399
|
-
isControl: boolean;
|
|
4400
|
-
isVariation: boolean;
|
|
4401
|
-
isExcluded: boolean;
|
|
4402
|
-
} | undefined;
|
|
4403
4382
|
};
|
|
4404
4383
|
isSubsequentPublish: boolean;
|
|
4405
4384
|
isContextualUpgradeModalVisible: boolean;
|
package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts
CHANGED
|
@@ -70,13 +70,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
70
70
|
isVariation: boolean;
|
|
71
71
|
isExcluded: boolean;
|
|
72
72
|
} | undefined;
|
|
73
|
-
bp_6136_v2_ai_builder?: {
|
|
74
|
-
key: string;
|
|
75
|
-
value: string;
|
|
76
|
-
isControl: boolean;
|
|
77
|
-
isVariation: boolean;
|
|
78
|
-
isExcluded: boolean;
|
|
79
|
-
} | undefined;
|
|
80
73
|
}>;
|
|
81
74
|
brandPageType: import("vue").ComputedRef<"default" | "brandSite" | "brandContact">;
|
|
82
75
|
isSubsequentPublish: import("vue").ComputedRef<boolean>;
|
|
@@ -297,13 +290,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
297
290
|
isVariation: boolean;
|
|
298
291
|
isExcluded: boolean;
|
|
299
292
|
} | undefined;
|
|
300
|
-
bp_6136_v2_ai_builder?: {
|
|
301
|
-
key: string;
|
|
302
|
-
value: string;
|
|
303
|
-
isControl: boolean;
|
|
304
|
-
isVariation: boolean;
|
|
305
|
-
isExcluded: boolean;
|
|
306
|
-
} | undefined;
|
|
307
293
|
};
|
|
308
294
|
isSubsequentPublish: boolean;
|
|
309
295
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -379,13 +365,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
379
365
|
isVariation: boolean;
|
|
380
366
|
isExcluded: boolean;
|
|
381
367
|
} | undefined;
|
|
382
|
-
bp_6136_v2_ai_builder?: {
|
|
383
|
-
key: string;
|
|
384
|
-
value: string;
|
|
385
|
-
isControl: boolean;
|
|
386
|
-
isVariation: boolean;
|
|
387
|
-
isExcluded: boolean;
|
|
388
|
-
} | undefined;
|
|
389
368
|
};
|
|
390
369
|
isSubsequentPublish: boolean;
|
|
391
370
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -461,13 +440,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
461
440
|
isVariation: boolean;
|
|
462
441
|
isExcluded: boolean;
|
|
463
442
|
} | undefined;
|
|
464
|
-
bp_6136_v2_ai_builder?: {
|
|
465
|
-
key: string;
|
|
466
|
-
value: string;
|
|
467
|
-
isControl: boolean;
|
|
468
|
-
isVariation: boolean;
|
|
469
|
-
isExcluded: boolean;
|
|
470
|
-
} | undefined;
|
|
471
443
|
};
|
|
472
444
|
isSubsequentPublish: boolean;
|
|
473
445
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -84,13 +84,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
84
84
|
isVariation: boolean;
|
|
85
85
|
isExcluded: boolean;
|
|
86
86
|
} | undefined;
|
|
87
|
-
bp_6136_v2_ai_builder?: {
|
|
88
|
-
key: string;
|
|
89
|
-
value: string;
|
|
90
|
-
isControl: boolean;
|
|
91
|
-
isVariation: boolean;
|
|
92
|
-
isExcluded: boolean;
|
|
93
|
-
} | undefined;
|
|
94
87
|
};
|
|
95
88
|
isSubsequentPublish: boolean;
|
|
96
89
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -166,13 +159,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
166
159
|
isVariation: boolean;
|
|
167
160
|
isExcluded: boolean;
|
|
168
161
|
} | undefined;
|
|
169
|
-
bp_6136_v2_ai_builder?: {
|
|
170
|
-
key: string;
|
|
171
|
-
value: string;
|
|
172
|
-
isControl: boolean;
|
|
173
|
-
isVariation: boolean;
|
|
174
|
-
isExcluded: boolean;
|
|
175
|
-
} | undefined;
|
|
176
162
|
};
|
|
177
163
|
isSubsequentPublish: boolean;
|
|
178
164
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -248,13 +234,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
248
234
|
isVariation: boolean;
|
|
249
235
|
isExcluded: boolean;
|
|
250
236
|
} | undefined;
|
|
251
|
-
bp_6136_v2_ai_builder?: {
|
|
252
|
-
key: string;
|
|
253
|
-
value: string;
|
|
254
|
-
isControl: boolean;
|
|
255
|
-
isVariation: boolean;
|
|
256
|
-
isExcluded: boolean;
|
|
257
|
-
} | undefined;
|
|
258
237
|
};
|
|
259
238
|
isSubsequentPublish: boolean;
|
|
260
239
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -381,7 +360,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
381
360
|
}[]>;
|
|
382
361
|
selectedTabName: import("vue").ComputedRef<string>;
|
|
383
362
|
isAdminMaker: import("vue").ComputedRef<boolean>;
|
|
384
|
-
contentSettingsMode: import("vue").ComputedRef<"images" | "
|
|
363
|
+
contentSettingsMode: import("vue").ComputedRef<"images" | "add" | "edit" | "focusedContentItem">;
|
|
385
364
|
contentSettingsSelectedItemId: import("vue").ComputedRef<string | null>;
|
|
386
365
|
sideBarStore: import("pinia").Store<"uiSideBar", import("../store").SideBarState, {}, {
|
|
387
366
|
setBrandPageSettingsTabVisibility(payload: {
|
|
@@ -731,13 +731,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
731
731
|
isVariation: boolean;
|
|
732
732
|
isExcluded: boolean;
|
|
733
733
|
} | undefined;
|
|
734
|
-
bp_6136_v2_ai_builder?: {
|
|
735
|
-
key: string;
|
|
736
|
-
value: string;
|
|
737
|
-
isControl: boolean;
|
|
738
|
-
isVariation: boolean;
|
|
739
|
-
isExcluded: boolean;
|
|
740
|
-
} | undefined;
|
|
741
734
|
};
|
|
742
735
|
isSubsequentPublish: boolean;
|
|
743
736
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -813,13 +806,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
813
806
|
isVariation: boolean;
|
|
814
807
|
isExcluded: boolean;
|
|
815
808
|
} | undefined;
|
|
816
|
-
bp_6136_v2_ai_builder?: {
|
|
817
|
-
key: string;
|
|
818
|
-
value: string;
|
|
819
|
-
isControl: boolean;
|
|
820
|
-
isVariation: boolean;
|
|
821
|
-
isExcluded: boolean;
|
|
822
|
-
} | undefined;
|
|
823
809
|
};
|
|
824
810
|
isSubsequentPublish: boolean;
|
|
825
811
|
isContextualUpgradeModalVisible: boolean;
|
|
@@ -895,13 +881,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
895
881
|
isVariation: boolean;
|
|
896
882
|
isExcluded: boolean;
|
|
897
883
|
} | undefined;
|
|
898
|
-
bp_6136_v2_ai_builder?: {
|
|
899
|
-
key: string;
|
|
900
|
-
value: string;
|
|
901
|
-
isControl: boolean;
|
|
902
|
-
isVariation: boolean;
|
|
903
|
-
isExcluded: boolean;
|
|
904
|
-
} | undefined;
|
|
905
884
|
};
|
|
906
885
|
isSubsequentPublish: boolean;
|
|
907
886
|
isContextualUpgradeModalVisible: boolean;
|
package/package.json
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, test, expect } from 'vitest';
|
|
2
|
+
import {
|
|
3
|
+
AB_TEST_KEYS,
|
|
4
|
+
getAbTestResults,
|
|
5
|
+
type AbTest,
|
|
6
|
+
} from './brand-page-context.model';
|
|
7
|
+
|
|
8
|
+
// BP-6193 locked in BP-6136 (V2 AI builder): the editor no longer recognises
|
|
9
|
+
// this arm, whatever value bc-net sends.
|
|
10
|
+
describe('BP-6136 arm no longer parses', () => {
|
|
11
|
+
test.each(['bp-6136-variation-1', 'bp-6136-control', 'bp-6136-excluded'])(
|
|
12
|
+
'%s yields no AbTest entry',
|
|
13
|
+
(value) => {
|
|
14
|
+
expect(
|
|
15
|
+
getAbTestResults({
|
|
16
|
+
'bc-bp-6136-v2-ai-builder': value,
|
|
17
|
+
} as unknown as AbTest),
|
|
18
|
+
).toEqual({});
|
|
19
|
+
},
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
test('the BP-3926 key still parses when BP-6136 arrives alongside it', () => {
|
|
23
|
+
expect(
|
|
24
|
+
getAbTestResults({
|
|
25
|
+
[AB_TEST_KEYS.BP_3926_FREEMIUM_WATERMARK]: 'bc-bp-3926-variation-1',
|
|
26
|
+
'bc-bp-6136-v2-ai-builder': 'bp-6136-variation-1',
|
|
27
|
+
} as unknown as AbTest),
|
|
28
|
+
).toEqual({
|
|
29
|
+
bp_3926_freemium_watermark: {
|
|
30
|
+
key: AB_TEST_KEYS.BP_3926_FREEMIUM_WATERMARK,
|
|
31
|
+
value: 'bc-bp-3926-variation-1',
|
|
32
|
+
isControl: false,
|
|
33
|
+
isVariation: true,
|
|
34
|
+
isExcluded: false,
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
@@ -48,14 +48,10 @@ export interface AbTestResult {
|
|
|
48
48
|
|
|
49
49
|
export const AB_TEST_KEYS = {
|
|
50
50
|
BP_3926_FREEMIUM_WATERMARK: 'bc-bp-3926-freemium-cta-in-website-editor',
|
|
51
|
-
// V1 (control) vs V2 (variation-1) AI website builder, sent by bc-net in the editor
|
|
52
|
-
// payload at load. Key must match `Bp6136V2AiBuilderStrategy.CampaignKey`.
|
|
53
|
-
BP_6136_V2_AI_BUILDER: 'bc-bp-6136-v2-ai-builder',
|
|
54
51
|
};
|
|
55
52
|
|
|
56
53
|
export interface AbTest {
|
|
57
54
|
bp_3926_freemium_watermark?: AbTestResult;
|
|
58
|
-
bp_6136_v2_ai_builder?: AbTestResult;
|
|
59
55
|
}
|
|
60
56
|
|
|
61
57
|
export const MEDIA_SIZES = {
|
|
@@ -136,14 +132,5 @@ export const getAbTestResults = (abtestKeyValues: AbTest): AbTest => {
|
|
|
136
132
|
);
|
|
137
133
|
}
|
|
138
134
|
|
|
139
|
-
// AB Test - V1 vs V2 AI website builder
|
|
140
|
-
|
|
141
|
-
if (abtestKeyValues[AB_TEST_KEYS.BP_6136_V2_AI_BUILDER]) {
|
|
142
|
-
abTests.bp_6136_v2_ai_builder = getValueType(
|
|
143
|
-
AB_TEST_KEYS.BP_6136_V2_AI_BUILDER,
|
|
144
|
-
abtestKeyValues[AB_TEST_KEYS.BP_6136_V2_AI_BUILDER],
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
135
|
return abTests;
|
|
149
136
|
};
|
|
@@ -37,7 +37,6 @@ import { useHistoryStore } from '../../stores/history/history-store';
|
|
|
37
37
|
import { useUndoRedoFlag } from '../useUndoRedoFlag';
|
|
38
38
|
import { useBrandPageMakerUserStore } from '../../stores/user/user-store';
|
|
39
39
|
import { useAiMetadataBuilder } from './useAiMetadataBuilder';
|
|
40
|
-
import { aiBuilderAgentTypeForArm } from './ai-builder-experiment';
|
|
41
40
|
import {
|
|
42
41
|
pickErrorMessage,
|
|
43
42
|
pickWsErrorMessage,
|
|
@@ -530,16 +529,6 @@ export function useAiWebsiteBuilderChat(): UseAiChatResult {
|
|
|
530
529
|
? 'premium'
|
|
531
530
|
: 'free';
|
|
532
531
|
|
|
533
|
-
if (!aiThreadStore.threadId) {
|
|
534
|
-
// The A/B arm bc-net bucketed at editor load decides which builder owns the
|
|
535
|
-
// new thread; the message and tool-result calls below reuse it.
|
|
536
|
-
aiThreadStore.setAgentType(
|
|
537
|
-
aiBuilderAgentTypeForArm(
|
|
538
|
-
containerStore.abTests.bp_6136_v2_ai_builder,
|
|
539
|
-
),
|
|
540
|
-
);
|
|
541
|
-
}
|
|
542
|
-
|
|
543
532
|
let buildResponse;
|
|
544
533
|
|
|
545
534
|
if (!aiThreadStore.threadId) {
|
|
@@ -547,7 +536,6 @@ export function useAiWebsiteBuilderChat(): UseAiChatResult {
|
|
|
547
536
|
message,
|
|
548
537
|
websiteContext,
|
|
549
538
|
websiteSnapshot: snapshotStore.snapshotBase64 || undefined,
|
|
550
|
-
agentType: aiThreadStore.agentType,
|
|
551
539
|
userPlan,
|
|
552
540
|
connectionId,
|
|
553
541
|
...buildAttributionFields(),
|
|
@@ -559,7 +547,6 @@ export function useAiWebsiteBuilderChat(): UseAiChatResult {
|
|
|
559
547
|
message,
|
|
560
548
|
websiteContext,
|
|
561
549
|
websiteSnapshot: snapshotStore.snapshotBase64 || undefined,
|
|
562
|
-
agentType: aiThreadStore.agentType,
|
|
563
550
|
userPlan,
|
|
564
551
|
connectionId,
|
|
565
552
|
...buildAttributionFields(),
|
|
@@ -763,15 +750,10 @@ export function useAiWebsiteBuilderChat(): UseAiChatResult {
|
|
|
763
750
|
retryCount,
|
|
764
751
|
});
|
|
765
752
|
|
|
766
|
-
// Tool submissions must go to the SAME agent that ran the thread
|
|
767
|
-
// (AI QA 2026-07-05 T19: a mismatched agentType routes tool results
|
|
768
|
-
// to a service with no state for the thread and fails the build).
|
|
769
|
-
// The thread store holds this thread's agent (A/B arm: V1 control, V2 variation-1).
|
|
770
753
|
const submitResult = await client.submitToolResultsBuildAsync(
|
|
771
754
|
aiThreadStore.threadId!,
|
|
772
755
|
{
|
|
773
756
|
toolCalls: toolResults,
|
|
774
|
-
agentType: aiThreadStore.agentType,
|
|
775
757
|
connectionId,
|
|
776
758
|
retryCount,
|
|
777
759
|
userPlan,
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { defineStore } from 'pinia';
|
|
2
2
|
import { ref } from 'vue';
|
|
3
|
-
import {
|
|
4
|
-
AI_ASSISTANT_AGENT_TYPES,
|
|
5
|
-
type AiAssistantAgentType,
|
|
6
|
-
} from '../../../clients/ai-assistant-client';
|
|
7
3
|
|
|
8
4
|
export const useAiWebsiteBuilderThreadStore = defineStore(
|
|
9
5
|
'aiWebsiteBuilderThread',
|
|
@@ -18,14 +14,6 @@ export const useAiWebsiteBuilderThreadStore = defineStore(
|
|
|
18
14
|
const promptText = ref<string>('');
|
|
19
15
|
const stopGeneration = ref<(() => void) | null>(null);
|
|
20
16
|
|
|
21
|
-
// Which builder this thread talks to. V1 (control) is the default, what production
|
|
22
|
-
// runs today; the chat composable sets V2 for the variation-1 arm when a thread
|
|
23
|
-
// starts (aiBuilderAgentTypeForArm). Every send site reads it, because tool results
|
|
24
|
-
// must reach the agent that owns the thread (AI QA 2026-07-05 T19).
|
|
25
|
-
const agentType = ref<AiAssistantAgentType>(
|
|
26
|
-
AI_ASSISTANT_AGENT_TYPES.WEBSITE_BUILDER,
|
|
27
|
-
);
|
|
28
|
-
|
|
29
17
|
// Bumped on every reset so consumers (useAiWebsiteBuilderChat) can react
|
|
30
18
|
// without watching `messages`, which would loop with its own deep watch.
|
|
31
19
|
const resetToken = ref<number>(0);
|
|
@@ -47,22 +35,6 @@ export const useAiWebsiteBuilderThreadStore = defineStore(
|
|
|
47
35
|
resetToken.value += 1;
|
|
48
36
|
};
|
|
49
37
|
|
|
50
|
-
const setAgentType = (type: AiAssistantAgentType) => {
|
|
51
|
-
if (agentType.value === type) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const hadThread = threadId.value !== null;
|
|
56
|
-
|
|
57
|
-
agentType.value = type;
|
|
58
|
-
|
|
59
|
-
// V1 and V2 threads are not interchangeable, so a thread already running on
|
|
60
|
-
// the other agent is dropped. Before the first prompt there is nothing to drop.
|
|
61
|
-
if (hadThread) {
|
|
62
|
-
reset();
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
38
|
return {
|
|
67
39
|
threadId,
|
|
68
40
|
runId,
|
|
@@ -73,8 +45,6 @@ export const useAiWebsiteBuilderThreadStore = defineStore(
|
|
|
73
45
|
buildSectionsCompleted,
|
|
74
46
|
promptText,
|
|
75
47
|
stopGeneration,
|
|
76
|
-
agentType,
|
|
77
|
-
setAgentType,
|
|
78
48
|
resetToken,
|
|
79
49
|
reset,
|
|
80
50
|
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { createPinia, setActivePinia } from 'pinia';
|
|
3
|
+
import { beforeEach, describe, expect, test, vi } from 'vitest';
|
|
4
|
+
import {
|
|
5
|
+
getInstance,
|
|
6
|
+
getWebsiteCreateThreadEndpoint,
|
|
7
|
+
getWebsiteSendMessageEndpoint,
|
|
8
|
+
getWebsiteToolSubmissionEndpoint,
|
|
9
|
+
type WebsiteCreateThreadRequest,
|
|
10
|
+
type WebsiteSendMessageRequest,
|
|
11
|
+
type WebsiteToolSubmissionRequest,
|
|
12
|
+
type WebsiteCreateThreadBuildRequest,
|
|
13
|
+
type WebsiteSendMessageBuildRequest,
|
|
14
|
+
} from './ai-assistant-client';
|
|
15
|
+
|
|
16
|
+
vi.mock('axios');
|
|
17
|
+
|
|
18
|
+
const THREAD_ID = 'thread-1';
|
|
19
|
+
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
setActivePinia(createPinia());
|
|
22
|
+
vi.clearAllMocks();
|
|
23
|
+
vi.mocked(axios.post).mockResolvedValue({
|
|
24
|
+
data: { threadId: THREAD_ID, buildId: 'build-1' },
|
|
25
|
+
headers: {},
|
|
26
|
+
} as any);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// BP-6193: the client, not the caller, names the agent — tool results sent to a
|
|
30
|
+
// different agent than the one running the thread fail the build
|
|
31
|
+
// (ai-v2-tool-submission-routing.md).
|
|
32
|
+
describe('AiAssistantClient — every website call names the V2 builder', () => {
|
|
33
|
+
test('the three build methods post agentType: V2', async () => {
|
|
34
|
+
const client = getInstance();
|
|
35
|
+
|
|
36
|
+
await client.createWebsiteThreadBuildAsync({
|
|
37
|
+
message: 'hello',
|
|
38
|
+
connectionId: 'conn-1',
|
|
39
|
+
} as WebsiteCreateThreadBuildRequest);
|
|
40
|
+
await client.sendWebsiteMessageBuildAsync(THREAD_ID, {
|
|
41
|
+
message: 'hello',
|
|
42
|
+
connectionId: 'conn-1',
|
|
43
|
+
} as WebsiteSendMessageBuildRequest);
|
|
44
|
+
await client.submitToolResultsBuildAsync(THREAD_ID, {
|
|
45
|
+
toolCalls: [],
|
|
46
|
+
} as WebsiteToolSubmissionRequest);
|
|
47
|
+
|
|
48
|
+
vi.mocked(axios.post).mock.calls.forEach(([, body]) => {
|
|
49
|
+
expect(body).toMatchObject({ agentType: 'website_builder_v2' });
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('the three unused V1-era methods also post agentType: V2', async () => {
|
|
54
|
+
const client = getInstance();
|
|
55
|
+
|
|
56
|
+
await client.createWebsiteThreadAndSendMessageAsync({
|
|
57
|
+
message: 'hello',
|
|
58
|
+
} as WebsiteCreateThreadRequest);
|
|
59
|
+
await client.sendWebsiteMessageAsync(THREAD_ID, {
|
|
60
|
+
message: 'hello',
|
|
61
|
+
} as WebsiteSendMessageRequest);
|
|
62
|
+
await client.submitWebsiteToolCallOutputAsync(THREAD_ID, {
|
|
63
|
+
toolCalls: [],
|
|
64
|
+
} as WebsiteToolSubmissionRequest);
|
|
65
|
+
|
|
66
|
+
vi.mocked(axios.post).mock.calls.forEach(([, body]) => {
|
|
67
|
+
expect(body).toMatchObject({ agentType: 'website_builder_v2' });
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('a caller-supplied agentType cannot override V2', async () => {
|
|
72
|
+
const client = getInstance();
|
|
73
|
+
|
|
74
|
+
await client.createWebsiteThreadBuildAsync({
|
|
75
|
+
message: 'hello',
|
|
76
|
+
connectionId: 'conn-1',
|
|
77
|
+
agentType: 'website_builder',
|
|
78
|
+
} as never);
|
|
79
|
+
|
|
80
|
+
const [, body] = vi.mocked(axios.post).mock.calls[0];
|
|
81
|
+
|
|
82
|
+
expect(body).toMatchObject({ agentType: 'website_builder_v2' });
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test('each method posts to its own endpoint and keeps the caller fields', async () => {
|
|
86
|
+
const client = getInstance();
|
|
87
|
+
|
|
88
|
+
await client.createWebsiteThreadBuildAsync({
|
|
89
|
+
message: 'hello',
|
|
90
|
+
connectionId: 'conn-1',
|
|
91
|
+
userPlan: 'premium',
|
|
92
|
+
locale: 'en-US',
|
|
93
|
+
} as WebsiteCreateThreadBuildRequest);
|
|
94
|
+
await client.sendWebsiteMessageBuildAsync(THREAD_ID, {
|
|
95
|
+
message: 'follow-up',
|
|
96
|
+
connectionId: 'conn-1',
|
|
97
|
+
userPlan: 'free',
|
|
98
|
+
locale: 'en-US',
|
|
99
|
+
} as WebsiteSendMessageBuildRequest);
|
|
100
|
+
await client.submitToolResultsBuildAsync(THREAD_ID, {
|
|
101
|
+
toolCalls: [{ toolId: 't1', success: 'success' }],
|
|
102
|
+
connectionId: 'conn-1',
|
|
103
|
+
retryCount: 1,
|
|
104
|
+
userPlan: 'free',
|
|
105
|
+
locale: 'en-US',
|
|
106
|
+
} as WebsiteToolSubmissionRequest);
|
|
107
|
+
|
|
108
|
+
const calls = vi.mocked(axios.post).mock.calls;
|
|
109
|
+
|
|
110
|
+
expect(calls[0][0]).toBe(getWebsiteCreateThreadEndpoint());
|
|
111
|
+
expect(calls[0][1]).toMatchObject({
|
|
112
|
+
message: 'hello',
|
|
113
|
+
connectionId: 'conn-1',
|
|
114
|
+
userPlan: 'premium',
|
|
115
|
+
locale: 'en-US',
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
expect(calls[1][0]).toBe(getWebsiteSendMessageEndpoint(THREAD_ID));
|
|
119
|
+
expect(calls[1][1]).toMatchObject({
|
|
120
|
+
message: 'follow-up',
|
|
121
|
+
connectionId: 'conn-1',
|
|
122
|
+
userPlan: 'free',
|
|
123
|
+
locale: 'en-US',
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
expect(calls[2][0]).toBe(getWebsiteToolSubmissionEndpoint(THREAD_ID));
|
|
127
|
+
expect(calls[2][1]).toMatchObject({
|
|
128
|
+
toolCalls: [{ toolId: 't1', success: 'success' }],
|
|
129
|
+
connectionId: 'conn-1',
|
|
130
|
+
retryCount: 1,
|
|
131
|
+
userPlan: 'free',
|
|
132
|
+
locale: 'en-US',
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
});
|