@ranimontagna/agent-toolkit 0.1.30 → 0.2.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 (61) hide show
  1. package/README.md +38 -18
  2. package/dist/src/args.js +9 -0
  3. package/dist/src/args.js.map +1 -1
  4. package/dist/src/doctor.js +2 -0
  5. package/dist/src/doctor.js.map +1 -1
  6. package/dist/src/installers/agent-browser.d.ts +1 -0
  7. package/dist/src/installers/agent-browser.js +27 -0
  8. package/dist/src/installers/agent-browser.js.map +1 -0
  9. package/dist/src/installers/agent-skills.d.ts +14 -0
  10. package/dist/src/installers/agent-skills.js +157 -0
  11. package/dist/src/installers/agent-skills.js.map +1 -0
  12. package/dist/src/installers/caveman.js +1 -1
  13. package/dist/src/installers/gsd.js +1 -1
  14. package/dist/src/lock-update.js +10 -25
  15. package/dist/src/lock-update.js.map +1 -1
  16. package/dist/src/main.js +14 -6
  17. package/dist/src/main.js.map +1 -1
  18. package/dist/src/manifest.d.ts +5 -1
  19. package/dist/src/manifest.js +405 -17
  20. package/dist/src/manifest.js.map +1 -1
  21. package/dist/src/menu.js +6 -0
  22. package/dist/src/menu.js.map +1 -1
  23. package/dist/src/provenance.d.ts +2 -0
  24. package/dist/src/provenance.js +35 -14
  25. package/dist/src/provenance.js.map +1 -1
  26. package/dist/src/release.d.ts +12 -1
  27. package/dist/src/release.js +126 -10
  28. package/dist/src/release.js.map +1 -1
  29. package/dist/src/runtimes.d.ts +7 -0
  30. package/dist/src/runtimes.js +41 -20
  31. package/dist/src/runtimes.js.map +1 -1
  32. package/dist/src/skill-targets.d.ts +9 -0
  33. package/dist/src/skill-targets.js +45 -0
  34. package/dist/src/skill-targets.js.map +1 -0
  35. package/dist/src/skills.js +11 -45
  36. package/dist/src/skills.js.map +1 -1
  37. package/dist/src/state.d.ts +5 -20
  38. package/dist/src/state.js +7 -54
  39. package/dist/src/state.js.map +1 -1
  40. package/dist/src/status.js +30 -3
  41. package/dist/src/status.js.map +1 -1
  42. package/dist/src/system.d.ts +6 -2
  43. package/dist/src/system.js +207 -36
  44. package/dist/src/system.js.map +1 -1
  45. package/dist/src/tool-lock.d.ts +24 -51
  46. package/dist/src/tool-lock.js +75 -32
  47. package/dist/src/tool-lock.js.map +1 -1
  48. package/dist/src/usage.js +3 -0
  49. package/dist/src/usage.js.map +1 -1
  50. package/package.json +5 -5
  51. package/setup-agent-toolkit.sh +7 -1
  52. package/tools.lock.json +104 -49
  53. package/dist/src/installers/frontend-skills.d.ts +0 -8
  54. package/dist/src/installers/frontend-skills.js +0 -93
  55. package/dist/src/installers/frontend-skills.js.map +0 -1
  56. package/dist/src/installers/improve.d.ts +0 -1
  57. package/dist/src/installers/improve.js +0 -80
  58. package/dist/src/installers/improve.js.map +0 -1
  59. package/dist/src/installers/planning-skills.d.ts +0 -1
  60. package/dist/src/installers/planning-skills.js +0 -6
  61. package/dist/src/installers/planning-skills.js.map +0 -1
@@ -57,21 +57,39 @@ function checkToolsLockOverride() {
57
57
  "which bypasses every checksum and ref pinned by this package. " +
58
58
  "Unset it or pass --allow-mutable-sources.");
59
59
  }
