vibes-diy 14.3.59 → 14.3.65

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.
@@ -2,20 +2,6 @@ import { isCmdProgress, sendMsg, sendProgress, type CmdProgress, type CmdTSMsg,
2
2
  export type { CmdTSMsg, WrapCmdTSMsg, CmdProgress };
3
3
  export { isCmdProgress, sendMsg, sendProgress };
4
4
  export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
5
- type: "core-cli.device-id-register";
6
- commonName: string;
7
- organization: string;
8
- locality: string;
9
- state: string;
10
- country: string;
11
- caUrl: string;
12
- port: string;
13
- timeout: string;
14
- forceRenew: boolean;
15
- }, {
16
- type: "core-cli.res-device-id-register";
17
- output: string;
18
- }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
19
5
  type: "vibes-diy.cli.variety";
20
6
  }, {
21
7
  type: "vibes-diy.cli.res-variety-list";
@@ -425,9 +411,6 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
425
411
  email: string;
426
412
  updatedAt: string;
427
413
  verified?: boolean | undefined;
428
- } | {
429
- type: "onboarding";
430
- completedAt: string;
431
414
  } | {
432
415
  type: "geoCountry";
433
416
  country: string;
@@ -438,6 +421,9 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
438
421
  [x: string]: string;
439
422
  };
440
423
  updatedAt: string;
424
+ } | {
425
+ type: "onboarding";
426
+ completedAt: string;
441
427
  } | {
442
428
  type: "kyc";
443
429
  cardAt?: string | undefined;
@@ -985,6 +971,20 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
985
971
  type: "vibes-diy.cli.res-retention-reset";
986
972
  userId: string;
987
973
  cleared: string[];
974
+ }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
975
+ type: "core-cli.device-id-register";
976
+ commonName: string;
977
+ organization: string;
978
+ locality: string;
979
+ state: string;
980
+ country: string;
981
+ caUrl: string;
982
+ port: string;
983
+ timeout: string;
984
+ forceRenew: boolean;
985
+ }, {
986
+ type: "core-cli.res-device-id-register";
987
+ output: string;
988
988
  }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
989
989
  type: "vibes-diy.cli.db.list";
990
990
  apiUrl: string;
@@ -23,6 +23,7 @@ export declare const ReqSkills: import("arktype/internal/variants/object.ts").Ob
23
23
  }, {}>;
24
24
  export type ReqSkills = typeof ReqSkills.infer;
25
25
  export declare function isReqSkills(obj: unknown): obj is ReqSkills;
26
+ export declare function isHiddenSkill(name: string): boolean;
26
27
  export declare const skillsEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqSkills, ResSkills>;
27
28
  export declare function skillsCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
28
29
  parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
@@ -29,6 +29,9 @@ export function isReqSkills(obj) {
29
29
  return !(ReqSkills(obj) instanceof type.errors);
30
30
  }
31
31
  const SkillsRawArgs = type({ name: "string" });
