@datatechsolutions/ui 2.11.17 → 2.11.18

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.
@@ -3,7 +3,7 @@
3
3
 
4
4
  require('../chunk-55H6WZQP.js');
5
5
  var chunk3GE3MBUZ_js = require('../chunk-3GE3MBUZ.js');
6
- var chunkPNN6KWXQ_js = require('../chunk-PNN6KWXQ.js');
6
+ var chunk4X7ITYP2_js = require('../chunk-4X7ITYP2.js');
7
7
  var chunk4XID6LOC_js = require('../chunk-4XID6LOC.js');
8
8
  require('../chunk-S7KHTUHA.js');
9
9
  require('../chunk-UZ3CMNUJ.js');
@@ -83,7 +83,7 @@ function OutputCard({ label, value }) {
83
83
  function AgentProfileHeader({ agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, temperature, setTemperature, elo, setElo, onChanged }) {
84
84
  const modelName = models.find((model) => model.id === selectedModelId)?.name ?? selectedModelId ?? "\u2014";
85
85
  const avatarUrl = agent.avatar;
86
- const frameworkMeta = chunkPNN6KWXQ_js.getFrameworkMeta(selectedFramework);
86
+ const frameworkMeta = chunk4X7ITYP2_js.getFrameworkMeta(selectedFramework);
87
87
  const tierInfo = getEloTier(elo);
88
88
  const difficultyConfig = {
89
89
  beginner: { color: "bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400", labelKey: "agentDrawer.tierBeginner" },
@@ -375,12 +375,12 @@ function ConfigTab({ agent, models, t, selectedModelId, setSelectedModelId, sele
375
375
  const isPrecise = temperature <= 0.3;
376
376
  const isBalanced = temperature > 0.3 && temperature <= 0.7;
377
377
  const isCreative = temperature > 0.7;
378
- const frameworkKeys = Object.keys(chunkPNN6KWXQ_js.FRAMEWORK_META);
379
- const compatibleModels = chunkPNN6KWXQ_js.getCompatibleModels(models, selectedFramework);
378
+ const frameworkKeys = Object.keys(chunk4X7ITYP2_js.FRAMEWORK_META);
379
+ const compatibleModels = chunk4X7ITYP2_js.getCompatibleModels(models, selectedFramework);
380
380
  const handleFrameworkChange = react.useCallback((newFramework) => {
381
381
  setSelectedFramework(newFramework);
382
- if (!chunkPNN6KWXQ_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
383
- const compatible = chunkPNN6KWXQ_js.getCompatibleModels(models, newFramework);
382
+ if (!chunk4X7ITYP2_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
383
+ const compatible = chunk4X7ITYP2_js.getCompatibleModels(models, newFramework);
384
384
  if (compatible.length > 0) {
385
385
  setSelectedModelId(compatible[0].id);
386
386
  }
@@ -391,9 +391,9 @@ function ConfigTab({ agent, models, t, selectedModelId, setSelectedModelId, sele
391
391
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
392
392
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
393
393
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
394
- const meta = chunkPNN6KWXQ_js.FRAMEWORK_META[key];
394
+ const meta = chunk4X7ITYP2_js.FRAMEWORK_META[key];
395
395
  const isSelected = key === selectedFramework;
396
- const compatCount = chunkPNN6KWXQ_js.getCompatibleModels(models, key).length;
396
+ const compatCount = chunk4X7ITYP2_js.getCompatibleModels(models, key).length;
397
397
  return /* @__PURE__ */ jsxRuntime.jsxs(
398
398
  "button",
399
399
  {
@@ -423,7 +423,7 @@ function ConfigTab({ agent, models, t, selectedModelId, setSelectedModelId, sele
423
423
  ] }),
424
424
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
425
425
  const isSelected = model.id === selectedModelId;
426
- const isCompatible = chunkPNN6KWXQ_js.isModelCompatibleWithFramework(model.id, selectedFramework);
426
+ const isCompatible = chunk4X7ITYP2_js.isModelCompatibleWithFramework(model.id, selectedFramework);
427
427
  const { IconComponent, color, providerLabel } = getModelIcon(model.id);
428
428
  return /* @__PURE__ */ jsxRuntime.jsxs(
429
429
  "button",
@@ -520,7 +520,7 @@ function ConfigTab({ agent, models, t, selectedModelId, setSelectedModelId, sele
520
520
  ] });
521
521
  }
522
522
  function ResultsTab({ agentId, t }) {
523
- const nodeResults = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.nodeResults);
523
+ const nodeResults = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodeResults);
524
524
  const agentResult = react.useMemo(() => {
525
525
  return nodeResults[agentId] ?? null;
526
526
  }, [nodeResults, agentId]);
@@ -560,7 +560,7 @@ var PROVIDER_LOGOS = {
560
560
  azure_openai: SI("microsoftazure", "0078D4"),
561
561
  anthropic_api: SI("anthropic", "D4A27F")
562
562
  };
563
- function ModelsTab({ modelProviders, selectedProviderId, onSelectProvider, t }) {
563
+ function ModelsTab({ modelProviders, selectedProviderId, onSelectProvider, models, selectedModelId, onSelectModel, agentFramework, t }) {
564
564
  if (modelProviders.length === 0) {
565
565
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center px-4 py-12 text-center", children: [
566
566
  /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "mb-2 h-8 w-8 text-gray-400 dark:text-gray-500" }),
@@ -568,35 +568,87 @@ function ModelsTab({ modelProviders, selectedProviderId, onSelectProvider, t })
568
568
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-gray-400 dark:text-gray-500", children: t("agentDrawer.dragProviderHint") })
569
569
  ] });
570
570
  }
571
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 p-4", children: [
572
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-gray-500 dark:text-gray-400", children: t("agentDrawer.modelsDescription") }),
573
- modelProviders.map((provider) => {
574
- const isSelected = selectedProviderId === provider.id;
575
- const logo = PROVIDER_LOGOS[provider.provider];
576
- return /* @__PURE__ */ jsxRuntime.jsxs(
577
- "button",
578
- {
579
- type: "button",
580
- onClick: () => onSelectProvider(provider.id),
581
- className: `flex w-full items-center gap-3 rounded-xl border px-4 py-3 text-left transition-all ${isSelected ? "border-rose-500/30 bg-rose-50/50 ring-1 ring-rose-500/20 dark:border-rose-400/20 dark:bg-rose-500/5" : "border-gray-200/50 bg-gray-50/30 hover:border-gray-300 dark:border-white/10 dark:bg-white/[0.02] dark:hover:border-white/20"}`,
582
- children: [
583
- logo ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-white/10 p-1.5", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: "", className: "h-6 w-6 object-contain", loading: "lazy" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-rose-500 to-pink-600", children: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-5 w-5 text-white" }) }),
584
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
585
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-sm font-medium ${isSelected ? "text-gray-900 dark:text-white" : "text-gray-600 dark:text-gray-400"}`, children: provider.name }),
586
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 flex items-center gap-2 text-[10px] text-gray-400 dark:text-gray-500", children: [
587
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
588
- provider.modelCount,
589
- " models"
590
- ] }),
591
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `rounded-full px-1.5 py-0.5 text-[9px] font-medium ${provider.configured ? "bg-green-100 text-green-600 dark:bg-green-500/10 dark:text-green-400" : "bg-amber-100 text-amber-600 dark:bg-amber-500/10 dark:text-amber-400"}`, children: provider.configured ? t("agentDrawer.providerConfigured") : t("agentDrawer.providerSetup") })
592
- ] })
593
- ] }),
594
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-5 w-5 shrink-0 items-center justify-center rounded-full transition-all ${isSelected ? "bg-rose-500 text-white" : "border border-gray-300 dark:border-gray-600"}`, children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-3 w-3" }) })
595
- ]
596
- },
597
- provider.id
598
- );
571
+ const modelsByProvider = modelProviders.map((provider) => ({
572
+ provider,
573
+ models: models.filter((m) => {
574
+ const modelProvider = m.id.split(".")[0];
575
+ return provider.provider === modelProvider || provider.provider === "amazon" && modelProvider === "anthropic" || provider.provider === "amazon" && modelProvider === "amazon" || provider.provider === "amazon" && modelProvider === "meta";
599
576
  })
577
+ }));
578
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 p-4", children: [
579
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
580
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.selectProvider") }),
581
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: modelProviders.map((provider) => {
582
+ const isSelected = selectedProviderId === provider.id;
583
+ const logo = PROVIDER_LOGOS[provider.provider];
584
+ return /* @__PURE__ */ jsxRuntime.jsxs(
585
+ "button",
586
+ {
587
+ type: "button",
588
+ onClick: () => onSelectProvider(provider.id),
589
+ className: `flex w-full items-center gap-3 rounded-xl border px-3 py-2.5 text-left transition-all ${isSelected ? "border-indigo-500/30 bg-indigo-50/50 ring-1 ring-indigo-500/20 dark:border-indigo-400/20 dark:bg-indigo-500/5" : "border-gray-200/50 bg-gray-50/30 hover:border-gray-300 dark:border-white/10 dark:bg-white/[0.02] dark:hover:border-white/20"}`,
590
+ children: [
591
+ logo ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-white/10 p-1", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: "", className: "h-5 w-5 object-contain", loading: "lazy" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-slate-500 to-gray-600", children: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-4 w-4 text-white" }) }),
592
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
593
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-xs font-medium ${isSelected ? "text-gray-900 dark:text-white" : "text-gray-600 dark:text-gray-400"}`, children: provider.name }),
594
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-[10px] text-gray-400 dark:text-gray-500", children: [
595
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
596
+ provider.modelCount,
597
+ " models"
598
+ ] }),
599
+ provider.configured && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-green-500" })
600
+ ] })
601
+ ] }),
602
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-4 w-4 shrink-0 items-center justify-center rounded-full transition-all ${isSelected ? "bg-indigo-500 text-white" : "border border-gray-300 dark:border-gray-600"}`, children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-2.5 w-2.5" }) })
603
+ ]
604
+ },
605
+ provider.id
606
+ );
607
+ }) })
608
+ ] }),
609
+ selectedProviderId && (() => {
610
+ const providerModels = modelsByProvider.find((p) => p.provider.id === selectedProviderId);
611
+ if (!providerModels || providerModels.models.length === 0) return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-400 dark:text-gray-500", children: t("agentDrawer.noModelsForProvider") });
612
+ const compatibleModels = providerModels.models.filter(
613
+ (m) => chunk4X7ITYP2_js.isModelCompatibleWithFramework(m.id, agentFramework)
614
+ );
615
+ const incompatibleModels = providerModels.models.filter(
616
+ (m) => !chunk4X7ITYP2_js.isModelCompatibleWithFramework(m.id, agentFramework)
617
+ );
618
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
619
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.selectModel") }),
620
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
621
+ compatibleModels.map((model) => {
622
+ const isSelected = selectedModelId === model.id;
623
+ const { IconComponent, color, providerLabel } = getModelIcon(model.id);
624
+ return /* @__PURE__ */ jsxRuntime.jsxs(
625
+ "button",
626
+ {
627
+ type: "button",
628
+ onClick: () => onSelectModel(model.id),
629
+ className: `flex w-full items-center gap-2.5 rounded-lg border px-3 py-2 text-left transition-all ${isSelected ? "border-indigo-500/50 bg-indigo-50/50 ring-1 ring-indigo-500/30 dark:border-indigo-400/40 dark:bg-indigo-500/10" : "border-gray-200/50 bg-gray-50/50 hover:border-gray-300 dark:border-white/10 dark:bg-white/5 dark:hover:border-white/20"}`,
630
+ children: [
631
+ /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: `h-4 w-4 flex-shrink-0 ${isSelected ? color : "text-gray-400 dark:text-gray-500"}` }),
632
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
633
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-xs font-semibold ${isSelected ? "text-gray-900 dark:text-white" : "text-gray-600 dark:text-gray-300"}`, children: model.name }),
634
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: providerLabel })
635
+ ] }),
636
+ isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-3.5 w-3.5 shrink-0 text-indigo-500" })
637
+ ]
638
+ },
639
+ model.id
640
+ );
641
+ }),
642
+ incompatibleModels.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
643
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 mb-1 text-[9px] font-medium text-gray-400 dark:text-gray-500", children: t("agentDrawer.incompatibleWithFramework") }),
644
+ incompatibleModels.map((model) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2.5 rounded-lg border border-gray-200/30 px-3 py-2 opacity-40 dark:border-white/5", children: [
645
+ /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-4 w-4 text-gray-400" }),
646
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500", children: model.name })
647
+ ] }, model.id))
648
+ ] })
649
+ ] })
650
+ ] });
651
+ })()
600
652
  ] });
601
653
  }
602
654
  function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
@@ -634,7 +686,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
634
686
  ] }),
635
687
  tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
636
688
  tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
637
- const meta = chunkPNN6KWXQ_js.getFrameworkMeta(framework);
689
+ const meta = chunk4X7ITYP2_js.getFrameworkMeta(framework);
638
690
  const isCurrentFw = framework === agentFramework;
639
691
  return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[8px] font-medium ${isCurrentFw ? meta.badgeColor : "bg-gray-100 text-gray-500 dark:bg-white/5 dark:text-gray-400"}`, children: [
640
692
  /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
@@ -652,15 +704,15 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
652
704
  }
653
705
  function AgentModal({ onSaved }) {
654
706
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
655
- const activeModal = chunkPNN6KWXQ_js.useModalStore((s) => s.activeModal);
656
- const agentData = chunkPNN6KWXQ_js.useModalStore((s) => s.agentData);
657
- const closeModal = chunkPNN6KWXQ_js.useModalStore((s) => s.closeModal);
707
+ const activeModal = chunk4X7ITYP2_js.useModalStore((s) => s.activeModal);
708
+ const agentData = chunk4X7ITYP2_js.useModalStore((s) => s.agentData);
709
+ const closeModal = chunk4X7ITYP2_js.useModalStore((s) => s.closeModal);
658
710
  const open = activeModal === "agent";
659
711
  const agent = agentData?.agent ?? null;
660
712
  const models = agentData?.models ?? [];
661
713
  const availableAgentTools = agentData?.agentTools ?? [];
662
714
  const isCreateMode = agentData?.isCreateMode ?? false;
663
- const [activeTab, setActiveTab] = react.useState("config");
715
+ const [activeTab, setActiveTab] = react.useState("profile");
664
716
  const [selectedModelId, setSelectedModelId] = react.useState("");
665
717
  const [selectedFramework, setSelectedFramework] = react.useState("custom");
666
718
  const [temperature, setTemperature] = react.useState(0.7);
@@ -677,7 +729,7 @@ function AgentModal({ onSaved }) {
677
729
  setTemperature(agent.temperature ?? 0.7);
678
730
  setElo(Number(agent.elo ?? 1e3));
679
731
  setSaved(!isCreateMode);
680
- setActiveTab("config");
732
+ setActiveTab("profile");
681
733
  const agentToolIds = agent.agentToolIds;
682
734
  setEnabledToolIds(new Set(agentToolIds ?? availableAgentTools.filter((t2) => t2.enabled).map((t2) => t2.agentToolId)));
683
735
  setSelectedProviderId(agent.modelProviderId ?? "");
@@ -706,64 +758,64 @@ function AgentModal({ onSaved }) {
706
758
  onSaved?.();
707
759
  }, [markSaved, onSaved]);
708
760
  if (!agent) return null;
709
- const tabList = ["config", "tools", "models", "results"];
710
- const tabs = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex border-b border-white/20 dark:border-white/10", children: tabList.map((tab) => /* @__PURE__ */ jsxRuntime.jsxs(
711
- "button",
712
- {
713
- type: "button",
714
- onClick: () => setActiveTab(tab),
715
- className: `flex-1 px-4 py-2 text-xs font-medium transition-colors ${activeTab === tab ? "border-b-2 border-blue-500 text-blue-600 dark:text-blue-400" : "text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"}`,
716
- children: [
717
- t(tab === "config" ? "agentDrawer.configTab" : tab === "tools" ? "agentDrawer.toolsTab" : tab === "models" ? "agentDrawer.modelsTab" : "agentDrawer.resultsTab"),
718
- tab === "tools" && enabledToolIds.size > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-amber-500/20 px-1 text-[9px] font-bold text-amber-600 dark:text-amber-400", children: enabledToolIds.size }),
719
- tab === "models" && selectedProviderId && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-rose-500/20 px-1 text-[9px] font-bold text-rose-600 dark:text-rose-400", children: "1" })
720
- ]
721
- },
722
- tab
723
- )) });
724
- const footer = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
725
- /* @__PURE__ */ jsxRuntime.jsx("div", { role: "status", "aria-live": "polite", className: "text-xs", children: dirty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-amber-500 dark:text-amber-400", children: t("agentDrawer.unsavedChanges") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-emerald-500 dark:text-emerald-400", children: t("agentDrawer.saved") }) }),
726
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
727
- /* @__PURE__ */ jsxRuntime.jsx(
728
- "button",
729
- {
730
- type: "button",
731
- onClick: handleClose,
732
- className: "rounded-lg border border-gray-200/50 px-4 py-2 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100/50 dark:border-white/10 dark:text-gray-300 dark:hover:bg-white/5",
733
- children: t("agentDrawer.cancel")
734
- }
735
- ),
736
- /* @__PURE__ */ jsxRuntime.jsx(
737
- "button",
738
- {
739
- type: "button",
740
- onClick: handleMarkSaved,
741
- disabled: !dirty,
742
- className: `rounded-lg px-4 py-2 text-xs font-semibold text-white shadow-sm transition-all ${dirty ? "bg-gradient-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600" : "cursor-not-allowed bg-gray-300 dark:bg-gray-700"}`,
743
- children: t("agentDrawer.save")
744
- }
745
- )
746
- ] })
761
+ const sections = [
762
+ { id: "profile", label: t("agentDrawer.profileSection"), icon: outline.UserCircleIcon, group: t("agentDrawer.agentGroup") },
763
+ { id: "framework", label: t("agentDrawer.frameworkSection"), icon: outline.Cog6ToothIcon, group: t("agentDrawer.agentGroup") },
764
+ { id: "tools", label: `${t("agentDrawer.toolsTab")}${enabledToolIds.size > 0 ? ` (${enabledToolIds.size})` : ""}`, icon: outline.CommandLineIcon, group: t("agentDrawer.configGroup") },
765
+ { id: "models", label: `${t("agentDrawer.modelsTab")}${selectedProviderId ? " \u2713" : ""}`, icon: outline.KeyIcon, group: t("agentDrawer.configGroup") },
766
+ { id: "results", label: t("agentDrawer.resultsTab"), icon: outline.PlayCircleIcon, group: t("agentDrawer.executionGroup") }
767
+ ];
768
+ const avatarUrl = agent.avatar;
769
+ const sidebarFooter = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 px-4 py-3", children: [
770
+ /* @__PURE__ */ jsxRuntime.jsx("div", { role: "status", "aria-live": "polite", className: "flex-1 text-xs", children: dirty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-amber-500 dark:text-amber-400", children: t("agentDrawer.unsavedChanges") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-emerald-500 dark:text-emerald-400", children: t("agentDrawer.saved") }) }),
771
+ /* @__PURE__ */ jsxRuntime.jsx(
772
+ "button",
773
+ {
774
+ type: "button",
775
+ onClick: handleMarkSaved,
776
+ disabled: !dirty,
777
+ className: `rounded-lg px-3 py-1.5 text-xs font-semibold text-white shadow-sm transition-all ${dirty ? "bg-gradient-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600" : "cursor-not-allowed bg-gray-300 dark:bg-gray-700"}`,
778
+ children: t("agentDrawer.save")
779
+ }
780
+ )
747
781
  ] });
