@bcrumbs.net/inbox 0.0.63 → 0.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/assets/ar/inbox.json +40 -6
  2. package/assets/en/inbox.json +40 -6
  3. package/e2e/auth.setup.d.ts +1 -0
  4. package/e2e/checkout/checkout.flows.d.ts +24 -0
  5. package/e2e/global.teardown.d.ts +1 -0
  6. package/e2e/support/auth.d.ts +22 -0
  7. package/e2e/support/cleanup.d.ts +20 -0
  8. package/e2e/support/config.d.ts +23 -0
  9. package/e2e/support/fixtures.d.ts +16 -0
  10. package/e2e/support/identifiers.d.ts +13 -0
  11. package/e2e/support/index.d.ts +6 -0
  12. package/index.cjs.js +39202 -1083
  13. package/index.esm.js +39206 -1088
  14. package/package.json +2 -2
  15. package/playwright.config.d.ts +0 -4
  16. package/src/app/ai/components/Crumby/CrumbyChatError.d.ts +9 -0
  17. package/src/app/ai/components/Crumby/CrumbyChatErrorBoundary.d.ts +13 -0
  18. package/src/app/ai/components/Crumby/CrumbyHeader.d.ts +9 -0
  19. package/src/app/ai/components/Crumby/CrumbyPageContext.d.ts +22 -0
  20. package/src/app/ai/components/Crumby/CrumbyRuntimeProvider.d.ts +9 -0
  21. package/src/app/ai/components/CrumbySettings/CrumbyEditsBanner.d.ts +14 -0
  22. package/src/app/ai/components/CrumbySettings/VoiceSettingsSection.d.ts +9 -0
  23. package/src/app/ai/components/playground/Button.d.ts +1 -1
  24. package/src/app/ai/components/playground/ThreadMessages.d.ts +3 -1
  25. package/src/app/ai/components/playground/TooltipIconButton.d.ts +1 -1
  26. package/src/app/ai/components/sources/mediaTypeForFile.d.ts +8 -0
  27. package/src/app/ai/config/promptSettings.d.ts +31 -0
  28. package/src/app/ai/hooks/usePromptCopilot.d.ts +22 -0
  29. package/src/app/ai/tools/PromptEditorTool.d.ts +2 -0
  30. package/src/app/ai/types/index.d.ts +1 -1
  31. package/src/app/ai/utils/clientToolResubmit.d.ts +8 -0
  32. package/src/app/ai/utils/crumbyChatFetch.d.ts +15 -0
  33. package/src/app/auth/components/AcceptInvitation.d.ts +2 -0
  34. package/src/app/auth/components/AuthLanguagePicker.d.ts +3 -0
  35. package/src/app/auth/components/AuthVisualCarousel.d.ts +1 -0
  36. package/src/app/auth/components/ClerkSessionBridge.d.ts +4 -0
  37. package/src/app/auth/components/password-page/AuthPasswordPageLayout.d.ts +3 -1
  38. package/src/app/auth/components/password-page/PasswordSuccessView.d.ts +2 -1
  39. package/src/app/auth/config/authProvider.d.ts +20 -2
  40. package/src/app/auth/config/clerkAppearance.d.ts +152 -49
  41. package/src/app/auth/config/clerkLocalization.d.ts +6 -0
  42. package/src/app/auth/pages/Auth.style.d.ts +14 -0
  43. package/src/app/auth/pages/Login.d.ts +2 -1
  44. package/src/app/auth/pages/Register.d.ts +1 -0
  45. package/src/app/billing/pages/GatewayWelcomePage.d.ts +5 -0
  46. package/src/app/billing/utils/isGatewayPlan.d.ts +2 -0
  47. package/src/app/broadcast/components/BroadcastAnalysisReciepientsHeader.d.ts +2 -1
  48. package/src/app/broadcast/components/BroadcastDetailsSection.d.ts +3 -1
  49. package/src/app/broadcast/constants.d.ts +2 -0
  50. package/src/app/dashboard/components/AgentCard.d.ts +2 -1
  51. package/src/app/dashboard/components/AgentsCard.d.ts +4 -2
  52. package/src/app/dashboard/components/BroadcastDashboard.d.ts +3 -1
  53. package/src/app/dashboard/components/ChatsByLifeCycleCard.d.ts +13 -0
  54. package/src/app/dashboard/components/DashboardFilters.d.ts +27 -0
  55. package/src/app/dashboard/components/DashboardPdfCaptureArea.d.ts +11 -0
  56. package/src/app/dashboard/components/DashboardPdfExportButton.d.ts +7 -0
  57. package/src/app/dashboard/components/DashboardPdfHeader.d.ts +11 -0
  58. package/src/app/dashboard/components/DashboardSections.d.ts +7 -2
  59. package/src/app/dashboard/components/InboxDashboard.d.ts +3 -1
  60. package/src/app/dashboard/hooks/useDashboardPdfMeta.d.ts +31 -0
  61. package/src/app/dashboard/hooks/useDashboardTabsPdfExport.d.ts +26 -0
  62. package/src/app/dashboard/utils/dashboardReportExports.d.ts +16 -1
  63. package/src/app/dashboard/utils/exportDashboardPdf.d.ts +19 -0
  64. package/src/app/dashboard/utils/lifecycleStages.d.ts +53 -0
  65. package/src/app/dashboard/utils/reportHelpers.d.ts +9 -0
  66. package/src/app/gatewayHome/components/ChecklistStep.d.ts +15 -0
  67. package/src/app/gatewayHome/components/CreditBalanceCard.d.ts +6 -0
  68. package/src/app/gatewayHome/components/MessageStats.d.ts +5 -0
  69. package/src/app/gatewayHome/components/SetupChecklist.d.ts +11 -0
  70. package/src/app/gatewayHome/components/console/QuickstartConsole.d.ts +11 -0
  71. package/src/app/gatewayHome/components/console/RunRequestBar.d.ts +15 -0
  72. package/src/app/gatewayHome/components/console/consoleStyles.d.ts +77 -0
  73. package/src/app/gatewayHome/components/steps/ApiKeyStepBody.d.ts +8 -0
  74. package/src/app/gatewayHome/components/steps/ChannelStepBody.d.ts +3 -0
  75. package/src/app/gatewayHome/components/steps/MetaStepBody.d.ts +6 -0
  76. package/src/app/gatewayHome/components/steps/WebhookStepBody.d.ts +7 -0
  77. package/src/app/gatewayHome/components/styles.d.ts +29 -0
  78. package/src/app/gatewayHome/config/constants.d.ts +22 -0
  79. package/src/app/gatewayHome/hooks/useGatewaySetup.d.ts +59 -0
  80. package/src/app/gatewayHome/hooks/useMessageStats.d.ts +17 -0
  81. package/src/app/gatewayHome/hooks/useQuickstartRequest.d.ts +31 -0
  82. package/src/app/gatewayHome/hooks/useSendableTemplates.d.ts +9 -0
  83. package/src/app/gatewayHome/pages/GatewayHomePage.d.ts +1 -0
  84. package/src/app/gatewayHome/types/index.d.ts +21 -0
  85. package/src/app/gatewayHome/utils/buildRequestBody.d.ts +7 -0
  86. package/src/app/gatewayHome/utils/buildSnippet.d.ts +9 -0
  87. package/src/app/gatewayHome/utils/sendTestMessage.d.ts +3 -0
  88. package/src/app/gatewayHome/utils/setupStorage.d.ts +8 -0
  89. package/src/app/gatewayHome/utils/templateHasParameters.d.ts +6 -0
  90. package/src/app/generic/components/HeaderImageInput.d.ts +3 -1
  91. package/src/app/generic/components/MessagePreview.d.ts +1 -1
  92. package/src/app/generic/components/PreviewHeaderDocument.d.ts +5 -0
  93. package/src/app/generic/hooks/usePaginatedQuery.d.ts +1 -0
  94. package/src/app/generic/utils/chunkErrorRecovery.d.ts +7 -0
  95. package/src/app/generic/utils/onesignal.d.ts +13 -0
  96. package/src/app/inbox/calls/useIncomingCallAlerts.d.ts +2 -0
  97. package/src/app/inbox/components/Calls/ActiveCallControls.d.ts +6 -0
  98. package/src/app/inbox/components/Calls/IncomingCallBanner.d.ts +6 -0
  99. package/src/app/inbox/components/Chat/ChatContent.d.ts +3 -1
  100. package/src/app/inbox/components/Chat/QuickReplyEmpty.d.ts +5 -0
  101. package/src/app/inbox/components/Chat/QuickReplyPickerMenu.d.ts +2 -2
  102. package/src/app/inbox/components/NewDetails/ClientSection.d.ts +3 -1
  103. package/src/app/inbox/components/NewDetails/ContactActionsMenu.d.ts +9 -0
  104. package/src/app/inbox/components/NewDetails/SuggestedAssignee.d.ts +7 -0
  105. package/src/app/inbox/components/NewDetails/SuggestedStage.d.ts +13 -0
  106. package/src/app/inbox/components/NewDetails/SuggestedTags.d.ts +18 -0
  107. package/src/app/inbox/components/NewDetails/SuggestionItems.d.ts +16 -0
  108. package/src/app/inbox/components/NewDetails/UserHeader.d.ts +2 -1
  109. package/src/app/inbox/components/Shared/SharedStyle.d.ts +8 -0
  110. package/src/app/inbox/constants/index.d.ts +1 -0
  111. package/src/app/inbox/context/CallSession.d.ts +16 -0
  112. package/src/app/inbox/context/SuggestionsContext.d.ts +25 -0
  113. package/src/app/inbox/hooks/useAgentSuggestions.d.ts +20 -0
  114. package/src/app/inbox/hooks/useApplySuggestion.d.ts +18 -0
  115. package/src/app/inbox/hooks/useConvEnhance.d.ts +3 -1
  116. package/src/app/inbox/hooks/useConversationsPerodicFetch.d.ts +37 -0
  117. package/src/app/inbox/hooks/useIncomingCallAlerts.d.ts +2 -0
  118. package/src/app/inbox/hooks/useNewSortedEvents.d.ts +1 -1
  119. package/src/app/inbox/hooks/useQuickReplyPicker.d.ts +5 -3
  120. package/src/app/inbox/pages/InboxPage.d.ts +1 -1
  121. package/src/app/inbox/utils/callUi.d.ts +25 -0
  122. package/src/app/inbox/utils/convAssistStorage.d.ts +9 -4
  123. package/src/app/inbox/utils/convSuggestions.d.ts +59 -0
  124. package/src/app/inbox/utils/convSuggestionsStorage.d.ts +20 -0
  125. package/src/app/inbox/utils/convs.d.ts +4 -0
  126. package/src/app/inbox/utils/sounds.d.ts +4 -0
  127. package/src/app/layout/components/LogoutPopin.d.ts +6 -3
  128. package/src/app/layout/components/language/index.d.ts +5 -1
  129. package/src/app/layout/constants/index.d.ts +35 -0
  130. package/src/app/layout/hooks/useCallsEnabled.d.ts +1 -0
  131. package/src/app/layout/hooks/useGatewayPlanEnabled.d.ts +5 -0
  132. package/src/app/layout/hooks/useWebchatEnabled.d.ts +5 -0
  133. package/src/app/managemnet/components/channels/ChannelItem.d.ts +2 -1
  134. package/src/app/managemnet/components/channels/ChannelSettingsDrawer.d.ts +15 -0
  135. package/src/app/managemnet/components/channels/ShareChannelLinkDialog.d.ts +11 -0
  136. package/src/app/managemnet/components/channels/WebChatSnippetBlock.d.ts +7 -0
  137. package/src/app/managemnet/config/webchat.d.ts +5 -0
  138. package/src/app/managemnet/config/webhookDefinition.d.ts +4 -0
  139. package/src/app/managemnet/pages/connectChannel/ConnectChannel.d.ts +2 -0
  140. package/src/app/managemnet/pages/generalSettings/NoiseFilterSettings.d.ts +8 -0
  141. package/src/app/managemnet/pages/generalSettings/WritingAssistanceSettings.d.ts +9 -0
  142. package/src/app/managemnet/pages/generalSettings/holidayConstants.d.ts +5 -0
  143. package/src/app/managemnet/pages/generalSettings/noiseFilterConstants.d.ts +24 -0
  144. package/src/app/managemnet/pages/generalSettings/writingConstants.d.ts +6 -0
  145. package/src/app/managemnet/utils/webChatSnippet.d.ts +2 -0
  146. package/src/app/onboarding/components/OnboardingView.d.ts +3 -1
  147. package/src/app/onboarding/components/useOnboardingChecklist.d.ts +12 -9
  148. package/src/app/onboarding/constants/workspaceProfileOptions.d.ts +30 -0
  149. package/src/app/onboarding/utils/onboardingApi.d.ts +23 -0
  150. package/src/app/onboarding/utils/onboardingChecklistStorage.d.ts +42 -49
  151. package/src/app/resources/components/Agents/CreateAgent.d.ts +7 -3
  152. package/src/app/resources/components/Integrations/ChannelDialogLayout.d.ts +6 -1
  153. package/src/app/resources/components/Integrations/RenderCorrectIntegrationFlow.d.ts +3 -1
  154. package/src/app/resources/components/Integrations/WebChat/index.d.ts +8 -0
  155. package/src/app/resources/components/Integrations/WhatsApp/index.d.ts +1 -0
  156. package/src/app/resources/components/ListResources/Utils.d.ts +1 -0
  157. package/src/app/resources/hooks/useFBPagesHook.d.ts +4 -2
  158. package/src/app/resources/hooks/useWabaHook.d.ts +5 -4
  159. package/src/app/resources/utils/channelSetupTracking.d.ts +21 -0
  160. package/src/app/resources/utils/facebookSdk.d.ts +11 -0
  161. package/src/app/subscriptions/components/NewSubscription/OnboardingStepper.d.ts +2 -2
  162. package/src/app/subscriptions/components/NewSubscription/SubscriptionName.d.ts +2 -0
  163. package/src/app/subscriptions/components/NewSubscription/SubscriptionSuccess.d.ts +3 -1
  164. package/src/app/subscriptions/components/NewSubscription/WorkspaceProfile.d.ts +18 -0
  165. package/src/app/subscriptions/components/NewSubscription/WorkspaceStepLayout.d.ts +5 -2
  166. package/src/app/subscriptions/components/Plans/PlanCard.d.ts +3 -1
  167. package/src/app/subscriptions/components/Plans/ShowcasePlans.d.ts +3 -1
  168. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionCreditsCard.d.ts +5 -0
  169. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionProfile.d.ts +0 -1
  170. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionUsers.d.ts +0 -1
  171. package/src/app/subscriptions/components/SubscriptionSettings/index.d.ts +17 -2
  172. package/src/app/subscriptions/constants/Plans.d.ts +2 -1
  173. package/src/app/subscriptions/hooks/useWorkspaceProfileSubmit.d.ts +12 -0
  174. package/src/app/subscriptions/utils/estimateUpgradeProration.d.ts +7 -0
  175. package/src/app/subscriptions/utils/newWorkspaceContext.d.ts +8 -0
  176. package/src/assets/locales/translations.d.ts +444 -0
  177. package/src/config/constants.d.ts +1 -2
  178. package/src/environments/environment.dev.d.ts +2 -0
  179. package/src/environments/types.d.ts +2 -0
  180. package/src/graphql.autogenerated.d.ts +2718 -22
  181. package/src/graphql.billing.autogenerated.d.ts +193 -0
  182. package/src/lib/index.d.ts +1 -0
  183. package/src/testUtils/bcUiMock.d.ts +16 -0
  184. package/src/utils/colorPool.d.ts +1 -2
  185. package/src/utils/getActiveChannelList.d.ts +6 -1
  186. package/src/utils/globalHelper.d.ts +22 -0
  187. package/src/app/contact/components/ImportProgressDialog.d.ts +0 -13
  188. package/src/app/managemnet/components/channels/EditChannelDialog.d.ts +0 -11
  189. package/src/app/onboarding/utils/onboardingChecklistPersistence.d.ts +0 -18
