@duyquangnvx/agent-cli 0.15.0 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/agent-cli.js +3 -2
- package/dist/agent-cli.js.map +1 -1
- package/dist/built-ins/agents-md.d.ts +6 -3
- package/dist/built-ins/agents-md.js +12 -16
- package/dist/built-ins/agents-md.js.map +1 -1
- package/dist/built-ins/commands.js +5 -6
- package/dist/built-ins/commands.js.map +1 -1
- package/dist/built-ins/doctor-rows.js +12 -94
- package/dist/built-ins/doctor-rows.js.map +1 -1
- package/dist/built-ins/doctor.js +2 -2
- package/dist/built-ins/doctor.js.map +1 -1
- package/dist/built-ins/install/dependency.d.ts +4 -0
- package/dist/built-ins/{dependency-install.js → install/dependency.js} +39 -88
- package/dist/built-ins/install/dependency.js.map +1 -0
- package/dist/built-ins/{global-install.d.ts → install/global-npm.d.ts} +6 -3
- package/dist/built-ins/{global-install.js → install/global-npm.js} +30 -18
- package/dist/built-ins/install/global-npm.js.map +1 -0
- package/dist/built-ins/install/global.d.ts +4 -0
- package/dist/built-ins/install/global.js +44 -0
- package/dist/built-ins/install/global.js.map +1 -0
- package/dist/built-ins/install/install.d.ts +39 -0
- package/dist/built-ins/install/install.js +26 -0
- package/dist/built-ins/install/install.js.map +1 -0
- package/dist/built-ins/install/run-as.d.ts +3 -0
- package/dist/built-ins/install/run-as.js +5 -0
- package/dist/built-ins/install/run-as.js.map +1 -0
- package/dist/built-ins/npm.d.ts +2 -6
- package/dist/built-ins/npm.js +0 -24
- package/dist/built-ins/npm.js.map +1 -1
- package/dist/built-ins/skill/hub.d.ts +7 -0
- package/dist/built-ins/{skills.js → skill/hub.js} +32 -7
- package/dist/built-ins/skill/hub.js.map +1 -0
- package/dist/built-ins/skill/install-command.d.ts +23 -0
- package/dist/built-ins/{skill-install.js → skill/install-command.js} +39 -16
- package/dist/built-ins/skill/install-command.js.map +1 -0
- package/dist/built-ins/skill/packaged.d.ts +12 -0
- package/dist/built-ins/{packaged-skill.js → skill/packaged.js} +27 -44
- package/dist/built-ins/skill/packaged.js.map +1 -0
- package/dist/built-ins/skill/skill.d.ts +28 -0
- package/dist/built-ins/skill/skill.js +10 -0
- package/dist/built-ins/skill/skill.js.map +1 -0
- package/dist/built-ins/update.d.ts +3 -2
- package/dist/built-ins/update.js +8 -15
- package/dist/built-ins/update.js.map +1 -1
- package/dist/exit-classes.js +5 -4
- package/dist/exit-classes.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/project-root.d.ts +24 -0
- package/dist/project-root.js +69 -0
- package/dist/project-root.js.map +1 -0
- package/dist/run-cli.js +1 -1
- package/dist/run-cli.js.map +1 -1
- package/dist/run-command.js +5 -2
- package/dist/run-command.js.map +1 -1
- package/package.json +1 -1
- package/dist/built-ins/dependency-install.d.ts +0 -67
- package/dist/built-ins/dependency-install.js.map +0 -1
- package/dist/built-ins/global-install.js.map +0 -1
- package/dist/built-ins/packaged-skill.d.ts +0 -45
- package/dist/built-ins/packaged-skill.js.map +0 -1
- package/dist/built-ins/skill-install.d.ts +0 -3
- package/dist/built-ins/skill-install.js.map +0 -1
- package/dist/built-ins/skills.d.ts +0 -21
- package/dist/built-ins/skills.js.map +0 -1
- package/dist/run-as.d.ts +0 -6
- package/dist/run-as.js +0 -8
- package/dist/run-as.js.map +0 -1
|
@@ -1,37 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { join
|
|
1
|
+
import { realpath } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
3
|
import * as z from "zod";
|
|
4
|
-
import { errnoOf, messageOf, orMissing } from "
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
/** The folder, relative to the package root, of a CLI's Packaged skill, if it declares one. */
|
|
9
|
-
export function packagedFolderOf(cli) {
|
|
10
|
-
return cli.skill !== undefined && "packaged" in cli.skill ? cli.skill.packaged : undefined;
|
|
11
|
-
}
|
|
12
|
-
/** The project root and the Skill copy under it, as `skill install` writes it. */
|
|
13
|
-
export async function skillCopyOf(cli, cwd) {
|
|
14
|
-
const root = await projectRootOf(cwd);
|
|
15
|
-
return { root, copy: join(root, ".claude", "skills", cli.name) };
|
|
16
|
-
}
|
|
17
|
-
/** Every file under `dir`, relative to it and sorted; none when `dir` is missing. */
|
|
18
|
-
export async function filesIn(dir) {
|
|
19
|
-
const entries = await orMissing(readdir(dir, { recursive: true, withFileTypes: true }));
|
|
20
|
-
return (entries ?? [])
|
|
21
|
-
.filter((entry) => entry.isFile())
|
|
22
|
-
.map((entry) => relative(dir, join(entry.parentPath, entry.name)))
|
|
23
|
-
.sort();
|
|
24
|
-
}
|
|
25
|
-
/** The versions of the package's skill in `source` and of its copy in `copy`. */
|
|
26
|
-
export async function skillVersionsOf(source, copy) {
|
|
27
|
-
const [shipped, installed] = await Promise.all([
|
|
28
|
-
readFile(join(source, "SKILL.md"), "utf8"),
|
|
29
|
-
orMissing(readFile(join(copy, "SKILL.md"), "utf8")),
|
|
30
|
-
]);
|
|
31
|
-
const packageVersion = skillVersionIn(shipped) ?? null;
|
|
32
|
-
const copyVersion = installed === undefined ? undefined : (skillVersionIn(installed) ?? null);
|
|
33
|
-
return { packageVersion, copyVersion, same: copyVersion === packageVersion };
|
|
34
|
-
}
|
|
4
|
+
import { errnoOf, messageOf, orMissing } from "../../errors.js";
|
|
5
|
+
import { agentsRow } from "../agents-md.js";
|
|
6
|
+
import { homeOf } from "./hub.js";
|
|
7
|
+
import { skillCopyOf, skillInstallCommand, skillVersionsOf } from "./install-command.js";
|
|
35
8
|
// A project that is home itself has its copy under home, which shadows nothing.
|
|
36
9
|
async function personalCopyOf(name, copy, ctx) {
|
|
37
10
|
const home = join(homeOf(ctx.env), ".claude", "skills", name);
|
|
@@ -55,8 +28,8 @@ function compared(name, { copy, copyVersion, packageVersion }, same) {
|
|
|
55
28
|
? `${stated}, the version ${name} ships`
|
|
56
29
|
: `${stated} differs from the ${versionLabel(packageVersion)} that ${name} ships`;
|
|
57
30
|
}
|
|
58
|
-
/** The
|
|
59
|
-
|
|
31
|
+
/** The project root's copy against the package's, and any under home. */
|
|
32
|
+
async function findingOf(cli, folder, install, ctx) {
|
|
60
33
|
const { copy } = await skillCopyOf(cli, ctx.cwd);
|
|
61
34
|
const versions = await skillVersionsOf(join(ctx.packageRoot, folder), copy);
|
|
62
35
|
const { packageVersion } = versions;
|
|
@@ -71,23 +44,19 @@ export async function packagedSkillFinding(cli, folder, ctx) {
|
|
|
71
44
|
? head
|
|
72
45
|
: `${head}; remove ${home}: Claude Code prefers a personal skill over the project's`;
|
|
73
46
|
if (!versions.same) {
|
|
74
|
-
return { state: "problem", message, fix: `${
|
|
47
|
+
return { state: "problem", message, fix: `${install.runAs} skill install`, skill };
|
|
75
48
|
}
|
|
76
49
|
return home === undefined
|
|
77
50
|
? { state: "ok", message, skill }
|
|
78
51
|
: { state: "problem", message, skill };
|
|
79
52
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
// `doctor` and `skill install` report the copy themselves. A run from source is the CLI's own repo, whose agent reads the source.
|
|
53
|
+
async function notice(cli, folder, install, { builtIn, bin }, ctx) {
|
|
54
|
+
// `doctor` and `skill install` report the copy themselves, and a one-Command CLI has no `skill install`. A run from source is the CLI's own repo, whose agent reads the source.
|
|
83
55
|
if (builtIn || bin === undefined || cli.commands === undefined)
|
|
84
56
|
return;
|
|
85
|
-
const folder = packagedFolderOf(cli);
|
|
86
|
-
if (folder === undefined)
|
|
87
|
-
return;
|
|
88
57
|
let finding;
|
|
89
58
|
try {
|
|
90
|
-
finding = await
|
|
59
|
+
finding = await findingOf(cli, folder, install, ctx);
|
|
91
60
|
}
|
|
92
61
|
catch (error) {
|
|
93
62
|
// A file the Runtime cannot read must not stop the Command the Notice rides on; a bug still does.
|
|
@@ -100,4 +69,18 @@ export async function noticeSkillCopy(cli, { builtIn, bin }, ctx) {
|
|
|
100
69
|
return;
|
|
101
70
|
ctx.notice(finding.fix === undefined ? finding.message : `${finding.message}; run \`${finding.fix}\``);
|
|
102
71
|
}
|
|
103
|
-
|
|
72
|
+
/** A skill shipped in the package at `folder`, which `skill install` copies to the project root. */
|
|
73
|
+
export function packagedSkill(cli, folder, install) {
|
|
74
|
+
return {
|
|
75
|
+
kind: "packaged",
|
|
76
|
+
builtIns: { skill: { install: skillInstallCommand(cli, folder, install) } },
|
|
77
|
+
rows: [
|
|
78
|
+
{ name: "skill", advisory: true, run: (ctx) => findingOf(cli, folder, install, ctx) },
|
|
79
|
+
agentsRow(cli, install),
|
|
80
|
+
],
|
|
81
|
+
notice: (launch, ctx) => notice(cli, folder, install, launch, ctx),
|
|
82
|
+
// The copy is compared with the package on disk, whatever the version asked about.
|
|
83
|
+
findingAt: (_version, ctx) => findingOf(cli, folder, install, ctx),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=packaged.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packaged.js","sourceRoot":"","sources":["../../../src/built-ins/skill/packaged.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Context } from "../../context.js";
|
|
2
|
+
import type { Cli, Commands, DoctorCheck, DoctorFinding } from "../../define.js";
|
|
3
|
+
import type { Install } from "../install/install.js";
|
|
4
|
+
export type SkillCli = Pick<Cli, "name" | "description" | "version" | "skill" | "commands">;
|
|
5
|
+
/** What the CLI's skill copies were found to be; the fix brings them to the version asked about. */
|
|
6
|
+
export type SkillFinding = Exclude<DoctorFinding, {
|
|
7
|
+
readonly state: "skipped";
|
|
8
|
+
}>;
|
|
9
|
+
export interface SkillNoticeLaunch {
|
|
10
|
+
readonly builtIn: boolean;
|
|
11
|
+
readonly bin: string | undefined;
|
|
12
|
+
}
|
|
13
|
+
/** Where the CLI's skill comes from, and everything that differs by it. */
|
|
14
|
+
export interface Skill {
|
|
15
|
+
readonly kind: "hub" | "packaged";
|
|
16
|
+
readonly builtIns: Commands;
|
|
17
|
+
/**
|
|
18
|
+
* Its `doctor` rows. A skill describes the CLI but never stops it working: a Skill Hub's row is
|
|
19
|
+
* always ok, and a Packaged skill's problems are advisory.
|
|
20
|
+
*/
|
|
21
|
+
readonly rows: readonly DoctorCheck[];
|
|
22
|
+
/** Run before a Command, so an agent that rarely runs `doctor` still hears of a misleading copy. */
|
|
23
|
+
readonly notice: (launch: SkillNoticeLaunch, ctx: Context) => Promise<void>;
|
|
24
|
+
/** The copies against `version`: this build's for `doctor`, the latest release's for `update`. */
|
|
25
|
+
readonly findingAt: (version: string, ctx: Context) => Promise<SkillFinding>;
|
|
26
|
+
}
|
|
27
|
+
/** A Packaged skill, or else a Skill Hub's, also for a CLI that declares no `skill`. */
|
|
28
|
+
export declare function skillOf(cli: SkillCli, install: Install): Skill;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { hubSkill } from "./hub.js";
|
|
2
|
+
import { packagedSkill } from "./packaged.js";
|
|
3
|
+
/** A Packaged skill, or else a Skill Hub's, also for a CLI that declares no `skill`. */
|
|
4
|
+
export function skillOf(cli, install) {
|
|
5
|
+
const { skill } = cli;
|
|
6
|
+
return skill !== undefined && "packaged" in skill
|
|
7
|
+
? packagedSkill(cli, skill.packaged, install)
|
|
8
|
+
: hubSkill(cli, skill?.source);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/built-ins/skill/skill.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AA2B9C,wFAAwF;AACxF,MAAM,UAAU,OAAO,CAAC,GAAa,EAAE,OAAgB;IACrD,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,OAAO,KAAK,KAAK,SAAS,IAAI,UAAU,IAAI,KAAK;QAC/C,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC7C,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type Command, type
|
|
1
|
+
import { type Command, type GlobalInstall } from "../define.js";
|
|
2
2
|
import type { Launch } from "./commands.js";
|
|
3
|
+
import type { Skill, SkillCli } from "./skill/skill.js";
|
|
3
4
|
/** The built-in `update`, for a CLI installed globally with npm. */
|
|
4
|
-
export declare function updateCommand(cli:
|
|
5
|
+
export declare function updateCommand(cli: SkillCli, install: GlobalInstall, skill: Skill, { bin, node }: Launch): Command;
|
package/dist/built-ins/update.js
CHANGED
|
@@ -2,11 +2,9 @@ import * as z from "zod";
|
|
|
2
2
|
import { defineCommand } from "../define.js";
|
|
3
3
|
import { CliError } from "../errors.js";
|
|
4
4
|
import { INTERRUPTED } from "../interrupts.js";
|
|
5
|
-
import { globalInstallOf } from "./global-
|
|
6
|
-
import {
|
|
7
|
-
import { packagedFolderOf, packagedSkillFinding } from "./packaged-skill.js";
|
|
5
|
+
import { globalInstallOf, globalNpm } from "./install/global-npm.js";
|
|
6
|
+
import { installGlobally, latestVersion } from "./npm.js";
|
|
8
7
|
import { standingOf } from "./semver.js";
|
|
9
|
-
import { skillReport } from "./skills.js";
|
|
10
8
|
import { upgradeSchema, upgradesOf } from "./upgrades.js";
|
|
11
9
|
const updateSchema = z.object({
|
|
12
10
|
from: z.string(),
|
|
@@ -36,14 +34,9 @@ function renderUpdate(cli, install, update) {
|
|
|
36
34
|
const next = update.next.map((command) => `next: ${command}, so the ${cli.name} skill describes ${update.latest}`);
|
|
37
35
|
return (next.length === 0 ? head : [...head, "", ...next]).join("\n");
|
|
38
36
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const packaged = packagedFolderOf(cli);
|
|
43
|
-
const finding = packaged === undefined
|
|
44
|
-
? await skillReport(cli, latest, ctx)
|
|
45
|
-
: await packagedSkillFinding(cli, packaged, ctx);
|
|
46
|
-
return "fix" in finding && finding.fix !== undefined ? [finding.fix] : [];
|
|
37
|
+
async function skillNext(skill, latest, ctx) {
|
|
38
|
+
const { fix } = await skill.findingAt(latest, ctx);
|
|
39
|
+
return fix === undefined ? [] : [fix];
|
|
47
40
|
}
|
|
48
41
|
// The install ran to its end, so the run reports it rather than asking for a rerun.
|
|
49
42
|
function interruptedAfterInstall(plan) {
|
|
@@ -54,7 +47,7 @@ function interruptedAfterInstall(plan) {
|
|
|
54
47
|
});
|
|
55
48
|
}
|
|
56
49
|
/** The built-in `update`, for a CLI installed globally with npm. */
|
|
57
|
-
export function updateCommand(cli, install, { bin, node }) {
|
|
50
|
+
export function updateCommand(cli, install, skill, { bin, node }) {
|
|
58
51
|
return defineCommand({
|
|
59
52
|
name: "update",
|
|
60
53
|
description: "install the latest version of this CLI from its registry",
|
|
@@ -83,7 +76,7 @@ export function updateCommand(cli, install, { bin, node }) {
|
|
|
83
76
|
latest,
|
|
84
77
|
installed: null,
|
|
85
78
|
upgrades: [],
|
|
86
|
-
next: await skillNext(
|
|
79
|
+
next: await skillNext(skill, latest, ctx),
|
|
87
80
|
};
|
|
88
81
|
}
|
|
89
82
|
ctx.signal.throwIfAborted();
|
|
@@ -94,7 +87,7 @@ export function updateCommand(cli, install, { bin, node }) {
|
|
|
94
87
|
latest,
|
|
95
88
|
installed: { version: latest, prefix },
|
|
96
89
|
upgrades: await upgradesOf(plan.packageDir, from, latest),
|
|
97
|
-
next: await skillNext(
|
|
90
|
+
next: await skillNext(skill, latest, ctx),
|
|
98
91
|
};
|
|
99
92
|
if (ctx.signal.aborted) {
|
|
100
93
|
ctx.deliver(update);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/built-ins/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/built-ins/update.ts"],"names":[],"mappings":"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"}
|
package/dist/exit-classes.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DOCTOR_PROBLEMS } from "./built-ins/doctor.js";
|
|
2
|
-
import { NOT_GLOBAL_INSTALL } from "./built-ins/global-
|
|
2
|
+
import { NOT_GLOBAL_INSTALL } from "./built-ins/install/global-npm.js";
|
|
3
|
+
import { installOf } from "./built-ins/install/install.js";
|
|
3
4
|
import { INSTALL_FAILED, NO_LATEST, NPM_FAILED, REGISTRY_AUTH, REGISTRY_UNREACHABLE, } from "./built-ins/npm.js";
|
|
4
5
|
import { CONFIRMATION_MISMATCH, CONFIRMATION_REQUIRED } from "./confirm.js";
|
|
5
6
|
import { NOT_CONFIRMED } from "./cost.js";
|
|
@@ -80,13 +81,13 @@ function exitClassOf(error, errors) {
|
|
|
80
81
|
* codes it can reach, and those of its own table.
|
|
81
82
|
*/
|
|
82
83
|
export function reachableExitClasses(cli) {
|
|
83
|
-
// Any CLI can write files or refuse an unconfirmed cost (the operator's);
|
|
84
|
-
//
|
|
84
|
+
// Any CLI can write files or refuse an unconfirmed cost (the operator's); the Built-ins its
|
|
85
|
+
// install adds, which only a multi-Command CLI has, may reach more.
|
|
85
86
|
const runtime = [
|
|
86
87
|
"caller",
|
|
87
88
|
"operator",
|
|
88
89
|
"wait",
|
|
89
|
-
...(cli.commands
|
|
90
|
+
...(cli.commands === undefined ? [] : installOf(cli).exitClasses),
|
|
90
91
|
];
|
|
91
92
|
const own = Object.values(cli.errors ?? {}).map((declaration) => declaration.class);
|
|
92
93
|
return new Set([...runtime, ...own]);
|
package/dist/exit-classes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-classes.js","sourceRoot":"","sources":["../src/exit-classes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"exit-classes.js","sourceRoot":"","sources":["../src/exit-classes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEjG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAW,CAAC;AAIxE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;CAC6D,CAAC;AAEvE,MAAM,CAAC,MAAM,oBAAoB,GAAwC;IACvE,CAAC,aAAa,CAAC,EAAE,QAAQ;IACzB,CAAC,cAAc,CAAC,EAAE,QAAQ;IAC1B,CAAC,eAAe,CAAC,EAAE,QAAQ;IAC3B,CAAC,aAAa,CAAC,EAAE,QAAQ;IACzB,CAAC,qBAAqB,CAAC,EAAE,QAAQ;IACjC,CAAC,qBAAqB,CAAC,EAAE,QAAQ;IACjC,CAAC,aAAa,CAAC,EAAE,UAAU;IAC3B,CAAC,cAAc,CAAC,EAAE,UAAU;IAC5B,CAAC,aAAa,CAAC,EAAE,QAAQ;IACzB,CAAC,aAAa,CAAC,EAAE,QAAQ;IACzB,CAAC,WAAW,CAAC,EAAE,aAAa;IAC5B,CAAC,iBAAiB,CAAC,EAAE,MAAM;IAC3B,CAAC,QAAQ,CAAC,EAAE,KAAK;IACjB,CAAC,iBAAiB,CAAC,EAAE,UAAU;IAC/B,CAAC,SAAS,CAAC,EAAE,UAAU;IACvB,CAAC,SAAS,CAAC,EAAE,QAAQ;IACrB,CAAC,cAAc,CAAC,EAAE,QAAQ;IAC1B,CAAC,UAAU,CAAC,EAAE,QAAQ;IACtB,CAAC,WAAW,CAAC,EAAE,UAAU;IACzB,CAAC,YAAY,CAAC,EAAE,UAAU;IAC1B,CAAC,eAAe,CAAC,EAAE,UAAU;IAC7B,CAAC,eAAe,CAAC,EAAE,UAAU;IAC7B,CAAC,kBAAkB,CAAC,EAAE,UAAU;IAChC,CAAC,oBAAoB,CAAC,EAAE,UAAU;IAClC,CAAC,aAAa,CAAC,EAAE,UAAU;IAC3B,CAAC,cAAc,CAAC,EAAE,UAAU;IAC5B,CAAC,UAAU,CAAC,EAAE,UAAU;IACxB,CAAC,SAAS,CAAC,EAAE,QAAQ;CACtB,CAAC;AAEF,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,qFAAqF;AACrF,SAAS,cAAc,CAAC,KAAc,EAAE,MAAkB;IACxD,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,QAAQ,CAAC;IACjD,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAc,EAAE,MAAkB;IACtD,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC;AACjD,CAAC;AAED,6FAA6F;AAC7F,MAAM,SAAS,GAAyB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAEhG,SAAS,WAAW,CAAC,KAAc,EAAE,MAAkB;IACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,4FAA4F;IAC5F,oEAAoE;IACpE,MAAM,OAAO,GAAwB;QACnC,QAAQ;QACR,UAAU;QACV,MAAM;QACN,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;KAClE,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACpF,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,KAAc,EACd,MAAkB,EAClB,IAA6B;IAE7B,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,SAAS,KAAK,aAAa;QAChC,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export type { AgentCli } from "./agent-cli.js";
|
|
2
2
|
export { agentCli } from "./agent-cli.js";
|
|
3
3
|
export { DOCTOR_PROBLEMS } from "./built-ins/doctor.js";
|
|
4
|
-
export { NOT_GLOBAL_INSTALL } from "./built-ins/global-
|
|
4
|
+
export { NOT_GLOBAL_INSTALL } from "./built-ins/install/global-npm.js";
|
|
5
|
+
export { runAsOf } from "./built-ins/install/run-as.js";
|
|
5
6
|
export { INSTALL_FAILED, NO_LATEST, NPM_FAILED, REGISTRY_AUTH, REGISTRY_UNREACHABLE, } from "./built-ins/npm.js";
|
|
6
7
|
export type { Clock } from "./clock.js";
|
|
7
8
|
export { CONFIRMATION_MISMATCH, CONFIRMATION_REQUIRED } from "./confirm.js";
|
|
@@ -21,7 +22,6 @@ export { NEEDS_OPERATOR } from "./operator.js";
|
|
|
21
22
|
export type { RunResult } from "./output.js";
|
|
22
23
|
export { OUTPUT_EXISTS } from "./outputs.js";
|
|
23
24
|
export { PROJECT_INVALID } from "./project.js";
|
|
24
|
-
export { runAsOf } from "./run-as.js";
|
|
25
25
|
export { runCli } from "./run-cli.js";
|
|
26
26
|
export type { RunOptions } from "./run-options.js";
|
|
27
27
|
export { runProcess } from "./run-process.js";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { agentCli } from "./agent-cli.js";
|
|
2
2
|
export { DOCTOR_PROBLEMS } from "./built-ins/doctor.js";
|
|
3
|
-
export { NOT_GLOBAL_INSTALL } from "./built-ins/global-
|
|
3
|
+
export { NOT_GLOBAL_INSTALL } from "./built-ins/install/global-npm.js";
|
|
4
|
+
export { runAsOf } from "./built-ins/install/run-as.js";
|
|
4
5
|
export { INSTALL_FAILED, NO_LATEST, NPM_FAILED, REGISTRY_AUTH, REGISTRY_UNREACHABLE, } from "./built-ins/npm.js";
|
|
5
6
|
export { CONFIRMATION_MISMATCH, CONFIRMATION_REQUIRED } from "./confirm.js";
|
|
6
7
|
export { NOT_CONFIRMED } from "./cost.js";
|
|
@@ -12,7 +13,6 @@ export { page, paginate, UNKNOWN_FIELD } from "./list.js";
|
|
|
12
13
|
export { NEEDS_OPERATOR } from "./operator.js";
|
|
13
14
|
export { OUTPUT_EXISTS } from "./outputs.js";
|
|
14
15
|
export { PROJECT_INVALID } from "./project.js";
|
|
15
|
-
export { runAsOf } from "./run-as.js";
|
|
16
16
|
export { runCli } from "./run-cli.js";
|
|
17
17
|
export { runProcess } from "./run-process.js";
|
|
18
18
|
export { SIDE_TASK_WAIT_MS } from "./side-task.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAW5E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAoB1C,OAAO,EACL,cAAc,EACd,SAAS,EAET,UAAU,EACV,SAAS,EACT,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAOpB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASnD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
declare const MANAGERS: readonly ["pnpm", "npm", "yarn", "bun"];
|
|
3
|
+
export type PackageManager = (typeof MANAGERS)[number];
|
|
4
|
+
/** The folder whose lockfile pins the project's packages, and the package manager that writes it. */
|
|
5
|
+
export interface LockfileRoot {
|
|
6
|
+
readonly dir: string;
|
|
7
|
+
readonly manager: PackageManager;
|
|
8
|
+
}
|
|
9
|
+
declare const manifestSchema: z.ZodObject<{
|
|
10
|
+
packageManager: z.ZodOptional<z.ZodString>;
|
|
11
|
+
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
12
|
+
devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
type Manifest = z.infer<typeof manifestSchema>;
|
|
15
|
+
/** `dir` and every folder above it, nearest first. */
|
|
16
|
+
export declare function ancestorsOf(dir: string): string[];
|
|
17
|
+
export declare function exists(path: string): Promise<boolean>;
|
|
18
|
+
/** Whether `path` lies strictly inside `dir`. */
|
|
19
|
+
export declare function isInside(dir: string, path: string): boolean;
|
|
20
|
+
export declare function manifestIn(dir: string): Promise<Manifest | undefined>;
|
|
21
|
+
export declare function lockfileRootOf(cwd: string): Promise<LockfileRoot | undefined>;
|
|
22
|
+
/** The package manager's project root: the folder of the nearest lockfile, or `cwd` without one. */
|
|
23
|
+
export declare function projectRootOf(cwd: string): Promise<string>;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { readFile, stat } from "node:fs/promises";
|
|
2
|
+
import { dirname, isAbsolute, join, relative } from "node:path";
|
|
3
|
+
import * as z from "zod";
|
|
4
|
+
import { isMissingFile, orMissing } from "./errors.js";
|
|
5
|
+
const MANAGERS = ["pnpm", "npm", "yarn", "bun"];
|
|
6
|
+
const LOCKFILES = [
|
|
7
|
+
["pnpm-lock.yaml", "pnpm"],
|
|
8
|
+
["package-lock.json", "npm"],
|
|
9
|
+
["yarn.lock", "yarn"],
|
|
10
|
+
["bun.lock", "bun"],
|
|
11
|
+
["bun.lockb", "bun"],
|
|
12
|
+
];
|
|
13
|
+
const manifestSchema = z.object({
|
|
14
|
+
packageManager: z.string().optional(),
|
|
15
|
+
dependencies: z.record(z.string(), z.unknown()).optional(),
|
|
16
|
+
devDependencies: z.record(z.string(), z.unknown()).optional(),
|
|
17
|
+
});
|
|
18
|
+
/** `dir` and every folder above it, nearest first. */
|
|
19
|
+
export function ancestorsOf(dir) {
|
|
20
|
+
const parent = dirname(dir);
|
|
21
|
+
return parent === dir ? [dir] : [dir, ...ancestorsOf(parent)];
|
|
22
|
+
}
|
|
23
|
+
export async function exists(path) {
|
|
24
|
+
return (await orMissing(stat(path))) !== undefined;
|
|
25
|
+
}
|
|
26
|
+
/** Whether `path` lies strictly inside `dir`. */
|
|
27
|
+
export function isInside(dir, path) {
|
|
28
|
+
const inner = relative(dir, path);
|
|
29
|
+
return inner !== "" && !inner.startsWith("..") && !isAbsolute(inner);
|
|
30
|
+
}
|
|
31
|
+
// An unreadable package.json names no package manager and lists no package; the lockfile still names the manager.
|
|
32
|
+
export async function manifestIn(dir) {
|
|
33
|
+
let text;
|
|
34
|
+
try {
|
|
35
|
+
text = await readFile(join(dir, "package.json"), "utf8");
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
if (isMissingFile(error))
|
|
39
|
+
return undefined;
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
let manifest;
|
|
43
|
+
try {
|
|
44
|
+
manifest = JSON.parse(text);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return manifestSchema.safeParse(manifest).data;
|
|
50
|
+
}
|
|
51
|
+
async function declaredManager(dir) {
|
|
52
|
+
const name = (await manifestIn(dir))?.packageManager?.split("@")[0];
|
|
53
|
+
return MANAGERS.find((manager) => manager === name);
|
|
54
|
+
}
|
|
55
|
+
export async function lockfileRootOf(cwd) {
|
|
56
|
+
for (const dir of ancestorsOf(cwd)) {
|
|
57
|
+
for (const [file, kind] of LOCKFILES) {
|
|
58
|
+
if (await exists(join(dir, file))) {
|
|
59
|
+
return { dir, manager: (await declaredManager(dir)) ?? kind };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
/** The package manager's project root: the folder of the nearest lockfile, or `cwd` without one. */
|
|
66
|
+
export async function projectRootOf(cwd) {
|
|
67
|
+
return (await lockfileRootOf(cwd))?.dir ?? cwd;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=project-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-root.js","sourceRoot":"","sources":["../src/project-root.ts"],"names":[],"mappings":"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"}
|
package/dist/run-cli.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isAgent } from "./agent.js";
|
|
2
2
|
import { builtInCommands } from "./built-ins/commands.js";
|
|
3
|
+
import { runAsOf } from "./built-ins/install/run-as.js";
|
|
3
4
|
import { commandSpec, groupSpec } from "./command-spec.js";
|
|
4
5
|
import { errorResult, helpResult, progressLine, textHelp, versionResult, } from "./output.js";
|
|
5
6
|
import { packageRootOf } from "./package-root.js";
|
|
6
7
|
import { route } from "./route.js";
|
|
7
|
-
import { runAsOf } from "./run-as.js";
|
|
8
8
|
import { runCommand } from "./run-command.js";
|
|
9
9
|
import { noSideTask } from "./side-task.js";
|
|
10
10
|
import { styleFor } from "./style.js";
|
package/dist/run-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../src/run-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EACL,WAAW,EACX,UAAU,EAEV,YAAY,EAEZ,QAAQ,EACR,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../src/run-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/run-command.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { installOf } from "./built-ins/install/install.js";
|
|
2
|
+
import { skillOf } from "./built-ins/skill/skill.js";
|
|
2
3
|
import { poll, realClock } from "./clock.js";
|
|
3
4
|
import { fileErrorOf } from "./errno.js";
|
|
4
5
|
import { isDebug, traceOf } from "./errors.js";
|
|
@@ -208,7 +209,9 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
208
209
|
try {
|
|
209
210
|
const outcome = await control.settle(
|
|
210
211
|
// The Skill copy Notice comes first, so it reaches the caller even when the Command fails.
|
|
211
|
-
|
|
212
|
+
skillOf(cli, installOf(cli))
|
|
213
|
+
.notice({ builtIn, bin: options.bin }, ctx)
|
|
214
|
+
.then(() => execute(command, input, ctx, {
|
|
212
215
|
dryRun: flags.dryRun,
|
|
213
216
|
confirm: flags.confirm,
|
|
214
217
|
yes: flags.yes,
|
package/dist/run-command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"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"}
|