748
782
  return /* @__PURE__ */ jsxRuntime.jsxs(
749
- chunk4XID6LOC_js.GlassModalShell,
783
+ chunk4XID6LOC_js.SettingsDialog,
750
784
  {
751
785
  open,
752
786
  onClose: handleClose,
753
787
  title: agent.name,
754
- subtitle: agent.role ?? "",
755
- gradient: "from-indigo-500 to-purple-600",
756
- icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-6 w-6 text-white" }),
757
- label: isCreateMode ? t("agentDrawer.createAgent") : t("agentDrawer.editAgent"),
758
- headerActions: tabs,
759
- footer,
760
- maxWidth: "2xl",
761
- closeLabel: t("agentDrawer.close"),
788
+ subtitle: isCreateMode ? t("agentDrawer.createAgent") : t("agentDrawer.editAgent"),
789
+ sections,
790
+ activeSectionId: activeTab,
791
+ onSectionChange: (sectionId) => setActiveTab(sectionId),
792
+ identity: {
793
+ displayName: agent.name,
794
+ profileInitial: agent.name.charAt(0).toUpperCase(),
795
+ avatarUrl,
796
+ role: agent.role
797
+ },
798
+ sidebarFooter,
762
799
  children: [
763
- /* @__PURE__ */ jsxRuntime.jsx(AgentProfileHeader, { agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, temperature, setTemperature, elo, setElo, onChanged: markDirty }),
764
- activeTab === "config" && /* @__PURE__ */ jsxRuntime.jsx(ConfigTab, { agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework: (fw) => setSelectedFramework(fw), temperature, setTemperature, dirty, markDirty, markSaved: handleMarkSaved }),
800
+ activeTab === "profile" && /* @__PURE__ */ jsxRuntime.jsx(AgentProfileHeader, { agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, temperature, setTemperature, elo, setElo, onChanged: markDirty }),
801
+ activeTab === "framework" && /* @__PURE__ */ jsxRuntime.jsx(ConfigTab, { agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework: (fw) => setSelectedFramework(fw), temperature, setTemperature, dirty, markDirty, markSaved: handleMarkSaved }),
765
802
  activeTab === "tools" && /* @__PURE__ */ jsxRuntime.jsx(ToolsTab, { agentTools: availableAgentTools, enabledToolIds, onToggle: handleToggleTool, agentFramework: selectedFramework, t }),
766
- activeTab === "models" && /* @__PURE__ */ jsxRuntime.jsx(ModelsTab, { modelProviders: availableModelProviders, selectedProviderId, onSelectProvider: handleSelectProvider, t }),
803
+ activeTab === "models" && /* @__PURE__ */ jsxRuntime.jsx(
804
+ ModelsTab,
805
+ {
806
+ modelProviders: availableModelProviders,
807
+ selectedProviderId,
808
+ onSelectProvider: handleSelectProvider,
809
+ models,
810
+ selectedModelId,
811
+ onSelectModel: (modelId) => {
812
+ setSelectedModelId(modelId);
813
+ markDirty();
814
+ },
815
+ agentFramework: selectedFramework,
816
+ t
817
+ }
818
+ ),
767
819
  activeTab === "results" && /* @__PURE__ */ jsxRuntime.jsx(ResultsTab, { agentId: agent.agentId, t })
768
820
  ]
769
821
  }
@@ -874,7 +926,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
874
926
  const markDirty = useSubworkflowStore((s) => s.markDirty);
875
927
  const markSaved = useSubworkflowStore((s) => s.markSaved);
876
928
  const closeModal = useSubworkflowStore((s) => s.closeModal);
877
- const agentBehind = chunkPNN6KWXQ_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
929
+ const agentBehind = chunk4X7ITYP2_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
878
930
  const isCreateMode = !tool?.toolId;
879
931
  const initialGraph = react.useMemo(() => {
880
932
  const config = tool?.config;
@@ -903,9 +955,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
903
955
  }, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
904
956
  if (!tool) return null;
905
957
  const categoryKey = category ?? "external";
906
- const gradient = tool.color ?? chunkPNN6KWXQ_js.CATEGORY_COLORS[categoryKey] ?? chunkPNN6KWXQ_js.CATEGORY_COLORS.external;
907
- const categoryPill = chunkPNN6KWXQ_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkPNN6KWXQ_js.CATEGORY_PILL_COLORS.external;
908
- const IconComponent = chunkPNN6KWXQ_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
958
+ const gradient = tool.color ?? chunk4X7ITYP2_js.CATEGORY_COLORS[categoryKey] ?? chunk4X7ITYP2_js.CATEGORY_COLORS.external;
959
+ const categoryPill = chunk4X7ITYP2_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunk4X7ITYP2_js.CATEGORY_PILL_COLORS.external;
960
+ const IconComponent = chunk4X7ITYP2_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
909
961
  const graph = latestGraphRef.current;
910
962
  const startNode = graph.nodes.find((n) => n.type === "start");
911
963
  const endNode = graph.nodes.find((n) => n.type === "end");
@@ -970,7 +1022,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
970
1022
  {
971
1023
  type: "button",
972
1024
  onClick: () => setCategory(cat),
973
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkPNN6KWXQ_js.CATEGORY_PILL_COLORS[cat] ?? chunkPNN6KWXQ_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-gray-500 hover:bg-white/50 dark:bg-white/5 dark:text-gray-400"}`,
1025
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunk4X7ITYP2_js.CATEGORY_PILL_COLORS[cat] ?? chunk4X7ITYP2_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-gray-500 hover:bg-white/50 dark:bg-white/5 dark:text-gray-400"}`,
974
1026
  children: cat
975
1027
  },
976
1028
  cat
@@ -1057,7 +1109,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1057
1109
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
1058
1110
  ] }),
