@burdenoff/microfe-botmanor 2026.813.1
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/README.md +12 -0
- package/dist/botlit/BotlitRoutes.js +357 -0
- package/dist/botlit/BotlitRoutes.js.map +1 -0
- package/dist/botlit/BotmanorRoot.js +12 -0
- package/dist/botlit/BotmanorRoot.js.map +1 -0
- package/dist/botlit/BotmanorRootInner.js +101 -0
- package/dist/botlit/BotmanorRootInner.js.map +1 -0
- package/dist/botlit/components/Badge.js +39 -0
- package/dist/botlit/components/Badge.js.map +1 -0
- package/dist/botlit/components/Button.js +46 -0
- package/dist/botlit/components/Button.js.map +1 -0
- package/dist/botlit/components/Card.js +31 -0
- package/dist/botlit/components/Card.js.map +1 -0
- package/dist/botlit/components/ChannelSelectorSheet.js +130 -0
- package/dist/botlit/components/ChannelSelectorSheet.js.map +1 -0
- package/dist/botlit/components/EmptyState.js +35 -0
- package/dist/botlit/components/EmptyState.js.map +1 -0
- package/dist/botlit/components/ErrorState.js +33 -0
- package/dist/botlit/components/ErrorState.js.map +1 -0
- package/dist/botlit/components/Input.js +59 -0
- package/dist/botlit/components/Input.js.map +1 -0
- package/dist/botlit/components/PageLayout.js +34 -0
- package/dist/botlit/components/PageLayout.js.map +1 -0
- package/dist/botlit/components/QuotaExhaustedDialog.js +20 -0
- package/dist/botlit/components/QuotaExhaustedDialog.js.map +1 -0
- package/dist/botlit/components/RouteLoader.js +52 -0
- package/dist/botlit/components/RouteLoader.js.map +1 -0
- package/dist/botlit/components/VersionHistoryPanel.js +144 -0
- package/dist/botlit/components/VersionHistoryPanel.js.map +1 -0
- package/dist/botlit/components/WorkspaceRequired.js +70 -0
- package/dist/botlit/components/WorkspaceRequired.js.map +1 -0
- package/dist/botlit/hooks/index.js +16 -0
- package/dist/botlit/hooks/internal/mutationInput.js +16 -0
- package/dist/botlit/hooks/internal/mutationInput.js.map +1 -0
- package/dist/botlit/hooks/internal/workspaceGateway.js +99 -0
- package/dist/botlit/hooks/internal/workspaceGateway.js.map +1 -0
- package/dist/botlit/hooks/useA2A.js +184 -0
- package/dist/botlit/hooks/useA2A.js.map +1 -0
- package/dist/botlit/hooks/useAgents.js +469 -0
- package/dist/botlit/hooks/useAgents.js.map +1 -0
- package/dist/botlit/hooks/useBots.js +306 -0
- package/dist/botlit/hooks/useBots.js.map +1 -0
- package/dist/botlit/hooks/useBuckets.js +119 -0
- package/dist/botlit/hooks/useBuckets.js.map +1 -0
- package/dist/botlit/hooks/useChannels.js +213 -0
- package/dist/botlit/hooks/useChannels.js.map +1 -0
- package/dist/botlit/hooks/useConversations.js +64 -0
- package/dist/botlit/hooks/useConversations.js.map +1 -0
- package/dist/botlit/hooks/useExecutions.js +86 -0
- package/dist/botlit/hooks/useExecutions.js.map +1 -0
- package/dist/botlit/hooks/useKnowledgeBases.js +113 -0
- package/dist/botlit/hooks/useKnowledgeBases.js.map +1 -0
- package/dist/botlit/hooks/useLLMProviders.js +83 -0
- package/dist/botlit/hooks/useLLMProviders.js.map +1 -0
- package/dist/botlit/hooks/useMCPServers.js +134 -0
- package/dist/botlit/hooks/useMCPServers.js.map +1 -0
- package/dist/botlit/hooks/usePolicies.js +120 -0
- package/dist/botlit/hooks/usePolicies.js.map +1 -0
- package/dist/botlit/hooks/usePromptTemplates.js +161 -0
- package/dist/botlit/hooks/usePromptTemplates.js.map +1 -0
- package/dist/botlit/hooks/useRetrievalProfiles.js +146 -0
- package/dist/botlit/hooks/useRetrievalProfiles.js.map +1 -0
- package/dist/botlit/hooks/useSkills.js +132 -0
- package/dist/botlit/hooks/useSkills.js.map +1 -0
- package/dist/botlit/hooks/useStore.js +167 -0
- package/dist/botlit/hooks/useStore.js.map +1 -0
- package/dist/botlit/hooks/useUserPlatformConnection.js +172 -0
- package/dist/botlit/hooks/useUserPlatformConnection.js.map +1 -0
- package/dist/botlit/index.js +11 -0
- package/dist/botlit/pages/A2AAgentDetailPage.js +589 -0
- package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -0
- package/dist/botlit/pages/A2ARegistryPage.js +240 -0
- package/dist/botlit/pages/A2ARegistryPage.js.map +1 -0
- package/dist/botlit/pages/AgentBuilderPage.js +486 -0
- package/dist/botlit/pages/AgentBuilderPage.js.map +1 -0
- package/dist/botlit/pages/AgentDetailPage.js +517 -0
- package/dist/botlit/pages/AgentDetailPage.js.map +1 -0
- package/dist/botlit/pages/AgentsListPage.js +294 -0
- package/dist/botlit/pages/AgentsListPage.js.map +1 -0
- package/dist/botlit/pages/BotChannelsTab.js +530 -0
- package/dist/botlit/pages/BotChannelsTab.js.map +1 -0
- package/dist/botlit/pages/BotDetailPage.js +872 -0
- package/dist/botlit/pages/BotDetailPage.js.map +1 -0
- package/dist/botlit/pages/BotWorkflowTab.js +229 -0
- package/dist/botlit/pages/BotWorkflowTab.js.map +1 -0
- package/dist/botlit/pages/BotsListPage.js +313 -0
- package/dist/botlit/pages/BotsListPage.js.map +1 -0
- package/dist/botlit/pages/BucketsPage.js +604 -0
- package/dist/botlit/pages/BucketsPage.js.map +1 -0
- package/dist/botlit/pages/ChannelDetailPage.js +955 -0
- package/dist/botlit/pages/ChannelDetailPage.js.map +1 -0
- package/dist/botlit/pages/ChannelRoutesPage.js +218 -0
- package/dist/botlit/pages/ChannelRoutesPage.js.map +1 -0
- package/dist/botlit/pages/ChannelsPage.js +304 -0
- package/dist/botlit/pages/ChannelsPage.js.map +1 -0
- package/dist/botlit/pages/ChatPage.js +247 -0
- package/dist/botlit/pages/ChatPage.js.map +1 -0
- package/dist/botlit/pages/DashboardPage.js +318 -0
- package/dist/botlit/pages/DashboardPage.js.map +1 -0
- package/dist/botlit/pages/ExecutionDetailPage.js +313 -0
- package/dist/botlit/pages/ExecutionDetailPage.js.map +1 -0
- package/dist/botlit/pages/ExecutionsPage.js +294 -0
- package/dist/botlit/pages/ExecutionsPage.js.map +1 -0
- package/dist/botlit/pages/InstalledPackagesPage.js +619 -0
- package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -0
- package/dist/botlit/pages/KnowledgeBaseDetailPage.js +473 -0
- package/dist/botlit/pages/KnowledgeBaseDetailPage.js.map +1 -0
- package/dist/botlit/pages/KnowledgeBasesPage.js +150 -0
- package/dist/botlit/pages/KnowledgeBasesPage.js.map +1 -0
- package/dist/botlit/pages/MCPServerDetailPage.js +550 -0
- package/dist/botlit/pages/MCPServerDetailPage.js.map +1 -0
- package/dist/botlit/pages/MCPServersPage.js +321 -0
- package/dist/botlit/pages/MCPServersPage.js.map +1 -0
- package/dist/botlit/pages/PoliciesPage.js +224 -0
- package/dist/botlit/pages/PoliciesPage.js.map +1 -0
- package/dist/botlit/pages/PolicyDetailPage.js +861 -0
- package/dist/botlit/pages/PolicyDetailPage.js.map +1 -0
- package/dist/botlit/pages/PromptStudioPage.js +236 -0
- package/dist/botlit/pages/PromptStudioPage.js.map +1 -0
- package/dist/botlit/pages/PromptTemplateDetailPage.js +812 -0
- package/dist/botlit/pages/PromptTemplateDetailPage.js.map +1 -0
- package/dist/botlit/pages/PromptTemplatesPage.js +269 -0
- package/dist/botlit/pages/PromptTemplatesPage.js.map +1 -0
- package/dist/botlit/pages/RetrievalProfileDetailPage.js +559 -0
- package/dist/botlit/pages/RetrievalProfileDetailPage.js.map +1 -0
- package/dist/botlit/pages/RetrievalProfilesPage.js +219 -0
- package/dist/botlit/pages/RetrievalProfilesPage.js.map +1 -0
- package/dist/botlit/pages/SettingsPage.js +655 -0
- package/dist/botlit/pages/SettingsPage.js.map +1 -0
- package/dist/botlit/pages/SkillDetailPage.js +778 -0
- package/dist/botlit/pages/SkillDetailPage.js.map +1 -0
- package/dist/botlit/pages/SkillsPage.js +206 -0
- package/dist/botlit/pages/SkillsPage.js.map +1 -0
- package/dist/botlit/pages/StorePackageDetailPage.js +462 -0
- package/dist/botlit/pages/StorePackageDetailPage.js.map +1 -0
- package/dist/botlit/pages/StorePage.js +315 -0
- package/dist/botlit/pages/StorePage.js.map +1 -0
- package/dist/botlit/providers/BotlitProvider.js +93 -0
- package/dist/botlit/providers/BotlitProvider.js.map +1 -0
- package/dist/botlit/store/botlitStore.js +101 -0
- package/dist/botlit/store/botlitStore.js.map +1 -0
- package/dist/botlit/utils/cn.js +10 -0
- package/dist/botlit/utils/cn.js.map +1 -0
- package/dist/botlit/utils/formatters.js +37 -0
- package/dist/botlit/utils/formatters.js.map +1 -0
- package/dist/botlit/utils/navigation.js +9 -0
- package/dist/botlit/utils/navigation.js.map +1 -0
- package/dist/botlit/utils/unions.js +14 -0
- package/dist/botlit/utils/unions.js.map +1 -0
- package/dist/generated/global-operations.js +66 -0
- package/dist/generated/global-operations.js.map +1 -0
- package/dist/generated/global-types.js +8 -0
- package/dist/generated/global-types.js.map +1 -0
- package/dist/generated/wspace-operations.js +1591 -0
- package/dist/generated/wspace-operations.js.map +1 -0
- package/dist/generated/wspace-types.js +12 -0
- package/dist/generated/wspace-types.js.map +1 -0
- package/dist/index.js +13 -0
- package/dist/utils/nativeBridge.js +2 -0
- package/package.json +133 -0
package/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# microfe-botlit
|
|
2
|
+
|
|
3
|
+
Part of the [Burdenoff](https://burdenoff.com) platform by
|
|
4
|
+
[AlgoShred](https://github.com/algoshred).
|
|
5
|
+
|
|
6
|
+
## Getting Started
|
|
7
|
+
|
|
8
|
+
See `AGENTS.md` for development commands and architecture details.
|
|
9
|
+
|
|
10
|
+
## License
|
|
11
|
+
|
|
12
|
+
Proprietary — Copyright Burdenoff Consultancy Services Pvt. Ltd.
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import { RouteLoader as e } from "./components/RouteLoader.js";
|
|
2
|
+
import { useBotlit as t } from "./providers/BotlitProvider.js";
|
|
3
|
+
import { DashboardPage as n } from "./pages/DashboardPage.js";
|
|
4
|
+
import { Suspense as r, lazy as i } from "react";
|
|
5
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
|
+
import { Navigate as s, Route as c, Routes as l, useLocation as u, useParams as d } from "react-router";
|
|
7
|
+
import { ExecutionDetailPage as f, ExecutionsListPage as p, HistoryPage as ee, NodesPage as m, SettingsPage as h, TemplatePreview as g, TemplatesPage as _, WorkflowBuilderPage as v, WorkflowsList as y } from "@burdenoff/fluidgrids-fe-sdk";
|
|
8
|
+
//#region src/botlit/BotlitRoutes.tsx
|
|
9
|
+
var b = i(() => import("./pages/BotsListPage.js").then((e) => ({ default: e.BotsListPage }))), x = i(() => import("./pages/BotDetailPage.js").then((e) => ({ default: e.BotDetailPage }))), S = i(() => import("./pages/AgentsListPage.js").then((e) => ({ default: e.AgentsListPage }))), C = i(() => import("./pages/AgentDetailPage.js").then((e) => ({ default: e.AgentDetailPage }))), w = i(() => import("./pages/AgentBuilderPage.js").then((e) => ({ default: e.AgentBuilderPage }))), T = i(() => import("./pages/KnowledgeBasesPage.js").then((e) => ({ default: e.KnowledgeBasesPage }))), E = i(() => import("./pages/KnowledgeBaseDetailPage.js").then((e) => ({ default: e.KnowledgeBaseDetailPage }))), D = i(() => import("./pages/RetrievalProfilesPage.js").then((e) => ({ default: e.RetrievalProfilesPage }))), O = i(() => import("./pages/RetrievalProfileDetailPage.js").then((e) => ({ default: e.RetrievalProfileDetailPage }))), k = i(() => import("./pages/MCPServersPage.js").then((e) => ({ default: e.MCPServersPage }))), A = i(() => import("./pages/MCPServerDetailPage.js").then((e) => ({ default: e.MCPServerDetailPage }))), j = i(() => import("./pages/A2ARegistryPage.js").then((e) => ({ default: e.A2ARegistryPage }))), M = i(() => import("./pages/A2AAgentDetailPage.js").then((e) => ({ default: e.A2AAgentDetailPage }))), N = i(() => import("./pages/ChannelsPage.js").then((e) => ({ default: e.ChannelsPage }))), P = i(() => import("./pages/ChannelDetailPage.js").then((e) => ({ default: e.ChannelDetailPage }))), F = i(() => import("./pages/ChannelRoutesPage.js").then((e) => ({ default: e.ChannelRoutesPage }))), I = i(() => import("./pages/PoliciesPage.js").then((e) => ({ default: e.PoliciesPage }))), L = i(() => import("./pages/PolicyDetailPage.js").then((e) => ({ default: e.PolicyDetailPage }))), R = i(() => import("./pages/SkillsPage.js").then((e) => ({ default: e.SkillsPage }))), z = i(() => import("./pages/SkillDetailPage.js").then((e) => ({ default: e.SkillDetailPage }))), B = i(() => import("./pages/PromptTemplatesPage.js").then((e) => ({ default: e.PromptTemplatesPage }))), V = i(() => import("./pages/PromptTemplateDetailPage.js").then((e) => ({ default: e.PromptTemplateDetailPage }))), H = i(() => import("./pages/PromptStudioPage.js").then((e) => ({ default: e.PromptStudioPage }))), U = i(() => import("./pages/ExecutionsPage.js").then((e) => ({ default: e.ExecutionsPage }))), W = i(() => import("./pages/ExecutionDetailPage.js").then((e) => ({ default: e.ExecutionDetailPage }))), G = i(() => import("./pages/BucketsPage.js").then((e) => ({ default: e.BucketsPage }))), K = i(() => import("./pages/StorePage.js").then((e) => ({ default: e.StorePage }))), q = i(() => import("./pages/StorePackageDetailPage.js").then((e) => ({ default: e.StorePackageDetailPage }))), J = i(() => import("./pages/InstalledPackagesPage.js").then((e) => ({ default: e.InstalledPackagesPage }))), Y = i(() => import("./pages/SettingsPage.js").then((e) => ({ default: e.SettingsPage }))), X = i(() => import("./pages/ChatPage.js").then((e) => ({ default: e.ChatPage }))), Z = ({ basePath: e }) => {
|
|
10
|
+
let { runId: t } = d();
|
|
11
|
+
return /* @__PURE__ */ a(s, {
|
|
12
|
+
to: `${e}/workflows/runs/${t ?? ""}`,
|
|
13
|
+
replace: !0
|
|
14
|
+
});
|
|
15
|
+
}, Q = () => {
|
|
16
|
+
let { basePath: i, isStandalone: d } = t(), Q = u(), $ = i === "/" ? "" : i.replace(/\/$/, "");
|
|
17
|
+
return $ && !d && !(Q.pathname === $ || Q.pathname.startsWith($ + "/")) ? null : /* @__PURE__ */ a("div", {
|
|
18
|
+
className: "flex flex-col min-h-full bg-bg-surface",
|
|
19
|
+
children: /* @__PURE__ */ a(r, {
|
|
20
|
+
fallback: /* @__PURE__ */ a(e, {}),
|
|
21
|
+
children: /* @__PURE__ */ o(l, { children: [
|
|
22
|
+
/* @__PURE__ */ a(c, {
|
|
23
|
+
index: !0,
|
|
24
|
+
element: /* @__PURE__ */ a(n, {})
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ a(c, {
|
|
27
|
+
path: "home",
|
|
28
|
+
element: /* @__PURE__ */ a(s, {
|
|
29
|
+
to: "/",
|
|
30
|
+
replace: !0
|
|
31
|
+
})
|
|
32
|
+
}),
|
|
33
|
+
/* @__PURE__ */ a(c, {
|
|
34
|
+
path: "bots",
|
|
35
|
+
element: /* @__PURE__ */ a(b, {})
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ a(c, {
|
|
38
|
+
path: "bots/new",
|
|
39
|
+
element: /* @__PURE__ */ a(x, { isNew: !0 })
|
|
40
|
+
}),
|
|
41
|
+
/* @__PURE__ */ a(c, {
|
|
42
|
+
path: "bots/:botId",
|
|
43
|
+
element: /* @__PURE__ */ a(x, {})
|
|
44
|
+
}),
|
|
45
|
+
/* @__PURE__ */ a(c, {
|
|
46
|
+
path: "bots/:botId/edit",
|
|
47
|
+
element: /* @__PURE__ */ a(x, { isEditing: !0 })
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ a(c, {
|
|
50
|
+
path: "bots/:botId/agents",
|
|
51
|
+
element: /* @__PURE__ */ a(S, {})
|
|
52
|
+
}),
|
|
53
|
+
/* @__PURE__ */ a(c, {
|
|
54
|
+
path: "bots/:botId/agents/new",
|
|
55
|
+
element: /* @__PURE__ */ a(w, {})
|
|
56
|
+
}),
|
|
57
|
+
/* @__PURE__ */ a(c, {
|
|
58
|
+
path: "bots/:botId/agents/:agentId",
|
|
59
|
+
element: /* @__PURE__ */ a(C, {})
|
|
60
|
+
}),
|
|
61
|
+
/* @__PURE__ */ a(c, {
|
|
62
|
+
path: "bots/:botId/agents/:agentId/edit",
|
|
63
|
+
element: /* @__PURE__ */ a(w, {})
|
|
64
|
+
}),
|
|
65
|
+
/* @__PURE__ */ a(c, {
|
|
66
|
+
path: "bots/:botId/knowledge",
|
|
67
|
+
element: /* @__PURE__ */ a(T, {})
|
|
68
|
+
}),
|
|
69
|
+
/* @__PURE__ */ a(c, {
|
|
70
|
+
path: "bots/:botId/knowledge/:kbId",
|
|
71
|
+
element: /* @__PURE__ */ a(E, {})
|
|
72
|
+
}),
|
|
73
|
+
/* @__PURE__ */ a(c, {
|
|
74
|
+
path: "agents",
|
|
75
|
+
element: /* @__PURE__ */ a(S, {})
|
|
76
|
+
}),
|
|
77
|
+
/* @__PURE__ */ a(c, {
|
|
78
|
+
path: "agents/new",
|
|
79
|
+
element: /* @__PURE__ */ a(w, {})
|
|
80
|
+
}),
|
|
81
|
+
/* @__PURE__ */ a(c, {
|
|
82
|
+
path: "agents/:agentId",
|
|
83
|
+
element: /* @__PURE__ */ a(C, {})
|
|
84
|
+
}),
|
|
85
|
+
/* @__PURE__ */ a(c, {
|
|
86
|
+
path: "agents/:agentId/edit",
|
|
87
|
+
element: /* @__PURE__ */ a(w, {})
|
|
88
|
+
}),
|
|
89
|
+
/* @__PURE__ */ a(c, {
|
|
90
|
+
path: "agents/:agentId/chat",
|
|
91
|
+
element: /* @__PURE__ */ a(X, {})
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ a(c, {
|
|
94
|
+
path: "conversations",
|
|
95
|
+
element: /* @__PURE__ */ a(s, {
|
|
96
|
+
to: "/conversations",
|
|
97
|
+
replace: !0
|
|
98
|
+
})
|
|
99
|
+
}),
|
|
100
|
+
/* @__PURE__ */ a(c, {
|
|
101
|
+
path: "conversations/:conversationId",
|
|
102
|
+
element: /* @__PURE__ */ a(s, {
|
|
103
|
+
to: "/conversations",
|
|
104
|
+
replace: !0
|
|
105
|
+
})
|
|
106
|
+
}),
|
|
107
|
+
/* @__PURE__ */ a(c, {
|
|
108
|
+
path: "knowledge",
|
|
109
|
+
element: /* @__PURE__ */ a(T, {})
|
|
110
|
+
}),
|
|
111
|
+
/* @__PURE__ */ a(c, {
|
|
112
|
+
path: "knowledge/new",
|
|
113
|
+
element: /* @__PURE__ */ a(E, { isNew: !0 })
|
|
114
|
+
}),
|
|
115
|
+
/* @__PURE__ */ a(c, {
|
|
116
|
+
path: "knowledge/:kbId",
|
|
117
|
+
element: /* @__PURE__ */ a(E, {})
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ a(c, {
|
|
120
|
+
path: "retrieval-profiles",
|
|
121
|
+
element: /* @__PURE__ */ a(D, {})
|
|
122
|
+
}),
|
|
123
|
+
/* @__PURE__ */ a(c, {
|
|
124
|
+
path: "retrieval-profiles/new",
|
|
125
|
+
element: /* @__PURE__ */ a(O, { isNew: !0 })
|
|
126
|
+
}),
|
|
127
|
+
/* @__PURE__ */ a(c, {
|
|
128
|
+
path: "retrieval-profiles/:profileId",
|
|
129
|
+
element: /* @__PURE__ */ a(O, {})
|
|
130
|
+
}),
|
|
131
|
+
/* @__PURE__ */ a(c, {
|
|
132
|
+
path: "mcp",
|
|
133
|
+
element: /* @__PURE__ */ a(k, {})
|
|
134
|
+
}),
|
|
135
|
+
/* @__PURE__ */ a(c, {
|
|
136
|
+
path: "mcp/new",
|
|
137
|
+
element: /* @__PURE__ */ a(A, { isNew: !0 })
|
|
138
|
+
}),
|
|
139
|
+
/* @__PURE__ */ a(c, {
|
|
140
|
+
path: "mcp/:serverId",
|
|
141
|
+
element: /* @__PURE__ */ a(A, {})
|
|
142
|
+
}),
|
|
143
|
+
/* @__PURE__ */ a(c, {
|
|
144
|
+
path: "a2a",
|
|
145
|
+
element: /* @__PURE__ */ a(j, {})
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ a(c, {
|
|
148
|
+
path: "a2a/register",
|
|
149
|
+
element: /* @__PURE__ */ a(M, { isNew: !0 })
|
|
150
|
+
}),
|
|
151
|
+
/* @__PURE__ */ a(c, {
|
|
152
|
+
path: "a2a/:agentId",
|
|
153
|
+
element: /* @__PURE__ */ a(M, {})
|
|
154
|
+
}),
|
|
155
|
+
/* @__PURE__ */ a(c, {
|
|
156
|
+
path: "channels",
|
|
157
|
+
element: /* @__PURE__ */ a(N, {})
|
|
158
|
+
}),
|
|
159
|
+
/* @__PURE__ */ a(c, {
|
|
160
|
+
path: "channels/new",
|
|
161
|
+
element: /* @__PURE__ */ a(P, { isNew: !0 })
|
|
162
|
+
}),
|
|
163
|
+
/* @__PURE__ */ a(c, {
|
|
164
|
+
path: "channels/routes",
|
|
165
|
+
element: /* @__PURE__ */ a(F, {})
|
|
166
|
+
}),
|
|
167
|
+
/* @__PURE__ */ a(c, {
|
|
168
|
+
path: "channels/:connectorId",
|
|
169
|
+
element: /* @__PURE__ */ a(P, {})
|
|
170
|
+
}),
|
|
171
|
+
/* @__PURE__ */ a(c, {
|
|
172
|
+
path: "policies",
|
|
173
|
+
element: /* @__PURE__ */ a(I, {})
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ a(c, {
|
|
176
|
+
path: "policies/new",
|
|
177
|
+
element: /* @__PURE__ */ a(L, { isNew: !0 })
|
|
178
|
+
}),
|
|
179
|
+
/* @__PURE__ */ a(c, {
|
|
180
|
+
path: "policies/:policyId",
|
|
181
|
+
element: /* @__PURE__ */ a(L, {})
|
|
182
|
+
}),
|
|
183
|
+
/* @__PURE__ */ a(c, {
|
|
184
|
+
path: "skills",
|
|
185
|
+
element: /* @__PURE__ */ a(R, {})
|
|
186
|
+
}),
|
|
187
|
+
/* @__PURE__ */ a(c, {
|
|
188
|
+
path: "skills/new",
|
|
189
|
+
element: /* @__PURE__ */ a(z, { isNew: !0 })
|
|
190
|
+
}),
|
|
191
|
+
/* @__PURE__ */ a(c, {
|
|
192
|
+
path: "skills/:skillId",
|
|
193
|
+
element: /* @__PURE__ */ a(z, {})
|
|
194
|
+
}),
|
|
195
|
+
/* @__PURE__ */ a(c, {
|
|
196
|
+
path: "prompt-templates",
|
|
197
|
+
element: /* @__PURE__ */ a(B, {})
|
|
198
|
+
}),
|
|
199
|
+
/* @__PURE__ */ a(c, {
|
|
200
|
+
path: "prompt-templates/new",
|
|
201
|
+
element: /* @__PURE__ */ a(V, { isNew: !0 })
|
|
202
|
+
}),
|
|
203
|
+
/* @__PURE__ */ a(c, {
|
|
204
|
+
path: "prompt-templates/:templateId",
|
|
205
|
+
element: /* @__PURE__ */ a(V, {})
|
|
206
|
+
}),
|
|
207
|
+
/* @__PURE__ */ a(c, {
|
|
208
|
+
path: "prompts",
|
|
209
|
+
element: /* @__PURE__ */ a(H, {})
|
|
210
|
+
}),
|
|
211
|
+
/* @__PURE__ */ a(c, {
|
|
212
|
+
path: "executions",
|
|
213
|
+
element: /* @__PURE__ */ a(U, {})
|
|
214
|
+
}),
|
|
215
|
+
/* @__PURE__ */ a(c, {
|
|
216
|
+
path: "executions/:executionId",
|
|
217
|
+
element: /* @__PURE__ */ a(W, {})
|
|
218
|
+
}),
|
|
219
|
+
/* @__PURE__ */ a(c, {
|
|
220
|
+
path: "buckets",
|
|
221
|
+
element: /* @__PURE__ */ a(G, {})
|
|
222
|
+
}),
|
|
223
|
+
/* @__PURE__ */ a(c, {
|
|
224
|
+
path: "buckets/new",
|
|
225
|
+
element: /* @__PURE__ */ a(G, {})
|
|
226
|
+
}),
|
|
227
|
+
/* @__PURE__ */ a(c, {
|
|
228
|
+
path: "buckets/:bucketId",
|
|
229
|
+
element: /* @__PURE__ */ a(G, {})
|
|
230
|
+
}),
|
|
231
|
+
/* @__PURE__ */ a(c, {
|
|
232
|
+
path: "store",
|
|
233
|
+
element: /* @__PURE__ */ a(K, {})
|
|
234
|
+
}),
|
|
235
|
+
/* @__PURE__ */ a(c, {
|
|
236
|
+
path: "store/installed",
|
|
237
|
+
element: /* @__PURE__ */ a(J, {})
|
|
238
|
+
}),
|
|
239
|
+
/* @__PURE__ */ a(c, {
|
|
240
|
+
path: "store/package/:slug",
|
|
241
|
+
element: /* @__PURE__ */ a(q, {})
|
|
242
|
+
}),
|
|
243
|
+
/* @__PURE__ */ a(c, {
|
|
244
|
+
path: "chat",
|
|
245
|
+
element: /* @__PURE__ */ a(X, {})
|
|
246
|
+
}),
|
|
247
|
+
/* @__PURE__ */ a(c, {
|
|
248
|
+
path: "chat/:agentId",
|
|
249
|
+
element: /* @__PURE__ */ a(X, {})
|
|
250
|
+
}),
|
|
251
|
+
/* @__PURE__ */ a(c, {
|
|
252
|
+
path: "settings",
|
|
253
|
+
element: /* @__PURE__ */ a(Y, {})
|
|
254
|
+
}),
|
|
255
|
+
/* @__PURE__ */ a(c, {
|
|
256
|
+
path: "workflows",
|
|
257
|
+
element: /* @__PURE__ */ a(y, {})
|
|
258
|
+
}),
|
|
259
|
+
/* @__PURE__ */ a(c, {
|
|
260
|
+
path: "workflows/list",
|
|
261
|
+
element: /* @__PURE__ */ a(y, {})
|
|
262
|
+
}),
|
|
263
|
+
/* @__PURE__ */ a(c, {
|
|
264
|
+
path: "workflows/new",
|
|
265
|
+
element: /* @__PURE__ */ a(v, {})
|
|
266
|
+
}),
|
|
267
|
+
/* @__PURE__ */ a(c, {
|
|
268
|
+
path: "workflows/workflow/:id/:version",
|
|
269
|
+
element: /* @__PURE__ */ a(v, {})
|
|
270
|
+
}),
|
|
271
|
+
/* @__PURE__ */ a(c, {
|
|
272
|
+
path: "workflows/builder",
|
|
273
|
+
element: /* @__PURE__ */ a(v, {})
|
|
274
|
+
}),
|
|
275
|
+
/* @__PURE__ */ a(c, {
|
|
276
|
+
path: "workflows/builder/:id/:version",
|
|
277
|
+
element: /* @__PURE__ */ a(v, {})
|
|
278
|
+
}),
|
|
279
|
+
/* @__PURE__ */ a(c, {
|
|
280
|
+
path: "workflows/runs",
|
|
281
|
+
element: /* @__PURE__ */ a(p, {})
|
|
282
|
+
}),
|
|
283
|
+
/* @__PURE__ */ a(c, {
|
|
284
|
+
path: "workflows/runs/:runId",
|
|
285
|
+
element: /* @__PURE__ */ a(f, {})
|
|
286
|
+
}),
|
|
287
|
+
/* @__PURE__ */ a(c, {
|
|
288
|
+
path: "workflows/history",
|
|
289
|
+
element: /* @__PURE__ */ a(ee, {})
|
|
290
|
+
}),
|
|
291
|
+
/* @__PURE__ */ a(c, {
|
|
292
|
+
path: "workflows/templates",
|
|
293
|
+
element: /* @__PURE__ */ a(_, {})
|
|
294
|
+
}),
|
|
295
|
+
/* @__PURE__ */ a(c, {
|
|
296
|
+
path: "workflows/templates/:productId/preview",
|
|
297
|
+
element: /* @__PURE__ */ a(g, {})
|
|
298
|
+
}),
|
|
299
|
+
/* @__PURE__ */ a(c, {
|
|
300
|
+
path: "workflows/nodes",
|
|
301
|
+
element: /* @__PURE__ */ a(m, {})
|
|
302
|
+
}),
|
|
303
|
+
/* @__PURE__ */ a(c, {
|
|
304
|
+
path: "workflows/settings",
|
|
305
|
+
element: /* @__PURE__ */ a(h, {})
|
|
306
|
+
}),
|
|
307
|
+
/* @__PURE__ */ a(c, {
|
|
308
|
+
path: "workflows/executions",
|
|
309
|
+
element: /* @__PURE__ */ a(s, {
|
|
310
|
+
to: `${$}/workflows/runs`,
|
|
311
|
+
replace: !0
|
|
312
|
+
})
|
|
313
|
+
}),
|
|
314
|
+
/* @__PURE__ */ a(c, {
|
|
315
|
+
path: "workflows/executions/:runId",
|
|
316
|
+
element: /* @__PURE__ */ a(Z, { basePath: $ })
|
|
317
|
+
}),
|
|
318
|
+
/* @__PURE__ */ a(c, {
|
|
319
|
+
path: "workflows/credentials",
|
|
320
|
+
element: /* @__PURE__ */ a(s, {
|
|
321
|
+
to: "/integrations/connections",
|
|
322
|
+
replace: !0
|
|
323
|
+
})
|
|
324
|
+
}),
|
|
325
|
+
/* @__PURE__ */ a(c, {
|
|
326
|
+
path: "workflows/oauth/callback",
|
|
327
|
+
element: /* @__PURE__ */ a(s, {
|
|
328
|
+
to: "/integrations/connections",
|
|
329
|
+
replace: !0
|
|
330
|
+
})
|
|
331
|
+
}),
|
|
332
|
+
/* @__PURE__ */ a(c, {
|
|
333
|
+
path: "workflow/:id/:version",
|
|
334
|
+
element: /* @__PURE__ */ a(v, {})
|
|
335
|
+
}),
|
|
336
|
+
/* @__PURE__ */ a(c, {
|
|
337
|
+
path: "list",
|
|
338
|
+
element: /* @__PURE__ */ a(s, {
|
|
339
|
+
to: `${$}/workflows/list`,
|
|
340
|
+
replace: !0
|
|
341
|
+
})
|
|
342
|
+
}),
|
|
343
|
+
/* @__PURE__ */ a(c, {
|
|
344
|
+
path: "*",
|
|
345
|
+
element: /* @__PURE__ */ a(s, {
|
|
346
|
+
to: "/",
|
|
347
|
+
replace: !0
|
|
348
|
+
})
|
|
349
|
+
})
|
|
350
|
+
] })
|
|
351
|
+
})
|
|
352
|
+
});
|
|
353
|
+
};
|
|
354
|
+
//#endregion
|
|
355
|
+
export { Q as BotlitRoutes };
|
|
356
|
+
|
|
357
|
+
//# sourceMappingURL=BotlitRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotlitRoutes.js","names":[],"sources":["../../src/botlit/BotlitRoutes.tsx"],"sourcesContent":["/**\n * Botlit Routes\n * @module botlit\n */\n\nimport { type FC, lazy, Suspense } from 'react';\nimport { Routes, Route, Navigate, useLocation, useParams } from 'react-router';\nimport { useBotlit } from './providers/BotlitProvider';\nimport { RouteLoader } from './components/RouteLoader';\n\n// Import FluidGrids SDK workflow components (EXACT same as microfe-bigconsole)\nimport {\n WorkflowsList,\n WorkflowBuilderPage,\n ExecutionsListPage,\n ExecutionDetailPage as WorkflowExecutionDetailPage,\n HistoryPage,\n TemplatesPage,\n TemplatePreview,\n NodesPage,\n SettingsPage as WorkflowSettingsPage,\n} from '@burdenoff/fluidgrids-fe-sdk';\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 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// Note: ExecutionDetailPage is imported from @burdenoff/fluidgrids-fe-sdk (line 15)\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/**\n * Resolves the :runId param for the legacy `workflows/executions/:runId` →\n * `workflows/runs/:runId` redirect. Without this wrapper `<Navigate>` would\n * redirect to the literal string \":runId\".\n */\nconst LegacyWorkflowRunRedirect: FC<{ basePath: string }> = ({ basePath }) => {\n const { runId } = useParams<{ runId: string }>();\n return <Navigate to={`${basePath}/workflows/runs/${runId ?? ''}`} replace />;\n};\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/: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 - FluidGrids SDK Integration (mirrors microfe-workflows) */}\n <Route path=\"workflows\" element={<WorkflowsList />} />\n <Route path=\"workflows/list\" element={<WorkflowsList />} />\n <Route path=\"workflows/new\" element={<WorkflowBuilderPage />} />\n <Route path=\"workflows/workflow/:id/:version\" element={<WorkflowBuilderPage />} />\n <Route path=\"workflows/builder\" element={<WorkflowBuilderPage />} />\n <Route path=\"workflows/builder/:id/:version\" element={<WorkflowBuilderPage />} />\n <Route path=\"workflows/runs\" element={<ExecutionsListPage />} />\n <Route path=\"workflows/runs/:runId\" element={<WorkflowExecutionDetailPage />} />\n <Route path=\"workflows/history\" element={<HistoryPage />} />\n <Route path=\"workflows/templates\" element={<TemplatesPage />} />\n {/* Read-only preview of a store workflow template */}\n <Route path=\"workflows/templates/:productId/preview\" element={<TemplatePreview />} />\n <Route path=\"workflows/nodes\" element={<NodesPage />} />\n <Route path=\"workflows/settings\" element={<WorkflowSettingsPage />} />\n\n {/* Legacy FluidGrids paths — the SDK still links to some of these */}\n <Route\n path=\"workflows/executions\"\n element={<Navigate to={`${normalizedBasePath}/workflows/runs`} replace />}\n />\n <Route\n path=\"workflows/executions/:runId\"\n element={<LegacyWorkflowRunRedirect basePath={normalizedBasePath} />}\n />\n {/* Connection management lives in microfe-integrations */}\n <Route\n path=\"workflows/credentials\"\n element={<Navigate to=\"/integrations/connections\" replace />}\n />\n <Route\n path=\"workflows/oauth/callback\"\n element={<Navigate to=\"/integrations/connections\" replace />}\n />\n\n {/* Support SDK's navigation pattern (without /workflows/ prefix) */}\n <Route path=\"workflow/:id/:version\" element={<WorkflowBuilderPage />} />\n {/*\n The SDK navigates relatively to `list`. Resolve it against the mounted\n base path — a relative `../workflows/list` resolves differently\n depending on how deep the shell mounted this MFE.\n */}\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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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RouteLoader as e } from "./components/RouteLoader.js";
|
|
2
|
+
import { Suspense as t, lazy as n } from "react";
|
|
3
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
4
|
+
//#region src/botlit/BotmanorRoot.tsx
|
|
5
|
+
var i = n(() => import("./BotmanorRootInner.js").then((e) => ({ default: e.BotmanorRootInner }))), a = (n) => /* @__PURE__ */ r(t, {
|
|
6
|
+
fallback: /* @__PURE__ */ r(e, {}),
|
|
7
|
+
children: /* @__PURE__ */ r(i, { ...n })
|
|
8
|
+
});
|
|
9
|
+
//#endregion
|
|
10
|
+
export { a as BotmanorRoot };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=BotmanorRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotmanorRoot.js","names":[],"sources":["../../src/botlit/BotmanorRoot.tsx"],"sourcesContent":["/**\n * Botlit Root Component\n * @module botlit\n */\n\nimport type { FC } from 'react';\nimport { lazy, Suspense } from 'react';\nimport { RouteLoader } from './components/RouteLoader';\nimport type { BotmanorRootProps } from './types';\n\n/**\n * The implementation is loaded lazily on purpose.\n *\n * `BotmanorRootInner` → `BotlitRoutes` → `@burdenoff/fluidgrids-fe-sdk`, and the\n * SDK ships a single barrel entry (`dist/index.js` statically imports the\n * workflow-builder chunk) with no `sideEffects: false`, so a bundler cannot\n * tree-shake it: importing ANY symbol pulls the whole graph — @xyflow/react,\n * framer-motion, adaptivecards, jszip. Keeping that on the static path made\n * the host's `import('@burdenoff/microfe-botlit')` chunk multi-megabyte, so on\n * a cold load `BotmanorRoot` did not mount for seconds and neither of its states\n * could render — the content region was left to the host's Suspense fallback\n * while the shell chrome around it was already painted.\n *\n * Splitting here keeps the package entry point small: the host mounts this\n * component almost immediately, and from that first paint the content region\n * shows {@link RouteLoader} continuously until the real UI is on screen.\n *\n * No error boundary is added here on purpose — a chunk-load failure must reach\n * the host's `MicrofrontendErrorBoundary`, whose fallback detects chunk errors\n * and offers the right recovery. Catching it here would hide that.\n */\nconst BotmanorRootInner = lazy(() =>\n import('./BotmanorRootInner').then((module) => ({ default: module.BotmanorRootInner }))\n);\n\nexport const BotmanorRoot: FC<BotmanorRootProps> = (props) => (\n <Suspense fallback={<RouteLoader />}>\n <BotmanorRootInner {...props} />\n </Suspense>\n);\n"],"mappings":";;;;AA+BA,IAAM,IAAoB,QACxB,OAAO,0BAAuB,MAAM,OAAY,EAAE,SAAS,EAAO,mBAAmB,EAAE,CACxF,EAEY,KAAuC,MAClD,kBAAC,GAAD;CAAU,UAAU,kBAAC,GAAD,EAAe,CAAA;WACjC,kBAAC,GAAD,EAAmB,GAAI,GAAS,CAAA;CACvB,CAAA"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { RouteLoader as e } from "./components/RouteLoader.js";
|
|
2
|
+
import { BotlitProvider as t } from "./providers/BotlitProvider.js";
|
|
3
|
+
import { BotlitRoutes as n } from "./BotlitRoutes.js";
|
|
4
|
+
import { WorkspaceRequired as r } from "./components/WorkspaceRequired.js";
|
|
5
|
+
import { useCallback as i, useEffect as a, useLayoutEffect as o, useRef as s, useState as c } from "react";
|
|
6
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
7
|
+
import { useGatewayClient as d } from "@burdenoff/fe-libs/shared/graphql";
|
|
8
|
+
import { ApolloProvider as f } from "@apollo/client/react";
|
|
9
|
+
import { QueryClient as p, QueryClientProvider as m } from "@tanstack/react-query";
|
|
10
|
+
import { ErrorBoundary as h } from "@burdenoff/fe-libs/shared/components";
|
|
11
|
+
import { FeatureFlagProvider as g } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
12
|
+
import { refetchStoreNodes as _, resetFluidGridsClient as v, resetFluidGridsConfig as y, resetGlobalStoreClient as b, setFluidGridsClient as x, setFluidGridsConfig as S, setGlobalStoreClient as C } from "@burdenoff/fluidgrids-fe-sdk";
|
|
13
|
+
//#region src/botlit/BotmanorRootInner.tsx
|
|
14
|
+
var w = "botlit", T = "Botlit", E = 1e4, D = 2e3, O = new p({ defaultOptions: { queries: {
|
|
15
|
+
staleTime: 300 * 1e3,
|
|
16
|
+
retry: 1
|
|
17
|
+
} } }), k = (p) => {
|
|
18
|
+
let k = d("workspace"), A = d("global"), [j, M] = c(!1), [N, P] = c(null), [F, I] = c(!1);
|
|
19
|
+
a(() => (k && A && (x(k), C(A), _().catch((e) => {
|
|
20
|
+
console.warn("[Botlit] Failed to refresh FluidGrids store nodes", e);
|
|
21
|
+
}), M(!0)), () => {
|
|
22
|
+
v(), b();
|
|
23
|
+
}), [k, A]), a(() => {
|
|
24
|
+
if (j) return;
|
|
25
|
+
let e = setTimeout(() => {
|
|
26
|
+
P("Botlit could not connect to the gateway. Please refresh the page or check your configuration.");
|
|
27
|
+
}, E);
|
|
28
|
+
return () => clearTimeout(e);
|
|
29
|
+
}, [j]), a(() => {
|
|
30
|
+
if (p.workspaceId) return;
|
|
31
|
+
let e = setTimeout(() => I(!0), D);
|
|
32
|
+
return () => clearTimeout(e);
|
|
33
|
+
}, [p.workspaceId]);
|
|
34
|
+
let L = i((e) => {}, []), R = s(L);
|
|
35
|
+
if (o(() => {
|
|
36
|
+
R.current = L;
|
|
37
|
+
}, [L]), a(() => {
|
|
38
|
+
if (p.apiGatewayUrl) return S({
|
|
39
|
+
apiGatewayUrl: p.apiGatewayUrl.endsWith("/") ? p.apiGatewayUrl.slice(0, -1) : p.apiGatewayUrl,
|
|
40
|
+
authToken: p.authToken,
|
|
41
|
+
workspaceId: p.workspaceId ?? "",
|
|
42
|
+
tenantId: p.tenantId,
|
|
43
|
+
productId: p.productId ?? w,
|
|
44
|
+
productName: p.productName ?? T,
|
|
45
|
+
onWorkflowSaved: (e) => R.current(e)
|
|
46
|
+
}), () => {
|
|
47
|
+
y();
|
|
48
|
+
};
|
|
49
|
+
}, [
|
|
50
|
+
p.apiGatewayUrl,
|
|
51
|
+
p.authToken,
|
|
52
|
+
p.workspaceId,
|
|
53
|
+
p.tenantId,
|
|
54
|
+
p.productId,
|
|
55
|
+
p.productName
|
|
56
|
+
]), !p.workspaceId) return F ? /* @__PURE__ */ l(r, {
|
|
57
|
+
basePath: p.basePath,
|
|
58
|
+
navigate: p.navigate
|
|
59
|
+
}) : /* @__PURE__ */ l(e, { label: "Loading your workspace…" });
|
|
60
|
+
if (!j) return N ? /* @__PURE__ */ l("div", {
|
|
61
|
+
className: "flex h-full min-h-[200px] w-full items-center justify-center p-6",
|
|
62
|
+
children: /* @__PURE__ */ u("div", {
|
|
63
|
+
className: "text-center",
|
|
64
|
+
children: [/* @__PURE__ */ l("p", {
|
|
65
|
+
className: "mb-4 text-sm text-text-secondary",
|
|
66
|
+
children: N
|
|
67
|
+
}), /* @__PURE__ */ l("button", {
|
|
68
|
+
type: "button",
|
|
69
|
+
onClick: () => window.location.reload(),
|
|
70
|
+
className: "rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-colors hover:bg-action-primary-bg-hover",
|
|
71
|
+
children: "Reload Page"
|
|
72
|
+
})]
|
|
73
|
+
})
|
|
74
|
+
}) : /* @__PURE__ */ l(e, {});
|
|
75
|
+
let z = !!p.basePath, B = /* @__PURE__ */ l(t, {
|
|
76
|
+
...p,
|
|
77
|
+
children: /* @__PURE__ */ l(n, {})
|
|
78
|
+
});
|
|
79
|
+
return /* @__PURE__ */ l(h, {
|
|
80
|
+
fallback: /* @__PURE__ */ l("div", {
|
|
81
|
+
className: "p-6 text-center text-text-secondary",
|
|
82
|
+
children: "Something went wrong loading Botlit. Please refresh the page."
|
|
83
|
+
}),
|
|
84
|
+
children: /* @__PURE__ */ l(g, {
|
|
85
|
+
workspaceId: null,
|
|
86
|
+
gateway: "global",
|
|
87
|
+
defaultEnabled: !0,
|
|
88
|
+
children: /* @__PURE__ */ l(m, {
|
|
89
|
+
client: O,
|
|
90
|
+
children: z ? B : /* @__PURE__ */ l(f, {
|
|
91
|
+
client: k,
|
|
92
|
+
children: B
|
|
93
|
+
})
|
|
94
|
+
})
|
|
95
|
+
})
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
//#endregion
|
|
99
|
+
export { k as BotmanorRootInner };
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=BotmanorRootInner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotmanorRootInner.js","names":[],"sources":["../../src/botlit/BotmanorRootInner.tsx"],"sourcesContent":["/**\n * Botlit Root — implementation\n * @module botlit\n *\n * The heavy half of {@link BotmanorRoot}. Everything that pulls a large\n * dependency graph lives behind this module so the package entry point stays\n * small: `BotmanorRootInner` statically imports `BotlitRoutes`, which in turn\n * pulls the whole `@burdenoff/fluidgrids-fe-sdk` barrel (workflow builder,\n * @xyflow/react, framer-motion …). `BotmanorRoot` loads this module lazily and\n * paints a skeleton meanwhile, so the host never shows an empty content\n * region while that graph downloads.\n */\n\nimport type { FC } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { ApolloProvider } from '@apollo/client/react';\nimport { ErrorBoundary } from '@burdenoff/fe-libs/shared/components';\nimport { BotlitProvider } from './providers/BotlitProvider';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { BotlitRoutes } from './BotlitRoutes';\nimport { RouteLoader } from './components/RouteLoader';\nimport { WorkspaceRequired } from './components/WorkspaceRequired';\nimport type { BotmanorRootProps } from './types';\n\n// FluidGrids SDK client injection (needed for workflow components)\nimport {\n setFluidGridsClient,\n resetFluidGridsClient,\n setFluidGridsConfig,\n resetFluidGridsConfig,\n setGlobalStoreClient,\n resetGlobalStoreClient,\n refetchStoreNodes,\n type WorkflowSavedResult,\n} from '@burdenoff/fluidgrids-fe-sdk';\n// Use the shared gateway Apollo clients from the shell\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\n\n/** Product identity handed to the FluidGrids SDK when the shell does not override it. */\nconst DEFAULT_PRODUCT_ID = 'botlit';\nconst DEFAULT_PRODUCT_NAME = 'Botlit';\n\n/** How long to wait for the shell's gateway clients before showing an error. */\nconst CLIENT_READY_TIMEOUT_MS = 10_000;\n\n/**\n * How long to keep showing the loading skeleton before concluding that the\n * shell really has no active workspace.\n *\n * The shell resolves org/workspace asynchronously and passes `workspaceId=\"\"`\n * until it lands, which is indistinguishable from \"this user has no\n * workspace\". Without this settle window the guided zero state would flash on\n * every cold load — a get-started screen appearing and vanishing reads as a\n * broken page, which is exactly what this component exists to avoid.\n */\nconst WORKSPACE_SETTLE_MS = 2_000;\n\n// Create a query client for this microfrontend\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 5 * 60 * 1000,\n retry: 1,\n },\n },\n});\n\nexport const BotmanorRootInner: FC<BotmanorRootProps> = (props) => {\n // NOTE: Navigation is now handled by the shell's NavRegistration.tsx\n // The shell manages all product submenu items in a centralized way\n\n // Get shell's Apollo clients (both workspace and global for FluidGrids SDK)\n const workspaceClient = useGatewayClient('workspace');\n const globalClient = useGatewayClient('global');\n const [clientReady, setClientReady] = useState(false);\n const [clientError, setClientError] = useState<string | null>(null);\n const [workspaceSettled, setWorkspaceSettled] = useState(false);\n\n // Inject Apollo clients into FluidGrids SDK (for workflow components).\n // This synchronizes external stores (module-level client singletons in the SDK)\n // with React's lifecycle. The setState call is intentional — it gates rendering\n // so children don't mount before the SDK clients are available.\n //\n // KNOWN TRADE-OFF (mirrors microfe-bigconsole): clientReady is NOT reset in\n // cleanup. When the client references change (e.g. token refresh) children keep\n // rendering against a briefly uninitialised SDK client until the effect re-runs.\n // That avoids a spinner flash mid-session; failed requests are retried by\n // Apollo/React Query.\n useEffect(() => {\n if (workspaceClient && globalClient) {\n setFluidGridsClient(workspaceClient);\n setGlobalStoreClient(globalClient);\n // Node definitions come from the global store — refresh them now that the\n // SDK has a client, otherwise the builder palette stays empty.\n void refetchStoreNodes().catch((error: unknown) => {\n console.warn('[Botlit] Failed to refresh FluidGrids store nodes', error);\n });\n setClientReady(true);\n }\n return () => {\n resetFluidGridsClient();\n resetGlobalStoreClient();\n };\n }, [workspaceClient, globalClient]);\n\n // Timeout fallback: if gateway clients are never provided (test env, shell\n // misconfiguration, auth failure before hydration), show an error rather than\n // spinning indefinitely.\n useEffect(() => {\n if (clientReady) return;\n const timer = setTimeout(() => {\n setClientError(\n 'Botlit could not connect to the gateway. Please refresh the page or check your configuration.'\n );\n }, CLIENT_READY_TIMEOUT_MS);\n return () => clearTimeout(timer);\n }, [clientReady]);\n\n // Give the shell a bounded window to resolve the active workspace before the\n // guided zero state is allowed to render. Cancelled the moment a workspace\n // arrives — a workspace that is already present never starts the timer.\n useEffect(() => {\n if (props.workspaceId) return;\n const timer = setTimeout(() => setWorkspaceSettled(true), WORKSPACE_SETTLE_MS);\n return () => clearTimeout(timer);\n }, [props.workspaceId]);\n\n // Hook point for syncing a saved workflow back into Botlit. Botlit keeps no\n // separate workflow record (unlike BigConsole), so there is nothing to write —\n // the bridge exists so a future sync can be added without re-initialising the SDK.\n const handleWorkflowSaved = useCallback((result: WorkflowSavedResult) => {\n if (import.meta.env.DEV) {\n console.info('[Botlit] Workflow saved', result.workflowKey, result.operation);\n }\n }, []);\n\n // Ref-forwarding: decouple the callback from the SDK config effect so that\n // workspaceClient reference changes don't trigger resetFluidGridsConfig() + re-init.\n const handleWorkflowSavedRef = useRef(handleWorkflowSaved);\n useLayoutEffect(() => {\n handleWorkflowSavedRef.current = handleWorkflowSaved;\n }, [handleWorkflowSaved]);\n\n // Configure FluidGrids SDK settings\n useEffect(() => {\n if (!props.apiGatewayUrl) return;\n\n const normalizedBase = props.apiGatewayUrl.endsWith('/')\n ? props.apiGatewayUrl.slice(0, -1)\n : props.apiGatewayUrl;\n\n setFluidGridsConfig({\n apiGatewayUrl: normalizedBase,\n authToken: props.authToken,\n workspaceId: props.workspaceId ?? '',\n tenantId: props.tenantId,\n // The SDK filters workflows by productId. It MUST be this product — falling\n // back to the shell's default ('workspaces') would leak another product's\n // workflows into Botlit.\n productId: props.productId ?? DEFAULT_PRODUCT_ID,\n productName: props.productName ?? DEFAULT_PRODUCT_NAME,\n // Stable wrapper via ref — avoids SDK re-init when workspaceClient changes reference\n onWorkflowSaved: (result: WorkflowSavedResult) => handleWorkflowSavedRef.current(result),\n });\n\n return () => {\n resetFluidGridsConfig();\n };\n }, [\n props.apiGatewayUrl,\n props.authToken,\n props.workspaceId,\n props.tenantId,\n props.productId,\n props.productName,\n ]);\n\n // Without a workspace every Botlit query is unscoped and every write is\n // rejected — guide the user instead of rendering empty lists. Until the\n // settle window elapses we cannot tell \"still resolving\" from \"none\", so we\n // keep the same skeleton the shell was already showing.\n if (!props.workspaceId) {\n if (!workspaceSettled) {\n return <RouteLoader label=\"Loading your workspace…\" />;\n }\n return <WorkspaceRequired basePath={props.basePath} navigate={props.navigate} />;\n }\n\n // Don't render until clients are ready (same pattern as microfe-bigconsole)\n if (!clientReady) {\n if (clientError) {\n return (\n <div className=\"flex h-full min-h-[200px] w-full items-center justify-center p-6\">\n <div className=\"text-center\">\n <p className=\"mb-4 text-sm text-text-secondary\">{clientError}</p>\n <button\n type=\"button\"\n onClick={() => window.location.reload()}\n className=\"rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-colors hover:bg-action-primary-bg-hover\"\n >\n Reload Page\n </button>\n </div>\n </div>\n );\n }\n // Same skeleton as the lazy-chunk fallback, so the content region never\n // switches loading idioms between first paint and the page rendering.\n return <RouteLoader />;\n }\n\n const isIntegrated = !!props.basePath;\n\n const content = (\n <BotlitProvider {...props}>\n <BotlitRoutes />\n </BotlitProvider>\n );\n\n return (\n <ErrorBoundary\n fallback={\n <div className=\"p-6 text-center text-text-secondary\">\n Something went wrong loading Botlit. Please refresh the page.\n </div>\n }\n >\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <QueryClientProvider client={queryClient}>\n {isIntegrated ? (\n content\n ) : (\n <ApolloProvider client={workspaceClient}>{content}</ApolloProvider>\n )}\n </QueryClientProvider>\n </FeatureFlagProvider>\n </ErrorBoundary>\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAwCA,IAAM,IAAqB,UACrB,IAAuB,UAGvB,IAA0B,KAY1B,IAAsB,KAGtB,IAAc,IAAI,EAAY,EAClC,gBAAgB,EACd,SAAS;CACP,WAAW,MAAS;CACpB,OAAO;CACR,EACF,EACF,CAAC,EAEW,KAA4C,MAAU;CAKjE,IAAM,IAAkB,EAAiB,YAAY,EAC/C,IAAe,EAAiB,SAAS,EACzC,CAAC,GAAa,KAAkB,EAAS,GAAM,EAC/C,CAAC,GAAa,KAAkB,EAAwB,KAAK,EAC7D,CAAC,GAAkB,KAAuB,EAAS,GAAM;AA6C/D,CAjCA,SACM,KAAmB,MACrB,EAAoB,EAAgB,EACpC,EAAqB,EAAa,EAG7B,GAAmB,CAAC,OAAO,MAAmB;AACjD,UAAQ,KAAK,qDAAqD,EAAM;GACxE,EACF,EAAe,GAAK,SAET;AAEX,EADA,GAAuB,EACvB,GAAwB;KAEzB,CAAC,GAAiB,EAAa,CAAC,EAKnC,QAAgB;AACd,MAAI,EAAa;EACjB,IAAM,IAAQ,iBAAiB;AAC7B,KACE,gGACD;KACA,EAAwB;AAC3B,eAAa,aAAa,EAAM;IAC/B,CAAC,EAAY,CAAC,EAKjB,QAAgB;AACd,MAAI,EAAM,YAAa;EACvB,IAAM,IAAQ,iBAAiB,EAAoB,GAAK,EAAE,EAAoB;AAC9E,eAAa,aAAa,EAAM;IAC/B,CAAC,EAAM,YAAY,CAAC;CAKvB,IAAM,IAAsB,GAAa,MAAgC,IAItE,EAAE,CAAC,EAIA,IAAyB,EAAO,EAAoB;AA2C1D,KA1CA,QAAsB;AACpB,IAAuB,UAAU;IAChC,CAAC,EAAoB,CAAC,EAGzB,QAAgB;AACT,QAAM,cAoBX,QAdA,EAAoB;GAClB,eALqB,EAAM,cAAc,SAAS,IAAI,GACpD,EAAM,cAAc,MAAM,GAAG,GAAG,GAChC,EAAM;GAIR,WAAW,EAAM;GACjB,aAAa,EAAM,eAAe;GAClC,UAAU,EAAM;GAIhB,WAAW,EAAM,aAAa;GAC9B,aAAa,EAAM,eAAe;GAElC,kBAAkB,MAAgC,EAAuB,QAAQ,EAAO;GACzF,CAAC,QAEW;AACX,MAAuB;;IAExB;EACD,EAAM;EACN,EAAM;EACN,EAAM;EACN,EAAM;EACN,EAAM;EACN,EAAM;EACP,CAAC,EAME,CAAC,EAAM,YAIT,QAHK,IAGE,kBAAC,GAAD;EAAmB,UAAU,EAAM;EAAU,UAAU,EAAM;EAAY,CAAA,GAFvE,kBAAC,GAAD,EAAa,OAAM,2BAA4B,CAAA;AAM1D,KAAI,CAAC,EAmBH,QAlBI,IAEA,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,KAAD;IAAG,WAAU;cAAoC;IAAgB,CAAA,EACjE,kBAAC,UAAD;IACE,MAAK;IACL,eAAe,OAAO,SAAS,QAAQ;IACvC,WAAU;cACX;IAEQ,CAAA,CACL;;EACF,CAAA,GAKH,kBAAC,GAAD,EAAe,CAAA;CAGxB,IAAM,IAAe,CAAC,CAAC,EAAM,UAEvB,IACJ,kBAAC,GAAD;EAAgB,GAAI;YAClB,kBAAC,GAAD,EAAgB,CAAA;EACD,CAAA;AAGnB,QACE,kBAAC,GAAD;EACE,UACE,kBAAC,OAAD;GAAK,WAAU;aAAsC;GAE/C,CAAA;YAGR,kBAAC,GAAD;GAAqB,aAAa;GAAM,SAAQ;GAAS,gBAAgB;aACvE,kBAAC,GAAD;IAAqB,QAAQ;cAC1B,IACC,IAEA,kBAAC,GAAD;KAAgB,QAAQ;eAAkB;KAAyB,CAAA;IAEjD,CAAA;GACF,CAAA;EACR,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { cn as e } from "../utils/cn.js";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
//#region src/botlit/components/Badge.tsx
|
|
4
|
+
var n = {
|
|
5
|
+
default: "bg-action-primary-bg text-action-primary-text",
|
|
6
|
+
secondary: "bg-secondary text-secondary-foreground",
|
|
7
|
+
success: "bg-green-500/20 text-green-600 dark:text-green-400",
|
|
8
|
+
warning: "bg-yellow-500/20 text-yellow-600 dark:text-yellow-400",
|
|
9
|
+
destructive: "bg-status-error-bg/20 text-status-error-text",
|
|
10
|
+
outline: "border border-border-subtle text-text-primary"
|
|
11
|
+
}, r = ({ className: r, variant: i = "default", ...a }) => /* @__PURE__ */ t("span", {
|
|
12
|
+
className: e("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium", n[i], r),
|
|
13
|
+
...a
|
|
14
|
+
}), i = ({ status: e }) => /* @__PURE__ */ t(r, {
|
|
15
|
+
variant: {
|
|
16
|
+
active: "success",
|
|
17
|
+
ready: "success",
|
|
18
|
+
connected: "success",
|
|
19
|
+
running: "success",
|
|
20
|
+
completed: "success",
|
|
21
|
+
draft: "secondary",
|
|
22
|
+
pending: "secondary",
|
|
23
|
+
paused: "warning",
|
|
24
|
+
training: "warning",
|
|
25
|
+
indexing: "warning",
|
|
26
|
+
processing: "warning",
|
|
27
|
+
connecting: "warning",
|
|
28
|
+
error: "destructive",
|
|
29
|
+
failed: "destructive",
|
|
30
|
+
disconnected: "destructive",
|
|
31
|
+
archived: "outline",
|
|
32
|
+
cancelled: "outline"
|
|
33
|
+
}[e.toLowerCase()] || "default",
|
|
34
|
+
children: e
|
|
35
|
+
});
|
|
36
|
+
//#endregion
|
|
37
|
+
export { r as Badge, i as StatusBadge };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=Badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.js","names":[],"sources":["../../../src/botlit/components/Badge.tsx"],"sourcesContent":["/**\n * Badge Component\n * @module botlit/components\n */\n\nimport type { FC, HTMLAttributes } from 'react';\nimport { cn } from '../utils/cn';\n\ninterface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: 'default' | 'secondary' | 'success' | 'warning' | 'destructive' | 'outline';\n}\n\nconst variantStyles = {\n default: 'bg-action-primary-bg text-action-primary-text',\n secondary: 'bg-secondary text-secondary-foreground',\n success: 'bg-green-500/20 text-green-600 dark:text-green-400',\n warning: 'bg-yellow-500/20 text-yellow-600 dark:text-yellow-400',\n destructive: 'bg-status-error-bg/20 text-status-error-text',\n outline: 'border border-border-subtle text-text-primary',\n};\n\nexport const Badge: FC<BadgeProps> = ({ className, variant = 'default', ...props }) => {\n return (\n <span\n className={cn(\n 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium',\n variantStyles[variant],\n className\n )}\n {...props}\n />\n );\n};\n\n// Status-specific badges\nexport const StatusBadge: FC<{ status: string }> = ({ status }) => {\n const variants: Record<string, BadgeProps['variant']> = {\n active: 'success',\n ready: 'success',\n connected: 'success',\n running: 'success',\n completed: 'success',\n draft: 'secondary',\n pending: 'secondary',\n paused: 'warning',\n training: 'warning',\n indexing: 'warning',\n processing: 'warning',\n connecting: 'warning',\n error: 'destructive',\n failed: 'destructive',\n disconnected: 'destructive',\n archived: 'outline',\n cancelled: 'outline',\n };\n\n return <Badge variant={variants[status.toLowerCase()] || 'default'}>{status}</Badge>;\n};\n"],"mappings":";;;AAYA,IAAM,IAAgB;CACpB,SAAS;CACT,WAAW;CACX,SAAS;CACT,SAAS;CACT,aAAa;CACb,SAAS;CACV,EAEY,KAAyB,EAAE,cAAW,aAAU,WAAW,GAAG,QAEvE,kBAAC,QAAD;CACE,WAAW,EACT,2EACA,EAAc,IACd,EACD;CACD,GAAI;CACJ,CAAA,EAKO,KAAuC,EAAE,gBAqB7C,kBAAC,GAAD;CAAO,SApB0C;EACtD,QAAQ;EACR,OAAO;EACP,WAAW;EACX,SAAS;EACT,WAAW;EACX,OAAO;EACP,SAAS;EACT,QAAQ;EACR,UAAU;EACV,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,QAAQ;EACR,cAAc;EACd,UAAU;EACV,WAAW;EACZ,CAE+B,EAAO,aAAa,KAAK;WAAY;CAAe,CAAA"}
|