@datatechsolutions/ui 3.7.3 → 3.7.5
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.
- package/dist/astrlabe/index.js +108 -108
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/workflow-canvas.js +4 -4
- package/dist/astrlabe/workflow-canvas.mjs +3 -3
- package/dist/{chunk-5W6LMDXV.mjs → chunk-4HP7XS5I.mjs} +4 -4
- package/dist/{chunk-5W6LMDXV.mjs.map → chunk-4HP7XS5I.mjs.map} +1 -1
- package/dist/{chunk-7JZFNKJD.js → chunk-7WIWDSF6.js} +36 -36
- package/dist/{chunk-7JZFNKJD.js.map → chunk-7WIWDSF6.js.map} +1 -1
- package/dist/{chunk-FKUIVS6I.js → chunk-BEUPW5WS.js} +28 -28
- package/dist/{chunk-FKUIVS6I.js.map → chunk-BEUPW5WS.js.map} +1 -1
- package/dist/{chunk-PYNXIDG3.mjs → chunk-CTCO2YI5.mjs} +3 -3
- package/dist/{chunk-PYNXIDG3.mjs.map → chunk-CTCO2YI5.mjs.map} +1 -1
- package/dist/{chunk-A4A3SQTV.mjs → chunk-DCBRGVD3.mjs} +3 -3
- package/dist/{chunk-A4A3SQTV.mjs.map → chunk-DCBRGVD3.mjs.map} +1 -1
- package/dist/{chunk-E57RZXOR.js → chunk-DWIBK7GV.js} +25 -25
- package/dist/{chunk-E57RZXOR.js.map → chunk-DWIBK7GV.js.map} +1 -1
- package/dist/{chunk-5YVOLHSW.mjs → chunk-EIZM2EQA.mjs} +4 -4
- package/dist/{chunk-5YVOLHSW.mjs.map → chunk-EIZM2EQA.mjs.map} +1 -1
- package/dist/{chunk-TCP45Q4B.js → chunk-FIB2CFJK.js} +9 -9
- package/dist/{chunk-TCP45Q4B.js.map → chunk-FIB2CFJK.js.map} +1 -1
- package/dist/{chunk-32DHEVOH.mjs → chunk-GAN7AKZ2.mjs} +3 -3
- package/dist/{chunk-32DHEVOH.mjs.map → chunk-GAN7AKZ2.mjs.map} +1 -1
- package/dist/{chunk-FNA66TT4.js → chunk-GD6FHRHV.js} +3 -3
- package/dist/{chunk-FNA66TT4.js.map → chunk-GD6FHRHV.js.map} +1 -1
- package/dist/{chunk-PCUINUIC.mjs → chunk-IKH5IRDK.mjs} +3 -3
- package/dist/{chunk-PCUINUIC.mjs.map → chunk-IKH5IRDK.mjs.map} +1 -1
- package/dist/{chunk-VS6PTRQ7.mjs → chunk-IKHWYYZC.mjs} +3 -3
- package/dist/{chunk-VS6PTRQ7.mjs.map → chunk-IKHWYYZC.mjs.map} +1 -1
- package/dist/{chunk-3H5CFLVK.js → chunk-IYDGO7RW.js} +135 -135
- package/dist/{chunk-3H5CFLVK.js.map → chunk-IYDGO7RW.js.map} +1 -1
- package/dist/{chunk-CZZOCKEA.mjs → chunk-JUDQX6MP.mjs} +3 -3
- package/dist/{chunk-CZZOCKEA.mjs.map → chunk-JUDQX6MP.mjs.map} +1 -1
- package/dist/{chunk-HBOORO52.js → chunk-KI4UPW4Z.js} +4 -4
- package/dist/{chunk-HBOORO52.js.map → chunk-KI4UPW4Z.js.map} +1 -1
- package/dist/{chunk-74BU2EBZ.mjs → chunk-KZSL7AXW.mjs} +6 -6
- package/dist/{chunk-74BU2EBZ.mjs.map → chunk-KZSL7AXW.mjs.map} +1 -1
- package/dist/{chunk-Q4QORAMH.js → chunk-MFAVWJWE.js} +10 -10
- package/dist/{chunk-Q4QORAMH.js.map → chunk-MFAVWJWE.js.map} +1 -1
- package/dist/{chunk-KKXI7CPF.mjs → chunk-MGZTZELL.mjs} +3 -3
- package/dist/{chunk-KKXI7CPF.mjs.map → chunk-MGZTZELL.mjs.map} +1 -1
- package/dist/{chunk-ZP37M2QK.mjs → chunk-MRLEINJN.mjs} +7 -7
- package/dist/{chunk-ZP37M2QK.mjs.map → chunk-MRLEINJN.mjs.map} +1 -1
- package/dist/{chunk-57E4TCB2.mjs → chunk-N5365CGD.mjs} +3 -3
- package/dist/{chunk-57E4TCB2.mjs.map → chunk-N5365CGD.mjs.map} +1 -1
- package/dist/{chunk-EWYAM4WJ.mjs → chunk-P7GVXI7Y.mjs} +3 -3
- package/dist/{chunk-EWYAM4WJ.mjs.map → chunk-P7GVXI7Y.mjs.map} +1 -1
- package/dist/{chunk-3X3IYDG6.js → chunk-QL2JYRBN.js} +68 -68
- package/dist/{chunk-3X3IYDG6.js.map → chunk-QL2JYRBN.js.map} +1 -1
- package/dist/{chunk-RCHTRG7R.js → chunk-R2RPRRB4.js} +55 -55
- package/dist/{chunk-RCHTRG7R.js.map → chunk-R2RPRRB4.js.map} +1 -1
- package/dist/{chunk-H37VDL7Y.js → chunk-RBB5YGWH.js} +4 -4
- package/dist/{chunk-H37VDL7Y.js.map → chunk-RBB5YGWH.js.map} +1 -1
- package/dist/{chunk-TJPPZU77.js → chunk-SUU7XPRX.js} +34 -34
- package/dist/{chunk-TJPPZU77.js.map → chunk-SUU7XPRX.js.map} +1 -1
- package/dist/{chunk-VPFVW7ZF.js → chunk-XT76DMP5.js} +35 -35
- package/dist/{chunk-VPFVW7ZF.js.map → chunk-XT76DMP5.js.map} +1 -1
- package/dist/{chunk-F35GFICG.js → chunk-Y2FR242F.js} +13 -13
- package/dist/{chunk-F35GFICG.js.map → chunk-Y2FR242F.js.map} +1 -1
- package/dist/{chunk-WDBVIU7W.mjs → chunk-YNHQ36UU.mjs} +3 -3
- package/dist/{chunk-WDBVIU7W.mjs.map → chunk-YNHQ36UU.mjs.map} +1 -1
- package/dist/{chunk-E6C7MFHJ.mjs → chunk-Z3BMHKKH.mjs} +3 -3
- package/dist/{chunk-E6C7MFHJ.mjs.map → chunk-Z3BMHKKH.mjs.map} +1 -1
- package/dist/{chunk-Q7HRCCFT.js → chunk-ZF7RJNPD.js} +45 -45
- package/dist/{chunk-Q7HRCCFT.js.map → chunk-ZF7RJNPD.js.map} +1 -1
- package/dist/index.js +665 -665
- package/dist/index.mjs +2 -2
- package/dist/platform/admin/index.js +10 -10
- package/dist/platform/admin/index.mjs +4 -4
- package/dist/platform/agents-workspace.js +7 -7
- package/dist/platform/agents-workspace.mjs +6 -6
- package/dist/platform/app-shell.js +4 -4
- package/dist/platform/app-shell.mjs +3 -3
- package/dist/platform/auth/index.js +22 -22
- package/dist/platform/auth/index.mjs +4 -4
- package/dist/platform/billing/index.js +4 -4
- package/dist/platform/billing/index.mjs +3 -3
- package/dist/platform/impersonation/index.js +4 -4
- package/dist/platform/impersonation/index.mjs +3 -3
- package/dist/platform/index.js +78 -78
- package/dist/platform/index.mjs +18 -18
- package/dist/platform/pages/index.d.mts +12 -0
- package/dist/platform/pages/index.d.ts +12 -0
- package/dist/platform/pages/index.js +416 -254
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +193 -31
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +7 -7
- package/dist/platform/settings/index.mjs +6 -6
- package/dist/platform/workflow-canvas-shell.js +5 -5
- package/dist/platform/workflow-canvas-shell.mjs +4 -4
- package/package.json +1 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { adaptWorkflowGraphToUi, formatDurationMs } from '../../chunk-UQXVCVAN.mjs';
|
|
3
|
-
import { WorkflowWorkspace } from '../../chunk-
|
|
4
|
-
export { RolesPageView, UsersPageView } from '../../chunk-
|
|
5
|
-
import { DatasourceModal, findCategory, DIALECT_CATEGORIES } from '../../chunk-
|
|
6
|
-
export { DIALECT_CATEGORIES, DatasourceFormModal, DatasourceModal, findCategory, findDialect } from '../../chunk-
|
|
7
|
-
import { defaultRuleForm, RuleForm, ExecutionTimelinePanel } from '../../chunk-
|
|
3
|
+
import { WorkflowWorkspace } from '../../chunk-4HP7XS5I.mjs';
|
|
4
|
+
export { RolesPageView, UsersPageView } from '../../chunk-4HP7XS5I.mjs';
|
|
5
|
+
import { DatasourceModal, findCategory, DIALECT_CATEGORIES } from '../../chunk-DCBRGVD3.mjs';
|
|
6
|
+
export { DIALECT_CATEGORIES, DatasourceFormModal, DatasourceModal, findCategory, findDialect } from '../../chunk-DCBRGVD3.mjs';
|
|
7
|
+
import { defaultRuleForm, RuleForm, ExecutionTimelinePanel } from '../../chunk-EIZM2EQA.mjs';
|
|
8
8
|
import '../../chunk-JB6RNAD2.mjs';
|
|
9
9
|
import '../../chunk-LEXBTVGM.mjs';
|
|
10
|
-
import '../../chunk-
|
|
11
|
-
import { HeroSection, PageLoadingState, PageEmptyState, SearchBar, EntityCard, ManagementPageLayout, CreateActionButton, GlassModal, FormGrid, FormSelect, FormInput, FormTextarea, SectionHeader, Text, Form, FormActionsRow, Table, TableHead, TableRow, TableHeader, TableBody, TableCell, InlineForm, CopyableId, ListCard, ListCardItem, Avatar, SectionCard, Tabs, TabsList, TabsTrigger, TabsContent } from '../../chunk-
|
|
12
|
-
import '../../chunk-7VJ7CMMT.mjs';
|
|
10
|
+
import '../../chunk-N5365CGD.mjs';
|
|
11
|
+
import { HeroSection, PageLoadingState, PageEmptyState, SearchBar, EntityCard, ManagementPageLayout, CreateActionButton, GlassModal, FormGrid, FormSelect, FormInput, FormTextarea, SectionHeader, Text, Form, FormActionsRow, Table, TableHead, TableRow, TableHeader, TableBody, TableCell, InlineForm, CopyableId, ListCard, ListCardItem, Avatar, SectionCard, Tabs, TabsList, TabsTrigger, TabsContent } from '../../chunk-Z3BMHKKH.mjs';
|
|
13
12
|
import '../../chunk-RHRJXK5R.mjs';
|
|
14
13
|
import '../../chunk-3AY5HIQ6.mjs';
|
|
14
|
+
import '../../chunk-7VJ7CMMT.mjs';
|
|
15
15
|
import '../../chunk-PLTLRL2V.mjs';
|
|
16
16
|
import { Badge, Button } from '../../chunk-WR55H7DH.mjs';
|
|
17
17
|
import '../../chunk-D2JF6C3E.mjs';
|
|
@@ -2769,6 +2769,15 @@ function ModelTab({
|
|
|
2769
2769
|
}
|
|
2770
2770
|
);
|
|
2771
2771
|
}
|
|
2772
|
+
var AGENT_PRESETS = [
|
|
2773
|
+
{ id: "sales", emoji: "\u{1F4BC}", name: "Sales Specialist", role: "Lead qualification & CRM", systemPrompt: "You are a sales assistant. Help qualify leads, manage CRM entries, and schedule follow-ups. Always be professional and proactive.", temperature: 0.7, maxTokens: 2048, accent: "from-emerald-500 to-teal-600" },
|
|
2774
|
+
{ id: "support", emoji: "\u{1F3A7}", name: "Customer Support", role: "Ticket resolution & escalation", systemPrompt: "You are a customer support agent. Resolve tickets, answer questions, and escalate complex issues. Prioritize customer satisfaction.", temperature: 0.3, maxTokens: 2048, accent: "from-sky-500 to-indigo-600" },
|
|
2775
|
+
{ id: "finance", emoji: "\u{1F4CA}", name: "Financial Analyst", role: "Revenue, margins, reports", systemPrompt: "You are a financial analyst. Analyze revenue, calculate margins, generate performance reports, and identify trends. Use data-driven insights for recommendations.", temperature: 0.4, maxTokens: 4096, accent: "from-amber-500 to-orange-600" },
|
|
2776
|
+
{ id: "security", emoji: "\u{1F6E1}\uFE0F", name: "Security Analyst", role: "Threat monitoring & compliance", systemPrompt: "You are a security analyst. Monitor for threats, audit data access, ensure compliance with privacy regulations, and manage incident response.", temperature: 0.3, maxTokens: 2048, accent: "from-rose-500 to-red-600" },
|
|
2777
|
+
{ id: "data", emoji: "\u{1F52C}", name: "Data Analyst", role: "Pattern detection & cleaning", systemPrompt: "You are a data analyst. Process raw data inputs, identify patterns, clean datasets, and prepare structured analysis for downstream agents.", temperature: 0.5, maxTokens: 4096, accent: "from-violet-500 to-purple-600" },
|
|
2778
|
+
{ id: "custom", emoji: "\u2728", name: "", role: "", systemPrompt: "", temperature: 0.2, maxTokens: 2048, accent: "from-slate-500 to-slate-700" }
|
|
2779
|
+
];
|
|
2780
|
+
var EMOJI_PALETTE = ["\u{1F4BC}", "\u{1F3A7}", "\u{1F4CA}", "\u{1F6E1}\uFE0F", "\u{1F52C}", "\u2728", "\u{1F916}", "\u26A1", "\u{1F3AF}", "\u{1F680}", "\u{1F9E0}", "\u{1F9BE}", "\u{1F4E1}", "\u{1F52E}", "\u{1F310}", "\u{1F5C2}\uFE0F"];
|
|
2772
2781
|
function CreateAgentDialog({
|
|
2773
2782
|
labels,
|
|
2774
2783
|
models,
|
|
@@ -2776,47 +2785,200 @@ function CreateAgentDialog({
|
|
|
2776
2785
|
onSubmit
|
|
2777
2786
|
}) {
|
|
2778
2787
|
const modelOptions = models.map((m) => ({ value: m.id, label: `${m.name} (${m.provider})` }));
|
|
2788
|
+
const [presetId, setPresetId] = useState("custom");
|
|
2789
|
+
const [emoji, setEmoji] = useState("\u2728");
|
|
2790
|
+
const [name, setName] = useState("");
|
|
2791
|
+
const [role, setRole] = useState("");
|
|
2792
|
+
const [systemPrompt, setSystemPrompt] = useState("");
|
|
2793
|
+
const [temperature, setTemperature] = useState(0.2);
|
|
2794
|
+
const [maxTokens, setMaxTokens] = useState(2048);
|
|
2795
|
+
const [modelId, setModelId] = useState(modelOptions[0]?.value ?? "");
|
|
2796
|
+
const activePreset = AGENT_PRESETS.find((p) => p.id === presetId) ?? AGENT_PRESETS[AGENT_PRESETS.length - 1];
|
|
2797
|
+
function applyPreset(preset) {
|
|
2798
|
+
setPresetId(preset.id);
|
|
2799
|
+
setEmoji(preset.emoji);
|
|
2800
|
+
if (preset.id !== "custom") {
|
|
2801
|
+
setName(preset.name);
|
|
2802
|
+
setRole(preset.role);
|
|
2803
|
+
setSystemPrompt(preset.systemPrompt);
|
|
2804
|
+
setTemperature(preset.temperature);
|
|
2805
|
+
setMaxTokens(preset.maxTokens);
|
|
2806
|
+
}
|
|
2807
|
+
}
|
|
2779
2808
|
return /* @__PURE__ */ jsx(
|
|
2780
2809
|
GlassModal,
|
|
2781
2810
|
{
|
|
2782
2811
|
open: true,
|
|
2783
2812
|
onClose,
|
|
2784
2813
|
title: labels.createAgentTitle,
|
|
2785
|
-
|
|
2814
|
+
label: labels.createAgentEyebrow ?? "NEW AGENT",
|
|
2815
|
+
icon: /* @__PURE__ */ jsx(
|
|
2816
|
+
"div",
|
|
2817
|
+
{
|
|
2818
|
+
className: `flex h-full w-full items-center justify-center rounded-lg bg-gradient-to-br ${activePreset.accent} text-lg shadow-sm`,
|
|
2819
|
+
"aria-hidden": "true",
|
|
2820
|
+
children: emoji
|
|
2821
|
+
}
|
|
2822
|
+
),
|
|
2823
|
+
maxWidth: "2xl",
|
|
2824
|
+
gradient: activePreset.accent,
|
|
2786
2825
|
showFormFooter: true,
|
|
2787
2826
|
submitLabel: labels.save,
|
|
2788
2827
|
onSubmit: async (event) => {
|
|
2789
|
-
|
|
2828
|
+
event.preventDefault();
|
|
2790
2829
|
await onSubmit({
|
|
2791
|
-
name:
|
|
2792
|
-
modelId
|
|
2793
|
-
systemPrompt
|
|
2794
|
-
maxTokens
|
|
2795
|
-
temperature
|
|
2830
|
+
name: name.trim() || activePreset.name || "Untitled Agent",
|
|
2831
|
+
modelId,
|
|
2832
|
+
systemPrompt,
|
|
2833
|
+
maxTokens,
|
|
2834
|
+
temperature
|
|
2796
2835
|
});
|
|
2797
2836
|
},
|
|
2798
|
-
children: /* @__PURE__ */ jsxs(
|
|
2799
|
-
/* @__PURE__ */ jsx(FormInput, { name: "name", label: labels.name, required: true }),
|
|
2837
|
+
children: /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
|
|
2800
2838
|
/* @__PURE__ */ jsx(
|
|
2801
|
-
|
|
2839
|
+
SectionCard,
|
|
2840
|
+
{
|
|
2841
|
+
variant: "glass",
|
|
2842
|
+
padded: false,
|
|
2843
|
+
header: {
|
|
2844
|
+
title: labels.presetTitle ?? "Start from a template",
|
|
2845
|
+
subtitle: labels.presetSubtitle ?? "Pick a role or build a custom agent"
|
|
2846
|
+
},
|
|
2847
|
+
children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2 px-4 pb-4 sm:grid-cols-3", children: AGENT_PRESETS.map((preset) => {
|
|
2848
|
+
const selected = preset.id === presetId;
|
|
2849
|
+
return /* @__PURE__ */ jsxs(
|
|
2850
|
+
"button",
|
|
2851
|
+
{
|
|
2852
|
+
type: "button",
|
|
2853
|
+
onClick: () => applyPreset(preset),
|
|
2854
|
+
className: [
|
|
2855
|
+
"liquid-surface group flex items-center gap-3 rounded-xl px-3 py-2.5 text-left transition-all",
|
|
2856
|
+
selected ? "ring-2 ring-indigo-500/70 ring-offset-1 ring-offset-transparent" : "hover:border-indigo-400/40 focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1"
|
|
2857
|
+
].join(" "),
|
|
2858
|
+
children: [
|
|
2859
|
+
/* @__PURE__ */ jsx(
|
|
2860
|
+
"span",
|
|
2861
|
+
{
|
|
2862
|
+
"aria-hidden": "true",
|
|
2863
|
+
className: `flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-gradient-to-br ${preset.accent} text-base shadow-sm`,
|
|
2864
|
+
children: preset.emoji
|
|
2865
|
+
}
|
|
2866
|
+
),
|
|
2867
|
+
/* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
|
|
2868
|
+
/* @__PURE__ */ jsx("span", { className: "block truncate text-sm font-semibold text-slate-900 dark:text-white", children: preset.id === "custom" ? labels.presetCustom ?? "Custom" : preset.name }),
|
|
2869
|
+
/* @__PURE__ */ jsx("span", { className: "block truncate text-xs text-slate-500 dark:text-slate-400", children: preset.role || (labels.presetCustomHint ?? "Start from scratch") })
|
|
2870
|
+
] })
|
|
2871
|
+
]
|
|
2872
|
+
},
|
|
2873
|
+
preset.id
|
|
2874
|
+
);
|
|
2875
|
+
}) })
|
|
2876
|
+
}
|
|
2877
|
+
),
|
|
2878
|
+
/* @__PURE__ */ jsx(
|
|
2879
|
+
SectionCard,
|
|
2802
2880
|
{
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2881
|
+
variant: "glass",
|
|
2882
|
+
header: {
|
|
2883
|
+
title: labels.identitySection ?? "Identity",
|
|
2884
|
+
subtitle: labels.identitySubtitle ?? "How your agent shows up across workflows"
|
|
2885
|
+
},
|
|
2886
|
+
children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
2887
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2888
|
+
/* @__PURE__ */ jsx("span", { className: "mb-2 block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.avatarLabel ?? "Avatar" }),
|
|
2889
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: EMOJI_PALETTE.map((e) => /* @__PURE__ */ jsx(
|
|
2890
|
+
"button",
|
|
2891
|
+
{
|
|
2892
|
+
type: "button",
|
|
2893
|
+
onClick: () => setEmoji(e),
|
|
2894
|
+
"aria-pressed": emoji === e,
|
|
2895
|
+
className: [
|
|
2896
|
+
"flex h-9 w-9 items-center justify-center rounded-lg text-base transition-all",
|
|
2897
|
+
emoji === e ? `bg-gradient-to-br ${activePreset.accent} shadow-sm ring-2 ring-indigo-500/70 ring-offset-1 ring-offset-transparent` : "liquid-surface hover:border-indigo-400/40 focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1"
|
|
2898
|
+
].join(" "),
|
|
2899
|
+
children: e
|
|
2900
|
+
},
|
|
2901
|
+
e
|
|
2902
|
+
)) })
|
|
2903
|
+
] }),
|
|
2904
|
+
/* @__PURE__ */ jsxs(FormGrid, { children: [
|
|
2905
|
+
/* @__PURE__ */ jsx(
|
|
2906
|
+
FormInput,
|
|
2907
|
+
{
|
|
2908
|
+
label: labels.name,
|
|
2909
|
+
value: name,
|
|
2910
|
+
onValueChange: setName,
|
|
2911
|
+
required: true,
|
|
2912
|
+
placeholder: labels.namePlaceholder ?? "Sales Specialist"
|
|
2913
|
+
}
|
|
2914
|
+
),
|
|
2915
|
+
/* @__PURE__ */ jsx(
|
|
2916
|
+
FormInput,
|
|
2917
|
+
{
|
|
2918
|
+
label: labels.role,
|
|
2919
|
+
value: role,
|
|
2920
|
+
onValueChange: setRole,
|
|
2921
|
+
placeholder: labels.rolePlaceholder
|
|
2922
|
+
}
|
|
2923
|
+
)
|
|
2924
|
+
] })
|
|
2925
|
+
] })
|
|
2807
2926
|
}
|
|
2808
2927
|
),
|
|
2809
|
-
/* @__PURE__ */ jsx(FormInput, { name: "maxTokens", label: labels.maxTokens, type: "number", defaultValue: "2048" }),
|
|
2810
2928
|
/* @__PURE__ */ jsx(
|
|
2811
|
-
|
|
2929
|
+
SectionCard,
|
|
2812
2930
|
{
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2931
|
+
variant: "glass",
|
|
2932
|
+
header: {
|
|
2933
|
+
title: labels.behaviorSection ?? "Behavior",
|
|
2934
|
+
subtitle: labels.behaviorSubtitle ?? "System prompt shapes how the agent thinks"
|
|
2935
|
+
},
|
|
2936
|
+
children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
2937
|
+
/* @__PURE__ */ jsx(
|
|
2938
|
+
FormTextarea,
|
|
2939
|
+
{
|
|
2940
|
+
label: labels.promptSystemPrompt ?? "System prompt",
|
|
2941
|
+
value: systemPrompt,
|
|
2942
|
+
onValueChange: setSystemPrompt,
|
|
2943
|
+
rows: 5,
|
|
2944
|
+
placeholder: labels.promptPlaceholder ?? "You are a helpful assistant\u2026"
|
|
2945
|
+
}
|
|
2946
|
+
),
|
|
2947
|
+
/* @__PURE__ */ jsxs(FormGrid, { children: [
|
|
2948
|
+
/* @__PURE__ */ jsx(
|
|
2949
|
+
FormSelect,
|
|
2950
|
+
{
|
|
2951
|
+
label: labels.model,
|
|
2952
|
+
value: modelId,
|
|
2953
|
+
onValueChange: setModelId,
|
|
2954
|
+
options: modelOptions.length > 0 ? modelOptions : [{ value: "", label: labels.modelEmpty }]
|
|
2955
|
+
}
|
|
2956
|
+
),
|
|
2957
|
+
/* @__PURE__ */ jsx(
|
|
2958
|
+
FormInput,
|
|
2959
|
+
{
|
|
2960
|
+
label: labels.maxTokens,
|
|
2961
|
+
type: "number",
|
|
2962
|
+
value: String(maxTokens),
|
|
2963
|
+
onValueChange: (v) => setMaxTokens(Number(v) || 0),
|
|
2964
|
+
min: 1,
|
|
2965
|
+
max: 32e3
|
|
2966
|
+
}
|
|
2967
|
+
),
|
|
2968
|
+
/* @__PURE__ */ jsx(
|
|
2969
|
+
FormInput,
|
|
2970
|
+
{
|
|
2971
|
+
label: `${labels.temperature} (${temperature.toFixed(2)})`,
|
|
2972
|
+
type: "number",
|
|
2973
|
+
value: String(temperature),
|
|
2974
|
+
onValueChange: (v) => setTemperature(Number(v) || 0),
|
|
2975
|
+
step: 0.1,
|
|
2976
|
+
min: 0,
|
|
2977
|
+
max: 2
|
|
2978
|
+
}
|
|
2979
|
+
)
|
|
2980
|
+
] })
|
|
2981
|
+
] })
|
|
2820
2982
|
}
|
|
2821
2983
|
)
|
|
2822
2984
|
] })
|