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.
Files changed (37) hide show
  1. package/dist/cli.js +80 -17
  2. package/dist/cli.js.map +1 -1
  3. package/dist/daemon.js +143 -23
  4. package/dist/daemon.js.map +1 -1
  5. package/dist/web/client/assets/{TemplatesTabs-Da7mg9FI.js → TemplatesTabs-UM04RMO9.js} +1 -1
  6. package/dist/web/client/assets/{_id-LT6Ejjr0.js → _id-BNJapCT4.js} +1 -1
  7. package/dist/web/client/assets/{_id-_6jIt0_-.js → _id-CjGoV8Mr.js} +1 -1
  8. package/dist/web/client/assets/{_id-BdKmo0gb.js → _id-DehuCHUw.js} +1 -1
  9. package/dist/web/client/assets/{_id-MR2XjWh0.js → _id-Dz9fjcCM.js} +1 -1
  10. package/dist/web/client/assets/{agents-0arKbVYG.js → agents-M6omAXcZ.js} +1 -1
  11. package/dist/web/client/assets/{config-BSAVT-17.js → config-DIuEc5bm.js} +1 -1
  12. package/dist/web/client/assets/{groups-BqTkhHes.js → groups-DpE2d2zZ.js} +1 -1
  13. package/dist/web/client/assets/{inbox-ozoCXzr5.js → inbox-BPnLsRNf.js} +1 -1
  14. package/dist/web/client/assets/{index-iayCEuU2.js → index-MAJuXnie.js} +2 -2
  15. package/dist/web/client/assets/{login-D8lNr2SX.js → login-CawJX16E.js} +1 -1
  16. package/dist/web/client/assets/{mcp-BLnngDsj.js → mcp-DIrh9-v_.js} +1 -1
  17. package/dist/web/client/assets/{memory-D1GQjEvN.js → memory-BpHbdKsd.js} +1 -1
  18. package/dist/web/client/assets/{profile-groups-C2yJPTaE.js → profile-groups-ByoKak0c.js} +1 -1
  19. package/dist/web/client/assets/{profiles-BV7AAZjj.js → profiles-BEjv8LGo.js} +1 -1
  20. package/dist/web/client/assets/{routes-DSHQLA7K.js → routes-D2COHy7v.js} +1 -1
  21. package/dist/web/client/assets/{services-BbCJe1Du.js → services-D212jSK_.js} +1 -1
  22. package/dist/web/client/assets/skills-Da0MURjY.js +1 -0
  23. package/dist/web/client/assets/styles-BgE5bCHA.css +2 -0
  24. package/dist/web/client/assets/{telegram-gE4j8gte.js → telegram-Czh2MdVm.js} +1 -1
  25. package/dist/web/client/assets/{tokens-D2_O9ARe.js → tokens-E_JvO5JN.js} +1 -1
  26. package/dist/web/client/assets/{triggers-WljnfEfJ.js → triggers-BBRZQOm7.js} +1 -1
  27. package/dist/web/server/assets/{_id-D0ytyXGY.js → _id-BdRiQb2H.js} +42 -5
  28. package/dist/web/server/assets/{_id-81NrHA5d.js → _id-DUIrFV3G.js} +1 -1
  29. package/dist/web/server/assets/{_tanstack-start-manifest_v-DBlFH2gg.js → _tanstack-start-manifest_v-D9FLKShQ.js} +23 -23
  30. package/dist/web/server/assets/{router-BpBZgRwn.js → router-BrDascdO.js} +3 -3
  31. package/dist/web/server/assets/{skills-dLyBZb3B.js → skills-D89ND2kR.js} +67 -7
  32. package/dist/web/server/assets/{skills-CpsyR_WA.js → skills-l2cyQ3zS.js} +1 -1
  33. package/dist/web/server/server.js +2 -2
  34. package/dist/worker.js.map +1 -1
  35. package/package.json +3 -3
  36. package/dist/web/client/assets/skills-C6czKR5I.js +0 -1
  37. package/dist/web/client/assets/styles-C06axZZk.css +0 -2
package/dist/cli.js CHANGED
@@ -6,7 +6,7 @@ import { defineCommand as defineCommand23, runCommand, showUsage } from "citty";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "bazilion",
9
- version: "0.7.0",
9
+ version: "0.8.0",
10
10
  description: "Multi-agent runtime CLI \u2014 spawn LLM agents, manage profiles/groups/skills, and run the local daemon.",
11
11
  license: "MIT",
