@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.
Files changed (75) 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 +97 -66
  4. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js +1 -1
  6. package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
  8. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/MentionField.js +1 -1
  10. package/dist/cjs/components/agent-builder/components/MentionField.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +4 -4
  12. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/components/StepRail.js +1 -1
  14. package/dist/cjs/components/agent-builder/components/StepRail.js.map +1 -1
  15. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  16. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  17. package/dist/cjs/components/agent-builder/steps/Step1About.js +1 -1
  18. package/dist/cjs/components/agent-builder/steps/Step1About.js.map +1 -1
  19. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +1 -1
  20. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  21. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  22. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  23. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js +1 -1
  24. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  25. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  26. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  27. package/dist/cjs/components/agent-listing/AgentListing.styled.js +32 -28
  28. package/dist/cjs/components/agent-listing/AgentListing.styled.js.map +1 -1
  29. package/dist/cjs/components/agent-listing/AgentListingHeader.js +1 -1
  30. package/dist/cjs/components/agent-listing/AgentListingHeader.js.map +1 -1
  31. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  32. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  33. package/dist/cjs/components/template-preview/models/TemplateMeta.js +1 -1
  34. package/dist/cjs/components/template-preview/models/TemplateMeta.js.map +1 -1
  35. package/dist/esm/components/agent-builder/AgentBuilder.js +82 -83
  36. package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
  37. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +13 -5
  38. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +141 -102
  39. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  40. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.d.ts +0 -1
  41. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js +33 -46
  42. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
  43. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +135 -119
  44. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  45. package/dist/esm/components/agent-builder/components/MentionField.js +44 -45
  46. package/dist/esm/components/agent-builder/components/MentionField.js.map +1 -1
  47. package/dist/esm/components/agent-builder/components/SelectableListSection.js +91 -94
  48. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  49. package/dist/esm/components/agent-builder/components/StepRail.js +28 -20
  50. package/dist/esm/components/agent-builder/components/StepRail.js.map +1 -1
  51. package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +7 -0
  52. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +108 -98
  53. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  54. package/dist/esm/components/agent-builder/steps/Step1About.js +38 -35
  55. package/dist/esm/components/agent-builder/steps/Step1About.js.map +1 -1
  56. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +118 -122
  57. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  58. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +112 -110
  59. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  60. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js +72 -70
  61. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  62. package/dist/esm/components/agent-listing/AgentListing.js +45 -43
  63. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  64. package/dist/esm/components/agent-listing/AgentListing.model.d.ts +7 -0
  65. package/dist/esm/components/agent-listing/AgentListing.styled.js +28 -24
  66. package/dist/esm/components/agent-listing/AgentListing.styled.js.map +1 -1
  67. package/dist/esm/components/agent-listing/AgentListingHeader.d.ts +2 -0
  68. package/dist/esm/components/agent-listing/AgentListingHeader.js +14 -12
  69. package/dist/esm/components/agent-listing/AgentListingHeader.js.map +1 -1
  70. package/dist/esm/components/agent-listing/AgentTableRow.js +102 -57
  71. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  72. package/dist/esm/components/template-preview/models/TemplateMeta.d.ts +1 -2
  73. package/dist/esm/components/template-preview/models/TemplateMeta.js +11 -11
  74. package/dist/esm/components/template-preview/models/TemplateMeta.js.map +1 -1
  75. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"StepRail.js","sources":["../../../../../src/components/agent-builder/components/StepRail.tsx"],"sourcesContent":["import React from 'react';\nimport { BodySecondary, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { RailItem, RailList, StepBadge } from '../AgentBuilder.styled';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nexport const StepRail: React.FC = () => {\n\tconst {\n\t\tactiveStep,\n\t\tactiveIndex,\n\t\tvalidation,\n\t\tgoToStep,\n\t\tdisableStepNavigation,\n\t} = useAgentBuilderContext();\n\n\treturn (\n\t\t<RailList>\n\t\t\t{STEP_DEFINITIONS.map((step) => {\n\t\t\t\tconst isActive = step.key === activeStep;\n\t\t\t\tconst isComplete = step.index - 1 < activeIndex && validation[step.key];\n\t\t\t\tconst badgeState = isActive\n\t\t\t\t\t? 'active'\n\t\t\t\t\t: isComplete\n\t\t\t\t\t? 'complete'\n\t\t\t\t\t: 'inactive';\n\n\t\t\t\tconst Label = isActive ? TitleSmall : BodySecondary;\n\n\t\t\t\treturn (\n\t\t\t\t\t<RailItem\n\t\t\t\t\t\tkey={step.key}\n\t\t\t\t\t\tdata-test={`agent-step-${step.key}`}\n\t\t\t\t\t\tdisabled={disableStepNavigation}\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\tdisableStepNavigation ? undefined : () => goToStep(step.key)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<StepBadge state={badgeState}>\n\t\t\t\t\t\t\t{isComplete ? '✓' : step.index}\n\t\t\t\t\t\t</StepBadge>\n\t\t\t\t\t\t<Label color={COLORS.content.primary}>{step.title}</Label>\n\t\t\t\t\t</RailItem>\n\t\t\t\t);\n\t\t\t})}\n\t\t</RailList>\n\t);\n};\n"],"names":["StepRail","activeStep","activeIndex","validation","goToStep","disableStepNavigation","useAgentBuilderContext","jsx","RailList","STEP_DEFINITIONS","step","isActive","isComplete","badgeState","Label","TitleSmall","BodySecondary","jsxs","RailItem","StepBadge","COLORS"],"mappings":";;;;;;AAOO,MAAMA,IAAqB,MAAM;AACvC,QAAM;AAAA,IACL,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,uBAAAC;AAAA,EAAA,IACGC,EAAA;AAEJ,SACC,gBAAAC,EAACC,GAAA,EACC,UAAAC,EAAiB,IAAI,CAACC,MAAS;AAC/B,UAAMC,IAAWD,EAAK,QAAQT,GACxBW,IAAaF,EAAK,QAAQ,IAAIR,KAAeC,EAAWO,EAAK,GAAG,GAChEG,IAAaF,IAChB,WACAC,IACA,aACA,YAEGE,IAAQH,IAAWI,IAAaC;AAEtC,WACC,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QAEA,aAAW,cAAcR,EAAK,GAAG;AAAA,QACjC,UAAUL;AAAA,QACV,SACCA,IAAwB,SAAY,MAAMD,EAASM,EAAK,GAAG;AAAA,QAG5D,UAAA;AAAA,UAAA,gBAAAH,EAACY,KAAU,OAAON,GAChB,UAAAD,IAAa,MAAMF,EAAK,OAC1B;AAAA,4BACCI,GAAA,EAAM,OAAOM,EAAO,QAAQ,SAAU,YAAK,MAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAV7CV,EAAK;AAAA,IAAA;AAAA,EAab,CAAC,EAAA,CACF;AAEF;"}
