@bikdotai/bik-component-library 0.0.823-beta.2 → 0.0.823
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/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +97 -66
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js +1 -1
- package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionField.js +1 -1
- package/dist/cjs/components/agent-builder/components/MentionField.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/SelectableListSection.js +4 -4
- package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/StepRail.js +1 -1
- package/dist/cjs/components/agent-builder/components/StepRail.js.map +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step1About.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step1About.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
- package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
- package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
- package/dist/cjs/components/agent-listing/AgentListing.styled.js +32 -28
- package/dist/cjs/components/agent-listing/AgentListing.styled.js.map +1 -1
- package/dist/cjs/components/agent-listing/AgentListingHeader.js +1 -1
- package/dist/cjs/components/agent-listing/AgentListingHeader.js.map +1 -1
- package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
- package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
- package/dist/cjs/components/template-preview/models/TemplateMeta.js +1 -1
- package/dist/cjs/components/template-preview/models/TemplateMeta.js.map +1 -1
- package/dist/esm/components/agent-builder/AgentBuilder.js +82 -83
- package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
- package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +13 -5
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js +141 -102
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
- package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.d.ts +0 -1
- package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js +33 -46
- package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +135 -119
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionField.js +44 -45
- package/dist/esm/components/agent-builder/components/MentionField.js.map +1 -1
- package/dist/esm/components/agent-builder/components/SelectableListSection.js +91 -94
- package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
- package/dist/esm/components/agent-builder/components/StepRail.js +28 -20
- package/dist/esm/components/agent-builder/components/StepRail.js.map +1 -1
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +7 -0
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +108 -98
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step1About.js +38 -35
- package/dist/esm/components/agent-builder/steps/Step1About.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +118 -122
- package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +112 -110
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js +72 -70
- package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentListing.js +45 -43
- package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentListing.model.d.ts +7 -0
- package/dist/esm/components/agent-listing/AgentListing.styled.js +28 -24
- package/dist/esm/components/agent-listing/AgentListing.styled.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentListingHeader.d.ts +2 -0
- package/dist/esm/components/agent-listing/AgentListingHeader.js +14 -12
- package/dist/esm/components/agent-listing/AgentListingHeader.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentTableRow.js +102 -57
- package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
- package/dist/esm/components/template-preview/models/TemplateMeta.d.ts +1 -2
- package/dist/esm/components/template-preview/models/TemplateMeta.js +11 -11
- package/dist/esm/components/template-preview/models/TemplateMeta.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,128 +1,129 @@
|
|
|
1
1
|
import { jsxs as c, jsx as a } from "react/jsx-runtime";
|
|
2
|
-
import { useState as
|
|
3
|
-
import { TitleSmall as
|
|
4
|
-
import { COLORS as
|
|
5
|
-
import { Step3Grid as
|
|
6
|
-
import { CreateSubAgentPanel as
|
|
2
|
+
import { useState as R, useRef as ee, useCallback as I, useEffect as te } from "react";
|
|
3
|
+
import { TitleSmall as L } from "../../TypographyStyle.js";
|
|
4
|
+
import { COLORS as M } from "../../../constants/Theme.js";
|
|
5
|
+
import { Step3Root as oe, Step3Grid as ne, SectionBodyWrap as P, Step3Divider as ae, SideSection as le } from "../AgentBuilder.styled.js";
|
|
6
|
+
import { CreateSubAgentPanel as ie } from "../components/CreateSubAgentPanel.js";
|
|
7
7
|
import { MentionField as k } from "../components/MentionField.js";
|
|
8
|
-
import { SelectableListSection as
|
|
9
|
-
import { StepSectionHeader as
|
|
10
|
-
import { STEP_DEFINITIONS as
|
|
11
|
-
import { useAgentBuilderContext as
|
|
12
|
-
import { toolSourceLabel as
|
|
13
|
-
import { SOURCE_ICONS as
|
|
14
|
-
import { Dropdown as
|
|
15
|
-
import { unwrapDropdownValue as
|
|
16
|
-
const
|
|
17
|
-
label:
|
|
18
|
-
value:
|
|
19
|
-
leadingIcon:
|
|
20
|
-
}),
|
|
8
|
+
import { SelectableListSection as _ } from "../components/SelectableListSection.js";
|
|
9
|
+
import { StepSectionHeader as se } from "../components/StepSectionHeader.js";
|
|
10
|
+
import { STEP_DEFINITIONS as re } from "../constants/steps.js";
|
|
11
|
+
import { useAgentBuilderContext as ce } from "../context/AgentBuilderContext.js";
|
|
12
|
+
import { toolSourceLabel as de, buildAgentMentionItems as H, appTypeLabel as N } from "../utils/mentionSerialization.js";
|
|
13
|
+
import { SOURCE_ICONS as G, renderSourceIcon as ue } from "../utils/sourceIcons.js";
|
|
14
|
+
import { Dropdown as pe } from "../../dropdown/Dropdown.js";
|
|
15
|
+
import { unwrapDropdownValue as me } from "../../dropdown/utils.js";
|
|
16
|
+
const ge = (o) => ue(G[o]) ?? void 0, D = (o) => ({
|
|
17
|
+
label: o.display_name,
|
|
18
|
+
value: o.tool_id,
|
|
19
|
+
leadingIcon: ge(o.source ?? "manifest")
|
|
20
|
+
}), F = re[2], Le = () => {
|
|
21
21
|
const {
|
|
22
|
-
value:
|
|
23
|
-
patch:
|
|
24
|
-
updateField:
|
|
22
|
+
value: o,
|
|
23
|
+
patch: A,
|
|
24
|
+
updateField: B,
|
|
25
|
+
addReference: w,
|
|
25
26
|
removeReference: C,
|
|
26
27
|
availableTools: r,
|
|
27
|
-
availableSubAgents:
|
|
28
|
-
availableModels:
|
|
28
|
+
availableSubAgents: K,
|
|
29
|
+
availableModels: b,
|
|
29
30
|
applicationType: T,
|
|
30
|
-
charLimits:
|
|
31
|
+
charLimits: f,
|
|
31
32
|
insertMention: d,
|
|
32
|
-
onCreateSubAgent:
|
|
33
|
-
onFetchSubAgent:
|
|
34
|
-
onUpdateSubAgent:
|
|
35
|
-
onImproveSubAgent:
|
|
36
|
-
registerSubAgentCreator:
|
|
37
|
-
} =
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
33
|
+
onCreateSubAgent: i,
|
|
34
|
+
onFetchSubAgent: u,
|
|
35
|
+
onUpdateSubAgent: h,
|
|
36
|
+
onImproveSubAgent: j,
|
|
37
|
+
registerSubAgentCreator: S
|
|
38
|
+
} = ce(), [l, p] = R(null), m = ee(0), [U, O] = R([]), g = /* @__PURE__ */ new Map();
|
|
39
|
+
K.forEach((e) => g.set(e.id, e)), U.forEach((e) => g.set(e.id, e));
|
|
40
|
+
const x = Array.from(g.values()), v = I(() => {
|
|
41
|
+
m.current += 1, p({ key: m.current, title: "Create sub-agent" });
|
|
41
42
|
}, []);
|
|
42
|
-
|
|
43
|
-
if (
|
|
44
|
-
return v
|
|
45
|
-
}, [
|
|
46
|
-
const
|
|
43
|
+
te(() => {
|
|
44
|
+
if (i)
|
|
45
|
+
return S(v), () => S(null);
|
|
46
|
+
}, [S, v, i]);
|
|
47
|
+
const W = I(
|
|
47
48
|
async (e) => {
|
|
48
|
-
if (!
|
|
49
|
+
if (!u)
|
|
49
50
|
return;
|
|
50
|
-
const t = await
|
|
51
|
-
|
|
52
|
-
key:
|
|
51
|
+
const t = await u(e);
|
|
52
|
+
m.current += 1, p({
|
|
53
|
+
key: m.current,
|
|
53
54
|
title: "Edit sub-agent",
|
|
54
55
|
editingId: e,
|
|
55
56
|
initial: t
|
|
56
57
|
});
|
|
57
58
|
},
|
|
58
|
-
[
|
|
59
|
-
),
|
|
59
|
+
[u]
|
|
60
|
+
), $ = I(
|
|
60
61
|
async (e) => {
|
|
61
62
|
if (l?.editingId) {
|
|
62
|
-
if (
|
|
63
|
-
const t = await
|
|
64
|
-
|
|
65
|
-
...
|
|
63
|
+
if (h) {
|
|
64
|
+
const t = await h(l.editingId, e);
|
|
65
|
+
O((n) => [
|
|
66
|
+
...n.filter((s) => s.id !== t.id),
|
|
66
67
|
t
|
|
67
68
|
]);
|
|
68
69
|
}
|
|
69
|
-
} else if (
|
|
70
|
-
const t = await
|
|
71
|
-
|
|
70
|
+
} else if (i) {
|
|
71
|
+
const t = await i(e);
|
|
72
|
+
O((n) => [...n, t]), A({ subagents: [...o.subagents, t.id] }), d("subagent", t.id, `sub-agent: ${t.name}`);
|
|
72
73
|
}
|
|
73
|
-
|
|
74
|
+
p(null);
|
|
74
75
|
},
|
|
75
76
|
[
|
|
76
77
|
l,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
h,
|
|
79
|
+
i,
|
|
80
|
+
A,
|
|
81
|
+
o.subagents,
|
|
81
82
|
d
|
|
82
83
|
]
|
|
83
|
-
), z =
|
|
84
|
-
const t = r.find((
|
|
84
|
+
), z = o.tools.map((e) => {
|
|
85
|
+
const t = r.find((n) => n.tool_id === e);
|
|
85
86
|
return t ? {
|
|
86
87
|
id: e,
|
|
87
88
|
label: t.display_name,
|
|
88
|
-
icon:
|
|
89
|
+
icon: G[t.source ?? "manifest"]
|
|
89
90
|
} : null;
|
|
90
|
-
}).filter((e) => e !== null), V = r.map(
|
|
91
|
+
}).filter((e) => e !== null), V = r.map(D), q = (() => {
|
|
91
92
|
const e = [], t = /* @__PURE__ */ new Map();
|
|
92
|
-
return r.forEach((
|
|
93
|
-
const
|
|
94
|
-
t.has(
|
|
95
|
-
}), e.map((
|
|
96
|
-
source:
|
|
97
|
-
label:
|
|
98
|
-
options: t.get(
|
|
93
|
+
return r.forEach((n) => {
|
|
94
|
+
const s = n.source ?? "manifest";
|
|
95
|
+
t.has(s) || (t.set(s, []), e.push(s)), t.get(s)?.push(D(n));
|
|
96
|
+
}), e.map((n) => ({
|
|
97
|
+
source: n,
|
|
98
|
+
label: de(n),
|
|
99
|
+
options: t.get(n) ?? []
|
|
99
100
|
}));
|
|
100
|
-
})(),
|
|
101
|
-
const t =
|
|
101
|
+
})(), J = o.subagents.map((e) => {
|
|
102
|
+
const t = g.get(e);
|
|
102
103
|
return t ? { id: e, label: t.name } : null;
|
|
103
|
-
}).filter((e) => e !== null),
|
|
104
|
+
}).filter((e) => e !== null), Q = x.map((e) => ({
|
|
104
105
|
label: e.name,
|
|
105
106
|
value: e.id
|
|
106
|
-
})),
|
|
107
|
+
})), E = N(T), X = H(r, [], E), Y = H(
|
|
107
108
|
[],
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
),
|
|
109
|
+
x,
|
|
110
|
+
E
|
|
111
|
+
), Z = b.map((e) => ({
|
|
111
112
|
label: e.label,
|
|
112
113
|
value: e.value,
|
|
113
|
-
selected: e.value ===
|
|
114
|
-
})),
|
|
115
|
-
return /* @__PURE__ */ c(
|
|
116
|
-
/* @__PURE__ */ a(
|
|
117
|
-
/* @__PURE__ */ c(
|
|
118
|
-
/* @__PURE__ */ c(
|
|
114
|
+
selected: e.value === o.model
|
|
115
|
+
})), y = b.find((e) => e.value === o.model);
|
|
116
|
+
return /* @__PURE__ */ c(oe, { children: [
|
|
117
|
+
/* @__PURE__ */ a(se, { title: F.title, helper: F.helper }),
|
|
118
|
+
/* @__PURE__ */ c(ne, { $grow: !0, children: [
|
|
119
|
+
/* @__PURE__ */ c(P, { children: [
|
|
119
120
|
/* @__PURE__ */ a(
|
|
120
121
|
k,
|
|
121
122
|
{
|
|
122
123
|
fieldKey: "instructions",
|
|
123
124
|
"data-test": "agent-instructions",
|
|
124
125
|
label: "Instructions",
|
|
125
|
-
maxLength:
|
|
126
|
+
maxLength: f.instructions,
|
|
126
127
|
placeholder: "Write what this agent should do. Type @ to reference a tool or sub-agent.",
|
|
127
128
|
minHeight: "200px"
|
|
128
129
|
}
|
|
@@ -133,68 +134,69 @@ const pe = (n) => ce(F[n]) ?? void 0, _ = (n) => ({
|
|
|
133
134
|
fieldKey: "guardrail",
|
|
134
135
|
"data-test": "agent-guardrail",
|
|
135
136
|
label: "Guardrails",
|
|
136
|
-
maxLength:
|
|
137
|
+
maxLength: f.guardrail,
|
|
137
138
|
placeholder: "Things this agent must never do. Type @ to reference a tool or sub-agent.",
|
|
138
139
|
minHeight: "140px"
|
|
139
140
|
}
|
|
140
141
|
)
|
|
141
142
|
] }),
|
|
142
|
-
/* @__PURE__ */
|
|
143
|
+
/* @__PURE__ */ a(ae, {}),
|
|
144
|
+
/* @__PURE__ */ c(P, { children: [
|
|
143
145
|
/* @__PURE__ */ a(
|
|
144
|
-
|
|
146
|
+
_,
|
|
145
147
|
{
|
|
146
148
|
title: "Tools",
|
|
147
149
|
helper: "Actions this agent can take while responding.",
|
|
148
150
|
dataTestPrefix: "agent-tools",
|
|
149
151
|
items: z,
|
|
150
152
|
addableOptions: V,
|
|
151
|
-
sourceGroups:
|
|
152
|
-
mentionItems:
|
|
153
|
+
sourceGroups: q,
|
|
154
|
+
mentionItems: X,
|
|
153
155
|
emptyText: "No tools added yet.",
|
|
154
156
|
onAdd: (e) => {
|
|
155
|
-
d("tool", e),
|
|
157
|
+
d("tool", e), w("tool", e);
|
|
156
158
|
},
|
|
157
159
|
onRemove: (e) => C("tool", e)
|
|
158
160
|
}
|
|
159
161
|
),
|
|
160
162
|
/* @__PURE__ */ a(
|
|
161
|
-
|
|
163
|
+
_,
|
|
162
164
|
{
|
|
163
165
|
title: "Sub-agents",
|
|
164
166
|
helper: "Other agents this agent can hand off the conversation to.",
|
|
165
167
|
dataTestPrefix: "agent-subagents",
|
|
166
|
-
items:
|
|
167
|
-
addableOptions:
|
|
168
|
-
mentionItems:
|
|
168
|
+
items: J,
|
|
169
|
+
addableOptions: Q,
|
|
170
|
+
mentionItems: Y,
|
|
169
171
|
emptyText: "No sub-agents added yet.",
|
|
170
172
|
onAdd: (e) => {
|
|
171
|
-
d("subagent", e),
|
|
173
|
+
d("subagent", e), w("subagent", e);
|
|
172
174
|
},
|
|
173
175
|
onRemove: (e) => C("subagent", e),
|
|
174
|
-
onConfigure:
|
|
175
|
-
createOption:
|
|
176
|
+
onConfigure: u ? W : void 0,
|
|
177
|
+
createOption: i ? { label: "Create new", onSelect: v } : void 0
|
|
176
178
|
}
|
|
177
179
|
),
|
|
178
|
-
|
|
179
|
-
/* @__PURE__ */ a(
|
|
180
|
-
/* @__PURE__ */ a(
|
|
180
|
+
b.length > 0 && /* @__PURE__ */ c(le, { children: [
|
|
181
|
+
/* @__PURE__ */ a(L, { color: M.content.primary, children: "Advanced settings" }),
|
|
182
|
+
/* @__PURE__ */ a(L, { color: M.content.secondary, children: "Select AI model" }),
|
|
181
183
|
/* @__PURE__ */ a(
|
|
182
|
-
|
|
184
|
+
pe,
|
|
183
185
|
{
|
|
184
186
|
"data-test": "agent-model",
|
|
185
187
|
size: "small",
|
|
186
188
|
width: "100%",
|
|
187
189
|
placeHolder: "Select model",
|
|
188
|
-
options:
|
|
189
|
-
defaultOptions:
|
|
190
|
+
options: Z,
|
|
191
|
+
defaultOptions: y ? [
|
|
190
192
|
{
|
|
191
|
-
label:
|
|
192
|
-
value:
|
|
193
|
+
label: y.label,
|
|
194
|
+
value: y.value
|
|
193
195
|
}
|
|
194
196
|
] : void 0,
|
|
195
197
|
onSelect: (e) => {
|
|
196
|
-
const t =
|
|
197
|
-
t &&
|
|
198
|
+
const t = me(e);
|
|
199
|
+
t && B("model", t);
|
|
198
200
|
}
|
|
199
201
|
}
|
|
200
202
|
)
|
|
@@ -202,22 +204,22 @@ const pe = (n) => ce(F[n]) ?? void 0, _ = (n) => ({
|
|
|
202
204
|
] })
|
|
203
205
|
] }),
|
|
204
206
|
l && /* @__PURE__ */ a(
|
|
205
|
-
|
|
207
|
+
ie,
|
|
206
208
|
{
|
|
207
209
|
title: l.title,
|
|
208
210
|
initial: l.initial,
|
|
209
211
|
availableTools: r,
|
|
210
212
|
appLabel: N(T),
|
|
211
|
-
charLimits:
|
|
212
|
-
onImprove:
|
|
213
|
-
onClose: () =>
|
|
214
|
-
onSave:
|
|
213
|
+
charLimits: f,
|
|
214
|
+
onImprove: j,
|
|
215
|
+
onClose: () => p(null),
|
|
216
|
+
onSave: $
|
|
215
217
|
},
|
|
216
218
|
l.key
|
|
217
219
|
)
|
|
218
220
|
] });
|
|
219
221
|
};
|
|
220
222
|
export {
|
|
221
|
-
|
|
223
|
+
Le as Step3HowItResponds
|
|
222
224
|
};
|
|
223
225
|
//# sourceMappingURL=Step3HowItResponds.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Step3HowItResponds.js","sources":["../../../../../src/components/agent-builder/steps/Step3HowItResponds.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Dropdown, unwrapDropdownValue } from '@src/components/dropdown';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport { TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentTool, SubAgentDraft, SubAgentRef } from '../AgentBuilder.model';\nimport {\n\tSideSection,\n\tStep3Grid,\n\tStep3Main,\n\tStep3Side,\n} from '../AgentBuilder.styled';\nimport { CreateSubAgentPanel } from '../components/CreateSubAgentPanel';\nimport { MentionField } from '../components/MentionField';\nimport {\n\tSelectableItem,\n\tSelectableListSection,\n\tSourceGroup,\n} from '../components/SelectableListSection';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\nimport {\n\tappTypeLabel,\n\tbuildAgentMentionItems,\n\ttoolSourceLabel,\n} from '../utils/mentionSerialization';\nimport { renderSourceIcon, SOURCE_ICONS } from '../utils/sourceIcons';\n\n/** Source brand glyph for a tool, as a dropdown leadingIcon element. */\nconst toolIconEl = (source: string): JSX.Element | undefined =>\n\trenderSourceIcon(SOURCE_ICONS[source]) ?? undefined;\n\n/** Dropdown option for a tool: icon left of the name, no description. */\nconst toolOption = (t: AgentTool): SingleOption => ({\n\tlabel: t.display_name,\n\tvalue: t.tool_id,\n\tleadingIcon: toolIconEl(t.source ?? 'manifest'),\n});\n\nconst STEP = STEP_DEFINITIONS[2];\n\n/** Drawer state — null when closed; `key` remounts it fresh per open. */\ninterface SubAgentPanelState {\n\tkey: number;\n\ttitle: string;\n\teditingId?: string;\n\tinitial?: SubAgentDraft;\n}\n\nexport const Step3HowItResponds: React.FC = () => {\n\tconst {\n\t\tvalue,\n\t\tpatch,\n\t\tupdateField,\n\t\tremoveReference,\n\t\tavailableTools,\n\t\tavailableSubAgents,\n\t\tavailableModels,\n\t\tapplicationType,\n\t\tcharLimits,\n\t\tinsertMention,\n\t\tonCreateSubAgent,\n\t\tonFetchSubAgent,\n\t\tonUpdateSubAgent,\n\t\tonImproveSubAgent,\n\t\tregisterSubAgentCreator,\n\t} = useAgentBuilderContext();\n\n\tconst [panel, setPanel] = useState<SubAgentPanelState | null>(null);\n\tconst panelKeyRef = useRef(0);\n\t// Sub-agents created / edited in this session, so a chip resolves (and reflects\n\t// a renamed sub-agent) before the consumer refreshes `availableSubAgents`.\n\tconst [createdSubAgents, setCreatedSubAgents] = useState<SubAgentRef[]>([]);\n\t// Created/edited refs take precedence over the consumer-supplied list.\n\tconst subAgentById = new Map<string, SubAgentRef>();\n\tavailableSubAgents.forEach((s) => subAgentById.set(s.id, s));\n\tcreatedSubAgents.forEach((s) => subAgentById.set(s.id, s));\n\tconst knownSubAgents = Array.from(subAgentById.values());\n\n\tconst openCreate = useCallback(() => {\n\t\tpanelKeyRef.current += 1;\n\t\tsetPanel({ key: panelKeyRef.current, title: 'Create sub-agent' });\n\t}, []);\n\n\t// Let the `@` picker's \"Create new\" row open this step's drawer.\n\tuseEffect(() => {\n\t\tif (!onCreateSubAgent) {\n\t\t\treturn;\n\t\t}\n\t\tregisterSubAgentCreator(openCreate);\n\t\treturn () => registerSubAgentCreator(null);\n\t}, [registerSubAgentCreator, openCreate, onCreateSubAgent]);\n\n\tconst openConfigure = useCallback(\n\t\tasync (id: string) => {\n\t\t\tif (!onFetchSubAgent) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data = await onFetchSubAgent(id);\n\t\t\tpanelKeyRef.current += 1;\n\t\t\tsetPanel({\n\t\t\t\tkey: panelKeyRef.current,\n\t\t\t\ttitle: 'Edit sub-agent',\n\t\t\t\teditingId: id,\n\t\t\t\tinitial: data,\n\t\t\t});\n\t\t},\n\t\t[onFetchSubAgent],\n\t);\n\n\tconst handlePanelSave = useCallback(\n\t\tasync (draft: SubAgentDraft) => {\n\t\t\tif (panel?.editingId) {\n\t\t\t\tif (onUpdateSubAgent) {\n\t\t\t\t\tconst ref = await onUpdateSubAgent(panel.editingId, draft);\n\t\t\t\t\tsetCreatedSubAgents((prev) => [\n\t\t\t\t\t\t...prev.filter((s) => s.id !== ref.id),\n\t\t\t\t\t\tref,\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t} else if (onCreateSubAgent) {\n\t\t\t\tconst ref = await onCreateSubAgent(draft);\n\t\t\t\tsetCreatedSubAgents((prev) => [...prev, ref]);\n\t\t\t\tpatch({ subagents: [...value.subagents, ref.id] });\n\t\t\t\tinsertMention('subagent', ref.id, `sub-agent: ${ref.name}`);\n\t\t\t}\n\t\t\tsetPanel(null);\n\t\t},\n\t\t[\n\t\t\tpanel,\n\t\t\tonUpdateSubAgent,\n\t\t\tonCreateSubAgent,\n\t\t\tpatch,\n\t\t\tvalue.subagents,\n\t\t\tinsertMention,\n\t\t],\n\t);\n\n\tconst toolItems: SelectableItem[] = value.tools\n\t\t.map((id): SelectableItem | null => {\n\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\treturn tool\n\t\t\t\t? {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tlabel: tool.display_name,\n\t\t\t\t\t\ticon: SOURCE_ICONS[tool.source ?? 'manifest'],\n\t\t\t\t }\n\t\t\t\t: null;\n\t\t})\n\t\t.filter((x): x is SelectableItem => x !== null);\n\n\t// All tools are offered (even already-added ones) so a tool can be referenced\n\t// again in the text; the chip list below still shows each only once.\n\tconst toolOptions: SingleOption[] = availableTools.map(toolOption);\n\n\t// Group tools by source (Manifest / Shopify / …) for the empty-state buttons.\n\tconst toolSourceGroups: SourceGroup[] = (() => {\n\t\tconst order: string[] = [];\n\t\tconst bySource = new Map<string, SingleOption[]>();\n\t\tavailableTools.forEach((t) => {\n\t\t\tconst src = t.source ?? 'manifest';\n\t\t\tif (!bySource.has(src)) {\n\t\t\t\tbySource.set(src, []);\n\t\t\t\torder.push(src);\n\t\t\t}\n\t\t\tbySource.get(src)?.push(toolOption(t));\n\t\t});\n\t\treturn order.map((src) => ({\n\t\t\tsource: src,\n\t\t\tlabel: toolSourceLabel(src),\n\t\t\toptions: bySource.get(src) ?? [],\n\t\t}));\n\t})();\n\n\tconst subAgentItems: SelectableItem[] = value.subagents\n\t\t.map((id): SelectableItem | null => {\n\t\t\tconst sub = subAgentById.get(id);\n\t\t\treturn sub ? { id, label: sub.name } : null;\n\t\t})\n\t\t.filter((x): x is SelectableItem => x !== null);\n\n\tconst subAgentOptions: SingleOption[] = knownSubAgents.map((s) => ({\n\t\tlabel: s.name,\n\t\tvalue: s.id,\n\t}));\n\n\t// Per-section `@`-picker items so the header \"+\" opens the same reference\n\t// picker as the Instructions editor, drilled straight into this section's\n\t// category (tools OR sub-agents).\n\tconst appLabel = appTypeLabel(applicationType);\n\tconst toolMentionItems = buildAgentMentionItems(availableTools, [], appLabel);\n\tconst subAgentMentionItems = buildAgentMentionItems(\n\t\t[],\n\t\tknownSubAgents,\n\t\tappLabel,\n\t);\n\n\tconst modelOptions: SingleOption[] = availableModels.map((m) => ({\n\t\tlabel: m.label,\n\t\tvalue: m.value,\n\t\tselected: m.value === value.model,\n\t}));\n\tconst selectedModel = availableModels.find((m) => m.value === value.model);\n\n\treturn (\n\t\t<div className=\"bik-agent-step bik-agent-step--response\">\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<Step3Grid>\n\t\t\t\t<Step3Main>\n\t\t\t\t\t<MentionField\n\t\t\t\t\t\tfieldKey=\"instructions\"\n\t\t\t\t\t\tdata-test=\"agent-instructions\"\n\t\t\t\t\t\tlabel=\"Instructions\"\n\t\t\t\t\t\tmaxLength={charLimits.instructions}\n\t\t\t\t\t\tplaceholder=\"Write what this agent should do. Type @ to reference a tool or sub-agent.\"\n\t\t\t\t\t\tminHeight=\"200px\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MentionField\n\t\t\t\t\t\tfieldKey=\"guardrail\"\n\t\t\t\t\t\tdata-test=\"agent-guardrail\"\n\t\t\t\t\t\tlabel=\"Guardrails\"\n\t\t\t\t\t\tmaxLength={charLimits.guardrail}\n\t\t\t\t\t\tplaceholder=\"Things this agent must never do. Type @ to reference a tool or sub-agent.\"\n\t\t\t\t\t\tminHeight=\"140px\"\n\t\t\t\t\t/>\n\t\t\t\t</Step3Main>\n\n\t\t\t\t<Step3Side>\n\t\t\t\t\t<SelectableListSection\n\t\t\t\t\t\ttitle=\"Tools\"\n\t\t\t\t\t\thelper=\"Actions this agent can take while responding.\"\n\t\t\t\t\t\tdataTestPrefix=\"agent-tools\"\n\t\t\t\t\t\titems={toolItems}\n\t\t\t\t\t\taddableOptions={toolOptions}\n\t\t\t\t\t\tsourceGroups={toolSourceGroups}\n\t\t\t\t\t\tmentionItems={toolMentionItems}\n\t\t\t\t\t\temptyText=\"No tools added yet.\"\n\t\t\t\t\t\tonAdd={(id) => {\n\t\t\t\t\t\t\t// Always drop a chip at the cursor; keep the list deduped.\n\t\t\t\t\t\t\tinsertMention('tool', id);\n\t\t\t\t\t\t\tif (!value.tools.includes(id)) {\n\t\t\t\t\t\t\t\tpatch({ tools: [...value.tools, id] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRemove={(id) => removeReference('tool', id)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<SelectableListSection\n\t\t\t\t\t\ttitle=\"Sub-agents\"\n\t\t\t\t\t\thelper=\"Other agents this agent can hand off the conversation to.\"\n\t\t\t\t\t\tdataTestPrefix=\"agent-subagents\"\n\t\t\t\t\t\titems={subAgentItems}\n\t\t\t\t\t\taddableOptions={subAgentOptions}\n\t\t\t\t\t\tmentionItems={subAgentMentionItems}\n\t\t\t\t\t\temptyText=\"No sub-agents added yet.\"\n\t\t\t\t\t\tonAdd={(id) => {\n\t\t\t\t\t\t\tinsertMention('subagent', id);\n\t\t\t\t\t\t\tif (!value.subagents.includes(id)) {\n\t\t\t\t\t\t\t\tpatch({ subagents: [...value.subagents, id] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRemove={(id) => removeReference('subagent', id)}\n\t\t\t\t\t\tonConfigure={onFetchSubAgent ? openConfigure : undefined}\n\t\t\t\t\t\tcreateOption={\n\t\t\t\t\t\t\tonCreateSubAgent\n\t\t\t\t\t\t\t\t? { label: 'Create new', onSelect: openCreate }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{availableModels.length > 0 && (\n\t\t\t\t\t\t<SideSection>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\tAdvanced settings\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\tSelect AI model\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tdata-test=\"agent-model\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t\tplaceHolder=\"Select model\"\n\t\t\t\t\t\t\t\toptions={modelOptions}\n\t\t\t\t\t\t\t\tdefaultOptions={\n\t\t\t\t\t\t\t\t\tselectedModel\n\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: selectedModel.label,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: selectedModel.value,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={(opt) => {\n\t\t\t\t\t\t\t\t\tconst v = unwrapDropdownValue(opt);\n\t\t\t\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\t\t\t\tupdateField('model', v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</SideSection>\n\t\t\t\t\t)}\n\t\t\t\t</Step3Side>\n\t\t\t</Step3Grid>\n\n\t\t\t{panel && (\n\t\t\t\t<CreateSubAgentPanel\n\t\t\t\t\tkey={panel.key}\n\t\t\t\t\ttitle={panel.title}\n\t\t\t\t\tinitial={panel.initial}\n\t\t\t\t\tavailableTools={availableTools}\n\t\t\t\t\tappLabel={appTypeLabel(applicationType)}\n\t\t\t\t\tcharLimits={charLimits}\n\t\t\t\t\tonImprove={onImproveSubAgent}\n\t\t\t\t\tonClose={() => setPanel(null)}\n\t\t\t\t\tonSave={handlePanelSave}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"names":["toolIconEl","source","renderSourceIcon","SOURCE_ICONS","toolOption","t","STEP","STEP_DEFINITIONS","Step3HowItResponds","value","patch","updateField","removeReference","availableTools","availableSubAgents","availableModels","applicationType","charLimits","insertMention","onCreateSubAgent","onFetchSubAgent","onUpdateSubAgent","onImproveSubAgent","registerSubAgentCreator","useAgentBuilderContext","panel","setPanel","useState","panelKeyRef","useRef","createdSubAgents","setCreatedSubAgents","subAgentById","s","knownSubAgents","openCreate","useCallback","useEffect","openConfigure","id","data","handlePanelSave","draft","ref","prev","toolItems","tool","x","toolOptions","toolSourceGroups","order","bySource","src","toolSourceLabel","subAgentItems","sub","subAgentOptions","appLabel","appTypeLabel","toolMentionItems","buildAgentMentionItems","subAgentMentionItems","modelOptions","m","selectedModel","jsxs","jsx","StepSectionHeader","Step3Grid","Step3Main","MentionField","Step3Side","SelectableListSection","SideSection","TitleSmall","COLORS","Dropdown","opt","v","unwrapDropdownValue","CreateSubAgentPanel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Step3HowItResponds.js","sources":["../../../../../src/components/agent-builder/steps/Step3HowItResponds.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Dropdown, unwrapDropdownValue } from '@src/components/dropdown';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport { TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentTool, SubAgentDraft, SubAgentRef } from '../AgentBuilder.model';\nimport {\n\tSectionBodyWrap,\n\tSideSection,\n\tStep3Divider,\n\tStep3Grid,\n\tStep3Root,\n} from '../AgentBuilder.styled';\nimport { CreateSubAgentPanel } from '../components/CreateSubAgentPanel';\nimport { MentionField } from '../components/MentionField';\nimport {\n\tSelectableItem,\n\tSelectableListSection,\n\tSourceGroup,\n} from '../components/SelectableListSection';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\nimport {\n\tappTypeLabel,\n\tbuildAgentMentionItems,\n\ttoolSourceLabel,\n} from '../utils/mentionSerialization';\nimport { renderSourceIcon, SOURCE_ICONS } from '../utils/sourceIcons';\n\n/** Source brand glyph for a tool, as a dropdown leadingIcon element. */\nconst toolIconEl = (source: string): JSX.Element | undefined =>\n\trenderSourceIcon(SOURCE_ICONS[source]) ?? undefined;\n\n/** Dropdown option for a tool: icon left of the name, no description. */\nconst toolOption = (t: AgentTool): SingleOption => ({\n\tlabel: t.display_name,\n\tvalue: t.tool_id,\n\tleadingIcon: toolIconEl(t.source ?? 'manifest'),\n});\n\nconst STEP = STEP_DEFINITIONS[2];\n\n/** Drawer state — null when closed; `key` remounts it fresh per open. */\ninterface SubAgentPanelState {\n\tkey: number;\n\ttitle: string;\n\teditingId?: string;\n\tinitial?: SubAgentDraft;\n}\n\nexport const Step3HowItResponds: React.FC = () => {\n\tconst {\n\t\tvalue,\n\t\tpatch,\n\t\tupdateField,\n\t\taddReference,\n\t\tremoveReference,\n\t\tavailableTools,\n\t\tavailableSubAgents,\n\t\tavailableModels,\n\t\tapplicationType,\n\t\tcharLimits,\n\t\tinsertMention,\n\t\tonCreateSubAgent,\n\t\tonFetchSubAgent,\n\t\tonUpdateSubAgent,\n\t\tonImproveSubAgent,\n\t\tregisterSubAgentCreator,\n\t} = useAgentBuilderContext();\n\n\tconst [panel, setPanel] = useState<SubAgentPanelState | null>(null);\n\tconst panelKeyRef = useRef(0);\n\t// Sub-agents created / edited in this session, so a chip resolves (and reflects\n\t// a renamed sub-agent) before the consumer refreshes `availableSubAgents`.\n\tconst [createdSubAgents, setCreatedSubAgents] = useState<SubAgentRef[]>([]);\n\t// Created/edited refs take precedence over the consumer-supplied list.\n\tconst subAgentById = new Map<string, SubAgentRef>();\n\tavailableSubAgents.forEach((s) => subAgentById.set(s.id, s));\n\tcreatedSubAgents.forEach((s) => subAgentById.set(s.id, s));\n\tconst knownSubAgents = Array.from(subAgentById.values());\n\n\tconst openCreate = useCallback(() => {\n\t\tpanelKeyRef.current += 1;\n\t\tsetPanel({ key: panelKeyRef.current, title: 'Create sub-agent' });\n\t}, []);\n\n\t// Let the `@` picker's \"Create new\" row open this step's drawer.\n\tuseEffect(() => {\n\t\tif (!onCreateSubAgent) {\n\t\t\treturn;\n\t\t}\n\t\tregisterSubAgentCreator(openCreate);\n\t\treturn () => registerSubAgentCreator(null);\n\t}, [registerSubAgentCreator, openCreate, onCreateSubAgent]);\n\n\tconst openConfigure = useCallback(\n\t\tasync (id: string) => {\n\t\t\tif (!onFetchSubAgent) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data = await onFetchSubAgent(id);\n\t\t\tpanelKeyRef.current += 1;\n\t\t\tsetPanel({\n\t\t\t\tkey: panelKeyRef.current,\n\t\t\t\ttitle: 'Edit sub-agent',\n\t\t\t\teditingId: id,\n\t\t\t\tinitial: data,\n\t\t\t});\n\t\t},\n\t\t[onFetchSubAgent],\n\t);\n\n\tconst handlePanelSave = useCallback(\n\t\tasync (draft: SubAgentDraft) => {\n\t\t\tif (panel?.editingId) {\n\t\t\t\tif (onUpdateSubAgent) {\n\t\t\t\t\tconst ref = await onUpdateSubAgent(panel.editingId, draft);\n\t\t\t\t\tsetCreatedSubAgents((prev) => [\n\t\t\t\t\t\t...prev.filter((s) => s.id !== ref.id),\n\t\t\t\t\t\tref,\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t} else if (onCreateSubAgent) {\n\t\t\t\tconst ref = await onCreateSubAgent(draft);\n\t\t\t\tsetCreatedSubAgents((prev) => [...prev, ref]);\n\t\t\t\tpatch({ subagents: [...value.subagents, ref.id] });\n\t\t\t\tinsertMention('subagent', ref.id, `sub-agent: ${ref.name}`);\n\t\t\t}\n\t\t\tsetPanel(null);\n\t\t},\n\t\t[\n\t\t\tpanel,\n\t\t\tonUpdateSubAgent,\n\t\t\tonCreateSubAgent,\n\t\t\tpatch,\n\t\t\tvalue.subagents,\n\t\t\tinsertMention,\n\t\t],\n\t);\n\n\tconst toolItems: SelectableItem[] = value.tools\n\t\t.map((id): SelectableItem | null => {\n\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\treturn tool\n\t\t\t\t? {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tlabel: tool.display_name,\n\t\t\t\t\t\ticon: SOURCE_ICONS[tool.source ?? 'manifest'],\n\t\t\t\t }\n\t\t\t\t: null;\n\t\t})\n\t\t.filter((x): x is SelectableItem => x !== null);\n\n\t// All tools are offered (even already-added ones) so a tool can be referenced\n\t// again in the text; the chip list below still shows each only once.\n\tconst toolOptions: SingleOption[] = availableTools.map(toolOption);\n\n\t// Group tools by source (Manifest / Shopify / …) for the empty-state buttons.\n\tconst toolSourceGroups: SourceGroup[] = (() => {\n\t\tconst order: string[] = [];\n\t\tconst bySource = new Map<string, SingleOption[]>();\n\t\tavailableTools.forEach((t) => {\n\t\t\tconst src = t.source ?? 'manifest';\n\t\t\tif (!bySource.has(src)) {\n\t\t\t\tbySource.set(src, []);\n\t\t\t\torder.push(src);\n\t\t\t}\n\t\t\tbySource.get(src)?.push(toolOption(t));\n\t\t});\n\t\treturn order.map((src) => ({\n\t\t\tsource: src,\n\t\t\tlabel: toolSourceLabel(src),\n\t\t\toptions: bySource.get(src) ?? [],\n\t\t}));\n\t})();\n\n\tconst subAgentItems: SelectableItem[] = value.subagents\n\t\t.map((id): SelectableItem | null => {\n\t\t\tconst sub = subAgentById.get(id);\n\t\t\treturn sub ? { id, label: sub.name } : null;\n\t\t})\n\t\t.filter((x): x is SelectableItem => x !== null);\n\n\tconst subAgentOptions: SingleOption[] = knownSubAgents.map((s) => ({\n\t\tlabel: s.name,\n\t\tvalue: s.id,\n\t}));\n\n\t// Per-section `@`-picker items so the header \"+\" opens the same reference\n\t// picker as the Instructions editor, drilled straight into this section's\n\t// category (tools OR sub-agents).\n\tconst appLabel = appTypeLabel(applicationType);\n\tconst toolMentionItems = buildAgentMentionItems(availableTools, [], appLabel);\n\tconst subAgentMentionItems = buildAgentMentionItems(\n\t\t[],\n\t\tknownSubAgents,\n\t\tappLabel,\n\t);\n\n\tconst modelOptions: SingleOption[] = availableModels.map((m) => ({\n\t\tlabel: m.label,\n\t\tvalue: m.value,\n\t\tselected: m.value === value.model,\n\t}));\n\tconst selectedModel = availableModels.find((m) => m.value === value.model);\n\n\treturn (\n\t\t<Step3Root>\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<Step3Grid $grow>\n\t\t\t\t<SectionBodyWrap>\n\t\t\t\t\t<MentionField\n\t\t\t\t\t\tfieldKey=\"instructions\"\n\t\t\t\t\t\tdata-test=\"agent-instructions\"\n\t\t\t\t\t\tlabel=\"Instructions\"\n\t\t\t\t\t\tmaxLength={charLimits.instructions}\n\t\t\t\t\t\tplaceholder=\"Write what this agent should do. Type @ to reference a tool or sub-agent.\"\n\t\t\t\t\t\tminHeight=\"200px\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MentionField\n\t\t\t\t\t\tfieldKey=\"guardrail\"\n\t\t\t\t\t\tdata-test=\"agent-guardrail\"\n\t\t\t\t\t\tlabel=\"Guardrails\"\n\t\t\t\t\t\tmaxLength={charLimits.guardrail}\n\t\t\t\t\t\tplaceholder=\"Things this agent must never do. Type @ to reference a tool or sub-agent.\"\n\t\t\t\t\t\tminHeight=\"140px\"\n\t\t\t\t\t/>\n\t\t\t\t</SectionBodyWrap>\n\n\t\t\t\t<Step3Divider />\n\n\t\t\t\t<SectionBodyWrap>\n\t\t\t\t\t<SelectableListSection\n\t\t\t\t\t\ttitle=\"Tools\"\n\t\t\t\t\t\thelper=\"Actions this agent can take while responding.\"\n\t\t\t\t\t\tdataTestPrefix=\"agent-tools\"\n\t\t\t\t\t\titems={toolItems}\n\t\t\t\t\t\taddableOptions={toolOptions}\n\t\t\t\t\t\tsourceGroups={toolSourceGroups}\n\t\t\t\t\t\tmentionItems={toolMentionItems}\n\t\t\t\t\t\temptyText=\"No tools added yet.\"\n\t\t\t\t\t\tonAdd={(id) => {\n\t\t\t\t\t\t\t// Always drop a chip at the cursor; addReference dedupes and reads\n\t\t\t\t\t\t\t// the latest value.\n\t\t\t\t\t\t\tinsertMention('tool', id);\n\t\t\t\t\t\t\taddReference('tool', id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRemove={(id) => removeReference('tool', id)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<SelectableListSection\n\t\t\t\t\t\ttitle=\"Sub-agents\"\n\t\t\t\t\t\thelper=\"Other agents this agent can hand off the conversation to.\"\n\t\t\t\t\t\tdataTestPrefix=\"agent-subagents\"\n\t\t\t\t\t\titems={subAgentItems}\n\t\t\t\t\t\taddableOptions={subAgentOptions}\n\t\t\t\t\t\tmentionItems={subAgentMentionItems}\n\t\t\t\t\t\temptyText=\"No sub-agents added yet.\"\n\t\t\t\t\t\tonAdd={(id) => {\n\t\t\t\t\t\t\tinsertMention('subagent', id);\n\t\t\t\t\t\t\taddReference('subagent', id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRemove={(id) => removeReference('subagent', id)}\n\t\t\t\t\t\tonConfigure={onFetchSubAgent ? openConfigure : undefined}\n\t\t\t\t\t\tcreateOption={\n\t\t\t\t\t\t\tonCreateSubAgent\n\t\t\t\t\t\t\t\t? { label: 'Create new', onSelect: openCreate }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{availableModels.length > 0 && (\n\t\t\t\t\t\t<SideSection>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\tAdvanced settings\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\tSelect AI model\n\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tdata-test=\"agent-model\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t\tplaceHolder=\"Select model\"\n\t\t\t\t\t\t\t\toptions={modelOptions}\n\t\t\t\t\t\t\t\tdefaultOptions={\n\t\t\t\t\t\t\t\t\tselectedModel\n\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: selectedModel.label,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: selectedModel.value,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={(opt) => {\n\t\t\t\t\t\t\t\t\tconst v = unwrapDropdownValue(opt);\n\t\t\t\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\t\t\t\tupdateField('model', v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</SideSection>\n\t\t\t\t\t)}\n\t\t\t\t</SectionBodyWrap>\n\t\t\t</Step3Grid>\n\n\t\t\t{panel && (\n\t\t\t\t<CreateSubAgentPanel\n\t\t\t\t\tkey={panel.key}\n\t\t\t\t\ttitle={panel.title}\n\t\t\t\t\tinitial={panel.initial}\n\t\t\t\t\tavailableTools={availableTools}\n\t\t\t\t\tappLabel={appTypeLabel(applicationType)}\n\t\t\t\t\tcharLimits={charLimits}\n\t\t\t\t\tonImprove={onImproveSubAgent}\n\t\t\t\t\tonClose={() => setPanel(null)}\n\t\t\t\t\tonSave={handlePanelSave}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Step3Root>\n\t);\n};\n"],"names":["toolIconEl","source","renderSourceIcon","SOURCE_ICONS","toolOption","t","STEP","STEP_DEFINITIONS","Step3HowItResponds","value","patch","updateField","addReference","removeReference","availableTools","availableSubAgents","availableModels","applicationType","charLimits","insertMention","onCreateSubAgent","onFetchSubAgent","onUpdateSubAgent","onImproveSubAgent","registerSubAgentCreator","useAgentBuilderContext","panel","setPanel","useState","panelKeyRef","useRef","createdSubAgents","setCreatedSubAgents","subAgentById","s","knownSubAgents","openCreate","useCallback","useEffect","openConfigure","id","data","handlePanelSave","draft","ref","prev","toolItems","tool","x","toolOptions","toolSourceGroups","order","bySource","src","toolSourceLabel","subAgentItems","sub","subAgentOptions","appLabel","appTypeLabel","toolMentionItems","buildAgentMentionItems","subAgentMentionItems","modelOptions","m","selectedModel","Step3Root","jsx","StepSectionHeader","jsxs","Step3Grid","SectionBodyWrap","MentionField","Step3Divider","SelectableListSection","SideSection","TitleSmall","COLORS","Dropdown","opt","v","unwrapDropdownValue","CreateSubAgentPanel"],"mappings":";;;;;;;;;;;;;;;AA+BA,MAAMA,KAAa,CAACC,MACnBC,GAAiBC,EAAaF,CAAM,CAAC,KAAK,QAGrCG,IAAa,CAACC,OAAgC;AAAA,EACnD,OAAOA,EAAE;AAAA,EACT,OAAOA,EAAE;AAAA,EACT,aAAaL,GAAWK,EAAE,UAAU,UAAU;AAC/C,IAEMC,IAAOC,GAAiB,CAAC,GAUlBC,KAA+B,MAAM;AACjD,QAAM;AAAA,IACL,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,yBAAAC;AAAA,EAAA,IACGC,GAAA,GAEE,CAACC,GAAOC,CAAQ,IAAIC,EAAoC,IAAI,GAC5DC,IAAcC,GAAO,CAAC,GAGtB,CAACC,GAAkBC,CAAmB,IAAIJ,EAAwB,CAAA,CAAE,GAEpEK,wBAAmB,IAAA;AACzB,EAAAlB,EAAmB,QAAQ,CAACmB,MAAMD,EAAa,IAAIC,EAAE,IAAIA,CAAC,CAAC,GAC3DH,EAAiB,QAAQ,CAACG,MAAMD,EAAa,IAAIC,EAAE,IAAIA,CAAC,CAAC;AACzD,QAAMC,IAAiB,MAAM,KAAKF,EAAa,QAAQ,GAEjDG,IAAaC,EAAY,MAAM;AACpC,IAAAR,EAAY,WAAW,GACvBF,EAAS,EAAE,KAAKE,EAAY,SAAS,OAAO,oBAAoB;AAAA,EACjE,GAAG,CAAA,CAAE;AAGL,EAAAS,GAAU,MAAM;AACf,QAAKlB;AAGL,aAAAI,EAAwBY,CAAU,GAC3B,MAAMZ,EAAwB,IAAI;AAAA,EAC1C,GAAG,CAACA,GAAyBY,GAAYhB,CAAgB,CAAC;AAE1D,QAAMmB,IAAgBF;AAAA,IACrB,OAAOG,MAAe;AACrB,UAAI,CAACnB;AACJ;AAED,YAAMoB,IAAO,MAAMpB,EAAgBmB,CAAE;AACrC,MAAAX,EAAY,WAAW,GACvBF,EAAS;AAAA,QACR,KAAKE,EAAY;AAAA,QACjB,OAAO;AAAA,QACP,WAAWW;AAAA,QACX,SAASC;AAAA,MAAA,CACT;AAAA,IACF;AAAA,IACA,CAACpB,CAAe;AAAA,EAAA,GAGXqB,IAAkBL;AAAA,IACvB,OAAOM,MAAyB;AAC/B,UAAIjB,GAAO;AACV,YAAIJ,GAAkB;AACrB,gBAAMsB,IAAM,MAAMtB,EAAiBI,EAAM,WAAWiB,CAAK;AACzD,UAAAX,EAAoB,CAACa,MAAS;AAAA,YAC7B,GAAGA,EAAK,OAAO,CAAC,MAAM,EAAE,OAAOD,EAAI,EAAE;AAAA,YACrCA;AAAA,UAAA,CACA;AAAA,QACF;AAAA,iBACUxB,GAAkB;AAC5B,cAAMwB,IAAM,MAAMxB,EAAiBuB,CAAK;AACxC,QAAAX,EAAoB,CAACa,MAAS,CAAC,GAAGA,GAAMD,CAAG,CAAC,GAC5ClC,EAAM,EAAE,WAAW,CAAC,GAAGD,EAAM,WAAWmC,EAAI,EAAE,GAAG,GACjDzB,EAAc,YAAYyB,EAAI,IAAI,cAAcA,EAAI,IAAI,EAAE;AAAA,MAC3D;AACA,MAAAjB,EAAS,IAAI;AAAA,IACd;AAAA,IACA;AAAA,MACCD;AAAA,MACAJ;AAAA,MACAF;AAAA,MACAV;AAAA,MACAD,EAAM;AAAA,MACNU;AAAA,IAAA;AAAA,EACD,GAGK2B,IAA8BrC,EAAM,MACxC,IAAI,CAAC+B,MAA8B;AACnC,UAAMO,IAAOjC,EAAe,KAAK,CAACT,MAAMA,EAAE,YAAYmC,CAAE;AACxD,WAAOO,IACJ;AAAA,MACA,IAAAP;AAAA,MACA,OAAOO,EAAK;AAAA,MACZ,MAAM5C,EAAa4C,EAAK,UAAU,UAAU;AAAA,IAAA,IAE5C;AAAA,EACJ,CAAC,EACA,OAAO,CAACC,MAA2BA,MAAM,IAAI,GAIzCC,IAA8BnC,EAAe,IAAIV,CAAU,GAG3D8C,KAAmC,MAAM;AAC9C,UAAMC,IAAkB,CAAA,GAClBC,wBAAe,IAAA;AACrB,WAAAtC,EAAe,QAAQ,CAACT,MAAM;AAC7B,YAAMgD,IAAMhD,EAAE,UAAU;AACxB,MAAK+C,EAAS,IAAIC,CAAG,MACpBD,EAAS,IAAIC,GAAK,EAAE,GACpBF,EAAM,KAAKE,CAAG,IAEfD,EAAS,IAAIC,CAAG,GAAG,KAAKjD,EAAWC,CAAC,CAAC;AAAA,IACtC,CAAC,GACM8C,EAAM,IAAI,CAACE,OAAS;AAAA,MAC1B,QAAQA;AAAA,MACR,OAAOC,GAAgBD,CAAG;AAAA,MAC1B,SAASD,EAAS,IAAIC,CAAG,KAAK,CAAA;AAAA,IAAC,EAC9B;AAAA,EACH,GAAA,GAEME,IAAkC9C,EAAM,UAC5C,IAAI,CAAC+B,MAA8B;AACnC,UAAMgB,IAAMvB,EAAa,IAAIO,CAAE;AAC/B,WAAOgB,IAAM,EAAE,IAAAhB,GAAI,OAAOgB,EAAI,SAAS;AAAA,EACxC,CAAC,EACA,OAAO,CAACR,MAA2BA,MAAM,IAAI,GAEzCS,IAAkCtB,EAAe,IAAI,CAACD,OAAO;AAAA,IAClE,OAAOA,EAAE;AAAA,IACT,OAAOA,EAAE;AAAA,EAAA,EACR,GAKIwB,IAAWC,EAAa1C,CAAe,GACvC2C,IAAmBC,EAAuB/C,GAAgB,CAAA,GAAI4C,CAAQ,GACtEI,IAAuBD;AAAA,IAC5B,CAAA;AAAA,IACA1B;AAAA,IACAuB;AAAA,EAAA,GAGKK,IAA+B/C,EAAgB,IAAI,CAACgD,OAAO;AAAA,IAChE,OAAOA,EAAE;AAAA,IACT,OAAOA,EAAE;AAAA,IACT,UAAUA,EAAE,UAAUvD,EAAM;AAAA,EAAA,EAC3B,GACIwD,IAAgBjD,EAAgB,KAAK,CAACgD,MAAMA,EAAE,UAAUvD,EAAM,KAAK;AAEzE,2BACEyD,IAAA,EACA,UAAA;AAAA,IAAA,gBAAAC,EAACC,MAAkB,OAAO9D,EAAK,OAAO,QAAQA,EAAK,QAAQ;AAAA,IAE3D,gBAAA+D,EAACC,IAAA,EAAU,OAAK,IACf,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EACA,UAAA;AAAA,QAAA,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YACA,UAAS;AAAA,YACT,aAAU;AAAA,YACV,OAAM;AAAA,YACN,WAAWtD,EAAW;AAAA,YACtB,aAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAGX,gBAAAiD;AAAA,UAACK;AAAA,UAAA;AAAA,YACA,UAAS;AAAA,YACT,aAAU;AAAA,YACV,OAAM;AAAA,YACN,WAAWtD,EAAW;AAAA,YACtB,aAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACX,GACD;AAAA,wBAECuD,IAAA,EAAa;AAAA,wBAEbF,GAAA,EACA,UAAA;AAAA,QAAA,gBAAAJ;AAAA,UAACO;AAAA,UAAA;AAAA,YACA,OAAM;AAAA,YACN,QAAO;AAAA,YACP,gBAAe;AAAA,YACf,OAAO5B;AAAA,YACP,gBAAgBG;AAAA,YAChB,cAAcC;AAAA,YACd,cAAcU;AAAA,YACd,WAAU;AAAA,YACV,OAAO,CAACpB,MAAO;AAGd,cAAArB,EAAc,QAAQqB,CAAE,GACxB5B,EAAa,QAAQ4B,CAAE;AAAA,YACxB;AAAA,YACA,UAAU,CAACA,MAAO3B,EAAgB,QAAQ2B,CAAE;AAAA,UAAA;AAAA,QAAA;AAAA,QAG7C,gBAAA2B;AAAA,UAACO;AAAA,UAAA;AAAA,YACA,OAAM;AAAA,YACN,QAAO;AAAA,YACP,gBAAe;AAAA,YACf,OAAOnB;AAAA,YACP,gBAAgBE;AAAA,YAChB,cAAcK;AAAA,YACd,WAAU;AAAA,YACV,OAAO,CAACtB,MAAO;AACd,cAAArB,EAAc,YAAYqB,CAAE,GAC5B5B,EAAa,YAAY4B,CAAE;AAAA,YAC5B;AAAA,YACA,UAAU,CAACA,MAAO3B,EAAgB,YAAY2B,CAAE;AAAA,YAChD,aAAanB,IAAkBkB,IAAgB;AAAA,YAC/C,cACCnB,IACG,EAAE,OAAO,cAAc,UAAUgB,MACjC;AAAA,UAAA;AAAA,QAAA;AAAA,QAIJpB,EAAgB,SAAS,KACzB,gBAAAqD,EAACM,IAAA,EACA,UAAA;AAAA,UAAA,gBAAAR,EAACS,GAAA,EAAW,OAAOC,EAAO,QAAQ,SAAS,UAAA,qBAE3C;AAAA,4BACCD,GAAA,EAAW,OAAOC,EAAO,QAAQ,WAAW,UAAA,mBAE7C;AAAA,UACA,gBAAAV;AAAA,YAACW;AAAA,YAAA;AAAA,cACA,aAAU;AAAA,cACV,MAAK;AAAA,cACL,OAAM;AAAA,cACN,aAAY;AAAA,cACZ,SAASf;AAAA,cACT,gBACCE,IACG;AAAA,gBACA;AAAA,kBACC,OAAOA,EAAc;AAAA,kBACrB,OAAOA,EAAc;AAAA,gBAAA;AAAA,cACtB,IAEA;AAAA,cAEJ,UAAU,CAACc,MAAQ;AAClB,sBAAMC,IAAIC,GAAoBF,CAAG;AACjC,gBAAIC,KACHrE,EAAY,SAASqE,CAAC;AAAA,cAExB;AAAA,YAAA;AAAA,UAAA;AAAA,QACD,EAAA,CACD;AAAA,MAAA,EAAA,CAEF;AAAA,IAAA,GACD;AAAA,IAECtD,KACA,gBAAAyC;AAAA,MAACe;AAAA,MAAA;AAAA,QAEA,OAAOxD,EAAM;AAAA,QACb,SAASA,EAAM;AAAA,QACf,gBAAAZ;AAAA,QACA,UAAU6C,EAAa1C,CAAe;AAAA,QACtC,YAAAC;AAAA,QACA,WAAWK;AAAA,QACX,SAAS,MAAMI,EAAS,IAAI;AAAA,QAC5B,QAAQe;AAAA,MAAA;AAAA,MARHhB,EAAM;AAAA,IAAA;AAAA,EASZ,GAEF;AAEF;"}
|
|
@@ -1,77 +1,79 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as t, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { RadioButton as d } from "../../radioButton/RadioButton.js";
|
|
3
3
|
import { TitleSmall as a, BodyCaption as l } from "../../TypographyStyle.js";
|
|
4
4
|
import { COLORS as o } from "../../../constants/Theme.js";
|
|
5
|
-
import {
|
|
6
|
-
import { AiTextArea as
|
|
7
|
-
import { StepSectionHeader as
|
|
8
|
-
import { STEP_DEFINITIONS as
|
|
5
|
+
import { SectionBodyWrap as u, FieldBlock as v, CardRow as g, RadioCard as h, RadioCardText as s } from "../AgentBuilder.styled.js";
|
|
6
|
+
import { AiTextArea as C } from "../components/AiTextArea.js";
|
|
7
|
+
import { StepSectionHeader as S } from "../components/StepSectionHeader.js";
|
|
8
|
+
import { STEP_DEFINITIONS as y } from "../constants/steps.js";
|
|
9
9
|
import { useAgentBuilderContext as x } from "../context/AgentBuilderContext.js";
|
|
10
|
-
const m =
|
|
11
|
-
const { value: p, patch: c, charLimits: f } = x(), { handover:
|
|
12
|
-
return /* @__PURE__ */
|
|
13
|
-
/* @__PURE__ */ e(
|
|
14
|
-
/* @__PURE__ */
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/* @__PURE__ */
|
|
28
|
-
|
|
29
|
-
/* @__PURE__ */
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
/* @__PURE__ */
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
/* @__PURE__ */
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
10
|
+
const m = y[3], _ = () => {
|
|
11
|
+
const { value: p, patch: c, charLimits: f } = x(), { handover: n } = p, r = (i) => c({ handover: { ...n, method: i } });
|
|
12
|
+
return /* @__PURE__ */ t("div", { className: "bik-agent-step bik-agent-step--handover", children: [
|
|
13
|
+
/* @__PURE__ */ e(S, { title: m.title, helper: m.helper }),
|
|
14
|
+
/* @__PURE__ */ t(u, { children: [
|
|
15
|
+
/* @__PURE__ */ e(
|
|
16
|
+
C,
|
|
17
|
+
{
|
|
18
|
+
"data-test": "handover-when",
|
|
19
|
+
label: "Handover when",
|
|
20
|
+
value: n.when,
|
|
21
|
+
onChange: (i) => c({ handover: { ...n, when: i } }),
|
|
22
|
+
maxLength: f.handoverWhen,
|
|
23
|
+
placeholder: "e.g. Hand over if the customer is angry or requests a human agent.",
|
|
24
|
+
minHeight: "120px"
|
|
25
|
+
}
|
|
26
|
+
),
|
|
27
|
+
/* @__PURE__ */ t(v, { children: [
|
|
28
|
+
/* @__PURE__ */ e(a, { color: o.content.primary, children: "Handover method" }),
|
|
29
|
+
/* @__PURE__ */ t(g, { children: [
|
|
30
|
+
/* @__PURE__ */ t(
|
|
31
|
+
h,
|
|
32
|
+
{
|
|
33
|
+
"data-test": "handover-method-default",
|
|
34
|
+
selected: n.method === "default",
|
|
35
|
+
onClick: () => r("default"),
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ e(
|
|
38
|
+
d,
|
|
39
|
+
{
|
|
40
|
+
isActive: n.method === "default",
|
|
41
|
+
onValueChange: () => r("default"),
|
|
42
|
+
skipSelectingOff: !0,
|
|
43
|
+
activeColor: o.content.brand
|
|
44
|
+
}
|
|
45
|
+
),
|
|
46
|
+
/* @__PURE__ */ t(s, { children: [
|
|
47
|
+
/* @__PURE__ */ e(a, { color: o.content.primary, children: "Use default settings" }),
|
|
48
|
+
/* @__PURE__ */ e(l, { color: o.content.secondary, children: "Defined in Customize > Agent handover" })
|
|
49
|
+
] })
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
/* @__PURE__ */ t(
|
|
54
|
+
h,
|
|
55
|
+
{
|
|
56
|
+
"data-test": "handover-method-specific",
|
|
57
|
+
selected: n.method === "specific_channels",
|
|
58
|
+
onClick: () => r("specific_channels"),
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ e(
|
|
61
|
+
d,
|
|
62
|
+
{
|
|
63
|
+
isActive: n.method === "specific_channels",
|
|
64
|
+
onValueChange: () => r("specific_channels"),
|
|
65
|
+
skipSelectingOff: !0,
|
|
66
|
+
activeColor: o.content.brand
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
/* @__PURE__ */ t(s, { children: [
|
|
70
|
+
/* @__PURE__ */ e(a, { color: o.content.primary, children: "Choose specific channels" }),
|
|
71
|
+
/* @__PURE__ */ e(l, { color: o.content.secondary, children: "Always hands over regardless of business hours." })
|
|
72
|
+
] })
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
] })
|
|
75
77
|
] })
|
|
76
78
|
] })
|
|
77
79
|
] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Step4HandoverRules.js","sources":["../../../../../src/components/agent-builder/steps/Step4HandoverRules.tsx"],"sourcesContent":["import React from 'react';\nimport { RadioButton } from '@src/components/radioButton/RadioButton';\nimport { BodyCaption, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { HandoverMethod } from '../AgentBuilder.model';\nimport {\n\tCardRow,\n\tFieldBlock,\n\tRadioCard,\n\tRadioCardText,\n} from '../AgentBuilder.styled';\nimport { AiTextArea } from '../components/AiTextArea';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nconst STEP = STEP_DEFINITIONS[3];\n\nexport const Step4HandoverRules: React.FC = () => {\n\tconst { value, patch, charLimits } = useAgentBuilderContext();\n\tconst { handover } = value;\n\n\tconst setMethod = (method: HandoverMethod) =>\n\t\tpatch({ handover: { ...handover, method } });\n\n\treturn (\n\t\t<div className=\"bik-agent-step bik-agent-step--handover\">\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<AiTextArea\n\t\t\t\tdata-test=\"handover-when\"\n\t\t\t\tlabel=\"Handover when\"\n\t\t\t\tvalue={handover.when}\n\t\t\t\tonChange={(text) => patch({ handover: { ...handover, when: text } })}\n\t\t\t\tmaxLength={charLimits.handoverWhen}\n\t\t\t\tplaceholder=\"e.g. Hand over if the customer is angry or requests a human agent.\"\n\t\t\t\tminHeight=\"120px\"\n\t\t\t/>\n\n\t\t\t<FieldBlock>\n\t\t\t\t<TitleSmall color={COLORS.content.primary}
|
|
1
|
+
{"version":3,"file":"Step4HandoverRules.js","sources":["../../../../../src/components/agent-builder/steps/Step4HandoverRules.tsx"],"sourcesContent":["import React from 'react';\nimport { RadioButton } from '@src/components/radioButton/RadioButton';\nimport { BodyCaption, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { HandoverMethod } from '../AgentBuilder.model';\nimport {\n\tCardRow,\n\tFieldBlock,\n\tRadioCard,\n\tRadioCardText,\n\tSectionBodyWrap,\n} from '../AgentBuilder.styled';\nimport { AiTextArea } from '../components/AiTextArea';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nconst STEP = STEP_DEFINITIONS[3];\n\nexport const Step4HandoverRules: React.FC = () => {\n\tconst { value, patch, charLimits } = useAgentBuilderContext();\n\tconst { handover } = value;\n\n\tconst setMethod = (method: HandoverMethod) =>\n\t\tpatch({ handover: { ...handover, method } });\n\n\treturn (\n\t\t<div className=\"bik-agent-step bik-agent-step--handover\">\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<SectionBodyWrap>\n\t\t\t\t<AiTextArea\n\t\t\t\t\tdata-test=\"handover-when\"\n\t\t\t\t\tlabel=\"Handover when\"\n\t\t\t\t\tvalue={handover.when}\n\t\t\t\t\tonChange={(text) => patch({ handover: { ...handover, when: text } })}\n\t\t\t\t\tmaxLength={charLimits.handoverWhen}\n\t\t\t\t\tplaceholder=\"e.g. Hand over if the customer is angry or requests a human agent.\"\n\t\t\t\t\tminHeight=\"120px\"\n\t\t\t\t/>\n\n\t\t\t\t<FieldBlock>\n\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\tHandover method\n\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t<CardRow>\n\t\t\t\t\t\t<RadioCard\n\t\t\t\t\t\t\tdata-test=\"handover-method-default\"\n\t\t\t\t\t\t\tselected={handover.method === 'default'}\n\t\t\t\t\t\t\tonClick={() => setMethod('default')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RadioButton\n\t\t\t\t\t\t\t\tisActive={handover.method === 'default'}\n\t\t\t\t\t\t\t\tonValueChange={() => setMethod('default')}\n\t\t\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\t\tUse default settings\n\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\tDefined in Customize > Agent handover\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t</RadioCardText>\n\t\t\t\t\t\t</RadioCard>\n\n\t\t\t\t\t\t<RadioCard\n\t\t\t\t\t\t\tdata-test=\"handover-method-specific\"\n\t\t\t\t\t\t\tselected={handover.method === 'specific_channels'}\n\t\t\t\t\t\t\tonClick={() => setMethod('specific_channels')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RadioButton\n\t\t\t\t\t\t\t\tisActive={handover.method === 'specific_channels'}\n\t\t\t\t\t\t\t\tonValueChange={() => setMethod('specific_channels')}\n\t\t\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\t\tChoose specific channels\n\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\tAlways hands over regardless of business hours.\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t</RadioCardText>\n\t\t\t\t\t\t</RadioCard>\n\t\t\t\t\t</CardRow>\n\t\t\t\t</FieldBlock>\n\t\t\t</SectionBodyWrap>\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step4HandoverRules","value","patch","charLimits","useAgentBuilderContext","handover","setMethod","method","jsxs","jsx","StepSectionHeader","SectionBodyWrap","AiTextArea","text","FieldBlock","TitleSmall","COLORS","CardRow","RadioCard","RadioButton","RadioCardText","BodyCaption"],"mappings":";;;;;;;;;AAiBA,MAAMA,IAAOC,EAAiB,CAAC,GAElBC,IAA+B,MAAM;AACjD,QAAM,EAAE,OAAAC,GAAO,OAAAC,GAAO,YAAAC,EAAA,IAAeC,EAAA,GAC/B,EAAE,UAAAC,MAAaJ,GAEfK,IAAY,CAACC,MAClBL,EAAM,EAAE,UAAU,EAAE,GAAGG,GAAU,QAAAE,EAAA,GAAU;AAE5C,SACC,gBAAAC,EAAC,OAAA,EAAI,WAAU,2CACd,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAkB,OAAOZ,EAAK,OAAO,QAAQA,EAAK,QAAQ;AAAA,sBAE1Da,GAAA,EACA,UAAA;AAAA,MAAA,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACA,aAAU;AAAA,UACV,OAAM;AAAA,UACN,OAAOP,EAAS;AAAA,UAChB,UAAU,CAACQ,MAASX,EAAM,EAAE,UAAU,EAAE,GAAGG,GAAU,MAAMQ,EAAA,GAAQ;AAAA,UACnE,WAAWV,EAAW;AAAA,UACtB,aAAY;AAAA,UACZ,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,wBAGVW,GAAA,EACA,UAAA;AAAA,QAAA,gBAAAL,EAACM,GAAA,EAAW,OAAOC,EAAO,QAAQ,SAAS,UAAA,mBAE3C;AAAA,0BACCC,GAAA,EACA,UAAA;AAAA,UAAA,gBAAAT;AAAA,YAACU;AAAA,YAAA;AAAA,cACA,aAAU;AAAA,cACV,UAAUb,EAAS,WAAW;AAAA,cAC9B,SAAS,MAAMC,EAAU,SAAS;AAAA,cAElC,UAAA;AAAA,gBAAA,gBAAAG;AAAA,kBAACU;AAAA,kBAAA;AAAA,oBACA,UAAUd,EAAS,WAAW;AAAA,oBAC9B,eAAe,MAAMC,EAAU,SAAS;AAAA,oBACxC,kBAAgB;AAAA,oBAChB,aAAaU,EAAO,QAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,kCAE5BI,GAAA,EACA,UAAA;AAAA,kBAAA,gBAAAX,EAACM,GAAA,EAAW,OAAOC,EAAO,QAAQ,SAAS,UAAA,wBAE3C;AAAA,oCACCK,GAAA,EAAY,OAAOL,EAAO,QAAQ,WAAW,UAAA,wCAAA,CAE9C;AAAA,gBAAA,EAAA,CACD;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAGD,gBAAAR;AAAA,YAACU;AAAA,YAAA;AAAA,cACA,aAAU;AAAA,cACV,UAAUb,EAAS,WAAW;AAAA,cAC9B,SAAS,MAAMC,EAAU,mBAAmB;AAAA,cAE5C,UAAA;AAAA,gBAAA,gBAAAG;AAAA,kBAACU;AAAA,kBAAA;AAAA,oBACA,UAAUd,EAAS,WAAW;AAAA,oBAC9B,eAAe,MAAMC,EAAU,mBAAmB;AAAA,oBAClD,kBAAgB;AAAA,oBAChB,aAAaU,EAAO,QAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,kCAE5BI,GAAA,EACA,UAAA;AAAA,kBAAA,gBAAAX,EAACM,GAAA,EAAW,OAAOC,EAAO,QAAQ,SAAS,UAAA,4BAE3C;AAAA,oCACCK,GAAA,EAAY,OAAOL,EAAO,QAAQ,WAAW,UAAA,kDAAA,CAE9C;AAAA,gBAAA,EAAA,CACD;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACD,EAAA,CACD;AAAA,MAAA,EAAA,CACD;AAAA,IAAA,EAAA,CACD;AAAA,EAAA,GACD;AAEF;"}
|