@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,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unpack command handler -- Effect-based orchestration for `axm packs unpack`.
|
|
3
|
+
*
|
|
4
|
+
* Flattens a pack's resolved extensions into settings.json as direct entries,
|
|
5
|
+
* preserves existing direct entries, and removes the pack entry from settings
|
|
6
|
+
* and lockfile.
|
|
7
|
+
*
|
|
8
|
+
* This is a settings-level operation -- it does not re-download anything.
|
|
9
|
+
*
|
|
10
|
+
* @experimental This API is unstable and may change without notice.
|
|
11
|
+
*/
|
|
12
|
+
import * as Effect from "effect/Effect";
|
|
13
|
+
import * as Option from "effect/Option";
|
|
14
|
+
import { makeCliError } from "../../../cli-error/index.js";
|
|
15
|
+
import { Log, Spinner } from "../../../tui/index.js";
|
|
16
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
17
|
+
import { parseScopedName } from "../../skills/naming.js";
|
|
18
|
+
// -----------------------------------------------------------------------------
|
|
19
|
+
// Operation Handler
|
|
20
|
+
// -----------------------------------------------------------------------------
|
|
21
|
+
/**
|
|
22
|
+
* Unpack operation handler.
|
|
23
|
+
*
|
|
24
|
+
* 1. Look up pack in lockfile for resolved extensions
|
|
25
|
+
* 2. Read current settings to find existing direct skill entries
|
|
26
|
+
* 3. Add resolved skills as direct entries (skip existing)
|
|
27
|
+
* 4. Remove pack from settings and lockfile
|
|
28
|
+
*/
|
|
29
|
+
export const unpackPack = (op) => Effect.gen(function* () {
|
|
30
|
+
const ws = yield* Workspace;
|
|
31
|
+
// Look up the pack in the lockfile
|
|
32
|
+
const lockedPack = yield* ws.getLockedPack(op.args.name);
|
|
33
|
+
if (Option.isNone(lockedPack)) {
|
|
34
|
+
return yield* makeCliError({
|
|
35
|
+
code: "PACK_NOT_INSTALLED",
|
|
36
|
+
what: `Pack "${op.args.name}" is not installed`,
|
|
37
|
+
howToFix: "Install the pack first with `axm packs install`.",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const entry = lockedPack.value;
|
|
41
|
+
// Read current configured skills to preserve existing direct entries
|
|
42
|
+
const currentSkills = yield* ws.getConfiguredSkills();
|
|
43
|
+
// Add resolved skills as direct entries (only if not already present)
|
|
44
|
+
// Use the short name (after scope/) as the settings key since SkillsMapSchema
|
|
45
|
+
// validates keys against agentskills.io naming (no @ or / allowed).
|
|
46
|
+
yield* Effect.forEach(Object.entries(entry.resolvedSkills), ([fqn, version]) => Effect.gen(function* () {
|
|
47
|
+
const { skillName: shortName } = parseScopedName(fqn);
|
|
48
|
+
if (shortName in currentSkills)
|
|
49
|
+
return; // preserve existing direct entry
|
|
50
|
+
const source = `registry:${fqn}@${version}`;
|
|
51
|
+
yield* ws.setSkill(shortName, source, {
|
|
52
|
+
type: "registry",
|
|
53
|
+
scope: entry.scope,
|
|
54
|
+
name: shortName,
|
|
55
|
+
resolvedVersion: version,
|
|
56
|
+
checksum: "",
|
|
57
|
+
sourceName: entry.sourceName,
|
|
58
|
+
agents: [],
|
|
59
|
+
installedAt: new Date(),
|
|
60
|
+
updatedAt: new Date(),
|
|
61
|
+
});
|
|
62
|
+
}), { concurrency: 1 });
|
|
63
|
+
// Remove the pack entry from settings and lockfile
|
|
64
|
+
yield* ws.removePack(op.args.name);
|
|
65
|
+
const skillCount = Object.keys(entry.resolvedSkills).length;
|
|
66
|
+
return {
|
|
67
|
+
result: "success",
|
|
68
|
+
message: `Unpacked ${op.args.name}: ${skillCount} skill(s) promoted to direct entries`,
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
// -----------------------------------------------------------------------------
|
|
72
|
+
// Main Handler
|
|
73
|
+
// -----------------------------------------------------------------------------
|
|
74
|
+
/**
|
|
75
|
+
* Handles the `axm packs unpack` command.
|
|
76
|
+
*/
|
|
77
|
+
export const handleUnpack = (args) => Effect.gen(function* () {
|
|
78
|
+
const ws = yield* Workspace;
|
|
79
|
+
const log = yield* Log;
|
|
80
|
+
const spinnerSvc = yield* Spinner;
|
|
81
|
+
yield* log.info("axm packs unpack");
|
|
82
|
+
// Validate pack exists in lockfile
|
|
83
|
+
const handle = yield* spinnerSvc.start("Checking pack...");
|
|
84
|
+
const lockedPack = yield* ws.getLockedPack(args.name);
|
|
85
|
+
if (Option.isNone(lockedPack)) {
|
|
86
|
+
yield* handle.stop("Failed");
|
|
87
|
+
return yield* Effect.fail(makeCliError({
|
|
88
|
+
code: "PACK_NOT_INSTALLED",
|
|
89
|
+
what: `Pack "${args.name}" is not installed`,
|
|
90
|
+
howToFix: "Install the pack first with `axm packs install`.",
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
yield* handle.stop(`Found ${args.name}`);
|
|
94
|
+
// Build plan
|
|
95
|
+
const steps = [
|
|
96
|
+
{
|
|
97
|
+
_tag: "PlannedJobStep",
|
|
98
|
+
operation: {
|
|
99
|
+
name: "unpack-pack",
|
|
100
|
+
args: { name: args.name },
|
|
101
|
+
},
|
|
102
|
+
expectedResult: { result: "success", message: `Unpacked ${args.name}` },
|
|
103
|
+
label: `Unpack ${args.name}`,
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
const plan = {
|
|
107
|
+
name: "Unpack pack",
|
|
108
|
+
description: Option.some(`Unpack ${args.name} into direct settings entries`),
|
|
109
|
+
jobs: [{ steps, concurrency: 1 }],
|
|
110
|
+
};
|
|
111
|
+
yield* ws.resolvePlan(plan, {
|
|
112
|
+
"unpack-pack": unpackPack,
|
|
113
|
+
});
|
|
114
|
+
yield* log.success("Done");
|
|
115
|
+
}).pipe(Effect.withSpan("UnpackPack.handle"));
|
|
116
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/unpack/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @experimental This API is unstable and may change without notice.
|
|
5
5
|
*/
|
|
6
6
|
export declare const REGISTRY_EXTENSIONS_DIR = ".axm/extensions";
|
|
7
|
+
export declare const EXTERNAL_EXTENSIONS_DIR = ".axm/extensions/external";
|
|
7
8
|
export declare const UNIVERSAL_SKILLS_DIR = ".agents/skills";
|
|
8
9
|
export declare const MANIFEST_FILENAME = "axm-skill.json";
|
|
9
10
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/cli-commands/skills/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AACzD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/cli-commands/skills/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AACzD,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @experimental This API is unstable and may change without notice.
|
|
5
5
|
*/
|
|
6
6
|
export const REGISTRY_EXTENSIONS_DIR = ".axm/extensions";
|
|
7
|
+
export const EXTERNAL_EXTENSIONS_DIR = ".axm/extensions/external";
|
|
7
8
|
export const UNIVERSAL_SKILLS_DIR = ".agents/skills";
|
|
8
9
|
export const MANIFEST_FILENAME = "axm-skill.json";
|
|
9
10
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/cli-commands/skills/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/cli-commands/skills/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Disable skill executor — removes
|
|
2
|
+
* Disable skill executor — removes agent symlinks but preserves canonical files.
|
|
3
3
|
*
|
|
4
|
-
* Pipeline: read state → remove agent symlinks →
|
|
5
|
-
* clear lock agents → update settings entry.
|
|
4
|
+
* Pipeline: read state → remove agent symlinks → clear lock agents → update settings entry.
|
|
6
5
|
*
|
|
7
6
|
* @experimental This API is unstable and may change without notice.
|
|
8
7
|
*/
|
|
@@ -15,11 +14,11 @@ import type { DisableSkillOperation } from "../operations.js";
|
|
|
15
14
|
* Disable-skill operation handler.
|
|
16
15
|
*
|
|
17
16
|
* 1. Read configured agents, lock entry
|
|
18
|
-
* 2.
|
|
19
|
-
* 3.
|
|
20
|
-
* 4.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
17
|
+
* 2. Remove agent symlinks (concurrent)
|
|
18
|
+
* 3. Clear lock agents
|
|
19
|
+
* 4. Update settings entry to set enabled: false
|
|
20
|
+
*
|
|
21
|
+
* Canonical files are preserved for later re-enablement.
|
|
23
22
|
*/
|
|
24
23
|
export declare const disableSkill: OperationHandler<DisableSkillOperation, FileSystem.FileSystem | Path.Path | Workspace>;
|
|
25
24
|
//# sourceMappingURL=disable-skill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable-skill.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/disable-skill.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"disable-skill.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/disable-skill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAK9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAM9D;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,gBAAgB,CACzC,qBAAqB,EACrB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CA+D3C,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Disable skill executor — removes
|
|
2
|
+
* Disable skill executor — removes agent symlinks but preserves canonical files.
|
|
3
3
|
*
|
|
4
|
-
* Pipeline: read state → remove agent symlinks →
|
|
5
|
-
* clear lock agents → update settings entry.
|
|
4
|
+
* Pipeline: read state → remove agent symlinks → clear lock agents → update settings entry.
|
|
6
5
|
*
|
|
7
6
|
* @experimental This API is unstable and may change without notice.
|
|
8
7
|
*/
|
|
@@ -13,8 +12,6 @@ import * as Option from "effect/Option";
|
|
|
13
12
|
import { getAgentById } from "../../../agents/registry.js";
|
|
14
13
|
import { makeCliError } from "../../../cli-error/index.js";
|
|
15
14
|
import { Workspace } from "../../../workspace/service.js";
|
|
16
|
-
import { UNIVERSAL_SKILLS_DIR, REGISTRY_EXTENSIONS_DIR } from "../constants.js";
|
|
17
|
-
import { removeIfExists } from "../fs-helpers.js";
|
|
18
15
|
import { sanitizeName } from "../install/skill-utils.js";
|
|
19
16
|
// -----------------------------------------------------------------------------
|
|
20
17
|
// Public API
|
|
@@ -23,11 +20,11 @@ import { sanitizeName } from "../install/skill-utils.js";
|
|
|
23
20
|
* Disable-skill operation handler.
|
|
24
21
|
*
|
|
25
22
|
* 1. Read configured agents, lock entry
|
|
26
|
-
* 2.
|
|
27
|
-
* 3.
|
|
28
|
-
* 4.
|
|
29
|
-
*
|
|
30
|
-
*
|
|
23
|
+
* 2. Remove agent symlinks (concurrent)
|
|
24
|
+
* 3. Clear lock agents
|
|
25
|
+
* 4. Update settings entry to set enabled: false
|
|
26
|
+
*
|
|
27
|
+
* Canonical files are preserved for later re-enablement.
|
|
31
28
|
*/
|
|
32
29
|
export const disableSkill = (op) => Effect.gen(function* () {
|
|
33
30
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -59,37 +56,14 @@ export const disableSkill = (op) => Effect.gen(function* () {
|
|
|
59
56
|
if (Option.isNone(maybeAgent))
|
|
60
57
|
return Effect.void;
|
|
61
58
|
const agent = maybeAgent.value;
|
|
62
|
-
// Self-reference detection
|
|
63
|
-
const agentSkillsDir = path.resolve(base, agent.skills.dir);
|
|
64
|
-
const canonicalSkillsDir = path.resolve(base, UNIVERSAL_SKILLS_DIR);
|
|
65
|
-
if (agentSkillsDir === canonicalSkillsDir)
|
|
66
|
-
return Effect.void;
|
|
67
59
|
const agentSkillPath = path.join(base, agent.skills.dir, sanitizedName);
|
|
68
60
|
return fs
|
|
69
61
|
.remove(agentSkillPath, { recursive: true })
|
|
70
62
|
.pipe(Effect.catchAll(() => Effect.void));
|
|
71
63
|
}, { concurrency: "unbounded" });
|
|
72
|
-
// 3.
|
|
73
|
-
yield* removeIfExists(fs, path.join(base, UNIVERSAL_SKILLS_DIR, sanitizedName));
|
|
74
|
-
// Also remove from registry locations if applicable
|
|
75
|
-
const extensionsDir = path.join(base, REGISTRY_EXTENSIONS_DIR);
|
|
76
|
-
const extensionsDirExists = yield* fs
|
|
77
|
-
.exists(extensionsDir)
|
|
78
|
-
.pipe(Effect.catchAll(() => Effect.succeed(false)));
|
|
79
|
-
if (extensionsDirExists) {
|
|
80
|
-
const scopeDirs = yield* fs
|
|
81
|
-
.readDirectory(extensionsDir)
|
|
82
|
-
.pipe(Effect.catchAll(() => Effect.succeed([])));
|
|
83
|
-
yield* Effect.forEach(scopeDirs, (scopeDir) => {
|
|
84
|
-
if (!scopeDir.startsWith("@"))
|
|
85
|
-
return Effect.void;
|
|
86
|
-
const skillPath = path.join(extensionsDir, scopeDir, "skills", sanitizedName);
|
|
87
|
-
return removeIfExists(fs, skillPath);
|
|
88
|
-
}, { concurrency: "unbounded" });
|
|
89
|
-
}
|
|
90
|
-
// 4. Clear lock agents — state updates after files
|
|
64
|
+
// 3. Clear lock agents — state updates after files
|
|
91
65
|
yield* ws.updateLockEntryAgents(op.args.skillName, []).pipe(Effect.catchAll(() => Effect.void));
|
|
92
|
-
//
|
|
66
|
+
// 4. Update settings entry to set enabled: false
|
|
93
67
|
yield* ws
|
|
94
68
|
.updateSkillEntry(op.args.skillName, (e) => ({ ...e, enabled: false }))
|
|
95
69
|
.pipe(Effect.catchAll(() => Effect.void));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable-skill.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/disable-skill.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"disable-skill.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/disable-skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Disable command handler - Effect-based orchestration for `axm skills disable`.
|
|
3
3
|
*
|
|
4
4
|
* Validates skill state then builds and resolves a single-step plan.
|
|
5
|
+
* Supports both direct skills (settings entry) and transitive skills (via packs).
|
|
5
6
|
*
|
|
6
7
|
* @experimental This API is unstable and may change without notice.
|
|
7
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AASxD,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,aAAa,GAAI,MAAM,kBAAkB,yRA8EV,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Disable command handler - Effect-based orchestration for `axm skills disable`.
|
|
3
3
|
*
|
|
4
4
|
* Validates skill state then builds and resolves a single-step plan.
|
|
5
|
+
* Supports both direct skills (settings entry) and transitive skills (via packs).
|
|
5
6
|
*
|
|
6
7
|
* @experimental This API is unstable and may change without notice.
|
|
7
8
|
*/
|
|
@@ -18,16 +19,27 @@ export const handleDisable = (args) => Effect.gen(function* () {
|
|
|
18
19
|
const ws = yield* Workspace;
|
|
19
20
|
const log = yield* Log;
|
|
20
21
|
yield* log.info("axm skills disable");
|
|
21
|
-
// Load configured skills
|
|
22
|
+
// Load configured skills (direct settings entries)
|
|
22
23
|
const configuredSkills = yield* ws.getConfiguredSkills();
|
|
23
24
|
const entry = configuredSkills[args.name];
|
|
24
|
-
//
|
|
25
|
+
// If not found in configured skills, check installed skills (includes transitive via packs)
|
|
25
26
|
if (entry === undefined) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
const installedSkills = yield* ws.getInstalledSkills();
|
|
28
|
+
const installedEntry = installedSkills[args.name];
|
|
29
|
+
if (installedEntry === undefined) {
|
|
30
|
+
return yield* makeCliError({
|
|
31
|
+
code: "SKILL_NOT_FOUND",
|
|
32
|
+
what: `Skill '${args.name}' not found`,
|
|
33
|
+
howToFix: "Run `axm skills list` to see available skills",
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
// Transitive skill — promote to direct entry with enabled: false
|
|
37
|
+
// Use the bare name (without scope) as the settings key
|
|
38
|
+
const bareName = args.name.includes("/") ? args.name.split("/").pop() : args.name;
|
|
39
|
+
const source = Option.orElse(installedEntry.source, () => Option.some(args.name));
|
|
40
|
+
yield* ws.setSkillEntry(bareName, { source, enabled: false, managed: true });
|
|
41
|
+
yield* log.success("Done");
|
|
42
|
+
return;
|
|
31
43
|
}
|
|
32
44
|
// Validate: skill is managed
|
|
33
45
|
if (!entry.managed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Enable skill executor — re-
|
|
2
|
+
* Enable skill executor — re-creates agent symlinks for a previously disabled skill.
|
|
3
3
|
*
|
|
4
|
-
* Pipeline: read state →
|
|
4
|
+
* Pipeline: read state → verify canonical dir exists → create symlinks →
|
|
5
5
|
* update lock agents → update settings entry.
|
|
6
6
|
*
|
|
7
7
|
* @experimental This API is unstable and may change without notice.
|
|
8
8
|
*/
|
|
9
9
|
import * as FileSystem from "@effect/platform/FileSystem";
|
|
10
10
|
import * as Path from "@effect/platform/Path";
|
|
11
|
-
import { Log } from "../../../tui/index.js";
|
|
12
11
|
import type { OperationHandler } from "../../../workspace/apply-plan.js";
|
|
13
12
|
import { Workspace } from "../../../workspace/service.js";
|
|
14
13
|
import type { EnableSkillOperation } from "../operations.js";
|
|
15
14
|
/**
|
|
16
15
|
* Enable-skill operation handler.
|
|
17
16
|
*
|
|
18
|
-
* 1. Read configured agents, lock entry
|
|
19
|
-
* 2.
|
|
20
|
-
* 3.
|
|
17
|
+
* 1. Read configured agents, lock entry
|
|
18
|
+
* 2. Compute canonical path via getSkillDir (uses lockfile)
|
|
19
|
+
* 3. Verify canonical directory exists
|
|
21
20
|
* 4. Create agent symlinks (concurrent)
|
|
22
21
|
* 5. Update lock agents
|
|
23
22
|
* 6. Update settings entry to set enabled: true
|
|
24
23
|
*/
|
|
25
|
-
export declare const enableSkill: OperationHandler<EnableSkillOperation, FileSystem.FileSystem | Path.Path | Workspace
|
|
24
|
+
export declare const enableSkill: OperationHandler<EnableSkillOperation, FileSystem.FileSystem | Path.Path | Workspace>;
|
|
26
25
|
//# sourceMappingURL=enable-skill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable-skill.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/enable-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"enable-skill.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/enable-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAM9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAM7D;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,EAAE,gBAAgB,CACxC,oBAAoB,EACpB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CA8D3C,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Enable skill executor — re-
|
|
2
|
+
* Enable skill executor — re-creates agent symlinks for a previously disabled skill.
|
|
3
3
|
*
|
|
4
|
-
* Pipeline: read state →
|
|
4
|
+
* Pipeline: read state → verify canonical dir exists → create symlinks →
|
|
5
5
|
* update lock agents → update settings entry.
|
|
6
6
|
*
|
|
7
7
|
* @experimental This API is unstable and may change without notice.
|
|
@@ -12,12 +12,9 @@ import * as Effect from "effect/Effect";
|
|
|
12
12
|
import * as Option from "effect/Option";
|
|
13
13
|
import { getAgentById } from "../../../agents/registry.js";
|
|
14
14
|
import { makeCliError } from "../../../cli-error/index.js";
|
|
15
|
-
import { Log } from "../../../tui/index.js";
|
|
16
15
|
import { createSymlink } from "../../../utils/create-symlink.js";
|
|
17
16
|
import { Workspace } from "../../../workspace/service.js";
|
|
18
17
|
import { copySkillDirectory } from "../copy-skill-directory.js";
|
|
19
|
-
import { UNIVERSAL_SKILLS_DIR } from "../constants.js";
|
|
20
|
-
import { removeIfExists } from "../fs-helpers.js";
|
|
21
18
|
import { sanitizeName } from "../install/skill-utils.js";
|
|
22
19
|
// -----------------------------------------------------------------------------
|
|
23
20
|
// Public API
|
|
@@ -25,9 +22,9 @@ import { sanitizeName } from "../install/skill-utils.js";
|
|
|
25
22
|
/**
|
|
26
23
|
* Enable-skill operation handler.
|
|
27
24
|
*
|
|
28
|
-
* 1. Read configured agents, lock entry
|
|
29
|
-
* 2.
|
|
30
|
-
* 3.
|
|
25
|
+
* 1. Read configured agents, lock entry
|
|
26
|
+
* 2. Compute canonical path via getSkillDir (uses lockfile)
|
|
27
|
+
* 3. Verify canonical directory exists
|
|
31
28
|
* 4. Create agent symlinks (concurrent)
|
|
32
29
|
* 5. Update lock agents
|
|
33
30
|
* 6. Update settings entry to set enabled: true
|
|
@@ -36,84 +33,29 @@ export const enableSkill = (op) => Effect.gen(function* () {
|
|
|
36
33
|
const fs = yield* FileSystem.FileSystem;
|
|
37
34
|
const path = yield* Path.Path;
|
|
38
35
|
const ws = yield* Workspace;
|
|
39
|
-
const
|
|
40
|
-
const base = path.dirname(axmDir);
|
|
36
|
+
const base = path.dirname(ws.path);
|
|
41
37
|
const sanitizedName = sanitizeName(op.args.skillName);
|
|
42
38
|
// 1. Read workspace state
|
|
43
39
|
const configuredAgents = yield* ws.getConfiguredAgents();
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
// 2. Compute canonical path via getSkillDir (name-only mode — uses lockfile)
|
|
41
|
+
const { skillSrcPath } = yield* ws.getSkillDir(op.args.skillName);
|
|
42
|
+
// 3. Verify canonical directory exists
|
|
43
|
+
const exists = yield* fs
|
|
44
|
+
.exists(skillSrcPath)
|
|
45
|
+
.pipe(Effect.catchAll(() => Effect.succeed(false)));
|
|
46
|
+
if (!exists) {
|
|
50
47
|
return yield* makeCliError({
|
|
51
|
-
code: "
|
|
52
|
-
what: `
|
|
48
|
+
code: "ENABLE_SKILL_MISSING_FILES",
|
|
49
|
+
what: `Skill files for "${op.args.skillName}" not found at ${skillSrcPath}`,
|
|
50
|
+
howToFix: "Try reinstalling the skill with `axm skills install`",
|
|
53
51
|
});
|
|
54
52
|
}
|
|
55
|
-
const lockEntry = lockEntryOption.value;
|
|
56
|
-
// 2. Determine canonical path via centralized getSkillDir (name-only mode — uses lockfile)
|
|
57
|
-
const { canonicalPath, skillSrcPath } = yield* ws.getSkillDir(op.args.skillName);
|
|
58
|
-
// 3. Resolve source and copy to canonical location
|
|
59
|
-
// For local sources, the lock entry path is the source repo root;
|
|
60
|
-
// the individual skill lives at repo-root/skill-name
|
|
61
|
-
if (lockEntry.type === "local") {
|
|
62
|
-
const sourcePath = path.join(lockEntry.path, sanitizedName);
|
|
63
|
-
// Pre-clean canonical location
|
|
64
|
-
yield* removeIfExists(fs, canonicalPath);
|
|
65
|
-
yield* copySkillDirectory(sourcePath, skillSrcPath).pipe(Effect.mapError((e) => makeCliError({
|
|
66
|
-
code: "ENABLE_SKILL_COPY_FAILED",
|
|
67
|
-
what: `Failed to copy skill files to ${skillSrcPath}`,
|
|
68
|
-
cause: e,
|
|
69
|
-
})));
|
|
70
|
-
}
|
|
71
|
-
else if (lockEntry.type === "registry") {
|
|
72
|
-
// For registry sources, the canonical path should already exist from prior install
|
|
73
|
-
// or needs re-resolution through SourceProviders (not available in this handler).
|
|
74
|
-
// If files don't exist, fail with a helpful message.
|
|
75
|
-
const exists = yield* fs
|
|
76
|
-
.exists(canonicalPath)
|
|
77
|
-
.pipe(Effect.catchAll(() => Effect.succeed(false)));
|
|
78
|
-
if (!exists) {
|
|
79
|
-
return yield* makeCliError({
|
|
80
|
-
code: "ENABLE_SKILL_MISSING_FILES",
|
|
81
|
-
what: `Skill files for "${op.args.skillName}" not found at ${canonicalPath}`,
|
|
82
|
-
howToFix: "Try reinstalling the skill with `axm skills install`",
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
// For git-based sources (github, gitlab, etc.), use the path from lock entry
|
|
88
|
-
const sourcePath = "path" in lockEntry ? lockEntry.path : undefined;
|
|
89
|
-
if (sourcePath) {
|
|
90
|
-
yield* removeIfExists(fs, canonicalPath);
|
|
91
|
-
yield* copySkillDirectory(sourcePath, skillSrcPath).pipe(Effect.mapError((e) => makeCliError({
|
|
92
|
-
code: "ENABLE_SKILL_COPY_FAILED",
|
|
93
|
-
what: `Failed to copy skill files to ${skillSrcPath}`,
|
|
94
|
-
cause: e,
|
|
95
|
-
})));
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
// Git sources without a local path need re-resolution
|
|
99
|
-
return yield* makeCliError({
|
|
100
|
-
code: "ENABLE_SKILL_MISSING_FILES",
|
|
101
|
-
what: `Cannot re-resolve source for "${op.args.skillName}"`,
|
|
102
|
-
howToFix: "Try reinstalling the skill with `axm skills install`",
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
53
|
// 4. Create agent symlinks (concurrent)
|
|
107
54
|
yield* Effect.forEach(configuredAgents, (agentId) => {
|
|
108
55
|
const maybeAgent = getAgentById(agentId);
|
|
109
56
|
if (Option.isNone(maybeAgent))
|
|
110
57
|
return Effect.void;
|
|
111
58
|
const agent = maybeAgent.value;
|
|
112
|
-
// Self-reference detection
|
|
113
|
-
const agentSkillsDir = path.resolve(base, agent.skills.dir);
|
|
114
|
-
const canonicalSkillsDir = path.resolve(base, UNIVERSAL_SKILLS_DIR);
|
|
115
|
-
if (agentSkillsDir === canonicalSkillsDir)
|
|
116
|
-
return Effect.void;
|
|
117
59
|
const agentSkillPath = path.join(base, agent.skills.dir, sanitizedName);
|
|
118
60
|
return createSymlink({ target: skillSrcPath, link: agentSkillPath }).pipe(Effect.catchAll(() => copySkillDirectory(skillSrcPath, agentSkillPath).pipe(Effect.catchAll(() => Effect.void))));
|
|
119
61
|
}, { concurrency: "unbounded" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable-skill.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/enable-skill.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;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"enable-skill.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/enable-skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Enable command handler - Effect-based orchestration for `axm skills enable`.
|
|
3
3
|
*
|
|
4
4
|
* Validates skill state then builds and resolves a single-step plan.
|
|
5
|
+
* Supports both direct skills (with lock entry) and promoted transitive skills.
|
|
5
6
|
*
|
|
6
7
|
* @experimental This API is unstable and may change without notice.
|
|
7
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AASxD,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,YAAY,GAAI,MAAM,iBAAiB,yRAyET,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Enable command handler - Effect-based orchestration for `axm skills enable`.
|
|
3
3
|
*
|
|
4
4
|
* Validates skill state then builds and resolves a single-step plan.
|
|
5
|
+
* Supports both direct skills (with lock entry) and promoted transitive skills.
|
|
5
6
|
*
|
|
6
7
|
* @experimental This API is unstable and may change without notice.
|
|
7
8
|
*/
|
|
@@ -43,6 +44,14 @@ export const handleEnable = (args) => Effect.gen(function* () {
|
|
|
43
44
|
yield* log.success("Nothing to do.");
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
47
|
+
// Check if this is a promoted transitive skill (no lock entry)
|
|
48
|
+
const lockEntry = yield* ws.getLockedSkill(args.name);
|
|
49
|
+
if (Option.isNone(lockEntry)) {
|
|
50
|
+
// Promoted transitive skill — just update settings entry
|
|
51
|
+
yield* ws.updateSkillEntry(args.name, (e) => ({ ...e, enabled: true }));
|
|
52
|
+
yield* log.success("Done");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
46
55
|
// Build operation
|
|
47
56
|
const op = {
|
|
48
57
|
name: "enable-skill",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export interface InstallResult {
|
|
|
25
25
|
readonly error: Option.Option<string>;
|
|
26
26
|
/** Agent-specific skill directory path. */
|
|
27
27
|
readonly path: string;
|
|
28
|
-
/** Canonical skill location (.
|
|
28
|
+
/** Canonical skill location (.axm/extensions/external/skills/<name> or .axm/extensions/<scope>/skills/<name>/src). */
|
|
29
29
|
readonly canonicalPath: string;
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=install-result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-result.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/install/install-result.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"install-result.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/install/install-result.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sHAAsH;IACtH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC"}
|