1059
1111
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
1060
- chunkPNN6KWXQ_js.WorkflowCanvas,
1112
+ chunk4X7ITYP2_js.WorkflowCanvas,
1061
1113
  {
1062
1114
  initialGraph,
1063
1115
  agents: [],
@@ -1115,9 +1167,9 @@ function WorkspaceModal({
1115
1167
  }
1116
1168
  function PipelineSettingsModal({ onSave }) {
1117
1169
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
1118
- const activeModal = chunkPNN6KWXQ_js.useModalStore((s) => s.activeModal);
1119
- const data = chunkPNN6KWXQ_js.useModalStore((s) => s.pipelineSettingsData);
1120
- const closeModal = chunkPNN6KWXQ_js.useModalStore((s) => s.closeModal);
1170
+ const activeModal = chunk4X7ITYP2_js.useModalStore((s) => s.activeModal);
1171
+ const data = chunk4X7ITYP2_js.useModalStore((s) => s.pipelineSettingsData);
1172
+ const closeModal = chunk4X7ITYP2_js.useModalStore((s) => s.closeModal);
1121
1173
  const open = activeModal === "pipeline-settings";
1122
1174
  const [nameValue, setNameValue] = react.useState("");
1123
1175
  const [descriptionValue, setDescriptionValue] = react.useState("");
@@ -1326,8 +1378,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
1326
1378
  ] });
