vskill 1.0.15 → 1.0.18

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 (220) hide show
  1. package/README.md +84 -9
  2. package/agents.json +3 -1
  3. package/dist/agents/agents-registry.d.ts +69 -3
  4. package/dist/agents/agents-registry.js +203 -0
  5. package/dist/agents/agents-registry.js.map +1 -1
  6. package/dist/api/client.d.ts +85 -0
  7. package/dist/api/client.js +193 -24
  8. package/dist/api/client.js.map +1 -1
  9. package/dist/commands/add-lockfile.d.ts +6 -0
  10. package/dist/commands/add-lockfile.js +10 -0
  11. package/dist/commands/add-lockfile.js.map +1 -1
  12. package/dist/commands/add.d.ts +7 -0
  13. package/dist/commands/add.js +110 -2
  14. package/dist/commands/add.js.map +1 -1
  15. package/dist/commands/auth.d.ts +23 -0
  16. package/dist/commands/auth.js +105 -11
  17. package/dist/commands/auth.js.map +1 -1
  18. package/dist/commands/eval/serve.d.ts +2 -0
  19. package/dist/commands/eval/serve.js +126 -4
  20. package/dist/commands/eval/serve.js.map +1 -1
  21. package/dist/commands/orgs.d.ts +21 -0
  22. package/dist/commands/orgs.js +164 -0
  23. package/dist/commands/orgs.js.map +1 -0
  24. package/dist/commands/skill.js +14 -1
  25. package/dist/commands/skill.js.map +1 -1
  26. package/dist/commands/whoami.d.ts +29 -0
  27. package/dist/commands/whoami.js +119 -0
  28. package/dist/commands/whoami.js.map +1 -0
  29. package/dist/discovery/github-tree.d.ts +23 -3
  30. package/dist/discovery/github-tree.js +172 -24
  31. package/dist/discovery/github-tree.js.map +1 -1
  32. package/dist/eval/anthropic-catalog.js +32 -2
  33. package/dist/eval/anthropic-catalog.js.map +1 -1
  34. package/dist/eval/batch-judge.js +1 -0
  35. package/dist/eval/batch-judge.js.map +1 -1
  36. package/dist/eval/llm.d.ts +1 -1
  37. package/dist/eval/llm.js +104 -2
  38. package/dist/eval/llm.js.map +1 -1
  39. package/dist/eval-server/__tests__/helpers/studio-token-test-helpers.d.ts +2 -0
  40. package/dist/eval-server/__tests__/helpers/studio-token-test-helpers.js +20 -0
  41. package/dist/eval-server/__tests__/helpers/studio-token-test-helpers.js.map +1 -0
  42. package/dist/eval-server/active-tenant-routes.d.ts +15 -0
  43. package/dist/eval-server/active-tenant-routes.js +101 -0
  44. package/dist/eval-server/active-tenant-routes.js.map +1 -0
  45. package/dist/eval-server/api-routes.js +206 -6
  46. package/dist/eval-server/api-routes.js.map +1 -1
  47. package/dist/eval-server/desktop-open-routes.d.ts +8 -0
  48. package/dist/eval-server/desktop-open-routes.js +64 -0
  49. package/dist/eval-server/desktop-open-routes.js.map +1 -0
  50. package/dist/eval-server/eval-server.js +90 -6
  51. package/dist/eval-server/eval-server.js.map +1 -1
  52. package/dist/eval-server/export-skill-routes.d.ts +9 -0
  53. package/dist/eval-server/export-skill-routes.js +81 -0
  54. package/dist/eval-server/export-skill-routes.js.map +1 -0
  55. package/dist/eval-server/git-routes.d.ts +1 -0
  56. package/dist/eval-server/git-routes.js +101 -4
  57. package/dist/eval-server/git-routes.js.map +1 -1
  58. package/dist/eval-server/install-engine-routes.d.ts +3 -16
  59. package/dist/eval-server/install-engine-routes.js +9 -124
  60. package/dist/eval-server/install-engine-routes.js.map +1 -1
  61. package/dist/eval-server/install-jobs.d.ts +41 -0
  62. package/dist/eval-server/install-jobs.js +161 -0
  63. package/dist/eval-server/install-jobs.js.map +1 -0
  64. package/dist/eval-server/install-skill-routes.d.ts +74 -11
  65. package/dist/eval-server/install-skill-routes.js +506 -79
  66. package/dist/eval-server/install-skill-routes.js.map +1 -1
  67. package/dist/eval-server/install-state-routes.d.ts +25 -0
  68. package/dist/eval-server/install-state-routes.js +125 -0
  69. package/dist/eval-server/install-state-routes.js.map +1 -0
  70. package/dist/eval-server/oauth-github-routes.d.ts +2 -0
  71. package/dist/eval-server/oauth-github-routes.js +505 -0
  72. package/dist/eval-server/oauth-github-routes.js.map +1 -0
  73. package/dist/eval-server/platform-proxy.d.ts +17 -1
  74. package/dist/eval-server/platform-proxy.js +125 -13
  75. package/dist/eval-server/platform-proxy.js.map +1 -1
  76. package/dist/eval-server/plugin-cli-routes.js +9 -9
  77. package/dist/eval-server/plugin-cli-routes.js.map +1 -1
  78. package/dist/eval-server/remove-skill-routes.d.ts +18 -0
  79. package/dist/eval-server/remove-skill-routes.js +145 -0
  80. package/dist/eval-server/remove-skill-routes.js.map +1 -0
  81. package/dist/eval-server/router.d.ts +17 -3
  82. package/dist/eval-server/router.js +166 -9
  83. package/dist/eval-server/router.js.map +1 -1
  84. package/dist/eval-server/settings-store.js +1 -1
  85. package/dist/eval-server/settings-store.js.map +1 -1
  86. package/dist/eval-server/supported-agents-routes.d.ts +6 -0
  87. package/dist/eval-server/supported-agents-routes.js +41 -0
  88. package/dist/eval-server/supported-agents-routes.js.map +1 -0
  89. package/dist/eval-server/utils/spawn-env.d.ts +1 -0
  90. package/dist/eval-server/utils/spawn-env.js +47 -0
  91. package/dist/eval-server/utils/spawn-env.js.map +1 -0
  92. package/dist/eval-ui/assets/AdvancedTab-D8zbE5fH.js +1 -0
  93. package/dist/eval-ui/assets/{CreateSkillPage-BmbvQEzE.js → CreateSkillPage-DOBhKdgr.js} +5 -5
  94. package/dist/eval-ui/assets/FindSkillsPalette-CyMmNPr-.js +2 -0
  95. package/dist/eval-ui/assets/GeneralTab-DYR9NWC4.js +1 -0
  96. package/dist/eval-ui/assets/PrivacyTab-CXIqQokl.js +1 -0
  97. package/dist/eval-ui/assets/SearchPaletteCore-Dn5gQJS_.js +14 -0
  98. package/dist/eval-ui/assets/SkillDetailPanel-DTrRnyyJ.js +1 -0
  99. package/dist/eval-ui/assets/UpdateDropdown-Cvr2fe0z.js +1 -0
  100. package/dist/eval-ui/assets/UpdatesTab-DwJIUDPX.js +1 -0
  101. package/dist/eval-ui/assets/core-DZAvsxlC.js +1 -0
  102. package/dist/eval-ui/assets/event-CDYWU2X3.js +1 -0
  103. package/dist/eval-ui/assets/globals-BRZwPAPF.js +49 -0
  104. package/dist/eval-ui/assets/globals-C3oEdsJh.css +1 -0
  105. package/dist/eval-ui/assets/index-D7M0Jdss.js +1 -0
  106. package/dist/eval-ui/assets/lifecycle-DSleOV-l.js +1 -0
  107. package/dist/eval-ui/assets/lifecycle-d1Sm9Hts.css +1 -0
  108. package/dist/eval-ui/assets/main-D2shn1dH.js +87 -0
  109. package/dist/eval-ui/assets/preferences-BHZXB5dL.css +1 -0
  110. package/dist/eval-ui/assets/preferences-BKv6X7fK.js +2 -0
  111. package/dist/eval-ui/assets/useDesktopBridge-DxVWbYqK.js +2 -0
  112. package/dist/eval-ui/index.html +4 -2
  113. package/dist/eval-ui/lifecycle.html +33 -0
  114. package/dist/eval-ui/preferences.html +34 -0
  115. package/dist/index.js +47 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/installer/bundle-files.d.ts +4 -0
  118. package/dist/installer/bundle-files.js +97 -0
  119. package/dist/installer/bundle-files.js.map +1 -0
  120. package/dist/installer/canonical.d.ts +31 -6
  121. package/dist/installer/canonical.js +50 -23
  122. package/dist/installer/canonical.js.map +1 -1
  123. package/dist/installer/clipboard-export.d.ts +19 -0
  124. package/dist/installer/clipboard-export.js +88 -0
  125. package/dist/installer/clipboard-export.js.map +1 -0
  126. package/dist/installer/frontmatter.js +1 -1
  127. package/dist/installer/frontmatter.js.map +1 -1
  128. package/dist/installer/multi-install.d.ts +43 -0
  129. package/dist/installer/multi-install.js +237 -0
  130. package/dist/installer/multi-install.js.map +1 -0
  131. package/dist/installer/transformers/aider.d.ts +2 -0
  132. package/dist/installer/transformers/aider.js +32 -0
  133. package/dist/installer/transformers/aider.js.map +1 -0
  134. package/dist/installer/transformers/continue-dev.d.ts +2 -0
  135. package/dist/installer/transformers/continue-dev.js +6 -0
  136. package/dist/installer/transformers/continue-dev.js.map +1 -0
  137. package/dist/installer/transformers/cursor.d.ts +2 -0
  138. package/dist/installer/transformers/cursor.js +24 -0
  139. package/dist/installer/transformers/cursor.js.map +1 -0
  140. package/dist/installer/transformers/github-copilot.d.ts +2 -0
  141. package/dist/installer/transformers/github-copilot.js +17 -0
  142. package/dist/installer/transformers/github-copilot.js.map +1 -0
  143. package/dist/installer/transformers/index.d.ts +78 -0
  144. package/dist/installer/transformers/index.js +13 -0
  145. package/dist/installer/transformers/index.js.map +1 -0
  146. package/dist/installer/transformers/junie.d.ts +2 -0
  147. package/dist/installer/transformers/junie.js +6 -0
  148. package/dist/installer/transformers/junie.js.map +1 -0
  149. package/dist/installer/transformers/kiro.d.ts +2 -0
  150. package/dist/installer/transformers/kiro.js +6 -0
  151. package/dist/installer/transformers/kiro.js.map +1 -0
  152. package/dist/installer/transformers/trae.d.ts +2 -0
  153. package/dist/installer/transformers/trae.js +6 -0
  154. package/dist/installer/transformers/trae.js.map +1 -0
  155. package/dist/installer/transformers/windsurf.d.ts +2 -0
  156. package/dist/installer/transformers/windsurf.js +12 -0
  157. package/dist/installer/transformers/windsurf.js.map +1 -0
  158. package/dist/installer/yaml-safe-mutate.d.ts +19 -0
  159. package/dist/installer/yaml-safe-mutate.js +184 -0
  160. package/dist/installer/yaml-safe-mutate.js.map +1 -0
  161. package/dist/lib/active-tenant.d.ts +36 -0
  162. package/dist/lib/active-tenant.js +120 -0
  163. package/dist/lib/active-tenant.js.map +1 -0
  164. package/dist/lib/github-fetch.d.ts +1 -0
  165. package/dist/lib/github-fetch.js +11 -1
  166. package/dist/lib/github-fetch.js.map +1 -1
  167. package/dist/lib/keychain.d.ts +15 -2
  168. package/dist/lib/keychain.js +156 -8
  169. package/dist/lib/keychain.js.map +1 -1
  170. package/dist/lib/migration/keychain-migration.d.ts +35 -0
  171. package/dist/lib/migration/keychain-migration.js +189 -0
  172. package/dist/lib/migration/keychain-migration.js.map +1 -0
  173. package/dist/lib/tenant-resolver.d.ts +38 -0
  174. package/dist/lib/tenant-resolver.js +79 -0
  175. package/dist/lib/tenant-resolver.js.map +1 -0
  176. package/dist/lockfile/types.d.ts +8 -0
  177. package/dist/sidecar/eval-ui-manifest.json +1 -0
  178. package/dist/sidecar/sea-config.json +57 -0
  179. package/dist/sidecar/sea-prep.blob +0 -0
  180. package/dist/sidecar/server.cjs +141627 -0
  181. package/dist/sidecar/vskill-version.txt +1 -0
  182. package/dist/studio/lib/ops-log.js +140 -57
  183. package/dist/studio/lib/ops-log.js.map +1 -1
  184. package/dist/studio/lib/provenance.js +3 -2
  185. package/dist/studio/lib/provenance.js.map +1 -1
  186. package/dist/studio/lib/query.d.ts +1 -0
  187. package/dist/studio/lib/query.js +7 -0
  188. package/dist/studio/lib/query.js.map +1 -0
  189. package/dist/studio/lib/scope-transfer.d.ts +16 -0
  190. package/dist/studio/lib/scope-transfer.js +52 -25
  191. package/dist/studio/lib/scope-transfer.js.map +1 -1
  192. package/dist/studio/routes/index.js +13 -1
  193. package/dist/studio/routes/index.js.map +1 -1
  194. package/dist/studio/routes/ops.js +31 -9
  195. package/dist/studio/routes/ops.js.map +1 -1
  196. package/dist/studio/routes/promote.js +16 -11
  197. package/dist/studio/routes/promote.js.map +1 -1
  198. package/dist/studio/routes/revert.js +14 -18
  199. package/dist/studio/routes/revert.js.map +1 -1
  200. package/dist/studio/routes/test-install.js +14 -11
  201. package/dist/studio/routes/test-install.js.map +1 -1
  202. package/dist/studio-runtime/lockfile.d.ts +51 -0
  203. package/dist/studio-runtime/lockfile.js +216 -0
  204. package/dist/studio-runtime/lockfile.js.map +1 -0
  205. package/dist/updater/source-fetcher.js +2 -2
  206. package/dist/updater/source-fetcher.js.map +1 -1
  207. package/dist/utils/skill-builder-detection.d.ts +14 -1
  208. package/dist/utils/skill-builder-detection.js +20 -8
  209. package/dist/utils/skill-builder-detection.js.map +1 -1
  210. package/dist/utils/skill-creator-detection.d.ts +10 -2
  211. package/dist/utils/skill-creator-detection.js +12 -43
  212. package/dist/utils/skill-creator-detection.js.map +1 -1
  213. package/package.json +17 -1
  214. package/dist/eval-ui/assets/FindSkillsPalette-D0Zjhm31.js +0 -2
  215. package/dist/eval-ui/assets/SearchPaletteCore-EhcN1xEa.js +0 -14
  216. package/dist/eval-ui/assets/SkillDetailPanel-B5J60ffv.js +0 -1
  217. package/dist/eval-ui/assets/UpdateDropdown-Celf0_Cr.js +0 -1
  218. package/dist/eval-ui/assets/index-BV7k6fdk.js +0 -124
  219. package/dist/eval-ui/assets/index-CKLqBL52.css +0 -1
  220. package/dist/eval-ui/assets/skill-studio-logo-CRyKgIrg.png +0 -0
