@ranimontagna/agent-toolkit 0.1.31 → 0.2.1
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/CHANGELOG.md +257 -71
- package/CONTRIBUTING.md +14 -0
- package/README.md +67 -710
- package/SECURITY.md +62 -8
- package/dist/src/installers/agent-browser.js +4 -4
- package/dist/src/installers/agent-browser.js.map +1 -1
- 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/lock-update.js +6 -31
- package/dist/src/lock-update.js.map +1 -1
- package/dist/src/main.js +4 -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/provenance.d.ts +2 -0
- package/dist/src/provenance.js +30 -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 +36 -15
- 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 +3 -26
- package/dist/src/state.js +3 -67
- package/dist/src/state.js.map +1 -1
- package/dist/src/status.js +18 -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 +20 -65
- package/dist/src/tool-lock.js +73 -37
- package/dist/src/tool-lock.js.map +1 -1
- package/package.json +4 -4
- package/tools.lock.json +101 -64
- package/dist/src/installers/frontend-skills.d.ts +0 -9
- package/dist/src/installers/frontend-skills.js +0 -98
- 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/manifest.js
CHANGED
|
@@ -1,9 +1,149 @@
|
|
|
1
|
+
import childProcess from "node:child_process";
|
|
1
2
|
import fs from "node:fs";
|
|
2
3
|
import path from "node:path";
|
|
3
4
|
import { HOME } from "./context.js";
|
|
4
|
-
import { ok, warn } from "./logger.js";
|
|
5
|
+
import { InstallerError, ok, warn } from "./logger.js";
|
|
6
|
+
import { canonicalPathsEqual, resolveSkillTargetDirs, } from "./skill-targets.js";
|
|
5
7
|
import { runtimeNames, state, } from "./state.js";
|
|
6
8
|
let pendingManifest = null;
|
|
9
|
+
const SAFE_REMOVAL_HELPER_SOURCE = String.raw `
|
|
10
|
+
"use strict";
|
|
11
|
+
const crypto = require("node:crypto");
|
|
12
|
+
const fs = require("node:fs");
|
|
13
|
+
const path = require("node:path");
|
|
14
|
+
|
|
15
|
+
let basename;
|
|
16
|
+
let tombstone;
|
|
17
|
+
let renamed = false;
|
|
18
|
+
|
|
19
|
+
function filesystemType(stats) {
|
|
20
|
+
if (stats.isBlockDevice()) return "block-device";
|
|
21
|
+
if (stats.isCharacterDevice()) return "character-device";
|
|
22
|
+
if (stats.isDirectory()) return "directory";
|
|
23
|
+
if (stats.isFIFO()) return "fifo";
|
|
24
|
+
if (stats.isFile()) return "file";
|
|
25
|
+
if (stats.isSocket()) return "socket";
|
|
26
|
+
if (stats.isSymbolicLink()) return "symbolic-link";
|
|
27
|
+
return "unknown";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function identity(stats) {
|
|
31
|
+
return {
|
|
32
|
+
dev: stats.dev.toString(),
|
|
33
|
+
ino: stats.ino.toString(),
|
|
34
|
+
type: filesystemType(stats),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function validIdentity(value) {
|
|
39
|
+
return (
|
|
40
|
+
value !== null &&
|
|
41
|
+
typeof value === "object" &&
|
|
42
|
+
typeof value.dev === "string" &&
|
|
43
|
+
typeof value.ino === "string" &&
|
|
44
|
+
typeof value.type === "string"
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function sameIdentity(left, right) {
|
|
49
|
+
return (
|
|
50
|
+
left.dev === right.dev &&
|
|
51
|
+
left.ino === right.ino &&
|
|
52
|
+
left.type === right.type
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function directBasename(value) {
|
|
57
|
+
return (
|
|
58
|
+
typeof value === "string" &&
|
|
59
|
+
value.length > 0 &&
|
|
60
|
+
value !== "." &&
|
|
61
|
+
value !== ".." &&
|
|
62
|
+
!value.includes("/") &&
|
|
63
|
+
!path.isAbsolute(value) &&
|
|
64
|
+
path.basename(value) === value
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function isAbsent(value) {
|
|
69
|
+
try {
|
|
70
|
+
fs.lstatSync(value);
|
|
71
|
+
return false;
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (error && error.code === "ENOENT") return true;
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function rollback() {
|
|
79
|
+
if (!renamed || !directBasename(basename) || !directBasename(tombstone)) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
if (isAbsent(basename)) fs.renameSync(tombstone, basename);
|
|
84
|
+
} catch {}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
try {
|
|
88
|
+
const payload = JSON.parse(process.argv[1] || "null");
|
|
89
|
+
if (
|
|
90
|
+
payload === null ||
|
|
91
|
+
typeof payload !== "object" ||
|
|
92
|
+
!directBasename(payload.basename) ||
|
|
93
|
+
!validIdentity(payload.rootIdentity) ||
|
|
94
|
+
!validIdentity(payload.destinationIdentity)
|
|
95
|
+
) {
|
|
96
|
+
throw new Error("invalid payload");
|
|
97
|
+
}
|
|
98
|
+
basename = payload.basename;
|
|
99
|
+
|
|
100
|
+
const rootStats = fs.statSync(".", { bigint: true });
|
|
101
|
+
if (
|
|
102
|
+
!rootStats.isDirectory() ||
|
|
103
|
+
!sameIdentity(identity(rootStats), payload.rootIdentity)
|
|
104
|
+
) {
|
|
105
|
+
throw new Error("root identity changed");
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const rootCanonical = fs.realpathSync(".");
|
|
109
|
+
const childStats = fs.lstatSync(basename, { bigint: true });
|
|
110
|
+
if (!sameIdentity(identity(childStats), payload.destinationIdentity)) {
|
|
111
|
+
throw new Error("destination identity changed");
|
|
112
|
+
}
|
|
113
|
+
const childCanonical = fs.realpathSync(basename);
|
|
114
|
+
if (path.dirname(childCanonical) !== rootCanonical) {
|
|
115
|
+
throw new Error("destination escaped root");
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
tombstone =
|
|
119
|
+
".agent-toolkit-remove-" +
|
|
120
|
+
process.pid +
|
|
121
|
+
"-" +
|
|
122
|
+
crypto.randomBytes(16).toString("hex");
|
|
123
|
+
if (!directBasename(tombstone) || !isAbsent(tombstone)) {
|
|
124
|
+
throw new Error("invalid tombstone");
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
fs.renameSync(basename, tombstone);
|
|
128
|
+
renamed = true;
|
|
129
|
+
|
|
130
|
+
const tombstoneStats = fs.lstatSync(tombstone, { bigint: true });
|
|
131
|
+
if (!sameIdentity(identity(tombstoneStats), payload.destinationIdentity)) {
|
|
132
|
+
throw new Error("renamed destination identity changed");
|
|
133
|
+
}
|
|
134
|
+
const tombstoneCanonical = fs.realpathSync(tombstone);
|
|
135
|
+
if (path.dirname(tombstoneCanonical) !== rootCanonical) {
|
|
136
|
+
throw new Error("renamed destination escaped root");
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
fs.rmSync(tombstone, { recursive: true, force: true });
|
|
140
|
+
renamed = false;
|
|
141
|
+
} catch {
|
|
142
|
+
rollback();
|
|
143
|
+
process.stderr.write("safe removal rejected\n");
|
|
144
|
+
process.exitCode = 1;
|
|
145
|
+
}
|
|
146
|
+
`;
|
|
7
147
|
function now() {
|
|
8
148
|
return new Date().toISOString();
|
|
9
149
|
}
|
|
@@ -21,14 +161,80 @@ export function createManifest(scope) {
|
|
|
21
161
|
entries: [],
|
|
22
162
|
};
|
|
23
163
|
}
|
|
24
|
-
function
|
|
164
|
+
function isRecord(value) {
|
|
165
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
166
|
+
}
|
|
167
|
+
function isRuntimeName(value) {
|
|
168
|
+
return (typeof value === "string" &&
|
|
169
|
+
runtimeNames.some((runtime) => runtime === value));
|
|
170
|
+
}
|
|
171
|
+
function isInstallScope(value) {
|
|
172
|
+
return value === "local" || value === "global";
|
|
173
|
+
}
|
|
174
|
+
function isTimestamp(value) {
|
|
175
|
+
return (typeof value === "string" &&
|
|
176
|
+
value.trim().length > 0 &&
|
|
177
|
+
Number.isFinite(Date.parse(value)));
|
|
178
|
+
}
|
|
179
|
+
function invalidManifest(filePath, reason) {
|
|
180
|
+
return new InstallerError(`Invalid Agent Toolkit manifest at ${filePath}: ${reason}`);
|
|
181
|
+
}
|
|
182
|
+
function validateManifestDocument(value, expectedScope, filePath) {
|
|
183
|
+
if (!isRecord(value))
|
|
184
|
+
throw invalidManifest(filePath, "root must be an object");
|
|
185
|
+
if (value.version !== 1)
|
|
186
|
+
throw invalidManifest(filePath, "version must be 1");
|
|
187
|
+
if (!isInstallScope(value.scope))
|
|
188
|
+
throw invalidManifest(filePath, "scope must be local or global");
|
|
189
|
+
if (value.scope !== expectedScope)
|
|
190
|
+
throw invalidManifest(filePath, `scope must be ${expectedScope}`);
|
|
191
|
+
if (!isTimestamp(value.generatedAt))
|
|
192
|
+
throw invalidManifest(filePath, "generatedAt must be a valid timestamp");
|
|
193
|
+
if (!Array.isArray(value.entries))
|
|
194
|
+
throw invalidManifest(filePath, "entries must be an array");
|
|
195
|
+
const entries = value.entries.map((rawEntry, index) => {
|
|
196
|
+
const prefix = `entries[${index}]`;
|
|
197
|
+
if (!isRecord(rawEntry))
|
|
198
|
+
throw invalidManifest(filePath, `${prefix} must be an object`);
|
|
199
|
+
if (rawEntry.kind !== "skill")
|
|
200
|
+
throw invalidManifest(filePath, `${prefix}.kind must be skill`);
|
|
201
|
+
if (!isRuntimeName(rawEntry.runtime))
|
|
202
|
+
throw invalidManifest(filePath, `${prefix}.runtime is unsupported`);
|
|
203
|
+
if (typeof rawEntry.source !== "string" ||
|
|
204
|
+
rawEntry.source.trim().length === 0)
|
|
205
|
+
throw invalidManifest(filePath, `${prefix}.source must be non-empty`);
|
|
206
|
+
if (typeof rawEntry.destination !== "string" ||
|
|
207
|
+
!path.isAbsolute(rawEntry.destination))
|
|
208
|
+
throw invalidManifest(filePath, `${prefix}.destination must be absolute`);
|
|
209
|
+
if (!isTimestamp(rawEntry.installedAt))
|
|
210
|
+
throw invalidManifest(filePath, `${prefix}.installedAt must be a valid timestamp`);
|
|
211
|
+
return {
|
|
212
|
+
kind: "skill",
|
|
213
|
+
runtime: rawEntry.runtime,
|
|
214
|
+
source: rawEntry.source,
|
|
215
|
+
destination: rawEntry.destination,
|
|
216
|
+
installedAt: rawEntry.installedAt,
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
return {
|
|
220
|
+
version: 1,
|
|
221
|
+
scope: value.scope,
|
|
222
|
+
generatedAt: value.generatedAt,
|
|
223
|
+
entries,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
export function readManifest(filePath = manifestPathForScope(state.gsdScope), expectedScope = state.gsdScope) {
|
|
25
227
|
if (!fs.existsSync(filePath))
|
|
26
|
-
return createManifest(
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
228
|
+
return createManifest(expectedScope);
|
|
229
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
230
|
+
let parsed;
|
|
231
|
+
try {
|
|
232
|
+
parsed = JSON.parse(raw);
|
|
30
233
|
}
|
|
31
|
-
|
|
234
|
+
catch {
|
|
235
|
+
throw invalidManifest(filePath, "invalid JSON");
|
|
236
|
+
}
|
|
237
|
+
return validateManifestDocument(parsed, expectedScope, filePath);
|
|
32
238
|
}
|
|
33
239
|
function writeManifest(manifest, filePath = manifestPathForScope(manifest.scope)) {
|
|
34
240
|
manifest.generatedAt = now();
|
|
@@ -38,8 +244,9 @@ function writeManifest(manifest, filePath = manifestPathForScope(manifest.scope)
|
|
|
38
244
|
}
|
|
39
245
|
export function upsertManifestEntry(manifest, entry) {
|
|
40
246
|
const installedAt = now();
|
|
41
|
-
const
|
|
42
|
-
const
|
|
247
|
+
const destination = path.resolve(entry.destination);
|
|
248
|
+
const existingIndex = manifest.entries.findIndex((current) => current.destination === destination);
|
|
249
|
+
const nextEntry = { ...entry, destination, installedAt };
|
|
43
250
|
if (existingIndex === -1) {
|
|
44
251
|
manifest.entries.push(nextEntry);
|
|
45
252
|
}
|
|
@@ -63,9 +270,177 @@ export function savePendingManifest() {
|
|
|
63
270
|
ok(`Wrote install manifest at ${manifestPathForScope(pendingManifest.scope)}`);
|
|
64
271
|
pendingManifest = null;
|
|
65
272
|
}
|
|
66
|
-
|
|
273
|
+
function errorCode(error) {
|
|
274
|
+
return isRecord(error) && typeof error.code === "string"
|
|
275
|
+
? error.code
|
|
276
|
+
: undefined;
|
|
277
|
+
}
|
|
278
|
+
function normalizeAbsolute(input, cwd) {
|
|
279
|
+
return path.normalize(path.isAbsolute(input) ? input : path.resolve(cwd, input));
|
|
280
|
+
}
|
|
281
|
+
function hasParentTraversal(input) {
|
|
282
|
+
return input.split(/[\\/]+/).includes("..");
|
|
283
|
+
}
|
|
284
|
+
function isProperDescendant(parent, child) {
|
|
285
|
+
const relative = path.relative(parent, child);
|
|
286
|
+
return (relative.length > 0 &&
|
|
287
|
+
!path.isAbsolute(relative) &&
|
|
288
|
+
relative !== ".." &&
|
|
289
|
+
!relative.startsWith(`..${path.sep}`));
|
|
290
|
+
}
|
|
291
|
+
function canonicalizeAllowMissing(input) {
|
|
292
|
+
let current = path.resolve(input);
|
|
293
|
+
const missingSegments = [];
|
|
294
|
+
while (true) {
|
|
295
|
+
try {
|
|
296
|
+
fs.lstatSync(current);
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
if (errorCode(error) !== "ENOENT")
|
|
300
|
+
throw error;
|
|
301
|
+
const parent = path.dirname(current);
|
|
302
|
+
if (parent === current)
|
|
303
|
+
throw error;
|
|
304
|
+
missingSegments.unshift(path.basename(current));
|
|
305
|
+
current = parent;
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
const canonicalExisting = fs.realpathSync(current);
|
|
309
|
+
return path.resolve(canonicalExisting, ...missingSegments);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
function filesystemType(stats) {
|
|
313
|
+
if (stats.isBlockDevice())
|
|
314
|
+
return "block-device";
|
|
315
|
+
if (stats.isCharacterDevice())
|
|
316
|
+
return "character-device";
|
|
317
|
+
if (stats.isDirectory())
|
|
318
|
+
return "directory";
|
|
319
|
+
if (stats.isFIFO())
|
|
320
|
+
return "fifo";
|
|
321
|
+
if (stats.isFile())
|
|
322
|
+
return "file";
|
|
323
|
+
if (stats.isSocket())
|
|
324
|
+
return "socket";
|
|
325
|
+
if (stats.isSymbolicLink())
|
|
326
|
+
return "symbolic-link";
|
|
327
|
+
return "unknown";
|
|
328
|
+
}
|
|
329
|
+
function filesystemIdentity(stats) {
|
|
330
|
+
return {
|
|
331
|
+
dev: stats.dev.toString(),
|
|
332
|
+
ino: stats.ino.toString(),
|
|
333
|
+
type: filesystemType(stats),
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
function inspectDestination(destination) {
|
|
337
|
+
try {
|
|
338
|
+
const stats = fs.lstatSync(destination, { bigint: true });
|
|
339
|
+
return { exists: true, identity: filesystemIdentity(stats) };
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
if (errorCode(error) === "ENOENT")
|
|
343
|
+
return { exists: false };
|
|
344
|
+
throw error;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
function unsafeDestination(runtime, reason) {
|
|
348
|
+
return new InstallerError(`Unsafe manifest destination for ${runtime}: ${reason}. Review the manifest manually.`);
|
|
349
|
+
}
|
|
350
|
+
function validateRemovalEntry(entry, context) {
|
|
351
|
+
if (!path.isAbsolute(entry.destination))
|
|
352
|
+
throw unsafeDestination(entry.runtime, "destination is not absolute");
|
|
353
|
+
if (hasParentTraversal(entry.destination))
|
|
354
|
+
throw unsafeDestination(entry.runtime, "destination contains parent traversal");
|
|
355
|
+
const destination = normalizeAbsolute(entry.destination, context.cwd);
|
|
356
|
+
const roots = resolveSkillTargetDirs(entry.runtime, context).map((root) => normalizeAbsolute(root, context.cwd));
|
|
357
|
+
const lexicalRoot = roots.find((root) => path.basename(destination).length > 0 &&
|
|
358
|
+
canonicalPathsEqual(path.dirname(destination), root));
|
|
359
|
+
if (!lexicalRoot)
|
|
360
|
+
throw unsafeDestination(entry.runtime, "destination is not a direct child of a current skills root");
|
|
361
|
+
let destinationInspection;
|
|
362
|
+
try {
|
|
363
|
+
destinationInspection = inspectDestination(destination);
|
|
364
|
+
}
|
|
365
|
+
catch {
|
|
366
|
+
throw unsafeDestination(entry.runtime, "destination cannot be inspected");
|
|
367
|
+
}
|
|
368
|
+
if (!destinationInspection.exists && context.scope === "global") {
|
|
369
|
+
return { destination, existedAtPreflight: false };
|
|
370
|
+
}
|
|
371
|
+
let canonicalRoot;
|
|
372
|
+
try {
|
|
373
|
+
canonicalRoot = canonicalizeAllowMissing(lexicalRoot);
|
|
374
|
+
}
|
|
375
|
+
catch {
|
|
376
|
+
throw unsafeDestination(entry.runtime, "skills root cannot be canonicalized");
|
|
377
|
+
}
|
|
378
|
+
if (context.scope === "local") {
|
|
379
|
+
let canonicalCwd;
|
|
380
|
+
try {
|
|
381
|
+
canonicalCwd = fs.realpathSync(context.cwd);
|
|
382
|
+
}
|
|
383
|
+
catch {
|
|
384
|
+
throw unsafeDestination(entry.runtime, "cwd cannot be canonicalized");
|
|
385
|
+
}
|
|
386
|
+
if (!isProperDescendant(canonicalCwd, canonicalRoot))
|
|
387
|
+
throw unsafeDestination(entry.runtime, "skills root is outside canonical cwd");
|
|
388
|
+
}
|
|
389
|
+
if (!destinationInspection.exists) {
|
|
390
|
+
return { destination, existedAtPreflight: false };
|
|
391
|
+
}
|
|
392
|
+
let rootStats;
|
|
393
|
+
let canonicalDestination;
|
|
394
|
+
try {
|
|
395
|
+
rootStats = fs.statSync(canonicalRoot, { bigint: true });
|
|
396
|
+
canonicalDestination = fs.realpathSync(destination);
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
throw unsafeDestination(entry.runtime, "existing destination cannot be canonicalized");
|
|
400
|
+
}
|
|
401
|
+
if (!rootStats.isDirectory())
|
|
402
|
+
throw unsafeDestination(entry.runtime, "skills root is not a directory");
|
|
403
|
+
if (!canonicalPathsEqual(path.dirname(canonicalDestination), canonicalRoot))
|
|
404
|
+
throw unsafeDestination(entry.runtime, "canonical destination escapes the canonical skills root");
|
|
405
|
+
return {
|
|
406
|
+
destination,
|
|
407
|
+
existedAtPreflight: true,
|
|
408
|
+
canonicalRoot,
|
|
409
|
+
basename: path.basename(destination),
|
|
410
|
+
rootIdentity: filesystemIdentity(rootStats),
|
|
411
|
+
destinationIdentity: destinationInspection.identity,
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
function runSafeRemovalHelper(item) {
|
|
415
|
+
const payload = JSON.stringify({
|
|
416
|
+
basename: item.basename,
|
|
417
|
+
rootIdentity: item.rootIdentity,
|
|
418
|
+
destinationIdentity: item.destinationIdentity,
|
|
419
|
+
});
|
|
420
|
+
const result = childProcess.spawnSync(process.execPath, ["--input-type=commonjs", "-e", SAFE_REMOVAL_HELPER_SOURCE, payload], {
|
|
421
|
+
cwd: item.canonicalRoot,
|
|
422
|
+
encoding: "utf8",
|
|
423
|
+
maxBuffer: 64 * 1024,
|
|
424
|
+
shell: false,
|
|
425
|
+
stdio: ["ignore", "ignore", "pipe"],
|
|
426
|
+
timeout: 30_000,
|
|
427
|
+
});
|
|
428
|
+
if (result.error) {
|
|
429
|
+
throw new InstallerError("Safe removal helper could not start. The manifest was preserved for retry.");
|
|
430
|
+
}
|
|
431
|
+
if (result.status !== 0) {
|
|
432
|
+
throw new InstallerError("Safe removal helper rejected a filesystem identity or containment change. The manifest was preserved for retry.");
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
function preflightManifestRemoval(manifest, options) {
|
|
436
|
+
const context = {
|
|
437
|
+
scope: manifest.scope,
|
|
438
|
+
cwd: path.resolve(options.cwd ?? process.cwd()),
|
|
439
|
+
home: path.resolve(options.home ?? HOME),
|
|
440
|
+
env: options.env ?? process.env,
|
|
441
|
+
};
|
|
67
442
|
const selectedRuntimes = new Set(options.runtimes);
|
|
68
|
-
const
|
|
443
|
+
const selected = [];
|
|
69
444
|
const remaining = [];
|
|
70
445
|
for (const entry of manifest.entries) {
|
|
71
446
|
const shouldRemove = options.includeSkills &&
|
|
@@ -75,12 +450,22 @@ export function removeManifestEntries(manifest, options) {
|
|
|
75
450
|
remaining.push(entry);
|
|
76
451
|
continue;
|
|
77
452
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
453
|
+
selected.push(validateRemovalEntry(entry, context));
|
|
454
|
+
}
|
|
455
|
+
return { selected, remaining };
|
|
456
|
+
}
|
|
457
|
+
export function removeManifestEntries(manifest, options) {
|
|
458
|
+
const validatedManifest = validateManifestDocument(manifest, manifest.scope, "in-memory manifest");
|
|
459
|
+
const plan = preflightManifestRemoval(validatedManifest, options);
|
|
460
|
+
const removed = plan.selected.map((item) => item.destination);
|
|
461
|
+
if (options.dryRun)
|
|
462
|
+
return removed;
|
|
463
|
+
for (const item of plan.selected) {
|
|
464
|
+
if (!item.existedAtPreflight)
|
|
465
|
+
continue;
|
|
466
|
+
runSafeRemovalHelper(item);
|
|
82
467
|
}
|
|
83
|
-
manifest.entries = remaining;
|
|
468
|
+
manifest.entries = plan.remaining;
|
|
84
469
|
return removed;
|
|
85
470
|
}
|
|
86
471
|
export function uninstallFromManifest() {
|
|
@@ -89,12 +474,15 @@ export function uninstallFromManifest() {
|
|
|
89
474
|
warn(`No Agent Toolkit manifest found at ${filePath}`);
|
|
90
475
|
return true;
|
|
91
476
|
}
|
|
92
|
-
const manifest = readManifest(filePath);
|
|
477
|
+
const manifest = readManifest(filePath, state.gsdScope);
|
|
93
478
|
const selectedRuntimes = runtimeNames.filter((runtime) => state.runtimes[runtime]);
|
|
94
479
|
const removed = removeManifestEntries(manifest, {
|
|
95
480
|
runtimes: selectedRuntimes,
|
|
96
481
|
includeSkills: state.tools.skills,
|
|
97
482
|
dryRun: state.dryRun,
|
|
483
|
+
cwd: process.cwd(),
|
|
484
|
+
home: HOME,
|
|
485
|
+
env: process.env,
|
|
98
486
|
});
|
|
99
487
|
if (state.dryRun) {
|
|
100
488
|
if (removed.length === 0) {
|
package/dist/src/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/src/provenance.d.ts
CHANGED
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() {
|
|
@@ -99,12 +117,10 @@ export function checkExternalToolProvenance() {
|
|
|
99
117
|
checkIdentity("Agent Browser", state.agentBrowserPackage, lockSpec);
|
|
100
118
|
checkSource("Agent Browser", state.agentBrowserPackage);
|
|
101
119
|
}
|
|
102
|
-
if (state.tools[
|
|
103
|
-
|
|
104
|
-
state.
|
|
105
|
-
|
|
106
|
-
checkIdentity("Agent Skills CLI", state.frontendSkillsCliPackage, lockSpec);
|
|
107
|
-
checkSource("Agent Skills CLI", state.frontendSkillsCliPackage);
|
|
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);
|
|
108
124
|
}
|
|
109
125
|
if (state.runtimes.antigravity)
|
|
110
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 {};
|