vskill 0.5.140 → 0.5.142

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 (30) hide show
  1. package/agents.json +1 -1
  2. package/dist/eval/activation-tester.d.ts +5 -0
  3. package/dist/eval/activation-tester.js +25 -5
  4. package/dist/eval/activation-tester.js.map +1 -1
  5. package/dist/eval/test-case-parser.d.ts +8 -0
  6. package/dist/eval/test-case-parser.js +74 -0
  7. package/dist/eval/test-case-parser.js.map +1 -0
  8. package/dist/eval-server/api-routes.d.ts +35 -0
  9. package/dist/eval-server/api-routes.js +170 -6
  10. package/dist/eval-server/api-routes.js.map +1 -1
  11. package/dist/eval-server/skill-create-routes.d.ts +20 -0
  12. package/dist/eval-server/skill-create-routes.js +50 -2
  13. package/dist/eval-server/skill-create-routes.js.map +1 -1
  14. package/dist/eval-server/skill-dir-registry.d.ts +2 -14
  15. package/dist/eval-server/skill-dir-registry.js +18 -0
  16. package/dist/eval-server/skill-dir-registry.js.map +1 -1
  17. package/dist/eval-ui/assets/{CommandPalette-DeEo1aM2.js → CommandPalette-D42KauW9.js} +1 -1
  18. package/dist/eval-ui/assets/{CreateSkillPage-BGi_wZ1y.js → CreateSkillPage-BWoyQQ0n.js} +1 -1
  19. package/dist/eval-ui/assets/{FindSkillsPalette-BbJJSef2.js → FindSkillsPalette-BtyebylE.js} +2 -2
  20. package/dist/eval-ui/assets/{SearchPaletteCore-BK0cFJb6.js → SearchPaletteCore-9ObzwMtM.js} +1 -1
  21. package/dist/eval-ui/assets/{SkillDetailPanel-DxidXsNP.js → SkillDetailPanel-8XS9hdR_.js} +1 -1
  22. package/dist/eval-ui/assets/{UpdateDropdown-CcaDVKoz.js → UpdateDropdown-D0dHy9y-.js} +1 -1
  23. package/dist/eval-ui/assets/{index-ByzTygib.css → index-CycZyHaL.css} +1 -1
  24. package/dist/eval-ui/assets/index-DUUmBJUa.js +120 -0
  25. package/dist/eval-ui/index.html +2 -2
  26. package/dist/first-run-onboarding.d.ts +10 -0
  27. package/dist/first-run-onboarding.js +50 -3
  28. package/dist/first-run-onboarding.js.map +1 -1
  29. package/package.json +3 -2
  30. package/dist/eval-ui/assets/index-C12VKBb6.js +0 -110
@@ -46,8 +46,8 @@
46
46
  }
47
47
  })();
48
48
  </script>
49
- <script type="module" crossorigin src="/assets/index-C12VKBb6.js"></script>
50
- <link rel="stylesheet" crossorigin href="/assets/index-ByzTygib.css">
49
+ <script type="module" crossorigin src="/assets/index-DUUmBJUa.js"></script>
50
+ <link rel="stylesheet" crossorigin href="/assets/index-CycZyHaL.css">
51
51
  <link rel="stylesheet" crossorigin href="/assets/fonts-i7Lkz2zN.css">
52
52
  </head>
53
53
  <body>
@@ -15,5 +15,15 @@ export interface OnboardingIO {
15
15
  promptConfirm: (question: string) => Promise<boolean>;
16
16
  readMaskedKey: () => Promise<string>;
17
17
  env: NodeJS.ProcessEnv;
18
+ /** 0772 US-001: detect whether the `claude` CLI binary is on PATH. When
19
+ * true, the prompt is skipped silently because Claude Code provides a
20
+ * no-key path. Defaults to a real `which`/`where` call when omitted. */
21
+ detectClaudeBinary?: () => boolean;
18
22
  }
23
+ /**
24
+ * 0772 US-001 — Detect whether the `claude` CLI binary is on PATH.
25
+ * POSIX uses `which claude`; win32 uses `where claude`. Bounded 250 ms timeout.
26
+ * Never throws — any failure is reported as "not detected".
27
+ */
28
+ export declare function detectClaudeBinaryDefault(): boolean;
19
29
  export declare function firstRunOnboarding(io?: OnboardingIO): Promise<OnboardingResult>;
@@ -4,6 +4,7 @@
4
4
  //
5
5
  // Runs BEFORE the browser opens. Skips silently when:
6
6
  // - stdin is not a TTY
7
+ // - claude binary is on PATH (Claude Code provides a no-key path)
7
8
  // - any provider env var is already set
8
9
  // - any provider already has a stored key
9
10
  //
@@ -11,9 +12,36 @@
11
12
  // store. On any failure path, returns action=declined rather than throwing —
12
13
  // studio launch must not be blocked by onboarding.
13
14
  // ---------------------------------------------------------------------------
15
+ import { spawnSync } from "node:child_process";
14
16
  import { PROVIDERS, } from "./eval-server/providers.js";
15
17
  import { saveKey, listKeys, redactKey, } from "./eval-server/settings-store.js";
16
18
  import { readSecretFromStdin } from "./commands/masked-stdin.js";
