bazilion 0.7.0 → 0.9.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 (166) hide show
  1. package/README.md +47 -5
  2. package/dist/cli.js +1257 -638
  3. package/dist/cli.js.map +1 -1
  4. package/dist/daemon.js +5334 -1594
  5. package/dist/daemon.js.map +1 -1
  6. package/dist/migrations/0001_init.sql +318 -88
  7. package/dist/web/client/assets/{FieldRow-CNKma5LE.js → FieldRow-DmwAFfbF.js} +1 -1
  8. package/dist/web/client/assets/ProductionTeamPolicyEditor-1a5jQqUB.js +7 -0
  9. package/dist/web/client/assets/ProductionTeamPolicyEditor-DLioOiRN.css +1 -0
  10. package/dist/web/client/assets/ProfileCommunicationEditor-D1OZ8WE5.js +1 -0
  11. package/dist/web/client/assets/RecoveryState-QfMSuwy3.js +1 -0
  12. package/dist/web/client/assets/TeamTabs-BViZ4sti.js +1 -0
  13. package/dist/web/client/assets/TemplatesTabs-DVcY9pMD.js +1 -0
  14. package/dist/web/client/assets/_id-8P7brhGy.js +1 -0
  15. package/dist/web/client/assets/_id-C3o3MHq8.js +1 -0
  16. package/dist/web/client/assets/_id-DGRrSF1e.js +1 -0
  17. package/dist/web/client/assets/_id-DGyKURCp.js +1 -0
  18. package/dist/web/client/assets/_id-KnJe-aW9.js +1 -0
  19. package/dist/web/client/assets/activity-DJuhhQCb.js +1 -0
  20. package/dist/web/client/assets/activity-WWvJSo4t.js +1 -0
  21. package/dist/web/client/assets/agents-C32T1voV.js +1 -0
  22. package/dist/web/client/assets/agents-nH4m4gZ1.js +1 -0
  23. package/dist/web/client/assets/approvals-DGi0PSx8.js +1 -0
  24. package/dist/web/client/assets/approvals-l8jIZjqz.js +1 -0
  25. package/dist/web/client/assets/{config-BSAVT-17.js → config-C7wvi1nR.js} +2 -2
  26. package/dist/web/client/assets/context-BEGWE3RC.js +1 -0
  27. package/dist/web/client/assets/inbox--4aBaAgG.js +1 -0
  28. package/dist/web/client/assets/index-BCXoh1c8.js +12 -0
  29. package/dist/web/client/assets/{login-D8lNr2SX.js → login-Bk2wwIHQ.js} +1 -1
  30. package/dist/web/client/assets/{mcp-BLnngDsj.js → mcp-vM7xgh9e.js} +1 -1
  31. package/dist/web/client/assets/members-cPKfnrSL.js +1 -0
  32. package/dist/web/client/assets/memory-BOcsaemD.js +1 -0
  33. package/dist/web/client/assets/policy-BGLCJYvS.js +1 -0
  34. package/dist/web/client/assets/policy-K4hIbbIN.js +1 -0
  35. package/dist/web/client/assets/{preload-helper-CvnapA2_.js → preload-helper-eOOCz1Fu.js} +1 -1
  36. package/dist/web/client/assets/routes-DnrP3dwv.js +1 -0
  37. package/dist/web/client/assets/services-C2_O3ifw.js +1 -0
  38. package/dist/web/client/assets/skills-B__fLZjx.js +1 -0
  39. package/dist/web/client/assets/styles-Dn24-ZvP.css +2 -0
  40. package/dist/web/client/assets/team-policy-BdX340m4.js +1 -0
  41. package/dist/web/client/assets/teams-CSNyLz3l.js +1 -0
  42. package/dist/web/client/assets/teams-DZMB4_iw.js +1 -0
  43. package/dist/web/client/assets/teams-rpaYKNIb.js +1 -0
  44. package/dist/web/client/assets/telegram-B1O4Ko0V.js +1 -0
  45. package/dist/web/client/assets/{tokens-D2_O9ARe.js → tokens-D7FH9VgA.js} +1 -1
  46. package/dist/web/client/assets/triggers-3PLy2_Fo.js +1 -0
  47. package/dist/web/client/assets/welcome-B-QQobzq.js +1 -0
  48. package/dist/web/client/assets/{ChatPane-DzEgOEqS.js → wire-constants-BY9Q9Z7d.js} +4 -4
  49. package/dist/web/server/assets/{ChatPane-BvpswYvF.js → ChatPane-Dh3qxzdb.js} +23 -12
  50. package/dist/web/server/assets/ProductionTeamPolicyEditor-Bke5doyl.js +1009 -0
  51. package/dist/web/server/assets/ProfileCommunicationEditor-C2RU-2QB.js +107 -0
  52. package/dist/web/server/assets/RecoveryState-B2SG-mrY.js +37 -0
  53. package/dist/web/server/assets/{Sidebar-DmEiewRN.js → Sidebar-CGmtCnYU.js} +372 -48
  54. package/dist/web/server/assets/TeamTabs-BPxDBfqy.js +50 -0
  55. package/dist/web/server/assets/{TemplatesTabs---7h5GYa.js → TemplatesTabs-zf4YhStd.js} +6 -6
  56. package/dist/web/server/assets/{_id-CXg-Blec.js → _id-5lLzLwcv.js} +52 -40
  57. package/dist/web/server/assets/_id-A8Xiv6Lc.js +11 -0
  58. package/dist/web/server/assets/{_id-BqnDy_Ca.js → _id-B04VaQlh.js} +6 -5
  59. package/dist/web/server/assets/{_id-D0ytyXGY.js → _id-B6g9wmPR.js} +167 -31
  60. package/dist/web/server/assets/_id-ButXHnRH.js +14 -0
  61. package/dist/web/server/assets/_id-C4AOhstq.js +44 -0
  62. package/dist/web/server/assets/{_id-DDixKEud.js → _id-CCHA0gdR.js} +72 -12
  63. package/dist/web/server/assets/{_id-D_Ew11ED.js → _id-CUWgTqMS.js} +8 -8
  64. package/dist/web/server/assets/_id-DJkzwHjM.js +42 -0
  65. package/dist/web/server/assets/{_id-CnQflrRv.js → _id-DdC9wpNN.js} +5 -5
  66. package/dist/web/server/assets/{_id-81NrHA5d.js → _id-DkFgCIb-.js} +9 -1
  67. package/dist/web/server/assets/{_id-D8duqgd5.js → _id-_nFwi9gD.js} +5 -4
  68. package/dist/web/server/assets/{_id-Sjw0zhA6.js → _id-fpFQ9_Ya.js} +4 -4
  69. package/dist/web/server/assets/_tanstack-start-manifest_v-Div-TukY.js +241 -0
  70. package/dist/web/server/assets/activity-C2ZKg1Q9.js +170 -0
  71. package/dist/web/server/assets/activity-CGCf8BQf.js +11 -0
  72. package/dist/web/server/assets/activity-DedraoFj.js +14 -0
  73. package/dist/web/server/assets/activity-GPx8NCeB.js +12 -0
  74. package/dist/web/server/assets/{profiles-CZ5NkmVw.js → agents-B8kinIPW.js} +4 -4
  75. package/dist/web/server/assets/{agents-k5QURC4I.js → agents-BR2qXlXF.js} +4 -4
  76. package/dist/web/server/assets/{agents-ChcAJUI5.js → agents-Bp1nsVs2.js} +1 -1
  77. package/dist/web/server/assets/{profiles-LxcC_L6n.js → agents-CUQmWhTp.js} +36 -10
  78. package/dist/web/server/assets/{agents-C7SBPN0M.js → agents-DU9Hqs58.js} +51 -12
  79. package/dist/web/server/assets/{profiles-C6a3RKgu.js → agents-LHowEI6S.js} +4 -4
  80. package/dist/web/server/assets/approvals-CbFXFvG8.js +11 -0
  81. package/dist/web/server/assets/approvals-DHgARzd8.js +242 -0
  82. package/dist/web/server/assets/approvals-Dw2LJoSA.js +14 -0
  83. package/dist/web/server/assets/approvals-VPc0YpLN.js +12 -0
  84. package/dist/web/server/assets/{auth-DzRAMwVt.js → auth-l-Vf8wlu.js} +5 -1
  85. package/dist/web/server/assets/{config-CdVjqjin.js → config-BvKctDOX.js} +4 -4
  86. package/dist/web/server/assets/{config-Bq3o924J.js → config-QvHaxGlP.js} +1 -1
  87. package/dist/web/server/assets/context-5lrf2ame.js +12 -0
  88. package/dist/web/server/assets/context-CEr4-xiA.js +49 -0
  89. package/dist/web/server/assets/context-D3Egm-vY.js +12 -0
  90. package/dist/web/server/assets/members-40DxRdVj.js +48 -0
  91. package/dist/web/server/assets/members-DlGBKZNl.js +12 -0
  92. package/dist/web/server/assets/members-ksELRsyk.js +12 -0
  93. package/dist/web/server/assets/{memory-Ns2-Z31p.js → memory-B5moRnnp.js} +5 -5
  94. package/dist/web/server/assets/{memory-BaYnfm7K.js → memory-CO0jKGzJ.js} +8 -8
  95. package/dist/web/server/assets/memory-CiTl4cN9.js +289 -0
  96. package/dist/web/server/assets/policy-BYVXqsan.js +11 -0
  97. package/dist/web/server/assets/policy-DNcGZLOB.js +21 -0
  98. package/dist/web/server/assets/policy-Dr55y-Mh.js +496 -0
  99. package/dist/web/server/assets/policy-Dxs78_GO.js +40 -0
  100. package/dist/web/server/assets/{router-BpBZgRwn.js → router-_izWQUeG.js} +156 -101
  101. package/dist/web/server/assets/{routes-Ce2VWrU9.js → routes-BSSKp3Rv.js} +4 -4
  102. package/dist/web/server/assets/{routes-C61gBiXa.js → routes-BrTOoeth.js} +5 -5
  103. package/dist/web/server/assets/{routes-V9URcp1v.js → routes-DOj6ljcm.js} +1 -1
  104. package/dist/web/server/assets/{services-B91w2f-X.js → services-CHe4ihJk.js} +11 -11
  105. package/dist/web/server/assets/{services-Ccc5s2bS.js → services-Pv_V88VA.js} +3 -3
  106. package/dist/web/server/assets/{skills-dLyBZb3B.js → skills-D89ND2kR.js} +67 -7
  107. package/dist/web/server/assets/{skills-CpsyR_WA.js → skills-l2cyQ3zS.js} +1 -1
  108. package/dist/web/server/assets/{start-CYDpZ6cb.js → start-DlHq0RaQ.js} +1 -1
  109. package/dist/web/server/assets/team-policy-Csvc5EDd.js +180 -0
  110. package/dist/web/server/assets/teams-35Oprf6e.js +14 -0
  111. package/dist/web/server/assets/teams-3im0oQnS.js +11 -0
  112. package/dist/web/server/assets/teams-B5IF65p2.js +12 -0
  113. package/dist/web/server/assets/teams-B9O-WDH5.js +108 -0
  114. package/dist/web/server/assets/teams-DFkN7ic7.js +36 -0
  115. package/dist/web/server/assets/teams-DH1CvWmT.js +12 -0
  116. package/dist/web/server/assets/teams-zcm9XaQU.js +174 -0
  117. package/dist/web/server/assets/{telegram-DfAddLdv.js → telegram-C9sQFwWj.js} +7 -7
  118. package/dist/web/server/assets/{telegram-T3l9KtiE.js → telegram-mTnJCOmn.js} +1 -1
  119. package/dist/web/server/assets/{welcome-CP4CZ9B6.js → welcome-CDGE2Sdk.js} +2 -2
  120. package/dist/web/server/assets/{wire-constants-Deb4NxBb.js → wire-constants-C8nBJcU3.js} +3 -3
  121. package/dist/web/server/server.js +64 -42
  122. package/dist/worker.js +180 -128
  123. package/dist/worker.js.map +1 -1
  124. package/package.json +7 -7
  125. package/dist/migrations/0002_profile_groups.sql +0 -38
  126. package/dist/migrations/0003_agent_telegram.sql +0 -40
  127. package/dist/migrations/0004_agent_mirror_mode.sql +0 -17
  128. package/dist/migrations/0005_group_topic_name_format.sql +0 -15
  129. package/dist/migrations/0006_telegram_acl.sql +0 -18
  130. package/dist/migrations/0007_mcp_servers.sql +0 -30
  131. package/dist/migrations/0008_seed_user_md.sql +0 -39
  132. package/dist/web/client/assets/MembersEditor-C6UpqDdV.js +0 -1
  133. package/dist/web/client/assets/SpawnTeamModal-BEkNCKXm.js +0 -1
  134. package/dist/web/client/assets/TemplatesTabs-Da7mg9FI.js +0 -1
  135. package/dist/web/client/assets/_id-BdKmo0gb.js +0 -1
  136. package/dist/web/client/assets/_id-LT6Ejjr0.js +0 -1
  137. package/dist/web/client/assets/_id-MR2XjWh0.js +0 -1
  138. package/dist/web/client/assets/_id-_6jIt0_-.js +0 -1
  139. package/dist/web/client/assets/agents-0arKbVYG.js +0 -1
  140. package/dist/web/client/assets/groups-BqTkhHes.js +0 -1
  141. package/dist/web/client/assets/inbox-ozoCXzr5.js +0 -1
  142. package/dist/web/client/assets/index-iayCEuU2.js +0 -12
  143. package/dist/web/client/assets/memory-D1GQjEvN.js +0 -1
  144. package/dist/web/client/assets/profile-groups-C2yJPTaE.js +0 -1
  145. package/dist/web/client/assets/profiles-BV7AAZjj.js +0 -1
  146. package/dist/web/client/assets/routes-DSHQLA7K.js +0 -1
  147. package/dist/web/client/assets/services-BbCJe1Du.js +0 -1
  148. package/dist/web/client/assets/skills-C6czKR5I.js +0 -1
  149. package/dist/web/client/assets/styles-C06axZZk.css +0 -2
  150. package/dist/web/client/assets/telegram-gE4j8gte.js +0 -1
  151. package/dist/web/client/assets/triggers-WljnfEfJ.js +0 -1
  152. package/dist/web/client/assets/welcome-Dn-zvmBE.js +0 -1
  153. package/dist/web/client/assets/wire-constants-BkT5-597.js +0 -1
  154. package/dist/web/server/assets/MembersEditor-BWQztvrX.js +0 -131
  155. package/dist/web/server/assets/SpawnTeamModal-dSN421k_.js +0 -107
  156. package/dist/web/server/assets/_id-BKev9H1p.js +0 -12
  157. package/dist/web/server/assets/_id-BNwlbWHP.js +0 -24
  158. package/dist/web/server/assets/_id-CRqqi8IE.js +0 -161
  159. package/dist/web/server/assets/_tanstack-start-manifest_v-DBlFH2gg.js +0 -178
  160. package/dist/web/server/assets/groups-CbSwND2r.js +0 -12
  161. package/dist/web/server/assets/groups-CeRRlZaZ.js +0 -150
  162. package/dist/web/server/assets/groups-pk4CYSuf.js +0 -21
  163. package/dist/web/server/assets/memory-CQaqWnyM.js +0 -284
  164. package/dist/web/server/assets/profile-groups-CiU06yN1.js +0 -28
  165. package/dist/web/server/assets/profile-groups-D21MYoLM.js +0 -208
  166. package/dist/web/server/assets/profile-groups-aoJleXHP.js +0 -12
