@burdenoff/microfe-botmanor 2026.821.1 → 2026.925.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.
Files changed (65) hide show
  1. package/dist/botlit/BotlitRoutes.js.map +1 -1
  2. package/dist/botlit/BotmanorRoot.js.map +1 -1
  3. package/dist/botlit/BotmanorRootInner.js +4 -4
  4. package/dist/botlit/BotmanorRootInner.js.map +1 -1
  5. package/dist/botlit/components/ErrorState.js +33 -29
  6. package/dist/botlit/components/ErrorState.js.map +1 -1
  7. package/dist/botlit/components/RouteLoader.js +52 -48
  8. package/dist/botlit/components/RouteLoader.js.map +1 -1
  9. package/dist/botlit/components/VersionHistoryPanel.js +74 -77
  10. package/dist/botlit/components/VersionHistoryPanel.js.map +1 -1
  11. package/dist/botlit/components/WorkspaceRequired.js +31 -30
  12. package/dist/botlit/components/WorkspaceRequired.js.map +1 -1
  13. package/dist/botlit/hooks/internal/workspaceGateway.js.map +1 -1
  14. package/dist/botlit/hooks/useConversations.js.map +1 -1
  15. package/dist/botlit/hooks/useLLMProviders.js.map +1 -1
  16. package/dist/botlit/pages/A2AAgentDetailPage.js +1 -1
  17. package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -1
  18. package/dist/botlit/pages/A2ARegistryPage.js +116 -124
  19. package/dist/botlit/pages/A2ARegistryPage.js.map +1 -1
  20. package/dist/botlit/pages/AgentDetailPage.js +169 -172
  21. package/dist/botlit/pages/AgentDetailPage.js.map +1 -1
  22. package/dist/botlit/pages/AgentsListPage.js +96 -90
  23. package/dist/botlit/pages/AgentsListPage.js.map +1 -1
  24. package/dist/botlit/pages/BotChannelsTab.js.map +1 -1
  25. package/dist/botlit/pages/BotDetailPage.js +228 -231
  26. package/dist/botlit/pages/BotDetailPage.js.map +1 -1
  27. package/dist/botlit/pages/BotWorkflowTab.js +84 -87
  28. package/dist/botlit/pages/BotWorkflowTab.js.map +1 -1
  29. package/dist/botlit/pages/BotsListPage.js +144 -147
  30. package/dist/botlit/pages/BotsListPage.js.map +1 -1
  31. package/dist/botlit/pages/BucketsPage.js +3 -3
  32. package/dist/botlit/pages/BucketsPage.js.map +1 -1
  33. package/dist/botlit/pages/ChannelDetailPage.js +1 -1
  34. package/dist/botlit/pages/ChannelDetailPage.js.map +1 -1
  35. package/dist/botlit/pages/ChannelsPage.js +156 -149
  36. package/dist/botlit/pages/ChannelsPage.js.map +1 -1
  37. package/dist/botlit/pages/ChatPage.js +126 -129
  38. package/dist/botlit/pages/ChatPage.js.map +1 -1
  39. package/dist/botlit/pages/DashboardPage.js +111 -114
  40. package/dist/botlit/pages/DashboardPage.js.map +1 -1
  41. package/dist/botlit/pages/ExecutionsPage.js +163 -159
  42. package/dist/botlit/pages/ExecutionsPage.js.map +1 -1
  43. package/dist/botlit/pages/InstalledPackagesPage.js +3 -3
  44. package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -1
  45. package/dist/botlit/pages/KnowledgeBasesPage.js +84 -78
  46. package/dist/botlit/pages/KnowledgeBasesPage.js.map +1 -1
  47. package/dist/botlit/pages/MCPServersPage.js +159 -154
  48. package/dist/botlit/pages/MCPServersPage.js.map +1 -1
  49. package/dist/botlit/pages/PoliciesPage.js +119 -114
  50. package/dist/botlit/pages/PoliciesPage.js.map +1 -1
  51. package/dist/botlit/pages/RetrievalProfilesPage.js +102 -109
  52. package/dist/botlit/pages/RetrievalProfilesPage.js.map +1 -1
  53. package/dist/botlit/pages/SettingsPage.js +144 -159
  54. package/dist/botlit/pages/SettingsPage.js.map +1 -1
  55. package/dist/botlit/pages/SkillsPage.js +122 -105
  56. package/dist/botlit/pages/SkillsPage.js.map +1 -1
  57. package/dist/botlit/pages/StorePage.js +176 -175
  58. package/dist/botlit/pages/StorePage.js.map +1 -1
  59. package/dist/botlit/providers/BotlitProvider.js.map +1 -1
  60. package/dist/botlit/store/botlitStore.js +1 -1
  61. package/dist/botlit/store/botlitStore.js.map +1 -1
  62. package/dist/botlit/utils/navigation.js.map +1 -1
  63. package/dist/shared/hooks/useTr.js +14 -0
  64. package/dist/shared/hooks/useTr.js.map +1 -0
  65. package/package.json +33 -9