1
+ {"version":3,"file":"StepRail.js","sources":["../../../../../src/components/agent-builder/components/StepRail.tsx"],"sourcesContent":["import TickIcon from '@src/assets/icons/tick.svg';\nimport React from 'react';\nimport { BodySecondary, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { RailItem, RailList, StepBadge } from '../AgentBuilder.styled';\nimport { STEP_DEFINITIONS } from '../constants/steps';\nimport { useAgentBuilderContext } from '../context/AgentBuilderContext';\n\nexport const StepRail: React.FC = () => {\n\tconst {\n\t\tactiveStep,\n\t\tactiveIndex,\n\t\tvalidation,\n\t\tgoToStep,\n\t\tdisableStepNavigation,\n\t} = useAgentBuilderContext();\n\n\treturn (\n\t\t<RailList>\n\t\t\t{STEP_DEFINITIONS.map((step) => {\n\t\t\t\tconst isActive = step.key === activeStep;\n\t\t\t\tconst isComplete = step.index - 1 < activeIndex && validation[step.key];\n\t\t\t\tconst badgeState = isActive\n\t\t\t\t\t? 'active'\n\t\t\t\t\t: isComplete\n\t\t\t\t\t? 'complete'\n\t\t\t\t\t: 'inactive';\n\n\t\t\t\tconst Label = isActive ? TitleSmall : BodySecondary;\n\n\t\t\t\treturn (\n\t\t\t\t\t<RailItem\n\t\t\t\t\t\tkey={step.key}\n\t\t\t\t\t\tdata-test={`agent-step-${step.key}`}\n\t\t\t\t\t\tdisabled={disableStepNavigation}\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\tdisableStepNavigation ? undefined : () => goToStep(step.key)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<StepBadge state={badgeState}>\n\t\t\t\t\t\t\t{isComplete ? (\n\t\t\t\t\t\t\t\t<TickIcon\n\t\t\t\t\t\t\t\t\twidth={11}\n\t\t\t\t\t\t\t\t\theight={8}\n\t\t\t\t\t\t\t\t\tcolor={COLORS.content.primaryInverse}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tstep.index\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</StepBadge>\n\t\t\t\t\t\t<Label color={COLORS.content.primary}>{step.title}</Label>\n\t\t\t\t\t</RailItem>\n\t\t\t\t);\n\t\t\t})}\n\t\t</RailList>\n\t);\n};\n"],"names":["StepRail","activeStep","activeIndex","validation","goToStep","disableStepNavigation","useAgentBuilderContext","jsx","RailList","STEP_DEFINITIONS","step","isActive","isComplete","badgeState","Label","TitleSmall","BodySecondary","jsxs","RailItem","StepBadge","TickIcon","COLORS"],"mappings":";;;;;;;AAQO,MAAMA,IAAqB,MAAM;AACvC,QAAM;AAAA,IACL,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,uBAAAC;AAAA,EAAA,IACGC,EAAA;AAEJ,SACC,gBAAAC,EAACC,GAAA,EACC,UAAAC,EAAiB,IAAI,CAACC,MAAS;AAC/B,UAAMC,IAAWD,EAAK,QAAQT,GACxBW,IAAaF,EAAK,QAAQ,IAAIR,KAAeC,EAAWO,EAAK,GAAG,GAChEG,IAAaF,IAChB,WACAC,IACA,aACA,YAEGE,IAAQH,IAAWI,IAAaC;AAEtC,WACC,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QAEA,aAAW,cAAcR,EAAK,GAAG;AAAA,QACjC,UAAUL;AAAA,QACV,SACCA,IAAwB,SAAY,MAAMD,EAASM,EAAK,GAAG;AAAA,QAG5D,UAAA;AAAA,UAAA,gBAAAH,EAACY,GAAA,EAAU,OAAON,GAChB,UAAAD,IACA,gBAAAL;AAAA,YAACa;AAAAA,YAAA;AAAA,cACA,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,OAAOC,EAAO,QAAQ;AAAA,YAAA;AAAA,UAAA,IAGvBX,EAAK,OAEP;AAAA,4BACCI,GAAA,EAAM,OAAOO,EAAO,QAAQ,SAAU,YAAK,MAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAlB7CX,EAAK;AAAA,IAAA;AAAA,EAqBb,CAAC,EAAA,CACF;AAEF;"}
@@ -24,6 +24,13 @@ export interface AgentBuilderContextShape {
24
24
  * the guardrails, remounts the editors, and raises an undo toast.
25
25
  */
26
26
  removeReference: (kind: 'tool' | 'subagent', id: string) => void;
27
+ /**
28
+ * Append a tool / sub-agent id to its list (deduped), reading the LATEST value
29
+ * via a ref. Use this instead of `patch({ tools: [...value.tools, id] })` from
30
+ * any handler that may be captured with a stale `value` — notably the `@`
31
+ * editor's mount-time `onSelect`, which would otherwise keep only the last pick.
32
+ */
33
+ addReference: (kind: 'tool' | 'subagent', id: string) => void;
27
34
  /** Remount signal for the mention editors after an external edit. */
28
35
  mentionResetKey: number;
29
36
  /**
@@ -1,31 +1,31 @@
1
- import { jsx as ct } from "react/jsx-runtime";
2
- import it, { useState as B, useRef as m, useCallback as o, useMemo as F, useContext as ut } from "react";
3
- import { AGENT_CHAR_LIMITS as dt } from "../constants/charLimits.js";
4
- import { getStepIndex as gt, STEP_KEYS as _ } from "../constants/steps.js";
5
- const v = it.createContext(null), Rt = () => {
6
- const n = ut(v);
1
+ import { jsx as ut } from "react/jsx-runtime";
2
+ import dt, { useState as B, useRef as d, useCallback as o, useMemo as F, useContext as gt } from "react";
3
+ import { AGENT_CHAR_LIMITS as mt } from "../constants/charLimits.js";
4
+ import { getStepIndex as lt, STEP_KEYS as _ } from "../constants/steps.js";
5
+ const nt = dt.createContext(null), Mt = () => {
6
+ const n = gt(nt);
7
7
  if (!n)
8
8
  throw new Error(
9
9
  "useAgentBuilderContext must be used within an AgentBuilderProvider"
10
10
  );
11
11
  return n;
12
- }, mt = (n, s) => {
13
- const u = n.trigger.mode === "custom_intent" ? (n.trigger.custom_intent ?? "").trim().length > 0 : n.trigger.intents.length > 0;
12
+ }, ft = (n, s) => {
13
+ const g = n.trigger.mode === "custom_intent" ? (n.trigger.custom_intent ?? "").trim().length > 0 : n.trigger.intents.length > 0;
14
14
  return {
15
15
  about: n.name.trim().length > 0 && n.name.length <= s.name && n.description.length <= s.description,
16
- trigger: u,
16
+ trigger: g,
17
17
  // At least one of Instructions / Guardrails must be filled.
18
18
  response: n.instructions.trim().length > 0 || (n.guardrail ?? "").trim().length > 0,
19
19
  // Optional until specced further — never blocks go-live.
20
20
  handover: !0
21
21
  };
22
- }, _t = ({
22
+ }, St = ({
23
23
  value: n,
24
24
  onChange: s,
25
- activeStep: u,
25
+ activeStep: g,
26
26
  onStepChange: I,
27
- availableTools: d,
28
- availableSubAgents: l,
27
+ availableTools: m,
28
+ availableSubAgents: f,
29
29
  availableIntents: P,
30
30
  availableModels: A,
31
31
  validation: E,
@@ -36,145 +36,155 @@ const v = it.createContext(null), Rt = () => {
36
36
  onFetchSubAgent: L,
37
37
  onUpdateSubAgent: T,
38
38
  onImproveSubAgent: V,
39
- children: tt
39
+ children: et
40
40
  }) => {
41
- const [nt, rt] = B("about"), f = u ?? nt, c = gt(f), [j, K] = B(0), h = m({}), q = m("instructions"), C = o(
41
+ const [rt, st] = B("about"), p = g ?? rt, i = lt(p), j = d(n);
42
+ j.current = n;
43
+ const [K, b] = B(0), M = d({}), q = d("instructions"), G = o(
42
44
  (t, e) => {
43
- e ? h.current[t] = e : delete h.current[t];
45
+ e ? M.current[t] = e : delete M.current[t];
44
46
  },
45
47
  []
46
- ), G = o((t) => {
48
+ ), H = o((t) => {
47
49
  q.current = t;
48
- }, []), H = m(null), N = o((t) => {
49
- H.current = t;
50
- }, []), U = o(() => {
51
- H.current?.();
52
- }, []), Y = o((t, e, R) => {
53
- const g = h.current;
54
- (g[q.current] ?? g.instructions)?.(t, e, R);
55
- }, []), [k, M] = B(null), p = m(null), z = m(0), i = o(
50
+ }, []), N = d(null), U = o((t) => {
51
+ N.current = t;
52
+ }, []), Y = o(() => {
53
+ N.current?.();
54
+ }, []), k = o((t, e, c) => {
55
+ const l = M.current;
56
+ (l[q.current] ?? l.instructions)?.(t, e, c);
57
+ }, []), [z, S] = B(null), x = d(null), D = d(0), u = o(
56
58
  (t) => {
57
- u === void 0 && rt(t), I?.(t);
59
+ g === void 0 && st(t), I?.(t);
58
60
  },
59
- [u, I]
60
- ), D = o(() => {
61
- const t = _[Math.min(c + 1, _.length - 1)];
62
- i(t);
63
- }, [c, i]), J = o(() => {
64
- const t = _[Math.max(c - 1, 0)];
65
- i(t);
66
- }, [c, i]), Q = o(
61
+ [g, I]
62
+ ), J = o(() => {
63
+ const t = _[Math.min(i + 1, _.length - 1)];
64
+ u(t);
65
+ }, [i, u]), Q = o(() => {
66
+ const t = _[Math.max(i - 1, 0)];
67
+ u(t);
68
+ }, [i, u]), W = o(
67
69
  (t) => s(t),
68
70
  [s]
69
- ), W = o(
71
+ ), X = o(
70
72
  (t, e) => s({ [t]: e }),
71
73
  [s]
72
- ), X = o(
74
+ ), Z = o(
75
+ (t, e) => {
76
+ const c = j.current;
77
+ t === "tool" ? c.tools.includes(e) || s({ tools: [...c.tools, e] }) : c.subagents.includes(e) || s({ subagents: [...c.subagents, e] });
78
+ },
79
+ [s]
80
+ ), C = o(
73
81
  (t, e) => {
74
- const R = t === "tool" ? (() => {
75
- const r = d.find((st) => st.tool_id === e);
82
+ const c = t === "tool" ? (() => {
83
+ const r = m.find((it) => it.tool_id === e);
76
84
  return r ? `{{tool:${r.function_key}}}` : null;
77
- })() : `{{subagent:${e}}}`, g = (r) => R ? r.split(R).join("") : r;
78
- p.current = {
85
+ })() : `{{subagent:${e}}}`, l = (r) => c ? r.split(c).join("") : r;
86
+ x.current = {
79
87
  tools: n.tools,
80
88
  subagents: n.subagents,
81
89
  instructions: n.instructions,
82
90
  guardrail: n.guardrail
83
91
  };
84
- const O = {
85
- instructions: g(n.instructions),
86
- guardrail: g(n.guardrail ?? ""),
92
+ const tt = {
93
+ instructions: l(n.instructions),
94
+ guardrail: l(n.guardrail ?? ""),
87
95
  ...t === "tool" ? { tools: n.tools.filter((r) => r !== e) } : { subagents: n.subagents.filter((r) => r !== e) }
88
96
  };
89
- s(O), K((r) => r + 1);
90
- const ot = t === "tool" ? d.find((r) => r.tool_id === e)?.display_name ?? "Tool" : l.find((r) => r.id === e)?.name ?? "Sub-agent";
91
- z.current += 1, M({
92
- id: z.current,
93
- message: `${t === "tool" ? "Tool" : "Sub-agent"} "${ot}" removed`
97
+ s(tt), b((r) => r + 1);
98
+ const ct = t === "tool" ? m.find((r) => r.tool_id === e)?.display_name ?? "Tool" : f.find((r) => r.id === e)?.name ?? "Sub-agent";
99
+ D.current += 1, S({
100
+ id: D.current,
101
+ message: `${t === "tool" ? "Tool" : "Sub-agent"} "${ct}" removed`
94
102
  });
95
103
  },
96
- [d, l, n, s]
97
- ), Z = o(() => {
98
- p.current && (s(p.current), p.current = null, K((t) => t + 1)), M(null);
99
- }, [s]), b = o(() => M(null), []), x = F(
100
- () => ({ ...dt, ...a }),
104
+ [m, f, n, s]
105
+ ), O = o(() => {
106
+ x.current && (s(x.current), x.current = null, b((t) => t + 1)), S(null);
107
+ }, [s]), v = o(() => S(null), []), R = F(
108
+ () => ({ ...mt, ...a }),
101
109
  [a]
102
- ), S = F(
103
- () => ({ ...mt(n, x), ...E }),
104
- [n, x, E]
105
- ), et = F(
110
+ ), h = F(
111
+ () => ({ ...ft(n, R), ...E }),
112
+ [n, R, E]
113
+ ), ot = F(
106
114
  () => ({
107
115
  value: n,
108
- patch: Q,
109
- updateField: W,
110
- removeReference: X,
111
- mentionResetKey: j,
112
- insertMention: Y,
113
- registerMentionField: C,
114
- notifyMentionFocus: G,
115
- undoToast: k,
116
- undoRemoval: Z,
117
- dismissUndo: b,
118
- activeStep: f,
119
- activeIndex: c,
120
- goToStep: i,
121
- goNext: D,
122
- goPrev: J,
123
- isFirstStep: c === 0,
124
- isLastStep: c === _.length - 1,
125
- validation: S,
126
- isActiveStepValid: S[f],
127
- availableTools: d,
128
- availableSubAgents: l,
116
+ patch: W,
117
+ updateField: X,
118
+ addReference: Z,
119
+ removeReference: C,
120
+ mentionResetKey: K,
121
+ insertMention: k,
122
+ registerMentionField: G,
123
+ notifyMentionFocus: H,
124
+ undoToast: z,
125
+ undoRemoval: O,
126
+ dismissUndo: v,
127
+ activeStep: p,
128
+ activeIndex: i,
129
+ goToStep: u,
130
+ goNext: J,
131
+ goPrev: Q,
132
+ isFirstStep: i === 0,
133
+ isLastStep: i === _.length - 1,
134
+ validation: h,
135
+ isActiveStepValid: h[p],
136
+ availableTools: m,
137
+ availableSubAgents: f,
129
138
  availableIntents: P,
130
139
  availableModels: A,
131
140
  applicationType: $,
132
- charLimits: x,
141
+ charLimits: R,
133
142
  disableStepNavigation: w,
134
143
  onCreateSubAgent: y,
135
- registerSubAgentCreator: N,
136
- requestCreateSubAgent: U,
144
+ registerSubAgentCreator: U,
145
+ requestCreateSubAgent: Y,
137
146
  onFetchSubAgent: L,
138
147
  onUpdateSubAgent: T,
139
148
  onImproveSubAgent: V
140
149
  }),
141
150
  [
142
151
  n,
143
- Q,
144
152
  W,
145
153
  X,
146
- j,
147
- Y,
154
+ Z,
148
155
  C,
149
- G,
156
+ K,
150
157
  k,
151
- Z,
152
- b,
153
- f,
154
- c,
158
+ G,
159
+ H,
160
+ z,
161
+ O,
162
+ v,
163
+ p,
155
164
  i,
156
- D,
165
+ u,
157
166
  J,
158
- S,
159
- d,
160
- l,
167
+ Q,
168
+ h,
169
+ m,
170
+ f,
161
171
  P,
162
172
  A,
163
173
  $,
164
- x,
174
+ R,
165
175
  w,
166
176
  y,
167
- N,
168
177
  U,
178
+ Y,
169
179
  L,
170
180
  T,
171
181
  V
172
182
  ]
173
183
  );
174
- return /* @__PURE__ */ ct(v.Provider, { value: et, children: tt });
184
+ return /* @__PURE__ */ ut(nt.Provider, { value: ot, children: et });
175
185
  };
