@atlaskit/rovo-agent-selector 0.0.0
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 +1 -0
- package/LICENSE.md +11 -0
- package/README.md +9 -0
- package/dist/cjs/index.js +13 -0
- package/dist/cjs/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelector.graphql.js +130 -0
- package/dist/cjs/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery.graphql.js +146 -0
- package/dist/cjs/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorDisabledQuery.graphql.js +188 -0
- package/dist/cjs/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorFeatureGateFalseQuery.graphql.js +188 -0
- package/dist/cjs/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorOnChangeQuery.graphql.js +188 -0
- package/dist/cjs/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorQuery.graphql.js +188 -0
- package/dist/cjs/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorWithoutFeatureFlagQuery.graphql.js +188 -0
- package/dist/cjs/ui/rovo-agent-selector/index.js +181 -0
- package/dist/cjs/ui/rovo-agent-selector/messages.js +25 -0
- package/dist/cjs/ui/rovo-agent-selector/types.js +5 -0
- package/dist/es2019/index.js +1 -0
- package/dist/es2019/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelector.graphql.js +123 -0
- package/dist/es2019/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery.graphql.js +140 -0
- package/dist/es2019/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorDisabledQuery.graphql.js +182 -0
- package/dist/es2019/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorFeatureGateFalseQuery.graphql.js +182 -0
- package/dist/es2019/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorOnChangeQuery.graphql.js +182 -0
- package/dist/es2019/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorQuery.graphql.js +182 -0
- package/dist/es2019/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorWithoutFeatureFlagQuery.graphql.js +182 -0
- package/dist/es2019/ui/rovo-agent-selector/index.js +152 -0
- package/dist/es2019/ui/rovo-agent-selector/messages.js +19 -0
- package/dist/es2019/ui/rovo-agent-selector/types.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelector.graphql.js +123 -0
- package/dist/esm/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery.graphql.js +140 -0
- package/dist/esm/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorDisabledQuery.graphql.js +182 -0
- package/dist/esm/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorFeatureGateFalseQuery.graphql.js +182 -0
- package/dist/esm/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorOnChangeQuery.graphql.js +182 -0
- package/dist/esm/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorQuery.graphql.js +182 -0
- package/dist/esm/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorWithoutFeatureFlagQuery.graphql.js +182 -0
- package/dist/esm/ui/rovo-agent-selector/index.js +171 -0
- package/dist/esm/ui/rovo-agent-selector/messages.js +19 -0
- package/dist/esm/ui/rovo-agent-selector/types.js +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelector.graphql.d.ts +32 -0
- package/dist/types/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery.graphql.d.ts +31 -0
- package/dist/types/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorDisabledQuery.graphql.d.ts +21 -0
- package/dist/types/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorFeatureGateFalseQuery.graphql.d.ts +21 -0
- package/dist/types/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorOnChangeQuery.graphql.d.ts +21 -0
- package/dist/types/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorQuery.graphql.d.ts +21 -0
- package/dist/types/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorWithoutFeatureFlagQuery.graphql.d.ts +21 -0
- package/dist/types/ui/rovo-agent-selector/index.d.ts +7 -0
- package/dist/types/ui/rovo-agent-selector/messages.d.ts +18 -0
- package/dist/types/ui/rovo-agent-selector/types.d.ts +41 -0
- package/dist/types-ts4.5/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelector.graphql.d.ts +32 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/__generated__/rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery.graphql.d.ts +31 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorDisabledQuery.graphql.d.ts +21 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorFeatureGateFalseQuery.graphql.d.ts +21 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorOnChangeQuery.graphql.d.ts +21 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorQuery.graphql.d.ts +21 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/__generated__/testRovoAgentSelectorWithoutFeatureFlagQuery.graphql.d.ts +21 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/index.d.ts +7 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/messages.d.ts +18 -0
- package/dist/types-ts4.5/ui/rovo-agent-selector/types.d.ts +41 -0
- package/package.json +101 -0
- package/stories/__generated__/storiesRovoAgentSelectorQuery.graphql.ts +172 -0
- package/stories/index.tsx +81 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @generated SignedSource<<0c7de09d2854262c64a44ef92c9f0807>>
|
|
3
|
+
* @relayHash 38db3c47c923c8c9440e6aa32ae99c35
|
|
4
|
+
* @lightSyntaxTransform
|
|
5
|
+
* @nogrep
|
|
6
|
+
* @codegen-command: yarn relay
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/* tslint:disable */
|
|
10
|
+
/* eslint-disable */
|
|
11
|
+
// @ts-nocheck
|
|
12
|
+
|
|
13
|
+
// @relayRequestID 6fa0dcb130ee0ade530bef810f71d7fe1d99115927d45d457ed5a5a27da9e6b9
|
|
14
|
+
|
|
15
|
+
const node = function () {
|
|
16
|
+
var v0 = [{
|
|
17
|
+
"defaultValue": null,
|
|
18
|
+
"kind": "LocalArgument",
|
|
19
|
+
"name": "cloudId"
|
|
20
|
+
}],
|
|
21
|
+
v1 = {
|
|
22
|
+
"kind": "Variable",
|
|
23
|
+
"name": "cloudId",
|
|
24
|
+
"variableName": "cloudId"
|
|
25
|
+
},
|
|
26
|
+
v2 = [v1 /*: any*/, {
|
|
27
|
+
"kind": "Literal",
|
|
28
|
+
"name": "first",
|
|
29
|
+
"value": 30
|
|
30
|
+
}, {
|
|
31
|
+
"kind": "Literal",
|
|
32
|
+
"name": "input",
|
|
33
|
+
"value": {
|
|
34
|
+
"onlyEditableAgents": true
|
|
35
|
+
}
|
|
36
|
+
}],
|
|
37
|
+
v3 = {
|
|
38
|
+
"enumValues": null,
|
|
39
|
+
"nullable": true,
|
|
40
|
+
"plural": false,
|
|
41
|
+
"type": "String"
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
"fragment": {
|
|
45
|
+
"argumentDefinitions": v0 /*: any*/,
|
|
46
|
+
"kind": "Fragment",
|
|
47
|
+
"name": "testRovoAgentSelectorWithoutFeatureFlagQuery",
|
|
48
|
+
"selections": [{
|
|
49
|
+
"args": [v1 /*: any*/],
|
|
50
|
+
"kind": "FragmentSpread",
|
|
51
|
+
"name": "rovoAgentSelector_AtlaskitRovoAgentSelector"
|
|
52
|
+
}],
|
|
53
|
+
"type": "Query"
|
|
54
|
+
},
|
|
55
|
+
"kind": "Request",
|
|
56
|
+
"operation": {
|
|
57
|
+
"argumentDefinitions": v0 /*: any*/,
|
|
58
|
+
"kind": "Operation",
|
|
59
|
+
"name": "testRovoAgentSelectorWithoutFeatureFlagQuery",
|
|
60
|
+
"selections": [{
|
|
61
|
+
"args": v2 /*: any*/,
|
|
62
|
+
"concreteType": "AgentStudioAgentsConnection",
|
|
63
|
+
"kind": "LinkedField",
|
|
64
|
+
"name": "agentStudio_getAgents",
|
|
65
|
+
"plural": false,
|
|
66
|
+
"selections": [{
|
|
67
|
+
"concreteType": "PageInfo",
|
|
68
|
+
"kind": "LinkedField",
|
|
69
|
+
"name": "pageInfo",
|
|
70
|
+
"plural": false,
|
|
71
|
+
"selections": [{
|
|
72
|
+
"kind": "ScalarField",
|
|
73
|
+
"name": "hasNextPage"
|
|
74
|
+
}, {
|
|
75
|
+
"kind": "ScalarField",
|
|
76
|
+
"name": "endCursor"
|
|
77
|
+
}]
|
|
78
|
+
}, {
|
|
79
|
+
"concreteType": "AgentStudioAgentEdge",
|
|
80
|
+
"kind": "LinkedField",
|
|
81
|
+
"name": "edges",
|
|
82
|
+
"plural": true,
|
|
83
|
+
"selections": [{
|
|
84
|
+
"concreteType": "AgentStudioAssistant",
|
|
85
|
+
"kind": "LinkedField",
|
|
86
|
+
"name": "node",
|
|
87
|
+
"plural": false,
|
|
88
|
+
"selections": [{
|
|
89
|
+
"kind": "ScalarField",
|
|
90
|
+
"name": "id"
|
|
91
|
+
}, {
|
|
92
|
+
"kind": "ScalarField",
|
|
93
|
+
"name": "name"
|
|
94
|
+
}, {
|
|
95
|
+
"kind": "ScalarField",
|
|
96
|
+
"name": "externalConfigReference"
|
|
97
|
+
}, {
|
|
98
|
+
"kind": "ScalarField",
|
|
99
|
+
"name": "identityAccountId"
|
|
100
|
+
}, {
|
|
101
|
+
"kind": "ScalarField",
|
|
102
|
+
"name": "creatorType"
|
|
103
|
+
}, {
|
|
104
|
+
"kind": "ScalarField",
|
|
105
|
+
"name": "__typename"
|
|
106
|
+
}]
|
|
107
|
+
}, {
|
|
108
|
+
"kind": "ScalarField",
|
|
109
|
+
"name": "cursor"
|
|
110
|
+
}]
|
|
111
|
+
}]
|
|
112
|
+
}, {
|
|
113
|
+
"args": v2 /*: any*/,
|
|
114
|
+
"filters": ["cloudId", "input"],
|
|
115
|
+
"handle": "connection",
|
|
116
|
+
"key": "RovoAgent_agentStudio_getAgents",
|
|
117
|
+
"kind": "LinkedHandle",
|
|
118
|
+
"name": "agentStudio_getAgents"
|
|
119
|
+
}]
|
|
120
|
+
},
|
|
121
|
+
"params": {
|
|
122
|
+
"id": "6fa0dcb130ee0ade530bef810f71d7fe1d99115927d45d457ed5a5a27da9e6b9",
|
|
123
|
+
"metadata": {
|
|
124
|
+
"relayTestingSelectionTypeInfo": {
|
|
125
|
+
"agentStudio_getAgents": {
|
|
126
|
+
"enumValues": null,
|
|
127
|
+
"nullable": true,
|
|
128
|
+
"plural": false,
|
|
129
|
+
"type": "AgentStudioAgentsConnection"
|
|
130
|
+
},
|
|
131
|
+
"agentStudio_getAgents.edges": {
|
|
132
|
+
"enumValues": null,
|
|
133
|
+
"nullable": false,
|
|
134
|
+
"plural": true,
|
|
135
|
+
"type": "AgentStudioAgentEdge"
|
|
136
|
+
},
|
|
137
|
+
"agentStudio_getAgents.edges.cursor": v3 /*: any*/,
|
|
138
|
+
"agentStudio_getAgents.edges.node": {
|
|
139
|
+
"enumValues": null,
|
|
140
|
+
"nullable": true,
|
|
141
|
+
"plural": false,
|
|
142
|
+
"type": "AgentStudioAssistant"
|
|
143
|
+
},
|
|
144
|
+
"agentStudio_getAgents.edges.node.__typename": {
|
|
145
|
+
"enumValues": null,
|
|
146
|
+
"nullable": false,
|
|
147
|
+
"plural": false,
|
|
148
|
+
"type": "String"
|
|
149
|
+
},
|
|
150
|
+
"agentStudio_getAgents.edges.node.creatorType": v3 /*: any*/,
|
|
151
|
+
"agentStudio_getAgents.edges.node.externalConfigReference": v3 /*: any*/,
|
|
152
|
+
"agentStudio_getAgents.edges.node.id": {
|
|
153
|
+
"enumValues": null,
|
|
154
|
+
"nullable": false,
|
|
155
|
+
"plural": false,
|
|
156
|
+
"type": "ID"
|
|
157
|
+
},
|
|
158
|
+
"agentStudio_getAgents.edges.node.identityAccountId": v3 /*: any*/,
|
|
159
|
+
"agentStudio_getAgents.edges.node.name": v3 /*: any*/,
|
|
160
|
+
"agentStudio_getAgents.pageInfo": {
|
|
161
|
+
"enumValues": null,
|
|
162
|
+
"nullable": false,
|
|
163
|
+
"plural": false,
|
|
164
|
+
"type": "PageInfo"
|
|
165
|
+
},
|
|
166
|
+
"agentStudio_getAgents.pageInfo.endCursor": v3 /*: any*/,
|
|
167
|
+
"agentStudio_getAgents.pageInfo.hasNextPage": {
|
|
168
|
+
"enumValues": null,
|
|
169
|
+
"nullable": false,
|
|
170
|
+
"plural": false,
|
|
171
|
+
"type": "Boolean"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"name": "testRovoAgentSelectorWithoutFeatureFlagQuery",
|
|
176
|
+
"operationKind": "query",
|
|
177
|
+
"text": null
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
}();
|
|
181
|
+
node.hash = "cfab1e98961b1a1411d8b090b5d826ac";
|
|
182
|
+
export default node;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/* index.tsx generated by @compiled/babel-plugin v0.38.1 */
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { ax, ix } from "@compiled/react/runtime";
|
|
4
|
+
import _rovoAgentSelector_AtlaskitRovoAgentSelector from "./__generated__/rovoAgentSelector_AtlaskitRovoAgentSelector.graphql";
|
|
5
|
+
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
6
|
+
import { useIntl } from 'react-intl-next';
|
|
7
|
+
import { graphql, usePaginationFragment } from 'react-relay';
|
|
8
|
+
import { Label } from '@atlaskit/form';
|
|
9
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
10
|
+
import { Box, Inline, Stack, Text } from '@atlaskit/primitives/compiled';
|
|
11
|
+
import { AgentAvatar } from '@atlaskit/rovo-agent-components';
|
|
12
|
+
import Select from '@atlaskit/select';
|
|
13
|
+
import messages from './messages';
|
|
14
|
+
export const AGENT_SELECT_ID = 'rovo-agent-select';
|
|
15
|
+
const DEBOUNCE_DELAY = 500;
|
|
16
|
+
const PAGE_SIZE = 30;
|
|
17
|
+
|
|
18
|
+
// Simple debounce hook
|
|
19
|
+
function useDebouncedCallback(callback, delay) {
|
|
20
|
+
const timeoutRef = useRef(null);
|
|
21
|
+
|
|
22
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
23
|
+
return useCallback((...args) => {
|
|
24
|
+
if (timeoutRef.current) {
|
|
25
|
+
clearTimeout(timeoutRef.current);
|
|
26
|
+
}
|
|
27
|
+
timeoutRef.current = setTimeout(() => {
|
|
28
|
+
callback(...args);
|
|
29
|
+
}, delay);
|
|
30
|
+
}, [callback, delay]);
|
|
31
|
+
}
|
|
32
|
+
export default function RovoAgentSelector({
|
|
33
|
+
testId,
|
|
34
|
+
isFeatureEnabled: isFeatureEnabledOverride,
|
|
35
|
+
fragmentReference,
|
|
36
|
+
cloudId,
|
|
37
|
+
selectedAgent,
|
|
38
|
+
onChange,
|
|
39
|
+
isLoading: isLoadingOverride
|
|
40
|
+
}) {
|
|
41
|
+
var _data$agentStudio_get4;
|
|
42
|
+
const {
|
|
43
|
+
formatMessage
|
|
44
|
+
} = useIntl();
|
|
45
|
+
const isFeatureEnabled = isFeatureEnabledOverride !== null && isFeatureEnabledOverride !== void 0 ? isFeatureEnabledOverride : fg('jsm_help_center_one-click_rovo_agent');
|
|
46
|
+
const [, setSearchInput] = useState(null);
|
|
47
|
+
const [isRefetching, setIsRefetching] = useState(false);
|
|
48
|
+
const {
|
|
49
|
+
data,
|
|
50
|
+
loadNext,
|
|
51
|
+
hasNext,
|
|
52
|
+
isLoadingNext,
|
|
53
|
+
refetch
|
|
54
|
+
} = usePaginationFragment(_rovoAgentSelector_AtlaskitRovoAgentSelector, fragmentReference);
|
|
55
|
+
const agentOptions = useMemo(() => {
|
|
56
|
+
var _data$agentStudio_get, _data$agentStudio_get2, _data$agentStudio_get3;
|
|
57
|
+
return (_data$agentStudio_get = data === null || data === void 0 ? void 0 : (_data$agentStudio_get2 = data.agentStudio_getAgents) === null || _data$agentStudio_get2 === void 0 ? void 0 : (_data$agentStudio_get3 = _data$agentStudio_get2.edges) === null || _data$agentStudio_get3 === void 0 ? void 0 : _data$agentStudio_get3.map(edge => edge === null || edge === void 0 ? void 0 : edge.node).filter(node => node != null).map(agent => {
|
|
58
|
+
var _agent$name, _agent$id, _agent$externalConfig, _agent$identityAccoun;
|
|
59
|
+
return {
|
|
60
|
+
label: (_agent$name = agent === null || agent === void 0 ? void 0 : agent.name) !== null && _agent$name !== void 0 ? _agent$name : '',
|
|
61
|
+
value: (_agent$id = agent === null || agent === void 0 ? void 0 : agent.id) !== null && _agent$id !== void 0 ? _agent$id : '',
|
|
62
|
+
externalConfigReference: (_agent$externalConfig = agent === null || agent === void 0 ? void 0 : agent.externalConfigReference) !== null && _agent$externalConfig !== void 0 ? _agent$externalConfig : undefined,
|
|
63
|
+
identityAccountId: (_agent$identityAccoun = agent === null || agent === void 0 ? void 0 : agent.identityAccountId) !== null && _agent$identityAccoun !== void 0 ? _agent$identityAccoun : undefined,
|
|
64
|
+
isForgeAgent: (agent === null || agent === void 0 ? void 0 : agent.creatorType) === 'FORGE'
|
|
65
|
+
};
|
|
66
|
+
}).filter(option => option.label)) !== null && _data$agentStudio_get !== void 0 ? _data$agentStudio_get : [];
|
|
67
|
+
}, [data === null || data === void 0 ? void 0 : (_data$agentStudio_get4 = data.agentStudio_getAgents) === null || _data$agentStudio_get4 === void 0 ? void 0 : _data$agentStudio_get4.edges]);
|
|
68
|
+
|
|
69
|
+
// Non-suspending refetch to prevent select input suspending during search
|
|
70
|
+
// Since useSuspenselessRefetch is Jira-specific, we use refetch with fetchPolicy to avoid suspending
|
|
71
|
+
const suspenselessRefetch = useCallback(variables => {
|
|
72
|
+
setIsRefetching(true);
|
|
73
|
+
refetch(variables, {
|
|
74
|
+
fetchPolicy: 'store-or-network'
|
|
75
|
+
});
|
|
76
|
+
// Reset loading state after a delay to handle async nature
|
|
77
|
+
// Note: In a real implementation with useSuspenselessRefetch, this would be handled automatically
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
setIsRefetching(false);
|
|
80
|
+
}, 100);
|
|
81
|
+
}, [refetch]);
|
|
82
|
+
const debouncedRefetch = useDebouncedCallback(useCallback(searchTerm => {
|
|
83
|
+
const input = {
|
|
84
|
+
onlyEditableAgents: true,
|
|
85
|
+
...(searchTerm.trim() ? {
|
|
86
|
+
name: searchTerm.trim()
|
|
87
|
+
} : {}) // Exclude searchTerm if empty as empty string causes request to fail
|
|
88
|
+
};
|
|
89
|
+
suspenselessRefetch({
|
|
90
|
+
cloudId,
|
|
91
|
+
input
|
|
92
|
+
});
|
|
93
|
+
}, [cloudId, suspenselessRefetch]), DEBOUNCE_DELAY);
|
|
94
|
+
const handleInputChange = useCallback(inputValue => {
|
|
95
|
+
setSearchInput(inputValue);
|
|
96
|
+
debouncedRefetch(inputValue);
|
|
97
|
+
}, [setSearchInput, debouncedRefetch]);
|
|
98
|
+
const handleMenuScrollToBottom = useCallback(() => {
|
|
99
|
+
if (hasNext && !isLoadingNext && !isRefetching) {
|
|
100
|
+
loadNext(PAGE_SIZE);
|
|
101
|
+
}
|
|
102
|
+
}, [hasNext, isLoadingNext, isRefetching, loadNext]);
|
|
103
|
+
const handleUpdateAgent = useCallback(option => {
|
|
104
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(option);
|
|
105
|
+
}, [onChange]);
|
|
106
|
+
const isLoading = isLoadingOverride !== null && isLoadingOverride !== void 0 ? isLoadingOverride : isRefetching || isLoadingNext;
|
|
107
|
+
if (!isFeatureEnabled) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
111
|
+
testId: testId
|
|
112
|
+
}, /*#__PURE__*/React.createElement(Stack, {
|
|
113
|
+
space: "space.050"
|
|
114
|
+
}, /*#__PURE__*/React.createElement(Label, {
|
|
115
|
+
htmlFor: AGENT_SELECT_ID
|
|
116
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
117
|
+
weight: "semibold"
|
|
118
|
+
}, formatMessage(messages.selectorLabel))), /*#__PURE__*/React.createElement(Select, {
|
|
119
|
+
inputId: AGENT_SELECT_ID,
|
|
120
|
+
placeholder: formatMessage(messages.rovoAgentPlaceholder),
|
|
121
|
+
options: agentOptions,
|
|
122
|
+
value: selectedAgent,
|
|
123
|
+
noOptionsMessage: () => formatMessage(messages.noOptionsMessage),
|
|
124
|
+
onChange: handleUpdateAgent,
|
|
125
|
+
onInputChange: handleInputChange,
|
|
126
|
+
isSearchable: true,
|
|
127
|
+
filterOption: () => true // Disabled filtering in component since options are cached and filtered in relay store
|
|
128
|
+
,
|
|
129
|
+
isLoading: isLoading,
|
|
130
|
+
onMenuScrollToBottom: handleMenuScrollToBottom,
|
|
131
|
+
formatOptionLabel: ({
|
|
132
|
+
label,
|
|
133
|
+
value,
|
|
134
|
+
externalConfigReference,
|
|
135
|
+
identityAccountId,
|
|
136
|
+
isForgeAgent
|
|
137
|
+
}) => /*#__PURE__*/React.createElement(Inline, {
|
|
138
|
+
alignBlock: "center",
|
|
139
|
+
space: "space.075"
|
|
140
|
+
}, /*#__PURE__*/React.createElement(AgentAvatar, {
|
|
141
|
+
agentId: value,
|
|
142
|
+
agentNamedId: externalConfigReference,
|
|
143
|
+
agentIdentityAccountId: identityAccountId,
|
|
144
|
+
size: "small",
|
|
145
|
+
showBorder: false,
|
|
146
|
+
isForgeAgent: isForgeAgent
|
|
147
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
148
|
+
size: "small",
|
|
149
|
+
color: "color.text.subtle"
|
|
150
|
+
}, label))
|
|
151
|
+
})));
|
|
152
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
const messages = defineMessages({
|
|
3
|
+
selectorLabel: {
|
|
4
|
+
id: 'rovo-agent-selector.label',
|
|
5
|
+
defaultMessage: 'Select agent',
|
|
6
|
+
description: 'Label for the agent selector dropdown'
|
|
7
|
+
},
|
|
8
|
+
rovoAgentPlaceholder: {
|
|
9
|
+
id: 'rovo-agent-selector.lplaceholder',
|
|
10
|
+
defaultMessage: 'Select a Rovo agent',
|
|
11
|
+
description: 'Placeholder for the Rovo Agent select on the customer portal settings page'
|
|
12
|
+
},
|
|
13
|
+
noOptionsMessage: {
|
|
14
|
+
id: 'rovo-agent-selector.lno-options-message',
|
|
15
|
+
defaultMessage: 'No agents found',
|
|
16
|
+
description: 'Message displayed when no options are available'
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
export default messages;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './ui/rovo-agent-selector';
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @generated SignedSource<<d5c96fb06da7a96bc5df3f9ac4925786>>
|
|
3
|
+
* @lightSyntaxTransform
|
|
4
|
+
* @nogrep
|
|
5
|
+
* @codegen-command: yarn relay
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/* tslint:disable */
|
|
9
|
+
/* eslint-disable */
|
|
10
|
+
// @ts-nocheck
|
|
11
|
+
|
|
12
|
+
import rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery_graphql from './rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery.graphql';
|
|
13
|
+
var node = function () {
|
|
14
|
+
var v0 = ["agentStudio_getAgents"];
|
|
15
|
+
return {
|
|
16
|
+
"argumentDefinitions": [{
|
|
17
|
+
"defaultValue": null,
|
|
18
|
+
"kind": "LocalArgument",
|
|
19
|
+
"name": "after"
|
|
20
|
+
}, {
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"kind": "LocalArgument",
|
|
23
|
+
"name": "cloudId"
|
|
24
|
+
}, {
|
|
25
|
+
"defaultValue": 30,
|
|
26
|
+
"kind": "LocalArgument",
|
|
27
|
+
"name": "first"
|
|
28
|
+
}, {
|
|
29
|
+
"defaultValue": {
|
|
30
|
+
"onlyEditableAgents": true
|
|
31
|
+
},
|
|
32
|
+
"kind": "LocalArgument",
|
|
33
|
+
"name": "input"
|
|
34
|
+
}],
|
|
35
|
+
"kind": "Fragment",
|
|
36
|
+
"metadata": {
|
|
37
|
+
"connection": [{
|
|
38
|
+
"count": "first",
|
|
39
|
+
"cursor": "after",
|
|
40
|
+
"direction": "forward",
|
|
41
|
+
"path": v0 /*: any*/
|
|
42
|
+
}],
|
|
43
|
+
"refetch": {
|
|
44
|
+
"connection": {
|
|
45
|
+
"forward": {
|
|
46
|
+
"count": "first",
|
|
47
|
+
"cursor": "after"
|
|
48
|
+
},
|
|
49
|
+
"backward": null,
|
|
50
|
+
"path": v0 /*: any*/
|
|
51
|
+
},
|
|
52
|
+
"fragmentPathInResult": [],
|
|
53
|
+
"operation": rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery_graphql
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"name": "rovoAgentSelector_AtlaskitRovoAgentSelector",
|
|
57
|
+
"selections": [{
|
|
58
|
+
"alias": "agentStudio_getAgents",
|
|
59
|
+
"args": [{
|
|
60
|
+
"kind": "Variable",
|
|
61
|
+
"name": "cloudId",
|
|
62
|
+
"variableName": "cloudId"
|
|
63
|
+
}, {
|
|
64
|
+
"kind": "Variable",
|
|
65
|
+
"name": "input",
|
|
66
|
+
"variableName": "input"
|
|
67
|
+
}],
|
|
68
|
+
"concreteType": "AgentStudioAgentsConnection",
|
|
69
|
+
"kind": "LinkedField",
|
|
70
|
+
"name": "__RovoAgent_agentStudio_getAgents_connection",
|
|
71
|
+
"plural": false,
|
|
72
|
+
"selections": [{
|
|
73
|
+
"concreteType": "PageInfo",
|
|
74
|
+
"kind": "LinkedField",
|
|
75
|
+
"name": "pageInfo",
|
|
76
|
+
"plural": false,
|
|
77
|
+
"selections": [{
|
|
78
|
+
"kind": "ScalarField",
|
|
79
|
+
"name": "hasNextPage"
|
|
80
|
+
}, {
|
|
81
|
+
"kind": "ScalarField",
|
|
82
|
+
"name": "endCursor"
|
|
83
|
+
}]
|
|
84
|
+
}, {
|
|
85
|
+
"concreteType": "AgentStudioAgentEdge",
|
|
86
|
+
"kind": "LinkedField",
|
|
87
|
+
"name": "edges",
|
|
88
|
+
"plural": true,
|
|
89
|
+
"selections": [{
|
|
90
|
+
"concreteType": "AgentStudioAssistant",
|
|
91
|
+
"kind": "LinkedField",
|
|
92
|
+
"name": "node",
|
|
93
|
+
"plural": false,
|
|
94
|
+
"selections": [{
|
|
95
|
+
"kind": "ScalarField",
|
|
96
|
+
"name": "id"
|
|
97
|
+
}, {
|
|
98
|
+
"kind": "ScalarField",
|
|
99
|
+
"name": "name"
|
|
100
|
+
}, {
|
|
101
|
+
"kind": "ScalarField",
|
|
102
|
+
"name": "externalConfigReference"
|
|
103
|
+
}, {
|
|
104
|
+
"kind": "ScalarField",
|
|
105
|
+
"name": "identityAccountId"
|
|
106
|
+
}, {
|
|
107
|
+
"kind": "ScalarField",
|
|
108
|
+
"name": "creatorType"
|
|
109
|
+
}, {
|
|
110
|
+
"kind": "ScalarField",
|
|
111
|
+
"name": "__typename"
|
|
112
|
+
}]
|
|
113
|
+
}, {
|
|
114
|
+
"kind": "ScalarField",
|
|
115
|
+
"name": "cursor"
|
|
116
|
+
}]
|
|
117
|
+
}]
|
|
118
|
+
}],
|
|
119
|
+
"type": "Query"
|
|
120
|
+
};
|
|
121
|
+
}();
|
|
122
|
+
node.hash = "d7bdd1e2dc939a818cdc008295748109";
|
|
123
|
+
export default node;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @generated SignedSource<<a5435352f3d8a8d5c79e9c07b1c4fe33>>
|
|
3
|
+
* @relayHash 3b0f1687d8cc89a312aa0e46a133624b
|
|
4
|
+
* @lightSyntaxTransform
|
|
5
|
+
* @nogrep
|
|
6
|
+
* @codegen-command: yarn relay
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/* tslint:disable */
|
|
10
|
+
/* eslint-disable */
|
|
11
|
+
// @ts-nocheck
|
|
12
|
+
|
|
13
|
+
// @relayRequestID 3cc43bc32ca9f61c9a9b13d844ead02a116d206f1960cd4422b0a17239e78299
|
|
14
|
+
|
|
15
|
+
var node = function () {
|
|
16
|
+
var v0 = [{
|
|
17
|
+
"defaultValue": null,
|
|
18
|
+
"kind": "LocalArgument",
|
|
19
|
+
"name": "after"
|
|
20
|
+
}, {
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"kind": "LocalArgument",
|
|
23
|
+
"name": "cloudId"
|
|
24
|
+
}, {
|
|
25
|
+
"defaultValue": 30,
|
|
26
|
+
"kind": "LocalArgument",
|
|
27
|
+
"name": "first"
|
|
28
|
+
}, {
|
|
29
|
+
"defaultValue": {
|
|
30
|
+
"onlyEditableAgents": true
|
|
31
|
+
},
|
|
32
|
+
"kind": "LocalArgument",
|
|
33
|
+
"name": "input"
|
|
34
|
+
}],
|
|
35
|
+
v1 = [{
|
|
36
|
+
"kind": "Variable",
|
|
37
|
+
"name": "after",
|
|
38
|
+
"variableName": "after"
|
|
39
|
+
}, {
|
|
40
|
+
"kind": "Variable",
|
|
41
|
+
"name": "cloudId",
|
|
42
|
+
"variableName": "cloudId"
|
|
43
|
+
}, {
|
|
44
|
+
"kind": "Variable",
|
|
45
|
+
"name": "first",
|
|
46
|
+
"variableName": "first"
|
|
47
|
+
}, {
|
|
48
|
+
"kind": "Variable",
|
|
49
|
+
"name": "input",
|
|
50
|
+
"variableName": "input"
|
|
51
|
+
}];
|
|
52
|
+
return {
|
|
53
|
+
"fragment": {
|
|
54
|
+
"argumentDefinitions": v0 /*: any*/,
|
|
55
|
+
"kind": "Fragment",
|
|
56
|
+
"name": "rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery",
|
|
57
|
+
"selections": [{
|
|
58
|
+
"args": v1 /*: any*/,
|
|
59
|
+
"kind": "FragmentSpread",
|
|
60
|
+
"name": "rovoAgentSelector_AtlaskitRovoAgentSelector"
|
|
61
|
+
}],
|
|
62
|
+
"type": "Query"
|
|
63
|
+
},
|
|
64
|
+
"kind": "Request",
|
|
65
|
+
"operation": {
|
|
66
|
+
"argumentDefinitions": v0 /*: any*/,
|
|
67
|
+
"kind": "Operation",
|
|
68
|
+
"name": "rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery",
|
|
69
|
+
"selections": [{
|
|
70
|
+
"args": v1 /*: any*/,
|
|
71
|
+
"concreteType": "AgentStudioAgentsConnection",
|
|
72
|
+
"kind": "LinkedField",
|
|
73
|
+
"name": "agentStudio_getAgents",
|
|
74
|
+
"plural": false,
|
|
75
|
+
"selections": [{
|
|
76
|
+
"concreteType": "PageInfo",
|
|
77
|
+
"kind": "LinkedField",
|
|
78
|
+
"name": "pageInfo",
|
|
79
|
+
"plural": false,
|
|
80
|
+
"selections": [{
|
|
81
|
+
"kind": "ScalarField",
|
|
82
|
+
"name": "hasNextPage"
|
|
83
|
+
}, {
|
|
84
|
+
"kind": "ScalarField",
|
|
85
|
+
"name": "endCursor"
|
|
86
|
+
}]
|
|
87
|
+
}, {
|
|
88
|
+
"concreteType": "AgentStudioAgentEdge",
|
|
89
|
+
"kind": "LinkedField",
|
|
90
|
+
"name": "edges",
|
|
91
|
+
"plural": true,
|
|
92
|
+
"selections": [{
|
|
93
|
+
"concreteType": "AgentStudioAssistant",
|
|
94
|
+
"kind": "LinkedField",
|
|
95
|
+
"name": "node",
|
|
96
|
+
"plural": false,
|
|
97
|
+
"selections": [{
|
|
98
|
+
"kind": "ScalarField",
|
|
99
|
+
"name": "id"
|
|
100
|
+
}, {
|
|
101
|
+
"kind": "ScalarField",
|
|
102
|
+
"name": "name"
|
|
103
|
+
}, {
|
|
104
|
+
"kind": "ScalarField",
|
|
105
|
+
"name": "externalConfigReference"
|
|
106
|
+
}, {
|
|
107
|
+
"kind": "ScalarField",
|
|
108
|
+
"name": "identityAccountId"
|
|
109
|
+
}, {
|
|
110
|
+
"kind": "ScalarField",
|
|
111
|
+
"name": "creatorType"
|
|
112
|
+
}, {
|
|
113
|
+
"kind": "ScalarField",
|
|
114
|
+
"name": "__typename"
|
|
115
|
+
}]
|
|
116
|
+
}, {
|
|
117
|
+
"kind": "ScalarField",
|
|
118
|
+
"name": "cursor"
|
|
119
|
+
}]
|
|
120
|
+
}]
|
|
121
|
+
}, {
|
|
122
|
+
"args": v1 /*: any*/,
|
|
123
|
+
"filters": ["cloudId", "input"],
|
|
124
|
+
"handle": "connection",
|
|
125
|
+
"key": "RovoAgent_agentStudio_getAgents",
|
|
126
|
+
"kind": "LinkedHandle",
|
|
127
|
+
"name": "agentStudio_getAgents"
|
|
128
|
+
}]
|
|
129
|
+
},
|
|
130
|
+
"params": {
|
|
131
|
+
"id": "3cc43bc32ca9f61c9a9b13d844ead02a116d206f1960cd4422b0a17239e78299",
|
|
132
|
+
"metadata": {},
|
|
133
|
+
"name": "rovoAgentSelector_AtlaskitRovoAgentSelectorPaginationQuery",
|
|
134
|
+
"operationKind": "query",
|
|
135
|
+
"text": null
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
}();
|
|
139
|
+
node.hash = "d7bdd1e2dc939a818cdc008295748109";
|
|
140
|
+
export default node;
|