bazilion 0.9.0 → 0.11.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 (189) hide show
  1. package/dist/cli.js +1257 -150
  2. package/dist/cli.js.map +1 -1
  3. package/dist/daemon.js +3049 -471
  4. package/dist/daemon.js.map +1 -1
  5. package/dist/migrations/0001_init.sql +20 -0
  6. package/dist/web/client/assets/AgentTabs-B3hq5a3e.js +1 -0
  7. package/dist/web/client/assets/ConfigPage-BCwfgyjD.js +1 -0
  8. package/dist/web/client/assets/FieldRow-avAFLgYW.js +1 -0
  9. package/dist/web/client/assets/Page-CwNuDhWz.js +1 -0
  10. package/dist/web/client/assets/ProductionTeamPolicyEditor-B6dbpuYy.js +7 -0
  11. package/dist/web/client/assets/{ProfileCommunicationEditor-D1OZ8WE5.js → ProfileCommunicationEditor-Bf8UvmZT.js} +1 -1
  12. package/dist/web/client/assets/SectionTabs-DZzy01az.js +1 -0
  13. package/dist/web/client/assets/TeamTabs-sQBHChtd.js +1 -0
  14. package/dist/web/client/assets/TemplatesTabs-DPsuwsWB.js +1 -0
  15. package/dist/web/client/assets/_id-C9rkCclz.js +1 -0
  16. package/dist/web/client/assets/_id-D65IzC8H.js +1 -0
  17. package/dist/web/client/assets/_id-DE4IY5bL.js +1 -0
  18. package/dist/web/client/assets/_id-DYASsGQ8.js +1 -0
  19. package/dist/web/client/assets/activity-C7o6-xHg.js +1 -0
  20. package/dist/web/client/assets/agents-UroO4d25.js +1 -0
  21. package/dist/web/client/assets/agents-h8yWXQ2H.js +1 -0
  22. package/dist/web/client/assets/approvals-DKhF0YLC.js +1 -0
  23. package/dist/web/client/assets/chevron-down-BK6NPMMP.js +1 -0
  24. package/dist/web/client/assets/config-q8JDresK.js +3 -0
  25. package/dist/web/client/assets/context-CBucAoi6.js +1 -0
  26. package/dist/web/client/assets/inbox-BwoRikj1.js +1 -0
  27. package/dist/web/client/assets/index-DUXAevpZ.js +12 -0
  28. package/dist/web/client/assets/login-CNAV9Wer.js +1 -0
  29. package/dist/web/client/assets/mcp-BKdEFwHO.js +1 -0
  30. package/dist/web/client/assets/members-BDqZQh26.js +1 -0
  31. package/dist/web/client/assets/memory-DVdEVr6L.js +1 -0
  32. package/dist/web/client/assets/plus-b4yFXP0O.js +1 -0
  33. package/dist/web/client/assets/policy-DdDctqvg.js +1 -0
  34. package/dist/web/client/assets/preload-helper-mNuBjNXU.js +1 -0
  35. package/dist/web/client/assets/react-3W8R1pOO.js +1 -0
  36. package/dist/web/client/assets/routes-BEfALSZv.js +1 -0
  37. package/dist/web/client/assets/services-DZP2ybzb.js +1 -0
  38. package/dist/web/client/assets/skills-DoeIjITs.js +1 -0
  39. package/dist/web/client/assets/styles-BYM0UGdF.css +2 -0
  40. package/dist/web/client/assets/team-policy-D0jpnn2b.js +1 -0
  41. package/dist/web/client/assets/teams-DlHRnrQw.js +1 -0
  42. package/dist/web/client/assets/teams-W3j-UoJ9.js +1 -0
  43. package/dist/web/client/assets/telegram-2OdeGv4E.js +1 -0
  44. package/dist/web/client/assets/tokens-MuBfmgue.js +1 -0
  45. package/dist/web/client/assets/triggers-CX7RMQFQ.js +1 -0
  46. package/dist/web/client/assets/welcome-CvNr5IMi.js +1 -0
  47. package/dist/web/client/assets/wire-constants-BhVKOCQa.js +74 -0
  48. package/dist/web/server/assets/{AgentTabs-BOjTN7QF.js → AgentTabs-DoMDJBXH.js} +10 -7
  49. package/dist/web/server/assets/{ChatPane-Dh3qxzdb.js → ChatPane-Ba5wTsVk.js} +340 -44
  50. package/dist/web/server/assets/ConfigPage-BKlh5vOU.js +68 -0
  51. package/dist/web/server/assets/{FieldRow-DwyqycWI.js → FieldRow-B4eTegH9.js} +5 -5
  52. package/dist/web/server/assets/Page-LENulSXY.js +111 -0
  53. package/dist/web/server/assets/{ProductionTeamPolicyEditor-Bke5doyl.js → ProductionTeamPolicyEditor-Y4mzFFvR.js} +4 -4
  54. package/dist/web/server/assets/SectionTabs-BJTPr5nU.js +8 -0
  55. package/dist/web/server/assets/{Sidebar-CGmtCnYU.js → Sidebar-DsRVCszF.js} +229 -118
  56. package/dist/web/server/assets/{TeamTabs-BPxDBfqy.js → TeamTabs-zZzbP1t_.js} +9 -8
  57. package/dist/web/server/assets/{TemplatesTabs-zf4YhStd.js → TemplatesTabs-CcRxZhJe.js} +5 -4
  58. package/dist/web/server/assets/{_id-fpFQ9_Ya.js → _id-BhOB8Umi.js} +1 -1
  59. package/dist/web/server/assets/{_id-CCHA0gdR.js → _id-C3HY4lWg.js} +7 -10
  60. package/dist/web/server/assets/{_id-B6g9wmPR.js → _id-Cg7x6q3g.js} +22 -28
  61. package/dist/web/server/assets/{_id-B04VaQlh.js → _id-CwyGjJeP.js} +2 -2
  62. package/dist/web/server/assets/{_id-_nFwi9gD.js → _id-D27T85mU.js} +1 -1
  63. package/dist/web/server/assets/{_id-5lLzLwcv.js → _id-D3Ap7zZA.js} +142 -144
  64. package/dist/web/server/assets/{_id-ButXHnRH.js → _id-DinTp_7X.js} +2 -2
  65. package/dist/web/server/assets/{_id-DdC9wpNN.js → _id-Dj1yZ3zJ.js} +2 -2
  66. package/dist/web/server/assets/{_id-DkFgCIb-.js → _id-DqON-59C.js} +2 -2
  67. package/dist/web/server/assets/{_id-CUWgTqMS.js → _id-IzadFZV9.js} +1 -1
  68. package/dist/web/server/assets/{_id-C4AOhstq.js → _id-LrvXU4Nr.js} +6 -5
  69. package/dist/web/server/assets/{_id-DJkzwHjM.js → _id-tB47Vsfp.js} +1 -1
  70. package/dist/web/server/assets/{_tanstack-start-manifest_v-Div-TukY.js → _tanstack-start-manifest_v-BXauUXg6.js} +96 -51
  71. package/dist/web/server/assets/{activity-C2ZKg1Q9.js → activity-BCI4mfNS.js} +28 -30
  72. package/dist/web/server/assets/{activity-DedraoFj.js → activity-D9SMqBhy.js} +2 -2
  73. package/dist/web/server/assets/{activity-GPx8NCeB.js → activity-DohitgwW.js} +1 -1
  74. package/dist/web/server/assets/{agents-BR2qXlXF.js → agents-BPKOshR5.js} +1 -1
  75. package/dist/web/server/assets/{agents-LHowEI6S.js → agents-BY74v7fM.js} +1 -1
  76. package/dist/web/server/assets/{agents-B8kinIPW.js → agents-BvttypqB.js} +2 -2
  77. package/dist/web/server/assets/{agents-Bp1nsVs2.js → agents-C9xlWK0Z.js} +2 -2
  78. package/dist/web/server/assets/agents-CgZMHj80.js +265 -0
  79. package/dist/web/server/assets/{agents-CUQmWhTp.js → agents-DZuFEj0D.js} +59 -77
  80. package/dist/web/server/assets/{approvals-VPc0YpLN.js → approvals-BGU-XGIO.js} +1 -1
  81. package/dist/web/server/assets/{approvals-Dw2LJoSA.js → approvals-CWcFHlor.js} +2 -2
  82. package/dist/web/server/assets/{approvals-DHgARzd8.js → approvals-DCaVw1Mz.js} +116 -78
  83. package/dist/web/server/assets/{auth-l-Vf8wlu.js → auth-byfSx6Ja.js} +1 -1
  84. package/dist/web/server/assets/{config-CHaCv89D.js → config-BDCJdtj2.js} +1 -1
  85. package/dist/web/server/assets/{config-BvKctDOX.js → config-D2LAsud2.js} +28 -49
  86. package/dist/web/server/assets/{config-QvHaxGlP.js → config-TeIoyYYc.js} +2 -2
  87. package/dist/web/server/assets/{context-5lrf2ame.js → context-B-XDf6Ym.js} +1 -1
  88. package/dist/web/server/assets/{context-D3Egm-vY.js → context-BXGo5Vfi.js} +2 -2
  89. package/dist/web/server/assets/context-DrkrIWun.js +47 -0
  90. package/dist/web/server/assets/{createServerRpc-CeKECg65.js → createServerRpc-pU-IQV2Y.js} +1 -1
  91. package/dist/web/server/assets/{createSsrRpc-ZBGxhl8t.js → createSsrRpc-DFsIAfFd.js} +1 -1
  92. package/dist/web/server/assets/{empty-plugin-adapters-DKUlnwwl.js → empty-plugin-adapters-Cq4--YW-.js} +1 -1
  93. package/dist/web/server/assets/{inbox-CkiSvD14.js → inbox-B3-TRsNI.js} +1 -1
  94. package/dist/web/server/assets/{inbox-Bxb3W04M.js → inbox-BardsGyy.js} +2 -2
  95. package/dist/web/server/assets/inbox-CUIyf9MT.js +131 -0
  96. package/dist/web/server/assets/login-Bx5LEyGP.js +118 -0
  97. package/dist/web/server/assets/login-CmWvxfTK.js +136 -0
  98. package/dist/web/server/assets/{mcp-BsFKEoXt.js → mcp-2pwT9HU8.js} +1 -1
  99. package/dist/web/server/assets/{mcp-BU_kKENi.js → mcp-BJjLIdP0.js} +105 -112
  100. package/dist/web/server/assets/{mcp-CKqwG4mt.js → mcp-DIWTogHM.js} +2 -2
  101. package/dist/web/server/assets/members-CCv17cjQ.js +46 -0
  102. package/dist/web/server/assets/{members-DlGBKZNl.js → members-CW5aBe81.js} +1 -1
  103. package/dist/web/server/assets/{members-ksELRsyk.js → members-VdPwD6CE.js} +2 -2
  104. package/dist/web/server/assets/{memory-CO0jKGzJ.js → memory-Dngc13Nw.js} +1 -1
  105. package/dist/web/server/assets/memory-a8Kz57Kh.js +287 -0
  106. package/dist/web/server/assets/{memory-B5moRnnp.js → memory-pZ4pZT7p.js} +2 -2
  107. package/dist/web/server/assets/{policy-Dxs78_GO.js → policy-Bb-vEgqg.js} +1 -1
  108. package/dist/web/server/assets/{policy-Dr55y-Mh.js → policy-BcGELcc9.js} +16 -22
  109. package/dist/web/server/assets/{policy-DNcGZLOB.js → policy-C30AeFIb.js} +2 -2
  110. package/dist/web/server/assets/{router-_izWQUeG.js → router-C5_NjTsP.js} +100 -111
  111. package/dist/web/server/assets/{routes-BSSKp3Rv.js → routes-B6cMLIPk.js} +16 -13
  112. package/dist/web/server/assets/{routes-BrTOoeth.js → routes-BrA-U_Hm.js} +2 -2
  113. package/dist/web/server/assets/{routes-DOj6ljcm.js → routes-C19CMLZt.js} +2 -2
  114. package/dist/web/server/assets/services-B9yBWDX0.js +79 -0
  115. package/dist/web/server/assets/{services-Pv_V88VA.js → services-C4szdhPx.js} +2 -2
  116. package/dist/web/server/assets/{services-DhRiNeq0.js → services-wG8I06oS.js} +1 -1
  117. package/dist/web/server/assets/skills-BZdqiDig.js +358 -0
  118. package/dist/web/server/assets/{skills-l2cyQ3zS.js → skills-C-UgkuCW.js} +2 -2
  119. package/dist/web/server/assets/{skills-CFIWVg32.js → skills-a9VSWHWq.js} +1 -1
  120. package/dist/web/server/assets/{start-DlHq0RaQ.js → start-WH8WzTL_.js} +1 -1
  121. package/dist/web/server/assets/{team-policy-Csvc5EDd.js → team-policy-vPG01onj.js} +3 -3
  122. package/dist/web/server/assets/{teams-B9O-WDH5.js → teams-CpQ0YgWf.js} +38 -34
  123. package/dist/web/server/assets/{teams-35Oprf6e.js → teams-DEpQR2QA.js} +2 -2
  124. package/dist/web/server/assets/{teams-DFkN7ic7.js → teams-DqfrEoH6.js} +1 -1
  125. package/dist/web/server/assets/{teams-B5IF65p2.js → teams-MjqgsmC3.js} +1 -1
  126. package/dist/web/server/assets/{teams-DH1CvWmT.js → teams-OIkHuxy1.js} +2 -2
  127. package/dist/web/server/assets/teams-jBtvnk59.js +193 -0
  128. package/dist/web/server/assets/{telegram-C9sQFwWj.js → telegram-CBF8SJzB.js} +36 -71
  129. package/dist/web/server/assets/{telegram-BdaUIjvs.js → telegram-DNgCWebD.js} +1 -1
  130. package/dist/web/server/assets/{telegram-mTnJCOmn.js → telegram-XwyKSEtj.js} +2 -2
  131. package/dist/web/server/assets/{tokens-DdpnfV_Y.js → tokens-BnwFbV7T.js} +2 -2
  132. package/dist/web/server/assets/{tokens-BCz3PSoT.js → tokens-DPDMSN5O.js} +1 -1
  133. package/dist/web/server/assets/tokens-yyTSfBSN.js +186 -0
  134. package/dist/web/server/assets/{triggers-BcTTwMfy.js → triggers-CBl4yMyw.js} +2 -2
  135. package/dist/web/server/assets/{triggers-BcH_6PW1.js → triggers-D79NoSXk.js} +4 -3
  136. package/dist/web/server/assets/{triggers-BzJG1nN5.js → triggers-_3rdhwSN.js} +31 -6
  137. package/dist/web/server/assets/{welcome-CDGE2Sdk.js → welcome-IYHGurWx.js} +21 -13
  138. package/dist/web/server/server.js +82 -73
  139. package/dist/worker.js +1614 -153
  140. package/dist/worker.js.map +1 -1
  141. package/package.json +5 -3
  142. package/dist/web/client/assets/AgentTabs-DioGqUVR.js +0 -1
  143. package/dist/web/client/assets/ConfigTabs-pY-V0Rie.js +0 -1
  144. package/dist/web/client/assets/FieldRow-DmwAFfbF.js +0 -1
  145. package/dist/web/client/assets/ProductionTeamPolicyEditor-1a5jQqUB.js +0 -7
  146. package/dist/web/client/assets/TeamTabs-BViZ4sti.js +0 -1
  147. package/dist/web/client/assets/TemplatesTabs-DVcY9pMD.js +0 -1
  148. package/dist/web/client/assets/_id-8P7brhGy.js +0 -1
  149. package/dist/web/client/assets/_id-C3o3MHq8.js +0 -1
  150. package/dist/web/client/assets/_id-DGRrSF1e.js +0 -1
  151. package/dist/web/client/assets/_id-KnJe-aW9.js +0 -1
  152. package/dist/web/client/assets/activity-WWvJSo4t.js +0 -1
  153. package/dist/web/client/assets/agents-C32T1voV.js +0 -1
  154. package/dist/web/client/assets/agents-nH4m4gZ1.js +0 -1
  155. package/dist/web/client/assets/approvals-l8jIZjqz.js +0 -1
  156. package/dist/web/client/assets/config-C7wvi1nR.js +0 -3
  157. package/dist/web/client/assets/context-BEGWE3RC.js +0 -1
  158. package/dist/web/client/assets/inbox--4aBaAgG.js +0 -1
  159. package/dist/web/client/assets/index-BCXoh1c8.js +0 -12
  160. package/dist/web/client/assets/login-Bk2wwIHQ.js +0 -1
  161. package/dist/web/client/assets/mcp-vM7xgh9e.js +0 -1
  162. package/dist/web/client/assets/members-cPKfnrSL.js +0 -1
  163. package/dist/web/client/assets/memory-BOcsaemD.js +0 -1
  164. package/dist/web/client/assets/policy-BGLCJYvS.js +0 -1
  165. package/dist/web/client/assets/preload-helper-eOOCz1Fu.js +0 -1
  166. package/dist/web/client/assets/routes-DnrP3dwv.js +0 -1
  167. package/dist/web/client/assets/services-C2_O3ifw.js +0 -1
  168. package/dist/web/client/assets/skills-B__fLZjx.js +0 -1
  169. package/dist/web/client/assets/styles-Dn24-ZvP.css +0 -2
  170. package/dist/web/client/assets/team-policy-BdX340m4.js +0 -1
  171. package/dist/web/client/assets/teams-DZMB4_iw.js +0 -1
  172. package/dist/web/client/assets/teams-rpaYKNIb.js +0 -1
  173. package/dist/web/client/assets/telegram-B1O4Ko0V.js +0 -1
  174. package/dist/web/client/assets/tokens-D7FH9VgA.js +0 -1
  175. package/dist/web/client/assets/triggers-3PLy2_Fo.js +0 -1
  176. package/dist/web/client/assets/welcome-B-QQobzq.js +0 -1
  177. package/dist/web/client/assets/wire-constants-BY9Q9Z7d.js +0 -74
  178. package/dist/web/server/assets/ConfigTabs-CyuxzesF.js +0 -41
  179. package/dist/web/server/assets/agents-DU9Hqs58.js +0 -249
  180. package/dist/web/server/assets/context-CEr4-xiA.js +0 -49
  181. package/dist/web/server/assets/inbox-DU27iHv_.js +0 -133
  182. package/dist/web/server/assets/login-CNznncgA.js +0 -58
  183. package/dist/web/server/assets/login-CQybKk7Y.js +0 -74
  184. package/dist/web/server/assets/members-40DxRdVj.js +0 -48
  185. package/dist/web/server/assets/memory-CiTl4cN9.js +0 -289
  186. package/dist/web/server/assets/services-CHe4ihJk.js +0 -94
  187. package/dist/web/server/assets/skills-D89ND2kR.js +0 -321
  188. package/dist/web/server/assets/teams-zcm9XaQU.js +0 -174
  189. package/dist/web/server/assets/tokens-CkKqrtk-.js +0 -193
