@alwaysmeticulous/cli 2.331.1 → 2.331.3
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/dist/commands/agent/complete-base-run.command.d.ts +0 -15
- package/dist/commands/agent/complete-base-run.command.d.ts.map +1 -1
- package/dist/commands/agent/complete-base-run.command.js +83 -88
- package/dist/commands/agent/complete-base-run.command.js.map +1 -1
- package/dist/commands/agent/complete-base-run.command.spec.js +113 -116
- package/dist/commands/agent/complete-base-run.command.spec.js.map +1 -1
- package/dist/commands/agent/js-coverage.command.handler.spec.js +2 -4
- package/dist/commands/agent/js-coverage.command.handler.spec.js.map +1 -1
- package/dist/commands/agent/js-coverage.command.js +6 -6
- package/dist/commands/agent/js-coverage.command.js.map +1 -1
- package/dist/commands/agent/test-run-check.command.d.ts.map +1 -1
- package/dist/commands/agent/test-run-check.command.js +17 -13
- package/dist/commands/agent/test-run-check.command.js.map +1 -1
- package/dist/commands/agent/test-run-check.command.spec.js +4 -4
- package/dist/commands/agent/test-run-check.command.spec.js.map +1 -1
- package/dist/commands/agent/test-run-diffs.command.d.ts.map +1 -1
- package/dist/commands/agent/test-run-diffs.command.js +27 -18
- package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
- package/dist/commands/agent/test-run-diffs.command.spec.js +47 -3
- package/dist/commands/agent/test-run-diffs.command.spec.js.map +1 -1
- package/dist/commands/onboard/__tests__/install-skills.spec.js +120 -5
- package/dist/commands/onboard/__tests__/install-skills.spec.js.map +1 -1
- package/dist/commands/onboard/__tests__/safe-repo-fs.spec.js +104 -25
- package/dist/commands/onboard/__tests__/safe-repo-fs.spec.js.map +1 -1
- package/dist/commands/onboard/safe-repo-fs.d.ts +23 -16
- package/dist/commands/onboard/safe-repo-fs.d.ts.map +1 -1
- package/dist/commands/onboard/safe-repo-fs.js +78 -36
- package/dist/commands/onboard/safe-repo-fs.js.map +1 -1
- package/dist/commands/onboard/setup-agent-integrations.d.ts.map +1 -1
- package/dist/commands/onboard/setup-agent-integrations.js +92 -8
- package/dist/commands/onboard/setup-agent-integrations.js.map +1 -1
- package/dist/commands/onboard/templates/docs/reference/cli-commands.ts +1 -2
- package/dist/utils/base-run-rejection.d.ts +20 -0
- package/dist/utils/base-run-rejection.d.ts.map +1 -0
- package/dist/utils/base-run-rejection.js +48 -0
- package/dist/utils/base-run-rejection.js.map +1 -0
- package/dist/utils/resolve-test-run-from-commit.d.ts +0 -1
- package/dist/utils/resolve-test-run-from-commit.d.ts.map +1 -1
- package/dist/utils/resolve-test-run-from-commit.js +10 -8
- package/dist/utils/resolve-test-run-from-commit.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="53753f65-dc75-561a-a18b-2173f536c0d0")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
const fs_1 = require("fs");
|
|
@@ -25,6 +25,37 @@ const makeRoot = () => {
|
|
|
25
25
|
(0, vitest_1.beforeEach)(() => {
|
|
26
26
|
spawnSync.mockReset();
|
|
27
27
|
});
|
|
28
|
+
/** Skills the discovery run reports, i.e. the dests the install will write. */
|
|
29
|
+
const DISCOVERED_SKILLS = ["meticulous-cli"];
|
|
30
|
+
/**
|
|
31
|
+
* npm materializes the CLI; discovery stages skills; the last call is the repo
|
|
32
|
+
* install. `stageInto` picks which agent root the staging run writes, since
|
|
33
|
+
* that varies with the agents the skills CLI detects.
|
|
34
|
+
*/
|
|
35
|
+
const mockTrustedCliSpawns = (projectRoot, options = {}) => {
|
|
36
|
+
const { stageInto = ".claude" } = options;
|
|
37
|
+
spawnSync.mockImplementation((command, args = [], spawnOptions = {}) => {
|
|
38
|
+
if (command === "npm") {
|
|
39
|
+
const prefix = args[args.indexOf("--prefix") + 1];
|
|
40
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(prefix, "node_modules", "skills", "bin"), {
|
|
41
|
+
recursive: true,
|
|
42
|
+
});
|
|
43
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(prefix, "node_modules", "skills", "bin", "cli.mjs"), "// trusted\n");
|
|
44
|
+
return { status: 0, error: undefined, stderr: "", stdout: "" };
|
|
45
|
+
}
|
|
46
|
+
if (command === process.execPath &&
|
|
47
|
+
spawnOptions.cwd !== projectRoot &&
|
|
48
|
+
stageInto !== null) {
|
|
49
|
+
for (const name of DISCOVERED_SKILLS) {
|
|
50
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(spawnOptions.cwd, stageInto, "skills", name), { recursive: true });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return { status: 0, error: undefined, stderr: "", stdout: "" };
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
/** Calls that hand the repo to the installer, as opposed to discovery. */
|
|
57
|
+
const repoInstallCalls = (projectRoot) => spawnSync.mock.calls.filter((call) => call[0] === process.execPath &&
|
|
58
|
+
call[2]?.cwd === projectRoot);
|
|
28
59
|
(0, vitest_1.describe)("sanitizeSkillsInstallEnv", () => {
|
|
29
60
|
(0, vitest_1.it)("strips NODE_OPTIONS and NODE_PATH so a repo cannot inject preloads", () => {
|
|
30
61
|
const sanitized = (0, setup_agent_integrations_1.sanitizeSkillsInstallEnv)({
|
|
@@ -101,9 +132,18 @@ const makeRoot = () => {
|
|
|
101
132
|
if (command === process.execPath) {
|
|
102
133
|
(0, vitest_1.expect)(args[0]).toMatch(/node_modules[/\\]skills[/\\]bin[/\\]cli\.mjs$/);
|
|
103
134
|
(0, vitest_1.expect)(args[0].startsWith(projectRoot)).toBe(false);
|
|
104
|
-
(0, vitest_1.expect)(args.slice(1)).toEqual([...setup_agent_integrations_1.SKILLS_ADD_ARGS]);
|
|
105
|
-
(0, vitest_1.expect)(options.cwd).toBe(projectRoot);
|
|
106
135
|
(0, vitest_1.expect)(options.env?.NODE_OPTIONS).toBeUndefined();
|
|
136
|
+
// The discovery run goes into a throwaway dir, never the repo.
|
|
137
|
+
if (options.cwd !== projectRoot) {
|
|
138
|
+
(0, vitest_1.expect)(options.cwd).toBeTruthy();
|
|
139
|
+
for (const name of DISCOVERED_SKILLS) {
|
|
140
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(options.cwd, ".claude", "skills", name), {
|
|
141
|
+
recursive: true,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
return { status: 0, error: undefined, stderr: "", stdout: "" };
|
|
145
|
+
}
|
|
146
|
+
(0, vitest_1.expect)(args.slice(1)).toEqual([...setup_agent_integrations_1.SKILLS_ADD_ARGS]);
|
|
107
147
|
return { status: 0, error: undefined, stderr: "", stdout: "" };
|
|
108
148
|
}
|
|
109
149
|
throw new Error(`unexpected spawn: ${command} ${args.join(" ")}`);
|
|
@@ -133,10 +173,85 @@ const makeRoot = () => {
|
|
|
133
173
|
}
|
|
134
174
|
}
|
|
135
175
|
const commands = spawnSync.mock.calls.map((call) => call[0]);
|
|
136
|
-
|
|
176
|
+
// npm install, discovery run, then the install into the repo.
|
|
177
|
+
(0, vitest_1.expect)(commands).toEqual(["npm", process.execPath, process.execPath]);
|
|
137
178
|
(0, vitest_1.expect)(commands).not.toContain("npx");
|
|
138
179
|
(0, vitest_1.expect)(commands).not.toContain("skills");
|
|
139
180
|
});
|
|
181
|
+
// Another tool's linked skill is never a dest of this install, so it must
|
|
182
|
+
// not stop us installing ours.
|
|
183
|
+
(0, vitest_1.it)("installs even when another tool's skill is a symlink", () => {
|
|
184
|
+
const projectRoot = makeRoot();
|
|
185
|
+
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skills-other-"));
|
|
186
|
+
dirs.push(outside);
|
|
187
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(projectRoot, ".claude", "skills"), { recursive: true });
|
|
188
|
+
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(projectRoot, ".claude", "skills", "some-other-tool"));
|
|
189
|
+
mockTrustedCliSpawns(projectRoot);
|
|
190
|
+
const log = vitest_1.vi.spyOn(console, "log").mockImplementation(() => undefined);
|
|
191
|
+
try {
|
|
192
|
+
(0, vitest_1.expect)((0, setup_agent_integrations_1.installSkills)(projectRoot)).toBe(true);
|
|
193
|
+
}
|
|
194
|
+
finally {
|
|
195
|
+
log.mockRestore();
|
|
196
|
+
}
|
|
197
|
+
(0, vitest_1.expect)(repoInstallCalls(projectRoot)).toHaveLength(1);
|
|
198
|
+
(0, vitest_1.expect)((0, fs_1.lstatSync)((0, path_1.join)(projectRoot, ".claude", "skills", "some-other-tool")).isSymbolicLink()).toBe(true);
|
|
199
|
+
});
|
|
200
|
+
// Which roots the staging run writes depends on the agents the skills CLI
|
|
201
|
+
// detects, so discovery must not assume `.claude`.
|
|
202
|
+
(0, vitest_1.it)("discovers skill names staged under any agent root", () => {
|
|
203
|
+
const projectRoot = makeRoot();
|
|
204
|
+
const cache = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skills-cache-"));
|
|
205
|
+
dirs.push(cache);
|
|
206
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(projectRoot, ".claude", "skills"), { recursive: true });
|
|
207
|
+
const leftover = (0, path_1.join)(projectRoot, ".claude", "skills", "meticulous-cli");
|
|
208
|
+
(0, fs_1.symlinkSync)(cache, leftover);
|
|
209
|
+
mockTrustedCliSpawns(projectRoot, { stageInto: ".agents" });
|
|
210
|
+
const log = vitest_1.vi.spyOn(console, "log").mockImplementation(() => undefined);
|
|
211
|
+
try {
|
|
212
|
+
(0, vitest_1.expect)((0, setup_agent_integrations_1.installSkills)(projectRoot)).toBe(true);
|
|
213
|
+
}
|
|
214
|
+
finally {
|
|
215
|
+
log.mockRestore();
|
|
216
|
+
}
|
|
217
|
+
// Discovery found the name, so the leftover link was cleared for --copy.
|
|
218
|
+
(0, vitest_1.expect)(repoInstallCalls(projectRoot)).toHaveLength(1);
|
|
219
|
+
(0, vitest_1.expect)(() => (0, fs_1.lstatSync)(leftover)).toThrow();
|
|
220
|
+
});
|
|
221
|
+
// An empty name list would silently disable every symlink guard.
|
|
222
|
+
(0, vitest_1.it)("does not install when discovery finds no skills", () => {
|
|
223
|
+
const projectRoot = makeRoot();
|
|
224
|
+
mockTrustedCliSpawns(projectRoot, { stageInto: null });
|
|
225
|
+
const log = vitest_1.vi.spyOn(console, "log").mockImplementation(() => undefined);
|
|
226
|
+
try {
|
|
227
|
+
(0, vitest_1.expect)((0, setup_agent_integrations_1.installSkills)(projectRoot)).toBe(false);
|
|
228
|
+
}
|
|
229
|
+
finally {
|
|
230
|
+
log.mockRestore();
|
|
231
|
+
}
|
|
232
|
+
(0, vitest_1.expect)(repoInstallCalls(projectRoot)).toHaveLength(0);
|
|
233
|
+
});
|
|
234
|
+
// Here the installer would write into the dest and follow the nested link.
|
|
235
|
+
(0, vitest_1.it)("never runs the installer into a dest holding a nested symlink", () => {
|
|
236
|
+
const projectRoot = makeRoot();
|
|
237
|
+
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skills-planted-"));
|
|
238
|
+
dirs.push(outside);
|
|
239
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(projectRoot, ".claude", "skills", "meticulous-cli"), {
|
|
240
|
+
recursive: true,
|
|
241
|
+
});
|
|
242
|
+
const planted = (0, path_1.join)(projectRoot, ".claude", "skills", "meticulous-cli", "scripts");
|
|
243
|
+
(0, fs_1.symlinkSync)(outside, planted);
|
|
244
|
+
mockTrustedCliSpawns(projectRoot);
|
|
245
|
+
const log = vitest_1.vi.spyOn(console, "log").mockImplementation(() => undefined);
|
|
246
|
+
try {
|
|
247
|
+
(0, vitest_1.expect)((0, setup_agent_integrations_1.installSkills)(projectRoot)).toBe(false);
|
|
248
|
+
}
|
|
249
|
+
finally {
|
|
250
|
+
log.mockRestore();
|
|
251
|
+
}
|
|
252
|
+
(0, vitest_1.expect)(repoInstallCalls(projectRoot)).toHaveLength(0);
|
|
253
|
+
(0, vitest_1.expect)((0, fs_1.lstatSync)(planted).isSymbolicLink()).toBe(true);
|
|
254
|
+
});
|
|
140
255
|
(0, vitest_1.it)("continues without skills when the registry download fails", () => {
|
|
141
256
|
const projectRoot = makeRoot();
|
|
142
257
|
spawnSync.mockImplementation(() => ({
|
|
@@ -155,4 +270,4 @@ const makeRoot = () => {
|
|
|
155
270
|
});
|
|
156
271
|
});
|
|
157
272
|
//# sourceMappingURL=install-skills.spec.js.map
|
|
158
|
-
//# debugId=
|
|
273
|
+
//# debugId=53753f65-dc75-561a-a18b-2173f536c0d0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-skills.spec.js","sources":["../../../../src/commands/onboard/__tests__/install-skills.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"ad19583d-8538-5ed7-88f9-501d2a8dafd0"}
|
|
1
|
+
{"version":3,"file":"install-skills.spec.js","sources":["../../../../src/commands/onboard/__tests__/install-skills.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,2BAOY;AACZ,2BAA4B;AAC5B,+BAAuC;AACvC,mCAAyE;AAEzE,MAAM,SAAS,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;AAE1B,WAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CACtD,CAAC,CAAC,CAAC;AAEJ,0EAKqC;AAErC,MAAM,IAAI,GAAa,EAAE,CAAC;AAE1B,MAAM,QAAQ,GAAG,GAAW,EAAE;IAC5B,MAAM,IAAI,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,IAAA,kBAAS,EAAC,GAAG,EAAE;IACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,IAAA,WAAM,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAU,EAAC,GAAG,EAAE;IACd,SAAS,CAAC,SAAS,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAC3B,WAAmB,EACnB,UAAyC,EAAE,EACrC,EAAE;IACR,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;IAC1C,SAAS,CAAC,kBAAkB,CAC1B,CACE,OAAe,EACf,OAAiB,EAAE,EACnB,eAAiC,EAAE,EACnC,EAAE;QACF,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;gBACvD,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,IAAA,kBAAa,EACX,IAAA,WAAI,EAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,EACxD,cAAc,CACf,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACjE,CAAC;QACD,IACE,OAAO,KAAK,OAAO,CAAC,QAAQ;YAC5B,YAAY,CAAC,GAAG,KAAK,WAAW;YAChC,SAAS,KAAK,IAAI,EAClB,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;gBACrC,IAAA,cAAS,EACP,IAAA,WAAI,EAAC,YAAY,CAAC,GAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,EAC3D,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACjE,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAe,EAAE,CAC5D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CACzB,CAAC,IAAe,EAAE,EAAE,CAClB,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ;IAC3B,IAAI,CAAC,CAAC,CAAkC,EAAE,GAAG,KAAK,WAAW,CACjE,CAAC;AAEJ,IAAA,iBAAQ,EAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAA,WAAE,EAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,SAAS,GAAG,IAAA,mDAAwB,EAAC;YACzC,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,qBAAqB;YACnC,SAAS,EAAE,oBAAoB;YAC/B,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,SAAS,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAA,eAAM,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,yEAAyE;IACzE,qBAAqB;IACrB,IAAA,WAAE,EAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,SAAS,GAAG,IAAA,mDAAwB,EAAC;YACzC,IAAI,EAAE,UAAU;YAChB,mBAAmB,EAAE,qBAAqB;YAC1C,gBAAgB,EAAE,kBAAkB;YACpC,qBAAqB,EAAE,cAAc;YACrC,mBAAmB,EAAE,qBAAqB;SAC3C,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC;QACtD,IAAA,eAAM,EAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,aAAa,EAAE,CAAC;QACnD,IAAA,eAAM,EAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,aAAa,EAAE,CAAC;QACxD,IAAA,eAAM,EAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC;QACtD,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,IAAA,WAAE,EAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,SAAS,GAAG,IAAA,mDAAwB,EAAC;YACzC,IAAI,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC,IAAI,CAClE,gBAAS,CACV;SACF,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAS,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,SAAS,GAAG,IAAA,mDAAwB,EAAC;YACzC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW;YACjB,mBAAmB,EAAE,SAAS;SAC/B,CAAC,CAAC;QAEH,sEAAsE;QACtE,mCAAmC;QACnC,IAAA,eAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC/B,iEAAiE;QACjE,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,IAAA,kBAAa,EACX,IAAA,WAAI,EAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,EACnD,qCAAqC,EACrC,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;QAEF,SAAS,CAAC,kBAAkB,CAC1B,CACE,OAAe,EACf,OAAiB,EAAE,EACnB,UAAqD,EAAE,EACvD,EAAE;YACF,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACnC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC5B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACrC,IAAA,eAAM,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,SAAS,CAAC,kDAAuB,CAAC,CAAC;gBAChD,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBAC3C,IAAA,eAAM,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;gBAClD,IAAA,eAAM,EAAC,OAAO,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC;gBACzD,IAAA,eAAM,EAAC,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;gBACnE,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;oBACvD,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;gBACH,IAAA,kBAAa,EACX,IAAA,WAAI,EAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,EACxD,cAAc,CACf,CAAC;gBACF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACjE,CAAC;YAED,IAAI,OAAO,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACjC,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CACrB,+CAA+C,CAChD,CAAC;gBACF,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAA,eAAM,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;gBAElD,+DAA+D;gBAC/D,IAAI,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;oBAChC,IAAA,eAAM,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;oBACjC,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;wBACrC,IAAA,cAAS,EACP,IAAA,WAAI,EAAC,OAAO,CAAC,GAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,EACtD;4BACE,SAAS,EAAE,IAAI;yBAChB,CACF,CAAC;oBACJ,CAAC;oBACD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;gBACjE,CAAC;gBAED,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,0CAAe,CAAC,CAAC,CAAC;gBACpD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACjE,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC,CACF,CAAC;QAEF,MAAM,WAAW,GAAG;YAClB,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;YACtC,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;YACpD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;SACvB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,qBAAqB,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG;YACjB,IAAA,WAAI,EAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC;YACzC,WAAW,CAAC,IAAI,IAAI,EAAE;SACvB,CAAC,IAAI,CAAC,gBAAS,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,IAAA,eAAM,EAAC,IAAA,wCAAa,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CACvC,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAW,CACvC,CAAC;QACF,8DAA8D;QAC9D,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,+BAA+B;IAC/B,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,IAAA,gBAAW,EACT,OAAO,EACP,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAC1D,CAAC;QACF,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,IAAA,eAAM,EAAC,IAAA,wCAAa,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAED,IAAA,eAAM,EAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtD,IAAA,eAAM,EACJ,IAAA,cAAS,EACP,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAC1D,CAAC,cAAc,EAAE,CACnB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,mDAAmD;IACnD,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1E,IAAA,gBAAW,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7B,oBAAoB,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAE5D,MAAM,GAAG,GAAG,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,IAAA,eAAM,EAAC,IAAA,wCAAa,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAED,yEAAyE;QACzE,IAAA,eAAM,EAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtD,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,cAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC/B,oBAAoB,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,IAAA,eAAM,EAAC,IAAA,wCAAa,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAED,IAAA,eAAM,EAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,IAAA,WAAE,EAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE;YAClE,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,WAAI,EAClB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,SAAS,CACV,CAAC;QACF,IAAA,gBAAW,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,IAAA,eAAM,EAAC,IAAA,wCAAa,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAED,IAAA,eAAM,EAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtD,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC/B,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,EAAE;SACX,CAAC,CAAC,CAAC;QAEJ,MAAM,GAAG,GAAG,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,IAAA,eAAM,EAAC,IAAA,wCAAa,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","debugId":"53753f65-dc75-561a-a18b-2173f536c0d0"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f69db021-b7af-5f4f-b507-7b27f238307e")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
const fs_1 = require("fs");
|
|
@@ -14,6 +14,8 @@ const makeRoot = () => {
|
|
|
14
14
|
dirs.push(root);
|
|
15
15
|
return root;
|
|
16
16
|
};
|
|
17
|
+
/** The skills the install under test will write. */
|
|
18
|
+
const SKILL_NAMES = ["meticulous-cli"];
|
|
17
19
|
(0, vitest_1.afterEach)(() => {
|
|
18
20
|
for (const dir of dirs.splice(0)) {
|
|
19
21
|
(0, fs_1.rmSync)(dir, { recursive: true, force: true });
|
|
@@ -64,7 +66,7 @@ const makeRoot = () => {
|
|
|
64
66
|
(0, vitest_1.describe)("prepareSafeSkillsInstallTargets", () => {
|
|
65
67
|
(0, vitest_1.it)("creates real .claude/.agents/.cursor skills dirs", () => {
|
|
66
68
|
const root = makeRoot();
|
|
67
|
-
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root);
|
|
69
|
+
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES);
|
|
68
70
|
for (const dir of safe_repo_fs_1.SKILLS_INSTALL_DIR_ROOTS) {
|
|
69
71
|
(0, vitest_1.expect)((0, fs_1.lstatSync)((0, path_1.join)(root, dir)).isSymbolicLink()).toBe(false);
|
|
70
72
|
(0, vitest_1.expect)((0, fs_1.lstatSync)((0, path_1.join)(root, dir, "skills")).isDirectory()).toBe(true);
|
|
@@ -75,14 +77,14 @@ const makeRoot = () => {
|
|
|
75
77
|
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-agents-out-"));
|
|
76
78
|
dirs.push(outside);
|
|
77
79
|
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, ".agents"));
|
|
78
|
-
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root)).toThrow(/symlink/i);
|
|
80
|
+
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES)).toThrow(/symlink/i);
|
|
79
81
|
});
|
|
80
82
|
(0, vitest_1.it)("rejects a symlinked .cursor before skills install", () => {
|
|
81
83
|
const root = makeRoot();
|
|
82
84
|
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-cursor-out-"));
|
|
83
85
|
dirs.push(outside);
|
|
84
86
|
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, ".cursor"));
|
|
85
|
-
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root)).toThrow(/symlink/i);
|
|
87
|
+
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES)).toThrow(/symlink/i);
|
|
86
88
|
});
|
|
87
89
|
(0, vitest_1.it)("rejects a symlinked skills-lock.json before skills install", () => {
|
|
88
90
|
const root = makeRoot();
|
|
@@ -90,48 +92,125 @@ const makeRoot = () => {
|
|
|
90
92
|
(0, fs_1.writeFileSync)(outside, "{}\n");
|
|
91
93
|
dirs.push(outside);
|
|
92
94
|
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, "skills-lock.json"));
|
|
93
|
-
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root)).toThrow(/symlink/i);
|
|
95
|
+
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES)).toThrow(/symlink/i);
|
|
94
96
|
});
|
|
95
|
-
(0, vitest_1.it)("
|
|
97
|
+
(0, vitest_1.it)("unlinks a leftover dest for a skill being installed so --copy can write a real directory", () => {
|
|
96
98
|
const root = makeRoot();
|
|
97
|
-
const
|
|
98
|
-
dirs.push(
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
const cache = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skill-cache-"));
|
|
100
|
+
dirs.push(cache);
|
|
101
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(cache, "SKILL.md"), "from cache\n");
|
|
102
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(root, ".claude", "skills"), { recursive: true });
|
|
103
|
+
(0, fs_1.symlinkSync)(cache, (0, path_1.join)(root, ".claude", "skills", "meticulous-cli"));
|
|
104
|
+
(0, vitest_1.expect)((0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES).blockingLinks).toEqual([]);
|
|
105
|
+
const dest = (0, path_1.join)(root, ".claude", "skills", "meticulous-cli");
|
|
106
|
+
(0, vitest_1.expect)((0, fs_1.lstatSync)(cache).isDirectory()).toBe(true);
|
|
107
|
+
(0, vitest_1.expect)(() => (0, fs_1.lstatSync)(dest)).toThrow();
|
|
108
|
+
});
|
|
109
|
+
// Another tool's linked skill is never a dest of this install, so it neither
|
|
110
|
+
// gets deleted nor stops us installing.
|
|
111
|
+
(0, vitest_1.it)("ignores a skill link for a skill this install does not write", () => {
|
|
112
|
+
const root = makeRoot();
|
|
113
|
+
const cache = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-third-party-"));
|
|
114
|
+
dirs.push(cache);
|
|
101
115
|
(0, fs_1.mkdirSync)((0, path_1.join)(root, ".claude", "skills"), { recursive: true });
|
|
102
|
-
|
|
103
|
-
(0,
|
|
116
|
+
const theirs = (0, path_1.join)(root, ".claude", "skills", "some-other-tool");
|
|
117
|
+
(0, fs_1.symlinkSync)(cache, theirs);
|
|
118
|
+
(0, fs_1.symlinkSync)(cache, (0, path_1.join)(root, ".claude", "skills", "meticulous-cli"));
|
|
119
|
+
(0, vitest_1.expect)((0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES).blockingLinks).toEqual([]);
|
|
120
|
+
(0, vitest_1.expect)((0, fs_1.lstatSync)(theirs).isSymbolicLink()).toBe(true);
|
|
121
|
+
(0, vitest_1.expect)(() => (0, fs_1.lstatSync)((0, path_1.join)(root, ".claude", "skills", "meticulous-cli"))).toThrow();
|
|
122
|
+
});
|
|
123
|
+
(0, vitest_1.it)("ignores a symlink nested inside another tool's skill", () => {
|
|
124
|
+
const root = makeRoot();
|
|
125
|
+
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-third-party-nested-"));
|
|
126
|
+
dirs.push(outside);
|
|
127
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(root, ".claude", "skills", "some-other-tool"), {
|
|
128
|
+
recursive: true,
|
|
129
|
+
});
|
|
130
|
+
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, ".claude", "skills", "some-other-tool", "scripts"));
|
|
131
|
+
(0, vitest_1.expect)((0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES).blockingLinks).toEqual([]);
|
|
104
132
|
});
|
|
105
|
-
|
|
133
|
+
// Here we really cannot install: the installer writes into this dest and
|
|
134
|
+
// would follow the nested link, and it is not ours to delete.
|
|
135
|
+
(0, vitest_1.it)("reports a symlink nested inside a dest this install writes", () => {
|
|
106
136
|
const root = makeRoot();
|
|
107
|
-
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skill-
|
|
137
|
+
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skill-nested-"));
|
|
108
138
|
dirs.push(outside);
|
|
109
|
-
|
|
139
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(root, ".claude", "skills", "meticulous-cli"), {
|
|
140
|
+
recursive: true,
|
|
141
|
+
});
|
|
142
|
+
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, ".claude", "skills", "meticulous-cli", "scripts"));
|
|
143
|
+
(0, vitest_1.expect)((0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES).blockingLinks).toEqual([".claude/skills/meticulous-cli/scripts"]);
|
|
144
|
+
});
|
|
145
|
+
(0, vitest_1.it)("leaves leftover dests in place when the install is blocked", () => {
|
|
146
|
+
const root = makeRoot();
|
|
147
|
+
const cache = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-mixed-"));
|
|
148
|
+
dirs.push(cache);
|
|
149
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(root, ".agents", "skills", "meticulous-cli"), {
|
|
150
|
+
recursive: true,
|
|
151
|
+
});
|
|
152
|
+
(0, fs_1.symlinkSync)(cache, (0, path_1.join)(root, ".agents", "skills", "meticulous-cli", "scripts"));
|
|
153
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(root, ".claude", "skills"), { recursive: true });
|
|
154
|
+
const leftover = (0, path_1.join)(root, ".claude", "skills", "meticulous-cli");
|
|
155
|
+
(0, fs_1.symlinkSync)(cache, leftover);
|
|
156
|
+
(0, vitest_1.expect)((0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES).blockingLinks).toEqual([".agents/skills/meticulous-cli/scripts"]);
|
|
157
|
+
// The installer will not run, so there is nothing to make room for.
|
|
158
|
+
(0, vitest_1.expect)((0, fs_1.lstatSync)(leftover).isSymbolicLink()).toBe(true);
|
|
159
|
+
});
|
|
160
|
+
(0, vitest_1.it)("unlinks leftover dests under every agent tree", () => {
|
|
161
|
+
const root = makeRoot();
|
|
162
|
+
const cache = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skill-out-"));
|
|
163
|
+
dirs.push(cache);
|
|
164
|
+
for (const dir of [".claude", ".agents", ".cursor"]) {
|
|
110
165
|
(0, fs_1.mkdirSync)((0, path_1.join)(root, dir, "skills"), { recursive: true });
|
|
111
|
-
(0, fs_1.symlinkSync)(
|
|
112
|
-
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root)).toThrow(/symlink/i);
|
|
113
|
-
(0, fs_1.rmSync)((0, path_1.join)(root, dir), { recursive: true, force: true });
|
|
166
|
+
(0, fs_1.symlinkSync)(cache, (0, path_1.join)(root, dir, "skills", "meticulous-cli"));
|
|
114
167
|
}
|
|
168
|
+
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES);
|
|
169
|
+
for (const dir of [".claude", ".agents", ".cursor"]) {
|
|
170
|
+
(0, vitest_1.expect)(() => (0, fs_1.lstatSync)((0, path_1.join)(root, dir, "skills", "meticulous-cli"))).toThrow();
|
|
171
|
+
}
|
|
172
|
+
(0, vitest_1.expect)((0, fs_1.lstatSync)(cache).isDirectory()).toBe(true);
|
|
115
173
|
});
|
|
116
174
|
});
|
|
117
175
|
(0, vitest_1.describe)("assertSafeSkillsInstallTargets", () => {
|
|
118
|
-
|
|
176
|
+
// The pre-check leaves every dest we write symlink-free, so one appearing
|
|
177
|
+
// afterwards was planted during the install.
|
|
178
|
+
(0, vitest_1.it)("rejects a symlink planted on a dest after the pre-check", () => {
|
|
119
179
|
const root = makeRoot();
|
|
120
|
-
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root);
|
|
180
|
+
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES);
|
|
121
181
|
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skill-toctou-"));
|
|
122
182
|
dirs.push(outside);
|
|
123
|
-
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, ".claude", "skills", "
|
|
124
|
-
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.assertSafeSkillsInstallTargets)(root)).toThrow(/symlink.*
|
|
183
|
+
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, ".claude", "skills", "meticulous-cli"));
|
|
184
|
+
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.assertSafeSkillsInstallTargets)(root, SKILL_NAMES)).toThrow(/symlink.*meticulous-cli/i);
|
|
185
|
+
});
|
|
186
|
+
(0, vitest_1.it)("rejects a symlink planted inside a dest after the pre-check", () => {
|
|
187
|
+
const root = makeRoot();
|
|
188
|
+
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES);
|
|
189
|
+
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skill-toctou-deep-"));
|
|
190
|
+
dirs.push(outside);
|
|
191
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(root, ".claude", "skills", "meticulous-cli"), {
|
|
192
|
+
recursive: true,
|
|
193
|
+
});
|
|
194
|
+
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, ".claude", "skills", "meticulous-cli", "scripts"));
|
|
195
|
+
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.assertSafeSkillsInstallTargets)(root, SKILL_NAMES)).toThrow(/symlink.*meticulous-cli\/scripts/i);
|
|
196
|
+
});
|
|
197
|
+
(0, vitest_1.it)("ignores another tool's skill link", () => {
|
|
198
|
+
const root = makeRoot();
|
|
199
|
+
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES);
|
|
200
|
+
const outside = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), "onboard-skill-other-"));
|
|
201
|
+
dirs.push(outside);
|
|
202
|
+
(0, fs_1.symlinkSync)(outside, (0, path_1.join)(root, ".claude", "skills", "some-other-tool"));
|
|
203
|
+
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.assertSafeSkillsInstallTargets)(root, SKILL_NAMES)).not.toThrow();
|
|
125
204
|
});
|
|
126
205
|
(0, vitest_1.it)("allows a real nested skill directory with no symlinks", () => {
|
|
127
206
|
const root = makeRoot();
|
|
128
|
-
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root);
|
|
207
|
+
(0, safe_repo_fs_1.prepareSafeSkillsInstallTargets)(root, SKILL_NAMES);
|
|
129
208
|
(0, fs_1.mkdirSync)((0, path_1.join)(root, ".claude", "skills", "meticulous-cli", "scripts"), {
|
|
130
209
|
recursive: true,
|
|
131
210
|
});
|
|
132
211
|
(0, fs_1.writeFileSync)((0, path_1.join)(root, ".claude", "skills", "meticulous-cli", "SKILL.md"), "# ok\n");
|
|
133
|
-
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.assertSafeSkillsInstallTargets)(root)).not.toThrow();
|
|
212
|
+
(0, vitest_1.expect)(() => (0, safe_repo_fs_1.assertSafeSkillsInstallTargets)(root, SKILL_NAMES)).not.toThrow();
|
|
134
213
|
});
|
|
135
214
|
});
|
|
136
215
|
//# sourceMappingURL=safe-repo-fs.spec.js.map
|
|
137
|
-
//# debugId=
|
|
216
|
+
//# debugId=f69db021-b7af-5f4f-b507-7b27f238307e
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-repo-fs.spec.js","sources":["../../../../src/commands/onboard/__tests__/safe-repo-fs.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,2BAQY;AACZ,2BAA4B;AAC5B,+BAA4B;AAC5B,mCAAyD;AACzD,kEAA6D;AAC7D,kDAOyB;AAEzB,MAAM,IAAI,GAAa,EAAE,CAAC;AAE1B,MAAM,QAAQ,GAAG,GAAW,EAAE;IAC5B,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,IAAA,kBAAS,EAAC,GAAG,EAAE;IACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,IAAA,WAAM,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAA,WAAE,EAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,eAAM,EAAC,IAAA,mCAAoB,EAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAC5D,IAAA,WAAI,EAAC,IAAI,EAAE,qBAAqB,CAAC,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,mCAAoB,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAC5D,6BAAY,CACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;QACvD,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAExD,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,gCAAiB,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,qBAAqB,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CACvE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,mEAAmE;QACnE,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,mCAAoB,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC,CACrE,CAAC,OAAO,CAAC,6BAAY,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,qBAAqB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClE,IAAA,kBAAa,EAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;QAE/C,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,gCAAiB,EAAC,IAAI,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAChE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,4BAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,qBAAqB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAA,gCAAiB,EACf,IAAI,EACJ,IAAA,WAAI,EAAC,qBAAqB,EAAE,SAAS,EAAE,WAAW,CAAC,EACnD,MAAM,CACP,CAAC;QACF,IAAA,eAAM,EACJ,IAAA,mCAAoB,EAClB,IAAI,EACJ,IAAA,WAAI,EAAC,qBAAqB,EAAE,SAAS,EAAE,WAAW,CAAC,CACpD,CACF,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACjC,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAExD,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,gCAAiB,EACf,IAAI,EACJ,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,EAC3B,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACnC,CACF,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAA,WAAE,EAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,8CAA+B,EAAC,IAAI,CAAC,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,uCAAwB,EAAE,CAAC;YAC3C,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAE5C,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,8CAA+B,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAE5C,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,8CAA+B,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAA,kBAAa,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAErD,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,8CAA+B,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,sEAAsE;QACtE,4CAA4C;QAC5C,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;QAEpE,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,8CAA+B,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACzD,wCAAwC,CACzC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnB,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAU,EAAE,CAAC;YAClD,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;YAC3D,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,8CAA+B,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxE,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,8CAA+B,EAAC,IAAI,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;QAEtE,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,6CAA8B,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACxD,wBAAwB,CACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,8CAA+B,EAAC,IAAI,CAAC,CAAC;QACtC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE;YACtE,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAA,kBAAa,EACX,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAC7D,QAAQ,CACT,CAAC;QAEF,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,6CAA8B,EAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","debugId":"edf0f77d-f913-5f83-bc22-a26182e48546"}
|
|
1
|
+
{"version":3,"file":"safe-repo-fs.spec.js","sources":["../../../../src/commands/onboard/__tests__/safe-repo-fs.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,2BAQY;AACZ,2BAA4B;AAC5B,+BAA4B;AAC5B,mCAAyD;AACzD,kEAA6D;AAC7D,kDAOyB;AAEzB,MAAM,IAAI,GAAa,EAAE,CAAC;AAE1B,MAAM,QAAQ,GAAG,GAAW,EAAE;IAC5B,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,oDAAoD;AACpD,MAAM,WAAW,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAEvC,IAAA,kBAAS,EAAC,GAAG,EAAE;IACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,IAAA,WAAM,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAA,WAAE,EAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,eAAM,EAAC,IAAA,mCAAoB,EAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAC5D,IAAA,WAAI,EAAC,IAAI,EAAE,qBAAqB,CAAC,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,mCAAoB,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAC5D,6BAAY,CACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;QACvD,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAExD,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,gCAAiB,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,qBAAqB,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CACvE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,mEAAmE;QACnE,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,mCAAoB,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC,CACrE,CAAC,OAAO,CAAC,6BAAY,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,qBAAqB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClE,IAAA,kBAAa,EAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;QAE/C,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,gCAAiB,EAAC,IAAI,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAChE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,4BAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,qBAAqB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAA,gCAAiB,EACf,IAAI,EACJ,IAAA,WAAI,EAAC,qBAAqB,EAAE,SAAS,EAAE,WAAW,CAAC,EACnD,MAAM,CACP,CAAC;QACF,IAAA,eAAM,EACJ,IAAA,mCAAoB,EAClB,IAAI,EACJ,IAAA,WAAI,EAAC,qBAAqB,EAAE,SAAS,EAAE,WAAW,CAAC,CACpD,CACF,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACjC,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAExD,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,gCAAiB,EACf,IAAI,EACJ,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,EAC3B,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACnC,CACF,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAA,WAAE,EAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,uCAAwB,EAAE,CAAC;YAC3C,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAE5C,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CACtE,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAE5C,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CACtE,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAA,kBAAa,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAErD,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CACtE,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0FAA0F,EAAE,GAAG,EAAE;QAClG,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,KAAK,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC;QACvD,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,IAAA,gBAAW,EAAC,KAAK,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAEtE,IAAA,eAAM,EACJ,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,aAAa,CACjE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEd,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC/D,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,cAAS,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,wCAAwC;IACxC,IAAA,WAAE,EAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAClE,IAAA,gBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3B,IAAA,gBAAW,EAAC,KAAK,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAEtE,IAAA,eAAM,EACJ,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,aAAa,CACjE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEd,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAC7D,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE;YAC5D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAA,gBAAW,EACT,OAAO,EACP,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAC9D,CAAC;QAEF,IAAA,eAAM,EACJ,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,aAAa,CACjE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,8DAA8D;IAC9D,IAAA,WAAE,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE;YAC3D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAA,gBAAW,EACT,OAAO,EACP,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAC7D,CAAC;QAEF,IAAA,eAAM,EACJ,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,aAAa,CACjE,CAAC,OAAO,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE;YAC3D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAA,gBAAW,EACT,KAAK,EACL,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAC7D,CAAC;QACF,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACnE,IAAA,gBAAW,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE7B,IAAA,eAAM,EACJ,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,aAAa,CACjE,CAAC,OAAO,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACrD,oEAAoE;QACpE,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjB,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,EAAE,CAAC;YAC7D,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAA,gBAAW,EAAC,KAAK,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEnD,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,EAAE,CAAC;YAC7D,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CACvD,CAAC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAA,eAAM,EAAC,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,0EAA0E;IAC1E,6CAA6C;IAC7C,IAAA,WAAE,EAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAExE,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,6CAA8B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CACrE,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE;YAC3D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAA,gBAAW,EACT,OAAO,EACP,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAC7D,CAAC;QAEF,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,6CAA8B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CACrE,mCAAmC,CACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAA,gBAAW,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAEzE,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,6CAA8B,EAAC,IAAI,EAAE,WAAW,CAAC,CAClD,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAA,8CAA+B,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACnD,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE;YACtE,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAA,kBAAa,EACX,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAC7D,QAAQ,CACT,CAAC;QAEF,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,IAAA,6CAA8B,EAAC,IAAI,EAAE,WAAW,CAAC,CAClD,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","debugId":"f69db021-b7af-5f4f-b507-7b27f238307e"}
|
|
@@ -35,25 +35,32 @@ export declare const isRealDirectoryInsideProject: (projectRoot: string, absolut
|
|
|
35
35
|
*/
|
|
36
36
|
export declare const SKILLS_INSTALL_DIR_ROOTS: readonly [".claude", ".agents", ".cursor"];
|
|
37
37
|
export declare const SKILLS_INSTALL_FILE_TARGETS: readonly ["skills-lock.json"];
|
|
38
|
+
export interface SkillsInstallTargets {
|
|
39
|
+
/**
|
|
40
|
+
* Symlinks at or under a dest this install will write, which we cannot
|
|
41
|
+
* replace ourselves. Non-empty means the installer must not run.
|
|
42
|
+
*/
|
|
43
|
+
blockingLinks: string[];
|
|
44
|
+
}
|
|
38
45
|
/**
|
|
39
|
-
* Rejects symlinks
|
|
46
|
+
* Rejects parent-path symlinks the installer would write through, then
|
|
40
47
|
* creates the destination directory roots as real directories inside the repo.
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
48
|
+
*
|
|
49
|
+
* `skillNames` is the exact set of skills this install will write, so the
|
|
50
|
+
* guard only looks at those dests. A link for any other skill belongs to
|
|
51
|
+
* another tool, is never written through, and is ignored.
|
|
52
|
+
*
|
|
53
|
+
* A dest we are about to write, such as `.claude/skills/meticulous-cli`, is
|
|
54
|
+
* often a leftover *link* into a cache from `skills add` without `--copy`.
|
|
55
|
+
* Unlink those (the link only, never the target) so `--copy` can write a real
|
|
56
|
+
* directory. A symlink nested inside such a dest is reported instead: the
|
|
57
|
+
* installer would write through it and it is not ours to delete.
|
|
51
58
|
*/
|
|
52
|
-
export declare const
|
|
59
|
+
export declare const prepareSafeSkillsInstallTargets: (projectRoot: string, skillNames: readonly string[]) => SkillsInstallTargets;
|
|
53
60
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
61
|
+
* Re-checks the dests this install wrote, so a TOCTOU symlink plant during the
|
|
62
|
+
* install cannot go unnoticed — including nested ones. Dests for other tools'
|
|
63
|
+
* skills are not ours to police.
|
|
57
64
|
*/
|
|
58
|
-
export declare const
|
|
65
|
+
export declare const assertSafeSkillsInstallTargets: (projectRoot: string, skillNames: readonly string[]) => void;
|
|
59
66
|
//# sourceMappingURL=safe-repo-fs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-repo-fs.d.ts","sourceRoot":"","sources":["../../../src/commands/onboard/safe-repo-fs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"safe-repo-fs.d.ts","sourceRoot":"","sources":["../../../src/commands/onboard/safe-repo-fs.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,eAAO,MAAM,sBAAsB,gBAAiB,MAAM,KAAG,MAW5D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,gBAClB,MAAM,gBACL,MAAM,KACnB,MAmDF,CAAC;AAEF,eAAO,MAAM,aAAa,gBACX,MAAM,gBACL,MAAM,KACnB,MAOF,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBACf,MAAM,gBACL,MAAM,QACd,MAAM,GAAG,MAAM,CAAC,eAAe,KACpC,MAUF,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBACd,MAAM,gBACL,MAAM,sBACA,MAAM,KACzB,MAQF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,gBAC1B,MAAM,gBACL,MAAM,KACnB,MAiBF,CAAC;AAMF,eAAO,MAAM,yBAAyB,iBAAkB,MAAM,KAAG,MAgBhE,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,aAAa,MAAM,KAAG,OAQlE,CAAC;AAUF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,gBAC1B,MAAM,gBACL,MAAM,KACnB,OAaF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,4CAI3B,CAAC;AAEX,eAAO,MAAM,2BAA2B,+BAAgC,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,+BAA+B,gBAC7B,MAAM,cACP,SAAS,MAAM,EAAE,KAC5B,oBAgDF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,gBAC5B,MAAM,cACP,SAAS,MAAM,EAAE,KAC5B,IAoBF,CAAC"}
|