@bikdotai/bik-component-library 0.0.821 → 0.0.822-beta.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.
Files changed (77) hide show
  1. package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
  2. package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
  3. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +66 -90
  4. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
  6. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/components/MentionPicker.js +19 -19
  8. package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +14 -1
  10. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/constants/charLimits.js.map +1 -1
  12. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  13. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  14. package/dist/cjs/components/agent-builder/steps/Step1About.js +1 -1
  15. package/dist/cjs/components/agent-builder/steps/Step1About.js.map +1 -1
  16. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +1 -1
  17. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  18. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  19. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  20. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js +1 -1
  21. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  22. package/dist/cjs/components/agent-builder/utils/sourceIcons.js +1 -1
  23. package/dist/cjs/components/agent-builder/utils/sourceIcons.js.map +1 -1
  24. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  25. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  26. package/dist/cjs/components/agent-listing/AgentListingFilters.js +1 -1
  27. package/dist/cjs/components/agent-listing/AgentListingFilters.js.map +1 -1
  28. package/dist/cjs/components/dropdown/utils.js +2 -0
  29. package/dist/cjs/components/dropdown/utils.js.map +1 -0
  30. package/dist/cjs/index.js +1 -1
  31. package/dist/cjs/utils/arrayUtils.js +2 -0
  32. package/dist/cjs/utils/arrayUtils.js.map +1 -0
  33. package/dist/esm/components/agent-builder/AgentBuilder.js +67 -65
  34. package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
  35. package/dist/esm/components/agent-builder/AgentBuilder.model.d.ts +7 -0
  36. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +117 -141
  37. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  38. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +3 -0
  39. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +95 -96
  40. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  41. package/dist/esm/components/agent-builder/components/MentionPicker.d.ts +4 -0
  42. package/dist/esm/components/agent-builder/components/MentionPicker.js +64 -69
  43. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  44. package/dist/esm/components/agent-builder/components/SelectableListSection.d.ts +10 -0
  45. package/dist/esm/components/agent-builder/components/SelectableListSection.js +161 -106
  46. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  47. package/dist/esm/components/agent-builder/constants/charLimits.d.ts +6 -0
  48. package/dist/esm/components/agent-builder/constants/charLimits.js.map +1 -1
  49. package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +4 -0
  50. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +126 -120
  51. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  52. package/dist/esm/components/agent-builder/index.d.ts +1 -0
  53. package/dist/esm/components/agent-builder/steps/Step1About.js +6 -7
  54. package/dist/esm/components/agent-builder/steps/Step1About.js.map +1 -1
  55. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +59 -59
  56. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  57. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +114 -109
  58. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  59. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js +26 -27
  60. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  61. package/dist/esm/components/agent-builder/utils/sourceIcons.d.ts +6 -0
  62. package/dist/esm/components/agent-builder/utils/sourceIcons.js +12 -7
  63. package/dist/esm/components/agent-builder/utils/sourceIcons.js.map +1 -1
  64. package/dist/esm/components/agent-listing/AgentListing.js +91 -90
  65. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  66. package/dist/esm/components/agent-listing/AgentListingFilters.js +31 -30
  67. package/dist/esm/components/agent-listing/AgentListingFilters.js.map +1 -1
  68. package/dist/esm/components/dropdown/index.d.ts +1 -0
  69. package/dist/esm/components/dropdown/utils.d.ts +9 -0
  70. package/dist/esm/components/dropdown/utils.js +5 -0
  71. package/dist/esm/components/dropdown/utils.js.map +1 -0
  72. package/dist/esm/index.js +10 -8
  73. package/dist/esm/index.js.map +1 -1
  74. package/dist/esm/utils/arrayUtils.d.ts +7 -0
  75. package/dist/esm/utils/arrayUtils.js +5 -0
  76. package/dist/esm/utils/arrayUtils.js.map +1 -0
  77. package/package.json +1 -1
@@ -1,90 +1,90 @@
1
- import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
- import A from "../../../assets/icons/cross.svg.js";
3
- import w from "../../../assets/icons/plus.svg.js";
4
- import T from "react";
5
- import { RadioButton as g } from "../../radioButton/RadioButton.js";
6
- import { TitleSmall as l, BodyCaption as d, BodySecondary as f } from "../../TypographyStyle.js";
1
+ import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
+ import I from "../../../assets/icons/cross.svg.js";
3
+ import k from "../../../assets/icons/plus.svg.js";
4
+ import x from "react";
5
+ import { RadioButton as u } from "../../radioButton/RadioButton.js";
6
+ import { TitleSmall as l, BodyCaption as d, BodySecondary as g } from "../../TypographyStyle.js";
7
7
  import { COLORS as o } from "../../../constants/Theme.js";
8
- import { CardRow as k, RadioCard as C, RadioCardText as v, FieldBlock as x, ChipWrap as R, IntentChip as B, ChipCloseButton as O, AddChipButton as D } from "../AgentBuilder.styled.js";
8
+ import { CardRow as T, RadioCard as f, RadioCardText as C, FieldBlock as A, ChipWrap as B, IntentChip as R, ChipCloseButton as O, AddChipButton as D } from "../AgentBuilder.styled.js";
9
9
  import { AiTextArea as E } from "../components/AiTextArea.js";
10
- import { StepSectionHeader as H } from "../components/StepSectionHeader.js";
11
- import { AGENT_CHAR_LIMITS as M } from "../constants/charLimits.js";
12
- import { STEP_DEFINITIONS as F } from "../constants/steps.js";
10
+ import { StepSectionHeader as F } from "../components/StepSectionHeader.js";
11
+ import { STEP_DEFINITIONS as H } from "../constants/steps.js";
13
12
  import { useAgentBuilderContext as L } from "../context/AgentBuilderContext.js";