1327
1379
  }
1328
1380
  function LogicNodeItemCard({ item, translationFunction }) {
1329
- const IconComponent = chunkPNN6KWXQ_js.LOGIC_ICON_MAP[item.nodeType];
1330
- const gradient = chunkPNN6KWXQ_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1381
+ const IconComponent = chunk4X7ITYP2_js.LOGIC_ICON_MAP[item.nodeType];
1382
+ const gradient = chunk4X7ITYP2_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1331
1383
  const defaultConfig = chunkPWBWP5FJ_js.createDefaultLogicNodeConfig(item.nodeType);
1332
1384
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
1333
1385
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1548,8 +1600,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1548
1600
  limit: entity.defaultLimit
1549
1601
  });
1550
1602
  const dsLogo = getDatasourceLogo(entity.id);
1551
- const EntityIcon = chunkPNN6KWXQ_js.getEntityIcon(entity.id);
1552
- const entityGradient = chunkPNN6KWXQ_js.getEntityGradient(entity.id);
1603
+ const EntityIcon = chunk4X7ITYP2_js.getEntityIcon(entity.id);
1604
+ const entityGradient = chunk4X7ITYP2_js.getEntityGradient(entity.id);
1553
1605
  return /* @__PURE__ */ jsxRuntime.jsxs(
1554
1606
  "div",
1555
1607
  {
@@ -1931,9 +1983,9 @@ function formatDuration2(durationMs) {
1931
1983
  }
1932
1984
  function RunPanel({ open, onClose, onRun, onStop }) {
1933
1985
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
1934
- const nodes = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.nodes);
1935
- const isRunning = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.isRunning);
1936
- const nodeResults = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.nodeResults);
1986
+ const nodes = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodes);
1987
+ const isRunning = chunk4X7ITYP2_js.useWorkflowStore((state) => state.isRunning);
1988
+ const nodeResults = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodeResults);
1937
1989
  const startNode = nodes.find((node) => node.type === "start");