176
186
  export {
177
- _t as AgentBuilderProvider,
178
- Rt as useAgentBuilderContext
187
+ St as AgentBuilderProvider,
188
+ Mt as useAgentBuilderContext
179
189
  };
180
190
  //# sourceMappingURL=AgentBuilderContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilderContext.js","sources":["../../../../../src/components/agent-builder/context/AgentBuilderContext.tsx"],"sourcesContent":["import type { ApplicationType } from '@bikdotai/bik-models/growth';\nimport React, {\n\tuseCallback,\n\tuseContext,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport {\n\tAgentTool,\n\tAgentValue,\n\tIntentOption,\n\tModelOption,\n\tStepKey,\n\tStepValidation,\n\tSubAgentDraft,\n\tSubAgentRef,\n} from '../AgentBuilder.model';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport type { AgentCharLimits } from '../constants/charLimits';\nimport { getStepIndex, STEP_KEYS } from '../constants/steps';\n\n/** Mention-capable text fields in Step 3 (both store firebase token text). */\nexport type MentionFieldKey = 'instructions' | 'guardrail';\ntype MentionInsertFn = (\n\tkind: 'tool' | 'subagent',\n\tid: string,\n\tlabel?: string,\n) => void;\n\n/** Toast shown after a tool / sub-agent is removed, offering an undo. */\nexport interface UndoToastState {\n\t/** Bumped per removal so the toast timer restarts. */\n\tid: number;\n\tmessage: string;\n}\n\nexport interface AgentBuilderContextShape {\n\t/** Controlled value relayed from props. */\n\tvalue: AgentValue;\n\t/** Patch one or more fields. */\n\tpatch: (partial: Partial<AgentValue>) => void;\n\t/** Patch a single field. */\n\tupdateField: <K extends keyof AgentValue>(key: K, val: AgentValue[K]) => void;\n\t/**\n\t * Remove a tool / sub-agent everywhere: drops it from the list AND strips ALL\n\t * its `{{tool:KEY}}` / `{{subagent:ID}}` tokens from BOTH the instructions and\n\t * the guardrails, remounts the editors, and raises an undo toast.\n\t */\n\tremoveReference: (kind: 'tool' | 'subagent', id: string) => void;\n\t/** Remount signal for the mention editors after an external edit. */\n\tmentionResetKey: number;\n\t/**\n\t * Insert a tool / sub-agent mention chip at the last cursor position of\n\t * whichever mention field was focused most recently (Instructions or\n\t * Guardrails). `label` overrides the chip text (e.g. a just-created sub-agent\n\t * not yet in the available list).\n\t */\n\tinsertMention: (\n\t\tkind: 'tool' | 'subagent',\n\t\tid: string,\n\t\tlabel?: string,\n\t) => void;\n\t/** A mention field registers its editor-backed insert here (internal). */\n\tregisterMentionField: (\n\t\tfieldKey: MentionFieldKey,\n\t\tfn: MentionInsertFn | null,\n\t) => void;\n\t/** A mention field reports focus so inserts target it (internal). */\n\tnotifyMentionFocus: (fieldKey: MentionFieldKey) => void;\n\n\t// Undo (post-removal)\n\t/** Non-null while the undo toast should be visible. */\n\tundoToast: UndoToastState | null;\n\t/** Restore the last removed tool / sub-agent (list + stripped tokens). */\n\tundoRemoval: () => void;\n\t/** Dismiss the undo toast without restoring. */\n\tdismissUndo: () => void;\n\n\t// Navigation\n\tactiveStep: StepKey;\n\tactiveIndex: number;\n\tgoToStep: (step: StepKey) => void;\n\tgoNext: () => void;\n\tgoPrev: () => void;\n\tisFirstStep: boolean;\n\tisLastStep: boolean;\n\n\t// Validation\n\tvalidation: StepValidation;\n\tisActiveStepValid: boolean;\n\n\t// Reference data\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\t/** Host application context (e.g. MANIFEST) — drives tool-chip labelling. */\n\tapplicationType?: ApplicationType;\n\t/** Resolved per-field character limits (consumer overrides merged over defaults). */\n\tcharLimits: AgentCharLimits;\n\t/** When true, step-rail items are not clickable (Back / Next only). */\n\tdisableStepNavigation: boolean;\n\n\t// Sub-agent creation (Step 3 drawer)\n\t/** Persist a new sub-agent and resolve with its ref. Omit to hide the create flow. */\n\tonCreateSubAgent?: (draft: SubAgentDraft) => Promise<SubAgentRef>;\n\t/**\n\t * Step 3 registers its \"open create-sub-agent drawer\" action here so the `@`\n\t * picker's \"Create new\" row can trigger it. Pass `null` to unregister.\n\t */\n\tregisterSubAgentCreator: (fn: (() => void) | null) => void;\n\t/** Open the create-sub-agent drawer (no-op until Step 3 registers it). */\n\trequestCreateSubAgent: () => void;\n\t/** Fetch a sub-agent's editable data (Configure). Omit to hide Configure. */\n\tonFetchSubAgent?: (id: string) => Promise<SubAgentDraft>;\n\t/** Persist edits to an existing sub-agent. */\n\tonUpdateSubAgent?: (id: string, draft: SubAgentDraft) => Promise<SubAgentRef>;\n\t/** Optional \"Improve with AI\" for the drawer's instructions / guardrails. */\n\tonImproveSubAgent?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n}\n\nconst AgentBuilderContext =\n\tReact.createContext<AgentBuilderContextShape | null>(null);\n\nexport const useAgentBuilderContext = (): AgentBuilderContextShape => {\n\tconst ctx = useContext(AgentBuilderContext);\n\tif (!ctx) {\n\t\tthrow new Error(\n\t\t\t'useAgentBuilderContext must be used within an AgentBuilderProvider',\n\t\t);\n\t}\n\treturn ctx;\n};\n\n/** Validity derived purely from the current value (no effects). */\nconst deriveValidation = (\n\tvalue: AgentValue,\n\tlimits: AgentCharLimits,\n): StepValidation => {\n\tconst triggerValid =\n\t\tvalue.trigger.mode === 'custom_intent'\n\t\t\t? (value.trigger.custom_intent ?? '').trim().length > 0\n\t\t\t: value.trigger.intents.length > 0;\n\n\treturn {\n\t\tabout:\n\t\t\tvalue.name.trim().length > 0 &&\n\t\t\tvalue.name.length <= limits.name &&\n\t\t\tvalue.description.length <= limits.description,\n\t\ttrigger: triggerValid,\n\t\t// At least one of Instructions / Guardrails must be filled.\n\t\tresponse:\n\t\t\tvalue.instructions.trim().length > 0 ||\n\t\t\t(value.guardrail ?? '').trim().length > 0,\n\t\t// Optional until specced further — never blocks go-live.\n\t\thandover: true,\n\t};\n};\n\ninterface ProviderProps {\n\tvalue: AgentValue;\n\tonChange: (patch: Partial<AgentValue>) => void;\n\tactiveStep?: StepKey;\n\tonStepChange?: (step: StepKey) => void;\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\tvalidation?: Partial<StepValidation>;\n\tapplicationType?: ApplicationType;\n\tcharLimits?: Partial<AgentCharLimits>;\n\tdisableStepNavigation?: boolean;\n\tonCreateSubAgent?: (draft: SubAgentDraft) => Promise<SubAgentRef>;\n\tonFetchSubAgent?: (id: string) => Promise<SubAgentDraft>;\n\tonUpdateSubAgent?: (id: string, draft: SubAgentDraft) => Promise<SubAgentRef>;\n\tonImproveSubAgent?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n\tchildren: React.ReactNode;\n}\n\nexport const AgentBuilderProvider: React.FC<ProviderProps> = ({\n\tvalue,\n\tonChange,\n\tactiveStep: controlledStep,\n\tonStepChange,\n\tavailableTools,\n\tavailableSubAgents,\n\tavailableIntents,\n\tavailableModels,\n\tvalidation: validationOverride,\n\tapplicationType,\n\tcharLimits: charLimitsOverride,\n\tdisableStepNavigation = true,\n\tonCreateSubAgent,\n\tonFetchSubAgent,\n\tonUpdateSubAgent,\n\tonImproveSubAgent,\n\tchildren,\n}) => {\n\tconst [internalStep, setInternalStep] = useState<StepKey>('about');\n\tconst activeStep = controlledStep ?? internalStep;\n\tconst activeIndex = getStepIndex(activeStep);\n\n\t// Bumped when a mention field is edited from OUTSIDE its editor (removing a\n\t// tool from the side list, undo), forcing the mention editors to remount.\n\tconst [mentionResetKey, setMentionResetKey] = useState(0);\n\n\t// Each mention field registers an editor-backed insert fn + reports focus, so\n\t// side-panel adds drop a chip into the last-focused field at its cursor.\n\tconst mentionInsertersRef = useRef<\n\t\tPartial<Record<MentionFieldKey, MentionInsertFn>>\n\t>({});\n\tconst lastFocusedFieldRef = useRef<MentionFieldKey>('instructions');\n\tconst registerMentionField = useCallback(\n\t\t(fieldKey: MentionFieldKey, fn: MentionInsertFn | null) => {\n\t\t\tif (fn) {\n\t\t\t\tmentionInsertersRef.current[fieldKey] = fn;\n\t\t\t} else {\n\t\t\t\tdelete mentionInsertersRef.current[fieldKey];\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\tconst notifyMentionFocus = useCallback((fieldKey: MentionFieldKey) => {\n\t\tlastFocusedFieldRef.current = fieldKey;\n\t}, []);\n\n\t// Step 3 registers its drawer opener here; the `@` picker's \"Create new\" calls it.\n\tconst subAgentCreatorRef = useRef<(() => void) | null>(null);\n\tconst registerSubAgentCreator = useCallback((fn: (() => void) | null) => {\n\t\tsubAgentCreatorRef.current = fn;\n\t}, []);\n\tconst requestCreateSubAgent = useCallback(() => {\n\t\tsubAgentCreatorRef.current?.();\n\t}, []);\n\tconst insertMention = useCallback<MentionInsertFn>((kind, id, label) => {\n\t\tconst inserters = mentionInsertersRef.current;\n\t\tconst target =\n\t\t\tinserters[lastFocusedFieldRef.current] ?? inserters.instructions;\n\t\ttarget?.(kind, id, label);\n\t}, []);\n\n\t// Undo state for the most recent removal.\n\tconst [undoToast, setUndoToast] = useState<UndoToastState | null>(null);\n\tconst undoSnapshotRef = useRef<Partial<AgentValue> | null>(null);\n\tconst undoIdRef = useRef(0);\n\n\tconst goToStep = useCallback(\n\t\t(step: StepKey) => {\n\t\t\tif (controlledStep === undefined) {\n\t\t\t\tsetInternalStep(step);\n\t\t\t}\n\t\t\tonStepChange?.(step);\n\t\t},\n\t\t[controlledStep, onStepChange],\n\t);\n\n\tconst goNext = useCallback(() => {\n\t\tconst next = STEP_KEYS[Math.min(activeIndex + 1, STEP_KEYS.length - 1)];\n\t\tgoToStep(next);\n\t}, [activeIndex, goToStep]);\n\n\tconst goPrev = useCallback(() => {\n\t\tconst prev = STEP_KEYS[Math.max(activeIndex - 1, 0)];\n\t\tgoToStep(prev);\n\t}, [activeIndex, goToStep]);\n\n\tconst patch = useCallback(\n\t\t(partial: Partial<AgentValue>) => onChange(partial),\n\t\t[onChange],\n\t);\n\n\tconst updateField = useCallback(\n\t\t<K extends keyof AgentValue>(key: K, val: AgentValue[K]) =>\n\t\t\tonChange({ [key]: val } as Partial<AgentValue>),\n\t\t[onChange],\n\t);\n\n\tconst removeReference = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tconst token =\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? (() => {\n\t\t\t\t\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\t\t\t\t\treturn tool ? `{{tool:${tool.function_key}}}` : null;\n\t\t\t\t\t })()\n\t\t\t\t\t: `{{subagent:${id}}}`;\n\t\t\tconst strip = (text: string) =>\n\t\t\t\ttoken ? text.split(token).join('') : text;\n\n\t\t\t// Snapshot the four fields a removal touches, for undo.\n\t\t\tundoSnapshotRef.current = {\n\t\t\t\ttools: value.tools,\n\t\t\t\tsubagents: value.subagents,\n\t\t\t\tinstructions: value.instructions,\n\t\t\t\tguardrail: value.guardrail,\n\t\t\t};\n\n\t\t\tconst next: Partial<AgentValue> = {\n\t\t\t\tinstructions: strip(value.instructions),\n\t\t\t\tguardrail: strip(value.guardrail ?? ''),\n\t\t\t\t...(kind === 'tool'\n\t\t\t\t\t? { tools: value.tools.filter((t) => t !== id) }\n\t\t\t\t\t: { subagents: value.subagents.filter((s) => s !== id) }),\n\t\t\t};\n\t\t\tonChange(next);\n\t\t\tsetMentionResetKey((k) => k + 1);\n\n\t\t\tconst label =\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? availableTools.find((t) => t.tool_id === id)?.display_name ?? 'Tool'\n\t\t\t\t\t: availableSubAgents.find((s) => s.id === id)?.name ?? 'Sub-agent';\n\t\t\tundoIdRef.current += 1;\n\t\t\tsetUndoToast({\n\t\t\t\tid: undoIdRef.current,\n\t\t\t\tmessage: `${kind === 'tool' ? 'Tool' : 'Sub-agent'} \"${label}\" removed`,\n\t\t\t});\n\t\t},\n\t\t[availableTools, availableSubAgents, value, onChange],\n\t);\n\n\tconst undoRemoval = useCallback(() => {\n\t\tif (undoSnapshotRef.current) {\n\t\t\tonChange(undoSnapshotRef.current);\n\t\t\tundoSnapshotRef.current = null;\n\t\t\tsetMentionResetKey((k) => k + 1);\n\t\t}\n\t\tsetUndoToast(null);\n\t}, [onChange]);\n\n\tconst dismissUndo = useCallback(() => setUndoToast(null), []);\n\n\t// Consumer overrides merged over the built-in defaults (name 60, rest 1000).\n\tconst charLimits = useMemo<AgentCharLimits>(\n\t\t() => ({ ...AGENT_CHAR_LIMITS, ...charLimitsOverride }),\n\t\t[charLimitsOverride],\n\t);\n\n\tconst validation: StepValidation = useMemo(\n\t\t() => ({ ...deriveValidation(value, charLimits), ...validationOverride }),\n\t\t[value, charLimits, validationOverride],\n\t);\n\n\tconst ctx = useMemo<AgentBuilderContextShape>(\n\t\t() => ({\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\tremoveReference,\n\t\t\tmentionResetKey,\n\t\t\tinsertMention,\n\t\t\tregisterMentionField,\n\t\t\tnotifyMentionFocus,\n\t\t\tundoToast,\n\t\t\tundoRemoval,\n\t\t\tdismissUndo,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tisFirstStep: activeIndex === 0,\n\t\t\tisLastStep: activeIndex === STEP_KEYS.length - 1,\n\t\t\tvalidation,\n\t\t\tisActiveStepValid: validation[activeStep],\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tcharLimits,\n\t\t\tdisableStepNavigation,\n\t\t\tonCreateSubAgent,\n\t\t\tregisterSubAgentCreator,\n\t\t\trequestCreateSubAgent,\n\t\t\tonFetchSubAgent,\n\t\t\tonUpdateSubAgent,\n\t\t\tonImproveSubAgent,\n\t\t}),\n\t\t[\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\tremoveReference,\n\t\t\tmentionResetKey,\n\t\t\tinsertMention,\n\t\t\tregisterMentionField,\n\t\t\tnotifyMentionFocus,\n\t\t\tundoToast,\n\t\t\tundoRemoval,\n\t\t\tdismissUndo,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tvalidation,\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tcharLimits,\n\t\t\tdisableStepNavigation,\n\t\t\tonCreateSubAgent,\n\t\t\tregisterSubAgentCreator,\n\t\t\trequestCreateSubAgent,\n\t\t\tonFetchSubAgent,\n\t\t\tonUpdateSubAgent,\n\t\t\tonImproveSubAgent,\n\t\t],\n\t);\n\n\treturn (\n\t\t<AgentBuilderContext.Provider value={ctx}>\n\t\t\t{children}\n\t\t</AgentBuilderContext.Provider>\n\t);\n};\n"],"names":["AgentBuilderContext","React","useAgentBuilderContext","ctx","useContext","deriveValidation","value","limits","triggerValid","AgentBuilderProvider","onChange","controlledStep","onStepChange","availableTools","availableSubAgents","availableIntents","availableModels","validationOverride","applicationType","charLimitsOverride","disableStepNavigation","onCreateSubAgent","onFetchSubAgent","onUpdateSubAgent","onImproveSubAgent","children","internalStep","setInternalStep","useState","activeStep","activeIndex","getStepIndex","mentionResetKey","setMentionResetKey","mentionInsertersRef","useRef","lastFocusedFieldRef","registerMentionField","useCallback","fieldKey","fn","notifyMentionFocus","subAgentCreatorRef","registerSubAgentCreator","requestCreateSubAgent","insertMention","kind","id","label","inserters","undoToast","setUndoToast","undoSnapshotRef","undoIdRef","goToStep","step","goNext","next","STEP_KEYS","goPrev","prev","patch","partial","updateField","key","val","removeReference","token","tool","t","strip","text","s","k","undoRemoval","dismissUndo","charLimits","useMemo","AGENT_CHAR_LIMITS","validation"],"mappings":"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"}