@@ -13,7 +13,8 @@
13
13
  "phone": "الهاتف",
14
14
  "email": "البريد الالكتروني",
15
15
  "noConversations": "لا يوجد محادثة مختارة.",
16
- "noConversationsSubtext": "انقر على الزر أدناه لبدء محادثة مع عميل.",
16
+ "noConversationsSubtext": "أرسل رسالة إلى قناتك لتظهر في صندوق الوارد.",
17
+ "noConversationsWhatsAppHint": "يمكنك أيضاً بدء محادثة من هنا عبر قناة واتساب فقط.",
17
18
  "tags": "علامات",
18
19
  "startedAt": "تاريخ البداية",
19
20
  "startedJustNow": "بدأ للتو",
@@ -90,12 +91,16 @@
90
91
  "enterRefNumber": "أدخل رقم المرجع",
91
92
  "searchChatMessages": "البحث في الرسائل",
92
93
  "archived": "مؤرشف",
94
+ "blocked": "محظور",
95
+ "contactActions": "إجراءات الزبون",
96
+ "editContact": "تعديل الزبون",
93
97
  "noChats": {
94
- "startConversation": "إبدأ محادثة",
98
+ "startConversation": "ابدأ محادثة واتساب",
95
99
  "noChannels": "لا توجد قنوات بعد.",
96
100
  "noChannelsSubtext": "اربط قناة مراسلة مثل واتساب لاستقبال وإرسال المحادثات. أنشئ قناة أدناه للبدء.",
97
101
  "noConversations": "لا يوجد محادثات مختارة.",
98
- "noConversationsSubtext": "انقر على الزر أدناه لبدء محادثة مع عميل.",
102
+ "noConversationsSubtext": "أرسل رسالة إلى قناتك لتظهر في صندوق الوارد.",
103
+ "noConversationsWhatsAppHint": "يمكنك أيضاً بدء محادثة من هنا عبر قناة واتساب فقط.",
99
104
  "createChannel": "إنشاء قناة",
100
105
  "selectToStart": "اختر محادثة للبدء"
101
106
  },