1938
1990
  const hasEndNode = nodes.some((node) => node.type === "end");
1939
1991
  const hasValidStartConfig = Boolean(
@@ -2218,8 +2270,8 @@ function inferVariables(config, nodeType) {
2218
2270
  }
2219
2271
  function VariableInspector({ open, onClose }) {
2220
2272
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
2221
- const nodes = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.nodes);
2222
- const edges = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.edges);
2273
+ const nodes = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodes);
2274
+ const edges = chunk4X7ITYP2_js.useWorkflowStore((state) => state.edges);
2223
2275
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
2224
2276
  const toggleNodeExpansion = react.useCallback((nodeId) => {
2225
2277
  setExpandedNodes((current) => {
@@ -2281,8 +2333,8 @@ function VariableInspector({ open, onClose }) {
2281
2333
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
2282
2334
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
2283
2335
  const isExpanded = expandedNodes.has(entry.nodeId);
2284
- const IconComponent = chunkPNN6KWXQ_js.LOGIC_ICON_MAP[entry.nodeType];
2285
- const gradient = chunkPNN6KWXQ_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2336
+ const IconComponent = chunk4X7ITYP2_js.LOGIC_ICON_MAP[entry.nodeType];
2337
+ const gradient = chunk4X7ITYP2_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2286
2338
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
2287
2339
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
2288
2340
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -2348,7 +2400,7 @@ function RunInputDialog({
2348
2400
  onRun
2349
2401
  }) {
2350
2402
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
2351
- const nodes = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.nodes);
2403
+ const nodes = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodes);
2352
2404
  const [values, setValues] = react.useState({});
2353
2405
  const inputVariableNames = react.useMemo(() => {
2354
2406
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -2430,8 +2482,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
2430
2482
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
2431
2483
  const [selectedRun, setSelectedRun] = react.useState(null);
2432
2484
  const [selectedNode, setSelectedNode] = react.useState(null);
2433
- const isRunning = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.isRunning);
2434
- const nodeResults = chunkPNN6KWXQ_js.useWorkflowStore((state) => state.nodeResults);
2485
+ const isRunning = chunk4X7ITYP2_js.useWorkflowStore((state) => state.isRunning);
2486
+ const nodeResults = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodeResults);
2435
2487
  const refreshRuns = react.useCallback(async () => {
2436
2488
  setIsLoadingRuns(true);
2437
2489
  try {
@@ -2587,7 +2639,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
2587
2639
  onAutoSaveGraph(graph);
2588
2640
  }, [onAutoSaveGraph, onGraphSnapshot]);
2589
2641
  return /* @__PURE__ */ jsxRuntime.jsx(
2590
- chunkPNN6KWXQ_js.Workspace,
2642
+ chunk4X7ITYP2_js.Workspace,
2591
2643
  {
2592
2644
  ...workspaceProps,
2593
2645
  onGraphChange: handleGraphChange
@@ -2960,14 +3012,14 @@ function DslImportModal({ open, onClose, onImport }) {
2960
3012
  }
2961
3013
 
2962
3014
  // src/astrlabe/store/selectors.ts
2963
- var useCanUndo = () => chunkPNN6KWXQ_js.useWorkflowStore((state) => state.past.length > 0);
2964
- var useCanRedo = () => chunkPNN6KWXQ_js.useWorkflowStore((state) => state.future.length > 0);
2965
- var useHasCopied = () => chunkPNN6KWXQ_js.useWorkflowStore((state) => state.clipboard !== null);
2966
- var useContextMenu = () => chunkPNN6KWXQ_js.useWorkflowStore((state) => state.contextMenu);
2967
- var useEditingNodeId = () => chunkPNN6KWXQ_js.useWorkflowStore((state) => state.editingNodeId);
2968
- var useSelectedNodeCount = () => chunkPNN6KWXQ_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
2969
- var useIsRunning = () => chunkPNN6KWXQ_js.useWorkflowStore((state) => state.isRunning);
2970
- var useNodeResults = () => chunkPNN6KWXQ_js.useWorkflowStore((state) => state.nodeResults);
3015
+ var useCanUndo = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.past.length > 0);
3016
+ var useCanRedo = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.future.length > 0);
3017
+ var useHasCopied = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.clipboard !== null);
3018
+ var useContextMenu = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.contextMenu);
3019
+ var useEditingNodeId = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.editingNodeId);
3020
+ var useSelectedNodeCount = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
3021
+ var useIsRunning = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.isRunning);
3022
+ var useNodeResults = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodeResults);
2971
3023
  var DEFAULT_MAX_HISTORY = 50;