19
+ // 0772 US-001: softened copy lives at the top so tests can import it.
20
+ const PROMPT_HEADER = "\nSkill Studio works with Claude Code (no key needed) or with an optional API key for OpenAI / OpenRouter / Anthropic comparisons.\n";
21
+ const DECLINE_HINT = "Skipping. Install Claude Code for a no-key path, or run `vskill keys set anthropic` later to add a key.\n";
22
+ /**
23
+ * 0772 US-001 — Detect whether the `claude` CLI binary is on PATH.
24
+ * POSIX uses `which claude`; win32 uses `where claude`. Bounded 250 ms timeout.
25
+ * Never throws — any failure is reported as "not detected".
26
+ */
27
+ export function detectClaudeBinaryDefault() {
28
+ try {
29
+ const isWin = process.platform === "win32";
30
+ const cmd = isWin ? "where" : "which";
31
+ const result = spawnSync(cmd, ["claude"], {
32
+ timeout: 250,
33
+ stdio: ["ignore", "pipe", "pipe"],
34
+ });
35
+ if (result.error)
36
+ return false;
37
+ if (typeof result.status !== "number")
38
+ return false;
39
+ return result.status === 0;
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ }
17
45
  function defaultPromptConfirm(question) {
18
46
  return new Promise((resolve) => {
19
47
  process.stdout.write(`${question} (y/N): `);
@@ -51,6 +79,7 @@ function defaultIO() {
51
79
  promptConfirm: defaultPromptConfirm,
52
80
  readMaskedKey: () => readSecretFromStdin(),
53
81
  env: process.env,
82
+ detectClaudeBinary: detectClaudeBinaryDefault,
54
83
  };
55
84
  }
56
85
  /**
@@ -69,17 +98,35 @@ function anyProviderConfigured(env) {
69
98
  }
70
99
  return false;
71
100
  }
101
+ /**
102
+ * 0772 US-001 — Safe wrapper: never propagate throws. Failure means "not
103
+ * detected" so the prompt still fires.
104
+ */
105
+ function safeDetectClaude(io) {
106
+ if (!io.detectClaudeBinary)
107
+ return false;
108
+ try {
109
+ return io.detectClaudeBinary();
110
+ }
111
+ catch {
112
+ return false;
113
+ }
114
+ }
72
115
  export async function firstRunOnboarding(io = defaultIO()) {
73
116
  // Non-TTY: never prompt (e.g. CI, piped, detached).
74
117
  if (!io.isTTY())
75
118
  return { action: "skip" };
119
+ // 0772 US-001: claude binary on PATH → silent skip (Claude Code is the
120
+ // no-key path; surfacing the prompt here would mislead the user).
121
+ if (safeDetectClaude(io))
122
+ return { action: "skip" };
76
123
  // Already configured → nothing to do.
77
124
  if (anyProviderConfigured(io.env))
78
125
  return { action: "skip" };
79
- io.stdout.write("\nNo API key detected. Skill Studio needs an Anthropic API key to run evals.\n");
80
- const accepted = await io.promptConfirm("Add one now?");
126
+ io.stdout.write(PROMPT_HEADER);
127
+ const accepted = await io.promptConfirm("Add an API key now?");
81
128
  if (!accepted) {
82
- io.stdout.write("Skipping. Run `vskill keys set anthropic` later to configure.\n");
129
+ io.stdout.write(DECLINE_HINT);
83
130
  return { action: "declined" };
84
131
  }
85
132
  io.stdout.write("Paste your Anthropic API key (input masked): ");
@@ -1 +1 @@
1
- {"version":3,"file":"first-run-onboarding.js","sourceRoot":"","sources":["../src/first-run-onboarding.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,+BAA+B;AAC/B,EAAE;AACF,sDAAsD;AACtD,yBAAyB;AACzB,0CAA0C;AAC1C,4CAA4C;AAC5C,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,mDAAmD;AACnD,8EAA8E;AAE9E,OAAO,EACL,SAAS,GAEV,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,OAAO,EACP,QAAQ,EACR,SAAS,GACV,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAkBjE,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,UAAU,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;QACpC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU;YAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,CAAC,GAAW,EAAQ,EAAE;YACnC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QACF,SAAS,OAAO;YACd,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU;gBAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACrE,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS;IAChB,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAClC,aAAa,EAAE,oBAAoB;QACnC,aAAa,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE;QAC1C,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAsB;IACnD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAmB,SAAS,EAAE;IAE9B,oDAAoD;IACpD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE3C,sCAAsC;IACtC,IAAI,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE7D,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,gFAAgF,CACjF,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,iEAAiE,CAClE,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,wEAAwE,CACzE,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wEAAwE;QACxE,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;QAChD,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,uDAAuD,CACxD,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,SAAS,CAAC,GAAG,CAAC,6CAA6C,CACrE,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"first-run-onboarding.js","sourceRoot":"","sources":["../src/first-run-onboarding.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vskill",
3
- "version": "0.5.140",
3
+ "version": "0.5.142",
4
4
  "type": "module",
5
5
  "description": "Secure multi-platform AI skill installer — scan before you install",
6
6
  "bin": {
@@ -26,7 +26,8 @@
26
26
  "lint:skills-spec": "npx tsx scripts/validate-skills-spec.ts",
27
27
  "clean": "rm -rf dist",
28
28
  "preuninstall": "node scripts/preuninstall.cjs",
29
- "prepublishOnly": "npm run build && npm run build:eval-ui"
29
+ "sync:readme-badges": "node scripts/sync-readme-badges.cjs",
30
+ "prepublishOnly": "npm run build && npm run build:eval-ui && node scripts/sync-readme-badges.cjs && git diff --exit-code README.md"
30
31
  },
31
32
  "keywords": [
32
33
  "ai",