@datatechsolutions/ui 2.11.13 → 2.11.15

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.
@@ -1,5 +1,5 @@
1
1
  import 'react/jsx-runtime';
2
2
  import 'react';
3
- export { j as Workspace, h as WorkspaceProps } from '../workflow-canvas-CooSZh-g.mjs';
3
+ export { j as Workspace, h as WorkspaceProps } from '../workflow-canvas-Dfj5MOAY.mjs';
4
4
  import '@xyflow/react';
5
5
  import './contracts.mjs';
@@ -1,5 +1,5 @@
1
1
  import 'react/jsx-runtime';
2
2
  import 'react';
3
- export { j as Workspace, h as WorkspaceProps } from '../workflow-canvas-BUpiBzxZ.js';
3
+ export { j as Workspace, h as WorkspaceProps } from '../workflow-canvas-CEfOHTzN.js';
4
4
  import '@xyflow/react';
5
5
  import './contracts.js';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkRUH6YJXW_js = require('../chunk-RUH6YJXW.js');
4
+ var chunkWB5CWGXD_js = require('../chunk-WB5CWGXD.js');
5
5
  require('../chunk-4XID6LOC.js');
6
6
  require('../chunk-S7KHTUHA.js');
7
7
  require('../chunk-UZ3CMNUJ.js');
@@ -13,7 +13,7 @@ require('../chunk-YXN2K77G.js');
13
13
 
14
14
  Object.defineProperty(exports, "Workspace", {
15
15
  enumerable: true,
16
- get: function () { return chunkRUH6YJXW_js.Workspace; }
16
+ get: function () { return chunkWB5CWGXD_js.Workspace; }
17
17
  });
18
18
  //# sourceMappingURL=workflow-canvas.js.map
19
19
  //# sourceMappingURL=workflow-canvas.js.map
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { Workspace } from '../chunk-B64PWT4B.mjs';
2
+ export { Workspace } from '../chunk-NTXIFTIQ.mjs';
3
3
  import '../chunk-46ZM5VJJ.mjs';
4
4
  import '../chunk-QWG2FMUN.mjs';
5
5
  import '../chunk-D2JF6C3E.mjs';
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { GlassModalShell, ContextMenu, FormInput, FormTextarea, FormSelect, Button, IconButton } from './chunk-46ZM5VJJ.mjs';
2
+ import { GlassModalShell, ContextMenu, FormInput, FormSelect, FormTextarea, Button, IconButton } from './chunk-46ZM5VJJ.mjs';
3
3
  import { GraphNodeHeader, GraphNodeMeta, GraphNodeBadge, GraphNodeIconBubble } from './chunk-OZNTQROP.mjs';
4
4
  import { getAgentTier, createDefaultLogicNodeConfig, applyDagreLayout } from './chunk-TLPPVL3W.mjs';
5
5
  import { useTranslations, I18nProvider, createI18nFromMessages } from './chunk-7VJ7CMMT.mjs';