2972
3024
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
2973
3025
  const pastRef = react.useRef([]);
@@ -3255,227 +3307,227 @@ Object.defineProperty(exports, "validateWorkflowGraph", {
3255
3307
  });
3256
3308
  Object.defineProperty(exports, "AgentFlowNode", {
3257
3309
  enumerable: true,
3258
- get: function () { return chunkPNN6KWXQ_js.AgentFlowNode; }
3310
+ get: function () { return chunk4X7ITYP2_js.AgentFlowNode; }
3259
3311
  });
3260
3312
  Object.defineProperty(exports, "AgentToolFlowNode", {
3261
3313
  enumerable: true,
3262
- get: function () { return chunkPNN6KWXQ_js.AgentToolFlowNode; }
3314
+ get: function () { return chunk4X7ITYP2_js.AgentToolFlowNode; }
3263
3315
  });
3264
3316
  Object.defineProperty(exports, "AnswerFlowNode", {
3265
3317
  enumerable: true,
3266
- get: function () { return chunkPNN6KWXQ_js.AnswerFlowNode; }
3318
+ get: function () { return chunk4X7ITYP2_js.AnswerFlowNode; }
3267
3319
  });
3268
3320
  Object.defineProperty(exports, "AnthropicIcon", {
3269
3321
  enumerable: true,
3270
- get: function () { return chunkPNN6KWXQ_js.AnthropicIcon; }
3322
+ get: function () { return chunk4X7ITYP2_js.AnthropicIcon; }
3271
3323
  });
3272
3324
  Object.defineProperty(exports, "CodeFlowNode", {
3273
3325
  enumerable: true,
3274
- get: function () { return chunkPNN6KWXQ_js.CodeFlowNode; }
3326
+ get: function () { return chunk4X7ITYP2_js.CodeFlowNode; }
3275
3327
  });
3276
3328
  Object.defineProperty(exports, "CrewAIIcon", {
3277
3329
  enumerable: true,
3278
- get: function () { return chunkPNN6KWXQ_js.CrewAIIcon; }
3330
+ get: function () { return chunk4X7ITYP2_js.CrewAIIcon; }
3279
3331
  });
3280
3332
  Object.defineProperty(exports, "DocumentExtractorFlowNode", {
3281
3333
  enumerable: true,
3282
- get: function () { return chunkPNN6KWXQ_js.DocumentExtractorFlowNode; }
3334
+ get: function () { return chunk4X7ITYP2_js.DocumentExtractorFlowNode; }
3283
3335
  });
3284
3336
  Object.defineProperty(exports, "EndFlowNode", {
3285
3337
  enumerable: true,
3286
- get: function () { return chunkPNN6KWXQ_js.EndFlowNode; }
3338
+ get: function () { return chunk4X7ITYP2_js.EndFlowNode; }
3287
3339
  });
3288
3340
  Object.defineProperty(exports, "EntityFlowNode", {
3289
3341
  enumerable: true,
3290
- get: function () { return chunkPNN6KWXQ_js.EntityFlowNode; }
3342
+ get: function () { return chunk4X7ITYP2_js.EntityFlowNode; }
3291
3343
  });
3292
3344
  Object.defineProperty(exports, "FRAMEWORK_META", {
3293
3345
  enumerable: true,
3294
- get: function () { return chunkPNN6KWXQ_js.FRAMEWORK_META; }
3346
+ get: function () { return chunk4X7ITYP2_js.FRAMEWORK_META; }
3295
3347
  });
3296
3348
  Object.defineProperty(exports, "GoogleADKIcon", {
3297
3349
  enumerable: true,
3298
- get: function () { return chunkPNN6KWXQ_js.GoogleADKIcon; }
3350
+ get: function () { return chunk4X7ITYP2_js.GoogleADKIcon; }
3299
3351
  });
3300
3352
  Object.defineProperty(exports, "GroupFlowNode", {
3301
3353
  enumerable: true,
3302
- get: function () { return chunkPNN6KWXQ_js.GroupFlowNode; }
3354
+ get: function () { return chunk4X7ITYP2_js.GroupFlowNode; }
3303
3355
  });
3304
3356
  Object.defineProperty(exports, "HttpRequestFlowNode", {
3305
3357
  enumerable: true,
3306
- get: function () { return chunkPNN6KWXQ_js.HttpRequestFlowNode; }
3358
+ get: function () { return chunk4X7ITYP2_js.HttpRequestFlowNode; }
3307
3359
  });
3308
3360
  Object.defineProperty(exports, "IfElseFlowNode", {
3309
3361
  enumerable: true,
3310
- get: function () { return chunkPNN6KWXQ_js.IfElseFlowNode; }
3362
+ get: function () { return chunk4X7ITYP2_js.IfElseFlowNode; }
3311
3363
  });
3312
3364
  Object.defineProperty(exports, "IterationFlowNode", {
3313
3365
  enumerable: true,
3314
- get: function () { return chunkPNN6KWXQ_js.IterationFlowNode; }
3366
+ get: function () { return chunk4X7ITYP2_js.IterationFlowNode; }
3315
3367
  });
3316
3368
  Object.defineProperty(exports, "IterationStartFlowNode", {
3317
3369
  enumerable: true,
3318
- get: function () { return chunkPNN6KWXQ_js.IterationStartFlowNode; }
3370
+ get: function () { return chunk4X7ITYP2_js.IterationStartFlowNode; }
3319
3371
  });
3320
3372
  Object.defineProperty(exports, "KnowledgeBaseFlowNode", {
3321
3373
  enumerable: true,
3322
- get: function () { return chunkPNN6KWXQ_js.KnowledgeBaseFlowNode; }
3374
+ get: function () { return chunk4X7ITYP2_js.KnowledgeBaseFlowNode; }
3323
3375
  });