@@ -107,7 +112,10 @@
107
112
  "inProgress": "قيد التنفيذ",
108
113
  "scheduled": "مجدول"
109
114
  },
110
- "startConversation": "إبدأ محادثة مع عميل",
115
+ "startConversation": "ابدأ محادثة واتساب",
116
+ "startConversationDescription": "بدء المحادثة متاح لقنوات واتساب فقط. اختر جهة اتصال أو رقم هاتف ثم قالباً معتمداً للرسالة.",
117
+ "createMetaTemplates": "إنشاء قوالب الرسائل في Meta",
118
+ "refreshTemplates": "تحديث القوالب",
111
119
  "startCovBtn": "إبدأ المحادثة",
112
120
  "messageTemplate": "قالب الرسالة",
113
121
  "pickIntegration": "قناة",
@@ -174,6 +182,13 @@
174
182
  "sourceUrl": "رابط المصدر",
175
183
  "broadcastName": "برودكاست",
176
184
  "assignedTo": "موكل ل",
185
+ "sentiment": "المشاعر",
186
+ "sentimentEmpty": "غير محدد",
187
+ "noiseFilterApplied": "مرشح الضوضاء · {{mode}} · {{tag}}",
188
+ "noiseFilterSkipped": "مرشح الضوضاء · تم التخطي",
189
+ "noiseFilterError": "مرشح الضوضاء · فشل",
190
+ "noiseFilterModeFirst": "الرسالة الأولى",
191
+ "noiseFilterModeFull": "تصنيف كامل",
177
192
  "refNumber": "رقم المرجع",
