@burdenoff/microfe-botmanor 2026.1027.2 → 2026.1027.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/botlit/BotlitRoutes.js +142 -132
  2. package/dist/botlit/BotlitRoutes.js.map +1 -1
  3. package/dist/botlit/components/AgentApprovalPanel.js +144 -126
  4. package/dist/botlit/components/AgentApprovalPanel.js.map +1 -1
  5. package/dist/botlit/components/ModelRegistrationPanel.js +4 -4
  6. package/dist/botlit/components/VersionHistoryPanel.js +92 -83
  7. package/dist/botlit/components/VersionHistoryPanel.js.map +1 -1
  8. package/dist/botlit/pages/A2AAgentDetailPage.js +212 -203
  9. package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -1
  10. package/dist/botlit/pages/A2ARegistryPage.js +129 -117
  11. package/dist/botlit/pages/A2ARegistryPage.js.map +1 -1
  12. package/dist/botlit/pages/AgentApprovalsPage.js +122 -110
  13. package/dist/botlit/pages/AgentApprovalsPage.js.map +1 -1
  14. package/dist/botlit/pages/AgentBuilderPage.js +18 -18
  15. package/dist/botlit/pages/AgentDetailPage.js +298 -273
  16. package/dist/botlit/pages/AgentDetailPage.js.map +1 -1
  17. package/dist/botlit/pages/AgentsListPage.js +145 -121
  18. package/dist/botlit/pages/AgentsListPage.js.map +1 -1
  19. package/dist/botlit/pages/BotChannelsTab.js +238 -226
  20. package/dist/botlit/pages/BotChannelsTab.js.map +1 -1
  21. package/dist/botlit/pages/BotDetailPage.js +307 -288
  22. package/dist/botlit/pages/BotDetailPage.js.map +1 -1
  23. package/dist/botlit/pages/BotWorkflowTab.js +125 -116
  24. package/dist/botlit/pages/BotWorkflowTab.js.map +1 -1
  25. package/dist/botlit/pages/BotsListPage.js +159 -144
  26. package/dist/botlit/pages/BotsListPage.js.map +1 -1
  27. package/dist/botlit/pages/BucketsPage.js +279 -258
  28. package/dist/botlit/pages/BucketsPage.js.map +1 -1
  29. package/dist/botlit/pages/ChannelDetailPage.js +346 -328
  30. package/dist/botlit/pages/ChannelDetailPage.js.map +1 -1
  31. package/dist/botlit/pages/ChannelRoutesPage.js +10 -10
  32. package/dist/botlit/pages/ChannelsPage.js +163 -148
  33. package/dist/botlit/pages/ChannelsPage.js.map +1 -1
  34. package/dist/botlit/pages/DashboardPage.js +129 -114
  35. package/dist/botlit/pages/DashboardPage.js.map +1 -1
  36. package/dist/botlit/pages/ExecutionDetailPage.js +145 -139
  37. package/dist/botlit/pages/ExecutionDetailPage.js.map +1 -1
  38. package/dist/botlit/pages/ExecutionsPage.js +14 -14
  39. package/dist/botlit/pages/InstalledPackagesPage.js +245 -227
  40. package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -1
  41. package/dist/botlit/pages/KnowledgeBaseDetailPage.js +168 -156
  42. package/dist/botlit/pages/KnowledgeBaseDetailPage.js.map +1 -1
  43. package/dist/botlit/pages/KnowledgeBasesPage.js +91 -79
  44. package/dist/botlit/pages/KnowledgeBasesPage.js.map +1 -1
  45. package/dist/botlit/pages/MCPServerDetailPage.js +200 -188
  46. package/dist/botlit/pages/MCPServerDetailPage.js.map +1 -1
  47. package/dist/botlit/pages/MCPServersPage.js +170 -155
  48. package/dist/botlit/pages/MCPServersPage.js.map +1 -1
  49. package/dist/botlit/pages/PoliciesPage.js +113 -104
  50. package/dist/botlit/pages/PoliciesPage.js.map +1 -1
  51. package/dist/botlit/pages/PolicyDetailPage.js +145 -133
  52. package/dist/botlit/pages/PolicyDetailPage.js.map +1 -1
  53. package/dist/botlit/pages/PromptStudioPage.js +106 -97
  54. package/dist/botlit/pages/PromptStudioPage.js.map +1 -1
  55. package/dist/botlit/pages/PromptTemplateDetailPage.js +359 -347
  56. package/dist/botlit/pages/PromptTemplateDetailPage.js.map +1 -1
  57. package/dist/botlit/pages/PromptTemplatesPage.js +127 -112
  58. package/dist/botlit/pages/PromptTemplatesPage.js.map +1 -1
  59. package/dist/botlit/pages/RetrievalProfileDetailPage.js +219 -210
  60. package/dist/botlit/pages/RetrievalProfileDetailPage.js.map +1 -1
  61. package/dist/botlit/pages/RetrievalProfilesPage.js +112 -103
  62. package/dist/botlit/pages/RetrievalProfilesPage.js.map +1 -1
  63. package/dist/botlit/pages/SettingsPage.js +264 -252
  64. package/dist/botlit/pages/SettingsPage.js.map +1 -1
  65. package/dist/botlit/pages/SkillDetailPage.js +235 -226
  66. package/dist/botlit/pages/SkillDetailPage.js.map +1 -1
  67. package/dist/botlit/pages/SkillsPage.js +115 -106
  68. package/dist/botlit/pages/SkillsPage.js.map +1 -1
  69. package/dist/botlit/pages/StorePackageDetailPage.js +194 -188
  70. package/dist/botlit/pages/StorePackageDetailPage.js.map +1 -1
  71. package/dist/botlit/pages/StorePage.js +161 -155
  72. package/dist/botlit/pages/StorePage.js.map +1 -1
  73. package/dist/botlit/permissions/PermissionRequired.js +45 -0
  74. package/dist/botlit/permissions/PermissionRequired.js.map +1 -0
  75. package/dist/botlit/permissions/botmanorPermissions.js +72 -0
  76. package/dist/botlit/permissions/botmanorPermissions.js.map +1 -0
  77. package/dist/botlit/permissions/index.js +3 -0
  78. package/dist/botlit/permissions/useBotmanorPermissions.js +19 -0
  79. package/dist/botlit/permissions/useBotmanorPermissions.js.map +1 -0
  80. package/package.json +1 -1
@@ -1,368 +1,393 @@
1
1
  import { useTr as e } from "../../shared/hooks/useTr.js";
2
2
  import { useBotlit as t } from "../providers/BotlitProvider.js";
