bazilion 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +25 -5
- package/dist/daemon.js.map +1 -1
- package/dist/web/client/assets/AgentTabs-BcmmwYJc.js +1 -0
- package/dist/web/client/assets/ConfigPage-BCLp-FUC.js +1 -0
- package/dist/web/client/assets/ConfirmDialog-CyL9A20V.js +1 -0
- package/dist/web/client/assets/FieldRow-D6REbYUa.js +1 -0
- package/dist/web/client/assets/Page-NV96O47A.js +1 -0
- package/dist/web/client/assets/ProductionTeamPolicyEditor-DBKnOezm.js +7 -0
- package/dist/web/client/assets/{ProfileCommunicationEditor-BcSf2Hao.js → ProfileCommunicationEditor-4RK2laqO.js} +1 -1
- package/dist/web/client/assets/SectionTabs-4kCQXuFY.js +1 -0
- package/dist/web/client/assets/TeamTabs-CdtNEqt4.js +1 -0
- package/dist/web/client/assets/{TemplatesTabs-CyDVzrOl.js → TemplatesTabs-CZyss2Y0.js} +1 -1
- package/dist/web/client/assets/UnsavedChangesGuard-CEoK-ZcN.js +1 -0
- package/dist/web/client/assets/_id-4ZS-w_Aj.js +1 -0
- package/dist/web/client/assets/{_id-DWTMH7Eb.js → _id-DIqtdQij.js} +1 -1
- package/dist/web/client/assets/_id-DbcC2E7F.js +1 -0
- package/dist/web/client/assets/_id-f_r5M0p3.js +1 -0
- package/dist/web/client/assets/activity-CB9Ufth-.js +1 -0
- package/dist/web/client/assets/agents-D-JGXVg9.js +1 -0
- package/dist/web/client/assets/agents-DS2XafoA.js +1 -0
- package/dist/web/client/assets/approvals-Cke_mrJv.js +1 -0
- package/dist/web/client/assets/attention-PYwRM2wC.js +1 -0
- package/dist/web/client/assets/chevron-right-BG4OeFRQ.js +1 -0
- package/dist/web/client/assets/config-DF9Gqmfa.js +3 -0
- package/dist/web/client/assets/{inbox-D2NypLee.js → inbox-DC_HdOfI.js} +1 -1
- package/dist/web/client/assets/index-Cp6UHWr2.js +52 -0
- package/dist/web/client/assets/learning-BfrQ4YZY.js +1 -0
- package/dist/web/client/assets/login-D4n3AcBR.js +1 -0
- package/dist/web/client/assets/mcp-CnjQc_JJ.js +1 -0
- package/dist/web/client/assets/members-wxsVTJdW.js +1 -0
- package/dist/web/client/assets/memory-Du60O3pE.js +1 -0
- package/dist/web/client/assets/{policy-CHM95pMU.js → policy-BOfnkJsL.js} +1 -1
- package/dist/web/client/assets/{preload-helper-mNuBjNXU.js → preload-helper-bztXdkDj.js} +1 -1
- package/dist/web/client/assets/routes-B9CuhzUW.js +1 -0
- package/dist/web/client/assets/services-DyvqJqM2.js +1 -0
- package/dist/web/client/assets/skills-DQo7ioW7.js +1 -0
- package/dist/web/client/assets/styles-B5vcgXln.css +2 -0
- package/dist/web/client/assets/{teams-Dm_huGxn.js → teams-DPggy97H.js} +1 -1
- package/dist/web/client/assets/teams-DdawcfNR.js +1 -0
- package/dist/web/client/assets/telegram-DcTeDpP5.js +1 -0
- package/dist/web/client/assets/tokens-CIEKwZXc.js +1 -0
- package/dist/web/client/assets/triggers-Bc2RrUPm.js +1 -0
- package/dist/web/client/assets/utils-B6KiDbIe.js +1 -0
- package/dist/web/client/assets/welcome-DlhNXUIa.js +1 -0
- package/dist/web/client/assets/wire-constants-BzdHSc6A.js +74 -0
- package/dist/web/client/assets/x-DAXGIe_Q.js +1 -0
- package/dist/web/server/assets/{AgentTabs-aXdsiiMp.js → AgentTabs-Dq8hDM2Q.js} +9 -2
- package/dist/web/server/assets/{ChatPane-Ba5wTsVk.js → ChatPane-CgSe7tsy.js} +81 -43
- package/dist/web/server/assets/{ConfigPage-BKlh5vOU.js → ConfigPage-CiQ-gxmJ.js} +3 -2
- package/dist/web/server/assets/ConfirmDialog-C-MPYYSU.js +99 -0
- package/dist/web/server/assets/FieldRow-DCOF07kl.js +160 -0
- package/dist/web/server/assets/{Page-LENulSXY.js → Page-Bz-ydB8j.js} +4 -10
- package/dist/web/server/assets/{ProductionTeamPolicyEditor-Y4mzFFvR.js → ProductionTeamPolicyEditor-DQSdP7Yx.js} +140 -123
- package/dist/web/server/assets/{SectionTabs-BJTPr5nU.js → SectionTabs-B2Yw81XN.js} +2 -2
- package/dist/web/server/assets/{Sidebar-DsRVCszF.js → Sidebar-DKyk7oIo.js} +563 -283
- package/dist/web/server/assets/{TeamTabs-zZzbP1t_.js → TeamTabs-Co3n2exj.js} +2 -6
- package/dist/web/server/assets/{TemplatesTabs-CcRxZhJe.js → TemplatesTabs-B0fA361R.js} +1 -1
- package/dist/web/server/assets/UnsavedChangesGuard-CiStXyBI.js +40 -0
- package/dist/web/server/assets/{_id-xTD_6ApX.js → _id-BAA9KJBU.js} +1 -1
- package/dist/web/server/assets/{_id-BQ2zoMiR.js → _id-BM5m2FLT.js} +4 -4
- package/dist/web/server/assets/{_id-BENqNBfK.js → _id-BYKpT2Tu.js} +1 -2
- package/dist/web/server/assets/{_id-BreRHYV2.js → _id-BeKhPKw3.js} +350 -185
- package/dist/web/server/assets/{_id-CPIXIqyO.js → _id-BqWTB8Wl.js} +188 -86
- package/dist/web/server/assets/{_id-DkrNqqTw.js → _id-BwvCtzlD.js} +1 -1
- package/dist/web/server/assets/{_id-BZWunvy7.js → _id-DYU6uIBx.js} +0 -1
- package/dist/web/server/assets/{_id-BFELaMIN.js → _id-ndxFHx0t.js} +75 -71
- package/dist/web/server/assets/{_id-CvYqVJPU.js → _id-sNu5aXZt.js} +2 -1
- package/dist/web/server/assets/{_tanstack-start-manifest_v-COkJjXt_.js → _tanstack-start-manifest_v-C-OiOZeM.js} +110 -87
- package/dist/web/server/assets/{activity-B6N1T_5N.js → activity-BWv1goK6.js} +3 -3
- package/dist/web/server/assets/{activity-BazZNfvf.js → activity-LjpblbDL.js} +1 -1
- package/dist/web/server/assets/{agents-BpSeOA30.js → agents-BDFGrU3o.js} +1 -1
- package/dist/web/server/assets/{agents-DY630p6x.js → agents-CJk4pxKu.js} +1 -1
- package/dist/web/server/assets/{agents-wSYNPuyK.js → agents-CYw1xHoY.js} +138 -16
- package/dist/web/server/assets/{agents-DfoLnTyD.js → agents-DfNKc_Q7.js} +52 -8
- package/dist/web/server/assets/{approvals-BkUGmYU9.js → approvals-7JOoBchn.js} +1 -1
- package/dist/web/server/assets/{approvals-BYajNOdE.js → approvals-Bz123liE.js} +59 -21
- package/dist/web/server/assets/{attention-Bw_wiiqI.js → attention-B35JvhOL.js} +1 -1
- package/dist/web/server/assets/{attention-Z3bGuxOD.js → attention-C1pPWSXw.js} +3 -3
- package/dist/web/server/assets/{config-wYtIhkRm.js → config-BlMkHStx.js} +1 -1
- package/dist/web/server/assets/config-ExacOzHX.js +958 -0
- package/dist/web/server/assets/{inbox-DTTfSuGU.js → inbox-RweGCV3D.js} +3 -3
- package/dist/web/server/assets/{inbox-0iiSg-Y1.js → inbox-cu3jLzNP.js} +1 -1
- package/dist/web/server/assets/{learning-DpyLNVe8.js → learning-BaKM6qaw.js} +1 -1
- package/dist/web/server/assets/{learning-fG8316uc.js → learning-CbtNlqYo.js} +76 -23
- package/dist/web/server/assets/{login-D_GDeTrB.js → login-BNj3U6ok.js} +21 -11
- package/dist/web/server/assets/{login-CrFVVUaE.js → login-Be8eP4Jp.js} +2 -2
- package/dist/web/server/assets/{mcp-BQtp2T87.js → mcp-B0goWO8Q.js} +1 -1
- package/dist/web/server/assets/mcp-CiBs8unU.js +332 -0
- package/dist/web/server/assets/members-DHYTVgwb.js +100 -0
- package/dist/web/server/assets/{members-DXu2oAS_.js → members-DiYtr-zm.js} +1 -1
- package/dist/web/server/assets/{memory-C6fX_FKI.js → memory-CkXUgf5s.js} +150 -48
- package/dist/web/server/assets/{memory-Iq2M0-Yc.js → memory-DTFEmfF3.js} +1 -1
- package/dist/web/server/assets/{policy-D7kj3Cy7.js → policy-BddK4xom.js} +1 -1
- package/dist/web/server/assets/{policy-Bg6u-rTq.js → policy-Bvvav8fh.js} +4 -4
- package/dist/web/server/assets/{router-D-6TzLRZ.js → router-pjH2t8Rl.js} +345 -172
- package/dist/web/server/assets/{routes-CiPfEldd.js → routes-BgHisAxH.js} +22 -5
- package/dist/web/server/assets/{routes-CNRzy79H.js → routes-COtkyZG1.js} +1 -1
- package/dist/web/server/assets/{routes-D933ngZS.js → routes-DAU2g7Uz.js} +1 -1
- package/dist/web/server/assets/services-ClyGBU7W.js +83 -0
- package/dist/web/server/assets/{services-OB4LAr2A.js → services-DgoU1udp.js} +1 -1
- package/dist/web/server/assets/{skills-Babb9jsQ.js → skills-CYih9TJw.js} +47 -6
- package/dist/web/server/assets/{skills-D5DQL8bM.js → skills-Dw3cI3si.js} +1 -1
- package/dist/web/server/assets/{start-uKQNK6if.js → start-D4Wq9iTa.js} +1 -1
- package/dist/web/server/assets/{teams-Dz6ZEMRo.js → teams-BJuoNOTB.js} +1 -1
- package/dist/web/server/assets/{teams-Bk6ZT0MD.js → teams-DF3RViAg.js} +3 -3
- package/dist/web/server/assets/{teams-DqC4wZxu.js → teams-DFnuc660.js} +1 -1
- package/dist/web/server/assets/{teams-Cc2Czynq.js → teams-TV6nbEN_.js} +101 -10
- package/dist/web/server/assets/{telegram-J4T0XhwQ.js → telegram-DbOFpTFm.js} +1 -1
- package/dist/web/server/assets/{telegram-DUbDIVGX.js → telegram-Dj4Wwhd6.js} +147 -47
- package/dist/web/server/assets/{tokens-CJM_0NDa.js → tokens-DDwtO15P.js} +88 -19
- package/dist/web/server/assets/{tokens-DO5BzNOn.js → tokens-_2hptHP6.js} +1 -1
- package/dist/web/server/assets/{triggers-BdBx-HwR.js → triggers-BvjYNmmY.js} +1 -1
- package/dist/web/server/assets/triggers-CHk9O3rU.js +367 -0
- package/dist/web/server/assets/utils-C_uf36nf.js +8 -0
- package/dist/web/server/assets/{welcome-DDB11L5j.js → welcome-B8nchXdF.js} +9 -8
- package/dist/web/server/server.js +5 -9
- package/package.json +3 -3
- package/dist/web/client/assets/AgentTabs-R6gSjIj3.js +0 -1
- package/dist/web/client/assets/ConfigPage-BCwfgyjD.js +0 -1
- package/dist/web/client/assets/FieldRow-avAFLgYW.js +0 -1
- package/dist/web/client/assets/Page-CwNuDhWz.js +0 -1
- package/dist/web/client/assets/ProductionTeamPolicyEditor-DdpYInwV.js +0 -7
- package/dist/web/client/assets/SectionTabs-DZzy01az.js +0 -1
- package/dist/web/client/assets/TeamTabs-Bk89JfN7.js +0 -1
- package/dist/web/client/assets/_id-CAJTTnee.js +0 -1
- package/dist/web/client/assets/_id-CN6jPaBu.js +0 -1
- package/dist/web/client/assets/_id-DGwJqqDc.js +0 -1
- package/dist/web/client/assets/activity-DK_M0-bn.js +0 -1
- package/dist/web/client/assets/agents-B-i5pASm.js +0 -1
- package/dist/web/client/assets/agents-n8U7qNxw.js +0 -1
- package/dist/web/client/assets/approvals-CmVxCy0Z.js +0 -1
- package/dist/web/client/assets/attention-F0lUQCWE.js +0 -1
- package/dist/web/client/assets/chevron-down-OndG7r1U.js +0 -1
- package/dist/web/client/assets/config-DuApZ9xS.js +0 -3
- package/dist/web/client/assets/context-C1sMnW6K.js +0 -1
- package/dist/web/client/assets/index-B3vdrEEg.js +0 -12
- package/dist/web/client/assets/learning-zYDCfVxT.js +0 -1
- package/dist/web/client/assets/login-B1Un51Zx.js +0 -1
- package/dist/web/client/assets/mcp-DSVmJBdv.js +0 -1
- package/dist/web/client/assets/members-Pl7hXJcN.js +0 -1
- package/dist/web/client/assets/memory-Co3BEaAq.js +0 -1
- package/dist/web/client/assets/plus-Dor-_wmL.js +0 -1
- package/dist/web/client/assets/routes-D29qjwG0.js +0 -1
- package/dist/web/client/assets/services-CCQ_6YWQ.js +0 -1
- package/dist/web/client/assets/skills-3xAIvzvP.js +0 -1
- package/dist/web/client/assets/styles-D6RPN7RK.css +0 -2
- package/dist/web/client/assets/teams-UGLyjHYj.js +0 -1
- package/dist/web/client/assets/telegram-3KvrJVO6.js +0 -1
- package/dist/web/client/assets/tokens-DUSFmV5_.js +0 -1
- package/dist/web/client/assets/triggers-DlQ2KF1h.js +0 -1
- package/dist/web/client/assets/welcome-DkP8qzK1.js +0 -1
- package/dist/web/client/assets/wire-constants-BhVKOCQa.js +0 -74
- package/dist/web/server/assets/FieldRow-B4eTegH9.js +0 -94
- package/dist/web/server/assets/config-DGzM28F_.js +0 -554
- package/dist/web/server/assets/context-BkDDwbby.js +0 -12
- package/dist/web/server/assets/context-DMc0KyHh.js +0 -12
- package/dist/web/server/assets/context-poimKI7w.js +0 -47
- package/dist/web/server/assets/mcp-DlgXUcAS.js +0 -261
- package/dist/web/server/assets/members-CteHKPSF.js +0 -46
- package/dist/web/server/assets/services-DJRA1A0-.js +0 -79
- package/dist/web/server/assets/triggers-B87fycBl.js +0 -216
|
@@ -2,7 +2,7 @@ import { n as createServerFn } from "../server.js";
|
|
|
2
2
|
import { t as createSsrRpc } from "./createSsrRpc-6LHNEsSK.js";
|
|
3
3
|
import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
|
|
4
4
|
//#region src/routes/agents/index.tsx
|
|
5
|
-
var $$splitComponentImporter = () => import("./agents-
|
|
5
|
+
var $$splitComponentImporter = () => import("./agents-CYw1xHoY.js");
|
|
6
6
|
var fetchAgents = createServerFn({ method: "POST" }).validator((d) => d).handler(createSsrRpc("f715bab0037380aa3db7e237e7cf1e74168c363f48a960bb1ddfa5560de3a74e"));
|
|
7
7
|
var Route = createFileRoute("/agents/")({
|
|
8
8
|
validateSearch: (s) => ({ all: s.all === "1" ? "1" : void 0 }),
|
|
@@ -2,7 +2,7 @@ import { n as createServerFn } from "../server.js";
|
|
|
2
2
|
import { t as createSsrRpc } from "./createSsrRpc-6LHNEsSK.js";
|
|
3
3
|
import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
|
|
4
4
|
//#region src/routes/templates/agents/index.tsx
|
|
5
|
-
var $$splitComponentImporter = () => import("./agents-
|
|
5
|
+
var $$splitComponentImporter = () => import("./agents-DfNKc_Q7.js");
|
|
6
6
|
var fetchProfiles = createServerFn({ method: "GET" }).handler(createSsrRpc("bc31355f2be9889a616d03c35062d483ea77c3f967af9432d721626a81078ef3"));
|
|
7
7
|
var Route = createFileRoute("/templates/agents/")({
|
|
8
8
|
loader: () => fetchProfiles(),
|
|
@@ -1,33 +1,51 @@
|
|
|
1
|
-
import { t as Route } from "./agents-
|
|
2
|
-
import { a as StatusBadge, i as SectionCard, n as PageHeader, r as PageShell, t as EmptyState } from "./Page-
|
|
1
|
+
import { t as Route } from "./agents-BDFGrU3o.js";
|
|
2
|
+
import { a as StatusBadge, i as SectionCard, n as PageHeader, r as PageShell, t as EmptyState } from "./Page-Bz-ydB8j.js";
|
|
3
3
|
import { t as AgentAvatar } from "./AgentAvatar-8gTAy_tP.js";
|
|
4
4
|
import { t as Button } from "./Button-Dsnw22OF.js";
|
|
5
|
+
import { t as ConfirmDialog } from "./ConfirmDialog-C-MPYYSU.js";
|
|
5
6
|
import { useState } from "react";
|
|
6
7
|
import { useRouter } from "@tanstack/react-router";
|
|
7
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
9
|
//#region src/routes/agents/index.tsx?tsr-split=component
|
|
9
10
|
function AgentsPage() {
|
|
10
11
|
const { agents, profiles, teams, modelGroups } = Route.useLoaderData();
|
|
11
12
|
const { all } = Route.useSearch();
|
|
12
13
|
const showAll = all === "1";
|
|
13
14
|
const router = useRouter();
|
|
15
|
+
const [pendingAction, setPendingAction] = useState(null);
|
|
16
|
+
const [actionError, setActionError] = useState(null);
|
|
14
17
|
async function archive(id) {
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
const response = await fetch(`/api/agents/${encodeURIComponent(id)}/archive`, { method: "POST" });
|
|
19
|
+
if (!response.ok && response.status !== 204) {
|
|
20
|
+
const body = await response.json().catch(() => null);
|
|
21
|
+
throw new Error(body?.error ?? `Could not archive agent (${response.status})`);
|
|
22
|
+
}
|
|
17
23
|
await router.invalidate();
|
|
18
24
|
}
|
|
19
25
|
async function unarchive(id) {
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
setActionError(null);
|
|
27
|
+
try {
|
|
28
|
+
const response = await fetch(`/api/agents/${encodeURIComponent(id)}/unarchive`, { method: "POST" });
|
|
29
|
+
if (!response.ok && response.status !== 204) {
|
|
30
|
+
const body = await response.json().catch(() => null);
|
|
31
|
+
throw new Error(body?.error ?? `Could not restore agent (${response.status})`);
|
|
32
|
+
}
|
|
33
|
+
await router.invalidate();
|
|
34
|
+
} catch (error) {
|
|
35
|
+
setActionError(error instanceof Error ? error.message : String(error));
|
|
36
|
+
}
|
|
22
37
|
}
|
|
23
38
|
async function del(id) {
|
|
24
|
-
if (!confirm("permanently delete this agent and all its data?")) return;
|
|
25
39
|
const agent = agents.find((candidate) => candidate.id === id);
|
|
26
|
-
if (!agent)
|
|
40
|
+
if (!agent) throw new Error("The selected agent no longer exists.");
|
|
27
41
|
const policyResponse = await fetch(`/api/teams/${encodeURIComponent(agent.teamId)}/policy`);
|
|
28
|
-
if (!policyResponse.ok)
|
|
42
|
+
if (!policyResponse.ok) throw new Error("The current Team policy is unavailable. Nothing was deleted.");
|
|
29
43
|
const policy = await policyResponse.json();
|
|
30
|
-
await fetch(`/api/agents/${encodeURIComponent(id)}?expectedTeamRevision=${policy.teamPolicy.revision}`, { method: "DELETE" });
|
|
44
|
+
const response = await fetch(`/api/agents/${encodeURIComponent(id)}?expectedTeamRevision=${policy.teamPolicy.revision}`, { method: "DELETE" });
|
|
45
|
+
if (!response.ok && response.status !== 204) {
|
|
46
|
+
const body = await response.json().catch(() => null);
|
|
47
|
+
throw new Error(body?.error ?? `Could not delete agent (${response.status})`);
|
|
48
|
+
}
|
|
31
49
|
await router.invalidate();
|
|
32
50
|
}
|
|
33
51
|
return /* @__PURE__ */ jsxs(PageShell, {
|
|
@@ -49,14 +67,19 @@ function AgentsPage() {
|
|
|
49
67
|
modelGroups,
|
|
50
68
|
onSpawned: router.invalidate
|
|
51
69
|
}),
|
|
70
|
+
actionError && /* @__PURE__ */ jsx("p", {
|
|
71
|
+
role: "alert",
|
|
72
|
+
className: "err",
|
|
73
|
+
children: actionError
|
|
74
|
+
}),
|
|
52
75
|
/* @__PURE__ */ jsx(SectionCard, {
|
|
53
76
|
title: showAll ? "All agents" : "Current agents",
|
|
54
77
|
description: showAll ? "Active and archived agents are shown together." : "Archived agents stay hidden until you choose to show them.",
|
|
55
78
|
children: agents.length === 0 ? /* @__PURE__ */ jsx(EmptyState, {
|
|
56
79
|
title: showAll ? "No agents yet" : "No current agents",
|
|
57
80
|
description: "Spawn an agent above to give a team its first working member."
|
|
58
|
-
}) : /* @__PURE__ */ jsx("div", {
|
|
59
|
-
className: "overflow-x-auto",
|
|
81
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
|
|
82
|
+
className: "hidden overflow-x-auto md:block",
|
|
60
83
|
children: /* @__PURE__ */ jsxs("table", {
|
|
61
84
|
className: "min-w-[760px]",
|
|
62
85
|
children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
@@ -96,7 +119,10 @@ function AgentsPage() {
|
|
|
96
119
|
className: "flex justify-end gap-1.5",
|
|
97
120
|
children: [a.status !== "archived" ? /* @__PURE__ */ jsx(Button, {
|
|
98
121
|
variant: "ghost",
|
|
99
|
-
onClick: () =>
|
|
122
|
+
onClick: () => setPendingAction({
|
|
123
|
+
kind: "archive",
|
|
124
|
+
agent: a
|
|
125
|
+
}),
|
|
100
126
|
children: "Archive"
|
|
101
127
|
}) : /* @__PURE__ */ jsx(Button, {
|
|
102
128
|
variant: "ghost",
|
|
@@ -104,13 +130,108 @@ function AgentsPage() {
|
|
|
104
130
|
children: "Restore"
|
|
105
131
|
}), /* @__PURE__ */ jsx(Button, {
|
|
106
132
|
variant: "danger",
|
|
107
|
-
onClick: () =>
|
|
133
|
+
onClick: () => setPendingAction({
|
|
134
|
+
kind: "delete",
|
|
135
|
+
agent: a
|
|
136
|
+
}),
|
|
108
137
|
children: "Delete"
|
|
109
138
|
})]
|
|
110
139
|
}) })
|
|
111
140
|
] }, a.id)) })]
|
|
112
141
|
})
|
|
113
|
-
})
|
|
142
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
143
|
+
className: "grid gap-3 md:hidden",
|
|
144
|
+
children: agents.map((agent) => /* @__PURE__ */ jsxs("article", {
|
|
145
|
+
className: "min-w-0 rounded-xl border border-border bg-muted/20 p-4",
|
|
146
|
+
children: [
|
|
147
|
+
/* @__PURE__ */ jsxs("div", {
|
|
148
|
+
className: "flex min-w-0 items-start gap-3",
|
|
149
|
+
children: [
|
|
150
|
+
/* @__PURE__ */ jsx(AgentAvatar, {
|
|
151
|
+
identity: agent.identity,
|
|
152
|
+
size: 36
|
|
153
|
+
}),
|
|
154
|
+
/* @__PURE__ */ jsxs("div", {
|
|
155
|
+
className: "min-w-0 flex-1",
|
|
156
|
+
children: [/* @__PURE__ */ jsx("a", {
|
|
157
|
+
href: `/agents/${agent.id}`,
|
|
158
|
+
className: "block truncate font-semibold text-foreground",
|
|
159
|
+
children: agent.name
|
|
160
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
161
|
+
className: "mt-0.5 truncate text-xs text-muted-foreground",
|
|
162
|
+
children: agent.identity?.creature || agent.identity?.vibe ? [agent.identity?.creature, agent.identity?.vibe].filter(Boolean).join(" · ") : `Agent template: ${agent.profileId}`
|
|
163
|
+
})]
|
|
164
|
+
}),
|
|
165
|
+
/* @__PURE__ */ jsx(StatusBadge, {
|
|
166
|
+
variant: agent.status === "archived" ? "warning" : "success",
|
|
167
|
+
children: agent.status
|
|
168
|
+
})
|
|
169
|
+
]
|
|
170
|
+
}),
|
|
171
|
+
/* @__PURE__ */ jsxs("dl", {
|
|
172
|
+
className: "mt-3 grid grid-cols-2 gap-2 text-xs",
|
|
173
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
174
|
+
className: "min-w-0 rounded-lg bg-muted p-2",
|
|
175
|
+
children: [/* @__PURE__ */ jsx("dt", {
|
|
176
|
+
className: "font-semibold text-muted-foreground",
|
|
177
|
+
children: "ID"
|
|
178
|
+
}), /* @__PURE__ */ jsxs("dd", {
|
|
179
|
+
className: "mt-0.5 truncate font-mono",
|
|
180
|
+
title: agent.id,
|
|
181
|
+
children: [agent.id.slice(0, 12), "…"]
|
|
182
|
+
})]
|
|
183
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
184
|
+
className: "min-w-0 rounded-lg bg-muted p-2",
|
|
185
|
+
children: [/* @__PURE__ */ jsx("dt", {
|
|
186
|
+
className: "font-semibold text-muted-foreground",
|
|
187
|
+
children: "Agent template"
|
|
188
|
+
}), /* @__PURE__ */ jsx("dd", {
|
|
189
|
+
className: "mt-0.5 truncate font-mono",
|
|
190
|
+
title: agent.profileId,
|
|
191
|
+
children: agent.profileId
|
|
192
|
+
})]
|
|
193
|
+
})]
|
|
194
|
+
}),
|
|
195
|
+
/* @__PURE__ */ jsxs("div", {
|
|
196
|
+
className: "mt-3 flex flex-wrap gap-2",
|
|
197
|
+
children: [agent.status === "archived" ? /* @__PURE__ */ jsx(Button, {
|
|
198
|
+
variant: "ghost",
|
|
199
|
+
onClick: () => void unarchive(agent.id),
|
|
200
|
+
children: "Restore"
|
|
201
|
+
}) : /* @__PURE__ */ jsx(Button, {
|
|
202
|
+
variant: "ghost",
|
|
203
|
+
onClick: () => setPendingAction({
|
|
204
|
+
kind: "archive",
|
|
205
|
+
agent
|
|
206
|
+
}),
|
|
207
|
+
children: "Archive"
|
|
208
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
209
|
+
variant: "danger",
|
|
210
|
+
onClick: () => setPendingAction({
|
|
211
|
+
kind: "delete",
|
|
212
|
+
agent
|
|
213
|
+
}),
|
|
214
|
+
children: "Delete"
|
|
215
|
+
})]
|
|
216
|
+
})
|
|
217
|
+
]
|
|
218
|
+
}, agent.id))
|
|
219
|
+
})] })
|
|
220
|
+
}),
|
|
221
|
+
/* @__PURE__ */ jsx(ConfirmDialog, {
|
|
222
|
+
open: pendingAction !== null,
|
|
223
|
+
onOpenChange: (open) => {
|
|
224
|
+
if (!open) setPendingAction(null);
|
|
225
|
+
},
|
|
226
|
+
title: pendingAction?.kind === "delete" ? `Delete ${pendingAction.agent.name} permanently?` : `Archive ${pendingAction?.agent.name ?? "agent"}?`,
|
|
227
|
+
description: pendingAction?.kind === "delete" ? /* @__PURE__ */ jsx("p", { children: "This permanently removes the Agent, its messages, triggers, skill attachments, sessions, and private on-disk directory. This cannot be undone." }) : /* @__PURE__ */ jsx("p", { children: "The Agent will stop appearing in current lists and cannot receive normal work. You can restore it later from “Show archived”." }),
|
|
228
|
+
confirmLabel: pendingAction?.kind === "delete" ? "Delete permanently" : "Archive agent",
|
|
229
|
+
confirmVariant: pendingAction?.kind === "delete" ? "danger" : "primary",
|
|
230
|
+
onConfirm: async () => {
|
|
231
|
+
if (!pendingAction) return;
|
|
232
|
+
if (pendingAction.kind === "delete") await del(pendingAction.agent.id);
|
|
233
|
+
else await archive(pendingAction.agent.id);
|
|
234
|
+
}
|
|
114
235
|
})
|
|
115
236
|
]
|
|
116
237
|
});
|
|
@@ -169,6 +290,7 @@ function SpawnForm({ profiles, teams, modelGroups, onSpawned }) {
|
|
|
169
290
|
onSubmit: submit,
|
|
170
291
|
children: [
|
|
171
292
|
err && /* @__PURE__ */ jsx("div", {
|
|
293
|
+
role: "alert",
|
|
172
294
|
className: "err",
|
|
173
295
|
children: err
|
|
174
296
|
}),
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { t as Route } from "./agents-
|
|
2
|
-
import { n as PageHeader, r as PageShell } from "./Page-
|
|
1
|
+
import { t as Route } from "./agents-CJk4pxKu.js";
|
|
2
|
+
import { n as PageHeader, r as PageShell } from "./Page-Bz-ydB8j.js";
|
|
3
3
|
import { t as Button } from "./Button-Dsnw22OF.js";
|
|
4
|
+
import { t as ConfirmDialog } from "./ConfirmDialog-C-MPYYSU.js";
|
|
5
|
+
import { t as UnsavedChangesGuard } from "./UnsavedChangesGuard-CiStXyBI.js";
|
|
4
6
|
import { t as DEFAULT_PROFILE_COMMUNICATION } from "./team-policy-vPG01onj.js";
|
|
5
7
|
import { t as ProfileCommunicationEditor } from "./ProfileCommunicationEditor-C2RU-2QB.js";
|
|
6
|
-
import { t as TemplatesTabs } from "./TemplatesTabs-
|
|
8
|
+
import { t as TemplatesTabs } from "./TemplatesTabs-B0fA361R.js";
|
|
7
9
|
import { useState } from "react";
|
|
8
10
|
import { useRouter } from "@tanstack/react-router";
|
|
9
11
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -11,13 +13,13 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
11
13
|
function ProfilesPage() {
|
|
12
14
|
const { profiles, modelGroups, skills, templates } = Route.useLoaderData();
|
|
13
15
|
const router = useRouter();
|
|
16
|
+
const [deleteTarget, setDeleteTarget] = useState(null);
|
|
17
|
+
const [deleteError, setDeleteError] = useState(null);
|
|
14
18
|
async function del(id) {
|
|
15
|
-
|
|
16
|
-
const res = await fetch(`/api/profiles/${id}`, { method: "DELETE" });
|
|
19
|
+
const res = await fetch(`/api/profiles/${encodeURIComponent(id)}`, { method: "DELETE" });
|
|
17
20
|
if (!res.ok && res.status !== 204) {
|
|
18
21
|
const body = await res.json().catch(() => null);
|
|
19
|
-
|
|
20
|
-
return;
|
|
22
|
+
throw new Error(body?.error ?? res.statusText);
|
|
21
23
|
}
|
|
22
24
|
await router.invalidate();
|
|
23
25
|
}
|
|
@@ -29,6 +31,11 @@ function ProfilesPage() {
|
|
|
29
31
|
title: "Agent templates",
|
|
30
32
|
description: "Define reusable identity, model, skills, and communication defaults for newly spawned agents."
|
|
31
33
|
}),
|
|
34
|
+
deleteError && /* @__PURE__ */ jsx("p", {
|
|
35
|
+
role: "alert",
|
|
36
|
+
className: "err",
|
|
37
|
+
children: deleteError
|
|
38
|
+
}),
|
|
32
39
|
/* @__PURE__ */ jsx(TemplatesTabs, {}),
|
|
33
40
|
/* @__PURE__ */ jsx(CreateProfileForm, {
|
|
34
41
|
modelGroups,
|
|
@@ -65,7 +72,10 @@ function ProfilesPage() {
|
|
|
65
72
|
}),
|
|
66
73
|
/* @__PURE__ */ jsx("td", { children: p.agentCount === 0 ? /* @__PURE__ */ jsx(Button, {
|
|
67
74
|
variant: "danger",
|
|
68
|
-
onClick: () =>
|
|
75
|
+
onClick: () => {
|
|
76
|
+
setDeleteError(null);
|
|
77
|
+
setDeleteTarget(p);
|
|
78
|
+
},
|
|
69
79
|
children: "delete"
|
|
70
80
|
}) : /* @__PURE__ */ jsx("span", {
|
|
71
81
|
className: "muted",
|
|
@@ -74,6 +84,31 @@ function ProfilesPage() {
|
|
|
74
84
|
}) })
|
|
75
85
|
] }, p.id);
|
|
76
86
|
})] })] })
|
|
87
|
+
}),
|
|
88
|
+
/* @__PURE__ */ jsx(ConfirmDialog, {
|
|
89
|
+
open: deleteTarget !== null,
|
|
90
|
+
title: `Delete Agent template ${deleteTarget?.name ?? ""}?`,
|
|
91
|
+
description: /* @__PURE__ */ jsxs("p", { children: [
|
|
92
|
+
"This permanently deletes ",
|
|
93
|
+
/* @__PURE__ */ jsx("code", {
|
|
94
|
+
className: "font-mono",
|
|
95
|
+
children: deleteTarget?.id
|
|
96
|
+
}),
|
|
97
|
+
" and all of its template files. It cannot be restored. Existing Agents keep their own copies."
|
|
98
|
+
] }),
|
|
99
|
+
confirmLabel: "delete Agent template",
|
|
100
|
+
onConfirm: async () => {
|
|
101
|
+
if (!deleteTarget) return;
|
|
102
|
+
try {
|
|
103
|
+
await del(deleteTarget.id);
|
|
104
|
+
} catch (err) {
|
|
105
|
+
setDeleteError(err instanceof Error ? err.message : String(err));
|
|
106
|
+
throw err;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
onOpenChange: (open) => {
|
|
110
|
+
if (!open) setDeleteTarget(null);
|
|
111
|
+
}
|
|
77
112
|
})
|
|
78
113
|
]
|
|
79
114
|
});
|
|
@@ -100,6 +135,7 @@ function CreateProfileForm({ modelGroups, skills, templates, onCreated }) {
|
|
|
100
135
|
const [picked, setPicked] = useState(/* @__PURE__ */ new Set());
|
|
101
136
|
const [error, setError] = useState(null);
|
|
102
137
|
const [submitting, setSubmitting] = useState(false);
|
|
138
|
+
const dirty = id.length > 0 || name.length > 0 || model.length > 0 || soul !== templates.soul || identity !== templates.identity || bootstrap !== templates.bootstrap || !enableBootstrap || agentsTpl !== templates.agents || !enableAgents || toolsTpl !== templates.tools || !enableTools || skillsMode !== "all" || picked.size > 0 || JSON.stringify(communication) !== JSON.stringify(DEFAULT_PROFILE_COMMUNICATION);
|
|
103
139
|
function togglePicked(name) {
|
|
104
140
|
setPicked((prev) => {
|
|
105
141
|
const next = new Set(prev);
|
|
@@ -146,6 +182,9 @@ function CreateProfileForm({ modelGroups, skills, templates, onCreated }) {
|
|
|
146
182
|
setId("");
|
|
147
183
|
setName("");
|
|
148
184
|
setModel("");
|
|
185
|
+
setSoul(templates.soul);
|
|
186
|
+
setIdentity(templates.identity);
|
|
187
|
+
setBootstrap(templates.bootstrap);
|
|
149
188
|
setEnableBootstrap(true);
|
|
150
189
|
setAgentsTpl(templates.agents);
|
|
151
190
|
setEnableAgents(true);
|
|
@@ -166,8 +205,13 @@ function CreateProfileForm({ modelGroups, skills, templates, onCreated }) {
|
|
|
166
205
|
className: "card",
|
|
167
206
|
onSubmit: submit,
|
|
168
207
|
children: [
|
|
208
|
+
/* @__PURE__ */ jsx(UnsavedChangesGuard, {
|
|
209
|
+
when: dirty && !submitting,
|
|
210
|
+
subject: "Agent template draft"
|
|
211
|
+
}),
|
|
169
212
|
/* @__PURE__ */ jsx("h3", { children: "create agent template" }),
|
|
170
213
|
error && /* @__PURE__ */ jsx("div", {
|
|
214
|
+
role: "alert",
|
|
171
215
|
className: "err",
|
|
172
216
|
children: error
|
|
173
217
|
}),
|
|
@@ -3,7 +3,7 @@ import { t as createSsrRpc } from "./createSsrRpc-6LHNEsSK.js";
|
|
|
3
3
|
import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
|
|
4
4
|
//#region src/routes/approvals/index.tsx
|
|
5
5
|
var $$splitErrorComponentImporter = () => import("./approvals-CbFXFvG8.js");
|
|
6
|
-
var $$splitComponentImporter = () => import("./approvals-
|
|
6
|
+
var $$splitComponentImporter = () => import("./approvals-Bz123liE.js");
|
|
7
7
|
var loadApprovals = createServerFn({ method: "GET" }).handler(createSsrRpc("816fcbc7b3c7f2952660d3a2c8f49bb0c91084627a284c185b333b1d418fadf8"));
|
|
8
8
|
var Route = createFileRoute("/approvals/")({
|
|
9
9
|
loader: () => loadApprovals(),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as Route } from "./approvals-
|
|
2
|
-
import { a as StatusBadge, i as SectionCard, n as PageHeader, r as PageShell, t as EmptyState } from "./Page-
|
|
1
|
+
import { t as Route } from "./approvals-7JOoBchn.js";
|
|
2
|
+
import { a as StatusBadge, i as SectionCard, n as PageHeader, r as PageShell, t as EmptyState } from "./Page-Bz-ydB8j.js";
|
|
3
3
|
import { t as Button } from "./Button-Dsnw22OF.js";
|
|
4
4
|
import { useState } from "react";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/routes/approvals/index.tsx?tsr-split=component
|
|
7
7
|
function ApprovalQueue() {
|
|
8
8
|
const [approvals, setApprovals] = useState(Route.useLoaderData().approvals);
|
|
@@ -17,9 +17,13 @@ function ApprovalQueue() {
|
|
|
17
17
|
setApprovals((await response.json()).approvals);
|
|
18
18
|
};
|
|
19
19
|
const inspect = async (id) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
try {
|
|
21
|
+
const response = await fetch(`/api/approvals/${encodeURIComponent(id)}`);
|
|
22
|
+
if (!response.ok) throw new Error(`Could not load approval (${response.status})`);
|
|
23
|
+
setSelected(await response.json());
|
|
24
|
+
} catch (error) {
|
|
25
|
+
setNotice(error instanceof Error ? error.message : String(error));
|
|
26
|
+
}
|
|
23
27
|
};
|
|
24
28
|
const decide = async (action) => {
|
|
25
29
|
if (!selected) return;
|
|
@@ -97,27 +101,21 @@ function ApprovalQueue() {
|
|
|
97
101
|
children: visible.length === 0 ? /* @__PURE__ */ jsx(EmptyState, {
|
|
98
102
|
title: "No matching approvals",
|
|
99
103
|
description: "Try another status filter or return when a protected attempt needs review."
|
|
100
|
-
}) : /* @__PURE__ */ jsx("div", {
|
|
101
|
-
className: "overflow-x-auto",
|
|
104
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
|
|
105
|
+
className: "hidden overflow-x-auto md:block",
|
|
102
106
|
children: /* @__PURE__ */ jsxs("table", {
|
|
103
107
|
className: "m-0 min-w-[680px]",
|
|
104
108
|
children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
105
109
|
/* @__PURE__ */ jsx("th", { children: "Status" }),
|
|
106
110
|
/* @__PURE__ */ jsx("th", { children: "Path" }),
|
|
107
111
|
/* @__PURE__ */ jsx("th", { children: "Origin" }),
|
|
108
|
-
/* @__PURE__ */ jsx("th", { children: "Expires" })
|
|
112
|
+
/* @__PURE__ */ jsx("th", { children: "Expires" }),
|
|
113
|
+
/* @__PURE__ */ jsx("th", { children: /* @__PURE__ */ jsx("span", {
|
|
114
|
+
className: "sr-only",
|
|
115
|
+
children: "Action"
|
|
116
|
+
}) })
|
|
109
117
|
] }) }), /* @__PURE__ */ jsx("tbody", { children: visible.map((item) => /* @__PURE__ */ jsxs("tr", {
|
|
110
|
-
tabIndex: 0,
|
|
111
|
-
role: "button",
|
|
112
|
-
"aria-label": `Inspect ${item.attemptKind} approval`,
|
|
113
|
-
"aria-current": selected?.id === item.id ? "true" : void 0,
|
|
114
118
|
onClick: () => void inspect(item.id),
|
|
115
|
-
onKeyDown: (event) => {
|
|
116
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
117
|
-
event.preventDefault();
|
|
118
|
-
inspect(item.id);
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
119
|
className: `cursor-pointer ${selected?.id === item.id ? "bg-accent/60" : ""}`,
|
|
122
120
|
children: [
|
|
123
121
|
/* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(Status, { value: item.status }) }),
|
|
@@ -136,11 +134,51 @@ function ApprovalQueue() {
|
|
|
136
134
|
dateTime: new Date(item.expiresAt).toISOString(),
|
|
137
135
|
children: formatTimestamp(item.expiresAt)
|
|
138
136
|
})
|
|
139
|
-
})
|
|
137
|
+
}),
|
|
138
|
+
/* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(Button, {
|
|
139
|
+
variant: "ghost",
|
|
140
|
+
"aria-pressed": selected?.id === item.id,
|
|
141
|
+
onClick: (event) => {
|
|
142
|
+
event.stopPropagation();
|
|
143
|
+
inspect(item.id);
|
|
144
|
+
},
|
|
145
|
+
children: "Inspect"
|
|
146
|
+
}) })
|
|
140
147
|
]
|
|
141
148
|
}, item.id)) })]
|
|
142
149
|
})
|
|
143
|
-
})
|
|
150
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
151
|
+
className: "grid gap-3 md:hidden",
|
|
152
|
+
children: visible.map((item) => /* @__PURE__ */ jsxs("button", {
|
|
153
|
+
type: "button",
|
|
154
|
+
"aria-label": `Inspect ${item.attemptKind} approval`,
|
|
155
|
+
"aria-pressed": selected?.id === item.id,
|
|
156
|
+
onClick: () => void inspect(item.id),
|
|
157
|
+
className: `unstyled min-w-0 rounded-xl border p-4 text-left ${selected?.id === item.id ? "border-primary/40 bg-accent/60" : "border-border bg-muted/20"}`,
|
|
158
|
+
children: [
|
|
159
|
+
/* @__PURE__ */ jsxs("div", {
|
|
160
|
+
className: "flex flex-wrap items-center justify-between gap-2",
|
|
161
|
+
children: [/* @__PURE__ */ jsx(Status, { value: item.status }), /* @__PURE__ */ jsx("time", {
|
|
162
|
+
dateTime: new Date(item.expiresAt).toISOString(),
|
|
163
|
+
className: "text-xs text-muted-foreground",
|
|
164
|
+
children: formatTimestamp(item.expiresAt)
|
|
165
|
+
})]
|
|
166
|
+
}),
|
|
167
|
+
/* @__PURE__ */ jsxs("div", {
|
|
168
|
+
className: "mt-3 break-words text-sm font-semibold text-foreground",
|
|
169
|
+
children: [
|
|
170
|
+
endpoint(item.source),
|
|
171
|
+
" → ",
|
|
172
|
+
endpoint(item.target)
|
|
173
|
+
]
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ jsxs("div", {
|
|
176
|
+
className: "mt-1 text-xs text-muted-foreground",
|
|
177
|
+
children: ["Origin: ", item.origin]
|
|
178
|
+
})
|
|
179
|
+
]
|
|
180
|
+
}, item.id))
|
|
181
|
+
})] })
|
|
144
182
|
}), /* @__PURE__ */ jsx("aside", {
|
|
145
183
|
className: "min-w-0",
|
|
146
184
|
"aria-label": "Approval details",
|
|
@@ -3,7 +3,7 @@ import { t as createSsrRpc } from "./createSsrRpc-6LHNEsSK.js";
|
|
|
3
3
|
import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
|
|
4
4
|
//#region src/routes/attention/index.tsx
|
|
5
5
|
var $$splitErrorComponentImporter = () => import("./attention-BW_6ddkj.js");
|
|
6
|
-
var $$splitComponentImporter = () => import("./attention-
|
|
6
|
+
var $$splitComponentImporter = () => import("./attention-C1pPWSXw.js");
|
|
7
7
|
var loadAttention = createServerFn({ method: "GET" }).handler(createSsrRpc("883b401299422096ee31ee824f9a24b49d06bdcedce398789778c4c549a92f3a"));
|
|
8
8
|
var Route = createFileRoute("/attention/")({
|
|
9
9
|
loader: () => loadAttention(),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as Route } from "./attention-
|
|
2
|
-
import { a as StatusBadge, i as SectionCard, n as PageHeader, r as PageShell, t as EmptyState } from "./Page-
|
|
1
|
+
import { t as Route } from "./attention-B35JvhOL.js";
|
|
2
|
+
import { a as StatusBadge, i as SectionCard, n as PageHeader, r as PageShell, t as EmptyState } from "./Page-Bz-ydB8j.js";
|
|
3
3
|
import { t as Button } from "./Button-Dsnw22OF.js";
|
|
4
4
|
import { useMemo, useState } from "react";
|
|
5
5
|
import { Link } from "@tanstack/react-router";
|
|
@@ -92,7 +92,7 @@ function AttentionCenter() {
|
|
|
92
92
|
}),
|
|
93
93
|
(degraded.length > 0 || summary.degraded.length > 0) && /* @__PURE__ */ jsxs("div", {
|
|
94
94
|
role: "alert",
|
|
95
|
-
className: "mb-5 rounded-lg border border-
|
|
95
|
+
className: "mb-5 rounded-lg border border-danger/40 bg-danger/10 p-4 text-sm",
|
|
96
96
|
children: [
|
|
97
97
|
/* @__PURE__ */ jsx("strong", { children: "Partial results." }),
|
|
98
98
|
" ",
|
|
@@ -2,7 +2,7 @@ import { n as createServerFn } from "../server.js";
|
|
|
2
2
|
import { t as createSsrRpc } from "./createSsrRpc-6LHNEsSK.js";
|
|
3
3
|
import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
|
|
4
4
|
//#region src/routes/config/index.tsx
|
|
5
|
-
var $$splitComponentImporter = () => import("./config-
|
|
5
|
+
var $$splitComponentImporter = () => import("./config-ExacOzHX.js");
|
|
6
6
|
var fetchProvidersData = createServerFn({ method: "GET" }).handler(createSsrRpc("b18a227687dba45b99ea5a2ac7a5bf8efcd9bc54387bc279cd87510fd2f83f7e"));
|
|
7
7
|
var Route = createFileRoute("/config/")({
|
|
8
8
|
loader: () => fetchProvidersData(),
|