3324
3376
  Object.defineProperty(exports, "LOGIC_ICON_MAP", {
3325
3377
  enumerable: true,
3326
- get: function () { return chunkPNN6KWXQ_js.LOGIC_ICON_MAP; }
3378
+ get: function () { return chunk4X7ITYP2_js.LOGIC_ICON_MAP; }
3327
3379
  });
3328
3380
  Object.defineProperty(exports, "LOGIC_NODE_BADGE_COLORS", {
3329
3381
  enumerable: true,
3330
- get: function () { return chunkPNN6KWXQ_js.LOGIC_NODE_BADGE_COLORS; }
3382
+ get: function () { return chunk4X7ITYP2_js.LOGIC_NODE_BADGE_COLORS; }
3331
3383
  });
3332
3384
  Object.defineProperty(exports, "LOGIC_NODE_GRADIENTS", {
3333
3385
  enumerable: true,
3334
- get: function () { return chunkPNN6KWXQ_js.LOGIC_NODE_GRADIENTS; }
3386
+ get: function () { return chunk4X7ITYP2_js.LOGIC_NODE_GRADIENTS; }
3335
3387
  });
3336
3388
  Object.defineProperty(exports, "LOGIC_NODE_HANDLE_COLORS", {
3337
3389
  enumerable: true,
3338
- get: function () { return chunkPNN6KWXQ_js.LOGIC_NODE_HANDLE_COLORS; }
3390
+ get: function () { return chunk4X7ITYP2_js.LOGIC_NODE_HANDLE_COLORS; }
3339
3391
  });
3340
3392
  Object.defineProperty(exports, "LangChainIcon", {
3341
3393
  enumerable: true,
3342
- get: function () { return chunkPNN6KWXQ_js.LangChainIcon; }
3394
+ get: function () { return chunk4X7ITYP2_js.LangChainIcon; }
3343
3395
  });
3344
3396
  Object.defineProperty(exports, "ListOperatorFlowNode", {
3345
3397
  enumerable: true,
3346
- get: function () { return chunkPNN6KWXQ_js.ListOperatorFlowNode; }
3398
+ get: function () { return chunk4X7ITYP2_js.ListOperatorFlowNode; }
3347
3399
  });
3348
3400
  Object.defineProperty(exports, "LogicNodeModal", {
3349
3401
  enumerable: true,
3350
- get: function () { return chunkPNN6KWXQ_js.LogicNodeModal; }
3402
+ get: function () { return chunk4X7ITYP2_js.LogicNodeModal; }
3351
3403
  });
3352
3404
  Object.defineProperty(exports, "MINIMAP_NODE_COLORS", {
3353
3405
  enumerable: true,
3354
- get: function () { return chunkPNN6KWXQ_js.MINIMAP_NODE_COLORS; }
3406
+ get: function () { return chunk4X7ITYP2_js.MINIMAP_NODE_COLORS; }
3355
3407
  });
3356
3408
  Object.defineProperty(exports, "ModelProviderFlowNode", {
3357
3409
  enumerable: true,
3358
- get: function () { return chunkPNN6KWXQ_js.ModelProviderFlowNode; }
3410
+ get: function () { return chunk4X7ITYP2_js.ModelProviderFlowNode; }
3359
3411
  });
3360
3412
  Object.defineProperty(exports, "NodeCard", {
3361
3413
  enumerable: true,
3362
- get: function () { return chunkPNN6KWXQ_js.NodeCard; }
3414
+ get: function () { return chunk4X7ITYP2_js.NodeCard; }
3363
3415
  });
3364
3416
  Object.defineProperty(exports, "NodeContextMenu", {
3365
3417
  enumerable: true,
3366
- get: function () { return chunkPNN6KWXQ_js.NodeContextMenu; }
3418
+ get: function () { return chunk4X7ITYP2_js.NodeContextMenu; }
3367
3419
  });
3368
3420
  Object.defineProperty(exports, "NoteFlowNode", {
3369
3421
  enumerable: true,
3370
- get: function () { return chunkPNN6KWXQ_js.NoteFlowNode; }
3422
+ get: function () { return chunk4X7ITYP2_js.NoteFlowNode; }
3371
3423
  });
3372
3424
  Object.defineProperty(exports, "OpenAIIcon", {
3373
3425
  enumerable: true,
3374
- get: function () { return chunkPNN6KWXQ_js.OpenAIIcon; }
3426
+ get: function () { return chunk4X7ITYP2_js.OpenAIIcon; }
3375
3427
  });
3376
3428
  Object.defineProperty(exports, "PanelContextMenu", {
3377
3429
  enumerable: true,
3378
- get: function () { return chunkPNN6KWXQ_js.PanelContextMenu; }
3430
+ get: function () { return chunk4X7ITYP2_js.PanelContextMenu; }
3379
3431
  });
3380
3432
  Object.defineProperty(exports, "ParameterExtractorFlowNode", {
3381
3433
  enumerable: true,
3382
- get: function () { return chunkPNN6KWXQ_js.ParameterExtractorFlowNode; }
3434
+ get: function () { return chunk4X7ITYP2_js.ParameterExtractorFlowNode; }
3383
3435
  });
3384
3436
  Object.defineProperty(exports, "QuestionClassifierFlowNode", {
3385
3437
  enumerable: true,
3386
- get: function () { return chunkPNN6KWXQ_js.QuestionClassifierFlowNode; }
3438
+ get: function () { return chunk4X7ITYP2_js.QuestionClassifierFlowNode; }
3387
3439
  });
3388
3440
  Object.defineProperty(exports, "RuleFlowNode", {
3389
3441
  enumerable: true,
3390
- get: function () { return chunkPNN6KWXQ_js.RuleFlowNode; }
3442
+ get: function () { return chunk4X7ITYP2_js.RuleFlowNode; }
3391
3443
  });
3392
3444
  Object.defineProperty(exports, "SelectionContextMenu", {
3393
3445
  enumerable: true,
3394
- get: function () { return chunkPNN6KWXQ_js.SelectionContextMenu; }
3446
+ get: function () { return chunk4X7ITYP2_js.SelectionContextMenu; }
3395
3447
  });
3396
3448
  Object.defineProperty(exports, "StartFlowNode", {
3397
3449
  enumerable: true,
3398
- get: function () { return chunkPNN6KWXQ_js.StartFlowNode; }
3450
+ get: function () { return chunk4X7ITYP2_js.StartFlowNode; }
3399
3451
  });