@@ -8,7 +8,7 @@ import { Position, NodeResizer, MarkerType, useReactFlow, getBezierPath, BaseEdg
8
8
  import '@xyflow/react/dist/style.css';
9
9
  import { create } from 'zustand';
10
10
  import { PlusIcon, XMarkIcon } from '@heroicons/react/24/solid';
11
- import { Bars2Icon, CursorArrowRaysIcon, HandRaisedIcon, MagnifyingGlassPlusIcon, MagnifyingGlassMinusIcon, ArrowsPointingInIcon, ArrowUturnLeftIcon, ArrowUturnRightIcon, MapIcon, Squares2X2Icon, ArrowsRightLeftIcon, CommandLineIcon, ExclamationTriangleIcon, CpuChipIcon, TrashIcon, WrenchScrewdriverIcon, NewspaperIcon, ChartBarIcon, CloudIcon, ScaleIcon, AdjustmentsHorizontalIcon, CircleStackIcon, PlayIcon, StopIcon, ArrowsPointingOutIcon, CodeBracketIcon, GlobeAltIcon, DocumentTextIcon, ArrowPathIcon, BookOpenIcon, ChatBubbleLeftRightIcon, QuestionMarkCircleIcon, AdjustmentsVerticalIcon, Square3Stack3DIcon, DocumentMagnifyingGlassIcon, ListBulletIcon, PlayCircleIcon, PencilSquareIcon, ServerStackIcon, RectangleGroupIcon, ChevronDownIcon, ChevronUpIcon, PresentationChartBarIcon, ChartPieIcon, ChartBarSquareIcon, CurrencyDollarIcon, ShieldCheckIcon, ClipboardDocumentCheckIcon, FireIcon, ShoppingBagIcon, UsersIcon, BuildingStorefrontIcon, PencilIcon, DocumentDuplicateIcon, ClipboardDocumentIcon, ClipboardIcon, PlusIcon as PlusIcon$1, XMarkIcon as XMarkIcon$1 } from '@heroicons/react/24/outline';
11
+ import { Bars2Icon, CursorArrowRaysIcon, HandRaisedIcon, MagnifyingGlassPlusIcon, MagnifyingGlassMinusIcon, ArrowsPointingInIcon, ArrowUturnLeftIcon, ArrowUturnRightIcon, MapIcon, Squares2X2Icon, ArrowsRightLeftIcon, CommandLineIcon, ExclamationTriangleIcon, CpuChipIcon, TrashIcon, WrenchScrewdriverIcon, NewspaperIcon, ChartBarIcon, CloudIcon, ScaleIcon, AdjustmentsHorizontalIcon, CircleStackIcon, PlayIcon, StopIcon, ArrowsPointingOutIcon, CodeBracketIcon, GlobeAltIcon, DocumentTextIcon, ArrowPathIcon, BookOpenIcon, ChatBubbleLeftRightIcon, QuestionMarkCircleIcon, AdjustmentsVerticalIcon, Square3Stack3DIcon, DocumentMagnifyingGlassIcon, ListBulletIcon, PlayCircleIcon, PencilSquareIcon, ServerStackIcon, KeyIcon, RectangleGroupIcon, ChevronDownIcon, ChevronUpIcon, PresentationChartBarIcon, ChartPieIcon, ChartBarSquareIcon, CurrencyDollarIcon, ShieldCheckIcon, ClipboardDocumentCheckIcon, FireIcon, ShoppingBagIcon, UsersIcon, BuildingStorefrontIcon, PencilIcon, DocumentDuplicateIcon, ClipboardDocumentIcon, ClipboardIcon, PlusIcon as PlusIcon$1, XMarkIcon as XMarkIcon$1 } from '@heroicons/react/24/outline';
12
12
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
13
13
 
14
14
  var DEFAULT_PASTE_OFFSET = 40;
@@ -338,6 +338,7 @@ var LOGIC_NODE_GRADIENTS = {
338
338
  note: "from-yellow-400 to-amber-500",
339
339
  entity: "from-blue-400 to-cyan-500",
340
340
  datasource: "from-cyan-500 to-blue-600",
341
+ model_provider: "from-rose-500 to-pink-600",
341
342
  group: "from-slate-400 to-gray-500"
342
343
  };
343
344
  var LOGIC_NODE_BADGE_COLORS = {
@@ -360,6 +361,7 @@ var LOGIC_NODE_BADGE_COLORS = {
360
361
  note: "bg-yellow-100 text-yellow-700 dark:bg-yellow-500/20 dark:text-yellow-300",
361
362
  entity: "bg-blue-100 text-blue-700 dark:bg-blue-500/20 dark:text-blue-300",
362
363
  datasource: "bg-cyan-100 text-cyan-700 dark:bg-cyan-500/20 dark:text-cyan-300",
364
+ model_provider: "bg-rose-100 text-rose-700 dark:bg-rose-500/20 dark:text-rose-300",
363
365
  group: "bg-slate-100 text-slate-700 dark:bg-slate-500/20 dark:text-slate-300"
364
366
  };
365
367
  var LOGIC_NODE_BADGE_SOFT_COLORS = {
@@ -382,6 +384,7 @@ var LOGIC_NODE_BADGE_SOFT_COLORS = {
382
384
  note: "bg-yellow-50 text-yellow-600 dark:bg-yellow-500/20 dark:text-yellow-400",
383
385
  entity: "bg-blue-50 text-blue-600 dark:bg-blue-500/20 dark:text-blue-400",
384
386
  datasource: "bg-cyan-50 text-cyan-600 dark:bg-cyan-500/20 dark:text-cyan-400",
387
+ model_provider: "bg-rose-50 text-rose-600 dark:bg-rose-500/20 dark:text-rose-400",
385
388
  group: "bg-slate-50 text-slate-600 dark:bg-slate-500/20 dark:text-slate-400"
386
389
  };
387
390
  var LOGIC_ICON_MAP = {
@@ -404,6 +407,7 @@ var LOGIC_ICON_MAP = {
404
407
  note: PencilSquareIcon,
405
408
  entity: CircleStackIcon,
406
409
  datasource: ServerStackIcon,
410
+ model_provider: KeyIcon,
407
411
  group: RectangleGroupIcon
408
412
  };
409
413
  var NODE_SELECTED_CLASS = "node-card-selected";
@@ -431,7 +435,8 @@ var NODE_BORDER_COLORS = {
431
435
  document_extractor: "border-rose-300/50 dark:border-rose-600/50",
432
436
  list_operator: "border-lime-300/50 dark:border-lime-600/50",
433
437
  note: "border-gray-200/50 dark:border-gray-700/50",
434
- datasource: "border-cyan-300/50 dark:border-cyan-600/50"
438
+ datasource: "border-cyan-300/50 dark:border-cyan-600/50",
439
+ model_provider: "border-rose-300/50 dark:border-rose-600/50"
435
440
  };
436
441
  function getNodeStateClass(selected, nodeType, customBorder) {
437
442
  if (selected) return NODE_SELECTED_CLASS;
@@ -462,6 +467,7 @@ var MINIMAP_NODE_COLORS = {
462
467
  note: "#eab308",
463
468
  entity: "#3b82f6",
464
469
  datasource: "#06b6d4",
470
+ model_provider: "#f43f5e",
465
471
  group: "#64748b"
466
472
  };
467
473
  var LOGIC_NODE_HANDLE_COLORS = {
@@ -484,6 +490,7 @@ var LOGIC_NODE_HANDLE_COLORS = {
484
490
  note: "!bg-yellow-500",
485
491
  entity: "!bg-blue-500",
486
492
  datasource: "!bg-cyan-500",
493
+ model_provider: "!bg-rose-500",
487
494
  group: "!bg-slate-500"
488
495
  };
489
496
  var INSERTABLE_NODES = [
@@ -2758,6 +2765,75 @@ var DatasourceFlowNode = memo(function DatasourceFlowNode2({ id, data, selected
2758
2765
  /* @__PURE__ */ jsx(WorkflowHandle, { type: "source", position: Position.Right, id: "right-out", colorClass: "!bg-cyan-400" })
2759
2766
  ] });
2760
2767
  });
2768
+ var PROVIDER_TYPE_LABELS = {
2769
+ aws_bedrock: "AWS Bedrock",
2770
+ openai_api: "OpenAI API",
2771
+ google_vertex: "Google Vertex AI",
2772
+ azure_openai: "Azure OpenAI",
2773
+ anthropic_api: "Anthropic API",
2774
+ custom: "Custom"
2775
+ };
2776
+ var ModelProviderFlowNode = memo(function ModelProviderFlowNode2({ id, data, selected }) {
2777
+ const config = data.config;
2778
+ const isCompact = data.displayMode === "compact";
2779
+ if (!config) {
2780
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2781
+ /* @__PURE__ */ jsx(NodeRunningIndicator, { nodeId: id }),
2782
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2783
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2784
+ /* @__PURE__ */ jsx(NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsx(
2785
+ NodeCardHeader,
2786
+ {
2787
+ icon: /* @__PURE__ */ jsx(ExclamationTriangleIcon, { className: "h-6 w-6 text-white" }),
2788
+ title: data.label || "Model Provider",
2789
+ description: "Not configured",
2790
+ iconClassName: "flex h-11 w-11 items-center justify-center rounded-xl bg-gradient-to-br from-amber-400 to-orange-500 shadow-lg"
2791
+ }
2792
+ ) }),
2793
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "source", position: Position.Right, id: "right-out", colorClass: "!bg-rose-500" }),
2794
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "source", position: Position.Bottom, id: "bottom-out", colorClass: "!bg-rose-500" })
2795
+ ] });
2796
+ }
2797
+ const providerLabel = PROVIDER_TYPE_LABELS[config.providerType] ?? config.providerType;
2798
+ const displayName = config.name || providerLabel;
2799
+ const regionLabel = config.region ? config.region : void 0;
2800
+ const isConfigured = !!(config.credentialRef || config.apiKeyRef);
2801
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2802
+ /* @__PURE__ */ jsx(NodeRunningIndicator, { nodeId: id }),
2803
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2804
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "target", position: Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
2805
+ /* @__PURE__ */ jsx(
2806
+ "button",
2807
+ {
2808
+ type: "button",
2809
+ onClick: () => data.onEdit?.(id),
2810
+ className: "w-full text-left",
2811
+ children: /* @__PURE__ */ jsxs(NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
2812
+ /* @__PURE__ */ jsx(
2813
+ NodeCardHeader,
2814
+ {
2815
+ icon: /* @__PURE__ */ jsx(KeyIcon, { className: "h-6 w-6 text-white" }),
2816
+ title: displayName,
2817
+ description: providerLabel,
2818
+ iconClassName: "flex h-11 w-11 items-center justify-center rounded-xl bg-gradient-to-br from-rose-500 to-pink-600 shadow-lg"
2819
+ }
2820
+ ),
2821
+ /* @__PURE__ */ jsx(NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
2822
+ /* @__PURE__ */ jsx(NodeCardBadge, { className: "rounded-full bg-rose-100 px-2 py-0.5 text-[10px] font-semibold text-rose-700 dark:bg-rose-500/20 dark:text-rose-300", children: providerLabel }),
2823
+ regionLabel && /* @__PURE__ */ jsx(NodeCardBadge, { className: "rounded-full bg-gray-100 px-2 py-0.5 text-[10px] font-medium text-gray-600 dark:bg-white/10 dark:text-gray-300", children: regionLabel }),
2824
+ /* @__PURE__ */ jsx(NodeCardBadge, { className: `rounded-full px-2 py-0.5 text-[10px] font-medium ${isConfigured ? "bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-300" : "bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300"}`, children: isConfigured ? "Configured" : "Setup needed" }),
2825
+ config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxs(NodeCardBadge, { className: "rounded-full bg-gray-100 px-2 py-0.5 text-[10px] font-medium text-gray-600 dark:bg-white/10 dark:text-gray-300", children: [
2826
+ config.modelFilter.length,
2827
+ " models"
2828
+ ] })
2829
+ ] }) })
2830
+ ] })
2831
+ }
2832
+ ),
2833
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "source", position: Position.Right, id: "right-out", colorClass: "!bg-rose-500" }),
2834
+ /* @__PURE__ */ jsx(WorkflowHandle, { type: "source", position: Position.Bottom, id: "bottom-out", colorClass: "!bg-rose-500" })
2835
+ ] });
2836
+ });
2761
2837
  var GROUP_COLORS = {
2762
2838
  indigo: {
2763
2839
  border: "border-indigo-300/50 dark:border-indigo-600/50",
@@ -4951,6 +5027,135 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
4951
5027
  )
4952
5028
  ] });