@@ -1,133 +0,0 @@
1
- import { t as Route } from "./inbox-Bxb3W04M.js";
2
- import { t as AgentTabs } from "./AgentTabs-BOjTN7QF.js";
3
- import { jsx, jsxs } from "react/jsx-runtime";
4
- //#region src/routes/agents/$id/inbox.tsx?tsr-split=component
5
- function decodeText(payload) {
6
- try {
7
- const obj = JSON.parse(payload);
8
- if (typeof obj.text === "string") return obj.text;
9
- } catch {}
10
- return payload;
11
- }
12
- function InboxPage() {
13
- const { resolved, messages, unreadCount, selected, agentNames } = Route.useLoaderData();
14
- const unreadOnly = Route.useSearch().unread === "1";
15
- const misaddressed = Boolean(selected && selected.toAgentId !== resolved.agent.id);
16
- function agentLabel(aid) {
17
- const name = agentNames[aid];
18
- return name ? `${name} (${aid.slice(0, 8)})` : aid.slice(0, 8);
19
- }
20
- return /* @__PURE__ */ jsxs("main", {
21
- className: "mx-auto max-w-5xl px-6 py-8",
22
- children: [
23
- /* @__PURE__ */ jsx("h1", {
24
- className: "font-serif text-3xl text-foreground mb-1",
25
- children: resolved.agent.name
26
- }),
27
- /* @__PURE__ */ jsxs("p", {
28
- className: "text-xs text-muted-foreground mb-6",
29
- children: [
30
- /* @__PURE__ */ jsxs("code", {
31
- className: "font-mono",
32
- children: [resolved.agent.id.slice(0, 8), "…"]
33
- }),
34
- " · unread: ",
35
- unreadCount
36
- ]
37
- }),
38
- /* @__PURE__ */ jsx(AgentTabs, {
39
- agentId: resolved.agent.id,
40
- active: "inbox",
41
- archived: resolved.agent.status === "archived"
42
- }),
43
- /* @__PURE__ */ jsxs("div", {
44
- className: "grid grid-cols-1 md:grid-cols-[360px_1fr] gap-6",
45
- children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
46
- className: "flex gap-1 border-b mb-3",
47
- children: [/* @__PURE__ */ jsx("a", {
48
- href: `/agents/${resolved.agent.id}/inbox`,
49
- 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"}`,
50
- children: "all"
51
- }), /* @__PURE__ */ jsx("a", {
52
- href: `/agents/${resolved.agent.id}/inbox?unread=1`,
53
- 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"}`,
54
- children: "unread"
55
- })]
56
- }), /* @__PURE__ */ jsx("div", {
57
- className: "rounded-lg border bg-card max-h-[640px] overflow-y-auto",
58
- children: messages.length === 0 ? /* @__PURE__ */ jsx("div", {
59
- className: "p-6 text-center text-muted-foreground italic",
60
- children: unreadOnly ? "no unread messages" : "inbox empty"
61
- }) : messages.map((m) => {
62
- const text = decodeText(m.payload);
63
- const preview = text.length > 80 ? `${text.slice(0, 80)}…` : text;
64
- const when = new Date(m.createdAt).toLocaleString();
65
- const isActive = selected?.id === m.id;
66
- const isUnread = m.readAt === null;
67
- const qs = unreadOnly ? `?unread=1&id=${m.id}` : `?id=${m.id}`;
68
- return /* @__PURE__ */ jsxs("a", {
69
- href: `/agents/${resolved.agent.id}/inbox${qs}`,
70
- className: `block border-b last:border-0 px-3 py-2 text-sm hover:bg-accent/30 ${isActive ? "bg-accent/40" : ""} ${isUnread ? "font-medium" : ""}`,
71
- children: [/* @__PURE__ */ jsxs("div", {
72
- className: "flex justify-between text-xs text-muted-foreground",
73
- children: [/* @__PURE__ */ jsxs("span", {
74
- className: "font-mono",
75
- children: [
76
- isUnread && /* @__PURE__ */ jsx("span", { className: "inline-block w-1.5 h-1.5 rounded-full bg-primary mr-1.5 align-middle" }),
77
- "from ",
78
- agentLabel(m.fromAgentId)
79
- ]
80
- }), /* @__PURE__ */ jsx("span", {
81
- className: "font-mono",
82
- children: when
83
- })]
84
- }), /* @__PURE__ */ jsx("div", {
85
- className: "text-foreground mt-0.5 truncate",
86
- children: preview
87
- })]
88
- }, m.id);
89
- })
90
- })] }), /* @__PURE__ */ jsxs("div", { children: [
91
- selected && !misaddressed && /* @__PURE__ */ jsxs("div", {
92
- className: "rounded-lg border bg-card p-5 mb-4",
93
- children: [/* @__PURE__ */ jsxs("div", {
94
- className: "font-mono text-xs text-muted-foreground mb-2 space-y-0.5",
95
- children: [
96
- /* @__PURE__ */ jsxs("div", { children: ["id: ", /* @__PURE__ */ jsx("code", { children: selected.id })] }),
97
- /* @__PURE__ */ jsxs("div", { children: ["from: ", /* @__PURE__ */ jsx("code", { children: agentLabel(selected.fromAgentId) })] }),
98
- /* @__PURE__ */ jsxs("div", { children: ["received: ", new Date(selected.createdAt).toLocaleString()] }),
99
- /* @__PURE__ */ jsxs("div", { children: [
100
- "read:",
101
- " ",
102
- selected.readAt ? new Date(selected.readAt).toLocaleString() : "(unread)"
103
- ] }),
104
- selected.replyTo && /* @__PURE__ */ jsxs("div", { children: ["reply to: ", /* @__PURE__ */ jsx("code", { children: selected.replyTo })] })
105
- ]
106
- }), /* @__PURE__ */ jsx("div", {
107
- className: "border-t pt-3 font-mono text-sm whitespace-pre-wrap break-words",
108
- children: decodeText(selected.payload)
109
- })]
110
- }),
111
- misaddressed && /* @__PURE__ */ jsx("div", {
112
- className: "rounded-lg border bg-card p-5 mb-4 text-muted-foreground",
113
- children: "message is not addressed to this agent"
114
- }),
115
- /* @__PURE__ */ jsxs("p", {
116
- className: "text-xs text-muted-foreground",
117
- children: [
118
- "Agents exchange messages automatically via their",
119
- " ",
120
- /* @__PURE__ */ jsx("code", {
121
- className: "font-mono",
122
- children: "send_message"
123
- }),
124
- " tool. An idle recipient's scheduler tick drains unread mail."
125
- ]
126
- })
127
- ] })]
128
- })
129
- ]
130
- });
131
- }
132
- //#endregion
133
- export { InboxPage as component };
@@ -1,58 +0,0 @@
1
- import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- //#region src/components/PawIcon.tsx
4
- function PawIcon({ className }) {
5
- return /* @__PURE__ */ jsxs("svg", {
6
- viewBox: "0 0 24 24",
7
- fill: "currentColor",
8
- className,
9
- "aria-hidden": "true",
10
- children: [
11
- /* @__PURE__ */ jsx("ellipse", {
12
- cx: "7",
13
- cy: "5",
14
- rx: "2.2",
15
- ry: "2.8"
16
- }),
17
- /* @__PURE__ */ jsx("ellipse", {
18
- cx: "17",
19
- cy: "5",
20
- rx: "2.2",
21
- ry: "2.8"
22
- }),
23
- /* @__PURE__ */ jsx("ellipse", {
24
- cx: "3.5",
25
- cy: "11",
26
- rx: "2",
27
- ry: "2.5"
28
- }),
29
- /* @__PURE__ */ jsx("ellipse", {
30
- cx: "20.5",
31
- cy: "11",
32
- rx: "2",
33
- ry: "2.5"
34
- }),
35
- /* @__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" })
36
- ]
37
- });
38
- }
39
- //#endregion
40
- //#region src/components/BaziuLogo.tsx
41
- function BaziuLogo({ className }) {
42
- return /* @__PURE__ */ jsx("img", {
43
- src: "/baziu.svg",
44
- alt: "",
45
- "aria-hidden": "true",
46
- draggable: false,
47
- className
48
- });
49
- }
50
- //#endregion
51
- //#region src/routes/login.tsx
52
- var $$splitComponentImporter = () => import("./login-CQybKk7Y.js");
53
- var Route = createFileRoute("/login")({
54
- validateSearch: (search) => ({ error: search.error === "1" ? "1" : void 0 }),
55
- component: lazyRouteComponent($$splitComponentImporter, "component")
56
- });
57
- //#endregion
58
- export { BaziuLogo as n, PawIcon as r, Route as t };
@@ -1,74 +0,0 @@
1
- import { n as BaziuLogo, r as PawIcon, t as Route } from "./login-CNznncgA.js";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- //#region src/routes/login.tsx?tsr-split=component
4
- function LoginPage() {
5
- const { error } = Route.useSearch();
6
- return /* @__PURE__ */ jsxs("main", {
7
- className: "relative flex min-h-dvh items-center justify-center bg-cream",
8
- children: [
9
- /* @__PURE__ */ jsx("div", {
10
- "aria-hidden": "true",
11
- className: "pointer-events-none absolute inset-0",
12
- style: { background: "radial-gradient(circle at 20% 15%, rgba(74,124,155,0.12), transparent 55%), radial-gradient(circle at 80% 85%, rgba(196,135,138,0.10), transparent 55%)" }
13
- }),
14
- /* @__PURE__ */ jsxs("div", {
15
- className: "relative w-full max-w-sm rounded-[16px] border border-frost bg-snow p-8 text-center shadow-baziu-md",
16
- children: [
17
- /* @__PURE__ */ jsx(BaziuLogo, { className: "mx-auto mb-3 h-16 w-16" }),
18
- /* @__PURE__ */ jsx("h1", {
19
- className: "font-display text-[2rem] tracking-tight text-charcoal",
20
- children: "bazilion"
21
- }),
22
- error && /* @__PURE__ */ jsx("div", {
23
- className: "err mt-4",
24
- children: "invalid token"
25
- }),
26
- /* @__PURE__ */ jsxs("form", {
27
- method: "POST",
28
- action: "/api/login",
29
- className: "mt-6 text-left",
30
- children: [
31
- /* @__PURE__ */ jsx("label", {
32
- htmlFor: "token",
33
- className: "block text-[0.85em] font-medium text-mocha",
34
- children: "Token"
35
- }),
36
- /* @__PURE__ */ jsx("input", {
37
- type: "password",
38
- id: "token",
39
- name: "token",
40
- autoFocus: true,
41
- required: true,
42
- placeholder: "paste from auth.json",
43
- className: "mb-5"
44
- }),
45
- /* @__PURE__ */ jsx("button", {
46
- type: "submit",
47
- className: "w-full",
48
- children: "log in"
49
- })
50
- ]
51
- }),
52
- /* @__PURE__ */ jsxs("p", {
53
- className: "mt-5 text-[0.78em] leading-relaxed text-mocha-light",
54
- children: [
55
- "Your token is in ",
56
- /* @__PURE__ */ jsx("code", { children: "~/.bazilion/auth.json" }),
57
- /* @__PURE__ */ jsx("br", {}),
58
- "created on first ",
59
- /* @__PURE__ */ jsx("code", { children: "bazilion dashboard" }),
60
- " or ",
61
- /* @__PURE__ */ jsx("code", { children: "bazilion serve" })
62
- ]
63
- })
64
- ]
65
- }),
66
- /* @__PURE__ */ jsxs("footer", {
67
- className: "absolute bottom-4 left-0 right-0 text-center text-[0.78em] text-fawn",
68
- children: ["dedicated to Baziu", /* @__PURE__ */ jsx(PawIcon, { className: "ml-1 inline-block h-3 w-3 align-[-1px] opacity-40" })]
69
- })
70
- ]
71
- });
72
- }
73
- //#endregion
74
- export { LoginPage as component };
@@ -1,48 +0,0 @@
1
- import { t as Route } from "./members-ksELRsyk.js";
2
- import { t as TeamTabs } from "./TeamTabs-BPxDBfqy.js";
3
- import { jsx, jsxs } from "react/jsx-runtime";
4
- //#region src/routes/teams/$id/members.tsx?tsr-split=component
5
- function TeamMembersPage() {
6
- const detail = Route.useLoaderData();
7
- const { id } = Route.useParams();
8
- return /* @__PURE__ */ jsxs("div", {
9
- className: "mx-auto max-w-5xl px-6 py-8",
10
- children: [
11
- /* @__PURE__ */ jsx("h1", { children: "team members" }),
12
- /* @__PURE__ */ jsxs("p", {
13
- className: "muted",
14
- children: [/* @__PURE__ */ jsx("code", { children: "agents.team_id" }), " is the only live-membership authority."]
15
- }),
16
- /* @__PURE__ */ jsx(TeamTabs, { teamId: id }),
17
- /* @__PURE__ */ jsx("div", {
18
- className: "overflow-x-auto rounded-md border border-frost",
19
- children: /* @__PURE__ */ jsxs("table", {
20
- className: "w-full",
21
- children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
22
- /* @__PURE__ */ jsx("th", { children: "agent" }),
23
- /* @__PURE__ */ jsx("th", { children: "status" }),
24
- /* @__PURE__ */ jsx("th", { children: "agent template" }),
25
- /* @__PURE__ */ jsx("th", { children: "source slot" })
26
- ] }) }), /* @__PURE__ */ jsxs("tbody", { children: [detail.members.map((agent) => {
27
- const binding = detail.bindings.find((item) => item.agentId === agent.id);
28
- return /* @__PURE__ */ jsxs("tr", { children: [
29
- /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx("a", {
30
- href: `/agents/${agent.id}`,
31
- children: agent.name
32
- }) }),
33
- /* @__PURE__ */ jsx("td", { children: agent.status }),
34
- /* @__PURE__ */ jsx("td", { children: agent.profileId }),
35
- /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx("code", { children: binding?.sourceSlotId ?? "live-only" }) })
36
- ] }, agent.id);
37
- }), detail.members.length === 0 && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
38
- colSpan: 4,
39
- className: "muted",
40
- children: "No agents belong to this team."
41
- }) })] })]
42
- })
43
- })
44
- ]
45
- });
46
- }
47
- //#endregion
48
- export { TeamMembersPage as component };
@@ -1,289 +0,0 @@
1
- import { t as Route } from "./memory-B5moRnnp.js";
2
- import { t as TeamTabs } from "./TeamTabs-BPxDBfqy.js";
3
- import { useEffect, useRef, useState } from "react";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
- //#region src/routes/teams/$id/memory.tsx?tsr-split=component
6
- function encodeKey(key) {
7
- return key.split("/").map(encodeURIComponent).join("/");
8
- }
9
- function MemoryPage() {
10
- const { team, memberCount, entries: initialEntries } = Route.useLoaderData();
11
- const teamId = team.id;
12
- const [rows, setRows] = useState(() => initialEntries.map((e) => ({
13
- key: e.key,
14
- preview: e.content.slice(0, 80)
15
- })));
16
- const [isSearch, setIsSearch] = useState(false);
17
- const [query, setQuery] = useState("");
18
- const [selectedKey, setSelectedKey] = useState(null);
19
- const [mode, setMode] = useState("none");
20
- const [keyInput, setKeyInput] = useState("");
21
- const [content, setContent] = useState("");
22
- const [status, setStatus] = useState(null);
23
- const searchTimer = useRef(null);
24
- async function loadList(q) {
25
- try {
26
- const url = q.trim().length > 0 ? `/api/teams/${encodeURIComponent(teamId)}/memory/search?q=${encodeURIComponent(q)}&limit=50` : `/api/teams/${encodeURIComponent(teamId)}/memory`;
27
- const res = await fetch(url);
28
- if (!res.ok) {
29
- const body = await res.json().catch(() => null);
30
- throw new Error(body?.error ?? res.statusText);
31
- }
32
- const data = await res.json();
33
- if (q.trim().length > 0) {
34
- setRows(data.map((h) => ({
35
- key: h.key,
36
- preview: h.snippet,
37
- score: h.score
38
- })));
39
- setIsSearch(true);
40
- } else {
41
- setRows(data.map((e) => ({
42
- key: e.key,
43
- preview: e.content.slice(0, 80)
44
- })));
45
- setIsSearch(false);
46
- }
47
- } catch (err) {
48
- setStatus({
49
- msg: `error: ${err.message}`,
50
- kind: "error"
51
- });
52
- }
53
- }
54
- useEffect(() => {
55
- if (searchTimer.current) clearTimeout(searchTimer.current);
56
- searchTimer.current = setTimeout(() => {
57
- loadList(query);
58
- }, 200);
59
- return () => {
60
- if (searchTimer.current) clearTimeout(searchTimer.current);
61
- };
62
- }, [query]);
63
- async function openEntry(key) {
64
- setSelectedKey(key);
65
- setMode("edit");
66
- setStatus({
67
- msg: "loading…",
68
- kind: "info"
69
- });
70
- try {
71
- const res = await fetch(`/api/teams/${encodeURIComponent(teamId)}/memory/${encodeKey(key)}`);
72
- if (!res.ok) {
73
- const body = await res.json().catch(() => null);
74
- throw new Error(body?.error ?? res.statusText);
75
- }
76
- const entry = await res.json();
77
- setKeyInput(entry.key);
78
- setContent(entry.content ?? "");
79
- setStatus({
80
- msg: `loaded ${entry.key}`,
81
- kind: "info"
82
- });
83
- } catch (err) {
84
- setStatus({
85
- msg: `error: ${err.message}`,
86
- kind: "error"
87
- });
88
- }
89
- }
90
- function newEntry() {
91
- setSelectedKey(null);
92
- setMode("new");
93
- setKeyInput("");
94
- setContent("");
95
- setStatus({
96
- msg: "new entry — type a key and content, then save",
97
- kind: "info"
98
- });
99
- }
100
- async function save() {
101
- const key = keyInput.trim();
102
- if (!key) {
103
- setStatus({
104
- msg: "key is required",
105
- kind: "error"
106
- });
107
- return;
108
- }
109
- try {
110
- const res = await fetch(`/api/teams/${encodeURIComponent(teamId)}/memory/${encodeKey(key)}`, {
111
- method: "PUT",
112
- headers: { "content-type": "application/json" },
113
- body: JSON.stringify({ content })
114
- });
115
- if (!res.ok) {
116
- const body = await res.json().catch(() => null);
117
- throw new Error(body?.error ?? res.statusText);
118
- }
119
- setSelectedKey(key);
120
- setMode("edit");
121
- setStatus({
122
- msg: "saved",
123
- kind: "info"
124
- });
125
- await loadList(query);
126
- } catch (err) {
127
- setStatus({
128
- msg: `error: ${err.message}`,
129
- kind: "error"
130
- });
131
- }
132
- }
133
- async function del() {
134
- if (!selectedKey) return;
135
- if (!confirm(`delete ${selectedKey}?`)) return;
136
- try {
137
- const res = await fetch(`/api/teams/${encodeURIComponent(teamId)}/memory/${encodeKey(selectedKey)}`, { method: "DELETE" });
138
- if (!res.ok && res.status !== 204) {
139
- const body = await res.json().catch(() => null);
140
- throw new Error(body?.error ?? res.statusText);
141
- }
142
- setSelectedKey(null);
143
- setMode("none");
144
- setKeyInput("");
145
- setContent("");
146
- setStatus({
147
- msg: "deleted",
148
- kind: "info"
149
- });
150
- await loadList(query);
151
- } catch (err) {
152
- setStatus({
153
- msg: `error: ${err.message}`,
154
- kind: "error"
155
- });
156
- }
157
- }
158
- const canSave = mode !== "none" && keyInput.trim().length > 0;
159
- const canDelete = mode === "edit" && selectedKey !== null;
160
- return /* @__PURE__ */ jsxs("main", {
161
- className: "mx-auto max-w-5xl px-6 py-8",
162
- children: [
163
- /* @__PURE__ */ jsxs("header", {
164
- className: "mb-6",
165
- children: [/* @__PURE__ */ jsxs("h1", {
166
- className: "font-serif text-3xl text-foreground",
167
- children: [
168
- team.name,
169
- " ",
170
- /* @__PURE__ */ jsx("span", {
171
- className: "text-muted-foreground text-base",
172
- children: "/ shared memory"
173
- })
174
- ]
175
- }), /* @__PURE__ */ jsxs("p", {
176
- className: "text-muted-foreground text-sm mt-1",
177
- children: [
178
- "BM25-indexed markdown notes shared by every agent in",
179
- " ",
180
- /* @__PURE__ */ jsx("a", {
181
- href: `/teams/${encodeURIComponent(team.id)}`,
182
- className: "font-mono underline",
183
- children: team.id
184
- }),
185
- " ",
186
- "(",
187
- memberCount,
188
- " member",
189
- memberCount === 1 ? "" : "s",
190
- "). Anything written here is visible to every member; per-agent notes belong in the agent's own",
191
- " ",
192
- /* @__PURE__ */ jsx("code", {
193
- className: "font-mono",
194
- children: "IDENTITY.md"
195
- }),
196
- " via ",
197
- /* @__PURE__ */ jsx("code", { children: "home_write" }),
198
- "."
199
- ]
200
- })]
201
- }),
202
- /* @__PURE__ */ jsx(TeamTabs, { teamId: team.id }),
203
- /* @__PURE__ */ jsxs("div", {
204
- className: "grid grid-cols-1 gap-6 lg:grid-cols-[320px_1fr]",
205
- children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
206
- className: "overflow-hidden rounded-[16px] border border-frost bg-snow",
207
- children: [/* @__PURE__ */ jsx("div", {
208
- className: "border-b border-frost p-2",
209
- children: /* @__PURE__ */ jsx("input", {
210
- type: "text",
211
- placeholder: "search (BM25)...",
212
- autoComplete: "off",
213
- value: query,
214
- onChange: (e) => setQuery(e.target.value)
215
- })
216
- }), /* @__PURE__ */ jsx("div", {
217
- className: "max-h-[520px] overflow-y-auto",
218
- children: rows.length === 0 ? /* @__PURE__ */ jsx("div", {
219
- className: "p-8 text-center text-mocha-light",
220
- children: "no entries"
221
- }) : rows.map((r) => {
222
- return /* @__PURE__ */ jsxs("button", {
223
- type: "button",
224
- onClick: () => openEntry(r.key),
225
- className: `unstyled block w-full cursor-pointer border-b border-frost/50 px-3.5 py-2 text-left font-mono text-[0.84em] transition-colors last:border-b-0 hover:bg-sapphire-glow ${r.key === selectedKey ? "bg-sapphire-glow font-medium text-sapphire-deep" : ""}`,
226
- children: [
227
- isSearch && r.score !== void 0 && /* @__PURE__ */ jsx("span", {
228
- className: "float-right text-[0.75em] text-sapphire",
229
- children: r.score.toFixed(2)
230
- }),
231
- r.key,
232
- r.preview && /* @__PURE__ */ jsx("span", {
233
- className: "mt-1 block text-[0.9em] font-normal text-mocha-light",
234
- children: r.preview
235
- })
236
- ]
237
- }, r.key);
238
- })
239
- })]
240
- }), /* @__PURE__ */ jsx("button", {
241
- type: "button",
242
- className: "ghost-btn mt-3 w-full",
243
- onClick: newEntry,
244
- children: "+ new entry"
245
- })] }), /* @__PURE__ */ jsxs("div", { children: [
246
- /* @__PURE__ */ jsx("div", {
247
- className: "mb-3 flex items-center gap-2",
248
- children: /* @__PURE__ */ jsx("input", {
249
- type: "text",
250
- placeholder: "key (e.g. prefs/hiking.md)",
251
- value: keyInput,
252
- onChange: (e) => setKeyInput(e.target.value),
253
- disabled: mode !== "new",
254
- className: "flex-1 font-mono"
255
- })
256
- }),
257
- /* @__PURE__ */ jsx("textarea", {
258
- placeholder: "select an entry on the left, or create a new one.",
259
- value: content,
260
- onChange: (e) => setContent(e.target.value),
261
- className: "min-h-[360px] w-full font-mono text-[0.9em] leading-[1.55]"
262
- }),
263
- /* @__PURE__ */ jsxs("div", {
264
- className: "mt-3 flex gap-2",
265
- children: [/* @__PURE__ */ jsx("button", {
266
- type: "button",
267
- className: "btn-primary",
268
- onClick: save,
269
- disabled: !canSave,
270
- children: "save"
271
- }), /* @__PURE__ */ jsx("button", {
272
- type: "button",
273
- className: "ghost-btn",
274
- onClick: del,
275
- disabled: !canDelete,
276
- children: "delete"
277
- })]
278
- }),
279
- status && /* @__PURE__ */ jsx("p", {
280
- className: `mt-2 text-[0.9em] ${status.kind === "error" ? "text-[#9B3D3D]" : "text-mocha-light"}`,
281
- children: status.msg
282
- })
283
- ] })]
284
- })
285
- ]
286
- });
287
- }
288
- //#endregion
289
- export { MemoryPage as component };