@bikdotai/bik-component-library 0.0.850-tools-beta.0 → 0.0.850

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 (133) hide show
  1. package/dist/cjs/assets/icons/ShipStation.svg.js +1 -1
  2. package/dist/cjs/assets/icons/ShipStation.svg.js.map +1 -1
  3. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +40 -22
  4. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js +1 -1
  6. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +5 -5
  8. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/DiscardModal.js +1 -1
  10. package/dist/cjs/components/agent-builder/components/DiscardModal.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/components/GoLiveModal.js +1 -1
  12. package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/components/MentionEditor.js +1 -1
  14. package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
  15. package/dist/cjs/components/agent-builder/components/MentionPicker.js +32 -24
  16. package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
  17. package/dist/cjs/components/agent-builder/components/RequireVerificationModal.js +1 -1
  18. package/dist/cjs/components/agent-builder/components/RequireVerificationModal.js.map +1 -1
  19. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +4 -4
  20. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  21. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +2 -2
  22. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  23. package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
  24. package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
  25. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  26. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  27. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  28. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  29. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +2 -2
  30. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  31. package/dist/cjs/components/agent-builder/utils/sourceIcons.js +1 -1
  32. package/dist/cjs/components/agent-builder/utils/sourceIcons.js.map +1 -1
  33. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  34. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  35. package/dist/cjs/components/agent-listing/AgentTable.js +1 -1
  36. package/dist/cjs/components/agent-listing/AgentTable.js.map +1 -1
  37. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  38. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  39. package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js +2 -0
  40. package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
  41. package/dist/cjs/editor/BikEditor.js +1 -1
  42. package/dist/cjs/editor/BikEditor.js.map +1 -1
  43. package/dist/cjs/editor/BikEditor.styles.js +21 -16
  44. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  45. package/dist/cjs/editor/BikEditor.types.js.map +1 -1
  46. package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
  47. package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
  48. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js +3 -3
  49. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
  50. package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js +2 -0
  51. package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
  52. package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
  53. package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
  54. package/dist/cjs/icons/Informational/Common UI/ShieldOutline.js +2 -0
  55. package/dist/cjs/icons/Informational/Common UI/ShieldOutline.js.map +1 -0
  56. package/dist/cjs/icons/index.js +1 -1
  57. package/dist/esm/assets/icons/ShipStation.svg.js +2 -2
  58. package/dist/esm/assets/icons/ShipStation.svg.js.map +1 -1
  59. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +3 -0
  60. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +61 -42
  61. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  62. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +1 -1
  63. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  64. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +5 -0
  65. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +243 -227
  66. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  67. package/dist/esm/components/agent-builder/components/DiscardModal.js +57 -49
  68. package/dist/esm/components/agent-builder/components/DiscardModal.js.map +1 -1
  69. package/dist/esm/components/agent-builder/components/GoLiveModal.js +26 -22
  70. package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
  71. package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +1 -1
  72. package/dist/esm/components/agent-builder/components/MentionEditor.js +93 -77
  73. package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
  74. package/dist/esm/components/agent-builder/components/MentionPicker.js +194 -168
  75. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  76. package/dist/esm/components/agent-builder/components/RequireVerificationModal.js +5 -5
  77. package/dist/esm/components/agent-builder/components/RequireVerificationModal.js.map +1 -1
  78. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +118 -109
  79. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  80. package/dist/esm/components/agent-builder/components/SelectableListSection.js +149 -133
  81. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  82. package/dist/esm/components/agent-builder/constants/tools.d.ts +9 -11
  83. package/dist/esm/components/agent-builder/constants/tools.js +24 -21
  84. package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
  85. package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +6 -2
  86. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +46 -43
  87. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  88. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +209 -183
  89. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  90. package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +3 -2
  91. package/dist/esm/components/agent-builder/utils/mentionSerialization.js +24 -19
  92. package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  93. package/dist/esm/components/agent-builder/utils/sourceIcons.d.ts +9 -1
  94. package/dist/esm/components/agent-builder/utils/sourceIcons.js +15 -9
  95. package/dist/esm/components/agent-builder/utils/sourceIcons.js.map +1 -1
  96. package/dist/esm/components/agent-listing/AgentListing.js +79 -83
  97. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  98. package/dist/esm/components/agent-listing/AgentListing.model.d.ts +6 -0
  99. package/dist/esm/components/agent-listing/AgentTable.d.ts +2 -0
  100. package/dist/esm/components/agent-listing/AgentTable.js +29 -27
  101. package/dist/esm/components/agent-listing/AgentTable.js.map +1 -1
  102. package/dist/esm/components/agent-listing/AgentTableRow.d.ts +2 -0
  103. package/dist/esm/components/agent-listing/AgentTableRow.js +51 -37
  104. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  105. package/dist/esm/components/agent-listing/AiAgentsEmptyState.d.ts +22 -0
  106. package/dist/esm/components/agent-listing/AiAgentsEmptyState.js +22 -0
  107. package/dist/esm/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
  108. package/dist/esm/editor/BikEditor.js +129 -126
  109. package/dist/esm/editor/BikEditor.js.map +1 -1
  110. package/dist/esm/editor/BikEditor.styles.js +24 -19
  111. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  112. package/dist/esm/editor/BikEditor.types.d.ts +17 -0
  113. package/dist/esm/editor/BikEditor.types.js.map +1 -1
  114. package/dist/esm/editor/extensions/buildExtensions.d.ts +7 -0
  115. package/dist/esm/editor/extensions/buildExtensions.js +30 -24
  116. package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
  117. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.d.ts +20 -3
  118. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js +40 -25
  119. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
  120. package/dist/esm/editor/extensions/mention/MentionChipNodeView.d.ts +17 -0
  121. package/dist/esm/editor/extensions/mention/MentionChipNodeView.js +39 -0
  122. package/dist/esm/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
  123. package/dist/esm/editor/extensions/mention/MentionExtension.d.ts +1 -1
  124. package/dist/esm/editor/extensions/mention/MentionExtension.js +67 -45
  125. package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
  126. package/dist/esm/icons/Informational/Common UI/ShieldOutline.d.ts +7 -0
  127. package/dist/esm/icons/Informational/Common UI/ShieldOutline.js +35 -0
  128. package/dist/esm/icons/Informational/Common UI/ShieldOutline.js.map +1 -0
  129. package/dist/esm/icons/Informational/Common UI/index.d.ts +1 -0
  130. package/dist/esm/icons/index.d.ts +25 -25
  131. package/dist/esm/icons/index.js +172 -170
  132. package/dist/esm/icons/index.js.map +1 -1
  133. package/package.json +1 -1