32
+ export function isHiddenSkill(name) {
33
+ return name.startsWith("pouf-");
34
+ }
32
35
  export const skillsEvento = {
33
36
  hash: "vibes-diy.cli.skills",
34
37
  validate: (ctx) => {
@@ -49,7 +52,10 @@ export const skillsEvento = {
49
52
  if (rCatalog.isErr()) {
50
53
  return Result.Err(`Failed to load skills catalog: ${rCatalog.Err().message}`);
51
54
  }
52
- const skills = rCatalog.Ok().map((s) => ({ name: s.name, description: s.description }));
55
+ const skills = rCatalog
56
+ .Ok()
57
+ .filter((s) => isHiddenSkill(s.name) === false)
58
+ .map((s) => ({ name: s.name, description: s.description }));
53
59
  return sendMsg(ctx, {
54
60
  type: "vibes-diy.cli.res-skills-list",
55
61
  skills,
@@ -60,7 +66,7 @@ export const skillsEvento = {
60
66
  if (rNames.isErr()) {
61
67
  return Result.Err(`Failed to load skill catalog: ${rNames.Err().message}`);
62
68
  }
63
- if (rNames.Ok().has(name) === false) {
69
+ if (isHiddenSkill(name) || rNames.Ok().has(name) === false) {
64
70
  return Result.Err(`Unknown skill: ${name}`);
65
71
  }
66
72
  const rText = await exception2Result(() => getSkillText(name));
@@ -1 +1 @@
1
- {"version":3,"file":"skills-cmd.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/skills-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-cmd.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/skills-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,65 @@
1
+ import { AppContext, Result } from "@adviser/cement";
2
+ import { describe, expect, it } from "vitest";
3
+ import { getLlmCatalog } from "@vibes.diy/prompts";
4
+ import { createCliStream } from "../cli-kit.js";
5
+ import { isResSkillContent, isResSkillsList, skillsEvento } from "./skills-cmd.js";
6
+ function buildTrigger(name, sent) {
7
+ const cliCtx = {
8
+ sthis: { env: { get: () => undefined } },
9
+ cliStream: createCliStream(),
10
+ output: { stdout: () => undefined, stderr: () => undefined },
11
+ exitCode: 0,
12
+ };
13
+ const req = { type: "vibes-diy.cli.skills" };
14
+ return {
15
+ id: "trigger-1",
16
+ ctx: new AppContext().set("cliCtx", cliCtx),
17
+ enRequest: req,
18
+ request: { type: "msg.cmd-ts", cmdTs: { raw: { name }, outputFormat: "text" }, result: req },
19
+ validated: req,
20
+ send: {
21
+ send: async (_trigger, data) => {
22
+ sent.push(data.result);
23
+ return Result.Ok(undefined);
24
+ },
25
+ },
26
+ };
27
+ }
28
+ describe("skills — pouf block skills stay hidden until Phase 5", () => {
29
+ it("the catalog really carries pouf-* entries (so the hide is load-bearing)", async () => {
30
+ const catalog = await getLlmCatalog();
31
+ expect(catalog.some((c) => c.name.startsWith("pouf-"))).toBe(true);
32
+ });
33
+ it("lists every non-pouf skill and no pouf-* row", async () => {
34
+ const sent = [];
35
+ const r = await skillsEvento.handle(buildTrigger("", sent));
36
+ expect(r.isOk()).toBe(true);
37
+ const list = sent.find(isResSkillsList);
38
+ if (list === undefined)
39
+ throw new Error("no skills list sent");
40
+ const names = list.skills.map((s) => s.name);
41
+ expect(names.filter((n) => n.startsWith("pouf-"))).toEqual([]);
42
+ const catalog = await getLlmCatalog();
43
+ expect(names).toEqual(catalog.map((c) => c.name).filter((n) => !n.startsWith("pouf-")));
44
+ });
45
+ it("treats a pouf-* name as an unknown skill", async () => {
46
+ const catalog = await getLlmCatalog();
47
+ const pouf = catalog.find((c) => c.name.startsWith("pouf-"));
48
+ if (pouf === undefined)
49
+ throw new Error("no pouf skill in catalog");
50
+ const sent = [];
51
+ const r = await skillsEvento.handle(buildTrigger(pouf.name, sent));
52
+ expect(r.isErr()).toBe(true);
53
+ expect(r.Err().message).toContain(`Unknown skill: ${pouf.name}`);
54
+ expect(sent.some(isResSkillContent)).toBe(false);
55
+ });
56
+ it("still shows a non-pouf skill by name", async () => {
57
+ const sent = [];
58
+ const r = await skillsEvento.handle(buildTrigger("fireproof", sent));
59
+ expect(r.isOk()).toBe(true);
60
+ const content = sent.find(isResSkillContent);
61
+ expect(content?.name).toBe("fireproof");
62
+ expect(content?.content.length ?? 0).toBeGreaterThan(0);
63
+ });
64
+ });
65
+ //# sourceMappingURL=skills-cmd.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-cmd.test.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/skills-cmd.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibes-diy",
3
- "version": "14.3.59",
3
+ "version": "14.3.65",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "description": "Command-line tool for vibes.diy — generate, edit, pull, push, and publish AI-built apps",
@@ -30,13 +30,13 @@
30
30
  "dependencies": {
31
31
  "@adviser/cement": "~0.5.34",
32
32
  "@modelcontextprotocol/sdk": "~1.31.0",
33
- "@vibes.diy/api-impl": "14.3.59",
34
- "@vibes.diy/api-types": "14.3.59",
35
- "@vibes.diy/call-ai-v2": "14.3.59",
36
- "@vibes.diy/cmd-harness": "14.3.59",
37
- "@vibes.diy/cmd-tools": "14.3.59",
38
- "@vibes.diy/identity": "14.3.59",
39
- "@vibes.diy/prompts": "14.3.59",
33
+ "@vibes.diy/api-impl": "14.3.65",
34
+ "@vibes.diy/api-types": "14.3.65",
35
+ "@vibes.diy/call-ai-v2": "14.3.65",
36
+ "@vibes.diy/cmd-harness": "14.3.65",
37
+ "@vibes.diy/cmd-tools": "14.3.65",
38
+ "@vibes.diy/identity": "14.3.65",
39
+ "@vibes.diy/prompts": "14.3.65",
40
40
  "arktype": "~2.2.6",
41
41
  "charwise": "~3.0.1",
42
42
  "cmd-ts": "~0.15.0",