bazilion 0.7.0 → 0.8.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/dist/cli.js +80 -17
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +143 -23
- package/dist/daemon.js.map +1 -1
- package/dist/web/client/assets/{TemplatesTabs-Da7mg9FI.js → TemplatesTabs-UM04RMO9.js} +1 -1
- package/dist/web/client/assets/{_id-LT6Ejjr0.js → _id-BNJapCT4.js} +1 -1
- package/dist/web/client/assets/{_id-_6jIt0_-.js → _id-CjGoV8Mr.js} +1 -1
- package/dist/web/client/assets/{_id-BdKmo0gb.js → _id-DehuCHUw.js} +1 -1
- package/dist/web/client/assets/{_id-MR2XjWh0.js → _id-Dz9fjcCM.js} +1 -1
- package/dist/web/client/assets/{agents-0arKbVYG.js → agents-M6omAXcZ.js} +1 -1
- package/dist/web/client/assets/{config-BSAVT-17.js → config-DIuEc5bm.js} +1 -1
- package/dist/web/client/assets/{groups-BqTkhHes.js → groups-DpE2d2zZ.js} +1 -1
- package/dist/web/client/assets/{inbox-ozoCXzr5.js → inbox-BPnLsRNf.js} +1 -1
- package/dist/web/client/assets/{index-iayCEuU2.js → index-MAJuXnie.js} +2 -2
- package/dist/web/client/assets/{login-D8lNr2SX.js → login-CawJX16E.js} +1 -1
- package/dist/web/client/assets/{mcp-BLnngDsj.js → mcp-DIrh9-v_.js} +1 -1
- package/dist/web/client/assets/{memory-D1GQjEvN.js → memory-BpHbdKsd.js} +1 -1
- package/dist/web/client/assets/{profile-groups-C2yJPTaE.js → profile-groups-ByoKak0c.js} +1 -1
- package/dist/web/client/assets/{profiles-BV7AAZjj.js → profiles-BEjv8LGo.js} +1 -1
- package/dist/web/client/assets/{routes-DSHQLA7K.js → routes-D2COHy7v.js} +1 -1
- package/dist/web/client/assets/{services-BbCJe1Du.js → services-D212jSK_.js} +1 -1
- package/dist/web/client/assets/skills-Da0MURjY.js +1 -0
- package/dist/web/client/assets/styles-BgE5bCHA.css +2 -0
- package/dist/web/client/assets/{telegram-gE4j8gte.js → telegram-Czh2MdVm.js} +1 -1
- package/dist/web/client/assets/{tokens-D2_O9ARe.js → tokens-E_JvO5JN.js} +1 -1
- package/dist/web/client/assets/{triggers-WljnfEfJ.js → triggers-BBRZQOm7.js} +1 -1
- package/dist/web/server/assets/{_id-D0ytyXGY.js → _id-BdRiQb2H.js} +42 -5
- package/dist/web/server/assets/{_id-81NrHA5d.js → _id-DUIrFV3G.js} +1 -1
- package/dist/web/server/assets/{_tanstack-start-manifest_v-DBlFH2gg.js → _tanstack-start-manifest_v-D9FLKShQ.js} +23 -23
- package/dist/web/server/assets/{router-BpBZgRwn.js → router-BrDascdO.js} +3 -3
- package/dist/web/server/assets/{skills-dLyBZb3B.js → skills-D89ND2kR.js} +67 -7
- package/dist/web/server/assets/{skills-CpsyR_WA.js → skills-l2cyQ3zS.js} +1 -1
- package/dist/web/server/server.js +2 -2
- package/dist/worker.js.map +1 -1
- package/package.json +3 -3
- package/dist/web/client/assets/skills-C6czKR5I.js +0 -1
- package/dist/web/client/assets/styles-C06axZZk.css +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Route } from "./_id-
|
|
1
|
+
import { t as Route } from "./_id-DUIrFV3G.js";
|
|
2
2
|
import { t as AgentTabs } from "./AgentTabs-BOjTN7QF.js";
|
|
3
3
|
import { t as AgentAvatar } from "./AgentAvatar-8gTAy_tP.js";
|
|
4
4
|
import { t as ChatPane } from "./ChatPane-BvpswYvF.js";
|
|
@@ -419,14 +419,19 @@ function SkillsTable({ agentId, attached, all }) {
|
|
|
419
419
|
const router = useRouter();
|
|
420
420
|
const [pending, setPending] = useState(null);
|
|
421
421
|
const [err, setErr] = useState(null);
|
|
422
|
-
async function attach(
|
|
423
|
-
|
|
422
|
+
async function attach(skill) {
|
|
423
|
+
const findings = skill.scanFindings ?? [];
|
|
424
|
+
if (!(findings.length === 0 || confirm(`Skill "${skill.name}" has ${findings.length} scan finding${findings.length === 1 ? "" : "s"}. Attach it anyway?`))) return;
|
|
425
|
+
setPending(skill.name);
|
|
424
426
|
setErr(null);
|
|
425
427
|
try {
|
|
426
428
|
const res = await fetch(`/api/agents/${encodeURIComponent(agentId)}/skills`, {
|
|
427
429
|
method: "POST",
|
|
428
430
|
headers: { "content-type": "application/json" },
|
|
429
|
-
body: JSON.stringify({
|
|
431
|
+
body: JSON.stringify({
|
|
432
|
+
skill: skill.name,
|
|
433
|
+
allowFindings: findings.length > 0
|
|
434
|
+
})
|
|
430
435
|
});
|
|
431
436
|
if (!res.ok) {
|
|
432
437
|
const body = await res.json().catch(() => null);
|
|
@@ -465,6 +470,7 @@ function SkillsTable({ agentId, attached, all }) {
|
|
|
465
470
|
}), /* @__PURE__ */ jsxs("table", { children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
466
471
|
/* @__PURE__ */ jsx("th", { children: "name" }),
|
|
467
472
|
/* @__PURE__ */ jsx("th", { children: "description" }),
|
|
473
|
+
/* @__PURE__ */ jsx("th", { children: "scan" }),
|
|
468
474
|
/* @__PURE__ */ jsx("th", {})
|
|
469
475
|
] }) }), /* @__PURE__ */ jsx("tbody", { children: all.map((s) => {
|
|
470
476
|
const isAttached = attached.has(s.name);
|
|
@@ -475,6 +481,7 @@ function SkillsTable({ agentId, attached, all }) {
|
|
|
475
481
|
className: "text-mocha-light",
|
|
476
482
|
children: "—"
|
|
477
483
|
}) }),
|
|
484
|
+
/* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(SkillFindingSummary, { findings: s.scanFindings ?? [] }) }),
|
|
478
485
|
/* @__PURE__ */ jsx("td", { children: isAttached ? /* @__PURE__ */ jsx("button", {
|
|
479
486
|
type: "button",
|
|
480
487
|
className: "ghost-btn",
|
|
@@ -485,12 +492,42 @@ function SkillsTable({ agentId, attached, all }) {
|
|
|
485
492
|
type: "button",
|
|
486
493
|
className: "ghost-btn",
|
|
487
494
|
disabled: busy,
|
|
488
|
-
onClick: () => attach(s
|
|
495
|
+
onClick: () => attach(s),
|
|
489
496
|
children: busy ? "…" : "attach"
|
|
490
497
|
}) })
|
|
491
498
|
] }, s.name);
|
|
492
499
|
}) })] })] });
|
|
493
500
|
}
|
|
501
|
+
function SkillFindingSummary({ findings }) {
|
|
502
|
+
if (findings.length === 0) return /* @__PURE__ */ jsx("span", {
|
|
503
|
+
className: "text-mocha-light",
|
|
504
|
+
children: "clean"
|
|
505
|
+
});
|
|
506
|
+
return /* @__PURE__ */ jsxs("details", {
|
|
507
|
+
className: "text-[0.82em]",
|
|
508
|
+
children: [/* @__PURE__ */ jsxs("summary", {
|
|
509
|
+
className: findings.some((f) => f.severity === "danger") ? "cursor-pointer text-[#9B3D3D]" : "cursor-pointer text-mocha",
|
|
510
|
+
children: [
|
|
511
|
+
findings.length,
|
|
512
|
+
" finding",
|
|
513
|
+
findings.length === 1 ? "" : "s"
|
|
514
|
+
]
|
|
515
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
516
|
+
className: "m-0 list-disc pl-4",
|
|
517
|
+
children: findings.map((f, i) => /* @__PURE__ */ jsxs("li", { children: [
|
|
518
|
+
/* @__PURE__ */ jsx("span", {
|
|
519
|
+
className: "font-mono",
|
|
520
|
+
children: f.severity
|
|
521
|
+
}),
|
|
522
|
+
": ",
|
|
523
|
+
f.code,
|
|
524
|
+
f.line ? ` line ${f.line}` : "",
|
|
525
|
+
" - ",
|
|
526
|
+
f.message
|
|
527
|
+
] }, `${f.code}-${f.line ?? 0}-${i}`))
|
|
528
|
+
})]
|
|
529
|
+
});
|
|
530
|
+
}
|
|
494
531
|
function TelegramSection({ agent }) {
|
|
495
532
|
const router = useRouter();
|
|
496
533
|
const [busy, setBusy] = useState(false);
|
|
@@ -2,7 +2,7 @@ import { t as createServerFn } from "../server.js";
|
|
|
2
2
|
import { t as createSsrRpc } from "./createSsrRpc-ZBGxhl8t.js";
|
|
3
3
|
import { createFileRoute, lazyRouteComponent, redirect } from "@tanstack/react-router";
|
|
4
4
|
//#region src/routes/agents/$id/index.tsx
|
|
5
|
-
var $$splitComponentImporter = () => import("./_id-
|
|
5
|
+
var $$splitComponentImporter = () => import("./_id-BdRiQb2H.js");
|
|
6
6
|
var fetchAgent = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(createSsrRpc("846c9081aed17057351730985f133b0aab67a5dabfca9562552829a90ff30849"));
|
|
7
7
|
var Route = createFileRoute("/agents/$id/")({
|
|
8
8
|
loader: async ({ params }) => {
|
|
@@ -26,21 +26,21 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
26
26
|
"/groups/$id/"
|
|
27
27
|
],
|
|
28
28
|
preloads: [
|
|
29
|
-
"/assets/index-
|
|
29
|
+
"/assets/index-MAJuXnie.js",
|
|
30
30
|
"/assets/jsx-runtime-DGeXAQPT.js",
|
|
31
31
|
"/assets/preload-helper-CvnapA2_.js"
|
|
32
32
|
],
|
|
33
33
|
scripts: [{ attrs: {
|
|
34
34
|
type: "module",
|
|
35
35
|
async: !0,
|
|
36
|
-
src: "/assets/index-
|
|
36
|
+
src: "/assets/index-MAJuXnie.js"
|
|
37
37
|
} }]
|
|
38
38
|
},
|
|
39
39
|
"/": {
|
|
40
40
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/index.tsx",
|
|
41
41
|
children: void 0,
|
|
42
42
|
preloads: [
|
|
43
|
-
"/assets/routes-
|
|
43
|
+
"/assets/routes-D2COHy7v.js",
|
|
44
44
|
"/assets/ChatPane-DzEgOEqS.js",
|
|
45
45
|
"/assets/SpawnTeamModal-BEkNCKXm.js",
|
|
46
46
|
"/assets/wire-constants-BkT5-597.js"
|
|
@@ -49,7 +49,7 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
49
49
|
"/login": {
|
|
50
50
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/login.tsx",
|
|
51
51
|
children: void 0,
|
|
52
|
-
preloads: ["/assets/login-
|
|
52
|
+
preloads: ["/assets/login-CawJX16E.js"]
|
|
53
53
|
},
|
|
54
54
|
"/welcome": {
|
|
55
55
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/welcome.tsx",
|
|
@@ -59,13 +59,13 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
59
59
|
"/config/mcp": {
|
|
60
60
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/mcp.tsx",
|
|
61
61
|
children: void 0,
|
|
62
|
-
preloads: ["/assets/mcp-
|
|
62
|
+
preloads: ["/assets/mcp-DIrh9-v_.js", "/assets/ConfigTabs-pY-V0Rie.js"]
|
|
63
63
|
},
|
|
64
64
|
"/config/services": {
|
|
65
65
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/services.tsx",
|
|
66
66
|
children: void 0,
|
|
67
67
|
preloads: [
|
|
68
|
-
"/assets/services-
|
|
68
|
+
"/assets/services-D212jSK_.js",
|
|
69
69
|
"/assets/ConfigTabs-pY-V0Rie.js",
|
|
70
70
|
"/assets/FieldRow-CNKma5LE.js"
|
|
71
71
|
]
|
|
@@ -73,13 +73,13 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
73
73
|
"/config/tokens": {
|
|
74
74
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/tokens.tsx",
|
|
75
75
|
children: void 0,
|
|
76
|
-
preloads: ["/assets/tokens-
|
|
76
|
+
preloads: ["/assets/tokens-E_JvO5JN.js", "/assets/ConfigTabs-pY-V0Rie.js"]
|
|
77
77
|
},
|
|
78
78
|
"/profile-groups/$id": {
|
|
79
79
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/profile-groups/$id.tsx",
|
|
80
80
|
children: void 0,
|
|
81
81
|
preloads: [
|
|
82
|
-
"/assets/_id-
|
|
82
|
+
"/assets/_id-CjGoV8Mr.js",
|
|
83
83
|
"/assets/Button-ByiV6fpd.js",
|
|
84
84
|
"/assets/MembersEditor-C6UpqDdV.js"
|
|
85
85
|
]
|
|
@@ -87,18 +87,18 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
87
87
|
"/profiles/$id": {
|
|
88
88
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/profiles/$id.tsx",
|
|
89
89
|
children: void 0,
|
|
90
|
-
preloads: ["/assets/_id-
|
|
90
|
+
preloads: ["/assets/_id-BNJapCT4.js"]
|
|
91
91
|
},
|
|
92
92
|
"/agents/": {
|
|
93
93
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/agents/index.tsx",
|
|
94
94
|
children: void 0,
|
|
95
|
-
preloads: ["/assets/agents-
|
|
95
|
+
preloads: ["/assets/agents-M6omAXcZ.js", "/assets/AgentAvatar-JYijLvZ2.js"]
|
|
96
96
|
},
|
|
97
97
|
"/config/": {
|
|
98
98
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/index.tsx",
|
|
99
99
|
children: void 0,
|
|
100
100
|
preloads: [
|
|
101
|
-
"/assets/config-
|
|
101
|
+
"/assets/config-DIuEc5bm.js",
|
|
102
102
|
"/assets/ConfigTabs-pY-V0Rie.js",
|
|
103
103
|
"/assets/FieldRow-CNKma5LE.js"
|
|
104
104
|
]
|
|
@@ -106,48 +106,48 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
106
106
|
"/groups/": {
|
|
107
107
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/groups/index.tsx",
|
|
108
108
|
children: void 0,
|
|
109
|
-
preloads: ["/assets/groups-
|
|
109
|
+
preloads: ["/assets/groups-DpE2d2zZ.js"]
|
|
110
110
|
},
|
|
111
111
|
"/profile-groups/": {
|
|
112
112
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/profile-groups/index.tsx",
|
|
113
113
|
children: void 0,
|
|
114
114
|
preloads: [
|
|
115
|
-
"/assets/profile-groups-
|
|
115
|
+
"/assets/profile-groups-ByoKak0c.js",
|
|
116
116
|
"/assets/Button-ByiV6fpd.js",
|
|
117
117
|
"/assets/MembersEditor-C6UpqDdV.js",
|
|
118
118
|
"/assets/SpawnTeamModal-BEkNCKXm.js",
|
|
119
|
-
"/assets/TemplatesTabs-
|
|
119
|
+
"/assets/TemplatesTabs-UM04RMO9.js"
|
|
120
120
|
]
|
|
121
121
|
},
|
|
122
122
|
"/profiles/": {
|
|
123
123
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/profiles/index.tsx",
|
|
124
124
|
children: void 0,
|
|
125
125
|
preloads: [
|
|
126
|
-
"/assets/profiles-
|
|
126
|
+
"/assets/profiles-BEjv8LGo.js",
|
|
127
127
|
"/assets/Button-ByiV6fpd.js",
|
|
128
|
-
"/assets/TemplatesTabs-
|
|
128
|
+
"/assets/TemplatesTabs-UM04RMO9.js"
|
|
129
129
|
]
|
|
130
130
|
},
|
|
131
131
|
"/skills/": {
|
|
132
132
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/skills/index.tsx",
|
|
133
133
|
children: void 0,
|
|
134
|
-
preloads: ["/assets/skills-
|
|
134
|
+
preloads: ["/assets/skills-Da0MURjY.js"]
|
|
135
135
|
},
|
|
136
136
|
"/agents/$id/inbox": {
|
|
137
137
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/agents/$id/inbox.tsx",
|
|
138
138
|
children: void 0,
|
|
139
|
-
preloads: ["/assets/inbox-
|
|
139
|
+
preloads: ["/assets/inbox-BPnLsRNf.js", "/assets/AgentTabs-DioGqUVR.js"]
|
|
140
140
|
},
|
|
141
141
|
"/agents/$id/triggers": {
|
|
142
142
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/agents/$id/triggers.tsx",
|
|
143
143
|
children: void 0,
|
|
144
|
-
preloads: ["/assets/triggers-
|
|
144
|
+
preloads: ["/assets/triggers-BBRZQOm7.js", "/assets/AgentTabs-DioGqUVR.js"]
|
|
145
145
|
},
|
|
146
146
|
"/config/integrations/telegram": {
|
|
147
147
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/config/integrations/telegram.tsx",
|
|
148
148
|
children: void 0,
|
|
149
149
|
preloads: [
|
|
150
|
-
"/assets/telegram-
|
|
150
|
+
"/assets/telegram-Czh2MdVm.js",
|
|
151
151
|
"/assets/Button-ByiV6fpd.js",
|
|
152
152
|
"/assets/ConfigTabs-pY-V0Rie.js"
|
|
153
153
|
]
|
|
@@ -155,13 +155,13 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
155
155
|
"/groups/$id/memory": {
|
|
156
156
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/groups/$id/memory.tsx",
|
|
157
157
|
children: void 0,
|
|
158
|
-
preloads: ["/assets/memory-
|
|
158
|
+
preloads: ["/assets/memory-BpHbdKsd.js"]
|
|
159
159
|
},
|
|
160
160
|
"/agents/$id/": {
|
|
161
161
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/agents/$id/index.tsx",
|
|
162
162
|
children: void 0,
|
|
163
163
|
preloads: [
|
|
164
|
-
"/assets/_id-
|
|
164
|
+
"/assets/_id-DehuCHUw.js",
|
|
165
165
|
"/assets/AgentAvatar-JYijLvZ2.js",
|
|
166
166
|
"/assets/AgentTabs-DioGqUVR.js",
|
|
167
167
|
"/assets/ChatPane-DzEgOEqS.js",
|
|
@@ -171,7 +171,7 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
171
171
|
"/groups/$id/": {
|
|
172
172
|
filePath: "/home/runner/work/bazilion/bazilion/apps/web/src/routes/groups/$id/index.tsx",
|
|
173
173
|
children: void 0,
|
|
174
|
-
preloads: ["/assets/_id-
|
|
174
|
+
preloads: ["/assets/_id-Dz9fjcCM.js", "/assets/Button-ByiV6fpd.js"]
|
|
175
175
|
}
|
|
176
176
|
} });
|
|
177
177
|
//#endregion
|
|
@@ -3,7 +3,7 @@ import { t as DAEMON_BASE_URL } from "./daemon-client-2NRMzlTr.js";
|
|
|
3
3
|
import { n as BaziuLogo, r as PawIcon, t as Route$3 } from "./login-CNznncgA.js";
|
|
4
4
|
import { t as createSsrRpc } from "./createSsrRpc-ZBGxhl8t.js";
|
|
5
5
|
import { t as Route$4 } from "./routes-V9URcp1v.js";
|
|
6
|
-
import { t as Route$5 } from "./skills-
|
|
6
|
+
import { t as Route$5 } from "./skills-l2cyQ3zS.js";
|
|
7
7
|
import { t as Route$6 } from "./profiles-CZ5NkmVw.js";
|
|
8
8
|
import { t as Route$7 } from "./profile-groups-aoJleXHP.js";
|
|
9
9
|
import { t as Route$8 } from "./groups-CbSwND2r.js";
|
|
@@ -15,7 +15,7 @@ import { t as Route$13 } from "./tokens-DdpnfV_Y.js";
|
|
|
15
15
|
import { t as Route$14 } from "./services-Ccc5s2bS.js";
|
|
16
16
|
import { t as Route$15 } from "./mcp-CKqwG4mt.js";
|
|
17
17
|
import { t as Route$16 } from "./_id-CnQflrRv.js";
|
|
18
|
-
import { t as Route$17 } from "./_id-
|
|
18
|
+
import { t as Route$17 } from "./_id-DUIrFV3G.js";
|
|
19
19
|
import { t as Route$18 } from "./memory-Ns2-Z31p.js";
|
|
20
20
|
import { t as Route$19 } from "./telegram-T3l9KtiE.js";
|
|
21
21
|
import { t as Route$20 } from "./triggers-BcTTwMfy.js";
|
|
@@ -142,7 +142,7 @@ function isSetupOpen(path) {
|
|
|
142
142
|
}
|
|
143
143
|
//#endregion
|
|
144
144
|
//#region src/styles.css?url
|
|
145
|
-
var styles_default = "/assets/styles-
|
|
145
|
+
var styles_default = "/assets/styles-BgE5bCHA.css";
|
|
146
146
|
//#endregion
|
|
147
147
|
//#region src/routes/__root.tsx
|
|
148
148
|
var THEME_INIT_SCRIPT = `(function(){try{var t=localStorage.getItem('baziu-theme');var sd=window.matchMedia&&window.matchMedia('(prefers-color-scheme: dark)').matches;var d=t==='dark'||((t===null||t==='system')&&sd);document.documentElement.classList.toggle('dark',d);}catch(e){}})();`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Route } from "./skills-
|
|
1
|
+
import { t as Route } from "./skills-l2cyQ3zS.js";
|
|
2
2
|
import { useRef, useState } from "react";
|
|
3
3
|
import { useRouter } from "@tanstack/react-router";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -21,10 +21,11 @@ function SkillsPage() {
|
|
|
21
21
|
/* @__PURE__ */ jsxs("table", { children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
22
22
|
/* @__PURE__ */ jsx("th", { children: "name" }),
|
|
23
23
|
/* @__PURE__ */ jsx("th", { children: "description" }),
|
|
24
|
+
/* @__PURE__ */ jsx("th", { children: "scan" }),
|
|
24
25
|
/* @__PURE__ */ jsx("th", { children: "source" }),
|
|
25
26
|
/* @__PURE__ */ jsx("th", {})
|
|
26
27
|
] }) }), /* @__PURE__ */ jsxs("tbody", { children: [skills.length === 0 && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
|
|
27
|
-
colSpan:
|
|
28
|
+
colSpan: 5,
|
|
28
29
|
className: "muted",
|
|
29
30
|
children: "no skills installed yet"
|
|
30
31
|
}) }), skills.map((s) => /* @__PURE__ */ jsxs("tr", { children: [
|
|
@@ -33,6 +34,7 @@ function SkillsPage() {
|
|
|
33
34
|
className: "text-[#9B3D3D]",
|
|
34
35
|
children: ["parse error: ", s.parseError]
|
|
35
36
|
}) : s.description }),
|
|
37
|
+
/* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(FindingSummary, { findings: s.scanFindings ?? [] }) }),
|
|
36
38
|
/* @__PURE__ */ jsxs("td", {
|
|
37
39
|
className: "text-[0.78em] text-mocha-light",
|
|
38
40
|
children: [/* @__PURE__ */ jsx("span", {
|
|
@@ -59,11 +61,13 @@ function ImportCard({ onImported }) {
|
|
|
59
61
|
const [zipFile, setZipFile] = useState(null);
|
|
60
62
|
const [dragOver, setDragOver] = useState(false);
|
|
61
63
|
const [err, setErr] = useState(null);
|
|
64
|
+
const [findings, setFindings] = useState([]);
|
|
62
65
|
const [submitting, setSubmitting] = useState(false);
|
|
63
66
|
const fileInput = useRef(null);
|
|
64
67
|
async function submit(e) {
|
|
65
68
|
e.preventDefault();
|
|
66
69
|
setErr(null);
|
|
70
|
+
setFindings([]);
|
|
67
71
|
setSubmitting(true);
|
|
68
72
|
try {
|
|
69
73
|
let res;
|
|
@@ -102,8 +106,10 @@ function ImportCard({ onImported }) {
|
|
|
102
106
|
}
|
|
103
107
|
if (!res.ok) {
|
|
104
108
|
const e2 = await res.json().catch(() => null);
|
|
109
|
+
setFindings(e2?.findings ?? []);
|
|
105
110
|
throw new Error(e2?.error ?? `${res.status} ${res.statusText}`);
|
|
106
111
|
}
|
|
112
|
+
setFindings(flattenImportFindings((await res.json().catch(() => null))?.findings));
|
|
107
113
|
setPath("");
|
|
108
114
|
setZipFile(null);
|
|
109
115
|
onImported();
|
|
@@ -181,6 +187,13 @@ function ImportCard({ onImported }) {
|
|
|
181
187
|
className: "err",
|
|
182
188
|
children: err
|
|
183
189
|
}),
|
|
190
|
+
findings.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
191
|
+
className: "mb-3 rounded-md border border-[#D7A3A3] bg-[#FFF7F5] p-3 text-[0.86em] text-[#7C2D2D]",
|
|
192
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
193
|
+
className: "mb-1 font-semibold",
|
|
194
|
+
children: "scan findings"
|
|
195
|
+
}), /* @__PURE__ */ jsx(FindingList, { findings })]
|
|
196
|
+
}),
|
|
184
197
|
/* @__PURE__ */ jsxs("form", {
|
|
185
198
|
onSubmit: submit,
|
|
186
199
|
children: [
|
|
@@ -245,11 +258,18 @@ function ImportCard({ onImported }) {
|
|
|
245
258
|
children: submitting ? "importing…" : tab === "zip" ? "upload & import" : tab === "openclaw" ? "import from OpenClaw" : "import"
|
|
246
259
|
}), /* @__PURE__ */ jsxs("label", {
|
|
247
260
|
className: "m-0 inline-flex cursor-pointer items-center text-[0.88em] text-mocha",
|
|
248
|
-
children: [
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
261
|
+
children: [
|
|
262
|
+
/* @__PURE__ */ jsx("input", {
|
|
263
|
+
type: "checkbox",
|
|
264
|
+
checked: force,
|
|
265
|
+
onChange: (e) => setForce(e.target.checked)
|
|
266
|
+
}),
|
|
267
|
+
"overwrite existing",
|
|
268
|
+
/* @__PURE__ */ jsx("span", {
|
|
269
|
+
className: "ml-1 text-mocha-light",
|
|
270
|
+
children: "/ confirm scan findings"
|
|
271
|
+
})
|
|
272
|
+
]
|
|
253
273
|
})]
|
|
254
274
|
})
|
|
255
275
|
]
|
|
@@ -257,5 +277,45 @@ function ImportCard({ onImported }) {
|
|
|
257
277
|
]
|
|
258
278
|
});
|
|
259
279
|
}
|
|
280
|
+
function FindingSummary({ findings }) {
|
|
281
|
+
if (findings.length === 0) return /* @__PURE__ */ jsx("span", {
|
|
282
|
+
className: "text-mocha-light",
|
|
283
|
+
children: "clean"
|
|
284
|
+
});
|
|
285
|
+
return /* @__PURE__ */ jsxs("details", {
|
|
286
|
+
className: "text-[0.82em]",
|
|
287
|
+
children: [/* @__PURE__ */ jsxs("summary", {
|
|
288
|
+
className: findings.some((f) => f.severity === "danger") ? "cursor-pointer text-[#9B3D3D]" : "cursor-pointer text-mocha",
|
|
289
|
+
children: [
|
|
290
|
+
findings.length,
|
|
291
|
+
" finding",
|
|
292
|
+
findings.length === 1 ? "" : "s"
|
|
293
|
+
]
|
|
294
|
+
}), /* @__PURE__ */ jsx(FindingList, { findings })]
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
function FindingList({ findings }) {
|
|
298
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
299
|
+
className: "m-0 list-disc pl-4",
|
|
300
|
+
children: findings.map((f, i) => /* @__PURE__ */ jsxs("li", { children: [
|
|
301
|
+
/* @__PURE__ */ jsx("span", {
|
|
302
|
+
className: "font-mono",
|
|
303
|
+
children: f.severity
|
|
304
|
+
}),
|
|
305
|
+
": ",
|
|
306
|
+
f.code,
|
|
307
|
+
f.line ? ` line ${f.line}` : "",
|
|
308
|
+
" - ",
|
|
309
|
+
f.message
|
|
310
|
+
] }, `${f.code}-${f.line ?? 0}-${i}`))
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
function flattenImportFindings(findings) {
|
|
314
|
+
if (!findings) return [];
|
|
315
|
+
return Object.entries(findings).flatMap(([name, items]) => items.map((item) => ({
|
|
316
|
+
...item,
|
|
317
|
+
message: `${name}: ${item.message}`
|
|
318
|
+
})));
|
|
319
|
+
}
|
|
260
320
|
//#endregion
|
|
261
321
|
export { SkillsPage as component };
|
|
@@ -2,7 +2,7 @@ import { t as createServerFn } from "../server.js";
|
|
|
2
2
|
import { t as createSsrRpc } from "./createSsrRpc-ZBGxhl8t.js";
|
|
3
3
|
import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
|
|
4
4
|
//#region src/routes/skills/index.tsx
|
|
5
|
-
var $$splitComponentImporter = () => import("./skills-
|
|
5
|
+
var $$splitComponentImporter = () => import("./skills-D89ND2kR.js");
|
|
6
6
|
var fetchSkills = createServerFn({ method: "GET" }).handler(createSsrRpc("ae1d30575b229c1e2622fbaf2252800a9a7acc84afdd68cba025ca890b8d52c5"));
|
|
7
7
|
var Route = createFileRoute("/skills/")({
|
|
8
8
|
loader: () => fetchSkills(),
|
|
@@ -3547,7 +3547,7 @@ var defaultSerovalPlugins = [
|
|
|
3547
3547
|
* the dev styles URL for route-scoped CSS collection.
|
|
3548
3548
|
*/
|
|
3549
3549
|
async function getStartManifest(matchedRoutes) {
|
|
3550
|
-
const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-
|
|
3550
|
+
const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-D9FLKShQ.js");
|
|
3551
3551
|
const startManifest = tsrStartManifest();
|
|
3552
3552
|
let routes = startManifest.routes;
|
|
3553
3553
|
routes[rootRouteId];
|
|
@@ -5521,7 +5521,7 @@ var getBaseManifest = getProdBaseManifest;
|
|
|
5521
5521
|
var createEarlyHintsForRequest = createEarlyHintsCollector;
|
|
5522
5522
|
async function loadEntries() {
|
|
5523
5523
|
const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
|
|
5524
|
-
import("./assets/router-
|
|
5524
|
+
import("./assets/router-BrDascdO.js"),
|
|
5525
5525
|
import("./assets/start-CYDpZ6cb.js"),
|
|
5526
5526
|
import("./assets/empty-plugin-adapters-DKUlnwwl.js")
|
|
5527
5527
|
]);
|