3
- import { useAgent as n, useDeleteAgent as r, useUpdateAgent as i } from "../hooks/useAgents.js";
4
- import { cn as ee } from "../utils/cn.js";
5
- import { formatRelativeTime as a } from "../utils/formatters.js";
6
- import { PageLayout as o } from "../components/PageLayout.js";
7
- import { Card as s, CardContent as c, CardDescription as l, CardHeader as u, CardTitle as d } from "../components/Card.js";
8
- import { Button as f } from "../components/Button.js";
9
- import { Badge as p, StatusBadge as m } from "../components/Badge.js";
10
- import { EmptyState as h } from "../components/EmptyState.js";
11
- import { useAgentApprovalSettings as g } from "../hooks/useAgentApprovals.js";
12
- import { AgentApprovalPanel as _ } from "../components/AgentApprovalPanel.js";
13
- import { VersionHistoryPanel as te } from "../components/VersionHistoryPanel.js";
14
- import { AssistantRuntimeSetupPanel as ne } from "../components/AssistantRuntimeSetupPanel.js";
15
- import { AssistantChannelPanel as re } from "../components/AssistantChannelPanel.js";
16
- import { AssistantWebsitePanel as v } from "../components/AssistantWebsitePanel.js";
17
- import { useState as y } from "react";
18
- import { GlassCard as ie, NextSteps as ae, PagePurpose as b } from "@burdenoff/fe-libs/ui";
19
- import { jsx as x, jsxs as S } from "react/jsx-runtime";
20
- import { useParams as C } from "react-router";
21
- import { ArrowLeft as oe, BarChart3 as se, BookOpen as w, Brain as T, Edit as E, FileText as D, History as ce, MessageSquare as le, Play as O, Settings as k, Share2 as A, Shield as j, Trash2 as ue, Wrench as M } from "lucide-react";
22
- import { toast as N } from "sonner";
3
+ import { useAgent as ee, useDeleteAgent as te, useUpdateAgent as n } from "../hooks/useAgents.js";
4
+ import { cn as r } from "../utils/cn.js";
5
+ import { formatRelativeTime as i } from "../utils/formatters.js";
6
+ import { BOTMANOR_PERMISSIONS as a } from "../permissions/botmanorPermissions.js";
7
+ import { BotmanorPermissionGate as o, useBotmanorCan as s } from "../permissions/useBotmanorPermissions.js";
8
+ import { PageLayout as c } from "../components/PageLayout.js";
9
+ import { Button as l } from "../components/Button.js";
10
+ import "../permissions/index.js";
11
+ import { Card as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m } from "../components/Card.js";
12
+ import { Badge as h, StatusBadge as g } from "../components/Badge.js";
13
+ import { EmptyState as _ } from "../components/EmptyState.js";
14
+ import { useAgentApprovalSettings as v } from "../hooks/useAgentApprovals.js";
15
+ import { AgentApprovalPanel as y } from "../components/AgentApprovalPanel.js";
16
+ import { VersionHistoryPanel as b } from "../components/VersionHistoryPanel.js";
17
+ import { AssistantRuntimeSetupPanel as x } from "../components/AssistantRuntimeSetupPanel.js";
18
+ import { AssistantChannelPanel as S } from "../components/AssistantChannelPanel.js";
19
+ import { AssistantWebsitePanel as ne } from "../components/AssistantWebsitePanel.js";
20
+ import { useState as re } from "react";
21
+ import { GlassCard as ie, NextSteps as ae, PagePurpose as oe } from "@burdenoff/fe-libs/ui";
22
+ import { Fragment as se, jsx as C, jsxs as w } from "react/jsx-runtime";
23
+ import { useParams as ce } from "react-router";
24
+ import { ArrowLeft as le, BarChart3 as ue, BookOpen as T, Brain as E, Edit as de, FileText as D, History as fe, MessageSquare as pe, Play as O, Settings as k, Share2 as A, Shield as j, Trash2 as M, Wrench as N } from "lucide-react";
25
+ import { toast as P } from "sonner";
23
26
  //#region src/botlit/pages/AgentDetailPage.tsx