4953
5029
  }
5030
+ var PROVIDER_TYPES = [
5031
+ { value: "aws_bedrock", label: "AWS Bedrock" },
5032
+ { value: "openai_api", label: "OpenAI API" },
5033
+ { value: "google_vertex", label: "Google Vertex AI" },
5034
+ { value: "azure_openai", label: "Azure OpenAI" },
5035
+ { value: "anthropic_api", label: "Anthropic API" },
5036
+ { value: "custom", label: "Custom" }
5037
+ ];
5038
+ var REGION_OPTIONS = {
5039
+ aws_bedrock: [
5040
+ { value: "us-east-1", label: "US East (N. Virginia)" },
5041
+ { value: "us-west-2", label: "US West (Oregon)" },
5042
+ { value: "eu-west-1", label: "Europe (Ireland)" },
5043
+ { value: "eu-central-1", label: "Europe (Frankfurt)" },
5044
+ { value: "ap-northeast-1", label: "Asia Pacific (Tokyo)" },
5045
+ { value: "ap-southeast-1", label: "Asia Pacific (Singapore)" },
5046
+ { value: "sa-east-1", label: "South America (S\xE3o Paulo)" }
5047
+ ],
5048
+ google_vertex: [
5049
+ { value: "us-central1", label: "US Central (Iowa)" },
5050
+ { value: "us-east4", label: "US East (Virginia)" },
5051
+ { value: "europe-west4", label: "Europe West (Netherlands)" },
5052
+ { value: "asia-northeast1", label: "Asia NE (Tokyo)" }
5053
+ ],
5054
+ azure_openai: [
5055
+ { value: "eastus", label: "East US" },
5056
+ { value: "westeurope", label: "West Europe" },
5057
+ { value: "swedencentral", label: "Sweden Central" },
5058
+ { value: "japaneast", label: "Japan East" }
5059
+ ]
5060
+ };
5061
+ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5062
+ const t = useTranslations("agents.workflow.modelProviderNodeConfig");
5063
+ const [providerType, setProviderType] = useState(config.providerType);
5064
+ const [name, setName] = useState(config.name ?? "");
5065
+ const [region, setRegion] = useState(config.region ?? "");
5066
+ const [endpoint, setEndpoint] = useState(config.endpoint ?? "");
5067
+ const [credentialRef, setCredentialRef] = useState(config.credentialRef ?? "");
5068
+ const [apiKeyRef, setApiKeyRef] = useState(config.apiKeyRef ?? "");
5069
+ const regions = REGION_OPTIONS[providerType] ?? [];
5070
+ const showRegion = regions.length > 0;
5071
+ const showEndpoint = providerType === "custom" || providerType === "azure_openai";
5072
+ const showApiKey = providerType === "openai_api" || providerType === "anthropic_api" || providerType === "custom";
5073
+ const showCredentialRef = providerType === "aws_bedrock" || providerType === "google_vertex";
5074
+ const handleSave = () => {
5075
+ onSave({
5076
+ ...config,
5077
+ providerType,
5078
+ name: name.trim() || void 0,
5079
+ region: region || void 0,
5080
+ endpoint: endpoint.trim() || void 0,
5081
+ credentialRef: credentialRef.trim() || void 0,
5082
+ apiKeyRef: apiKeyRef.trim() || void 0
5083
+ });
5084
+ };
5085
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
5086
+ /* @__PURE__ */ jsx(
5087
+ FormInput,
5088
+ {
5089
+ type: "text",
5090
+ label: t("nameLabel"),
5091
+ value: name,
5092
+ onValueChange: setName,
5093
+ placeholder: t("namePlaceholder")
5094
+ }
5095
+ ),
5096
+ /* @__PURE__ */ jsx(
5097
+ FormSelect,
5098
+ {
5099
+ label: t("providerTypeLabel"),
5100
+ value: providerType,
5101
+ onValueChange: (value) => {
5102
+ setProviderType(value);
5103
+ setRegion("");
5104
+ },
5105
+ options: PROVIDER_TYPES.map((pt) => ({ value: pt.value, label: pt.label }))
5106
+ }
5107
+ ),
5108
+ showRegion && /* @__PURE__ */ jsx(
5109
+ FormSelect,
5110
+ {
5111
+ label: t("regionLabel"),
5112
+ value: region,
5113
+ onValueChange: setRegion,
5114
+ options: [{ value: "", label: t("selectRegion") }, ...regions]
5115
+ }
5116
+ ),
5117
+ showEndpoint && /* @__PURE__ */ jsx(
5118
+ FormInput,
5119
+ {
5120
+ type: "text",
5121
+ label: t("endpointLabel"),
5122
+ value: endpoint,
5123
+ onValueChange: setEndpoint,
5124
+ placeholder: t("endpointPlaceholder")
5125
+ }
5126
+ ),
5127
+ showApiKey && /* @__PURE__ */ jsx(
5128
+ FormInput,
5129
+ {
5130
+ type: "password",
5131
+ label: t("apiKeyLabel"),
5132
+ value: apiKeyRef,
5133
+ onValueChange: setApiKeyRef,
5134
+ placeholder: t("apiKeyPlaceholder")
5135
+ }
5136
+ ),
5137
+ showCredentialRef && /* @__PURE__ */ jsx(
5138
+ FormInput,
5139
+ {
5140
+ type: "text",
5141
+ label: t("credentialRefLabel"),
5142
+ value: credentialRef,
5143
+ onValueChange: setCredentialRef,
5144
+ placeholder: t("credentialRefPlaceholder")
5145
+ }
5146
+ ),
5147
+ /* @__PURE__ */ jsx(
5148
+ ConfigFormActions,
5149
+ {
5150
+ cancelLabel: t("cancel"),
5151
+ saveLabel: t("save"),
5152
+ onCancel,
5153
+ onSave: handleSave,
5154
+ saveDisabled: !providerType
5155
+ }
5156
+ )
5157
+ ] });
5158
+ }
4954
5159
  var NODE_TITLE_KEYS = {
4955
5160
  start: "startNodeConfig",
4956
5161
  end: "endNodeConfig",
@@ -4970,7 +5175,8 @@ var NODE_TITLE_KEYS = {
4970
5175
  iteration_start: "iterationStartNodeConfig",
4971
5176
  entity: "entityNodeConfig",
4972
5177
  datasource: "datasourceNodeConfig",
4973
- group: "groupNodeConfig"
5178
+ group: "groupNodeConfig",
5179
+ model_provider: "modelProviderNodeConfig"
4974
5180
  };
4975
5181
  function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables, onLoadSchema }) {
4976
5182
  const t = useTranslations("agents.workflow");
@@ -5041,6 +5247,8 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
5041
5247
  return /* @__PURE__ */ jsx(EntityNodeConfigForm, { config, entities, onSave: handleSave, onCancel: closeModal });
5042
5248
  case "group":
5043
5249
  return /* @__PURE__ */ jsx(GroupNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
5250
+ case "model_provider":
5251
+ return /* @__PURE__ */ jsx(ModelProviderNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
5044
5252
  default:
5045
5253
  return null;
5046
5254
  }
@@ -5411,6 +5619,7 @@ var BUILT_IN_NODE_TYPES = {
5411
5619
  iteration_start: IterationStartFlowNode,
5412
5620
  note: NoteFlowNode,
5413
5621
  datasource: DatasourceFlowNode,
5622
+ model_provider: ModelProviderFlowNode,
5414
5623
  group: GroupFlowNode
5415
5624
  };
5416
5625
  var ALL_LOGIC_NODE_TYPES = [
@@ -5436,6 +5645,7 @@ var ALL_LOGIC_NODE_TYPES = [
5436
5645
  "rule",
5437
5646
  "entity",
5438
5647
  "datasource",
5648
+ "model_provider",
5439
5649
  "group"
5440
5650
  ];
5441
5651
  function isLogicNodeType(nodeType) {
@@ -5629,9 +5839,11 @@ function WorkflowCanvasInner({
5629
5839
  agent,
5630
5840
  order: agent.order ?? 0,
5631
5841
  selected: selectedAgentId === savedNode.id,
5842
+ agentTools: agentTools.map((at) => ({ id: at.agentToolId, name: at.name, category: at.category, enabled: at.enabled })),
5843
+ providerName: models.find((m) => m.id === agent.modelId)?.provider,
5632
5844
  onSelect: () => {
5633
5845
  setSelectedAgentId(agent.agentId);
5634
- openAgentModalAction(agent, models);
5846
+ openAgentModalAction(agent, models, false, agentTools);
5635
5847
  },
5636
5848
  onRemoveFromCanvas: handleRemoveNodeFromCanvas
5637
5849
  }
@@ -5982,7 +6194,7 @@ function WorkflowCanvasInner({
5982
6194
  const agent = targetNode.data?.agent;
5983
6195
  if (agent) {
5984
6196
  setSelectedAgentId(agent.agentId ?? agent.id ?? null);
5985
- openAgentModalAction(agent, models);
6197
+ openAgentModalAction(agent, models, false, agentTools);
5986
6198
  }
5987
6199
  } else if (targetNode.type === "tool") {
5988
6200
  const tool = targetNode.data?.tool;
@@ -6473,7 +6685,7 @@ function WorkflowCanvasInner({
6473
6685
  selected: false,
6474
6686
  onSelect: () => {
6475
6687
  setSelectedAgentId(agent.agentId);
6476
- openAgentModalAction(agent, models);
6688
+ openAgentModalAction(agent, models, false, agentTools);
6477
6689
  },
6478
6690
  onRemoveFromCanvas: handleRemoveNodeFromCanvas
6479
6691
  }
@@ -7093,6 +7305,6 @@ function Workspace({
7093
7305
  ) }) });
7094
7306
  }
7095
7307
 
7096
- export { AgentFlowNode, AgentToolFlowNode, AnswerFlowNode, AnthropicIcon, CATEGORY_COLORS, CATEGORY_PILL_COLORS, CodeFlowNode, CrewAIIcon, DocumentExtractorFlowNode, EndFlowNode, EntityFlowNode, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, HttpRequestFlowNode, ICON_MAP, IfElseFlowNode, IterationFlowNode, IterationStartFlowNode, KnowledgeBaseFlowNode, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, ListOperatorFlowNode, LogicNodeModal, MINIMAP_NODE_COLORS, NodeCard, NodeContextMenu, NoteFlowNode, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, QuestionClassifierFlowNode, RuleFlowNode, SelectionContextMenu, StartFlowNode, StrandsIcon, TemplateTransformFlowNode, ToolFlowNode, VariableAggregatorFlowNode, VariableAssignerFlowNode, WorkflowBuilderProvider, WorkflowCanvas, Workspace, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, isModelCompatibleWithFramework, useModalStore, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore };
7097
- //# sourceMappingURL=chunk-B64PWT4B.mjs.map
7098
- //# sourceMappingURL=chunk-B64PWT4B.mjs.map
7308
+ export { AgentFlowNode, AgentToolFlowNode, AnswerFlowNode, AnthropicIcon, CATEGORY_COLORS, CATEGORY_PILL_COLORS, CodeFlowNode, CrewAIIcon, DocumentExtractorFlowNode, EndFlowNode, EntityFlowNode, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, HttpRequestFlowNode, ICON_MAP, IfElseFlowNode, IterationFlowNode, IterationStartFlowNode, KnowledgeBaseFlowNode, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, ListOperatorFlowNode, LogicNodeModal, MINIMAP_NODE_COLORS, ModelProviderFlowNode, NodeCard, NodeContextMenu, NoteFlowNode, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, QuestionClassifierFlowNode, RuleFlowNode, SelectionContextMenu, StartFlowNode, StrandsIcon, TemplateTransformFlowNode, ToolFlowNode, VariableAggregatorFlowNode, VariableAssignerFlowNode, WorkflowBuilderProvider, WorkflowCanvas, Workspace, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, isModelCompatibleWithFramework, useModalStore, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore };
7309
+ //# sourceMappingURL=chunk-NTXIFTIQ.mjs.map
7310
+ //# sourceMappingURL=chunk-NTXIFTIQ.mjs.map