@@ -1,24 +0,0 @@
1
- import { t as createServerFn } from "../server.js";
2
- import { t as createServerRpc } from "./createServerRpc-CeKECg65.js";
3
- import { n as daemonClient } from "./daemon-client-2NRMzlTr.js";
4
- //#region src/routes/profile-groups/$id.tsx?tss-serverfn-split
5
- var fetchDetail_createServerFn_handler = createServerRpc({
6
- id: "86dad0c33c97a6f0913d1f38e9b01ac4144f7d0970b45fdb3470e9bc9a78e0e0",
7
- name: "fetchDetail",
8
- filename: "src/routes/profile-groups/$id.tsx"
9
- }, (opts) => fetchDetail.__executeServer(opts));
10
- var fetchDetail = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(fetchDetail_createServerFn_handler, async ({ data }) => {
11
- const c = daemonClient();
12
- const [detail, profiles, models] = await Promise.all([
13
- c.get(`/api/profile-groups/${encodeURIComponent(data.id)}`),
14
- c.get("/api/profiles"),
15
- c.get("/api/config/available-models")
16
- ]);
17
- return {
18
- detail,
19
- profiles,
20
- modelGroups: models.groups
21
- };
22
- });
23
- //#endregion
24
- export { fetchDetail_createServerFn_handler };
@@ -1,161 +0,0 @@
1
- import { t as Route } from "./_id-BKev9H1p.js";
2
- import { t as Button } from "./Button-Dsnw22OF.js";
3
- import { t as MembersEditor } from "./MembersEditor-BWQztvrX.js";
4
- import { useState } from "react";
5
- import { useRouter } from "@tanstack/react-router";
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
- //#region src/routes/profile-groups/$id.tsx?tsr-split=component
8
- function toDraft(m) {
9
- return {
10
- profileId: m.profileId,
11
- agentName: m.agentName,
12
- modelOverride: m.modelOverride,
13
- reasoningLevel: m.reasoningLevel
14
- };
15
- }
16
- function ProfileGroupDetailPage() {
17
- const { detail, profiles, modelGroups } = Route.useLoaderData();
18
- const router = useRouter();
19
- const { group } = detail;
20
- return /* @__PURE__ */ jsxs("div", { children: [
21
- /* @__PURE__ */ jsx("h1", { children: group.name }),
22
- /* @__PURE__ */ jsxs("p", {
23
- className: "muted",
24
- children: [
25
- /* @__PURE__ */ jsx("code", { children: group.id }),
26
- " · ",
27
- detail.members.length,
28
- " member",
29
- detail.members.length === 1 ? "" : "s"
30
- ]
31
- }),
32
- /* @__PURE__ */ jsx(BasicsCard, {
33
- group,
34
- onSaved: () => router.invalidate()
35
- }),
36
- /* @__PURE__ */ jsx(MembersCard, {
37
- groupId: group.id,
38
- initialMembers: detail.members.map(toDraft),
39
- profiles,
40
- modelGroups,
41
- onSaved: () => router.invalidate()
42
- })
43
- ] });
44
- }
45
- function BasicsCard({ group, onSaved }) {
46
- const [name, setName] = useState(group.name);
47
- const [userMd, setUserMd] = useState(group.userMd ?? "");
48
- const [err, setErr] = useState(null);
49
- const [saving, setSaving] = useState(false);
50
- async function save() {
51
- setErr(null);
52
- setSaving(true);
53
- try {
54
- const body = { name };
55
- body.userMd = userMd === "" ? null : userMd;
56
- const res = await fetch(`/api/profile-groups/${group.id}`, {
57
- method: "PATCH",
58
- headers: { "content-type": "application/json" },
59
- body: JSON.stringify(body)
60
- });
61
- if (!res.ok) {
62
- const e = await res.json().catch(() => null);
63
- throw new Error(e?.error ?? res.statusText);
64
- }
65
- onSaved();
66
- } catch (e) {
67
- setErr(e.message);
68
- } finally {
69
- setSaving(false);
70
- }
71
- }
72
- return /* @__PURE__ */ jsxs("div", {
73
- className: "card",
74
- children: [
75
- /* @__PURE__ */ jsx("h3", { children: "basics" }),
76
- err && /* @__PURE__ */ jsx("div", {
77
- className: "err",
78
- children: err
79
- }),
80
- /* @__PURE__ */ jsxs("label", { children: ["name", /* @__PURE__ */ jsx("input", {
81
- value: name,
82
- onChange: (e) => setName(e.target.value)
83
- })] }),
84
- /* @__PURE__ */ jsxs("label", { children: ["starter USER.md (seeded only into freshly-created target groups)", /* @__PURE__ */ jsx("textarea", {
85
- rows: 6,
86
- value: userMd,
87
- onChange: (e) => setUserMd(e.target.value),
88
- className: "font-mono text-[0.88em] leading-[1.55]"
89
- })] }),
90
- /* @__PURE__ */ jsx(Button, {
91
- variant: "primary",
92
- onClick: save,
93
- disabled: saving,
94
- children: saving ? "saving…" : "save basics"
95
- })
96
- ]
97
- });
98
- }
99
- function MembersCard({ groupId, initialMembers, profiles, modelGroups, onSaved }) {
100
- const [members, setMembers] = useState(initialMembers);
101
- const [err, setErr] = useState(null);
102
- const [saving, setSaving] = useState(false);
103
- const dirty = JSON.stringify(members) !== JSON.stringify(initialMembers);
104
- async function save() {
105
- setErr(null);
106
- setSaving(true);
107
- try {
108
- const res = await fetch(`/api/profile-groups/${groupId}/members`, {
109
- method: "PUT",
110
- headers: { "content-type": "application/json" },
111
- body: JSON.stringify({ members })
112
- });
113
- if (!res.ok) {
114
- const e = await res.json().catch(() => null);
115
- throw new Error(e?.error ?? res.statusText);
116
- }
117
- onSaved();
118
- } catch (e) {
119
- setErr(e.message);
120
- } finally {
121
- setSaving(false);
122
- }
123
- }
124
- return /* @__PURE__ */ jsxs("div", {
125
- className: "card",
126
- children: [
127
- /* @__PURE__ */ jsx("h3", { children: "members" }),
128
- err && /* @__PURE__ */ jsx("div", {
129
- className: "err",
130
- children: err
131
- }),
132
- /* @__PURE__ */ jsxs("p", {
133
- className: "muted",
134
- children: [
135
- "Each member becomes one agent at spawn time. Duplicate agent-names within a template are fine — the spawn op auto-suffixes collisions with ",
136
- /* @__PURE__ */ jsx("code", { children: "-2" }),
137
- ", ",
138
- /* @__PURE__ */ jsx("code", { children: "-3" }),
139
- ", …"
140
- ]
141
- }),
142
- /* @__PURE__ */ jsx(MembersEditor, {
143
- members,
144
- onChange: setMembers,
145
- profiles,
146
- modelGroups
147
- }),
148
- /* @__PURE__ */ jsx("div", {
149
- className: "mt-3",
150
- children: /* @__PURE__ */ jsx(Button, {
151
- variant: "primary",
152
- onClick: save,
153
- disabled: saving || !dirty,
154
- children: saving ? "saving…" : "save members"
155
- })
156
- })
157
- ]
158
- });
159
- }
160
- //#endregion
161
- export { ProfileGroupDetailPage as component };
@@ -1,178 +0,0 @@
1
- //#region \0tanstack-start-manifest:v
2
- var tsrStartManifest = () => ({ routes: {
3
- __root__: {
4
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/__root.tsx",
5
- children: [
6
- "/",
7
- "/login",
8
- "/welcome",
9
- "/api/$",
10
- "/config/mcp",
11
- "/config/services",
12
- "/config/tokens",
13
- "/profile-groups/$id",
14
- "/profiles/$id",
15
- "/agents/",
16
- "/config/",
17
- "/groups/",
18
- "/profile-groups/",
19
- "/profiles/",
20
- "/skills/",
21
- "/agents/$id/inbox",
22
- "/agents/$id/triggers",
23
- "/config/integrations/telegram",
24
- "/groups/$id/memory",
25
- "/agents/$id/",
26
- "/groups/$id/"
27
- ],
28
- preloads: [
29
- "/assets/index-iayCEuU2.js",
30
- "/assets/jsx-runtime-DGeXAQPT.js",
31
- "/assets/preload-helper-CvnapA2_.js"
32
- ],
33
- scripts: [{ attrs: {
34
- type: "module",
35
- async: !0,
36
- src: "/assets/index-iayCEuU2.js"
37
- } }]
38
- },
39
- "/": {
40
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/index.tsx",
41
- children: void 0,
42
- preloads: [
43
- "/assets/routes-DSHQLA7K.js",
44
- "/assets/ChatPane-DzEgOEqS.js",
45
- "/assets/SpawnTeamModal-BEkNCKXm.js",
46
- "/assets/wire-constants-BkT5-597.js"
47
- ]
48
- },
49
- "/login": {
50
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/login.tsx",
51
- children: void 0,
52
- preloads: ["/assets/login-D8lNr2SX.js"]
53
- },
54
- "/welcome": {
55
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/welcome.tsx",
56
- children: void 0,
57
- preloads: ["/assets/welcome-Dn-zvmBE.js"]
58
- },
59
- "/config/mcp": {
60
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/mcp.tsx",
61
- children: void 0,
62
- preloads: ["/assets/mcp-BLnngDsj.js", "/assets/ConfigTabs-pY-V0Rie.js"]
63
- },
64
- "/config/services": {
65
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/services.tsx",
66
- children: void 0,
67
- preloads: [
68
- "/assets/services-BbCJe1Du.js",
69
- "/assets/ConfigTabs-pY-V0Rie.js",
70
- "/assets/FieldRow-CNKma5LE.js"
71
- ]
72
- },
73
- "/config/tokens": {
74
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/tokens.tsx",
75
- children: void 0,
76
- preloads: ["/assets/tokens-D2_O9ARe.js", "/assets/ConfigTabs-pY-V0Rie.js"]
77
- },
78
- "/profile-groups/$id": {
79
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/profile-groups/$id.tsx",
80
- children: void 0,
81
- preloads: [
82
- "/assets/_id-_6jIt0_-.js",
83
- "/assets/Button-ByiV6fpd.js",
84
- "/assets/MembersEditor-C6UpqDdV.js"
85
- ]
86
- },
87
- "/profiles/$id": {
88
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/profiles/$id.tsx",
89
- children: void 0,
90
- preloads: ["/assets/_id-LT6Ejjr0.js"]
91
- },
92
- "/agents/": {
93
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/agents/index.tsx",
94
- children: void 0,
95
- preloads: ["/assets/agents-0arKbVYG.js", "/assets/AgentAvatar-JYijLvZ2.js"]
96
- },
97
- "/config/": {
98
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/index.tsx",
99
- children: void 0,
100
- preloads: [
101
- "/assets/config-BSAVT-17.js",
102
- "/assets/ConfigTabs-pY-V0Rie.js",
103
- "/assets/FieldRow-CNKma5LE.js"
104
- ]
105
- },
106
- "/groups/": {
107
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/groups/index.tsx",
108
- children: void 0,
109
- preloads: ["/assets/groups-BqTkhHes.js"]
110
- },
111
- "/profile-groups/": {
112
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/profile-groups/index.tsx",
113
- children: void 0,
114
- preloads: [
115
- "/assets/profile-groups-C2yJPTaE.js",
116
- "/assets/Button-ByiV6fpd.js",
117
- "/assets/MembersEditor-C6UpqDdV.js",
118
- "/assets/SpawnTeamModal-BEkNCKXm.js",
119
- "/assets/TemplatesTabs-Da7mg9FI.js"
120
- ]
121
- },
122
- "/profiles/": {
123
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/profiles/index.tsx",
124
- children: void 0,
125
- preloads: [
126
- "/assets/profiles-BV7AAZjj.js",
127
- "/assets/Button-ByiV6fpd.js",
128
- "/assets/TemplatesTabs-Da7mg9FI.js"
129
- ]
130
- },
131
- "/skills/": {
132
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/skills/index.tsx",
133
- children: void 0,
134
- preloads: ["/assets/skills-C6czKR5I.js"]
135
- },
136
- "/agents/$id/inbox": {
137
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/agents/$id/inbox.tsx",
138
- children: void 0,
139
- preloads: ["/assets/inbox-ozoCXzr5.js", "/assets/AgentTabs-DioGqUVR.js"]
140
- },
141
- "/agents/$id/triggers": {
142
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/agents/$id/triggers.tsx",
143
- children: void 0,
144
- preloads: ["/assets/triggers-WljnfEfJ.js", "/assets/AgentTabs-DioGqUVR.js"]
145
- },
146
- "/config/integrations/telegram": {
147
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/integrations/telegram.tsx",
148
- children: void 0,
149
- preloads: [
150
- "/assets/telegram-gE4j8gte.js",
151
- "/assets/Button-ByiV6fpd.js",
152
- "/assets/ConfigTabs-pY-V0Rie.js"
153
- ]
154
- },
155
- "/groups/$id/memory": {
156
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/groups/$id/memory.tsx",
157
- children: void 0,
158
- preloads: ["/assets/memory-D1GQjEvN.js"]
159
- },
160
- "/agents/$id/": {
161
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/agents/$id/index.tsx",
162
- children: void 0,
163
- preloads: [
164
- "/assets/_id-BdKmo0gb.js",
165
- "/assets/AgentAvatar-JYijLvZ2.js",
166
- "/assets/AgentTabs-DioGqUVR.js",
167
- "/assets/ChatPane-DzEgOEqS.js",
168
- "/assets/wire-constants-BkT5-597.js"
169
- ]
170
- },
171
- "/groups/$id/": {
172
- filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/groups/$id/index.tsx",
173
- children: void 0,
174
- preloads: ["/assets/_id-MR2XjWh0.js", "/assets/Button-ByiV6fpd.js"]
175
- }
176
- } });
177
- //#endregion
178
- export { tsrStartManifest };
@@ -1,12 +0,0 @@
1
- import { t as createServerFn } from "../server.js";
2
- import { t as createSsrRpc } from "./createSsrRpc-ZBGxhl8t.js";
3
- import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
4
- //#region src/routes/groups/index.tsx
5
- var $$splitComponentImporter = () => import("./groups-CeRRlZaZ.js");
6
- var fetchGroupsData = createServerFn({ method: "GET" }).handler(createSsrRpc("3456e4a7ccfe06623459976ccede09e048e75baf27fcc22c5877059c175eb6f8"));
7
- var Route = createFileRoute("/groups/")({
8
- loader: () => fetchGroupsData(),
9
- component: lazyRouteComponent($$splitComponentImporter, "component")
10
- });
11
- //#endregion
12
- export { Route as t };
@@ -1,150 +0,0 @@
1
- import { t as Route } from "./groups-CbSwND2r.js";
2
- import { useState } from "react";
3
- import { useRouter } from "@tanstack/react-router";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
- //#region src/routes/groups/index.tsx?tsr-split=component
6
- function GroupsPage() {
7
- const { groups, memberCounts } = Route.useLoaderData();
8
- const router = useRouter();
9
- async function remove(id) {
10
- if (!confirm("remove this group registration?")) return;
11
- const res = await fetch(`/api/groups/${id}`, { method: "DELETE" });
12
- if (!res.ok && res.status !== 204) {
13
- alert(res.statusText);
14
- return;
15
- }
16
- await router.invalidate();
17
- }
18
- return /* @__PURE__ */ jsxs("div", { children: [
19
- /* @__PURE__ */ jsx("h1", { children: "groups" }),
20
- /* @__PURE__ */ jsx("p", {
21
- className: "muted",
22
- children: "A group is a collaboration context: one filesystem root, one USER.md, one roster. Every agent belongs to exactly one group."
23
- }),
24
- /* @__PURE__ */ jsx(RegisterGroupForm, { onRegistered: () => router.invalidate() }),
25
- /* @__PURE__ */ jsxs("table", { children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
26
- /* @__PURE__ */ jsx("th", { children: "id" }),
27
- /* @__PURE__ */ jsx("th", { children: "name" }),
28
- /* @__PURE__ */ jsx("th", { children: "path" }),
29
- /* @__PURE__ */ jsx("th", { children: "members" }),
30
- /* @__PURE__ */ jsx("th", { children: "USER.md" }),
31
- /* @__PURE__ */ jsx("th", {})
32
- ] }) }), /* @__PURE__ */ jsxs("tbody", { children: [groups.length === 0 && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
33
- colSpan: 6,
34
- className: "muted",
35
- children: "no groups registered"
36
- }) }), groups.map((g) => {
37
- const count = memberCounts[g.id] ?? 0;
38
- const userMdBytes = g.userMd.length;
39
- return /* @__PURE__ */ jsxs("tr", { children: [
40
- /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx("code", { children: g.id }) }),
41
- /* @__PURE__ */ jsx("td", { children: g.name }),
42
- /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx("code", { children: g.path }) }),
43
- /* @__PURE__ */ jsx("td", { children: count }),
44
- /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx("a", {
45
- href: `/groups/${g.id}`,
46
- children: userMdBytes > 0 ? `${userMdBytes} chars` : "empty"
47
- }) }),
48
- /* @__PURE__ */ jsx("td", { children: count === 0 ? /* @__PURE__ */ jsx("button", {
49
- type: "button",
50
- className: "ghost-btn",
51
- onClick: () => remove(g.id),
52
- children: "remove"
53
- }) : /* @__PURE__ */ jsx("span", {
54
- className: "muted",
55
- title: `${count} agent(s) belong to this group`,
56
- children: "in use"
57
- }) })
58
- ] }, g.id);
59
- })] })] })
60
- ] });
61
- }
62
- function RegisterGroupForm({ onRegistered }) {
63
- const [id, setId] = useState("");
64
- const [name, setName] = useState("");
65
- const [link, setLink] = useState("");
66
- const [err, setErr] = useState(null);
67
- const [submitting, setSubmitting] = useState(false);
68
- async function submit(e) {
69
- e.preventDefault();
70
- setErr(null);
71
- if (!id.trim()) {
72
- setErr("id is required");
73
- return;
74
- }
75
- setSubmitting(true);
76
- try {
77
- const res = await fetch("/api/groups", {
78
- method: "POST",
79
- headers: { "content-type": "application/json" },
80
- body: JSON.stringify({
81
- id: id.trim(),
82
- name: name.trim() || void 0,
83
- link: link.trim() || void 0
84
- })
85
- });
86
- if (!res.ok) {
87
- const e2 = await res.json().catch(() => null);
88
- throw new Error(e2?.error ?? res.statusText);
89
- }
90
- setId("");
91
- setName("");
92
- setLink("");
93
- onRegistered();
94
- } catch (e2) {
95
- setErr(e2.message);
96
- } finally {
97
- setSubmitting(false);
98
- }
99
- }
100
- return /* @__PURE__ */ jsxs("form", {
101
- className: "card",
102
- onSubmit: submit,
103
- children: [
104
- /* @__PURE__ */ jsx("h3", { children: "register group" }),
105
- err && /* @__PURE__ */ jsx("div", {
106
- className: "err",
107
- children: err
108
- }),
109
- /* @__PURE__ */ jsxs("p", {
110
- className: "muted",
111
- children: [
112
- "Groups always live under ",
113
- /* @__PURE__ */ jsx("code", { children: "~/.bazilion/groups/<slug>/" }),
114
- ". Leave the link target blank to create a fresh directory; supply an absolute path to materialize the slot as a symlink to your existing project tree instead."
115
- ]
116
- }),
117
- /* @__PURE__ */ jsxs("div", {
118
- className: "flex gap-4",
119
- children: [/* @__PURE__ */ jsxs("label", {
120
- className: "flex-1",
121
- children: ["id (slug)", /* @__PURE__ */ jsx("input", {
122
- value: id,
123
- onChange: (e) => setId(e.target.value),
124
- required: true,
125
- placeholder: "myproject"
126
- })]
127
- }), /* @__PURE__ */ jsxs("label", {
128
- className: "flex-1",
129
- children: ["name", /* @__PURE__ */ jsx("input", {
130
- value: name,
131
- onChange: (e) => setName(e.target.value),
132
- placeholder: "My Project"
133
- })]
134
- })]
135
- }),
136
- /* @__PURE__ */ jsxs("label", { children: ["link target (optional, absolute path)", /* @__PURE__ */ jsx("input", {
137
- value: link,
138
- onChange: (e) => setLink(e.target.value),
139
- placeholder: "/home/user/projects/myproject"
140
- })] }),
141
- /* @__PURE__ */ jsx("button", {
142
- type: "submit",
143
- disabled: submitting,
144
- children: submitting ? "registering…" : "register"
145
- })
146
- ]
147
- });
148
- }
149
- //#endregion
150
- export { GroupsPage as component };
@@ -1,21 +0,0 @@
1
- import { t as createServerFn } from "../server.js";
2
- import { t as createServerRpc } from "./createServerRpc-CeKECg65.js";
3
- import { n as daemonClient } from "./daemon-client-2NRMzlTr.js";
4
- //#region src/routes/groups/index.tsx?tss-serverfn-split
5
- var fetchGroupsData_createServerFn_handler = createServerRpc({
6
- id: "3456e4a7ccfe06623459976ccede09e048e75baf27fcc22c5877059c175eb6f8",
7
- name: "fetchGroupsData",
8
- filename: "src/routes/groups/index.tsx"
9
- }, (opts) => fetchGroupsData.__executeServer(opts));
10
- var fetchGroupsData = createServerFn({ method: "GET" }).handler(fetchGroupsData_createServerFn_handler, async () => {
11
- const c = daemonClient();
12
- const [groups, agents] = await Promise.all([c.get("/api/groups"), c.get("/api/agents?includeArchived=true")]);
13
- const memberCounts = {};
14
- for (const a of agents) memberCounts[a.groupId] = (memberCounts[a.groupId] ?? 0) + 1;
15
- return {
16
- groups,
17
- memberCounts
18
- };
19
- });
20
- //#endregion
21
- export { fetchGroupsData_createServerFn_handler };