178
193
  "conversationOverview": "معلومات المحادثة",
179
194
  "clientInfo": {
@@ -208,10 +223,22 @@
208
223
  "enhance": "تحسين",
209
224
  "loading": "جاري التحميل...",
210
225
  "aiSummary": "ملخص AI",
226
+ "suggestedTags": "وسوم مقترحة",
227
+ "suggestedLifeCycle": "دورة حياة مقترحة",
228
+ "suggestedAssignee": "المسؤول المقترح",
229
+ "suggestionAssigneeReason_one": "تولّى محادثة سابقة واحدة مع جهة الاتصال هذه",
230
+ "suggestionAssigneeReason_other": "تولّى {{count}} من المحادثات السابقة مع جهة الاتصال هذه",
231
+ "suggestionDismiss": "تجاهل",
232
+ "suggestionConfidence": "ثقة {{value}}%",
233
+ "suggestionApplyFailed": "تعذر تطبيق الاقتراح.",
211
234
  "noSummaryAvailable": "لا يوجد ملخص متاح",
212
235
  "addNoteHere": "اضف ملاحظة",
213
236
  "quickReplyPicker": {
214
- "empty": "لا توجد ردود سريعة مطابقة"
237
+ "noCommands": "لا توجد أوامر بعد!",
238
+ "noCommandsDescription": "إنشاء أوامر مائلة (Slash Commands) لمساعدة الوكلاء على تنفيذ إجراءات الذكاء الاصطناعي بشكل أسرع أثناء الدردشة مع العملاء",
239
+ "noCommandsFiltered": "لا توجد ردود سريعة مطابقة",
240
+ "noCommandsDescriptionFiltered": " لم نعثر على أوامر تطابق بحثك. جرّب كلمة بحث مختلفة أو أنشئ أمرًا جديدًا",
241
+ "createNew": "إنشاء جديد"
215
242
  },
216
243
  "failedToSendNote": "تعذر اضافة الملاحظة",
217
244
  "replyToMessage": "الرد على {{name}}",
@@ -238,7 +265,14 @@
238
265
  "channelsFilter": "القنوات",
239
266
  "tagsFilter": "علامات المحادثة",
240
267
  "noResultsFound": "لا توجد نتائج",
241
- "noResultsFoundSubtitle": "لم نتمكن من العثور على أي محادثات تطابق بحثك. جرّب تغيير الكلمات أو مسح الفلاتر."
268
+ "noResultsFoundSubtitle": "لم نتمكن من العثور على أي محادثات تطابق بحثك. جرّب تغيير الكلمات أو مسح الفلاتر.",
269
+ "incomingCall": "مكالمة صوتية واردة",
270
+ "answerCall": "رد",
271
+ "declineCall": "رفض",
272
+ "hangUp": "إنهاء",
273
+ "mute": "كتم",
274
+ "unmute": "إلغاء الكتم",
275
+ "micDenied": "يلزم السماح بالميكروفون للانضمام إلى المكالمة"
242
276
  },
