@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
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { useBotlit as e } from "../providers/BotlitProvider.js";
|
|
2
|
+
import { formatRelativeTime as t } from "../utils/formatters.js";
|
|
3
|
+
import { PageLayout as n } from "../components/PageLayout.js";
|
|
4
|
+
import { Card as r, CardContent as i, CardDescription as a, CardHeader as o, CardTitle as s } from "../components/Card.js";
|
|
5
|
+
import { Button as c } from "../components/Button.js";
|
|
6
|
+
import { Badge as l, StatusBadge as u } from "../components/Badge.js";
|
|
7
|
+
import { EmptyState as d } from "../components/EmptyState.js";
|
|
8
|
+
import { Input as f } from "../components/Input.js";
|
|
9
|
+
import { ErrorState as p } from "../components/ErrorState.js";
|
|
10
|
+
import { useRetrievalProfiles as m } from "../hooks/useRetrievalProfiles.js";
|
|
11
|
+
import "../hooks/index.js";
|
|
12
|
+
import { useState as h } from "react";
|
|
13
|
+
import { GlassCard as g, PagePurpose as _ } from "@burdenoff/fe-libs/ui";
|
|
14
|
+
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
15
|
+
import { Link as b } from "react-router";
|
|
16
|
+
import { Database as x, Filter as S, Layers as C, Plus as w, Search as T, Settings as E, Zap as D } from "lucide-react";
|
|
17
|
+
//#region src/botlit/pages/RetrievalProfilesPage.tsx
|
|
18
|
+
var O = () => {
|
|
19
|
+
let { getPath: O } = e(), [k, A] = h(""), { data: j, loading: M, error: N, refetch: P } = m({ search: k });
|
|
20
|
+
return /* @__PURE__ */ v(n, {
|
|
21
|
+
title: "Retrieval Profiles",
|
|
22
|
+
description: "Configure how agents retrieve and rank knowledge from knowledge bases",
|
|
23
|
+
actions: /* @__PURE__ */ v(c, {
|
|
24
|
+
leftIcon: /* @__PURE__ */ v(w, { size: 16 }),
|
|
25
|
+
children: /* @__PURE__ */ v(b, {
|
|
26
|
+
to: O("retrieval-profiles/new"),
|
|
27
|
+
children: "Create Profile"
|
|
28
|
+
})
|
|
29
|
+
}),
|
|
30
|
+
children: /* @__PURE__ */ y("div", {
|
|
31
|
+
className: "space-y-6",
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ v(_, {
|
|
34
|
+
icon: /* @__PURE__ */ v(x, { size: 18 }),
|
|
35
|
+
children: "A retrieval profile decides how an agent searches your knowledge bases — which search strategy to use (semantic, keyword or hybrid), how many passages to pull back, whether to rerank for relevance and whether answers must cite their sources. Tune a profile here to control the accuracy-versus-speed trade-off of every grounded answer your agents give."
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ y("div", {
|
|
38
|
+
className: "flex items-center gap-4",
|
|
39
|
+
children: [/* @__PURE__ */ y("div", {
|
|
40
|
+
className: "relative flex-1 max-w-md",
|
|
41
|
+
children: [/* @__PURE__ */ v(T, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ v(f, {
|
|
42
|
+
placeholder: "Search profiles...",
|
|
43
|
+
value: k,
|
|
44
|
+
onChange: (e) => A(e.target.value),
|
|
45
|
+
className: "pl-9"
|
|
46
|
+
})]
|
|
47
|
+
}), /* @__PURE__ */ v(c, {
|
|
48
|
+
variant: "outline",
|
|
49
|
+
leftIcon: /* @__PURE__ */ v(S, { size: 16 }),
|
|
50
|
+
children: "Filters"
|
|
51
|
+
})]
|
|
52
|
+
}),
|
|
53
|
+
M ? /* @__PURE__ */ v("div", {
|
|
54
|
+
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
55
|
+
children: [
|
|
56
|
+
1,
|
|
57
|
+
2,
|
|
58
|
+
3
|
|
59
|
+
].map((e) => /* @__PURE__ */ v("div", { className: "h-48 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" }, e))
|
|
60
|
+
}) : N ? /* @__PURE__ */ v(p, {
|
|
61
|
+
resource: "retrieval profiles",
|
|
62
|
+
error: N,
|
|
63
|
+
onRetry: () => void P()
|
|
64
|
+
}) : j.length > 0 ? /* @__PURE__ */ v("div", {
|
|
65
|
+
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
66
|
+
children: j.map((e) => /* @__PURE__ */ v(b, {
|
|
67
|
+
to: O(`retrieval-profiles/${e.id}`),
|
|
68
|
+
children: /* @__PURE__ */ y(r, {
|
|
69
|
+
className: "h-full hover:border-primary/50 transition-colors cursor-pointer",
|
|
70
|
+
children: [/* @__PURE__ */ v(o, { children: /* @__PURE__ */ y("div", {
|
|
71
|
+
className: "flex items-start justify-between",
|
|
72
|
+
children: [/* @__PURE__ */ y("div", {
|
|
73
|
+
className: "flex items-center gap-3",
|
|
74
|
+
children: [/* @__PURE__ */ v("div", {
|
|
75
|
+
className: "p-2 bg-action-primary-bg/10 rounded-lg",
|
|
76
|
+
children: /* @__PURE__ */ v(x, { className: "h-5 w-5 text-primary" })
|
|
77
|
+
}), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v(s, {
|
|
78
|
+
className: "text-base",
|
|
79
|
+
children: e.name
|
|
80
|
+
}), /* @__PURE__ */ v(a, {
|
|
81
|
+
className: "text-xs",
|
|
82
|
+
children: e.description
|
|
83
|
+
})] })]
|
|
84
|
+
}), /* @__PURE__ */ v(u, { status: e.status })]
|
|
85
|
+
}) }), /* @__PURE__ */ v(i, { children: /* @__PURE__ */ y("div", {
|
|
86
|
+
className: "space-y-3",
|
|
87
|
+
children: [
|
|
88
|
+
/* @__PURE__ */ y("div", {
|
|
89
|
+
className: "flex items-center gap-2",
|
|
90
|
+
children: [/* @__PURE__ */ v(C, {
|
|
91
|
+
size: 14,
|
|
92
|
+
className: "text-text-secondary"
|
|
93
|
+
}), /* @__PURE__ */ y("span", {
|
|
94
|
+
className: "text-sm capitalize",
|
|
95
|
+
children: [e.strategyMode.toLowerCase().replace("_", " "), " mode"]
|
|
96
|
+
})]
|
|
97
|
+
}),
|
|
98
|
+
/* @__PURE__ */ y("div", {
|
|
99
|
+
className: "flex items-center gap-2",
|
|
100
|
+
children: [/* @__PURE__ */ v(D, {
|
|
101
|
+
size: 14,
|
|
102
|
+
className: "text-text-secondary"
|
|
103
|
+
}), /* @__PURE__ */ y("span", {
|
|
104
|
+
className: "text-sm",
|
|
105
|
+
children: ["Citations: ", e.citationsRequired ? "Required" : "Optional"]
|
|
106
|
+
})]
|
|
107
|
+
}),
|
|
108
|
+
/* @__PURE__ */ y("div", {
|
|
109
|
+
className: "flex items-center gap-2",
|
|
110
|
+
children: [/* @__PURE__ */ v(x, {
|
|
111
|
+
size: 14,
|
|
112
|
+
className: "text-text-secondary"
|
|
113
|
+
}), /* @__PURE__ */ y("span", {
|
|
114
|
+
className: "text-sm",
|
|
115
|
+
children: ["Top K: ", e.topK]
|
|
116
|
+
})]
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ y("div", {
|
|
119
|
+
className: "pt-3 border-t border-border-subtle flex items-center justify-between text-xs text-text-secondary",
|
|
120
|
+
children: [/* @__PURE__ */ y("span", { children: ["Created ", t(e.createdAt)] }), /* @__PURE__ */ v(l, {
|
|
121
|
+
variant: "outline",
|
|
122
|
+
className: "text-xs capitalize",
|
|
123
|
+
children: e.strategyMode.toLowerCase().replace("_", " ")
|
|
124
|
+
})]
|
|
125
|
+
})
|
|
126
|
+
]
|
|
127
|
+
}) })]
|
|
128
|
+
})
|
|
129
|
+
}, e.id))
|
|
130
|
+
}) : /* @__PURE__ */ v(d, {
|
|
131
|
+
illustration: "empty-files",
|
|
132
|
+
title: "No retrieval profiles",
|
|
133
|
+
description: "Create retrieval profiles to customize how agents search and rank knowledge.",
|
|
134
|
+
action: /* @__PURE__ */ v(c, {
|
|
135
|
+
leftIcon: /* @__PURE__ */ v(w, { size: 16 }),
|
|
136
|
+
children: /* @__PURE__ */ v(b, {
|
|
137
|
+
to: O("retrieval-profiles/new"),
|
|
138
|
+
children: "Create Profile"
|
|
139
|
+
})
|
|
140
|
+
})
|
|
141
|
+
}),
|
|
142
|
+
/* @__PURE__ */ y(g, {
|
|
143
|
+
treatment: "glass",
|
|
144
|
+
glow: !0,
|
|
145
|
+
className: "p-6",
|
|
146
|
+
children: [/* @__PURE__ */ y("div", {
|
|
147
|
+
className: "mb-4",
|
|
148
|
+
children: [/* @__PURE__ */ y("h2", {
|
|
149
|
+
className: "flex items-center gap-2 text-lg font-semibold tracking-tight text-text-primary",
|
|
150
|
+
children: [/* @__PURE__ */ v(E, { size: 18 }), "Retrieval Profile Configuration"]
|
|
151
|
+
}), /* @__PURE__ */ v("p", {
|
|
152
|
+
className: "text-sm text-text-secondary",
|
|
153
|
+
children: "Retrieval profiles control how knowledge is fetched and ranked for agent responses"
|
|
154
|
+
})]
|
|
155
|
+
}), /* @__PURE__ */ y("div", {
|
|
156
|
+
className: "grid grid-cols-1 md:grid-cols-3 gap-6",
|
|
157
|
+
children: [
|
|
158
|
+
/* @__PURE__ */ y("div", {
|
|
159
|
+
className: "space-y-2",
|
|
160
|
+
children: [/* @__PURE__ */ y("h4", {
|
|
161
|
+
className: "font-medium flex items-center gap-2",
|
|
162
|
+
children: [/* @__PURE__ */ v(C, {
|
|
163
|
+
size: 16,
|
|
164
|
+
className: "text-primary"
|
|
165
|
+
}), "Retrieval Modes"]
|
|
166
|
+
}), /* @__PURE__ */ y("ul", {
|
|
167
|
+
className: "text-sm text-text-secondary space-y-1",
|
|
168
|
+
children: [
|
|
169
|
+
/* @__PURE__ */ y("li", { children: [/* @__PURE__ */ v("strong", { children: "Vector:" }), " Semantic similarity search"] }),
|
|
170
|
+
/* @__PURE__ */ y("li", { children: [/* @__PURE__ */ v("strong", { children: "Hybrid:" }), " Vector + keyword combined"] }),
|
|
171
|
+
/* @__PURE__ */ y("li", { children: [/* @__PURE__ */ v("strong", { children: "BM25:" }), " Traditional keyword search"] })
|
|
172
|
+
]
|
|
173
|
+
})]
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ y("div", {
|
|
176
|
+
className: "space-y-2",
|
|
177
|
+
children: [/* @__PURE__ */ y("h4", {
|
|
178
|
+
className: "font-medium flex items-center gap-2",
|
|
179
|
+
children: [/* @__PURE__ */ v(D, {
|
|
180
|
+
size: 16,
|
|
181
|
+
className: "text-primary"
|
|
182
|
+
}), "Reranking"]
|
|
183
|
+
}), /* @__PURE__ */ y("ul", {
|
|
184
|
+
className: "text-sm text-text-secondary space-y-1",
|
|
185
|
+
children: [
|
|
186
|
+
/* @__PURE__ */ v("li", { children: "Cross-encoder reranking for better relevance" }),
|
|
187
|
+
/* @__PURE__ */ v("li", { children: "Improves precision at the cost of latency" }),
|
|
188
|
+
/* @__PURE__ */ v("li", { children: "Recommended for complex queries" })
|
|
189
|
+
]
|
|
190
|
+
})]
|
|
191
|
+
}),
|
|
192
|
+
/* @__PURE__ */ y("div", {
|
|
193
|
+
className: "space-y-2",
|
|
194
|
+
children: [/* @__PURE__ */ y("h4", {
|
|
195
|
+
className: "font-medium flex items-center gap-2",
|
|
196
|
+
children: [/* @__PURE__ */ v(x, {
|
|
197
|
+
size: 16,
|
|
198
|
+
className: "text-primary"
|
|
199
|
+
}), "Knowledge Sources"]
|
|
200
|
+
}), /* @__PURE__ */ y("ul", {
|
|
201
|
+
className: "text-sm text-text-secondary space-y-1",
|
|
202
|
+
children: [
|
|
203
|
+
/* @__PURE__ */ v("li", { children: "Bind multiple knowledge bases" }),
|
|
204
|
+
/* @__PURE__ */ v("li", { children: "Configure priority and weights" }),
|
|
205
|
+
/* @__PURE__ */ v("li", { children: "Set per-KB retrieval limits" })
|
|
206
|
+
]
|
|
207
|
+
})]
|
|
208
|
+
})
|
|
209
|
+
]
|
|
210
|
+
})]
|
|
211
|
+
})
|
|
212
|
+
]
|
|
213
|
+
})
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
//#endregion
|
|
217
|
+
export { O as RetrievalProfilesPage };
|
|
218
|
+
|
|
219
|
+
//# sourceMappingURL=RetrievalProfilesPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RetrievalProfilesPage.js","names":[],"sources":["../../../src/botlit/pages/RetrievalProfilesPage.tsx"],"sourcesContent":["/**\n * Retrieval Profiles Page\n * @module botlit/pages\n */\n\nimport type { FC } from 'react';\nimport { useState } from 'react';\nimport { Link } from 'react-router';\nimport { useBotlit } from '../providers/BotlitProvider';\nimport { Plus, Search as SearchIcon, Filter, Database, Layers, Zap, Settings } from 'lucide-react';\nimport { PagePurpose, GlassCard } from '@burdenoff/fe-libs/ui';\nimport { PageLayout } from '../components/PageLayout';\nimport { Card, CardHeader, CardTitle, CardContent, CardDescription } from '../components/Card';\nimport { Button } from '../components/Button';\nimport { Input } from '../components/Input';\nimport { Badge, StatusBadge } from '../components/Badge';\nimport { EmptyState } from '../components/EmptyState';\nimport { ErrorState } from '../components/ErrorState';\nimport { useRetrievalProfiles } from '../hooks';\nimport { formatRelativeTime } from '../utils/formatters';\n\nexport const RetrievalProfilesPage: FC = () => {\n const { getPath } = useBotlit();\n const [search, setSearch] = useState('');\n const { data: profiles, loading, error, refetch } = useRetrievalProfiles({ search });\n\n return (\n <PageLayout\n title=\"Retrieval Profiles\"\n description=\"Configure how agents retrieve and rank knowledge from knowledge bases\"\n actions={\n <Button leftIcon={<Plus size={16} />}>\n <Link to={getPath('retrieval-profiles/new')}>Create Profile</Link>\n </Button>\n }\n >\n <div className=\"space-y-6\">\n <PagePurpose icon={<Database size={18} />}>\n A retrieval profile decides how an agent searches your knowledge bases — which search\n strategy to use (semantic, keyword or hybrid), how many passages to pull back, whether to\n rerank for relevance and whether answers must cite their sources. Tune a profile here to\n control the accuracy-versus-speed trade-off of every grounded answer your agents give.\n </PagePurpose>\n\n {/* Search */}\n <div className=\"flex items-center gap-4\">\n <div className=\"relative flex-1 max-w-md\">\n <SearchIcon className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary\" />\n <Input\n placeholder=\"Search profiles...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"pl-9\"\n />\n </div>\n <Button variant=\"outline\" leftIcon={<Filter size={16} />}>\n Filters\n </Button>\n </div>\n\n {/* Profiles List */}\n {loading ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n {[1, 2, 3].map((i) => (\n <div\n key={i}\n className=\"h-48 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg\"\n />\n ))}\n </div>\n ) : error ? (\n <ErrorState resource=\"retrieval profiles\" error={error} onRetry={() => void refetch()} />\n ) : profiles.length > 0 ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n {profiles.map(\n (profile: {\n id: string;\n name: string;\n description?: string | null;\n status: string;\n strategyMode: string;\n citationsRequired: boolean;\n topK: number;\n createdAt: string;\n }) => (\n <Link key={profile.id} to={getPath(`retrieval-profiles/${profile.id}`)}>\n <Card className=\"h-full hover:border-primary/50 transition-colors cursor-pointer\">\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex items-center gap-3\">\n <div className=\"p-2 bg-action-primary-bg/10 rounded-lg\">\n <Database className=\"h-5 w-5 text-primary\" />\n </div>\n <div>\n <CardTitle className=\"text-base\">{profile.name}</CardTitle>\n <CardDescription className=\"text-xs\">\n {profile.description}\n </CardDescription>\n </div>\n </div>\n <StatusBadge status={profile.status} />\n </div>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n {/* Retrieval Mode */}\n <div className=\"flex items-center gap-2\">\n <Layers size={14} className=\"text-text-secondary\" />\n <span className=\"text-sm capitalize\">\n {profile.strategyMode.toLowerCase().replace('_', ' ')} mode\n </span>\n </div>\n\n {/* Citations */}\n <div className=\"flex items-center gap-2\">\n <Zap size={14} className=\"text-text-secondary\" />\n <span className=\"text-sm\">\n Citations: {profile.citationsRequired ? 'Required' : 'Optional'}\n </span>\n </div>\n\n {/* Top K */}\n <div className=\"flex items-center gap-2\">\n <Database size={14} className=\"text-text-secondary\" />\n <span className=\"text-sm\">Top K: {profile.topK}</span>\n </div>\n\n {/* Footer */}\n <div className=\"pt-3 border-t border-border-subtle flex items-center justify-between text-xs text-text-secondary\">\n <span>Created {formatRelativeTime(profile.createdAt)}</span>\n <Badge variant=\"outline\" className=\"text-xs capitalize\">\n {profile.strategyMode.toLowerCase().replace('_', ' ')}\n </Badge>\n </div>\n </div>\n </CardContent>\n </Card>\n </Link>\n )\n )}\n </div>\n ) : (\n <EmptyState\n illustration=\"empty-files\"\n title=\"No retrieval profiles\"\n description=\"Create retrieval profiles to customize how agents search and rank knowledge.\"\n action={\n <Button leftIcon={<Plus size={16} />}>\n <Link to={getPath('retrieval-profiles/new')}>Create Profile</Link>\n </Button>\n }\n />\n )}\n\n {/* Quick Start Guide */}\n <GlassCard treatment=\"glass\" glow className=\"p-6\">\n <div className=\"mb-4\">\n <h2 className=\"flex items-center gap-2 text-lg font-semibold tracking-tight text-text-primary\">\n <Settings size={18} />\n Retrieval Profile Configuration\n </h2>\n <p className=\"text-sm text-text-secondary\">\n Retrieval profiles control how knowledge is fetched and ranked for agent responses\n </p>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6\">\n <div className=\"space-y-2\">\n <h4 className=\"font-medium flex items-center gap-2\">\n <Layers size={16} className=\"text-primary\" />\n Retrieval Modes\n </h4>\n <ul className=\"text-sm text-text-secondary space-y-1\">\n <li>\n <strong>Vector:</strong> Semantic similarity search\n </li>\n <li>\n <strong>Hybrid:</strong> Vector + keyword combined\n </li>\n <li>\n <strong>BM25:</strong> Traditional keyword search\n </li>\n </ul>\n </div>\n <div className=\"space-y-2\">\n <h4 className=\"font-medium flex items-center gap-2\">\n <Zap size={16} className=\"text-primary\" />\n Reranking\n </h4>\n <ul className=\"text-sm text-text-secondary space-y-1\">\n <li>Cross-encoder reranking for better relevance</li>\n <li>Improves precision at the cost of latency</li>\n <li>Recommended for complex queries</li>\n </ul>\n </div>\n <div className=\"space-y-2\">\n <h4 className=\"font-medium flex items-center gap-2\">\n <Database size={16} className=\"text-primary\" />\n Knowledge Sources\n </h4>\n <ul className=\"text-sm text-text-secondary space-y-1\">\n <li>Bind multiple knowledge bases</li>\n <li>Configure priority and weights</li>\n <li>Set per-KB retrieval limits</li>\n </ul>\n </div>\n </div>\n </GlassCard>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|