@@ -1,29 +1,29 @@
1
- import { jsxs as it, Fragment as Ot, jsx as c } from "react/jsx-runtime";
2
- import { useState as r, useRef as h, useMemo as Kt, useCallback as a } from "react";
3
- import Nt from "styled-components";
4
- import { addUnique as lt } from "../../../utils/arrayUtils.js";
5
- import { COLORS as F } from "../../../constants/Theme.js";
6
- import { AGENT_CHAR_LIMITS as Dt } from "../constants/charLimits.js";
7
- import { CONFIG_TOOL_SOURCES as Gt, ToolSource as p } from "../constants/tools.js";
8
- import { buildAgentMentionItems as Bt, buildCustomToolMentionItems as Pt, restApiMentionItem as zt, configToolMentionItem as Lt, restApiToolName as Ut, configToolName as Ht, toolSourceLabel as $t } from "../utils/mentionSerialization.js";
9
- import { sourceIcon as j, SOURCE_ICONS as at, renderSourceIcon as ct } from "../utils/sourceIcons.js";
10
- import { buildToolActions as Ft } from "../utils/toolActions.js";
11
- import { ConfigToolPanel as jt } from "./ConfigToolPanel.js";
12
- import { DRAWER_BODY_STYLE as Wt, DRAWER_HEADER_STYLE as Yt, DrawerHeaderText as Xt } from "./DrawerHeaderText.js";
13
- import { MentionEditor as ut } from "./MentionEditor.js";
14
- import { RestApiToolPanel as Zt } from "./RestApiToolPanel.js";
15
- import { SelectableListSection as qt } from "./SelectableListSection.js";
16
- import { SideModal as Jt } from "../../side-modal/SideModal.js";
17
- import { Input as Qt } from "../../input/Input.js";
18
- import { Toaster as Vt } from "../../toaster/Toaster.js";
19
- const te = 1e3, W = 1002, dt = (x, f) => {
1
+ import { jsxs as le, Fragment as Ne, jsx as c } from "react/jsx-runtime";
2
+ import { useState as i, useRef as y, useMemo as Ge, useCallback as l } from "react";
3
+ import Be from "styled-components";
4
+ import { addUnique as ce } from "../../../utils/arrayUtils.js";
5
+ import { COLORS as W } from "../../../constants/Theme.js";
6
+ import { AGENT_CHAR_LIMITS as Le } from "../constants/charLimits.js";
7
+ import { CONFIG_TOOL_SOURCES as Pe, ToolSource as u } from "../constants/tools.js";
8
+ import { buildAgentMentionItems as ze, buildCustomToolMentionItems as He, restApiMentionItem as Ue, configToolMentionItem as $e, restApiToolName as Fe, configToolName as je, toolSourceLabel as We } from "../utils/mentionSerialization.js";
9
+ import { sourceIcon as Y, SOURCE_ICONS as ue, renderSourceIcon as de } from "../utils/sourceIcons.js";
10
+ import { buildToolActions as Ye } from "../utils/toolActions.js";
11
+ import { ConfigToolPanel as Xe } from "./ConfigToolPanel.js";
12
+ import { DRAWER_BODY_STYLE as Ze, DRAWER_HEADER_STYLE as qe, DrawerHeaderText as Je } from "./DrawerHeaderText.js";
13
+ import { MentionEditor as me } from "./MentionEditor.js";
14
+ import { RestApiToolPanel as Qe } from "./RestApiToolPanel.js";
15
+ import { SelectableListSection as Ve } from "./SelectableListSection.js";
16
+ import { SideModal as et } from "../../side-modal/SideModal.js";
17
+ import { Input as tt } from "../../input/Input.js";
18
+ import { Toaster as ot } from "../../toaster/Toaster.js";
19
+ const nt = 1e3, X = 1002, pe = (x, g) => {
20
20
  const s = x ?? [];
21
- return s.some((u) => u.id === f.id) ? s.map((u) => u.id === f.id ? f : u) : [...s, f];
22
- }, mt = Nt.button`
21
+ return s.some((d) => d.id === g.id) ? s.map((d) => d.id === g.id ? g : d) : [...s, g];
22
+ }, ge = Be.button`
23
23
  align-self: flex-start;
24
- border: 1px solid ${F.stroke.primary};
25
- color: ${F.content.primary};
26
- background: ${F.surface.standard};
24
+ border: 1px solid ${W.stroke.primary};
25
+ color: ${W.content.primary};
26
+ background: ${W.surface.standard};
27
27
  border-radius: 8px;
28
28
  padding: 6px 12px;
29
29
  font-size: 13px;
@@ -35,193 +35,207 @@ const te = 1e3, W = 1002, dt = (x, f) => {
35
35
  cursor: default;
36
36
  opacity: 0.6;
37
37
  }
38
- `, be = ({
38
+ `, St = ({
39
39
  onClose: x,
40
- onSave: f,
40
+ onSave: g,
41
41
  availableTools: s,
42
- onImprove: u,
43
- onImproveToolInstructions: Y,
44
- configToolTemplates: X,
45
- title: Z = "Create sub-agent",
46
- initial: g,
47
- appLabel: q = "Manifest",
48
- charLimits: T = Dt
42
+ onImprove: d,
43
+ onImproveToolInstructions: Z,
44
+ configToolTemplates: q,
45
+ title: J = "Create sub-agent",
46
+ initial: f,
47
+ existingNames: fe = [],
48
+ appLabel: Q = "Manifest",
49
+ charLimits: b = Le
49
50
  }) => {
50
- const [M, pt] = r(g?.name ?? ""), [b, A] = r(g?.instructions ?? ""), [I, R] = r(g?.guardrail ?? ""), [w, _] = r(g?.tools ?? []), [m, O] = r(
51
- g?.configTools ?? []
52
- ), [d, K] = r(
53
- g?.restApiTools ?? []
54
- ), [i, y] = r(null), k = h(0), [J, Q] = r(!1), [ft, N] = r(0), [gt, D] = r(0), [S, V] = r(null), G = Kt(
51
+ const [E, he] = i(f?.name ?? ""), [T, A] = i(f?.instructions ?? ""), [C, R] = i(f?.guardrail ?? ""), [M, _] = i(f?.tools ?? []), [p, O] = i(
52
+ f?.configTools ?? []
53
+ ), [m, D] = i(
54
+ f?.restApiTools ?? []
55
+ ), [a, h] = i(null), w = y(0), [V, ee] = i(!1), [ye, K] = i(0), [be, N] = i(0), [I, te] = i(null), G = Ge(
55
56
  () => [
56
- ...Bt(s, [], q),
57
- ...Pt(m, d)
57
+ ...ze(s, [], Q),
58
+ ...He(p, m)
58
59
  ],
59
- [s, q, m, d]
60
- ), E = h({}), B = h("instructions"), yt = a((t) => {
61
- E.current.instructions = t ?? void 0;
62
- }, []), ht = a((t) => {
63
- E.current.guardrail = t ?? void 0;
64
- }, []), Tt = a(() => {
60
+ [s, Q, p, m]
61
+ ), k = y({}), B = y("instructions"), Te = l((e) => {
62
+ k.current.instructions = e ?? void 0;
63
+ }, []), Ce = l((e) => {
64
+ k.current.guardrail = e ?? void 0;
65
+ }, []), Ie = l(() => {
65
66
  B.current = "instructions";
66
- }, []), bt = a(() => {
67
+ }, []), Se = l(() => {
67
68
  B.current = "guardrail";
68
- }, []), tt = h(/* @__PURE__ */ new Set());
69
- tt.current = new Set(
70
- [...m, ...d].map((t) => t.id)
69
+ }, []), oe = y(/* @__PURE__ */ new Set());
70
+ oe.current = new Set(
71
+ [...p, ...m].map((e) => e.id)
71
72
  );
72
- const et = a(
73
- (t, e) => {
74
- t === "tool" && !tt.current.has(e) && _((o) => lt(o, e));
73
+ const ne = l(
74
+ (e, t) => {
75
+ e === "tool" && !oe.current.has(t) && _((o) => ce(o, t));
75
76
  },
76
77
  []
77
- ), C = a((t, e) => {
78
- (E.current[B.current] ?? E.current.instructions)?.("tool", t, e);
79
- }, []), P = a((t) => {
80
- k.current += 1, y({
81
- key: k.current,
78
+ ), S = l(
79
+ (e, t, o) => {
80
+ (k.current[B.current] ?? k.current.instructions)?.("tool", e, t, o);
81
+ },
82
+ []
83
+ ), L = l((e) => {
84
+ w.current += 1, h({
85
+ key: w.current,
82
86
  kind: "restapi",
83
- initialRest: t
87
+ initialRest: e
84
88
  });
85
- }, []), z = a(
86
- (t, e) => {
87
- k.current += 1, y({
88
- key: k.current,
89
+ }, []), P = l(
90
+ (e, t) => {
91
+ w.current += 1, h({
92
+ key: w.current,
89
93
  kind: "config",
90
- toolKey: t,
91
- initialConfig: e
94
+ toolKey: e,
95
+ initialConfig: t
92
96
  });
93
97
  },
94
98
  []
95
- ), It = a(
96
- (t) => {
97
- const e = Gt[t];
98
- e ? z(e) : P();
99
+ ), ve = l(
100
+ (e) => {
101
+ const t = Pe[e];
102
+ t ? P(t) : L();
99
103
  },
100
- [z, P]
101
- ), St = a(
102
- (t) => {
103
- const e = !d.some((o) => o.id === t.id);
104
- K((o) => dt(o, t)), e && C(t.id, zt(t).label), y(null);
104
+ [P, L]
105
+ ), xe = l(
106
+ (e) => {
107
+ const t = !m.some((o) => o.id === e.id);
108
+ D((o) => pe(o, e)), t && S(
109
+ e.id,
110
+ Ue(e).label,
111
+ u.RestApi
112
+ ), h(null);
105
113
  },
106
- [d, C]
107
- ), Ct = a(
108
- (t) => {
109
- const e = !m.some((o) => o.id === t.id);
110
- O((o) => dt(o, t)), e && C(t.id, Lt(t).label), y(null);
114
+ [m, S]
115
+ ), Ae = l(
116
+ (e) => {
117
+ const t = !p.some((o) => o.id === e.id);
118
+ if (O((o) => pe(o, e)), t) {
119
+ const o = e.tool_key === "send_slack_message" ? u.Slack : u.EmailHandover;
120
+ S(e.id, $e(e).label, o);
121
+ }
122
+ h(null);
111
123
  },
112
- [m, C]
113
- ), [L, U] = r(
124
+ [p, S]
125
+ ), [z, H] = i(
114
126
  null
115
- ), H = h(null), ot = h(0), vt = (t) => {
116
- const e = s.find((n) => n.tool_id === t)?.display_name ?? d.find((n) => n.id === t)?.name ?? "Tool", o = `{{tool:${t}}}`, l = (n) => n.split(o).join("");
117
- H.current = {
118
- instructions: b,
119
- guardrail: I,
120
- tools: w,
121
- configTools: m,
122
- restApiTools: d
123
- }, A((n) => l(n)), R((n) => l(n)), _((n) => n.filter((v) => v !== t)), O((n) => n.filter((v) => v.id !== t)), K((n) => n.filter((v) => v.id !== t)), N((n) => n + 1), D((n) => n + 1), ot.current += 1, U({ id: ot.current, message: `Tool "${e}" removed` });
124
- }, xt = () => {
125
- const t = H.current;
126
- t && (A(t.instructions), R(t.guardrail), _(t.tools), O(t.configTools), K(t.restApiTools), N((e) => e + 1), D((e) => e + 1), H.current = null), U(null);
127
- }, nt = M.trim().length > 0 && (b.trim().length > 0 || I.trim().length > 0), At = w.map((t) => {
128
- const e = s.find((o) => o.tool_id === t);
129
- return e ? {
130
- id: t,
131
- label: e.display_name,
132
- icon: j(e.source ?? p.Manifest)
127
+ ), U = y(null), se = y(0), Re = (e) => {
128
+ const t = s.find((n) => n.tool_id === e)?.display_name ?? m.find((n) => n.id === e)?.name ?? "Tool", o = `{{tool:${e}}}`, r = (n) => n.split(o).join("");
129
+ U.current = {
130
+ instructions: T,
131
+ guardrail: C,
132
+ tools: M,
133
+ configTools: p,
134
+ restApiTools: m
135
+ }, A((n) => r(n)), R((n) => r(n)), _((n) => n.filter((v) => v !== e)), O((n) => n.filter((v) => v.id !== e)), D((n) => n.filter((v) => v.id !== e)), K((n) => n + 1), N((n) => n + 1), se.current += 1, H({ id: se.current, message: `Tool "${t}" removed` });
136
+ }, _e = () => {
137
+ const e = U.current;
138
+ e && (A(e.instructions), R(e.guardrail), _(e.tools), O(e.configTools), D(e.restApiTools), K((t) => t + 1), N((t) => t + 1), U.current = null), H(null);
139
+ }, $ = E.trim(), F = $.length > 0 && fe.some(
140
+ (e) => e.trim().toLowerCase() === $.toLowerCase()
141
+ ), re = $.length > 0 && !F && (T.trim().length > 0 || C.trim().length > 0), we = M.map((e) => {
142
+ const t = s.find((o) => o.tool_id === e);
143
+ return t ? {
144
+ id: e,
145
+ label: t.display_name,
146
+ icon: Y(t.source ?? u.Manifest)
133
147
  } : null;
134
- }).filter((t) => t !== null), Rt = d.map((t) => ({
135
- id: t.id,
136
- label: Ut(t),
137
- icon: at[p.RestApi],
138
- onConfigure: () => P(t)
139
- })), _t = m.map((t) => ({
140
- id: t.id,
141
- label: Ht(t),
142
- icon: at[t.tool_key === "send_slack_message" ? p.Slack : p.EmailHandover],
143
- onConfigure: () => z(t.tool_key, t)
144
- })), kt = [
145
- ...At,
146
- ...Rt,
147
- ..._t
148
- ], $ = Ft(
149
- X,
150
- It
151
- ), st = i?.kind === "config" && i.toolKey ? X?.[i.toolKey] : void 0, Et = s.map((t) => ({
152
- label: t.display_name,
153
- value: t.tool_id,
154
- leadingIcon: ct(j(t.source ?? p.Manifest)) ?? void 0
155
- })), Mt = (() => {
156
- const t = [], e = /* @__PURE__ */ new Map();
148
+ }).filter((e) => e !== null), ke = m.map((e) => ({
149
+ id: e.id,
150
+ label: Fe(e),
151
+ icon: ue[u.RestApi],
152
+ onConfigure: () => L(e)
153
+ })), Ee = p.map((e) => ({
154
+ id: e.id,
155
+ label: je(e),
156
+ icon: ue[e.tool_key === "send_slack_message" ? u.Slack : u.EmailHandover],
157
+ onConfigure: () => P(e.tool_key, e)
158
+ })), Me = [
159
+ ...we,
160
+ ...ke,
161
+ ...Ee
162
+ ], j = Ye(
163
+ q,
164
+ ve
165
+ ), ie = a?.kind === "config" && a.toolKey ? q?.[a.toolKey] : void 0, Oe = s.map((e) => ({
166
+ label: e.display_name,
167
+ value: e.tool_id,
168
+ leadingIcon: de(Y(e.source ?? u.Manifest)) ?? void 0
169
+ })), De = (() => {
170
+ const e = [], t = /* @__PURE__ */ new Map();
157
171
  return s.forEach((o) => {
158
- const l = o.source ?? p.Manifest;
159
- e.has(l) || (e.set(l, []), t.push(l)), e.get(l)?.push({
172
+ const r = o.source ?? u.Manifest;
173
+ t.has(r) || (t.set(r, []), e.push(r)), t.get(r)?.push({
160
174
  label: o.display_name,
161
175
  value: o.tool_id,
162
- leadingIcon: ct(j(o.source ?? p.Manifest)) ?? void 0
176
+ leadingIcon: de(Y(o.source ?? u.Manifest)) ?? void 0
163
177
  });
164
- }), t.map((o) => ({
178
+ }), e.map((o) => ({
165
179
  source: o,
166
- label: $t(o),
167
- options: e.get(o) ?? []
180
+ label: We(o),
181
+ options: t.get(o) ?? []
168
182
  }));
169
- })(), wt = async () => {
170
- if (!nt || J)
183
+ })(), Ke = async () => {
184
+ if (!re || V)
171
185
  return;
172
- const t = f({
173
- name: M.trim(),
174
- instructions: b,
175
- guardrail: I,
176
- tools: w,
177
- configTools: m,
178
- restApiTools: d
186
+ const e = g({
187
+ name: E.trim(),
188
+ instructions: T,
189
+ guardrail: C,
190
+ tools: M,
191
+ configTools: p,
192
+ restApiTools: m
179
193
  });
180
- if (t && typeof t.then == "function") {
181
- Q(!0);
194
+ if (e && typeof e.then == "function") {
195
+ ee(!0);
182
196
  try {
183
- await t;
197
+ await e;
184
198
  } finally {
185
- Q(!1);
199
+ ee(!1);
186
200
  }
187
201
  }
188
- }, rt = async (t) => {
189
- if (!(!u || S)) {
190
- V(t);
202
+ }, ae = async (e) => {
203
+ if (!(!d || I)) {
204
+ te(e);
191
205
  try {
192
- const o = await u(t, t === "instructions" ? b : I);
193
- t === "instructions" ? (A(o), N((l) => l + 1)) : (R(o), D((l) => l + 1));
206
+ const o = await d(e, e === "instructions" ? T : C);
207
+ e === "instructions" ? (A(o), K((r) => r + 1)) : (R(o), N((r) => r + 1));
194
208
  } finally {
195
- V(null);
209
+ te(null);
196
210
  }
197
211
  }
198
212
  };
199
- return /* @__PURE__ */ it(Ot, { children: [
200
- /* @__PURE__ */ it(
201
- Jt,
213
+ return /* @__PURE__ */ le(Ne, { children: [
214
+ /* @__PURE__ */ le(
215
+ et,
202
216
  {
203
- header: Z,
217
+ header: J,
204
218
  closeOnEscapeKey: !1,
205
- zIndex: te,
219
+ zIndex: nt,
206
220
  headerCustomComponent: /* @__PURE__ */ c(
207
- Xt,
221
+ Je,
208
222
  {
209
- title: Z,
223
+ title: J,
210
224
  subtitle: "Each sub-agent handles one piece of the job. Use @ in the main instructions to call them."
211
225
  }
212
226
  ),
213
227
  width: "421px",
214
- headerStyle: Yt,
215
- bodyStyle: Wt,
228
+ headerStyle: qe,
229
+ bodyStyle: Ze,
216
230
  onClose: x,
217
231
  saveButtonProps: {
218
232
  "data-test": "subagent-save",
219
233
  buttonText: "Save",
220
234
  buttonType: "primary",
221
235
  size: "small",
222
- disabled: !nt,
223
- isLoading: J,
224
- onClick: wt
236
+ disabled: !re,
237
+ isLoading: V,
238
+ onClick: Ke
225
239
  },
226
240
  cancelButtonProps: {
227
241
  "data-test": "subagent-cancel",
@@ -232,129 +246,131 @@ const te = 1e3, W = 1002, dt = (x, f) => {
232
246
  },
233
247
  children: [
234
248
  /* @__PURE__ */ c(
235
- Qt,
249
+ tt,
236
250
  {
237
251
  "data-test": "subagent-name",
238
252
  labelText: "Agent name",
239
253
  labelTextBold: !0,
240
254
  placeholder: "Enter agent name",
241
- value: M,
242
- maxCharLimit: T.name,
255
+ value: E,
256
+ maxCharLimit: b.name,
243
257
  maxCharLimitPosition: "TOP",
244
258
  maxCharStyle: { fontSize: 12, lineHeight: "16px" },
245
- onChangeText: pt
259
+ state: F ? "invalid" : void 0,
260
+ errorMessage: F ? "A sub-agent with this name already exists" : void 0,
261
+ onChangeText: he
246
262
  }
247
263
  ),
248
264
  /* @__PURE__ */ c(
249
- ut,
265
+ me,
250
266
  {
251
267
  "data-test": "subagent-instructions",
252
268
  label: "Instructions",
253
- value: b,
269
+ value: T,
254
270
  onChange: A,
255
- maxLength: T.instructions,
256
- placeholder: "Write the steps in plain English. Type @ to reference a tool.",
271
+ maxLength: b.instructions,
272
+ placeholder: "Write the steps in plain English. The agent will follow them exactly. The more specific you are, the better it performs.",
257
273
  minHeight: "160px",
258
- resetKey: `instr-${ft}`,
274
+ resetKey: `instr-${ye}`,
259
275
  mentionItems: G,
260
276
  tools: s,
261
- toolActions: $,
262
- onMentionSelect: et,
263
- onFocus: Tt,
264
- registerInsert: yt,
265
- action: u ? /* @__PURE__ */ c(
266
- mt,
277
+ toolActions: j,
278
+ onMentionSelect: ne,
279
+ onFocus: Ie,
280
+ registerInsert: Te,
281
+ action: d ? /* @__PURE__ */ c(
282
+ ge,
267
283
  {
268
284
  type: "button",
269
285
  "data-test": "subagent-improve-instructions",
270
- disabled: S !== null,
271
- onClick: () => rt("instructions"),
272
- children: S === "instructions" ? "Improving…" : "Improve with AI"
286
+ disabled: I !== null,
287
+ onClick: () => ae("instructions"),
288
+ children: I === "instructions" ? "Improving…" : "Improve with AI"
273
289
  }
274
290
  ) : void 0
275
291
  }
276
292
  ),
277
293
  /* @__PURE__ */ c(
278
- ut,
294
+ me,
279
295
  {
280
296
  "data-test": "subagent-guardrail",
281
297
  label: "Guardrails",
282
- value: I,
298
+ value: C,
283
299
  onChange: R,
284
- maxLength: T.guardrail,
285
- placeholder: "e.g. Never discuss competitor pricing. Type @ to reference a tool.",
300
+ maxLength: b.guardrail,
301
+ placeholder: "e.g. Never discuss competitor pricing. Always stay within the cancellation policy. Do not process refunds above ₹10,000 without human approval.",
286
302
  minHeight: "160px",
287
- resetKey: `guard-${gt}`,
303
+ resetKey: `guard-${be}`,
288
304
  mentionItems: G,
289
305
  tools: s,
290
- toolActions: $,
291
- onMentionSelect: et,
292
- onFocus: bt,
293
- registerInsert: ht,
294
- action: u ? /* @__PURE__ */ c(
295
- mt,
306
+ toolActions: j,
307
+ onMentionSelect: ne,
308
+ onFocus: Se,
309
+ registerInsert: Ce,
310
+ action: d ? /* @__PURE__ */ c(
311
+ ge,
296
312
  {
297
313
  type: "button",
298
314
  "data-test": "subagent-improve-guardrail",
299
- disabled: S !== null,
300
- onClick: () => rt("guardrail"),
301
- children: S === "guardrail" ? "Improving…" : "Improve with AI"
315
+ disabled: I !== null,
316
+ onClick: () => ae("guardrail"),
317
+ children: I === "guardrail" ? "Improving…" : "Improve with AI"
302
318
  }
303
319
  ) : void 0
304
320
  }
305
321
  ),
306
322
  /* @__PURE__ */ c(
307
- qt,
323
+ Ve,
308
324
  {
309
325
  title: "Tools this agent can use",
310
326
  dataTestPrefix: "subagent-tools",
311
- items: kt,
312
- addableOptions: Et,
313
- sourceGroups: Mt,
327
+ items: Me,
328
+ addableOptions: Oe,
329
+ sourceGroups: De,
314
330
  mentionItems: G,
315
- actionSources: $,
331
+ actionSources: j,
316
332
  emptyText: "No tools added yet.",
317
333
  pickerOpensUp: !0,
318
- onAdd: (t) => {
319
- C(t), _((e) => lt(e, t));
334
+ onAdd: (e) => {
335
+ S(e), _((t) => ce(t, e));
320
336
  },
321
- onRemove: vt,
322
- confirmDelete: { noun: "tool", zIndex: W + 1 }
337
+ onRemove: Re,
338
+ confirmDelete: { noun: "tool", zIndex: X + 1 }
323
339
  }
324
340
  )
325
341
  ]
326
342
  }
327
343
  ),
328
- i?.kind === "restapi" && /* @__PURE__ */ c(
329
- Zt,
344
+ a?.kind === "restapi" && /* @__PURE__ */ c(
345
+ Qe,
330
346
  {
331
- initial: i.initialRest,
332
- charLimits: T,
333
- onImprove: Y,
334
- onClose: () => y(null),
335
- onSave: St,
336
- zIndex: W
347
+ initial: a.initialRest,
348
+ charLimits: b,
349
+ onImprove: Z,
350
+ onClose: () => h(null),
351
+ onSave: xe,
352
+ zIndex: X
337
353
  },
338
- i.key
354
+ a.key
339
355
  ),
340
- i?.kind === "config" && i.toolKey && st && /* @__PURE__ */ c(
341
- jt,
356
+ a?.kind === "config" && a.toolKey && ie && /* @__PURE__ */ c(
357
+ Xe,
342
358
  {
343
- toolKey: i.toolKey,
344
- template: st,
345
- initial: i.initialConfig,
346
- charLimits: T,
347
- onImprove: Y,
348
- onClose: () => y(null),
349
- onSave: Ct,
350
- zIndex: W
359
+ toolKey: a.toolKey,
360
+ template: ie,
361
+ initial: a.initialConfig,
362
+ charLimits: b,
363
+ onImprove: Z,
364
+ onClose: () => h(null),
365
+ onSave: Ae,
366
+ zIndex: X
351
367
  },
352
- i.key
368
+ a.key
353
369
  ),
354
- L && /* @__PURE__ */ c(
355
- Vt,
370
+ z && /* @__PURE__ */ c(
371
+ ot,
356
372
  {
357
- text: L.message,
373
+ text: z.message,
358
374
  type: "info",
359
375
  position: "top-right",
360
376
  autoClose: 5e3,
@@ -362,15 +378,15 @@ const te = 1e3, W = 1002, dt = (x, f) => {
362
378
  buttonProps: {
363
379
  buttonText: "Undo",
364
380
  showButton: !0,
365
- onButtonClick: () => (xt(), {})
381
+ onButtonClick: () => (_e(), {})
366
382
  },
367
- onCloseToast: () => U(null)
383
+ onCloseToast: () => H(null)
368
384
  },
369
- L.id
385
+ z.id
370
386
  )
371
387
  ] });
372
388
  };
373
389
  export {
374
- be as CreateSubAgentPanel
390
+ St as CreateSubAgentPanel
375
391
  };
376
392
  //# sourceMappingURL=CreateSubAgentPanel.js.map