243
277
  "id": "المعرف",
244
278
  "save": "حفظ",
@@ -13,7 +13,8 @@
13
13
  "phone": "Phone",
14
14
  "email": "Email",
15
15
  "noConversations": "No conversations yet.",
16
- "noConversationsSubtext": "Click the button below to start a conversation with a contact.",
16
+ "noConversationsSubtext": "Send a message to your channel to see it in your inbox.",
17
+ "noConversationsWhatsAppHint": "You can also start a conversation from here with a WhatsApp channel only.",
17
18
  "tags": "Tags",
18
19
  "startedAt": "Started at",
19
20
  "startedJustNow": "Started just now",
@@ -91,12 +92,16 @@
91
92
  "enterRefNumber": "Enter ref number",
92
93
  "searchChatMessages": "Search messages",
93
94
  "archived": "Archived",
95
+ "blocked": "Blocked",
96
+ "contactActions": "Contact actions",
97
+ "editContact": "Edit contact",
94
98
  "noChats": {
95
- "startConversation": "Start a conversation",
99
+ "startConversation": "Start a WhatsApp conversation",
96
100
  "noChannels": "No channels yet.",
97
101
  "noChannelsSubtext": "Connect a messaging channel like WhatsApp to receive and send conversations. Create a channel below to get started.",
98
102
  "noConversations": "No conversations yet.",
99
- "noConversationsSubtext": "Click the button below to start a conversation with a contact.",
103
+ "noConversationsSubtext": "Send a message to your channel to see it in your inbox.",
104
+ "noConversationsWhatsAppHint": "You can also start a conversation from here with a WhatsApp channel only.",
100
105
  "createChannel": "Create Channel",
101
106
  "selectToStart": "Select a conversation to get started"
102
107
  },
