@atlaskit/rovo-agent-components 0.3.2 → 0.4.1
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/CHANGELOG.md +16 -0
- package/dist/cjs/common/ui/chat-icon/index.js +4 -3
- package/dist/cjs/common/ui/chat-pill/index.js +2 -8
- package/dist/cjs/common/ui/hidden-icon/index.js +29 -0
- package/dist/cjs/common/ui/show-icon/index.js +29 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/ui/agent-conversation-starters/index.js +47 -97
- package/dist/cjs/ui/agent-conversation-starters/messages.js +0 -90
- package/dist/es2019/common/ui/chat-icon/index.js +4 -3
- package/dist/es2019/common/ui/chat-pill/index.js +2 -8
- package/dist/es2019/common/ui/hidden-icon/index.js +18 -0
- package/dist/es2019/common/ui/show-icon/index.js +18 -0
- package/dist/es2019/index.js +3 -1
- package/dist/es2019/ui/agent-conversation-starters/index.js +40 -86
- package/dist/es2019/ui/agent-conversation-starters/messages.js +0 -90
- package/dist/esm/common/ui/chat-icon/index.js +4 -3
- package/dist/esm/common/ui/chat-pill/index.js +2 -8
- package/dist/esm/common/ui/hidden-icon/index.js +22 -0
- package/dist/esm/common/ui/show-icon/index.js +22 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/ui/agent-conversation-starters/index.js +47 -97
- package/dist/esm/ui/agent-conversation-starters/messages.js +0 -90
- package/dist/types/common/ui/hidden-icon/index.d.ts +3 -0
- package/dist/types/common/ui/show-icon/index.d.ts +3 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/ui/agent-conversation-starters/index.d.ts +8 -13
- package/dist/types/ui/agent-conversation-starters/messages.d.ts +0 -90
- package/dist/types-ts4.5/common/ui/hidden-icon/index.d.ts +3 -0
- package/dist/types-ts4.5/common/ui/show-icon/index.d.ts +3 -0
- package/dist/types-ts4.5/index.d.ts +3 -1
- package/dist/types-ts4.5/ui/agent-conversation-starters/index.d.ts +8 -13
- package/dist/types-ts4.5/ui/agent-conversation-starters/messages.d.ts +0 -90
- package/package.json +4 -14
|
@@ -1,84 +1,21 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
3
|
import { useIntl } from 'react-intl-next';
|
|
4
|
-
import {
|
|
4
|
+
import { IconButton } from '@atlaskit/button/new';
|
|
5
|
+
import RetryIcon from '@atlaskit/icon/core/retry';
|
|
6
|
+
import { Inline } from '@atlaskit/primitives';
|
|
5
7
|
import { ChatPill } from '../../common/ui/chat-pill';
|
|
6
8
|
import { messages } from './messages';
|
|
7
|
-
function useWindowLocationChange() {
|
|
8
|
-
const [location, setLocation] = useState(window.location.href);
|
|
9
|
-
const handleLocationChange = () => {
|
|
10
|
-
setLocation(window.location.href);
|
|
11
|
-
};
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
const originalPushState = window.history.pushState;
|
|
14
|
-
const originalReplaceState = window.history.replaceState;
|
|
15
|
-
window.history.pushState = function (...args) {
|
|
16
|
-
originalPushState.apply(this, args);
|
|
17
|
-
handleLocationChange();
|
|
18
|
-
};
|
|
19
|
-
window.history.replaceState = function (...args) {
|
|
20
|
-
originalReplaceState.apply(this, args);
|
|
21
|
-
handleLocationChange();
|
|
22
|
-
};
|
|
23
|
-
const unbind = bindAll(window, [{
|
|
24
|
-
type: 'popstate',
|
|
25
|
-
listener: handleLocationChange
|
|
26
|
-
}]);
|
|
27
|
-
return () => {
|
|
28
|
-
unbind();
|
|
29
|
-
window.history.pushState = originalPushState;
|
|
30
|
-
window.history.replaceState = originalReplaceState;
|
|
31
|
-
};
|
|
32
|
-
}, []);
|
|
33
|
-
return location;
|
|
34
|
-
}
|
|
35
|
-
export let PageContextType = /*#__PURE__*/function (PageContextType) {
|
|
36
|
-
PageContextType["CONFLUENCE_HOME"] = "confluence-home";
|
|
37
|
-
PageContextType["CONFLUENCE_PAGE_VIEW"] = "confluence-page-view";
|
|
38
|
-
PageContextType["CONFLUENCE_PAGE_EDIT"] = "confluence-page-edit";
|
|
39
|
-
PageContextType["JIRA_HOME"] = "jira-home";
|
|
40
|
-
PageContextType["JIRA_ISSUE_VIEW"] = "jira-issue-view";
|
|
41
|
-
PageContextType["JIRA_ISSUE_LIST"] = "jira-issue-list";
|
|
42
|
-
PageContextType["UNKNOWN"] = "unknown";
|
|
43
|
-
return PageContextType;
|
|
44
|
-
}({});
|
|
45
|
-
const PAGE_TYPE_CONVERSATION_STARTERS = {
|
|
46
|
-
[PageContextType.CONFLUENCE_HOME]: [messages.confluenceHomeSuggestion1, messages.confluenceHomeSuggestion2, messages.confluenceHomeSuggestion3],
|
|
47
|
-
[PageContextType.CONFLUENCE_PAGE_EDIT]: [messages.confluencePageEditSuggestion1, messages.confluencePageEditSuggestion2, messages.confluencePageEditSuggestion3],
|
|
48
|
-
[PageContextType.CONFLUENCE_PAGE_VIEW]: [messages.confluencePageViewSuggestion1, messages.confluencePageViewSuggestion2, messages.confluencePageViewSuggestion3],
|
|
49
|
-
[PageContextType.JIRA_HOME]: [messages.jiraHomeSuggestion1, messages.jiraHomeSuggestion2, messages.jiraHomeSuggestion3],
|
|
50
|
-
[PageContextType.JIRA_ISSUE_VIEW]: [messages.jiraIssueViewSuggestion1, messages.jiraIssueViewSuggestion2, messages.jiraIssueViewSuggestion3],
|
|
51
|
-
[PageContextType.JIRA_ISSUE_LIST]: [messages.jiraIssueListSuggestion1, messages.jiraIssueListSuggestion2, messages.jiraIssueListSuggestion3],
|
|
52
|
-
[PageContextType.UNKNOWN]: [messages.emptyStateSuggestion1, messages.emptyStateSuggestion2, messages.emptyStateSuggestion3]
|
|
53
|
-
};
|
|
54
|
-
function determinePageType(location) {
|
|
55
|
-
const urlPatterns = [[PageContextType.CONFLUENCE_HOME, /\/wiki\/home$/], [PageContextType.CONFLUENCE_PAGE_EDIT, /\/wiki\/spaces\/[^\/]+\/(?:pages|blog)\/edit-v2\//], [PageContextType.CONFLUENCE_PAGE_VIEW, /\/wiki\/spaces\/[^\/]+\/(?:pages|blog)\//], [PageContextType.JIRA_ISSUE_VIEW, /\/browse\/[^\/]+$/], [PageContextType.JIRA_ISSUE_VIEW, /\/jira\/.+\/projects\/.+\?selectedIssue/], [PageContextType.JIRA_ISSUE_LIST, /\/jira\/.+\/projects\//], [PageContextType.JIRA_HOME, /\/jira\/dashboards\/last-visited$/]];
|
|
56
|
-
for (const [type, pattern] of urlPatterns) {
|
|
57
|
-
if (pattern.test(location)) {
|
|
58
|
-
return type;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return PageContextType.UNKNOWN;
|
|
62
|
-
}
|
|
63
|
-
export const usePageContextType = () => {
|
|
64
|
-
const location = useWindowLocationChange();
|
|
65
|
-
const [pageContextType, setPageContextType] = useState(determinePageType(location));
|
|
66
|
-
useEffect(() => {
|
|
67
|
-
setPageContextType(determinePageType(location));
|
|
68
|
-
}, [location]);
|
|
69
|
-
return pageContextType;
|
|
70
|
-
};
|
|
71
9
|
export const getConversationStarters = ({
|
|
72
10
|
userDefinedConversationStarters: userDefinedConversationStartersParam,
|
|
73
|
-
isAgentDefault
|
|
74
|
-
pageContextType = PageContextType.UNKNOWN
|
|
11
|
+
isAgentDefault
|
|
75
12
|
}) => {
|
|
76
13
|
const customAgentConversationStarters = [messages.agentEmptyStateSuggestion1, messages.agentEmptyStateSuggestion2, messages.agentEmptyStateSuggestion3];
|
|
77
14
|
const userDefinedConversationStarters = userDefinedConversationStartersParam !== null && userDefinedConversationStartersParam !== void 0 ? userDefinedConversationStartersParam : [];
|
|
78
|
-
const
|
|
79
|
-
const defaultAgentConversationStarters = isPageContextConvoStartersEnabled ? PAGE_TYPE_CONVERSATION_STARTERS[pageContextType] : [messages.emptyStateSuggestion1, messages.emptyStateSuggestion2, messages.emptyStateSuggestion3];
|
|
15
|
+
const defaultAgentConversationStarters = [messages.emptyStateSuggestion1, messages.emptyStateSuggestion2, messages.emptyStateSuggestion3];
|
|
80
16
|
const getCombinedConversationStarters = () => {
|
|
81
|
-
|
|
17
|
+
const shouldCombine = !isAgentDefault;
|
|
18
|
+
if (shouldCombine) {
|
|
82
19
|
// Return default suggestions + user defined suggestions with a max of 3 suggestions
|
|
83
20
|
return [...customAgentConversationStarters.slice(0, 3 - userDefinedConversationStarters.length), ...userDefinedConversationStarters];
|
|
84
21
|
}
|
|
@@ -94,28 +31,45 @@ export const getConversationStarters = ({
|
|
|
94
31
|
export const AgentConversationStarters = ({
|
|
95
32
|
userDefinedConversationStarters,
|
|
96
33
|
isAgentDefault,
|
|
97
|
-
|
|
34
|
+
...props
|
|
98
35
|
}) => {
|
|
99
36
|
const {
|
|
100
37
|
formatMessage
|
|
101
38
|
} = useIntl();
|
|
102
|
-
const pageContextType = usePageContextType();
|
|
103
39
|
const {
|
|
104
40
|
combinedConversationStarters
|
|
105
41
|
} = useMemo(() => getConversationStarters({
|
|
106
42
|
userDefinedConversationStarters,
|
|
107
|
-
isAgentDefault
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
43
|
+
isAgentDefault
|
|
44
|
+
}), [userDefinedConversationStarters, isAgentDefault]);
|
|
45
|
+
const starters = useMemo(() => combinedConversationStarters.map(starter => typeof starter === 'string' ? starter : formatMessage(starter)), [combinedConversationStarters, formatMessage]);
|
|
46
|
+
return /*#__PURE__*/React.createElement(ConversationStarters, _extends({
|
|
47
|
+
starters: starters
|
|
48
|
+
}, props));
|
|
49
|
+
};
|
|
50
|
+
export const ConversationStarters = ({
|
|
51
|
+
starters,
|
|
52
|
+
onConversationStarterClick,
|
|
53
|
+
showReloadButton = false,
|
|
54
|
+
onReloadButtonClick = () => {}
|
|
55
|
+
}) => {
|
|
56
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, starters.map((starter, index) => {
|
|
57
|
+
const isLastStarter = index === starters.length - 1;
|
|
58
|
+
const chatPill = /*#__PURE__*/React.createElement(ChatPill, {
|
|
116
59
|
testId: "conversation-starter",
|
|
117
|
-
key:
|
|
118
|
-
onClick: () =>
|
|
119
|
-
},
|
|
60
|
+
key: starter,
|
|
61
|
+
onClick: () => onConversationStarterClick(starter)
|
|
62
|
+
}, starter);
|
|
63
|
+
return isLastStarter && showReloadButton ? /*#__PURE__*/React.createElement(Inline, {
|
|
64
|
+
space: "space.050",
|
|
65
|
+
grow: "fill",
|
|
66
|
+
alignInline: "end",
|
|
67
|
+
key: starter
|
|
68
|
+
}, chatPill, /*#__PURE__*/React.createElement(IconButton, {
|
|
69
|
+
icon: RetryIcon,
|
|
70
|
+
onClick: onReloadButtonClick,
|
|
71
|
+
appearance: "subtle",
|
|
72
|
+
label: ""
|
|
73
|
+
})) : chatPill;
|
|
120
74
|
}));
|
|
121
75
|
};
|
|
@@ -29,95 +29,5 @@ export const messages = defineMessages({
|
|
|
29
29
|
id: 'ai-mate.chat-history.empty-state.agent-suggestion3',
|
|
30
30
|
defaultMessage: "Summarize what I'm looking at",
|
|
31
31
|
description: 'The third suggestion displayed in the empty state when an agent is selected'
|
|
32
|
-
},
|
|
33
|
-
confluenceHomeSuggestion1: {
|
|
34
|
-
id: 'ai-mate.chat-history.empty-state.confluence-home.suggestion1',
|
|
35
|
-
defaultMessage: "Is there any new activity on pages I've written?",
|
|
36
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing confluence home.'
|
|
37
|
-
},
|
|
38
|
-
confluenceHomeSuggestion2: {
|
|
39
|
-
id: 'ai-mate.chat-history.empty-state.confluence-home.suggestion2',
|
|
40
|
-
defaultMessage: "What's popular at the moment?",
|
|
41
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing confluence home.'
|
|
42
|
-
},
|
|
43
|
-
confluenceHomeSuggestion3: {
|
|
44
|
-
id: 'ai-mate.chat-history.empty-state.confluence-home.suggestion3',
|
|
45
|
-
defaultMessage: 'How can Rovo help me use Confluence?',
|
|
46
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing confluence home.'
|
|
47
|
-
},
|
|
48
|
-
confluencePageEditSuggestion1: {
|
|
49
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-edit.suggestion1',
|
|
50
|
-
defaultMessage: 'Can you improve the writing on this page?',
|
|
51
|
-
description: 'The first suggestion displayed in the empty state of the chat history when editing a confluence page.'
|
|
52
|
-
},
|
|
53
|
-
confluencePageEditSuggestion2: {
|
|
54
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-edit.suggestion2',
|
|
55
|
-
defaultMessage: 'Write an executive summary for this page.',
|
|
56
|
-
description: 'The second suggestion displayed in the empty state of the chat history when editing a confluence page.'
|
|
57
|
-
},
|
|
58
|
-
confluencePageEditSuggestion3: {
|
|
59
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-edit.suggestion3',
|
|
60
|
-
defaultMessage: 'Give me links to some other relevant pages.',
|
|
61
|
-
description: 'The third suggestion displayed in the empty state of the chat history when editing a confluence page.'
|
|
62
|
-
},
|
|
63
|
-
confluencePageViewSuggestion1: {
|
|
64
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-view.suggestion1',
|
|
65
|
-
defaultMessage: 'Summarize what I’m looking at.',
|
|
66
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing a confluence page.'
|
|
67
|
-
},
|
|
68
|
-
confluencePageViewSuggestion2: {
|
|
69
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-view.suggestion2',
|
|
70
|
-
defaultMessage: 'Has anything on this page changed in the last week?',
|
|
71
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing a confluence page.'
|
|
72
|
-
},
|
|
73
|
-
confluencePageViewSuggestion3: {
|
|
74
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-view.suggestion3',
|
|
75
|
-
defaultMessage: 'Summarize the comments on this page.',
|
|
76
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing a confluence page.'
|
|
77
|
-
},
|
|
78
|
-
jiraHomeSuggestion1: {
|
|
79
|
-
id: 'ai-mate.chat-history.empty-state.jira-home.suggestion1',
|
|
80
|
-
defaultMessage: 'What’s changed in the past week?',
|
|
81
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing jira home.'
|
|
82
|
-
},
|
|
83
|
-
jiraHomeSuggestion2: {
|
|
84
|
-
id: 'ai-mate.chat-history.empty-state.jira-home.suggestion2',
|
|
85
|
-
defaultMessage: 'What issues are the highest priority?',
|
|
86
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing jira home.'
|
|
87
|
-
},
|
|
88
|
-
jiraHomeSuggestion3: {
|
|
89
|
-
id: 'ai-mate.chat-history.empty-state.jira-home.suggestion3',
|
|
90
|
-
defaultMessage: 'What issues have comments mentioning me?',
|
|
91
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing jira home.'
|
|
92
|
-
},
|
|
93
|
-
jiraIssueViewSuggestion1: {
|
|
94
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-view.suggestion1',
|
|
95
|
-
defaultMessage: 'Are there any similar issues to this one?',
|
|
96
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing a jira issue.'
|
|
97
|
-
},
|
|
98
|
-
jiraIssueViewSuggestion2: {
|
|
99
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-view.suggestion2',
|
|
100
|
-
defaultMessage: 'What issues aren’t connected to a parent issue?',
|
|
101
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing a jira issue.'
|
|
102
|
-
},
|
|
103
|
-
jiraIssueViewSuggestion3: {
|
|
104
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-view.suggestion3',
|
|
105
|
-
defaultMessage: 'List the issues that are currently “In Progress” and group them by assignee.',
|
|
106
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing a jira issue.'
|
|
107
|
-
},
|
|
108
|
-
jiraIssueListSuggestion1: {
|
|
109
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-list.suggestion1',
|
|
110
|
-
defaultMessage: 'What issues are unassigned?',
|
|
111
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing a list of jira issues.'
|
|
112
|
-
},
|
|
113
|
-
jiraIssueListSuggestion2: {
|
|
114
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-list.suggestion2',
|
|
115
|
-
defaultMessage: 'What issues have been open the longest?',
|
|
116
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing a list of jira issues.'
|
|
117
|
-
},
|
|
118
|
-
jiraIssueListSuggestion3: {
|
|
119
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-list.suggestion3',
|
|
120
|
-
defaultMessage: 'Who has the most tasks?',
|
|
121
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing a list of jira issues.'
|
|
122
32
|
}
|
|
123
33
|
});
|
|
@@ -3,8 +3,8 @@ import React from 'react';
|
|
|
3
3
|
import Icon from '@atlaskit/icon';
|
|
4
4
|
var CustomGlyph = function CustomGlyph(props) {
|
|
5
5
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
6
|
-
width: "
|
|
7
|
-
height: "
|
|
6
|
+
width: "16",
|
|
7
|
+
height: "16",
|
|
8
8
|
viewBox: "0 0 20 20",
|
|
9
9
|
fill: "none",
|
|
10
10
|
xmlns: "http://www.w3.org/2000/svg"
|
|
@@ -40,6 +40,7 @@ var CustomGlyph = function CustomGlyph(props) {
|
|
|
40
40
|
export var ChatPillIcon = function ChatPillIcon(props) {
|
|
41
41
|
return /*#__PURE__*/React.createElement(Icon, _extends({}, props, {
|
|
42
42
|
glyph: CustomGlyph,
|
|
43
|
-
label: ""
|
|
43
|
+
label: "",
|
|
44
|
+
size: "small"
|
|
44
45
|
}));
|
|
45
46
|
};
|
|
@@ -9,7 +9,7 @@ var buttonStyles = xcss({
|
|
|
9
9
|
padding: 'space.100',
|
|
10
10
|
borderRadius: 'border.radius.200',
|
|
11
11
|
borderBottomRightRadius: "var(--ds-border-radius-050, 2px)",
|
|
12
|
-
lineHeight: '
|
|
12
|
+
lineHeight: '16px',
|
|
13
13
|
fontWeight: '500',
|
|
14
14
|
fontSize: '14px',
|
|
15
15
|
textOverflow: 'ellipsis',
|
|
@@ -33,10 +33,6 @@ var queryTextStyles = xcss({
|
|
|
33
33
|
var whiteSpacePreWrapStyles = xcss({
|
|
34
34
|
whiteSpace: 'pre-wrap'
|
|
35
35
|
});
|
|
36
|
-
var iconWrapper = xcss({
|
|
37
|
-
minWidth: '20px',
|
|
38
|
-
height: '20px'
|
|
39
|
-
});
|
|
40
36
|
export var ChatPill = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
41
37
|
var children = _ref.children,
|
|
42
38
|
_ref$whiteSpacePreWra = _ref.whiteSpacePreWrap,
|
|
@@ -49,9 +45,7 @@ export var ChatPill = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
49
45
|
}), /*#__PURE__*/React.createElement(Inline, {
|
|
50
46
|
space: "space.050",
|
|
51
47
|
xcss: buttonInlineStyles
|
|
52
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
|
53
|
-
xcss: iconWrapper
|
|
54
|
-
}, /*#__PURE__*/React.createElement(ChatPillIcon, null)), /*#__PURE__*/React.createElement(Box, {
|
|
48
|
+
}, /*#__PURE__*/React.createElement(ChatPillIcon, null), /*#__PURE__*/React.createElement(Box, {
|
|
55
49
|
xcss: [queryTextStyles, whiteSpacePreWrap && whiteSpacePreWrapStyles]
|
|
56
50
|
}, children)));
|
|
57
51
|
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import Icon from '@atlaskit/icon';
|
|
4
|
+
var CustomGlyph = function CustomGlyph(props) {
|
|
5
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
6
|
+
width: "16",
|
|
7
|
+
height: "16",
|
|
8
|
+
viewBox: "0 0 16 16",
|
|
9
|
+
fill: "none",
|
|
10
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
11
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
12
|
+
fillRule: "evenodd",
|
|
13
|
+
clipRule: "evenodd",
|
|
14
|
+
d: "M2.75961 3.82038L0.469614 1.53039L1.53027 0.469727L15.5303 14.4697L14.4696 15.5304L11.9569 13.0177C10.7749 13.6441 9.42396 14.0001 7.99985 14.0001C4.43327 14.0001 1.31894 11.7676 0.167087 8.61989C0.0206752 8.21978 0.0206129 7.78052 0.167056 7.38031C0.683493 5.96897 1.59401 4.74336 2.75961 3.82038ZM3.82896 4.88973C2.80461 5.65938 2.01287 6.70107 1.57571 7.89577C1.5511 7.96303 1.55109 8.03706 1.57574 8.10442C2.50926 10.6555 5.05721 12.5001 7.99985 12.5001C9.00694 12.5001 9.96863 12.284 10.8358 11.8965L9.52381 10.5846C9.07723 10.8483 8.55598 11.0001 7.99994 11.0001C6.34309 11.0001 4.99994 9.65691 4.99994 8.00006C4.99994 7.44402 5.15166 6.92277 5.41542 6.47619L3.82896 4.88973ZM6.55063 7.6114C6.51755 7.7353 6.49994 7.86555 6.49994 8.00006C6.49994 8.82848 7.17152 9.50006 7.99994 9.50006C8.13445 9.50006 8.2647 9.48246 8.3886 9.44937L6.55063 7.6114ZM7.99985 3.50006C7.50971 3.50006 7.03064 3.55121 6.56817 3.64826L6.26011 2.18024C6.82282 2.06215 7.40511 2.00006 7.99985 2.00006C11.5664 2.00006 14.6809 4.23249 15.8328 7.38022C15.9792 7.78032 15.9793 8.21955 15.8328 8.61977C15.5258 9.45892 15.0793 10.2324 14.5232 10.9153L13.3601 9.96815C13.8143 9.41034 14.1762 8.78194 14.4242 8.10432C14.4488 8.03708 14.4488 7.96307 14.4242 7.8957C13.4906 5.34464 10.9425 3.50006 7.99985 3.50006Z",
|
|
15
|
+
fill: "currentColor"
|
|
16
|
+
}));
|
|
17
|
+
};
|
|
18
|
+
export var HiddenIcon = function HiddenIcon(props) {
|
|
19
|
+
return /*#__PURE__*/React.createElement(Icon, _extends({
|
|
20
|
+
glyph: CustomGlyph
|
|
21
|
+
}, props));
|
|
22
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import Icon from '@atlaskit/icon';
|
|
4
|
+
var CustomGlyph = function CustomGlyph(props) {
|
|
5
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
6
|
+
width: "16",
|
|
7
|
+
height: "16",
|
|
8
|
+
viewBox: "0 0 16 16",
|
|
9
|
+
fill: "none",
|
|
10
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
11
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
12
|
+
fillRule: "evenodd",
|
|
13
|
+
clipRule: "evenodd",
|
|
14
|
+
d: "M7.99996 3.5C5.05732 3.5 2.50937 5.34456 1.57585 7.89564C1.55122 7.96295 1.55122 8.03705 1.57585 8.10436C2.50937 10.6554 5.05732 12.5 7.99996 12.5C10.9426 12.5 13.4907 10.6554 14.4243 8.10436C14.4489 8.03705 14.4489 7.96295 14.4243 7.89564C13.4907 5.34458 10.9426 3.5 7.99996 3.5ZM0.167196 7.38017C1.31905 4.23246 4.43338 2 7.99996 2C11.5665 2 14.681 4.23244 15.8329 7.38017C15.9793 7.78033 15.9793 8.21967 15.8329 8.61983C14.681 11.7676 11.5665 14 7.99996 14C4.43338 14 1.31905 11.7675 0.167196 8.61983C0.0207653 8.21967 0.0207653 7.78033 0.167196 7.38017ZM8.00005 6.5C7.17163 6.5 6.50005 7.17157 6.50005 8C6.50005 8.82843 7.17163 9.5 8.00005 9.5C8.82848 9.5 9.50005 8.82843 9.50005 8C9.50005 7.17157 8.82848 6.5 8.00005 6.5ZM5.00005 8C5.00005 6.34315 6.3432 5 8.00005 5C9.65691 5 11.0001 6.34315 11.0001 8C11.0001 9.65685 9.65691 11 8.00005 11C6.3432 11 5.00005 9.65685 5.00005 8Z",
|
|
15
|
+
fill: "currentColor"
|
|
16
|
+
}));
|
|
17
|
+
};
|
|
18
|
+
export var ShowIcon = function ShowIcon(props) {
|
|
19
|
+
return /*#__PURE__*/React.createElement(Icon, _extends({
|
|
20
|
+
glyph: CustomGlyph
|
|
21
|
+
}, props));
|
|
22
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { AgentProfileInfo, AgentProfileCreator, AgentStarCount } from './ui/agent-profile-info';
|
|
2
2
|
export { StarIconButton } from './common/ui/star-icon-button';
|
|
3
|
-
export { AgentConversationStarters, getConversationStarters } from './ui/agent-conversation-starters';
|
|
3
|
+
export { AgentConversationStarters, ConversationStarters, getConversationStarters } from './ui/agent-conversation-starters';
|
|
4
4
|
export { ChatPill } from './common/ui/chat-pill';
|
|
5
5
|
export { ChatPillIcon } from './common/ui/chat-icon';
|
|
6
|
+
export { ShowIcon } from './common/ui/show-icon';
|
|
7
|
+
export { HiddenIcon } from './common/ui/hidden-icon';
|
|
6
8
|
export { AgentAvatar } from './ui/agent-avatar';
|
|
7
9
|
export { AgentBanner } from './ui/agent-avatar/generated-avatars';
|
|
@@ -1,95 +1,23 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
1
3
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
var _PAGE_TYPE_CONVERSATI;
|
|
5
|
-
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
6
|
-
import { bindAll } from 'bind-event-listener';
|
|
4
|
+
var _excluded = ["userDefinedConversationStarters", "isAgentDefault"];
|
|
5
|
+
import React, { useMemo } from 'react';
|
|
7
6
|
import { useIntl } from 'react-intl-next';
|
|
8
|
-
import {
|
|
7
|
+
import { IconButton } from '@atlaskit/button/new';
|
|
8
|
+
import RetryIcon from '@atlaskit/icon/core/retry';
|
|
9
|
+
import { Inline } from '@atlaskit/primitives';
|
|
9
10
|
import { ChatPill } from '../../common/ui/chat-pill';
|
|
10
11
|
import { messages } from './messages';
|
|
11
|
-
function useWindowLocationChange() {
|
|
12
|
-
var _useState = useState(window.location.href),
|
|
13
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
14
|
-
location = _useState2[0],
|
|
15
|
-
setLocation = _useState2[1];
|
|
16
|
-
var handleLocationChange = function handleLocationChange() {
|
|
17
|
-
setLocation(window.location.href);
|
|
18
|
-
};
|
|
19
|
-
useEffect(function () {
|
|
20
|
-
var originalPushState = window.history.pushState;
|
|
21
|
-
var originalReplaceState = window.history.replaceState;
|
|
22
|
-
window.history.pushState = function () {
|
|
23
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
24
|
-
args[_key] = arguments[_key];
|
|
25
|
-
}
|
|
26
|
-
originalPushState.apply(this, args);
|
|
27
|
-
handleLocationChange();
|
|
28
|
-
};
|
|
29
|
-
window.history.replaceState = function () {
|
|
30
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
31
|
-
args[_key2] = arguments[_key2];
|
|
32
|
-
}
|
|
33
|
-
originalReplaceState.apply(this, args);
|
|
34
|
-
handleLocationChange();
|
|
35
|
-
};
|
|
36
|
-
var unbind = bindAll(window, [{
|
|
37
|
-
type: 'popstate',
|
|
38
|
-
listener: handleLocationChange
|
|
39
|
-
}]);
|
|
40
|
-
return function () {
|
|
41
|
-
unbind();
|
|
42
|
-
window.history.pushState = originalPushState;
|
|
43
|
-
window.history.replaceState = originalReplaceState;
|
|
44
|
-
};
|
|
45
|
-
}, []);
|
|
46
|
-
return location;
|
|
47
|
-
}
|
|
48
|
-
export var PageContextType = /*#__PURE__*/function (PageContextType) {
|
|
49
|
-
PageContextType["CONFLUENCE_HOME"] = "confluence-home";
|
|
50
|
-
PageContextType["CONFLUENCE_PAGE_VIEW"] = "confluence-page-view";
|
|
51
|
-
PageContextType["CONFLUENCE_PAGE_EDIT"] = "confluence-page-edit";
|
|
52
|
-
PageContextType["JIRA_HOME"] = "jira-home";
|
|
53
|
-
PageContextType["JIRA_ISSUE_VIEW"] = "jira-issue-view";
|
|
54
|
-
PageContextType["JIRA_ISSUE_LIST"] = "jira-issue-list";
|
|
55
|
-
PageContextType["UNKNOWN"] = "unknown";
|
|
56
|
-
return PageContextType;
|
|
57
|
-
}({});
|
|
58
|
-
var PAGE_TYPE_CONVERSATION_STARTERS = (_PAGE_TYPE_CONVERSATI = {}, _defineProperty(_PAGE_TYPE_CONVERSATI, PageContextType.CONFLUENCE_HOME, [messages.confluenceHomeSuggestion1, messages.confluenceHomeSuggestion2, messages.confluenceHomeSuggestion3]), _defineProperty(_PAGE_TYPE_CONVERSATI, PageContextType.CONFLUENCE_PAGE_EDIT, [messages.confluencePageEditSuggestion1, messages.confluencePageEditSuggestion2, messages.confluencePageEditSuggestion3]), _defineProperty(_PAGE_TYPE_CONVERSATI, PageContextType.CONFLUENCE_PAGE_VIEW, [messages.confluencePageViewSuggestion1, messages.confluencePageViewSuggestion2, messages.confluencePageViewSuggestion3]), _defineProperty(_PAGE_TYPE_CONVERSATI, PageContextType.JIRA_HOME, [messages.jiraHomeSuggestion1, messages.jiraHomeSuggestion2, messages.jiraHomeSuggestion3]), _defineProperty(_PAGE_TYPE_CONVERSATI, PageContextType.JIRA_ISSUE_VIEW, [messages.jiraIssueViewSuggestion1, messages.jiraIssueViewSuggestion2, messages.jiraIssueViewSuggestion3]), _defineProperty(_PAGE_TYPE_CONVERSATI, PageContextType.JIRA_ISSUE_LIST, [messages.jiraIssueListSuggestion1, messages.jiraIssueListSuggestion2, messages.jiraIssueListSuggestion3]), _defineProperty(_PAGE_TYPE_CONVERSATI, PageContextType.UNKNOWN, [messages.emptyStateSuggestion1, messages.emptyStateSuggestion2, messages.emptyStateSuggestion3]), _PAGE_TYPE_CONVERSATI);
|
|
59
|
-
function determinePageType(location) {
|
|
60
|
-
var urlPatterns = [[PageContextType.CONFLUENCE_HOME, /\/wiki\/home$/], [PageContextType.CONFLUENCE_PAGE_EDIT, /\/wiki\/spaces\/[^\/]+\/(?:pages|blog)\/edit-v2\//], [PageContextType.CONFLUENCE_PAGE_VIEW, /\/wiki\/spaces\/[^\/]+\/(?:pages|blog)\//], [PageContextType.JIRA_ISSUE_VIEW, /\/browse\/[^\/]+$/], [PageContextType.JIRA_ISSUE_VIEW, /\/jira\/.+\/projects\/.+\?selectedIssue/], [PageContextType.JIRA_ISSUE_LIST, /\/jira\/.+\/projects\//], [PageContextType.JIRA_HOME, /\/jira\/dashboards\/last-visited$/]];
|
|
61
|
-
for (var _i = 0, _urlPatterns = urlPatterns; _i < _urlPatterns.length; _i++) {
|
|
62
|
-
var _urlPatterns$_i = _slicedToArray(_urlPatterns[_i], 2),
|
|
63
|
-
type = _urlPatterns$_i[0],
|
|
64
|
-
pattern = _urlPatterns$_i[1];
|
|
65
|
-
if (pattern.test(location)) {
|
|
66
|
-
return type;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return PageContextType.UNKNOWN;
|
|
70
|
-
}
|
|
71
|
-
export var usePageContextType = function usePageContextType() {
|
|
72
|
-
var location = useWindowLocationChange();
|
|
73
|
-
var _useState3 = useState(determinePageType(location)),
|
|
74
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
75
|
-
pageContextType = _useState4[0],
|
|
76
|
-
setPageContextType = _useState4[1];
|
|
77
|
-
useEffect(function () {
|
|
78
|
-
setPageContextType(determinePageType(location));
|
|
79
|
-
}, [location]);
|
|
80
|
-
return pageContextType;
|
|
81
|
-
};
|
|
82
12
|
export var getConversationStarters = function getConversationStarters(_ref) {
|
|
83
13
|
var userDefinedConversationStartersParam = _ref.userDefinedConversationStarters,
|
|
84
|
-
isAgentDefault = _ref.isAgentDefault
|
|
85
|
-
_ref$pageContextType = _ref.pageContextType,
|
|
86
|
-
pageContextType = _ref$pageContextType === void 0 ? PageContextType.UNKNOWN : _ref$pageContextType;
|
|
14
|
+
isAgentDefault = _ref.isAgentDefault;
|
|
87
15
|
var customAgentConversationStarters = [messages.agentEmptyStateSuggestion1, messages.agentEmptyStateSuggestion2, messages.agentEmptyStateSuggestion3];
|
|
88
16
|
var userDefinedConversationStarters = userDefinedConversationStartersParam !== null && userDefinedConversationStartersParam !== void 0 ? userDefinedConversationStartersParam : [];
|
|
89
|
-
var
|
|
90
|
-
var defaultAgentConversationStarters = isPageContextConvoStartersEnabled ? PAGE_TYPE_CONVERSATION_STARTERS[pageContextType] : [messages.emptyStateSuggestion1, messages.emptyStateSuggestion2, messages.emptyStateSuggestion3];
|
|
17
|
+
var defaultAgentConversationStarters = [messages.emptyStateSuggestion1, messages.emptyStateSuggestion2, messages.emptyStateSuggestion3];
|
|
91
18
|
var getCombinedConversationStarters = function getCombinedConversationStarters() {
|
|
92
|
-
|
|
19
|
+
var shouldCombine = !isAgentDefault;
|
|
20
|
+
if (shouldCombine) {
|
|
93
21
|
// Return default suggestions + user defined suggestions with a max of 3 suggestions
|
|
94
22
|
return [].concat(_toConsumableArray(customAgentConversationStarters.slice(0, 3 - userDefinedConversationStarters.length)), _toConsumableArray(userDefinedConversationStarters));
|
|
95
23
|
}
|
|
@@ -105,29 +33,51 @@ export var getConversationStarters = function getConversationStarters(_ref) {
|
|
|
105
33
|
export var AgentConversationStarters = function AgentConversationStarters(_ref2) {
|
|
106
34
|
var userDefinedConversationStarters = _ref2.userDefinedConversationStarters,
|
|
107
35
|
isAgentDefault = _ref2.isAgentDefault,
|
|
108
|
-
|
|
36
|
+
props = _objectWithoutProperties(_ref2, _excluded);
|
|
109
37
|
var _useIntl = useIntl(),
|
|
110
38
|
formatMessage = _useIntl.formatMessage;
|
|
111
|
-
var pageContextType = usePageContextType();
|
|
112
39
|
var _useMemo = useMemo(function () {
|
|
113
40
|
return getConversationStarters({
|
|
114
41
|
userDefinedConversationStarters: userDefinedConversationStarters,
|
|
115
|
-
isAgentDefault: isAgentDefault
|
|
116
|
-
pageContextType: pageContextType
|
|
42
|
+
isAgentDefault: isAgentDefault
|
|
117
43
|
});
|
|
118
|
-
}, [userDefinedConversationStarters, isAgentDefault
|
|
44
|
+
}, [userDefinedConversationStarters, isAgentDefault]),
|
|
119
45
|
combinedConversationStarters = _useMemo.combinedConversationStarters;
|
|
120
|
-
var
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
46
|
+
var starters = useMemo(function () {
|
|
47
|
+
return combinedConversationStarters.map(function (starter) {
|
|
48
|
+
return typeof starter === 'string' ? starter : formatMessage(starter);
|
|
49
|
+
});
|
|
50
|
+
}, [combinedConversationStarters, formatMessage]);
|
|
51
|
+
return /*#__PURE__*/React.createElement(ConversationStarters, _extends({
|
|
52
|
+
starters: starters
|
|
53
|
+
}, props));
|
|
54
|
+
};
|
|
55
|
+
export var ConversationStarters = function ConversationStarters(_ref3) {
|
|
56
|
+
var starters = _ref3.starters,
|
|
57
|
+
onConversationStarterClick = _ref3.onConversationStarterClick,
|
|
58
|
+
_ref3$showReloadButto = _ref3.showReloadButton,
|
|
59
|
+
showReloadButton = _ref3$showReloadButto === void 0 ? false : _ref3$showReloadButto,
|
|
60
|
+
_ref3$onReloadButtonC = _ref3.onReloadButtonClick,
|
|
61
|
+
onReloadButtonClick = _ref3$onReloadButtonC === void 0 ? function () {} : _ref3$onReloadButtonC;
|
|
62
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, starters.map(function (starter, index) {
|
|
63
|
+
var isLastStarter = index === starters.length - 1;
|
|
64
|
+
var chatPill = /*#__PURE__*/React.createElement(ChatPill, {
|
|
126
65
|
testId: "conversation-starter",
|
|
127
|
-
key:
|
|
66
|
+
key: starter,
|
|
128
67
|
onClick: function onClick() {
|
|
129
|
-
return
|
|
68
|
+
return onConversationStarterClick(starter);
|
|
130
69
|
}
|
|
131
|
-
},
|
|
70
|
+
}, starter);
|
|
71
|
+
return isLastStarter && showReloadButton ? /*#__PURE__*/React.createElement(Inline, {
|
|
72
|
+
space: "space.050",
|
|
73
|
+
grow: "fill",
|
|
74
|
+
alignInline: "end",
|
|
75
|
+
key: starter
|
|
76
|
+
}, chatPill, /*#__PURE__*/React.createElement(IconButton, {
|
|
77
|
+
icon: RetryIcon,
|
|
78
|
+
onClick: onReloadButtonClick,
|
|
79
|
+
appearance: "subtle",
|
|
80
|
+
label: ""
|
|
81
|
+
})) : chatPill;
|
|
132
82
|
}));
|
|
133
83
|
};
|
|
@@ -29,95 +29,5 @@ export var messages = defineMessages({
|
|
|
29
29
|
id: 'ai-mate.chat-history.empty-state.agent-suggestion3',
|
|
30
30
|
defaultMessage: "Summarize what I'm looking at",
|
|
31
31
|
description: 'The third suggestion displayed in the empty state when an agent is selected'
|
|
32
|
-
},
|
|
33
|
-
confluenceHomeSuggestion1: {
|
|
34
|
-
id: 'ai-mate.chat-history.empty-state.confluence-home.suggestion1',
|
|
35
|
-
defaultMessage: "Is there any new activity on pages I've written?",
|
|
36
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing confluence home.'
|
|
37
|
-
},
|
|
38
|
-
confluenceHomeSuggestion2: {
|
|
39
|
-
id: 'ai-mate.chat-history.empty-state.confluence-home.suggestion2',
|
|
40
|
-
defaultMessage: "What's popular at the moment?",
|
|
41
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing confluence home.'
|
|
42
|
-
},
|
|
43
|
-
confluenceHomeSuggestion3: {
|
|
44
|
-
id: 'ai-mate.chat-history.empty-state.confluence-home.suggestion3',
|
|
45
|
-
defaultMessage: 'How can Rovo help me use Confluence?',
|
|
46
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing confluence home.'
|
|
47
|
-
},
|
|
48
|
-
confluencePageEditSuggestion1: {
|
|
49
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-edit.suggestion1',
|
|
50
|
-
defaultMessage: 'Can you improve the writing on this page?',
|
|
51
|
-
description: 'The first suggestion displayed in the empty state of the chat history when editing a confluence page.'
|
|
52
|
-
},
|
|
53
|
-
confluencePageEditSuggestion2: {
|
|
54
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-edit.suggestion2',
|
|
55
|
-
defaultMessage: 'Write an executive summary for this page.',
|
|
56
|
-
description: 'The second suggestion displayed in the empty state of the chat history when editing a confluence page.'
|
|
57
|
-
},
|
|
58
|
-
confluencePageEditSuggestion3: {
|
|
59
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-edit.suggestion3',
|
|
60
|
-
defaultMessage: 'Give me links to some other relevant pages.',
|
|
61
|
-
description: 'The third suggestion displayed in the empty state of the chat history when editing a confluence page.'
|
|
62
|
-
},
|
|
63
|
-
confluencePageViewSuggestion1: {
|
|
64
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-view.suggestion1',
|
|
65
|
-
defaultMessage: 'Summarize what I’m looking at.',
|
|
66
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing a confluence page.'
|
|
67
|
-
},
|
|
68
|
-
confluencePageViewSuggestion2: {
|
|
69
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-view.suggestion2',
|
|
70
|
-
defaultMessage: 'Has anything on this page changed in the last week?',
|
|
71
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing a confluence page.'
|
|
72
|
-
},
|
|
73
|
-
confluencePageViewSuggestion3: {
|
|
74
|
-
id: 'ai-mate.chat-history.empty-state.confluence-page-view.suggestion3',
|
|
75
|
-
defaultMessage: 'Summarize the comments on this page.',
|
|
76
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing a confluence page.'
|
|
77
|
-
},
|
|
78
|
-
jiraHomeSuggestion1: {
|
|
79
|
-
id: 'ai-mate.chat-history.empty-state.jira-home.suggestion1',
|
|
80
|
-
defaultMessage: 'What’s changed in the past week?',
|
|
81
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing jira home.'
|
|
82
|
-
},
|
|
83
|
-
jiraHomeSuggestion2: {
|
|
84
|
-
id: 'ai-mate.chat-history.empty-state.jira-home.suggestion2',
|
|
85
|
-
defaultMessage: 'What issues are the highest priority?',
|
|
86
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing jira home.'
|
|
87
|
-
},
|
|
88
|
-
jiraHomeSuggestion3: {
|
|
89
|
-
id: 'ai-mate.chat-history.empty-state.jira-home.suggestion3',
|
|
90
|
-
defaultMessage: 'What issues have comments mentioning me?',
|
|
91
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing jira home.'
|
|
92
|
-
},
|
|
93
|
-
jiraIssueViewSuggestion1: {
|
|
94
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-view.suggestion1',
|
|
95
|
-
defaultMessage: 'Are there any similar issues to this one?',
|
|
96
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing a jira issue.'
|
|
97
|
-
},
|
|
98
|
-
jiraIssueViewSuggestion2: {
|
|
99
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-view.suggestion2',
|
|
100
|
-
defaultMessage: 'What issues aren’t connected to a parent issue?',
|
|
101
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing a jira issue.'
|
|
102
|
-
},
|
|
103
|
-
jiraIssueViewSuggestion3: {
|
|
104
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-view.suggestion3',
|
|
105
|
-
defaultMessage: 'List the issues that are currently “In Progress” and group them by assignee.',
|
|
106
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing a jira issue.'
|
|
107
|
-
},
|
|
108
|
-
jiraIssueListSuggestion1: {
|
|
109
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-list.suggestion1',
|
|
110
|
-
defaultMessage: 'What issues are unassigned?',
|
|
111
|
-
description: 'The first suggestion displayed in the empty state of the chat history when viewing a list of jira issues.'
|
|
112
|
-
},
|
|
113
|
-
jiraIssueListSuggestion2: {
|
|
114
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-list.suggestion2',
|
|
115
|
-
defaultMessage: 'What issues have been open the longest?',
|
|
116
|
-
description: 'The second suggestion displayed in the empty state of the chat history when viewing a list of jira issues.'
|
|
117
|
-
},
|
|
118
|
-
jiraIssueListSuggestion3: {
|
|
119
|
-
id: 'ai-mate.chat-history.empty-state.jira-issue-list.suggestion3',
|
|
120
|
-
defaultMessage: 'Who has the most tasks?',
|
|
121
|
-
description: 'The third suggestion displayed in the empty state of the chat history when viewing a list of jira issues.'
|
|
122
32
|
}
|
|
123
33
|
});
|