@@ -1,123 +1,128 @@
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";
1
+ import { useTr as e } from "../../shared/hooks/useTr.js";
2
+ import { useBotlit as t } from "../providers/BotlitProvider.js";
3
+ import { formatRelativeTime as n } from "../utils/formatters.js";
4
+ import { PageLayout as r } from "../components/PageLayout.js";
5
+ import { Card as i, CardContent as a, CardDescription as o, CardHeader as s, CardTitle as c } from "../components/Card.js";
6
+ import { Button as l } from "../components/Button.js";
7
+ import { Badge as u, StatusBadge as d } from "../components/Badge.js";
8
+ import { EmptyState as f } from "../components/EmptyState.js";
9
+ import { Input as p } from "../components/Input.js";
10
+ import { ErrorState as m } from "../components/ErrorState.js";
11
+ import { useRetrievalProfiles as h } from "../hooks/useRetrievalProfiles.js";
11
12
  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";
13
+ import { useState as g } from "react";
14
+ import { GlassCard as _, PagePurpose as v } from "@burdenoff/fe-libs/ui";
15
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
16
+ import { Link as x } from "react-router";
17
+ import { Database as S, Filter as C, Layers as w, Plus as T, Search as E, Settings as D, Zap as O } from "lucide-react";
17
18
  //#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"
