@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.
- package/dist/botlit/BotlitRoutes.js +142 -132
- package/dist/botlit/BotlitRoutes.js.map +1 -1
- package/dist/botlit/components/AgentApprovalPanel.js +144 -126
- package/dist/botlit/components/AgentApprovalPanel.js.map +1 -1
- package/dist/botlit/components/ModelRegistrationPanel.js +4 -4
- package/dist/botlit/components/VersionHistoryPanel.js +92 -83
- package/dist/botlit/components/VersionHistoryPanel.js.map +1 -1
- package/dist/botlit/pages/A2AAgentDetailPage.js +212 -203
- package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -1
- package/dist/botlit/pages/A2ARegistryPage.js +129 -117
- package/dist/botlit/pages/A2ARegistryPage.js.map +1 -1
- package/dist/botlit/pages/AgentApprovalsPage.js +122 -110
- package/dist/botlit/pages/AgentApprovalsPage.js.map +1 -1
- package/dist/botlit/pages/AgentBuilderPage.js +18 -18
- package/dist/botlit/pages/AgentDetailPage.js +298 -273
- package/dist/botlit/pages/AgentDetailPage.js.map +1 -1
- package/dist/botlit/pages/AgentsListPage.js +145 -121
- package/dist/botlit/pages/AgentsListPage.js.map +1 -1
- package/dist/botlit/pages/BotChannelsTab.js +238 -226
- package/dist/botlit/pages/BotChannelsTab.js.map +1 -1
- package/dist/botlit/pages/BotDetailPage.js +307 -288
- package/dist/botlit/pages/BotDetailPage.js.map +1 -1
- package/dist/botlit/pages/BotWorkflowTab.js +125 -116
- package/dist/botlit/pages/BotWorkflowTab.js.map +1 -1
- package/dist/botlit/pages/BotsListPage.js +159 -144
- package/dist/botlit/pages/BotsListPage.js.map +1 -1
- package/dist/botlit/pages/BucketsPage.js +279 -258
- package/dist/botlit/pages/BucketsPage.js.map +1 -1
- package/dist/botlit/pages/ChannelDetailPage.js +346 -328
- package/dist/botlit/pages/ChannelDetailPage.js.map +1 -1
- package/dist/botlit/pages/ChannelRoutesPage.js +10 -10
- package/dist/botlit/pages/ChannelsPage.js +163 -148
- package/dist/botlit/pages/ChannelsPage.js.map +1 -1
- package/dist/botlit/pages/DashboardPage.js +129 -114
- package/dist/botlit/pages/DashboardPage.js.map +1 -1
- package/dist/botlit/pages/ExecutionDetailPage.js +145 -139
- package/dist/botlit/pages/ExecutionDetailPage.js.map +1 -1
- package/dist/botlit/pages/ExecutionsPage.js +14 -14
- package/dist/botlit/pages/InstalledPackagesPage.js +245 -227
- package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -1
- package/dist/botlit/pages/KnowledgeBaseDetailPage.js +168 -156
- package/dist/botlit/pages/KnowledgeBaseDetailPage.js.map +1 -1
- package/dist/botlit/pages/KnowledgeBasesPage.js +91 -79
- package/dist/botlit/pages/KnowledgeBasesPage.js.map +1 -1
- package/dist/botlit/pages/MCPServerDetailPage.js +200 -188
- package/dist/botlit/pages/MCPServerDetailPage.js.map +1 -1
- package/dist/botlit/pages/MCPServersPage.js +170 -155
- package/dist/botlit/pages/MCPServersPage.js.map +1 -1
- package/dist/botlit/pages/PoliciesPage.js +113 -104
- package/dist/botlit/pages/PoliciesPage.js.map +1 -1
- package/dist/botlit/pages/PolicyDetailPage.js +145 -133
- package/dist/botlit/pages/PolicyDetailPage.js.map +1 -1
- package/dist/botlit/pages/PromptStudioPage.js +106 -97
- package/dist/botlit/pages/PromptStudioPage.js.map +1 -1
- package/dist/botlit/pages/PromptTemplateDetailPage.js +359 -347
- package/dist/botlit/pages/PromptTemplateDetailPage.js.map +1 -1
- package/dist/botlit/pages/PromptTemplatesPage.js +127 -112
- package/dist/botlit/pages/PromptTemplatesPage.js.map +1 -1
- package/dist/botlit/pages/RetrievalProfileDetailPage.js +219 -210
- package/dist/botlit/pages/RetrievalProfileDetailPage.js.map +1 -1
- package/dist/botlit/pages/RetrievalProfilesPage.js +112 -103
- package/dist/botlit/pages/RetrievalProfilesPage.js.map +1 -1
- package/dist/botlit/pages/SettingsPage.js +264 -252
- package/dist/botlit/pages/SettingsPage.js.map +1 -1
- package/dist/botlit/pages/SkillDetailPage.js +235 -226
- package/dist/botlit/pages/SkillDetailPage.js.map +1 -1
- package/dist/botlit/pages/SkillsPage.js +115 -106
- package/dist/botlit/pages/SkillsPage.js.map +1 -1
- package/dist/botlit/pages/StorePackageDetailPage.js +194 -188
- package/dist/botlit/pages/StorePackageDetailPage.js.map +1 -1
- package/dist/botlit/pages/StorePage.js +161 -155
- package/dist/botlit/pages/StorePage.js.map +1 -1
- package/dist/botlit/permissions/PermissionRequired.js +45 -0
- package/dist/botlit/permissions/PermissionRequired.js.map +1 -0
- package/dist/botlit/permissions/botmanorPermissions.js +72 -0
- package/dist/botlit/permissions/botmanorPermissions.js.map +1 -0
- package/dist/botlit/permissions/index.js +3 -0
- package/dist/botlit/permissions/useBotmanorPermissions.js +19 -0
- package/dist/botlit/permissions/useBotmanorPermissions.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,264 +1,274 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
1
|
+
import { useTr as e } from "../shared/hooks/useTr.js";
|
|
2
|
+
import { RouteLoader as t } from "./components/RouteLoader.js";
|
|
3
|
+
import { useBotlit as n } from "./providers/BotlitProvider.js";
|
|
4
|
+
import { BOTMANOR_PERMISSIONS as r } from "./permissions/botmanorPermissions.js";
|
|
5
|
+
import { RequirePermission as i } from "./permissions/PermissionRequired.js";
|
|
6
|
+
import "./permissions/index.js";
|
|
7
|
+
import { DashboardPage as a } from "./pages/DashboardPage.js";
|
|
8
|
+
import { Suspense as o, lazy as s } from "react";
|
|
9
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
10
|
+
import { Navigate as u, Route as d, Routes as f, useLocation as p } from "react-router";
|
|
7
11
|
//#region src/botlit/BotlitRoutes.tsx
|
|
8
|
-
var
|
|
9
|
-
let { basePath:
|
|
10
|
-
|
|
12
|
+
var m = s(() => import("./pages/BotsListPage.js").then((e) => ({ default: e.BotsListPage }))), h = s(() => import("./pages/BotDetailPage.js").then((e) => ({ default: e.BotDetailPage }))), g = s(() => import("./pages/AgentsListPage.js").then((e) => ({ default: e.AgentsListPage }))), _ = s(() => import("./pages/AgentApprovalsPage.js").then((e) => ({ default: e.AgentApprovalsPage }))), v = s(() => import("./pages/AgentDetailPage.js").then((e) => ({ default: e.AgentDetailPage }))), y = s(() => import("./pages/AgentBuilderPage.js").then((e) => ({ default: e.AgentBuilderPage }))), b = s(() => import("./pages/KnowledgeBasesPage.js").then((e) => ({ default: e.KnowledgeBasesPage }))), x = s(() => import("./pages/KnowledgeBaseDetailPage.js").then((e) => ({ default: e.KnowledgeBaseDetailPage }))), S = s(() => import("./pages/RetrievalProfilesPage.js").then((e) => ({ default: e.RetrievalProfilesPage }))), C = s(() => import("./pages/RetrievalProfileDetailPage.js").then((e) => ({ default: e.RetrievalProfileDetailPage }))), w = s(() => import("./pages/MCPServersPage.js").then((e) => ({ default: e.MCPServersPage }))), T = s(() => import("./pages/MCPServerDetailPage.js").then((e) => ({ default: e.MCPServerDetailPage }))), E = s(() => import("./pages/A2ARegistryPage.js").then((e) => ({ default: e.A2ARegistryPage }))), D = s(() => import("./pages/A2AAgentDetailPage.js").then((e) => ({ default: e.A2AAgentDetailPage }))), O = s(() => import("./pages/ChannelsPage.js").then((e) => ({ default: e.ChannelsPage }))), k = s(() => import("./pages/ChannelDetailPage.js").then((e) => ({ default: e.ChannelDetailPage }))), A = s(() => import("./pages/ChannelRoutesPage.js").then((e) => ({ default: e.ChannelRoutesPage }))), j = s(() => import("./pages/PoliciesPage.js").then((e) => ({ default: e.PoliciesPage }))), M = s(() => import("./pages/PolicyDetailPage.js").then((e) => ({ default: e.PolicyDetailPage }))), N = s(() => import("./pages/SkillsPage.js").then((e) => ({ default: e.SkillsPage }))), P = s(() => import("./pages/SkillDetailPage.js").then((e) => ({ default: e.SkillDetailPage }))), F = s(() => import("./pages/PromptTemplatesPage.js").then((e) => ({ default: e.PromptTemplatesPage }))), I = s(() => import("./pages/PromptTemplateDetailPage.js").then((e) => ({ default: e.PromptTemplateDetailPage }))), L = s(() => import("./pages/PromptStudioPage.js").then((e) => ({ default: e.PromptStudioPage }))), R = s(() => import("./pages/ExecutionsPage.js").then((e) => ({ default: e.ExecutionsPage }))), z = s(() => import("./pages/ExecutionDetailPage.js").then((e) => ({ default: e.ExecutionDetailPage }))), B = s(() => import("./pages/BucketsPage.js").then((e) => ({ default: e.BucketsPage }))), V = s(() => import("./pages/StorePage.js").then((e) => ({ default: e.StorePage }))), H = s(() => import("./pages/StorePackageDetailPage.js").then((e) => ({ default: e.StorePackageDetailPage }))), U = s(() => import("./pages/InstalledPackagesPage.js").then((e) => ({ default: e.InstalledPackagesPage }))), W = s(() => import("./pages/SettingsPage.js").then((e) => ({ default: e.SettingsPage }))), G = s(() => import("./pages/ChatPage.js").then((e) => ({ default: e.ChatPage }))), K = () => {
|
|
13
|
+
let { basePath: s, isStandalone: K } = n(), q = p(), J = e(), Y = (e, t, n, r, a) => /* @__PURE__ */ c(i, {
|
|
14
|
+
permission: e,
|
|
15
|
+
title: t,
|
|
16
|
+
backTo: n,
|
|
17
|
+
backLabel: r,
|
|
18
|
+
children: a
|
|
19
|
+
}), X = J("permissions.required.back", "Go back"), Z = s === "/" ? "" : s.replace(/\/$/, "");
|
|
20
|
+
return Z && !K && !(q.pathname === Z || q.pathname.startsWith(Z + "/")) ? null : /* @__PURE__ */ c("div", {
|
|
11
21
|
className: "flex flex-col min-h-full bg-bg-surface",
|
|
12
|
-
children: /* @__PURE__ */
|
|
13
|
-
fallback: /* @__PURE__ */
|
|
14
|
-
children: /* @__PURE__ */
|
|
15
|
-
/* @__PURE__ */
|
|
22
|
+
children: /* @__PURE__ */ c(o, {
|
|
23
|
+
fallback: /* @__PURE__ */ c(t, {}),
|
|
24
|
+
children: /* @__PURE__ */ l(f, { children: [
|
|
25
|
+
/* @__PURE__ */ c(d, {
|
|
16
26
|
index: !0,
|
|
17
|
-
element: /* @__PURE__ */ a
|
|
27
|
+
element: /* @__PURE__ */ c(a, {})
|
|
18
28
|
}),
|
|
19
|
-
/* @__PURE__ */
|
|
29
|
+
/* @__PURE__ */ c(d, {
|
|
20
30
|
path: "home",
|
|
21
|
-
element: /* @__PURE__ */
|
|
31
|
+
element: /* @__PURE__ */ c(u, {
|
|
22
32
|
to: "/",
|
|
23
33
|
replace: !0
|
|
24
34
|
})
|
|
25
35
|
}),
|
|
26
|
-
/* @__PURE__ */
|
|
36
|
+
/* @__PURE__ */ c(d, {
|
|
27
37
|
path: "bots",
|
|
28
|
-
element: /* @__PURE__ */
|
|
38
|
+
element: /* @__PURE__ */ c(m, {})
|
|
29
39
|
}),
|
|
30
|
-
/* @__PURE__ */
|
|
40
|
+
/* @__PURE__ */ c(d, {
|
|
31
41
|
path: "bots/new",
|
|
32
|
-
element: /* @__PURE__ */
|
|
42
|
+
element: Y(r.APP_CREATE, J("botlit.botsList.actions.createBot", "Create Bot"), "bots", X, /* @__PURE__ */ c(h, { isNew: !0 }))
|
|
33
43
|
}),
|
|
34
|
-
/* @__PURE__ */
|
|
44
|
+
/* @__PURE__ */ c(d, {
|
|
35
45
|
path: "bots/:botId",
|
|
36
|
-
element: /* @__PURE__ */
|
|
46
|
+
element: /* @__PURE__ */ c(h, {})
|
|
37
47
|
}),
|
|
38
|
-
/* @__PURE__ */
|
|
48
|
+
/* @__PURE__ */ c(d, {
|
|
39
49
|
path: "bots/:botId/edit",
|
|
40
|
-
element: /* @__PURE__ */
|
|
50
|
+
element: Y(r.APP_UPDATE, J("botlit.botsList.menu.editBot", "Edit Bot"), "bots", X, /* @__PURE__ */ c(h, { isEditing: !0 }))
|
|
41
51
|
}),
|
|
42
|
-
/* @__PURE__ */
|
|
52
|
+
/* @__PURE__ */ c(d, {
|
|
43
53
|
path: "bots/:botId/agents",
|
|
44
|
-
element: /* @__PURE__ */
|
|
54
|
+
element: /* @__PURE__ */ c(g, {})
|
|
45
55
|
}),
|
|
46
|
-
/* @__PURE__ */
|
|
56
|
+
/* @__PURE__ */ c(d, {
|
|
47
57
|
path: "bots/:botId/agents/new",
|
|
48
|
-
element: /* @__PURE__ */
|
|
58
|
+
element: Y(r.AGENT_CREATE, J("botlit.agentsList.actions.createAgent", "Create Agent"), "agents", X, /* @__PURE__ */ c(y, {}))
|
|
49
59
|
}),
|
|
50
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ c(d, {
|
|
51
61
|
path: "bots/:botId/agents/:agentId",
|
|
52
|
-
element: /* @__PURE__ */
|
|
62
|
+
element: /* @__PURE__ */ c(v, {})
|
|
53
63
|
}),
|
|
54
|
-
/* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ c(d, {
|
|
55
65
|
path: "bots/:botId/agents/:agentId/edit",
|
|
56
|
-
element: /* @__PURE__ */
|
|
66
|
+
element: Y(r.AGENT_UPDATE, J("botlit.agentsList.menu.editAgent", "Edit Agent"), "agents", X, /* @__PURE__ */ c(y, {}))
|
|
57
67
|
}),
|
|
58
|
-
/* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */ c(d, {
|
|
59
69
|
path: "bots/:botId/knowledge",
|
|
60
|
-
element: /* @__PURE__ */
|
|
70
|
+
element: /* @__PURE__ */ c(b, {})
|
|
61
71
|
}),
|
|
62
|
-
/* @__PURE__ */
|
|
72
|
+
/* @__PURE__ */ c(d, {
|
|
63
73
|
path: "bots/:botId/knowledge/:kbId",
|
|
64
|
-
element: /* @__PURE__ */
|
|
74
|
+
element: /* @__PURE__ */ c(x, {})
|
|
65
75
|
}),
|
|
66
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ c(d, {
|
|
67
77
|
path: "agents",
|
|
68
|
-
element: /* @__PURE__ */
|
|
78
|
+
element: /* @__PURE__ */ c(g, {})
|
|
69
79
|
}),
|
|
70
|
-
/* @__PURE__ */
|
|
80
|
+
/* @__PURE__ */ c(d, {
|
|
71
81
|
path: "agents/new",
|
|
72
|
-
element: /* @__PURE__ */
|
|
82
|
+
element: Y(r.AGENT_CREATE, J("botlit.agentsList.actions.createAgent", "Create Agent"), "agents", X, /* @__PURE__ */ c(y, {}))
|
|
73
83
|
}),
|
|
74
|
-
/* @__PURE__ */
|
|
84
|
+
/* @__PURE__ */ c(d, {
|
|
75
85
|
path: "agents/approvals",
|
|
76
|
-
element: /* @__PURE__ */
|
|
86
|
+
element: /* @__PURE__ */ c(_, {})
|
|
77
87
|
}),
|
|
78
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ c(d, {
|
|
79
89
|
path: "agents/:agentId",
|
|
80
|
-
element: /* @__PURE__ */
|
|
90
|
+
element: /* @__PURE__ */ c(v, {})
|
|
81
91
|
}),
|
|
82
|
-
/* @__PURE__ */
|
|
92
|
+
/* @__PURE__ */ c(d, {
|
|
83
93
|
path: "agents/:agentId/edit",
|
|
84
|
-
element: /* @__PURE__ */
|
|
94
|
+
element: Y(r.AGENT_UPDATE, J("botlit.agentsList.menu.editAgent", "Edit Agent"), "agents", X, /* @__PURE__ */ c(y, {}))
|
|
85
95
|
}),
|
|
86
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ c(d, {
|
|
87
97
|
path: "agents/:agentId/chat",
|
|
88
|
-
element: /* @__PURE__ */
|
|
98
|
+
element: Y(r.AGENT_EXECUTE, J("botlit.chat.title", "AI Chat"), "agents", X, /* @__PURE__ */ c(G, {}))
|
|
89
99
|
}),
|
|
90
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ c(d, {
|
|
91
101
|
path: "conversations",
|
|
92
|
-
element: /* @__PURE__ */
|
|
102
|
+
element: /* @__PURE__ */ c(u, {
|
|
93
103
|
to: "/conversations",
|
|
94
104
|
replace: !0
|
|
95
105
|
})
|
|
96
106
|
}),
|
|
97
|
-
/* @__PURE__ */
|
|
107
|
+
/* @__PURE__ */ c(d, {
|
|
98
108
|
path: "conversations/:conversationId",
|
|
99
|
-
element: /* @__PURE__ */
|
|
109
|
+
element: /* @__PURE__ */ c(u, {
|
|
100
110
|
to: "/conversations",
|
|
101
111
|
replace: !0
|
|
102
112
|
})
|
|
103
113
|
}),
|
|
104
|
-
/* @__PURE__ */
|
|
114
|
+
/* @__PURE__ */ c(d, {
|
|
105
115
|
path: "knowledge",
|
|
106
|
-
element: /* @__PURE__ */
|
|
116
|
+
element: /* @__PURE__ */ c(b, {})
|
|
107
117
|
}),
|
|
108
|
-
/* @__PURE__ */
|
|
118
|
+
/* @__PURE__ */ c(d, {
|
|
109
119
|
path: "knowledge/new",
|
|
110
|
-
element: /* @__PURE__ */
|
|
120
|
+
element: Y(r.KNOWLEDGE_CREATE, J("botlit.knowledge.actions.create", "Create Knowledge Base"), "knowledge", X, /* @__PURE__ */ c(x, { isNew: !0 }))
|
|
111
121
|
}),
|
|
112
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ c(d, {
|
|
113
123
|
path: "knowledge/:kbId",
|
|
114
|
-
element: /* @__PURE__ */
|
|
124
|
+
element: /* @__PURE__ */ c(x, {})
|
|
115
125
|
}),
|
|
116
|
-
/* @__PURE__ */
|
|
126
|
+
/* @__PURE__ */ c(d, {
|
|
117
127
|
path: "retrieval-profiles",
|
|
118
|
-
element: /* @__PURE__ */
|
|
128
|
+
element: /* @__PURE__ */ c(S, {})
|
|
119
129
|
}),
|
|
120
|
-
/* @__PURE__ */
|
|
130
|
+
/* @__PURE__ */ c(d, {
|
|
121
131
|
path: "retrieval-profiles/new",
|
|
122
|
-
element: /* @__PURE__ */
|
|
132
|
+
element: Y(r.RETRIEVAL_PROFILE_CREATE, J("botlit.retrievalProfiles.actions.create", "Create Retrieval Profile"), "retrieval-profiles", X, /* @__PURE__ */ c(C, { isNew: !0 }))
|
|
123
133
|
}),
|
|
124
|
-
/* @__PURE__ */
|
|
134
|
+
/* @__PURE__ */ c(d, {
|
|
125
135
|
path: "retrieval-profiles/:profileId",
|
|
126
|
-
element: /* @__PURE__ */
|
|
136
|
+
element: /* @__PURE__ */ c(C, {})
|
|
127
137
|
}),
|
|
128
|
-
/* @__PURE__ */
|
|
138
|
+
/* @__PURE__ */ c(d, {
|
|
129
139
|
path: "mcp",
|
|
130
|
-
element: /* @__PURE__ */
|
|
140
|
+
element: /* @__PURE__ */ c(w, {})
|
|
131
141
|
}),
|
|
132
|
-
/* @__PURE__ */
|
|
142
|
+
/* @__PURE__ */ c(d, {
|
|
133
143
|
path: "mcp/new",
|
|
134
|
-
element: /* @__PURE__ */
|
|
144
|
+
element: Y(r.MCP_CREATE, J("botlit.mcpServers.actions.add", "Add MCP Server"), "mcp", X, /* @__PURE__ */ c(T, { isNew: !0 }))
|
|
135
145
|
}),
|
|
136
|
-
/* @__PURE__ */
|
|
146
|
+
/* @__PURE__ */ c(d, {
|
|
137
147
|
path: "mcp/:serverId",
|
|
138
|
-
element: /* @__PURE__ */
|
|
148
|
+
element: /* @__PURE__ */ c(T, {})
|
|
139
149
|
}),
|
|
140
|
-
/* @__PURE__ */
|
|
150
|
+
/* @__PURE__ */ c(d, {
|
|
141
151
|
path: "a2a",
|
|
142
|
-
element: /* @__PURE__ */
|
|
152
|
+
element: /* @__PURE__ */ c(E, {})
|
|
143
153
|
}),
|
|
144
|
-
/* @__PURE__ */
|
|
154
|
+
/* @__PURE__ */ c(d, {
|
|
145
155
|
path: "a2a/register",
|
|
146
|
-
element: /* @__PURE__ */
|
|
156
|
+
element: Y(r.A2A_REGISTRY_CREATE, J("botlit.a2aRegistry.actions.registerAgent", "Register Agent"), "a2a", X, /* @__PURE__ */ c(D, { isNew: !0 }))
|
|
147
157
|
}),
|
|
148
|
-
/* @__PURE__ */
|
|
158
|
+
/* @__PURE__ */ c(d, {
|
|
149
159
|
path: "a2a/:agentId",
|
|
150
|
-
element: /* @__PURE__ */
|
|
160
|
+
element: /* @__PURE__ */ c(D, {})
|
|
151
161
|
}),
|
|
152
|
-
/* @__PURE__ */
|
|
162
|
+
/* @__PURE__ */ c(d, {
|
|
153
163
|
path: "channels",
|
|
154
|
-
element: /* @__PURE__ */
|
|
164
|
+
element: /* @__PURE__ */ c(O, {})
|
|
155
165
|
}),
|
|
156
|
-
/* @__PURE__ */
|
|
166
|
+
/* @__PURE__ */ c(d, {
|
|
157
167
|
path: "channels/new",
|
|
158
|
-
element: /* @__PURE__ */
|
|
168
|
+
element: Y(r.CHANNEL_CREATE, J("botlit.channels.actions.addChannel", "Add Channel"), "channels", X, /* @__PURE__ */ c(k, { isNew: !0 }))
|
|
159
169
|
}),
|
|
160
|
-
/* @__PURE__ */
|
|
170
|
+
/* @__PURE__ */ c(d, {
|
|
161
171
|
path: "channels/routes",
|
|
162
|
-
element: /* @__PURE__ */
|
|
172
|
+
element: /* @__PURE__ */ c(A, {})
|
|
163
173
|
}),
|
|
164
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ c(d, {
|
|
165
175
|
path: "channels/:connectorId",
|
|
166
|
-
element: /* @__PURE__ */
|
|
176
|
+
element: /* @__PURE__ */ c(k, {})
|
|
167
177
|
}),
|
|
168
|
-
/* @__PURE__ */
|
|
178
|
+
/* @__PURE__ */ c(d, {
|
|
169
179
|
path: "policies",
|
|
170
|
-
element: /* @__PURE__ */
|
|
180
|
+
element: /* @__PURE__ */ c(j, {})
|
|
171
181
|
}),
|
|
172
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ c(d, {
|
|
173
183
|
path: "policies/new",
|
|
174
|
-
element: /* @__PURE__ */
|
|
184
|
+
element: Y(r.POLICY_CREATE, J("botlit.policies.actions.createPolicy", "Create Policy"), "policies", X, /* @__PURE__ */ c(M, { isNew: !0 }))
|
|
175
185
|
}),
|
|
176
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ c(d, {
|
|
177
187
|
path: "policies/:policyId",
|
|
178
|
-
element: /* @__PURE__ */
|
|
188
|
+
element: /* @__PURE__ */ c(M, {})
|
|
179
189
|
}),
|
|
180
|
-
/* @__PURE__ */
|
|
190
|
+
/* @__PURE__ */ c(d, {
|
|
181
191
|
path: "skills",
|
|
182
|
-
element: /* @__PURE__ */
|
|
192
|
+
element: /* @__PURE__ */ c(N, {})
|
|
183
193
|
}),
|
|
184
|
-
/* @__PURE__ */
|
|
194
|
+
/* @__PURE__ */ c(d, {
|
|
185
195
|
path: "skills/new",
|
|
186
|
-
element: /* @__PURE__ */
|
|
196
|
+
element: Y(r.SKILL_CREATE, J("botlit.skills.actions.create", "Create Skill"), "skills", X, /* @__PURE__ */ c(P, { isNew: !0 }))
|
|
187
197
|
}),
|
|
188
|
-
/* @__PURE__ */
|
|
198
|
+
/* @__PURE__ */ c(d, {
|
|
189
199
|
path: "skills/:skillId",
|
|
190
|
-
element: /* @__PURE__ */
|
|
200
|
+
element: /* @__PURE__ */ c(P, {})
|
|
191
201
|
}),
|
|
192
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ c(d, {
|
|
193
203
|
path: "prompt-templates",
|
|
194
|
-
element: /* @__PURE__ */
|
|
204
|
+
element: /* @__PURE__ */ c(F, {})
|
|
195
205
|
}),
|
|
196
|
-
/* @__PURE__ */
|
|
206
|
+
/* @__PURE__ */ c(d, {
|
|
197
207
|
path: "prompt-templates/new",
|
|
198
|
-
element: /* @__PURE__ */
|
|
208
|
+
element: Y(r.PROMPT_TEMPLATE_CREATE, J("botlit.promptTemplates.actions.create", "Create Template"), "prompt-templates", X, /* @__PURE__ */ c(I, { isNew: !0 }))
|
|
199
209
|
}),
|
|
200
|
-
/* @__PURE__ */
|
|
210
|
+
/* @__PURE__ */ c(d, {
|
|
201
211
|
path: "prompt-templates/:templateId",
|
|
202
|
-
element: /* @__PURE__ */
|
|
212
|
+
element: /* @__PURE__ */ c(I, {})
|
|
203
213
|
}),
|
|
204
|
-
/* @__PURE__ */
|
|
214
|
+
/* @__PURE__ */ c(d, {
|
|
205
215
|
path: "prompts",
|
|
206
|
-
element: /* @__PURE__ */
|
|
216
|
+
element: /* @__PURE__ */ c(L, {})
|
|
207
217
|
}),
|
|
208
|
-
/* @__PURE__ */
|
|
218
|
+
/* @__PURE__ */ c(d, {
|
|
209
219
|
path: "executions",
|
|
210
|
-
element: /* @__PURE__ */
|
|
220
|
+
element: /* @__PURE__ */ c(R, {})
|
|
211
221
|
}),
|
|
212
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ c(d, {
|
|
213
223
|
path: "executions/:executionId",
|
|
214
|
-
element: /* @__PURE__ */
|
|
224
|
+
element: /* @__PURE__ */ c(z, {})
|
|
215
225
|
}),
|
|
216
|
-
/* @__PURE__ */
|
|
226
|
+
/* @__PURE__ */ c(d, {
|
|
217
227
|
path: "buckets",
|
|
218
|
-
element: /* @__PURE__ */
|
|
228
|
+
element: /* @__PURE__ */ c(B, {})
|
|
219
229
|
}),
|
|
220
|
-
/* @__PURE__ */
|
|
230
|
+
/* @__PURE__ */ c(d, {
|
|
221
231
|
path: "buckets/new",
|
|
222
|
-
element: /* @__PURE__ */
|
|
232
|
+
element: /* @__PURE__ */ c(B, {})
|
|
223
233
|
}),
|
|
224
|
-
/* @__PURE__ */
|
|
234
|
+
/* @__PURE__ */ c(d, {
|
|
225
235
|
path: "buckets/:bucketId",
|
|
226
|
-
element: /* @__PURE__ */
|
|
236
|
+
element: /* @__PURE__ */ c(B, {})
|
|
227
237
|
}),
|
|
228
|
-
/* @__PURE__ */
|
|
238
|
+
/* @__PURE__ */ c(d, {
|
|
229
239
|
path: "store",
|
|
230
|
-
element: /* @__PURE__ */
|
|
240
|
+
element: /* @__PURE__ */ c(V, {})
|
|
231
241
|
}),
|
|
232
|
-
/* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ c(d, {
|
|
233
243
|
path: "store/installed",
|
|
234
|
-
element: /* @__PURE__ */
|
|
244
|
+
element: /* @__PURE__ */ c(U, {})
|
|
235
245
|
}),
|
|
236
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ c(d, {
|
|
237
247
|
path: "store/package/:slug",
|
|
238
|
-
element: /* @__PURE__ */
|
|
248
|
+
element: /* @__PURE__ */ c(H, {})
|
|
239
249
|
}),
|
|
240
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ c(d, {
|
|
241
251
|
path: "chat",
|
|
242
|
-
element: /* @__PURE__ */
|
|
252
|
+
element: Y(r.AGENT_EXECUTE, J("botlit.chat.title", "AI Chat"), "agents", X, /* @__PURE__ */ c(G, {}))
|
|
243
253
|
}),
|
|
244
|
-
/* @__PURE__ */
|
|
254
|
+
/* @__PURE__ */ c(d, {
|
|
245
255
|
path: "chat/:agentId",
|
|
246
|
-
element: /* @__PURE__ */
|
|
256
|
+
element: Y(r.AGENT_EXECUTE, J("botlit.chat.title", "AI Chat"), "agents", X, /* @__PURE__ */ c(G, {}))
|
|
247
257
|
}),
|
|
248
|
-
/* @__PURE__ */
|
|
258
|
+
/* @__PURE__ */ c(d, {
|
|
249
259
|
path: "settings",
|
|
250
|
-
element: /* @__PURE__ */
|
|
260
|
+
element: /* @__PURE__ */ c(W, {})
|
|
251
261
|
}),
|
|
252
|
-
/* @__PURE__ */
|
|
262
|
+
/* @__PURE__ */ c(d, {
|
|
253
263
|
path: "list",
|
|
254
|
-
element: /* @__PURE__ */
|
|
255
|
-
to: `${
|
|
264
|
+
element: /* @__PURE__ */ c(u, {
|
|
265
|
+
to: `${Z}/workflows/list`,
|
|
256
266
|
replace: !0
|
|
257
267
|
})
|
|
258
268
|
}),
|
|
259
|
-
/* @__PURE__ */
|
|
269
|
+
/* @__PURE__ */ c(d, {
|
|
260
270
|
path: "*",
|
|
261
|
-
element: /* @__PURE__ */
|
|
271
|
+
element: /* @__PURE__ */ c(u, {
|
|
262
272
|
to: "/",
|
|
263
273
|
replace: !0
|
|
264
274
|
})
|
|
@@ -268,6 +278,6 @@ var d = i(() => import("./pages/BotsListPage.js").then((e) => ({ default: e.Bots
|
|
|
268
278
|
});
|
|
269
279
|
};
|
|
270
280
|
//#endregion
|
|
271
|
-
export {
|
|
281
|
+
export { K as BotlitRoutes };
|
|
272
282
|
|
|
273
283
|
//# sourceMappingURL=BotlitRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BotlitRoutes.js","names":[],"sources":["../../src/botlit/BotlitRoutes.tsx"],"sourcesContent":["/**\n * BotManor Routes\n * @module botlit\n */\n\nimport { type FC, lazy, Suspense } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router';\nimport { useBotlit } from './providers/BotlitProvider';\nimport { RouteLoader } from './components/RouteLoader';\n\n// Eager load - Dashboard (primary landing page)\nimport { DashboardPage } from './pages/DashboardPage';\n\n// Lazy loaded pages - Bots\nconst BotsListPage = lazy(() =>\n import('./pages/BotsListPage').then((m) => ({ default: m.BotsListPage }))\n);\nconst BotDetailPage = lazy(() =>\n import('./pages/BotDetailPage').then((m) => ({ default: m.BotDetailPage }))\n);\n\n// Lazy loaded pages - Agents\nconst AgentsListPage = lazy(() =>\n import('./pages/AgentsListPage').then((m) => ({ default: m.AgentsListPage }))\n);\nconst AgentApprovalsPage = lazy(() =>\n import('./pages/AgentApprovalsPage').then((m) => ({ default: m.AgentApprovalsPage }))\n);\nconst AgentDetailPage = lazy(() =>\n import('./pages/AgentDetailPage').then((m) => ({ default: m.AgentDetailPage }))\n);\nconst AgentBuilderPage = lazy(() =>\n import('./pages/AgentBuilderPage').then((m) => ({ default: m.AgentBuilderPage }))\n);\n\n// Lazy loaded pages - Knowledge Bases\nconst KnowledgeBasesPage = lazy(() =>\n import('./pages/KnowledgeBasesPage').then((m) => ({ default: m.KnowledgeBasesPage }))\n);\nconst KnowledgeBaseDetailPage = lazy(() =>\n import('./pages/KnowledgeBaseDetailPage').then((m) => ({ default: m.KnowledgeBaseDetailPage }))\n);\n\n// Lazy loaded pages - Retrieval Profiles\nconst RetrievalProfilesPage = lazy(() =>\n import('./pages/RetrievalProfilesPage').then((m) => ({ default: m.RetrievalProfilesPage }))\n);\nconst RetrievalProfileDetailPage = lazy(() =>\n import('./pages/RetrievalProfileDetailPage').then((m) => ({\n default: m.RetrievalProfileDetailPage,\n }))\n);\n\n// Lazy loaded pages - MCP Servers\nconst MCPServersPage = lazy(() =>\n import('./pages/MCPServersPage').then((m) => ({ default: m.MCPServersPage }))\n);\nconst MCPServerDetailPage = lazy(() =>\n import('./pages/MCPServerDetailPage').then((m) => ({ default: m.MCPServerDetailPage }))\n);\n\n// Lazy loaded pages - A2A Registry\nconst A2ARegistryPage = lazy(() =>\n import('./pages/A2ARegistryPage').then((m) => ({ default: m.A2ARegistryPage }))\n);\nconst A2AAgentDetailPage = lazy(() =>\n import('./pages/A2AAgentDetailPage').then((m) => ({ default: m.A2AAgentDetailPage }))\n);\n\n// Lazy loaded pages - Channels\nconst ChannelsPage = lazy(() =>\n import('./pages/ChannelsPage').then((m) => ({ default: m.ChannelsPage }))\n);\nconst ChannelDetailPage = lazy(() =>\n import('./pages/ChannelDetailPage').then((m) => ({ default: m.ChannelDetailPage }))\n);\nconst ChannelRoutesPage = lazy(() =>\n import('./pages/ChannelRoutesPage').then((m) => ({ default: m.ChannelRoutesPage }))\n);\n\n// Lazy loaded pages - Policies\nconst PoliciesPage = lazy(() =>\n import('./pages/PoliciesPage').then((m) => ({ default: m.PoliciesPage }))\n);\nconst PolicyDetailPage = lazy(() =>\n import('./pages/PolicyDetailPage').then((m) => ({ default: m.PolicyDetailPage }))\n);\n\n// Lazy loaded pages - Skills\nconst SkillsPage = lazy(() =>\n import('./pages/SkillsPage').then((m) => ({ default: m.SkillsPage }))\n);\nconst SkillDetailPage = lazy(() =>\n import('./pages/SkillDetailPage').then((m) => ({ default: m.SkillDetailPage }))\n);\n\n// Lazy loaded pages - Prompt Templates\nconst PromptTemplatesPage = lazy(() =>\n import('./pages/PromptTemplatesPage').then((m) => ({ default: m.PromptTemplatesPage }))\n);\nconst PromptTemplateDetailPage = lazy(() =>\n import('./pages/PromptTemplateDetailPage').then((m) => ({ default: m.PromptTemplateDetailPage }))\n);\nconst PromptStudioPage = lazy(() =>\n import('./pages/PromptStudioPage').then((m) => ({ default: m.PromptStudioPage }))\n);\n\n// Lazy loaded pages - Executions\nconst ExecutionsPage = lazy(() =>\n import('./pages/ExecutionsPage').then((m) => ({ default: m.ExecutionsPage }))\n);\nconst ExecutionDetailPage = lazy(() =>\n import('./pages/ExecutionDetailPage').then((m) => ({ default: m.ExecutionDetailPage }))\n);\n\n// Lazy loaded pages - Buckets\nconst BucketsPage = lazy(() =>\n import('./pages/BucketsPage').then((m) => ({ default: m.BucketsPage }))\n);\n\n// Lazy loaded pages - Store\nconst StorePage = lazy(() => import('./pages/StorePage').then((m) => ({ default: m.StorePage })));\nconst StorePackageDetailPage = lazy(() =>\n import('./pages/StorePackageDetailPage').then((m) => ({ default: m.StorePackageDetailPage }))\n);\nconst InstalledPackagesPage = lazy(() =>\n import('./pages/InstalledPackagesPage').then((m) => ({ default: m.InstalledPackagesPage }))\n);\n\n// Lazy loaded pages - Settings & Chat\nconst SettingsPage = lazy(() =>\n import('./pages/SettingsPage').then((m) => ({ default: m.SettingsPage }))\n);\nconst ChatPage = lazy(() => import('./pages/ChatPage').then((m) => ({ default: m.ChatPage })));\n\n// Loading fallback — the same skeleton `BotmanorRoot` paints while its\n// implementation chunk resolves, so the content region never switches loading\n// idioms (and never goes empty) between first paint and the page rendering.\n\nexport const BotlitRoutes: FC = () => {\n const { basePath, isStandalone } = useBotlit();\n const location = useLocation();\n\n // Normalize base path\n const normalizedBasePath = basePath === '/' ? '' : basePath.replace(/\\/$/, '');\n\n // Guard: Only render if path matches basePath (when integrated)\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex flex-col min-h-full bg-bg-surface\">\n <Suspense fallback={<RouteLoader />}>\n <Routes>\n {/* Dashboard - Eager loaded */}\n <Route index element={<DashboardPage />} />\n <Route path=\"home\" element={<Navigate to=\"/\" replace />} />\n\n {/* Bots */}\n <Route path=\"bots\" element={<BotsListPage />} />\n <Route path=\"bots/new\" element={<BotDetailPage isNew />} />\n <Route path=\"bots/:botId\" element={<BotDetailPage />} />\n <Route path=\"bots/:botId/edit\" element={<BotDetailPage isEditing />} />\n <Route path=\"bots/:botId/agents\" element={<AgentsListPage />} />\n <Route path=\"bots/:botId/agents/new\" element={<AgentBuilderPage />} />\n <Route path=\"bots/:botId/agents/:agentId\" element={<AgentDetailPage />} />\n <Route path=\"bots/:botId/agents/:agentId/edit\" element={<AgentBuilderPage />} />\n <Route path=\"bots/:botId/knowledge\" element={<KnowledgeBasesPage />} />\n <Route path=\"bots/:botId/knowledge/:kbId\" element={<KnowledgeBaseDetailPage />} />\n\n {/* Agents (global view) */}\n <Route path=\"agents\" element={<AgentsListPage />} />\n <Route path=\"agents/new\" element={<AgentBuilderPage />} />\n <Route path=\"agents/approvals\" element={<AgentApprovalsPage />} />\n <Route path=\"agents/:agentId\" element={<AgentDetailPage />} />\n <Route path=\"agents/:agentId/edit\" element={<AgentBuilderPage />} />\n <Route path=\"agents/:agentId/chat\" element={<ChatPage />} />\n\n {/* Conversations - Redirect to conversations microfe */}\n <Route path=\"conversations\" element={<Navigate to=\"/conversations\" replace />} />\n <Route\n path=\"conversations/:conversationId\"\n element={<Navigate to=\"/conversations\" replace />}\n />\n\n {/* Knowledge Bases */}\n <Route path=\"knowledge\" element={<KnowledgeBasesPage />} />\n <Route path=\"knowledge/new\" element={<KnowledgeBaseDetailPage isNew />} />\n <Route path=\"knowledge/:kbId\" element={<KnowledgeBaseDetailPage />} />\n\n {/* Retrieval Profiles */}\n <Route path=\"retrieval-profiles\" element={<RetrievalProfilesPage />} />\n <Route path=\"retrieval-profiles/new\" element={<RetrievalProfileDetailPage isNew />} />\n <Route path=\"retrieval-profiles/:profileId\" element={<RetrievalProfileDetailPage />} />\n\n {/* MCP Servers */}\n <Route path=\"mcp\" element={<MCPServersPage />} />\n <Route path=\"mcp/new\" element={<MCPServerDetailPage isNew />} />\n <Route path=\"mcp/:serverId\" element={<MCPServerDetailPage />} />\n\n {/* A2A Registry */}\n <Route path=\"a2a\" element={<A2ARegistryPage />} />\n <Route path=\"a2a/register\" element={<A2AAgentDetailPage isNew />} />\n <Route path=\"a2a/:agentId\" element={<A2AAgentDetailPage />} />\n\n {/* Channels */}\n <Route path=\"channels\" element={<ChannelsPage />} />\n <Route path=\"channels/new\" element={<ChannelDetailPage isNew />} />\n <Route path=\"channels/routes\" element={<ChannelRoutesPage />} />\n <Route path=\"channels/:connectorId\" element={<ChannelDetailPage />} />\n\n {/* Policies & Guardrails */}\n <Route path=\"policies\" element={<PoliciesPage />} />\n <Route path=\"policies/new\" element={<PolicyDetailPage isNew />} />\n <Route path=\"policies/:policyId\" element={<PolicyDetailPage />} />\n\n {/* Skills */}\n <Route path=\"skills\" element={<SkillsPage />} />\n <Route path=\"skills/new\" element={<SkillDetailPage isNew />} />\n <Route path=\"skills/:skillId\" element={<SkillDetailPage />} />\n\n {/* Prompt Templates */}\n <Route path=\"prompt-templates\" element={<PromptTemplatesPage />} />\n <Route path=\"prompt-templates/new\" element={<PromptTemplateDetailPage isNew />} />\n <Route path=\"prompt-templates/:templateId\" element={<PromptTemplateDetailPage />} />\n\n {/* Prompt Studio (legacy) */}\n <Route path=\"prompts\" element={<PromptStudioPage />} />\n\n {/* Executions */}\n <Route path=\"executions\" element={<ExecutionsPage />} />\n <Route path=\"executions/:executionId\" element={<ExecutionDetailPage />} />\n\n {/* Buckets */}\n <Route path=\"buckets\" element={<BucketsPage />} />\n <Route path=\"buckets/new\" element={<BucketsPage />} />\n <Route path=\"buckets/:bucketId\" element={<BucketsPage />} />\n\n {/* Store */}\n <Route path=\"store\" element={<StorePage />} />\n <Route path=\"store/installed\" element={<InstalledPackagesPage />} />\n <Route path=\"store/package/:slug\" element={<StorePackageDetailPage />} />\n\n {/* Chat */}\n <Route path=\"chat\" element={<ChatPage />} />\n <Route path=\"chat/:agentId\" element={<ChatPage />} />\n\n {/* Settings */}\n <Route path=\"settings\" element={<SettingsPage />} />\n\n {/* Workflow routes are owned by the shared app-shell WorkflowsRoot. */}\n <Route\n path=\"list\"\n element={<Navigate to={`${normalizedBasePath}/workflows/list`} replace />}\n />\n\n {/* Fallback */}\n <Route path=\"*\" element={<Navigate to=\"/\" replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BotlitRoutes.js","names":[],"sources":["../../src/botlit/BotlitRoutes.tsx"],"sourcesContent":["/**\n * BotManor Routes\n * @module botlit\n */\n\nimport { type FC, type ReactElement, lazy, Suspense } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router';\nimport { useBotlit } from './providers/BotlitProvider';\nimport { RouteLoader } from './components/RouteLoader';\nimport { BOTMANOR_PERMISSIONS, RequirePermission, type BotmanorPermission } from './permissions';\nimport { useTr } from '../shared/hooks/useTr';\n\n// Eager load - Dashboard (primary landing page)\nimport { DashboardPage } from './pages/DashboardPage';\n\n// Lazy loaded pages - Bots\nconst BotsListPage = lazy(() =>\n import('./pages/BotsListPage').then((m) => ({ default: m.BotsListPage }))\n);\nconst BotDetailPage = lazy(() =>\n import('./pages/BotDetailPage').then((m) => ({ default: m.BotDetailPage }))\n);\n\n// Lazy loaded pages - Agents\nconst AgentsListPage = lazy(() =>\n import('./pages/AgentsListPage').then((m) => ({ default: m.AgentsListPage }))\n);\nconst AgentApprovalsPage = lazy(() =>\n import('./pages/AgentApprovalsPage').then((m) => ({ default: m.AgentApprovalsPage }))\n);\nconst AgentDetailPage = lazy(() =>\n import('./pages/AgentDetailPage').then((m) => ({ default: m.AgentDetailPage }))\n);\nconst AgentBuilderPage = lazy(() =>\n import('./pages/AgentBuilderPage').then((m) => ({ default: m.AgentBuilderPage }))\n);\n\n// Lazy loaded pages - Knowledge Bases\nconst KnowledgeBasesPage = lazy(() =>\n import('./pages/KnowledgeBasesPage').then((m) => ({ default: m.KnowledgeBasesPage }))\n);\nconst KnowledgeBaseDetailPage = lazy(() =>\n import('./pages/KnowledgeBaseDetailPage').then((m) => ({ default: m.KnowledgeBaseDetailPage }))\n);\n\n// Lazy loaded pages - Retrieval Profiles\nconst RetrievalProfilesPage = lazy(() =>\n import('./pages/RetrievalProfilesPage').then((m) => ({ default: m.RetrievalProfilesPage }))\n);\nconst RetrievalProfileDetailPage = lazy(() =>\n import('./pages/RetrievalProfileDetailPage').then((m) => ({\n default: m.RetrievalProfileDetailPage,\n }))\n);\n\n// Lazy loaded pages - MCP Servers\nconst MCPServersPage = lazy(() =>\n import('./pages/MCPServersPage').then((m) => ({ default: m.MCPServersPage }))\n);\nconst MCPServerDetailPage = lazy(() =>\n import('./pages/MCPServerDetailPage').then((m) => ({ default: m.MCPServerDetailPage }))\n);\n\n// Lazy loaded pages - A2A Registry\nconst A2ARegistryPage = lazy(() =>\n import('./pages/A2ARegistryPage').then((m) => ({ default: m.A2ARegistryPage }))\n);\nconst A2AAgentDetailPage = lazy(() =>\n import('./pages/A2AAgentDetailPage').then((m) => ({ default: m.A2AAgentDetailPage }))\n);\n\n// Lazy loaded pages - Channels\nconst ChannelsPage = lazy(() =>\n import('./pages/ChannelsPage').then((m) => ({ default: m.ChannelsPage }))\n);\nconst ChannelDetailPage = lazy(() =>\n import('./pages/ChannelDetailPage').then((m) => ({ default: m.ChannelDetailPage }))\n);\nconst ChannelRoutesPage = lazy(() =>\n import('./pages/ChannelRoutesPage').then((m) => ({ default: m.ChannelRoutesPage }))\n);\n\n// Lazy loaded pages - Policies\nconst PoliciesPage = lazy(() =>\n import('./pages/PoliciesPage').then((m) => ({ default: m.PoliciesPage }))\n);\nconst PolicyDetailPage = lazy(() =>\n import('./pages/PolicyDetailPage').then((m) => ({ default: m.PolicyDetailPage }))\n);\n\n// Lazy loaded pages - Skills\nconst SkillsPage = lazy(() =>\n import('./pages/SkillsPage').then((m) => ({ default: m.SkillsPage }))\n);\nconst SkillDetailPage = lazy(() =>\n import('./pages/SkillDetailPage').then((m) => ({ default: m.SkillDetailPage }))\n);\n\n// Lazy loaded pages - Prompt Templates\nconst PromptTemplatesPage = lazy(() =>\n import('./pages/PromptTemplatesPage').then((m) => ({ default: m.PromptTemplatesPage }))\n);\nconst PromptTemplateDetailPage = lazy(() =>\n import('./pages/PromptTemplateDetailPage').then((m) => ({ default: m.PromptTemplateDetailPage }))\n);\nconst PromptStudioPage = lazy(() =>\n import('./pages/PromptStudioPage').then((m) => ({ default: m.PromptStudioPage }))\n);\n\n// Lazy loaded pages - Executions\nconst ExecutionsPage = lazy(() =>\n import('./pages/ExecutionsPage').then((m) => ({ default: m.ExecutionsPage }))\n);\nconst ExecutionDetailPage = lazy(() =>\n import('./pages/ExecutionDetailPage').then((m) => ({ default: m.ExecutionDetailPage }))\n);\n\n// Lazy loaded pages - Buckets\nconst BucketsPage = lazy(() =>\n import('./pages/BucketsPage').then((m) => ({ default: m.BucketsPage }))\n);\n\n// Lazy loaded pages - Store\nconst StorePage = lazy(() => import('./pages/StorePage').then((m) => ({ default: m.StorePage })));\nconst StorePackageDetailPage = lazy(() =>\n import('./pages/StorePackageDetailPage').then((m) => ({ default: m.StorePackageDetailPage }))\n);\nconst InstalledPackagesPage = lazy(() =>\n import('./pages/InstalledPackagesPage').then((m) => ({ default: m.InstalledPackagesPage }))\n);\n\n// Lazy loaded pages - Settings & Chat\nconst SettingsPage = lazy(() =>\n import('./pages/SettingsPage').then((m) => ({ default: m.SettingsPage }))\n);\nconst ChatPage = lazy(() => import('./pages/ChatPage').then((m) => ({ default: m.ChatPage })));\n\n// Loading fallback — the same skeleton `BotmanorRoot` paints while its\n// implementation chunk resolves, so the content region never switches loading\n// idioms (and never goes empty) between first paint and the page rendering.\n\nexport const BotlitRoutes: FC = () => {\n const { basePath, isStandalone } = useBotlit();\n const location = useLocation();\n const t = useTr();\n\n /**\n * Create, edit and chat routes are reachable by URL, so they are gated here\n * as well as at the buttons that link to them: a member without the\n * permission gets a clear \"no access\" state instead of a form the gateway\n * would refuse to save.\n */\n const gated = (\n permission: BotmanorPermission,\n title: string,\n backTo: string,\n backLabel: string,\n element: ReactElement\n ): ReactElement => (\n <RequirePermission permission={permission} title={title} backTo={backTo} backLabel={backLabel}>\n {element}\n </RequirePermission>\n );\n const back = t('permissions.required.back', 'Go back');\n\n // Normalize base path\n const normalizedBasePath = basePath === '/' ? '' : basePath.replace(/\\/$/, '');\n\n // Guard: Only render if path matches basePath (when integrated)\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex flex-col min-h-full bg-bg-surface\">\n <Suspense fallback={<RouteLoader />}>\n <Routes>\n {/* Dashboard - Eager loaded */}\n <Route index element={<DashboardPage />} />\n <Route path=\"home\" element={<Navigate to=\"/\" replace />} />\n\n {/* Bots */}\n <Route path=\"bots\" element={<BotsListPage />} />\n <Route\n path=\"bots/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.APP_CREATE,\n t('botlit.botsList.actions.createBot', 'Create Bot'),\n 'bots',\n back,\n <BotDetailPage isNew />\n )}\n />\n <Route path=\"bots/:botId\" element={<BotDetailPage />} />\n <Route\n path=\"bots/:botId/edit\"\n element={gated(\n BOTMANOR_PERMISSIONS.APP_UPDATE,\n t('botlit.botsList.menu.editBot', 'Edit Bot'),\n 'bots',\n back,\n <BotDetailPage isEditing />\n )}\n />\n <Route path=\"bots/:botId/agents\" element={<AgentsListPage />} />\n <Route\n path=\"bots/:botId/agents/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.AGENT_CREATE,\n t('botlit.agentsList.actions.createAgent', 'Create Agent'),\n 'agents',\n back,\n <AgentBuilderPage />\n )}\n />\n <Route path=\"bots/:botId/agents/:agentId\" element={<AgentDetailPage />} />\n <Route\n path=\"bots/:botId/agents/:agentId/edit\"\n element={gated(\n BOTMANOR_PERMISSIONS.AGENT_UPDATE,\n t('botlit.agentsList.menu.editAgent', 'Edit Agent'),\n 'agents',\n back,\n <AgentBuilderPage />\n )}\n />\n <Route path=\"bots/:botId/knowledge\" element={<KnowledgeBasesPage />} />\n <Route path=\"bots/:botId/knowledge/:kbId\" element={<KnowledgeBaseDetailPage />} />\n\n {/* Agents (global view) */}\n <Route path=\"agents\" element={<AgentsListPage />} />\n <Route\n path=\"agents/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.AGENT_CREATE,\n t('botlit.agentsList.actions.createAgent', 'Create Agent'),\n 'agents',\n back,\n <AgentBuilderPage />\n )}\n />\n <Route path=\"agents/approvals\" element={<AgentApprovalsPage />} />\n <Route path=\"agents/:agentId\" element={<AgentDetailPage />} />\n <Route\n path=\"agents/:agentId/edit\"\n element={gated(\n BOTMANOR_PERMISSIONS.AGENT_UPDATE,\n t('botlit.agentsList.menu.editAgent', 'Edit Agent'),\n 'agents',\n back,\n <AgentBuilderPage />\n )}\n />\n <Route\n path=\"agents/:agentId/chat\"\n element={gated(\n BOTMANOR_PERMISSIONS.AGENT_EXECUTE,\n t('botlit.chat.title', 'AI Chat'),\n 'agents',\n back,\n <ChatPage />\n )}\n />\n\n {/* Conversations - Redirect to conversations microfe */}\n <Route path=\"conversations\" element={<Navigate to=\"/conversations\" replace />} />\n <Route\n path=\"conversations/:conversationId\"\n element={<Navigate to=\"/conversations\" replace />}\n />\n\n {/* Knowledge Bases */}\n <Route path=\"knowledge\" element={<KnowledgeBasesPage />} />\n <Route\n path=\"knowledge/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.KNOWLEDGE_CREATE,\n t('botlit.knowledge.actions.create', 'Create Knowledge Base'),\n 'knowledge',\n back,\n <KnowledgeBaseDetailPage isNew />\n )}\n />\n <Route path=\"knowledge/:kbId\" element={<KnowledgeBaseDetailPage />} />\n\n {/* Retrieval Profiles */}\n <Route path=\"retrieval-profiles\" element={<RetrievalProfilesPage />} />\n <Route\n path=\"retrieval-profiles/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.RETRIEVAL_PROFILE_CREATE,\n t('botlit.retrievalProfiles.actions.create', 'Create Retrieval Profile'),\n 'retrieval-profiles',\n back,\n <RetrievalProfileDetailPage isNew />\n )}\n />\n <Route path=\"retrieval-profiles/:profileId\" element={<RetrievalProfileDetailPage />} />\n\n {/* MCP Servers */}\n <Route path=\"mcp\" element={<MCPServersPage />} />\n <Route\n path=\"mcp/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.MCP_CREATE,\n t('botlit.mcpServers.actions.add', 'Add MCP Server'),\n 'mcp',\n back,\n <MCPServerDetailPage isNew />\n )}\n />\n <Route path=\"mcp/:serverId\" element={<MCPServerDetailPage />} />\n\n {/* A2A Registry */}\n <Route path=\"a2a\" element={<A2ARegistryPage />} />\n <Route\n path=\"a2a/register\"\n element={gated(\n BOTMANOR_PERMISSIONS.A2A_REGISTRY_CREATE,\n t('botlit.a2aRegistry.actions.registerAgent', 'Register Agent'),\n 'a2a',\n back,\n <A2AAgentDetailPage isNew />\n )}\n />\n <Route path=\"a2a/:agentId\" element={<A2AAgentDetailPage />} />\n\n {/* Channels */}\n <Route path=\"channels\" element={<ChannelsPage />} />\n <Route\n path=\"channels/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.CHANNEL_CREATE,\n t('botlit.channels.actions.addChannel', 'Add Channel'),\n 'channels',\n back,\n <ChannelDetailPage isNew />\n )}\n />\n <Route path=\"channels/routes\" element={<ChannelRoutesPage />} />\n <Route path=\"channels/:connectorId\" element={<ChannelDetailPage />} />\n\n {/* Policies & Guardrails */}\n <Route path=\"policies\" element={<PoliciesPage />} />\n <Route\n path=\"policies/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.POLICY_CREATE,\n t('botlit.policies.actions.createPolicy', 'Create Policy'),\n 'policies',\n back,\n <PolicyDetailPage isNew />\n )}\n />\n <Route path=\"policies/:policyId\" element={<PolicyDetailPage />} />\n\n {/* Skills */}\n <Route path=\"skills\" element={<SkillsPage />} />\n <Route\n path=\"skills/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.SKILL_CREATE,\n t('botlit.skills.actions.create', 'Create Skill'),\n 'skills',\n back,\n <SkillDetailPage isNew />\n )}\n />\n <Route path=\"skills/:skillId\" element={<SkillDetailPage />} />\n\n {/* Prompt Templates */}\n <Route path=\"prompt-templates\" element={<PromptTemplatesPage />} />\n <Route\n path=\"prompt-templates/new\"\n element={gated(\n BOTMANOR_PERMISSIONS.PROMPT_TEMPLATE_CREATE,\n t('botlit.promptTemplates.actions.create', 'Create Template'),\n 'prompt-templates',\n back,\n <PromptTemplateDetailPage isNew />\n )}\n />\n <Route path=\"prompt-templates/:templateId\" element={<PromptTemplateDetailPage />} />\n\n {/* Prompt Studio (legacy) */}\n <Route path=\"prompts\" element={<PromptStudioPage />} />\n\n {/* Executions */}\n <Route path=\"executions\" element={<ExecutionsPage />} />\n <Route path=\"executions/:executionId\" element={<ExecutionDetailPage />} />\n\n {/* Buckets */}\n <Route path=\"buckets\" element={<BucketsPage />} />\n <Route path=\"buckets/new\" element={<BucketsPage />} />\n <Route path=\"buckets/:bucketId\" element={<BucketsPage />} />\n\n {/* Store */}\n <Route path=\"store\" element={<StorePage />} />\n <Route path=\"store/installed\" element={<InstalledPackagesPage />} />\n <Route path=\"store/package/:slug\" element={<StorePackageDetailPage />} />\n\n {/* Chat */}\n <Route\n path=\"chat\"\n element={gated(\n BOTMANOR_PERMISSIONS.AGENT_EXECUTE,\n t('botlit.chat.title', 'AI Chat'),\n 'agents',\n back,\n <ChatPage />\n )}\n />\n <Route\n path=\"chat/:agentId\"\n element={gated(\n BOTMANOR_PERMISSIONS.AGENT_EXECUTE,\n t('botlit.chat.title', 'AI Chat'),\n 'agents',\n back,\n <ChatPage />\n )}\n />\n\n {/* Settings */}\n <Route path=\"settings\" element={<SettingsPage />} />\n\n {/* Workflow routes are owned by the shared app-shell WorkflowsRoot. */}\n <Route\n path=\"list\"\n element={<Navigate to={`${normalizedBasePath}/workflows/list`} replace />}\n />\n\n {/* Fallback */}\n <Route path=\"*\" element={<Navigate to=\"/\" replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
|