@@ -108,7 +113,10 @@
108
113
  "inProgress": "In Progress",
109
114
  "scheduled": "Scheduled"
110
115
  },
111
- "startConversation": "Start a conversation with a contact",
116
+ "startConversation": "Start a WhatsApp conversation",
117
+ "startConversationDescription": "Only WhatsApp channels support starting a conversation. Select a contact or phone number and an approved message template.",
118
+ "createMetaTemplates": "Create message templates in Meta",
119
+ "refreshTemplates": "Refresh templates",
112
120
  "startCovBtn": "Start",
113
121
  "messageTemplate": "Message Template",
114
122
  "pickIntegration": "Channel",
@@ -175,6 +183,13 @@
175
183
  "sourceUrl": "Source URL",
176
184
  "broadcastName": "Broadcast",
177
185
  "assignedTo": "Assigned To",
186
+ "sentiment": "Sentiment",
187
+ "sentimentEmpty": "Not set",
188
+ "noiseFilterApplied": "Noise filter · {{mode}} · {{tag}}",
189
+ "noiseFilterSkipped": "Noise filter · skipped",
190
+ "noiseFilterError": "Noise filter · failed",
191
+ "noiseFilterModeFirst": "first message",
192
+ "noiseFilterModeFull": "full classify",
178
193
  "refNumber": "Ref Number",
179
194
  "conversationOverview": "Conversation Overview",