@@ -179,7 +179,18 @@ async function skillNewCommand(opts) {
179
179
  };
180
180
  }
181
181
  else {
182
- generated = await generateSkill({ prompt: promptText, targetAgents: targets }, { root: cwd });
182
+ // 0857: thread --provider/--model through to the generator so a non-default
183
+ // model selection (e.g. --provider stub --model opus) is honored end-to-end.
184
+ // Both are optional; generateSkill defaults to { claude-cli, sonnet }.
185
+ generated = await generateSkill({
186
+ prompt: promptText,
187
+ targetAgents: targets,
188
+ // Cast: the CLI flag is a free string; an unknown provider surfaces at
189
+ // createLlmClient() runtime with a clear "Unknown VSKILL_EVAL_PROVIDER"
190
+ // error rather than being silently ignored here.
191
+ ...(opts.provider ? { provider: opts.provider } : {}),
192
+ ...(opts.model ? { model: opts.model } : {}),
193
+ }, { root: cwd });
183
194
  }
184
195
  const result = emitSkillImpl(generated, { targetAgents: targets, engine });
185
196
  const slug = generated.name || "skill";
@@ -334,6 +345,8 @@ export function registerSkillCommand(program) {
334
345
  .option("--prompt <text>", "Description of the skill to generate")
335
346
  .option("--targets <list>", "Comma-separated agent ids, or 'all' (default: 8 universal agents)")
336
347
  .option("--engine <mode>", "Generator engine: 'universal' (default) or 'anthropic-skill-creator'")
348
+ .option("--provider <id>", "LLM provider for generation (claude-cli, anthropic, ollama, ...). Default: claude-cli")
349
+ .option("--model <id>", "Model id/alias to generate with (e.g. opus, haiku). Default: provider default")
337
350
  .action(async (opts) => {
338
351
  await skillNewCommand(opts);
339
352
  });
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type Keychain } from "../lib/keychain.js";
2
+ import { type ActiveTenantOptions } from "../lib/active-tenant.js";
3
+ import { type TenantSummary } from "../api/client.js";
4
+ export interface WhoamiCommandIO {
5
+ stdout: {
6
+ write: (s: string) => boolean;
7
+ };
8
+ stderr: {
9
+ write: (s: string) => boolean;
10
+ };
11
+ exit?: (code: number) => void;
12
+ }
13
+ export interface WhoamiCommandDeps {
14
+ io: WhoamiCommandIO;
15
+ keychain?: Keychain;
16
+ /** Override the GitHub /user fetch (tests). */
17
+ fetchGitHubUser?: (token: string) => Promise<{
18
+ login?: string;
19
+ } | null>;
20
+ /** Override the platform tenants fetch (tests). */
21
+ listTenants?: () => Promise<TenantSummary[]>;
22
+ /** Override config dir (tests). */
23
+ activeTenantOptions?: ActiveTenantOptions;
24
+ /** vskill version for User-Agent. */
25
+ version?: string;
26
+ /** Custom fetch impl (tests). */
27
+ fetchImpl?: typeof fetch;
28
+ }
29
+ export declare function whoamiCommand(argv: string[], deps: WhoamiCommandDeps): Promise<number>;
@@ -0,0 +1,119 @@
1
+ // ---------------------------------------------------------------------------
2
+ // whoami.ts — `vskill whoami` (0839 US-003 / T-009).
3
+ //
4
+ // Single-screen identity summary:
5
+ // - The signed-in GitHub login (resolved via /user with the gho_*).
6
+ // - The active token kind + 12-char prefix (vsk_/gho_).
7
+ // - The active tenant slug (or "(none)").
8
+ // - The list of tenants the user belongs to (slug + name + role).
9
+ //
10
+ // Anonymous users get "Not logged in. Run `vskill auth login`." and a
11
+ // non-zero exit so scripts can branch on it.
12
+ //
13
+ // Network calls are kept minimal — one /user (cached/short) and one
14
+ // /api/v1/account/tenants. Both are fed via dependency-injected fetchers
15
+ // so tests never hit the wire.
16
+ // ---------------------------------------------------------------------------
17
+ import { getDefaultKeychain, } from "../lib/keychain.js";
18
+ import { getActiveTenant, } from "../lib/active-tenant.js";
19
+ import { listTenants } from "../api/client.js";
20
+ function summarizeToken(token) {
21
+ const kind = token.startsWith("vsk_") ? "vsk_" : "gho_";
22
+ return {
23
+ token,
24
+ kind,
25
+ prefix: token.slice(0, 12),
26
+ };
27
+ }
28
+ async function defaultFetchGitHubUser(token, fetchImpl, version) {
29
+ // Only `gho_*` works against api.github.com; `vsk_*` is verified-skill
30
+ // territory. We still try /user with whatever we have because failures
31
+ // are non-fatal for whoami — we just won't print a login.
32
+ try {
33
+ const res = await fetchImpl("https://api.github.com/user", {
34
+ headers: {
35
+ Accept: "application/vnd.github+json",
36
+ Authorization: `Bearer ${token}`,
37
+ "User-Agent": `vskill/${version}`,
38
+ },
39
+ });
40
+ if (!res.ok)
41
+ return null;
42
+ return (await res.json());
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ }
48
+ export async function whoamiCommand(argv, deps) {
49
+ const { io } = deps;
50
+ void argv; // No flags yet; reserved for --json in a follow-up.
51
+ const keychain = deps.keychain ?? getDefaultKeychain();
52
+ const vsk = keychain.getVskillToken();
53
+ const gho = keychain.getGitHubToken();
54
+ if (!vsk && !gho) {
55
+ io.stdout.write("Not logged in. Run `vskill auth login`.\n");
56
+ if (deps.io.exit)
57
+ deps.io.exit(1);
58
+ return 1;
59
+ }
60
+ // Pick the auth token the API client would actually use (vsk_ wins).
61
+ const apiToken = summarizeToken(vsk ?? gho);
62
+ const githubToken = gho ?? null;
63
+ // Resolve identity via GitHub /user (only meaningful when we have a gho_*).
64
+ // The vsk_-only path still gets a useful whoami via the tenant list.
65
+ let login = null;
66
+ if (githubToken) {
67
+ const fetchUser = deps.fetchGitHubUser
68
+ ? deps.fetchGitHubUser
69
+ : (token) => defaultFetchGitHubUser(token, deps.fetchImpl ?? fetch, deps.version ?? "vskill");
70
+ try {
71
+ const u = await fetchUser(githubToken);
72
+ if (u && typeof u.login === "string")
73
+ login = u.login;
74
+ }
75
+ catch {
76
+ login = null;
77
+ }
78
+ }
79
+ // Tenant info — both the active slug (local) and the full list.
80
+ const active = getActiveTenant(deps.activeTenantOptions);
81
+ let tenants = [];
82
+ let tenantsErr = null;
83
+ try {
84
+ tenants = await (deps.listTenants ?? listTenants)();
85
+ }
86
+ catch (err) {
87
+ tenantsErr = err.message ?? String(err);
88
+ }
89
+ // ----- Render ------------------------------------------------------------
90
+ if (login) {
91
+ io.stdout.write(`Logged in as @${login}\n`);
92
+ }
93
+ else {
94
+ io.stdout.write(`Logged in (no GitHub /user response)\n`);
95
+ }
96
+ io.stdout.write(`Token: ${apiToken.kind}* (${apiToken.prefix}…)\n`);
97
+ if (vsk && gho) {
98
+ // Both stored — useful diagnostic.
99
+ io.stdout.write(` GitHub token: gho_* (${gho.slice(0, 12)}…)\n`);
100
+ }
101
+ io.stdout.write(`Active tenant: ${active ?? "(none)"}\n`);
102
+ if (tenantsErr) {
103
+ io.stdout.write(`Tenants: (failed to fetch — ${tenantsErr})\n`);
104
+ }
105
+ else if (tenants.length === 0) {
106
+ io.stdout.write(`Tenants: (none)\n`);
107
+ }
108
+ else {
109
+ io.stdout.write(`Tenants:\n`);
110
+ for (const t of tenants) {
111
+ const marker = t.slug === active ? "*" : " ";
112
+ io.stdout.write(` ${marker} ${t.slug} — ${t.name} (${t.role})\n`);
113
+ }
114
+ }
115
+ if (deps.io.exit)
116
+ deps.io.exit(0);
117
+ return 0;
118
+ }
119
+ //# sourceMappingURL=whoami.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,32 @@ export declare function _resetRateLimitWarned(): void;
5
5
  * Only prints once per CLI invocation to avoid noise.
6
6
  */
7
7
  export declare function warnRateLimitOnce(res: Response): void;
8
+ export type GitHubDiscoveryFailureCode = "unauthorized" | "missing" | "rate_limited" | "transient";
9
+ export interface GitHubDiscoveryFailure {
10
+ code: GitHubDiscoveryFailureCode;
11
+ status?: number;
12
+ message: string;
13
+ }
14
+ export interface GitHubDiscoveryOptions {
15
+ /** Explicit GitHub token for tests/sandbox flows. Omit to use the CLI keychain. */
16
+ token?: string | null;
17
+ /** Fetch implementation for tests. Defaults to the shared GitHub fetch helper. */
18
+ fetchImpl?: typeof fetch;
19
+ }
20
+ export interface GitHubDiscoveryResult {
21
+ skills: DiscoveredSkill[];
22
+ error?: GitHubDiscoveryFailure;
23
+ }
24
+ export declare function classifyGitHubFailure(res: Pick<Response, "status" | "headers">): GitHubDiscoveryFailure;
8
25
  /** @internal Reset cache — for testing only */
9
26
  export declare function _resetBranchCache(): void;
10
- export declare function getDefaultBranch(owner: string, repo: string): Promise<string>;
27
+ export declare function getDefaultBranch(owner: string, repo: string, options?: GitHubDiscoveryOptions): Promise<string>;
28
+ export declare function getBranchHeadSha(owner: string, repo: string, branch: string, options?: GitHubDiscoveryOptions): Promise<string | null>;
11
29
  /**
12
30
  * Check whether a GitHub repo exists. Returns false only on 404.
13
31
  * Fails open on network errors or rate limits (returns true).
14
32
  */
15
- export declare function checkRepoExists(owner: string, repo: string): Promise<boolean>;
33
+ export declare function checkRepoExists(owner: string, repo: string, options?: GitHubDiscoveryOptions): Promise<boolean>;
16
34
  export interface DiscoveredSkill {
17
35
  name: string;
18
36
  path: string;
@@ -29,6 +47,7 @@ export interface DiscoveredSkill {
29
47
  * Returns undefined if no content line is found.
30
48
  */
31
49
  export declare function extractDescription(content: string): string | undefined;
50
+ export declare function fetchGitHubFileText(owner: string, repo: string, branch: string, path: string, options?: GitHubDiscoveryOptions): Promise<string | null>;
32
51
  /**
33
52
  * Discover all SKILL.md files in a GitHub repo using the Trees API.
34
53
  *
@@ -42,4 +61,5 @@ export declare function extractDescription(content: string): string | undefined;
42
61
  *
43
62
  * Returns empty array on any API error (caller falls back to single-skill fetch).
44
63
  */
45
- export declare function discoverSkills(owner: string, repo: string): Promise<DiscoveredSkill[]>;
64
+ export declare function discoverSkills(owner: string, repo: string, options?: GitHubDiscoveryOptions): Promise<DiscoveredSkill[]>;
65
+ export declare function discoverSkillsDetailed(owner: string, repo: string, options?: GitHubDiscoveryOptions): Promise<GitHubDiscoveryResult>;
@@ -2,6 +2,7 @@
2
2
  // GitHub Trees API skill discovery
3
3
  // ---------------------------------------------------------------------------
4
4
  import { yellow } from "../utils/output.js";
5
+ import { createGitHubFetch, githubFetch } from "../lib/github-fetch.js";
5
6
  // ---- Rate-limit warning (deduplicated per CLI invocation) -----------------
6
7
  let rateLimitWarned = false;
7
8
  /** @internal Reset flag — for testing only */
@@ -22,6 +23,89 @@ export function warnRateLimitOnce(res) {
22
23
  rateLimitWarned = true;
23
24
  console.error(yellow("GitHub API rate limit reached. Set GITHUB_TOKEN for higher limits."));
24
25
  }
26
+ function hasOwn(obj, key) {
27
+ return Object.prototype.hasOwnProperty.call(obj, key);
28
+ }
29
+ function hasExplicitToken(options) {
30
+ return !!options && hasOwn(options, "token") && !!options.token;
31
+ }
32
+ function githubApiHeaders(token) {
33
+ const headers = {
34
+ Accept: "application/vnd.github.v3+json",
35
+ };
36
+ if (token)
37
+ headers.Authorization = `Bearer ${token}`;
38
+ return headers;
39
+ }
40
+ function mergeHeaders(base, init) {
41
+ const headers = { ...base };
42
+ if (!init)
43
+ return headers;
44
+ if (init instanceof Headers) {
45
+ init.forEach((value, key) => {
46
+ headers[key] = value;
47
+ });
48
+ return headers;
49
+ }
50
+ if (Array.isArray(init)) {
51
+ for (const [key, value] of init)
52
+ headers[key] = value;
53
+ return headers;
54
+ }
55
+ return { ...headers, ...init };
56
+ }
57
+ function branchCacheKey(owner, repo, options) {
58
+ return `${owner}/${repo}:${hasExplicitToken(options) ? "explicit-auth" : "default-auth"}`;
59
+ }
60
+ function requestGitHub(url, init = {}, options) {
61
+ const headers = mergeHeaders(githubApiHeaders(options?.token), init.headers);
62
+ const requestInit = { ...init, headers };
63
+ if (options?.fetchImpl)
64
+ return options.fetchImpl(url, requestInit);
65
+ if (options && hasOwn(options, "token")) {
66
+ return createGitHubFetch({
67
+ tokenProvider: () => options.token || null,
68
+ })(url, requestInit);
69
+ }
70
+ return githubFetch(url, requestInit);
71
+ }
72
+ export function classifyGitHubFailure(res) {
73
+ const status = res.status;
74
+ const rateRemaining = res.headers?.get("x-ratelimit-remaining");
75
+ if (status === 401 || (status === 403 && rateRemaining !== "0")) {
76
+ return {
77
+ code: "unauthorized",
78
+ status,
79
+ message: "GitHub authentication failed or the token lacks access to this repository.",
80
+ };
81
+ }
82
+ if (status === 403 && rateRemaining === "0") {
83
+ return {
84
+ code: "rate_limited",
85
+ status,
86
+ message: "GitHub API rate limit exceeded.",
87
+ };
88
+ }
89
+ if (status === 404) {
90
+ return {
91
+ code: "missing",
92
+ status,
93
+ message: "GitHub repository, branch, or skill path was not found.",
94
+ };
95
+ }
96
+ if (status === 429 || status >= 500) {
97
+ return {
98
+ code: "transient",
99
+ status,
100
+ message: `GitHub returned a transient HTTP ${status} response.`,
101
+ };
102
+ }
103
+ return {
104
+ code: "transient",
105
+ status,
106
+ message: `GitHub returned HTTP ${status}.`,
107
+ };
108
+ }
25
109
  // ---- Branch cache ---------------------------------------------------------
26
110
  /**
27
111
  * Fetch the default branch for a GitHub repo. Falls back to "main" on error.
@@ -32,16 +116,14 @@ const branchCache = new Map();
32
116
  export function _resetBranchCache() {
33
117
  branchCache.clear();
34
118
  }
35
- export async function getDefaultBranch(owner, repo) {
36
- const key = `${owner}/${repo}`;
119
+ export async function getDefaultBranch(owner, repo, options) {
120
+ const key = branchCacheKey(owner, repo, options);
37
121
  const cached = branchCache.get(key);
38
122
  if (cached)
39
123
  return cached;
40
124
  let branch = "main";
41
125
  try {
42
- const res = await fetch(`https://api.github.com/repos/${owner}/${repo}`, {
43
- headers: { Accept: "application/vnd.github.v3+json" },
44
- });
126
+ const res = await requestGitHub(`https://api.github.com/repos/${owner}/${repo}`, {}, options);
45
127
  if (res.ok) {
46
128
  const data = (await res.json());
47
129
  branch = data.default_branch || "main";
@@ -53,15 +135,25 @@ export async function getDefaultBranch(owner, repo) {
53
135
  branchCache.set(key, branch);
54
136
  return branch;
55
137
  }
138
+ export async function getBranchHeadSha(owner, repo, branch, options) {
139
+ try {
140
+ const res = await requestGitHub(`https://api.github.com/repos/${owner}/${repo}/commits/${encodeURIComponent(branch)}`, {}, options);
141
+ if (!res.ok)
142
+ return null;
143
+ const data = (await res.json());
144
+ return typeof data.sha === "string" && data.sha ? data.sha : null;
145
+ }
146
+ catch {
147
+ return null;
148
+ }
149
+ }
56
150
  /**
57
151
  * Check whether a GitHub repo exists. Returns false only on 404.
58
152
  * Fails open on network errors or rate limits (returns true).
59
153
  */
60
- export async function checkRepoExists(owner, repo) {
154
+ export async function checkRepoExists(owner, repo, options) {
61
155
  try {
62
- const res = await fetch(`https://api.github.com/repos/${owner}/${repo}`, {
63
- headers: { Accept: "application/vnd.github.v3+json" },
64
- });
156
+ const res = await requestGitHub(`https://api.github.com/repos/${owner}/${repo}`, {}, options);
65
157
  if (res.status === 404)
66
158
  return false;
67
159
  return true;
@@ -107,6 +199,43 @@ export function extractDescription(content) {
107
199
  }
108
200
  return undefined;
109
201
  }
202
+ function encodeRepoPath(path) {
203
+ return path
204
+ .replace(/^\/+/, "")
205
+ .split("/")
206
+ .map((segment) => encodeURIComponent(segment))
207
+ .join("/");
208
+ }
209
+ export async function fetchGitHubFileText(owner, repo, branch, path, options) {
210
+ try {
211
+ const url = `https://api.github.com/repos/${owner}/${repo}/contents/${encodeRepoPath(path)}?ref=${encodeURIComponent(branch)}`;
212
+ const res = await requestGitHub(url, {
213
+ signal: AbortSignal.timeout(10000),
214
+ headers: { Accept: "application/vnd.github+json" },
215
+ }, options);
216
+ if (!res.ok)
217
+ return null;
218
+ const data = (await res.json());
219
+ if (Array.isArray(data))
220
+ return null;
221
+ if (data.encoding === "base64" && typeof data.content === "string") {
222
+ return Buffer.from(data.content.replace(/\s/g, ""), "base64").toString("utf8");
223
+ }
224
+ if (typeof data.content === "string")
225
+ return data.content;
226
+ if (data.download_url) {
227
+ const rawRes = await requestGitHub(data.download_url, {
228
+ signal: AbortSignal.timeout(10000),
229
+ }, options);
230
+ if (rawRes.ok)
231
+ return await rawRes.text();
232
+ }
233
+ }
234
+ catch {
235
+ // File not found, timeout, or malformed GitHub payload.
236
+ }
237
+ return null;
238
+ }
110
239
  /**
111
240
  * Discover all SKILL.md files in a GitHub repo using the Trees API.
112
241
  *
@@ -120,25 +249,33 @@ export function extractDescription(content) {
120
249
  *
121
250
  * Returns empty array on any API error (caller falls back to single-skill fetch).
122
251
  */
123
- export async function discoverSkills(owner, repo) {
124
- const branch = await getDefaultBranch(owner, repo);
252
+ export async function discoverSkills(owner, repo, options) {
253
+ const result = await discoverSkillsDetailed(owner, repo, options);
254
+ return result.skills;
255
+ }
256
+ export async function discoverSkillsDetailed(owner, repo, options) {
257
+ const branch = await getDefaultBranch(owner, repo, options);
125
258
  const url = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}?recursive=1`;
126
259
  let tree;
127
260
  try {
128
- const res = await fetch(url, {
129
- headers: { Accept: "application/vnd.github.v3+json" },
130
- });
261
+ const res = await requestGitHub(url, {}, options);
131
262
  if (!res.ok) {
132
263
  warnRateLimitOnce(res);
133
- return [];
264
+ return { skills: [], error: classifyGitHubFailure(res) };
134
265
  }
135
266
  const data = (await res.json());
136
267
  if (!Array.isArray(data?.tree))
137
- return [];
268
+ return { skills: [] };
138
269
  tree = data.tree;
139
270
  }
140
271
  catch {
141
- return [];
272
+ return {
273
+ skills: [],
274
+ error: {
275
+ code: "transient",
276
+ message: "Failed to connect to GitHub.",
277
+ },
278
+ };
142
279
  }
143
280
  const skills = [];
144
281
  // Collect agents/*.md paths per skill for a second pass
@@ -219,19 +356,30 @@ export async function discoverSkills(owner, repo) {
219
356
  // Fetch descriptions in parallel with a 3s timeout per skill
220
357
  await Promise.allSettled(skills.map(async (skill) => {
221
358
  try {
222
- const controller = new AbortController();
223
- const timer = setTimeout(() => controller.abort(), 3000);
224
- const res = await fetch(skill.rawUrl, { signal: controller.signal });
225
- clearTimeout(timer);
226
- if (!res.ok)
359
+ let content = null;
360
+ if (hasExplicitToken(options)) {
361
+ content = await fetchGitHubFileText(owner, repo, branch, skill.path, options);
362
+ }
363
+ else {
364
+ const controller = new AbortController();
365
+ const timer = setTimeout(() => controller.abort(), 3000);
366
+ try {
367
+ const res = await requestGitHub(skill.rawUrl, { signal: controller.signal }, options);
368
+ if (res.ok)
369
+ content = await res.text();
370
+ }
371
+ finally {
372
+ clearTimeout(timer);
373
+ }
374
+ }
375
+ if (!content)
227
376
  return;
228
- const content = await res.text();
229
377
  skill.description = extractDescription(content);
230
378
  }
231
379
  catch {
232
380
  // Timeout or network error — leave description undefined
233
381
  }
234
382
  }));
235
- return skills;
383
+ return { skills };
236
384
  }
237
385
  //# sourceMappingURL=github-tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-tree.js","sourceRoot":"","sources":["../../src/discovery/github-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-tree.js","sourceRoot":"","sources":["../../src/discovery/github-tree.ts"],"names":[],"mappings":"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"}