60
- function checkAntigravitySource() {
60
+ export function normalizeAntigravityInstallUrl(input) {
61
+ let url;
62
+ try {
63
+ if (!/^https:\/\//i.test(input))
64
+ throw new TypeError("Not an HTTPS URL");
65
+ url = new URL(input);
66
+ }
67
+ catch {
68
+ die(`ANTIGRAVITY_INSTALL_SCRIPT must be an HTTPS URL, got: ${input}. ` +
69
+ "The script is piped to bash, so plain HTTP is never allowed.");
70
+ }
71
+ if (url.protocol !== "https:" ||
72
+ !url.hostname ||
73
+ url.username !== "" ||
74
+ url.password !== "") {
75
+ die(`ANTIGRAVITY_INSTALL_SCRIPT must be an HTTPS URL, got: ${input}. ` +
76
+ "The script is piped to bash, so plain HTTP is never allowed.");
77
+ }
78
+ return url.toString();
79
+ }
80
+ export function checkAntigravitySource() {
61
81
  const script = process.env.ANTIGRAVITY_INSTALL_SCRIPT;
62
82
  if (!script)
63
83
  return;
64
- if (!script.startsWith("https:")) {
65
- die(`ANTIGRAVITY_INSTALL_SCRIPT must be an HTTPS URL, got: ${script}. ` +
66
- "The script is piped to bash, so plain HTTP is never allowed.");
67
- }
68
- if (script === DEFAULT_ANTIGRAVITY_INSTALL_SCRIPT)
84
+ const normalizedScript = normalizeAntigravityInstallUrl(script);
85
+ const normalizedDefault = normalizeAntigravityInstallUrl(DEFAULT_ANTIGRAVITY_INSTALL_SCRIPT);
86
+ if (normalizedScript === normalizedDefault)
69
87
  return;
70
88
  if (state.allowMutableSources) {
71
- warn(`Antigravity install script allowed explicitly: ${script}`);
89
+ warn(`Antigravity install script allowed explicitly: ${normalizedScript}`);
72
90
  return;
73
91
  }
74
- die(`ANTIGRAVITY_INSTALL_SCRIPT overrides the official installer URL: ${script}. ` +
92
+ die(`ANTIGRAVITY_INSTALL_SCRIPT overrides the official installer URL: ${normalizedScript}. ` +
75
93
  "The script is piped to bash. Unset it or pass --allow-mutable-sources.");
76
94
  }
77
95
  export function checkExternalToolProvenance() {
@@ -94,12 +112,15 @@ export function checkExternalToolProvenance() {
94
112
  checkIdentity("GSD", state.gsdPackage, lockSpec);
95
113
  checkSource("GSD", state.gsdPackage);
96
114
  }
97
- if (state.tools["frontend-skills"] ||
98
- state.tools["planning-skills"] ||
99
- state.tools.improve) {
100
- const lockSpec = formatNpmPackageSpec(lock.tools.frontendSkills.skillsCli.package, lock.tools.frontendSkills.skillsCli.version);
101
- checkIdentity("Agent Skills CLI", state.frontendSkillsCliPackage, lockSpec);
102
- checkSource("Agent Skills CLI", state.frontendSkillsCliPackage);
115
+ if (state.tools["agent-browser"]) {
116
+ const lockSpec = formatNpmPackageSpec(lock.tools.agentBrowser.package, lock.tools.agentBrowser.version);
117
+ checkIdentity("Agent Browser", state.agentBrowserPackage, lockSpec);
118
+ checkSource("Agent Browser", state.agentBrowserPackage);
119
+ }
120
+ if (Object.keys(state.agentSkillsCatalog.bundles).some((bundleId) => state.tools[bundleId])) {
121
+ const lockSpec = formatNpmPackageSpec(lock.tools.agentSkills.skillsCli.package, lock.tools.agentSkills.skillsCli.version);
122
+ checkIdentity("Agent Skills CLI", state.agentSkillsCliPackage, lockSpec);
123
+ checkSource("Agent Skills CLI", state.agentSkillsCliPackage);
103
124
  }
104
125
  if (state.runtimes.antigravity)
105
126
  checkAntigravitySource();
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
+ import { type RunResult } from "./system.js";
1
2
  export type ReleaseKind = "patch" | "minor" | "major";
3
+ type ReleaseRunOptions = {
4
+ cwd?: string;
5
+ capture?: boolean;
6
+ };
7
+ export type ReleaseCommandRunner = (command: string, args?: string[], options?: ReleaseRunOptions) => RunResult;
8
+ export type ReleaseExecutionContext = {
9
+ repoRoot?: string;
10
+ runner?: ReleaseCommandRunner;
11
+ };
2
12
  export declare function bumpVersion(version: string, kind: ReleaseKind): string;
3
13
  export declare function updateReadmeReleaseTag(readme: string, version: string): string;
4
- export declare function runReleaseCli(argv: string[]): void;
14
+ export declare function runReleaseCli(argv: string[], context?: ReleaseExecutionContext): void;
15
+ export {};
@@ -37,36 +37,152 @@ function readPackageJson(filePath) {
37
37
  function writeJson(filePath, value) {
38
38
  fs.writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`);
39
39
  }
40
- function runChecked(command, args) {
41
- const result = run(command, args);
40
+ function gitFailureDetail(result) {
41
+ return (result.stderr.trim() || result.error?.message || `status ${result.status}`);
42
+ }
43
+ function inspectGit(context, args) {
44
+ return context.runner("git", args, {
45
+ cwd: context.repoRoot,
46
+ capture: true,
47
+ });
48
+ }
49
+ function requireSuccessfulInspection(result, description) {
50
+ if (!result.ok) {
51
+ die(`Unable to ${description}: ${gitFailureDetail(result)}`);
52
+ }
53
+ return result;
54
+ }
55
+ function canonicalPath(value) {
56
+ try {
57
+ return fs.realpathSync.native(value);
58
+ }
59
+ catch {
60
+ return path.resolve(value);
61
+ }
62
+ }
63
+ function assertLocalReleaseState(context, tagName) {
64
+ const topLevel = requireSuccessfulInspection(inspectGit(context, ["rev-parse", "--show-toplevel"]), "inspect the repository root").stdout.trim();
65
+ if (canonicalPath(topLevel) !== canonicalPath(context.repoRoot)) {
66
+ die(`Release repository root mismatch: expected ${context.repoRoot}, found ${topLevel}.`);
67
+ }
68
+ const branch = requireSuccessfulInspection(inspectGit(context, ["branch", "--show-current"]), "inspect the active branch").stdout.trim();
69
+ if (branch !== "main") {
70
+ die(`Releases must be created from main; current branch is ${branch || "detached HEAD"}.`);
71
+ }
72
+ const status = requireSuccessfulInspection(inspectGit(context, ["status", "--porcelain=v1", "--untracked-files=all"]), "inspect repository changes").stdout;
73
+ if (status.trim()) {
74
+ die("Release requires a clean repository with no staged, unstaged or untracked changes.");
75
+ }
76
+ const localTag = inspectGit(context, [
77
+ "rev-parse",
78
+ "--verify",
79
+ "--quiet",
80
+ `refs/tags/${tagName}`,
81
+ ]);
82
+ if (localTag.ok) {
83
+ die(`Release tag ${tagName} already exists locally.`);
84
+ }
85
+ if (localTag.error || localTag.status !== 1) {
86
+ die(`Unable to inspect local tag ${tagName}: ${gitFailureDetail(localTag)}`);
87
+ }
88
+ }
89
+ function assertRemoteReleaseState(context, tagName) {
90
+ requireSuccessfulInspection(inspectGit(context, [
91
+ "fetch",
92
+ "--quiet",
93
+ "--no-tags",
94
+ "origin",
95
+ "+refs/heads/main:refs/remotes/origin/main",
96
+ ]), "fetch origin/main");
97
+ const upstream = requireSuccessfulInspection(inspectGit(context, [
98
+ "rev-parse",
99
+ "--abbrev-ref",
100
+ "--symbolic-full-name",
101
+ "@{upstream}",
102
+ ]), "inspect main's upstream").stdout.trim();
103
+ if (upstream !== "origin/main") {
104
+ die(`Release main must track origin/main; current upstream is ${upstream || "unset"}.`);
105
+ }
106
+ const divergence = requireSuccessfulInspection(inspectGit(context, [
107
+ "rev-list",
108
+ "--left-right",
109
+ "--count",
110
+ "origin/main...HEAD",
111
+ ]), "compare main with origin/main").stdout.trim();
112
+ const [behindText, aheadText, ...extra] = divergence.split(/\s+/);
113
+ const behind = Number.parseInt(behindText ?? "", 10);
114
+ const ahead = Number.parseInt(aheadText ?? "", 10);
115
+ if (extra.length > 0 ||
116
+ !/^\d+$/.test(behindText ?? "") ||
117
+ !/^\d+$/.test(aheadText ?? "") ||
118
+ !Number.isSafeInteger(behind) ||
119
+ !Number.isSafeInteger(ahead)) {
120
+ die(`Unable to compare main with origin/main: unexpected output ${JSON.stringify(divergence)}.`);
121
+ }
122
+ if (behind > 0) {
123
+ die(`Release main is behind origin/main by ${behind} commit(s).`);
124
+ }
125
+ const remoteTag = inspectGit(context, [
126
+ "ls-remote",
127
+ "--exit-code",
128
+ "--tags",
129
+ "origin",
130
+ `refs/tags/${tagName}`,
131
+ ]);
132
+ if (remoteTag.ok) {
133
+ die(`Release tag ${tagName} already exists on origin.`);
134
+ }
135
+ if (remoteTag.error || remoteTag.status !== 2) {
136
+ die(`Unable to inspect remote tag ${tagName}: ${gitFailureDetail(remoteTag)}`);
137
+ }
138
+ }
139
+ function runChecked(runner, repoRoot, command, args) {
140
+ const result = runner(command, args, { cwd: repoRoot });
42
141
  if (!result.ok) {
43
142
  throw new Error(`${command} ${args.join(" ")} failed with ${result.status}`);
44
143
  }
45
144
  }
46
- export function runReleaseCli(argv) {
145
+ export function runReleaseCli(argv, context) {
47
146
  const kind = argv[0];
48
147
  assertReleaseKind(kind);
49
148
  const push = argv.includes("--push");
50
149
  const noCheck = argv.includes("--no-check");
51
- const packagePath = path.join(REPO_ROOT, "package.json");
52
- const readmePath = path.join(REPO_ROOT, "README.md");
150
+ const repoRoot = context?.repoRoot ?? REPO_ROOT;
151
+ const runner = context?.runner ?? run;
152
+ const repositoryContext = { repoRoot, runner };
153
+ const packagePath = path.join(repoRoot, "package.json");
154
+ const readmePath = path.join(repoRoot, "README.md");
53
155
  const packageJson = readPackageJson(packagePath);
54
156
  const nextVersion = bumpVersion(packageJson.version, kind);
55
157
  const tagName = `v${nextVersion}`;
158
+ assertLocalReleaseState(repositoryContext, tagName);
159
+ if (push) {
160
+ assertRemoteReleaseState(repositoryContext, tagName);
161
+ }
56
162
  packageJson.version = nextVersion;
57
163
  writeJson(packagePath, packageJson);
58
164
  fs.writeFileSync(readmePath, updateReadmeReleaseTag(fs.readFileSync(readmePath, "utf8"), nextVersion));
59
165
  ok(`Prepared ${tagName}.`);
60
166
  if (!noCheck) {
61
167
  info("Running release gate: pnpm run check");
62
- runChecked("pnpm", ["run", "check"]);
168
+ runChecked(runner, repoRoot, "pnpm", ["run", "check"]);
63
169
  }
64
- runChecked("git", ["add", "package.json", "README.md"]);
65
- runChecked("git", ["commit", "-m", `chore: release ${nextVersion}`]);
66
- runChecked("git", ["tag", tagName]);
170
+ runChecked(runner, repoRoot, "git", ["add", "package.json", "README.md"]);
171
+ runChecked(runner, repoRoot, "git", [
172
+ "commit",
173
+ "-m",
174
+ `chore: release ${nextVersion}`,
175
+ ]);
176
+ runChecked(runner, repoRoot, "git", ["tag", tagName]);
67
177
  ok(`Created release commit and tag ${tagName}.`);
68
178
  if (push) {
69
- runChecked("git", ["push", "origin", "main", tagName]);
179
+ runChecked(runner, repoRoot, "git", [
180
+ "push",
181
+ "--atomic",
182
+ "origin",
183
+ "main",
184
+ tagName,
185
+ ]);
70
186
  ok(`Pushed main and ${tagName}.`);
71
187
  }
72
188
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/release.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/release.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,12 @@ export declare function hasSelectedCavemanRuntime(): boolean;
6
6
  export declare function selectedGsdArgs(): string[];
7
7
  export declare function hasSelectedGsdRuntime(): boolean;
8
8
  export declare function selectedSkillsAgentArgs(): string[];
9
+ type AntigravityInstallPlan = {
10
+ command: string;
11
+ args: string[];
12
+ env?: NodeJS.ProcessEnv;
13
+ };
14
+ export declare function antigravityInstallPlan(platform: NodeJS.Platform, installScript: string, baseEnv: NodeJS.ProcessEnv): AntigravityInstallPlan;
9
15
  export declare function versionOutputMatchesPin(output: string, expectedVersion: string): boolean;
10
16
  export declare function checkPrerequisites(): boolean;
17
+ export {};
@@ -1,6 +1,8 @@
1
1
  import { color, die, err, info, ok, step, warn } from "./logger.js";
2
+ import { normalizeAntigravityInstallUrl } from "./provenance.js";
2
3
  import { runtimeMeta, runtimeNames, state } from "./state.js";
3
4
  import { capture, commandExists, findCommand, requireCommand, requireNode, run, } from "./system.js";
5
+ import { agentSkillBundleIds } from "./tool-lock.js";
4
6
  export function runtimeCommand(runtime) {
5
7
  return runtimeMeta[runtime].command;
6
8
  }
@@ -69,7 +71,7 @@ function installRuntimeCli(runtime) {
69
71
  warn(`${label} does not have an npm package install path in Agent Toolkit yet.`);
70
72
  return false;
71
73
  }
72
- requireNode(18);
74
+ requireNode(24);
73
75
  requireCommand("npm");
74
76
  info(`Installing ${label} via npm package ${packageName}...`);
75
77
  const result = capture("npm", ["install", "-g", packageName]);
@@ -105,20 +107,42 @@ function installRuntimeCli(runtime) {
105
107
  function shellQuote(value) {
106
108
  return `'${value.replace(/'/g, "'\\''")}'`;
107
109
  }
110
+ const ANTIGRAVITY_POWERSHELL_PROGRAM = "& ([scriptblock]::Create((Invoke-RestMethod -Uri $env:AGENT_TOOLKIT_ANTIGRAVITY_INSTALL_URL)))";
111
+ const ANTIGRAVITY_SOURCE_ENV_KEY = "ANTIGRAVITY_INSTALL_SCRIPT";
112
+ const ANTIGRAVITY_TRANSPORT_ENV_KEY = "AGENT_TOOLKIT_ANTIGRAVITY_INSTALL_URL";
113
+ export function antigravityInstallPlan(platform, installScript, baseEnv) {
114
+ if (platform === "win32") {
115
+ const replacedKeys = new Set([
116
+ ANTIGRAVITY_SOURCE_ENV_KEY.toLowerCase(),
117
+ ANTIGRAVITY_TRANSPORT_ENV_KEY.toLowerCase(),
118
+ ]);
119
+ const childEnv = Object.fromEntries(Object.entries(baseEnv).filter(([key]) => !replacedKeys.has(key.toLowerCase())));
120
+ childEnv[ANTIGRAVITY_TRANSPORT_ENV_KEY] = installScript;
121
+ return {
122
+ command: "powershell.exe",
123
+ args: [
124
+ "-NoProfile",
125
+ "-ExecutionPolicy",
126
+ "Bypass",
127
+ "-Command",
128
+ ANTIGRAVITY_POWERSHELL_PROGRAM,
129
+ ],
130
+ env: childEnv,
131
+ };
132
+ }
133
+ return {
134
+ command: "bash",
135
+ args: ["-c", `curl -fsSL ${shellQuote(installScript)} | bash`],
136
+ };
137
+ }
108
138
  function installAntigravityCli() {
109
139
  const label = runtimeLabel("antigravity");
110
- const installScript = process.env.ANTIGRAVITY_INSTALL_SCRIPT ||
111
- "https://antigravity.google/cli/install.sh";
140
+ const installScript = normalizeAntigravityInstallUrl(process.env.ANTIGRAVITY_INSTALL_SCRIPT ||
141
+ "https://antigravity.google/cli/install.sh");
142
+ const plan = antigravityInstallPlan(process.platform, installScript, process.env);
112
143
  if (process.platform === "win32") {
113
- const installCommand = `irm ${installScript} | iex`;
114
144
  info(`Installing ${label} via official PowerShell installer...`);
115
- const result = run("powershell.exe", [
116
- "-NoProfile",
117
- "-ExecutionPolicy",
118
- "Bypass",
119
- "-Command",
120
- installCommand,
121
- ]);
145
+ const result = run(plan.command, plan.args, { env: plan.env });
122
146
  if (!result.ok) {
123
147
  err(`${label} install failed.`);
124
148
  return false;
@@ -128,10 +152,7 @@ function installAntigravityCli() {
128
152
  requireCommand("bash");
129
153
  requireCommand("curl");
130
154
  info(`Installing ${label} via official installer ${installScript}...`);
131
- const result = run("bash", [
132
- "-c",
133
- `curl -fsSL ${shellQuote(installScript)} | bash`,
134
- ]);
155
+ const result = run(plan.command, plan.args);
135
156
  if (!result.ok) {
136
157
  err(`${label} install failed.`);
137
158
  return false;
@@ -200,19 +221,19 @@ export function checkPrerequisites() {
200
221
  ok("RTK found");
201
222
  }
202
223
  if (state.tools.caveman) {
203
- requireNode(18);
224
+ requireNode(24);
204
225
  requireCommand("npx");
205
226
  ok(`node found: ${process.version}`);
206
227
  ok("npx found");
207
228
  }
208
229
  if (state.tools.gsd) {
209
- requireNode(22);
230
+ requireNode(24);
210
231
  requireCommand("npx");
211
232
  ok(`node found: ${process.version}`);
212
233
  ok("npx found");
213
234
  }
214
- if (state.tools["frontend-skills"] || state.tools.improve) {
215
- requireNode(18);
235
+ if (agentSkillBundleIds.some((bundleId) => state.tools[bundleId])) {
236
+ requireNode(24);
216
237
  requireCommand("git");
217
238
  requireCommand("npx");
218
239
  ok(`node found: ${process.version}`);
@@ -234,7 +255,7 @@ export function checkPrerequisites() {
234
255
  }
235
256
  if (state.installMissingClis &&
236
257
  runtimeNames.some((runtime) => state.runtimes[runtime] && state.cliPackages[runtime])) {
237
- requireNode(18);
258
+ requireNode(24);
238
259
  requireCommand("npm");
239
260
  ok("npm found");
240
261
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtimes.js","sourceRoot":"","sources":["../../src/runtimes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtimes.js","sourceRoot":"","sources":["../../src/runtimes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { InstallScope, RuntimeName } from "./state.js";
2
+ export type SkillTargetContext = {
3
+ scope: InstallScope;
4
+ cwd: string;
5
+ home: string;
6
+ env: NodeJS.ProcessEnv;
7
+ };
8
+ export declare function canonicalPathsEqual(left: string, right: string): boolean;
9
+ export declare function resolveSkillTargetDirs(runtime: RuntimeName, context: SkillTargetContext): string[];
@@ -0,0 +1,45 @@
1
+ import path from "node:path";
2
+ export function canonicalPathsEqual(left, right) {
3
+ return path.normalize(left) === path.normalize(right);
4
+ }
5
+ function opencodeConfigDir(context) {
6
+ if (context.env.OPENCODE_CONFIG_DIR)
7
+ return context.env.OPENCODE_CONFIG_DIR;
8
+ if (context.env.OPENCODE_CONFIG)
9
+ return path.dirname(context.env.OPENCODE_CONFIG);
10
+ if (context.env.XDG_CONFIG_HOME)
11
+ return path.join(context.env.XDG_CONFIG_HOME, "opencode");
12
+ return path.join(context.home, ".config", "opencode");
13
+ }
14
+ export function resolveSkillTargetDirs(runtime, context) {
15
+ if (context.scope === "local") {
16
+ const runtimeDir = runtime === "antigravity" ? ".agents" : `.${runtime}`;
17
+ return [path.join(context.cwd, runtimeDir, "skills")];
18
+ }
19
+ switch (runtime) {
20
+ case "claude":
21
+ return [
22
+ path.join(context.env.CLAUDE_CONFIG_DIR || path.join(context.home, ".claude"), "skills"),
23
+ ];
24
+ case "codex":
25
+ return [
26
+ path.join(context.env.CODEX_HOME || path.join(context.home, ".codex"), "skills"),
27
+ ];
28
+ case "opencode":
29
+ return [path.join(opencodeConfigDir(context), "skills")];
30
+ case "gemini":
31
+ return [
32
+ path.join(context.env.GEMINI_CONFIG_DIR || path.join(context.home, ".gemini"), "skills"),
33
+ ];
34
+ case "antigravity": {
35
+ const roots = [
36
+ context.env.ANTIGRAVITY_SKILLS_DIR ||
37
+ path.join(context.home, ".gemini", "antigravity-cli", "skills"),
38
+ context.env.ANTIGRAVITY_LEGACY_SKILLS_DIR ||
39
+ path.join(context.home, ".agents", "skills"),
40
+ ];
41
+ return roots.filter((root, index) => roots.indexOf(root) === index);
42
+ }
43
+ }
44
+ }
45
+ //# sourceMappingURL=skill-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-targets.js","sourceRoot":"","sources":["../../src/skill-targets.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,KAAa;IAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA2B;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAoB,EACpB,OAA2B;IAE3B,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,CAAC,IAAI,CACP,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EACnE,QAAQ,CACT;aACF,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,CAAC,IAAI,CACP,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAC3D,QAAQ,CACT;aACF,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3D,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,CAAC,IAAI,CACP,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EACnE,QAAQ,CACT;aACF,CAAC;QACJ,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG;gBACZ,OAAO,CAAC,GAAG,CAAC,sBAAsB;oBAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,6BAA6B;oBACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;aAC/C,CAAC;YACF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -3,56 +3,22 @@ import path from "node:path";
3
3
  import { HOME } from "./context.js";
4
4
  import { err, ok, step, warn } from "./logger.js";
5
5
  import { recordSkillInstall } from "./manifest.js";
6
+ import { resolveSkillTargetDirs } from "./skill-targets.js";
6
7
  import { normalizedSkillPackages, normalizedSkillPaths, normalizedSkillScopes, runtimeNames, state, } from "./state.js";
7
8
  import { commandExists, findCommand, run } from "./system.js";
8
- function opencodeConfigDir() {
9
- if (process.env.OPENCODE_CONFIG_DIR)
10
- return process.env.OPENCODE_CONFIG_DIR;
11
- if (process.env.OPENCODE_CONFIG)
12
- return path.dirname(process.env.OPENCODE_CONFIG);
13
- if (process.env.XDG_CONFIG_HOME)
14
- return path.join(process.env.XDG_CONFIG_HOME, "opencode");
15
- return path.join(HOME, ".config", "opencode");
16
- }
17
- function geminiConfigDir() {
18
- return process.env.GEMINI_CONFIG_DIR || path.join(HOME, ".gemini");
19
- }
20
- function antigravityOfficialSkillsDir() {
21
- return (process.env.ANTIGRAVITY_SKILLS_DIR ||
22
- path.join(HOME, ".gemini", "antigravity-cli", "skills"));
23
- }
24
- function antigravityLegacySkillsDir() {
25
- return (process.env.ANTIGRAVITY_LEGACY_SKILLS_DIR ||
26
- path.join(HOME, ".agents", "skills"));
27
- }
28
9
  function skillsTargetDirs(runtime) {
29
- if (state.gsdScope === "global" && runtime === "antigravity") {
30
- return [
31
- antigravityOfficialSkillsDir(),
32
- antigravityLegacySkillsDir(),
33
- ].filter((dir, index, dirs) => dirs.indexOf(dir) === index);
34
- }
35
- return [skillsTargetDir(runtime)];
10
+ return resolveSkillTargetDirs(runtime, {
11
+ scope: state.gsdScope,
12
+ cwd: process.cwd(),
13
+ home: HOME,
14
+ env: process.env,
15
+ });
36
16
  }
37
17
  export function skillsTargetDir(runtime) {
38
- if (state.gsdScope === "local" && runtime === "antigravity") {
39
- return path.join(process.cwd(), ".agents", "skills");
40
- }
41
- if (state.gsdScope === "local") {
42
- return path.join(process.cwd(), `.${runtime}`, "skills");
43
- }
44
- switch (runtime) {
45
- case "claude":
46
- return path.join(process.env.CLAUDE_CONFIG_DIR || path.join(HOME, ".claude"), "skills");
47
- case "codex":
48
- return path.join(process.env.CODEX_HOME || path.join(HOME, ".codex"), "skills");
49
- case "opencode":
50
- return path.join(opencodeConfigDir(), "skills");
51
- case "gemini":
52
- return path.join(geminiConfigDir(), "skills");
53
- case "antigravity":
54
- return antigravityOfficialSkillsDir();
55
- }
18
+ const target = skillsTargetDirs(runtime)[0];
19
+ if (!target)
20
+ throw new Error(`No skills target configured for ${runtime}`);
21
+ return target;
56
22
  }
57
23
  export function parseSkillMetadata(filePath) {
58
24
  const raw = fs.readFileSync(filePath, "utf8");