180
195
  "clientInfo": {
@@ -209,10 +224,22 @@
209
224
  "enhance": "Enhance",
210
225
  "loading": "Loading...",
211
226
  "aiSummary": "AI Summary",
227
+ "suggestedTags": "Suggested tags",
228
+ "suggestedLifeCycle": "Suggested life cycle",
229
+ "suggestedAssignee": "Suggested assignee",
230
+ "suggestionAssigneeReason_one": "Handled {{count}} of this contact's previous conversations",
231
+ "suggestionAssigneeReason_other": "Handled {{count}} of this contact's previous conversations",
232
+ "suggestionDismiss": "Dismiss",
233
+ "suggestionConfidence": "{{value}}% confident",
234
+ "suggestionApplyFailed": "Couldn't apply the suggestion.",
212
235
  "noSummaryAvailable": "No summary available",
213
236
  "addNoteHere": "Add your note",
214
237
  "quickReplyPicker": {
215
- "empty": "No matching quick replies"
238
+ "noCommands": "No commands yet!",
239
+ "noCommandsDescription": "Create slash commands to help agents perform AI actions faster while chatting with customers",
240
+ "noCommandsFiltered": "No matching quick replies",
241
+ "noCommandsDescriptionFiltered": "No commands match your search. Try a different keyword or create a new command",
242
+ "createNew": "Create new"
216
243
  },
217
244
  "failedToSendNote": "failed to add the note",
218
245
  "replyToMessage": "Reply to {{name}}",
@@ -239,7 +266,14 @@
239
266
  "channelsFilter": "Channels",
240
267
  "tagsFilter": "Chat Tags",
241
268
  "noResultsFound": "No Results Found",
242
- "noResultsFoundSubtitle": "We couldn't find any chats matching your search. Try changing the keywords or clearing filters."
269
+ "noResultsFoundSubtitle": "We couldn't find any chats matching your search. Try changing the keywords or clearing filters.",
270
+ "incomingCall": "Incoming voice call",
271
+ "answerCall": "Answer",
272
+ "declineCall": "Decline",
273
+ "hangUp": "Hang up",
274
+ "mute": "Mute",
275
+ "unmute": "Unmute",
276
+ "micDenied": "Microphone access is required to join the call"
243
277
  },
244
278
  "id": "ID",