1
+ {"version":3,"file":"AgentBuilderContext.js","sources":["../../../../../src/components/agent-builder/context/AgentBuilderContext.tsx"],"sourcesContent":["import type { ApplicationType } from '@bikdotai/bik-models/growth';\nimport React, {\n\tuseCallback,\n\tuseContext,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport {\n\tAgentTool,\n\tAgentValue,\n\tIntentOption,\n\tModelOption,\n\tStepKey,\n\tStepValidation,\n\tSubAgentDraft,\n\tSubAgentRef,\n} from '../AgentBuilder.model';\nimport { AGENT_CHAR_LIMITS } from '../constants/charLimits';\nimport type { AgentCharLimits } from '../constants/charLimits';\nimport { getStepIndex, STEP_KEYS } from '../constants/steps';\n\n/** Mention-capable text fields in Step 3 (both store firebase token text). */\nexport type MentionFieldKey = 'instructions' | 'guardrail';\ntype MentionInsertFn = (\n\tkind: 'tool' | 'subagent',\n\tid: string,\n\tlabel?: string,\n) => void;\n\n/** Toast shown after a tool / sub-agent is removed, offering an undo. */\nexport interface UndoToastState {\n\t/** Bumped per removal so the toast timer restarts. */\n\tid: number;\n\tmessage: string;\n}\n\nexport interface AgentBuilderContextShape {\n\t/** Controlled value relayed from props. */\n\tvalue: AgentValue;\n\t/** Patch one or more fields. */\n\tpatch: (partial: Partial<AgentValue>) => void;\n\t/** Patch a single field. */\n\tupdateField: <K extends keyof AgentValue>(key: K, val: AgentValue[K]) => void;\n\t/**\n\t * Remove a tool / sub-agent everywhere: drops it from the list AND strips ALL\n\t * its `{{tool:KEY}}` / `{{subagent:ID}}` tokens from BOTH the instructions and\n\t * the guardrails, remounts the editors, and raises an undo toast.\n\t */\n\tremoveReference: (kind: 'tool' | 'subagent', id: string) => void;\n\t/**\n\t * Append a tool / sub-agent id to its list (deduped), reading the LATEST value\n\t * via a ref. Use this instead of `patch({ tools: [...value.tools, id] })` from\n\t * any handler that may be captured with a stale `value` — notably the `@`\n\t * editor's mount-time `onSelect`, which would otherwise keep only the last pick.\n\t */\n\taddReference: (kind: 'tool' | 'subagent', id: string) => void;\n\t/** Remount signal for the mention editors after an external edit. */\n\tmentionResetKey: number;\n\t/**\n\t * Insert a tool / sub-agent mention chip at the last cursor position of\n\t * whichever mention field was focused most recently (Instructions or\n\t * Guardrails). `label` overrides the chip text (e.g. a just-created sub-agent\n\t * not yet in the available list).\n\t */\n\tinsertMention: (\n\t\tkind: 'tool' | 'subagent',\n\t\tid: string,\n\t\tlabel?: string,\n\t) => void;\n\t/** A mention field registers its editor-backed insert here (internal). */\n\tregisterMentionField: (\n\t\tfieldKey: MentionFieldKey,\n\t\tfn: MentionInsertFn | null,\n\t) => void;\n\t/** A mention field reports focus so inserts target it (internal). */\n\tnotifyMentionFocus: (fieldKey: MentionFieldKey) => void;\n\n\t// Undo (post-removal)\n\t/** Non-null while the undo toast should be visible. */\n\tundoToast: UndoToastState | null;\n\t/** Restore the last removed tool / sub-agent (list + stripped tokens). */\n\tundoRemoval: () => void;\n\t/** Dismiss the undo toast without restoring. */\n\tdismissUndo: () => void;\n\n\t// Navigation\n\tactiveStep: StepKey;\n\tactiveIndex: number;\n\tgoToStep: (step: StepKey) => void;\n\tgoNext: () => void;\n\tgoPrev: () => void;\n\tisFirstStep: boolean;\n\tisLastStep: boolean;\n\n\t// Validation\n\tvalidation: StepValidation;\n\tisActiveStepValid: boolean;\n\n\t// Reference data\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\t/** Host application context (e.g. MANIFEST) — drives tool-chip labelling. */\n\tapplicationType?: ApplicationType;\n\t/** Resolved per-field character limits (consumer overrides merged over defaults). */\n\tcharLimits: AgentCharLimits;\n\t/** When true, step-rail items are not clickable (Back / Next only). */\n\tdisableStepNavigation: boolean;\n\n\t// Sub-agent creation (Step 3 drawer)\n\t/** Persist a new sub-agent and resolve with its ref. Omit to hide the create flow. */\n\tonCreateSubAgent?: (draft: SubAgentDraft) => Promise<SubAgentRef>;\n\t/**\n\t * Step 3 registers its \"open create-sub-agent drawer\" action here so the `@`\n\t * picker's \"Create new\" row can trigger it. Pass `null` to unregister.\n\t */\n\tregisterSubAgentCreator: (fn: (() => void) | null) => void;\n\t/** Open the create-sub-agent drawer (no-op until Step 3 registers it). */\n\trequestCreateSubAgent: () => void;\n\t/** Fetch a sub-agent's editable data (Configure). Omit to hide Configure. */\n\tonFetchSubAgent?: (id: string) => Promise<SubAgentDraft>;\n\t/** Persist edits to an existing sub-agent. */\n\tonUpdateSubAgent?: (id: string, draft: SubAgentDraft) => Promise<SubAgentRef>;\n\t/** Optional \"Improve with AI\" for the drawer's instructions / guardrails. */\n\tonImproveSubAgent?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n}\n\nconst AgentBuilderContext =\n\tReact.createContext<AgentBuilderContextShape | null>(null);\n\nexport const useAgentBuilderContext = (): AgentBuilderContextShape => {\n\tconst ctx = useContext(AgentBuilderContext);\n\tif (!ctx) {\n\t\tthrow new Error(\n\t\t\t'useAgentBuilderContext must be used within an AgentBuilderProvider',\n\t\t);\n\t}\n\treturn ctx;\n};\n\n/** Validity derived purely from the current value (no effects). */\nconst deriveValidation = (\n\tvalue: AgentValue,\n\tlimits: AgentCharLimits,\n): StepValidation => {\n\tconst triggerValid =\n\t\tvalue.trigger.mode === 'custom_intent'\n\t\t\t? (value.trigger.custom_intent ?? '').trim().length > 0\n\t\t\t: value.trigger.intents.length > 0;\n\n\treturn {\n\t\tabout:\n\t\t\tvalue.name.trim().length > 0 &&\n\t\t\tvalue.name.length <= limits.name &&\n\t\t\tvalue.description.length <= limits.description,\n\t\ttrigger: triggerValid,\n\t\t// At least one of Instructions / Guardrails must be filled.\n\t\tresponse:\n\t\t\tvalue.instructions.trim().length > 0 ||\n\t\t\t(value.guardrail ?? '').trim().length > 0,\n\t\t// Optional until specced further — never blocks go-live.\n\t\thandover: true,\n\t};\n};\n\ninterface ProviderProps {\n\tvalue: AgentValue;\n\tonChange: (patch: Partial<AgentValue>) => void;\n\tactiveStep?: StepKey;\n\tonStepChange?: (step: StepKey) => void;\n\tavailableTools: AgentTool[];\n\tavailableSubAgents: SubAgentRef[];\n\tavailableIntents: IntentOption[];\n\tavailableModels: ModelOption[];\n\tvalidation?: Partial<StepValidation>;\n\tapplicationType?: ApplicationType;\n\tcharLimits?: Partial<AgentCharLimits>;\n\tdisableStepNavigation?: boolean;\n\tonCreateSubAgent?: (draft: SubAgentDraft) => Promise<SubAgentRef>;\n\tonFetchSubAgent?: (id: string) => Promise<SubAgentDraft>;\n\tonUpdateSubAgent?: (id: string, draft: SubAgentDraft) => Promise<SubAgentRef>;\n\tonImproveSubAgent?: (\n\t\tkind: 'instructions' | 'guardrail',\n\t\ttext: string,\n\t) => Promise<string>;\n\tchildren: React.ReactNode;\n}\n\nexport const AgentBuilderProvider: React.FC<ProviderProps> = ({\n\tvalue,\n\tonChange,\n\tactiveStep: controlledStep,\n\tonStepChange,\n\tavailableTools,\n\tavailableSubAgents,\n\tavailableIntents,\n\tavailableModels,\n\tvalidation: validationOverride,\n\tapplicationType,\n\tcharLimits: charLimitsOverride,\n\tdisableStepNavigation = true,\n\tonCreateSubAgent,\n\tonFetchSubAgent,\n\tonUpdateSubAgent,\n\tonImproveSubAgent,\n\tchildren,\n}) => {\n\tconst [internalStep, setInternalStep] = useState<StepKey>('about');\n\tconst activeStep = controlledStep ?? internalStep;\n\tconst activeIndex = getStepIndex(activeStep);\n\n\t// Latest value, so closure-captured handlers (e.g. the `@` editor's mount-time\n\t// mention onSelect) append against the current lists, not a stale snapshot.\n\tconst valueRef = useRef(value);\n\tvalueRef.current = value;\n\n\t// Bumped when a mention field is edited from OUTSIDE its editor (removing a\n\t// tool from the side list, undo), forcing the mention editors to remount.\n\tconst [mentionResetKey, setMentionResetKey] = useState(0);\n\n\t// Each mention field registers an editor-backed insert fn + reports focus, so\n\t// side-panel adds drop a chip into the last-focused field at its cursor.\n\tconst mentionInsertersRef = useRef<\n\t\tPartial<Record<MentionFieldKey, MentionInsertFn>>\n\t>({});\n\tconst lastFocusedFieldRef = useRef<MentionFieldKey>('instructions');\n\tconst registerMentionField = useCallback(\n\t\t(fieldKey: MentionFieldKey, fn: MentionInsertFn | null) => {\n\t\t\tif (fn) {\n\t\t\t\tmentionInsertersRef.current[fieldKey] = fn;\n\t\t\t} else {\n\t\t\t\tdelete mentionInsertersRef.current[fieldKey];\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\tconst notifyMentionFocus = useCallback((fieldKey: MentionFieldKey) => {\n\t\tlastFocusedFieldRef.current = fieldKey;\n\t}, []);\n\n\t// Step 3 registers its drawer opener here; the `@` picker's \"Create new\" calls it.\n\tconst subAgentCreatorRef = useRef<(() => void) | null>(null);\n\tconst registerSubAgentCreator = useCallback((fn: (() => void) | null) => {\n\t\tsubAgentCreatorRef.current = fn;\n\t}, []);\n\tconst requestCreateSubAgent = useCallback(() => {\n\t\tsubAgentCreatorRef.current?.();\n\t}, []);\n\tconst insertMention = useCallback<MentionInsertFn>((kind, id, label) => {\n\t\tconst inserters = mentionInsertersRef.current;\n\t\tconst target =\n\t\t\tinserters[lastFocusedFieldRef.current] ?? inserters.instructions;\n\t\ttarget?.(kind, id, label);\n\t}, []);\n\n\t// Undo state for the most recent removal.\n\tconst [undoToast, setUndoToast] = useState<UndoToastState | null>(null);\n\tconst undoSnapshotRef = useRef<Partial<AgentValue> | null>(null);\n\tconst undoIdRef = useRef(0);\n\n\tconst goToStep = useCallback(\n\t\t(step: StepKey) => {\n\t\t\tif (controlledStep === undefined) {\n\t\t\t\tsetInternalStep(step);\n\t\t\t}\n\t\t\tonStepChange?.(step);\n\t\t},\n\t\t[controlledStep, onStepChange],\n\t);\n\n\tconst goNext = useCallback(() => {\n\t\tconst next = STEP_KEYS[Math.min(activeIndex + 1, STEP_KEYS.length - 1)];\n\t\tgoToStep(next);\n\t}, [activeIndex, goToStep]);\n\n\tconst goPrev = useCallback(() => {\n\t\tconst prev = STEP_KEYS[Math.max(activeIndex - 1, 0)];\n\t\tgoToStep(prev);\n\t}, [activeIndex, goToStep]);\n\n\tconst patch = useCallback(\n\t\t(partial: Partial<AgentValue>) => onChange(partial),\n\t\t[onChange],\n\t);\n\n\tconst updateField = useCallback(\n\t\t<K extends keyof AgentValue>(key: K, val: AgentValue[K]) =>\n\t\t\tonChange({ [key]: val } as Partial<AgentValue>),\n\t\t[onChange],\n\t);\n\n\tconst addReference = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tconst v = valueRef.current;\n\t\t\tif (kind === 'tool') {\n\t\t\t\tif (!v.tools.includes(id)) {\n\t\t\t\t\tonChange({ tools: [...v.tools, id] });\n\t\t\t\t}\n\t\t\t} else if (!v.subagents.includes(id)) {\n\t\t\t\tonChange({ subagents: [...v.subagents, id] });\n\t\t\t}\n\t\t},\n\t\t[onChange],\n\t);\n\n\tconst removeReference = useCallback(\n\t\t(kind: 'tool' | 'subagent', id: string) => {\n\t\t\tconst token =\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? (() => {\n\t\t\t\t\t\t\tconst tool = availableTools.find((t) => t.tool_id === id);\n\t\t\t\t\t\t\treturn tool ? `{{tool:${tool.function_key}}}` : null;\n\t\t\t\t\t })()\n\t\t\t\t\t: `{{subagent:${id}}}`;\n\t\t\tconst strip = (text: string) =>\n\t\t\t\ttoken ? text.split(token).join('') : text;\n\n\t\t\t// Snapshot the four fields a removal touches, for undo.\n\t\t\tundoSnapshotRef.current = {\n\t\t\t\ttools: value.tools,\n\t\t\t\tsubagents: value.subagents,\n\t\t\t\tinstructions: value.instructions,\n\t\t\t\tguardrail: value.guardrail,\n\t\t\t};\n\n\t\t\tconst next: Partial<AgentValue> = {\n\t\t\t\tinstructions: strip(value.instructions),\n\t\t\t\tguardrail: strip(value.guardrail ?? ''),\n\t\t\t\t...(kind === 'tool'\n\t\t\t\t\t? { tools: value.tools.filter((t) => t !== id) }\n\t\t\t\t\t: { subagents: value.subagents.filter((s) => s !== id) }),\n\t\t\t};\n\t\t\tonChange(next);\n\t\t\tsetMentionResetKey((k) => k + 1);\n\n\t\t\tconst label =\n\t\t\t\tkind === 'tool'\n\t\t\t\t\t? availableTools.find((t) => t.tool_id === id)?.display_name ?? 'Tool'\n\t\t\t\t\t: availableSubAgents.find((s) => s.id === id)?.name ?? 'Sub-agent';\n\t\t\tundoIdRef.current += 1;\n\t\t\tsetUndoToast({\n\t\t\t\tid: undoIdRef.current,\n\t\t\t\tmessage: `${kind === 'tool' ? 'Tool' : 'Sub-agent'} \"${label}\" removed`,\n\t\t\t});\n\t\t},\n\t\t[availableTools, availableSubAgents, value, onChange],\n\t);\n\n\tconst undoRemoval = useCallback(() => {\n\t\tif (undoSnapshotRef.current) {\n\t\t\tonChange(undoSnapshotRef.current);\n\t\t\tundoSnapshotRef.current = null;\n\t\t\tsetMentionResetKey((k) => k + 1);\n\t\t}\n\t\tsetUndoToast(null);\n\t}, [onChange]);\n\n\tconst dismissUndo = useCallback(() => setUndoToast(null), []);\n\n\t// Consumer overrides merged over the built-in defaults (name 60, rest 1000).\n\tconst charLimits = useMemo<AgentCharLimits>(\n\t\t() => ({ ...AGENT_CHAR_LIMITS, ...charLimitsOverride }),\n\t\t[charLimitsOverride],\n\t);\n\n\tconst validation: StepValidation = useMemo(\n\t\t() => ({ ...deriveValidation(value, charLimits), ...validationOverride }),\n\t\t[value, charLimits, validationOverride],\n\t);\n\n\tconst ctx = useMemo<AgentBuilderContextShape>(\n\t\t() => ({\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\taddReference,\n\t\t\tremoveReference,\n\t\t\tmentionResetKey,\n\t\t\tinsertMention,\n\t\t\tregisterMentionField,\n\t\t\tnotifyMentionFocus,\n\t\t\tundoToast,\n\t\t\tundoRemoval,\n\t\t\tdismissUndo,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tisFirstStep: activeIndex === 0,\n\t\t\tisLastStep: activeIndex === STEP_KEYS.length - 1,\n\t\t\tvalidation,\n\t\t\tisActiveStepValid: validation[activeStep],\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tcharLimits,\n\t\t\tdisableStepNavigation,\n\t\t\tonCreateSubAgent,\n\t\t\tregisterSubAgentCreator,\n\t\t\trequestCreateSubAgent,\n\t\t\tonFetchSubAgent,\n\t\t\tonUpdateSubAgent,\n\t\t\tonImproveSubAgent,\n\t\t}),\n\t\t[\n\t\t\tvalue,\n\t\t\tpatch,\n\t\t\tupdateField,\n\t\t\taddReference,\n\t\t\tremoveReference,\n\t\t\tmentionResetKey,\n\t\t\tinsertMention,\n\t\t\tregisterMentionField,\n\t\t\tnotifyMentionFocus,\n\t\t\tundoToast,\n\t\t\tundoRemoval,\n\t\t\tdismissUndo,\n\t\t\tactiveStep,\n\t\t\tactiveIndex,\n\t\t\tgoToStep,\n\t\t\tgoNext,\n\t\t\tgoPrev,\n\t\t\tvalidation,\n\t\t\tavailableTools,\n\t\t\tavailableSubAgents,\n\t\t\tavailableIntents,\n\t\t\tavailableModels,\n\t\t\tapplicationType,\n\t\t\tcharLimits,\n\t\t\tdisableStepNavigation,\n\t\t\tonCreateSubAgent,\n\t\t\tregisterSubAgentCreator,\n\t\t\trequestCreateSubAgent,\n\t\t\tonFetchSubAgent,\n\t\t\tonUpdateSubAgent,\n\t\t\tonImproveSubAgent,\n\t\t],\n\t);\n\n\treturn (\n\t\t<AgentBuilderContext.Provider value={ctx}>\n\t\t\t{children}\n\t\t</AgentBuilderContext.Provider>\n\t);\n};\n"],"names":["AgentBuilderContext","React","useAgentBuilderContext","ctx","useContext","deriveValidation","value","limits","triggerValid","AgentBuilderProvider","onChange","controlledStep","onStepChange","availableTools","availableSubAgents","availableIntents","availableModels","validationOverride","applicationType","charLimitsOverride","disableStepNavigation","onCreateSubAgent","onFetchSubAgent","onUpdateSubAgent","onImproveSubAgent","children","internalStep","setInternalStep","useState","activeStep","activeIndex","getStepIndex","valueRef","useRef","mentionResetKey","setMentionResetKey","mentionInsertersRef","lastFocusedFieldRef","registerMentionField","useCallback","fieldKey","fn","notifyMentionFocus","subAgentCreatorRef","registerSubAgentCreator","requestCreateSubAgent","insertMention","kind","id","label","inserters","undoToast","setUndoToast","undoSnapshotRef","undoIdRef","goToStep","step","goNext","next","STEP_KEYS","goPrev","prev","patch","partial","updateField","key","val","addReference","v","removeReference","token","tool","t","strip","text","s","k","undoRemoval","dismissUndo","charLimits","useMemo","AGENT_CHAR_LIMITS","validation"],"mappings":"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"}
@@ -1,42 +1,45 @@
1
- import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
- import { AiTextArea as m } from "../components/AiTextArea.js";
3
- import { StepSectionHeader as l } from "../components/StepSectionHeader.js";
4
- import { STEP_DEFINITIONS as p } from "../constants/steps.js";
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { SectionBodyWrap as m } from "../AgentBuilder.styled.js";
3
+ import { AiTextArea as l } from "../components/AiTextArea.js";
4
+ import { StepSectionHeader as p } from "../components/StepSectionHeader.js";
5
+ import { STEP_DEFINITIONS as d } from "../constants/steps.js";
5
6
  import { useAgentBuilderContext as s } from "../context/AgentBuilderContext.js";
