bazilion 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -5
- package/dist/cli.js +1190 -640
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +5165 -1598
- package/dist/daemon.js.map +1 -1
- package/dist/migrations/0001_init.sql +318 -88
- package/dist/web/client/assets/AgentTabs-B3hq5a3e.js +1 -0
- package/dist/web/client/assets/ConfigPage-BCwfgyjD.js +1 -0
- package/dist/web/client/assets/FieldRow-avAFLgYW.js +1 -0
- package/dist/web/client/assets/Page-CwNuDhWz.js +1 -0
- package/dist/web/client/assets/ProductionTeamPolicyEditor-CiQ-VVDo.js +7 -0
- package/dist/web/client/assets/ProductionTeamPolicyEditor-DLioOiRN.css +1 -0
- package/dist/web/client/assets/ProfileCommunicationEditor-D84F5yfr.js +1 -0
- package/dist/web/client/assets/RecoveryState-QfMSuwy3.js +1 -0
- package/dist/web/client/assets/SectionTabs-DZzy01az.js +1 -0
- package/dist/web/client/assets/TeamTabs-Btoe_FAE.js +1 -0
- package/dist/web/client/assets/TemplatesTabs-CAYY03F5.js +1 -0
- package/dist/web/client/assets/_id-BeauECmk.js +1 -0
- package/dist/web/client/assets/_id-BqU2BodK.js +1 -0
- package/dist/web/client/assets/_id-CKtoio3t.js +1 -0
- package/dist/web/client/assets/_id-DGyKURCp.js +1 -0
- package/dist/web/client/assets/_id-Q98Of6k9.js +1 -0
- package/dist/web/client/assets/activity-DJuhhQCb.js +1 -0
- package/dist/web/client/assets/activity-DXN_N85w.js +1 -0
- package/dist/web/client/assets/agents-C5Xsdge1.js +1 -0
- package/dist/web/client/assets/agents-Cgxo4H5G.js +1 -0
- package/dist/web/client/assets/approvals-BnG7fbw-.js +1 -0
- package/dist/web/client/assets/approvals-DGi0PSx8.js +1 -0
- package/dist/web/client/assets/chevron-down-BhcBspw3.js +1 -0
- package/dist/web/client/assets/config-xw4NyrXF.js +3 -0
- package/dist/web/client/assets/context-D2V1Oi4z.js +1 -0
- package/dist/web/client/assets/inbox-DK6hWCMp.js +1 -0
- package/dist/web/client/assets/index-VdURSoM4.js +12 -0
- package/dist/web/client/assets/login-CvptUoMR.js +1 -0
- package/dist/web/client/assets/mcp-BDFM_sW-.js +1 -0
- package/dist/web/client/assets/members-BJvph_TR.js +1 -0
- package/dist/web/client/assets/memory-DRytqZCD.js +1 -0
- package/dist/web/client/assets/plus-C9ee3SIO.js +1 -0
- package/dist/web/client/assets/policy-CGP50OtQ.js +1 -0
- package/dist/web/client/assets/policy-K4hIbbIN.js +1 -0
- package/dist/web/client/assets/preload-helper-mNuBjNXU.js +1 -0
- package/dist/web/client/assets/react-3W8R1pOO.js +1 -0
- package/dist/web/client/assets/routes-DJnWYvC9.js +1 -0
- package/dist/web/client/assets/services-DHheiv7L.js +1 -0
- package/dist/web/client/assets/skills-DmsitluU.js +1 -0
- package/dist/web/client/assets/styles-B5eQAwLP.css +2 -0
- package/dist/web/client/assets/team-policy-D0jpnn2b.js +1 -0
- package/dist/web/client/assets/teams-BdC4gthq.js +1 -0
- package/dist/web/client/assets/teams-CSNyLz3l.js +1 -0
- package/dist/web/client/assets/teams-CbxSaorm.js +1 -0
- package/dist/web/client/assets/telegram-D61G_alO.js +1 -0
- package/dist/web/client/assets/tokens-CjRplDrJ.js +1 -0
- package/dist/web/client/assets/triggers-MLzTm_DM.js +1 -0
- package/dist/web/client/assets/welcome-wBfX9dAd.js +1 -0
- package/dist/web/client/assets/{ChatPane-DzEgOEqS.js → wire-constants-BxfyUMXB.js} +4 -4
- package/dist/web/server/assets/{AgentTabs-BOjTN7QF.js → AgentTabs-DoMDJBXH.js} +10 -7
- package/dist/web/server/assets/{ChatPane-BvpswYvF.js → ChatPane-eUY_dga3.js} +38 -20
- package/dist/web/server/assets/ConfigPage-BKlh5vOU.js +68 -0
- package/dist/web/server/assets/{FieldRow-DwyqycWI.js → FieldRow-B4eTegH9.js} +5 -5
- package/dist/web/server/assets/Page-LENulSXY.js +111 -0
- package/dist/web/server/assets/ProductionTeamPolicyEditor-Y4mzFFvR.js +1009 -0
- package/dist/web/server/assets/ProfileCommunicationEditor-C2RU-2QB.js +107 -0
- package/dist/web/server/assets/RecoveryState-B2SG-mrY.js +37 -0
- package/dist/web/server/assets/SectionTabs-BJTPr5nU.js +8 -0
- package/dist/web/server/assets/Sidebar-O_CH1-JD.js +964 -0
- package/dist/web/server/assets/TeamTabs-zZzbP1t_.js +51 -0
- package/dist/web/server/assets/{TemplatesTabs---7h5GYa.js → TemplatesTabs-CcRxZhJe.js} +9 -8
- package/dist/web/server/assets/_id-A8Xiv6Lc.js +11 -0
- package/dist/web/server/assets/{_id-Sjw0zhA6.js → _id-BhOB8Umi.js} +5 -5
- package/dist/web/server/assets/{_id-DDixKEud.js → _id-C3HY4lWg.js} +77 -20
- package/dist/web/server/assets/{_id-BdRiQb2H.js → _id-ClN9hY2x.js} +132 -39
- package/dist/web/server/assets/{_id-BqnDy_Ca.js → _id-CwyGjJeP.js} +7 -6
- package/dist/web/server/assets/{_id-D8duqgd5.js → _id-D27T85mU.js} +6 -5
- package/dist/web/server/assets/_id-D3Ap7zZA.js +377 -0
- package/dist/web/server/assets/_id-DinTp_7X.js +14 -0
- package/dist/web/server/assets/{_id-CnQflrRv.js → _id-Dj1yZ3zJ.js} +6 -6
- package/dist/web/server/assets/{_id-DUIrFV3G.js → _id-DkYodSkG.js} +10 -2
- package/dist/web/server/assets/{_id-D_Ew11ED.js → _id-IzadFZV9.js} +9 -9
- package/dist/web/server/assets/_id-LrvXU4Nr.js +45 -0
- package/dist/web/server/assets/_id-tB47Vsfp.js +42 -0
- package/dist/web/server/assets/_tanstack-start-manifest_v-D09Xu_6u.js +286 -0
- package/dist/web/server/assets/activity-BCI4mfNS.js +168 -0
- package/dist/web/server/assets/activity-CGCf8BQf.js +11 -0
- package/dist/web/server/assets/activity-D9SMqBhy.js +14 -0
- package/dist/web/server/assets/activity-DohitgwW.js +12 -0
- package/dist/web/server/assets/{agents-k5QURC4I.js → agents-BPKOshR5.js} +5 -5
- package/dist/web/server/assets/{profiles-C6a3RKgu.js → agents-BY74v7fM.js} +5 -5
- package/dist/web/server/assets/{profiles-CZ5NkmVw.js → agents-BvttypqB.js} +5 -5
- package/dist/web/server/assets/{agents-ChcAJUI5.js → agents-C9xlWK0Z.js} +2 -2
- package/dist/web/server/assets/agents-CgZMHj80.js +265 -0
- package/dist/web/server/assets/{profiles-LxcC_L6n.js → agents-DZuFEj0D.js} +87 -79
- package/dist/web/server/assets/approvals-BGU-XGIO.js +12 -0
- package/dist/web/server/assets/approvals-CWcFHlor.js +14 -0
- package/dist/web/server/assets/approvals-CbFXFvG8.js +11 -0
- package/dist/web/server/assets/approvals-DCaVw1Mz.js +280 -0
- package/dist/web/server/assets/{auth-DzRAMwVt.js → auth-byfSx6Ja.js} +6 -2
- package/dist/web/server/assets/{config-CHaCv89D.js → config-BDCJdtj2.js} +1 -1
- package/dist/web/server/assets/{config-CdVjqjin.js → config-D2LAsud2.js} +31 -52
- package/dist/web/server/assets/{config-Bq3o924J.js → config-TeIoyYYc.js} +2 -2
- package/dist/web/server/assets/context-B-XDf6Ym.js +12 -0
- package/dist/web/server/assets/context-BXGo5Vfi.js +12 -0
- package/dist/web/server/assets/context-DrkrIWun.js +47 -0
- package/dist/web/server/assets/{createServerRpc-CeKECg65.js → createServerRpc-pU-IQV2Y.js} +1 -1
- package/dist/web/server/assets/{createSsrRpc-ZBGxhl8t.js → createSsrRpc-DFsIAfFd.js} +1 -1
- package/dist/web/server/assets/{empty-plugin-adapters-DKUlnwwl.js → empty-plugin-adapters-Cq4--YW-.js} +1 -1
- package/dist/web/server/assets/{inbox-CkiSvD14.js → inbox-B3-TRsNI.js} +1 -1
- package/dist/web/server/assets/{inbox-Bxb3W04M.js → inbox-BardsGyy.js} +2 -2
- package/dist/web/server/assets/inbox-CUIyf9MT.js +131 -0
- package/dist/web/server/assets/login-Bx5LEyGP.js +118 -0
- package/dist/web/server/assets/login-CmWvxfTK.js +136 -0
- package/dist/web/server/assets/{mcp-BsFKEoXt.js → mcp-2pwT9HU8.js} +1 -1
- package/dist/web/server/assets/{mcp-BU_kKENi.js → mcp-BJjLIdP0.js} +105 -112
- package/dist/web/server/assets/{mcp-CKqwG4mt.js → mcp-DIWTogHM.js} +2 -2
- package/dist/web/server/assets/members-CCv17cjQ.js +46 -0
- package/dist/web/server/assets/members-CW5aBe81.js +12 -0
- package/dist/web/server/assets/members-VdPwD6CE.js +12 -0
- package/dist/web/server/assets/{memory-BaYnfm7K.js → memory-Dngc13Nw.js} +9 -9
- package/dist/web/server/assets/{memory-CQaqWnyM.js → memory-a8Kz57Kh.js} +22 -19
- package/dist/web/server/assets/{memory-Ns2-Z31p.js → memory-pZ4pZT7p.js} +6 -6
- package/dist/web/server/assets/policy-BYVXqsan.js +11 -0
- package/dist/web/server/assets/policy-Bb-vEgqg.js +40 -0
- package/dist/web/server/assets/policy-BcGELcc9.js +490 -0
- package/dist/web/server/assets/policy-C30AeFIb.js +21 -0
- package/dist/web/server/assets/router-DIdp8ZNt.js +504 -0
- package/dist/web/server/assets/{routes-C61gBiXa.js → routes-CXz4hTAr.js} +6 -6
- package/dist/web/server/assets/{routes-Ce2VWrU9.js → routes-Jb0zjKav.js} +16 -13
- package/dist/web/server/assets/{routes-V9URcp1v.js → routes-lIclH9Br.js} +2 -2
- package/dist/web/server/assets/services-B9yBWDX0.js +79 -0
- package/dist/web/server/assets/{services-Ccc5s2bS.js → services-C4szdhPx.js} +4 -4
- package/dist/web/server/assets/{services-DhRiNeq0.js → services-wG8I06oS.js} +1 -1
- package/dist/web/server/assets/skills-BZdqiDig.js +358 -0
- package/dist/web/server/assets/{skills-l2cyQ3zS.js → skills-C-UgkuCW.js} +2 -2
- package/dist/web/server/assets/{skills-CFIWVg32.js → skills-a9VSWHWq.js} +1 -1
- package/dist/web/server/assets/{start-CYDpZ6cb.js → start-WH8WzTL_.js} +1 -1
- package/dist/web/server/assets/team-policy-vPG01onj.js +180 -0
- package/dist/web/server/assets/teams-3im0oQnS.js +11 -0
- package/dist/web/server/assets/teams-CpQ0YgWf.js +112 -0
- package/dist/web/server/assets/teams-DEpQR2QA.js +14 -0
- package/dist/web/server/assets/teams-DqfrEoH6.js +36 -0
- package/dist/web/server/assets/teams-MjqgsmC3.js +12 -0
- package/dist/web/server/assets/teams-OIkHuxy1.js +12 -0
- package/dist/web/server/assets/teams-jBtvnk59.js +193 -0
- package/dist/web/server/assets/{telegram-DfAddLdv.js → telegram-7ub--6xz.js} +44 -56
- package/dist/web/server/assets/{telegram-T3l9KtiE.js → telegram-Bazhmpr4.js} +2 -2
- package/dist/web/server/assets/{telegram-BdaUIjvs.js → telegram-DNgCWebD.js} +1 -1
- package/dist/web/server/assets/{tokens-DdpnfV_Y.js → tokens-BnwFbV7T.js} +2 -2
- package/dist/web/server/assets/{tokens-BCz3PSoT.js → tokens-DPDMSN5O.js} +1 -1
- package/dist/web/server/assets/tokens-yyTSfBSN.js +186 -0
- package/dist/web/server/assets/{triggers-BzJG1nN5.js → triggers-BMpHsGIr.js} +5 -4
- package/dist/web/server/assets/{triggers-BcH_6PW1.js → triggers-C_0y6QV9.js} +1 -1
- package/dist/web/server/assets/{triggers-BcTTwMfy.js → triggers-Ca57_qym.js} +2 -2
- package/dist/web/server/assets/{welcome-CP4CZ9B6.js → welcome-IYHGurWx.js} +23 -15
- package/dist/web/server/assets/{wire-constants-Deb4NxBb.js → wire-constants-C8nBJcU3.js} +3 -3
- package/dist/web/server/server.js +126 -95
- package/dist/worker.js +185 -146
- package/dist/worker.js.map +1 -1
- package/package.json +8 -7
- package/dist/migrations/0002_profile_groups.sql +0 -38
- package/dist/migrations/0003_agent_telegram.sql +0 -40
- package/dist/migrations/0004_agent_mirror_mode.sql +0 -17
- package/dist/migrations/0005_group_topic_name_format.sql +0 -15
- package/dist/migrations/0006_telegram_acl.sql +0 -18
- package/dist/migrations/0007_mcp_servers.sql +0 -30
- package/dist/migrations/0008_seed_user_md.sql +0 -39
- package/dist/web/client/assets/AgentTabs-DioGqUVR.js +0 -1
- package/dist/web/client/assets/ConfigTabs-pY-V0Rie.js +0 -1
- package/dist/web/client/assets/FieldRow-CNKma5LE.js +0 -1
- package/dist/web/client/assets/MembersEditor-C6UpqDdV.js +0 -1
- package/dist/web/client/assets/SpawnTeamModal-BEkNCKXm.js +0 -1
- package/dist/web/client/assets/TemplatesTabs-UM04RMO9.js +0 -1
- package/dist/web/client/assets/_id-BNJapCT4.js +0 -1
- package/dist/web/client/assets/_id-CjGoV8Mr.js +0 -1
- package/dist/web/client/assets/_id-DehuCHUw.js +0 -1
- package/dist/web/client/assets/_id-Dz9fjcCM.js +0 -1
- package/dist/web/client/assets/agents-M6omAXcZ.js +0 -1
- package/dist/web/client/assets/config-DIuEc5bm.js +0 -3
- package/dist/web/client/assets/groups-DpE2d2zZ.js +0 -1
- package/dist/web/client/assets/inbox-BPnLsRNf.js +0 -1
- package/dist/web/client/assets/index-MAJuXnie.js +0 -12
- package/dist/web/client/assets/login-CawJX16E.js +0 -1
- package/dist/web/client/assets/mcp-DIrh9-v_.js +0 -1
- package/dist/web/client/assets/memory-BpHbdKsd.js +0 -1
- package/dist/web/client/assets/preload-helper-CvnapA2_.js +0 -1
- package/dist/web/client/assets/profile-groups-ByoKak0c.js +0 -1
- package/dist/web/client/assets/profiles-BEjv8LGo.js +0 -1
- package/dist/web/client/assets/routes-D2COHy7v.js +0 -1
- package/dist/web/client/assets/services-D212jSK_.js +0 -1
- package/dist/web/client/assets/skills-Da0MURjY.js +0 -1
- package/dist/web/client/assets/styles-BgE5bCHA.css +0 -2
- package/dist/web/client/assets/telegram-Czh2MdVm.js +0 -1
- package/dist/web/client/assets/tokens-E_JvO5JN.js +0 -1
- package/dist/web/client/assets/triggers-BBRZQOm7.js +0 -1
- package/dist/web/client/assets/welcome-Dn-zvmBE.js +0 -1
- package/dist/web/client/assets/wire-constants-BkT5-597.js +0 -1
- package/dist/web/server/assets/ConfigTabs-CyuxzesF.js +0 -41
- package/dist/web/server/assets/MembersEditor-BWQztvrX.js +0 -131
- package/dist/web/server/assets/Sidebar-DmEiewRN.js +0 -529
- package/dist/web/server/assets/SpawnTeamModal-dSN421k_.js +0 -107
- package/dist/web/server/assets/_id-BKev9H1p.js +0 -12
- package/dist/web/server/assets/_id-BNwlbWHP.js +0 -24
- package/dist/web/server/assets/_id-CRqqi8IE.js +0 -161
- package/dist/web/server/assets/_id-CXg-Blec.js +0 -367
- package/dist/web/server/assets/_tanstack-start-manifest_v-D9FLKShQ.js +0 -178
- package/dist/web/server/assets/agents-C7SBPN0M.js +0 -210
- package/dist/web/server/assets/groups-CbSwND2r.js +0 -12
- package/dist/web/server/assets/groups-CeRRlZaZ.js +0 -150
- package/dist/web/server/assets/groups-pk4CYSuf.js +0 -21
- package/dist/web/server/assets/inbox-DU27iHv_.js +0 -133
- package/dist/web/server/assets/login-CNznncgA.js +0 -58
- package/dist/web/server/assets/login-CQybKk7Y.js +0 -74
- package/dist/web/server/assets/profile-groups-CiU06yN1.js +0 -28
- package/dist/web/server/assets/profile-groups-D21MYoLM.js +0 -208
- package/dist/web/server/assets/profile-groups-aoJleXHP.js +0 -12
- package/dist/web/server/assets/router-BrDascdO.js +0 -460
- package/dist/web/server/assets/services-B91w2f-X.js +0 -94
- package/dist/web/server/assets/skills-D89ND2kR.js +0 -321
- package/dist/web/server/assets/tokens-CkKqrtk-.js +0 -193
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { n as sectionTabClass, t as SECTION_TABS_CLASS } from "./SectionTabs-BJTPr5nU.js";
|
|
2
|
+
import { Link, useRouterState } from "@tanstack/react-router";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/TeamTabs.tsx
|
|
5
|
+
var TABS = [
|
|
6
|
+
{
|
|
7
|
+
suffix: "",
|
|
8
|
+
label: "Overview",
|
|
9
|
+
exact: true
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
suffix: "/members",
|
|
13
|
+
label: "Members"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
suffix: "/policy",
|
|
17
|
+
label: "Policy"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
suffix: "/memory",
|
|
21
|
+
label: "Memory"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
suffix: "/context",
|
|
25
|
+
label: "Context"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
suffix: "/activity",
|
|
29
|
+
label: "Activity"
|
|
30
|
+
}
|
|
31
|
+
];
|
|
32
|
+
function TeamTabs({ teamId }) {
|
|
33
|
+
const pathname = useRouterState({ select: (state) => state.location.pathname });
|
|
34
|
+
const base = `/teams/${encodeURIComponent(teamId)}`;
|
|
35
|
+
return /* @__PURE__ */ jsx("nav", {
|
|
36
|
+
"aria-label": "Team sections",
|
|
37
|
+
className: SECTION_TABS_CLASS,
|
|
38
|
+
children: TABS.map((tab) => {
|
|
39
|
+
const href = `${base}${tab.suffix}`;
|
|
40
|
+
const active = "exact" in tab && tab.exact ? pathname === base || pathname === `${base}/` : pathname.startsWith(href);
|
|
41
|
+
return /* @__PURE__ */ jsx(Link, {
|
|
42
|
+
to: href,
|
|
43
|
+
"aria-current": active ? "page" : void 0,
|
|
44
|
+
className: sectionTabClass(active),
|
|
45
|
+
children: tab.label
|
|
46
|
+
}, tab.label);
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { TeamTabs as t };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { n as sectionTabClass, t as SECTION_TABS_CLASS } from "./SectionTabs-BJTPr5nU.js";
|
|
1
2
|
import { Link, useRouterState } from "@tanstack/react-router";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
//#region src/components/TemplatesTabs.tsx
|
|
@@ -5,22 +6,22 @@ function TemplatesTabs() {
|
|
|
5
6
|
const pathname = useRouterState({ select: (s) => s.location.pathname });
|
|
6
7
|
return /* @__PURE__ */ jsx("nav", {
|
|
7
8
|
role: "tablist",
|
|
8
|
-
className:
|
|
9
|
+
className: SECTION_TABS_CLASS,
|
|
9
10
|
children: [{
|
|
10
|
-
to: "/
|
|
11
|
-
label: "
|
|
12
|
-
match: (p) => p.startsWith("/
|
|
11
|
+
to: "/templates/agents",
|
|
12
|
+
label: "Agent templates",
|
|
13
|
+
match: (p) => p.startsWith("/templates/agents")
|
|
13
14
|
}, {
|
|
14
|
-
to: "/
|
|
15
|
-
label: "
|
|
16
|
-
match: (p) => p.startsWith("/
|
|
15
|
+
to: "/templates/teams",
|
|
16
|
+
label: "Team templates",
|
|
17
|
+
match: (p) => p.startsWith("/templates/teams")
|
|
17
18
|
}].map((t) => {
|
|
18
19
|
const active = t.match(pathname);
|
|
19
20
|
return /* @__PURE__ */ jsx(Link, {
|
|
20
21
|
to: t.to,
|
|
21
22
|
role: "tab",
|
|
22
23
|
"aria-selected": active,
|
|
23
|
-
className:
|
|
24
|
+
className: sectionTabClass(active),
|
|
24
25
|
children: t.label
|
|
25
26
|
}, t.to);
|
|
26
27
|
})
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { t as RecoveryState } from "./RecoveryState-B2SG-mrY.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/routes/templates/teams/$id/index.tsx?tsr-split=errorComponent
|
|
4
|
+
var SplitErrorComponent = ({ error, reset }) => /* @__PURE__ */ jsx(RecoveryState, {
|
|
5
|
+
title: "Team template unavailable",
|
|
6
|
+
error,
|
|
7
|
+
reset,
|
|
8
|
+
fallbackHref: "/templates/teams"
|
|
9
|
+
});
|
|
10
|
+
//#endregion
|
|
11
|
+
export { SplitErrorComponent as errorComponent };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as createServerFn } from "../server.js";
|
|
2
|
-
import { t as createServerRpc } from "./createServerRpc-
|
|
2
|
+
import { t as createServerRpc } from "./createServerRpc-pU-IQV2Y.js";
|
|
3
3
|
import { n as daemonClient, r as ApiClientError } from "./daemon-client-2NRMzlTr.js";
|
|
4
4
|
//#region src/routes/agents/$id/index.tsx?tss-serverfn-split
|
|
5
5
|
var fetchAgent_createServerFn_handler = createServerRpc({
|
|
@@ -16,10 +16,10 @@ var fetchAgent = createServerFn({ method: "POST" }).inputValidator((d) => d).han
|
|
|
16
16
|
if (err instanceof ApiClientError && err.status === 404) return null;
|
|
17
17
|
throw err;
|
|
18
18
|
}
|
|
19
|
-
const [msgs, head,
|
|
19
|
+
const [msgs, head, teams, skills, models, telegramConfig] = await Promise.all([
|
|
20
20
|
c.get(`/api/agents/${encodeURIComponent(resolved.agent.id)}/sessions/messages`),
|
|
21
21
|
c.get(`/api/agents/${encodeURIComponent(resolved.agent.id)}/sessions/head`),
|
|
22
|
-
c.get("/api/
|
|
22
|
+
c.get("/api/teams"),
|
|
23
23
|
c.get("/api/skills"),
|
|
24
24
|
c.get("/api/config/available-models"),
|
|
25
25
|
c.get("/api/config/telegram").catch(() => ({ configured: false }))
|
|
@@ -28,9 +28,9 @@ var fetchAgent = createServerFn({ method: "POST" }).inputValidator((d) => d).han
|
|
|
28
28
|
resolved,
|
|
29
29
|
initialMessages: msgs.messages,
|
|
30
30
|
sessionHead: head,
|
|
31
|
-
|
|
31
|
+
teams,
|
|
32
32
|
skills,
|
|
33
|
-
modelGroups: models.
|
|
33
|
+
modelGroups: models.teams,
|
|
34
34
|
telegramConfigured: telegramConfig.configured
|
|
35
35
|
};
|
|
36
36
|
});
|
|
@@ -1,19 +1,24 @@
|
|
|
1
|
-
import { t as Route } from "./_id-
|
|
1
|
+
import { t as Route } from "./_id-CwyGjJeP.js";
|
|
2
|
+
import { r as PageShell } from "./Page-LENulSXY.js";
|
|
3
|
+
import { t as DEFAULT_PROFILE_COMMUNICATION } from "./team-policy-vPG01onj.js";
|
|
4
|
+
import { t as ProfileCommunicationEditor } from "./ProfileCommunicationEditor-C2RU-2QB.js";
|
|
5
|
+
import { t as TemplatesTabs } from "./TemplatesTabs-CcRxZhJe.js";
|
|
2
6
|
import { useState } from "react";
|
|
3
7
|
import { useRouter } from "@tanstack/react-router";
|
|
4
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
//#region src/routes/
|
|
9
|
+
//#region src/routes/templates/agents/$id/index.tsx?tsr-split=component
|
|
6
10
|
function ProfileDetailPage() {
|
|
7
11
|
const { loaded, modelGroups, skills } = Route.useLoaderData();
|
|
8
12
|
const [tab, setTab] = useState("basics");
|
|
9
|
-
return /* @__PURE__ */ jsxs(
|
|
13
|
+
return /* @__PURE__ */ jsxs(PageShell, { children: [
|
|
14
|
+
/* @__PURE__ */ jsx(TemplatesTabs, {}),
|
|
10
15
|
/* @__PURE__ */ jsxs("header", {
|
|
11
16
|
className: "mb-1",
|
|
12
17
|
children: [
|
|
13
18
|
/* @__PURE__ */ jsx("a", {
|
|
14
|
-
href: "/
|
|
19
|
+
href: "/templates/agents",
|
|
15
20
|
className: "mb-1 inline-block text-[0.85em] text-mocha-light hover:text-sapphire",
|
|
16
|
-
children: "←
|
|
21
|
+
children: "← agent templates"
|
|
17
22
|
}),
|
|
18
23
|
/* @__PURE__ */ jsx("h1", { children: loaded.profile.name }),
|
|
19
24
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -29,20 +34,27 @@ function ProfileDetailPage() {
|
|
|
29
34
|
/* @__PURE__ */ jsxs("p", {
|
|
30
35
|
className: "muted my-6",
|
|
31
36
|
children: [
|
|
32
|
-
"These settings and files seed every agent spawned from this
|
|
37
|
+
"These settings and files seed every agent spawned from this Agent template going forward.",
|
|
33
38
|
" ",
|
|
34
39
|
/* @__PURE__ */ jsx("strong", { children: "Existing agents keep their own copies" }),
|
|
35
40
|
" — edits here don't propagate to already-spawned agents."
|
|
36
41
|
]
|
|
37
42
|
}),
|
|
38
43
|
/* @__PURE__ */ jsx(Tabs, {
|
|
39
|
-
items: [
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
items: [
|
|
45
|
+
{
|
|
46
|
+
id: "basics",
|
|
47
|
+
label: "1. basics"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: "skills",
|
|
51
|
+
label: "2. skills"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: "communication",
|
|
55
|
+
label: "3. communication"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
46
58
|
active: tab,
|
|
47
59
|
onChange: (t) => setTab(t)
|
|
48
60
|
}),
|
|
@@ -91,12 +103,6 @@ function ProfileDetailPage() {
|
|
|
91
103
|
file: "TOOLS.md",
|
|
92
104
|
initialContent: loaded.files.tools,
|
|
93
105
|
hint: "Tool playbook. Agent-specific usage notes that go beyond the generic tool descriptions."
|
|
94
|
-
}),
|
|
95
|
-
/* @__PURE__ */ jsx(OptionalFileCard, {
|
|
96
|
-
profileId: loaded.profile.id,
|
|
97
|
-
file: "HEARTBEAT.md",
|
|
98
|
-
initialContent: loaded.files.heartbeat,
|
|
99
|
-
hint: "Tasks the agent should check on scheduled wake-ups. Pair with a trigger whose message is the canned heartbeat prompt."
|
|
100
106
|
})
|
|
101
107
|
] }),
|
|
102
108
|
tab === "skills" && /* @__PURE__ */ jsx(SkillsCard, {
|
|
@@ -104,9 +110,60 @@ function ProfileDetailPage() {
|
|
|
104
110
|
initialMode: loaded.profile.skillsMode,
|
|
105
111
|
initialPicked: new Set(loaded.defaultSkills),
|
|
106
112
|
skills
|
|
113
|
+
}),
|
|
114
|
+
tab === "communication" && /* @__PURE__ */ jsx(ProfileCommunicationCard, {
|
|
115
|
+
profileId: loaded.profile.id,
|
|
116
|
+
initial: loaded.profile.communicationDefaults ?? DEFAULT_PROFILE_COMMUNICATION
|
|
107
117
|
})
|
|
108
118
|
] });
|
|
109
119
|
}
|
|
120
|
+
function ProfileCommunicationCard({ profileId, initial }) {
|
|
121
|
+
const [value, setValue] = useState(initial);
|
|
122
|
+
const [savedAt, setSavedAt] = useState(null);
|
|
123
|
+
const dirty = JSON.stringify(value) !== JSON.stringify(initial);
|
|
124
|
+
const save = async () => {
|
|
125
|
+
const response = await fetch(`/api/profiles/${encodeURIComponent(profileId)}`, {
|
|
126
|
+
method: "PATCH",
|
|
127
|
+
headers: { "content-type": "application/json" },
|
|
128
|
+
body: JSON.stringify({ communicationDefaults: value })
|
|
129
|
+
});
|
|
130
|
+
if (!response.ok) throw new Error((await response.json().catch(() => null))?.error ?? response.statusText);
|
|
131
|
+
setSavedAt(Date.now());
|
|
132
|
+
};
|
|
133
|
+
return /* @__PURE__ */ jsxs("section", {
|
|
134
|
+
className: "rounded-md border border-frost bg-snow p-5 shadow-baziu-sm",
|
|
135
|
+
children: [
|
|
136
|
+
/* @__PURE__ */ jsx("div", {
|
|
137
|
+
className: "mb-2 flex flex-wrap items-center gap-2",
|
|
138
|
+
children: /* @__PURE__ */ jsx("h3", {
|
|
139
|
+
className: "m-0 font-body text-[0.95rem] font-semibold normal-case text-chocolate",
|
|
140
|
+
children: "Communication defaults"
|
|
141
|
+
})
|
|
142
|
+
}),
|
|
143
|
+
/* @__PURE__ */ jsx("p", {
|
|
144
|
+
className: "muted mb-4",
|
|
145
|
+
children: "Materialized into new Team and Team policy snapshots after preset resolution. Existing snapshots never inherit later changes. Stored by the daemon."
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ jsx(ProfileCommunicationEditor, {
|
|
148
|
+
value,
|
|
149
|
+
onChange: setValue
|
|
150
|
+
}),
|
|
151
|
+
/* @__PURE__ */ jsxs("div", {
|
|
152
|
+
className: "mt-4 flex items-center gap-3",
|
|
153
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
154
|
+
type: "button",
|
|
155
|
+
className: "btn-primary",
|
|
156
|
+
disabled: !dirty,
|
|
157
|
+
onClick: save,
|
|
158
|
+
children: "save communication defaults"
|
|
159
|
+
}), savedAt && /* @__PURE__ */ jsx("span", {
|
|
160
|
+
className: "text-xs text-sapphire",
|
|
161
|
+
children: "saved to daemon"
|
|
162
|
+
})]
|
|
163
|
+
})
|
|
164
|
+
]
|
|
165
|
+
});
|
|
166
|
+
}
|
|
110
167
|
function Tabs({ items, active, onChange }) {
|
|
111
168
|
return /* @__PURE__ */ jsx("nav", {
|
|
112
169
|
role: "tablist",
|
|
@@ -123,7 +180,7 @@ function Tabs({ items, active, onChange }) {
|
|
|
123
180
|
}
|
|
124
181
|
function statusColor(kind) {
|
|
125
182
|
if (kind === "saved") return "text-sapphire";
|
|
126
|
-
if (kind === "error") return "text-
|
|
183
|
+
if (kind === "error") return "text-danger";
|
|
127
184
|
if (kind === "dirty") return "text-mocha";
|
|
128
185
|
return "text-mocha-light";
|
|
129
186
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { t as Route } from "./_id-
|
|
2
|
-
import {
|
|
1
|
+
import { t as Route } from "./_id-DkYodSkG.js";
|
|
2
|
+
import { r as PageShell } from "./Page-LENulSXY.js";
|
|
3
|
+
import { t as AgentTabs } from "./AgentTabs-DoMDJBXH.js";
|
|
3
4
|
import { t as AgentAvatar } from "./AgentAvatar-8gTAy_tP.js";
|
|
4
|
-
import { t as ChatPane } from "./ChatPane-
|
|
5
|
-
import { r as REASONING_LEVELS } from "./wire-constants-
|
|
5
|
+
import { t as ChatPane } from "./ChatPane-eUY_dga3.js";
|
|
6
|
+
import { r as REASONING_LEVELS } from "./wire-constants-C8nBJcU3.js";
|
|
6
7
|
import { useState } from "react";
|
|
7
8
|
import { useRouter } from "@tanstack/react-router";
|
|
8
9
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
import { ArrowLeft } from "lucide-react";
|
|
9
11
|
//#region src/components/CopyButton.tsx
|
|
10
12
|
function CopyButton({ value, className, ariaLabel = "Copy to clipboard", title = "Copy to clipboard" }) {
|
|
11
13
|
const [copied, setCopied] = useState(false);
|
|
@@ -48,7 +50,8 @@ function CopyButton({ value, className, ariaLabel = "Copy to clipboard", title =
|
|
|
48
50
|
//#endregion
|
|
49
51
|
//#region src/routes/agents/$id/index.tsx?tsr-split=component
|
|
50
52
|
function AgentDetailPage() {
|
|
51
|
-
const { resolved, initialMessages, sessionHead,
|
|
53
|
+
const { resolved, initialMessages, sessionHead, teams, skills, modelGroups, telegramConfigured } = Route.useLoaderData();
|
|
54
|
+
const search = Route.useSearch();
|
|
52
55
|
const router = useRouter();
|
|
53
56
|
async function archive() {
|
|
54
57
|
if (!confirm(`archive "${resolved.agent.name}"? (reversible)`)) return;
|
|
@@ -62,14 +65,31 @@ function AgentDetailPage() {
|
|
|
62
65
|
async function del() {
|
|
63
66
|
const msg = `Permanently delete agent "${resolved.agent.name}"?\n\nThis removes the DB rows (messages, triggers, skill attachments) AND the agent's on-disk directory (memory, templates, state, sessions). This cannot be undone.`;
|
|
64
67
|
if (!confirm(msg)) return;
|
|
65
|
-
const
|
|
68
|
+
const policyResponse = await fetch(`/api/teams/${encodeURIComponent(resolved.team.id)}/policy`);
|
|
69
|
+
if (!policyResponse.ok) {
|
|
70
|
+
alert("The current Team policy is unavailable. Nothing was deleted.");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const current = await policyResponse.json();
|
|
74
|
+
const res = await fetch(`/api/agents/${resolved.agent.id}?expectedTeamRevision=${current.teamPolicy.revision}`, { method: "DELETE" });
|
|
66
75
|
if (res.ok || res.status === 204) window.location.assign("/agents");
|
|
67
76
|
else alert(`failed: ${res.statusText}`);
|
|
68
77
|
}
|
|
69
|
-
return /* @__PURE__ */ jsxs(
|
|
78
|
+
return /* @__PURE__ */ jsxs(PageShell, { children: [
|
|
70
79
|
/* @__PURE__ */ jsxs("header", {
|
|
71
80
|
className: "mb-8",
|
|
72
81
|
children: [
|
|
82
|
+
search.teamPolicy && /* @__PURE__ */ jsxs("div", {
|
|
83
|
+
className: "mb-4 flex flex-wrap items-center gap-2",
|
|
84
|
+
children: [/* @__PURE__ */ jsxs("a", {
|
|
85
|
+
href: `/teams/${encodeURIComponent(search.teamPolicy)}/policy?view=${search.view ?? "flow"}&selected=${encodeURIComponent(search.selected ?? "")}&vx=${search.vx ?? 0}&vy=${search.vy ?? 0}&vz=${search.vz ?? .9}`,
|
|
86
|
+
className: "ghost-btn",
|
|
87
|
+
children: [/* @__PURE__ */ jsx(ArrowLeft, { className: "h-4 w-4" }), " back to Team policy"]
|
|
88
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
89
|
+
className: "text-xs text-mocha-light",
|
|
90
|
+
children: "Returns to the same projection, viewport, and selection."
|
|
91
|
+
})]
|
|
92
|
+
}),
|
|
73
93
|
/* @__PURE__ */ jsxs("div", {
|
|
74
94
|
className: "flex items-center gap-3",
|
|
75
95
|
children: [/* @__PURE__ */ jsx(AgentAvatar, {
|
|
@@ -103,18 +123,18 @@ function AgentDetailPage() {
|
|
|
103
123
|
children: resolved.profile.id
|
|
104
124
|
})] }),
|
|
105
125
|
/* @__PURE__ */ jsxs(Tag, { children: [
|
|
106
|
-
"
|
|
126
|
+
"team:",
|
|
107
127
|
" ",
|
|
108
128
|
/* @__PURE__ */ jsx("a", {
|
|
109
|
-
href: `/
|
|
129
|
+
href: `/teams/${encodeURIComponent(resolved.team.id)}`,
|
|
110
130
|
className: "ml-1 bg-transparent px-0 font-mono underline",
|
|
111
|
-
children: resolved.
|
|
131
|
+
children: resolved.team.id
|
|
112
132
|
}),
|
|
113
133
|
" ",
|
|
114
134
|
"·",
|
|
115
135
|
" ",
|
|
116
136
|
/* @__PURE__ */ jsx("a", {
|
|
117
|
-
href: `/
|
|
137
|
+
href: `/teams/${encodeURIComponent(resolved.team.id)}/memory`,
|
|
118
138
|
className: "ml-0.5 underline",
|
|
119
139
|
children: "shared memory →"
|
|
120
140
|
})
|
|
@@ -148,7 +168,7 @@ function AgentDetailPage() {
|
|
|
148
168
|
}), /* @__PURE__ */ jsx("button", {
|
|
149
169
|
type: "button",
|
|
150
170
|
onClick: del,
|
|
151
|
-
className: "ghost-btn border-[rgba(196,135,138,0.4)] text-
|
|
171
|
+
className: "ghost-btn border-[rgba(196,135,138,0.4)] text-danger hover:bg-[rgba(196,135,138,0.08)]",
|
|
152
172
|
children: "delete permanently"
|
|
153
173
|
})]
|
|
154
174
|
}),
|
|
@@ -165,7 +185,7 @@ function AgentDetailPage() {
|
|
|
165
185
|
className: "mb-4 rounded-md border border-frost bg-fawn/35 px-4 py-2 text-[0.9em] text-chocolate",
|
|
166
186
|
children: [
|
|
167
187
|
/* @__PURE__ */ jsx("strong", {
|
|
168
|
-
className: "text-
|
|
188
|
+
className: "text-warning",
|
|
169
189
|
children: "This agent is archived."
|
|
170
190
|
}),
|
|
171
191
|
" It's hidden from the default agent list; use ",
|
|
@@ -198,29 +218,29 @@ function AgentDetailPage() {
|
|
|
198
218
|
/* @__PURE__ */ jsxs("section", {
|
|
199
219
|
className: "mt-10",
|
|
200
220
|
children: [
|
|
201
|
-
/* @__PURE__ */ jsx(SectionTitle, { children: "
|
|
221
|
+
/* @__PURE__ */ jsx(SectionTitle, { children: "Team" }),
|
|
202
222
|
/* @__PURE__ */ jsxs("p", {
|
|
203
223
|
className: "text-[0.9em] text-mocha-light",
|
|
204
224
|
children: [
|
|
205
|
-
"Current
|
|
206
|
-
/* @__PURE__ */ jsx("code", { children: resolved.
|
|
225
|
+
"Current team: ",
|
|
226
|
+
/* @__PURE__ */ jsx("code", { children: resolved.team.id }),
|
|
207
227
|
" (",
|
|
208
|
-
resolved.
|
|
228
|
+
resolved.team.name,
|
|
209
229
|
") —",
|
|
210
230
|
" ",
|
|
211
|
-
/* @__PURE__ */ jsx("code", { children: resolved.
|
|
231
|
+
/* @__PURE__ */ jsx("code", { children: resolved.team.path }),
|
|
212
232
|
".",
|
|
213
233
|
" ",
|
|
214
234
|
/* @__PURE__ */ jsx("a", {
|
|
215
|
-
href: `/
|
|
235
|
+
href: `/teams/${resolved.team.id}`,
|
|
216
236
|
children: "view / edit USER.md"
|
|
217
237
|
})
|
|
218
238
|
]
|
|
219
239
|
}),
|
|
220
240
|
/* @__PURE__ */ jsx(MoveGroupForm, {
|
|
221
241
|
agentId: resolved.agent.id,
|
|
222
|
-
|
|
223
|
-
|
|
242
|
+
currentTeamId: resolved.team.id,
|
|
243
|
+
teams
|
|
224
244
|
})
|
|
225
245
|
]
|
|
226
246
|
}),
|
|
@@ -349,28 +369,57 @@ function SettingsDetails({ agentId, currentModelOverride, profileDefaultModel, c
|
|
|
349
369
|
children: "saved ✓"
|
|
350
370
|
}),
|
|
351
371
|
error && /* @__PURE__ */ jsx("span", {
|
|
352
|
-
className: "text-[0.85em] text-
|
|
372
|
+
className: "text-[0.85em] text-danger",
|
|
353
373
|
children: error
|
|
354
374
|
})
|
|
355
375
|
]
|
|
356
376
|
})]
|
|
357
377
|
});
|
|
358
378
|
}
|
|
359
|
-
function MoveGroupForm({ agentId,
|
|
379
|
+
function MoveGroupForm({ agentId, currentTeamId, teams }) {
|
|
360
380
|
const router = useRouter();
|
|
361
|
-
const [
|
|
381
|
+
const [teamId, setTeamId] = useState(currentTeamId);
|
|
362
382
|
const [moving, setMoving] = useState(false);
|
|
383
|
+
const [placement, setPlacement] = useState("profile_defaults");
|
|
363
384
|
const [err, setErr] = useState(null);
|
|
385
|
+
const [preview, setPreview] = useState(null);
|
|
364
386
|
async function move(e) {
|
|
365
387
|
e.preventDefault();
|
|
366
|
-
if (
|
|
388
|
+
if (teamId === currentTeamId) return;
|
|
367
389
|
setMoving(true);
|
|
368
390
|
setErr(null);
|
|
369
391
|
try {
|
|
370
|
-
const
|
|
392
|
+
const [sourceResponse, destinationResponse] = await Promise.all([fetch(`/api/teams/${encodeURIComponent(currentTeamId)}/policy`), fetch(`/api/teams/${encodeURIComponent(teamId)}/policy`)]);
|
|
393
|
+
if (!sourceResponse.ok || !destinationResponse.ok) throw new Error("A Team policy is unavailable. Nothing was moved.");
|
|
394
|
+
const source = await sourceResponse.json();
|
|
395
|
+
const destination = await destinationResponse.json();
|
|
396
|
+
const request = {
|
|
397
|
+
teamId,
|
|
398
|
+
sourceExpectedRevision: source.teamPolicy.revision,
|
|
399
|
+
destinationExpectedRevision: destination.teamPolicy.revision,
|
|
400
|
+
placement
|
|
401
|
+
};
|
|
402
|
+
if (!preview) {
|
|
403
|
+
const response = await fetch(`/api/agents/${encodeURIComponent(agentId)}/team/preview`, {
|
|
404
|
+
method: "POST",
|
|
405
|
+
headers: { "content-type": "application/json" },
|
|
406
|
+
body: JSON.stringify(request)
|
|
407
|
+
});
|
|
408
|
+
if (!response.ok) {
|
|
409
|
+
const body = await response.json().catch(() => null);
|
|
410
|
+
throw new Error(body?.error ?? response.statusText);
|
|
411
|
+
}
|
|
412
|
+
setPreview(await response.json());
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
const res = await fetch(`/api/agents/${encodeURIComponent(agentId)}/team`, {
|
|
371
416
|
method: "PATCH",
|
|
372
417
|
headers: { "content-type": "application/json" },
|
|
373
|
-
body: JSON.stringify({
|
|
418
|
+
body: JSON.stringify({
|
|
419
|
+
...request,
|
|
420
|
+
sourceExpectedRevision: preview.source.currentRevision,
|
|
421
|
+
destinationExpectedRevision: preview.destination.currentRevision
|
|
422
|
+
})
|
|
374
423
|
});
|
|
375
424
|
if (!res.ok) {
|
|
376
425
|
const body = await res.json().catch(() => null);
|
|
@@ -390,10 +439,13 @@ function MoveGroupForm({ agentId, currentGroupId, groups }) {
|
|
|
390
439
|
/* @__PURE__ */ jsxs("label", {
|
|
391
440
|
className: "flex flex-col gap-1 text-[0.85em] text-mocha-light",
|
|
392
441
|
children: ["move to:", /* @__PURE__ */ jsx("select", {
|
|
393
|
-
value:
|
|
394
|
-
onChange: (e) =>
|
|
442
|
+
value: teamId,
|
|
443
|
+
onChange: (e) => {
|
|
444
|
+
setTeamId(e.target.value);
|
|
445
|
+
setPreview(null);
|
|
446
|
+
},
|
|
395
447
|
className: "min-w-[18rem] rounded-sm border border-frost bg-snow px-2 py-1.5",
|
|
396
|
-
children:
|
|
448
|
+
children: teams.map((g) => /* @__PURE__ */ jsxs("option", {
|
|
397
449
|
value: g.id,
|
|
398
450
|
children: [
|
|
399
451
|
g.id,
|
|
@@ -403,14 +455,55 @@ function MoveGroupForm({ agentId, currentGroupId, groups }) {
|
|
|
403
455
|
}, g.id))
|
|
404
456
|
})]
|
|
405
457
|
}),
|
|
458
|
+
/* @__PURE__ */ jsxs("label", {
|
|
459
|
+
className: "flex flex-col gap-1 text-[0.85em] text-mocha-light",
|
|
460
|
+
children: ["destination placement:", /* @__PURE__ */ jsxs("select", {
|
|
461
|
+
value: placement,
|
|
462
|
+
onChange: (e) => {
|
|
463
|
+
setPlacement(e.target.value);
|
|
464
|
+
setPreview(null);
|
|
465
|
+
},
|
|
466
|
+
className: "rounded-sm border border-frost bg-snow px-2 py-1.5",
|
|
467
|
+
children: [/* @__PURE__ */ jsx("option", {
|
|
468
|
+
value: "profile_defaults",
|
|
469
|
+
children: "Agent-template defaults"
|
|
470
|
+
}), /* @__PURE__ */ jsx("option", {
|
|
471
|
+
value: "isolated",
|
|
472
|
+
children: "isolated"
|
|
473
|
+
})]
|
|
474
|
+
})]
|
|
475
|
+
}),
|
|
406
476
|
/* @__PURE__ */ jsx("button", {
|
|
407
477
|
type: "submit",
|
|
408
|
-
disabled: moving ||
|
|
409
|
-
children: moving ? "
|
|
478
|
+
disabled: moving || teamId === currentTeamId,
|
|
479
|
+
children: moving ? "working…" : preview ? "commit reviewed move" : "review move"
|
|
410
480
|
}),
|
|
411
481
|
err && /* @__PURE__ */ jsx("span", {
|
|
412
|
-
className: "text-[0.85em] text-
|
|
482
|
+
className: "text-[0.85em] text-danger",
|
|
413
483
|
children: err
|
|
484
|
+
}),
|
|
485
|
+
preview && /* @__PURE__ */ jsxs("div", {
|
|
486
|
+
className: "basis-full rounded-md border border-sapphire-light bg-sapphire-glow p-3 text-sm",
|
|
487
|
+
children: [/* @__PURE__ */ jsxs("p", { children: [
|
|
488
|
+
"Source revision ",
|
|
489
|
+
preview.source.currentRevision,
|
|
490
|
+
" → ",
|
|
491
|
+
/* @__PURE__ */ jsx("strong", { children: preview.source.resultingRevision }),
|
|
492
|
+
", removing ",
|
|
493
|
+
preview.source.removedEdges.length,
|
|
494
|
+
" incident edges. Destination revision ",
|
|
495
|
+
preview.destination.currentRevision,
|
|
496
|
+
" → ",
|
|
497
|
+
/* @__PURE__ */ jsx("strong", { children: preview.destination.resultingRevision }),
|
|
498
|
+
", adding ",
|
|
499
|
+
preview.destination.addedEdges.length,
|
|
500
|
+
" edges to ",
|
|
501
|
+
preview.destination.existingEdges.length,
|
|
502
|
+
" existing edges."
|
|
503
|
+
] }), /* @__PURE__ */ jsx("p", {
|
|
504
|
+
className: "mt-1 muted",
|
|
505
|
+
children: preview.lineage
|
|
506
|
+
})]
|
|
414
507
|
})
|
|
415
508
|
]
|
|
416
509
|
});
|
|
@@ -465,7 +558,7 @@ function SkillsTable({ agentId, attached, all }) {
|
|
|
465
558
|
children: "no skills installed"
|
|
466
559
|
});
|
|
467
560
|
return /* @__PURE__ */ jsxs(Fragment, { children: [err && /* @__PURE__ */ jsx("p", {
|
|
468
|
-
className: "mb-2 text-[0.85em] text-
|
|
561
|
+
className: "mb-2 text-[0.85em] text-danger",
|
|
469
562
|
children: err
|
|
470
563
|
}), /* @__PURE__ */ jsxs("table", { children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
471
564
|
/* @__PURE__ */ jsx("th", { children: "name" }),
|
|
@@ -506,7 +599,7 @@ function SkillFindingSummary({ findings }) {
|
|
|
506
599
|
return /* @__PURE__ */ jsxs("details", {
|
|
507
600
|
className: "text-[0.82em]",
|
|
508
601
|
children: [/* @__PURE__ */ jsxs("summary", {
|
|
509
|
-
className: findings.some((f) => f.severity === "danger") ? "cursor-pointer text-
|
|
602
|
+
className: findings.some((f) => f.severity === "danger") ? "cursor-pointer text-danger" : "cursor-pointer text-mocha",
|
|
510
603
|
children: [
|
|
511
604
|
findings.length,
|
|
512
605
|
" finding",
|
|
@@ -603,7 +696,7 @@ function TelegramSection({ agent }) {
|
|
|
603
696
|
className: "mb-3 flex items-center gap-3",
|
|
604
697
|
children: isBound ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
605
698
|
/* @__PURE__ */ jsx("span", {
|
|
606
|
-
className: "rounded-full bg-
|
|
699
|
+
className: "rounded-full bg-success/10 px-2 py-0.5 text-xs font-semibold text-success",
|
|
607
700
|
children: "bound"
|
|
608
701
|
}),
|
|
609
702
|
/* @__PURE__ */ jsxs("span", {
|
|
@@ -622,11 +715,11 @@ function TelegramSection({ agent }) {
|
|
|
622
715
|
type: "button",
|
|
623
716
|
onClick: unbind,
|
|
624
717
|
disabled: busy,
|
|
625
|
-
className: "ghost-btn border-[rgba(196,135,138,0.4)] text-
|
|
718
|
+
className: "ghost-btn border-[rgba(196,135,138,0.4)] text-danger hover:bg-[rgba(196,135,138,0.08)]",
|
|
626
719
|
children: "unbind"
|
|
627
720
|
})
|
|
628
721
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
|
|
629
|
-
className: "rounded-full bg-
|
|
722
|
+
className: "rounded-full bg-warning/10 px-2 py-0.5 text-xs font-semibold text-warning",
|
|
630
723
|
children: "unbound"
|
|
631
724
|
}), /* @__PURE__ */ jsx("button", {
|
|
632
725
|
type: "button",
|
|
@@ -685,7 +778,7 @@ function TelegramSection({ agent }) {
|
|
|
685
778
|
]
|
|
686
779
|
}),
|
|
687
780
|
error && /* @__PURE__ */ jsx("p", {
|
|
688
|
-
className: "mt-2 text-sm text-
|
|
781
|
+
className: "mt-2 text-sm text-danger",
|
|
689
782
|
children: error
|
|
690
783
|
}),
|
|
691
784
|
/* @__PURE__ */ jsx("p", {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { t as createServerFn } from "../server.js";
|
|
2
|
-
import { t as createSsrRpc } from "./createSsrRpc-
|
|
2
|
+
import { t as createSsrRpc } from "./createSsrRpc-DFsIAfFd.js";
|
|
3
|
+
import "react";
|
|
3
4
|
import { createFileRoute, lazyRouteComponent, redirect } from "@tanstack/react-router";
|
|
4
|
-
//#region src/routes/
|
|
5
|
-
var $$splitComponentImporter = () => import("./_id-
|
|
6
|
-
var fetchProfile = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(createSsrRpc("
|
|
7
|
-
var Route = createFileRoute("/
|
|
5
|
+
//#region src/routes/templates/agents/$id/index.tsx
|
|
6
|
+
var $$splitComponentImporter = () => import("./_id-C3HY4lWg.js");
|
|
7
|
+
var fetchProfile = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(createSsrRpc("032d74b7d41c718191dbdde6b06ba44993340ce1154af1fa6723a6d4f7a7236e"));
|
|
8
|
+
var Route = createFileRoute("/templates/agents/$id/")({
|
|
8
9
|
loader: async ({ params }) => {
|
|
9
10
|
const data = await fetchProfile({ data: { id: params.id } });
|
|
10
|
-
if (!data) throw redirect({ to: "/
|
|
11
|
+
if (!data) throw redirect({ to: "/templates/agents" });
|
|
11
12
|
return data;
|
|
12
13
|
},
|
|
13
14
|
component: lazyRouteComponent($$splitComponentImporter, "component")
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { t as createServerFn } from "../server.js";
|
|
2
|
-
import { t as createServerRpc } from "./createServerRpc-
|
|
2
|
+
import { t as createServerRpc } from "./createServerRpc-pU-IQV2Y.js";
|
|
3
3
|
import { n as daemonClient, r as ApiClientError } from "./daemon-client-2NRMzlTr.js";
|
|
4
|
-
|
|
4
|
+
import "react";
|
|
5
|
+
//#region src/routes/templates/agents/$id/index.tsx?tss-serverfn-split
|
|
5
6
|
var fetchProfile_createServerFn_handler = createServerRpc({
|
|
6
|
-
id: "
|
|
7
|
+
id: "032d74b7d41c718191dbdde6b06ba44993340ce1154af1fa6723a6d4f7a7236e",
|
|
7
8
|
name: "fetchProfile",
|
|
8
|
-
filename: "src/routes/
|
|
9
|
+
filename: "src/routes/templates/agents/$id/index.tsx"
|
|
9
10
|
}, (opts) => fetchProfile.__executeServer(opts));
|
|
10
11
|
var fetchProfile = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(fetchProfile_createServerFn_handler, async ({ data }) => {
|
|
11
12
|
const c = daemonClient();
|
|
@@ -19,7 +20,7 @@ var fetchProfile = createServerFn({ method: "POST" }).inputValidator((d) => d).h
|
|
|
19
20
|
const [models, skills] = await Promise.all([c.get("/api/config/available-models"), c.get("/api/skills")]);
|
|
20
21
|
return {
|
|
21
22
|
loaded,
|
|
22
|
-
modelGroups: models.
|
|
23
|
+
modelGroups: models.teams,
|
|
23
24
|
skills
|
|
24
25
|
};
|
|
25
26
|
});
|