245
279
  "save": "Save",
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import { type Page } from '@playwright/test';
2
+ import { type WorkspaceCleanupTarget } from '../support';
3
+ /**
4
+ * Enter through the marketing deep link `check-auth?planType=free`. For an authenticated user this
5
+ * captures the pending `free` plan and redirects into the app, so a workspace created next auto-applies Free.
6
+ */
7
+ export declare function enterFromLandingFree(page: Page): Promise<void>;
8
+ /**
9
+ * Create a new workspace from the new-workspace step and return its cleanup target.
10
+ *
11
+ * Captures the workspace id by waiting for `ContextId` to change to a *new* positive integer —
12
+ * never a stale value carried over in storage — so teardown can never target a pre-existing workspace.
13
+ */
14
+ export declare function createWorkspace(page: Page, name: string): Promise<WorkspaceCleanupTarget>;
15
+ /**
16
+ * Skip the optional workspace-profile questionnaire shown right after the workspace is created.
17
+ * Its answers never gate checkout, so the suite skips it to reach the plans step (where both the
18
+ * manual Free click and the pending `free` plan from the landing deep link are handled).
19
+ */
20
+ export declare function skipWorkspaceProfile(page: Page): Promise<void>;
21
+ /** Click the Free plan's "Choose" button. */
22
+ export declare function chooseFreePlan(page: Page): Promise<void>;
23
+ /** Assert the onboarding guide is shown, opening the Crumby panel if it didn't auto-open. */
24
+ export declare function expectGuideVisible(page: Page): Promise<void>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ import { type Page } from '@playwright/test';
2
+ /** The shared, pre-verified account the suite logs in as. */
3
+ export type TestUser = {
4
+ email: string;
5
+ password: string;
6
+ };
7
+ /**
8
+ * Force the legacy (email/password) auth provider so the E2E drives the legacy login form instead of
9
+ * Clerk and the whole flow keeps using the `localStorage.token` session. Must run before the first navigation.
10
+ *
11
+ * Two overrides are needed because the app resolves the provider differently per build:
12
+ * - `window._env_.AUTH_PROVIDER` — honored by local / PostHog-disabled builds.
13
+ * - `window.__FEATURE_FLAG_clerk_enabled__` — the explicit override that wins over the PostHog
14
+ * `clerk_enabled` flag on deployed (PostHog-enabled) builds, where AUTH_PROVIDER is ignored.
15
+ */
16
+ export declare function forceLegacyAuth(page: Page): Promise<void>;
17
+ /** Log in through the UI and wait until the session token is stored. */
18
+ export declare function loginUser(page: Page, user: TestUser): Promise<void>;
19
+ /** Read the owner JWT the app stores after login (`localStorage.token`). */
20
+ export declare function readAuthToken(page: Page): Promise<string | null>;
21
+ /** Read the active workspace id the app stores (`localStorage.ContextId`). */
22
+ export declare function readWorkspaceContext(page: Page): Promise<string | null>;
@@ -0,0 +1,20 @@
1
+ import type { APIRequestContext } from '@playwright/test';
2
+ export type WorkspaceCleanupTarget = {
3
+ /** Numeric workspace id — `DeleteWorkspaceInput.workspaceId` is `Int!` (not a String/ID). */
4
+ workspaceId: number;
5
+ /** Owner JWT (from `localStorage.token` of the session that created the workspace). */
6
+ token: string;
7
+ };
8
+ /**
9
+ * Teardown entrypoint: the OWNER-only core mutation that hard-deletes core Mongo data and
10
+ * fans out to bot/billing/auth. Preferred over hitting each service directly (core owns ordering).
11
+ */
12
+ export declare function deleteWorkspaceViaCore(request: APIRequestContext, { workspaceId, token }: WorkspaceCleanupTarget): Promise<void>;
13
+ /**
14
+ * List the account's workspaces whose name matches the E2E tag — the safety-net for leaks from a
15
+ * test that created a workspace but failed before it could be tracked for teardown.
16
+ */
17
+ export declare function listE2EWorkspaces(request: APIRequestContext, token: string): Promise<Array<{
18
+ id: number;
19
+ name: string;
20
+ }>>;
@@ -0,0 +1,23 @@
1
+ /** Central, typed E2E configuration. Everything env-driven lives here — no `process.env` in tests. */
2
+ export declare const E2E: {
3
+ /** App under test. Local dev server by default; CI overrides to the deployed dev env. */
4
+ readonly baseURL: string;
5
+ /** API gateway that fronts the per-service subgraphs (core/auth/billing/bot). */
6
+ readonly gatewayURL: string;
7
+ /** Shared, pre-verified account the suite logs in as (no per-run registration). */
8
+ readonly user: {
9
+ readonly email: string;
10
+ readonly password: string;
11
+ };
12
+ };
13
+ /** Core subgraph — where `deleteWorkspace` lives once the Core service (BCR-673) is deployed. */
14
+ export declare const CORE_GRAPHQL_URL: string;
15
+ /** Auth subgraph — exposes the `workspaces` list query used by the leftover sweep. */
16
+ export declare const AUTH_GRAPHQL_URL: string;
17
+ /** Where the authenticated session (cookies + localStorage) is cached by the setup project. */
18
+ export declare const STORAGE_STATE_PATH: string;
19
+ /** The shared test user, or throw a clear error if credentials are missing. */
20
+ export declare function requireTestUser(): {
21
+ email: string;
22
+ password: string;
23
+ };
@@ -0,0 +1,16 @@
1
+ import { expect } from '@playwright/test';
2
+ import { type WorkspaceCleanupTarget } from './cleanup';
3
+ /** Registers workspaces for guaranteed teardown after the test, even on failure. */
4
+ export type WorkspaceCleanup = {
5
+ /** Track a created workspace so it is deleted (via core `deleteWorkspace`) during teardown. */
6
+ track(target: WorkspaceCleanupTarget): void;
7
+ };
8
+ type E2EFixtures = {
9
+ cleanup: WorkspaceCleanup;
10
+ };
11
+ /**
12
+ * Base test for the checkout E2E suite. Every workspace created during a test must be registered
13
+ * with `cleanup.track(...)`; the fixture deletes them all afterwards so the shared backend stays clean.
14
+ */
15
+ export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & E2EFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
16
+ export { expect };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Run-scoped, collision-free identifiers for test fixtures.
3
+ *
4
+ * Backends are shared with real users, so every created record must be uniquely named and
5
+ * clearly tagged (`e2e` prefix) — both to avoid name-availability clashes and to make any
6
+ * leftover data from a crashed run easy to spot and purge.
7
+ */
8
+ /** Shared tag so leftover E2E data is identifiable in the shared backend. */
9
+ export declare const E2E_PREFIX = "e2e";
10
+ /** Unique per worker process (Playwright re-imports modules per worker). */
11
+ export declare const RUN_ID: string;
12
+ /** Human-readable, unique workspace name (passes the name-availability check). */
13
+ export declare function uniqueWorkspaceName(): string;
@@ -0,0 +1,6 @@
1
+ /** Shared E2E foundation. Feature specs import infra from here; feature flows live beside the spec. */
2
+ export { test, expect, type WorkspaceCleanup } from './fixtures';
3
+ export { E2E, CORE_GRAPHQL_URL, AUTH_GRAPHQL_URL, STORAGE_STATE_PATH, requireTestUser } from './config';
4
+ export { loginUser, readAuthToken, readWorkspaceContext, type TestUser } from './auth';
5
+ export { deleteWorkspaceViaCore, listE2EWorkspaces, type WorkspaceCleanupTarget } from './cleanup';
6
+ export { E2E_PREFIX, RUN_ID, uniqueWorkspaceName } from './identifiers';