19
+ var k = () => {
20
+ let k = e(), { getPath: A } = t(), [j, M] = g(""), { data: N, loading: P, error: F, refetch: I } = h({ search: j });
21
+ return /* @__PURE__ */ y(r, {
22
+ title: k("botlit.retrievalProfiles.title", "Retrieval Profiles"),
23
+ description: k("botlit.retrievalProfiles.description", "Configure how agents retrieve and rank knowledge from knowledge bases"),
24
+ actions: /* @__PURE__ */ y(l, {
25
+ leftIcon: /* @__PURE__ */ y(T, { size: 16 }),
26
+ children: /* @__PURE__ */ y(x, {
27
+ to: A("retrieval-profiles/new"),
28
+ children: k("botlit.retrievalProfiles.actions.createProfile", "Create Profile")
28
29
  })
29
30
  }),
30
- children: /* @__PURE__ */ y("div", {
31
+ children: /* @__PURE__ */ b("div", {
31
32
  className: "space-y-6",
32
33
  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."
34
+ /* @__PURE__ */ y(v, {
35
+ icon: /* @__PURE__ */ y(S, { size: 18 }),
36
+ children: k("botlit.retrievalProfiles.purpose", "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
  }),
37
- /* @__PURE__ */ y("div", {
38
+ /* @__PURE__ */ b("div", {
38
39
  className: "flex items-center gap-4",
39
- children: [/* @__PURE__ */ y("div", {
40
+ children: [/* @__PURE__ */ b("div", {
40
41
  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),
42
+ children: [/* @__PURE__ */ y(E, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ y(p, {
43
+ placeholder: k("botlit.retrievalProfiles.searchPlaceholder", "Search profiles..."),
44
+ value: j,
45
+ onChange: (e) => M(e.target.value),
45
46
  className: "pl-9"
46
47
  })]
47
- }), /* @__PURE__ */ v(c, {
48
+ }), /* @__PURE__ */ y(l, {
48
49
  variant: "outline",
49
- leftIcon: /* @__PURE__ */ v(S, { size: 16 }),
50
- children: "Filters"
50
+ leftIcon: /* @__PURE__ */ y(C, { size: 16 }),
51
+ children: k("botlit.retrievalProfiles.actions.filters", "Filters")
51
52
  })]
52
53
  }),
53
- M ? /* @__PURE__ */ v("div", {
54
+ P ? /* @__PURE__ */ y("div", {
54
55
  className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
55
56
  children: [
56
57
  1,
57
58
  2,
58
59
  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, {
60
+ ].map((e) => /* @__PURE__ */ y("div", { className: "h-48 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" }, e))
61
+ }) : F ? /* @__PURE__ */ y(m, {
61
62
  resource: "retrieval profiles",
62
- error: N,
63
- onRetry: () => void P()
64
- }) : j.length > 0 ? /* @__PURE__ */ v("div", {
63
+ error: F,
64
+ onRetry: () => void I()
65
+ }) : N.length > 0 ? /* @__PURE__ */ y("div", {
65
66
  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, {
67
+ children: N.map((e) => /* @__PURE__ */ y(x, {
68
+ to: A(`retrieval-profiles/${e.id}`),
69
+ children: /* @__PURE__ */ b(i, {
69
70
  className: "h-full hover:border-primary/50 transition-colors cursor-pointer",
70
- children: [/* @__PURE__ */ v(o, { children: /* @__PURE__ */ y("div", {
71
+ children: [/* @__PURE__ */ y(s, { children: /* @__PURE__ */ b("div", {
71
72
  className: "flex items-start justify-between",
72
- children: [/* @__PURE__ */ y("div", {
73
+ children: [/* @__PURE__ */ b("div", {
73
74
  className: "flex items-center gap-3",
74
- children: [/* @__PURE__ */ v("div", {
75
+ children: [/* @__PURE__ */ y("div", {
75
76
  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, {
77
+ children: /* @__PURE__ */ y(S, { className: "h-5 w-5 text-primary" })
78
+ }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y(c, {
78
79
  className: "text-base",
79
80
  children: e.name
80
- }), /* @__PURE__ */ v(a, {
81
+ }), /* @__PURE__ */ y(o, {
81
82
  className: "text-xs",
82
83
  children: e.description
83
84
  })] })]
84
- }), /* @__PURE__ */ v(u, { status: e.status })]
85
- }) }), /* @__PURE__ */ v(i, { children: /* @__PURE__ */ y("div", {
85
+ }), /* @__PURE__ */ y(d, { status: e.status })]
86
+ }) }), /* @__PURE__ */ y(a, { children: /* @__PURE__ */ b("div", {
86
87
  className: "space-y-3",
87
88
  children: [
88
- /* @__PURE__ */ y("div", {
89
+ /* @__PURE__ */ b("div", {
89
90
  className: "flex items-center gap-2",
90
- children: [/* @__PURE__ */ v(C, {
91
+ children: [/* @__PURE__ */ y(w, {
91
92
  size: 14,
92
93
  className: "text-text-secondary"
93
94
  }), /* @__PURE__ */ y("span", {
94
95
  className: "text-sm capitalize",
95
- children: [e.strategyMode.toLowerCase().replace("_", " "), " mode"]
96
+ children: k("botlit.retrievalProfiles.overview.mode", "{{mode}} mode", { mode: e.strategyMode.toLowerCase().replace("_", " ") })
96
97
  })]
97
98
  }),
98
- /* @__PURE__ */ y("div", {
99
+ /* @__PURE__ */ b("div", {
99
100
  className: "flex items-center gap-2",
100
- children: [/* @__PURE__ */ v(D, {
101
+ children: [/* @__PURE__ */ y(O, {
101
102
  size: 14,
102
103
  className: "text-text-secondary"
103
104
  }), /* @__PURE__ */ y("span", {
104
105
  className: "text-sm",
105
- children: ["Citations: ", e.citationsRequired ? "Required" : "Optional"]
106
+ children: k("botlit.retrievalProfiles.overview.citations", "Citations: {{status}}", { status: e.citationsRequired ? k("botlit.retrievalProfiles.overview.required", "Required") : k("botlit.retrievalProfiles.overview.optional", "Optional") })
106
107
  })]
107
108
  }),
108
- /* @__PURE__ */ y("div", {
109
+ /* @__PURE__ */ b("div", {
109
110
  className: "flex items-center gap-2",
110
- children: [/* @__PURE__ */ v(x, {
111
+ children: [/* @__PURE__ */ y(S, {
111
112
  size: 14,
112
113
  className: "text-text-secondary"
113
114
  }), /* @__PURE__ */ y("span", {
114
115
  className: "text-sm",
115
- children: ["Top K: ", e.topK]
116
+ children: k("botlit.retrievalProfiles.topK", "Top K: {{value}}", { value: e.topK })
116
117
  })]
117
118
  }),
118
- /* @__PURE__ */ y("div", {
119
+ /* @__PURE__ */ b("div", {
119
120
  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
+ children: [/* @__PURE__ */ b("span", { children: [
122
+ k("botlit.botsList.createdLabel", "Created"),
123
+ " ",
124
+ n(e.createdAt)
125
+ ] }), /* @__PURE__ */ y(u, {
121
126
  variant: "outline",
122
127
  className: "text-xs capitalize",
123
128
  children: e.strategyMode.toLowerCase().replace("_", " ")
@@ -127,83 +132,71 @@ var O = () => {
127
132
  }) })]
128
133
  })
129
134
  }, e.id))
130
- }) : /* @__PURE__ */ v(d, {
135
+ }) : /* @__PURE__ */ y(f, {
131
136
  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"
137
+ title: k("botlit.retrievalProfiles.empty.title", "No retrieval profiles"),
138
+ description: k("botlit.retrievalProfiles.empty.description", "Create retrieval profiles to customize how agents search and rank knowledge."),
139
+ action: /* @__PURE__ */ y(l, {
140
+ leftIcon: /* @__PURE__ */ y(T, { size: 16 }),
141
+ children: /* @__PURE__ */ y(x, {
142
+ to: A("retrieval-profiles/new"),
143
+ children: k("botlit.retrievalProfiles.actions.createProfile", "Create Profile")
139
144
  })
140
145
  })
141
146
  }),
142
- /* @__PURE__ */ y(g, {
147
+ /* @__PURE__ */ b(_, {
143
148
  treatment: "glass",
144
149
  glow: !0,
145
150
  className: "p-6",
146
- children: [/* @__PURE__ */ y("div", {
151
+ children: [/* @__PURE__ */ b("div", {
147
152
  className: "mb-4",
148
- children: [/* @__PURE__ */ y("h2", {
153
+ children: [/* @__PURE__ */ b("h2", {
149
154
  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", {
155
+ children: [/* @__PURE__ */ y(D, { size: 18 }), k("botlit.retrievalProfiles.overview.title", "Retrieval Profile Configuration")]
156
+ }), /* @__PURE__ */ y("p", {
152
157
  className: "text-sm text-text-secondary",
153
- children: "Retrieval profiles control how knowledge is fetched and ranked for agent responses"
158
+ children: k("botlit.retrievalProfiles.overview.description", "Retrieval profiles control how knowledge is fetched and ranked for agent responses")
154
159
  })]
155
- }), /* @__PURE__ */ y("div", {
160
+ }), /* @__PURE__ */ b("div", {
156
161
  className: "grid grid-cols-1 md:grid-cols-3 gap-6",
157
162
  children: [
158
- /* @__PURE__ */ y("div", {
163
+ /* @__PURE__ */ b("div", {
159
164
  className: "space-y-2",
160
- children: [/* @__PURE__ */ y("h4", {
165
+ children: [/* @__PURE__ */ b("h4", {
161
166
  className: "font-medium flex items-center gap-2",
162
- children: [/* @__PURE__ */ v(C, {
167
+ children: [/* @__PURE__ */ y(w, {
163
168
  size: 16,
164
169
  className: "text-primary"
165
- }), "Retrieval Modes"]
170
+ }), k("botlit.retrievalProfiles.overview.modesTitle", "Retrieval Modes")]
166
171
  }), /* @__PURE__ */ y("ul", {
167
172
  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
+ children: /* @__PURE__ */ y("li", { children: k("botlit.retrievalProfiles.overview.modesDescription", "Vector: semantic similarity search; Hybrid: vector + keyword combined; BM25: traditional keyword search.") })
173
174
  })]
174
175
  }),
175
- /* @__PURE__ */ y("div", {
176
+ /* @__PURE__ */ b("div", {
176
177
  className: "space-y-2",
177
- children: [/* @__PURE__ */ y("h4", {
178
+ children: [/* @__PURE__ */ b("h4", {
178
179
  className: "font-medium flex items-center gap-2",
179
- children: [/* @__PURE__ */ v(D, {
180
+ children: [/* @__PURE__ */ y(O, {
180
181
  size: 16,
181
182
  className: "text-primary"
182
- }), "Reranking"]
183
+ }), k("botlit.retrievalProfiles.overview.rerankingTitle", "Reranking")]
183
184
  }), /* @__PURE__ */ y("ul", {
184
185
  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
- ]
186
+ children: /* @__PURE__ */ y("li", { children: k("botlit.retrievalProfiles.overview.rerankingDescription", "Cross-encoder reranking for better relevance; improves precision at the cost of latency; recommended for complex queries.") })
190
187
  })]
191
188
  }),
192
- /* @__PURE__ */ y("div", {
189
+ /* @__PURE__ */ b("div", {
193
190
  className: "space-y-2",
194
- children: [/* @__PURE__ */ y("h4", {
191
+ children: [/* @__PURE__ */ b("h4", {
195
192
  className: "font-medium flex items-center gap-2",
196
- children: [/* @__PURE__ */ v(x, {
193
+ children: [/* @__PURE__ */ y(S, {
197
194
  size: 16,
198
195
  className: "text-primary"
199
- }), "Knowledge Sources"]
196
+ }), k("botlit.retrievalProfiles.overview.knowledgeSourcesTitle", "Knowledge Sources")]
200
197
  }), /* @__PURE__ */ y("ul", {
201
198
  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
- ]
199
+ children: /* @__PURE__ */ y("li", { children: k("botlit.retrievalProfiles.overview.knowledgeSourcesDescription", "Bind multiple knowledge bases, configure priority and weights, and set per-KB retrieval limits.") })
207
200
  })]
208
201
  })
209
202
  ]
@@ -214,6 +207,6 @@ var O = () => {
214
207
  });
215
208
  };
216
209
  //#endregion
217
- export { O as RetrievalProfilesPage };
210
+ export { k as RetrievalProfilesPage };
218
211
 
219
212
  //# sourceMappingURL=RetrievalProfilesPage.js.map
@@ -1 +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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"}
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 { useTr } from '../../shared/hooks/useTr';\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 t = useTr();\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={t('botlit.retrievalProfiles.title', 'Retrieval Profiles')}\n description={t(\n 'botlit.retrievalProfiles.description',\n 'Configure how agents retrieve and rank knowledge from knowledge bases'\n )}\n actions={\n <Button leftIcon={<Plus size={16} />}>\n <Link to={getPath('retrieval-profiles/new')}>\n {t('botlit.retrievalProfiles.actions.createProfile', 'Create Profile')}\n </Link>\n </Button>\n }\n >\n <div className=\"space-y-6\">\n <PagePurpose icon={<Database size={18} />}>\n {t(\n 'botlit.retrievalProfiles.purpose',\n '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.'\n )}\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={t('botlit.retrievalProfiles.searchPlaceholder', '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 {t('botlit.retrievalProfiles.actions.filters', '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 {t('botlit.retrievalProfiles.overview.mode', '{{mode}} mode', {\n mode: profile.strategyMode.toLowerCase().replace('_', ' '),\n })}\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 {t(\n 'botlit.retrievalProfiles.overview.citations',\n 'Citations: {{status}}',\n {\n status: profile.citationsRequired\n ? t('botlit.retrievalProfiles.overview.required', 'Required')\n : t('botlit.retrievalProfiles.overview.optional', 'Optional'),\n }\n )}\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\">\n {t('botlit.retrievalProfiles.topK', 'Top K: {{value}}', {\n value: profile.topK,\n })}\n </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>\n {t('botlit.botsList.createdLabel', 'Created')}{' '}\n {formatRelativeTime(profile.createdAt)}\n </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={t('botlit.retrievalProfiles.empty.title', 'No retrieval profiles')}\n description={t(\n 'botlit.retrievalProfiles.empty.description',\n 'Create retrieval profiles to customize how agents search and rank knowledge.'\n )}\n action={\n <Button leftIcon={<Plus size={16} />}>\n <Link to={getPath('retrieval-profiles/new')}>\n {t('botlit.retrievalProfiles.actions.createProfile', 'Create Profile')}\n </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 {t('botlit.retrievalProfiles.overview.title', 'Retrieval Profile Configuration')}\n </h2>\n <p className=\"text-sm text-text-secondary\">\n {t(\n 'botlit.retrievalProfiles.overview.description',\n 'Retrieval profiles control how knowledge is fetched and ranked for agent responses'\n )}\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 {t('botlit.retrievalProfiles.overview.modesTitle', 'Retrieval Modes')}\n </h4>\n <ul className=\"text-sm text-text-secondary space-y-1\">\n <li>\n {t(\n 'botlit.retrievalProfiles.overview.modesDescription',\n 'Vector: semantic similarity search; Hybrid: vector + keyword combined; BM25: traditional keyword search.'\n )}\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 {t('botlit.retrievalProfiles.overview.rerankingTitle', 'Reranking')}\n </h4>\n <ul className=\"text-sm text-text-secondary space-y-1\">\n <li>\n {t(\n 'botlit.retrievalProfiles.overview.rerankingDescription',\n 'Cross-encoder reranking for better relevance; improves precision at the cost of latency; recommended for complex queries.'\n )}\n </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 {t('botlit.retrievalProfiles.overview.knowledgeSourcesTitle', 'Knowledge Sources')}\n </h4>\n <ul className=\"text-sm text-text-secondary space-y-1\">\n <li>\n {t(\n 'botlit.retrievalProfiles.overview.knowledgeSourcesDescription',\n 'Bind multiple knowledge bases, configure priority and weights, and set per-KB retrieval limits.'\n )}\n </li>\n </ul>\n </div>\n </div>\n </GlassCard>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}