3400
3452
  Object.defineProperty(exports, "StrandsIcon", {
3401
3453
  enumerable: true,
3402
- get: function () { return chunkPNN6KWXQ_js.StrandsIcon; }
3454
+ get: function () { return chunk4X7ITYP2_js.StrandsIcon; }
3403
3455
  });
3404
3456
  Object.defineProperty(exports, "TemplateTransformFlowNode", {
3405
3457
  enumerable: true,
3406
- get: function () { return chunkPNN6KWXQ_js.TemplateTransformFlowNode; }
3458
+ get: function () { return chunk4X7ITYP2_js.TemplateTransformFlowNode; }
3407
3459
  });
3408
3460
  Object.defineProperty(exports, "ToolFlowNode", {
3409
3461
  enumerable: true,
3410
- get: function () { return chunkPNN6KWXQ_js.ToolFlowNode; }
3462
+ get: function () { return chunk4X7ITYP2_js.ToolFlowNode; }
3411
3463
  });
3412
3464
  Object.defineProperty(exports, "VariableAggregatorFlowNode", {
3413
3465
  enumerable: true,
3414
- get: function () { return chunkPNN6KWXQ_js.VariableAggregatorFlowNode; }
3466
+ get: function () { return chunk4X7ITYP2_js.VariableAggregatorFlowNode; }
3415
3467
  });
3416
3468
  Object.defineProperty(exports, "VariableAssignerFlowNode", {
3417
3469
  enumerable: true,
3418
- get: function () { return chunkPNN6KWXQ_js.VariableAssignerFlowNode; }
3470
+ get: function () { return chunk4X7ITYP2_js.VariableAssignerFlowNode; }
3419
3471
  });
3420
3472
  Object.defineProperty(exports, "WorkflowBuilderProvider", {
3421
3473
  enumerable: true,
3422
- get: function () { return chunkPNN6KWXQ_js.WorkflowBuilderProvider; }
3474
+ get: function () { return chunk4X7ITYP2_js.WorkflowBuilderProvider; }
3423
3475
  });
3424
3476
  Object.defineProperty(exports, "Workspace", {
3425
3477
  enumerable: true,
3426
- get: function () { return chunkPNN6KWXQ_js.Workspace; }
3478
+ get: function () { return chunk4X7ITYP2_js.Workspace; }
3427
3479
  });
3428
3480
  Object.defineProperty(exports, "getCompatibleModels", {
3429
3481
  enumerable: true,
3430
- get: function () { return chunkPNN6KWXQ_js.getCompatibleModels; }
3482
+ get: function () { return chunk4X7ITYP2_js.getCompatibleModels; }
3431
3483
  });
3432
3484
  Object.defineProperty(exports, "getDefaultFrameworkForModel", {
3433
3485
  enumerable: true,
3434
- get: function () { return chunkPNN6KWXQ_js.getDefaultFrameworkForModel; }
3486
+ get: function () { return chunk4X7ITYP2_js.getDefaultFrameworkForModel; }
3435
3487
  });
3436
3488
  Object.defineProperty(exports, "getEntityBadgeColor", {
3437
3489
  enumerable: true,
3438
- get: function () { return chunkPNN6KWXQ_js.getEntityBadgeColor; }
3490
+ get: function () { return chunk4X7ITYP2_js.getEntityBadgeColor; }
3439
3491
  });
3440
3492
  Object.defineProperty(exports, "getEntityGradient", {
3441
3493
  enumerable: true,
3442
- get: function () { return chunkPNN6KWXQ_js.getEntityGradient; }
3494
+ get: function () { return chunk4X7ITYP2_js.getEntityGradient; }
3443
3495
  });
3444
3496
  Object.defineProperty(exports, "getEntityHandleColor", {
3445
3497
  enumerable: true,
3446
- get: function () { return chunkPNN6KWXQ_js.getEntityHandleColor; }
3498
+ get: function () { return chunk4X7ITYP2_js.getEntityHandleColor; }
3447
3499
  });
3448
3500
  Object.defineProperty(exports, "getEntityIcon", {
3449
3501
  enumerable: true,
3450
- get: function () { return chunkPNN6KWXQ_js.getEntityIcon; }
3502
+ get: function () { return chunk4X7ITYP2_js.getEntityIcon; }
3451
3503
  });
3452
3504
  Object.defineProperty(exports, "getEntityMinimapColor", {
3453
3505
  enumerable: true,
3454
- get: function () { return chunkPNN6KWXQ_js.getEntityMinimapColor; }
3506
+ get: function () { return chunk4X7ITYP2_js.getEntityMinimapColor; }
3455
3507
  });
3456
3508
  Object.defineProperty(exports, "getFrameworkMeta", {
3457
3509
  enumerable: true,
3458
- get: function () { return chunkPNN6KWXQ_js.getFrameworkMeta; }
3510
+ get: function () { return chunk4X7ITYP2_js.getFrameworkMeta; }
3459
3511
  });
3460
3512
  Object.defineProperty(exports, "isModelCompatibleWithFramework", {
3461
3513
  enumerable: true,
3462
- get: function () { return chunkPNN6KWXQ_js.isModelCompatibleWithFramework; }
3514
+ get: function () { return chunk4X7ITYP2_js.isModelCompatibleWithFramework; }
3463
3515
  });
3464
3516
  Object.defineProperty(exports, "useModalStore", {
3465
3517
  enumerable: true,
3466
- get: function () { return chunkPNN6KWXQ_js.useModalStore; }
3518
+ get: function () { return chunk4X7ITYP2_js.useModalStore; }
3467
3519
  });
3468
3520
  Object.defineProperty(exports, "useWorkflowBuilderClient", {
3469
3521
  enumerable: true,
3470
- get: function () { return chunkPNN6KWXQ_js.useWorkflowBuilderClient; }
3522
+ get: function () { return chunk4X7ITYP2_js.useWorkflowBuilderClient; }
3471
3523
  });
3472
3524
  Object.defineProperty(exports, "useWorkflowBuilderClientOptional", {
3473
3525
  enumerable: true,
3474
- get: function () { return chunkPNN6KWXQ_js.useWorkflowBuilderClientOptional; }
3526
+ get: function () { return chunk4X7ITYP2_js.useWorkflowBuilderClientOptional; }
3475
3527
  });
3476
3528
  Object.defineProperty(exports, "useWorkflowStore", {
3477
3529
  enumerable: true,
3478
- get: function () { return chunkPNN6KWXQ_js.useWorkflowStore; }
3530
+ get: function () { return chunk4X7ITYP2_js.useWorkflowStore; }
3479
3531
  });
3480
3532
  Object.defineProperty(exports, "GraphNodeBadge", {
3481
3533
  enumerable: true,