bazilion 0.8.0 → 0.10.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/README.md +47 -5
- package/dist/cli.js +1190 -640
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +5165 -1598
- package/dist/daemon.js.map +1 -1
- package/dist/migrations/0001_init.sql +318 -88
- package/dist/web/client/assets/AgentTabs-B3hq5a3e.js +1 -0
- package/dist/web/client/assets/ConfigPage-BCwfgyjD.js +1 -0
- package/dist/web/client/assets/FieldRow-avAFLgYW.js +1 -0
- package/dist/web/client/assets/Page-CwNuDhWz.js +1 -0
- package/dist/web/client/assets/ProductionTeamPolicyEditor-CiQ-VVDo.js +7 -0
- package/dist/web/client/assets/ProductionTeamPolicyEditor-DLioOiRN.css +1 -0
- package/dist/web/client/assets/ProfileCommunicationEditor-D84F5yfr.js +1 -0
- package/dist/web/client/assets/RecoveryState-QfMSuwy3.js +1 -0
- package/dist/web/client/assets/SectionTabs-DZzy01az.js +1 -0
- package/dist/web/client/assets/TeamTabs-Btoe_FAE.js +1 -0
- package/dist/web/client/assets/TemplatesTabs-CAYY03F5.js +1 -0
- package/dist/web/client/assets/_id-BeauECmk.js +1 -0
- package/dist/web/client/assets/_id-BqU2BodK.js +1 -0
- package/dist/web/client/assets/_id-CKtoio3t.js +1 -0
- package/dist/web/client/assets/_id-DGyKURCp.js +1 -0
- package/dist/web/client/assets/_id-Q98Of6k9.js +1 -0
- package/dist/web/client/assets/activity-DJuhhQCb.js +1 -0
- package/dist/web/client/assets/activity-DXN_N85w.js +1 -0
- package/dist/web/client/assets/agents-C5Xsdge1.js +1 -0
- package/dist/web/client/assets/agents-Cgxo4H5G.js +1 -0
- package/dist/web/client/assets/approvals-BnG7fbw-.js +1 -0
- package/dist/web/client/assets/approvals-DGi0PSx8.js +1 -0
- package/dist/web/client/assets/chevron-down-BhcBspw3.js +1 -0
- package/dist/web/client/assets/config-xw4NyrXF.js +3 -0
- package/dist/web/client/assets/context-D2V1Oi4z.js +1 -0
- package/dist/web/client/assets/inbox-DK6hWCMp.js +1 -0
- package/dist/web/client/assets/index-VdURSoM4.js +12 -0
- package/dist/web/client/assets/login-CvptUoMR.js +1 -0
- package/dist/web/client/assets/mcp-BDFM_sW-.js +1 -0
- package/dist/web/client/assets/members-BJvph_TR.js +1 -0
- package/dist/web/client/assets/memory-DRytqZCD.js +1 -0
- package/dist/web/client/assets/plus-C9ee3SIO.js +1 -0
- package/dist/web/client/assets/policy-CGP50OtQ.js +1 -0
- package/dist/web/client/assets/policy-K4hIbbIN.js +1 -0
- package/dist/web/client/assets/preload-helper-mNuBjNXU.js +1 -0
- package/dist/web/client/assets/react-3W8R1pOO.js +1 -0
- package/dist/web/client/assets/routes-DJnWYvC9.js +1 -0
- package/dist/web/client/assets/services-DHheiv7L.js +1 -0
- package/dist/web/client/assets/skills-DmsitluU.js +1 -0
- package/dist/web/client/assets/styles-B5eQAwLP.css +2 -0
- package/dist/web/client/assets/team-policy-D0jpnn2b.js +1 -0
- package/dist/web/client/assets/teams-BdC4gthq.js +1 -0
- package/dist/web/client/assets/teams-CSNyLz3l.js +1 -0
- package/dist/web/client/assets/teams-CbxSaorm.js +1 -0
- package/dist/web/client/assets/telegram-D61G_alO.js +1 -0
- package/dist/web/client/assets/tokens-CjRplDrJ.js +1 -0
- package/dist/web/client/assets/triggers-MLzTm_DM.js +1 -0
- package/dist/web/client/assets/welcome-wBfX9dAd.js +1 -0
- package/dist/web/client/assets/{ChatPane-DzEgOEqS.js → wire-constants-BxfyUMXB.js} +4 -4
- package/dist/web/server/assets/{AgentTabs-BOjTN7QF.js → AgentTabs-DoMDJBXH.js} +10 -7
- package/dist/web/server/assets/{ChatPane-BvpswYvF.js → ChatPane-eUY_dga3.js} +38 -20
- package/dist/web/server/assets/ConfigPage-BKlh5vOU.js +68 -0
- package/dist/web/server/assets/{FieldRow-DwyqycWI.js → FieldRow-B4eTegH9.js} +5 -5
- package/dist/web/server/assets/Page-LENulSXY.js +111 -0
- package/dist/web/server/assets/ProductionTeamPolicyEditor-Y4mzFFvR.js +1009 -0
- package/dist/web/server/assets/ProfileCommunicationEditor-C2RU-2QB.js +107 -0
- package/dist/web/server/assets/RecoveryState-B2SG-mrY.js +37 -0
- package/dist/web/server/assets/SectionTabs-BJTPr5nU.js +8 -0
- package/dist/web/server/assets/Sidebar-O_CH1-JD.js +964 -0
- package/dist/web/server/assets/TeamTabs-zZzbP1t_.js +51 -0
- package/dist/web/server/assets/{TemplatesTabs---7h5GYa.js → TemplatesTabs-CcRxZhJe.js} +9 -8
- package/dist/web/server/assets/_id-A8Xiv6Lc.js +11 -0
- package/dist/web/server/assets/{_id-Sjw0zhA6.js → _id-BhOB8Umi.js} +5 -5
- package/dist/web/server/assets/{_id-DDixKEud.js → _id-C3HY4lWg.js} +77 -20
- package/dist/web/server/assets/{_id-BdRiQb2H.js → _id-ClN9hY2x.js} +132 -39
- package/dist/web/server/assets/{_id-BqnDy_Ca.js → _id-CwyGjJeP.js} +7 -6
- package/dist/web/server/assets/{_id-D8duqgd5.js → _id-D27T85mU.js} +6 -5
- package/dist/web/server/assets/_id-D3Ap7zZA.js +377 -0
- package/dist/web/server/assets/_id-DinTp_7X.js +14 -0
- package/dist/web/server/assets/{_id-CnQflrRv.js → _id-Dj1yZ3zJ.js} +6 -6
- package/dist/web/server/assets/{_id-DUIrFV3G.js → _id-DkYodSkG.js} +10 -2
- package/dist/web/server/assets/{_id-D_Ew11ED.js → _id-IzadFZV9.js} +9 -9
- package/dist/web/server/assets/_id-LrvXU4Nr.js +45 -0
- package/dist/web/server/assets/_id-tB47Vsfp.js +42 -0
- package/dist/web/server/assets/_tanstack-start-manifest_v-D09Xu_6u.js +286 -0
- package/dist/web/server/assets/activity-BCI4mfNS.js +168 -0
- package/dist/web/server/assets/activity-CGCf8BQf.js +11 -0
- package/dist/web/server/assets/activity-D9SMqBhy.js +14 -0
- package/dist/web/server/assets/activity-DohitgwW.js +12 -0
- package/dist/web/server/assets/{agents-k5QURC4I.js → agents-BPKOshR5.js} +5 -5
- package/dist/web/server/assets/{profiles-C6a3RKgu.js → agents-BY74v7fM.js} +5 -5
- package/dist/web/server/assets/{profiles-CZ5NkmVw.js → agents-BvttypqB.js} +5 -5
- package/dist/web/server/assets/{agents-ChcAJUI5.js → agents-C9xlWK0Z.js} +2 -2
- package/dist/web/server/assets/agents-CgZMHj80.js +265 -0
- package/dist/web/server/assets/{profiles-LxcC_L6n.js → agents-DZuFEj0D.js} +87 -79
- package/dist/web/server/assets/approvals-BGU-XGIO.js +12 -0
- package/dist/web/server/assets/approvals-CWcFHlor.js +14 -0
- package/dist/web/server/assets/approvals-CbFXFvG8.js +11 -0
- package/dist/web/server/assets/approvals-DCaVw1Mz.js +280 -0
- package/dist/web/server/assets/{auth-DzRAMwVt.js → auth-byfSx6Ja.js} +6 -2
- package/dist/web/server/assets/{config-CHaCv89D.js → config-BDCJdtj2.js} +1 -1
- package/dist/web/server/assets/{config-CdVjqjin.js → config-D2LAsud2.js} +31 -52
- package/dist/web/server/assets/{config-Bq3o924J.js → config-TeIoyYYc.js} +2 -2
- package/dist/web/server/assets/context-B-XDf6Ym.js +12 -0
- package/dist/web/server/assets/context-BXGo5Vfi.js +12 -0
- package/dist/web/server/assets/context-DrkrIWun.js +47 -0
- package/dist/web/server/assets/{createServerRpc-CeKECg65.js → createServerRpc-pU-IQV2Y.js} +1 -1
- package/dist/web/server/assets/{createSsrRpc-ZBGxhl8t.js → createSsrRpc-DFsIAfFd.js} +1 -1
- package/dist/web/server/assets/{empty-plugin-adapters-DKUlnwwl.js → empty-plugin-adapters-Cq4--YW-.js} +1 -1
- package/dist/web/server/assets/{inbox-CkiSvD14.js → inbox-B3-TRsNI.js} +1 -1
- package/dist/web/server/assets/{inbox-Bxb3W04M.js → inbox-BardsGyy.js} +2 -2
- package/dist/web/server/assets/inbox-CUIyf9MT.js +131 -0
- package/dist/web/server/assets/login-Bx5LEyGP.js +118 -0
- package/dist/web/server/assets/login-CmWvxfTK.js +136 -0
- package/dist/web/server/assets/{mcp-BsFKEoXt.js → mcp-2pwT9HU8.js} +1 -1
- package/dist/web/server/assets/{mcp-BU_kKENi.js → mcp-BJjLIdP0.js} +105 -112
- package/dist/web/server/assets/{mcp-CKqwG4mt.js → mcp-DIWTogHM.js} +2 -2
- package/dist/web/server/assets/members-CCv17cjQ.js +46 -0
- package/dist/web/server/assets/members-CW5aBe81.js +12 -0
- package/dist/web/server/assets/members-VdPwD6CE.js +12 -0
- package/dist/web/server/assets/{memory-BaYnfm7K.js → memory-Dngc13Nw.js} +9 -9
- package/dist/web/server/assets/{memory-CQaqWnyM.js → memory-a8Kz57Kh.js} +22 -19
- package/dist/web/server/assets/{memory-Ns2-Z31p.js → memory-pZ4pZT7p.js} +6 -6
- package/dist/web/server/assets/policy-BYVXqsan.js +11 -0
- package/dist/web/server/assets/policy-Bb-vEgqg.js +40 -0
- package/dist/web/server/assets/policy-BcGELcc9.js +490 -0
- package/dist/web/server/assets/policy-C30AeFIb.js +21 -0
- package/dist/web/server/assets/router-DIdp8ZNt.js +504 -0
- package/dist/web/server/assets/{routes-C61gBiXa.js → routes-CXz4hTAr.js} +6 -6
- package/dist/web/server/assets/{routes-Ce2VWrU9.js → routes-Jb0zjKav.js} +16 -13
- package/dist/web/server/assets/{routes-V9URcp1v.js → routes-lIclH9Br.js} +2 -2
- package/dist/web/server/assets/services-B9yBWDX0.js +79 -0
- package/dist/web/server/assets/{services-Ccc5s2bS.js → services-C4szdhPx.js} +4 -4
- package/dist/web/server/assets/{services-DhRiNeq0.js → services-wG8I06oS.js} +1 -1
- package/dist/web/server/assets/skills-BZdqiDig.js +358 -0
- package/dist/web/server/assets/{skills-l2cyQ3zS.js → skills-C-UgkuCW.js} +2 -2
- package/dist/web/server/assets/{skills-CFIWVg32.js → skills-a9VSWHWq.js} +1 -1
- package/dist/web/server/assets/{start-CYDpZ6cb.js → start-WH8WzTL_.js} +1 -1
- package/dist/web/server/assets/team-policy-vPG01onj.js +180 -0
- package/dist/web/server/assets/teams-3im0oQnS.js +11 -0
- package/dist/web/server/assets/teams-CpQ0YgWf.js +112 -0
- package/dist/web/server/assets/teams-DEpQR2QA.js +14 -0
- package/dist/web/server/assets/teams-DqfrEoH6.js +36 -0
- package/dist/web/server/assets/teams-MjqgsmC3.js +12 -0
- package/dist/web/server/assets/teams-OIkHuxy1.js +12 -0
- package/dist/web/server/assets/teams-jBtvnk59.js +193 -0
- package/dist/web/server/assets/{telegram-DfAddLdv.js → telegram-7ub--6xz.js} +44 -56
- package/dist/web/server/assets/{telegram-T3l9KtiE.js → telegram-Bazhmpr4.js} +2 -2
- package/dist/web/server/assets/{telegram-BdaUIjvs.js → telegram-DNgCWebD.js} +1 -1
- package/dist/web/server/assets/{tokens-DdpnfV_Y.js → tokens-BnwFbV7T.js} +2 -2
- package/dist/web/server/assets/{tokens-BCz3PSoT.js → tokens-DPDMSN5O.js} +1 -1
- package/dist/web/server/assets/tokens-yyTSfBSN.js +186 -0
- package/dist/web/server/assets/{triggers-BzJG1nN5.js → triggers-BMpHsGIr.js} +5 -4
- package/dist/web/server/assets/{triggers-BcH_6PW1.js → triggers-C_0y6QV9.js} +1 -1
- package/dist/web/server/assets/{triggers-BcTTwMfy.js → triggers-Ca57_qym.js} +2 -2
- package/dist/web/server/assets/{welcome-CP4CZ9B6.js → welcome-IYHGurWx.js} +23 -15
- package/dist/web/server/assets/{wire-constants-Deb4NxBb.js → wire-constants-C8nBJcU3.js} +3 -3
- package/dist/web/server/server.js +126 -95
- package/dist/worker.js +185 -146
- package/dist/worker.js.map +1 -1
- package/package.json +8 -7
- package/dist/migrations/0002_profile_groups.sql +0 -38
- package/dist/migrations/0003_agent_telegram.sql +0 -40
- package/dist/migrations/0004_agent_mirror_mode.sql +0 -17
- package/dist/migrations/0005_group_topic_name_format.sql +0 -15
- package/dist/migrations/0006_telegram_acl.sql +0 -18
- package/dist/migrations/0007_mcp_servers.sql +0 -30
- package/dist/migrations/0008_seed_user_md.sql +0 -39
- package/dist/web/client/assets/AgentTabs-DioGqUVR.js +0 -1
- package/dist/web/client/assets/ConfigTabs-pY-V0Rie.js +0 -1
- package/dist/web/client/assets/FieldRow-CNKma5LE.js +0 -1
- package/dist/web/client/assets/MembersEditor-C6UpqDdV.js +0 -1
- package/dist/web/client/assets/SpawnTeamModal-BEkNCKXm.js +0 -1
- package/dist/web/client/assets/TemplatesTabs-UM04RMO9.js +0 -1
- package/dist/web/client/assets/_id-BNJapCT4.js +0 -1
- package/dist/web/client/assets/_id-CjGoV8Mr.js +0 -1
- package/dist/web/client/assets/_id-DehuCHUw.js +0 -1
- package/dist/web/client/assets/_id-Dz9fjcCM.js +0 -1
- package/dist/web/client/assets/agents-M6omAXcZ.js +0 -1
- package/dist/web/client/assets/config-DIuEc5bm.js +0 -3
- package/dist/web/client/assets/groups-DpE2d2zZ.js +0 -1
- package/dist/web/client/assets/inbox-BPnLsRNf.js +0 -1
- package/dist/web/client/assets/index-MAJuXnie.js +0 -12
- package/dist/web/client/assets/login-CawJX16E.js +0 -1
- package/dist/web/client/assets/mcp-DIrh9-v_.js +0 -1
- package/dist/web/client/assets/memory-BpHbdKsd.js +0 -1
- package/dist/web/client/assets/preload-helper-CvnapA2_.js +0 -1
- package/dist/web/client/assets/profile-groups-ByoKak0c.js +0 -1
- package/dist/web/client/assets/profiles-BEjv8LGo.js +0 -1
- package/dist/web/client/assets/routes-D2COHy7v.js +0 -1
- package/dist/web/client/assets/services-D212jSK_.js +0 -1
- package/dist/web/client/assets/skills-Da0MURjY.js +0 -1
- package/dist/web/client/assets/styles-BgE5bCHA.css +0 -2
- package/dist/web/client/assets/telegram-Czh2MdVm.js +0 -1
- package/dist/web/client/assets/tokens-E_JvO5JN.js +0 -1
- package/dist/web/client/assets/triggers-BBRZQOm7.js +0 -1
- package/dist/web/client/assets/welcome-Dn-zvmBE.js +0 -1
- package/dist/web/client/assets/wire-constants-BkT5-597.js +0 -1
- package/dist/web/server/assets/ConfigTabs-CyuxzesF.js +0 -41
- package/dist/web/server/assets/MembersEditor-BWQztvrX.js +0 -131
- package/dist/web/server/assets/Sidebar-DmEiewRN.js +0 -529
- package/dist/web/server/assets/SpawnTeamModal-dSN421k_.js +0 -107
- package/dist/web/server/assets/_id-BKev9H1p.js +0 -12
- package/dist/web/server/assets/_id-BNwlbWHP.js +0 -24
- package/dist/web/server/assets/_id-CRqqi8IE.js +0 -161
- package/dist/web/server/assets/_id-CXg-Blec.js +0 -367
- package/dist/web/server/assets/_tanstack-start-manifest_v-D9FLKShQ.js +0 -178
- package/dist/web/server/assets/agents-C7SBPN0M.js +0 -210
- package/dist/web/server/assets/groups-CbSwND2r.js +0 -12
- package/dist/web/server/assets/groups-CeRRlZaZ.js +0 -150
- package/dist/web/server/assets/groups-pk4CYSuf.js +0 -21
- package/dist/web/server/assets/inbox-DU27iHv_.js +0 -133
- package/dist/web/server/assets/login-CNznncgA.js +0 -58
- package/dist/web/server/assets/login-CQybKk7Y.js +0 -74
- package/dist/web/server/assets/profile-groups-CiU06yN1.js +0 -28
- package/dist/web/server/assets/profile-groups-D21MYoLM.js +0 -208
- package/dist/web/server/assets/profile-groups-aoJleXHP.js +0 -12
- package/dist/web/server/assets/router-BrDascdO.js +0 -460
- package/dist/web/server/assets/services-B91w2f-X.js +0 -94
- package/dist/web/server/assets/skills-D89ND2kR.js +0 -321
- package/dist/web/server/assets/tokens-CkKqrtk-.js +0 -193
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { t as Route } from "./inbox-BardsGyy.js";
|
|
2
|
+
import { r as PageShell } from "./Page-LENulSXY.js";
|
|
3
|
+
import { t as AgentTabs } from "./AgentTabs-DoMDJBXH.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/routes/agents/$id/inbox.tsx?tsr-split=component
|
|
6
|
+
function decodeText(payload) {
|
|
7
|
+
try {
|
|
8
|
+
const obj = JSON.parse(payload);
|
|
9
|
+
if (typeof obj.text === "string") return obj.text;
|
|
10
|
+
} catch {}
|
|
11
|
+
return payload;
|
|
12
|
+
}
|
|
13
|
+
function InboxPage() {
|
|
14
|
+
const { resolved, messages, unreadCount, selected, agentNames } = Route.useLoaderData();
|
|
15
|
+
const unreadOnly = Route.useSearch().unread === "1";
|
|
16
|
+
const misaddressed = Boolean(selected && selected.toAgentId !== resolved.agent.id);
|
|
17
|
+
function agentLabel(aid) {
|
|
18
|
+
const name = agentNames[aid];
|
|
19
|
+
return name ? `${name} (${aid.slice(0, 8)})` : aid.slice(0, 8);
|
|
20
|
+
}
|
|
21
|
+
return /* @__PURE__ */ jsxs(PageShell, { children: [
|
|
22
|
+
/* @__PURE__ */ jsx("h1", {
|
|
23
|
+
className: "font-serif text-3xl text-foreground mb-1",
|
|
24
|
+
children: resolved.agent.name
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ jsxs("p", {
|
|
27
|
+
className: "text-xs text-muted-foreground mb-6",
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ jsxs("code", {
|
|
30
|
+
className: "font-mono",
|
|
31
|
+
children: [resolved.agent.id.slice(0, 8), "…"]
|
|
32
|
+
}),
|
|
33
|
+
" · unread: ",
|
|
34
|
+
unreadCount
|
|
35
|
+
]
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ jsx(AgentTabs, {
|
|
38
|
+
agentId: resolved.agent.id,
|
|
39
|
+
active: "inbox",
|
|
40
|
+
archived: resolved.agent.status === "archived"
|
|
41
|
+
}),
|
|
42
|
+
/* @__PURE__ */ jsxs("div", {
|
|
43
|
+
className: "grid grid-cols-1 md:grid-cols-[360px_1fr] gap-6",
|
|
44
|
+
children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
|
|
45
|
+
className: "flex gap-1 border-b mb-3",
|
|
46
|
+
children: [/* @__PURE__ */ jsx("a", {
|
|
47
|
+
href: `/agents/${resolved.agent.id}/inbox`,
|
|
48
|
+
className: `px-3 py-1.5 text-sm border-b-2 -mb-px ${!unreadOnly ? "border-primary text-primary font-semibold" : "border-transparent text-muted-foreground"}`,
|
|
49
|
+
children: "all"
|
|
50
|
+
}), /* @__PURE__ */ jsx("a", {
|
|
51
|
+
href: `/agents/${resolved.agent.id}/inbox?unread=1`,
|
|
52
|
+
className: `px-3 py-1.5 text-sm border-b-2 -mb-px ${unreadOnly ? "border-primary text-primary font-semibold" : "border-transparent text-muted-foreground"}`,
|
|
53
|
+
children: "unread"
|
|
54
|
+
})]
|
|
55
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
56
|
+
className: "rounded-lg border bg-card max-h-[640px] overflow-y-auto",
|
|
57
|
+
children: messages.length === 0 ? /* @__PURE__ */ jsx("div", {
|
|
58
|
+
className: "p-6 text-center text-muted-foreground italic",
|
|
59
|
+
children: unreadOnly ? "no unread messages" : "inbox empty"
|
|
60
|
+
}) : messages.map((m) => {
|
|
61
|
+
const text = decodeText(m.payload);
|
|
62
|
+
const preview = text.length > 80 ? `${text.slice(0, 80)}…` : text;
|
|
63
|
+
const when = new Date(m.createdAt).toLocaleString();
|
|
64
|
+
const isActive = selected?.id === m.id;
|
|
65
|
+
const isUnread = m.readAt === null;
|
|
66
|
+
const qs = unreadOnly ? `?unread=1&id=${m.id}` : `?id=${m.id}`;
|
|
67
|
+
return /* @__PURE__ */ jsxs("a", {
|
|
68
|
+
href: `/agents/${resolved.agent.id}/inbox${qs}`,
|
|
69
|
+
className: `block border-b last:border-0 px-3 py-2 text-sm hover:bg-accent/30 ${isActive ? "bg-accent/40" : ""} ${isUnread ? "font-medium" : ""}`,
|
|
70
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
71
|
+
className: "flex justify-between text-xs text-muted-foreground",
|
|
72
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
73
|
+
className: "font-mono",
|
|
74
|
+
children: [
|
|
75
|
+
isUnread && /* @__PURE__ */ jsx("span", { className: "inline-block w-1.5 h-1.5 rounded-full bg-primary mr-1.5 align-middle" }),
|
|
76
|
+
"from ",
|
|
77
|
+
agentLabel(m.fromAgentId)
|
|
78
|
+
]
|
|
79
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
80
|
+
className: "font-mono",
|
|
81
|
+
children: when
|
|
82
|
+
})]
|
|
83
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
84
|
+
className: "text-foreground mt-0.5 truncate",
|
|
85
|
+
children: preview
|
|
86
|
+
})]
|
|
87
|
+
}, m.id);
|
|
88
|
+
})
|
|
89
|
+
})] }), /* @__PURE__ */ jsxs("div", { children: [
|
|
90
|
+
selected && !misaddressed && /* @__PURE__ */ jsxs("div", {
|
|
91
|
+
className: "rounded-lg border bg-card p-5 mb-4",
|
|
92
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
93
|
+
className: "font-mono text-xs text-muted-foreground mb-2 space-y-0.5",
|
|
94
|
+
children: [
|
|
95
|
+
/* @__PURE__ */ jsxs("div", { children: ["id: ", /* @__PURE__ */ jsx("code", { children: selected.id })] }),
|
|
96
|
+
/* @__PURE__ */ jsxs("div", { children: ["from: ", /* @__PURE__ */ jsx("code", { children: agentLabel(selected.fromAgentId) })] }),
|
|
97
|
+
/* @__PURE__ */ jsxs("div", { children: ["received: ", new Date(selected.createdAt).toLocaleString()] }),
|
|
98
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
99
|
+
"read:",
|
|
100
|
+
" ",
|
|
101
|
+
selected.readAt ? new Date(selected.readAt).toLocaleString() : "(unread)"
|
|
102
|
+
] }),
|
|
103
|
+
selected.replyTo && /* @__PURE__ */ jsxs("div", { children: ["reply to: ", /* @__PURE__ */ jsx("code", { children: selected.replyTo })] })
|
|
104
|
+
]
|
|
105
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
106
|
+
className: "border-t pt-3 font-mono text-sm whitespace-pre-wrap break-words",
|
|
107
|
+
children: decodeText(selected.payload)
|
|
108
|
+
})]
|
|
109
|
+
}),
|
|
110
|
+
misaddressed && /* @__PURE__ */ jsx("div", {
|
|
111
|
+
className: "rounded-lg border bg-card p-5 mb-4 text-muted-foreground",
|
|
112
|
+
children: "message is not addressed to this agent"
|
|
113
|
+
}),
|
|
114
|
+
/* @__PURE__ */ jsxs("p", {
|
|
115
|
+
className: "text-xs text-muted-foreground",
|
|
116
|
+
children: [
|
|
117
|
+
"Agents exchange messages automatically via their",
|
|
118
|
+
" ",
|
|
119
|
+
/* @__PURE__ */ jsx("code", {
|
|
120
|
+
className: "font-mono",
|
|
121
|
+
children: "send_message"
|
|
122
|
+
}),
|
|
123
|
+
" tool. An idle recipient's scheduler tick drains unread mail."
|
|
124
|
+
]
|
|
125
|
+
})
|
|
126
|
+
] })]
|
|
127
|
+
})
|
|
128
|
+
] });
|
|
129
|
+
}
|
|
130
|
+
//#endregion
|
|
131
|
+
export { InboxPage as component };
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Monitor, Moon, Sun } from "lucide-react";
|
|
5
|
+
//#region src/components/BaziuLogo.tsx
|
|
6
|
+
function BaziuLogo({ className }) {
|
|
7
|
+
return /* @__PURE__ */ jsx("img", {
|
|
8
|
+
src: "/baziu.svg",
|
|
9
|
+
alt: "",
|
|
10
|
+
"aria-hidden": "true",
|
|
11
|
+
draggable: false,
|
|
12
|
+
className
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/components/PawIcon.tsx
|
|
17
|
+
function PawIcon({ className }) {
|
|
18
|
+
return /* @__PURE__ */ jsxs("svg", {
|
|
19
|
+
viewBox: "0 0 24 24",
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
className,
|
|
22
|
+
"aria-hidden": "true",
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ jsx("ellipse", {
|
|
25
|
+
cx: "7",
|
|
26
|
+
cy: "5",
|
|
27
|
+
rx: "2.2",
|
|
28
|
+
ry: "2.8"
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ jsx("ellipse", {
|
|
31
|
+
cx: "17",
|
|
32
|
+
cy: "5",
|
|
33
|
+
rx: "2.2",
|
|
34
|
+
ry: "2.8"
|
|
35
|
+
}),
|
|
36
|
+
/* @__PURE__ */ jsx("ellipse", {
|
|
37
|
+
cx: "3.5",
|
|
38
|
+
cy: "11",
|
|
39
|
+
rx: "2",
|
|
40
|
+
ry: "2.5"
|
|
41
|
+
}),
|
|
42
|
+
/* @__PURE__ */ jsx("ellipse", {
|
|
43
|
+
cx: "20.5",
|
|
44
|
+
cy: "11",
|
|
45
|
+
rx: "2",
|
|
46
|
+
ry: "2.5"
|
|
47
|
+
}),
|
|
48
|
+
/* @__PURE__ */ jsx("path", { d: "M12 22c-4.5 0-7.5-3-7.5-6 0-3 2.5-5.5 4.5-7a4 4 0 0 1 6 0c2 1.5 4.5 4 4.5 7 0 3-3 6-7.5 6z" })
|
|
49
|
+
]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/components/ThemeToggle.tsx
|
|
54
|
+
var STORAGE_KEY = "baziu-theme";
|
|
55
|
+
var ICONS = {
|
|
56
|
+
system: Monitor,
|
|
57
|
+
light: Sun,
|
|
58
|
+
dark: Moon
|
|
59
|
+
};
|
|
60
|
+
var NEXT = {
|
|
61
|
+
system: "light",
|
|
62
|
+
light: "dark",
|
|
63
|
+
dark: "system"
|
|
64
|
+
};
|
|
65
|
+
function readMode() {
|
|
66
|
+
if (typeof window === "undefined") return "system";
|
|
67
|
+
const v = window.localStorage.getItem(STORAGE_KEY);
|
|
68
|
+
return v === "light" || v === "dark" || v === "system" ? v : "system";
|
|
69
|
+
}
|
|
70
|
+
function applyMode(mode) {
|
|
71
|
+
const sysDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
72
|
+
const dark = mode === "dark" || mode === "system" && sysDark;
|
|
73
|
+
document.documentElement.classList.toggle("dark", dark);
|
|
74
|
+
}
|
|
75
|
+
function ThemeToggle() {
|
|
76
|
+
const [mode, setMode] = useState("system");
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
setMode(readMode());
|
|
79
|
+
}, []);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (mode !== "system") return;
|
|
82
|
+
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
|
83
|
+
const onChange = () => applyMode("system");
|
|
84
|
+
mq.addEventListener("change", onChange);
|
|
85
|
+
return () => mq.removeEventListener("change", onChange);
|
|
86
|
+
}, [mode]);
|
|
87
|
+
const cycle = () => {
|
|
88
|
+
const next = NEXT[mode];
|
|
89
|
+
setMode(next);
|
|
90
|
+
window.localStorage.setItem(STORAGE_KEY, next);
|
|
91
|
+
applyMode(next);
|
|
92
|
+
};
|
|
93
|
+
const Icon = ICONS[mode];
|
|
94
|
+
const label = `Theme: ${mode}. Switch to ${NEXT[mode]}.`;
|
|
95
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
96
|
+
type: "button",
|
|
97
|
+
onClick: cycle,
|
|
98
|
+
className: "unstyled inline-flex h-9 items-center justify-center gap-2 rounded-lg border border-frost bg-ivory px-2.5 text-mocha shadow-baziu-sm transition-all hover:border-sapphire-light hover:bg-sapphire-glow hover:text-sapphire active:translate-y-px",
|
|
99
|
+
title: label,
|
|
100
|
+
"aria-label": label,
|
|
101
|
+
children: [/* @__PURE__ */ jsx(Icon, {
|
|
102
|
+
className: "h-4 w-4 shrink-0",
|
|
103
|
+
"aria-hidden": "true"
|
|
104
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
105
|
+
className: "hidden text-xs font-medium capitalize xl:inline",
|
|
106
|
+
children: mode
|
|
107
|
+
})]
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/routes/login.tsx
|
|
112
|
+
var $$splitComponentImporter = () => import("./login-CmWvxfTK.js");
|
|
113
|
+
var Route = createFileRoute("/login")({
|
|
114
|
+
validateSearch: (search) => ({ error: search.error === "1" ? "1" : void 0 }),
|
|
115
|
+
component: lazyRouteComponent($$splitComponentImporter, "component")
|
|
116
|
+
});
|
|
117
|
+
//#endregion
|
|
118
|
+
export { BaziuLogo as i, ThemeToggle as n, PawIcon as r, Route as t };
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { i as BaziuLogo, n as ThemeToggle, r as PawIcon, t as Route } from "./login-Bx5LEyGP.js";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { KeyRound, MessageSquareText, UsersRound } from "lucide-react";
|
|
4
|
+
//#region src/routes/login.tsx?tsr-split=component
|
|
5
|
+
function LoginPage() {
|
|
6
|
+
const { error } = Route.useSearch();
|
|
7
|
+
return /* @__PURE__ */ jsxs("main", {
|
|
8
|
+
className: "relative flex min-h-dvh items-center overflow-hidden bg-cream px-5 py-16 sm:px-8",
|
|
9
|
+
children: [
|
|
10
|
+
/* @__PURE__ */ jsx("div", {
|
|
11
|
+
"aria-hidden": "true",
|
|
12
|
+
className: "pointer-events-none absolute inset-0",
|
|
13
|
+
style: { background: "radial-gradient(circle at 16% 12%, rgba(61,120,153,0.18), transparent 36rem), radial-gradient(circle at 88% 84%, rgba(196,135,138,0.13), transparent 32rem)" }
|
|
14
|
+
}),
|
|
15
|
+
/* @__PURE__ */ jsx("div", {
|
|
16
|
+
className: "absolute right-4 top-4 z-10 sm:right-6 sm:top-6",
|
|
17
|
+
children: /* @__PURE__ */ jsx(ThemeToggle, {})
|
|
18
|
+
}),
|
|
19
|
+
/* @__PURE__ */ jsxs("div", {
|
|
20
|
+
className: "relative mx-auto grid w-full max-w-5xl items-center gap-10 lg:grid-cols-[minmax(0,1fr)_25rem] lg:gap-20",
|
|
21
|
+
children: [/* @__PURE__ */ jsxs("section", {
|
|
22
|
+
className: "hidden lg:block",
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ jsxs("div", {
|
|
25
|
+
className: "mb-8 flex items-center gap-3",
|
|
26
|
+
children: [/* @__PURE__ */ jsx(BaziuLogo, { className: "h-12 w-12" }), /* @__PURE__ */ jsx("span", {
|
|
27
|
+
className: "font-display text-3xl tracking-[-0.03em] text-charcoal",
|
|
28
|
+
children: "bazilion"
|
|
29
|
+
})]
|
|
30
|
+
}),
|
|
31
|
+
/* @__PURE__ */ jsx("h1", {
|
|
32
|
+
className: "max-w-xl text-[3.4rem] leading-[0.98] tracking-[-0.035em]",
|
|
33
|
+
children: "Your agents, working as one thoughtful team."
|
|
34
|
+
}),
|
|
35
|
+
/* @__PURE__ */ jsx("p", {
|
|
36
|
+
className: "mt-6 max-w-lg text-base leading-7 text-mocha",
|
|
37
|
+
children: "A private workspace for long-lived agents, shared context, and communication policies you can actually see and control."
|
|
38
|
+
}),
|
|
39
|
+
/* @__PURE__ */ jsxs("div", {
|
|
40
|
+
className: "mt-8 grid max-w-lg gap-3 sm:grid-cols-2",
|
|
41
|
+
children: [/* @__PURE__ */ jsx(LoginFeature, {
|
|
42
|
+
icon: /* @__PURE__ */ jsx(MessageSquareText, { className: "h-4 w-4" }),
|
|
43
|
+
label: "Persistent conversations"
|
|
44
|
+
}), /* @__PURE__ */ jsx(LoginFeature, {
|
|
45
|
+
icon: /* @__PURE__ */ jsx(UsersRound, { className: "h-4 w-4" }),
|
|
46
|
+
label: "Team-owned context"
|
|
47
|
+
})]
|
|
48
|
+
})
|
|
49
|
+
]
|
|
50
|
+
}), /* @__PURE__ */ jsxs("section", {
|
|
51
|
+
className: "w-full rounded-[24px] border border-frost bg-snow/95 p-7 shadow-baziu-lg backdrop-blur sm:p-9",
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ jsxs("div", {
|
|
54
|
+
className: "mb-6 flex items-center gap-3 lg:hidden",
|
|
55
|
+
children: [/* @__PURE__ */ jsx(BaziuLogo, { className: "h-10 w-10" }), /* @__PURE__ */ jsx("span", {
|
|
56
|
+
className: "font-display text-2xl text-charcoal",
|
|
57
|
+
children: "bazilion"
|
|
58
|
+
})]
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ jsx("div", {
|
|
61
|
+
className: "mb-6 flex h-10 w-10 items-center justify-center rounded-xl bg-sapphire-glow text-sapphire",
|
|
62
|
+
children: /* @__PURE__ */ jsx(KeyRound, {
|
|
63
|
+
className: "h-5 w-5",
|
|
64
|
+
"aria-hidden": "true"
|
|
65
|
+
})
|
|
66
|
+
}),
|
|
67
|
+
/* @__PURE__ */ jsx("h2", {
|
|
68
|
+
className: "font-display text-3xl text-charcoal",
|
|
69
|
+
children: "Welcome back"
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ jsx("p", {
|
|
72
|
+
className: "mt-2 text-sm leading-6 text-mocha-light",
|
|
73
|
+
children: "Use the local access token created by your Bazilion daemon."
|
|
74
|
+
}),
|
|
75
|
+
error && /* @__PURE__ */ jsx("div", {
|
|
76
|
+
className: "err mt-5",
|
|
77
|
+
children: "That token was not accepted."
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ jsxs("form", {
|
|
80
|
+
method: "POST",
|
|
81
|
+
action: "/api/login",
|
|
82
|
+
className: "mt-6 text-left",
|
|
83
|
+
children: [
|
|
84
|
+
/* @__PURE__ */ jsx("label", {
|
|
85
|
+
htmlFor: "token",
|
|
86
|
+
className: "block text-[0.85em] font-semibold text-mocha",
|
|
87
|
+
children: "Access token"
|
|
88
|
+
}),
|
|
89
|
+
/* @__PURE__ */ jsx("input", {
|
|
90
|
+
type: "password",
|
|
91
|
+
id: "token",
|
|
92
|
+
name: "token",
|
|
93
|
+
autoFocus: true,
|
|
94
|
+
required: true,
|
|
95
|
+
placeholder: "Paste your token",
|
|
96
|
+
className: "mb-4"
|
|
97
|
+
}),
|
|
98
|
+
/* @__PURE__ */ jsx("button", {
|
|
99
|
+
type: "submit",
|
|
100
|
+
className: "w-full",
|
|
101
|
+
children: "Open Bazilion"
|
|
102
|
+
})
|
|
103
|
+
]
|
|
104
|
+
}),
|
|
105
|
+
/* @__PURE__ */ jsxs("p", {
|
|
106
|
+
className: "mt-5 rounded-xl bg-ivory px-3 py-2.5 text-[0.78em] leading-relaxed text-mocha-light",
|
|
107
|
+
children: [
|
|
108
|
+
"Find it in ",
|
|
109
|
+
/* @__PURE__ */ jsx("code", { children: "~/.bazilion/auth.json" }),
|
|
110
|
+
", created the first time you run",
|
|
111
|
+
" ",
|
|
112
|
+
/* @__PURE__ */ jsx("code", { children: "bazilion serve" }),
|
|
113
|
+
"."
|
|
114
|
+
]
|
|
115
|
+
})
|
|
116
|
+
]
|
|
117
|
+
})]
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ jsxs("footer", {
|
|
120
|
+
className: "absolute bottom-4 left-0 right-0 text-center text-[0.75em] text-fawn",
|
|
121
|
+
children: ["dedicated to Baziu", /* @__PURE__ */ jsx(PawIcon, { className: "ml-1 inline-block h-3 w-3 align-[-1px] opacity-40" })]
|
|
122
|
+
})
|
|
123
|
+
]
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function LoginFeature({ icon, label }) {
|
|
127
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
128
|
+
className: "flex items-center gap-2 rounded-xl border border-frost bg-snow/70 px-3 py-2.5 text-sm font-semibold text-mocha shadow-baziu-sm",
|
|
129
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
130
|
+
className: "text-sapphire",
|
|
131
|
+
children: icon
|
|
132
|
+
}), label]
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
//#endregion
|
|
136
|
+
export { LoginPage as component };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as createServerFn } from "../server.js";
|
|
2
|
-
import { t as createServerRpc } from "./createServerRpc-
|
|
2
|
+
import { t as createServerRpc } from "./createServerRpc-pU-IQV2Y.js";
|
|
3
3
|
import { n as daemonClient } from "./daemon-client-2NRMzlTr.js";
|
|
4
4
|
//#region src/routes/config/mcp.tsx?tss-serverfn-split
|
|
5
5
|
var fetchServers_createServerFn_handler = createServerRpc({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as Route } from "./mcp-
|
|
2
|
-
import { t as
|
|
1
|
+
import { t as Route } from "./mcp-DIWTogHM.js";
|
|
2
|
+
import { t as ConfigPage } from "./ConfigPage-BKlh5vOU.js";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { useRouter } from "@tanstack/react-router";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/routes/config/mcp.tsx?tsr-split=component
|
|
7
7
|
var TRANSPORTS = [
|
|
8
8
|
"stdio",
|
|
@@ -78,118 +78,111 @@ function McpPage() {
|
|
|
78
78
|
[id]: j.ok ? `✓ ${j.tools?.length ?? 0} tools: ${(j.tools ?? []).map((t) => t.name).join(", ")}` : `✗ ${j.error ?? "failed"}`
|
|
79
79
|
}));
|
|
80
80
|
}
|
|
81
|
-
return /* @__PURE__ */ jsxs(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
return /* @__PURE__ */ jsxs(ConfigPage, {
|
|
82
|
+
active: "mcp",
|
|
83
|
+
title: "MCP servers",
|
|
84
|
+
description: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
85
|
+
"Expose tools from local or remote Model Context Protocol servers to every agent under the ",
|
|
86
|
+
/* @__PURE__ */ jsx("code", {
|
|
87
|
+
className: "font-mono",
|
|
88
|
+
children: "mcp__<server>__<tool>"
|
|
87
89
|
}),
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
" namespace. Local stdio servers inherit configured secrets; HTTP and SSE servers can use a bearer token."
|
|
91
|
+
] }),
|
|
92
|
+
children: [/* @__PURE__ */ jsxs("section", {
|
|
93
|
+
className: "rounded-lg border bg-card p-5",
|
|
94
|
+
children: [/* @__PURE__ */ jsx("h3", {
|
|
95
|
+
className: "font-serif text-xl mb-3",
|
|
96
|
+
children: "Add a server"
|
|
97
|
+
}), /* @__PURE__ */ jsxs("form", {
|
|
98
|
+
onSubmit: add,
|
|
99
|
+
className: "space-y-3",
|
|
91
100
|
children: [
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
/* @__PURE__ */ jsxs("div", {
|
|
102
|
+
className: "flex flex-col gap-3 sm:flex-row sm:flex-wrap sm:items-end",
|
|
103
|
+
children: [/* @__PURE__ */ jsxs("label", {
|
|
104
|
+
className: "w-full text-sm sm:w-auto",
|
|
105
|
+
children: ["Name", /* @__PURE__ */ jsx("input", {
|
|
106
|
+
type: "text",
|
|
107
|
+
value: name,
|
|
108
|
+
onChange: (e) => setName(e.target.value),
|
|
109
|
+
required: true,
|
|
110
|
+
placeholder: "playwright",
|
|
111
|
+
pattern: "[a-zA-Z0-9_]+",
|
|
112
|
+
className: "mt-1 block w-full rounded-md border bg-background px-3 py-2 text-sm sm:w-48"
|
|
113
|
+
})]
|
|
114
|
+
}), /* @__PURE__ */ jsxs("label", {
|
|
115
|
+
className: "w-full text-sm sm:w-auto",
|
|
116
|
+
children: ["Transport", /* @__PURE__ */ jsx("select", {
|
|
117
|
+
value: transport,
|
|
118
|
+
onChange: (e) => setTransport(e.target.value),
|
|
119
|
+
className: "mt-1 block w-full rounded-md border bg-background px-3 py-2 text-sm",
|
|
120
|
+
children: TRANSPORTS.map((t) => /* @__PURE__ */ jsx("option", {
|
|
121
|
+
value: t,
|
|
122
|
+
children: t
|
|
123
|
+
}, t))
|
|
124
|
+
})]
|
|
125
|
+
})]
|
|
96
126
|
}),
|
|
97
|
-
"
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
className: "space-y-3",
|
|
108
|
-
children: [
|
|
109
|
-
/* @__PURE__ */ jsxs("div", {
|
|
110
|
-
className: "flex gap-3 flex-wrap items-end",
|
|
111
|
-
children: [/* @__PURE__ */ jsxs("label", {
|
|
112
|
-
className: "text-sm",
|
|
113
|
-
children: ["Name", /* @__PURE__ */ jsx("input", {
|
|
114
|
-
type: "text",
|
|
115
|
-
value: name,
|
|
116
|
-
onChange: (e) => setName(e.target.value),
|
|
117
|
-
required: true,
|
|
118
|
-
placeholder: "playwright",
|
|
119
|
-
pattern: "[a-zA-Z0-9_]+",
|
|
120
|
-
className: "block mt-1 rounded-md border bg-background px-3 py-2 text-sm w-48"
|
|
121
|
-
})]
|
|
122
|
-
}), /* @__PURE__ */ jsxs("label", {
|
|
123
|
-
className: "text-sm",
|
|
124
|
-
children: ["Transport", /* @__PURE__ */ jsx("select", {
|
|
125
|
-
value: transport,
|
|
126
|
-
onChange: (e) => setTransport(e.target.value),
|
|
127
|
-
className: "block mt-1 rounded-md border bg-background px-3 py-2 text-sm",
|
|
128
|
-
children: TRANSPORTS.map((t) => /* @__PURE__ */ jsx("option", {
|
|
129
|
-
value: t,
|
|
130
|
-
children: t
|
|
131
|
-
}, t))
|
|
132
|
-
})]
|
|
127
|
+
transport === "stdio" ? /* @__PURE__ */ jsxs("div", {
|
|
128
|
+
className: "flex flex-col gap-3 sm:flex-row sm:flex-wrap sm:items-end",
|
|
129
|
+
children: [/* @__PURE__ */ jsxs("label", {
|
|
130
|
+
className: "w-full text-sm sm:w-auto",
|
|
131
|
+
children: ["Command", /* @__PURE__ */ jsx("input", {
|
|
132
|
+
type: "text",
|
|
133
|
+
value: command,
|
|
134
|
+
onChange: (e) => setCommand(e.target.value),
|
|
135
|
+
placeholder: "npx",
|
|
136
|
+
className: "mt-1 block w-full rounded-md border bg-background px-3 py-2 text-sm sm:w-48"
|
|
133
137
|
})]
|
|
134
|
-
}),
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
onChange: (e) => setCommand(e.target.value),
|
|
143
|
-
placeholder: "npx",
|
|
144
|
-
className: "block mt-1 rounded-md border bg-background px-3 py-2 text-sm w-48"
|
|
145
|
-
})]
|
|
146
|
-
}), /* @__PURE__ */ jsxs("label", {
|
|
147
|
-
className: "text-sm flex-1",
|
|
148
|
-
children: ["Args (space-separated)", /* @__PURE__ */ jsx("input", {
|
|
149
|
-
type: "text",
|
|
150
|
-
value: argsStr,
|
|
151
|
-
onChange: (e) => setArgsStr(e.target.value),
|
|
152
|
-
placeholder: "-y @modelcontextprotocol/server-filesystem /tmp",
|
|
153
|
-
className: "block mt-1 rounded-md border bg-background px-3 py-2 text-sm w-full"
|
|
154
|
-
})]
|
|
138
|
+
}), /* @__PURE__ */ jsxs("label", {
|
|
139
|
+
className: "w-full min-w-0 text-sm sm:flex-1",
|
|
140
|
+
children: ["Args (space-separated)", /* @__PURE__ */ jsx("input", {
|
|
141
|
+
type: "text",
|
|
142
|
+
value: argsStr,
|
|
143
|
+
onChange: (e) => setArgsStr(e.target.value),
|
|
144
|
+
placeholder: "-y @modelcontextprotocol/server-filesystem /tmp",
|
|
145
|
+
className: "block mt-1 rounded-md border bg-background px-3 py-2 text-sm w-full"
|
|
155
146
|
})]
|
|
156
|
-
})
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}), /* @__PURE__ */ jsxs("label", {
|
|
168
|
-
className: "text-sm",
|
|
169
|
-
children: ["Bearer token (optional)", /* @__PURE__ */ jsx("input", {
|
|
170
|
-
type: "password",
|
|
171
|
-
value: token,
|
|
172
|
-
onChange: (e) => setToken(e.target.value),
|
|
173
|
-
autoComplete: "off",
|
|
174
|
-
className: "block mt-1 rounded-md border bg-background px-3 py-2 text-sm w-56"
|
|
175
|
-
})]
|
|
147
|
+
})]
|
|
148
|
+
}) : /* @__PURE__ */ jsxs("div", {
|
|
149
|
+
className: "flex flex-col gap-3 sm:flex-row sm:flex-wrap sm:items-end",
|
|
150
|
+
children: [/* @__PURE__ */ jsxs("label", {
|
|
151
|
+
className: "w-full min-w-0 text-sm sm:flex-1",
|
|
152
|
+
children: ["URL", /* @__PURE__ */ jsx("input", {
|
|
153
|
+
type: "url",
|
|
154
|
+
value: url,
|
|
155
|
+
onChange: (e) => setUrl(e.target.value),
|
|
156
|
+
placeholder: "https://mcp.example.com/sse",
|
|
157
|
+
className: "block mt-1 rounded-md border bg-background px-3 py-2 text-sm w-full"
|
|
176
158
|
})]
|
|
177
|
-
}),
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
159
|
+
}), /* @__PURE__ */ jsxs("label", {
|
|
160
|
+
className: "w-full text-sm sm:w-auto",
|
|
161
|
+
children: ["Bearer token (optional)", /* @__PURE__ */ jsx("input", {
|
|
162
|
+
type: "password",
|
|
163
|
+
value: token,
|
|
164
|
+
onChange: (e) => setToken(e.target.value),
|
|
165
|
+
autoComplete: "off",
|
|
166
|
+
className: "mt-1 block w-full rounded-md border bg-background px-3 py-2 text-sm sm:w-56"
|
|
167
|
+
})]
|
|
168
|
+
})]
|
|
169
|
+
}),
|
|
170
|
+
/* @__PURE__ */ jsx("button", {
|
|
171
|
+
type: "submit",
|
|
172
|
+
disabled: busy,
|
|
173
|
+
className: "w-full rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50 sm:w-auto",
|
|
174
|
+
children: busy ? "adding…" : "add server"
|
|
175
|
+
}),
|
|
176
|
+
err && /* @__PURE__ */ jsx("p", {
|
|
177
|
+
className: "text-sm text-danger",
|
|
178
|
+
children: err
|
|
179
|
+
})
|
|
180
|
+
]
|
|
181
|
+
})]
|
|
182
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
183
|
+
className: "overflow-x-auto",
|
|
184
|
+
children: /* @__PURE__ */ jsxs("table", {
|
|
185
|
+
className: "w-full min-w-[720px] text-sm",
|
|
193
186
|
children: [/* @__PURE__ */ jsx("thead", {
|
|
194
187
|
className: "text-left text-muted-foreground border-b",
|
|
195
188
|
children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
@@ -229,7 +222,7 @@ function McpPage() {
|
|
|
229
222
|
children: s.transport === "stdio" ? `${s.command ?? ""} ${s.args.join(" ")}`.trim() : s.url
|
|
230
223
|
}),
|
|
231
224
|
/* @__PURE__ */ jsx("td", { children: s.enabled ? /* @__PURE__ */ jsx("span", {
|
|
232
|
-
className: "text-
|
|
225
|
+
className: "text-success",
|
|
233
226
|
children: "enabled"
|
|
234
227
|
}) : /* @__PURE__ */ jsx("span", {
|
|
235
228
|
className: "text-muted-foreground",
|
|
@@ -253,7 +246,7 @@ function McpPage() {
|
|
|
253
246
|
/* @__PURE__ */ jsx("button", {
|
|
254
247
|
type: "button",
|
|
255
248
|
onClick: () => remove(s.id),
|
|
256
|
-
className: "rounded-md border px-2 py-1 text-xs text-
|
|
249
|
+
className: "rounded-md border px-2 py-1 text-xs text-danger hover:bg-danger/10",
|
|
257
250
|
children: "delete"
|
|
258
251
|
})
|
|
259
252
|
]
|
|
@@ -261,7 +254,7 @@ function McpPage() {
|
|
|
261
254
|
]
|
|
262
255
|
}, s.id))] })]
|
|
263
256
|
})
|
|
264
|
-
]
|
|
257
|
+
})]
|
|
265
258
|
});
|
|
266
259
|
}
|
|
267
260
|
//#endregion
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as createServerFn } from "../server.js";
|
|
2
|
-
import { t as createSsrRpc } from "./createSsrRpc-
|
|
2
|
+
import { t as createSsrRpc } from "./createSsrRpc-DFsIAfFd.js";
|
|
3
3
|
import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
|
|
4
4
|
//#region src/routes/config/mcp.tsx
|
|
5
|
-
var $$splitComponentImporter = () => import("./mcp-
|
|
5
|
+
var $$splitComponentImporter = () => import("./mcp-BJjLIdP0.js");
|
|
6
6
|
var fetchServers = createServerFn({ method: "GET" }).handler(createSsrRpc("278849457893891c3d22806d15e11a0a42cc3630b30e9e62b74cf2d3b982ded7"));
|
|
7
7
|
var Route = createFileRoute("/config/mcp")({
|
|
8
8
|
loader: () => fetchServers(),
|