@alwaysmeticulous/cli 2.331.2 → 2.332.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 +16 -0
- 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__/print-next-steps.spec.d.ts +2 -0
- package/dist/commands/onboard/__tests__/print-next-steps.spec.d.ts.map +1 -0
- package/dist/commands/onboard/__tests__/print-next-steps.spec.js +67 -0
- package/dist/commands/onboard/__tests__/print-next-steps.spec.js.map +1 -0
- package/dist/commands/onboard/__tests__/resolve-project.spec.d.ts +2 -0
- package/dist/commands/onboard/__tests__/resolve-project.spec.d.ts.map +1 -0
- package/dist/commands/onboard/__tests__/resolve-project.spec.js +44 -0
- package/dist/commands/onboard/__tests__/resolve-project.spec.js.map +1 -0
- 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/__tests__/skills-install-choice.spec.d.ts +2 -0
- package/dist/commands/onboard/__tests__/skills-install-choice.spec.d.ts.map +1 -0
- package/dist/commands/onboard/__tests__/skills-install-choice.spec.js +51 -0
- package/dist/commands/onboard/__tests__/skills-install-choice.spec.js.map +1 -0
- package/dist/commands/onboard/__tests__/validate-ci-yaml.spec.d.ts +2 -0
- package/dist/commands/onboard/__tests__/validate-ci-yaml.spec.d.ts.map +1 -0
- package/dist/commands/onboard/__tests__/validate-ci-yaml.spec.js +112 -0
- package/dist/commands/onboard/__tests__/validate-ci-yaml.spec.js.map +1 -0
- package/dist/commands/onboard/build-context.d.ts +1 -0
- package/dist/commands/onboard/build-context.d.ts.map +1 -1
- package/dist/commands/onboard/build-context.js +6 -6
- package/dist/commands/onboard/build-context.js.map +1 -1
- package/dist/commands/onboard/customer-agents.json +0 -1
- package/dist/commands/onboard/customer-docs.json +1 -0
- package/dist/commands/onboard/docs-urls.d.ts +2 -0
- package/dist/commands/onboard/docs-urls.d.ts.map +1 -1
- package/dist/commands/onboard/docs-urls.js +5 -3
- package/dist/commands/onboard/docs-urls.js.map +1 -1
- package/dist/commands/onboard/index.d.ts.map +1 -1
- package/dist/commands/onboard/index.js +8 -6
- package/dist/commands/onboard/index.js.map +1 -1
- package/dist/commands/onboard/launch-agent.d.ts +1 -0
- package/dist/commands/onboard/launch-agent.d.ts.map +1 -1
- package/dist/commands/onboard/launch-agent.js +26 -15
- package/dist/commands/onboard/launch-agent.js.map +1 -1
- package/dist/commands/onboard/resolve-project.d.ts +9 -1
- package/dist/commands/onboard/resolve-project.d.ts.map +1 -1
- package/dist/commands/onboard/resolve-project.js +26 -4
- package/dist/commands/onboard/resolve-project.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 +2 -1
- package/dist/commands/onboard/setup-agent-integrations.d.ts.map +1 -1
- package/dist/commands/onboard/setup-agent-integrations.js +122 -13
- package/dist/commands/onboard/setup-agent-integrations.js.map +1 -1
- package/dist/commands/onboard/templates/CLAUDE.md +22 -9
- package/dist/commands/onboard/templates/agents/ci-setup.md +28 -0
- package/dist/commands/onboard/templates/agents/recorder-installation.md +6 -0
- package/dist/commands/onboard/templates/docs/ci.ts +2 -6
- package/dist/commands/onboard/templates/docs/github-actions-v2.ts +43 -37
- package/dist/commands/onboard/templates/docs/how-to/connect-git-provider.ts +26 -0
- package/dist/commands/onboard/templates/docs/how-to/typescript-types.ts +1 -1
- package/dist/commands/onboard/templates/docs/onboarding-guide.ts +77 -356
- package/dist/commands/onboard/templates/docs/recorder-getting-started.ts +5 -2
- package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/nuxtjs-instructions.ts +1 -1
- package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/rsbuild-instructions.ts +1 -1
- package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/vite-instructions.ts +1 -1
- package/dist/commands/onboard/templates/docs/reference/cli-commands.ts +37 -0
- package/dist/commands/onboard/validate-ci-yaml.d.ts +22 -0
- package/dist/commands/onboard/validate-ci-yaml.d.ts.map +1 -0
- package/dist/commands/onboard/validate-ci-yaml.js +113 -0
- package/dist/commands/onboard/validate-ci-yaml.js.map +1 -0
- package/package.json +14 -13
- package/dist/commands/onboard/templates/agents/local-simulation-verification.md +0 -96
package/README.md
CHANGED
|
@@ -26,6 +26,21 @@ npm install --save-dev @alwaysmeticulous/cli
|
|
|
26
26
|
|
|
27
27
|
## Quick Start
|
|
28
28
|
|
|
29
|
+
To install Meticulous in an application repository, connect the repository to a
|
|
30
|
+
Meticulous project first, then run:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx @alwaysmeticulous/cli onboard --project="<ORGANIZATION>/<PROJECT>"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
If you are not logged in, `onboard` opens a browser to sign in. On a remote
|
|
37
|
+
machine, run `npx @alwaysmeticulous/cli auth login --device` first.
|
|
38
|
+
|
|
39
|
+
`onboard` uses your local Claude Code or Codex account to prepare a pull request
|
|
40
|
+
with the recorder and CI configuration. See the
|
|
41
|
+
[Onboarding Guide](https://app.meticulous.ai/docs/onboarding-guide) for GitHub,
|
|
42
|
+
GitLab, and Bitbucket connection instructions and the manual alternative.
|
|
43
|
+
|
|
29
44
|
Sessions are recordings of user interactions with your application that Meticulous can replay to test for regressions.
|
|
30
45
|
|
|
31
46
|
### 1. Record a Session
|
|
@@ -61,6 +76,7 @@ Run `npx @alwaysmeticulous/cli --help` to see all available commands.
|
|
|
61
76
|
|
|
62
77
|
Common commands:
|
|
63
78
|
|
|
79
|
+
- `onboard` - Install the recorder and CI configuration using Claude Code or Codex
|
|
64
80
|
- `record` - Record a new session
|
|
65
81
|
- `simulate` - Simulate a recorded session locally
|
|
66
82
|
- `run-all-tests` - Run all replay test cases
|
|
@@ -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":"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","debugId":"53753f65-dc75-561a-a18b-2173f536c0d0"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"print-next-steps.spec.d.ts","sourceRoot":"","sources":["../../../../src/commands/onboard/__tests__/print-next-steps.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
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]="0dd0c50b-055a-5cb8-86e3-b69337f7bc36")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const vitest_1 = require("vitest");
|
|
6
|
+
const launch_agent_1 = require("../launch-agent");
|
|
7
|
+
const baseContext = {
|
|
8
|
+
orgAndProject: "acme/web app",
|
|
9
|
+
meticulousSideSetupPath: "/tmp/missing-setup.md",
|
|
10
|
+
meticulousTokensUrl: "https://app.meticulous.ai/projects/acme/web%20app?tab=settings§ion=tokens",
|
|
11
|
+
meticulousSessionsUrl: "https://app.meticulous.ai/projects/acme/web%20app?tab=sessions",
|
|
12
|
+
secretsUrl: "https://github.com/acme/web/settings/secrets/actions",
|
|
13
|
+
secretsUrlLabel: "GitHub Actions secrets",
|
|
14
|
+
githubConfigureProjectsUrl: null,
|
|
15
|
+
gitlabConfigureProjectsUrl: null,
|
|
16
|
+
bitbucketConfigureProjectsUrl: null,
|
|
17
|
+
isGitHubIntegrationActive: true,
|
|
18
|
+
isGitLabIntegrationActive: null,
|
|
19
|
+
isBitbucketIntegrationActive: null,
|
|
20
|
+
ciProvider: "github-actions",
|
|
21
|
+
};
|
|
22
|
+
(0, vitest_1.describe)("printNextSteps", () => {
|
|
23
|
+
(0, vitest_1.afterEach)(() => {
|
|
24
|
+
vitest_1.vi.restoreAllMocks();
|
|
25
|
+
});
|
|
26
|
+
(0, vitest_1.it)("tells the user to click around locally and confirm a session appears", () => {
|
|
27
|
+
const log = vitest_1.vi.spyOn(console, "log").mockImplementation(() => undefined);
|
|
28
|
+
(0, launch_agent_1.printNextSteps)({ tool: "claude", context: baseContext });
|
|
29
|
+
const output = log.mock.calls.flat().join("\n");
|
|
30
|
+
(0, vitest_1.expect)(output).toContain("start your local app with the recording token set");
|
|
31
|
+
(0, vitest_1.expect)(output).toContain("click around");
|
|
32
|
+
(0, vitest_1.expect)(output).toContain(baseContext.meticulousSessionsUrl);
|
|
33
|
+
(0, vitest_1.expect)(output).toContain(baseContext.secretsUrl);
|
|
34
|
+
(0, vitest_1.expect)(output).not.toContain("simulate");
|
|
35
|
+
});
|
|
36
|
+
(0, vitest_1.it)("prints the whole tokens url on both token steps", () => {
|
|
37
|
+
const log = vitest_1.vi.spyOn(console, "log").mockImplementation(() => undefined);
|
|
38
|
+
(0, launch_agent_1.printNextSteps)({ tool: "claude", context: baseContext });
|
|
39
|
+
const output = stripAnsi(log.mock.calls.flat().join("\n"));
|
|
40
|
+
const tokenSteps = output
|
|
41
|
+
.split("\n")
|
|
42
|
+
.filter((line) => line.includes("token from"));
|
|
43
|
+
(0, vitest_1.expect)(tokenSteps).toHaveLength(2);
|
|
44
|
+
for (const step of tokenSteps) {
|
|
45
|
+
(0, vitest_1.expect)(step).toContain(`from ${baseContext.meticulousTokensUrl} and`);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.it)("still points at a full url when the project is unknown", () => {
|
|
49
|
+
const log = vitest_1.vi.spyOn(console, "log").mockImplementation(() => undefined);
|
|
50
|
+
(0, launch_agent_1.printNextSteps)({
|
|
51
|
+
tool: "claude",
|
|
52
|
+
context: {
|
|
53
|
+
...baseContext,
|
|
54
|
+
orgAndProject: null,
|
|
55
|
+
meticulousTokensUrl: null,
|
|
56
|
+
meticulousSessionsUrl: null,
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
const output = stripAnsi(log.mock.calls.flat().join("\n"));
|
|
60
|
+
(0, vitest_1.expect)(output).toContain("https://app.meticulous.ai (your project → Settings → Tokens)");
|
|
61
|
+
(0, vitest_1.expect)(output).toContain("https://app.meticulous.ai (your project → Sessions)");
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
const ANSI_COLOR = new RegExp(`${String.fromCharCode(27)}\\[\\d+m`, "g");
|
|
65
|
+
const stripAnsi = (value) => value.replace(ANSI_COLOR, "");
|
|
66
|
+
//# sourceMappingURL=print-next-steps.spec.js.map
|
|
67
|
+
//# debugId=0dd0c50b-055a-5cb8-86e3-b69337f7bc36
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"print-next-steps.spec.js","sources":["../../../../src/commands/onboard/__tests__/print-next-steps.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"0dd0c50b-055a-5cb8-86e3-b69337f7bc36"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-project.spec.d.ts","sourceRoot":"","sources":["../../../../src/commands/onboard/__tests__/resolve-project.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
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]="7973c24f-c644-5006-a960-7ccad06b6bc4")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const vitest_1 = require("vitest");
|
|
6
|
+
const cli_user_error_1 = require("../../../utils/cli-user-error");
|
|
7
|
+
const resolve_project_1 = require("../resolve-project");
|
|
8
|
+
const mocks = vitest_1.vi.hoisted(() => ({
|
|
9
|
+
isInteractive: vitest_1.vi.fn(() => false),
|
|
10
|
+
getAuthToken: vitest_1.vi.fn(),
|
|
11
|
+
performOAuthLogin: vitest_1.vi.fn(),
|
|
12
|
+
}));
|
|
13
|
+
vitest_1.vi.mock("@alwaysmeticulous/client", async (importOriginal) => ({
|
|
14
|
+
...(await importOriginal()),
|
|
15
|
+
CLI_LOGIN_INTENT_ONBOARD: "onboard",
|
|
16
|
+
isInteractiveContext: () => mocks.isInteractive(),
|
|
17
|
+
getAuthToken: mocks.getAuthToken,
|
|
18
|
+
performOAuthLogin: mocks.performOAuthLogin,
|
|
19
|
+
}));
|
|
20
|
+
(0, vitest_1.describe)("ensureOnboardAuthenticated", () => {
|
|
21
|
+
(0, vitest_1.beforeEach)(() => {
|
|
22
|
+
mocks.isInteractive.mockReturnValue(false);
|
|
23
|
+
mocks.getAuthToken.mockReset();
|
|
24
|
+
mocks.performOAuthLogin.mockReset();
|
|
25
|
+
mocks.getAuthToken.mockResolvedValue(null);
|
|
26
|
+
mocks.performOAuthLogin.mockResolvedValue({ accessToken: "jwt" });
|
|
27
|
+
});
|
|
28
|
+
(0, vitest_1.it)("does nothing when a token is already present", async () => {
|
|
29
|
+
mocks.getAuthToken.mockResolvedValue("existing-token");
|
|
30
|
+
await (0, resolve_project_1.ensureOnboardAuthenticated)(undefined);
|
|
31
|
+
(0, vitest_1.expect)(mocks.performOAuthLogin).not.toHaveBeenCalled();
|
|
32
|
+
});
|
|
33
|
+
(0, vitest_1.it)("errors in a non-interactive terminal instead of continuing unauthenticated", async () => {
|
|
34
|
+
await (0, vitest_1.expect)((0, resolve_project_1.ensureOnboardAuthenticated)(undefined)).rejects.toBeInstanceOf(cli_user_error_1.CliUserError);
|
|
35
|
+
(0, vitest_1.expect)(mocks.performOAuthLogin).not.toHaveBeenCalled();
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.it)("opens an onboard-tagged browser login when interactive and logged out", async () => {
|
|
38
|
+
mocks.isInteractive.mockReturnValue(true);
|
|
39
|
+
await (0, resolve_project_1.ensureOnboardAuthenticated)(undefined);
|
|
40
|
+
(0, vitest_1.expect)(mocks.performOAuthLogin).toHaveBeenCalledWith({ intent: "onboard" });
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=resolve-project.spec.js.map
|
|
44
|
+
//# debugId=7973c24f-c644-5006-a960-7ccad06b6bc4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-project.spec.js","sources":["../../../../src/commands/onboard/__tests__/resolve-project.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AACA,mCAA8D;AAC9D,kEAA6D;AAC7D,wDAAgE;AAEhE,MAAM,KAAK,GAAG,WAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9B,aAAa,EAAE,WAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IACjC,YAAY,EAAE,WAAE,CAAC,EAAE,EAAE;IACrB,iBAAiB,EAAE,WAAE,CAAC,EAAE,EAAE;CAC3B,CAAC,CAAC,CAAC;AAEJ,WAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,MAAM,cAAc,EAAiC,CAAC;IAC1D,wBAAwB,EAAE,SAAS;IACnC,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE;IACjD,YAAY,EAAE,KAAK,CAAC,YAAY;IAChC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;CAC3C,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAEvD,MAAM,IAAA,4CAA0B,EAAC,SAAS,CAAC,CAAC;QAE5C,IAAA,eAAM,EAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,IAAA,eAAM,EAAC,IAAA,4CAA0B,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACxE,6BAAY,CACb,CAAC;QACF,IAAA,eAAM,EAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,IAAA,4CAA0B,EAAC,SAAS,CAAC,CAAC;QAE5C,IAAA,eAAM,EAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","debugId":"7973c24f-c644-5006-a960-7ccad06b6bc4"}
|
|
@@ -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":"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","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":"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","debugId":"f69db021-b7af-5f4f-b507-7b27f238307e"}
|