@bcrumbs.net/inbox 0.0.59 → 0.0.60

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bcrumbs.net/inbox",
3
3
  "description": "Inbox widget for Bread Crumbs portals",
4
- "version": "0.0.59",
4
+ "version": "0.0.60",
5
5
  "keyword": [
6
6
  "bcrumbs",
7
7
  "bc-ui",
@@ -0,0 +1,12 @@
1
+ import { type FC } from 'react';
2
+ export type ChatViewProps = {
3
+ rtl: boolean;
4
+ onClose: () => void;
5
+ /** When set, shows a back arrow that returns to the onboarding checklist (still in progress). */
6
+ onBack?: () => void;
7
+ /** Text carried over from the onboarding input; sent once on mount, then consumed. */
8
+ pendingMessage?: string | null;
9
+ onPendingConsumed?: () => void;
10
+ };
11
+ /** Chat mode of the unified widget: Crumby header, thread, action chips, composer. */
12
+ export declare const ChatView: FC<ChatViewProps>;
@@ -0,0 +1,3 @@
1
+ /** Single-line composer for the Crumby floating chat (distinct from the playground Composer). */
2
+ declare const CrumbyComposer: () => import("@emotion/react/jsx-runtime").JSX.Element;
3
+ export default CrumbyComposer;
@@ -0,0 +1,4 @@
1
+ declare const CrumbySendAction: ({ isRTL }: {
2
+ isRTL?: boolean;
3
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
4
+ export default CrumbySendAction;
@@ -0,0 +1,2 @@
1
+ declare const CrumbyWidget: () => import("@emotion/react/jsx-runtime").JSX.Element | null;
2
+ export default CrumbyWidget;
@@ -1,2 +1 @@
1
- declare const CrumbyChat: () => import("@emotion/react/jsx-runtime").JSX.Element;
2
- export default CrumbyChat;
1
+ export { default } from './CrumbyWidget';
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ type AuthPasswordPageLayoutProps = {
3
+ children: ReactNode;
4
+ backgroundImage?: string;
5
+ };
6
+ export declare function AuthPasswordPageLayout({ children, backgroundImage }: AuthPasswordPageLayoutProps): import("@emotion/react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,20 @@
1
+ type ForgetPasswordFormViewProps = {
2
+ title: string;
3
+ subtitle: string;
4
+ emailLabel: string;
5
+ emailPlaceholder: string;
6
+ emailValue: string;
7
+ emailError?: string;
8
+ submitLabel: string;
9
+ footerText: string;
10
+ footerLinkText: string;
11
+ footerLinkTo: string;
12
+ showFooterLink?: boolean;
13
+ submitDisabled?: boolean;
14
+ loading?: boolean;
15
+ onBack?: () => void;
16
+ onEmailChange: (value: string) => void;
17
+ onSubmit: () => void;
18
+ };
19
+ export declare function ForgetPasswordFormView({ title, subtitle, emailLabel, emailPlaceholder, emailValue, emailError, submitLabel, footerText, footerLinkText, footerLinkTo, showFooterLink, submitDisabled, loading, onBack, onEmailChange, onSubmit, }: ForgetPasswordFormViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
+ export {};
@@ -0,0 +1,22 @@
1
+ export type PasswordFieldConfig = {
2
+ label: string;
3
+ placeholder: string;
4
+ value: string;
5
+ error?: string;
6
+ visibility: 'password' | 'text';
7
+ onChange: (value: string) => void;
8
+ onToggleVisibility: () => void;
9
+ };
10
+ type PasswordFormViewProps = {
11
+ title: string;
12
+ subtitle: string;
13
+ submitLabel: string;
14
+ passwordField: PasswordFieldConfig;
15
+ confirmPasswordField: PasswordFieldConfig;
16
+ submitDisabled?: boolean;
17
+ loading?: boolean;
18
+ onBack?: () => void;
19
+ onSubmit: () => void;
20
+ };
21
+ export declare function PasswordFormView({ title, subtitle, submitLabel, passwordField, confirmPasswordField, submitDisabled, loading, onBack, onSubmit, }: PasswordFormViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,8 @@
1
+ type PasswordSuccessViewProps = {
2
+ title: string;
3
+ subtitle: string;
4
+ actionLabel?: string;
5
+ onAction?: () => void;
6
+ };
7
+ export declare function PasswordSuccessView({ title, subtitle, actionLabel, onAction }: PasswordSuccessViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -6,8 +6,5 @@ export type Props = {
6
6
  error: any;
7
7
  status: any;
8
8
  };
9
- export type State = {
10
- email: any;
11
- };
12
9
  declare const _default: any;
13
10
  export default _default;
@@ -37,7 +37,7 @@ export declare const BCMainNavigation: {
37
37
  })[];
38
38
  }[];
39
39
  tags: string[];
40
- requiredPermissions?: undefined;
40
+ requiredPermissions: Permission[];
41
41
  } | {
42
42
  label: string;
43
43
  title: string;
@@ -56,6 +56,7 @@ export declare const BCMainNavigation: {
56
56
  link: string;
57
57
  action: string;
58
58
  tags: string[];
59
+ requiredPermissions: Permission[];
59
60
  }[];
60
61
  };
61
62
  export declare const MOBILE_DIMENSION = 767;
@@ -0,0 +1,10 @@
1
+ import { type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
2
+ export type OnboardingStepDetailProps = {
3
+ stepId: OnboardingChecklistStepId;
4
+ /** Right-to-left layout (flips the back arrow direction). */
5
+ rtl: boolean;
6
+ onBack: () => void;
7
+ onClose: () => void;
8
+ };
9
+ /** Single-step guide: instructions (Step 1/Step 2…) plus optional screenshots. */
10
+ export declare function OnboardingStepDetail({ stepId, rtl, onBack, onClose }: OnboardingStepDetailProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { type OnboardingChecklistState, type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
2
+ export type OnboardingViewProps = {
3
+ applicableStepIds: OnboardingChecklistStepId[];
4
+ checklistState: OnboardingChecklistState | null;
5
+ completedCount: number;
6
+ celebrateStepId: OnboardingChecklistStepId | null;
7
+ /** Show the "Ask crumby…" input (hidden when Crumby chat is unavailable). */
8
+ showInput: boolean;
9
+ rtl: boolean;
10
+ toggleStep: (stepId: OnboardingChecklistStepId) => void;
11
+ onOpenStep: (stepId: OnboardingChecklistStepId) => void;
12
+ onClose: () => void;
13
+ /** Submit text from the input — switches the panel to chat and sends it. */
14
+ onSendToChat: (text: string) => void;
15
+ /** Finish onboarding (all steps done) and open the chat. */
16
+ onFinish: () => void;
17
+ };
18
+ /** Onboarding mode of the unified widget: welcome header, setup checklist, AI input. */
19
+ export declare function OnboardingView({ applicableStepIds, checklistState, completedCount, celebrateStepId, showInput, rtl, toggleStep, onOpenStep, onClose, onSendToChat, onFinish, }: OnboardingViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
2
+ export type OnboardingStepGuide = {
3
+ /** Optional illustrative screenshots shown under the step instructions. */
4
+ images?: string[];
5
+ };
6
+ /**
7
+ * Per-step visual guide config. Instruction copy lives in i18n
8
+ * (`onboardingChecklist.guide.steps.*`); this only adds optional screenshots.
9
+ * Steps without images render text-only — add entries here as designs ship.
10
+ */
11
+ export declare const ONBOARDING_STEP_GUIDE: Partial<Record<OnboardingChecklistStepId, OnboardingStepGuide>>;
@@ -0,0 +1,30 @@
1
+ import { type OnboardingChecklistState, type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
2
+ export type UseOnboardingChecklist = {
3
+ /** Steps relevant for the current plan (drops Crumby steps when AI is disabled). */
4
+ applicableStepIds: OnboardingChecklistStepId[];
5
+ /** Parsed checklist, or null when there is no active checklist for this user. */
6
+ checklistState: OnboardingChecklistState | null;
7
+ /** Number of applicable steps the user has completed. */
8
+ completedCount: number;
9
+ /** True while there is a non-expired checklist with at least one applicable step still open. */
10
+ isActive: boolean;
11
+ /** Step currently playing the completion sweep, or null. */
12
+ celebrateStepId: OnboardingChecklistStepId | null;
13
+ /** One-shot request to auto-open the widget on onboarding (set right after sign-in). */
14
+ shouldAutoOpen: boolean;
15
+ /** Toggle a step's completed flag (manual checkbox). */
16
+ toggleStep: (stepId: OnboardingChecklistStepId) => void;
17
+ /** Clears the one-shot auto-open request once the widget has acted on it. */
18
+ consumeAutoOpen: () => void;
19
+ /** Run when the widget panel closes: clears the completed checklist from storage. */
20
+ onPanelClosed: () => void;
21
+ /** Finish onboarding now (Get started button): clears the checklist for this workspace. */
22
+ dismissChecklist: () => void;
23
+ };
24
+ /**
25
+ * Owns the onboarding-checklist state previously held inside OnboardingChecklistWidget:
26
+ * load/parse/TTL, applicable steps for the current plan, completion celebration, the
27
+ * cross-tab updated event, and the post-sign-in auto-open signal. The presentation is
28
+ * delegated to the unified Crumby widget.
29
+ */
30
+ export declare function useOnboardingChecklist(): UseOnboardingChecklist;
@@ -11,7 +11,19 @@ export declare const ONBOARDING_CHECKLIST_STEP_IDS: OnboardingChecklistStepId[];
11
11
  export declare const ONBOARDING_CHECKLIST_CRUMBY_STEP_IDS: OnboardingChecklistStepId[];
12
12
  export declare function getApplicableOnboardingChecklistStepIds(isCrumbyEnabled: boolean): OnboardingChecklistStepId[];
13
13
  export declare function isOnboardingChecklistCompleteForCrumbySetting(state: OnboardingChecklistState, isCrumbyEnabled: boolean): boolean;
14
- export declare function getOnboardingChecklistStorageKey(userId: string | number): string;
14
+ export declare function getOnboardingChecklistStorageKey(userId: string | number, workspaceId?: string | number | null): string;
15
+ /** Pre-workspace-scoping key: showcase_onboarding_checklist_{userId} */
16
+ export declare function getLegacyOnboardingChecklistStorageKey(userId: string | number): string;
17
+ /**
18
+ * Load checklist for user + workspace. Migrates legacy user-only (and empty-workspace) keys once.
19
+ * Returns null when workspace context is not available.
20
+ */
21
+ export declare function loadOnboardingChecklistState(userId: string | number, workspaceId?: string | number | null): OnboardingChecklistState | null;
22
+ /**
23
+ * Pending key is keyed by user only (NOT workspace): it is a one-shot "user just signed in"
24
+ * signal set at login, before the workspace context is available. The widget consumes it on
25
+ * first load and creates the checklist scoped to whichever workspace the user landed in.
26
+ */
15
27
  export declare function getOnboardingChecklistPendingKey(userId: string | number): string;
16
28
  /** One-shot: open checklist popover after sign-in (session tab only). */
17
29
  export declare const ONBOARDING_CHECKLIST_SESSION_AUTOPEN_KEY = "showcase_onboarding_checklist_session_autopen";
@@ -30,10 +42,11 @@ export declare function notifyOnboardingChecklistAfterSignIn(userId: string | nu
30
42
  * Use this to cheaply skip heavy work (e.g. scanning all inbox messages) when the step is already done
31
43
  * or there is no active checklist.
32
44
  */
33
- export declare function getActiveOnboardingChecklistState(userId: string | number | null | undefined): OnboardingChecklistState | null;
45
+ export declare function getActiveOnboardingChecklistState(userId: string | number | null | undefined, workspaceId?: string | number | null): OnboardingChecklistState | null;
34
46
  export type MarkOnboardingChecklistStepOptions = {
35
47
  /** When already loaded (e.g. after a gate check), avoids a second localStorage read. */
36
48
  knownActiveState?: OnboardingChecklistState;
49
+ workspaceId?: string | number | null;
37
50
  };
38
51
  /**
39
52
  * Marks a checklist step done when the user performs the real action (persists + notifies widget).
@@ -45,6 +45,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
45
45
  continue: string;
46
46
  dontHaveAnAccount: string;
47
47
  signupNow: string;
48
+ signUp: string;
48
49
  returnToLogin: string;
49
50
  passwordResetSuccess: string;
50
51
  passwordResetFaildDesc: string;
@@ -64,6 +65,14 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
64
65
  currentPassword: string;
65
66
  newPassword: string;
66
67
  confirmPassword: string;
68
+ createSecurePasswordTitle: string;
69
+ createSecurePasswordDesc: string;
70
+ createSecurePasswordSubtitle: string;
71
+ newPasswordPlaceholder: string;
72
+ confirmPasswordPlaceholder: string;
73
+ resetPasswordButton: string;
74
+ passwordChangedTitle: string;
75
+ passwordChangedDesc: string;
67
76
  facebook: string;
68
77
  google: string;
69
78
  };
@@ -143,6 +152,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
143
152
  profileMgmt: string;
144
153
  profile: string;
145
154
  password: string;
155
+ changePassword: string;
146
156
  updatingEmailNote: string;
147
157
  help: string;
148
158
  feedback: string;
@@ -191,6 +201,9 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
191
201
  hychartWorkspace: string;
192
202
  inboxWorkspace: string;
193
203
  userRole: string;
204
+ usersTableName: string;
205
+ usersTableEmail: string;
206
+ usersTableRole: string;
194
207
  ownerRole: string;
195
208
  adminRole: string;
196
209
  managerRole: string;
@@ -603,7 +616,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
603
616
  deliverySuccess: string;
604
617
  successfullySent: string;
605
618
  avgChatTime: string;
606
- newConversations: string;
619
+ newClients: string;
607
620
  newClientsInPeriod: string;
608
621
  closed: string;
609
622
  uniqueClosed: string;
@@ -714,6 +727,10 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
714
727
  testAi: string;
715
728
  };
716
729
  };
730
+ welcomeTitle: string;
731
+ brand: string;
732
+ askCrumbyPlaceholder: string;
733
+ getStartedButton: string;
717
734
  };
718
735
  id: string;
719
736
  save: string;
@@ -880,6 +897,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
880
897
  exportFailed: string;
881
898
  noContactsToExport: string;
882
899
  selectedLifecycle: string;
900
+ archived: string;
883
901
  };
884
902
  management: {
885
903
  title: string;
@@ -948,6 +966,8 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
948
966
  apiKeyLabelPlaceholder: string;
949
967
  noUsersForLinkedAgentTitle: string;
950
968
  noUsersForLinkedAgentDescription: string;
969
+ greetingMessage: string;
970
+ greetingMessagePlaceholder: string;
951
971
  };
952
972
  ai: {
953
973
  title: string;
@@ -1063,6 +1083,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
1063
1083
  selectStartWith: string;
1064
1084
  selectAiAgent: string;
1065
1085
  selectAgent: string;
1086
+ selectAgents: string;
1066
1087
  deleteConfirmTitle: string;
1067
1088
  deleteConfirmMessage: string;
1068
1089
  botToken: string;
@@ -1131,6 +1152,22 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
1131
1152
  };
1132
1153
  assistant: {
1133
1154
  welcomeMessage: string;
1155
+ title: string;
1156
+ greetingPrimary: string;
1157
+ greetingSecondary: string;
1158
+ suggestions: {
1159
+ createBroadcast: string;
1160
+ connectChannel: string;
1161
+ inviteTeamMember: string;
1162
+ analyzePerformance: string;
1163
+ };
1164
+ suggestionPrompts: {
1165
+ createBroadcast: string;
1166
+ connectChannel: string;
1167
+ inviteTeamMember: string;
1168
+ analyzePerformance: string;
1169
+ };
1170
+ composerPlaceholder: string;
1134
1171
  };
1135
1172
  file: {
1136
1173
  filesSubTitle: string;
@@ -1240,6 +1277,11 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
1240
1277
  cardTitle: string;
1241
1278
  saved: string;
1242
1279
  maxCharacters: string;
1280
+ instructionsVersion: {
1281
+ cardTitle: string;
1282
+ description: string;
1283
+ option: string;
1284
+ };
1243
1285
  contextPrompt: {
1244
1286
  label: string;
1245
1287
  description: string;
@@ -1294,4 +1336,5 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
1294
1336
  archive_confirmation: string;
1295
1337
  unarchive_confirmation: string;
1296
1338
  };
1339
+ send: string;
1297
1340
  }>, current?: string) => void;
@@ -87,6 +87,7 @@ export type Ai = {
87
87
  id: Scalars['ID']['output'];
88
88
  integrationProperties?: Maybe<IntegrationProperties>;
89
89
  name: Scalars['String']['output'];
90
+ subType?: Maybe<AiSubType>;
90
91
  type: AiType;
91
92
  workspaceId: Scalars['Int']['output'];
92
93
  };
@@ -94,6 +95,7 @@ export type AiCreateInput = {
94
95
  configuration?: InputMaybe<ConfigurationsInput>;
95
96
  integrationProperties: Scalars['JSON']['input'];
96
97
  name: Scalars['String']['input'];
98
+ subType?: InputMaybe<AiSubType>;
97
99
  type: AiType;
98
100
  workspaceId: Scalars['Int']['input'];
99
101
  };
@@ -110,8 +112,15 @@ export type AiPatchInput = {
110
112
  id: Scalars['ID']['input'];
111
113
  integrationProperties?: InputMaybe<Scalars['JSON']['input']>;
112
114
  name?: InputMaybe<Scalars['String']['input']>;
115
+ subType?: InputMaybe<AiSubType>;
113
116
  workspaceId: Scalars['Int']['input'];
114
117
  };
118
+ export declare const AiSubType: {
119
+ readonly PROFILE: "profile";
120
+ readonly QA: "qa";
121
+ readonly RATING: "rating";
122
+ };
123
+ export type AiSubType = typeof AiSubType[keyof typeof AiSubType];
115
124
  export declare const AiType: {
116
125
  readonly BC_AI: "bc_ai";
117
126
  readonly BC_FLOW: "bc_flow";
@@ -122,6 +131,7 @@ export declare const AiType: {
122
131
  export type AiType = typeof AiType[keyof typeof AiType];
123
132
  export type AIsInput = {
124
133
  name?: InputMaybe<Scalars['String']['input']>;
134
+ subType?: InputMaybe<AiSubType>;
125
135
  type?: InputMaybe<AiType>;
126
136
  workspaceId: Scalars['Int']['input'];
127
137
  };
@@ -139,6 +149,8 @@ export type Agent = {
139
149
  createdAt: Scalars['DateTime']['output'];
140
150
  /** The email of the agent. It is the same as the email of the invited user to the workspace. */
141
151
  email: Scalars['String']['output'];
152
+ /** An optional message automatically sent to the customer at the start of every new conversation assigned to this agent. */
153
+ greetingMessage?: Maybe<Scalars['String']['output']>;
142
154
  id: Scalars['ID']['output'];
143
155
  /** The name of the agent. */
144
156
  name: Scalars['String']['output'];
@@ -195,6 +207,8 @@ export type AgentInput = {
195
207
  export type AgentPatchInput = {
196
208
  /** When false, this agent is excluded from automatic assignment. */
197
209
  assignable: Scalars['Boolean']['input'];
210
+ /** An optional message automatically sent to the customer at the start of every new conversation assigned to this agent. Pass null to clear. */
211
+ greetingMessage?: InputMaybe<Scalars['String']['input']>;
198
212
  id: Scalars['ID']['input'];
199
213
  /** The name of the agent. */
200
214
  name: Scalars['String']['input'];
@@ -935,6 +949,7 @@ export type Configurations = {
935
949
  emptyResponseFallbackMessage?: Maybe<Scalars['String']['output']>;
936
950
  endEnabled?: Maybe<Scalars['Boolean']['output']>;
937
951
  handoverEnabled?: Maybe<Scalars['Boolean']['output']>;
952
+ instructionsVersion?: Maybe<Scalars['String']['output']>;
938
953
  personaPrompt?: Maybe<Scalars['String']['output']>;
939
954
  rolePrompt?: Maybe<Scalars['String']['output']>;
940
955
  };
@@ -952,6 +967,7 @@ export type ConfigurationsInput = {
952
967
  emptyResponseFallbackMessage?: InputMaybe<Scalars['String']['input']>;
953
968
  endEnabled?: InputMaybe<Scalars['Boolean']['input']>;
954
969
  handoverEnabled?: InputMaybe<Scalars['Boolean']['input']>;
970
+ instructionsVersion?: InputMaybe<Scalars['String']['input']>;
955
971
  personaPrompt?: InputMaybe<Scalars['String']['input']>;
956
972
  rolePrompt?: InputMaybe<Scalars['String']['input']>;
957
973
  };
@@ -1999,7 +2015,10 @@ export type Mutation = {
1999
2015
  * (It can be used also for OTP messages)
2000
2016
  */
2001
2017
  sendNotificationAndWait: Message;
2002
- /** Start a conversation. */
2018
+ /**
2019
+ * Start a conversation. Agents without MANAGE_CONVS may start conversations;
2020
+ * the new conversation is assigned to the starting agent when applicable.
2021
+ */
2003
2022
  startConv: Conversation;
2004
2023
  /** Tag a client. You should have the MANAGE_CLIENTS permission to tag a client. */
2005
2024
  tagClient: Client;
@@ -2329,7 +2348,7 @@ export type Query = {
2329
2348
  */
2330
2349
  isWorkspaceNameAvailable: Scalars['Boolean']['output'];
2331
2350
  me: UserRole;
2332
- /** Get messages with optional filters. */
2351
+ /** Get messages with optional filters. If you don't have the MANAGE_CONVS permission, it will return only messages for conversations assigned to you. */
2333
2352
  messages: MessagesPayload;
2334
2353
  /** Get the count of open conversations that have recent client messages (conversations that need a response). */
2335
2354
  openConversationsNeedResponseCount: Scalars['Int']['output'];
@@ -2342,7 +2361,10 @@ export type Query = {
2342
2361
  tokenUsageLogs: TokenUsageLogsPayload;
2343
2362
  /** Get total token usage between two dates. */
2344
2363
  tokenUsageTotal: TokenUsageTotal;
2345
- /** Get the upload signature which can be used to upload a file to the cloud storage. */
2364
+ /**
2365
+ * Get the upload signature which can be used to upload a file to the cloud storage.
2366
+ * Requires MANAGE_WORKSPACE permission. Blob path must be scoped to the workspace.
2367
+ */
2346
2368
  uploadSignature: UploadSignatureResult;
2347
2369
  usersRoles: UsersRolesPayload;
2348
2370
  /** Validate a bulk import contacts CSV file before importing. Returns validation errors for each row. You should have the MANAGE_CLIENTS permission to validate files. */
@@ -2640,6 +2662,8 @@ export type StartByCountryCodeConfig = {
2640
2662
  __typename?: 'StartByCountryCodeConfig';
2641
2663
  /** The assignee id. */
2642
2664
  assigneeId: Scalars['ID']['output'];
2665
+ /** Multiple assignee ids for agent pool distribution. */
2666
+ assigneeIds?: Maybe<Array<Scalars['ID']['output']>>;
2643
2667
  /** The country code. */
2644
2668
  code: Scalars['String']['output'];
2645
2669
  };
@@ -3050,6 +3074,7 @@ export type AiFragment = {
3050
3074
  id: string;
3051
3075
  name: string;
3052
3076
  type: AiType;
3077
+ subType?: AiSubType | null;
3053
3078
  createdAt: any;
3054
3079
  deletedAt?: any | null;
3055
3080
  integrationProperties?: {
@@ -3060,6 +3085,7 @@ export type AiFragment = {
3060
3085
  } | null;
3061
3086
  configuration?: {
3062
3087
  __typename?: 'Configurations';
3088
+ instructionsVersion?: string | null;
3063
3089
  askForName?: boolean | null;
3064
3090
  askForSurname?: boolean | null;
3065
3091
  askForEmail?: boolean | null;
@@ -3096,6 +3122,7 @@ export type AiQuery = {
3096
3122
  id: string;
3097
3123
  name: string;
3098
3124
  type: AiType;
3125
+ subType?: AiSubType | null;
3099
3126
  createdAt: any;
3100
3127
  deletedAt?: any | null;
3101
3128
  integrationProperties?: {
@@ -3106,6 +3133,7 @@ export type AiQuery = {
3106
3133
  } | null;
3107
3134
  configuration?: {
3108
3135
  __typename?: 'Configurations';
3136
+ instructionsVersion?: string | null;
3109
3137
  askForName?: boolean | null;
3110
3138
  askForSurname?: boolean | null;
3111
3139
  askForEmail?: boolean | null;
@@ -3145,6 +3173,7 @@ export type AisQuery = {
3145
3173
  id: string;
3146
3174
  name: string;
3147
3175
  type: AiType;
3176
+ subType?: AiSubType | null;
3148
3177
  createdAt: any;
3149
3178
  deletedAt?: any | null;
3150
3179
  integrationProperties?: {
@@ -3155,6 +3184,7 @@ export type AisQuery = {
3155
3184
  } | null;
3156
3185
  configuration?: {
3157
3186
  __typename?: 'Configurations';
3187
+ instructionsVersion?: string | null;
3158
3188
  askForName?: boolean | null;
3159
3189
  askForSurname?: boolean | null;
3160
3190
  askForEmail?: boolean | null;
@@ -3193,6 +3223,7 @@ export type CreateAiMutation = {
3193
3223
  id: string;
3194
3224
  name: string;
3195
3225
  type: AiType;
3226
+ subType?: AiSubType | null;
3196
3227
  createdAt: any;
3197
3228
  deletedAt?: any | null;
3198
3229
  integrationProperties?: {
@@ -3203,6 +3234,7 @@ export type CreateAiMutation = {
3203
3234
  } | null;
3204
3235
  configuration?: {
3205
3236
  __typename?: 'Configurations';
3237
+ instructionsVersion?: string | null;
3206
3238
  askForName?: boolean | null;
3207
3239
  askForSurname?: boolean | null;
3208
3240
  askForEmail?: boolean | null;
@@ -3255,6 +3287,7 @@ export type DeleteAiMutation = {
3255
3287
  id: string;
3256
3288
  name: string;
3257
3289
  type: AiType;
3290
+ subType?: AiSubType | null;
3258
3291
  createdAt: any;
3259
3292
  deletedAt?: any | null;
3260
3293
  integrationProperties?: {
@@ -3265,6 +3298,7 @@ export type DeleteAiMutation = {
3265
3298
  } | null;
3266
3299
  configuration?: {
3267
3300
  __typename?: 'Configurations';
3301
+ instructionsVersion?: string | null;
3268
3302
  askForName?: boolean | null;
3269
3303
  askForSurname?: boolean | null;
3270
3304
  askForEmail?: boolean | null;
@@ -3317,6 +3351,7 @@ export type PatchAiMutation = {
3317
3351
  id: string;
3318
3352
  name: string;
3319
3353
  type: AiType;
3354
+ subType?: AiSubType | null;
3320
3355
  createdAt: any;
3321
3356
  deletedAt?: any | null;
3322
3357
  integrationProperties?: {
@@ -3327,6 +3362,7 @@ export type PatchAiMutation = {
3327
3362
  } | null;
3328
3363
  configuration?: {
3329
3364
  __typename?: 'Configurations';
3365
+ instructionsVersion?: string | null;
3330
3366
  askForName?: boolean | null;
3331
3367
  askForSurname?: boolean | null;
3332
3368
  askForEmail?: boolean | null;
@@ -4077,6 +4113,7 @@ export type AgentFragment = {
4077
4113
  email: string;
4078
4114
  avatar?: string | null;
4079
4115
  assignable: boolean;
4116
+ greetingMessage?: string | null;
4080
4117
  createdAt: any;
4081
4118
  };
4082
4119
  export type ConversationFragment = {
@@ -4233,6 +4270,7 @@ export type AgentQuery = {
4233
4270
  email: string;
4234
4271
  avatar?: string | null;
4235
4272
  assignable: boolean;
4273
+ greetingMessage?: string | null;
4236
4274
  createdAt: any;
4237
4275
  };
4238
4276
  };
@@ -4254,6 +4292,7 @@ export type AgentsQuery = {
4254
4292
  email: string;
4255
4293
  avatar?: string | null;
4256
4294
  assignable: boolean;
4295
+ greetingMessage?: string | null;
4257
4296
  createdAt: any;
4258
4297
  }> | null;
4259
4298
  pageInfo?: {
@@ -4535,6 +4574,7 @@ export type CreateAgentMutation = {
4535
4574
  email: string;
4536
4575
  avatar?: string | null;
4537
4576
  assignable: boolean;
4577
+ greetingMessage?: string | null;
4538
4578
  createdAt: any;
4539
4579
  };
4540
4580
  };
@@ -4553,6 +4593,7 @@ export type DeleteAgentMutation = {
4553
4593
  email: string;
4554
4594
  avatar?: string | null;
4555
4595
  assignable: boolean;
4596
+ greetingMessage?: string | null;
4556
4597
  createdAt: any;
4557
4598
  };
4558
4599
  };
@@ -4756,6 +4797,7 @@ export type PatchAgentMutation = {
4756
4797
  email: string;
4757
4798
  avatar?: string | null;
4758
4799
  assignable: boolean;
4800
+ greetingMessage?: string | null;
4759
4801
  createdAt: any;
4760
4802
  };
4761
4803
  };
@@ -5642,6 +5684,7 @@ export type CreateAgentWithApiKeyMutation = {
5642
5684
  email: string;
5643
5685
  avatar?: string | null;
5644
5686
  assignable: boolean;
5687
+ greetingMessage?: string | null;
5645
5688
  createdAt: any;
5646
5689
  };
5647
5690
  apiKey: {
@@ -639,6 +639,7 @@ export type SubscriptionPlan = {
639
639
  paymentMethodId?: Maybe<Scalars['Int']['output']>;
640
640
  plan?: Maybe<Plan>;
641
641
  planId: Scalars['Int']['output'];
642
+ polarSubscriptionId?: Maybe<Scalars['String']['output']>;
642
643
  promoType?: Maybe<Scalars['String']['output']>;
643
644
  promoValue?: Maybe<Scalars['Float']['output']>;
644
645
  reactivationDate?: Maybe<Scalars['DateTime']['output']>;
@@ -1027,6 +1028,7 @@ export type SubscriptionQuery = {
1027
1028
  workspaceId: number;
1028
1029
  status?: SubscriptionStatus | null;
1029
1030
  stripeCustomerId?: string | null;
1031
+ polarSubscriptionId?: string | null;
1030
1032
  freeCredits: number;
1031
1033
  planId: number;
1032
1034
  term: Term;
@@ -4,6 +4,7 @@ export declare const LOCAL_STORAGE_ITEMS: {
4
4
  SELECTED_CLIENT_ID: string;
5
5
  SELECTED_CONV_FILTER: string;
6
6
  };
7
+ export declare const SHOWCASE_LOCAL_STORAGE_CHANGED_EVENT = "showcase-local-storage-changed";
7
8
  declare const _default: {
8
9
  get(key: string): any;
9
10
  set(key: string, value: unknown): void;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- declare const OnboardingChecklistWidget: () => import("react").ReactPortal | null;
3
- export default OnboardingChecklistWidget;