6
- import { Input as d } from "../../input/Input.js";
7
- const r = p[0], T = () => {
7
+ import { Input as c } from "../../input/Input.js";
8
+ const o = d[0], b = () => {
8
9
  const { value: i, updateField: a, charLimits: n } = s();
9
- return /* @__PURE__ */ o("div", { className: "bik-agent-step bik-agent-step--about", children: [
10
- /* @__PURE__ */ e(l, { title: r.title, helper: r.helper }),
11
- /* @__PURE__ */ e("div", { style: { marginBottom: 20 }, children: /* @__PURE__ */ e(
12
- d,
13
- {
14
- "data-test": "agent-name",
15
- labelText: "Agent name",
16
- labelTextBold: !0,
17
- placeholder: "Enter agent name",
18
- value: i.name,
19
- maxCharLimit: n.name,
20
- maxCharLimitPosition: "TOP",
21
- maxCharStyle: { fontSize: 12, lineHeight: "16px" },
22
- onChangeText: (t) => a("name", t)
23
- }
24
- ) }),
25
- /* @__PURE__ */ e(
26
- m,
27
- {
28
- "data-test": "agent-description",
29
- label: "What it does",
30
- value: i.description,
31
- onChange: (t) => a("description", t),
32
- maxLength: n.description,
33
- placeholder: "Enter description",
34
- minHeight: "200px"
35
- }
36
- )
10
+ return /* @__PURE__ */ r("div", { className: "bik-agent-step bik-agent-step--about", children: [
11
+ /* @__PURE__ */ e(p, { title: o.title, helper: o.helper }),
12
+ /* @__PURE__ */ r(m, { children: [
13
+ /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(
14
+ c,
15
+ {
16
+ "data-test": "agent-name",
17
+ labelText: "Agent name",
18
+ labelTextBold: !0,
19
+ placeholder: "Enter agent name",
20
+ value: i.name,
21
+ maxCharLimit: n.name,
22
+ maxCharLimitPosition: "TOP",
23
+ maxCharStyle: { fontSize: 12, lineHeight: "16px" },
24
+ onChangeText: (t) => a("name", t)
25
+ }
26
+ ) }),
27
+ /* @__PURE__ */ e(
28
+ l,
29
+ {
30
+ "data-test": "agent-description",
31
+ label: "What it does",
32
+ value: i.description,
33
+ onChange: (t) => a("description", t),
34
+ maxLength: n.description,
35
+ placeholder: "Enter description",
36
+ minHeight: "200px"
37
+ }
38
+ )
39
+ ] })
37
40
  ] });
38
41
  };
39
42
  export {
40
- T as Step1About
43
+ b as Step1About
41
44
  };
42
45
  //# sourceMappingURL=Step1About.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Step1About.js","sources":["../../../../../src/components/agent-builder/steps/Step1About.tsx"],"sourcesContent":["import React from 'react';\nimport { Input } from '@src/components/input';\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[0];\n\nexport const Step1About: React.FC = () => {\n\tconst { value, updateField, charLimits } = useAgentBuilderContext();\n\n\treturn (\n\t\t<div className=\"bik-agent-step bik-agent-step--about\">\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<div style={{ marginBottom: 20 }}>\n\t\t\t\t<Input\n\t\t\t\t\tdata-test=\"agent-name\"\n\t\t\t\t\tlabelText=\"Agent name\"\n\t\t\t\t\tlabelTextBold\n\t\t\t\t\tplaceholder=\"Enter agent name\"\n\t\t\t\t\tvalue={value.name}\n\t\t\t\t\tmaxCharLimit={charLimits.name}\n\t\t\t\t\tmaxCharLimitPosition=\"TOP\"\n\t\t\t\t\tmaxCharStyle={{ fontSize: 12, lineHeight: '16px' }}\n\t\t\t\t\tonChangeText={(text) => updateField('name', text)}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<AiTextArea\n\t\t\t\tdata-test=\"agent-description\"\n\t\t\t\tlabel=\"What it does\"\n\t\t\t\tvalue={value.description}\n\t\t\t\tonChange={(text) => updateField('description', text)}\n\t\t\t\tmaxLength={charLimits.description}\n\t\t\t\tplaceholder=\"Enter description\"\n\t\t\t\tminHeight=\"200px\"\n\t\t\t/>\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step1About","value","updateField","charLimits","useAgentBuilderContext","jsxs","jsx","StepSectionHeader","Input","text","AiTextArea"],"mappings":";;;;;;AAOA,MAAMA,IAAOC,EAAiB,CAAC,GAElBC,IAAuB,MAAM;AACzC,QAAM,EAAE,OAAAC,GAAO,aAAAC,GAAa,YAAAC,EAAA,IAAeC,EAAA;AAE3C,SACC,gBAAAC,EAAC,OAAA,EAAI,WAAU,wCACd,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAkB,OAAOT,EAAK,OAAO,QAAQA,EAAK,QAAQ;AAAA,sBAE1D,OAAA,EAAI,OAAO,EAAE,cAAc,MAC3B,UAAA,gBAAAQ;AAAA,MAACE;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,WAAU;AAAA,QACV,eAAa;AAAA,QACb,aAAY;AAAA,QACZ,OAAOP,EAAM;AAAA,QACb,cAAcE,EAAW;AAAA,QACzB,sBAAqB;AAAA,QACrB,cAAc,EAAE,UAAU,IAAI,YAAY,OAAA;AAAA,QAC1C,cAAc,CAACM,MAASP,EAAY,QAAQO,CAAI;AAAA,MAAA;AAAA,IAAA,GAElD;AAAA,IAEA,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,OAAM;AAAA,QACN,OAAOT,EAAM;AAAA,QACb,UAAU,CAACQ,MAASP,EAAY,eAAeO,CAAI;AAAA,QACnD,WAAWN,EAAW;AAAA,QACtB,aAAY;AAAA,QACZ,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GACD;AAEF;"}
1
+ {"version":3,"file":"Step1About.js","sources":["../../../../../src/components/agent-builder/steps/Step1About.tsx"],"sourcesContent":["import React from 'react';\nimport { Input } from '@src/components/input';\nimport { SectionBodyWrap } 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[0];\n\nexport const Step1About: React.FC = () => {\n\tconst { value, updateField, charLimits } = useAgentBuilderContext();\n\n\treturn (\n\t\t<div className=\"bik-agent-step bik-agent-step--about\">\n\t\t\t<StepSectionHeader title={STEP.title} helper={STEP.helper} />\n\n\t\t\t<SectionBodyWrap>\n\t\t\t\t<div>\n\t\t\t\t\t<Input\n\t\t\t\t\t\tdata-test=\"agent-name\"\n\t\t\t\t\t\tlabelText=\"Agent name\"\n\t\t\t\t\t\tlabelTextBold\n\t\t\t\t\t\tplaceholder=\"Enter agent name\"\n\t\t\t\t\t\tvalue={value.name}\n\t\t\t\t\t\tmaxCharLimit={charLimits.name}\n\t\t\t\t\t\tmaxCharLimitPosition=\"TOP\"\n\t\t\t\t\t\tmaxCharStyle={{ fontSize: 12, lineHeight: '16px' }}\n\t\t\t\t\t\tonChangeText={(text) => updateField('name', text)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<AiTextArea\n\t\t\t\t\tdata-test=\"agent-description\"\n\t\t\t\t\tlabel=\"What it does\"\n\t\t\t\t\tvalue={value.description}\n\t\t\t\t\tonChange={(text) => updateField('description', text)}\n\t\t\t\t\tmaxLength={charLimits.description}\n\t\t\t\t\tplaceholder=\"Enter description\"\n\t\t\t\t\tminHeight=\"200px\"\n\t\t\t\t/>\n\t\t\t</SectionBodyWrap>\n\t\t</div>\n\t);\n};\n"],"names":["STEP","STEP_DEFINITIONS","Step1About","value","updateField","charLimits","useAgentBuilderContext","jsxs","jsx","StepSectionHeader","SectionBodyWrap","Input","text","AiTextArea"],"mappings":";;;;;;;AAQA,MAAMA,IAAOC,EAAiB,CAAC,GAElBC,IAAuB,MAAM;AACzC,QAAM,EAAE,OAAAC,GAAO,aAAAC,GAAa,YAAAC,EAAA,IAAeC,EAAA;AAE3C,SACC,gBAAAC,EAAC,OAAA,EAAI,WAAU,wCACd,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAkB,OAAOT,EAAK,OAAO,QAAQA,EAAK,QAAQ;AAAA,sBAE1DU,GAAA,EACA,UAAA;AAAA,MAAA,gBAAAF,EAAC,OAAA,EACA,UAAA,gBAAAA;AAAA,QAACG;AAAA,QAAA;AAAA,UACA,aAAU;AAAA,UACV,WAAU;AAAA,UACV,eAAa;AAAA,UACb,aAAY;AAAA,UACZ,OAAOR,EAAM;AAAA,UACb,cAAcE,EAAW;AAAA,UACzB,sBAAqB;AAAA,UACrB,cAAc,EAAE,UAAU,IAAI,YAAY,OAAA;AAAA,UAC1C,cAAc,CAACO,MAASR,EAAY,QAAQQ,CAAI;AAAA,QAAA;AAAA,MAAA,GAElD;AAAA,MAEA,gBAAAJ;AAAA,QAACK;AAAA,QAAA;AAAA,UACA,aAAU;AAAA,UACV,OAAM;AAAA,UACN,OAAOV,EAAM;AAAA,UACb,UAAU,CAACS,MAASR,EAAY,eAAeQ,CAAI;AAAA,UACnD,WAAWP,EAAW;AAAA,UACtB,aAAY;AAAA,UACZ,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACX,EAAA,CACD;AAAA,EAAA,GACD;AAEF;"}