12
12
  repository: {
@@ -736,15 +736,38 @@ var skillAddCmd = defineCommand({
736
736
  meta: { name: "add", description: "Attach a skill to an agent" },
737
737
  args: {
738
738
  agent: { type: "positional", required: true },
739
- skill: { type: "positional", required: true }
739
+ skill: { type: "positional", required: true },
740
+ "allow-warnings": {
741
+ type: "boolean",
742
+ description: "Attach even when the static skill scan reports findings"
743
+ }
740
744
  },
741
745
  async run({ args }) {
742
746
  const client = createClient2();
743
- const body = { skill: args.skill };
744
- await client.post(`/api/agents/${args.agent}/skills`, body);
747
+ const body = { skill: args.skill, allowFindings: args["allow-warnings"] };
748
+ try {
749
+ await client.post(`/api/agents/${args.agent}/skills`, body);
750
+ } catch (err) {
751
+ if (err instanceof ApiClientError && err.body.code === "skill_scan_blocked") {
752
+ console.error(`error: ${err.body.error}`);
753
+ printSkillFindings(err.body.findings ?? []);
754
+ console.error(" hint: inspect the skill, then rerun with --allow-warnings to confirm");
755
+ process.exitCode = 1;
756
+ return;
757
+ }
758
+ throw err;
759
+ }
745
760
  console.log(`attached skill ${args.skill} to ${args.agent}`);
746
761
  }
747
762
  });
763
+ function printSkillFindings(findings) {
764
+ if (findings.length === 0) return;
765
+ console.error("scan findings:");
766
+ for (const f of findings) {
767
+ const line = f.line ? ` line ${f.line}` : "";
768
+ console.error(` ${f.severity}: ${f.code}${line} - ${f.message}`);
769
+ }
770
+ }
748
771
  var skillRmCmd = defineCommand({
749
772
  meta: { name: "rm", description: "Detach a skill from an agent" },
750
773
  args: {
@@ -2830,6 +2853,12 @@ var serveCommand = defineCommand17({
2830
2853
  import { existsSync as existsSync6, readFileSync as readFileSync7, statSync } from "fs";
2831
2854
  import { basename as basename2, resolve as resolve2 } from "path";
2832
2855
  import { defineCommand as defineCommand18 } from "citty";
2856
+ function printFindings(findings, prefix = " ") {
2857
+ for (const f of findings) {
2858
+ const line = f.line ? ` line ${f.line}` : "";
2859
+ console.log(`${prefix}${f.severity}: ${f.code}${line} - ${f.message}`);
2860
+ }
2861
+ }
2833
2862
  var listCmd10 = defineCommand18({
2834
2863
  meta: { name: "list", description: "List installed skills (or those attached to an agent)" },
2835
2864
  args: {
@@ -2860,6 +2889,15 @@ var listCmd10 = defineCommand18({
2860
2889
  s.parseError ? `(parse error: ${s.parseError})` : s.description
2861
2890
  ]);
2862
2891
  for (const line of columnize(rows)) console.log(line);
2892
+ const flagged = skills.filter((s) => s.scanFindings && s.scanFindings.length > 0);
2893
+ if (flagged.length > 0) {
2894
+ console.log("");
2895
+ console.log("scan findings:");
2896
+ for (const s of flagged) {
2897
+ console.log(`${s.name}:`);
2898
+ printFindings(s.scanFindings ?? []);
2899
+ }
2900
+ }
2863
2901
  }
2864
2902
  });
2865
2903
  var importCmd = defineCommand18({
@@ -2880,19 +2918,36 @@ var importCmd = defineCommand18({
2880
2918
  const absFrom = resolve2(args.from);
2881
2919
  const isLocalZip = args.from.toLowerCase().endsWith(".zip") && existsSync6(absFrom) && statSync(absFrom).isFile();
2882
2920
  let result;
2883
- if (isLocalZip) {
2884
- const bytes = readFileSync7(absFrom);
2885
- const file = new File([bytes], basename2(absFrom), { type: "application/zip" });
2886
- const fd = new FormData();
2887
- fd.set("file", file);
2888
- if (args.force) fd.set("force", "true");
2889
- result = await client.postMultipart("/api/skills/import", fd);
2890
- } else {
2891
- const body = {
2892
- source: args.from,
2893
- force: args.force
2894
- };
2895
- result = await client.post("/api/skills/import", body);
2921
+ try {
2922
+ if (isLocalZip) {
2923
+ const bytes = readFileSync7(absFrom);
2924
+ const file = new File([bytes], basename2(absFrom), { type: "application/zip" });
2925
+ const fd = new FormData();
2926
+ fd.set("file", file);
2927
+ if (args.force) fd.set("force", "true");
2928
+ result = await client.postMultipart("/api/skills/import", fd);
2929
+ } else {
2930
+ const body = {
2931
+ source: args.from,
2932
+ force: args.force
2933
+ };
2934
+ result = await client.post("/api/skills/import", body);
2935
+ }
2936
+ } catch (err) {
2937
+ if (err instanceof ApiClientError && err.body.code === "skill_scan_blocked") {
2938
+ console.error(`error: ${err.body.error}`);
2939
+ if (err.body.findings && err.body.findings.length > 0) {
2940
+ console.error("scan findings:");
2941
+ for (const f of err.body.findings) {
2942
+ const line = f.line ? ` line ${f.line}` : "";
2943
+ console.error(` ${f.severity}: ${f.code}${line} - ${f.message}`);
2944
+ }
2945
+ }
2946
+ console.error(" hint: inspect the skill, then rerun with --force to confirm");
2947
+ process.exitCode = 1;
2948
+ return;
2949
+ }
2950
+ throw err;
2896
2951
  }
2897
2952
  if (result.imported.length === 0 && result.skipped.length === 0) {
2898
2953
  console.log("(nothing to import)");
@@ -2904,6 +2959,14 @@ var importCmd = defineCommand18({
2904
2959
  for (const s of result.skipped) {
2905
2960
  console.log(`skipped ${s.name}: ${s.reason}`);
2906
2961
  }
2962
+ if (result.findings && Object.keys(result.findings).length > 0) {
2963
+ console.log("");
2964
+ console.log("confirmed scan findings:");
2965
+ for (const [name, findings] of Object.entries(result.findings)) {
2966
+ console.log(`${name}:`);
2967
+ printFindings(findings);
2968
+ }
2969
+ }
2907
2970
  }
2908
2971
  });
2909
2972
  var rmCmd5 = defineCommand18({