@axm.sh/cli 0.0.12 → 0.0.14
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 +182 -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 +94 -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 +89 -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/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/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/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 +17 -1
- 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/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,182 @@
|
|
|
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 { resolveSource, registryGuard, printSourceInput, SourceProviders, } from "../../../sources/index.js";
|
|
18
|
+
import * as Effect from "effect/Effect";
|
|
19
|
+
import * as Option from "effect/Option";
|
|
20
|
+
import * as Schema from "effect/Schema";
|
|
21
|
+
import { makeCliError } from "../../../cli-error/index.js";
|
|
22
|
+
import { Log, Spinner } from "../../../tui/index.js";
|
|
23
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
24
|
+
import { PackManifestSchema } from "../../../extensions/packs/manifest-schema.js";
|
|
25
|
+
import { buildInstallPlan } from "./build-plan.js";
|
|
26
|
+
import { installPack } from "./install-pack.js";
|
|
27
|
+
import { copySkillDirectory } from "../../skills/copy-skill-directory.js";
|
|
28
|
+
import { REGISTRY_EXTENSIONS_DIR } from "../../skills/constants.js";
|
|
29
|
+
// -----------------------------------------------------------------------------
|
|
30
|
+
// Constants
|
|
31
|
+
// -----------------------------------------------------------------------------
|
|
32
|
+
const PACK_MANIFEST_FILENAME = "axm-pack.json";
|
|
33
|
+
// -----------------------------------------------------------------------------
|
|
34
|
+
// Main Handler
|
|
35
|
+
// -----------------------------------------------------------------------------
|
|
36
|
+
/**
|
|
37
|
+
* Handles the `axm packs install` command.
|
|
38
|
+
*
|
|
39
|
+
* @experimental This API is unstable and may change without notice.
|
|
40
|
+
*/
|
|
41
|
+
export const handleInstallPack = (args) => {
|
|
42
|
+
const scopeLabel = args.global ? "global" : "project";
|
|
43
|
+
return Effect.gen(function* () {
|
|
44
|
+
const ws = yield* Workspace;
|
|
45
|
+
const sources = yield* SourceProviders;
|
|
46
|
+
const log = yield* Log;
|
|
47
|
+
const spinnerSvc = yield* Spinner;
|
|
48
|
+
const path = yield* Path.Path;
|
|
49
|
+
const fs = yield* FileSystem.FileSystem;
|
|
50
|
+
yield* log.info(`axm packs install (${scopeLabel})`);
|
|
51
|
+
// Step 1: Parse source (must be registry)
|
|
52
|
+
const parseHandle = yield* spinnerSvc.start("Parsing source...");
|
|
53
|
+
const source = yield* resolveSource(args.source).pipe(Effect.mapError((error) => makeCliError({
|
|
54
|
+
code: "INVALID_SOURCE",
|
|
55
|
+
what: `Invalid source: ${error.message}`,
|
|
56
|
+
details: [`Provided: ${args.source || "(empty)"}`],
|
|
57
|
+
howToFix: "Packs must be installed from a registry. Use format: @scope/pack-name or @scope/pack-name@version",
|
|
58
|
+
cause: error,
|
|
59
|
+
})));
|
|
60
|
+
if (source.type !== "registry") {
|
|
61
|
+
yield* parseHandle.stop("Failed");
|
|
62
|
+
return yield* Effect.fail(makeCliError({
|
|
63
|
+
code: "PACK_SOURCE_NOT_REGISTRY",
|
|
64
|
+
what: "Packs can only be installed from a registry",
|
|
65
|
+
details: [`Provided source type: ${source.type}`],
|
|
66
|
+
howToFix: "Use a registry source: @scope/pack-name or @scope/pack-name@version",
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
yield* parseHandle.stop(`Source: ${printSourceInput(source)} (registry)`);
|
|
70
|
+
// Step 2: Check if already installed (unless --force)
|
|
71
|
+
if (!args.force) {
|
|
72
|
+
const lockedPack = yield* ws.getLockedPack(source.name);
|
|
73
|
+
if (Option.isSome(lockedPack)) {
|
|
74
|
+
yield* log.warn(`Pack "${source.name}" is already installed. Use --force to overwrite.`);
|
|
75
|
+
yield* log.success("Nothing to install.");
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Step 3: Registry guard
|
|
80
|
+
yield* registryGuard;
|
|
81
|
+
// Step 4: Discover and fetch pack from registry
|
|
82
|
+
const discoverHandle = yield* spinnerSvc.start("Fetching pack from registry...");
|
|
83
|
+
const findOptions = {
|
|
84
|
+
names: [source.name],
|
|
85
|
+
agents: [],
|
|
86
|
+
type: "pack",
|
|
87
|
+
};
|
|
88
|
+
const refs = yield* sources.resolveExtension(source, findOptions).pipe(Effect.mapError((error) => makeCliError({
|
|
89
|
+
code: "PACK_FETCH_FAILED",
|
|
90
|
+
what: `Failed to fetch pack from registry: ${error.message}`,
|
|
91
|
+
details: [`Pack: ${printSourceInput(source)}`],
|
|
92
|
+
howToFix: "Verify the pack name and registry configuration.",
|
|
93
|
+
cause: error,
|
|
94
|
+
})), Effect.tapError(() => discoverHandle.stop("Failed")));
|
|
95
|
+
if (refs.length === 0) {
|
|
96
|
+
yield* discoverHandle.stop("Not found");
|
|
97
|
+
return yield* Effect.fail(makeCliError({
|
|
98
|
+
code: "PACK_NOT_FOUND",
|
|
99
|
+
what: `Pack "${source.name}" not found in registry`,
|
|
100
|
+
howToFix: "Verify the pack name and check available packs.",
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
// Fetch the pack archive
|
|
104
|
+
const packRef = refs[0];
|
|
105
|
+
const fetched = yield* sources.fetch(packRef).pipe(Effect.mapError((error) => makeCliError({
|
|
106
|
+
code: "PACK_FETCH_FAILED",
|
|
107
|
+
what: `Failed to download pack: ${error.message}`,
|
|
108
|
+
cause: error,
|
|
109
|
+
})), Effect.tapError(() => discoverHandle.stop("Failed")));
|
|
110
|
+
yield* discoverHandle.stop("Fetched pack");
|
|
111
|
+
// Step 5: Extract to managed location
|
|
112
|
+
const extractHandle = yield* spinnerSvc.start("Extracting pack...");
|
|
113
|
+
const base = path.dirname(ws.path);
|
|
114
|
+
const packDir = path.join(base, REGISTRY_EXTENSIONS_DIR, source.scope, "packs", source.name);
|
|
115
|
+
yield* copySkillDirectory(fetched.directory, packDir).pipe(Effect.mapError((e) => makeCliError({
|
|
116
|
+
code: "PACK_EXTRACT_FAILED",
|
|
117
|
+
what: `Failed to extract pack to ${packDir}`,
|
|
118
|
+
cause: e,
|
|
119
|
+
})), Effect.tapError(() => extractHandle.stop("Failed")));
|
|
120
|
+
yield* extractHandle.stop("Extracted");
|
|
121
|
+
// Step 6: Read manifest to discover referenced extensions
|
|
122
|
+
const manifestPath = path.join(packDir, PACK_MANIFEST_FILENAME);
|
|
123
|
+
const manifestExists = yield* fs
|
|
124
|
+
.exists(manifestPath)
|
|
125
|
+
.pipe(Effect.catchAll(() => Effect.succeed(false)));
|
|
126
|
+
if (!manifestExists) {
|
|
127
|
+
return yield* Effect.fail(makeCliError({
|
|
128
|
+
code: "PACK_MISSING_MANIFEST",
|
|
129
|
+
what: `Pack archive does not contain ${PACK_MANIFEST_FILENAME}`,
|
|
130
|
+
details: [`Expected at: ${manifestPath}`],
|
|
131
|
+
howToFix: "The pack archive may be corrupted. Try reinstalling.",
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
const manifestContent = yield* fs.readFileString(manifestPath).pipe(Effect.mapError((e) => makeCliError({
|
|
135
|
+
code: "PACK_MANIFEST_READ_FAILED",
|
|
136
|
+
what: `Failed to read pack manifest: ${manifestPath}`,
|
|
137
|
+
cause: e,
|
|
138
|
+
})));
|
|
139
|
+
const manifestJson = yield* Effect.try({
|
|
140
|
+
try: () => JSON.parse(manifestContent),
|
|
141
|
+
catch: (e) => makeCliError({
|
|
142
|
+
code: "PACK_MANIFEST_PARSE_FAILED",
|
|
143
|
+
what: "Failed to parse pack manifest JSON",
|
|
144
|
+
cause: e,
|
|
145
|
+
}),
|
|
146
|
+
});
|
|
147
|
+
const manifest = yield* Schema.decodeUnknown(PackManifestSchema)(manifestJson).pipe(Effect.mapError((e) => makeCliError({
|
|
148
|
+
code: "PACK_MANIFEST_PARSE_FAILED",
|
|
149
|
+
what: "Pack manifest is invalid",
|
|
150
|
+
details: [e.message],
|
|
151
|
+
cause: e,
|
|
152
|
+
})));
|
|
153
|
+
// Build resolved extension maps from manifest
|
|
154
|
+
const resolvedSkills = { ...(manifest.skills ?? {}) };
|
|
155
|
+
const resolvedCommands = { ...(manifest.commands ?? {}) };
|
|
156
|
+
const resolvedMcpServers = { ...(manifest["mcp-servers"] ?? {}) };
|
|
157
|
+
// Resolve version from pack ref
|
|
158
|
+
const resolvedVersion = Option.getOrElse(packRef.version, () => manifest.version);
|
|
159
|
+
// Step 7: Build install plan
|
|
160
|
+
const op = {
|
|
161
|
+
name: "install-pack",
|
|
162
|
+
args: {
|
|
163
|
+
packName: source.name,
|
|
164
|
+
scope: source.scope,
|
|
165
|
+
source: `registry:${source.scope}/${source.name}@${resolvedVersion}`,
|
|
166
|
+
resolvedVersion,
|
|
167
|
+
checksum: "",
|
|
168
|
+
sourceName: "default",
|
|
169
|
+
resolvedSkills,
|
|
170
|
+
resolvedCommands,
|
|
171
|
+
resolvedMcpServers,
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
const lockedPacks = yield* ws.getLockedPacks();
|
|
175
|
+
const lockedSkills = yield* ws.getLockedSkills();
|
|
176
|
+
const lockfile = { lockfileVersion: 1, skills: lockedSkills, packs: lockedPacks };
|
|
177
|
+
const plan = buildInstallPlan([op], lockfile, "Install pack", Option.some(`Install pack ${printSourceInput(source)}`));
|
|
178
|
+
yield* ws.resolvePlan(plan, { "install-pack": installPack });
|
|
179
|
+
yield* log.success("Done");
|
|
180
|
+
}).pipe(Effect.withSpan("InstallPack.handle"));
|
|
181
|
+
};
|
|
182
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","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,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAsBpE,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAE/C,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAA4B,EAAE,EAAE;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;QACvB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAExC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,UAAU,GAAG,CAAC,CAAC;QAErD,0CAA0C;QAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACnD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,YAAY,CAAC;YACX,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,mBAAmB,KAAK,CAAC,OAAO,EAAE;YACxC,OAAO,EAAE,CAAC,aAAa,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAClD,QAAQ,EACN,mGAAmG;YACrG,KAAK,EAAE,KAAK;SACb,CAAC,CACH,CACF,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,YAAY,CAAC;gBACX,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,6CAA6C;gBACnD,OAAO,EAAE,CAAC,yBAAyB,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjD,QAAQ,EAAE,qEAAqE;aAChF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE1E,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,mDAAmD,CAAC,CAAC;gBACzF,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,KAAK,CAAC,CAAC,aAAa,CAAC;QAErB,gDAAgD;QAChD,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG;YAClB,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAiC;YACpD,MAAM,EAAE,EAAkC;YAC1C,IAAI,EAAE,MAAe;SACtB,CAAC;QACF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CACpE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,YAAY,CAAC;YACX,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,uCAAuC,KAAK,CAAC,OAAO,EAAE;YAC5D,OAAO,EAAE,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,QAAQ,EAAE,kDAAkD;YAC5D,KAAK,EAAE,KAAK;SACb,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACrD,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,YAAY,CAAC;gBACX,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,SAAS,MAAM,CAAC,IAAI,yBAAyB;gBACnD,QAAQ,EAAE,iDAAiD;aAC5D,CAAC,CACH,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,YAAY,CAAC;YACX,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,4BAA4B,KAAK,CAAC,OAAO,EAAE;YACjD,KAAK,EAAE,KAAK;SACb,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACrD,CAAC;QACF,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3C,sCAAsC;QACtC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAE7F,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CACxD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,YAAY,CAAC;YACX,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,6BAA6B,OAAO,EAAE;YAC5C,KAAK,EAAE,CAAC;SACT,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACpD,CAAC;QACF,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvC,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,EAAE;aAC7B,MAAM,CAAC,YAAY,CAAC;aACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,YAAY,CAAC;gBACX,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,iCAAiC,sBAAsB,EAAE;gBAC/D,OAAO,EAAE,CAAC,gBAAgB,YAAY,EAAE,CAAC;gBACzC,QAAQ,EAAE,sDAAsD;aACjE,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,IAAI,CACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,YAAY,CAAC;YACX,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,iCAAiC,YAAY,EAAE;YACrD,KAAK,EAAE,CAAC;SACT,CAAC,CACH,CACF,CAAC;QAEF,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACrC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAY;YACjD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,YAAY,CAAC;gBACX,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE,oCAAoC;gBAC1C,KAAK,EAAE,CAAC;aACT,CAAC;SACL,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CACjF,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,YAAY,CAAC;YACX,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACpB,KAAK,EAAE,CAAC;SACT,CAAC,CACH,CACF,CAAC;QAEF,8CAA8C;QAC9C,MAAM,cAAc,GAA2B,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9E,MAAM,gBAAgB,GAA2B,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAClF,MAAM,kBAAkB,GAA2B,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAE1F,gCAAgC;QAChC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAElF,6BAA6B;QAC7B,MAAM,EAAE,GAAyB;YAC/B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE;gBACJ,QAAQ,EAAE,MAAM,CAAC,IAAI;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,YAAY,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,eAAe,EAAE;gBACpE,eAAe;gBACf,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,SAAS;gBACrB,cAAc;gBACd,gBAAgB;gBAChB,kBAAkB;aACnB;SACF,CAAC;QAEF,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAElF,MAAM,IAAI,GAAG,gBAAgB,CAC3B,CAAC,EAAE,CAAC,EACJ,QAAQ,EACR,cAAc,EACd,MAAM,CAAC,IAAI,CAAC,gBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CACxD,CAAC;QAEF,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;QAE7D,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Install-pack operation handler.
|
|
3
|
+
*
|
|
4
|
+
* Writes pack metadata to settings and lockfile. The actual pack files
|
|
5
|
+
* are already extracted by the handler before plan execution.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import { Log } from "../../../tui/index.js";
|
|
10
|
+
import { Workspace } from "../../../workspace/service.js";
|
|
11
|
+
import type { OperationHandler } from "../../../workspace/apply-plan.js";
|
|
12
|
+
import type { InstallPackOperation } from "../operations.js";
|
|
13
|
+
/**
|
|
14
|
+
* Install-pack operation handler.
|
|
15
|
+
*
|
|
16
|
+
* Records the pack in settings (source string) and lockfile (lock entry
|
|
17
|
+
* with resolved extensions). Pack files are already on disk by this point.
|
|
18
|
+
*/
|
|
19
|
+
export declare const installPack: OperationHandler<InstallPackOperation, Workspace | Log>;
|
|
20
|
+
//# sourceMappingURL=install-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-pack.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/install/install-pack.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,GAAG,GAAG,CA2B5E,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Install-pack operation handler.
|
|
3
|
+
*
|
|
4
|
+
* Writes pack metadata to settings and lockfile. The actual pack files
|
|
5
|
+
* are already extracted by the handler before plan execution.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import { Log } from "../../../tui/index.js";
|
|
11
|
+
import { Workspace } from "../../../workspace/service.js";
|
|
12
|
+
/**
|
|
13
|
+
* Install-pack operation handler.
|
|
14
|
+
*
|
|
15
|
+
* Records the pack in settings (source string) and lockfile (lock entry
|
|
16
|
+
* with resolved extensions). Pack files are already on disk by this point.
|
|
17
|
+
*/
|
|
18
|
+
export const installPack = (op) => Effect.gen(function* () {
|
|
19
|
+
const ws = yield* Workspace;
|
|
20
|
+
const log = yield* Log;
|
|
21
|
+
const sourceString = `registry:${op.args.scope}/${op.args.packName}@${op.args.resolvedVersion}`;
|
|
22
|
+
yield* ws
|
|
23
|
+
.setPack(op.args.packName, sourceString, {
|
|
24
|
+
type: "registry",
|
|
25
|
+
scope: op.args.scope,
|
|
26
|
+
name: op.args.packName,
|
|
27
|
+
resolvedVersion: op.args.resolvedVersion,
|
|
28
|
+
checksum: op.args.checksum,
|
|
29
|
+
sourceName: op.args.sourceName,
|
|
30
|
+
installedAt: new Date(),
|
|
31
|
+
updatedAt: new Date(),
|
|
32
|
+
resolvedSkills: { ...op.args.resolvedSkills },
|
|
33
|
+
resolvedCommands: { ...op.args.resolvedCommands },
|
|
34
|
+
resolvedMcpServers: { ...op.args.resolvedMcpServers },
|
|
35
|
+
})
|
|
36
|
+
.pipe(Effect.catchAll((e) => log.warn(`Pack metadata update failed: ${String(e)}`)));
|
|
37
|
+
return {
|
|
38
|
+
result: "success",
|
|
39
|
+
message: `Installed pack ${op.args.packName}`,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=install-pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-pack.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/install/install-pack.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAK1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAA4D,CAAC,EAAE,EAAE,EAAE,CACzF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAEvB,MAAM,YAAY,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IAEhG,KAAK,CAAC,CAAC,EAAE;SACN,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;QACvC,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK;QACpB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;QACtB,eAAe,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe;QACxC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;QAC1B,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU;QAC9B,WAAW,EAAE,IAAI,IAAI,EAAE;QACvB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;QAC7C,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;QACjD,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;KACtD,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvF,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;KACpB,CAAC;AAC9B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs new command yargs definition — wires handler to `axm packs new`.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This API is unstable and may change without notice.
|
|
5
|
+
*/
|
|
6
|
+
import type { CommandModule } from "yargs";
|
|
7
|
+
export interface PacksNewCommandArgs {
|
|
8
|
+
name: string;
|
|
9
|
+
scope: string | undefined;
|
|
10
|
+
yes: boolean;
|
|
11
|
+
"non-interactive": boolean | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare const packsNewCommand: CommandModule<{}, PacksNewCommandArgs>;
|
|
14
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/new/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,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAGD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,EAAE,EAAE,mBAAmB,CA4ClE,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs new command yargs definition — wires handler to `axm packs new`.
|
|
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 { handlePacksNew } from "./handler.js";
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type -- yargs convention
|
|
10
|
+
export const packsNewCommand = {
|
|
11
|
+
command: "new <name>",
|
|
12
|
+
describe: "Create a new empty extension pack",
|
|
13
|
+
builder: (yargs) => yargs
|
|
14
|
+
.positional("name", {
|
|
15
|
+
type: "string",
|
|
16
|
+
describe: "Name of the pack (without scope)",
|
|
17
|
+
demandOption: true,
|
|
18
|
+
})
|
|
19
|
+
.option("scope", {
|
|
20
|
+
type: "string",
|
|
21
|
+
describe: "Override the workspace scope (e.g., @acme)",
|
|
22
|
+
})
|
|
23
|
+
.option("yes", {
|
|
24
|
+
alias: "y",
|
|
25
|
+
type: "boolean",
|
|
26
|
+
describe: "Skip all confirmation prompts",
|
|
27
|
+
default: false,
|
|
28
|
+
})
|
|
29
|
+
.option("non-interactive", {
|
|
30
|
+
type: "boolean",
|
|
31
|
+
describe: "Disable all interactive prompts",
|
|
32
|
+
})
|
|
33
|
+
.example("$0 packs new frontend-tools", "Create @<scope>/frontend-tools")
|
|
34
|
+
.example("$0 packs new frontend-tools --scope @co", "Create @co/frontend-tools"),
|
|
35
|
+
handler: async (argv) => {
|
|
36
|
+
await run(handlePacksNew({
|
|
37
|
+
name: argv.name,
|
|
38
|
+
scope: Option.fromNullable(argv.scope),
|
|
39
|
+
yes: argv.yes,
|
|
40
|
+
}), {
|
|
41
|
+
workspace: {
|
|
42
|
+
global: false,
|
|
43
|
+
yes: argv.yes,
|
|
44
|
+
nonInteractive: Option.fromNullable(argv["non-interactive"]),
|
|
45
|
+
preview: false,
|
|
46
|
+
agents: Option.none(),
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/new/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,YAAY;IACrB,QAAQ,EAAE,mCAAmC;IAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,kCAAkC;QAC5C,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,4CAA4C;KACvD,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,CAAC,6BAA6B,EAAE,gCAAgC,CAAC;SACxE,OAAO,CAAC,yCAAyC,EAAE,2BAA2B,CAAC;IACpF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,GAAG,CACP,cAAc,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YACtC,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 new handler — scaffolds a new empty pack with `axm-pack.json`.
|
|
3
|
+
*
|
|
4
|
+
* Creates the pack directory and manifest, then registers the pack in settings.
|
|
5
|
+
*
|
|
6
|
+
* @experimental This API is unstable and may change without notice.
|
|
7
|
+
*/
|
|
8
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
9
|
+
import * as Path from "@effect/platform/Path";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as Option from "effect/Option";
|
|
12
|
+
import { Log } from "../../../tui/index.js";
|
|
13
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
14
|
+
export interface PacksNewHandlerArgs {
|
|
15
|
+
/** Name of the pack (without scope). */
|
|
16
|
+
readonly name: string;
|
|
17
|
+
/** Optional scope override. */
|
|
18
|
+
readonly scope: Option.Option<string>;
|
|
19
|
+
/** Skip confirmations. */
|
|
20
|
+
readonly yes: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare const handlePacksNew: (args: PacksNewHandlerArgs) => 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/new/handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,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,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,cAAc,GAAI,MAAM,mBAAmB,sIAoGX,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packs new handler — scaffolds a new empty pack with `axm-pack.json`.
|
|
3
|
+
*
|
|
4
|
+
* Creates the pack directory and manifest, then registers the pack in settings.
|
|
5
|
+
*
|
|
6
|
+
* @experimental This API is unstable and may change without notice.
|
|
7
|
+
*/
|
|
8
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
9
|
+
import * as Path from "@effect/platform/Path";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as Option from "effect/Option";
|
|
12
|
+
import { makeCliError } from "../../../cli-error/index.js";
|
|
13
|
+
import { Log } from "../../../tui/index.js";
|
|
14
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
15
|
+
import { computePackPaths } from "../pack-paths.js";
|
|
16
|
+
// -----------------------------------------------------------------------------
|
|
17
|
+
// Constants
|
|
18
|
+
// -----------------------------------------------------------------------------
|
|
19
|
+
const PACK_MANIFEST_FILENAME = "axm-pack.json";
|
|
20
|
+
// -----------------------------------------------------------------------------
|
|
21
|
+
// Main Handler
|
|
22
|
+
// -----------------------------------------------------------------------------
|
|
23
|
+
export const handlePacksNew = (args) => Effect.gen(function* () {
|
|
24
|
+
const ws = yield* Workspace;
|
|
25
|
+
const fs = yield* FileSystem.FileSystem;
|
|
26
|
+
const path = yield* Path.Path;
|
|
27
|
+
const log = yield* Log;
|
|
28
|
+
yield* log.info("axm packs new");
|
|
29
|
+
// Resolve scope
|
|
30
|
+
const normalizeScope = (s) => (s.startsWith("@") ? s : `@${s}`);
|
|
31
|
+
const scope = Option.isSome(args.scope)
|
|
32
|
+
? normalizeScope(args.scope.value)
|
|
33
|
+
: yield* ws.getConfiguredScope().pipe(Effect.flatMap((s) => s === "@community"
|
|
34
|
+
? Effect.fail(makeCliError({
|
|
35
|
+
code: "SCOPE_REQUIRED",
|
|
36
|
+
what: "No scope configured for pack creation",
|
|
37
|
+
howToFix: "Configure a scope in settings.json with `axm init`, or use --scope",
|
|
38
|
+
}))
|
|
39
|
+
: Effect.succeed(s)));
|
|
40
|
+
const fqn = `${scope}/${args.name}`;
|
|
41
|
+
const base = path.dirname(ws.path);
|
|
42
|
+
// Compute pack directory path
|
|
43
|
+
const packDir = computePackPaths(path.join, base, scope, args.name);
|
|
44
|
+
const manifestPath = path.join(packDir.canonicalPath, PACK_MANIFEST_FILENAME);
|
|
45
|
+
// Check if pack already exists
|
|
46
|
+
const exists = yield* fs.exists(manifestPath).pipe(Effect.mapError((e) => makeCliError({
|
|
47
|
+
code: "PACK_CHECK_FAILED",
|
|
48
|
+
what: `Failed to check if pack exists: ${manifestPath}`,
|
|
49
|
+
cause: e,
|
|
50
|
+
})));
|
|
51
|
+
if (exists) {
|
|
52
|
+
return yield* makeCliError({
|
|
53
|
+
code: "PACK_ALREADY_EXISTS",
|
|
54
|
+
what: `Pack '${fqn}' already exists at ${packDir.canonicalPath}`,
|
|
55
|
+
howToFix: "Choose a different name or remove the existing pack first",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
// Create pack directory
|
|
59
|
+
yield* fs.makeDirectory(packDir.canonicalPath, { recursive: true }).pipe(Effect.mapError((e) => makeCliError({
|
|
60
|
+
code: "PACK_CREATE_FAILED",
|
|
61
|
+
what: `Failed to create pack directory: ${packDir.canonicalPath}`,
|
|
62
|
+
cause: e,
|
|
63
|
+
})));
|
|
64
|
+
// Write manifest
|
|
65
|
+
const manifest = {
|
|
66
|
+
name: fqn,
|
|
67
|
+
version: "0.0.1",
|
|
68
|
+
skills: {},
|
|
69
|
+
commands: {},
|
|
70
|
+
"mcp-servers": {},
|
|
71
|
+
};
|
|
72
|
+
yield* fs.writeFileString(manifestPath, JSON.stringify(manifest, null, 2) + "\n").pipe(Effect.mapError((e) => makeCliError({
|
|
73
|
+
code: "PACK_CREATE_FAILED",
|
|
74
|
+
what: `Failed to write pack manifest: ${manifestPath}`,
|
|
75
|
+
cause: e,
|
|
76
|
+
})));
|
|
77
|
+
// Register in settings
|
|
78
|
+
const now = new Date();
|
|
79
|
+
yield* ws.setPack(args.name, fqn, {
|
|
80
|
+
type: "registry",
|
|
81
|
+
scope,
|
|
82
|
+
name: args.name,
|
|
83
|
+
resolvedVersion: "0.0.1",
|
|
84
|
+
checksum: "",
|
|
85
|
+
sourceName: "",
|
|
86
|
+
installedAt: now,
|
|
87
|
+
updatedAt: now,
|
|
88
|
+
resolvedSkills: {},
|
|
89
|
+
resolvedCommands: {},
|
|
90
|
+
resolvedMcpServers: {},
|
|
91
|
+
});
|
|
92
|
+
yield* log.success(`Created pack ${fqn}`);
|
|
93
|
+
}).pipe(Effect.withSpan("PacksNew.handle"));
|
|
94
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/new/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pack operation types and references.
|
|
3
|
+
*
|
|
4
|
+
* Shared across pack operations (install, uninstall, publish).
|
|
5
|
+
*
|
|
6
|
+
* @experimental This API is unstable and may change without notice.
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { Operation } from "../../workspace/plan.js";
|
|
10
|
+
/**
|
|
11
|
+
* Args for the install-pack operation.
|
|
12
|
+
*/
|
|
13
|
+
export interface InstallPackOperationArgs {
|
|
14
|
+
/** Pack name (e.g., "my-pack") */
|
|
15
|
+
readonly packName: string;
|
|
16
|
+
/** Pack scope (e.g., "@acme") */
|
|
17
|
+
readonly scope: string;
|
|
18
|
+
/** Source string for settings (e.g., "registry:@acme/my-pack@^1.0.0") */
|
|
19
|
+
readonly source: string;
|
|
20
|
+
/** Exact resolved version */
|
|
21
|
+
readonly resolvedVersion: string;
|
|
22
|
+
/** Content hash */
|
|
23
|
+
readonly checksum: string;
|
|
24
|
+
/** Registry source name */
|
|
25
|
+
readonly sourceName: string;
|
|
26
|
+
/** Resolved skill FQNs to exact versions */
|
|
27
|
+
readonly resolvedSkills: Readonly<Record<string, string>>;
|
|
28
|
+
/** Resolved command FQNs to exact versions */
|
|
29
|
+
readonly resolvedCommands: Readonly<Record<string, string>>;
|
|
30
|
+
/** Resolved MCP server FQNs to exact versions */
|
|
31
|
+
readonly resolvedMcpServers: Readonly<Record<string, string>>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Add a pack to the workspace.
|
|
35
|
+
*
|
|
36
|
+
* @experimental This API is unstable and may change without notice.
|
|
37
|
+
*/
|
|
38
|
+
export type InstallPackOperation = Operation<"install-pack", InstallPackOperationArgs>;
|
|
39
|
+
/**
|
|
40
|
+
* Args for the uninstall-pack operation.
|
|
41
|
+
*/
|
|
42
|
+
export interface UninstallPackOperationArgs {
|
|
43
|
+
/** Pack name to uninstall */
|
|
44
|
+
readonly packName: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Remove a pack from the workspace.
|
|
48
|
+
*
|
|
49
|
+
* @experimental This API is unstable and may change without notice.
|
|
50
|
+
*/
|
|
51
|
+
export type UninstallPackOperation = Operation<"uninstall-pack", UninstallPackOperationArgs>;
|
|
52
|
+
/**
|
|
53
|
+
* Args for the publish-pack operation.
|
|
54
|
+
*/
|
|
55
|
+
export interface PublishPackOperationArgs {
|
|
56
|
+
/** Extension identity in `@scope/name` format. */
|
|
57
|
+
readonly name: string;
|
|
58
|
+
/** Named source to publish to (e.g., "local"). */
|
|
59
|
+
readonly registryName: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Publish a pack to a registry.
|
|
63
|
+
*
|
|
64
|
+
* @experimental This API is unstable and may change without notice.
|
|
65
|
+
*/
|
|
66
|
+
export type PublishPackOperation = Operation<"publish-pack", PublishPackOperationArgs>;
|
|
67
|
+
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../src/cli-commands/packs/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMzD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,mBAAmB;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,8CAA8C;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,iDAAiD;IACjD,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/D;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;AAMvF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;AAM7F;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pack operation types and references.
|
|
3
|
+
*
|
|
4
|
+
* Shared across pack operations (install, uninstall, publish).
|
|
5
|
+
*
|
|
6
|
+
* @experimental This API is unstable and may change without notice.
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../src/cli-commands/packs/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized pack path computation.
|
|
3
|
+
*
|
|
4
|
+
* Provides types and a pure function for computing pack directory paths.
|
|
5
|
+
* Packs are always registry-sourced, so there is no non-registry branch.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Computed path for an installed pack directory.
|
|
11
|
+
*
|
|
12
|
+
* `canonicalPath` = `<base>/.axm/extensions/<scope>/packs/<name>/`
|
|
13
|
+
*
|
|
14
|
+
* No `src/` subdirectory for packs.
|
|
15
|
+
*/
|
|
16
|
+
export interface PackDirPath {
|
|
17
|
+
readonly canonicalPath: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Pure function to compute pack directory path.
|
|
21
|
+
*
|
|
22
|
+
* @param join - Path join function (e.g., `path.join`)
|
|
23
|
+
* @param base - Workspace root (parent of `.axm`)
|
|
24
|
+
* @param scope - Pack scope (e.g., "@acme")
|
|
25
|
+
* @param name - Pack name for filesystem use
|
|
26
|
+
*/
|
|
27
|
+
export declare const computePackPaths: (join: (...paths: string[]) => string, base: string, scope: string, name: string) => PackDirPath;
|
|
28
|
+
//# sourceMappingURL=pack-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-paths.d.ts","sourceRoot":"","sources":["../../../../src/cli-commands/packs/pack-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,EACpC,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,MAAM,MAAM,KACX,WAGF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized pack path computation.
|
|
3
|
+
*
|
|
4
|
+
* Provides types and a pure function for computing pack directory paths.
|
|
5
|
+
* Packs are always registry-sourced, so there is no non-registry branch.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import { REGISTRY_EXTENSIONS_DIR } from "../skills/constants.js";
|
|
10
|
+
/**
|
|
11
|
+
* Pure function to compute pack directory path.
|
|
12
|
+
*
|
|
13
|
+
* @param join - Path join function (e.g., `path.join`)
|
|
14
|
+
* @param base - Workspace root (parent of `.axm`)
|
|
15
|
+
* @param scope - Pack scope (e.g., "@acme")
|
|
16
|
+
* @param name - Pack name for filesystem use
|
|
17
|
+
*/
|
|
18
|
+
export const computePackPaths = (join, base, scope, name) => {
|
|
19
|
+
const canonicalPath = join(base, REGISTRY_EXTENSIONS_DIR, scope, "packs", name);
|
|
20
|
+
return { canonicalPath };
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=pack-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-paths.js","sourceRoot":"","sources":["../../../../src/cli-commands/packs/pack-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAajE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAoC,EACpC,IAAY,EACZ,KAAa,EACb,IAAY,EACC,EAAE;IACf,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAChF,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publish command yargs definition -- wires handler to `axm packs publish`.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This API is unstable and may change without notice.
|
|
5
|
+
*/
|
|
6
|
+
import type { CommandModule } from "yargs";
|
|
7
|
+
export interface PublishPackCommandArgs {
|
|
8
|
+
pack: string;
|
|
9
|
+
registry: string | undefined;
|
|
10
|
+
yes: boolean;
|
|
11
|
+
preview: boolean;
|
|
12
|
+
"non-interactive": boolean | undefined;
|
|
13
|
+
}
|
|
14
|
+
export declare const publishPackCommand: CommandModule<{}, PublishPackCommandArgs>;
|
|
15
|
+
//# sourceMappingURL=command.d.ts.map
|