@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.
- package/README.md +38 -18
- package/dist/src/args.js +9 -0
- package/dist/src/args.js.map +1 -1
- package/dist/src/doctor.js +2 -0
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/installers/agent-browser.d.ts +1 -0
- package/dist/src/installers/agent-browser.js +27 -0
- package/dist/src/installers/agent-browser.js.map +1 -0
- package/dist/src/installers/agent-skills.d.ts +14 -0
- package/dist/src/installers/agent-skills.js +157 -0
- package/dist/src/installers/agent-skills.js.map +1 -0
- package/dist/src/installers/caveman.js +1 -1
- package/dist/src/installers/gsd.js +1 -1
- package/dist/src/lock-update.js +10 -25
- package/dist/src/lock-update.js.map +1 -1
- package/dist/src/main.js +14 -6
- package/dist/src/main.js.map +1 -1
- package/dist/src/manifest.d.ts +5 -1
- package/dist/src/manifest.js +405 -17
- package/dist/src/manifest.js.map +1 -1
- package/dist/src/menu.js +6 -0
- package/dist/src/menu.js.map +1 -1
- package/dist/src/provenance.d.ts +2 -0
- package/dist/src/provenance.js +35 -14
- package/dist/src/provenance.js.map +1 -1
- package/dist/src/release.d.ts +12 -1
- package/dist/src/release.js +126 -10
- package/dist/src/release.js.map +1 -1
- package/dist/src/runtimes.d.ts +7 -0
- package/dist/src/runtimes.js +41 -20
- package/dist/src/runtimes.js.map +1 -1
- package/dist/src/skill-targets.d.ts +9 -0
- package/dist/src/skill-targets.js +45 -0
- package/dist/src/skill-targets.js.map +1 -0
- package/dist/src/skills.js +11 -45
- package/dist/src/skills.js.map +1 -1
- package/dist/src/state.d.ts +5 -20
- package/dist/src/state.js +7 -54
- package/dist/src/state.js.map +1 -1
- package/dist/src/status.js +30 -3
- package/dist/src/status.js.map +1 -1
- package/dist/src/system.d.ts +6 -2
- package/dist/src/system.js +207 -36
- package/dist/src/system.js.map +1 -1
- package/dist/src/tool-lock.d.ts +24 -51
- package/dist/src/tool-lock.js +75 -32
- package/dist/src/tool-lock.js.map +1 -1
- package/dist/src/usage.js +3 -0
- package/dist/src/usage.js.map +1 -1
- package/package.json +5 -5
- package/setup-agent-toolkit.sh +7 -1
- package/tools.lock.json +104 -49
- package/dist/src/installers/frontend-skills.d.ts +0 -8
- package/dist/src/installers/frontend-skills.js +0 -93
- package/dist/src/installers/frontend-skills.js.map +0 -1
- package/dist/src/installers/improve.d.ts +0 -1
- package/dist/src/installers/improve.js +0 -80
- package/dist/src/installers/improve.js.map +0 -1
- package/dist/src/installers/planning-skills.d.ts +0 -1
- package/dist/src/installers/planning-skills.js +0 -6
- package/dist/src/installers/planning-skills.js.map +0 -1
package/dist/src/provenance.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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: ${
|
|
89
|
+
warn(`Antigravity install script allowed explicitly: ${normalizedScript}`);
|
|
72
90
|
return;
|
|
73
91
|
}
|
|
74
|
-
die(`ANTIGRAVITY_INSTALL_SCRIPT overrides the official installer URL: ${
|
|
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["
|
|
98
|
-
|
|
99
|
-
state.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,GAEb,MAAM,gBAAgB,CAAC;AAExB,MAAM,kCAAkC,GACtC,2CAA2C,CAAC;AAE9C,SAAS,WAAW,CAAC,KAAa,EAAE,IAAY;IAC9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;QAAE,OAAO;IAE3C,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAI,CAAC,oDAAoD,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,GAAG,CACD,gDAAgD,KAAK,IAAI,IAAI,IAAI;QAC/D,4DAA4D,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgB;IAClE,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAI,CACF,qDAAqD,KAAK,IAAI,IAAI,aAAa,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CACnH,CAAC;QACF,OAAO;IACT,CAAC;IAED,GAAG,CACD,+DAA+D,KAAK,IAAI,IAAI,GAAG;QAC7E,YAAY,sBAAsB,CAAC,QAAQ,CAAC,KAAK;QACjD,yDAAyD,CAC5D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc;IAC3C,MAAM,YAAY,GAAG,gCAAgC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,YAAY,CAAC;IAC3F,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CACF,0CAA0C,KAAK,CAAC,SAAS,wBAAwB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,CAC9G,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CACD,+EAA+E,KAAK,CAAC,SAAS,GAAG;gBAC/F,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK;gBAC1C,yDAAyD,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO;IAE1D,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAI,CAAC,kDAAkD,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,GAAG,CACD,oDAAoD,KAAK,CAAC,SAAS,IAAI;QACrE,gFAAgF,CACnF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO;IAEzC,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAI,CACF,iDAAiD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAC/E,CAAC;QACF,OAAO;IACT,CAAC;IAED,GAAG,CACD,wDAAwD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK;QACtF,gEAAgE;QAChE,2CAA2C,CAC9C,CAAC;AACJ,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"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"}
|
package/dist/src/release.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/src/release.js
CHANGED
|
@@ -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
|
|
41
|
-
|
|
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
|
|
52
|
-
const
|
|
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(
|
|
66
|
-
|
|
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(
|
|
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 {
|
package/dist/src/release.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/release.ts"],"names":[],"mappings":"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"}
|
package/dist/src/runtimes.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/src/runtimes.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
230
|
+
requireNode(24);
|
|
210
231
|
requireCommand("npx");
|
|
211
232
|
ok(`node found: ${process.version}`);
|
|
212
233
|
ok("npx found");
|
|
213
234
|
}
|
|
214
|
-
if (
|
|
215
|
-
requireNode(
|
|
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(
|
|
258
|
+
requireNode(24);
|
|
238
259
|
requireCommand("npm");
|
|
239
260
|
ok("npm found");
|
|
240
261
|
}
|
package/dist/src/runtimes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimes.js","sourceRoot":"","sources":["../../src/runtimes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAoB,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EACL,OAAO,EACP,aAAa,EACb,WAAW,EACX,cAAc,EACd,WAAW,EACX,GAAG,GACJ,MAAM,aAAa,CAAC;
|
|
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"}
|
package/dist/src/skills.js
CHANGED
|
@@ -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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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");
|