14
- import { Dropdown as N } from "../../dropdown/Dropdown.js";
15
- const y = F[1], Z = () => {
16
- const { value: S, patch: r, availableIntents: m } = L(), { trigger: n } = S, [_, h] = T.useState(!1), a = (e) => r({ trigger: { ...n, mode: e } }), b = (e) => {
17
- n.intents.includes(e) || r({
18
- trigger: { ...n, intents: [...n.intents, e] }
13
+ import { Dropdown as M } from "../../dropdown/Dropdown.js";
14
+ import { unwrapDropdownValue as P } from "../../dropdown/utils.js";
15
+ const v = H[1], Z = () => {
16
+ const { value: y, patch: a, availableIntents: m, charLimits: S } = L(), { trigger: n } = y, [_, h] = x.useState(!1), c = (t) => a({ trigger: { ...n, mode: t } }), b = (t) => {
17
+ n.intents.includes(t) || a({
18
+ trigger: { ...n, intents: [...n.intents, t] }
19
19
  }), h(!1);
20
- }, I = (e) => r({
20
+ }, w = (t) => a({
21
21
  trigger: {
22
22
  ...n,
23
- intents: n.intents.filter((c) => c !== e)
23
+ intents: n.intents.filter((r) => r !== t)
24
24
  }
25
- }), u = (e) => m.find((c) => c.value === e)?.label ?? e, s = m.filter((e) => !n.intents.includes(e.value)).map((e) => ({ label: e.label, value: e.value }));
25
+ }), p = (t) => m.find((r) => r.value === t)?.label ?? t, s = m.filter((t) => !n.intents.includes(t.value)).map((t) => ({ label: t.label, value: t.value }));
26
26
  return /* @__PURE__ */ i("div", { children: [
27
- /* @__PURE__ */ t(H, { title: y.title, helper: y.helper }),
28
- /* @__PURE__ */ i(k, { children: [
27
+ /* @__PURE__ */ e(F, { title: v.title, helper: v.helper }),
28
+ /* @__PURE__ */ i(T, { children: [
29
29
  /* @__PURE__ */ i(
30
- C,
30
+ f,
31
31
  {
32
32
  "data-test": "trigger-mode-manifest",
33
33
  selected: n.mode === "manifest_intent",
34
- onClick: () => a("manifest_intent"),
34
+ onClick: () => c("manifest_intent"),
35
35
  children: [
36
- /* @__PURE__ */ t(
37
- g,
36
+ /* @__PURE__ */ e(
37
+ u,
38
38
  {
39
39
  isActive: n.mode === "manifest_intent",
40
- onValueChange: () => a("manifest_intent"),
40
+ onValueChange: () => c("manifest_intent"),
41
41
  skipSelectingOff: !0,
42
42
  activeColor: o.content.brand
43
43
  }
44
44
  ),
45
- /* @__PURE__ */ i(v, { children: [
46
- /* @__PURE__ */ t(l, { color: o.content.primary, children: "Manifest intent" }),
47
- /* @__PURE__ */ t(d, { color: o.content.secondary, children: "Manifest's AI classifier routes conversations automatically — no keywords needed." })
45
+ /* @__PURE__ */ i(C, { children: [
46
+ /* @__PURE__ */ e(l, { color: o.content.primary, children: "Manifest intent" }),
47
+ /* @__PURE__ */ e(d, { color: o.content.secondary, children: "Manifest's AI classifier routes conversations automatically — no keywords needed." })
48
48
  ] })
49
49
  ]
50
50
  }
51
51
  ),
52
52
  /* @__PURE__ */ i(
53
- C,
53
+ f,
54
54
  {
55
55
  "data-test": "trigger-mode-custom",
56
56
  selected: n.mode === "custom_intent",
57
- onClick: () => a("custom_intent"),
57
+ onClick: () => c("custom_intent"),
58
58
  children: [
59
- /* @__PURE__ */ t(
60
- g,
59
+ /* @__PURE__ */ e(
60
+ u,
61
61
  {
62
62
  isActive: n.mode === "custom_intent",
63
- onValueChange: () => a("custom_intent"),
63
+ onValueChange: () => c("custom_intent"),
64
64
  skipSelectingOff: !0,
65
65
  activeColor: o.content.brand
66
66
  }
67
67
  ),
68
- /* @__PURE__ */ i(v, { children: [
69
- /* @__PURE__ */ t(l, { color: o.content.primary, children: "Custom intent" }),
70
- /* @__PURE__ */ t(d, { color: o.content.secondary, children: "Define your own trigger — use exact phrases or describe the customer's intent." })
68
+ /* @__PURE__ */ i(C, { children: [
69
+ /* @__PURE__ */ e(l, { color: o.content.primary, children: "Custom intent" }),
70
+ /* @__PURE__ */ e(d, { color: o.content.secondary, children: "Define your own trigger — use exact phrases or describe the customer's intent." })
71
71
  ] })
72
72
  ]
73
73
  }
74
74
  )
75
75
  ] }),
76
- n.mode === "manifest_intent" ? /* @__PURE__ */ i(x, { children: [
77
- /* @__PURE__ */ t(l, { color: o.content.primary, children: "If customer talks about" }),
78
- /* @__PURE__ */ i(R, { children: [
79
- n.intents.map((e) => /* @__PURE__ */ i(B, { "data-test": `intent-chip-${e}`, children: [
80
- /* @__PURE__ */ t(f, { color: o.content.primary, children: u(e) }),
81
- /* @__PURE__ */ t(
76
+ n.mode === "manifest_intent" ? /* @__PURE__ */ i(A, { children: [
77
+ /* @__PURE__ */ e(l, { color: o.content.primary, children: "If customer talks about" }),
78
+ /* @__PURE__ */ i(B, { children: [
79
+ n.intents.map((t) => /* @__PURE__ */ i(R, { "data-test": `intent-chip-${t}`, children: [
80
+ /* @__PURE__ */ e(g, { color: o.content.primary, children: p(t) }),
81
+ /* @__PURE__ */ e(
82
82
  O,
83
83
  {
84
- onClick: () => I(e),
85
- "aria-label": `Remove ${u(e)}`,
86
- children: /* @__PURE__ */ t(
87
- A,
84
+ onClick: () => w(t),
85
+ "aria-label": `Remove ${p(t)}`,
86
+ children: /* @__PURE__ */ e(
87
+ I,
88
88
  {
89
89
  width: 14,
90
90
  height: 14,
@@ -93,9 +93,9 @@ const y = F[1], Z = () => {
93
93
  )
94
94
  }
95
95
  )
96
- ] }, e)),
97
- _ && s.length > 0 ? /* @__PURE__ */ t(
98
- N,
96
+ ] }, t)),
97
+ _ && s.length > 0 ? /* @__PURE__ */ e(
98
+ M,
99
99
  {
100
100
  "data-test": "intent-add-dropdown",
101
101
  size: "small",
@@ -103,9 +103,9 @@ const y = F[1], Z = () => {
103
103
  placeHolder: "Select intent",
104
104
  isSearchable: !0,
105
105
  options: s,
106
- onSelect: (e) => {
107
- const p = (Array.isArray(e) ? e[0] : e)?.value;
108
- p && b(p);
106
+ onSelect: (t) => {
107
+ const r = P(t);
108
+ r && b(r);
109
109
  }
110
110
  }
111
111
  ) : s.length > 0 && /* @__PURE__ */ i(
@@ -114,28 +114,28 @@ const y = F[1], Z = () => {
114
114
  "data-test": "intent-add-button",
115
115
  onClick: () => h(!0),
116
116
  children: [
117
- /* @__PURE__ */ t(
118
- w,
117
+ /* @__PURE__ */ e(
118
+ k,
119
119
  {
120
120
  width: 16,
121
121
  height: 16,
122
122
  color: o.content.secondary
123
123
  }
124
124
  ),
125
- /* @__PURE__ */ t(f, { color: o.content.secondary, children: "Intent" })
125
+ /* @__PURE__ */ e(g, { color: o.content.secondary, children: "Intent" })
126
126
  ]
127
127
  }
128
128
  )
129
129
  ] }),
130
- /* @__PURE__ */ t(d, { color: o.content.secondary, children: "This agent takes over from your main assistant when this intent is detected. The changeover is automatic when you go live." })
131
- ] }) : /* @__PURE__ */ t(
130
+ /* @__PURE__ */ e(d, { color: o.content.secondary, children: "This agent takes over from your main assistant when this intent is detected. The changeover is automatic when you go live." })
131
+ ] }) : /* @__PURE__ */ e(
132
132
  E,
133
133
  {
134
134
  "data-test": "custom-intent",
135
135
  label: "Describe the trigger",
136
136
  value: n.custom_intent ?? "",
137
- onChange: (e) => r({ trigger: { ...n, custom_intent: e } }),
138
- maxLength: M.custom_intent,
137
+ onChange: (t) => a({ trigger: { ...n, custom_intent: t } }),
138
+ maxLength: S.custom_intent,
139
139
  placeholder: "e.g. The customer wants to cancel an order they placed.",
140
140
  minHeight: "120px"
141
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Step2WhenItStepsIn.js","sources":["../../../../../src/components/agent-builder/steps/Step2WhenItStepsIn.tsx"],"sourcesContent":["import CrossIcon from '@src/assets/icons/cross.svg';\nimport PlusIcon from '@src/assets/icons/plus.svg';\nimport React from 'react';\nimport { Dropdown } from '@src/components/dropdown';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport { RadioButton } from '@src/components/radioButton/RadioButton';\nimport {\n\tBodyCaption,\n\tBodySecondary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { TriggerMode } from '../AgentBuilder.model';\nimport {\n\tAddChipButton,\n\tCardRow,\n\tChipCloseButton,\n\tChipWrap,\n\tFieldBlock,\n\tIntentChip,\n\tRadioCard,\n\tRadioCardText,\n} from '../AgentBuilder.styled';\nimport { AiTextArea } from '../components/AiTextArea';\nimport { StepSectionHeader } from '../components/StepSectionHeader';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nconst STEP = STEP_DEFINITIONS[1];\n\nexport const Step2WhenItStepsIn: React.FC = () => {\n\tconst { value, patch, availableIntents } = useAgentBuilderContext();\n\tconst { trigger } = value;\n\tconst [adding, setAdding] = React.useState(false);\n\n\tconst setMode = (mode: TriggerMode) =>\n\t\tpatch({ trigger: { ...trigger, mode } });\n\n\tconst addIntent = (intentValue: string) => {\n\t\tif (!trigger.intents.includes(intentValue)) {\n\t\t\tpatch({\n\t\t\t\ttrigger: { ...trigger, intents: [...trigger.intents, intentValue] },\n\t\t\t});\n\t\t}\n\t\tsetAdding(false);\n\t};\n\n\tconst removeIntent = (intentValue: string) =>\n\t\tpatch({\n\t\t\ttrigger: {\n\t\t\t\t...trigger,\n\t\t\t\tintents: trigger.intents.filter((i) => i !== intentValue),\n\t\t\t},\n\t\t});\n\n\tconst labelFor = (v: string) =>\n\t\tavailableIntents.find((o) => o.value === v)?.label ?? v;\n\n\tconst remainingOptions: SingleOption[] = availableIntents\n\t\t.filter((o) => !trigger.intents.includes(o.value))\n\t\t.map((o) => ({ label: o.label, value: o.value }));\n\n\treturn (\n\t\t<div>\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<CardRow>\n\t\t\t\t<RadioCard\n\t\t\t\t\tdata-test=\"trigger-mode-manifest\"\n\t\t\t\t\tselected={trigger.mode === 'manifest_intent'}\n\t\t\t\t\tonClick={() => setMode('manifest_intent')}\n\t\t\t\t>\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tisActive={trigger.mode === 'manifest_intent'}\n\t\t\t\t\t\tonValueChange={() => setMode('manifest_intent')}\n\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t/>\n\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\tManifest intent\n\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\tManifest&apos;s AI classifier routes conversations automatically —\n\t\t\t\t\t\t\tno keywords needed.\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t</RadioCardText>\n\t\t\t\t</RadioCard>\n\n\t\t\t\t<RadioCard\n\t\t\t\t\tdata-test=\"trigger-mode-custom\"\n\t\t\t\t\tselected={trigger.mode === 'custom_intent'}\n\t\t\t\t\tonClick={() => setMode('custom_intent')}\n\t\t\t\t>\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tisActive={trigger.mode === 'custom_intent'}\n\t\t\t\t\t\tonValueChange={() => setMode('custom_intent')}\n\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t/>\n\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\tCustom intent\n\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\tDefine your own trigger — use exact phrases or describe the\n\t\t\t\t\t\t\tcustomer&apos;s intent.\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t</RadioCardText>\n\t\t\t\t</RadioCard>\n\t\t\t</CardRow>\n\n\t\t\t{trigger.mode === 'manifest_intent' ? (\n\t\t\t\t<FieldBlock>\n\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\tIf customer talks about\n\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t<ChipWrap>\n\t\t\t\t\t\t{trigger.intents.map((intent) => (\n\t\t\t\t\t\t\t<IntentChip key={intent} data-test={`intent-chip-${intent}`}>\n\t\t\t\t\t\t\t\t<BodySecondary color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\t\t{labelFor(intent)}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<ChipCloseButton\n\t\t\t\t\t\t\t\t\tonClick={() => removeIntent(intent)}\n\t\t\t\t\t\t\t\t\taria-label={`Remove ${labelFor(intent)}`}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CrossIcon\n\t\t\t\t\t\t\t\t\t\twidth={14}\n\t\t\t\t\t\t\t\t\t\theight={14}\n\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ChipCloseButton>\n\t\t\t\t\t\t\t</IntentChip>\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t{adding && remainingOptions.length > 0 ? (\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tdata-test=\"intent-add-dropdown\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\twidth=\"200px\"\n\t\t\t\t\t\t\t\tplaceHolder=\"Select intent\"\n\t\t\t\t\t\t\t\tisSearchable\n\t\t\t\t\t\t\t\toptions={remainingOptions}\n\t\t\t\t\t\t\t\tonSelect={(opt) => {\n\t\t\t\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\t\t\t\tconst v = (single as SingleOption)?.value;\n\t\t\t\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\t\t\t\taddIntent(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) : (\n\t\t\t\t\t\t\tremainingOptions.length > 0 && (\n\t\t\t\t\t\t\t\t<AddChipButton\n\t\t\t\t\t\t\t\t\tdata-test=\"intent-add-button\"\n\t\t\t\t\t\t\t\t\tonClick={() => setAdding(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<PlusIcon\n\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<BodySecondary color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\t\tIntent\n\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t</AddChipButton>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ChipWrap>\n\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\tThis agent takes over from your main assistant when this intent is\n\t\t\t\t\t\tdetected. The changeover is automatic when you go live.\n\t\t\t\t\t</BodyCaption>\n\t\t\t\t</FieldBlock>\n\t\t\t) : (\n\t\t\t\t<AiTextArea\n\t\t\t\t\tdata-test=\"custom-intent\"\n\t\t\t\t\tlabel=\"Describe the trigger\"\n\t\t\t\t\tvalue={trigger.custom_intent ?? ''}\n\t\t\t\t\tonChange={(text) =>\n\t\t\t\t\t\tpatch({ trigger: { ...trigger, custom_intent: text } })\n\t\t\t\t\t}\n\t\t\t\t\tmaxLength={AGENT_CHAR_LIMITS.custom_intent}\n\t\t\t\t\tplaceholder=\"e.g. The customer wants to cancel an order they placed.\"\n\t\t\t\t\tminHeight=\"120px\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step2WhenItStepsIn","value","patch","availableIntents","useAgentBuilderContext","trigger","adding","setAdding","React","setMode","mode","addIntent","intentValue","removeIntent","i","labelFor","v","o","remainingOptions","jsx","StepSectionHeader","CardRow","jsxs","RadioCard","RadioButton","COLORS","RadioCardText","TitleSmall","BodyCaption","FieldBlock","ChipWrap","intent","IntentChip","BodySecondary","ChipCloseButton","CrossIcon","Dropdown","opt","AddChipButton","PlusIcon","AiTextArea","text","AGENT_CHAR_LIMITS"],"mappings":"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"}
1
+ {"version":3,"file":"Step2WhenItStepsIn.js","sources":["../../../../../src/components/agent-builder/steps/Step2WhenItStepsIn.tsx"],"sourcesContent":["import CrossIcon from '@src/assets/icons/cross.svg';\nimport PlusIcon from '@src/assets/icons/plus.svg';\nimport React from 'react';\nimport { Dropdown, unwrapDropdownValue } from '@src/components/dropdown';\nimport { SingleOption } from '@src/components/dropdown/type';\nimport { RadioButton } from '@src/components/radioButton/RadioButton';\nimport {\n\tBodyCaption,\n\tBodySecondary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { TriggerMode } from '../AgentBuilder.model';\nimport {\n\tAddChipButton,\n\tCardRow,\n\tChipCloseButton,\n\tChipWrap,\n\tFieldBlock,\n\tIntentChip,\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[1];\n\nexport const Step2WhenItStepsIn: React.FC = () => {\n\tconst { value, patch, availableIntents, charLimits } =\n\t\tuseAgentBuilderContext();\n\tconst { trigger } = value;\n\tconst [adding, setAdding] = React.useState(false);\n\n\tconst setMode = (mode: TriggerMode) =>\n\t\tpatch({ trigger: { ...trigger, mode } });\n\n\tconst addIntent = (intentValue: string) => {\n\t\tif (!trigger.intents.includes(intentValue)) {\n\t\t\tpatch({\n\t\t\t\ttrigger: { ...trigger, intents: [...trigger.intents, intentValue] },\n\t\t\t});\n\t\t}\n\t\tsetAdding(false);\n\t};\n\n\tconst removeIntent = (intentValue: string) =>\n\t\tpatch({\n\t\t\ttrigger: {\n\t\t\t\t...trigger,\n\t\t\t\tintents: trigger.intents.filter((i) => i !== intentValue),\n\t\t\t},\n\t\t});\n\n\tconst labelFor = (v: string) =>\n\t\tavailableIntents.find((o) => o.value === v)?.label ?? v;\n\n\tconst remainingOptions: SingleOption[] = availableIntents\n\t\t.filter((o) => !trigger.intents.includes(o.value))\n\t\t.map((o) => ({ label: o.label, value: o.value }));\n\n\treturn (\n\t\t<div>\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<CardRow>\n\t\t\t\t<RadioCard\n\t\t\t\t\tdata-test=\"trigger-mode-manifest\"\n\t\t\t\t\tselected={trigger.mode === 'manifest_intent'}\n\t\t\t\t\tonClick={() => setMode('manifest_intent')}\n\t\t\t\t>\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tisActive={trigger.mode === 'manifest_intent'}\n\t\t\t\t\t\tonValueChange={() => setMode('manifest_intent')}\n\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t/>\n\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\tManifest intent\n\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\tManifest&apos;s AI classifier routes conversations automatically —\n\t\t\t\t\t\t\tno keywords needed.\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t</RadioCardText>\n\t\t\t\t</RadioCard>\n\n\t\t\t\t<RadioCard\n\t\t\t\t\tdata-test=\"trigger-mode-custom\"\n\t\t\t\t\tselected={trigger.mode === 'custom_intent'}\n\t\t\t\t\tonClick={() => setMode('custom_intent')}\n\t\t\t\t>\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tisActive={trigger.mode === 'custom_intent'}\n\t\t\t\t\t\tonValueChange={() => setMode('custom_intent')}\n\t\t\t\t\t\tskipSelectingOff\n\t\t\t\t\t\tactiveColor={COLORS.content.brand}\n\t\t\t\t\t/>\n\t\t\t\t\t<RadioCardText>\n\t\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\t\tCustom intent\n\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\t\tDefine your own trigger — use exact phrases or describe the\n\t\t\t\t\t\t\tcustomer&apos;s intent.\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t</RadioCardText>\n\t\t\t\t</RadioCard>\n\t\t\t</CardRow>\n\n\t\t\t{trigger.mode === 'manifest_intent' ? (\n\t\t\t\t<FieldBlock>\n\t\t\t\t\t<TitleSmall color={COLORS.content.primary}>\n\t\t\t\t\t\tIf customer talks about\n\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t<ChipWrap>\n\t\t\t\t\t\t{trigger.intents.map((intent) => (\n\t\t\t\t\t\t\t<IntentChip key={intent} data-test={`intent-chip-${intent}`}>\n\t\t\t\t\t\t\t\t<BodySecondary color={COLORS.content.primary}>\n\t\t\t\t\t\t\t\t\t{labelFor(intent)}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<ChipCloseButton\n\t\t\t\t\t\t\t\t\tonClick={() => removeIntent(intent)}\n\t\t\t\t\t\t\t\t\taria-label={`Remove ${labelFor(intent)}`}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CrossIcon\n\t\t\t\t\t\t\t\t\t\twidth={14}\n\t\t\t\t\t\t\t\t\t\theight={14}\n\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ChipCloseButton>\n\t\t\t\t\t\t\t</IntentChip>\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t{adding && remainingOptions.length > 0 ? (\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tdata-test=\"intent-add-dropdown\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\twidth=\"200px\"\n\t\t\t\t\t\t\t\tplaceHolder=\"Select intent\"\n\t\t\t\t\t\t\t\tisSearchable\n\t\t\t\t\t\t\t\toptions={remainingOptions}\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\taddIntent(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) : (\n\t\t\t\t\t\t\tremainingOptions.length > 0 && (\n\t\t\t\t\t\t\t\t<AddChipButton\n\t\t\t\t\t\t\t\t\tdata-test=\"intent-add-button\"\n\t\t\t\t\t\t\t\t\tonClick={() => setAdding(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<PlusIcon\n\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<BodySecondary color={COLORS.content.secondary}>\n\t\t\t\t\t\t\t\t\t\tIntent\n\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t</AddChipButton>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ChipWrap>\n\t\t\t\t\t<BodyCaption color={COLORS.content.secondary}>\n\t\t\t\t\t\tThis agent takes over from your main assistant when this intent is\n\t\t\t\t\t\tdetected. The changeover is automatic when you go live.\n\t\t\t\t\t</BodyCaption>\n\t\t\t\t</FieldBlock>\n\t\t\t) : (\n\t\t\t\t<AiTextArea\n\t\t\t\t\tdata-test=\"custom-intent\"\n\t\t\t\t\tlabel=\"Describe the trigger\"\n\t\t\t\t\tvalue={trigger.custom_intent ?? ''}\n\t\t\t\t\tonChange={(text) =>\n\t\t\t\t\t\tpatch({ trigger: { ...trigger, custom_intent: text } })\n\t\t\t\t\t}\n\t\t\t\t\tmaxLength={charLimits.custom_intent}\n\t\t\t\t\tplaceholder=\"e.g. The customer wants to cancel an order they placed.\"\n\t\t\t\t\tminHeight=\"120px\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step2WhenItStepsIn","value","patch","availableIntents","charLimits","useAgentBuilderContext","trigger","adding","setAdding","React","setMode","mode","addIntent","intentValue","removeIntent","i","labelFor","v","o","remainingOptions","jsx","StepSectionHeader","CardRow","jsxs","RadioCard","RadioButton","COLORS","RadioCardText","TitleSmall","BodyCaption","FieldBlock","ChipWrap","intent","IntentChip","BodySecondary","ChipCloseButton","CrossIcon","Dropdown","opt","unwrapDropdownValue","AddChipButton","PlusIcon","AiTextArea","text"],"mappings":"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"}
@@ -1,51 +1,49 @@
1
- import { jsxs as c, jsx as l } from "react/jsx-runtime";
2
- import q, { useState as C, useRef as J, useCallback as A, useEffect as Q } from "react";
3
- import { TitleSmall as w } from "../../TypographyStyle.js";
4
- import { COLORS as O } from "../../../constants/Theme.js";
5
- import { Step3Grid as V, Step3Main as X, Step3Side as Y, SideSection as Z } from "../AgentBuilder.styled.js";
6
- import { CreateSubAgentPanel as ee } from "../components/CreateSubAgentPanel.js";
7
- import { MentionField as x } from "../components/MentionField.js";
8
- import { SelectableListSection as E } from "../components/SelectableListSection.js";
9
- import { StepSectionHeader as te } from "../components/StepSectionHeader.js";
10
- import { AGENT_CHAR_LIMITS as R } from "../constants/charLimits.js";
11
- import { STEP_DEFINITIONS as ne } from "../constants/steps.js";
12
- import { useAgentBuilderContext as oe } from "../context/AgentBuilderContext.js";
13
- import { toolSourceLabel as ae, appTypeLabel as le } from "../utils/mentionSerialization.js";
14
- import { SOURCE_ICONS as L } from "../utils/sourceIcons.js";
15
- import { Dropdown as se } from "../../dropdown/Dropdown.js";
16
- const ie = (n) => {
17
- const a = L[n];
18
- return a ? q.createElement(a.Icon, { width: a.w, height: a.h }) : void 0;
19
- }, _ = (n) => ({
1
+ import { jsxs as c, jsx as a } from "react/jsx-runtime";
2
+ import { useState as E, useRef as Y, useCallback as A, useEffect as Z } from "react";
3
+ import { TitleSmall as M } from "../../TypographyStyle.js";
4
+ import { COLORS as L } from "../../../constants/Theme.js";
5
+ import { Step3Grid as ee, Step3Main as te, Step3Side as ne, SideSection as oe } from "../AgentBuilder.styled.js";
6
+ import { CreateSubAgentPanel as ae } from "../components/CreateSubAgentPanel.js";
7
+ import { MentionField as k } from "../components/MentionField.js";
8
+ import { SelectableListSection as R } from "../components/SelectableListSection.js";
9
+ import { StepSectionHeader as le } from "../components/StepSectionHeader.js";
10
+ import { STEP_DEFINITIONS as se } from "../constants/steps.js";
11
+ import { useAgentBuilderContext as ie } from "../context/AgentBuilderContext.js";
12
+ import { toolSourceLabel as re, buildAgentMentionItems as P, appTypeLabel as N } from "../utils/mentionSerialization.js";
13
+ import { SOURCE_ICONS as F, renderSourceIcon as ce } from "../utils/sourceIcons.js";
14
+ import { Dropdown as ue } from "../../dropdown/Dropdown.js";
15
+ import { unwrapDropdownValue as de } from "../../dropdown/utils.js";
16
+ const pe = (n) => ce(F[n]) ?? void 0, _ = (n) => ({
20
17
  label: n.display_name,
21
18
  value: n.tool_id,
22
- leadingIcon: ie(n.source ?? "manifest")
23
- }), k = ne[2], Te = () => {
19
+ leadingIcon: pe(n.source ?? "manifest")
20
+ }), H = se[2], Ee = () => {
24
21
  const {
25
22
  value: n,
26
- patch: a,
27
- updateField: M,
28
- removeReference: I,
29
- availableTools: u,
30
- availableSubAgents: N,
23
+ patch: u,
24
+ updateField: G,
25
+ removeReference: C,
26
+ availableTools: r,
27
+ availableSubAgents: D,
31
28
  availableModels: f,
32
- applicationType: P,
29
+ applicationType: T,
30
+ charLimits: h,
33
31
  insertMention: d,
34
- onCreateSubAgent: i,
32
+ onCreateSubAgent: s,
35
33
  onFetchSubAgent: p,
36
- onUpdateSubAgent: h,
37
- onImproveSubAgent: H,
38
- registerSubAgentCreator: S
39
- } = oe(), [s, m] = C(null), g = J(0), [G, T] = C([]), b = /* @__PURE__ */ new Map();
40
- N.forEach((e) => b.set(e.id, e)), G.forEach((e) => b.set(e.id, e));
41
- const F = Array.from(b.values()), v = A(() => {
34
+ onUpdateSubAgent: S,
35
+ onImproveSubAgent: K,
36
+ registerSubAgentCreator: v
37
+ } = ie(), [l, m] = E(null), g = Y(0), [j, w] = E([]), b = /* @__PURE__ */ new Map();
38
+ D.forEach((e) => b.set(e.id, e)), j.forEach((e) => b.set(e.id, e));
39
+ const O = Array.from(b.values()), y = A(() => {
42
40
  g.current += 1, m({ key: g.current, title: "Create sub-agent" });
43
41
  }, []);
44
- Q(() => {
45
- if (i)
46
- return S(v), () => S(null);
47
- }, [S, v, i]);
48
- const K = A(
42
+ Z(() => {
43
+ if (s)
44
+ return v(y), () => v(null);
45
+ }, [v, y, s]);
46
+ const B = A(
49
47
  async (e) => {
50
48
  if (!p)
51
49
  return;
@@ -58,161 +56,168 @@ const ie = (n) => {
58
56
  });
59
57
  },
60
58
  [p]
61
- ), j = A(
59
+ ), U = A(
62
60
  async (e) => {
63
- if (s?.editingId) {
64
- if (h) {
65
- const t = await h(s.editingId, e);
66
- T((o) => [
67
- ...o.filter((r) => r.id !== t.id),
61
+ if (l?.editingId) {
62
+ if (S) {
63
+ const t = await S(l.editingId, e);
64
+ w((o) => [
65
+ ...o.filter((i) => i.id !== t.id),
68
66
  t
69
67
  ]);
70
68
  }
71
- } else if (i) {
72
- const t = await i(e);
73
- T((o) => [...o, t]), a({ subagents: [...n.subagents, t.id] }), d("subagent", t.id, `sub-agent: ${t.name}`);
69
+ } else if (s) {
70
+ const t = await s(e);
71
+ w((o) => [...o, t]), u({ subagents: [...n.subagents, t.id] }), d("subagent", t.id, `sub-agent: ${t.name}`);
74
72
  }
75
73
  m(null);
76
74
  },
77
75
  [
76
+ l,
77
+ S,
78
78
  s,
79
- h,
80
- i,
81
- a,
79
+ u,
82
80
  n.subagents,
83
81
  d
84
82
  ]
85
- ), B = n.tools.map((e) => {
86
- const t = u.find((o) => o.tool_id === e);
83
+ ), z = n.tools.map((e) => {
84
+ const t = r.find((o) => o.tool_id === e);
87
85
  return t ? {
88
86
  id: e,
89
87
  label: t.display_name,
90
- icon: L[t.source ?? "manifest"]
88
+ icon: F[t.source ?? "manifest"]
91
89
  } : null;
92
- }).filter((e) => e !== null), D = u.map(_), U = (() => {
90
+ }).filter((e) => e !== null), V = r.map(_), W = (() => {
93
91
  const e = [], t = /* @__PURE__ */ new Map();
94
- return u.forEach((o) => {
95
- const r = o.source ?? "manifest";
96
- t.has(r) || (t.set(r, []), e.push(r)), t.get(r)?.push(_(o));
92
+ return r.forEach((o) => {
93
+ const i = o.source ?? "manifest";
94
+ t.has(i) || (t.set(i, []), e.push(i)), t.get(i)?.push(_(o));
97
95
  }), e.map((o) => ({
98
96
  source: o,
99
- label: ae(o),
97
+ label: re(o),
100
98
  options: t.get(o) ?? []
101
99
  }));
102
- })(), z = n.subagents.map((e) => {
100
+ })(), $ = n.subagents.map((e) => {
103
101
  const t = b.get(e);
104
102
  return t ? { id: e, label: t.name } : null;
105
- }).filter((e) => e !== null), W = F.map((e) => ({
103
+ }).filter((e) => e !== null), q = O.map((e) => ({
106
104
  label: e.name,
107
105
  value: e.id
108
- })), $ = f.map((e) => ({
106
+ })), x = N(T), J = P(r, [], x), Q = P(
107
+ [],
108
+ O,
109
+ x
110
+ ), X = f.map((e) => ({
109
111
  label: e.label,
110
112
  value: e.value,
111
113
  selected: e.value === n.model
112
- })), y = f.find((e) => e.value === n.model);
114
+ })), I = f.find((e) => e.value === n.model);
113
115
  return /* @__PURE__ */ c("div", { className: "bik-agent-step bik-agent-step--response", children: [
114
- /* @__PURE__ */ l(te, { title: k.title, helper: k.helper }),
115
- /* @__PURE__ */ c(V, { children: [
116
- /* @__PURE__ */ c(X, { children: [
117
- /* @__PURE__ */ l(
118
- x,
116
+ /* @__PURE__ */ a(le, { title: H.title, helper: H.helper }),
117
+ /* @__PURE__ */ c(ee, { children: [
118
+ /* @__PURE__ */ c(te, { children: [
119
+ /* @__PURE__ */ a(
120
+ k,
119
121
  {
120
122
  fieldKey: "instructions",
121
123
  "data-test": "agent-instructions",
122
124
  label: "Instructions",
123
- maxLength: R.instructions,
125
+ maxLength: h.instructions,
124
126
  placeholder: "Write what this agent should do. Type @ to reference a tool or sub-agent.",
125
127
  minHeight: "200px"
126
128
  }
127
129
  ),
128
- /* @__PURE__ */ l(
129
- x,
130
+ /* @__PURE__ */ a(
131
+ k,
130
132
  {
131
133
  fieldKey: "guardrail",
132
134
  "data-test": "agent-guardrail",
133
135
  label: "Guardrails",
134
- maxLength: R.guardrail,
136
+ maxLength: h.guardrail,
135
137
  placeholder: "Things this agent must never do. Type @ to reference a tool or sub-agent.",
136
138
  minHeight: "140px"
137
139
  }
138
140
  )
139
141
  ] }),
140
- /* @__PURE__ */ c(Y, { children: [
141
- /* @__PURE__ */ l(
142
- E,
142
+ /* @__PURE__ */ c(ne, { children: [
143
+ /* @__PURE__ */ a(
144
+ R,
143
145
  {
144
146
  title: "Tools",
145
147
  helper: "Actions this agent can take while responding.",
146
148
  dataTestPrefix: "agent-tools",
147
- items: B,
148
- addableOptions: D,
149
- sourceGroups: U,
149
+ items: z,
150
+ addableOptions: V,
151
+ sourceGroups: W,
152
+ mentionItems: J,
150
153
  emptyText: "No tools added yet.",
151
154
  onAdd: (e) => {
152
- d("tool", e), n.tools.includes(e) || a({ tools: [...n.tools, e] });
155
+ d("tool", e), n.tools.includes(e) || u({ tools: [...n.tools, e] });
153
156
  },
154
- onRemove: (e) => I("tool", e)
157
+ onRemove: (e) => C("tool", e)
155
158
  }
156
159
  ),
157
- /* @__PURE__ */ l(
158
- E,
160
+ /* @__PURE__ */ a(
161
+ R,
159
162
  {
160
163
  title: "Sub-agents",
161
164
  helper: "Other agents this agent can hand off the conversation to.",
162
165
  dataTestPrefix: "agent-subagents",
163
- items: z,
164
- addableOptions: W,
166
+ items: $,
167
+ addableOptions: q,
168
+ mentionItems: Q,
165
169
  emptyText: "No sub-agents added yet.",
166
170
  onAdd: (e) => {
167
- d("subagent", e), n.subagents.includes(e) || a({ subagents: [...n.subagents, e] });
171
+ d("subagent", e), n.subagents.includes(e) || u({ subagents: [...n.subagents, e] });
168
172
  },
169
- onRemove: (e) => I("subagent", e),
170
- onConfigure: p ? K : void 0,
171
- createOption: i ? { label: "Create new", onSelect: v } : void 0
173
+ onRemove: (e) => C("subagent", e),
174
+ onConfigure: p ? B : void 0,
175
+ createOption: s ? { label: "Create new", onSelect: y } : void 0
172
176
  }
173
177
  ),
174
- f.length > 0 && /* @__PURE__ */ c(Z, { children: [
175
- /* @__PURE__ */ l(w, { color: O.content.primary, children: "Advanced settings" }),
176
- /* @__PURE__ */ l(w, { color: O.content.secondary, children: "Select AI model" }),
177
- /* @__PURE__ */ l(
178
- se,
178
+ f.length > 0 && /* @__PURE__ */ c(oe, { children: [
179
+ /* @__PURE__ */ a(M, { color: L.content.primary, children: "Advanced settings" }),
180
+ /* @__PURE__ */ a(M, { color: L.content.secondary, children: "Select AI model" }),
181
+ /* @__PURE__ */ a(
182
+ ue,
179
183
  {
180
184
  "data-test": "agent-model",
181
185
  size: "small",
182
186
  width: "100%",
183
187
  placeHolder: "Select model",
184
- options: $,
185
- defaultOptions: y ? [
188
+ options: X,
189
+ defaultOptions: I ? [
186
190
  {
187
- label: y.label,
188
- value: y.value
191
+ label: I.label,
192
+ value: I.value
189
193
  }
190
194
  ] : void 0,
191
195
  onSelect: (e) => {
192
- const o = (Array.isArray(e) ? e[0] : e)?.value;
193
- o && M("model", o);
196
+ const t = de(e);
197
+ t && G("model", t);
194
198
  }
195
199
  }
196
200
  )
197
201
  ] })
198
202
  ] })
199
203
  ] }),
200
- s && /* @__PURE__ */ l(
201
- ee,
204
+ l && /* @__PURE__ */ a(
205
+ ae,
202
206
  {
203
- title: s.title,
204
- initial: s.initial,
205
- availableTools: u,
206
- appLabel: le(P),
207
- onImprove: H,
207
+ title: l.title,
208
+ initial: l.initial,
209
+ availableTools: r,
210
+ appLabel: N(T),
211
+ charLimits: h,
212
+ onImprove: K,
208
213
  onClose: () => m(null),
209
- onSave: j
214
+ onSave: U
210
215
  },
211
- s.key
216
+ l.key
212
217
  )
213
218
  ] });
214
219
  };
215
220
  export {
216
- Te as Step3HowItResponds
221
+ Ee as Step3HowItResponds
217
222
  };
218
223
  //# sourceMappingURL=Step3HowItResponds.js.map