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.
Files changed (217) hide show
  1. package/README.md +47 -5
  2. package/dist/cli.js +1190 -640
  3. package/dist/cli.js.map +1 -1
  4. package/dist/daemon.js +5165 -1598
  5. package/dist/daemon.js.map +1 -1
  6. package/dist/migrations/0001_init.sql +318 -88
  7. package/dist/web/client/assets/AgentTabs-B3hq5a3e.js +1 -0
  8. package/dist/web/client/assets/ConfigPage-BCwfgyjD.js +1 -0
  9. package/dist/web/client/assets/FieldRow-avAFLgYW.js +1 -0
  10. package/dist/web/client/assets/Page-CwNuDhWz.js +1 -0
  11. package/dist/web/client/assets/ProductionTeamPolicyEditor-CiQ-VVDo.js +7 -0
  12. package/dist/web/client/assets/ProductionTeamPolicyEditor-DLioOiRN.css +1 -0
  13. package/dist/web/client/assets/ProfileCommunicationEditor-D84F5yfr.js +1 -0
  14. package/dist/web/client/assets/RecoveryState-QfMSuwy3.js +1 -0
  15. package/dist/web/client/assets/SectionTabs-DZzy01az.js +1 -0
  16. package/dist/web/client/assets/TeamTabs-Btoe_FAE.js +1 -0
  17. package/dist/web/client/assets/TemplatesTabs-CAYY03F5.js +1 -0
  18. package/dist/web/client/assets/_id-BeauECmk.js +1 -0
  19. package/dist/web/client/assets/_id-BqU2BodK.js +1 -0
  20. package/dist/web/client/assets/_id-CKtoio3t.js +1 -0
  21. package/dist/web/client/assets/_id-DGyKURCp.js +1 -0
  22. package/dist/web/client/assets/_id-Q98Of6k9.js +1 -0
  23. package/dist/web/client/assets/activity-DJuhhQCb.js +1 -0
  24. package/dist/web/client/assets/activity-DXN_N85w.js +1 -0
  25. package/dist/web/client/assets/agents-C5Xsdge1.js +1 -0
  26. package/dist/web/client/assets/agents-Cgxo4H5G.js +1 -0
  27. package/dist/web/client/assets/approvals-BnG7fbw-.js +1 -0
  28. package/dist/web/client/assets/approvals-DGi0PSx8.js +1 -0
  29. package/dist/web/client/assets/chevron-down-BhcBspw3.js +1 -0
  30. package/dist/web/client/assets/config-xw4NyrXF.js +3 -0
  31. package/dist/web/client/assets/context-D2V1Oi4z.js +1 -0
  32. package/dist/web/client/assets/inbox-DK6hWCMp.js +1 -0
  33. package/dist/web/client/assets/index-VdURSoM4.js +12 -0
  34. package/dist/web/client/assets/login-CvptUoMR.js +1 -0
  35. package/dist/web/client/assets/mcp-BDFM_sW-.js +1 -0
  36. package/dist/web/client/assets/members-BJvph_TR.js +1 -0
  37. package/dist/web/client/assets/memory-DRytqZCD.js +1 -0
  38. package/dist/web/client/assets/plus-C9ee3SIO.js +1 -0
  39. package/dist/web/client/assets/policy-CGP50OtQ.js +1 -0
  40. package/dist/web/client/assets/policy-K4hIbbIN.js +1 -0
  41. package/dist/web/client/assets/preload-helper-mNuBjNXU.js +1 -0
  42. package/dist/web/client/assets/react-3W8R1pOO.js +1 -0
  43. package/dist/web/client/assets/routes-DJnWYvC9.js +1 -0
  44. package/dist/web/client/assets/services-DHheiv7L.js +1 -0
  45. package/dist/web/client/assets/skills-DmsitluU.js +1 -0
  46. package/dist/web/client/assets/styles-B5eQAwLP.css +2 -0
  47. package/dist/web/client/assets/team-policy-D0jpnn2b.js +1 -0
  48. package/dist/web/client/assets/teams-BdC4gthq.js +1 -0
  49. package/dist/web/client/assets/teams-CSNyLz3l.js +1 -0
  50. package/dist/web/client/assets/teams-CbxSaorm.js +1 -0
  51. package/dist/web/client/assets/telegram-D61G_alO.js +1 -0
  52. package/dist/web/client/assets/tokens-CjRplDrJ.js +1 -0
  53. package/dist/web/client/assets/triggers-MLzTm_DM.js +1 -0
  54. package/dist/web/client/assets/welcome-wBfX9dAd.js +1 -0
  55. package/dist/web/client/assets/{ChatPane-DzEgOEqS.js → wire-constants-BxfyUMXB.js} +4 -4
  56. package/dist/web/server/assets/{AgentTabs-BOjTN7QF.js → AgentTabs-DoMDJBXH.js} +10 -7
  57. package/dist/web/server/assets/{ChatPane-BvpswYvF.js → ChatPane-eUY_dga3.js} +38 -20
  58. package/dist/web/server/assets/ConfigPage-BKlh5vOU.js +68 -0
  59. package/dist/web/server/assets/{FieldRow-DwyqycWI.js → FieldRow-B4eTegH9.js} +5 -5
  60. package/dist/web/server/assets/Page-LENulSXY.js +111 -0
  61. package/dist/web/server/assets/ProductionTeamPolicyEditor-Y4mzFFvR.js +1009 -0
  62. package/dist/web/server/assets/ProfileCommunicationEditor-C2RU-2QB.js +107 -0
  63. package/dist/web/server/assets/RecoveryState-B2SG-mrY.js +37 -0
  64. package/dist/web/server/assets/SectionTabs-BJTPr5nU.js +8 -0
  65. package/dist/web/server/assets/Sidebar-O_CH1-JD.js +964 -0
  66. package/dist/web/server/assets/TeamTabs-zZzbP1t_.js +51 -0
  67. package/dist/web/server/assets/{TemplatesTabs---7h5GYa.js → TemplatesTabs-CcRxZhJe.js} +9 -8
  68. package/dist/web/server/assets/_id-A8Xiv6Lc.js +11 -0
  69. package/dist/web/server/assets/{_id-Sjw0zhA6.js → _id-BhOB8Umi.js} +5 -5
  70. package/dist/web/server/assets/{_id-DDixKEud.js → _id-C3HY4lWg.js} +77 -20
  71. package/dist/web/server/assets/{_id-BdRiQb2H.js → _id-ClN9hY2x.js} +132 -39
  72. package/dist/web/server/assets/{_id-BqnDy_Ca.js → _id-CwyGjJeP.js} +7 -6
  73. package/dist/web/server/assets/{_id-D8duqgd5.js → _id-D27T85mU.js} +6 -5
  74. package/dist/web/server/assets/_id-D3Ap7zZA.js +377 -0
  75. package/dist/web/server/assets/_id-DinTp_7X.js +14 -0
  76. package/dist/web/server/assets/{_id-CnQflrRv.js → _id-Dj1yZ3zJ.js} +6 -6
  77. package/dist/web/server/assets/{_id-DUIrFV3G.js → _id-DkYodSkG.js} +10 -2
  78. package/dist/web/server/assets/{_id-D_Ew11ED.js → _id-IzadFZV9.js} +9 -9
  79. package/dist/web/server/assets/_id-LrvXU4Nr.js +45 -0
  80. package/dist/web/server/assets/_id-tB47Vsfp.js +42 -0
  81. package/dist/web/server/assets/_tanstack-start-manifest_v-D09Xu_6u.js +286 -0
  82. package/dist/web/server/assets/activity-BCI4mfNS.js +168 -0
  83. package/dist/web/server/assets/activity-CGCf8BQf.js +11 -0
  84. package/dist/web/server/assets/activity-D9SMqBhy.js +14 -0
  85. package/dist/web/server/assets/activity-DohitgwW.js +12 -0
  86. package/dist/web/server/assets/{agents-k5QURC4I.js → agents-BPKOshR5.js} +5 -5
  87. package/dist/web/server/assets/{profiles-C6a3RKgu.js → agents-BY74v7fM.js} +5 -5
  88. package/dist/web/server/assets/{profiles-CZ5NkmVw.js → agents-BvttypqB.js} +5 -5
  89. package/dist/web/server/assets/{agents-ChcAJUI5.js → agents-C9xlWK0Z.js} +2 -2
  90. package/dist/web/server/assets/agents-CgZMHj80.js +265 -0
  91. package/dist/web/server/assets/{profiles-LxcC_L6n.js → agents-DZuFEj0D.js} +87 -79
  92. package/dist/web/server/assets/approvals-BGU-XGIO.js +12 -0
  93. package/dist/web/server/assets/approvals-CWcFHlor.js +14 -0
  94. package/dist/web/server/assets/approvals-CbFXFvG8.js +11 -0
  95. package/dist/web/server/assets/approvals-DCaVw1Mz.js +280 -0
  96. package/dist/web/server/assets/{auth-DzRAMwVt.js → auth-byfSx6Ja.js} +6 -2
  97. package/dist/web/server/assets/{config-CHaCv89D.js → config-BDCJdtj2.js} +1 -1
  98. package/dist/web/server/assets/{config-CdVjqjin.js → config-D2LAsud2.js} +31 -52
  99. package/dist/web/server/assets/{config-Bq3o924J.js → config-TeIoyYYc.js} +2 -2
  100. package/dist/web/server/assets/context-B-XDf6Ym.js +12 -0
  101. package/dist/web/server/assets/context-BXGo5Vfi.js +12 -0
  102. package/dist/web/server/assets/context-DrkrIWun.js +47 -0
  103. package/dist/web/server/assets/{createServerRpc-CeKECg65.js → createServerRpc-pU-IQV2Y.js} +1 -1
  104. package/dist/web/server/assets/{createSsrRpc-ZBGxhl8t.js → createSsrRpc-DFsIAfFd.js} +1 -1
  105. package/dist/web/server/assets/{empty-plugin-adapters-DKUlnwwl.js → empty-plugin-adapters-Cq4--YW-.js} +1 -1
  106. package/dist/web/server/assets/{inbox-CkiSvD14.js → inbox-B3-TRsNI.js} +1 -1
  107. package/dist/web/server/assets/{inbox-Bxb3W04M.js → inbox-BardsGyy.js} +2 -2
  108. package/dist/web/server/assets/inbox-CUIyf9MT.js +131 -0
  109. package/dist/web/server/assets/login-Bx5LEyGP.js +118 -0
  110. package/dist/web/server/assets/login-CmWvxfTK.js +136 -0
  111. package/dist/web/server/assets/{mcp-BsFKEoXt.js → mcp-2pwT9HU8.js} +1 -1
  112. package/dist/web/server/assets/{mcp-BU_kKENi.js → mcp-BJjLIdP0.js} +105 -112
  113. package/dist/web/server/assets/{mcp-CKqwG4mt.js → mcp-DIWTogHM.js} +2 -2
  114. package/dist/web/server/assets/members-CCv17cjQ.js +46 -0
  115. package/dist/web/server/assets/members-CW5aBe81.js +12 -0
  116. package/dist/web/server/assets/members-VdPwD6CE.js +12 -0
  117. package/dist/web/server/assets/{memory-BaYnfm7K.js → memory-Dngc13Nw.js} +9 -9
  118. package/dist/web/server/assets/{memory-CQaqWnyM.js → memory-a8Kz57Kh.js} +22 -19
  119. package/dist/web/server/assets/{memory-Ns2-Z31p.js → memory-pZ4pZT7p.js} +6 -6
  120. package/dist/web/server/assets/policy-BYVXqsan.js +11 -0
  121. package/dist/web/server/assets/policy-Bb-vEgqg.js +40 -0
  122. package/dist/web/server/assets/policy-BcGELcc9.js +490 -0
  123. package/dist/web/server/assets/policy-C30AeFIb.js +21 -0
  124. package/dist/web/server/assets/router-DIdp8ZNt.js +504 -0
  125. package/dist/web/server/assets/{routes-C61gBiXa.js → routes-CXz4hTAr.js} +6 -6
  126. package/dist/web/server/assets/{routes-Ce2VWrU9.js → routes-Jb0zjKav.js} +16 -13
  127. package/dist/web/server/assets/{routes-V9URcp1v.js → routes-lIclH9Br.js} +2 -2
  128. package/dist/web/server/assets/services-B9yBWDX0.js +79 -0
  129. package/dist/web/server/assets/{services-Ccc5s2bS.js → services-C4szdhPx.js} +4 -4
  130. package/dist/web/server/assets/{services-DhRiNeq0.js → services-wG8I06oS.js} +1 -1
  131. package/dist/web/server/assets/skills-BZdqiDig.js +358 -0
  132. package/dist/web/server/assets/{skills-l2cyQ3zS.js → skills-C-UgkuCW.js} +2 -2
  133. package/dist/web/server/assets/{skills-CFIWVg32.js → skills-a9VSWHWq.js} +1 -1
  134. package/dist/web/server/assets/{start-CYDpZ6cb.js → start-WH8WzTL_.js} +1 -1
  135. package/dist/web/server/assets/team-policy-vPG01onj.js +180 -0
  136. package/dist/web/server/assets/teams-3im0oQnS.js +11 -0
  137. package/dist/web/server/assets/teams-CpQ0YgWf.js +112 -0
  138. package/dist/web/server/assets/teams-DEpQR2QA.js +14 -0
  139. package/dist/web/server/assets/teams-DqfrEoH6.js +36 -0
  140. package/dist/web/server/assets/teams-MjqgsmC3.js +12 -0
  141. package/dist/web/server/assets/teams-OIkHuxy1.js +12 -0
  142. package/dist/web/server/assets/teams-jBtvnk59.js +193 -0
  143. package/dist/web/server/assets/{telegram-DfAddLdv.js → telegram-7ub--6xz.js} +44 -56
  144. package/dist/web/server/assets/{telegram-T3l9KtiE.js → telegram-Bazhmpr4.js} +2 -2
  145. package/dist/web/server/assets/{telegram-BdaUIjvs.js → telegram-DNgCWebD.js} +1 -1
  146. package/dist/web/server/assets/{tokens-DdpnfV_Y.js → tokens-BnwFbV7T.js} +2 -2
  147. package/dist/web/server/assets/{tokens-BCz3PSoT.js → tokens-DPDMSN5O.js} +1 -1
  148. package/dist/web/server/assets/tokens-yyTSfBSN.js +186 -0
  149. package/dist/web/server/assets/{triggers-BzJG1nN5.js → triggers-BMpHsGIr.js} +5 -4
  150. package/dist/web/server/assets/{triggers-BcH_6PW1.js → triggers-C_0y6QV9.js} +1 -1
  151. package/dist/web/server/assets/{triggers-BcTTwMfy.js → triggers-Ca57_qym.js} +2 -2
  152. package/dist/web/server/assets/{welcome-CP4CZ9B6.js → welcome-IYHGurWx.js} +23 -15
  153. package/dist/web/server/assets/{wire-constants-Deb4NxBb.js → wire-constants-C8nBJcU3.js} +3 -3
  154. package/dist/web/server/server.js +126 -95
  155. package/dist/worker.js +185 -146
  156. package/dist/worker.js.map +1 -1
  157. package/package.json +8 -7
  158. package/dist/migrations/0002_profile_groups.sql +0 -38
  159. package/dist/migrations/0003_agent_telegram.sql +0 -40
  160. package/dist/migrations/0004_agent_mirror_mode.sql +0 -17
  161. package/dist/migrations/0005_group_topic_name_format.sql +0 -15
  162. package/dist/migrations/0006_telegram_acl.sql +0 -18
  163. package/dist/migrations/0007_mcp_servers.sql +0 -30
  164. package/dist/migrations/0008_seed_user_md.sql +0 -39
  165. package/dist/web/client/assets/AgentTabs-DioGqUVR.js +0 -1
  166. package/dist/web/client/assets/ConfigTabs-pY-V0Rie.js +0 -1
  167. package/dist/web/client/assets/FieldRow-CNKma5LE.js +0 -1
  168. package/dist/web/client/assets/MembersEditor-C6UpqDdV.js +0 -1
  169. package/dist/web/client/assets/SpawnTeamModal-BEkNCKXm.js +0 -1
  170. package/dist/web/client/assets/TemplatesTabs-UM04RMO9.js +0 -1
  171. package/dist/web/client/assets/_id-BNJapCT4.js +0 -1
  172. package/dist/web/client/assets/_id-CjGoV8Mr.js +0 -1
  173. package/dist/web/client/assets/_id-DehuCHUw.js +0 -1
  174. package/dist/web/client/assets/_id-Dz9fjcCM.js +0 -1
  175. package/dist/web/client/assets/agents-M6omAXcZ.js +0 -1
  176. package/dist/web/client/assets/config-DIuEc5bm.js +0 -3
  177. package/dist/web/client/assets/groups-DpE2d2zZ.js +0 -1
  178. package/dist/web/client/assets/inbox-BPnLsRNf.js +0 -1
  179. package/dist/web/client/assets/index-MAJuXnie.js +0 -12
  180. package/dist/web/client/assets/login-CawJX16E.js +0 -1
  181. package/dist/web/client/assets/mcp-DIrh9-v_.js +0 -1
  182. package/dist/web/client/assets/memory-BpHbdKsd.js +0 -1
  183. package/dist/web/client/assets/preload-helper-CvnapA2_.js +0 -1
  184. package/dist/web/client/assets/profile-groups-ByoKak0c.js +0 -1
  185. package/dist/web/client/assets/profiles-BEjv8LGo.js +0 -1
  186. package/dist/web/client/assets/routes-D2COHy7v.js +0 -1
  187. package/dist/web/client/assets/services-D212jSK_.js +0 -1
  188. package/dist/web/client/assets/skills-Da0MURjY.js +0 -1
  189. package/dist/web/client/assets/styles-BgE5bCHA.css +0 -2
  190. package/dist/web/client/assets/telegram-Czh2MdVm.js +0 -1
  191. package/dist/web/client/assets/tokens-E_JvO5JN.js +0 -1
  192. package/dist/web/client/assets/triggers-BBRZQOm7.js +0 -1
  193. package/dist/web/client/assets/welcome-Dn-zvmBE.js +0 -1
  194. package/dist/web/client/assets/wire-constants-BkT5-597.js +0 -1
  195. package/dist/web/server/assets/ConfigTabs-CyuxzesF.js +0 -41
  196. package/dist/web/server/assets/MembersEditor-BWQztvrX.js +0 -131
  197. package/dist/web/server/assets/Sidebar-DmEiewRN.js +0 -529
  198. package/dist/web/server/assets/SpawnTeamModal-dSN421k_.js +0 -107
  199. package/dist/web/server/assets/_id-BKev9H1p.js +0 -12
  200. package/dist/web/server/assets/_id-BNwlbWHP.js +0 -24
  201. package/dist/web/server/assets/_id-CRqqi8IE.js +0 -161
  202. package/dist/web/server/assets/_id-CXg-Blec.js +0 -367
  203. package/dist/web/server/assets/_tanstack-start-manifest_v-D9FLKShQ.js +0 -178
  204. package/dist/web/server/assets/agents-C7SBPN0M.js +0 -210
  205. package/dist/web/server/assets/groups-CbSwND2r.js +0 -12
  206. package/dist/web/server/assets/groups-CeRRlZaZ.js +0 -150
  207. package/dist/web/server/assets/groups-pk4CYSuf.js +0 -21
  208. package/dist/web/server/assets/inbox-DU27iHv_.js +0 -133
  209. package/dist/web/server/assets/login-CNznncgA.js +0 -58
  210. package/dist/web/server/assets/login-CQybKk7Y.js +0 -74
  211. package/dist/web/server/assets/profile-groups-CiU06yN1.js +0 -28
  212. package/dist/web/server/assets/profile-groups-D21MYoLM.js +0 -208
  213. package/dist/web/server/assets/profile-groups-aoJleXHP.js +0 -12
  214. package/dist/web/server/assets/router-BrDascdO.js +0 -460
  215. package/dist/web/server/assets/services-B91w2f-X.js +0 -94
  216. package/dist/web/server/assets/skills-D89ND2kR.js +0 -321
  217. 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-CeKECg65.js";
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-CKqwG4mt.js";
2
- import { t as ConfigTabs } from "./ConfigTabs-CyuxzesF.js";
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("main", {
82
- className: "mx-auto max-w-5xl px-6 py-8",
83
- children: [
84
- /* @__PURE__ */ jsx("h1", {
85
- className: "font-serif text-3xl text-foreground mb-2",
86
- children: "config"
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
- /* @__PURE__ */ jsx(ConfigTabs, { active: "mcp" }),
89
- /* @__PURE__ */ jsxs("p", {
90
- className: "text-muted-foreground text-sm mb-6",
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
- "Model Context Protocol servers. Each enabled server's tools are exposed to every agent, namespaced ",
93
- /* @__PURE__ */ jsx("code", {
94
- className: "font-mono",
95
- children: "mcp__<server>__<tool>"
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
- ". stdio servers run as local subprocesses and inherit your configured secrets; http/sse servers connect to a remote endpoint with an optional bearer token."
98
- ]
99
- }),
100
- /* @__PURE__ */ jsxs("section", {
101
- className: "rounded-lg border bg-card p-5 mb-6",
102
- children: [/* @__PURE__ */ jsx("h3", {
103
- className: "font-serif text-xl mb-3",
104
- children: "Add a server"
105
- }), /* @__PURE__ */ jsxs("form", {
106
- onSubmit: add,
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
- transport === "stdio" ? /* @__PURE__ */ jsxs("div", {
136
- className: "flex gap-3 flex-wrap items-end",
137
- children: [/* @__PURE__ */ jsxs("label", {
138
- className: "text-sm",
139
- children: ["Command", /* @__PURE__ */ jsx("input", {
140
- type: "text",
141
- value: command,
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
- }) : /* @__PURE__ */ jsxs("div", {
157
- className: "flex gap-3 flex-wrap items-end",
158
- children: [/* @__PURE__ */ jsxs("label", {
159
- className: "text-sm flex-1",
160
- children: ["URL", /* @__PURE__ */ jsx("input", {
161
- type: "url",
162
- value: url,
163
- onChange: (e) => setUrl(e.target.value),
164
- placeholder: "https://mcp.example.com/sse",
165
- className: "block mt-1 rounded-md border bg-background px-3 py-2 text-sm w-full"
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
- /* @__PURE__ */ jsx("button", {
179
- type: "submit",
180
- disabled: busy,
181
- className: "rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50",
182
- children: busy ? "adding…" : "add server"
183
- }),
184
- err && /* @__PURE__ */ jsx("p", {
185
- className: "text-sm text-rose-700",
186
- children: err
187
- })
188
- ]
189
- })]
190
- }),
191
- /* @__PURE__ */ jsxs("table", {
192
- className: "w-full text-sm",
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-emerald-700",
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-rose-700 hover:bg-rose-50",
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-ZBGxhl8t.js";
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-BU_kKENi.js");
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(),