@axm.sh/cli 0.0.11 → 0.0.13
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/src/cli-commands/packs/add/command.d.ts +14 -0
- package/dist/src/cli-commands/packs/add/command.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/add/command.js +52 -0
- package/dist/src/cli-commands/packs/add/command.js.map +1 -0
- package/dist/src/cli-commands/packs/add/handler.d.ts +23 -0
- package/dist/src/cli-commands/packs/add/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/add/handler.js +135 -0
- package/dist/src/cli-commands/packs/add/handler.js.map +1 -0
- package/dist/src/cli-commands/packs/command.d.ts +3 -0
- package/dist/src/cli-commands/packs/command.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/command.js +33 -0
- package/dist/src/cli-commands/packs/command.js.map +1 -0
- package/dist/src/cli-commands/packs/index.d.ts +13 -0
- package/dist/src/cli-commands/packs/index.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/index.js +12 -0
- package/dist/src/cli-commands/packs/index.js.map +1 -0
- package/dist/src/cli-commands/packs/install/build-plan.d.ts +19 -0
- package/dist/src/cli-commands/packs/install/build-plan.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/install/build-plan.js +44 -0
- package/dist/src/cli-commands/packs/install/build-plan.js.map +1 -0
- package/dist/src/cli-commands/packs/install/command.d.ts +17 -0
- package/dist/src/cli-commands/packs/install/command.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/install/command.js +66 -0
- package/dist/src/cli-commands/packs/install/command.js.map +1 -0
- package/dist/src/cli-commands/packs/install/handler.d.ts +43 -0
- package/dist/src/cli-commands/packs/install/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/install/handler.js +180 -0
- package/dist/src/cli-commands/packs/install/handler.js.map +1 -0
- package/dist/src/cli-commands/packs/install/install-pack.d.ts +20 -0
- package/dist/src/cli-commands/packs/install/install-pack.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/install/install-pack.js +42 -0
- package/dist/src/cli-commands/packs/install/install-pack.js.map +1 -0
- package/dist/src/cli-commands/packs/new/command.d.ts +14 -0
- package/dist/src/cli-commands/packs/new/command.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/new/command.js +51 -0
- package/dist/src/cli-commands/packs/new/command.js.map +1 -0
- package/dist/src/cli-commands/packs/new/handler.d.ts +23 -0
- package/dist/src/cli-commands/packs/new/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/new/handler.js +96 -0
- package/dist/src/cli-commands/packs/new/handler.js.map +1 -0
- package/dist/src/cli-commands/packs/operations.d.ts +67 -0
- package/dist/src/cli-commands/packs/operations.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/operations.js +10 -0
- package/dist/src/cli-commands/packs/operations.js.map +1 -0
- package/dist/src/cli-commands/packs/pack-paths.d.ts +28 -0
- package/dist/src/cli-commands/packs/pack-paths.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/pack-paths.js +22 -0
- package/dist/src/cli-commands/packs/pack-paths.js.map +1 -0
- package/dist/src/cli-commands/packs/publish/command.d.ts +15 -0
- package/dist/src/cli-commands/packs/publish/command.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/publish/command.js +56 -0
- package/dist/src/cli-commands/packs/publish/command.js.map +1 -0
- package/dist/src/cli-commands/packs/publish/handler.d.ts +34 -0
- package/dist/src/cli-commands/packs/publish/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/publish/handler.js +123 -0
- package/dist/src/cli-commands/packs/publish/handler.js.map +1 -0
- package/dist/src/cli-commands/packs/publish/publish-pack.d.ts +26 -0
- package/dist/src/cli-commands/packs/publish/publish-pack.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/publish/publish-pack.js +142 -0
- package/dist/src/cli-commands/packs/publish/publish-pack.js.map +1 -0
- package/dist/src/cli-commands/packs/remove/command.d.ts +14 -0
- package/dist/src/cli-commands/packs/remove/command.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/remove/command.js +52 -0
- package/dist/src/cli-commands/packs/remove/command.js.map +1 -0
- package/dist/src/cli-commands/packs/remove/handler.d.ts +23 -0
- package/dist/src/cli-commands/packs/remove/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/remove/handler.js +115 -0
- package/dist/src/cli-commands/packs/remove/handler.js.map +1 -0
- package/dist/src/cli-commands/packs/uninstall/build-plan.d.ts +46 -0
- package/dist/src/cli-commands/packs/uninstall/build-plan.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/uninstall/build-plan.js +99 -0
- package/dist/src/cli-commands/packs/uninstall/build-plan.js.map +1 -0
- package/dist/src/cli-commands/packs/uninstall/command.d.ts +14 -0
- package/dist/src/cli-commands/packs/uninstall/command.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/uninstall/command.js +53 -0
- package/dist/src/cli-commands/packs/uninstall/command.js.map +1 -0
- package/dist/src/cli-commands/packs/uninstall/handler.d.ts +31 -0
- package/dist/src/cli-commands/packs/uninstall/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/uninstall/handler.js +57 -0
- package/dist/src/cli-commands/packs/uninstall/handler.js.map +1 -0
- package/dist/src/cli-commands/packs/uninstall/uninstall-pack.d.ts +25 -0
- package/dist/src/cli-commands/packs/uninstall/uninstall-pack.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/uninstall/uninstall-pack.js +87 -0
- package/dist/src/cli-commands/packs/uninstall/uninstall-pack.js.map +1 -0
- package/dist/src/cli-commands/packs/unpack/command.d.ts +14 -0
- package/dist/src/cli-commands/packs/unpack/command.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/unpack/command.js +51 -0
- package/dist/src/cli-commands/packs/unpack/command.js.map +1 -0
- package/dist/src/cli-commands/packs/unpack/handler.d.ts +52 -0
- package/dist/src/cli-commands/packs/unpack/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/packs/unpack/handler.js +116 -0
- package/dist/src/cli-commands/packs/unpack/handler.js.map +1 -0
- package/dist/src/cli-commands/skills/constants.d.ts +1 -0
- package/dist/src/cli-commands/skills/constants.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/constants.js +1 -0
- package/dist/src/cli-commands/skills/constants.js.map +1 -1
- package/dist/src/cli-commands/skills/disable/disable-skill.d.ts +7 -8
- package/dist/src/cli-commands/skills/disable/disable-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/disable/disable-skill.js +9 -35
- package/dist/src/cli-commands/skills/disable/disable-skill.js.map +1 -1
- package/dist/src/cli-commands/skills/disable/handler.d.ts +1 -0
- package/dist/src/cli-commands/skills/disable/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/disable/handler.js +19 -7
- package/dist/src/cli-commands/skills/disable/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/enable/enable-skill.d.ts +6 -7
- package/dist/src/cli-commands/skills/enable/enable-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/enable/enable-skill.js +16 -74
- package/dist/src/cli-commands/skills/enable/enable-skill.js.map +1 -1
- package/dist/src/cli-commands/skills/enable/handler.d.ts +1 -0
- package/dist/src/cli-commands/skills/enable/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/enable/handler.js +9 -0
- package/dist/src/cli-commands/skills/enable/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/install/install-result.d.ts +1 -1
- package/dist/src/cli-commands/skills/install/install-result.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/install/install-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/install/install-skill.js +3 -17
- package/dist/src/cli-commands/skills/install/install-skill.js.map +1 -1
- package/dist/src/cli-commands/skills/rename/rename-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/rename/rename-skill.js +0 -11
- package/dist/src/cli-commands/skills/rename/rename-skill.js.map +1 -1
- package/dist/src/cli-commands/skills/skill-paths.d.ts +1 -1
- package/dist/src/cli-commands/skills/skill-paths.js +2 -2
- package/dist/src/cli-commands/skills/skill-paths.js.map +1 -1
- package/dist/src/cli-commands/skills/uninstall/uninstall-skill.d.ts +1 -1
- package/dist/src/cli-commands/skills/uninstall/uninstall-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/uninstall/uninstall-skill.js +5 -10
- package/dist/src/cli-commands/skills/uninstall/uninstall-skill.js.map +1 -1
- package/dist/src/extensions/packs/manifest-schema.d.ts +6 -6
- package/dist/src/extensions/packs/manifest-schema.d.ts.map +1 -1
- package/dist/src/extensions/packs/manifest-schema.js +28 -7
- package/dist/src/extensions/packs/manifest-schema.js.map +1 -1
- package/dist/src/lockfile/index.d.ts +2 -2
- package/dist/src/lockfile/index.d.ts.map +1 -1
- package/dist/src/lockfile/index.js +1 -1
- package/dist/src/lockfile/index.js.map +1 -1
- package/dist/src/lockfile/lockfile.d.ts +21 -0
- package/dist/src/lockfile/lockfile.d.ts.map +1 -1
- package/dist/src/lockfile/schema.d.ts +77 -1
- package/dist/src/lockfile/schema.d.ts.map +1 -1
- package/dist/src/lockfile/schema.js +58 -1
- package/dist/src/lockfile/schema.js.map +1 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +3 -0
- package/dist/src/main.js.map +1 -1
- package/dist/src/registry/schema.d.ts +4 -4
- package/dist/src/registry/schema.d.ts.map +1 -1
- package/dist/src/registry/schema.js +3 -3
- package/dist/src/registry/schema.js.map +1 -1
- package/dist/src/settings/index.d.ts +2 -2
- package/dist/src/settings/index.d.ts.map +1 -1
- package/dist/src/settings/index.js +1 -1
- package/dist/src/settings/index.js.map +1 -1
- package/dist/src/settings/schema.d.ts +46 -1
- package/dist/src/settings/schema.d.ts.map +1 -1
- package/dist/src/settings/schema.js +34 -1
- package/dist/src/settings/schema.js.map +1 -1
- package/dist/src/settings/settings.d.ts +3 -1
- package/dist/src/settings/settings.d.ts.map +1 -1
- package/dist/src/sources/providers/registry.d.ts.map +1 -1
- package/dist/src/sources/providers/registry.js +11 -5
- package/dist/src/sources/providers/registry.js.map +1 -1
- package/dist/src/sources/resolve-source.d.ts.map +1 -1
- package/dist/src/sources/resolve-source.js +2 -2
- package/dist/src/sources/resolve-source.js.map +1 -1
- package/dist/src/workspace/service.d.ts +19 -2
- package/dist/src/workspace/service.d.ts.map +1 -1
- package/dist/src/workspace/service.js +83 -5
- package/dist/src/workspace/service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs add command yargs definition — wires handler to `axm packs add`.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This API is unstable and may change without notice.
|
|
5
|
+
*/
|
|
6
|
+
import type { CommandModule } from "yargs";
|
|
7
|
+
export interface PacksAddCommandArgs {
|
|
8
|
+
pack: string;
|
|
9
|
+
extension: string;
|
|
10
|
+
yes: boolean;
|
|
11
|
+
"non-interactive": boolean | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare const packsAddCommand: CommandModule<{}, PacksAddCommandArgs>;
|
|
14
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/add/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAGD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,EAAE,EAAE,mBAAmB,CAgDlE,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs add command yargs definition — wires handler to `axm packs add`.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This API is unstable and may change without notice.
|
|
5
|
+
*/
|
|
6
|
+
import * as Option from "effect/Option";
|
|
7
|
+
import { run } from "../../../runtime/index.js";
|
|
8
|
+
import { handlePacksAdd } from "./handler.js";
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type -- yargs convention
|
|
10
|
+
export const packsAddCommand = {
|
|
11
|
+
command: "add <pack> <extension>",
|
|
12
|
+
describe: "Add an extension to a pack manifest",
|
|
13
|
+
builder: (yargs) => yargs
|
|
14
|
+
.positional("pack", {
|
|
15
|
+
type: "string",
|
|
16
|
+
describe: "Name of the pack",
|
|
17
|
+
demandOption: true,
|
|
18
|
+
})
|
|
19
|
+
.positional("extension", {
|
|
20
|
+
type: "string",
|
|
21
|
+
describe: "Extension name or glob pattern",
|
|
22
|
+
demandOption: true,
|
|
23
|
+
})
|
|
24
|
+
.option("yes", {
|
|
25
|
+
alias: "y",
|
|
26
|
+
type: "boolean",
|
|
27
|
+
describe: "Skip all confirmation prompts",
|
|
28
|
+
default: false,
|
|
29
|
+
})
|
|
30
|
+
.option("non-interactive", {
|
|
31
|
+
type: "boolean",
|
|
32
|
+
describe: "Disable all interactive prompts",
|
|
33
|
+
})
|
|
34
|
+
.example("$0 packs add frontend-tools @acme/code-review", "Add a specific extension to a pack")
|
|
35
|
+
.example('$0 packs add my-pack "effect-*"', "Add all matching extensions via glob"),
|
|
36
|
+
handler: async (argv) => {
|
|
37
|
+
await run(handlePacksAdd({
|
|
38
|
+
pack: argv.pack,
|
|
39
|
+
extension: argv.extension,
|
|
40
|
+
yes: argv.yes,
|
|
41
|
+
}), {
|
|
42
|
+
workspace: {
|
|
43
|
+
global: false,
|
|
44
|
+
yes: argv.yes,
|
|
45
|
+
nonInteractive: Option.fromNullable(argv["non-interactive"]),
|
|
46
|
+
preview: false,
|
|
47
|
+
agents: Option.none(),
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/add/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAS9C,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAA2C;IACrE,OAAO,EAAE,wBAAwB;IACjC,QAAQ,EAAE,qCAAqC;IAC/C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,UAAU,CAAC,WAAW,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,gCAAgC;QAC1C,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,+BAA+B;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,iCAAiC;KAC5C,CAAC;SACD,OAAO,CACN,+CAA+C,EAC/C,oCAAoC,CACrC;SACA,OAAO,CAAC,iCAAiC,EAAE,sCAAsC,CAAC;IACvF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,GAAG,CACP,cAAc,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,EACF;YACE,SAAS,EAAE;gBACT,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB;SACF,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs add handler — adds extensions to a pack manifest.
|
|
3
|
+
*
|
|
4
|
+
* Supports glob expansion against managed, registry-sourced workspace extensions.
|
|
5
|
+
* Infers extension type from lockfile. Derives version range from installed version.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
10
|
+
import * as Path from "@effect/platform/Path";
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import { Log } from "../../../tui/index.js";
|
|
13
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
14
|
+
export interface PacksAddHandlerArgs {
|
|
15
|
+
/** Pack name (without scope). */
|
|
16
|
+
readonly pack: string;
|
|
17
|
+
/** Extension name or glob pattern. */
|
|
18
|
+
readonly extension: string;
|
|
19
|
+
/** Skip confirmations. */
|
|
20
|
+
readonly yes: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare const handlePacksAdd: (args: PacksAddHandlerArgs) => Effect.Effect<undefined, import("../../../cli-error/cli-error.js").CliError, Log | FileSystem.FileSystem | Path.Path | Workspace>;
|
|
23
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/add/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAcxD,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AA4BD,eAAO,MAAM,cAAc,GAAI,MAAM,mBAAmB,sIAuIX,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs add handler — adds extensions to a pack manifest.
|
|
3
|
+
*
|
|
4
|
+
* Supports glob expansion against managed, registry-sourced workspace extensions.
|
|
5
|
+
* Infers extension type from lockfile. Derives version range from installed version.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
10
|
+
import * as Path from "@effect/platform/Path";
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import { makeCliError } from "../../../cli-error/index.js";
|
|
13
|
+
import { Log } from "../../../tui/index.js";
|
|
14
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
15
|
+
import { expandGlobs } from "../../../skills/index.js";
|
|
16
|
+
import { computePackPaths } from "../pack-paths.js";
|
|
17
|
+
// -----------------------------------------------------------------------------
|
|
18
|
+
// Constants
|
|
19
|
+
// -----------------------------------------------------------------------------
|
|
20
|
+
const PACK_MANIFEST_FILENAME = "axm-pack.json";
|
|
21
|
+
// -----------------------------------------------------------------------------
|
|
22
|
+
// Helpers
|
|
23
|
+
// -----------------------------------------------------------------------------
|
|
24
|
+
/**
|
|
25
|
+
* Derive a caret version range from a resolved version.
|
|
26
|
+
* e.g., "1.2.3" -> "^1.2.3"
|
|
27
|
+
*/
|
|
28
|
+
const toVersionRange = (version) => `^${version}`;
|
|
29
|
+
// -----------------------------------------------------------------------------
|
|
30
|
+
// Main Handler
|
|
31
|
+
// -----------------------------------------------------------------------------
|
|
32
|
+
export const handlePacksAdd = (args) => Effect.gen(function* () {
|
|
33
|
+
const ws = yield* Workspace;
|
|
34
|
+
const fs = yield* FileSystem.FileSystem;
|
|
35
|
+
const path = yield* Path.Path;
|
|
36
|
+
const log = yield* Log;
|
|
37
|
+
yield* log.info("axm packs add");
|
|
38
|
+
// Step 1: Find the pack
|
|
39
|
+
const configuredPacks = yield* ws.getConfiguredPacks();
|
|
40
|
+
const packEntry = configuredPacks[args.pack];
|
|
41
|
+
if (packEntry === undefined) {
|
|
42
|
+
return yield* makeCliError({
|
|
43
|
+
code: "PACK_NOT_FOUND",
|
|
44
|
+
what: `Pack '${args.pack}' not found`,
|
|
45
|
+
howToFix: "Run `axm packs new <name>` to create a pack first",
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
// Resolve pack scope from the entry (format: "@scope/name" or { source: "@scope/name" })
|
|
49
|
+
const packSource = typeof packEntry === "string" ? packEntry : packEntry.source;
|
|
50
|
+
const scopeMatch = packSource.match(/^(@[\w-]+)\//);
|
|
51
|
+
const packScope = scopeMatch ? scopeMatch[1] : yield* ws.getConfiguredScope();
|
|
52
|
+
const base = path.dirname(ws.path);
|
|
53
|
+
// Step 2: Read pack manifest as raw JSON (no schema validation for editing)
|
|
54
|
+
const packDir = computePackPaths(path.join, base, packScope, args.pack);
|
|
55
|
+
const manifestPath = path.join(packDir.canonicalPath, PACK_MANIFEST_FILENAME);
|
|
56
|
+
const manifestContent = yield* fs.readFileString(manifestPath).pipe(Effect.mapError((e) => makeCliError({
|
|
57
|
+
code: "PACK_NOT_FOUND",
|
|
58
|
+
what: `Pack manifest not found at ${manifestPath}`,
|
|
59
|
+
howToFix: "Ensure the pack exists on disk",
|
|
60
|
+
cause: e,
|
|
61
|
+
})));
|
|
62
|
+
const manifest = yield* Effect.try({
|
|
63
|
+
try: () => JSON.parse(manifestContent),
|
|
64
|
+
catch: (e) => makeCliError({
|
|
65
|
+
code: "PACK_MANIFEST_PARSE_FAILED",
|
|
66
|
+
what: `Failed to parse pack manifest: ${manifestPath}`,
|
|
67
|
+
cause: e,
|
|
68
|
+
}),
|
|
69
|
+
});
|
|
70
|
+
// Step 3: Resolve extensions - get all managed, registry-sourced skills from lockfile
|
|
71
|
+
const lockedSkills = yield* ws.getLockedSkills();
|
|
72
|
+
const registrySkills = Object.entries(lockedSkills).filter(([, entry]) => entry.type === "registry");
|
|
73
|
+
const registrySkillNames = registrySkills.map(([name]) => name);
|
|
74
|
+
// Determine if this is a glob or exact match
|
|
75
|
+
const isGlob = args.extension.includes("*");
|
|
76
|
+
const matchedNames = isGlob
|
|
77
|
+
? expandGlobs([args.extension], registrySkillNames)
|
|
78
|
+
: registrySkillNames.includes(args.extension)
|
|
79
|
+
? [args.extension]
|
|
80
|
+
: [];
|
|
81
|
+
if (matchedNames.length === 0) {
|
|
82
|
+
if (isGlob) {
|
|
83
|
+
return yield* makeCliError({
|
|
84
|
+
code: "NO_EXTENSIONS_MATCHED",
|
|
85
|
+
what: `No managed, registry-sourced extensions match '${args.extension}'`,
|
|
86
|
+
howToFix: "Check installed extensions with `axm skills list`",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
// Check if extension exists but is not registry-sourced
|
|
90
|
+
if (args.extension in lockedSkills) {
|
|
91
|
+
return yield* makeCliError({
|
|
92
|
+
code: "EXTENSION_NOT_REGISTRY",
|
|
93
|
+
what: `Extension '${args.extension}' is not a managed, registry-sourced extension`,
|
|
94
|
+
howToFix: "Only managed, registry-sourced extensions can be added to packs",
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return yield* makeCliError({
|
|
98
|
+
code: "EXTENSION_NOT_FOUND",
|
|
99
|
+
what: `Extension '${args.extension}' not found in workspace`,
|
|
100
|
+
howToFix: "Install the extension first with `axm skills install`",
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
// Step 4: Add extensions to manifest
|
|
104
|
+
let updated = false;
|
|
105
|
+
const currentSkills = { ...(manifest.skills ?? {}) };
|
|
106
|
+
for (const name of matchedNames) {
|
|
107
|
+
const lockEntry = lockedSkills[name];
|
|
108
|
+
// All matched extensions are registry-sourced (filtered above)
|
|
109
|
+
if (lockEntry.type !== "registry")
|
|
110
|
+
continue;
|
|
111
|
+
const fqn = `${lockEntry.scope}/${lockEntry.name}`;
|
|
112
|
+
const version = toVersionRange(lockEntry.resolvedVersion);
|
|
113
|
+
// Check if already in pack (by FQN)
|
|
114
|
+
if (fqn in currentSkills) {
|
|
115
|
+
yield* log.info(`Extension '${fqn}' already in pack`);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
currentSkills[fqn] = version;
|
|
119
|
+
updated = true;
|
|
120
|
+
yield* log.info(`Adding ${fqn}@${version}`);
|
|
121
|
+
}
|
|
122
|
+
if (!updated) {
|
|
123
|
+
yield* log.success("Nothing to do.");
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
manifest.skills = currentSkills;
|
|
127
|
+
// Step 5: Write updated manifest
|
|
128
|
+
yield* fs.writeFileString(manifestPath, JSON.stringify(manifest, null, 2) + "\n").pipe(Effect.mapError((e) => makeCliError({
|
|
129
|
+
code: "PACK_WRITE_FAILED",
|
|
130
|
+
what: `Failed to write pack manifest: ${manifestPath}`,
|
|
131
|
+
cause: e,
|
|
132
|
+
})));
|
|
133
|
+
yield* log.success("Done");
|
|
134
|
+
}).pipe(Effect.withSpan("PacksAdd.handle"));
|
|
135
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/add/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli-commands/packs/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAS3C,eAAO,MAAM,YAAY,EAAE,aAyB1B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { packsAddCommand } from "./add/command.js";
|
|
2
|
+
import { installPackCommand } from "./install/command.js";
|
|
3
|
+
import { packsNewCommand } from "./new/command.js";
|
|
4
|
+
import { publishPackCommand } from "./publish/command.js";
|
|
5
|
+
import { packsRemoveCommand } from "./remove/command.js";
|
|
6
|
+
import { uninstallPackCommand } from "./uninstall/command.js";
|
|
7
|
+
import { unpackCommand } from "./unpack/command.js";
|
|
8
|
+
export const packsCommand = {
|
|
9
|
+
command: "packs",
|
|
10
|
+
describe: "Manage extension packs for AI coding agents",
|
|
11
|
+
builder: (yargs) => yargs
|
|
12
|
+
.command(packsNewCommand)
|
|
13
|
+
.command(installPackCommand)
|
|
14
|
+
.command(uninstallPackCommand)
|
|
15
|
+
.command(packsAddCommand)
|
|
16
|
+
.command(packsRemoveCommand)
|
|
17
|
+
.command(publishPackCommand)
|
|
18
|
+
.command(unpackCommand)
|
|
19
|
+
.demandCommand(1)
|
|
20
|
+
.example("$0 packs new my-pack", "Create a new extension pack")
|
|
21
|
+
.example("$0 packs install owner/repo", "Install an extension pack")
|
|
22
|
+
.example("$0 packs add my-skill --pack my-pack", "Add a skill to a pack")
|
|
23
|
+
.fail((msg, _err, yargs) => {
|
|
24
|
+
if (msg?.includes("Not enough non-option arguments")) {
|
|
25
|
+
yargs.showHelp("log");
|
|
26
|
+
process.exit(0);
|
|
27
|
+
}
|
|
28
|
+
console.error(msg ?? _err);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}),
|
|
31
|
+
handler: () => { },
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/cli-commands/packs/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,6CAA6C;IACvD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,kBAAkB,CAAC;SAC3B,OAAO,CAAC,oBAAoB,CAAC;SAC7B,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,kBAAkB,CAAC;SAC3B,OAAO,CAAC,kBAAkB,CAAC;SAC3B,OAAO,CAAC,aAAa,CAAC;SACtB,aAAa,CAAC,CAAC,CAAC;SAChB,OAAO,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;SAC9D,OAAO,CAAC,6BAA6B,EAAE,2BAA2B,CAAC;SACnE,OAAO,CAAC,sCAAsC,EAAE,uBAAuB,CAAC;SACxE,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACzB,IAAI,GAAG,EAAE,QAAQ,CAAC,iCAAiC,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACN,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { computePackPaths, type PackDirPath } from "./pack-paths.js";
|
|
2
|
+
export type { InstallPackOperation, InstallPackOperationArgs, UninstallPackOperation, UninstallPackOperationArgs, PublishPackOperation, PublishPackOperationArgs, } from "./operations.js";
|
|
3
|
+
export { buildInstallPlan } from "./install/build-plan.js";
|
|
4
|
+
export { buildUninstallPlan, findOrphanedSkills, findOrphanedCommands, findOrphanedMcpServers, } from "./uninstall/build-plan.js";
|
|
5
|
+
export { packsNewCommand } from "./new/command.js";
|
|
6
|
+
export { packsAddCommand } from "./add/command.js";
|
|
7
|
+
export { packsRemoveCommand } from "./remove/command.js";
|
|
8
|
+
export { installPackCommand } from "./install/command.js";
|
|
9
|
+
export { uninstallPackCommand } from "./uninstall/command.js";
|
|
10
|
+
export { publishPackCommand } from "./publish/command.js";
|
|
11
|
+
export { unpackCommand } from "./unpack/command.js";
|
|
12
|
+
export { packsCommand } from "./command.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli-commands/packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrE,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { computePackPaths } from "./pack-paths.js";
|
|
2
|
+
export { buildInstallPlan } from "./install/build-plan.js";
|
|
3
|
+
export { buildUninstallPlan, findOrphanedSkills, findOrphanedCommands, findOrphanedMcpServers, } from "./uninstall/build-plan.js";
|
|
4
|
+
export { packsNewCommand } from "./new/command.js";
|
|
5
|
+
export { packsAddCommand } from "./add/command.js";
|
|
6
|
+
export { packsRemoveCommand } from "./remove/command.js";
|
|
7
|
+
export { installPackCommand } from "./install/command.js";
|
|
8
|
+
export { uninstallPackCommand } from "./uninstall/command.js";
|
|
9
|
+
export { publishPackCommand } from "./publish/command.js";
|
|
10
|
+
export { unpackCommand } from "./unpack/command.js";
|
|
11
|
+
export { packsCommand } from "./command.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli-commands/packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,iBAAiB,CAAC;AASrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pack-specific install plan builder.
|
|
3
|
+
*
|
|
4
|
+
* Diffs InstallPackOperations against lockfile state to produce a Plan.
|
|
5
|
+
* New packs become expected-success steps; already-installed packs become expected-no-op steps.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import * as Option from "effect/Option";
|
|
10
|
+
import type { Lockfile } from "../../../lockfile/schema.js";
|
|
11
|
+
import type { Plan } from "../../../workspace/plan.js";
|
|
12
|
+
import type { InstallPackOperation } from "../operations.js";
|
|
13
|
+
/**
|
|
14
|
+
* Build a plan by comparing pack operations against the lockfile.
|
|
15
|
+
*
|
|
16
|
+
* Pure function — no Effect needed.
|
|
17
|
+
*/
|
|
18
|
+
export declare const buildInstallPlan: (ops: ReadonlyArray<InstallPackOperation>, lockfile: Lockfile, name: string, description: Option.Option<string>) => Plan<InstallPackOperation>;
|
|
19
|
+
//# sourceMappingURL=build-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-plan.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/install/build-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,aAAa,CAAC,oBAAoB,CAAC,EACxC,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KACjC,IAAI,CAAC,oBAAoB,CA4B1B,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pack-specific install plan builder.
|
|
3
|
+
*
|
|
4
|
+
* Diffs InstallPackOperations against lockfile state to produce a Plan.
|
|
5
|
+
* New packs become expected-success steps; already-installed packs become expected-no-op steps.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import * as Option from "effect/Option";
|
|
10
|
+
/**
|
|
11
|
+
* Build a plan by comparing pack operations against the lockfile.
|
|
12
|
+
*
|
|
13
|
+
* Pure function — no Effect needed.
|
|
14
|
+
*/
|
|
15
|
+
export const buildInstallPlan = (ops, lockfile, name, description) => ({
|
|
16
|
+
name,
|
|
17
|
+
description,
|
|
18
|
+
jobs: [
|
|
19
|
+
{
|
|
20
|
+
concurrency: 1,
|
|
21
|
+
steps: ops.map((op) => {
|
|
22
|
+
const lockedPacks = lockfile.packs ?? {};
|
|
23
|
+
const installed = Object.hasOwn(lockedPacks, op.args.packName);
|
|
24
|
+
return installed
|
|
25
|
+
? {
|
|
26
|
+
_tag: "PlannedJobStep",
|
|
27
|
+
operation: op,
|
|
28
|
+
expectedResult: { result: "no-op", message: "already installed" },
|
|
29
|
+
label: op.args.packName,
|
|
30
|
+
}
|
|
31
|
+
: {
|
|
32
|
+
_tag: "PlannedJobStep",
|
|
33
|
+
operation: op,
|
|
34
|
+
expectedResult: {
|
|
35
|
+
result: "success",
|
|
36
|
+
message: `Installed pack ${op.args.packName}`,
|
|
37
|
+
},
|
|
38
|
+
label: op.args.packName,
|
|
39
|
+
};
|
|
40
|
+
}),
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=build-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-plan.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/install/build-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAAwC,EACxC,QAAkB,EAClB,IAAY,EACZ,WAAkC,EACN,EAAE,CAAC,CAAC;IAChC,IAAI;IACJ,WAAW;IACX,IAAI,EAAE;QACJ;YACE,WAAW,EAAE,CAAC;YACd,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAwC,EAAE;gBAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/D,OAAO,SAAS;oBACd,CAAC,CAAC;wBACE,IAAI,EAAE,gBAAgB;wBACtB,SAAS,EAAE,EAAE;wBACb,cAAc,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE;wBACjE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;qBACxB;oBACH,CAAC,CAAC;wBACE,IAAI,EAAE,gBAAgB;wBACtB,SAAS,EAAE,EAAE;wBACb,cAAc,EAAE;4BACd,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;yBAC9C;wBACD,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;qBACxB,CAAC;YACR,CAAC,CAAC;SACH;KACF;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs install command yargs definition - wires handler to `axm packs install`.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This API is unstable and may change without notice.
|
|
5
|
+
*/
|
|
6
|
+
import type { CommandModule } from "yargs";
|
|
7
|
+
interface InstallPackCommandArgs {
|
|
8
|
+
source: string;
|
|
9
|
+
global: boolean;
|
|
10
|
+
yes: boolean;
|
|
11
|
+
force: boolean;
|
|
12
|
+
preview: boolean;
|
|
13
|
+
"non-interactive": boolean | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare const installPackCommand: CommandModule<{}, InstallPackCommandArgs>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/install/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAGD,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,EAAE,EAAE,sBAAsB,CAoExE,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs install command yargs definition - wires handler to `axm packs install`.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This API is unstable and may change without notice.
|
|
5
|
+
*/
|
|
6
|
+
import * as Option from "effect/Option";
|
|
7
|
+
import { run } from "../../../runtime/index.js";
|
|
8
|
+
import { handleInstallPack } from "./handler.js";
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type -- yargs convention
|
|
10
|
+
export const installPackCommand = {
|
|
11
|
+
command: "install <source>",
|
|
12
|
+
describe: "Install a pack and its extensions from a registry",
|
|
13
|
+
builder: (yargs) => yargs
|
|
14
|
+
.positional("source", {
|
|
15
|
+
type: "string",
|
|
16
|
+
describe: "Registry pack reference (@scope/name or @scope/name@version)",
|
|
17
|
+
demandOption: true,
|
|
18
|
+
})
|
|
19
|
+
.option("global", {
|
|
20
|
+
type: "boolean",
|
|
21
|
+
describe: "Install to global ~/.axm/ instead of local .axm/",
|
|
22
|
+
default: false,
|
|
23
|
+
})
|
|
24
|
+
.option("yes", {
|
|
25
|
+
alias: "y",
|
|
26
|
+
type: "boolean",
|
|
27
|
+
describe: "Skip all confirmation prompts",
|
|
28
|
+
default: false,
|
|
29
|
+
})
|
|
30
|
+
.option("force", {
|
|
31
|
+
alias: "f",
|
|
32
|
+
type: "boolean",
|
|
33
|
+
describe: "Overwrite existing pack",
|
|
34
|
+
default: false,
|
|
35
|
+
})
|
|
36
|
+
.option("preview", {
|
|
37
|
+
type: "boolean",
|
|
38
|
+
describe: "Display installation plan without applying",
|
|
39
|
+
default: false,
|
|
40
|
+
})
|
|
41
|
+
.option("non-interactive", {
|
|
42
|
+
type: "boolean",
|
|
43
|
+
describe: "Disable all interactive prompts",
|
|
44
|
+
})
|
|
45
|
+
.example("$0 packs install @acme/frontend-tools", "Install pack and all referenced extensions")
|
|
46
|
+
.example("$0 packs install @acme/frontend-tools@^2.0.0", "Install specific version range")
|
|
47
|
+
.example("$0 packs install @acme/frontend-tools --preview", "See what would be installed"),
|
|
48
|
+
handler: async (argv) => {
|
|
49
|
+
await run(handleInstallPack({
|
|
50
|
+
source: argv.source,
|
|
51
|
+
global: argv.global,
|
|
52
|
+
yes: argv.yes,
|
|
53
|
+
force: argv.force,
|
|
54
|
+
nonInteractive: Option.fromNullable(argv["non-interactive"]),
|
|
55
|
+
}), {
|
|
56
|
+
workspace: {
|
|
57
|
+
global: argv.global,
|
|
58
|
+
yes: argv.yes,
|
|
59
|
+
nonInteractive: Option.fromNullable(argv["non-interactive"]),
|
|
60
|
+
preview: argv.preview,
|
|
61
|
+
agents: Option.none(),
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/install/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAWjD,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAA8C;IAC3E,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,mDAAmD;IAC7D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,QAAQ,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,8DAA8D;QACxE,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kDAAkD;QAC5D,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,+BAA+B;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,yBAAyB;QACnC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,4CAA4C;QACtD,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,iCAAiC;KAC5C,CAAC;SACD,OAAO,CACN,uCAAuC,EACvC,4CAA4C,CAC7C;SACA,OAAO,CACN,8CAA8C,EAC9C,gCAAgC,CACjC;SACA,OAAO,CACN,iDAAiD,EACjD,6BAA6B,CAC9B;IACL,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,GAAG,CACP,iBAAiB,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC7D,CAAC,EACF;YACE,SAAS,EAAE;gBACT,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB;SACF,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Install command handler - Effect-based orchestration for `axm packs install`.
|
|
3
|
+
*
|
|
4
|
+
* Packs are registry-only. Flow:
|
|
5
|
+
* 1. Parse source (must be registry)
|
|
6
|
+
* 2. Registry guard (ensure registry configured)
|
|
7
|
+
* 3. Fetch pack archive from registry
|
|
8
|
+
* 4. Extract to managed location
|
|
9
|
+
* 5. Read manifest to discover referenced extensions
|
|
10
|
+
* 6. Build cascading install plan (pack + referenced extensions)
|
|
11
|
+
* 7. Execute plan
|
|
12
|
+
*
|
|
13
|
+
* @experimental This API is unstable and may change without notice.
|
|
14
|
+
*/
|
|
15
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
16
|
+
import * as Path from "@effect/platform/Path";
|
|
17
|
+
import { SourceProviders } from "../../../sources/index.js";
|
|
18
|
+
import * as Effect from "effect/Effect";
|
|
19
|
+
import * as Option from "effect/Option";
|
|
20
|
+
import { Log, Spinner } from "../../../tui/index.js";
|
|
21
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
22
|
+
/**
|
|
23
|
+
* Arguments for the packs install command.
|
|
24
|
+
*/
|
|
25
|
+
export interface InstallPackHandlerArgs {
|
|
26
|
+
/** Source to install pack from (e.g., "@acme/frontend-tools") */
|
|
27
|
+
readonly source: string;
|
|
28
|
+
/** Install to global ~/.axm/ instead of local .axm/ */
|
|
29
|
+
readonly global: boolean;
|
|
30
|
+
/** Skip confirmations */
|
|
31
|
+
readonly yes: boolean;
|
|
32
|
+
/** Overwrite existing packs */
|
|
33
|
+
readonly force: boolean;
|
|
34
|
+
/** Disable all prompts */
|
|
35
|
+
readonly nonInteractive: Option.Option<boolean>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Handles the `axm packs install` command.
|
|
39
|
+
*
|
|
40
|
+
* @experimental This API is unstable and may change without notice.
|
|
41
|
+
*/
|
|
42
|
+
export declare const handleInstallPack: (args: InstallPackHandlerArgs) => Effect.Effect<undefined, import("../../../tui/errors.js").PromptCancelled | import("../../../cli-error/cli-error.js").CliError, import("../../../tui/index.js").Confirm | Log | Spinner | import("../../../tui/index.js").TextInput | FileSystem.FileSystem | Path.Path | import("effect/Scope").Scope | Workspace | SourceProviders>;
|
|
43
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/install/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAIL,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAYxD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CACjD;AAYD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,sBAAsB,0UAkN7D,CAAC"}
|