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
@@ -1,6 +1,6 @@
1
- import { t as Route } from "./telegram-T3l9KtiE.js";
2
- import { t as ConfigTabs } from "./ConfigTabs-CyuxzesF.js";
1
+ import { t as Route } from "./telegram-Bazhmpr4.js";
3
2
  import { t as Button } from "./Button-Dsnw22OF.js";
3
+ import { t as ConfigPage } from "./ConfigPage-BKlh5vOU.js";
4
4
  import { useEffect, useState } from "react";
5
5
  import { useRouter } from "@tanstack/react-router";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -75,35 +75,23 @@ function TelegramIntegrationPage() {
75
75
  setChecking(false);
76
76
  }
77
77
  }
78
- return /* @__PURE__ */ jsxs("main", {
79
- className: "mx-auto max-w-3xl px-6 py-8",
78
+ return /* @__PURE__ */ jsxs(ConfigPage, {
79
+ active: "integrations",
80
+ title: "Telegram",
81
+ description: "Connect one forum-supergroup bot with one topic per agent, so conversations stay reachable from your phone.",
82
+ size: "narrow",
80
83
  children: [
81
- /* @__PURE__ */ jsx("h1", {
82
- className: "font-serif text-3xl text-foreground mb-2",
83
- children: "config"
84
- }),
85
- /* @__PURE__ */ jsx(ConfigTabs, { active: "integrations" }),
86
- /* @__PURE__ */ jsxs("header", {
87
- className: "mb-6",
88
- children: [/* @__PURE__ */ jsx("h2", {
89
- className: "text-xl font-semibold",
90
- children: "Telegram"
91
- }), /* @__PURE__ */ jsx("p", {
92
- className: "text-muted-foreground text-sm",
93
- children: "One forum-supergroup bot, one topic per agent. Talk to any of your agents from a phone."
94
- })]
95
- }),
96
84
  /* @__PURE__ */ jsx(Step2Banner, {}),
97
85
  initial.migratedChatId && /* @__PURE__ */ jsx(MigrationBanner, { toChatId: initial.migratedChatId }),
98
86
  /* @__PURE__ */ jsxs("section", {
99
- className: "rounded-lg border bg-card p-5 mb-6",
87
+ className: "rounded-lg border bg-card p-5",
100
88
  children: [
101
89
  /* @__PURE__ */ jsx("h3", {
102
90
  className: "text-sm font-semibold uppercase tracking-wide text-muted-foreground mb-3",
103
91
  children: "Credentials"
104
92
  }),
105
93
  initial.configured && /* @__PURE__ */ jsxs("p", {
106
- className: "text-xs text-emerald-700 mb-3",
94
+ className: "text-xs text-success mb-3",
107
95
  children: [
108
96
  "✓ Stored: ",
109
97
  /* @__PURE__ */ jsx("code", {
@@ -141,7 +129,7 @@ function TelegramIntegrationPage() {
141
129
  className: "text-xs text-muted-foreground mt-1",
142
130
  children: [
143
131
  "From @BotFather → /newbot. Disable Privacy Mode in ",
144
- /* @__PURE__ */ jsx("em", { children: "Bot Settings → Group Privacy → Turn off" }),
132
+ /* @__PURE__ */ jsx("em", { children: "Bot Settings → Team Privacy → Turn off" }),
145
133
  "."
146
134
  ]
147
135
  })
@@ -177,7 +165,7 @@ function TelegramIntegrationPage() {
177
165
  ]
178
166
  }),
179
167
  /* @__PURE__ */ jsxs("div", {
180
- className: "flex items-center gap-3 pt-1",
168
+ className: "flex flex-wrap items-center gap-3 pt-1",
181
169
  children: [
182
170
  /* @__PURE__ */ jsx(Button, {
183
171
  variant: "primary",
@@ -191,11 +179,11 @@ function TelegramIntegrationPage() {
191
179
  children: "clear credentials"
192
180
  }),
193
181
  saveOk && /* @__PURE__ */ jsx("span", {
194
- className: "text-xs text-emerald-700",
182
+ className: "text-xs text-success",
195
183
  children: "saved ✓"
196
184
  }),
197
185
  saveError && /* @__PURE__ */ jsxs("span", {
198
- className: "text-xs text-rose-700",
186
+ className: "text-xs text-danger",
199
187
  children: ["error: ", saveError]
200
188
  })
201
189
  ]
@@ -208,7 +196,7 @@ function TelegramIntegrationPage() {
208
196
  className: "rounded-lg border bg-card p-5",
209
197
  children: [
210
198
  /* @__PURE__ */ jsxs("div", {
211
- className: "flex items-center justify-between mb-3",
199
+ className: "mb-3 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
212
200
  children: [/* @__PURE__ */ jsx("h3", {
213
201
  className: "text-sm font-semibold uppercase tracking-wide text-muted-foreground",
214
202
  children: "Preflight checks"
@@ -302,7 +290,7 @@ function AccessControlCard() {
302
290
  }
303
291
  }
304
292
  return /* @__PURE__ */ jsxs("section", {
305
- className: "rounded-lg border bg-card p-5 mt-6",
293
+ className: "rounded-lg border bg-card p-5",
306
294
  children: [
307
295
  /* @__PURE__ */ jsx("h3", {
308
296
  className: "text-sm font-semibold uppercase tracking-wide text-muted-foreground mb-1",
@@ -324,12 +312,12 @@ function AccessControlCard() {
324
312
  className: "text-xs text-muted-foreground italic",
325
313
  children: "loading…"
326
314
  }) : users.length === 0 ? /* @__PURE__ */ jsx("p", {
327
- className: "text-xs text-amber-700 mb-3",
315
+ className: "text-xs text-warning mb-3",
328
316
  children: "Open — no allowlist yet. The first user to message the bot claims owner."
329
317
  }) : /* @__PURE__ */ jsx("ul", {
330
318
  className: "mb-3 space-y-1 text-sm",
331
319
  children: users.map((u) => /* @__PURE__ */ jsxs("li", {
332
- className: "flex items-center gap-2",
320
+ className: "flex flex-wrap items-center gap-2",
333
321
  children: [
334
322
  /* @__PURE__ */ jsx("code", {
335
323
  className: "font-mono",
@@ -346,7 +334,7 @@ function AccessControlCard() {
346
334
  u.role !== "owner" && /* @__PURE__ */ jsx("button", {
347
335
  type: "button",
348
336
  onClick: () => void remove(u.userId),
349
- className: "ghost-btn text-xs text-[#9B3D3D]",
337
+ className: "ghost-btn text-xs text-rose-baziu",
350
338
  children: "remove"
351
339
  })
352
340
  ]
@@ -354,19 +342,19 @@ function AccessControlCard() {
354
342
  }),
355
343
  /* @__PURE__ */ jsxs("form", {
356
344
  onSubmit: add,
357
- className: "flex items-center gap-2",
345
+ className: "flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",
358
346
  children: [
359
347
  /* @__PURE__ */ jsx("input", {
360
348
  value: userId,
361
349
  onChange: (e) => setUserId(e.target.value),
362
350
  placeholder: "user id",
363
- className: "w-28 rounded-md border bg-background px-2 py-1 font-mono text-sm"
351
+ className: "w-full rounded-md border bg-background px-2 py-1 font-mono text-sm sm:w-28"
364
352
  }),
365
353
  /* @__PURE__ */ jsx("input", {
366
354
  value: label,
367
355
  onChange: (e) => setLabel(e.target.value),
368
356
  placeholder: "label (optional)",
369
- className: "w-40 rounded-md border bg-background px-2 py-1 text-sm"
357
+ className: "w-full rounded-md border bg-background px-2 py-1 text-sm sm:w-40"
370
358
  }),
371
359
  /* @__PURE__ */ jsx(Button, {
372
360
  variant: "ghost",
@@ -375,7 +363,7 @@ function AccessControlCard() {
375
363
  children: "add"
376
364
  }),
377
365
  err && /* @__PURE__ */ jsx("span", {
378
- className: "text-xs text-rose-700",
366
+ className: "text-xs text-danger",
379
367
  children: err
380
368
  })
381
369
  ]
@@ -402,14 +390,14 @@ function MigrationBanner({ toChatId }) {
402
390
  }
403
391
  }
404
392
  return /* @__PURE__ */ jsxs("div", {
405
- className: "rounded-md border-2 border-rose-400 bg-rose-50 px-4 py-3 mb-6 text-sm",
393
+ className: "rounded-md border-2 border-danger/25 bg-danger/10 px-4 py-3 text-sm",
406
394
  children: [
407
395
  /* @__PURE__ */ jsx("div", {
408
- className: "font-semibold text-rose-900 mb-1",
396
+ className: "font-semibold text-danger mb-1",
409
397
  children: "Supergroup chat id changed"
410
398
  }),
411
399
  /* @__PURE__ */ jsxs("p", {
412
- className: "text-rose-900 mb-2",
400
+ className: "text-danger mb-2",
413
401
  children: [
414
402
  "Telegram migrated this supergroup to a new chat id (",
415
403
  /* @__PURE__ */ jsx("code", {
@@ -422,7 +410,7 @@ function MigrationBanner({ toChatId }) {
422
410
  children: "⚙ bazilion"
423
411
  }),
424
412
  " ",
425
- "service chat in the new group. Agent topic bindings will reconcile on next use."
413
+ "service chat in the new team. Agent topic bindings will reconcile on next use."
426
414
  ]
427
415
  }),
428
416
  /* @__PURE__ */ jsx(Button, {
@@ -432,7 +420,7 @@ function MigrationBanner({ toChatId }) {
432
420
  children: busy ? "reconnecting…" : `Reconnect to ${toChatId}`
433
421
  }),
434
422
  err && /* @__PURE__ */ jsx("span", {
435
- className: "ml-3 text-xs text-rose-700",
423
+ className: "ml-3 text-xs text-danger",
436
424
  children: err
437
425
  })
438
426
  ]
@@ -440,12 +428,12 @@ function MigrationBanner({ toChatId }) {
440
428
  }
441
429
  function Step2Banner() {
442
430
  return /* @__PURE__ */ jsxs("div", {
443
- className: "rounded-md border-2 border-amber-400 bg-amber-50 px-4 py-3 mb-6 text-sm",
431
+ className: "rounded-md border-2 border-warning/25 bg-warning/10 px-4 py-3 text-sm",
444
432
  children: [/* @__PURE__ */ jsx("div", {
445
- className: "font-semibold text-amber-900 mb-1",
433
+ className: "font-semibold text-warning mb-1",
446
434
  children: "Step 2 of the rollout"
447
435
  }), /* @__PURE__ */ jsxs("p", {
448
- className: "text-amber-900",
436
+ className: "text-warning",
449
437
  children: [
450
438
  "The bot polls Telegram and creates the ",
451
439
  /* @__PURE__ */ jsx("code", {
@@ -474,11 +462,11 @@ function PollingState({ polling }) {
474
462
  className: "flex flex-wrap gap-x-4 gap-y-1 font-mono",
475
463
  children: [
476
464
  /* @__PURE__ */ jsx("span", {
477
- className: polling.running ? "text-emerald-700" : "text-rose-700",
465
+ className: polling.running ? "text-success" : "text-danger",
478
466
  children: polling.running ? "running" : "stopped"
479
467
  }),
480
468
  /* @__PURE__ */ jsx("span", {
481
- className: polling.activated ? "text-emerald-700" : "text-amber-700",
469
+ className: polling.activated ? "text-success" : "text-warning",
482
470
  children: polling.activated ? "activated" : "awaiting activation"
483
471
  }),
484
472
  polling.lastUpdateId !== null && /* @__PURE__ */ jsxs("span", { children: ["last update ", polling.lastUpdateId] }),
@@ -487,7 +475,7 @@ function PollingState({ polling }) {
487
475
  ]
488
476
  }),
489
477
  polling.error && /* @__PURE__ */ jsxs("p", {
490
- className: "text-rose-700",
478
+ className: "text-danger",
491
479
  children: ["error: ", polling.error]
492
480
  })
493
481
  ]
@@ -495,17 +483,17 @@ function PollingState({ polling }) {
495
483
  }
496
484
  function PreflightResult({ health }) {
497
485
  if (health.error) return /* @__PURE__ */ jsxs("div", {
498
- className: "rounded-md border border-rose-300 bg-rose-50 px-3 py-2 text-sm",
486
+ className: "rounded-md border border-danger/25 bg-danger/10 px-3 py-2 text-sm",
499
487
  children: [
500
488
  /* @__PURE__ */ jsxs("p", {
501
- className: "font-semibold text-rose-900",
489
+ className: "font-semibold text-danger",
502
490
  children: ["Failed at ", /* @__PURE__ */ jsx("code", {
503
491
  className: "font-mono",
504
492
  children: health.error.step
505
493
  })]
506
494
  }),
507
495
  /* @__PURE__ */ jsx("p", {
508
- className: "text-rose-900 mt-1",
496
+ className: "text-danger mt-1",
509
497
  children: health.error.message
510
498
  }),
511
499
  hintFor(health.error.step)
@@ -532,7 +520,7 @@ function PreflightResult({ health }) {
532
520
  /* @__PURE__ */ jsx(Check, {
533
521
  ok: p.isForum,
534
522
  label: "Forum topics enabled",
535
- children: p.isForum ? "is_forum: true" : "is_forum: false — the supergroup owner must enable Topics in group settings"
523
+ children: p.isForum ? "is_forum: true" : "is_forum: false — the supergroup owner must enable Topics in team settings"
536
524
  }),
537
525
  /* @__PURE__ */ jsx(Check, {
538
526
  ok: p.hasManageTopics,
@@ -542,7 +530,7 @@ function PreflightResult({ health }) {
542
530
  /* @__PURE__ */ jsx(Check, {
543
531
  ok: p.privacyModeOff,
544
532
  label: "Privacy Mode is OFF",
545
- children: p.privacyModeOff ? "can_read_all_group_messages: true" : "BotFather → /mybots → select bot → Bot Settings → Group Privacy → Turn off"
533
+ children: p.privacyModeOff ? "can_read_all_group_messages: true" : "BotFather → /mybots → select bot → Bot Settings → Team Privacy → Turn off"
546
534
  })
547
535
  ]
548
536
  });
@@ -551,14 +539,14 @@ function Check({ ok, label, children }) {
551
539
  return /* @__PURE__ */ jsxs("li", {
552
540
  className: "flex items-start gap-2 text-sm",
553
541
  children: [/* @__PURE__ */ jsx("span", {
554
- className: `mt-0.5 inline-flex h-4 w-4 items-center justify-center rounded-full text-[10px] font-bold leading-none ${ok ? "bg-emerald-100 text-emerald-800" : "bg-rose-100 text-rose-800"}`,
542
+ className: `mt-0.5 inline-flex h-4 w-4 items-center justify-center rounded-full text-[10px] font-bold leading-none ${ok ? "bg-success/10 text-success" : "bg-danger/10 text-danger"}`,
555
543
  "aria-hidden": true,
556
544
  children: ok ? "✓" : "✕"
557
545
  }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", {
558
546
  className: "font-medium",
559
547
  children: label
560
548
  }), /* @__PURE__ */ jsx("span", {
561
- className: `ml-2 text-xs ${ok ? "text-muted-foreground" : "text-rose-800"}`,
549
+ className: `ml-2 text-xs ${ok ? "text-muted-foreground" : "text-danger"}`,
562
550
  children
563
551
  })] })]
564
552
  });
@@ -566,15 +554,15 @@ function Check({ ok, label, children }) {
566
554
  function hintFor(step) {
567
555
  switch (step) {
568
556
  case "getMe": return /* @__PURE__ */ jsx("p", {
569
- className: "text-xs text-rose-900 mt-1",
557
+ className: "text-xs text-danger mt-1",
570
558
  children: "The token is invalid or revoked. Re-issue with @BotFather → /token, or paste a fresh one above."
571
559
  });
572
560
  case "getChat": return /* @__PURE__ */ jsx("p", {
573
- className: "text-xs text-rose-900 mt-1",
574
- children: "The chat id either doesn't exist, points at a basic group (not a supergroup), or the bot isn't a member. Forward any message from the supergroup to the bot to double-check the id, then add the bot to the group."
561
+ className: "text-xs text-danger mt-1",
562
+ children: "The chat id either doesn't exist, points at a basic team (not a supergroup), or the bot isn't a member. Forward any message from the supergroup to the bot to double-check the id, then add the bot to the team."
575
563
  });
576
564
  case "getChatMember": return /* @__PURE__ */ jsx("p", {
577
- className: "text-xs text-rose-900 mt-1",
565
+ className: "text-xs text-danger mt-1",
578
566
  children: "The bot is in the chat but the membership lookup failed. Usually means the bot was kicked or the chat id was migrated — confirm the bot is still in the supergroup."
579
567
  });
580
568
  }
@@ -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/integrations/telegram.tsx
5
- var $$splitComponentImporter = () => import("./telegram-DfAddLdv.js");
5
+ var $$splitComponentImporter = () => import("./telegram-7ub--6xz.js");
6
6
  var fetchTelegramConfig = createServerFn({ method: "GET" }).handler(createSsrRpc("00a157dd07824e1f126f06646effd1d876f280f6fc64c144d2f6429414a4e58a"));
7
7
  var Route = createFileRoute("/config/integrations/telegram")({
8
8
  loader: () => fetchTelegramConfig(),
@@ -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/integrations/telegram.tsx?tss-serverfn-split
5
5
  var fetchTelegramConfig_createServerFn_handler = createServerRpc({
@@ -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/tokens.tsx
5
- var $$splitComponentImporter = () => import("./tokens-CkKqrtk-.js");
5
+ var $$splitComponentImporter = () => import("./tokens-yyTSfBSN.js");
6
6
  var fetchTokens = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(createSsrRpc("46e35c9f1afc79423cb49703b454ef684344db08ec19775efd70a8768c7837f1"));
7
7
  var Route = createFileRoute("/config/tokens")({
8
8
  validateSearch: (s) => ({ all: s.all === "1" ? "1" : void 0 }),
@@ -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/tokens.tsx?tss-serverfn-split
5
5
  var fetchTokens_createServerFn_handler = createServerRpc({
@@ -0,0 +1,186 @@
1
+ import { t as Route } from "./tokens-BnwFbV7T.js";
2
+ import { t as ConfigPage } from "./ConfigPage-BKlh5vOU.js";
3
+ import { useState } from "react";
4
+ import { useRouter } from "@tanstack/react-router";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/routes/config/tokens.tsx?tsr-split=component
7
+ function fmtTs(ts) {
8
+ return new Date(ts).toISOString().slice(0, 16).replace("T", " ");
9
+ }
10
+ function TokensPage() {
11
+ const { tokens } = Route.useLoaderData();
12
+ const { all } = Route.useSearch();
13
+ const includeRevoked = all === "1";
14
+ const router = useRouter();
15
+ const [label, setLabel] = useState("");
16
+ const [created, setCreated] = useState(null);
17
+ const [err, setErr] = useState(null);
18
+ const [busy, setBusy] = useState(false);
19
+ async function mint(e) {
20
+ e.preventDefault();
21
+ setErr(null);
22
+ setBusy(true);
23
+ try {
24
+ const res = await fetch("/api/tokens", {
25
+ method: "POST",
26
+ headers: { "content-type": "application/json" },
27
+ body: JSON.stringify({ label })
28
+ });
29
+ if (!res.ok) {
30
+ const j = await res.json().catch(() => ({}));
31
+ throw new Error(j.error ?? `${res.status} ${res.statusText}`);
32
+ }
33
+ setCreated((await res.json()).token);
34
+ setLabel("");
35
+ await router.invalidate();
36
+ } catch (e) {
37
+ setErr(e.message);
38
+ } finally {
39
+ setBusy(false);
40
+ }
41
+ }
42
+ async function revoke(id) {
43
+ await fetch(`/api/tokens/${id}`, { method: "DELETE" });
44
+ await router.invalidate();
45
+ }
46
+ return /* @__PURE__ */ jsxs(ConfigPage, {
47
+ active: "tokens",
48
+ title: "API tokens",
49
+ description: /* @__PURE__ */ jsxs(Fragment, { children: [
50
+ "Manage per-client credentials for the HTTP API and CLI. The",
51
+ " ",
52
+ /* @__PURE__ */ jsx("code", {
53
+ className: "font-mono",
54
+ children: "bootstrap"
55
+ }),
56
+ " token from",
57
+ " ",
58
+ /* @__PURE__ */ jsx("code", {
59
+ className: "font-mono",
60
+ children: "~/.bazilion/auth.json"
61
+ }),
62
+ " remains protected; mint separate credentials for mobile, LAN, and remote clients."
63
+ ] }),
64
+ children: [
65
+ /* @__PURE__ */ jsxs("section", {
66
+ className: "rounded-lg border bg-card p-5",
67
+ children: [
68
+ /* @__PURE__ */ jsx("h3", {
69
+ className: "font-serif text-xl mb-3",
70
+ children: "Mint a new token"
71
+ }),
72
+ /* @__PURE__ */ jsxs("form", {
73
+ onSubmit: mint,
74
+ className: "mb-3 flex flex-col items-stretch gap-2 sm:flex-row sm:items-end",
75
+ children: [/* @__PURE__ */ jsxs("label", {
76
+ className: "w-full text-sm sm:w-auto",
77
+ children: ["Label", /* @__PURE__ */ jsx("input", {
78
+ type: "text",
79
+ value: label,
80
+ onChange: (e) => setLabel(e.target.value),
81
+ required: true,
82
+ placeholder: "e.g. laptop-tailscale",
83
+ autoComplete: "off",
84
+ className: "mt-1 block w-full rounded-md border bg-background px-3 py-2 text-sm sm:w-72"
85
+ })]
86
+ }), /* @__PURE__ */ jsx("button", {
87
+ type: "submit",
88
+ disabled: busy,
89
+ className: "rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50",
90
+ children: busy ? "creating…" : "create"
91
+ })]
92
+ }),
93
+ created && /* @__PURE__ */ jsxs("div", {
94
+ className: "rounded-md border border-warning/25 bg-warning/10 p-3",
95
+ children: [/* @__PURE__ */ jsx("p", {
96
+ className: "text-xs text-warning mb-1",
97
+ children: "copy this token now — it is not recoverable later."
98
+ }), /* @__PURE__ */ jsx("pre", {
99
+ className: "font-mono text-xs whitespace-pre-wrap break-all",
100
+ children: created
101
+ })]
102
+ }),
103
+ err && /* @__PURE__ */ jsx("p", {
104
+ className: "text-sm text-danger",
105
+ children: err
106
+ })
107
+ ]
108
+ }),
109
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("label", {
110
+ className: "text-sm flex items-center gap-2",
111
+ children: [/* @__PURE__ */ jsx("input", {
112
+ type: "checkbox",
113
+ checked: includeRevoked,
114
+ onChange: (e) => {
115
+ window.location.assign(e.target.checked ? "/config/tokens?all=1" : "/config/tokens");
116
+ }
117
+ }), "show revoked"]
118
+ }) }),
119
+ /* @__PURE__ */ jsx("div", {
120
+ className: "overflow-x-auto",
121
+ children: /* @__PURE__ */ jsxs("table", {
122
+ className: "w-full min-w-[720px] text-sm",
123
+ children: [/* @__PURE__ */ jsx("thead", {
124
+ className: "text-left text-muted-foreground border-b",
125
+ children: /* @__PURE__ */ jsxs("tr", { children: [
126
+ /* @__PURE__ */ jsx("th", {
127
+ className: "py-2",
128
+ children: "label"
129
+ }),
130
+ /* @__PURE__ */ jsx("th", { children: "id" }),
131
+ /* @__PURE__ */ jsx("th", { children: "state" }),
132
+ /* @__PURE__ */ jsx("th", { children: "created" }),
133
+ /* @__PURE__ */ jsx("th", { children: "last used" }),
134
+ /* @__PURE__ */ jsx("th", {})
135
+ ] })
136
+ }), /* @__PURE__ */ jsxs("tbody", { children: [tokens.length === 0 && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
137
+ colSpan: 6,
138
+ className: "py-6 text-center text-muted-foreground italic",
139
+ children: "no tokens yet — mint one above"
140
+ }) }), tokens.map((t) => {
141
+ const isBootstrap = t.label === "bootstrap";
142
+ return /* @__PURE__ */ jsxs("tr", {
143
+ className: "border-b last:border-0 hover:bg-accent/30",
144
+ children: [
145
+ /* @__PURE__ */ jsxs("td", {
146
+ className: "py-2",
147
+ children: [t.label, isBootstrap && /* @__PURE__ */ jsx("span", {
148
+ className: "ml-2 text-[0.7em] uppercase tracking-wide text-muted-foreground",
149
+ children: "auth.json"
150
+ })]
151
+ }),
152
+ /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx("code", {
153
+ className: "font-mono text-xs",
154
+ children: t.id
155
+ }) }),
156
+ /* @__PURE__ */ jsx("td", { children: t.revokedAt ? /* @__PURE__ */ jsx("span", {
157
+ className: "text-muted-foreground",
158
+ children: "revoked"
159
+ }) : /* @__PURE__ */ jsx("span", {
160
+ className: "text-success",
161
+ children: "active"
162
+ }) }),
163
+ /* @__PURE__ */ jsx("td", {
164
+ className: "text-muted-foreground text-xs",
165
+ children: fmtTs(t.createdAt)
166
+ }),
167
+ /* @__PURE__ */ jsx("td", {
168
+ className: "text-muted-foreground text-xs",
169
+ children: t.lastUsedAt ? fmtTs(t.lastUsedAt) : "(never)"
170
+ }),
171
+ /* @__PURE__ */ jsx("td", { children: !t.revokedAt && !isBootstrap && /* @__PURE__ */ jsx("button", {
172
+ type: "button",
173
+ onClick: () => revoke(t.id),
174
+ className: "rounded-md border px-2 py-1 text-xs text-danger hover:bg-danger/10",
175
+ children: "revoke"
176
+ }) })
177
+ ]
178
+ }, t.id);
179
+ })] })]
180
+ })
181
+ })
182
+ ]
183
+ });
184
+ }
185
+ //#endregion
186
+ export { TokensPage as component };
@@ -1,5 +1,6 @@
1
- import { t as Route } from "./triggers-BcTTwMfy.js";
2
- import { t as AgentTabs } from "./AgentTabs-BOjTN7QF.js";
1
+ import { t as Route } from "./triggers-Ca57_qym.js";
2
+ import { r as PageShell } from "./Page-LENulSXY.js";
3
+ import { t as AgentTabs } from "./AgentTabs-DoMDJBXH.js";
3
4
  import { useState } from "react";
4
5
  import { useRouter } from "@tanstack/react-router";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -20,7 +21,7 @@ function TriggersPage() {
20
21
  await fetch(`/api/triggers/${id}`, { method: "DELETE" });
21
22
  await router.invalidate();
22
23
  }
23
- return /* @__PURE__ */ jsxs("div", { children: [
24
+ return /* @__PURE__ */ jsxs(PageShell, { children: [
24
25
  /* @__PURE__ */ jsx("header", {
25
26
  className: "mb-6",
26
27
  children: /* @__PURE__ */ jsx("h1", { children: resolved.agent.name })
@@ -180,7 +181,7 @@ function AddTriggerForm({ agentId, onAdded }) {
180
181
  disabled: submitting,
181
182
  children: submitting ? "adding…" : "add"
182
183
  }), err && /* @__PURE__ */ jsx("span", {
183
- className: "text-[0.85em] text-[#9B3D3D]",
184
+ className: "text-[0.85em] text-danger",
184
185
  children: err
185
186
  })]
186
187
  })
@@ -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, r as ApiClientError } from "./daemon-client-2NRMzlTr.js";
4
4
  //#region src/routes/agents/$id/triggers.tsx?tss-serverfn-split
5
5
  var fetchTriggers_createServerFn_handler = createServerRpc({
@@ -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, redirect } from "@tanstack/react-router";
4
4
  //#region src/routes/agents/$id/triggers.tsx
5
- var $$splitComponentImporter = () => import("./triggers-BzJG1nN5.js");
5
+ var $$splitComponentImporter = () => import("./triggers-BMpHsGIr.js");
6
6
  var fetchTriggers = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(createSsrRpc("57ebf437fdb3fcfc63b176e796a55f04bdfec0b230059673196e98d413d15c4d"));
7
7
  var Route = createFileRoute("/agents/$id/triggers")({
8
8
  loader: async ({ params }) => {
@@ -1,20 +1,25 @@
1
+ import { i as SectionCard, n as PageHeader, r as PageShell } from "./Page-LENulSXY.js";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { ArrowRight } from "lucide-react";
2
4
  //#region src/routes/welcome.tsx?tsr-split=component
3
5
  function WelcomePage() {
4
- return /* @__PURE__ */ jsx("div", {
5
- className: "mx-auto max-w-2xl",
6
- children: /* @__PURE__ */ jsxs("div", {
7
- className: "card",
6
+ return /* @__PURE__ */ jsxs(PageShell, {
7
+ size: "narrow",
8
+ children: [/* @__PURE__ */ jsx(PageHeader, {
9
+ eyebrow: "First run",
10
+ title: "Welcome to bazilion",
11
+ description: "Connect one model provider, then Bazilion will prepare your default Agent template and Team."
12
+ }), /* @__PURE__ */ jsxs(SectionCard, {
13
+ title: "Three steps to your first conversation",
8
14
  children: [
9
- /* @__PURE__ */ jsx("h1", { children: "Welcome to bazilion" }),
10
15
  /* @__PURE__ */ jsxs("p", {
11
- className: "muted my-3",
16
+ className: "text-sm leading-6 text-muted-foreground",
12
17
  children: [
13
18
  "Before you can spawn agents, enable a provider and save at least one concrete model id. Once you do, a ",
14
19
  /* @__PURE__ */ jsx("code", { children: "default" }),
15
- " profile (and a ",
20
+ " Agent template (and a ",
16
21
  /* @__PURE__ */ jsx("code", { children: "default" }),
17
- " group directory) are created automatically and the rest of the app unlocks."
22
+ " team directory) are created automatically and the rest of the app unlocks."
18
23
  ]
19
24
  }),
20
25
  /* @__PURE__ */ jsxs("ol", {
@@ -41,7 +46,7 @@ function WelcomePage() {
41
46
  " ",
42
47
  /* @__PURE__ */ jsx("code", { children: "claude-opus-4-8" }),
43
48
  ", ",
44
- /* @__PURE__ */ jsx("code", { children: "gpt-5.5" }),
49
+ /* @__PURE__ */ jsx("code", { children: "gpt-5.6-luna" }),
45
50
  ", or ",
46
51
  /* @__PURE__ */ jsx("code", { children: "llama3.3" }),
47
52
  ") and press ",
@@ -53,20 +58,23 @@ function WelcomePage() {
53
58
  n: 3,
54
59
  children: [
55
60
  /* @__PURE__ */ jsx("strong", { children: "Start chatting." }),
56
- " You'll be redirected to the home page automatically, where a ",
61
+ " You'll be redirected to the home page automatically, where the ",
57
62
  /* @__PURE__ */ jsx("code", { children: "default" }),
58
- " profile is waiting for a first spawn."
63
+ " Agent template is ready for your first spawn."
59
64
  ]
60
65
  })
61
66
  ]
62
67
  }),
63
- /* @__PURE__ */ jsx("a", {
68
+ /* @__PURE__ */ jsxs("a", {
64
69
  href: "/config",
65
- className: "inline-flex items-center gap-2 rounded-md bg-sapphire px-4 py-2 text-[0.92em] font-semibold text-snow no-underline transition-colors hover:bg-sapphire-deep",
66
- children: "Go to config →"
70
+ className: "btn-primary no-underline",
71
+ children: ["Configure providers ", /* @__PURE__ */ jsx(ArrowRight, {
72
+ className: "h-4 w-4",
73
+ "aria-hidden": "true"
74
+ })]
67
75
  })
68
76
  ]
69
- })
77
+ })]
70
78
  });
71
79
  }
72
80
  function Step({ n, children }) {