@bcrumbs.net/inbox 0.0.74 → 0.0.76
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/assets/ar/inbox.json +17 -0
- package/assets/en/inbox.json +9 -0
- package/e2e/qa/qa.api.d.ts +22 -0
- package/e2e/qa/qa.flows.d.ts +46 -0
- package/e2e/support/cleanup.d.ts +1 -0
- package/e2e/support/config.d.ts +2 -0
- package/e2e/support/index.d.ts +2 -2
- package/index.cjs.js +987 -284
- package/index.esm.js +988 -285
- package/package.json +3 -3
- package/src/app/ai/components/qa/QaEmptyState.d.ts +5 -0
- package/src/app/ai/components/qa/QaFormDialog.d.ts +16 -0
- package/src/app/ai/components/qa/QaLinkToastTitle.d.ts +8 -0
- package/src/app/ai/components/qa/QaTable.d.ts +10 -0
- package/src/app/ai/components/qa/SavedAsQaToastTitle.d.ts +6 -0
- package/src/app/ai/hooks/useOpenQaFromLink.d.ts +6 -0
- package/src/app/ai/hooks/useQaActions.d.ts +10 -0
- package/src/app/ai/hooks/useQaColumns.d.ts +15 -0
- package/src/app/ai/hooks/useQaDuplicateCheck.d.ts +8 -0
- package/src/app/ai/hooks/useSaveMessageAsQa.d.ts +17 -0
- package/src/app/ai/pages/QaPage.d.ts +2 -0
- package/src/app/ai/types/index.d.ts +9 -0
- package/src/app/ai/utils/crumbyChatTransport.d.ts +6 -0
- package/src/app/ai/utils/qa.d.ts +3 -0
- package/src/app/ai/utils/qaLink.d.ts +3 -0
- package/src/app/ai/utils/toolInputDeltaGuard.d.ts +10 -0
- package/src/app/auth/pages/CheckAuth.d.ts +2 -1
- package/src/app/gatewayHome/hooks/useGatewaySetup.d.ts +2 -0
- package/src/app/inbox/components/Chat/ChatContent.d.ts +1 -0
- package/src/app/inbox/components/NewConvList/ConvLimitNotice.d.ts +6 -0
- package/src/app/inbox/components/NewConvList/HeaderSection.d.ts +4 -1
- package/src/app/inbox/components/NewConvList/index.d.ts +3 -1
- package/src/app/inbox/hooks/useConvLimitToast.d.ts +6 -0
- package/src/app/inbox/hooks/useConversationsPerodicFetch.d.ts +2 -0
- package/src/assets/locales/translations.d.ts +64 -0
- package/src/graphql.autogenerated.d.ts +51 -11
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.
|
|
4
|
+
"version": "0.0.76",
|
|
5
5
|
"keyword": [
|
|
6
6
|
"bcrumbs",
|
|
7
7
|
"bc-ui",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"graphql": "^15.4.0"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@bcrumbs.net/bc-shared": "^0.0.
|
|
28
|
-
"@bcrumbs.net/bc-ui": "^0.0.
|
|
27
|
+
"@bcrumbs.net/bc-shared": "^0.0.12",
|
|
28
|
+
"@bcrumbs.net/bc-ui": "^0.0.18",
|
|
29
29
|
"@bcrumbs.net/bc-api": "^0.0.49",
|
|
30
30
|
"@azure/storage-blob": "^12.25.0"
|
|
31
31
|
},
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { QaEntry } from '../../../../graphql.autogenerated';
|
|
2
|
+
import { QaFormValues } from '../../types';
|
|
3
|
+
type QaFormDialogProps = {
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
qa?: QaEntry | null;
|
|
6
|
+
/** Pre-fills the Question field when adding a new entry (e.g. a customer message from the Inbox) */
|
|
7
|
+
initialQuestion?: string;
|
|
8
|
+
/** Hides the Publish switch: the entry is published when it has an answer, otherwise saved as Draft */
|
|
9
|
+
autoPublish?: boolean;
|
|
10
|
+
title?: string;
|
|
11
|
+
saving: boolean;
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
onSubmit: (values: QaFormValues) => void;
|
|
14
|
+
};
|
|
15
|
+
declare const QaFormDialog: ({ isOpen, qa, initialQuestion, autoPublish, title, saving, onClose, onSubmit, }: QaFormDialogProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
16
|
+
export default QaFormDialog;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type QaLinkToastTitleProps = {
|
|
2
|
+
/** Text shown before the "Q&A" link, e.g. "Question saved successfully as a". */
|
|
3
|
+
text: string;
|
|
4
|
+
onOpenQa: () => void;
|
|
5
|
+
};
|
|
6
|
+
/** Toast title ending with a clickable "Q&A" link. */
|
|
7
|
+
declare const QaLinkToastTitle: ({ text, onOpenQa }: QaLinkToastTitleProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default QaLinkToastTitle;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { QaEntry } from '../../../../graphql.autogenerated';
|
|
2
|
+
type QaTableProps = {
|
|
3
|
+
qaEntries: QaEntry[];
|
|
4
|
+
loading: boolean;
|
|
5
|
+
onEdit: (qa: QaEntry) => void;
|
|
6
|
+
onTogglePublish: (qa: QaEntry, publish: boolean) => void;
|
|
7
|
+
onDelete: (qa: QaEntry) => void;
|
|
8
|
+
};
|
|
9
|
+
declare const QaTable: ({ qaEntries, loading, onEdit, onTogglePublish, onDelete }: QaTableProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default QaTable;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type SavedAsQaToastTitleProps = {
|
|
2
|
+
onOpenQa: () => void;
|
|
3
|
+
};
|
|
4
|
+
/** Toast title for a question saved as a draft: "Question saved successfully as a Q&A" (Q&A is a link). */
|
|
5
|
+
declare const SavedAsQaToastTitle: ({ onOpenQa }: SavedAsQaToastTitleProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
6
|
+
export default SavedAsQaToastTitle;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { QaEntry } from '../../../graphql.autogenerated';
|
|
2
|
+
/**
|
|
3
|
+
* Opens the entry referenced by `?qaId=` (see `getQaEntryLink`) once the list has it,
|
|
4
|
+
* then drops the param so closing the dialog does not reopen it.
|
|
5
|
+
*/
|
|
6
|
+
export declare const useOpenQaFromLink: (qaEntries: QaEntry[], openEdit: (qa: QaEntry) => void) => void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { QaEntry } from '../../../graphql.autogenerated';
|
|
2
|
+
import { QaFormValues } from '../types';
|
|
3
|
+
export declare const useQaActions: (onChanged: () => void) => {
|
|
4
|
+
create: any;
|
|
5
|
+
update: (qa: QaEntry, values: QaFormValues) => Promise<boolean>;
|
|
6
|
+
setPublished: (qa: QaEntry, publish: boolean) => Promise<void>;
|
|
7
|
+
remove: (qa: QaEntry) => Promise<void>;
|
|
8
|
+
saving: boolean;
|
|
9
|
+
deleting: boolean;
|
|
10
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CustomColumn, TableAction } from '@bcrumbs.net/bc-ui';
|
|
2
|
+
import { QaEntry } from '../../../graphql.autogenerated';
|
|
3
|
+
type UseQaColumnsParams = {
|
|
4
|
+
onEdit: (qa: QaEntry) => void;
|
|
5
|
+
onTogglePublish: (qa: QaEntry, publish: boolean) => void;
|
|
6
|
+
onDelete: (qa: QaEntry) => void;
|
|
7
|
+
onSortChange: (field: string) => void;
|
|
8
|
+
currentSortField?: string;
|
|
9
|
+
currentSortDirection?: 'asc' | 'desc';
|
|
10
|
+
};
|
|
11
|
+
export declare const useQaColumns: ({ onEdit, onTogglePublish, onDelete, onSortChange, currentSortField, currentSortDirection, }: UseQaColumnsParams) => {
|
|
12
|
+
columns: CustomColumn[];
|
|
13
|
+
actions: TableAction[];
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asks the bot service whether a similar question is already saved and, if so, warns the agent
|
|
3
|
+
* with a link to the existing entry. `excludeId` skips the entry being edited so it never matches itself.
|
|
4
|
+
*/
|
|
5
|
+
export declare const useQaDuplicateCheck: () => {
|
|
6
|
+
isDuplicate: any;
|
|
7
|
+
checking: boolean;
|
|
8
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type QaMessageCandidate = {
|
|
2
|
+
conversationId: string;
|
|
3
|
+
messageId: string;
|
|
4
|
+
content: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Drives the "Save as Q&A" dialog in the Inbox: the customer message pre-fills the Question,
|
|
8
|
+
* and the entry is published when the agent writes an answer, otherwise saved as Draft.
|
|
9
|
+
*/
|
|
10
|
+
export declare const useSaveMessageAsQa: () => {
|
|
11
|
+
isSaveAsQaOpen: boolean;
|
|
12
|
+
initialQuestion: string;
|
|
13
|
+
openSaveAsQa: (message: QaMessageCandidate) => void;
|
|
14
|
+
closeSaveAsQa: () => void;
|
|
15
|
+
submitSaveAsQa: any;
|
|
16
|
+
saving: boolean;
|
|
17
|
+
};
|
|
@@ -72,3 +72,12 @@ export interface TextItem {
|
|
|
72
72
|
export interface TextTableFilters {
|
|
73
73
|
search: string;
|
|
74
74
|
}
|
|
75
|
+
export interface QaFormValues {
|
|
76
|
+
question: string;
|
|
77
|
+
answer: string;
|
|
78
|
+
publish: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface QaInboxSource {
|
|
81
|
+
conversationId: string;
|
|
82
|
+
messageId: string;
|
|
83
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { UIMessage } from 'ai';
|
|
2
|
+
import { AssistantChatTransport } from '@assistant-ui/react-ai-sdk';
|
|
3
|
+
/** Chat transport for Crumby: guards streamed tool args so the chat runtime never sees them shrink. */
|
|
4
|
+
export declare class CrumbyChatTransport<UI_MESSAGE extends UIMessage = UIMessage> extends AssistantChatTransport<UI_MESSAGE> {
|
|
5
|
+
protected processResponseStream(stream: ReadableStream<Uint8Array>): ReadableStream<import("ai").UIMessageChunk>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type UIMessageChunk } from 'ai';
|
|
2
|
+
/**
|
|
3
|
+
* Holds back tool-input deltas until the streamed args text parses again.
|
|
4
|
+
*
|
|
5
|
+
* The AI SDK re-parses the partial args after every delta and sets the input to `undefined` when the
|
|
6
|
+
* parse fails (e.g. a chunk ends inside a `\uXXXX` escape). assistant-ui then sees the args text
|
|
7
|
+
* shrink to `{` and throws "argsText can only be appended". Merging such a delta into the next one
|
|
8
|
+
* keeps every snapshot a prefix of the next.
|
|
9
|
+
*/
|
|
10
|
+
export declare const createToolInputDeltaGuard: () => TransformStream<UIMessageChunk, UIMessageChunk>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Public entry from marketing pricing CTAs (?planType=...).
|
|
3
3
|
* Verifies the session via currentUser, then:
|
|
4
|
-
* - authenticated +
|
|
4
|
+
* - authenticated + Gateway intent → new workspace flow (Gateway is activated once it is named)
|
|
5
|
+
* - authenticated + other plan intent → upgrade flow (auto Polar/Stripe checkout)
|
|
5
6
|
* - authenticated + no plan intent → inbox
|
|
6
7
|
* - guest + plan intent → register with planType preserved
|
|
7
8
|
* - guest + no plan intent → login
|
|
@@ -39,6 +39,8 @@ export declare function useGatewaySetup(workspaceId: number): {
|
|
|
39
39
|
type: import("../../../graphql.autogenerated").IntegrationType;
|
|
40
40
|
properties?: any;
|
|
41
41
|
state: IntegrationState;
|
|
42
|
+
disconnectionReason?: import("../../../graphql.autogenerated").IntegrationDisconnectionReason | null | undefined;
|
|
43
|
+
disconnectedAt?: any;
|
|
42
44
|
createdAt: any;
|
|
43
45
|
deletedAt?: any;
|
|
44
46
|
patchedAt?: any;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type ConvLimitNoticeProps = {
|
|
2
|
+
onSearch: () => void;
|
|
3
|
+
};
|
|
4
|
+
/** Shown at the end of the conversation list when older conversations were cut off by the fetch limit. */
|
|
5
|
+
declare const ConvLimitNotice: ({ onSearch }: ConvLimitNoticeProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
6
|
+
export default ConvLimitNotice;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ActionItem } from '@bcrumbs.net/bc-ui';
|
|
2
2
|
import { ConvsFilters } from '../../utils/convs';
|
|
3
|
+
import { RefObject } from 'react';
|
|
3
4
|
interface HeaderSectionProps {
|
|
4
5
|
agentsMenu: ActionItem[];
|
|
5
6
|
lifeCycleMenu: ActionItem[];
|
|
@@ -12,6 +13,8 @@ interface HeaderSectionProps {
|
|
|
12
13
|
isTestVariant?: boolean;
|
|
13
14
|
isDrawerOpen?: boolean;
|
|
14
15
|
onFilterDrawerOpen?: () => void;
|
|
16
|
+
/** Wraps the search box so the parent can focus its input. */
|
|
17
|
+
searchRef?: RefObject<HTMLDivElement>;
|
|
15
18
|
}
|
|
16
|
-
declare const HeaderSection: ({ agentsMenu, lifeCycleMenu, channelsMenu, tagsMenu, filters, onFiltersChange, setShowStartConv, canStartConversation, isTestVariant, isDrawerOpen, onFilterDrawerOpen, }: HeaderSectionProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
19
|
+
declare const HeaderSection: ({ agentsMenu, lifeCycleMenu, channelsMenu, tagsMenu, filters, onFiltersChange, setShowStartConv, canStartConversation, isTestVariant, isDrawerOpen, onFilterDrawerOpen, searchRef, }: HeaderSectionProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
17
20
|
export default HeaderSection;
|
|
@@ -21,6 +21,8 @@ interface NewConvListProps {
|
|
|
21
21
|
isTestVariant?: boolean;
|
|
22
22
|
isDrawerOpen?: boolean;
|
|
23
23
|
onFilterDrawerOpen?: () => void;
|
|
24
|
+
/** The fetch hit the conversations limit, so older conversations are not listed. */
|
|
25
|
+
showLimitNotice?: boolean;
|
|
24
26
|
}
|
|
25
|
-
declare const NewConvList: ({ agents, convStages, conversationTags, convs, loading, selectedConvId, convClicked, onConvEnd, filters, onFiltersChange, setShowStartConv, canStartConversation, aiAgents, integrations, scrollContainerRef, isTestVariant, isDrawerOpen, onFilterDrawerOpen, }: NewConvListProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
27
|
+
declare const NewConvList: ({ agents, convStages, conversationTags, convs, loading, selectedConvId, convClicked, onConvEnd, filters, onFiltersChange, setShowStartConv, canStartConversation, aiAgents, integrations, scrollContainerRef, isTestVariant, isDrawerOpen, onFilterDrawerOpen, showLimitNotice, }: NewConvListProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
26
28
|
export default NewConvList;
|
|
@@ -106,6 +106,8 @@ declare function useConversationsPeriodicFetch(selectedConvId?: string, onSelect
|
|
|
106
106
|
createdAt: any;
|
|
107
107
|
}[] | null | undefined;
|
|
108
108
|
}[] | null | undefined;
|
|
109
|
+
/** More conversations exist beyond CONVERSATIONS_LIMIT. */
|
|
110
|
+
hasMore: boolean;
|
|
109
111
|
loading: boolean;
|
|
110
112
|
refetch: () => void;
|
|
111
113
|
};
|
|
@@ -41,6 +41,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
41
41
|
register: string;
|
|
42
42
|
loginFailed: string;
|
|
43
43
|
incorrectPassword: string;
|
|
44
|
+
incorrectCredentials: string;
|
|
44
45
|
registerFailed: string;
|
|
45
46
|
invitationLinkNotExists: string;
|
|
46
47
|
invitationInvalid: string;
|
|
@@ -1717,6 +1718,69 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1717
1718
|
test_numbers: string;
|
|
1718
1719
|
suggested_qs: string;
|
|
1719
1720
|
crumby_settings: string;
|
|
1721
|
+
qa_menu: string;
|
|
1722
|
+
qa: {
|
|
1723
|
+
title: string;
|
|
1724
|
+
subtitle: string;
|
|
1725
|
+
addQuestion: string;
|
|
1726
|
+
editQuestion: string;
|
|
1727
|
+
saveAsQa: string;
|
|
1728
|
+
searchPlaceholder: string;
|
|
1729
|
+
noSearchResults: string;
|
|
1730
|
+
loadFailed: string;
|
|
1731
|
+
qaLink: string;
|
|
1732
|
+
columns: {
|
|
1733
|
+
question: string;
|
|
1734
|
+
answer: string;
|
|
1735
|
+
source: string;
|
|
1736
|
+
status: string;
|
|
1737
|
+
createDate: string;
|
|
1738
|
+
};
|
|
1739
|
+
source: {
|
|
1740
|
+
INBOX: string;
|
|
1741
|
+
MANUAL: string;
|
|
1742
|
+
};
|
|
1743
|
+
status: {
|
|
1744
|
+
PUBLISHED: string;
|
|
1745
|
+
DRAFT: string;
|
|
1746
|
+
};
|
|
1747
|
+
form: {
|
|
1748
|
+
question: string;
|
|
1749
|
+
questionPlaceholder: string;
|
|
1750
|
+
answer: string;
|
|
1751
|
+
answerPlaceholder: string;
|
|
1752
|
+
publish: string;
|
|
1753
|
+
publishHint: string;
|
|
1754
|
+
autoPublishHint: string;
|
|
1755
|
+
};
|
|
1756
|
+
actions: {
|
|
1757
|
+
edit: string;
|
|
1758
|
+
publish: string;
|
|
1759
|
+
unpublish: string;
|
|
1760
|
+
delete: string;
|
|
1761
|
+
};
|
|
1762
|
+
delete: {
|
|
1763
|
+
title: string;
|
|
1764
|
+
description: string;
|
|
1765
|
+
confirm: string;
|
|
1766
|
+
};
|
|
1767
|
+
empty: {
|
|
1768
|
+
title: string;
|
|
1769
|
+
subtitle: string;
|
|
1770
|
+
};
|
|
1771
|
+
toast: {
|
|
1772
|
+
added: string;
|
|
1773
|
+
updated: string;
|
|
1774
|
+
published: string;
|
|
1775
|
+
unpublished: string;
|
|
1776
|
+
deleted: string;
|
|
1777
|
+
savedAsQa: string;
|
|
1778
|
+
duplicate: string;
|
|
1779
|
+
saveFailed: string;
|
|
1780
|
+
publishFailed: string;
|
|
1781
|
+
deleteFailed: string;
|
|
1782
|
+
};
|
|
1783
|
+
};
|
|
1720
1784
|
upgrade: {
|
|
1721
1785
|
cta: string;
|
|
1722
1786
|
contactAdminTitle: string;
|
|
@@ -2302,6 +2302,10 @@ export type Integration = {
|
|
|
2302
2302
|
callingEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
2303
2303
|
createdAt: Scalars['DateTime']['output'];
|
|
2304
2304
|
deletedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
2305
|
+
/** When the integration went DISCONNECTED. Null otherwise, and for channels disconnected before this was tracked. */
|
|
2306
|
+
disconnectedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
2307
|
+
/** Why the integration is DISCONNECTED. Null otherwise. */
|
|
2308
|
+
disconnectionReason?: Maybe<IntegrationDisconnectionReason>;
|
|
2305
2309
|
/** The id of the integration. */
|
|
2306
2310
|
id: Scalars['ID']['output'];
|
|
2307
2311
|
/** The integration identifier. */
|
|
@@ -2330,6 +2334,20 @@ export type IntegrationDeleteInput = {
|
|
|
2330
2334
|
id: Scalars['ID']['input'];
|
|
2331
2335
|
workspaceId: Scalars['Int']['input'];
|
|
2332
2336
|
};
|
|
2337
|
+
/**
|
|
2338
|
+
* IntegrationDisconnectionReason explains why an integration is DISCONNECTED.
|
|
2339
|
+
* - TOKEN_INVALID: The access token expired or was invalidated.
|
|
2340
|
+
* - PERMISSION_REVOKED: The business removed the permissions granted to our app.
|
|
2341
|
+
* - NUMBER_UNREGISTERED: The phone number is no longer registered or reachable with this access.
|
|
2342
|
+
* - APP_UNSUBSCRIBED: Our app is no longer subscribed to the WhatsApp Business Account, so no webhooks arrive.
|
|
2343
|
+
*/
|
|
2344
|
+
export declare const IntegrationDisconnectionReason: {
|
|
2345
|
+
readonly APP_UNSUBSCRIBED: "APP_UNSUBSCRIBED";
|
|
2346
|
+
readonly NUMBER_UNREGISTERED: "NUMBER_UNREGISTERED";
|
|
2347
|
+
readonly PERMISSION_REVOKED: "PERMISSION_REVOKED";
|
|
2348
|
+
readonly TOKEN_INVALID: "TOKEN_INVALID";
|
|
2349
|
+
};
|
|
2350
|
+
export type IntegrationDisconnectionReason = typeof IntegrationDisconnectionReason[keyof typeof IntegrationDisconnectionReason];
|
|
2333
2351
|
/** IntegrationInput is an input for the integration. */
|
|
2334
2352
|
export type IntegrationInput = {
|
|
2335
2353
|
id: Scalars['ID']['input'];
|
|
@@ -2354,10 +2372,12 @@ export type IntegrationProperties = {
|
|
|
2354
2372
|
* - ACTIVE: The integration is active.
|
|
2355
2373
|
* - PENDING: The integration is pending.
|
|
2356
2374
|
* - DELETED: The integration is deleted.
|
|
2375
|
+
* - DISCONNECTED: The provider (Meta) cut the channel off; see disconnectionReason. Reconnecting returns it to ACTIVE.
|
|
2357
2376
|
*/
|
|
2358
2377
|
export declare const IntegrationState: {
|
|
2359
2378
|
readonly ACTIVE: "ACTIVE";
|
|
2360
2379
|
readonly DELETED: "DELETED";
|
|
2380
|
+
readonly DISCONNECTED: "DISCONNECTED";
|
|
2361
2381
|
readonly PENDING: "PENDING";
|
|
2362
2382
|
};
|
|
2363
2383
|
export type IntegrationState = typeof IntegrationState[keyof typeof IntegrationState];
|
|
@@ -2387,6 +2407,8 @@ export type IntegrationWithSecrets = {
|
|
|
2387
2407
|
__typename?: 'IntegrationWithSecrets';
|
|
2388
2408
|
createdAt: Scalars['DateTime']['output'];
|
|
2389
2409
|
deletedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
2410
|
+
disconnectedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
2411
|
+
disconnectionReason?: Maybe<IntegrationDisconnectionReason>;
|
|
2390
2412
|
id: Scalars['ID']['output'];
|
|
2391
2413
|
identifier?: Maybe<Scalars['String']['output']>;
|
|
2392
2414
|
integrationProperties: Scalars['JSON']['output'];
|
|
@@ -2403,6 +2425,8 @@ export type IntegrationsInput = {
|
|
|
2403
2425
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
2404
2426
|
/** The state of the integration. Used for filtering. */
|
|
2405
2427
|
state?: InputMaybe<IntegrationState>;
|
|
2428
|
+
/** Any of these states. Used for filtering; takes precedence over state. */
|
|
2429
|
+
states?: InputMaybe<Array<IntegrationState>>;
|
|
2406
2430
|
/** The type of the integration. Used for filtering. */
|
|
2407
2431
|
type?: InputMaybe<IntegrationType>;
|
|
2408
2432
|
workspaceId: Scalars['Int']['input'];
|
|
@@ -3435,11 +3459,14 @@ export declare const Permission: {
|
|
|
3435
3459
|
};
|
|
3436
3460
|
export type Permission = typeof Permission[keyof typeof Permission];
|
|
3437
3461
|
export type QaCreateInput = {
|
|
3438
|
-
|
|
3462
|
+
/** Required unless status is DRAFT. */
|
|
3463
|
+
answer?: InputMaybe<Scalars['String']['input']>;
|
|
3439
3464
|
conversationId?: InputMaybe<Scalars['String']['input']>;
|
|
3440
3465
|
messageId?: InputMaybe<Scalars['String']['input']>;
|
|
3441
3466
|
origin: QaOrigin;
|
|
3442
3467
|
question: Scalars['String']['input'];
|
|
3468
|
+
/** Defaults to PUBLISHED. */
|
|
3469
|
+
status?: InputMaybe<QaStatus>;
|
|
3443
3470
|
workspaceId: Scalars['Int']['input'];
|
|
3444
3471
|
};
|
|
3445
3472
|
export type QaEntriesInput = {
|
|
@@ -3453,7 +3480,7 @@ export type QaEntriesPayload = {
|
|
|
3453
3480
|
};
|
|
3454
3481
|
export type QaEntry = {
|
|
3455
3482
|
__typename?: 'QaEntry';
|
|
3456
|
-
answer
|
|
3483
|
+
answer?: Maybe<Scalars['String']['output']>;
|
|
3457
3484
|
conversationId?: Maybe<Scalars['String']['output']>;
|
|
3458
3485
|
createdAt: Scalars['DateTime']['output'];
|
|
3459
3486
|
id: Scalars['ID']['output'];
|
|
@@ -3479,7 +3506,8 @@ export declare const QaStatus: {
|
|
|
3479
3506
|
};
|
|
3480
3507
|
export type QaStatus = typeof QaStatus[keyof typeof QaStatus];
|
|
3481
3508
|
export type QaUpdateInput = {
|
|
3482
|
-
|
|
3509
|
+
/** Required while the entry is PUBLISHED. */
|
|
3510
|
+
answer?: InputMaybe<Scalars['String']['input']>;
|
|
3483
3511
|
id: Scalars['ID']['input'];
|
|
3484
3512
|
question: Scalars['String']['input'];
|
|
3485
3513
|
workspaceId: Scalars['Int']['input'];
|
|
@@ -4687,7 +4715,7 @@ export type QaEntryFieldsFragment = {
|
|
|
4687
4715
|
workspaceId: number;
|
|
4688
4716
|
id: string;
|
|
4689
4717
|
question: string;
|
|
4690
|
-
answer
|
|
4718
|
+
answer?: string | null;
|
|
4691
4719
|
status: QaStatus;
|
|
4692
4720
|
origin: QaOrigin;
|
|
4693
4721
|
messageId?: string | null;
|
|
@@ -4880,7 +4908,7 @@ export type CreateQaMutation = {
|
|
|
4880
4908
|
workspaceId: number;
|
|
4881
4909
|
id: string;
|
|
4882
4910
|
question: string;
|
|
4883
|
-
answer
|
|
4911
|
+
answer?: string | null;
|
|
4884
4912
|
status: QaStatus;
|
|
4885
4913
|
origin: QaOrigin;
|
|
4886
4914
|
messageId?: string | null;
|
|
@@ -4967,7 +4995,7 @@ export type DeleteQaMutation = {
|
|
|
4967
4995
|
workspaceId: number;
|
|
4968
4996
|
id: string;
|
|
4969
4997
|
question: string;
|
|
4970
|
-
answer
|
|
4998
|
+
answer?: string | null;
|
|
4971
4999
|
status: QaStatus;
|
|
4972
5000
|
origin: QaOrigin;
|
|
4973
5001
|
messageId?: string | null;
|
|
@@ -5069,7 +5097,7 @@ export type PublishQaMutation = {
|
|
|
5069
5097
|
workspaceId: number;
|
|
5070
5098
|
id: string;
|
|
5071
5099
|
question: string;
|
|
5072
|
-
answer
|
|
5100
|
+
answer?: string | null;
|
|
5073
5101
|
status: QaStatus;
|
|
5074
5102
|
origin: QaOrigin;
|
|
5075
5103
|
messageId?: string | null;
|
|
@@ -5090,7 +5118,7 @@ export type QaEntriesQuery = {
|
|
|
5090
5118
|
workspaceId: number;
|
|
5091
5119
|
id: string;
|
|
5092
5120
|
question: string;
|
|
5093
|
-
answer
|
|
5121
|
+
answer?: string | null;
|
|
5094
5122
|
status: QaStatus;
|
|
5095
5123
|
origin: QaOrigin;
|
|
5096
5124
|
messageId?: string | null;
|
|
@@ -5112,7 +5140,7 @@ export type SimilarQaQuery = {
|
|
|
5112
5140
|
workspaceId: number;
|
|
5113
5141
|
id: string;
|
|
5114
5142
|
question: string;
|
|
5115
|
-
answer
|
|
5143
|
+
answer?: string | null;
|
|
5116
5144
|
status: QaStatus;
|
|
5117
5145
|
origin: QaOrigin;
|
|
5118
5146
|
messageId?: string | null;
|
|
@@ -5196,7 +5224,7 @@ export type UnpublishQaMutation = {
|
|
|
5196
5224
|
workspaceId: number;
|
|
5197
5225
|
id: string;
|
|
5198
5226
|
question: string;
|
|
5199
|
-
answer
|
|
5227
|
+
answer?: string | null;
|
|
5200
5228
|
status: QaStatus;
|
|
5201
5229
|
origin: QaOrigin;
|
|
5202
5230
|
messageId?: string | null;
|
|
@@ -5215,7 +5243,7 @@ export type UpdateQaMutation = {
|
|
|
5215
5243
|
workspaceId: number;
|
|
5216
5244
|
id: string;
|
|
5217
5245
|
question: string;
|
|
5218
|
-
answer
|
|
5246
|
+
answer?: string | null;
|
|
5219
5247
|
status: QaStatus;
|
|
5220
5248
|
origin: QaOrigin;
|
|
5221
5249
|
messageId?: string | null;
|
|
@@ -8693,6 +8721,8 @@ export type IntegrationFragment = {
|
|
|
8693
8721
|
type: IntegrationType;
|
|
8694
8722
|
properties?: any | null;
|
|
8695
8723
|
state: IntegrationState;
|
|
8724
|
+
disconnectionReason?: IntegrationDisconnectionReason | null;
|
|
8725
|
+
disconnectedAt?: any | null;
|
|
8696
8726
|
createdAt: any;
|
|
8697
8727
|
deletedAt?: any | null;
|
|
8698
8728
|
patchedAt?: any | null;
|
|
@@ -8780,6 +8810,8 @@ export type CreateIntegrationMutation = {
|
|
|
8780
8810
|
type: IntegrationType;
|
|
8781
8811
|
properties?: any | null;
|
|
8782
8812
|
state: IntegrationState;
|
|
8813
|
+
disconnectionReason?: IntegrationDisconnectionReason | null;
|
|
8814
|
+
disconnectedAt?: any | null;
|
|
8783
8815
|
createdAt: any;
|
|
8784
8816
|
deletedAt?: any | null;
|
|
8785
8817
|
patchedAt?: any | null;
|
|
@@ -8845,6 +8877,8 @@ export type DeleteIntegrationMutation = {
|
|
|
8845
8877
|
type: IntegrationType;
|
|
8846
8878
|
properties?: any | null;
|
|
8847
8879
|
state: IntegrationState;
|
|
8880
|
+
disconnectionReason?: IntegrationDisconnectionReason | null;
|
|
8881
|
+
disconnectedAt?: any | null;
|
|
8848
8882
|
createdAt: any;
|
|
8849
8883
|
deletedAt?: any | null;
|
|
8850
8884
|
patchedAt?: any | null;
|
|
@@ -8911,6 +8945,8 @@ export type IntegrationQuery = {
|
|
|
8911
8945
|
type: IntegrationType;
|
|
8912
8946
|
properties?: any | null;
|
|
8913
8947
|
state: IntegrationState;
|
|
8948
|
+
disconnectionReason?: IntegrationDisconnectionReason | null;
|
|
8949
|
+
disconnectedAt?: any | null;
|
|
8914
8950
|
createdAt: any;
|
|
8915
8951
|
deletedAt?: any | null;
|
|
8916
8952
|
patchedAt?: any | null;
|
|
@@ -8933,6 +8969,8 @@ export type IntegrationsQuery = {
|
|
|
8933
8969
|
type: IntegrationType;
|
|
8934
8970
|
properties?: any | null;
|
|
8935
8971
|
state: IntegrationState;
|
|
8972
|
+
disconnectionReason?: IntegrationDisconnectionReason | null;
|
|
8973
|
+
disconnectedAt?: any | null;
|
|
8936
8974
|
createdAt: any;
|
|
8937
8975
|
deletedAt?: any | null;
|
|
8938
8976
|
patchedAt?: any | null;
|
|
@@ -8954,6 +8992,8 @@ export type PatchIntegrationMutation = {
|
|
|
8954
8992
|
type: IntegrationType;
|
|
8955
8993
|
properties?: any | null;
|
|
8956
8994
|
state: IntegrationState;
|
|
8995
|
+
disconnectionReason?: IntegrationDisconnectionReason | null;
|
|
8996
|
+
disconnectedAt?: any | null;
|
|
8957
8997
|
createdAt: any;
|
|
8958
8998
|
deletedAt?: any | null;
|
|
8959
8999
|
patchedAt?: any | null;
|