24
- var P = () => {
25
- let P = e(), { agentId: F } = C(), { navigateTo: I } = t(), { data: L, loading: R, refetch: z } = n(F), [B, V] = i(), [H, de] = r(), [U, W] = y("overview"), fe = g();
26
- if (R) return /* @__PURE__ */ x(o, {
27
- title: P("botlit.common.loading", "Loading..."),
28
- children: /* @__PURE__ */ x("div", { className: "h-96 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" })
27
+ var F = () => {
28
+ let F = e(), { agentId: I } = ce(), { navigateTo: L } = t(), R = s(), { data: z, loading: me, refetch: B } = ee(I), [V, H] = n(), [he, ge] = te(), [U, W] = re("overview"), _e = v();
29
+ if (me) return /* @__PURE__ */ C(c, {
30
+ title: F("botlit.common.loading", "Loading..."),
31
+ children: /* @__PURE__ */ C("div", { className: "h-96 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" })
29
32
  });
30
- if (!L) return /* @__PURE__ */ x(o, {
31
- title: P("botlit.agentDetail.notFound.title", "Agent Not Found"),
32
- children: /* @__PURE__ */ x(h, {
33
+ if (!z) return /* @__PURE__ */ C(c, {
34
+ title: F("botlit.agentDetail.notFound.title", "Agent Not Found"),
35
+ children: /* @__PURE__ */ C(_, {
33
36
  illustration: "empty-agents",
34
- title: P("botlit.agentDetail.notFound.title", "Agent Not Found"),
35
- description: P("botlit.agentDetail.notFound.description", "The agent you're looking for doesn't exist."),
36
- action: /* @__PURE__ */ x(f, {
37
- onClick: () => I("agents"),
38
- children: P("botlit.agentDetail.notFound.backAction", "Back to Agents")
37
+ title: F("botlit.agentDetail.notFound.title", "Agent Not Found"),
38
+ description: F("botlit.agentDetail.notFound.description", "The agent you're looking for doesn't exist."),
39
+ action: /* @__PURE__ */ C(l, {
40
+ onClick: () => L("agents"),
41
+ children: F("botlit.agentDetail.notFound.backAction", "Back to Agents")
39
42
  })
40
43
  })
41
44
  });
42
- let G = L.systemPrompt || "", K = L.llmModelId || "", pe = L.temperature, me = L.maxTokens, q = L.mcpConnectionIds ?? [], J = L.knowledgeBaseIds ?? [], Y = L.workflowIds ?? [], X = L.capabilities ?? [], Z = L.tagIds ?? [], Q = L.maxConcurrentExecutions || 10, $ = L.metadata ?? null, he = [
45
+ let G = z.systemPrompt || "", K = z.llmModelId || "", ve = z.temperature, ye = z.maxTokens, q = z.mcpConnectionIds ?? [], J = z.knowledgeBaseIds ?? [], Y = z.workflowIds ?? [], X = z.capabilities ?? [], Z = z.tagIds ?? [], Q = z.maxConcurrentExecutions || 10, $ = z.metadata ?? null, be = [
43
46
  {
44
47
  id: "assistant",
45
48
  label: "Assistant setup",
46
- icon: /* @__PURE__ */ x(k, { size: 16 })
49
+ icon: /* @__PURE__ */ C(k, { size: 16 })
47
50
  },
48
51
  {
49
52
  id: "overview",
50
- label: P("botlit.agentDetail.tabs.overview", "Overview"),
51
- icon: /* @__PURE__ */ x(se, { size: 16 })
53
+ label: F("botlit.agentDetail.tabs.overview", "Overview"),
54
+ icon: /* @__PURE__ */ C(ue, { size: 16 })
52
55
  },
53
56
  {
54
57
  id: "prompt",
55
- label: P("botlit.agentDetail.tabs.prompt", "Prompt"),
56
- icon: /* @__PURE__ */ x(D, { size: 16 })
58
+ label: F("botlit.agentDetail.tabs.prompt", "Prompt"),
59
+ icon: /* @__PURE__ */ C(D, { size: 16 })
57
60
  },
58
61
  {
59
62
  id: "llm",
60
- label: P("botlit.agentDetail.tabs.llmConfig", "LLM Config"),
61
- icon: /* @__PURE__ */ x(T, { size: 16 })
63
+ label: F("botlit.agentDetail.tabs.llmConfig", "LLM Config"),
64
+ icon: /* @__PURE__ */ C(E, { size: 16 })
62
65
  },
63
66
  {
64
67
  id: "tools",
65
- label: P("botlit.agentDetail.tabs.tools", "Tools"),
66
- icon: /* @__PURE__ */ x(M, { size: 16 })
68
+ label: F("botlit.agentDetail.tabs.tools", "Tools"),
69
+ icon: /* @__PURE__ */ C(N, { size: 16 })
67
70
  },
68
71
  {
69
72
  id: "knowledge",
70
- label: P("botlit.agentDetail.tabs.knowledge", "Knowledge"),
71
- icon: /* @__PURE__ */ x(w, { size: 16 })
73
+ label: F("botlit.agentDetail.tabs.knowledge", "Knowledge"),
74
+ icon: /* @__PURE__ */ C(T, { size: 16 })
72
75
  },
73
76
  {
74
77
  id: "guardrails",
75
- label: P("botlit.agentDetail.tabs.guardrails", "Guardrails"),
76
- icon: /* @__PURE__ */ x(j, { size: 16 })
78
+ label: F("botlit.agentDetail.tabs.guardrails", "Guardrails"),
79
+ icon: /* @__PURE__ */ C(j, { size: 16 })
77
80
  },
78
81
  {
79
82
  id: "a2a",
80
- label: P("botlit.agentDetail.tabs.a2a", "A2A"),
81
- icon: /* @__PURE__ */ x(A, { size: 16 })
83
+ label: F("botlit.agentDetail.tabs.a2a", "A2A"),
84
+ icon: /* @__PURE__ */ C(A, { size: 16 })
82
85
  },
83
86
  {
84
87
  id: "versions",
85
- label: P("botlit.agentDetail.tabs.versions", "Versions"),
86
- icon: /* @__PURE__ */ x(ce, { size: 16 })
88
+ label: F("botlit.agentDetail.tabs.versions", "Versions"),
89
+ icon: /* @__PURE__ */ C(fe, { size: 16 })
87
90
  }
88
91
  ];
89
- return /* @__PURE__ */ x(o, {
90
- title: /* @__PURE__ */ S("div", {
92
+ return /* @__PURE__ */ C(c, {
93
+ title: /* @__PURE__ */ w("div", {
91
94
  className: "flex items-center gap-3",
92
95
  children: [
93
- /* @__PURE__ */ x(f, {
96
+ /* @__PURE__ */ C(l, {
94
97
  variant: "ghost",
95
98
  size: "icon",
96
- onClick: () => I("agents"),
97
- children: /* @__PURE__ */ x(oe, { size: 20 })
99
+ onClick: () => L("agents"),
100
+ children: /* @__PURE__ */ C(le, { size: 20 })
98
101
  }),
99
- /* @__PURE__ */ x("span", {
102
+ /* @__PURE__ */ C("span", {
100
103
  className: "text-3xl",
101
104
  children: "🤖"
102
105
  }),
103
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("div", {
106
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w("div", {
104
107
  className: "flex items-center gap-2",
105
108
  children: [
106
- /* @__PURE__ */ x("span", { children: L.name }),
107
- /* @__PURE__ */ x(m, { status: L.status }),
108
- /* @__PURE__ */ x(p, {
109
+ /* @__PURE__ */ C("span", { children: z.name }),
110
+ /* @__PURE__ */ C(g, { status: z.status }),
111
+ /* @__PURE__ */ C(h, {
109
112
  variant: "outline",
110
- children: L.slug
113
+ children: z.slug
111
114
  })
112
115
  ]
113
- }), /* @__PURE__ */ x("p", {
116
+ }), /* @__PURE__ */ C("p", {
114
117
  className: "text-sm font-normal text-text-secondary",
115
- children: L.description
118
+ children: z.description
116
119
  })] })
117
120
  ]
118
121
  }),
119
- actions: /* @__PURE__ */ S("div", {
122
+ actions: /* @__PURE__ */ w("div", {
120
123
  className: "flex gap-2",
121
124
  children: [
122
- fe.data?.requireActivationApproval && (L.status === "DRAFT" || L.status === "ARCHIVED") && !L.currentVersionId ? /* @__PURE__ */ x(f, {
123
- variant: "default",
124
- onClick: () => {
125
- W("overview"), requestAnimationFrame(() => document.querySelector("[data-testid=\"agent-approval-panel\"]")?.scrollIntoView({
126
- behavior: "smooth",
127
- block: "start"
128
- }));
129
- },
130
- children: P("botlit.agentApproval.requestAction", "Request activation")
131
- }) : L.status === "DRAFT" || L.status === "ARCHIVED" ? /* @__PURE__ */ x(f, {
132
- variant: "default",
133
- isLoading: V.loading,
134
- onClick: async () => {
135
- try {
136
- if (!F) return;
137
- await B({
138
- agentId: F,
139
- input: { status: "ACTIVE" }
140
- }), await z(), N.success(`${P("botlit.agentDetail.activate.successPrefix", "Agent")} "${L.name}" ${P("botlit.agentDetail.activate.successSuffix", "activated")}`);
141
- } catch (e) {
142
- N.error(e instanceof Error ? e.message : P("botlit.agentDetail.activate.error", "Failed to activate agent"));
143
- }
144
- },
145
- children: P("botlit.agentDetail.actions.activate", "Activate")
146
- }) : /* @__PURE__ */ x(f, {
147
- variant: "outline",
148
- isLoading: V.loading,
149
- onClick: async () => {
150
- try {
151
- if (!F) return;
152
- await B({
153
- agentId: F,
154
- input: { status: "DRAFT" }
155
- }), await z(), N.success(`${P("botlit.agentDetail.deactivate.successPrefix", "Agent")} "${L.name}" ${P("botlit.agentDetail.deactivate.successSuffix", "deactivated")}`);
156
- } catch (e) {
157
- N.error(e instanceof Error ? e.message : P("botlit.agentDetail.deactivate.error", "Failed to deactivate agent"));
158
- }
159
- },
160
- children: P("botlit.agentDetail.actions.deactivate", "Deactivate")
125
+ _e.data?.requireActivationApproval && (z.status === "DRAFT" || z.status === "ARCHIVED") && !z.currentVersionId ? /* @__PURE__ */ C(o, {
126
+ permission: a.AGENT_UPDATE,
127
+ children: /* @__PURE__ */ C(l, {
128
+ variant: "default",
129
+ onClick: () => {
130
+ W("overview"), requestAnimationFrame(() => document.querySelector("[data-testid=\"agent-approval-panel\"]")?.scrollIntoView({
131
+ behavior: "smooth",
132
+ block: "start"
133
+ }));
134
+ },
135
+ children: F("botlit.agentApproval.requestAction", "Request activation")
136
+ })
137
+ }) : z.status === "DRAFT" || z.status === "ARCHIVED" ? /* @__PURE__ */ C(o, {
138
+ permission: a.AGENT_UPDATE,
139
+ children: /* @__PURE__ */ C(l, {
140
+ variant: "default",
141
+ isLoading: H.loading,
142
+ onClick: async () => {
143
+ try {
144
+ if (!I) return;
145
+ await V({
146
+ agentId: I,
147
+ input: { status: "ACTIVE" }
148
+ }), await B(), P.success(`${F("botlit.agentDetail.activate.successPrefix", "Agent")} "${z.name}" ${F("botlit.agentDetail.activate.successSuffix", "activated")}`);
149
+ } catch (e) {
150
+ P.error(e instanceof Error ? e.message : F("botlit.agentDetail.activate.error", "Failed to activate agent"));
151
+ }
152
+ },
153
+ children: F("botlit.agentDetail.actions.activate", "Activate")
154
+ })
155
+ }) : /* @__PURE__ */ C(o, {
156
+ permission: a.AGENT_UPDATE,
157
+ children: /* @__PURE__ */ C(l, {
158
+ variant: "outline",
159
+ isLoading: H.loading,
160
+ onClick: async () => {
161
+ try {
162
+ if (!I) return;
163
+ await V({
164
+ agentId: I,
165
+ input: { status: "DRAFT" }
166
+ }), await B(), P.success(`${F("botlit.agentDetail.deactivate.successPrefix", "Agent")} "${z.name}" ${F("botlit.agentDetail.deactivate.successSuffix", "deactivated")}`);
167
+ } catch (e) {
168
+ P.error(e instanceof Error ? e.message : F("botlit.agentDetail.deactivate.error", "Failed to deactivate agent"));
169
+ }
170
+ },
171
+ children: F("botlit.agentDetail.actions.deactivate", "Deactivate")
172
+ })
161
173
  }),
162
- /* @__PURE__ */ x(f, {
163
- variant: "outline",
164
- leftIcon: /* @__PURE__ */ x(E, { size: 16 }),
165
- onClick: () => I(`agents/${F}/edit`),
166
- children: P("botlit.agentDetail.actions.editAgent", "Edit Agent")
174
+ /* @__PURE__ */ C(o, {
175
+ permission: a.AGENT_UPDATE,
176
+ children: /* @__PURE__ */ C(l, {
177
+ variant: "outline",
178
+ leftIcon: /* @__PURE__ */ C(de, { size: 16 }),
179
+ onClick: () => L(`agents/${I}/edit`),
180
+ children: F("botlit.agentDetail.actions.editAgent", "Edit Agent")
181
+ })
167
182
  }),
168
- /* @__PURE__ */ x(f, {
169
- leftIcon: /* @__PURE__ */ x(O, { size: 16 }),
170
- onClick: () => I(`chat/${F}`),
171
- children: P("botlit.agentDetail.actions.testAgent", "Test Agent")
183
+ /* @__PURE__ */ C(o, {
184
+ permission: a.AGENT_EXECUTE,
185
+ children: /* @__PURE__ */ C(l, {
186
+ leftIcon: /* @__PURE__ */ C(O, { size: 16 }),
187
+ onClick: () => L(`chat/${I}`),
188
+ children: F("botlit.agentDetail.actions.testAgent", "Test Agent")
189
+ })
172
190
  }),
173
- /* @__PURE__ */ x(f, {
174
- variant: "destructive",
175
- leftIcon: /* @__PURE__ */ x(ue, { size: 16 }),
176
- isLoading: de.loading,
177
- onClick: async () => {
178
- if (F && confirm(`${P("botlit.agentDetail.delete.confirmPrefix", "Are you sure you want to delete")} "${L.name}"? ${P("botlit.agentDetail.delete.confirmSuffix", "This action cannot be undone.")}`)) try {
179
- await H(F), N.success(`${P("botlit.agentDetail.delete.successPrefix", "Agent")} "${L.name}" ${P("botlit.agentDetail.delete.successSuffix", "deleted successfully")}`), I("agents");
180
- } catch (e) {
181
- N.error(e instanceof Error ? e.message : P("botlit.agentDetail.delete.error", "Failed to delete agent"));
182
- }
183
- },
184
- children: P("botlit.common.delete", "Delete")
191
+ /* @__PURE__ */ C(o, {
192
+ permission: a.AGENT_DELETE,
193
+ children: /* @__PURE__ */ C(l, {
194
+ variant: "destructive",
195
+ leftIcon: /* @__PURE__ */ C(M, { size: 16 }),
196
+ isLoading: ge.loading,
197
+ onClick: async () => {
198
+ if (I && confirm(`${F("botlit.agentDetail.delete.confirmPrefix", "Are you sure you want to delete")} "${z.name}"? ${F("botlit.agentDetail.delete.confirmSuffix", "This action cannot be undone.")}`)) try {
199
+ await he(I), P.success(`${F("botlit.agentDetail.delete.successPrefix", "Agent")} "${z.name}" ${F("botlit.agentDetail.delete.successSuffix", "deleted successfully")}`), L("agents");
200
+ } catch (e) {
201
+ P.error(e instanceof Error ? e.message : F("botlit.agentDetail.delete.error", "Failed to delete agent"));
202
+ }
203
+ },
204
+ children: F("botlit.common.delete", "Delete")
205
+ })
185
206
  })
186
207
  ]
187
208
  }),
188
- children: /* @__PURE__ */ S("div", {
209
+ children: /* @__PURE__ */ w("div", {
189
210
  className: "space-y-6",
190
211
  children: [
191
- U === "assistant" && F && /* @__PURE__ */ S("div", {
212
+ U === "assistant" && I && /* @__PURE__ */ w("div", {
192
213
  className: "space-y-5",
193
214
  children: [
194
- /* @__PURE__ */ x(ne, {
195
- agentId: F,
196
- onConfigured: () => void z()
215
+ R(a.AGENT_UPDATE) && /* @__PURE__ */ C(x, {
216
+ agentId: I,
217
+ onConfigured: () => void B()
197
218
  }),
198
- /* @__PURE__ */ x(v, {
199
- agentId: F,
219
+ R(a.AGENT_PUBLISH) && /* @__PURE__ */ w(se, { children: [/* @__PURE__ */ C(ne, {
220
+ agentId: I,
200
221
  knowledgeBaseIds: J
201
- }),
202
- /* @__PURE__ */ x(re, { agentId: F })
222
+ }), /* @__PURE__ */ C(S, { agentId: I })] }),
223
+ !R(a.AGENT_UPDATE) && !R(a.AGENT_PUBLISH) && /* @__PURE__ */ C("p", {
224
+ role: "status",
225
+ className: "text-sm text-text-secondary",
226
+ children: F("botlit.agentDetail.assistant.readOnly", "Assistant setup and publishing are available to members who can edit or publish agents in this workspace.")
227
+ })
203
228
  ]
204
229
  }),
205
- /* @__PURE__ */ x(b, {
206
- icon: /* @__PURE__ */ x(T, { size: 18 }),
207
- children: P("botlit.agentDetail.purpose", "This is the full configuration for a single agent — its prompt, model settings, the tools and knowledge it can use, its guardrails and how it talks to other agents. Use the tabs to inspect or change any part, and test the agent in chat to confirm it behaves the way you expect before going live.")
230
+ /* @__PURE__ */ C(oe, {
231
+ icon: /* @__PURE__ */ C(E, { size: 18 }),
232
+ children: F("botlit.agentDetail.purpose", "This is the full configuration for a single agent — its prompt, model settings, the tools and knowledge it can use, its guardrails and how it talks to other agents. Use the tabs to inspect or change any part, and test the agent in chat to confirm it behaves the way you expect before going live.")
208
233
  }),
209
- /* @__PURE__ */ x("div", {
234
+ /* @__PURE__ */ C("div", {
210
235
  className: "flex gap-1 border-b border-border-subtle overflow-x-auto",
211
- children: he.map((e) => /* @__PURE__ */ S("button", {
236
+ children: be.map((e) => /* @__PURE__ */ w("button", {
212
237
  onClick: () => W(e.id),
213
- className: ee("flex items-center gap-2 px-4 py-2 text-sm font-medium border-b-2 transition-colors whitespace-nowrap", U === e.id ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary"),
238
+ className: r("flex items-center gap-2 px-4 py-2 text-sm font-medium border-b-2 transition-colors whitespace-nowrap", U === e.id ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary"),
214
239
  children: [e.icon, e.label]
215
240
  }, e.id))
216
241
  }),
217
- U === "overview" && /* @__PURE__ */ S("div", {
242
+ U === "overview" && /* @__PURE__ */ w("div", {
218
243
  className: "space-y-6",
219
244
  children: [
220
- /* @__PURE__ */ x(ae, {
221
- storageKey: `botlit-agent-${F}`,
245
+ /* @__PURE__ */ C(ae, {
246
+ storageKey: `botlit-agent-${I}`,
222
247
  steps: [
223
248
  {
224
249
  id: "test",
225
- label: P("botlit.agentDetail.nextSteps.test", "Test the agent in chat"),
226
- description: P("botlit.agentDetail.nextSteps.testDesc", "Send it a few real prompts to see how it responds."),
227
- icon: /* @__PURE__ */ x(O, { size: 16 }),
228
- onClick: () => I(`chat/${F}`)
250
+ label: F("botlit.agentDetail.nextSteps.test", "Test the agent in chat"),
251
+ description: F("botlit.agentDetail.nextSteps.testDesc", "Send it a few real prompts to see how it responds."),
252
+ icon: /* @__PURE__ */ C(O, { size: 16 }),
253
+ onClick: () => L(`chat/${I}`)
229
254
  },
230
255
  {
231
256
  id: "prompt",
232
- label: P("botlit.agentDetail.nextSteps.prompt", "Refine the system prompt"),
233
- description: P("botlit.agentDetail.nextSteps.promptDesc", "Tune its instructions and behaviour."),
234
- icon: /* @__PURE__ */ x(D, { size: 16 }),
257
+ label: F("botlit.agentDetail.nextSteps.prompt", "Refine the system prompt"),
258
+ description: F("botlit.agentDetail.nextSteps.promptDesc", "Tune its instructions and behaviour."),
259
+ icon: /* @__PURE__ */ C(D, { size: 16 }),
235
260
  onClick: () => W("prompt")
236
261
  },
237
262
  {
238
263
  id: "tools",
239
- label: P("botlit.agentDetail.nextSteps.tools", "Connect tools & knowledge"),
240
- description: P("botlit.agentDetail.nextSteps.toolsDesc", "Give it MCP tools and knowledge bases to work with."),
241
- icon: /* @__PURE__ */ x(M, { size: 16 }),
264
+ label: F("botlit.agentDetail.nextSteps.tools", "Connect tools & knowledge"),
265
+ description: F("botlit.agentDetail.nextSteps.toolsDesc", "Give it MCP tools and knowledge bases to work with."),
266
+ icon: /* @__PURE__ */ C(N, { size: 16 }),
242
267
  onClick: () => W("tools")
243
268
  },
244
269
  {
245
270
  id: "activate",
246
- label: P("botlit.agentDetail.nextSteps.activate", "Activate and attach to a bot"),
247
- description: P("botlit.agentDetail.nextSteps.activateDesc", "Put it live so a bot can route conversations to it."),
248
- icon: /* @__PURE__ */ x(A, { size: 16 }),
249
- onClick: () => I(`agents/${F}/edit`),
250
- done: L.status === "ACTIVE"
271
+ label: F("botlit.agentDetail.nextSteps.activate", "Activate and attach to a bot"),
272
+ description: F("botlit.agentDetail.nextSteps.activateDesc", "Put it live so a bot can route conversations to it."),
273
+ icon: /* @__PURE__ */ C(A, { size: 16 }),
274
+ onClick: () => L(`agents/${I}/edit`),
275
+ done: z.status === "ACTIVE"
251
276
  }
252
277
  ]
253
278
  }),
254
- F && /* @__PURE__ */ x(_, {
255
- agentId: F,
256
- agentStatus: L.status,
257
- onChanged: () => void z()
279
+ I && /* @__PURE__ */ C(y, {
280
+ agentId: I,
281
+ agentStatus: z.status,
282
+ onChanged: () => void B()
258
283
  }),
259
- /* @__PURE__ */ S("div", {
284
+ /* @__PURE__ */ w("div", {
260
285
  className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
261
286
  children: [
262
- /* @__PURE__ */ S(s, {
287
+ /* @__PURE__ */ w(u, {
263
288
  className: "lg:col-span-1",
264
- children: [/* @__PURE__ */ x(u, { children: /* @__PURE__ */ x(d, { children: "Details" }) }), /* @__PURE__ */ S(c, {
289
+ children: [/* @__PURE__ */ C(p, { children: /* @__PURE__ */ C(m, { children: "Details" }) }), /* @__PURE__ */ w(d, {
265
290
  className: "space-y-4",
266
291
  children: [
267
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
292
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
268
293
  className: "text-sm text-text-secondary",
269
294
  children: "Status"
270
- }), /* @__PURE__ */ x(m, { status: L.status })] }),
271
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
295
+ }), /* @__PURE__ */ C(g, { status: z.status })] }),
296
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
272
297
  className: "text-sm text-text-secondary",
273
298
  children: "Type"
274
- }), /* @__PURE__ */ x(p, {
299
+ }), /* @__PURE__ */ C(h, {
275
300
  variant: "outline",
276
- children: L.type
301
+ children: z.type
277
302
  })] }),
278
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
303
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
279
304
  className: "text-sm text-text-secondary",
280
305
  children: "Visibility"
281
- }), /* @__PURE__ */ x(p, {
306
+ }), /* @__PURE__ */ C(h, {
282
307
  variant: "outline",
283
- children: L.visibility
308
+ children: z.visibility
284
309
  })] }),
285
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
310
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
286
311
  className: "text-sm text-text-secondary",
287
312
  children: "LLM Model"
288
- }), /* @__PURE__ */ x("p", {
313
+ }), /* @__PURE__ */ C("p", {
289
314
  className: "font-medium font-mono text-sm",
290
315
  children: K || "Not configured"
291
316
  })] }),
292
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
317
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
293
318
  className: "text-sm text-text-secondary",
294
319
  children: "MCP Connections"
295
- }), /* @__PURE__ */ S("p", {
320
+ }), /* @__PURE__ */ w("p", {
296
321
  className: "font-medium",
297
322
  children: [q.length, " servers"]
298
323
  })] }),
299
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
324
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
300
325
  className: "text-sm text-text-secondary",
301
326
  children: "Knowledge Bases"
302
- }), /* @__PURE__ */ S("p", {
327
+ }), /* @__PURE__ */ w("p", {
303
328
  className: "font-medium",
304
329
  children: [J.length, " KBs"]
305
330
  })] }),
306
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
331
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
307
332
  className: "text-sm text-text-secondary",
308
333
  children: "Max Concurrent"
309
- }), /* @__PURE__ */ x("p", {
334
+ }), /* @__PURE__ */ C("p", {
310
335
  className: "font-medium",
311
336
  children: Q
312
337
  })] }),
313
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
338
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
314
339
  className: "text-sm text-text-secondary",
315
340
  children: "Executions"
316
- }), /* @__PURE__ */ x("p", {
341
+ }), /* @__PURE__ */ C("p", {
317
342
  className: "font-medium",
318
- children: L.executionCount ?? 0
343
+ children: z.executionCount ?? 0
319
344
  })] }),
320
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
345
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
321
346
  className: "text-sm text-text-secondary",
322
347
  children: "Created"
323
- }), /* @__PURE__ */ x("p", {
348
+ }), /* @__PURE__ */ C("p", {
324
349
  className: "font-medium",
325
- children: a(L.createdAt)
350
+ children: i(z.createdAt)
326
351
  })] }),
327
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
352
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
328
353
  className: "text-sm text-text-secondary",
329
354
  children: "Updated"
330
- }), /* @__PURE__ */ x("p", {
355
+ }), /* @__PURE__ */ C("p", {
331
356
  className: "font-medium",
332
- children: a(L.updatedAt)
357
+ children: i(z.updatedAt)
333
358
  })] })
334
359
  ]
335
360
  })]
336
361
  }),
337
- /* @__PURE__ */ S(ie, {
362
+ /* @__PURE__ */ w(ie, {
338
363
  treatment: "glass",
339
364
  glow: !0,
340
365
  className: "lg:col-span-2 p-6",
341
- children: [/* @__PURE__ */ x("h3", {
366
+ children: [/* @__PURE__ */ C("h3", {
342
367
  className: "mb-4 text-lg font-semibold tracking-tight text-text-primary",
343
- children: P("botlit.agentDetail.capabilities.title", "Capabilities")
344
- }), /* @__PURE__ */ x("div", { children: X.length > 0 ? /* @__PURE__ */ x("div", {
368
+ children: F("botlit.agentDetail.capabilities.title", "Capabilities")
369
+ }), /* @__PURE__ */ C("div", { children: X.length > 0 ? /* @__PURE__ */ C("div", {
345
370
  className: "grid grid-cols-2 md:grid-cols-3 gap-4",
346
- children: X.map((e) => /* @__PURE__ */ S("div", {
371
+ children: X.map((e) => /* @__PURE__ */ w("div", {
347
372
  className: "p-3 rounded-lg border border-green-500 bg-green-500/10",
348
- children: [/* @__PURE__ */ x("p", {
373
+ children: [/* @__PURE__ */ C("p", {
349
374
  className: "font-medium",
350
375
  children: e
351
- }), /* @__PURE__ */ x(p, {
376
+ }), /* @__PURE__ */ C(h, {
352
377
  variant: "success",
353
- children: P("botlit.agentDetail.capabilities.enabled", "Enabled")
378
+ children: F("botlit.agentDetail.capabilities.enabled", "Enabled")
354
379
  })]
355
380
  }, e))
356
- }) : /* @__PURE__ */ x("p", {
381
+ }) : /* @__PURE__ */ C("p", {
357
382
  className: "text-text-secondary",
358
- children: P("botlit.agentDetail.capabilities.empty", "No capabilities configured")
383
+ children: F("botlit.agentDetail.capabilities.empty", "No capabilities configured")
359
384
  }) })]
360
385
  }),
361
- Z.length > 0 && /* @__PURE__ */ S(s, {
386
+ Z.length > 0 && /* @__PURE__ */ w(u, {
362
387
  className: "lg:col-span-3",
363
- children: [/* @__PURE__ */ x(u, { children: /* @__PURE__ */ x(d, { children: P("botlit.agentDetail.tags.title", "Tags") }) }), /* @__PURE__ */ x(c, { children: /* @__PURE__ */ x("div", {
388
+ children: [/* @__PURE__ */ C(p, { children: /* @__PURE__ */ C(m, { children: F("botlit.agentDetail.tags.title", "Tags") }) }), /* @__PURE__ */ C(d, { children: /* @__PURE__ */ C("div", {
364
389
  className: "flex flex-wrap gap-2",
365
- children: Z.map((e) => /* @__PURE__ */ x(p, {
390
+ children: Z.map((e) => /* @__PURE__ */ C(h, {
366
391
  variant: "outline",
367
392
  children: e
368
393
  }, e))
@@ -372,184 +397,184 @@ var P = () => {
372
397
  })
373
398
  ]
374
399
  }),
375
- U === "prompt" && /* @__PURE__ */ x("div", {
400
+ U === "prompt" && /* @__PURE__ */ C("div", {
376
401
  className: "space-y-6",
377
- children: /* @__PURE__ */ S(s, { children: [/* @__PURE__ */ S(u, { children: [/* @__PURE__ */ S(d, {
402
+ children: /* @__PURE__ */ w(u, { children: [/* @__PURE__ */ w(p, { children: [/* @__PURE__ */ w(m, {
378
403
  className: "flex items-center gap-2",
379
- children: [/* @__PURE__ */ x(D, { size: 18 }), P("botlit.agentDetail.prompt.title", "System Prompt")]
380
- }), /* @__PURE__ */ x(l, { children: P("botlit.agentDetail.prompt.description", "The system prompt that defines this agent's behavior") })] }), /* @__PURE__ */ x(c, {
404
+ children: [/* @__PURE__ */ C(D, { size: 18 }), F("botlit.agentDetail.prompt.title", "System Prompt")]
405
+ }), /* @__PURE__ */ C(f, { children: F("botlit.agentDetail.prompt.description", "The system prompt that defines this agent's behavior") })] }), /* @__PURE__ */ C(d, {
381
406
  className: "space-y-4",
382
- children: G ? /* @__PURE__ */ x("pre", {
407
+ children: G ? /* @__PURE__ */ C("pre", {
383
408
  className: "p-4 bg-bg-sunken rounded-lg text-sm whitespace-pre-wrap font-mono",
384
409
  children: G
385
- }) : /* @__PURE__ */ x("p", {
410
+ }) : /* @__PURE__ */ C("p", {
386
411
  className: "text-text-secondary",
387
- children: P("botlit.agentDetail.prompt.empty", "No system prompt configured")
412
+ children: F("botlit.agentDetail.prompt.empty", "No system prompt configured")
388
413
  })
389
414
  })] })
390
415
  }),
391
- U === "llm" && /* @__PURE__ */ S("div", {
416
+ U === "llm" && /* @__PURE__ */ w("div", {
392
417
  className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
393
- children: [/* @__PURE__ */ S(s, { children: [/* @__PURE__ */ x(u, { children: /* @__PURE__ */ S(d, {
418
+ children: [/* @__PURE__ */ w(u, { children: [/* @__PURE__ */ C(p, { children: /* @__PURE__ */ w(m, {
394
419
  className: "flex items-center gap-2",
395
- children: [/* @__PURE__ */ x(T, { size: 18 }), P("botlit.agentDetail.llm.title", "Model Configuration")]
396
- }) }), /* @__PURE__ */ S(c, {
420
+ children: [/* @__PURE__ */ C(E, { size: 18 }), F("botlit.agentDetail.llm.title", "Model Configuration")]
421
+ }) }), /* @__PURE__ */ w(d, {
397
422
  className: "space-y-4",
398
423
  children: [
399
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
424
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
400
425
  className: "text-sm text-text-secondary",
401
426
  children: "LLM Model ID"
402
- }), /* @__PURE__ */ x("p", {
427
+ }), /* @__PURE__ */ C("p", {
403
428
  className: "font-medium font-mono",
404
429
  children: K || "Not configured"
405
430
  })] }),
406
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
431
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
407
432
  className: "text-sm text-text-secondary",
408
433
  children: "Temperature"
409
- }), /* @__PURE__ */ x("p", {
434
+ }), /* @__PURE__ */ C("p", {
410
435
  className: "font-medium",
411
- children: pe ?? "Default"
436
+ children: ve ?? "Default"
412
437
  })] }),
413
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
438
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
414
439
  className: "text-sm text-text-secondary",
415
440
  children: "Max Tokens"
416
- }), /* @__PURE__ */ x("p", {
441
+ }), /* @__PURE__ */ C("p", {
417
442
  className: "font-medium",
418
- children: me ?? "Default"
443
+ children: ye ?? "Default"
419
444
  })] })
420
445
  ]
421
- })] }), /* @__PURE__ */ S(s, { children: [/* @__PURE__ */ x(u, { children: /* @__PURE__ */ S(d, {
446
+ })] }), /* @__PURE__ */ w(u, { children: [/* @__PURE__ */ C(p, { children: /* @__PURE__ */ w(m, {
422
447
  className: "flex items-center gap-2",
423
- children: [/* @__PURE__ */ x(le, { size: 18 }), P("botlit.agentDetail.executionLimits.title", "Execution Limits")]
424
- }) }), /* @__PURE__ */ S(c, {
448
+ children: [/* @__PURE__ */ C(pe, { size: 18 }), F("botlit.agentDetail.executionLimits.title", "Execution Limits")]
449
+ }) }), /* @__PURE__ */ w(d, {
425
450
  className: "space-y-4",
426
451
  children: [
427
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
452
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
428
453
  className: "text-sm text-text-secondary",
429
454
  children: "Max Concurrent Executions"
430
- }), /* @__PURE__ */ x("p", {
455
+ }), /* @__PURE__ */ C("p", {
431
456
  className: "font-medium",
432
457
  children: Q
433
458
  })] }),
434
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
459
+ /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
435
460
  className: "text-sm text-text-secondary",
436
461
  children: "Total Executions"
437
- }), /* @__PURE__ */ x("p", {
462
+ }), /* @__PURE__ */ C("p", {
438
463
  className: "font-medium",
439
- children: L.executionCount ?? 0
464
+ children: z.executionCount ?? 0
440
465
  })] }),
441
- L.lastExecutedAt && /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
466
+ z.lastExecutedAt && /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
442
467
  className: "text-sm text-text-secondary",
443
468
  children: "Last Executed"
444
- }), /* @__PURE__ */ x("p", {
469
+ }), /* @__PURE__ */ C("p", {
445
470
  className: "font-medium",
446
- children: a(L.lastExecutedAt)
471
+ children: i(z.lastExecutedAt)
447
472
  })] })
448
473
  ]
449
474
  })] })]
450
475
  }),
451
- U === "tools" && /* @__PURE__ */ S("div", {
476
+ U === "tools" && /* @__PURE__ */ w("div", {
452
477
  className: "space-y-6",
453
- children: [/* @__PURE__ */ S(s, { children: [/* @__PURE__ */ S(u, { children: [/* @__PURE__ */ S(d, {
478
+ children: [/* @__PURE__ */ w(u, { children: [/* @__PURE__ */ w(p, { children: [/* @__PURE__ */ w(m, {
454
479
  className: "flex items-center gap-2",
455
- children: [/* @__PURE__ */ x(M, { size: 18 }), "MCP Server Connections"]
456
- }), /* @__PURE__ */ x(l, { children: "Connected MCP servers providing tools" })] }), /* @__PURE__ */ x(c, { children: q.length > 0 ? /* @__PURE__ */ x("div", {
480
+ children: [/* @__PURE__ */ C(N, { size: 18 }), "MCP Server Connections"]
481
+ }), /* @__PURE__ */ C(f, { children: "Connected MCP servers providing tools" })] }), /* @__PURE__ */ C(d, { children: q.length > 0 ? /* @__PURE__ */ C("div", {
457
482
  className: "grid grid-cols-1 md:grid-cols-2 gap-4",
458
- children: q.map((e) => /* @__PURE__ */ S("div", {
483
+ children: q.map((e) => /* @__PURE__ */ w("div", {
459
484
  className: "flex items-center gap-3 p-4 border border-border-subtle rounded-lg",
460
- children: [/* @__PURE__ */ x("div", {
485
+ children: [/* @__PURE__ */ C("div", {
461
486
  className: "p-2 bg-action-primary-bg/10 rounded-lg",
462
- children: /* @__PURE__ */ x(M, {
487
+ children: /* @__PURE__ */ C(N, {
463
488
  size: 18,
464
489
  className: "text-primary"
465
490
  })
466
- }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
491
+ }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
467
492
  className: "font-medium",
468
493
  children: "MCP Server"
469
- }), /* @__PURE__ */ x("p", {
494
+ }), /* @__PURE__ */ C("p", {
470
495
  className: "text-sm text-text-secondary font-mono",
471
496
  children: e
472
497
  })] })]
473
498
  }, e))
474
- }) : /* @__PURE__ */ x("p", {
499
+ }) : /* @__PURE__ */ C("p", {
475
500
  className: "text-text-secondary",
476
501
  children: "No MCP servers connected"
477
- }) })] }), Y.length > 0 && /* @__PURE__ */ S(s, { children: [/* @__PURE__ */ x(u, { children: /* @__PURE__ */ S(d, {
502
+ }) })] }), Y.length > 0 && /* @__PURE__ */ w(u, { children: [/* @__PURE__ */ C(p, { children: /* @__PURE__ */ w(m, {
478
503
  className: "flex items-center gap-2",
479
- children: [/* @__PURE__ */ x(k, { size: 18 }), "Workflows"]
480
- }) }), /* @__PURE__ */ x(c, { children: /* @__PURE__ */ x("div", {
504
+ children: [/* @__PURE__ */ C(k, { size: 18 }), "Workflows"]
505
+ }) }), /* @__PURE__ */ C(d, { children: /* @__PURE__ */ C("div", {
481
506
  className: "grid grid-cols-1 md:grid-cols-2 gap-4",
482
- children: Y.map((e) => /* @__PURE__ */ x("div", {
507
+ children: Y.map((e) => /* @__PURE__ */ C("div", {
483
508
  className: "p-4 border border-border-subtle rounded-lg",
484
- children: /* @__PURE__ */ x("p", {
509
+ children: /* @__PURE__ */ C("p", {
485
510
  className: "font-mono text-sm",
486
511
  children: e
487
512
  })
488
513
  }, e))
489
514
  }) })] })]
490
515
  }),
491
- U === "knowledge" && /* @__PURE__ */ S(s, { children: [/* @__PURE__ */ S(u, { children: [/* @__PURE__ */ S(d, {
516
+ U === "knowledge" && /* @__PURE__ */ w(u, { children: [/* @__PURE__ */ w(p, { children: [/* @__PURE__ */ w(m, {
492
517
  className: "flex items-center gap-2",
493
- children: [/* @__PURE__ */ x(w, { size: 18 }), "Knowledge Bases"]
494
- }), /* @__PURE__ */ x(l, { children: "Connected knowledge bases for RAG" })] }), /* @__PURE__ */ x(c, { children: J.length > 0 ? /* @__PURE__ */ x("div", {
518
+ children: [/* @__PURE__ */ C(T, { size: 18 }), "Knowledge Bases"]
519
+ }), /* @__PURE__ */ C(f, { children: "Connected knowledge bases for RAG" })] }), /* @__PURE__ */ C(d, { children: J.length > 0 ? /* @__PURE__ */ C("div", {
495
520
  className: "space-y-4",
496
- children: J.map((e, t) => /* @__PURE__ */ S("div", {
521
+ children: J.map((e, t) => /* @__PURE__ */ w("div", {
497
522
  className: "p-4 border border-border-subtle rounded-lg space-y-2",
498
- children: [/* @__PURE__ */ S("div", {
523
+ children: [/* @__PURE__ */ w("div", {
499
524
  className: "flex items-center justify-between",
500
- children: [/* @__PURE__ */ x("p", {
525
+ children: [/* @__PURE__ */ C("p", {
501
526
  className: "font-medium",
502
527
  children: "Knowledge Base"
503
- }), /* @__PURE__ */ S(p, {
528
+ }), /* @__PURE__ */ w(h, {
504
529
  variant: "outline",
505
530
  children: ["#", t + 1]
506
531
  })]
507
- }), /* @__PURE__ */ x("p", {
532
+ }), /* @__PURE__ */ C("p", {
508
533
  className: "font-mono text-sm",
509
534
  children: e
510
535
  })]
511
536
  }, t))
512
- }) : /* @__PURE__ */ x("p", {
537
+ }) : /* @__PURE__ */ C("p", {
513
538
  className: "text-text-secondary",
514
539
  children: "No knowledge bases connected"
515
540
  }) })] }),
516
- U === "guardrails" && /* @__PURE__ */ S(s, { children: [/* @__PURE__ */ S(u, { children: [/* @__PURE__ */ S(d, {
541
+ U === "guardrails" && /* @__PURE__ */ w(u, { children: [/* @__PURE__ */ w(p, { children: [/* @__PURE__ */ w(m, {
517
542
  className: "flex items-center gap-2",
518
- children: [/* @__PURE__ */ x(j, { size: 18 }), "Guardrails & Policies"]
519
- }), /* @__PURE__ */ x(l, { children: "Security and policy configurations" })] }), /* @__PURE__ */ x(c, { children: $ ? /* @__PURE__ */ x("div", {
543
+ children: [/* @__PURE__ */ C(j, { size: 18 }), "Guardrails & Policies"]
544
+ }), /* @__PURE__ */ C(f, { children: "Security and policy configurations" })] }), /* @__PURE__ */ C(d, { children: $ ? /* @__PURE__ */ C("div", {
520
545
  className: "grid grid-cols-1 md:grid-cols-2 gap-4",
521
- children: Object.entries($).filter(([e, t]) => t).map(([e, t]) => /* @__PURE__ */ S("div", {
546
+ children: Object.entries($).filter(([e, t]) => t).map(([e, t]) => /* @__PURE__ */ w("div", {
522
547
  className: "p-4 border border-border-subtle rounded-lg",
523
- children: [/* @__PURE__ */ x("p", {
548
+ children: [/* @__PURE__ */ C("p", {
524
549
  className: "text-sm text-text-secondary capitalize",
525
550
  children: e.replace("Id", "").replace(/([A-Z])/g, " $1").trim()
526
- }), /* @__PURE__ */ x("p", {
551
+ }), /* @__PURE__ */ C("p", {
527
552
  className: "font-mono text-sm",
528
553
  children: String(t)
529
554
  })]
530
555
  }, e))
531
- }) : /* @__PURE__ */ x("p", {
556
+ }) : /* @__PURE__ */ C("p", {
532
557
  className: "text-text-secondary",
533
558
  children: "No policy bindings configured"
534
559
  }) })] }),
535
- U === "a2a" && /* @__PURE__ */ S(s, { children: [/* @__PURE__ */ S(u, { children: [/* @__PURE__ */ S(d, {
560
+ U === "a2a" && /* @__PURE__ */ w(u, { children: [/* @__PURE__ */ w(p, { children: [/* @__PURE__ */ w(m, {
536
561
  className: "flex items-center gap-2",
537
- children: [/* @__PURE__ */ x(A, { size: 18 }), "A2A Configuration"]
538
- }), /* @__PURE__ */ x(l, { children: "Agent-to-Agent communication settings" })] }), /* @__PURE__ */ x(c, { children: /* @__PURE__ */ x("p", {
562
+ children: [/* @__PURE__ */ C(A, { size: 18 }), "A2A Configuration"]
563
+ }), /* @__PURE__ */ C(f, { children: "Agent-to-Agent communication settings" })] }), /* @__PURE__ */ C(d, { children: /* @__PURE__ */ C("p", {
539
564
  className: "text-text-secondary",
540
565
  children: "A2A is not enabled for this agent"
541
566
  }) })] }),
542
- U === "versions" && F && /* @__PURE__ */ x(te, {
543
- agentId: F,
544
- draftVersionId: L.draftVersionId,
545
- currentVersionId: L.currentVersionId,
546
- onChanged: () => void z()
567
+ U === "versions" && I && /* @__PURE__ */ C(b, {
568
+ agentId: I,
569
+ draftVersionId: z.draftVersionId,
570
+ currentVersionId: z.currentVersionId,
571
+ onChanged: () => void B()
547
572
  })
548
573
  ]
549
574
  })
550
575
  });
551
576
  };
552
577
  //#endregion
553
- export { P as AgentDetailPage };
578
+ export { F as AgentDetailPage };
554
579
 
555
580
  //# sourceMappingURL=AgentDetailPage.js.map